{"version":3,"file":"shared-lib.CKGXkiky.mjs","names":["e","t","u","a","s","n","o","r","c","t","e","i","l","h","r","n","e","t","o","n","e","t","r","a","s","n","e","r","t","c","i","o","h","u","d","f","l","g","m","p","M","n","e","t","o","a","i","s","r","A","c","l","f","u","d","O","g","m","U","q","K","_","G","W","L","D","M","k","B","j","C","$","R","N","x","F","V","se","b","ce","le","containerStyles","emptyStateStyle","Icon","useMemo","lowercaseIconKeyPairs","iconKeys","defaultEvents","a","useRef","useState","HouseFactory","React","module","RenderTarget","defaultEvents","fonts","css","className","fonts","css","className","fonts","css","className","fonts","css","className","fonts","css","className","fonts","css","className","addPropertyOverrides","PhosphorFonts","Phosphor","PhosphorControls","enabledGestures","cycleOrder","serializationHash","variantClassNames","radiusForCorner","transition1","equals","a","b","convertFromBoolean","toNumber","convertFromBoolean1","convertFromBoolean2","Transition","React.useContext","React.useMemo","Variants","React.Fragment","humanReadableVariantMap","getProps","createLayoutDependency","React.useRef","React.useId","sharedStyle.className","sharedStyle1.className","sharedStyle2.className","sharedStyle3.className","sharedStyle4.className","sharedStyle5.className","className","sharedStyle.css","sharedStyle1.css","sharedStyle2.css","sharedStyle3.css","sharedStyle4.css","sharedStyle5.css","sharedStyle.fonts","sharedStyle1.fonts","sharedStyle2.fonts","sharedStyle3.fonts","sharedStyle4.fonts","sharedStyle5.fonts","generateUUID","e","t","n","r","clamp","euclideanModulo","mapLinear","i","inverseLerp","lerp","damp","pingpong","smoothstep","smootherstep","randInt","randFloat","randFloatSpread","seededRandom","degToRad","radToDeg","isPowerOfTwo","ceilPowerOfTwo","floorPowerOfTwo","setQuaternionFromProperEuler","s","a","o","l","c","u","h","d","p","f","createElementNS","serializeImage","ImageUtils","satForAxes","hue2rgb","SRGBToLinear","LinearToSRGB","checkIntersection","Triangle","Vector2","Vector3","cloneUniforms","mergeUniforms","WebGLAnimation","WebGLAttributes","WebGLBackground","Color","m","g","y","oe","Mesh","BoxGeometry","ShaderMaterial","PlaneGeometry","WebGLBindingStates","dispose","WebGLBufferRenderer","WebGLCapabilities","x","b","_","WebGLClipping","Plane","Matrix3","WebGLCubeMaps","se","WebGLCubeRenderTarget","_createPlanes","BufferGeometry","BufferAttribute","_createRenderTarget","WebGLRenderTarget","_setViewport","_getBlurShader","RawShaderMaterial","_getCommonVertexShader","WebGLCubeUVMaps","PMREMGenerator","WebGLExtensions","WebGLGeometries","Uint32BufferAttribute","Uint16BufferAttribute","WebGLIndexedBufferRenderer","WebGLInfo","denormalize","WebGLMorphtargets","Le","WebGLObjects","flatten","arraysEqual","copyArray","allocTexUnits","setValueV1f","setValueV2f","setValueV3f","setValueV4f","setValueM2","setValueM3","setValueM4","setValueV1i","setValueV2i","setValueV3i","setValueV4i","setValueV1ui","setValueV2ui","setValueV3ui","setValueV4ui","setValueT1","setValueT3D1","setValueT6","setValueT2DArray1","getSingularSetter","setValueV1fArray","setValueV2fArray","setValueV3fArray","setValueV4fArray","setValueM2Array","setValueM3Array","setValueM4Array","setValueV1iArray","setValueV2iArray","setValueV3iArray","setValueV4iArray","setValueV1uiArray","setValueV2uiArray","setValueV3uiArray","setValueV4uiArray","setValueT1Array","setValueT3DArray","setValueT6Array","setValueT2DArrayArray","getPureArraySetter","SingleUniform","PureArrayUniform","StructuredUniform","addUniform","parseUniform","WebGLUniforms","WebGLShader","getEncodingComponents","getShaderErrors","getTexelEncodingFunction","getToneMappingFunction","Q","K","$","te","filterEmptyLine","generateDefines","fetchAttributeLocations","replaceLightNums","replaceClippingPlaneNums","resolveIncludes","includeReplacer","unrollLoops","loopReplacer","generatePrecision","generateShadowMapTypeDefine","generateEnvMapTypeDefine","le","generateEnvMapModeDefine","generateEnvMapBlendingDefine","X","J","WebGLProgram","Z","M","w","S","WebGLPrograms","Layers","WebGLShaderCache","T","E","A","L","C","R","P","I","WebGLProperties","painterSortStable","reversePainterSortStable","WebGLRenderList","WebGLRenderLists","UniformsCache","ShadowUniformsCache","WebGLLights","Matrix4","WebGLRenderState","WebGLRenderStates","WebGLShadowMap","Frustum","Vector4","MeshDepthMaterial","MeshDistanceMaterial","ye","de","WebGLState","G","F","O","H","k","W","j","q","Y","ee","ne","re","ie","ae","ce","ue","he","pe","fe","me","ve","z","N","B","D","U","V","WebGLTextures","isPowerOfTwo$1","Ce","WebGLUtils","Ie","Ee","ze","WebGLMaterials","createCanvasElement","WebGLRenderer","xe","WebXRManager","_e","we","transformVertex","testPoint","CubicPoly","CatmullRom","QuadraticBezierP0","QuadraticBezierP1","QuadraticBezierP2","QuadraticBezier","CubicBezierP0","CubicBezierP1","CubicBezierP2","CubicBezierP3","CubicBezier","linkedList","signedArea","insertNode","equals","filterPoints","area","earcutLinked","indexCurve","isEarHashed","isEar","cureLocalIntersections","splitEarcut","pointInTriangle","zOrder","intersects","locallyInside","isValidDiagonal","splitPolygon","eliminateHoles","getLeftmost","compareX","eliminateHole","findHoleBridge","sectorContainsSector","sortLinked","intersectsPolygon","middleInside","sign","onSegment","Node","removeNode","removeDupEndPts","addContour","toJSON$1","toJSON","isUniqueEdge","getTrackTypeForValueTypeName","NumberKeyframeTrack","VectorKeyframeTrack","ColorKeyframeTrack","QuaternionKeyframeTrack","BooleanKeyframeTrack","StringKeyframeTrack","parseKeyframeTrack","getBoneList","EventDispatcher","Texture","WebGLMultipleRenderTargets","Quaternion","Box3","Sphere","Ray","Euler","Object3D","Material","MeshBasicMaterial","Float16BufferAttribute","Float32BufferAttribute","Camera","PerspectiveCamera","CubeCamera","CubeTexture","OrthographicCamera","WebGLShaderStage","ArrayCamera","Group","WebXRController","DepthTexture","updateCamera","FogExp2","Fog","Scene","InterleavedBuffer","InterleavedBufferAttribute","SpriteMaterial","Sprite","SkinnedMesh","Bone","DataTexture","InstancedBufferAttribute","InstancedMesh","LineBasicMaterial","Line","LineSegments","LineLoop","PointsMaterial","Points","VideoTexture","FramebufferTexture","CompressedTexture","CanvasTexture","CircleGeometry","CylinderGeometry","ConeGeometry","PolyhedronGeometry","DodecahedronGeometry","EdgesGeometry","Curve","EllipseCurve","ArcCurve","CatmullRomCurve3","CubicBezierCurve","CubicBezierCurve3","LineCurve","LineCurve3","QuadraticBezierCurve","QuadraticBezierCurve3","SplineCurve","CurvePath","Path","Shape","ShapeUtils","ExtrudeGeometry","v","IcosahedronGeometry","LatheGeometry","OctahedronGeometry","RingGeometry","ShapeGeometry","SphereGeometry","TetrahedronGeometry","TorusGeometry","TorusKnotGeometry","TubeGeometry","WireframeGeometry","ShadowMaterial","MeshStandardMaterial","MeshPhysicalMaterial","MeshPhongMaterial","MeshToonMaterial","MeshNormalMaterial","MeshLambertMaterial","MeshMatcapMaterial","LineDashedMaterial","Interpolant","CubicInterpolant","LinearInterpolant","DiscreteInterpolant","KeyframeTrack","QuaternionLinearInterpolant","AnimationClip","LoadingManager","Loader","FileLoader","ImageLoader","CubeTextureLoader","TextureLoader","Light","HemisphereLight","LightShadow","SpotLightShadow","SpotLight","PointLightShadow","PointLight","DirectionalLightShadow","DirectionalLight","AmbientLight","RectAreaLight","SphericalHarmonics3","LightProbe","LoaderUtils","InstancedBufferGeometry","ImageBitmapLoader","AudioLoader","Audio","AudioAnalyser","PropertyMixer","Composite","PropertyBinding","AnimationObjectGroup","AnimationAction","AnimationMixer","Uniform","InstancedInterleavedBuffer","GLBufferAttribute","Box2","Line3","SkeletonHelper","GridHelper","useRef","useState","useMemo","h","s","g2","THREE.Scene","THREE.PerspectiveCamera","THREE.WebGLRenderer","THREE.PlaneGeometry","THREE.ShaderMaterial","THREE.Vector4","THREE.DoubleSide","THREE.Mesh","animation","e","c","l","x","m","r","g","b","React","a","fonts","css","className","fonts","css","className","addPropertyOverrides","cycleOrder","serializationHash","variantClassNames","transition1","Transition","React.useContext","React.useMemo","Variants","React.Fragment","humanReadableVariantMap","getProps","createLayoutDependency","useRef","React.useId","className","addPropertyOverrides","ConstantLogoFonts","ConstantLogo","ButtonFonts","Button","cycleOrder","serializationHash","variantClassNames","transition1","Transition","React.useContext","React.useMemo","Variants","React.Fragment","humanReadableVariantMap","getProps","createLayoutDependency","useRef","React.useId","sharedStyle.className","sharedStyle1.className","className","sharedStyle.css","sharedStyle1.css","sharedStyle.fonts","sharedStyle1.fonts","addPropertyOverrides","cycleOrder","serializationHash","variantClassNames","transition1","Transition","React.useContext","React.useMemo","Variants","React.Fragment","humanReadableVariantMap","getProps","createLayoutDependency","React.useRef","React.useId","className","addPropertyOverrides","cycleOrder","serializationHash","variantClassNames","radiusForCorner","transition1","Transition","React.useContext","React.useMemo","Variants","React.Fragment","humanReadableVariantMap","getProps","createLayoutDependency","React.useRef","React.useId","sharedStyle.className","sharedStyle1.className","sharedStyle2.className","className","sharedStyle.css","sharedStyle1.css","sharedStyle2.css","sharedStyle.fonts","sharedStyle1.fonts","sharedStyle2.fonts","addPropertyOverrides","Badge","PhosphorFonts","Phosphor","enabledGestures","cycleOrder","serializationHash","variantClassNames","radiusForCorner","transition1","transition2","Transition","React.useContext","React.useMemo","Variants","React.Fragment","humanReadableEnumMap","humanReadableVariantMap","getProps","createLayoutDependency","sharedStyle.className","sharedStyle1.className","React.useRef","React.useId","className","sharedStyle.css","sharedStyle1.css","sharedStyle.fonts","sharedStyle1.fonts","t","e","i","s","o","n","r","l","h","a","c","d","p","u","m","v","g","S","w","MenuItemFonts","MenuItem","MotionDivWithFX","serializationHash","variantClassNames","transition1","transition2","animation","animation1","animation2","Transition","React.useContext","React.useMemo","Variants","React.Fragment","getProps","createLayoutDependency","useRef","React.useId","React.useRef","className","_Fragment","addPropertyOverrides","Phosphor","cycleOrder","serializationHash","variantClassNames","transition1","equals","a","b","Transition","React.useContext","React.useMemo","Variants","React.Fragment","humanReadableVariantMap","getProps","createLayoutDependency","useRef","React.useId","className","addPropertyOverrides","ConstantLogo","MenuMenu","ButtonFonts","Button","MenuHamburgerMenu","MenuItem","cycleOrder","serializationHash","variantClassNames","transition1","transition2","Transition","React.useContext","React.useMemo","Variants","React.Fragment","humanReadableVariantMap","getProps","createLayoutDependency","useRef","React.useId","className","RenderTarget","Children","useRef","useMemo","useState","useCallback","size","i","e","t","clamp","fonts","css","className","addPropertyOverrides","TickerFonts","MotionDivWithFXWithOptimizedAppearEffect","cycleOrder","serializationHash","variantClassNames","transition1","animation","animation1","animation2","Transition","React.useContext","React.useMemo","Variants","React.Fragment","humanReadableVariantMap","getProps","createLayoutDependency","useRef","React.useId","sharedStyle.className","className","Image","sharedStyle.css","sharedStyle.fonts","t","e","s","r","n","a","o","h","u","f","c","l","p","m","i","a","o","t","i","f","r","l","c","n","A","g","v","s","d","u","m","x","U","e","D","_","y","useRef","RenderTarget","r","createGlobe","e","Color","addPropertyOverrides","SmartComponentScopedContainerWithFX","cycleOrder","serializationHash","variantClassNames","transition1","animation","transition2","animation1","Transition","React.useContext","React.useMemo","Variants","React.Fragment","humanReadableVariantMap","getProps","createLayoutDependency","useRef","React.useId","className","addPropertyOverrides","cycleOrder","serializationHash","variantClassNames","animation","transition1","animation1","transition2","Transition","React.useContext","React.useMemo","Variants","React.Fragment","humanReadableVariantMap","getProps","createLayoutDependency","useRef","React.useId","sharedStyle.className","className","Image","sharedStyle.css","sharedStyle.fonts","useMemo","useMemo","RenderTarget","useMemo","getProps","useRef","useCallback","useState","RenderTarget","progress","useMemo","fragment","e","fonts","css","className","Button","React.useContext","React.useMemo","React.Fragment","useRef","React.useId","sharedStyle.className","sharedStyle1.className","className","sharedStyle.css","sharedStyle1.css","sharedStyle.fonts","sharedStyle1.fonts","__defProp","__defProps","__getOwnPropDescs","__getOwnPropSymbols","__hasOwnProp","__propIsEnum","__defNormalProp","b","a","e","x","resolve","clamp","n","m","x","y","t","dt","length","s","DEG2RAD","b","a","c","i","gl","j","r","p2","p","q","e","f","u","context","frame","l","Mesh","il","dispose","v","to","pl","z","g","k","error","cx","Controls","EventDispatcher","Loader","te","me","ae","be","d","h","w","ce","de","ac","bc","animation","vc","ml","updateCamera","xr","_geometry","_sphere","steps","hl","pt","sl","B","T","N","P","o","ol","resolve","metadata","mix","_v2","_camera","ho","t","e","n","y","u","t","t.default","i","a","a.default","o","global","s","y","S","n","x","z","N","E","C","I","_","L","T","R","F","D","H","W","j","$","V","Z","J","K","G","X","ne","le","oe","de","pe","xe","ze","Ee","Ce","Ie","_e","Le","Fe","De","Be","Ae","qe","Je","Ke","en","gn","mn","yn","kn","zn","Nn","Pn","En","Cn","Un","Ln","Rn","Fn","Qn","Dn","Hn","Wn","Bn","On","An","qn","jn","$n","Vn","Zn","Yn","Jn","Kn","Gn","cc","Xn","ec","et","nt","tt","ic","q","v","rt","lt","at","ut","mc","A","nc","oc","pc","rc","it","sc","ot","st","ct","ft","yc","Ac","Bc","Cc","Ec","dt","ht","gt","pt","mt","vt","yt","bt","St","kt","xt","wt","Tc","zt","Nt","Pt","Et","Ct","It","_t","Ut","Lt","Tt","Rt","Mt","Ft","Qt","Dt","Ht","Wt","Bt","Ot","b","c","d","e","f","g","h","k","m","l","r","p","B","w","Y","At","Vt","Zt","Yt","ae","be","ce","Jt","ee","fe","he","Ar","ie","je","ke","me","Kt","Gt","Xt","er","re","se","te","ue","ve","nr","we","tr","ye","rr","lr","ar","ur","ir","or","sr","cr","fr","dr","M","Ge","He","gr","pr","mr","hr","Me","Ne","Oe","Pe","Qe","Re","Se","Te","Ve","Xe","qr","Ye","$e","Ze","We","Ue","O","vr","yr","il","br","Sr","P","Zr","Vr","kr","xr","wr","zr","Nr","Q","Yr","rl","Pr","Er","Cr","Ir","_r","Ur","Lr","Tr","Rr","Mr","Fr","Qr","Dr","Hr","Wr","Br","Or","jr","$r","Jr","Kr","Gr","Xr","el","nl","tl","ll","al","ul","ol","sl","cl","fl","dl","hl","gl","pl","bi","ci","U","di","ei","fi","gi","hi","ii","li","mi","ni","t","e","r","o","i","l","u","p","f","h","y","H","S","P","g","I","R","W","A","N","U","j","v","D","F","E","useReducer","c","useRef","a","b","d","e","w","m","C","n","x","r","L","y","exports2","__cjs_default__","global","__export1","Reconciler","DefaultEventPriority","React.useRef","p2","_c","SRGBColorSpace","LinearSRGBColorSpace","isOrthographicCamera","DiscreteEventPriority","ContinuousEventPriority","o","intersect","i","frame","React.useContext","ConcurrentRoot","gl","xr","ColorManagement","T","p","s","M2","l","u2","_","React2.useContext","React2.useId","React2.useMemo","React2.useState","useEffect","useLayoutEffect","__export4","exports","module","length","module2","u","exports3","module3","isRef","React.useLayoutEffect","React.useEffect","React.Component","aspect","fov","React.version","_a","React2.useLayoutEffect","React2.useEffect","React2.createContext","React2.Component","resize","React3.useRef","React3.useState","React3.Suspense","Canvas","fov","Pass","_camera","_geometry","FullScreenQuad","Mesh","Pass","context","Pass","FullScreenQuad","tmp","i","il","context","_camera","_geometry","Pass","Mesh","EventDispatcher","useMemo","gl","Fragment","d","useRef","error","a","b","x","_b","gl","i","l","fov","y","now","_c","to","z","cover","t","aspect","intersects","Fragment","p","i","s","l","e","w","h","j","Fragment","Suspense","Fragment","useMemo","v","i","k","a","b","query","x","_a","_b","Fragment","_b","_a","fonts","css","className","fonts","css","className","fonts","css","className"],"sources":["https:/ga.jspm.io/npm:@motionone/utils@10.14.0/dist/index.es.js","https:/ga.jspm.io/npm:@motionone/easing@10.14.0/dist/index.es.js","https:/ga.jspm.io/npm:@motionone/animation@10.14.0/dist/index.es.js","https:/ga.jspm.io/npm:tslib@2.4.0/tslib.es6.js","https:/ga.jspm.io/npm:hey-listen@1.0.8/dist/index.js","https:/ga.jspm.io/npm:@motionone/generators@10.14.0/dist/index.es.js","https:/ga.jspm.io/npm:@motionone/dom@10.12.0/dist/index.es.js","https:/framerusercontent.com/modules/DyldKav0OOAWR3bCAlhK/8c3l9FzyOlGpbPncYhfc/nullstate.js","https:/framer.com/m/framer/icon-nullstate.js@0.7.0","https:/framerusercontent.com/modules/Qc8yuHkQmGO0kFiSWbkX/rVmMAFttOHuuiwSg6KjZ/House.js","https:/framer.com/m/phosphor-icons/House.js@0.0.57","https:/framerusercontent.com/modules/Ma20hU0GGRxLxZphbywl/OSpwWF91FHPVFyQJjMHt/utils.js","https:/framerusercontent.com/modules/tYScH7LTqUtz5KUaUAYP/p8dptk4UIND8hbFWz9V7/Phosphor.js","https:/framerusercontent.com/modules/ApX9HVBYzXw8OVpsB5J0/iAdQeJWoL35Kf2JGPnrF/acdDqsSOM.js","https:/framerusercontent.com/modules/0AfC8Koo329Six6igTZY/1Ia8UITFrV9vlRPqT1ib/aGffgv7Ct.js","https:/framerusercontent.com/modules/kd8jVAanMrY55FyaEebM/QCGZ5TPXGA3QvV1Szskh/lpvldrpA0.js","https:/framerusercontent.com/modules/KynAm6rQ47XtGN6u9X9H/DzB4KjeuyawzE1IYr5hh/maGpaxTnj.js","https:/framerusercontent.com/modules/uSGUkH17FiSlGZhjBL7w/SPpxe0Y95Y7WW5V6fRL3/uYwjFvoUl.js","https:/framerusercontent.com/modules/PIBqeffTlvSDRzzHFUs5/LOzFoTLt8DI2x5FMRp7k/WvDNlUXLS.js","https:/framerusercontent.com/modules/1rwGa6LIznUj8fPdEJCk/FyC79zMY4jvd9suYaK6Q/LNCJ8JrMb.js","https:/ga.jspm.io/npm:three@0.136.0/build/three.module.js","https:/framerusercontent.com/modules/lrLFKsmJ1z5FXTa9Ej4k/QmxZAGZo0U04mjLegBGM/Rays_Prod.js","https:/framerusercontent.com/modules/xVpNubVhoMW3MCOGyjdX/vvRqF0MitD3187L2tymo/OgPd8ZMRH.js","https:/framerusercontent.com/modules/tYYvzC2scaL4kVQAoOX9/uP3dJdkYatSHGFoFGAzu/otMNhHQ2Z.js","https:/framerusercontent.com/modules/k8OnpGQESjTcNLZEmfCL/S8XplV8O97mXdOfZGADT/KmomC3m61.js","https:/framerusercontent.com/modules/l371URdOGsozdxzztE5j/EvW6SQO5YXoVBR5a5vJU/KDy7eQEX5.js","https:/framerusercontent.com/modules/aQ4munSOxHvOdSa7Yt09/IT5c5z0oAE6lXPD5Bwf1/sDquhqjHT.js","https:/framerusercontent.com/modules/hKdE4BSlco24yloavHaF/gxw6wmgXPR7PasSQTa8q/ZC6oaTVqt.js","https:/framerusercontent.com/modules/eNpn7EnkVGLbMTAgxgeN/OuOhkTRUz7xK3VNnnzt0/Z5aW2k3RB.js","https:/ga.jspm.io/npm:@studio-freight/lenis@1.0.42/dist/lenis.mjs","https:/framerusercontent.com/modules/G8BYngIUThaPaidhX6PY/h4Po5ywGFvZL8KhSj6og/SmoothScroll.js","https:/framerusercontent.com/modules/wqIwquk1Cb1V7ix1p0XO/wj8rLZgc4ZgghcdF4Mgk/rYuoi4sXX.js","https:/framerusercontent.com/modules/vQ634yed2d2DbFxiIRMj/VWEJx1JEdRZ9xe6PAF9c/Sg7vW7sWP.js","https:/framerusercontent.com/modules/gb6oKXbLUg49Nnn3HSiO/99ODP2jtQfpCWmaLHSK5/L0XmJSAZ_.js","https:/framerusercontent.com/modules/B2xAlJLcN0gOnt11mSPw/RLUeKLNmERbgkhrJQwKX/Ticker.js","https:/framerusercontent.com/modules/et6JkTRO8IVJ2Mkze7aJ/RgQUqqZYJCUpWsTRrrYH/L1uzTq5oS.js","https:/framerusercontent.com/modules/M9UXaUYBSmgxNNV8olNI/YQVvilsH84Dv25z0uclz/msKqGLnqR.js","https:/ga.jspm.io/npm:phenomenon@1.6.0/dist/phenomenon.mjs","https:/ga.jspm.io/npm:cobe@0.6.0/dist/index.esm.js","https:/framerusercontent.com/modules/xFhv3ETdRBLjJusGaZ1P/d9ZONLqTB9uCj5kbWKll/Globe.js","https:/framerusercontent.com/modules/mft2MyMdnPncI98k58an/4xENyf4h0PwOcCgMx5ja/MYiqcc6J9.js","https:/framerusercontent.com/modules/NAMMD7isBWdHbqCWDqU3/GgczA2FRonD42Fw1YCXK/taW6MDQnD.js","https:/framerusercontent.com/modules/VTUDdizacRHpwbkOamr7/AykinQJbgwl92LvMGZwu/constants.js","https:/framerusercontent.com/modules/D4TWeLfcxT6Tysr2BlYg/iZjmqdxVx1EOiM3k1FaW/useOnNavigationTargetChange.js","https:/framerusercontent.com/modules/ExNgrA7EJTKUPpH6vIlN/eiOrSJ2Ab5M9jPCvVwUz/useConstant.js","https:/framerusercontent.com/modules/D2Lz5CmnNVPZFFiZXalt/QaCzPbriZBfXWZIIycFI/colorFromToken.js","https:/framerusercontent.com/modules/3mKFSGQqKHV82uOV1eBc/5fbRLvOpxZC0JOXugvwm/isMotionValue.js","https:/framerusercontent.com/modules/xDiQsqBGXzmMsv7AlEVy/uhunpMiNsbXxzjlXsg1y/useUniqueClassName.js","https:/framerusercontent.com/modules/ETACN5BJyFTSo0VVDJfu/NHRqowOiXkF9UwOzczF7/variantUtils.js","https:/framerusercontent.com/modules/eMBrwoqQK7h6mEeGQUH8/GuplvPJVjmxpk9zqOTcb/isBrowser.js","https:/framerusercontent.com/modules/v9AWX2URmiYsHf7GbctE/XxKAZ9KlhWqf5x1JMyyF/useOnChange.js","https:/framerusercontent.com/modules/kNDwabfjDEb3vUxkQlZS/fSIr3AOAYbGlfSPgXpYu/useAutoMotionValue.js","https:/framerusercontent.com/modules/cuQH4dmpDnV8YK1mSgQX/KqRXqunFjE6ufhpc7ZRu/useFontControls.js","https:/framerusercontent.com/modules/afBE9Yx1W6bY5q32qPxe/m3q7puE2tbo1S2C0s0CT/useRenderTarget.js","https:/framerusercontent.com/modules/zGkoP8tPDCkoBzMdt5uq/0zFSjxIYliHxrQQnryFX/useControlledState.js","https:/framerusercontent.com/modules/5SM58HxZHxjjv7aLMOgQ/WXz9i6mVki0bBCrKdqB3/propUtils.js","https:/framerusercontent.com/modules/G4IfyjvwmaeSBpdb4TWu/OIjZRBmWDcIE2B6qgG1j/index.js","https:/framerusercontent.com/modules/lRDHiNWNVWmE0lqtoVHP/jFOAZKc2EvehHtUZX1Hf/Video.js","https:/framerusercontent.com/modules/yVDoa3Wk7St7KfAomznY/GSMcXS2xvkut9HtlrtRA/K9YHCSkx0.js","https:/framerusercontent.com/modules/e9ZfAL44sF2rWI4i5HTo/RyXkxZ8eAeQEi90lzxoy/ZTpafdvTc.js","https:/ruucm.github.io/shadergradient/shadergradient@2.0.22/chunk-5BEQP2BQ.mjs","https:/ruucm.github.io/shadergradient/shadergradient@2.0.22/chunk-Z4XR7UL5.mjs","https:/ga.jspm.io/npm:react-reconciler@0.29.2/constants.js","https:/ga.jspm.io/npm:react-reconciler@0.29.2/cjs/react-reconciler.production.min.js","https:/ga.jspm.io/npm:react-reconciler@0.29.2/index.js","https:/ruucm.github.io/shadergradient/shadergradient@2.0.22/chunk-WS7WB67W.mjs","https:/ruucm.github.io/shadergradient/shadergradient@2.0.22/chunk-SX7QUDKQ.mjs","https:/ruucm.github.io/shadergradient/shadergradient@2.0.22/chunk-CWHPURPD.mjs","https:/ruucm.github.io/shadergradient/shadergradient@2.0.22/chunk-4Z3JUAHA.mjs","https:/ruucm.github.io/shadergradient/shadergradient@2.0.22/chunk-FZIV7POA.mjs","https:/ruucm.github.io/shadergradient/shadergradient@2.0.22/chunk-YUIDVF63.mjs","https:/ruucm.github.io/shadergradient/shadergradient@2.0.22/chunk-USQFKVUW.mjs","https:/ruucm.github.io/shadergradient/shadergradient@2.0.22/chunk-2S3VJM34.mjs","https:/ruucm.github.io/shadergradient/shadergradient@2.0.22/chunk-IRMTC4UN.mjs","https:/ruucm.github.io/shadergradient/shadergradient@2.0.22/chunk-3U6A2N6D.mjs","https:/ruucm.github.io/shadergradient/shadergradient@2.0.22/chunk-O7SDERYP.mjs","https:/ruucm.github.io/shadergradient/shadergradient@2.0.22/chunk-4NRCS6EB.mjs","https:/ruucm.github.io/shadergradient/shadergradient@2.0.22/chunk-KD5UHE3V.mjs","https:/ruucm.github.io/shadergradient/shadergradient@2.0.22/chunk-XLXOMSVB.mjs","https:/ruucm.github.io/shadergradient/shadergradient@2.0.22/chunk-5TNITGB6.mjs","https:/ruucm.github.io/shadergradient/shadergradient@2.0.22/chunk-G7COPUKV.mjs","https:/ruucm.github.io/shadergradient/shadergradient@2.0.22/chunk-KO4ISVNC.mjs","https:/ruucm.github.io/shadergradient/shadergradient@2.0.22/chunk-DA2VURNJ.mjs","https:/ruucm.github.io/shadergradient/shadergradient@2.0.22/chunk-4MKFODLT.mjs","https:/ruucm.github.io/shadergradient/shadergradient@2.0.22/chunk-UIVFRJXT.mjs","https:/ruucm.github.io/shadergradient/shadergradient@2.0.22/chunk-2S5ZDPTV.mjs","https:/ruucm.github.io/shadergradient/shadergradient@2.0.22/chunk-YBH3ZCKF.mjs","https:/ruucm.github.io/shadergradient/shadergradient@2.0.22/chunk-WMVG427C.mjs","https:/ruucm.github.io/shadergradient/shadergradient@2.0.22/chunk-WBM42ICI.mjs","https:/ruucm.github.io/shadergradient/shadergradient@2.0.22/chunk-BI5IV7LU.mjs","https:/ruucm.github.io/shadergradient/shadergradient@2.0.22/chunk-OH6HADGN.mjs","https:/ruucm.github.io/shadergradient/shadergradient@2.0.22/chunk-ZHIRR2QJ.mjs","https:/ruucm.github.io/shadergradient/shadergradient@2.0.22/chunk-AVODCFKL.mjs","https:/ruucm.github.io/shadergradient/shadergradient@2.0.22/chunk-VTSZNOAZ.mjs","https:/ruucm.github.io/shadergradient/shadergradient@2.0.22/chunk-6GMBAIZ4.mjs","https:/ruucm.github.io/shadergradient/shadergradient@2.0.22/FramerShaderGradient.mjs","https:/framerusercontent.com/modules/yUbDkOvTyHfxneuuD1oh/OsGDf9xaVaTHcLFxNeVk/CpnB1GL1F.js","https:/framerusercontent.com/modules/pp5Bw65rbgSlbK5gz1zf/wimtOlXMMrFymwVneDZM/jDAuJbAwa.js","https:/framerusercontent.com/modules/Agq2ZGHRuphAqbvKsPU5/Hv7ZFUizugxYsmxXJboW/kronjHaAQ.js","https:/framerusercontent.com/modules/b2p14Ubue7OEIv9EsETm/YlcW6ScVANfYaQAbgVMa/Vw5BTIXrc.js","https:/framerusercontent.com/modules/o7gVAscR5c5JqPMnCdAH/8IsFpHozH7LvekYhit6K/siteMetadata.js"],"sourcesContent":["function addUniqueItem(t,e){-1===t.indexOf(e)&&t.push(e)}function removeItem(t,e){const n=t.indexOf(e);n>-1&&t.splice(n,1)}const clamp=(t,e,n)=>Math.min(Math.max(n,t),e);const t={duration:.3,delay:0,endDelay:0,repeat:0,easing:\"ease\"};const isNumber=t=>\"number\"===typeof t;const isEasingList=t=>Array.isArray(t)&&!isNumber(t[0]);const wrap=(t,e,n)=>{const o=e-t;return((n-t)%o+o)%o+t};function getEasingForSegment(t,e){return isEasingList(t)?t[wrap(0,t.length,e)]:t}const mix=(t,e,n)=>-n*t+n*e+t;const noop=()=>{};const noopReturn=t=>t;const progress=(t,e,n)=>e-t===0?1:(n-t)/(e-t);function fillOffset(t,e){const n=t[t.length-1];for(let o=1;o<=e;o++){const s=progress(0,e,o);t.push(mix(n,1,s))}}function defaultOffset(t){const e=[0];fillOffset(e,t-1);return e}function interpolate(t,e=defaultOffset(t.length),n=noopReturn){const o=t.length;const s=o-e.length;s>0&&fillOffset(e,s);return s=>{let f=0;for(;f<o-2;f++)if(s<e[f+1])break;let r=clamp(0,1,progress(e[f],e[f+1],s));const c=getEasingForSegment(n,f);r=c(r);return mix(t[f],t[f+1],r)}}const isCubicBezier=t=>Array.isArray(t)&&isNumber(t[0]);const isEasingGenerator=t=>\"object\"===typeof t&&Boolean(t.createAnimation);const isFunction=t=>\"function\"===typeof t;const isString=t=>\"string\"===typeof t;const e={ms:t=>1e3*t,s:t=>t/1e3};\n/*\n  Convert velocity into velocity per second\n\n  @param [number]: Unit per frame\n  @param [number]: Frame duration in ms\n*/function velocityPerSecond(t,e){return e?t*(1e3/e):0}export{addUniqueItem,clamp,defaultOffset,t as defaults,fillOffset,getEasingForSegment,interpolate,isCubicBezier,isEasingGenerator,isEasingList,isFunction,isNumber,isString,mix,noop,noopReturn,progress,removeItem,e as time,velocityPerSecond,wrap};\n\n//# sourceMappingURL=index.es.js.map","import{noopReturn as t,clamp as n}from\"@motionone/utils\";const calcBezier=(t,n,e)=>(((1-3*e+3*n)*t+(3*e-6*n))*t+3*n)*t;const e=1e-7;const i=12;function binarySubdivide(t,n,o,r,c){let u;let a;let s=0;do{a=n+(o-n)/2;u=calcBezier(a,r,c)-t;u>0?o=a:n=a}while(Math.abs(u)>e&&++s<i);return a}function cubicBezier(n,e,i,o){if(n===e&&i===o)return t;const getTForX=t=>binarySubdivide(t,0,1,n,i);return t=>0===t||1===t?t:calcBezier(getTForX(t),e,o)}const steps=(t,e=\"end\")=>i=>{i=\"end\"===e?Math.min(i,.999):Math.max(i,.001);const o=i*t;const r=\"end\"===e?Math.floor(o):Math.ceil(o);return n(0,1,r/t)};export{cubicBezier,steps};\n\n//# sourceMappingURL=index.es.js.map","import{isFunction as t,isCubicBezier as i,noopReturn as e,defaults as s,isEasingGenerator as a,isEasingList as n,interpolate as r}from\"@motionone/utils\";import{cubicBezier as h,steps as o}from\"@motionone/easing\";const l={ease:h(.25,.1,.25,1),\"ease-in\":h(.42,0,1,1),\"ease-in-out\":h(.42,0,.58,1),\"ease-out\":h(0,0,.58,1)};const u=/\\((.*?)\\)/;function getEasingFunction(s){if(t(s))return s;if(i(s))return h(...s);if(l[s])return l[s];if(s.startsWith(\"steps\")){const t=u.exec(s);if(t){const i=t[1].split(\",\");return o(parseFloat(i[0]),i[1].trim())}}return e}class Animation{constructor(t,i=[0,1],{easing:h,duration:o=s.duration,delay:l=s.delay,endDelay:u=s.endDelay,repeat:m=s.repeat,offset:c,direction:p=\"normal\"}={}){this.startTime=null;this.rate=1;this.t=0;this.cancelTimestamp=null;this.easing=e;this.duration=0;this.totalDuration=0;this.repeat=0;this.playState=\"idle\";this.finished=new Promise(((t,i)=>{this.resolve=t;this.reject=i}));h=h||s.easing;if(a(h)){const t=h.createAnimation(i);h=t.easing;i=t.keyframes||i;o=t.duration||o}this.repeat=m;this.easing=n(h)?e:getEasingFunction(h);this.updateDuration(o);const d=r(i,c,n(h)?h.map(getEasingFunction):e);this.tick=i=>{var e;l=l;let s=0;s=void 0!==this.pauseTime?this.pauseTime:(i-this.startTime)*this.rate;this.t=s;s/=1e3;s=Math.max(s-l,0);\"finished\"===this.playState&&void 0===this.pauseTime&&(s=this.totalDuration);const a=s/this.duration;let n=Math.floor(a);let r=a%1;!r&&a>=1&&(r=1);1===r&&n--;const h=n%2;(\"reverse\"===p||\"alternate\"===p&&h||\"alternate-reverse\"===p&&!h)&&(r=1-r);const o=s>=this.totalDuration?1:Math.min(r,1);const m=d(this.easing(o));t(m);const c=void 0===this.pauseTime&&(\"finished\"===this.playState||s>=this.totalDuration+u);if(c){this.playState=\"finished\";null===(e=this.resolve)||void 0===e?void 0:e.call(this,m)}else\"idle\"!==this.playState&&(this.frameRequestId=requestAnimationFrame(this.tick))};this.play()}play(){const t=performance.now();this.playState=\"running\";void 0!==this.pauseTime?this.startTime=t-this.pauseTime:this.startTime||(this.startTime=t);this.cancelTimestamp=this.startTime;this.pauseTime=void 0;this.frameRequestId=requestAnimationFrame(this.tick)}pause(){this.playState=\"paused\";this.pauseTime=this.t}finish(){this.playState=\"finished\";this.tick(0)}stop(){var t;this.playState=\"idle\";void 0!==this.frameRequestId&&cancelAnimationFrame(this.frameRequestId);null===(t=this.reject)||void 0===t?void 0:t.call(this,false)}cancel(){this.stop();this.tick(this.cancelTimestamp)}reverse(){this.rate*=-1}commitStyles(){}updateDuration(t){this.duration=t;this.totalDuration=t*(this.repeat+1)}get currentTime(){return this.t}set currentTime(t){void 0!==this.pauseTime||0===this.rate?this.pauseTime=t:this.startTime=performance.now()-t/this.rate}get playbackRate(){return this.rate}set playbackRate(t){this.rate=t}}export{Animation,getEasingFunction};\n\n//# sourceMappingURL=index.es.js.map","var extendStatics=function(e,t){extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])};return extendStatics(e,t)};function __extends(e,t){if(\"function\"!==typeof t&&null!==t)throw new TypeError(\"Class extends value \"+String(t)+\" is not a constructor or null\");extendStatics(e,t);function __(){this.constructor=e}e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)}var __assign=function(){__assign=Object.assign||function __assign(e){for(var t,r=1,n=arguments.length;r<n;r++){t=arguments[r];for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o])}return e};return __assign.apply(this,arguments)};function __rest(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&\"function\"===typeof Object.getOwnPropertySymbols){var o=0;for(n=Object.getOwnPropertySymbols(e);o<n.length;o++)t.indexOf(n[o])<0&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]])}return r}function __decorate(e,t,r,n){var o,a=arguments.length,i=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if(\"object\"===typeof Reflect&&\"function\"===typeof Reflect.decorate)i=Reflect.decorate(e,t,r,n);else for(var c=e.length-1;c>=0;c--)(o=e[c])&&(i=(a<3?o(i):a>3?o(t,r,i):o(t,r))||i);return a>3&&i&&Object.defineProperty(t,r,i),i}function __param(e,t){return function(r,n){t(r,n,e)}}function __metadata(e,t){if(\"object\"===typeof Reflect&&\"function\"===typeof Reflect.metadata)return Reflect.metadata(e,t)}function __awaiter(e,t,r,n){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,o){function fulfilled(e){try{step(n.next(e))}catch(e){o(e)}}function rejected(e){try{step(n.throw(e))}catch(e){o(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((n=n.apply(e,t||[])).next())}))}function __generator(e,t){var r,n,o,a,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:verb(0),throw:verb(1),return:verb(2)},\"function\"===typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function verb(e){return function(t){return step([e,t])}}function step(a){if(r)throw new TypeError(\"Generator is already executing.\");while(i)try{if(r=1,n&&(o=2&a[0]?n.return:a[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,a[1])).done)return o;(n=0,o)&&(a=[2&a[0],o.value]);switch(a[0]){case 0:case 1:o=a;break;case 4:i.label++;return{value:a[1],done:false};case 5:i.label++;n=a[1];a=[0];continue;case 7:a=i.ops.pop();i.trys.pop();continue;default:if(!(o=i.trys,o=o.length>0&&o[o.length-1])&&(6===a[0]||2===a[0])){i=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]<o[3])){i.label=a[1];break}if(6===a[0]&&i.label<o[1]){i.label=o[1];o=a;break}if(o&&i.label<o[2]){i.label=o[2];i.ops.push(a);break}o[2]&&i.ops.pop();i.trys.pop();continue}a=t.call(e,i)}catch(e){a=[6,e];n=0}finally{r=o=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:true}}}var e=Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!(\"get\"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:true,get:function(){return t[r]}});Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r);e[n]=t[r]};function __exportStar(t,r){for(var n in t)\"default\"===n||Object.prototype.hasOwnProperty.call(r,n)||e(r,t,n)}function __values(e){var t=\"function\"===typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&\"number\"===typeof e.length)return{next:function(){e&&n>=e.length&&(e=void 0);return{value:e&&e[n++],done:!e}}};throw new TypeError(t?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")}function __read(e,t){var r=\"function\"===typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,o,a=r.call(e),i=[];try{while((void 0===t||t-- >0)&&!(n=a.next()).done)i.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(r=a.return)&&r.call(a)}finally{if(o)throw o.error}}return i}\n/** @deprecated */function __spread(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(__read(arguments[t]));return e}\n/** @deprecated */function __spreadArrays(){for(var e=0,t=0,r=arguments.length;t<r;t++)e+=arguments[t].length;var n=Array(e),o=0;for(t=0;t<r;t++)for(var a=arguments[t],i=0,c=a.length;i<c;i++,o++)n[o]=a[i];return n}function __spreadArray(e,t,r){if(r||2===arguments.length)for(var n,o=0,a=t.length;o<a;o++)if(n||!(o in t)){n||(n=Array.prototype.slice.call(t,0,o));n[o]=t[o]}return e.concat(n||Array.prototype.slice.call(t))}function __await(e){return this instanceof __await?(this.v=e,this):new __await(e)}function __asyncGenerator(e,t,r){if(!Symbol.asyncIterator)throw new TypeError(\"Symbol.asyncIterator is not defined.\");var n,o=r.apply(e,t||[]),a=[];return n={},verb(\"next\"),verb(\"throw\"),verb(\"return\"),n[Symbol.asyncIterator]=function(){return this},n;function verb(e){o[e]&&(n[e]=function(t){return new Promise((function(r,n){a.push([e,t,r,n])>1||resume(e,t)}))})}function resume(e,t){try{step(o[e](t))}catch(e){settle(a[0][3],e)}}function step(e){e.value instanceof __await?Promise.resolve(e.value.v).then(fulfill,reject):settle(a[0][2],e)}function fulfill(e){resume(\"next\",e)}function reject(e){resume(\"throw\",e)}function settle(e,t){(e(t),a.shift(),a.length)&&resume(a[0][0],a[0][1])}}function __asyncDelegator(e){var t,r;return t={},verb(\"next\"),verb(\"throw\",(function(e){throw e})),verb(\"return\"),t[Symbol.iterator]=function(){return this},t;function verb(n,o){t[n]=e[n]?function(t){return(r=!r)?{value:__await(e[n](t)),done:\"return\"===n}:o?o(t):t}:o}}function __asyncValues(e){if(!Symbol.asyncIterator)throw new TypeError(\"Symbol.asyncIterator is not defined.\");var t,r=e[Symbol.asyncIterator];return r?r.call(e):(e=\"function\"===typeof __values?__values(e):e[Symbol.iterator](),t={},verb(\"next\"),verb(\"throw\"),verb(\"return\"),t[Symbol.asyncIterator]=function(){return this},t);function verb(r){t[r]=e[r]&&function(t){return new Promise((function(n,o){t=e[r](t),settle(n,o,t.done,t.value)}))}}function settle(e,t,r,n){Promise.resolve(n).then((function(t){e({value:t,done:r})}),t)}}function __makeTemplateObject(e,t){Object.defineProperty?Object.defineProperty(e,\"raw\",{value:t}):e.raw=t;return e}var t=Object.create?function(e,t){Object.defineProperty(e,\"default\",{enumerable:true,value:t})}:function(e,t){e.default=t};function __importStar(r){if(r&&r.__esModule)return r;var n={};if(null!=r)for(var o in r)\"default\"!==o&&Object.prototype.hasOwnProperty.call(r,o)&&e(n,r,o);t(n,r);return n}function __importDefault(e){return e&&e.__esModule?e:{default:e}}function __classPrivateFieldGet(e,t,r,n){if(\"a\"===r&&!n)throw new TypeError(\"Private accessor was defined without a getter\");if(\"function\"===typeof t?e!==t||!n:!t.has(e))throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");return\"m\"===r?n:\"a\"===r?n.call(e):n?n.value:t.get(e)}function __classPrivateFieldSet(e,t,r,n,o){if(\"m\"===n)throw new TypeError(\"Private method is not writable\");if(\"a\"===n&&!o)throw new TypeError(\"Private accessor was defined without a setter\");if(\"function\"===typeof t?e!==t||!o:!t.has(e))throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");return\"a\"===n?o.call(e,r):o?o.value=r:t.set(e,r),r}function __classPrivateFieldIn(e,t){if(null===t||\"object\"!==typeof t&&\"function\"!==typeof t)throw new TypeError(\"Cannot use 'in' operator on non-object\");return\"function\"===typeof e?t===e:e.has(t)}export{__assign,__asyncDelegator,__asyncGenerator,__asyncValues,__await,__awaiter,__classPrivateFieldGet,__classPrivateFieldIn,__classPrivateFieldSet,e as __createBinding,__decorate,__exportStar,__extends,__generator,__importDefault,__importStar,__makeTemplateObject,__metadata,__param,__read,__rest,__spread,__spreadArray,__spreadArrays,__values};\n\n//# sourceMappingURL=tslib.es6.js.map","var n={};Object.defineProperty(n,\"__esModule\",{value:true});n.warning=function(){};n.invariant=function(){};const e=n.__esModule,t=n.warning,r=n.invariant;export default n;export{e as __esModule,r as invariant,t as warning};\n\n//# sourceMappingURL=index.js.map","import{velocityPerSecond as e,time as t,noopReturn as s}from\"@motionone/utils\";const n=5;function calcGeneratorVelocity(t,s,r){const a=Math.max(s-n,0);return e(r-t(a),s-a)}const r={stiffness:100,damping:10,mass:1};const calcDampingRatio=(e=r.stiffness,t=r.damping,s=r.mass)=>t/(2*Math.sqrt(e*s));function hasReachedTarget(e,t,s){return e<t&&s>=t||e>t&&s<=t}const spring=({stiffness:e=r.stiffness,damping:s=r.damping,mass:n=r.mass,from:a=0,to:o=1,velocity:c=0,restSpeed:i=2,restDistance:h=.5}={})=>{c=c?t.s(c):0;const u={done:false,hasReachedTarget:false,current:a,target:o};const d=o-a;const f=Math.sqrt(e/n)/1e3;const l=calcDampingRatio(e,s,n);let g;if(l<1){const e=f*Math.sqrt(1-l*l);g=t=>o-Math.exp(-l*f*t)*((l*f*d-c)/e*Math.sin(e*t)+d*Math.cos(e*t))}else g=e=>o-Math.exp(-f*e)*(d+(f*d-c)*e);return e=>{u.current=g(e);const t=0===e?c:calcGeneratorVelocity(g,e,u.current);const s=Math.abs(t)<=i;const n=Math.abs(o-u.current)<=h;u.done=s&&n;u.hasReachedTarget=hasReachedTarget(a,o,u.current);return u}};const glide=({from:e=0,velocity:s=0,power:n=.8,decay:r=.325,bounceDamping:a,bounceStiffness:o,changeTarget:c,min:i,max:h,restDistance:u=.5,restSpeed:d})=>{r=t.ms(r);const f={hasReachedTarget:false,done:false,current:e,target:e};const isOutOfBounds=e=>void 0!==i&&e<i||void 0!==h&&e>h;const nearestBoundary=e=>void 0===i?h:void 0===h||Math.abs(i-e)<Math.abs(h-e)?i:h;let l=n*s;const g=e+l;const m=void 0===c?g:c(g);f.target=m;m!==g&&(l=m-e);const calcDelta=e=>-l*Math.exp(-e/r);const calcLatest=e=>m+calcDelta(e);const applyFriction=e=>{const t=calcDelta(e);const s=calcLatest(e);f.done=Math.abs(t)<=u;f.current=f.done?m:s};let p;let M;const checkCatchBoundary=e=>{if(isOutOfBounds(f.current)){p=e;M=spring({from:f.current,to:nearestBoundary(f.current),velocity:calcGeneratorVelocity(calcLatest,e,f.current),damping:a,stiffness:o,restDistance:u,restSpeed:d})}};checkCatchBoundary(0);return e=>{let t=false;if(!M&&void 0===p){t=true;applyFriction(e);checkCatchBoundary(e)}if(void 0!==p&&e>p){f.hasReachedTarget=true;return M(e-p)}f.hasReachedTarget=false;!t&&applyFriction(e);return f}};const a=10;const o=1e4;function pregenerateKeyframes(e,t=s){let n;let r=a;let c=e(0);const i=[t(c.current)];while(!c.done&&r<o){c=e(r);i.push(t(c.done?c.target:c.current));void 0===n&&c.hasReachedTarget&&(n=r);r+=a}const h=r-a;1===i.length&&i.push(c.current);return{keyframes:i,duration:h/1e3,overshootDuration:(null!==n&&void 0!==n?n:h)/1e3}}export{calcGeneratorVelocity,glide,pregenerateKeyframes,spring};\n\n//# sourceMappingURL=index.es.js.map","import{MotionValue as e}from\"@motionone/types\";import{noopReturn as t,addUniqueItem as n,isCubicBezier as o,defaults as i,isEasingGenerator as s,isNumber as r,time as a,isEasingList as c,noop as l,removeItem as f,mix as u,getEasingForSegment as d,isString as g,defaultOffset as m,fillOffset as h,progress as p,velocityPerSecond as v,interpolate as y}from\"@motionone/utils\";import{Animation as w,getEasingFunction as E}from\"@motionone/animation\";import{__rest as b}from\"tslib\";import{invariant as S}from\"hey-listen\";import{pregenerateKeyframes as A,calcGeneratorVelocity as O,spring as x,glide as V}from\"@motionone/generators\";const z=new WeakMap;function getAnimationData(e){z.has(e)||z.set(e,{transforms:[],values:new Map});return z.get(e)}function getMotionValue(t,n){t.has(n)||t.set(n,new e);return t.get(n)}const W=[\"\",\"X\",\"Y\",\"Z\"];const L=[\"translate\",\"scale\",\"rotate\",\"skew\"];const T={x:\"translateX\",y:\"translateY\",z:\"translateZ\"};const D={syntax:\"<angle>\",initialValue:\"0deg\",toDefaultUnit:e=>e+\"deg\"};const M={translate:{syntax:\"<length-percentage>\",initialValue:\"0px\",toDefaultUnit:e=>e+\"px\"},rotate:D,scale:{syntax:\"<number>\",initialValue:1,toDefaultUnit:t},skew:D};const k=new Map;const asTransformCssVar=e=>`--motion-${e}`;const B=[\"x\",\"y\",\"z\"];L.forEach((e=>{W.forEach((t=>{B.push(e+t);k.set(asTransformCssVar(e+t),M[e])}))}));const compareTransformOrder=(e,t)=>B.indexOf(e)-B.indexOf(t);const j=new Set(B);const isTransform=e=>j.has(e);const addTransformToElement=(e,t)=>{T[t]&&(t=T[t]);const{transforms:o}=getAnimationData(e);n(o,t);e.style.transform=buildTransformTemplate(o)};const buildTransformTemplate=e=>e.sort(compareTransformOrder).reduce(transformListToString,\"\").trim();const transformListToString=(e,t)=>`${e} ${t}(var(${asTransformCssVar(t)}))`;const isCssVar=e=>e.startsWith(\"--\");const P=new Set;function registerCssVariable(e){if(!P.has(e)){P.add(e);try{const{syntax:t,initialValue:n}=k.has(e)?k.get(e):{};CSS.registerProperty({name:e,inherits:false,syntax:t,initialValue:n})}catch(e){}}}const convertEasing=e=>o(e)?cubicBezierAsString(e):e;const cubicBezierAsString=([e,t,n,o])=>`cubic-bezier(${e}, ${t}, ${n}, ${o})`;const testAnimation=e=>document.createElement(\"div\").animate(e,{duration:.001});const C={cssRegisterProperty:()=>\"undefined\"!==typeof CSS&&Object.hasOwnProperty.call(CSS,\"registerProperty\"),waapi:()=>Object.hasOwnProperty.call(Element.prototype,\"animate\"),partialKeyframes:()=>{try{testAnimation({opacity:[1]})}catch(e){return false}return true},finished:()=>Boolean(testAnimation({opacity:[0,1]}).finished)};const $={};const R={};for(const e in C)R[e]=()=>{void 0===$[e]&&($[e]=C[e]());return $[e]};function hydrateKeyframes(e,t){for(let n=0;n<e.length;n++)null===e[n]&&(e[n]=n?e[n-1]:t());return e}const keyframesList=e=>Array.isArray(e)?e:[e];function getStyleName(e){T[e]&&(e=T[e]);return isTransform(e)?asTransformCssVar(e):e}const H={get:(e,t)=>{t=getStyleName(t);let n=isCssVar(t)?e.style.getPropertyValue(t):getComputedStyle(e)[t];if(!n&&0!==n){const e=k.get(t);e&&(n=e.initialValue)}return n},set:(e,t,n)=>{t=getStyleName(t);isCssVar(t)?e.style.setProperty(t,n):e.style[t]=n}};function stopAnimation(e,t=true){if(e&&\"finished\"!==e.playState)try{if(e.stop)e.stop();else{t&&e.commitStyles();e.cancel()}}catch(e){}}function getDevToolsRecord(){return window.__MOTION_DEV_TOOLS_RECORD}function animateStyle(e,t,n,o={}){const f=getDevToolsRecord();const u=false!==o.record&&f;let d;let{duration:g=i.duration,delay:m=i.delay,endDelay:h=i.endDelay,repeat:p=i.repeat,easing:v=i.easing,direction:y,offset:E,allowWebkitAcceleration:b=false}=o;const S=getAnimationData(e);let A=R.waapi();const O=isTransform(t);O&&addTransformToElement(e,t);const x=getStyleName(t);const V=getMotionValue(S.values,x);const z=k.get(x);stopAnimation(V.animation,!(s(v)&&V.generator)&&false!==o.record);return()=>{const readInitialValue=()=>{var t,n;return null!==(n=null!==(t=H.get(e,x))&&void 0!==t?t:null===z||void 0===z?void 0:z.initialValue)&&void 0!==n?n:0};let i=hydrateKeyframes(keyframesList(n),readInitialValue);if(s(v)){const e=v.createAnimation(i,readInitialValue,O,x,V);v=e.easing;void 0!==e.keyframes&&(i=e.keyframes);void 0!==e.duration&&(g=e.duration)}isCssVar(x)&&(R.cssRegisterProperty()?registerCssVariable(x):A=false);if(A){z&&(i=i.map((e=>r(e)?z.toDefaultUnit(e):e)));1!==i.length||R.partialKeyframes()&&!u||i.unshift(readInitialValue());const t={delay:a.ms(m),duration:a.ms(g),endDelay:a.ms(h),easing:c(v)?void 0:convertEasing(v),direction:y,iterations:p+1,fill:\"both\"};d=e.animate({[x]:i,offset:E,easing:c(v)?v.map(convertEasing):void 0},t);d.finished||(d.finished=new Promise(((e,t)=>{d.onfinish=e;d.oncancel=t})));const n=i[i.length-1];d.finished.then((()=>{H.set(e,x,n);d.cancel()})).catch(l);b||(d.playbackRate=1.000001)}else if(O){i=i.map((e=>\"string\"===typeof e?parseFloat(e):e));1===i.length&&i.unshift(parseFloat(readInitialValue()));const render=t=>{z&&(t=z.toDefaultUnit(t));H.set(e,x,t)};d=new w(render,i,Object.assign(Object.assign({},o),{duration:g,easing:v}))}else{const t=i[i.length-1];H.set(e,x,z&&r(t)?z.toDefaultUnit(t):t)}u&&f(e,t,i,{duration:g,delay:m,easing:v,repeat:p,offset:E},\"motion-one\");V.setAnimation(d);return d}}const getOptions=(e,t)=>e[t]?Object.assign(Object.assign({},e),e[t]):Object.assign({},e);function resolveElements(e,t){var n;if(\"string\"===typeof e)if(t){null!==(n=t[e])&&void 0!==n?n:t[e]=document.querySelectorAll(e);e=t[e]}else e=document.querySelectorAll(e);else e instanceof Element&&(e=[e]);return Array.from(e||[])}const createAnimation=e=>e();const withControls=(e,t,n=i.duration)=>new Proxy({animations:e.map(createAnimation).filter(Boolean),duration:n,options:t},I);const getActiveAnimation=e=>e.animations[0];const I={get:(e,t)=>{const n=getActiveAnimation(e);switch(t){case\"duration\":return e.duration;case\"currentTime\":return a.s((null===n||void 0===n?void 0:n[t])||0);case\"playbackRate\":case\"playState\":return null===n||void 0===n?void 0:n[t];case\"finished\":e.finished||(e.finished=Promise.all(e.animations.map(selectFinished)).catch(l));return e.finished;case\"stop\":return()=>{e.animations.forEach((e=>stopAnimation(e)))};case\"forEachNative\":return t=>{e.animations.forEach((n=>t(n,e)))};default:return\"undefined\"===typeof(null===n||void 0===n?void 0:n[t])?void 0:()=>e.animations.forEach((e=>e[t]()))}},set:(e,t,n)=>{switch(t){case\"currentTime\":n=a.ms(n);case\"currentTime\":case\"playbackRate\":for(let o=0;o<e.animations.length;o++)e.animations[o][t]=n;return true}return false}};const selectFinished=e=>e.finished;function stagger(e=.1,{start:t=0,from:n=0,easing:o}={}){return(i,s)=>{const a=r(n)?n:getFromIndex(n,s);const c=Math.abs(a-i);let l=e*c;if(o){const t=s*e;const n=E(o);l=n(l/t)*t}return t+l}}function getFromIndex(e,t){if(\"first\"===e)return 0;{const n=t-1;return\"last\"===e?n:n/2}}function resolveOption(e,t,n){return\"function\"===typeof e?e(t,n):e}function animate(e,t,n={}){e=resolveElements(e);const o=e.length;const i=[];for(let s=0;s<o;s++){const r=e[s];for(const e in t){const a=getOptions(n,e);a.delay=resolveOption(a.delay,s,o);const c=animateStyle(r,e,t[e],a);i.push(c)}}return withControls(i,n,n.duration)}function calcNextTime(e,t,n,o){var i;return r(t)?t:t.startsWith(\"-\")||t.startsWith(\"+\")?Math.max(0,e+parseFloat(t)):\"<\"===t?n:null!==(i=o.get(t))&&void 0!==i?i:e}function eraseKeyframes(e,t,n){for(let o=0;o<e.length;o++){const i=e[o];if(i.at>t&&i.at<n){f(e,i);o--}}}function addKeyframes(e,t,n,o,i,s){eraseKeyframes(e,i,s);for(let r=0;r<t.length;r++)e.push({value:t[r],at:u(i,s,o[r]),easing:d(n,r)})}function compareByTime(e,t){return e.at===t.at?null===e.value?1:-1:e.at-t.at}function timeline(e,t={}){var n;const o=createAnimationsFromTimeline(e,t);const i=o.map((e=>animateStyle(...e))).filter(Boolean);return withControls(i,t,null===(n=o[0])||void 0===n?void 0:n[3].duration)}function createAnimationsFromTimeline(e,t={}){var{defaultOptions:n={}}=t,o=b(t,[\"defaultOptions\"]);const r=[];const a=new Map;const c={};const l=new Map;let f=0;let u=0;let d=0;for(let t=0;t<e.length;t++){const o=e[t];if(g(o)){l.set(o,u);continue}if(!Array.isArray(o)){l.set(o.name,calcNextTime(u,o.at,f,l));continue}const[r,p,v={}]=o;void 0!==v.at&&(u=calcNextTime(u,v.at,f,l));let y=0;const w=resolveElements(r,c);const E=w.length;for(let e=0;e<E;e++){const t=w[e];const o=getElementSequence(t,a);for(const t in p){const r=getValueSequence(t,o);let a=keyframesList(p[t]);const c=getOptions(v,t);let{duration:l=n.duration||i.duration,easing:f=n.easing||i.easing}=c;if(s(f)){const e=isTransform(t);S(2===a.length||!e,\"spring must be provided 2 keyframes within timeline\");const n=f.createAnimation(a,(()=>\"0\"),e);f=n.easing;void 0!==n.keyframes&&(a=n.keyframes);void 0!==n.duration&&(l=n.duration)}const g=resolveOption(v.delay,e,E)||0;const w=u+g;const b=w+l;let{offset:A=m(a.length)}=c;1===A.length&&0===A[0]&&(A[1]=1);const O=length-a.length;O>0&&h(A,O);1===a.length&&a.unshift(null);addKeyframes(r,a,f,A,w,b);y=Math.max(g+l,y);d=Math.max(b,d)}}f=u;u+=y}a.forEach(((e,t)=>{for(const s in e){const a=e[s];a.sort(compareByTime);const c=[];const l=[];const f=[];for(let e=0;e<a.length;e++){const{at:t,value:n,easing:o}=a[e];c.push(n);l.push(p(0,d,t));f.push(o||i.easing)}if(0!==l[0]){l.unshift(0);c.unshift(c[0]);f.unshift(\"linear\")}if(1!==l[l.length-1]){l.push(1);c.push(null)}r.push([t,s,c,Object.assign(Object.assign(Object.assign({},n),{duration:d,easing:f,offset:l}),o)])}}));return r}function getElementSequence(e,t){!t.has(e)&&t.set(e,{});return t.get(e)}function getValueSequence(e,t){t[e]||(t[e]=[]);return t[e]}function createGeneratorEasing(e){const t=new WeakMap;return(n={})=>{const o=new Map;const getGenerator=(t=0,i=100,s=0,r=false)=>{const a=`${t}-${i}-${s}-${r}`;o.has(a)||o.set(a,e(Object.assign({from:t,to:i,velocity:s,restSpeed:r?.05:2,restDistance:r?.01:.5},n)));return o.get(a)};const getKeyframes=e=>{t.has(e)||t.set(e,A(e));return t.get(e)};return{createAnimation:(e,t,n,o,i)=>{var s,r;let a;const c=e.length;let l=n&&c<=2&&e.every(isNumberOrNull);if(l){const n=e[c-1];const l=1===c?null:e[0];let f=0;let u=0;const d=null===i||void 0===i?void 0:i.generator;if(d){const{animation:t,generatorStartTime:n}=i;const o=(null===t||void 0===t?void 0:t.startTime)||n||0;const r=(null===t||void 0===t?void 0:t.currentTime)||performance.now()-o;const a=d(r).current;u=null!==(s=l)&&void 0!==s?s:a;(1===c||2===c&&null===e[0])&&(f=O((e=>d(e).current),r,a))}else u=null!==(r=l)&&void 0!==r?r:parseFloat(t());const g=getGenerator(u,n,f,null===o||void 0===o?void 0:o.includes(\"scale\"));const m=getKeyframes(g);a=Object.assign(Object.assign({},m),{easing:\"linear\"});if(i){i.generator=g;i.generatorStartTime=performance.now()}}else{const e=getKeyframes(getGenerator(0,100));a={easing:\"ease\",duration:e.overshootDuration}}return a}}}}const isNumberOrNull=e=>\"string\"!==typeof e;const N=createGeneratorEasing(x);const F=createGeneratorEasing(V);const U={any:0,all:1};function inView$1(e,t,{root:n,margin:o,amount:i=\"any\"}={}){if(\"undefined\"===typeof IntersectionObserver)return()=>{};const s=resolveElements(e);const r=new WeakMap;const onIntersectionChange=e=>{e.forEach((e=>{const n=r.get(e.target);if(e.isIntersecting!==Boolean(n))if(e.isIntersecting){const n=t(e);\"function\"===typeof n?r.set(e.target,n):a.unobserve(e.target)}else if(n){n(e);r.delete(e.target)}}))};const a=new IntersectionObserver(onIntersectionChange,{root:n,rootMargin:o,threshold:\"number\"===typeof i?i:U[i]});s.forEach((e=>a.observe(e)));return()=>a.disconnect()}const q=new WeakMap;let K;function getElementSize(e,t){if(t){const{inlineSize:e,blockSize:n}=t[0];return{width:e,height:n}}return e instanceof SVGElement&&\"getBBox\"in e?e.getBBox():{width:e.offsetWidth,height:e.offsetHeight}}function notifyTarget({target:e,contentRect:t,borderBoxSize:n}){var o;null===(o=q.get(e))||void 0===o?void 0:o.forEach((o=>{o({target:e,contentSize:t,get size(){return getElementSize(e,n)}})}))}function notifyAll(e){e.forEach(notifyTarget)}function createResizeObserver(){\"undefined\"!==typeof ResizeObserver&&(K=new ResizeObserver(notifyAll))}function resizeElement(e,t){K||createResizeObserver();const n=resolveElements(e);n.forEach((e=>{let n=q.get(e);if(!n){n=new Set;q.set(e,n)}n.add(t);null===K||void 0===K?void 0:K.observe(e)}));return()=>{n.forEach((e=>{const n=q.get(e);null===n||void 0===n?void 0:n.delete(t);(null===n||void 0===n?void 0:n.size)||(null===K||void 0===K?void 0:K.unobserve(e))}))}}const G=new Set;let _;function createWindowResizeHandler(){_=()=>{const e={width:window.innerWidth,height:window.innerHeight};const t={target:window,size:e,contentSize:e};G.forEach((e=>e(t)))};window.addEventListener(\"resize\",_)}function resizeWindow(e){G.add(e);_||createWindowResizeHandler();return()=>{G.delete(e);!G.size&&_&&(_=void 0)}}function resize(e,t){return\"function\"===typeof e?resizeWindow(e):resizeElement(e,t)}const Z=50;const createAxisInfo=()=>({current:0,offset:[],progress:0,scrollLength:0,targetOffset:0,targetLength:0,containerLength:0,velocity:0});const createScrollInfo=()=>({time:0,x:createAxisInfo(),y:createAxisInfo()});const X={x:{length:\"Width\",position:\"Left\"},y:{length:\"Height\",position:\"Top\"}};function updateAxisInfo(e,t,n,o){const i=n[t];const{length:s,position:r}=X[t];const a=i.current;const c=n.time;i.current=e[\"scroll\"+r];i.scrollLength=e[\"scroll\"+s]-e[\"client\"+s];i.offset.length=0;i.offset[0]=0;i.offset[1]=i.scrollLength;i.progress=p(0,i.scrollLength,i.current);const l=o-c;i.velocity=l>Z?0:v(i.current-a,l)}function updateScrollInfo(e,t,n){updateAxisInfo(e,\"x\",t,n);updateAxisInfo(e,\"y\",t,n);t.time=n}function calcInset(e,t){let n={x:0,y:0};let o=e;while(o&&o!==t)if(o instanceof HTMLElement){n.x+=o.offsetLeft;n.y+=o.offsetTop;o=o.offsetParent}else if(o instanceof SVGGraphicsElement&&\"getBBox\"in o){const{top:e,left:t}=o.getBBox();n.x+=t;n.y+=e;while(o&&\"svg\"!==o.tagName)o=o.parentNode}return n}const Y={Enter:[[0,1],[1,1]],Exit:[[0,0],[1,0]],Any:[[1,0],[0,1]],All:[[0,0],[1,1]]};const J={start:0,center:.5,end:1};function resolveEdge(e,t,n=0){let o=0;void 0!==J[e]&&(e=J[e]);if(g(e)){const t=parseFloat(e);e.endsWith(\"px\")?o=t:e.endsWith(\"%\")?e=t/100:e.endsWith(\"vw\")?o=t/100*document.documentElement.clientWidth:e.endsWith(\"vh\")?o=t/100*document.documentElement.clientHeight:e=t}r(e)&&(o=t*e);return n+o}const Q=[0,0];function resolveOffset(e,t,n,o){let i=Array.isArray(e)?e:Q;let s=0;let a=0;if(r(e))i=[e,e];else if(g(e)){e=e.trim();i=e.includes(\" \")?e.split(\" \"):[e,J[e]?e:\"0\"]}s=resolveEdge(i[0],n,o);a=resolveEdge(i[1],t);return s-a}const ee={x:0,y:0};function resolveOffsets(e,t,n){let{offset:o=Y.All}=n;const{target:i=e,axis:s=\"y\"}=n;const r=\"y\"===s?\"height\":\"width\";const a=i!==e?calcInset(i,e):ee;const c=i===e?{width:e.scrollWidth,height:e.scrollHeight}:{width:i.clientWidth,height:i.clientHeight};const l={width:e.clientWidth,height:e.clientHeight};t[s].offset.length=0;let f=!t[s].interpolate;const u=o.length;for(let e=0;e<u;e++){const n=resolveOffset(o[e],l[r],c[r],a[s]);f||n===t[s].interpolatorOffsets[e]||(f=true);t[s].offset[e]=n}if(f){t[s].interpolate=y(m(u),t[s].offset);t[s].interpolatorOffsets=[...t[s].offset]}t[s].progress=t[s].interpolate(t[s].current)}function measure(e,t=e,n){n.x.targetOffset=0;n.y.targetOffset=0;if(t!==e){let o=t;while(o&&o!=e){n.x.targetOffset+=o.offsetLeft;n.y.targetOffset+=o.offsetTop;o=o.offsetParent}}n.x.targetLength=t===e?t.scrollWidth:t.clientWidth;n.y.targetLength=t===e?t.scrollHeight:t.clientHeight;n.x.containerLength=e.clientWidth;n.y.containerLength=e.clientHeight}function createOnScrollHandler(e,t,n,o={}){const i=o.axis||\"y\";return{measure:()=>measure(e,o.target,n),update:t=>{updateScrollInfo(e,n,t);(o.offset||o.target)&&resolveOffsets(e,n,o)},notify:\"function\"===typeof t?()=>t(n):scrubAnimation(t,n[i])}}function scrubAnimation(e,n){e.pause();e.forEachNative(((e,{easing:n})=>{var o,i;if(e.updateDuration){n||(e.easing=t);e.updateDuration(1)}else{const t={duration:1e3};n||(t.easing=\"linear\");null===(i=null===(o=e.effect)||void 0===o?void 0:o.updateTiming)||void 0===i?void 0:i.call(o,t)}}));return()=>{e.currentTime=n.progress}}const te=new WeakMap;const ne=new WeakMap;const oe=new WeakMap;const getEventTarget=e=>e===document.documentElement?window:e;function scroll(e,t={}){var{container:n=document.documentElement}=t,o=b(t,[\"container\"]);let i=oe.get(n);if(!i){i=new Set;oe.set(n,i)}const s=createScrollInfo();const r=createOnScrollHandler(n,e,s,o);i.add(r);if(!te.has(n)){const listener=()=>{const e=performance.now();for(const e of i)e.measure();for(const t of i)t.update(e);for(const e of i)e.notify()};te.set(n,listener);const e=getEventTarget(n);window.addEventListener(\"resize\",listener,{passive:true});n!==document.documentElement&&ne.set(n,resize(n,listener));e.addEventListener(\"scroll\",listener,{passive:true})}const a=te.get(n);const c=requestAnimationFrame(a);return()=>{var t;\"function\"!==typeof e&&e.stop();cancelAnimationFrame(c);const o=oe.get(n);if(!o)return;o.delete(r);if(o.size)return;const i=te.get(n);te.delete(n);if(i){getEventTarget(n).removeEventListener(\"scroll\",i);null===(t=ne.get(n))||void 0===t?void 0:t();window.removeEventListener(\"resize\",i)}}}function hasChanged(e,t){return typeof e!==typeof t||(Array.isArray(e)&&Array.isArray(t)?!shallowCompare(e,t):e!==t)}function shallowCompare(e,t){const n=t.length;if(n!==e.length)return false;for(let o=0;o<n;o++)if(t[o]!==e[o])return false;return true}function isVariant(e){return\"object\"===typeof e}function resolveVariant(e,t){return isVariant(e)?e:e&&t?t[e]:void 0}let ie;function processScheduledAnimations(){if(!ie)return;const e=ie.sort(compareByDepth).map(fireAnimateUpdates);e.forEach(fireNext);e.forEach(fireNext);ie=void 0}function scheduleAnimation(e){if(ie)n(ie,e);else{ie=[e];requestAnimationFrame(processScheduledAnimations)}}function unscheduleAnimation(e){ie&&f(ie,e)}const compareByDepth=(e,t)=>e.getDepth()-t.getDepth();const fireAnimateUpdates=e=>e.animateUpdates();const fireNext=e=>e.next();const motionEvent=(e,t)=>new CustomEvent(e,{detail:{target:t}});function dispatchPointerEvent(e,t,n){e.dispatchEvent(new CustomEvent(t,{detail:{originalEvent:n}}))}function dispatchViewEvent(e,t,n){e.dispatchEvent(new CustomEvent(t,{detail:{originalEntry:n}}))}const se={isActive:e=>Boolean(e.inView),subscribe:(e,{enable:t,disable:n},{inViewOptions:o={}})=>{const{once:i}=o,s=b(o,[\"once\"]);return inView$1(e,(o=>{t();dispatchViewEvent(e,\"viewenter\",o);if(!i)return t=>{n();dispatchViewEvent(e,\"viewleave\",t)}}),s)}};const mouseEvent=(e,t,n)=>o=>{if(!o.pointerType||\"mouse\"===o.pointerType){n();dispatchPointerEvent(e,t,o)}};const re={isActive:e=>Boolean(e.hover),subscribe:(e,{enable:t,disable:n})=>{const o=mouseEvent(e,\"hoverstart\",t);const i=mouseEvent(e,\"hoverend\",n);e.addEventListener(\"pointerenter\",o);e.addEventListener(\"pointerleave\",i);return()=>{e.removeEventListener(\"pointerenter\",o);e.removeEventListener(\"pointerleave\",i)}}};const ae={isActive:e=>Boolean(e.press),subscribe:(e,{enable:t,disable:n})=>{const onPointerUp=t=>{n();dispatchPointerEvent(e,\"pressend\",t);window.removeEventListener(\"pointerup\",onPointerUp)};const onPointerDown=n=>{t();dispatchPointerEvent(e,\"pressstart\",n);window.addEventListener(\"pointerup\",onPointerUp)};e.addEventListener(\"pointerdown\",onPointerDown);return()=>{e.removeEventListener(\"pointerdown\",onPointerDown);window.removeEventListener(\"pointerup\",onPointerUp)}}};const ce={inView:se,hover:re,press:ae};const le=[\"initial\",\"animate\",...Object.keys(ce),\"exit\"];const fe=new WeakMap;function createMotionState(e={},t){let n;let o=t?t.getDepth()+1:0;const i={initial:true,animate:true};const s={};const r={};for(const n of le)r[n]=\"string\"===typeof e[n]?e[n]:null===t||void 0===t?void 0:t.getContext()[n];const a=false===e.initial?\"animate\":\"initial\";let c=resolveVariant(e[a]||r[a],e.variants)||{},f=b(c,[\"transition\"]);const u=Object.assign({},f);function*animateUpdates(){var t,o;const s=f;f={};const r={};for(const n of le){if(!i[n])continue;const s=resolveVariant(e[n]);if(s)for(const n in s)if(\"transition\"!==n){f[n]=s[n];r[n]=getOptions(null!==(o=null!==(t=s.transition)&&void 0!==t?t:e.transition)&&void 0!==o?o:{},n)}}const a=new Set([...Object.keys(f),...Object.keys(s)]);const c=[];a.forEach((e=>{var t;void 0===f[e]&&(f[e]=u[e]);if(hasChanged(s[e],f[e])){null!==(t=u[e])&&void 0!==t?t:u[e]=H.get(n,e);c.push(animateStyle(n,e,f[e],r[e]))}}));yield;const d=c.map((e=>e())).filter(Boolean);if(!d.length)return;const g=f;n.dispatchEvent(motionEvent(\"motionstart\",g));Promise.all(d.map((e=>e.finished))).then((()=>{n.dispatchEvent(motionEvent(\"motioncomplete\",g))})).catch(l)}const setGesture=(e,t)=>()=>{i[e]=t;scheduleAnimation(d)};const updateGestureSubscriptions=()=>{for(const t in ce){const o=ce[t].isActive(e);const i=s[t];if(o&&!i)s[t]=ce[t].subscribe(n,{enable:setGesture(t,true),disable:setGesture(t,false)},e);else if(!o&&i){i();delete s[t]}}};const d={update:t=>{if(n){e=t;updateGestureSubscriptions();scheduleAnimation(d)}},setActive:(e,t)=>{if(n){i[e]=t;scheduleAnimation(d)}},animateUpdates:animateUpdates,getDepth:()=>o,getTarget:()=>f,getOptions:()=>e,getContext:()=>r,mount:e=>{S(Boolean(e),\"Animation state must be mounted with valid Element\");n=e;fe.set(n,d);updateGestureSubscriptions();return()=>{fe.delete(n);unscheduleAnimation(d);for(const e in s)s[e]()}},isMounted:()=>Boolean(n)};return d}function createStyles(e){const t={};const n=[];for(let o in e){const i=e[o];if(isTransform(o)){T[o]&&(o=T[o]);n.push(o);o=asTransformCssVar(o)}let s=Array.isArray(i)?i[0]:i;const a=k.get(o);a&&(s=r(i)?a.toDefaultUnit(i):i);t[o]=s}n.length&&(t.transform=buildTransformTemplate(n));return t}const camelLetterToPipeLetter=e=>`-${e.toLowerCase()}`;const camelToPipeCase=e=>e.replace(/[A-Z]/g,camelLetterToPipeLetter);function createStyleString(e={}){const t=createStyles(e);let n=\"\";for(const e in t){n+=e.startsWith(\"--\")?e:camelToPipeCase(e);n+=`: ${t[e]}; `}return n}export{Y as ScrollOffset,animate,animateStyle,createMotionState,createStyleString,createStyles,getAnimationData,getStyleName,F as glide,inView$1 as inView,fe as mountedStates,resize,scroll,N as spring,stagger,H as style,timeline,withControls};\n\n//# sourceMappingURL=index.es.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport * as React from \"react\";\nexport const containerStyles = {\n    width: \"100%\",\n    height: \"100%\",\n    display: \"flex\",\n    justifyContent: \"center\",\n    alignItems: \"center\"\n};\nconst nullIconStyle = {\n    minWidth: \"10px\",\n    minHeight: \"10px\",\n    maxWidth: \"20px\",\n    maxHeight: \"20px\",\n    width: \"60%\",\n    height: \"60%\"\n};\nconst emptyStateStyle = {\n    ...containerStyles,\n    borderRadius: 6,\n    background: \"rgba(149, 149, 149, 0.1)\",\n    border: \"1px dashed rgba(149, 149, 149, 0.15)\",\n    color: \"#a5a5a5\",\n    flexDirection: \"column\"\n};\nexport const NullState = /*#__PURE__*/ React.forwardRef((_, ref)=>{\n    return(/*#__PURE__*/ _jsx(\"div\", {\n        style: emptyStateStyle,\n        ref: ref\n    }));\n}) /*\n\n<svg\n                xmlns=\"http://www.w3.org/2000/svg\"\n                viewBox=\"0 0 30 30\"\n                style={nullIconStyle}\n            >\n                <path\n                    d=\"M 12.857 0 C 19.958 0 25.714 5.756 25.714 12.857 C 25.714 19.958 19.958 25.714 12.857 25.714 C 5.756 25.714 0 19.958 0 12.857 C 0 5.756 5.756 0 12.857 0 Z\"\n                    fill=\"#FFFFFF\"\n                ></path>\n                <path\n                    d=\"M 20.357 20.357 L 27.857 27.857\"\n                    fill=\"transparent\"\n                    strokeWidth=\"4.28\"\n                    stroke=\"#FFFFFF\"\n                    strokeLinecap=\"round\"\n                ></path>\n                <g transform=\"translate(9.643 6.429)\">\n                    <path\n                        d=\"M 3.214 12.857 L 3.214 12.857\"\n                        fill=\"transparent\"\n                        strokeWidth=\"3.75\"\n                        stroke=\"currentColor\"\n                        strokeLinecap=\"round\"\n                    ></path>\n                    <path\n                        d=\"M 0 3.214 C 0 1.004 1.843 0 3.214 0 C 4.586 0 6.429 0.603 6.429 3.214 C 6.429 5.826 3.214 5.913 3.214 7.232 C 3.214 8.552 3.214 8.571 3.214 8.571\"\n                        fill=\"transparent\"\n                        strokeWidth=\"3.22\"\n                        stroke=\"currentColor\"\n                        strokeLinecap=\"round\"\n                        strokeLinejoin=\"round\"\n                    ></path>\n                </g>\n            </svg>\n            */ ;\n\nexport const __FramerMetadata__ = {\"exports\":{\"containerStyles\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"NullState\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./nullstate.map","/*\n * nullstate (framer/icon-nullstate@0.7.0)\n *\n * Learn More: https://www.framer.com/asset-urls\n */\n\nexport * from \"https://framerusercontent.com/modules/DyldKav0OOAWR3bCAlhK/8c3l9FzyOlGpbPncYhfc/nullstate.js\"\n","let Component;\nlet IconInner;\nvar Icon = (React) => {\n  if (!Component) {\n    Component = /* @__PURE__ */ new Map([\n      [\n        \"bold\",\n        /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(\"path\", { d: \"M222.14,105.85l-80-80a20,20,0,0,0-28.28,0l-80,80A19.86,19.86,0,0,0,28,120v96a12,12,0,0,0,12,12h64a12,12,0,0,0,12-12V164h24v52a12,12,0,0,0,12,12h64a12,12,0,0,0,12-12V120A19.86,19.86,0,0,0,222.14,105.85ZM204,204H164V152a12,12,0,0,0-12-12H104a12,12,0,0,0-12,12v52H52V121.65l76-76,76,76Z\" }))\n      ],\n      [\n        \"duotone\",\n        /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(\n          \"path\",\n          {\n            d: \"M216,120v96H152V152H104v64H40V120a8,8,0,0,1,2.34-5.66l80-80a8,8,0,0,1,11.32,0l80,80A8,8,0,0,1,216,120Z\",\n            opacity: \"0.2\"\n          }\n        ), /* @__PURE__ */ React.createElement(\"path\", { d: \"M219.31,108.68l-80-80a16,16,0,0,0-22.62,0l-80,80A15.87,15.87,0,0,0,32,120v96a8,8,0,0,0,8,8h64a8,8,0,0,0,8-8V160h32v56a8,8,0,0,0,8,8h64a8,8,0,0,0,8-8V120A15.87,15.87,0,0,0,219.31,108.68ZM208,208H160V152a8,8,0,0,0-8-8H104a8,8,0,0,0-8,8v56H48V120l80-80,80,80Z\" }))\n      ],\n      [\n        \"fill\",\n        /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(\"path\", { d: \"M224,120v96a8,8,0,0,1-8,8H160a8,8,0,0,1-8-8V164a4,4,0,0,0-4-4H108a4,4,0,0,0-4,4v52a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V120a16,16,0,0,1,4.69-11.31l80-80a16,16,0,0,1,22.62,0l80,80A16,16,0,0,1,224,120Z\" }))\n      ],\n      [\n        \"light\",\n        /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(\"path\", { d: \"M217.9,110.1l-80-80a14,14,0,0,0-19.8,0l-80,80A13.92,13.92,0,0,0,34,120v96a6,6,0,0,0,6,6h64a6,6,0,0,0,6-6V158h36v58a6,6,0,0,0,6,6h64a6,6,0,0,0,6-6V120A13.92,13.92,0,0,0,217.9,110.1ZM210,210H158V152a6,6,0,0,0-6-6H104a6,6,0,0,0-6,6v58H46V120a2,2,0,0,1,.58-1.42l80-80a2,2,0,0,1,2.84,0l80,80A2,2,0,0,1,210,120Z\" }))\n      ],\n      [\n        \"regular\",\n        /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(\"path\", { d: \"M219.31,108.68l-80-80a16,16,0,0,0-22.62,0l-80,80A15.87,15.87,0,0,0,32,120v96a8,8,0,0,0,8,8h64a8,8,0,0,0,8-8V160h32v56a8,8,0,0,0,8,8h64a8,8,0,0,0,8-8V120A15.87,15.87,0,0,0,219.31,108.68ZM208,208H160V152a8,8,0,0,0-8-8H104a8,8,0,0,0-8,8v56H48V120l80-80,80,80Z\" }))\n      ],\n      [\n        \"thin\",\n        /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(\"path\", { d: \"M216.49,111.51l-80-80a12,12,0,0,0-17,0l-80,80A12,12,0,0,0,36,120v96a4,4,0,0,0,4,4h64a4,4,0,0,0,4-4V156h40v60a4,4,0,0,0,4,4h64a4,4,0,0,0,4-4V120A12,12,0,0,0,216.49,111.51ZM212,212H156V152a4,4,0,0,0-4-4H104a4,4,0,0,0-4,4v60H44V120a4,4,0,0,1,1.17-2.83l80-80a4,4,0,0,1,5.66,0l80,80A4,4,0,0,1,212,120Z\" }))\n      ]\n    ]);\n    IconInner = React.forwardRef((props, ref) => /* @__PURE__ */ React.createElement(\"g\", { ref, ...props }, Component.get(props.weight)));\n  }\n  return IconInner;\n};\nconst __FramerMetadata__ = {\n  exports: {\n    default: {\n      type: \"reactComponent\",\n      slots: [],\n      annotations: { framerContractVersion: \"1\" }\n    },\n    __FramerMetadata__: { type: \"variable\" }\n  }\n};\nvar House_default = Icon;\nexport {\n  __FramerMetadata__,\n  House_default as default\n};\n","/*\n * House (phosphor-icons/House@0.0.57)\n *\n * Learn More: https://www.framer.com/asset-urls\n */\n\nexport * from \"https://framerusercontent.com/modules/Qc8yuHkQmGO0kFiSWbkX/rVmMAFttOHuuiwSg6KjZ/House.js\"\nexport { default } from \"https://framerusercontent.com/modules/Qc8yuHkQmGO0kFiSWbkX/rVmMAFttOHuuiwSg6KjZ/House.js\"\n","import{useMemo}from\"react\";import{ControlType}from\"framer\";/*\n ** ICON UTILS\n ** Pull as much re-usable logic into here as possible\n ** This will make it easier to replace in all icon components\n */ export const containerStyles={width:\"100%\",height:\"100%\",display:\"flex\",justifyContent:\"center\",alignItems:\"center\"};export const defaultEvents={onClick:{type:ControlType.EventHandler},onMouseDown:{type:ControlType.EventHandler},onMouseUp:{type:ControlType.EventHandler},onMouseEnter:{type:ControlType.EventHandler},onMouseLeave:{type:ControlType.EventHandler}};const findByArray=(arr,search)=>arr.find(a=>a.toLowerCase().includes(search));export function getIconSelection(iconKeys,selectByList,iconSearch=\"\",iconSelection,lowercaseIconKeyPairs){// gotta get the exact match first THEN find\n// have a set and try to access ?\nif(selectByList)return iconSelection;if(iconSearch==null||(iconSearch===null||iconSearch===void 0?void 0:iconSearch.length)===0)return null;const iconSearchTerm=iconSearch.toLowerCase().replace(/-|\\s/g,\"\");var _iconSearchTerm;// check for exact match, otherwise use .find\nconst searchResult=(_iconSearchTerm=lowercaseIconKeyPairs[iconSearchTerm])!==null&&_iconSearchTerm!==void 0?_iconSearchTerm:findByArray(iconKeys,iconSearchTerm);return searchResult;}export function useIconSelection(iconKeys,selectByList,iconSearch=\"\",iconSelection,lowercaseIconKeyPairs){// Clean search term\nconst iconSearchResult=useMemo(()=>{if(iconSearch==null||(iconSearch===null||iconSearch===void 0?void 0:iconSearch.length)===0)return null;const iconSearchTerm=iconSearch.toLowerCase().replace(/-|\\s/g,\"\");var _iconSearchTerm;// check for exact match, otherwise use .find\nconst searchResult=(_iconSearchTerm=lowercaseIconKeyPairs[iconSearchTerm])!==null&&_iconSearchTerm!==void 0?_iconSearchTerm:findByArray(iconKeys,iconSearchTerm);return searchResult;},[iconSelection,iconSearch]);const name=selectByList?iconSelection:iconSearchResult;return name;}\nexport const __FramerMetadata__ = {\"exports\":{\"getIconSelection\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"containerStyles\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useIconSelection\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"defaultEvents\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./utils.map","import{jsx as _jsx}from\"react/jsx-runtime\";import*as React from\"react\";import{useState,useEffect,useRef}from\"react\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{motion}from\"framer-motion\";import{NullState}from\"https://framer.com/m/framer/icon-nullstate.js@0.7.0\";import HouseFactory from\"https://framer.com/m/phosphor-icons/House.js@0.0.57\";import{defaultEvents,useIconSelection}from\"https://framerusercontent.com/modules/Ma20hU0GGRxLxZphbywl/OSpwWF91FHPVFyQJjMHt/utils.js\";const iconKeys=[\"Acorn\",\"AddressBook\",\"AddressBookTabs\",\"AirTrafficControl\",\"Airplane\",\"AirplaneInFlight\",\"AirplaneLanding\",\"AirplaneTakeoff\",\"AirplaneTaxiing\",\"AirplaneTilt\",\"Airplay\",\"Alarm\",\"Alien\",\"AlignBottom\",\"AlignBottomSimple\",\"AlignCenterVertical\",\"AlignLeft\",\"AlignLeftSimple\",\"AlignRight\",\"AlignRightSimple\",\"AlignTop\",\"AlignTopSimple\",\"AmazonLogo\",\"Ambulance\",\"Anchor\",\"AnchorSimple\",\"AndroidLogo\",\"Angle\",\"AngularLogo\",\"Aperture\",\"AppStoreLogo\",\"AppWindow\",\"AppleLogo\",\"ApplePodcastsLogo\",\"ApproximateEquals\",\"Archive\",\"ArchiveBox\",\"ArchiveTray\",\"Armchair\",\"ArrowArcLeft\",\"ArrowArcRight\",\"ArrowBendDownLeft\",\"ArrowBendDownRight\",\"ArrowBendLeftDown\",\"ArrowBendLeftUp\",\"ArrowBendRightDown\",\"ArrowBendRightUp\",\"ArrowBendUpLeft\",\"ArrowBendUpRight\",\"ArrowCircleDown\",\"ArrowCircleDownLeft\",\"ArrowCircleDownRight\",\"ArrowCircleLeft\",\"ArrowCircleRight\",\"ArrowCircleUp\",\"ArrowCircleUpLeft\",\"ArrowCircleUpRight\",\"ArrowClockwise\",\"ArrowDown\",\"ArrowDownLeft\",\"ArrowDownRight\",\"ArrowElbowDownLeft\",\"ArrowElbowDownRight\",\"ArrowElbowLeft\",\"ArrowElbowLeftDown\",\"ArrowElbowLeftUp\",\"ArrowElbowRight\",\"ArrowElbowRightDown\",\"ArrowElbowRightUp\",\"ArrowElbowUpLeft\",\"ArrowElbowUpRight\",\"ArrowFatDown\",\"ArrowFatLeft\",\"ArrowFatLineDown\",\"ArrowFatLineLeft\",\"ArrowFatLineRight\",\"ArrowFatLineUp\",\"ArrowFatLinesDown\",\"ArrowFatLinesLeft\",\"ArrowFatLinesRight\",\"ArrowFatLinesUp\",\"ArrowFatRight\",\"ArrowFatUp\",\"ArrowLeft\",\"ArrowLineDown\",\"ArrowLineDownLeft\",\"ArrowLineDownRight\",\"ArrowLineLeft\",\"ArrowLineRight\",\"ArrowLineUp\",\"ArrowLineUpLeft\",\"ArrowLineUpRight\",\"ArrowRight\",\"ArrowSquareDown\",\"ArrowSquareDownLeft\",\"ArrowSquareDownRight\",\"ArrowSquareIn\",\"ArrowSquareLeft\",\"ArrowSquareOut\",\"ArrowSquareRight\",\"ArrowSquareUp\",\"ArrowSquareUpLeft\",\"ArrowSquareUpRight\",\"ArrowUDownLeft\",\"ArrowUDownRight\",\"ArrowULeftDown\",\"ArrowULeftUp\",\"ArrowURightDown\",\"ArrowURightUp\",\"ArrowUUpLeft\",\"ArrowUUpRight\",\"ArrowUp\",\"ArrowUpLeft\",\"ArrowUpRight\",\"ArrowsClockwise\",\"ArrowsDownUp\",\"ArrowsHorizontal\",\"ArrowsIn\",\"ArrowsInCardinal\",\"ArrowsInLineVertical\",\"ArrowsInSimple\",\"ArrowsLeftRight\",\"ArrowsMerge\",\"ArrowsOut\",\"ArrowsOutCardinal\",\"ArrowsOutSimple\",\"ArrowsSplit\",\"ArrowsVertical\",\"Article\",\"ArticleMedium\",\"ArticleNyTimes\",\"Asclepius\",\"Asterisk\",\"AsteriskSimple\",\"At\",\"Atom\",\"Avocado\",\"Axe\",\"Baby\",\"BabyCarriage\",\"Backpack\",\"Backspace\",\"Bag\",\"BagSimple\",\"Balloon\",\"Bandaids\",\"Bank\",\"Barbell\",\"Barcode\",\"Barn\",\"Barricade\",\"Baseball\",\"BaseballCap\",\"BaseballHelmet\",\"Basket\",\"Basketball\",\"Bathtub\",\"BatteryCharging\",\"BatteryEmpty\",\"BatteryFull\",\"BatteryHigh\",\"BatteryLow\",\"BatteryMedium\",\"BatteryPlus\",\"BatteryPlusVertical\",\"BatteryVerticalEmpty\",\"BatteryVerticalFull\",\"BatteryVerticalHigh\",\"BatteryVerticalLow\",\"BatteryWarning\",\"BeachBall\",\"Beanie\",\"Bed\",\"BeerBottle\",\"BeerStein\",\"BehanceLogo\",\"Bell\",\"BellRinging\",\"BellSimple\",\"BellSimpleRinging\",\"BellSimpleSlash\",\"BellSimpleZ\",\"BellSlash\",\"BellZ\",\"Belt\",\"BezierCurve\",\"Bicycle\",\"Binary\",\"Binoculars\",\"Biohazard\",\"Bird\",\"Blueprint\",\"Bluetooth\",\"BluetoothConnected\",\"BluetoothSlash\",\"BluetoothX\",\"Boat\",\"Bomb\",\"Bone\",\"Book\",\"BookBookmark\",\"BookOpen\",\"BookOpenText\",\"BookOpenUser\",\"BookUser\",\"Bookmark\",\"BookmarkSimple\",\"Bookmarks\",\"BookmarksSimple\",\"Books\",\"Boot\",\"Boules\",\"BoundingBox\",\"BowlFood\",\"BowlSteam\",\"BowlingBall\",\"BoxArrowDown\",\"BoxArrowUp\",\"BoxingGlove\",\"BracketsAngle\",\"BracketsCurly\",\"BracketsRound\",\"BracketsSquare\",\"Brain\",\"Brandy\",\"Bread\",\"Bridge\",\"Briefcase\",\"BriefcaseMetal\",\"Broadcast\",\"Broom\",\"Browser\",\"Browsers\",\"Bug\",\"BugBeetle\",\"BugDroid\",\"Building\",\"BuildingApartment\",\"BuildingOffice\",\"Buildings\",\"Bulldozer\",\"Bus\",\"Butterfly\",\"CableCar\",\"Cactus\",\"Cake\",\"Calculator\",\"Calendar\",\"CalendarBlank\",\"CalendarCheck\",\"CalendarDot\",\"CalendarDots\",\"CalendarHeart\",\"CalendarMinus\",\"CalendarPlus\",\"CalendarSlash\",\"CalendarStar\",\"CalendarX\",\"CallBell\",\"Camera\",\"CameraPlus\",\"CameraRotate\",\"CameraSlash\",\"Campfire\",\"Car\",\"CarBattery\",\"CarProfile\",\"CarSimple\",\"Cardholder\",\"Cards\",\"CardsThree\",\"CaretCircleDoubleUp\",\"CaretCircleDown\",\"CaretCircleLeft\",\"CaretCircleRight\",\"CaretCircleUp\",\"CaretCircleUpDown\",\"CaretDoubleDown\",\"CaretDoubleLeft\",\"CaretDoubleRight\",\"CaretDoubleUp\",\"CaretDown\",\"CaretLeft\",\"CaretLineDown\",\"CaretLineLeft\",\"CaretLineRight\",\"CaretLineUp\",\"CaretRight\",\"CaretUp\",\"CaretUpDown\",\"Carrot\",\"CashRegister\",\"CassetteTape\",\"CastleTurret\",\"Cat\",\"CellSignalFull\",\"CellSignalHigh\",\"CellSignalLow\",\"CellSignalMedium\",\"CellSignalNone\",\"CellSignalSlash\",\"CellSignalX\",\"CellTower\",\"Certificate\",\"Chair\",\"Chalkboard\",\"ChalkboardSimple\",\"ChalkboardTeacher\",\"Champagne\",\"ChargingStation\",\"ChartBar\",\"ChartBarHorizontal\",\"ChartDonut\",\"ChartLine\",\"ChartLineDown\",\"ChartLineUp\",\"ChartPie\",\"ChartPieSlice\",\"ChartPolar\",\"ChartScatter\",\"Chat\",\"ChatCentered\",\"ChatCenteredDots\",\"ChatCenteredSlash\",\"ChatCenteredText\",\"ChatCircle\",\"ChatCircleDots\",\"ChatCircleSlash\",\"ChatCircleText\",\"ChatDots\",\"ChatSlash\",\"ChatTeardrop\",\"ChatTeardropDots\",\"ChatTeardropSlash\",\"ChatTeardropText\",\"ChatText\",\"Chats\",\"ChatsCircle\",\"ChatsTeardrop\",\"Check\",\"CheckCircle\",\"CheckFat\",\"CheckSquare\",\"CheckSquareOffset\",\"Checkerboard\",\"Checks\",\"Cheers\",\"Cheese\",\"ChefHat\",\"Cherries\",\"Church\",\"Cigarette\",\"CigaretteSlash\",\"Circle\",\"CircleDashed\",\"CircleHalf\",\"CircleHalfTilt\",\"CircleNotch\",\"CirclesFour\",\"CirclesThree\",\"CirclesThreePlus\",\"Circuitry\",\"City\",\"Clipboard\",\"ClipboardText\",\"Clock\",\"ClockAfternoon\",\"ClockClockwise\",\"ClockCountdown\",\"ClockUser\",\"ClosedCaptioning\",\"Cloud\",\"CloudArrowDown\",\"CloudArrowUp\",\"CloudCheck\",\"CloudFog\",\"CloudLightning\",\"CloudMoon\",\"CloudRain\",\"CloudSlash\",\"CloudSnow\",\"CloudSun\",\"CloudWarning\",\"CloudX\",\"Clover\",\"Club\",\"CoatHanger\",\"CodaLogo\",\"Code\",\"CodeBlock\",\"CodeSimple\",\"CodepenLogo\",\"CodesandboxLogo\",\"Coffee\",\"CoffeeBean\",\"Coin\",\"CoinVertical\",\"Coins\",\"Columns\",\"ColumnsPlusLeft\",\"ColumnsPlusRight\",\"Command\",\"Compass\",\"CompassRose\",\"CompassTool\",\"ComputerTower\",\"Confetti\",\"ContactlessPayment\",\"Control\",\"Cookie\",\"CookingPot\",\"Copy\",\"CopySimple\",\"Copyleft\",\"Copyright\",\"CornersIn\",\"CornersOut\",\"Couch\",\"CourtBasketball\",\"Cow\",\"CowboyHat\",\"Cpu\",\"Crane\",\"CraneTower\",\"CreditCard\",\"Cricket\",\"Crop\",\"Cross\",\"Crosshair\",\"CrosshairSimple\",\"Crown\",\"CrownCross\",\"CrownSimple\",\"Cube\",\"CubeFocus\",\"CubeTransparent\",\"CurrencyBtc\",\"CurrencyCircleDollar\",\"CurrencyCny\",\"CurrencyDollar\",\"CurrencyDollarSimple\",\"CurrencyEth\",\"CurrencyEur\",\"CurrencyGbp\",\"CurrencyInr\",\"CurrencyJpy\",\"CurrencyKrw\",\"CurrencyKzt\",\"CurrencyNgn\",\"CurrencyRub\",\"Cursor\",\"CursorClick\",\"CursorText\",\"Cylinder\",\"Database\",\"Desk\",\"Desktop\",\"DesktopTower\",\"Detective\",\"DevToLogo\",\"DeviceMobile\",\"DeviceMobileCamera\",\"DeviceMobileSlash\",\"DeviceMobileSpeaker\",\"DeviceRotate\",\"DeviceTablet\",\"DeviceTabletCamera\",\"DeviceTabletSpeaker\",\"Devices\",\"Diamond\",\"DiamondsFour\",\"DiceFive\",\"DiceFour\",\"DiceOne\",\"DiceSix\",\"DiceThree\",\"DiceTwo\",\"Disc\",\"DiscoBall\",\"DiscordLogo\",\"Divide\",\"Dna\",\"Dog\",\"Door\",\"DoorOpen\",\"Dot\",\"DotOutline\",\"DotsNine\",\"DotsSix\",\"DotsSixVertical\",\"DotsThree\",\"DotsThreeCircle\",\"DotsThreeOutline\",\"DotsThreeVertical\",\"Download\",\"DownloadSimple\",\"Dress\",\"Dresser\",\"DribbbleLogo\",\"Drone\",\"Drop\",\"DropHalf\",\"DropHalfBottom\",\"DropSimple\",\"DropSlash\",\"DropboxLogo\",\"Ear\",\"EarSlash\",\"Egg\",\"EggCrack\",\"Eject\",\"EjectSimple\",\"Elevator\",\"Empty\",\"Engine\",\"Envelope\",\"EnvelopeOpen\",\"EnvelopeSimple\",\"EnvelopeSimpleOpen\",\"Equalizer\",\"Equals\",\"Eraser\",\"EscalatorDown\",\"EscalatorUp\",\"Exam\",\"ExclamationMark\",\"Exclude\",\"ExcludeSquare\",\"Export\",\"Eye\",\"EyeClosed\",\"EyeSlash\",\"Eyedropper\",\"EyedropperSample\",\"Eyeglasses\",\"Eyes\",\"FaceMask\",\"FacebookLogo\",\"Factory\",\"Faders\",\"FadersHorizontal\",\"FalloutShelter\",\"Fan\",\"Farm\",\"FastForward\",\"FastForwardCircle\",\"Feather\",\"FediverseLogo\",\"FigmaLogo\",\"File\",\"FileArchive\",\"FileArrowDown\",\"FileArrowUp\",\"FileAudio\",\"FileC\",\"FileCloud\",\"FileCode\",\"FileCpp\",\"FileCss\",\"FileCsv\",\"FileDashed\",\"FileDoc\",\"FileHtml\",\"FileImage\",\"FileIni\",\"FileJpg\",\"FileJs\",\"FileJsx\",\"FileLock\",\"FileMagnifyingGlass\",\"FileMd\",\"FileMinus\",\"FilePdf\",\"FilePlus\",\"FilePng\",\"FilePpt\",\"FilePy\",\"FileRs\",\"FileSql\",\"FileSvg\",\"FileText\",\"FileTs\",\"FileTsx\",\"FileTxt\",\"FileVideo\",\"FileVue\",\"FileX\",\"FileXls\",\"FileZip\",\"Files\",\"FilmReel\",\"FilmScript\",\"FilmSlate\",\"FilmStrip\",\"Fingerprint\",\"FingerprintSimple\",\"FinnTheHuman\",\"Fire\",\"FireExtinguisher\",\"FireSimple\",\"FireTruck\",\"FirstAid\",\"FirstAidKit\",\"Fish\",\"FishSimple\",\"Flag\",\"FlagBanner\",\"FlagBannerFold\",\"FlagCheckered\",\"FlagPennant\",\"Flame\",\"Flashlight\",\"Flask\",\"FlipHorizontal\",\"FlipVertical\",\"FloppyDisk\",\"FloppyDiskBack\",\"FlowArrow\",\"Flower\",\"FlowerLotus\",\"FlowerTulip\",\"FlyingSaucer\",\"Folder\",\"FolderDashed\",\"FolderLock\",\"FolderMinus\",\"FolderNotch\",\"FolderNotchMinus\",\"FolderNotchOpen\",\"FolderNotchPlus\",\"FolderOpen\",\"FolderPlus\",\"FolderSimple\",\"FolderSimpleDashed\",\"FolderSimpleLock\",\"FolderSimpleMinus\",\"FolderSimplePlus\",\"FolderSimpleStar\",\"FolderSimpleUser\",\"FolderStar\",\"FolderUser\",\"Folders\",\"Football\",\"FootballHelmet\",\"Footprints\",\"ForkKnife\",\"FourK\",\"FrameCorners\",\"FramerLogo\",\"Function\",\"Funnel\",\"FunnelSimple\",\"FunnelSimpleX\",\"FunnelX\",\"GameController\",\"Garage\",\"GasCan\",\"GasPump\",\"Gauge\",\"Gavel\",\"Gear\",\"GearFine\",\"GearSix\",\"GenderFemale\",\"GenderIntersex\",\"GenderMale\",\"GenderNeuter\",\"GenderNonbinary\",\"GenderTransgender\",\"Ghost\",\"Gif\",\"Gift\",\"GitBranch\",\"GitCommit\",\"GitDiff\",\"GitFork\",\"GitMerge\",\"GitPullRequest\",\"GithubLogo\",\"GitlabLogo\",\"GitlabLogoSimple\",\"Globe\",\"GlobeHemisphereEast\",\"GlobeHemisphereWest\",\"GlobeSimple\",\"GlobeSimpleX\",\"GlobeStand\",\"GlobeX\",\"Goggles\",\"Golf\",\"GoodreadsLogo\",\"GoogleCardboardLogo\",\"GoogleChromeLogo\",\"GoogleDriveLogo\",\"GoogleLogo\",\"GooglePhotosLogo\",\"GooglePlayLogo\",\"GooglePodcastsLogo\",\"Gps\",\"GpsFix\",\"GpsSlash\",\"Gradient\",\"GraduationCap\",\"Grains\",\"GrainsSlash\",\"Graph\",\"GraphicsCard\",\"GreaterThan\",\"GreaterThanOrEqual\",\"GridFour\",\"GridNine\",\"Guitar\",\"HairDryer\",\"Hamburger\",\"Hammer\",\"Hand\",\"HandArrowDown\",\"HandArrowUp\",\"HandCoins\",\"HandDeposit\",\"HandEye\",\"HandFist\",\"HandGrabbing\",\"HandHeart\",\"HandPalm\",\"HandPeace\",\"HandPointing\",\"HandSoap\",\"HandSwipeLeft\",\"HandSwipeRight\",\"HandTap\",\"HandWaving\",\"HandWithdraw\",\"Handbag\",\"HandbagSimple\",\"HandsClapping\",\"HandsPraying\",\"Handshake\",\"HardDrive\",\"HardDrives\",\"HardHat\",\"Hash\",\"HashStraight\",\"HeadCircuit\",\"Headlights\",\"Headphones\",\"Headset\",\"Heart\",\"HeartBreak\",\"HeartHalf\",\"HeartStraight\",\"HeartStraightBreak\",\"Heartbeat\",\"Hexagon\",\"HighDefinition\",\"HighHeel\",\"Highlighter\",\"HighlighterCircle\",\"Hockey\",\"Hoodie\",\"Horse\",\"Hospital\",\"Hourglass\",\"HourglassHigh\",\"HourglassLow\",\"HourglassMedium\",\"HourglassSimple\",\"HourglassSimpleHigh\",\"HourglassSimpleLow\",\"House\",\"HouseLine\",\"HouseSimple\",\"Hurricane\",\"IceCream\",\"IdentificationBadge\",\"IdentificationCard\",\"Image\",\"ImageBroken\",\"ImageSquare\",\"Images\",\"ImagesSquare\",\"Infinity\",\"Info\",\"InstagramLogo\",\"Intersect\",\"IntersectSquare\",\"IntersectThree\",\"Intersection\",\"Invoice\",\"Island\",\"Jar\",\"JarLabel\",\"Jeep\",\"Joystick\",\"Kanban\",\"Key\",\"KeyReturn\",\"Keyboard\",\"Keyhole\",\"Knife\",\"Ladder\",\"LadderSimple\",\"Lamp\",\"LampPendant\",\"Laptop\",\"Lasso\",\"LastfmLogo\",\"Layout\",\"Leaf\",\"Lectern\",\"Lego\",\"LegoSmiley\",\"LessThan\",\"LessThanOrEqual\",\"LetterCircleH\",\"LetterCircleP\",\"LetterCircleV\",\"Lifebuoy\",\"Lightbulb\",\"LightbulbFilament\",\"Lighthouse\",\"Lightning\",\"LightningA\",\"LightningSlash\",\"LineSegment\",\"LineSegments\",\"LineVertical\",\"Link\",\"LinkBreak\",\"LinkSimple\",\"LinkSimpleBreak\",\"LinkSimpleHorizontal\",\"LinkedinLogo\",\"LinktreeLogo\",\"LinuxLogo\",\"List\",\"ListBullets\",\"ListChecks\",\"ListDashes\",\"ListHeart\",\"ListMagnifyingGlass\",\"ListNumbers\",\"ListPlus\",\"ListStar\",\"Lock\",\"LockKey\",\"LockKeyOpen\",\"LockLaminated\",\"LockLaminatedOpen\",\"LockOpen\",\"LockSimple\",\"LockSimpleOpen\",\"Lockers\",\"Log\",\"MagicWand\",\"Magnet\",\"MagnetStraight\",\"MagnifyingGlass\",\"MagnifyingGlassMinus\",\"MagnifyingGlassPlus\",\"Mailbox\",\"MapPin\",\"MapPinArea\",\"MapPinLine\",\"MapPinPlus\",\"MapPinSimple\",\"MapPinSimpleArea\",\"MapPinSimpleLine\",\"MapTrifold\",\"MarkdownLogo\",\"MarkerCircle\",\"Martini\",\"MaskHappy\",\"MaskSad\",\"MastodonLogo\",\"MathOperations\",\"MatrixLogo\",\"Medal\",\"MedalMilitary\",\"MediumLogo\",\"Megaphone\",\"MegaphoneSimple\",\"MemberOf\",\"Memory\",\"MessengerLogo\",\"MetaLogo\",\"Meteor\",\"Metronome\",\"Microphone\",\"MicrophoneSlash\",\"MicrophoneStage\",\"Microscope\",\"MicrosoftExcelLogo\",\"MicrosoftOutlookLogo\",\"MicrosoftTeamsLogo\",\"MicrosoftWordLogo\",\"Minus\",\"MinusCircle\",\"MinusSquare\",\"Money\",\"MoneyWavy\",\"Monitor\",\"MonitorArrowUp\",\"MonitorPlay\",\"Moon\",\"MoonStars\",\"Moped\",\"MopedFront\",\"Mosque\",\"Motorcycle\",\"Mountains\",\"Mouse\",\"MouseLeftClick\",\"MouseMiddleClick\",\"MouseRightClick\",\"MouseScroll\",\"MouseSimple\",\"MusicNote\",\"MusicNoteSimple\",\"MusicNotes\",\"MusicNotesMinus\",\"MusicNotesPlus\",\"MusicNotesSimple\",\"NavigationArrow\",\"Needle\",\"Network\",\"NetworkSlash\",\"NetworkX\",\"Newspaper\",\"NewspaperClipping\",\"NotEquals\",\"NotMemberOf\",\"NotSubsetOf\",\"NotSupersetOf\",\"Notches\",\"Note\",\"NoteBlank\",\"NotePencil\",\"Notebook\",\"Notepad\",\"Notification\",\"NotionLogo\",\"NuclearPlant\",\"NumberCircleEight\",\"NumberCircleFive\",\"NumberCircleFour\",\"NumberCircleNine\",\"NumberCircleOne\",\"NumberCircleSeven\",\"NumberCircleSix\",\"NumberCircleThree\",\"NumberCircleTwo\",\"NumberCircleZero\",\"NumberEight\",\"NumberFive\",\"NumberFour\",\"NumberNine\",\"NumberOne\",\"NumberSeven\",\"NumberSix\",\"NumberSquareEight\",\"NumberSquareFive\",\"NumberSquareFour\",\"NumberSquareNine\",\"NumberSquareOne\",\"NumberSquareSeven\",\"NumberSquareSix\",\"NumberSquareThree\",\"NumberSquareTwo\",\"NumberSquareZero\",\"NumberThree\",\"NumberTwo\",\"NumberZero\",\"Numpad\",\"Nut\",\"NyTimesLogo\",\"Octagon\",\"OfficeChair\",\"Onigiri\",\"OpenAiLogo\",\"Option\",\"Orange\",\"OrangeSlice\",\"Oven\",\"Package\",\"PaintBrush\",\"PaintBrushBroad\",\"PaintBrushHousehold\",\"PaintBucket\",\"PaintRoller\",\"Palette\",\"Panorama\",\"Pants\",\"PaperPlane\",\"PaperPlaneRight\",\"PaperPlaneTilt\",\"Paperclip\",\"PaperclipHorizontal\",\"Parachute\",\"Paragraph\",\"Parallelogram\",\"Park\",\"Password\",\"Path\",\"PatreonLogo\",\"Pause\",\"PauseCircle\",\"PawPrint\",\"PaypalLogo\",\"Peace\",\"Pen\",\"PenNib\",\"PenNibStraight\",\"Pencil\",\"PencilCircle\",\"PencilLine\",\"PencilRuler\",\"PencilSimple\",\"PencilSimpleLine\",\"PencilSimpleSlash\",\"PencilSlash\",\"Pentagon\",\"Pentagram\",\"Pepper\",\"Percent\",\"Person\",\"PersonArmsSpread\",\"PersonSimple\",\"PersonSimpleBike\",\"PersonSimpleCircle\",\"PersonSimpleHike\",\"PersonSimpleRun\",\"PersonSimpleSki\",\"PersonSimpleSwim\",\"PersonSimpleTaiChi\",\"PersonSimpleThrow\",\"PersonSimpleWalk\",\"Perspective\",\"Phone\",\"PhoneCall\",\"PhoneDisconnect\",\"PhoneIncoming\",\"PhoneList\",\"PhoneOutgoing\",\"PhonePause\",\"PhonePlus\",\"PhoneSlash\",\"PhoneTransfer\",\"PhoneX\",\"PhosphorLogo\",\"Pi\",\"PianoKeys\",\"PicnicTable\",\"PictureInPicture\",\"PiggyBank\",\"Pill\",\"PingPong\",\"PintGlass\",\"PinterestLogo\",\"Pinwheel\",\"Pipe\",\"PipeWrench\",\"PixLogo\",\"Pizza\",\"Placeholder\",\"Planet\",\"Plant\",\"Play\",\"PlayCircle\",\"PlayPause\",\"Playlist\",\"Plug\",\"PlugCharging\",\"Plugs\",\"PlugsConnected\",\"Plus\",\"PlusCircle\",\"PlusMinus\",\"PlusSquare\",\"PokerChip\",\"PoliceCar\",\"Polygon\",\"Popcorn\",\"Popsicle\",\"PottedPlant\",\"Power\",\"Prescription\",\"Presentation\",\"PresentationChart\",\"Printer\",\"Prohibit\",\"ProhibitInset\",\"ProjectorScreen\",\"ProjectorScreenChart\",\"Pulse\",\"PushPin\",\"PushPinSimple\",\"PushPinSimpleSlash\",\"PushPinSlash\",\"PuzzlePiece\",\"QrCode\",\"Question\",\"QuestionMark\",\"Queue\",\"Quotes\",\"Rabbit\",\"Racquet\",\"Radical\",\"Radio\",\"RadioButton\",\"Radioactive\",\"Rainbow\",\"RainbowCloud\",\"Ranking\",\"ReadCvLogo\",\"Receipt\",\"ReceiptX\",\"Record\",\"Rectangle\",\"RectangleDashed\",\"Recycle\",\"RedditLogo\",\"Repeat\",\"RepeatOnce\",\"ReplitLogo\",\"Resize\",\"Rewind\",\"RewindCircle\",\"RoadHorizon\",\"Robot\",\"Rocket\",\"RocketLaunch\",\"Rows\",\"RowsPlusBottom\",\"RowsPlusTop\",\"Rss\",\"RssSimple\",\"Rug\",\"Ruler\",\"Sailboat\",\"Scales\",\"Scan\",\"ScanSmiley\",\"Scissors\",\"Scooter\",\"Screencast\",\"Screwdriver\",\"Scribble\",\"ScribbleLoop\",\"Scroll\",\"Seal\",\"SealCheck\",\"SealPercent\",\"SealQuestion\",\"SealWarning\",\"Seat\",\"Seatbelt\",\"SecurityCamera\",\"Selection\",\"SelectionAll\",\"SelectionBackground\",\"SelectionForeground\",\"SelectionInverse\",\"SelectionPlus\",\"SelectionSlash\",\"Shapes\",\"Share\",\"ShareFat\",\"ShareNetwork\",\"Shield\",\"ShieldCheck\",\"ShieldCheckered\",\"ShieldChevron\",\"ShieldPlus\",\"ShieldSlash\",\"ShieldStar\",\"ShieldWarning\",\"ShippingContainer\",\"ShirtFolded\",\"ShootingStar\",\"ShoppingBag\",\"ShoppingBagOpen\",\"ShoppingCart\",\"ShoppingCartSimple\",\"Shovel\",\"Shower\",\"Shrimp\",\"Shuffle\",\"ShuffleAngular\",\"ShuffleSimple\",\"Sidebar\",\"SidebarSimple\",\"Sigma\",\"SignIn\",\"SignOut\",\"Signature\",\"Signpost\",\"SimCard\",\"Siren\",\"SketchLogo\",\"SkipBack\",\"SkipBackCircle\",\"SkipForward\",\"SkipForwardCircle\",\"Skull\",\"SkypeLogo\",\"SlackLogo\",\"Sliders\",\"SlidersHorizontal\",\"Slideshow\",\"Smiley\",\"SmileyAngry\",\"SmileyBlank\",\"SmileyMeh\",\"SmileyMelting\",\"SmileyNervous\",\"SmileySad\",\"SmileySticker\",\"SmileyWink\",\"SmileyXEyes\",\"SnapchatLogo\",\"Sneaker\",\"SneakerMove\",\"Snowflake\",\"SoccerBall\",\"Sock\",\"SolarPanel\",\"SolarRoof\",\"SortAscending\",\"SortDescending\",\"SoundcloudLogo\",\"Spade\",\"Sparkle\",\"SpeakerHifi\",\"SpeakerHigh\",\"SpeakerLow\",\"SpeakerNone\",\"SpeakerSimpleHigh\",\"SpeakerSimpleLow\",\"SpeakerSimpleNone\",\"SpeakerSimpleSlash\",\"SpeakerSimpleX\",\"SpeakerSlash\",\"SpeakerX\",\"Speedometer\",\"Sphere\",\"Spinner\",\"SpinnerBall\",\"SpinnerGap\",\"Spiral\",\"SplitHorizontal\",\"SplitVertical\",\"SpotifyLogo\",\"SprayBottle\",\"Square\",\"SquareHalf\",\"SquareHalfBottom\",\"SquareLogo\",\"SquareSplitVertical\",\"SquaresFour\",\"Stack\",\"StackMinus\",\"StackOverflowLogo\",\"StackPlus\",\"StackSimple\",\"Stairs\",\"Stamp\",\"StandardDefinition\",\"Star\",\"StarAndCrescent\",\"StarFour\",\"StarHalf\",\"StarOfDavid\",\"SteamLogo\",\"SteeringWheel\",\"Steps\",\"Stethoscope\",\"Sticker\",\"Stool\",\"Stop\",\"StopCircle\",\"Storefront\",\"Strategy\",\"StripeLogo\",\"Student\",\"SubsetOf\",\"SubsetProperOf\",\"Subtitles\",\"SubtitlesSlash\",\"Subtract\",\"SubtractSquare\",\"Subway\",\"Suitcase\",\"SuitcaseRolling\",\"SuitcaseSimple\",\"Sun\",\"SunDim\",\"SunHorizon\",\"Sunglasses\",\"SupersetOf\",\"SupersetProperOf\",\"Swap\",\"Swatches\",\"SwimmingPool\",\"Sword\",\"Synagogue\",\"Syringe\",\"TShirt\",\"Table\",\"Tabs\",\"Tag\",\"TagChevron\",\"TagSimple\",\"Target\",\"Taxi\",\"TeaBag\",\"TelegramLogo\",\"Television\",\"TelevisionSimple\",\"TennisBall\",\"Tent\",\"Terminal\",\"TerminalWindow\",\"TestTube\",\"TextAUnderline\",\"TextAa\",\"TextAlignCenter\",\"TextAlignJustify\",\"TextAlignLeft\",\"TextAlignRight\",\"TextB\",\"TextColumns\",\"TextH\",\"TextHFive\",\"TextHFour\",\"TextHOne\",\"TextHSix\",\"TextHThree\",\"TextHTwo\",\"TextIndent\",\"TextItalic\",\"TextOutdent\",\"TextStrikethrough\",\"TextSubscript\",\"TextSuperscript\",\"TextT\",\"TextTSlash\",\"TextUnderline\",\"Textbox\",\"Thermometer\",\"ThermometerCold\",\"ThermometerHot\",\"ThermometerSimple\",\"ThreadsLogo\",\"ThreeD\",\"ThumbsDown\",\"ThumbsUp\",\"Ticket\",\"TidalLogo\",\"TiktokLogo\",\"Tilde\",\"Timer\",\"TipJar\",\"Tipi\",\"Tire\",\"ToggleLeft\",\"ToggleRight\",\"Toilet\",\"ToiletPaper\",\"Toolbox\",\"Tooth\",\"Tornado\",\"Tote\",\"ToteSimple\",\"Towel\",\"Tractor\",\"Trademark\",\"TrademarkRegistered\",\"TrafficCone\",\"TrafficSign\",\"TrafficSignal\",\"Train\",\"TrainRegional\",\"TrainSimple\",\"Tram\",\"Translate\",\"Trash\",\"TrashSimple\",\"Tray\",\"TrayArrowDown\",\"TrayArrowUp\",\"TreasureChest\",\"Tree\",\"TreeEvergreen\",\"TreePalm\",\"TreeStructure\",\"TreeView\",\"TrendDown\",\"TrendUp\",\"Triangle\",\"TriangleDashed\",\"Trolley\",\"TrolleySuitcase\",\"Trophy\",\"Truck\",\"TruckTrailer\",\"TumblrLogo\",\"TwitchLogo\",\"TwitterLogo\",\"Umbrella\",\"UmbrellaSimple\",\"Union\",\"Unite\",\"UniteSquare\",\"Upload\",\"UploadSimple\",\"Usb\",\"User\",\"UserCheck\",\"UserCircle\",\"UserCircleCheck\",\"UserCircleDashed\",\"UserCircleGear\",\"UserCircleMinus\",\"UserCirclePlus\",\"UserFocus\",\"UserGear\",\"UserList\",\"UserMinus\",\"UserPlus\",\"UserRectangle\",\"UserSound\",\"UserSquare\",\"UserSwitch\",\"Users\",\"UsersFour\",\"UsersThree\",\"Van\",\"Vault\",\"VectorThree\",\"VectorTwo\",\"Vibrate\",\"Video\",\"VideoCamera\",\"VideoCameraSlash\",\"VideoConference\",\"Vignette\",\"VinylRecord\",\"VirtualReality\",\"Virus\",\"Visor\",\"Voicemail\",\"Volleyball\",\"Wall\",\"Wallet\",\"Warehouse\",\"Warning\",\"WarningCircle\",\"WarningDiamond\",\"WarningOctagon\",\"WashingMachine\",\"Watch\",\"WaveSawtooth\",\"WaveSine\",\"WaveSquare\",\"WaveTriangle\",\"Waveform\",\"WaveformSlash\",\"Waves\",\"Webcam\",\"WebcamSlash\",\"WebhooksLogo\",\"WechatLogo\",\"WhatsappLogo\",\"Wheelchair\",\"WheelchairMotion\",\"WifiHigh\",\"WifiLow\",\"WifiMedium\",\"WifiNone\",\"WifiSlash\",\"WifiX\",\"Wind\",\"Windmill\",\"WindowsLogo\",\"Wine\",\"Wrench\",\"X\",\"XCircle\",\"XLogo\",\"XSquare\",\"Yarn\",\"YinYang\",\"YoutubeLogo\"];const moduleBaseUrl=\"https://framer.com/m/phosphor-icons/\";const weightOptions=[\"thin\",\"light\",\"regular\",\"bold\",\"fill\",\"duotone\"];const lowercaseIconKeyPairs=iconKeys.reduce((res,key)=>{res[key.toLowerCase()]=key;return res;},{});/**\n * PHOSPHOR\n *\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n *\n * @framerIntrinsicWidth 24\n * @framerIntrinsicHeight 24\n */export function Icon(props){const{color,selectByList,iconSearch,iconSelection,onClick,onMouseDown,onMouseUp,onMouseEnter,onMouseLeave,weight,mirrored}=props;const isMounted=useRef(false);const iconKey=useIconSelection(iconKeys,selectByList,iconSearch,iconSelection,lowercaseIconKeyPairs);const[SelectedIcon,setSelectedIcon]=useState(iconKey===\"Home\"?HouseFactory(React):null);async function importModule(){// Get the selected module\ntry{const version=\"0.0.57\";const iconModuleUrl=`${moduleBaseUrl}${iconKey}.js@${version}`;const module=await import(/* webpackIgnore: true */iconModuleUrl);if(isMounted.current)setSelectedIcon(module.default(React));}catch(err){if(isMounted.current)setSelectedIcon(null);}}useEffect(()=>{isMounted.current=true;importModule();return()=>{isMounted.current=false;};},[iconKey]);const isOnCanvas=RenderTarget.current()===RenderTarget.canvas;const emptyState=isOnCanvas?/*#__PURE__*/_jsx(NullState,{}):null;return /*#__PURE__*/_jsx(motion.div,{style:{display:\"contents\"},onClick,onMouseEnter,onMouseLeave,onMouseDown,onMouseUp,children:SelectedIcon?/*#__PURE__*/_jsx(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",viewBox:\"0 0 256 256\",style:{userSelect:\"none\",width:\"100%\",height:\"100%\",display:\"inline-block\",fill:color,color,flexShrink:0,transform:mirrored?\"scale(-1, 1)\":undefined},focusable:\"false\",color:color,children:/*#__PURE__*/_jsx(SelectedIcon,{color:color,weight:weight})}):emptyState});}Icon.displayName=\"Phosphor\";Icon.defaultProps={width:24,height:24,iconSelection:\"House\",iconSearch:\"House\",color:\"#66F\",selectByList:true,weight:\"regular\",mirrored:false};addPropertyControls(Icon,{selectByList:{type:ControlType.Boolean,title:\"Select\",enabledTitle:\"List\",disabledTitle:\"Search\",defaultValue:Icon.defaultProps.selectByList},iconSelection:{type:ControlType.Enum,options:iconKeys,defaultValue:Icon.defaultProps.iconSelection,title:\"Name\",hidden:({selectByList})=>!selectByList,description:\"Find every icon name on the [Phosphor site](https://phosphoricons.com/)\"},iconSearch:{type:ControlType.String,title:\"Name\",placeholder:\"Menu, Wifi, Box…\",hidden:({selectByList})=>selectByList},color:{type:ControlType.Color,title:\"Color\",defaultValue:Icon.defaultProps.color},weight:{type:ControlType.Enum,title:\"Weight\",optionTitles:weightOptions.map(piece=>piece.charAt(0).toUpperCase()+piece.slice(1)),options:weightOptions,defaultValue:Icon.defaultProps.weight},mirrored:{type:ControlType.Boolean,enabledTitle:\"Yes\",disabledTitle:\"No\",defaultValue:Icon.defaultProps.mirrored},...defaultEvents});\nexport const __FramerMetadata__ = {\"exports\":{\"IconProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Icon\":{\"type\":\"reactComponent\",\"name\":\"Icon\",\"slots\":[],\"annotations\":{\"framerIntrinsicWidth\":\"24\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"fixed\",\"framerIntrinsicHeight\":\"24\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Phosphor.map","import{fontStore}from\"framer\";fontStore.loadFonts([\"GF;Inter Tight-600\",\"Inter-Bold\",\"Inter-BoldItalic\",\"Inter-Italic\"]);export const fonts=[{explicitInter:true,fonts:[{family:\"Inter Tight\",source:\"google\",style:\"normal\",url:\"https://fonts.gstatic.com/s/intertight/v7/NGSnv5HMAFg6IuGlBNMjxJEL2VmU3NS7Z2mj0QiqWSRToK8EPg.woff2\",weight:\"600\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://app.framerstatic.com/Inter-Bold.cyrillic-ext-XOTVL7ZR.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://app.framerstatic.com/Inter-Bold.cyrillic-6LOMBC2V.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://app.framerstatic.com/Inter-Bold.greek-ext-WXWSJXLB.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://app.framerstatic.com/Inter-Bold.greek-YRST7ODZ.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://app.framerstatic.com/Inter-Bold.latin-ext-BASA5UL3.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://app.framerstatic.com/Inter-Bold.latin-UCM45LQF.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://app.framerstatic.com/Inter-Bold.vietnamese-OEVJMXEP.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://app.framerstatic.com/Inter-BoldItalic.cyrillic-ext-PEYDHC3S.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://app.framerstatic.com/Inter-BoldItalic.cyrillic-7EIL6JWG.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+1F00-1FFF\",url:\"https://app.framerstatic.com/Inter-BoldItalic.greek-ext-3DJOYQMH.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0370-03FF\",url:\"https://app.framerstatic.com/Inter-BoldItalic.greek-TJBTLTT7.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://app.framerstatic.com/Inter-BoldItalic.latin-ext-FVPCPRBJ.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://app.framerstatic.com/Inter-BoldItalic.latin-5ZFQS4XK.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://app.framerstatic.com/Inter-BoldItalic.vietnamese-W2625PGF.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://app.framerstatic.com/Inter-Italic.cyrillic-ext-YDGMJOJO.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://app.framerstatic.com/Inter-Italic.cyrillic-BFOVMAQB.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+1F00-1FFF\",url:\"https://app.framerstatic.com/Inter-Italic.greek-ext-4KOU3AHC.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0370-03FF\",url:\"https://app.framerstatic.com/Inter-Italic.greek-OJTBJNE6.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://app.framerstatic.com/Inter-Italic.latin-ext-H4B22QN6.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://app.framerstatic.com/Inter-Italic.latin-2DWX32EN.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://app.framerstatic.com/Inter-Italic.vietnamese-TYMT6CKW.woff2\",weight:\"400\"}]}];export const css=['.framer-FnC5E .framer-styles-preset-5c03bw:not(.rich-text-wrapper), .framer-FnC5E .framer-styles-preset-5c03bw.rich-text-wrapper p { --framer-font-family: \"Inter Tight\", \"Inter Tight Placeholder\", sans-serif; --framer-font-family-bold: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-size: 14px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-weight: 600; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 400; --framer-letter-spacing: 0.03em; --framer-line-height: 1.5em; --framer-paragraph-spacing: 20px; --framer-text-alignment: center; --framer-text-color: var(--token-fd54a91d-2c97-4609-acbc-244da5b6b983, #71717a); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }'];export const className=\"framer-FnC5E\";\nexport const __FramerMetadata__ = {\"exports\":{\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","import{fontStore}from\"framer\";fontStore.loadFonts([\"GF;Inter Tight-500\",\"Inter-Bold\",\"Inter-BoldItalic\",\"Inter-Italic\"]);export const fonts=[{explicitInter:true,fonts:[{family:\"Inter Tight\",source:\"google\",style:\"normal\",url:\"https://fonts.gstatic.com/s/intertight/v7/NGSnv5HMAFg6IuGlBNMjxJEL2VmU3NS7Z2mjPQ-qWSRToK8EPg.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://app.framerstatic.com/Inter-Bold.cyrillic-ext-XOTVL7ZR.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://app.framerstatic.com/Inter-Bold.cyrillic-6LOMBC2V.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://app.framerstatic.com/Inter-Bold.greek-ext-WXWSJXLB.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://app.framerstatic.com/Inter-Bold.greek-YRST7ODZ.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://app.framerstatic.com/Inter-Bold.latin-ext-BASA5UL3.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://app.framerstatic.com/Inter-Bold.latin-UCM45LQF.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://app.framerstatic.com/Inter-Bold.vietnamese-OEVJMXEP.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://app.framerstatic.com/Inter-BoldItalic.cyrillic-ext-PEYDHC3S.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://app.framerstatic.com/Inter-BoldItalic.cyrillic-7EIL6JWG.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+1F00-1FFF\",url:\"https://app.framerstatic.com/Inter-BoldItalic.greek-ext-3DJOYQMH.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0370-03FF\",url:\"https://app.framerstatic.com/Inter-BoldItalic.greek-TJBTLTT7.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://app.framerstatic.com/Inter-BoldItalic.latin-ext-FVPCPRBJ.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://app.framerstatic.com/Inter-BoldItalic.latin-5ZFQS4XK.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://app.framerstatic.com/Inter-BoldItalic.vietnamese-W2625PGF.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://app.framerstatic.com/Inter-Italic.cyrillic-ext-YDGMJOJO.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://app.framerstatic.com/Inter-Italic.cyrillic-BFOVMAQB.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+1F00-1FFF\",url:\"https://app.framerstatic.com/Inter-Italic.greek-ext-4KOU3AHC.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0370-03FF\",url:\"https://app.framerstatic.com/Inter-Italic.greek-OJTBJNE6.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://app.framerstatic.com/Inter-Italic.latin-ext-H4B22QN6.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://app.framerstatic.com/Inter-Italic.latin-2DWX32EN.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://app.framerstatic.com/Inter-Italic.vietnamese-TYMT6CKW.woff2\",weight:\"400\"}]}];export const css=['.framer-34J0A .framer-styles-preset-1xyptdp:not(.rich-text-wrapper), .framer-34J0A .framer-styles-preset-1xyptdp.rich-text-wrapper p { --framer-font-family: \"Inter Tight\", \"Inter Tight Placeholder\", sans-serif; --framer-font-family-bold: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-size: 14px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-weight: 500; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 400; --framer-letter-spacing: 0.03em; --framer-line-height: 1.5em; --framer-paragraph-spacing: 20px; --framer-text-alignment: center; --framer-text-color: var(--token-fd54a91d-2c97-4609-acbc-244da5b6b983, #71717a); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }'];export const className=\"framer-34J0A\";\nexport const __FramerMetadata__ = {\"exports\":{\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","import{fontStore}from\"framer\";fontStore.loadFonts([\"GF;Inter Tight-600\",\"Inter-Bold\",\"Inter-BoldItalic\",\"Inter-Italic\"]);export const fonts=[{explicitInter:true,fonts:[{family:\"Inter Tight\",source:\"google\",style:\"normal\",url:\"https://fonts.gstatic.com/s/intertight/v7/NGSnv5HMAFg6IuGlBNMjxJEL2VmU3NS7Z2mj0QiqWSRToK8EPg.woff2\",weight:\"600\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://app.framerstatic.com/Inter-Bold.cyrillic-ext-XOTVL7ZR.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://app.framerstatic.com/Inter-Bold.cyrillic-6LOMBC2V.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://app.framerstatic.com/Inter-Bold.greek-ext-WXWSJXLB.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://app.framerstatic.com/Inter-Bold.greek-YRST7ODZ.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://app.framerstatic.com/Inter-Bold.latin-ext-BASA5UL3.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://app.framerstatic.com/Inter-Bold.latin-UCM45LQF.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://app.framerstatic.com/Inter-Bold.vietnamese-OEVJMXEP.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://app.framerstatic.com/Inter-BoldItalic.cyrillic-ext-PEYDHC3S.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://app.framerstatic.com/Inter-BoldItalic.cyrillic-7EIL6JWG.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+1F00-1FFF\",url:\"https://app.framerstatic.com/Inter-BoldItalic.greek-ext-3DJOYQMH.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0370-03FF\",url:\"https://app.framerstatic.com/Inter-BoldItalic.greek-TJBTLTT7.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://app.framerstatic.com/Inter-BoldItalic.latin-ext-FVPCPRBJ.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://app.framerstatic.com/Inter-BoldItalic.latin-5ZFQS4XK.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://app.framerstatic.com/Inter-BoldItalic.vietnamese-W2625PGF.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://app.framerstatic.com/Inter-Italic.cyrillic-ext-YDGMJOJO.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://app.framerstatic.com/Inter-Italic.cyrillic-BFOVMAQB.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+1F00-1FFF\",url:\"https://app.framerstatic.com/Inter-Italic.greek-ext-4KOU3AHC.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0370-03FF\",url:\"https://app.framerstatic.com/Inter-Italic.greek-OJTBJNE6.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://app.framerstatic.com/Inter-Italic.latin-ext-H4B22QN6.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://app.framerstatic.com/Inter-Italic.latin-2DWX32EN.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://app.framerstatic.com/Inter-Italic.vietnamese-TYMT6CKW.woff2\",weight:\"400\"}]}];export const css=['.framer-8QnFN .framer-styles-preset-oqxj12:not(.rich-text-wrapper), .framer-8QnFN .framer-styles-preset-oqxj12.rich-text-wrapper p { --framer-font-family: \"Inter Tight\", \"Inter Tight Placeholder\", sans-serif; --framer-font-family-bold: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-size: 16px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-weight: 600; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 400; --framer-letter-spacing: 0.03em; --framer-line-height: 1.8em; --framer-paragraph-spacing: 20px; --framer-text-alignment: center; --framer-text-color: var(--token-fd54a91d-2c97-4609-acbc-244da5b6b983, #71717a); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }'];export const className=\"framer-8QnFN\";\nexport const __FramerMetadata__ = {\"exports\":{\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","import{fontStore}from\"framer\";fontStore.loadFonts([\"GF;Inter Tight-500\",\"Inter-Bold\",\"Inter-BoldItalic\",\"Inter-Italic\"]);export const fonts=[{explicitInter:true,fonts:[{family:\"Inter Tight\",source:\"google\",style:\"normal\",url:\"https://fonts.gstatic.com/s/intertight/v7/NGSnv5HMAFg6IuGlBNMjxJEL2VmU3NS7Z2mjPQ-qWSRToK8EPg.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://app.framerstatic.com/Inter-Bold.cyrillic-ext-XOTVL7ZR.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://app.framerstatic.com/Inter-Bold.cyrillic-6LOMBC2V.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://app.framerstatic.com/Inter-Bold.greek-ext-WXWSJXLB.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://app.framerstatic.com/Inter-Bold.greek-YRST7ODZ.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://app.framerstatic.com/Inter-Bold.latin-ext-BASA5UL3.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://app.framerstatic.com/Inter-Bold.latin-UCM45LQF.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://app.framerstatic.com/Inter-Bold.vietnamese-OEVJMXEP.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://app.framerstatic.com/Inter-BoldItalic.cyrillic-ext-PEYDHC3S.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://app.framerstatic.com/Inter-BoldItalic.cyrillic-7EIL6JWG.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+1F00-1FFF\",url:\"https://app.framerstatic.com/Inter-BoldItalic.greek-ext-3DJOYQMH.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0370-03FF\",url:\"https://app.framerstatic.com/Inter-BoldItalic.greek-TJBTLTT7.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://app.framerstatic.com/Inter-BoldItalic.latin-ext-FVPCPRBJ.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://app.framerstatic.com/Inter-BoldItalic.latin-5ZFQS4XK.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://app.framerstatic.com/Inter-BoldItalic.vietnamese-W2625PGF.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://app.framerstatic.com/Inter-Italic.cyrillic-ext-YDGMJOJO.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://app.framerstatic.com/Inter-Italic.cyrillic-BFOVMAQB.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+1F00-1FFF\",url:\"https://app.framerstatic.com/Inter-Italic.greek-ext-4KOU3AHC.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0370-03FF\",url:\"https://app.framerstatic.com/Inter-Italic.greek-OJTBJNE6.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://app.framerstatic.com/Inter-Italic.latin-ext-H4B22QN6.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://app.framerstatic.com/Inter-Italic.latin-2DWX32EN.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://app.framerstatic.com/Inter-Italic.vietnamese-TYMT6CKW.woff2\",weight:\"400\"}]}];export const css=['.framer-6ydCa .framer-styles-preset-1b8z1kr:not(.rich-text-wrapper), .framer-6ydCa .framer-styles-preset-1b8z1kr.rich-text-wrapper p { --framer-font-family: \"Inter Tight\", \"Inter Tight Placeholder\", sans-serif; --framer-font-family-bold: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-size: 12px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-weight: 500; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 400; --framer-letter-spacing: 0.04em; --framer-line-height: 1.2em; --framer-paragraph-spacing: 20px; --framer-text-alignment: center; --framer-text-color: var(--token-fd54a91d-2c97-4609-acbc-244da5b6b983, #71717a); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }'];export const className=\"framer-6ydCa\";\nexport const __FramerMetadata__ = {\"exports\":{\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","import{fontStore}from\"framer\";fontStore.loadFonts([\"GF;Inter Tight-600\",\"Inter-Bold\",\"Inter-BoldItalic\",\"Inter-Italic\"]);export const fonts=[{explicitInter:true,fonts:[{family:\"Inter Tight\",source:\"google\",style:\"normal\",url:\"https://fonts.gstatic.com/s/intertight/v7/NGSnv5HMAFg6IuGlBNMjxJEL2VmU3NS7Z2mj0QiqWSRToK8EPg.woff2\",weight:\"600\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://app.framerstatic.com/Inter-Bold.cyrillic-ext-XOTVL7ZR.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://app.framerstatic.com/Inter-Bold.cyrillic-6LOMBC2V.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://app.framerstatic.com/Inter-Bold.greek-ext-WXWSJXLB.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://app.framerstatic.com/Inter-Bold.greek-YRST7ODZ.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://app.framerstatic.com/Inter-Bold.latin-ext-BASA5UL3.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://app.framerstatic.com/Inter-Bold.latin-UCM45LQF.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://app.framerstatic.com/Inter-Bold.vietnamese-OEVJMXEP.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://app.framerstatic.com/Inter-BoldItalic.cyrillic-ext-PEYDHC3S.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://app.framerstatic.com/Inter-BoldItalic.cyrillic-7EIL6JWG.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+1F00-1FFF\",url:\"https://app.framerstatic.com/Inter-BoldItalic.greek-ext-3DJOYQMH.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0370-03FF\",url:\"https://app.framerstatic.com/Inter-BoldItalic.greek-TJBTLTT7.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://app.framerstatic.com/Inter-BoldItalic.latin-ext-FVPCPRBJ.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://app.framerstatic.com/Inter-BoldItalic.latin-5ZFQS4XK.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://app.framerstatic.com/Inter-BoldItalic.vietnamese-W2625PGF.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://app.framerstatic.com/Inter-Italic.cyrillic-ext-YDGMJOJO.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://app.framerstatic.com/Inter-Italic.cyrillic-BFOVMAQB.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+1F00-1FFF\",url:\"https://app.framerstatic.com/Inter-Italic.greek-ext-4KOU3AHC.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0370-03FF\",url:\"https://app.framerstatic.com/Inter-Italic.greek-OJTBJNE6.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://app.framerstatic.com/Inter-Italic.latin-ext-H4B22QN6.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://app.framerstatic.com/Inter-Italic.latin-2DWX32EN.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://app.framerstatic.com/Inter-Italic.vietnamese-TYMT6CKW.woff2\",weight:\"400\"}]}];export const css=['.framer-Zdscy .framer-styles-preset-1subfuh:not(.rich-text-wrapper), .framer-Zdscy .framer-styles-preset-1subfuh.rich-text-wrapper p { --framer-font-family: \"Inter Tight\", \"Inter Tight Placeholder\", sans-serif; --framer-font-family-bold: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-size: 12px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-weight: 600; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 400; --framer-letter-spacing: 0.04em; --framer-line-height: 1.2em; --framer-paragraph-spacing: 20px; --framer-text-alignment: center; --framer-text-color: var(--token-fd54a91d-2c97-4609-acbc-244da5b6b983, #71717a); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }'];export const className=\"framer-Zdscy\";\nexport const __FramerMetadata__ = {\"exports\":{\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","import{fontStore}from\"framer\";fontStore.loadFonts([\"GF;Inter Tight-500\",\"Inter-Bold\",\"Inter-BoldItalic\",\"Inter-Italic\"]);export const fonts=[{explicitInter:true,fonts:[{family:\"Inter Tight\",source:\"google\",style:\"normal\",url:\"https://fonts.gstatic.com/s/intertight/v7/NGSnv5HMAFg6IuGlBNMjxJEL2VmU3NS7Z2mjPQ-qWSRToK8EPg.woff2\",weight:\"500\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://app.framerstatic.com/Inter-Bold.cyrillic-ext-XOTVL7ZR.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://app.framerstatic.com/Inter-Bold.cyrillic-6LOMBC2V.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://app.framerstatic.com/Inter-Bold.greek-ext-WXWSJXLB.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://app.framerstatic.com/Inter-Bold.greek-YRST7ODZ.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://app.framerstatic.com/Inter-Bold.latin-ext-BASA5UL3.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://app.framerstatic.com/Inter-Bold.latin-UCM45LQF.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://app.framerstatic.com/Inter-Bold.vietnamese-OEVJMXEP.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://app.framerstatic.com/Inter-BoldItalic.cyrillic-ext-PEYDHC3S.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://app.framerstatic.com/Inter-BoldItalic.cyrillic-7EIL6JWG.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+1F00-1FFF\",url:\"https://app.framerstatic.com/Inter-BoldItalic.greek-ext-3DJOYQMH.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0370-03FF\",url:\"https://app.framerstatic.com/Inter-BoldItalic.greek-TJBTLTT7.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://app.framerstatic.com/Inter-BoldItalic.latin-ext-FVPCPRBJ.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://app.framerstatic.com/Inter-BoldItalic.latin-5ZFQS4XK.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://app.framerstatic.com/Inter-BoldItalic.vietnamese-W2625PGF.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://app.framerstatic.com/Inter-Italic.cyrillic-ext-YDGMJOJO.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://app.framerstatic.com/Inter-Italic.cyrillic-BFOVMAQB.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+1F00-1FFF\",url:\"https://app.framerstatic.com/Inter-Italic.greek-ext-4KOU3AHC.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0370-03FF\",url:\"https://app.framerstatic.com/Inter-Italic.greek-OJTBJNE6.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://app.framerstatic.com/Inter-Italic.latin-ext-H4B22QN6.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://app.framerstatic.com/Inter-Italic.latin-2DWX32EN.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://app.framerstatic.com/Inter-Italic.vietnamese-TYMT6CKW.woff2\",weight:\"400\"}]}];export const css=['.framer-RJeGq .framer-styles-preset-16gdk3f:not(.rich-text-wrapper), .framer-RJeGq .framer-styles-preset-16gdk3f.rich-text-wrapper p { --framer-font-family: \"Inter Tight\", \"Inter Tight Placeholder\", sans-serif; --framer-font-family-bold: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-size: 16px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-weight: 500; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 400; --framer-letter-spacing: 0.03em; --framer-line-height: 1.8em; --framer-paragraph-spacing: 20px; --framer-text-alignment: center; --framer-text-color: var(--token-fd54a91d-2c97-4609-acbc-244da5b6b983, #71717a); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }'];export const className=\"framer-RJeGq\";\nexport const __FramerMetadata__ = {\"exports\":{\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (ddd30d5)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,ControlType,cx,getFonts,getFontsFromSharedStyle,getPropertyControls,Link,RichText,useActiveVariantCallback,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{Icon as Phosphor}from\"https://framerusercontent.com/modules/tYScH7LTqUtz5KUaUAYP/p8dptk4UIND8hbFWz9V7/Phosphor.js\";import*as sharedStyle1 from\"https://framerusercontent.com/modules/ApX9HVBYzXw8OVpsB5J0/iAdQeJWoL35Kf2JGPnrF/acdDqsSOM.js\";import*as sharedStyle4 from\"https://framerusercontent.com/modules/0AfC8Koo329Six6igTZY/1Ia8UITFrV9vlRPqT1ib/aGffgv7Ct.js\";import*as sharedStyle from\"https://framerusercontent.com/modules/kd8jVAanMrY55FyaEebM/QCGZ5TPXGA3QvV1Szskh/lpvldrpA0.js\";import*as sharedStyle5 from\"https://framerusercontent.com/modules/KynAm6rQ47XtGN6u9X9H/DzB4KjeuyawzE1IYr5hh/maGpaxTnj.js\";import*as sharedStyle2 from\"https://framerusercontent.com/modules/uSGUkH17FiSlGZhjBL7w/SPpxe0Y95Y7WW5V6fRL3/uYwjFvoUl.js\";import*as sharedStyle3 from\"https://framerusercontent.com/modules/PIBqeffTlvSDRzzHFUs5/LOzFoTLt8DI2x5FMRp7k/WvDNlUXLS.js\";const PhosphorFonts=getFonts(Phosphor);const PhosphorControls=getPropertyControls(Phosphor);const enabledGestures={AWA62y_GV:{hover:true,pressed:true},dFbyw6SJY:{hover:true,pressed:true},E_YzJ47KG:{hover:true,pressed:true},HvwGpVmDr:{hover:true},IDwhfdJBh:{hover:true},iS3JUvC7w:{hover:true,pressed:true},kqEkETMOP:{hover:true,pressed:true},MBIq0M3Al:{hover:true},Nw_OMPtNd:{hover:true,pressed:true},rt1NrdlKK:{hover:true,pressed:true},Utk0c0Cr7:{hover:true,pressed:true},ynGVXJw2g:{hover:true,pressed:true}};const cycleOrder=[\"rt1NrdlKK\",\"AWA62y_GV\",\"Nw_OMPtNd\",\"E_YzJ47KG\",\"kqEkETMOP\",\"ynGVXJw2g\",\"iS3JUvC7w\",\"dFbyw6SJY\",\"Utk0c0Cr7\",\"HvwGpVmDr\",\"IDwhfdJBh\",\"MBIq0M3Al\"];const serializationHash=\"framer-3KXpo\";const variantClassNames={AWA62y_GV:\"framer-v-7deyic\",dFbyw6SJY:\"framer-v-1fjtxwn\",E_YzJ47KG:\"framer-v-5036k8\",HvwGpVmDr:\"framer-v-lzyhgw\",IDwhfdJBh:\"framer-v-5xgyli\",iS3JUvC7w:\"framer-v-1sl9bf2\",kqEkETMOP:\"framer-v-k9gror\",MBIq0M3Al:\"framer-v-1fu7a2j\",Nw_OMPtNd:\"framer-v-ajvukz\",rt1NrdlKK:\"framer-v-x1mwtx\",Utk0c0Cr7:\"framer-v-5ej7mq\",ynGVXJw2g:\"framer-v-1vt89oh\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants===null||variants===void 0?void 0:variants.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const radiusForCorner=(value,cornerIndex)=>{if(typeof value===\"number\"&&Number.isFinite(value))return Math.max(0,value)+\"px\";if(typeof value!==\"string\"||typeof cornerIndex!==\"number\")return undefined;const segments=value.split(\" \");return segments[cornerIndex]||segments[cornerIndex-2]||segments[0];};const transition1={damping:60,delay:0,mass:1,stiffness:500,type:\"spring\"};const equals=(a,b)=>{return typeof a===\"string\"&&typeof b===\"string\"?a.toLowerCase()===b.toLowerCase():a===b;};const convertFromBoolean=(value,activeLocale)=>{if(value){return 10;}else{return 5;}};const toNumber=value=>{if(typeof value===\"number\"&&Number.isFinite(value))return value;if(typeof value!==\"string\")return 0;const parsedNumber=parseFloat(value);return typeof parsedNumber===\"number\"&&Number.isFinite(parsedNumber)?parsedNumber:0;};const convertFromBoolean1=(value,activeLocale)=>{if(value){return 9;}else{return 4;}};const convertFromBoolean2=(value,activeLocale)=>{if(value){return 8;}else{return 3;}};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value!==null&&value!==void 0?value:config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const humanReadableVariantMap={\"Button [Default]\":\"rt1NrdlKK\",\"Button [Line]\":\"AWA62y_GV\",\"Button [sm Line]\":\"E_YzJ47KG\",\"Button [sm]\":\"Nw_OMPtNd\",\"Button [xs Line]\":\"ynGVXJw2g\",\"Button [xs]\":\"kqEkETMOP\",\"Icon [Default]\":\"HvwGpVmDr\",\"Icon [sm]\":\"IDwhfdJBh\",\"Icon [xs]\":\"MBIq0M3Al\",\"Link [Default]\":\"iS3JUvC7w\",\"Link [sm]\":\"dFbyw6SJY\",\"Link [xs]\":\"Utk0c0Cr7\"};const getProps=({border,buttonColor,buttonText,buttonTextColor,height,iconAnimation,iconName,id,link,newTab,radius,shadow,showIcon,tap,width,...props})=>{var _ref,_ref1,_ref2,_ref3,_ref4,_ref5,_humanReadableVariantMap_props_variant,_ref6,_ref7,_ref8;return{...props,ApWhoO21o:(_ref=border!==null&&border!==void 0?border:props.ApWhoO21o)!==null&&_ref!==void 0?_ref:{borderColor:'var(--token-31213cc7-db87-4df4-8209-e72c8adb68fb, rgb(228, 228, 231)) /* {\"name\":\"Gray 200 [Dynamic]\"} */',borderStyle:\"solid\",borderWidth:1},ey7w8muFX:newTab!==null&&newTab!==void 0?newTab:props.ey7w8muFX,G77f5Yx_v:(_ref1=buttonText!==null&&buttonText!==void 0?buttonText:props.G77f5Yx_v)!==null&&_ref1!==void 0?_ref1:\"Button Label\",HFfTjmBlq:(_ref2=buttonTextColor!==null&&buttonTextColor!==void 0?buttonTextColor:props.HFfTjmBlq)!==null&&_ref2!==void 0?_ref2:\"var(--token-de5448c6-98bb-4403-96cd-7fe86bf2daa6, rgb(9, 9, 11))\",n9WP3fBIv:(_ref3=showIcon!==null&&showIcon!==void 0?showIcon:props.n9WP3fBIv)!==null&&_ref3!==void 0?_ref3:true,nSQvgmbyz:tap!==null&&tap!==void 0?tap:props.nSQvgmbyz,oV7zrnzuy:(_ref4=buttonColor!==null&&buttonColor!==void 0?buttonColor:props.oV7zrnzuy)!==null&&_ref4!==void 0?_ref4:\"var(--token-2b0e18bf-9e9a-4016-bdfc-5769700a5529, rgb(255, 255, 255))\",SZQpZ3lk2:(_ref5=radius!==null&&radius!==void 0?radius:props.SZQpZ3lk2)!==null&&_ref5!==void 0?_ref5:10,U1Kbkgydv:link!==null&&link!==void 0?link:props.U1Kbkgydv,variant:(_ref6=(_humanReadableVariantMap_props_variant=humanReadableVariantMap[props.variant])!==null&&_humanReadableVariantMap_props_variant!==void 0?_humanReadableVariantMap_props_variant:props.variant)!==null&&_ref6!==void 0?_ref6:\"rt1NrdlKK\",VkxZQkMEC:(_ref7=shadow!==null&&shadow!==void 0?shadow:props.VkxZQkMEC)!==null&&_ref7!==void 0?_ref7:[{blur:3,color:\"rgba(9, 9, 11, 0.15)\",diffusion:.25,focus:.5,inset:false,spread:0,type:\"realistic\",x:0,y:10}],Vo_oxchYD:(_ref8=iconName!==null&&iconName!==void 0?iconName:props.Vo_oxchYD)!==null&&_ref8!==void 0?_ref8:\"CaretRight\",WM2TpCryl:iconAnimation!==null&&iconAnimation!==void 0?iconAnimation:props.WM2TpCryl};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const{activeLocale,setLocale}=useLocaleInfo();const{style,className,layoutId,variant,G77f5Yx_v,U1Kbkgydv,ey7w8muFX,oV7zrnzuy,HFfTjmBlq,VkxZQkMEC,n9WP3fBIv,Vo_oxchYD,ApWhoO21o,SZQpZ3lk2,WM2TpCryl,nSQvgmbyz,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"rt1NrdlKK\",enabledGestures,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const{activeVariantCallback,delay}=useActiveVariantCallback(baseVariant);const onTap1pc7sz3=activeVariantCallback(async(...args)=>{setGestureState({isPressed:false});if(nSQvgmbyz){const res=await nSQvgmbyz(...args);if(res===false)return false;}});const ref1=React.useRef(null);const gap=toNumber(convertFromBoolean(equals(WM2TpCryl,true),activeLocale));const gap1=toNumber(convertFromBoolean1(equals(WM2TpCryl,true),activeLocale));const gap2=toNumber(convertFromBoolean(WM2TpCryl,activeLocale));const gap3=toNumber(convertFromBoolean1(WM2TpCryl,activeLocale));const gap4=toNumber(convertFromBoolean2(WM2TpCryl,activeLocale));const isDisplayed=()=>{if([\"HvwGpVmDr-hover\",\"IDwhfdJBh-hover\",\"MBIq0M3Al-hover\"].includes(gestureVariant))return false;if([\"HvwGpVmDr\",\"IDwhfdJBh\",\"MBIq0M3Al\"].includes(baseVariant))return false;return true;};const defaultLayoutId=React.useId();const sharedStyleClassNames=[sharedStyle.className,sharedStyle1.className,sharedStyle2.className,sharedStyle3.className,sharedStyle4.className,sharedStyle5.className];const componentViewport=useComponentViewport();var _ApWhoO21o_borderBottomWidth,_ApWhoO21o_borderLeftWidth,_ApWhoO21o_borderRightWidth,_ApWhoO21o_borderTopWidth,_ApWhoO21o_borderBottomWidth1,_ApWhoO21o_borderLeftWidth1,_ApWhoO21o_borderRightWidth1,_ApWhoO21o_borderTopWidth1,_ApWhoO21o_borderBottomWidth2,_ApWhoO21o_borderLeftWidth2,_ApWhoO21o_borderRightWidth2,_ApWhoO21o_borderTopWidth2;return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId!==null&&layoutId!==void 0?layoutId:defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsx(Link,{href:U1Kbkgydv,nodeId:\"rt1NrdlKK\",openInNewTab:ey7w8muFX,smoothScroll:true,children:/*#__PURE__*/_jsxs(motion.a,{...restProps,...gestureHandlers,className:`${cx(serializationHash,...sharedStyleClassNames,\"framer-x1mwtx\",className,classNames)} framer-vs0re0`,\"data-border\":true,\"data-framer-name\":\"Button [Default]\",\"data-highlight\":true,layoutDependency:layoutDependency,layoutId:\"rt1NrdlKK\",onTap:onTap1pc7sz3,ref:ref!==null&&ref!==void 0?ref:ref1,style:{\"--1vfcgch\":gap1,\"--2tdpnr\":gap3,\"--456cd3\":gap4,\"--border-bottom-width\":\"1px\",\"--border-color\":\"rgba(230, 230, 232, 0)\",\"--border-left-width\":\"1px\",\"--border-right-width\":\"1px\",\"--border-style\":\"solid\",\"--border-top-width\":\"1px\",\"--dofoan\":gap2,\"--lhlnjo\":VkxZQkMEC,\"--rmohyg\":gap,backgroundColor:oV7zrnzuy,borderBottomLeftRadius:radiusForCorner(SZQpZ3lk2,3),borderBottomRightRadius:radiusForCorner(SZQpZ3lk2,2),borderTopLeftRadius:radiusForCorner(SZQpZ3lk2,0),borderTopRightRadius:radiusForCorner(SZQpZ3lk2,1),boxShadow:\"var(--lhlnjo)\",opacity:1,...style},variants:{\"AWA62y_GV-hover\":{borderBottomLeftRadius:10,borderBottomRightRadius:10,borderTopLeftRadius:10,borderTopRightRadius:10,opacity:.6},\"AWA62y_GV-pressed\":{opacity:.4},\"dFbyw6SJY-hover\":{\"--border-bottom-width\":\"0px\",\"--border-left-width\":\"0px\",\"--border-right-width\":\"0px\",\"--border-top-width\":\"0px\",backgroundColor:\"rgba(0, 0, 0, 0)\",borderBottomLeftRadius:0,borderBottomRightRadius:0,borderTopLeftRadius:0,borderTopRightRadius:0,boxShadow:\"none\",opacity:.6},\"dFbyw6SJY-pressed\":{\"--border-bottom-width\":\"0px\",\"--border-left-width\":\"0px\",\"--border-right-width\":\"0px\",\"--border-top-width\":\"0px\",backgroundColor:\"rgba(0, 0, 0, 0)\",borderBottomLeftRadius:0,borderBottomRightRadius:0,borderTopLeftRadius:0,borderTopRightRadius:0,boxShadow:\"none\",opacity:.4},\"E_YzJ47KG-hover\":{opacity:.6},\"E_YzJ47KG-pressed\":{opacity:.4},\"HvwGpVmDr-hover\":{opacity:.6},\"IDwhfdJBh-hover\":{opacity:.6},\"iS3JUvC7w-hover\":{\"--border-bottom-width\":\"0px\",\"--border-left-width\":\"0px\",\"--border-right-width\":\"0px\",\"--border-top-width\":\"0px\",backgroundColor:\"rgba(0, 0, 0, 0)\",borderBottomLeftRadius:0,borderBottomRightRadius:0,borderTopLeftRadius:0,borderTopRightRadius:0,boxShadow:\"none\",opacity:.6},\"iS3JUvC7w-pressed\":{\"--border-bottom-width\":\"0px\",\"--border-left-width\":\"0px\",\"--border-right-width\":\"0px\",\"--border-top-width\":\"0px\",backgroundColor:\"rgba(0, 0, 0, 0)\",borderBottomLeftRadius:0,borderBottomRightRadius:0,borderTopLeftRadius:0,borderTopRightRadius:0,boxShadow:\"none\",opacity:.4},\"kqEkETMOP-hover\":{opacity:.6},\"kqEkETMOP-pressed\":{opacity:.6},\"MBIq0M3Al-hover\":{opacity:.6},\"Nw_OMPtNd-hover\":{opacity:.6},\"Nw_OMPtNd-pressed\":{opacity:.4},\"rt1NrdlKK-hover\":{opacity:.6},\"rt1NrdlKK-pressed\":{opacity:.4},\"Utk0c0Cr7-hover\":{\"--border-bottom-width\":\"0px\",\"--border-left-width\":\"0px\",\"--border-right-width\":\"0px\",\"--border-top-width\":\"0px\",backgroundColor:\"rgba(0, 0, 0, 0)\",borderBottomLeftRadius:0,borderBottomRightRadius:0,borderTopLeftRadius:0,borderTopRightRadius:0,boxShadow:\"none\",opacity:.6},\"Utk0c0Cr7-pressed\":{\"--border-bottom-width\":\"0px\",\"--border-left-width\":\"0px\",\"--border-right-width\":\"0px\",\"--border-top-width\":\"0px\",backgroundColor:\"rgba(0, 0, 0, 0)\",borderBottomLeftRadius:0,borderBottomRightRadius:0,borderTopLeftRadius:0,borderTopRightRadius:0,boxShadow:\"none\",opacity:.4},\"ynGVXJw2g-hover\":{opacity:.6},\"ynGVXJw2g-pressed\":{opacity:.6},AWA62y_GV:{\"--border-bottom-width\":`${(_ApWhoO21o_borderBottomWidth=ApWhoO21o.borderBottomWidth)!==null&&_ApWhoO21o_borderBottomWidth!==void 0?_ApWhoO21o_borderBottomWidth:ApWhoO21o.borderWidth}px`,\"--border-color\":ApWhoO21o.borderColor,\"--border-left-width\":`${(_ApWhoO21o_borderLeftWidth=ApWhoO21o.borderLeftWidth)!==null&&_ApWhoO21o_borderLeftWidth!==void 0?_ApWhoO21o_borderLeftWidth:ApWhoO21o.borderWidth}px`,\"--border-right-width\":`${(_ApWhoO21o_borderRightWidth=ApWhoO21o.borderRightWidth)!==null&&_ApWhoO21o_borderRightWidth!==void 0?_ApWhoO21o_borderRightWidth:ApWhoO21o.borderWidth}px`,\"--border-style\":ApWhoO21o.borderStyle,\"--border-top-width\":`${(_ApWhoO21o_borderTopWidth=ApWhoO21o.borderTopWidth)!==null&&_ApWhoO21o_borderTopWidth!==void 0?_ApWhoO21o_borderTopWidth:ApWhoO21o.borderWidth}px`},dFbyw6SJY:{\"--border-bottom-width\":\"0px\",\"--border-left-width\":\"0px\",\"--border-right-width\":\"0px\",\"--border-top-width\":\"0px\",backgroundColor:\"rgba(0, 0, 0, 0)\",borderBottomLeftRadius:0,borderBottomRightRadius:0,borderTopLeftRadius:0,borderTopRightRadius:0,boxShadow:\"none\"},E_YzJ47KG:{\"--border-bottom-width\":`${(_ApWhoO21o_borderBottomWidth1=ApWhoO21o.borderBottomWidth)!==null&&_ApWhoO21o_borderBottomWidth1!==void 0?_ApWhoO21o_borderBottomWidth1:ApWhoO21o.borderWidth}px`,\"--border-color\":ApWhoO21o.borderColor,\"--border-left-width\":`${(_ApWhoO21o_borderLeftWidth1=ApWhoO21o.borderLeftWidth)!==null&&_ApWhoO21o_borderLeftWidth1!==void 0?_ApWhoO21o_borderLeftWidth1:ApWhoO21o.borderWidth}px`,\"--border-right-width\":`${(_ApWhoO21o_borderRightWidth1=ApWhoO21o.borderRightWidth)!==null&&_ApWhoO21o_borderRightWidth1!==void 0?_ApWhoO21o_borderRightWidth1:ApWhoO21o.borderWidth}px`,\"--border-style\":ApWhoO21o.borderStyle,\"--border-top-width\":`${(_ApWhoO21o_borderTopWidth1=ApWhoO21o.borderTopWidth)!==null&&_ApWhoO21o_borderTopWidth1!==void 0?_ApWhoO21o_borderTopWidth1:ApWhoO21o.borderWidth}px`},iS3JUvC7w:{\"--border-bottom-width\":\"0px\",\"--border-left-width\":\"0px\",\"--border-right-width\":\"0px\",\"--border-top-width\":\"0px\",backgroundColor:\"rgba(0, 0, 0, 0)\",borderBottomLeftRadius:0,borderBottomRightRadius:0,borderTopLeftRadius:0,borderTopRightRadius:0,boxShadow:\"none\"},Utk0c0Cr7:{\"--border-bottom-width\":\"0px\",\"--border-left-width\":\"0px\",\"--border-right-width\":\"0px\",\"--border-top-width\":\"0px\",backgroundColor:\"rgba(0, 0, 0, 0)\",borderBottomLeftRadius:0,borderBottomRightRadius:0,borderTopLeftRadius:0,borderTopRightRadius:0,boxShadow:\"none\"},ynGVXJw2g:{\"--border-bottom-width\":`${(_ApWhoO21o_borderBottomWidth2=ApWhoO21o.borderBottomWidth)!==null&&_ApWhoO21o_borderBottomWidth2!==void 0?_ApWhoO21o_borderBottomWidth2:ApWhoO21o.borderWidth}px`,\"--border-color\":ApWhoO21o.borderColor,\"--border-left-width\":`${(_ApWhoO21o_borderLeftWidth2=ApWhoO21o.borderLeftWidth)!==null&&_ApWhoO21o_borderLeftWidth2!==void 0?_ApWhoO21o_borderLeftWidth2:ApWhoO21o.borderWidth}px`,\"--border-right-width\":`${(_ApWhoO21o_borderRightWidth2=ApWhoO21o.borderRightWidth)!==null&&_ApWhoO21o_borderRightWidth2!==void 0?_ApWhoO21o_borderRightWidth2:ApWhoO21o.borderWidth}px`,\"--border-style\":ApWhoO21o.borderStyle,\"--border-top-width\":`${(_ApWhoO21o_borderTopWidth2=ApWhoO21o.borderTopWidth)!==null&&_ApWhoO21o_borderTopWidth2!==void 0?_ApWhoO21o_borderTopWidth2:ApWhoO21o.borderWidth}px`}},...addPropertyOverrides({\"AWA62y_GV-hover\":{\"data-framer-name\":undefined},\"AWA62y_GV-pressed\":{\"data-framer-name\":undefined},\"dFbyw6SJY-hover\":{\"data-framer-name\":undefined},\"dFbyw6SJY-pressed\":{\"data-framer-name\":undefined},\"E_YzJ47KG-hover\":{\"data-framer-name\":undefined},\"E_YzJ47KG-pressed\":{\"data-framer-name\":undefined},\"HvwGpVmDr-hover\":{\"data-framer-name\":undefined},\"IDwhfdJBh-hover\":{\"data-framer-name\":undefined},\"iS3JUvC7w-hover\":{\"data-framer-name\":undefined},\"iS3JUvC7w-pressed\":{\"data-framer-name\":undefined},\"kqEkETMOP-hover\":{\"data-framer-name\":undefined},\"kqEkETMOP-pressed\":{\"data-framer-name\":undefined},\"MBIq0M3Al-hover\":{\"data-framer-name\":undefined},\"Nw_OMPtNd-hover\":{\"data-framer-name\":undefined},\"Nw_OMPtNd-pressed\":{\"data-framer-name\":undefined},\"rt1NrdlKK-hover\":{\"data-framer-name\":undefined},\"rt1NrdlKK-pressed\":{\"data-framer-name\":undefined},\"Utk0c0Cr7-hover\":{\"data-framer-name\":undefined},\"Utk0c0Cr7-pressed\":{\"data-framer-name\":undefined},\"ynGVXJw2g-hover\":{\"data-framer-name\":undefined},\"ynGVXJw2g-pressed\":{\"data-framer-name\":undefined},AWA62y_GV:{\"data-framer-name\":\"Button [Line]\"},dFbyw6SJY:{\"data-framer-name\":\"Link [sm]\"},E_YzJ47KG:{\"data-framer-name\":\"Button [sm Line]\"},HvwGpVmDr:{\"data-framer-name\":\"Icon [Default]\"},IDwhfdJBh:{\"data-framer-name\":\"Icon [sm]\"},iS3JUvC7w:{\"data-framer-name\":\"Link [Default]\"},kqEkETMOP:{\"data-framer-name\":\"Button [xs]\"},MBIq0M3Al:{\"data-framer-name\":\"Icon [xs]\"},Nw_OMPtNd:{\"data-framer-name\":\"Button [sm]\"},Utk0c0Cr7:{\"data-framer-name\":\"Link [xs]\"},ynGVXJw2g:{\"data-framer-name\":\"Button [xs Line]\"}},baseVariant,gestureVariant),children:[isDisplayed()&&/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-oqxj12\",\"data-styles-preset\":\"lpvldrpA0\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--variable-reference-HFfTjmBlq-LNCJ8JrMb))\"},children:\"Button Label\"})}),className:\"framer-f169tt\",\"data-highlight\":true,fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"j6UCXvWsW\",style:{\"--extracted-r6o4lv\":\"var(--variable-reference-HFfTjmBlq-LNCJ8JrMb)\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\",\"--variable-reference-HFfTjmBlq-LNCJ8JrMb\":HFfTjmBlq},text:G77f5Yx_v,verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({dFbyw6SJY:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1xyptdp\",\"data-styles-preset\":\"aGffgv7Ct\",style:{\"--framer-text-alignment\":\"left\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--variable-reference-HFfTjmBlq-LNCJ8JrMb))\"},children:\"Button Label\"})})},E_YzJ47KG:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-5c03bw\",\"data-styles-preset\":\"acdDqsSOM\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--variable-reference-HFfTjmBlq-LNCJ8JrMb))\"},children:\"Button Label\"})})},iS3JUvC7w:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-16gdk3f\",\"data-styles-preset\":\"WvDNlUXLS\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--variable-reference-HFfTjmBlq-LNCJ8JrMb))\"},children:\"Button Label\"})})},kqEkETMOP:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1subfuh\",\"data-styles-preset\":\"uYwjFvoUl\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--variable-reference-HFfTjmBlq-LNCJ8JrMb))\"},children:\"Button Label\"})})},Nw_OMPtNd:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-5c03bw\",\"data-styles-preset\":\"acdDqsSOM\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--variable-reference-HFfTjmBlq-LNCJ8JrMb))\"},children:\"Button Label\"})})},Utk0c0Cr7:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1b8z1kr\",\"data-styles-preset\":\"maGpaxTnj\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--variable-reference-HFfTjmBlq-LNCJ8JrMb))\"},children:\"Button Label\"})})},ynGVXJw2g:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1subfuh\",\"data-styles-preset\":\"uYwjFvoUl\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--variable-reference-HFfTjmBlq-LNCJ8JrMb))\"},children:\"Button Label\"})})}},baseVariant,gestureVariant)}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-7yomhk\",layoutDependency:layoutDependency,layoutId:\"KbhJGem71\",children:n9WP3fBIv&&/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(motion.div,{className:\"framer-1d651dx-container\",layoutDependency:layoutDependency,layoutId:\"NmJpm9MF4-container\",children:/*#__PURE__*/_jsx(Phosphor,{color:HFfTjmBlq,height:\"100%\",iconSearch:\"House\",iconSelection:Vo_oxchYD,id:\"NmJpm9MF4\",layoutId:\"NmJpm9MF4\",mirrored:false,selectByList:true,style:{height:\"100%\",width:\"100%\"},weight:\"bold\",width:\"100%\"})})})})]})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-3KXpo.framer-vs0re0, .framer-3KXpo .framer-vs0re0 { display: block; }\",\".framer-3KXpo.framer-x1mwtx { align-content: center; align-items: center; cursor: pointer; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 5px; height: 50px; justify-content: center; overflow: visible; padding: 14px 20px 14px 25px; position: relative; text-decoration: none; width: min-content; }\",\".framer-3KXpo .framer-f169tt { flex: none; height: auto; position: relative; white-space: pre; width: auto; }\",\".framer-3KXpo .framer-7yomhk { align-content: center; align-items: center; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: min-content; }\",\".framer-3KXpo .framer-1d651dx-container { aspect-ratio: 1 / 1; flex: none; height: var(--framer-aspect-ratio-supported, 19px); position: relative; width: 16px; }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-3KXpo.framer-x1mwtx, .framer-3KXpo .framer-7yomhk { gap: 0px; } .framer-3KXpo.framer-x1mwtx > * { margin: 0px; margin-left: calc(5px / 2); margin-right: calc(5px / 2); } .framer-3KXpo.framer-x1mwtx > :first-child { margin-left: 0px; } .framer-3KXpo.framer-x1mwtx > :last-child { margin-right: 0px; } .framer-3KXpo .framer-7yomhk > * { margin: 0px; margin-bottom: calc(10px / 2); margin-top: calc(10px / 2); } .framer-3KXpo .framer-7yomhk > :first-child { margin-top: 0px; } .framer-3KXpo .framer-7yomhk > :last-child { margin-bottom: 0px; } }\",\".framer-3KXpo.framer-v-ajvukz.framer-x1mwtx { gap: 4px; height: 40px; padding: 9px 12px 9px 16px; }\",\".framer-3KXpo.framer-v-ajvukz .framer-1d651dx-container, .framer-3KXpo.framer-v-5036k8 .framer-1d651dx-container, .framer-3KXpo.framer-v-1fjtxwn .framer-1d651dx-container { height: var(--framer-aspect-ratio-supported, 17px); width: 14px; }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-3KXpo.framer-v-ajvukz.framer-x1mwtx { gap: 0px; } .framer-3KXpo.framer-v-ajvukz.framer-x1mwtx > * { margin: 0px; margin-left: calc(4px / 2); margin-right: calc(4px / 2); } .framer-3KXpo.framer-v-ajvukz.framer-x1mwtx > :first-child { margin-left: 0px; } .framer-3KXpo.framer-v-ajvukz.framer-x1mwtx > :last-child { margin-right: 0px; } }\",\".framer-3KXpo.framer-v-5036k8.framer-x1mwtx { gap: 4px; height: 40px; padding: 10px 12px 10px 16px; }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-3KXpo.framer-v-5036k8.framer-x1mwtx { gap: 0px; } .framer-3KXpo.framer-v-5036k8.framer-x1mwtx > * { margin: 0px; margin-left: calc(4px / 2); margin-right: calc(4px / 2); } .framer-3KXpo.framer-v-5036k8.framer-x1mwtx > :first-child { margin-left: 0px; } .framer-3KXpo.framer-v-5036k8.framer-x1mwtx > :last-child { margin-right: 0px; } }\",\".framer-3KXpo.framer-v-k9gror.framer-x1mwtx, .framer-3KXpo.framer-v-1vt89oh.framer-x1mwtx { gap: 4px; height: 30px; padding: 5px 8px 5px 12px; }\",\".framer-3KXpo.framer-v-k9gror .framer-1d651dx-container { height: var(--framer-aspect-ratio-supported, 15px); width: 12px; }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-3KXpo.framer-v-k9gror.framer-x1mwtx { gap: 0px; } .framer-3KXpo.framer-v-k9gror.framer-x1mwtx > * { margin: 0px; margin-left: calc(4px / 2); margin-right: calc(4px / 2); } .framer-3KXpo.framer-v-k9gror.framer-x1mwtx > :first-child { margin-left: 0px; } .framer-3KXpo.framer-v-k9gror.framer-x1mwtx > :last-child { margin-right: 0px; } }\",\".framer-3KXpo.framer-v-1vt89oh .framer-1d651dx-container { height: var(--framer-aspect-ratio-supported, 12px); width: 12px; }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-3KXpo.framer-v-1vt89oh.framer-x1mwtx { gap: 0px; } .framer-3KXpo.framer-v-1vt89oh.framer-x1mwtx > * { margin: 0px; margin-left: calc(4px / 2); margin-right: calc(4px / 2); } .framer-3KXpo.framer-v-1vt89oh.framer-x1mwtx > :first-child { margin-left: 0px; } .framer-3KXpo.framer-v-1vt89oh.framer-x1mwtx > :last-child { margin-right: 0px; } }\",\".framer-3KXpo.framer-v-1sl9bf2.framer-x1mwtx { height: min-content; justify-content: flex-start; padding: 0px; }\",\".framer-3KXpo.framer-v-1fjtxwn.framer-x1mwtx { gap: 4px; height: min-content; justify-content: flex-start; padding: 0px; }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-3KXpo.framer-v-1fjtxwn.framer-x1mwtx { gap: 0px; } .framer-3KXpo.framer-v-1fjtxwn.framer-x1mwtx > * { margin: 0px; margin-left: calc(4px / 2); margin-right: calc(4px / 2); } .framer-3KXpo.framer-v-1fjtxwn.framer-x1mwtx > :first-child { margin-left: 0px; } .framer-3KXpo.framer-v-1fjtxwn.framer-x1mwtx > :last-child { margin-right: 0px; } }\",\".framer-3KXpo.framer-v-5ej7mq.framer-x1mwtx { gap: 3px; height: min-content; justify-content: flex-start; padding: 0px; }\",\".framer-3KXpo.framer-v-5ej7mq .framer-1d651dx-container { aspect-ratio: unset; height: 12px; width: 12px; }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-3KXpo.framer-v-5ej7mq.framer-x1mwtx { gap: 0px; } .framer-3KXpo.framer-v-5ej7mq.framer-x1mwtx > * { margin: 0px; margin-left: calc(3px / 2); margin-right: calc(3px / 2); } .framer-3KXpo.framer-v-5ej7mq.framer-x1mwtx > :first-child { margin-left: 0px; } .framer-3KXpo.framer-v-5ej7mq.framer-x1mwtx > :last-child { margin-right: 0px; } }\",\".framer-3KXpo.framer-v-lzyhgw.framer-x1mwtx { height: min-content; padding: 15px; }\",\".framer-3KXpo.framer-v-lzyhgw .framer-1d651dx-container, .framer-3KXpo.framer-v-5xgyli .framer-1d651dx-container { aspect-ratio: unset; height: 22px; width: 22px; }\",\".framer-3KXpo.framer-v-5xgyli.framer-x1mwtx { height: min-content; padding: 10px; }\",\".framer-3KXpo.framer-v-1fu7a2j.framer-x1mwtx { height: min-content; padding: 8px; }\",\".framer-3KXpo.framer-v-1fu7a2j .framer-1d651dx-container { aspect-ratio: unset; height: 18px; width: 18px; }\",\".framer-3KXpo.framer-v-x1mwtx.hover.framer-x1mwtx, .framer-3KXpo.framer-v-7deyic.hover.framer-x1mwtx { gap: calc(max(0, var(--rmohyg)) * 1px); }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-3KXpo.framer-v-x1mwtx.hover.framer-x1mwtx { gap: 0px; } .framer-3KXpo.framer-v-x1mwtx.hover.framer-x1mwtx > * { margin: 0px; margin-left: calc(calc(max(0, var(--rmohyg)) * 1px) / 2); margin-right: calc(calc(max(0, var(--rmohyg)) * 1px) / 2); } .framer-3KXpo.framer-v-x1mwtx.hover.framer-x1mwtx > :first-child { margin-left: 0px; } .framer-3KXpo.framer-v-x1mwtx.hover.framer-x1mwtx > :last-child { margin-right: 0px; } }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-3KXpo.framer-v-7deyic.hover.framer-x1mwtx { gap: 0px; } .framer-3KXpo.framer-v-7deyic.hover.framer-x1mwtx > * { margin: 0px; margin-left: calc(calc(max(0, var(--rmohyg)) * 1px) / 2); margin-right: calc(calc(max(0, var(--rmohyg)) * 1px) / 2); } .framer-3KXpo.framer-v-7deyic.hover.framer-x1mwtx > :first-child { margin-left: 0px; } .framer-3KXpo.framer-v-7deyic.hover.framer-x1mwtx > :last-child { margin-right: 0px; } }\",\".framer-3KXpo.framer-v-ajvukz.hover.framer-x1mwtx, .framer-3KXpo.framer-v-5036k8.hover.framer-x1mwtx, .framer-3KXpo.framer-v-k9gror.hover.framer-x1mwtx { gap: calc(max(0, var(--1vfcgch)) * 1px); }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-3KXpo.framer-v-ajvukz.hover.framer-x1mwtx { gap: 0px; } .framer-3KXpo.framer-v-ajvukz.hover.framer-x1mwtx > * { margin: 0px; margin-left: calc(calc(max(0, var(--1vfcgch)) * 1px) / 2); margin-right: calc(calc(max(0, var(--1vfcgch)) * 1px) / 2); } .framer-3KXpo.framer-v-ajvukz.hover.framer-x1mwtx > :first-child { margin-left: 0px; } .framer-3KXpo.framer-v-ajvukz.hover.framer-x1mwtx > :last-child { margin-right: 0px; } }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-3KXpo.framer-v-5036k8.hover.framer-x1mwtx { gap: 0px; } .framer-3KXpo.framer-v-5036k8.hover.framer-x1mwtx > * { margin: 0px; margin-left: calc(calc(max(0, var(--1vfcgch)) * 1px) / 2); margin-right: calc(calc(max(0, var(--1vfcgch)) * 1px) / 2); } .framer-3KXpo.framer-v-5036k8.hover.framer-x1mwtx > :first-child { margin-left: 0px; } .framer-3KXpo.framer-v-5036k8.hover.framer-x1mwtx > :last-child { margin-right: 0px; } }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-3KXpo.framer-v-k9gror.hover.framer-x1mwtx { gap: 0px; } .framer-3KXpo.framer-v-k9gror.hover.framer-x1mwtx > * { margin: 0px; margin-left: calc(calc(max(0, var(--1vfcgch)) * 1px) / 2); margin-right: calc(calc(max(0, var(--1vfcgch)) * 1px) / 2); } .framer-3KXpo.framer-v-k9gror.hover.framer-x1mwtx > :first-child { margin-left: 0px; } .framer-3KXpo.framer-v-k9gror.hover.framer-x1mwtx > :last-child { margin-right: 0px; } }\",\".framer-3KXpo.framer-v-1sl9bf2.hover.framer-x1mwtx { gap: calc(max(0, var(--dofoan)) * 1px); }\",\".framer-3KXpo.framer-v-1sl9bf2.hover .framer-1d651dx-container { height: var(--framer-aspect-ratio-supported, 16px); }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-3KXpo.framer-v-1sl9bf2.hover.framer-x1mwtx { gap: 0px; } .framer-3KXpo.framer-v-1sl9bf2.hover.framer-x1mwtx > * { margin: 0px; margin-left: calc(calc(max(0, var(--dofoan)) * 1px) / 2); margin-right: calc(calc(max(0, var(--dofoan)) * 1px) / 2); } .framer-3KXpo.framer-v-1sl9bf2.hover.framer-x1mwtx > :first-child { margin-left: 0px; } .framer-3KXpo.framer-v-1sl9bf2.hover.framer-x1mwtx > :last-child { margin-right: 0px; } }\",\".framer-3KXpo.framer-v-1fjtxwn.hover.framer-x1mwtx { gap: calc(max(0, var(--2tdpnr)) * 1px); }\",\".framer-3KXpo.framer-v-1fjtxwn.hover .framer-1d651dx-container, .framer-3KXpo.framer-v-1fjtxwn.pressed .framer-1d651dx-container { height: var(--framer-aspect-ratio-supported, 14px); }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-3KXpo.framer-v-1fjtxwn.hover.framer-x1mwtx { gap: 0px; } .framer-3KXpo.framer-v-1fjtxwn.hover.framer-x1mwtx > * { margin: 0px; margin-left: calc(calc(max(0, var(--2tdpnr)) * 1px) / 2); margin-right: calc(calc(max(0, var(--2tdpnr)) * 1px) / 2); } .framer-3KXpo.framer-v-1fjtxwn.hover.framer-x1mwtx > :first-child { margin-left: 0px; } .framer-3KXpo.framer-v-1fjtxwn.hover.framer-x1mwtx > :last-child { margin-right: 0px; } }\",\".framer-3KXpo.framer-v-5ej7mq.hover.framer-x1mwtx { gap: calc(max(0, var(--456cd3)) * 1px); }\",\".framer-3KXpo.framer-v-5ej7mq.hover .framer-1d651dx-container, .framer-3KXpo.framer-v-5ej7mq.pressed .framer-1d651dx-container, .framer-3KXpo.framer-v-lzyhgw.hover .framer-1d651dx-container, .framer-3KXpo.framer-v-5xgyli.hover .framer-1d651dx-container, .framer-3KXpo.framer-v-1fu7a2j.hover .framer-1d651dx-container { aspect-ratio: unset; }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-3KXpo.framer-v-5ej7mq.hover.framer-x1mwtx { gap: 0px; } .framer-3KXpo.framer-v-5ej7mq.hover.framer-x1mwtx > * { margin: 0px; margin-left: calc(calc(max(0, var(--456cd3)) * 1px) / 2); margin-right: calc(calc(max(0, var(--456cd3)) * 1px) / 2); } .framer-3KXpo.framer-v-5ej7mq.hover.framer-x1mwtx > :first-child { margin-left: 0px; } .framer-3KXpo.framer-v-5ej7mq.hover.framer-x1mwtx > :last-child { margin-right: 0px; } }\",...sharedStyle.css,...sharedStyle1.css,...sharedStyle2.css,...sharedStyle3.css,...sharedStyle4.css,...sharedStyle5.css,'.framer-3KXpo[data-border=\"true\"]::after, .framer-3KXpo [data-border=\"true\"]::after { content: \"\"; border-width: var(--border-top-width, 0) var(--border-right-width, 0) var(--border-bottom-width, 0) var(--border-left-width, 0); border-color: var(--border-color, none); border-style: var(--border-style, none); width: 100%; height: 100%; position: absolute; box-sizing: border-box; left: 0; top: 0; border-radius: inherit; pointer-events: none; }'];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 50\n * @framerIntrinsicWidth 162\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"auto\",\"fixed\"]},\"AWA62y_GV\":{\"layout\":[\"auto\",\"fixed\"]},\"Nw_OMPtNd\":{\"layout\":[\"auto\",\"fixed\"]},\"E_YzJ47KG\":{\"layout\":[\"auto\",\"fixed\"]},\"kqEkETMOP\":{\"layout\":[\"auto\",\"fixed\"]},\"ynGVXJw2g\":{\"layout\":[\"auto\",\"fixed\"]},\"iS3JUvC7w\":{\"layout\":[\"auto\",\"auto\"]},\"dFbyw6SJY\":{\"layout\":[\"auto\",\"auto\"]},\"Utk0c0Cr7\":{\"layout\":[\"auto\",\"auto\"]},\"HvwGpVmDr\":{\"layout\":[\"auto\",\"auto\"]},\"IDwhfdJBh\":{\"layout\":[\"auto\",\"auto\"]},\"MBIq0M3Al\":{\"layout\":[\"auto\",\"auto\"]},\"q5BfZWkq3\":{\"layout\":[\"auto\",\"fixed\"]},\"xgOkpyrra\":{\"layout\":[\"auto\",\"fixed\"]},\"rKYSSZwe2\":{\"layout\":[\"auto\",\"fixed\"]},\"gANayGxbB\":{\"layout\":[\"auto\",\"fixed\"]},\"OcythEP_e\":{\"layout\":[\"auto\",\"fixed\"]},\"evCjvKBOk\":{\"layout\":[\"auto\",\"fixed\"]},\"UU0TuxHE6\":{\"layout\":[\"auto\",\"fixed\"]},\"NEPIE7we5\":{\"layout\":[\"auto\",\"fixed\"]},\"Q490TiYfK\":{\"layout\":[\"auto\",\"fixed\"]},\"laaT2Y8FZ\":{\"layout\":[\"auto\",\"fixed\"]},\"rFAneJ51I\":{\"layout\":[\"auto\",\"fixed\"]},\"CL0W1w0hq\":{\"layout\":[\"auto\",\"fixed\"]},\"KrJd0M7R2\":{\"layout\":[\"auto\",\"auto\"]},\"TlPZsyPGs\":{\"layout\":[\"auto\",\"auto\"]},\"c07ZwC6MV\":{\"layout\":[\"auto\",\"auto\"]},\"VrFcgLPDy\":{\"layout\":[\"auto\",\"auto\"]},\"jOAfo3RLR\":{\"layout\":[\"auto\",\"auto\"]},\"YezSsL7m6\":{\"layout\":[\"auto\",\"auto\"]},\"djCPhG9Fr\":{\"layout\":[\"auto\",\"auto\"]},\"j4DU7C0CS\":{\"layout\":[\"auto\",\"auto\"]},\"y7q2y48np\":{\"layout\":[\"auto\",\"auto\"]}}}\n * @framerVariables {\"G77f5Yx_v\":\"buttonText\",\"U1Kbkgydv\":\"link\",\"ey7w8muFX\":\"newTab\",\"oV7zrnzuy\":\"buttonColor\",\"HFfTjmBlq\":\"buttonTextColor\",\"VkxZQkMEC\":\"shadow\",\"n9WP3fBIv\":\"showIcon\",\"Vo_oxchYD\":\"iconName\",\"ApWhoO21o\":\"border\",\"SZQpZ3lk2\":\"radius\",\"WM2TpCryl\":\"iconAnimation\",\"nSQvgmbyz\":\"tap\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerComponentViewportWidth true\n */const FramerLNCJ8JrMb=withCSS(Component,css,\"framer-3KXpo\");export default FramerLNCJ8JrMb;FramerLNCJ8JrMb.displayName=\"Button\";FramerLNCJ8JrMb.defaultProps={height:50,width:162};addPropertyControls(FramerLNCJ8JrMb,{variant:{options:[\"rt1NrdlKK\",\"AWA62y_GV\",\"Nw_OMPtNd\",\"E_YzJ47KG\",\"kqEkETMOP\",\"ynGVXJw2g\",\"iS3JUvC7w\",\"dFbyw6SJY\",\"Utk0c0Cr7\",\"HvwGpVmDr\",\"IDwhfdJBh\",\"MBIq0M3Al\"],optionTitles:[\"Button [Default]\",\"Button [Line]\",\"Button [sm]\",\"Button [sm Line]\",\"Button [xs]\",\"Button [xs Line]\",\"Link [Default]\",\"Link [sm]\",\"Link [xs]\",\"Icon [Default]\",\"Icon [sm]\",\"Icon [xs]\"],title:\"Variant\",type:ControlType.Enum},G77f5Yx_v:{defaultValue:\"Button Label\",displayTextArea:false,placeholder:\"\",title:\"Button Text\",type:ControlType.String},U1Kbkgydv:{title:\"Link\",type:ControlType.Link},ey7w8muFX:{defaultValue:false,title:\"New Tab\",type:ControlType.Boolean},oV7zrnzuy:{defaultValue:'var(--token-2b0e18bf-9e9a-4016-bdfc-5769700a5529, rgb(255, 255, 255)) /* {\"name\":\"White/Gray 950 [Dynamic]\"} */',title:\"Button Color\",type:ControlType.Color},HFfTjmBlq:{defaultValue:'var(--token-de5448c6-98bb-4403-96cd-7fe86bf2daa6, rgb(9, 9, 11)) /* {\"name\":\"Gray 950 [Dynamic]\"} */',title:\"Button Text Color\",type:ControlType.Color},VkxZQkMEC:{defaultValue:[{blur:3,color:\"rgba(9, 9, 11, 0.15)\",diffusion:.25,focus:.5,inset:false,spread:0,type:\"realistic\",x:0,y:10}],title:\"Shadow\",type:ControlType.BoxShadow},n9WP3fBIv:{defaultValue:true,title:\"Show Icon\",type:ControlType.Boolean},Vo_oxchYD:(PhosphorControls===null||PhosphorControls===void 0?void 0:PhosphorControls[\"iconSelection\"])&&{...PhosphorControls[\"iconSelection\"],defaultValue:\"CaretRight\",description:undefined,hidden:undefined,title:\"Icon Name\"},ApWhoO21o:{defaultValue:{borderColor:'var(--token-31213cc7-db87-4df4-8209-e72c8adb68fb, rgb(228, 228, 231)) /* {\"name\":\"Gray 200 [Dynamic]\"} */',borderStyle:\"solid\",borderWidth:1},title:\"Border\",type:ControlType.Border},SZQpZ3lk2:{defaultValue:10,title:\"Radius\",type:ControlType.Number},WM2TpCryl:{defaultValue:false,title:\"Icon Animation\",type:ControlType.Boolean},nSQvgmbyz:{title:\"Tap\",type:ControlType.EventHandler}});addFonts(FramerLNCJ8JrMb,[{explicitInter:true,fonts:[{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5vvr9Vy74if2I6bQbJvbw7SY1pQ.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/EOr0mi4hNtlgWNn9if640EZzXCo.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/Y9k9QrlZAqio88Klkmbd8VoMQc.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/OYrD2tBIBPvoJXiIHnLoOXnY9M.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/JeYwfuaPfZHQhEG8U5gtPDZ7WQ.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/vQyevYAyHtARFwPqUzQGpnDs.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/b6Y37FthZeALduNqHicBT6FutY.woff2\",weight:\"400\"}]},...PhosphorFonts,...getFontsFromSharedStyle(sharedStyle.fonts),...getFontsFromSharedStyle(sharedStyle1.fonts),...getFontsFromSharedStyle(sharedStyle2.fonts),...getFontsFromSharedStyle(sharedStyle3.fonts),...getFontsFromSharedStyle(sharedStyle4.fonts),...getFontsFromSharedStyle(sharedStyle5.fonts)],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerLNCJ8JrMb\",\"slots\":[],\"annotations\":{\"framerDisplayContentsDiv\":\"false\",\"framerIntrinsicWidth\":\"162\",\"framerIntrinsicHeight\":\"50\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"fixed\\\"]},\\\"AWA62y_GV\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"fixed\\\"]},\\\"Nw_OMPtNd\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"fixed\\\"]},\\\"E_YzJ47KG\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"fixed\\\"]},\\\"kqEkETMOP\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"fixed\\\"]},\\\"ynGVXJw2g\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"fixed\\\"]},\\\"iS3JUvC7w\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"dFbyw6SJY\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"Utk0c0Cr7\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"HvwGpVmDr\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"IDwhfdJBh\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"MBIq0M3Al\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"q5BfZWkq3\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"fixed\\\"]},\\\"xgOkpyrra\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"fixed\\\"]},\\\"rKYSSZwe2\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"fixed\\\"]},\\\"gANayGxbB\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"fixed\\\"]},\\\"OcythEP_e\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"fixed\\\"]},\\\"evCjvKBOk\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"fixed\\\"]},\\\"UU0TuxHE6\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"fixed\\\"]},\\\"NEPIE7we5\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"fixed\\\"]},\\\"Q490TiYfK\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"fixed\\\"]},\\\"laaT2Y8FZ\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"fixed\\\"]},\\\"rFAneJ51I\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"fixed\\\"]},\\\"CL0W1w0hq\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"fixed\\\"]},\\\"KrJd0M7R2\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"TlPZsyPGs\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"c07ZwC6MV\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"VrFcgLPDy\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"jOAfo3RLR\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"YezSsL7m6\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"djCPhG9Fr\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"j4DU7C0CS\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"y7q2y48np\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]}}}\",\"framerContractVersion\":\"1\",\"framerImmutableVariables\":\"true\",\"framerComponentViewportWidth\":\"true\",\"framerVariables\":\"{\\\"G77f5Yx_v\\\":\\\"buttonText\\\",\\\"U1Kbkgydv\\\":\\\"link\\\",\\\"ey7w8muFX\\\":\\\"newTab\\\",\\\"oV7zrnzuy\\\":\\\"buttonColor\\\",\\\"HFfTjmBlq\\\":\\\"buttonTextColor\\\",\\\"VkxZQkMEC\\\":\\\"shadow\\\",\\\"n9WP3fBIv\\\":\\\"showIcon\\\",\\\"Vo_oxchYD\\\":\\\"iconName\\\",\\\"ApWhoO21o\\\":\\\"border\\\",\\\"SZQpZ3lk2\\\":\\\"radius\\\",\\\"WM2TpCryl\\\":\\\"iconAnimation\\\",\\\"nSQvgmbyz\\\":\\\"tap\\\"}\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./LNCJ8JrMb.map","/**\n * @license\n * Copyright 2010-2021 Three.js Authors\n * SPDX-License-Identifier: MIT\n */\nconst e=\"136\";const t={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2};const n={ROTATE:0,PAN:1,DOLLY_PAN:2,DOLLY_ROTATE:3};const r=0;const i=1;const s=2;const a=3;const o=0;const l=1;const c=2;const u=3;const h=0;const d=1;const p=2;const f=1;const m=2;const g=0;const y=1;const x=2;const b=3;const _=4;const M=5;const w=100;const S=101;const T=102;const E=103;const A=104;const L=200;const C=201;const R=202;const P=203;const I=204;const D=205;const B=206;const V=207;const N=208;const U=209;const z=210;const G=0;const F=1;const O=2;const H=3;const k=4;const W=5;const j=6;const q=7;const X=0;const J=1;const Y=2;const Z=0;const Q=1;const K=2;const $=3;const ee=4;const te=5;const ne=300;const re=301;const ie=302;const se=303;const ae=304;const oe=306;const le=307;const ce=1e3;const ue=1001;const he=1002;const de=1003;const pe=1004;const fe=1004;const me=1005;const ge=1005;const ye=1006;const ve=1007;const xe=1007;const be=1008;const _e=1008;const Me=1009;const we=1010;const Se=1011;const Te=1012;const Ee=1013;const Ae=1014;const Le=1015;const Ce=1016;const Re=1017;const Pe=1018;const Ie=1019;const De=1020;const Be=1021;const Ve=1022;const Ne=1023;const Ue=1024;const ze=1025;const Ge=1026;const Fe=1027;const Oe=1028;const He=1029;const ke=1030;const We=1031;const je=1032;const qe=1033;const Xe=33776;const Je=33777;const Ye=33778;const Ze=33779;const Qe=35840;const Ke=35841;const $e=35842;const et=35843;const tt=36196;const nt=37492;const rt=37496;const it=37808;const st=37809;const at=37810;const ot=37811;const lt=37812;const ct=37813;const ut=37814;const ht=37815;const dt=37816;const pt=37817;const ft=37818;const mt=37819;const gt=37820;const yt=37821;const vt=36492;const xt=37840;const bt=37841;const _t=37842;const Mt=37843;const wt=37844;const St=37845;const Tt=37846;const Et=37847;const At=37848;const Lt=37849;const Ct=37850;const Rt=37851;const Pt=37852;const It=37853;const Dt=2200;const Bt=2201;const Vt=2202;const Nt=2300;const Ut=2301;const zt=2302;const Gt=2400;const Ft=2401;const Ot=2402;const Ht=2500;const kt=2501;const Wt=0;const jt=1;const qt=2;const Xt=3e3;const Jt=3001;const Yt=3200;const Zt=3201;const Qt=0;const Kt=1;const $t=0;const en=7680;const tn=7681;const nn=7682;const rn=7683;const sn=34055;const an=34056;const on=5386;const ln=512;const cn=513;const un=514;const hn=515;const dn=516;const pn=517;const fn=518;const mn=519;const gn=35044;const yn=35048;const vn=35040;const xn=35045;const bn=35049;const _n=35041;const Mn=35046;const wn=35050;const Sn=35042;const Tn=\"100\";const En=\"300 es\";class EventDispatcher{addEventListener(e,t){void 0===this._listeners&&(this._listeners={});const n=this._listeners;void 0===n[e]&&(n[e]=[]);-1===n[e].indexOf(t)&&n[e].push(t)}hasEventListener(e,t){if(void 0===this._listeners)return false;const n=this._listeners;return void 0!==n[e]&&-1!==n[e].indexOf(t)}removeEventListener(e,t){if(void 0===this._listeners)return;const n=this._listeners;const r=n[e];if(void 0!==r){const e=r.indexOf(t);-1!==e&&r.splice(e,1)}}dispatchEvent(e){if(void 0===this._listeners)return;const t=this._listeners;const n=t[e.type];if(void 0!==n){e.target=this;const t=n.slice(0);for(let n=0,r=t.length;n<r;n++)t[n].call(this,e);e.target=null}}}const An=[];for(let e=0;e<256;e++)An[e]=(e<16?\"0\":\"\")+e.toString(16);let Ln=1234567;const Cn=Math.PI/180;const Rn=180/Math.PI;function generateUUID(){const e=4294967295*Math.random()|0;const t=4294967295*Math.random()|0;const n=4294967295*Math.random()|0;const r=4294967295*Math.random()|0;const i=An[255&e]+An[e>>8&255]+An[e>>16&255]+An[e>>24&255]+\"-\"+An[255&t]+An[t>>8&255]+\"-\"+An[t>>16&15|64]+An[t>>24&255]+\"-\"+An[63&n|128]+An[n>>8&255]+\"-\"+An[n>>16&255]+An[n>>24&255]+An[255&r]+An[r>>8&255]+An[r>>16&255]+An[r>>24&255];return i.toUpperCase()}function clamp(e,t,n){return Math.max(t,Math.min(n,e))}function euclideanModulo(e,t){return(e%t+t)%t}function mapLinear(e,t,n,r,i){return r+(e-t)*(i-r)/(n-t)}function inverseLerp(e,t,n){return e!==t?(n-e)/(t-e):0}function lerp(e,t,n){return(1-n)*e+n*t}function damp(e,t,n,r){return lerp(e,t,1-Math.exp(-n*r))}function pingpong(e,t=1){return t-Math.abs(euclideanModulo(e,2*t)-t)}function smoothstep(e,t,n){if(e<=t)return 0;if(e>=n)return 1;e=(e-t)/(n-t);return e*e*(3-2*e)}function smootherstep(e,t,n){if(e<=t)return 0;if(e>=n)return 1;e=(e-t)/(n-t);return e*e*e*(e*(6*e-15)+10)}function randInt(e,t){return e+Math.floor(Math.random()*(t-e+1))}function randFloat(e,t){return e+Math.random()*(t-e)}function randFloatSpread(e){return e*(.5-Math.random())}function seededRandom(e){void 0!==e&&(Ln=e%2147483647);Ln=16807*Ln%2147483647;return(Ln-1)/2147483646}function degToRad(e){return e*Cn}function radToDeg(e){return e*Rn}function isPowerOfTwo(e){return 0===(e&e-1)&&0!==e}function ceilPowerOfTwo(e){return Math.pow(2,Math.ceil(Math.log(e)/Math.LN2))}function floorPowerOfTwo(e){return Math.pow(2,Math.floor(Math.log(e)/Math.LN2))}function setQuaternionFromProperEuler(e,t,n,r,i){const s=Math.cos;const a=Math.sin;const o=s(n/2);const l=a(n/2);const c=s((t+r)/2);const u=a((t+r)/2);const h=s((t-r)/2);const d=a((t-r)/2);const p=s((r-t)/2);const f=a((r-t)/2);switch(i){case\"XYX\":e.set(o*u,l*h,l*d,o*c);break;case\"YZY\":e.set(l*d,o*u,l*h,o*c);break;case\"ZXZ\":e.set(l*h,l*d,o*u,o*c);break;case\"XZX\":e.set(o*u,l*f,l*p,o*c);break;case\"YXY\":e.set(l*p,o*u,l*f,o*c);break;case\"ZYZ\":e.set(l*f,l*p,o*u,o*c);break;default:console.warn(\"THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: \"+i)}}var Pn=Object.freeze({__proto__:null,DEG2RAD:Cn,RAD2DEG:Rn,generateUUID:generateUUID,clamp:clamp,euclideanModulo:euclideanModulo,mapLinear:mapLinear,inverseLerp:inverseLerp,lerp:lerp,damp:damp,pingpong:pingpong,smoothstep:smoothstep,smootherstep:smootherstep,randInt:randInt,randFloat:randFloat,randFloatSpread:randFloatSpread,seededRandom:seededRandom,degToRad:degToRad,radToDeg:radToDeg,isPowerOfTwo:isPowerOfTwo,ceilPowerOfTwo:ceilPowerOfTwo,floorPowerOfTwo:floorPowerOfTwo,setQuaternionFromProperEuler:setQuaternionFromProperEuler});class Vector2{constructor(e=0,t=0){this.x=e;this.y=t}get width(){return this.x}set width(e){this.x=e}get height(){return this.y}set height(e){this.y=e}set(e,t){this.x=e;this.y=t;return this}setScalar(e){this.x=e;this.y=e;return this}setX(e){this.x=e;return this}setY(e){this.y=e;return this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;default:throw new Error(\"index is out of range: \"+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;default:throw new Error(\"index is out of range: \"+e)}}clone(){return new this.constructor(this.x,this.y)}copy(e){this.x=e.x;this.y=e.y;return this}add(e,t){if(void 0!==t){console.warn(\"THREE.Vector2: .add() now only accepts one argument. Use .addVectors( a, b ) instead.\");return this.addVectors(e,t)}this.x+=e.x;this.y+=e.y;return this}addScalar(e){this.x+=e;this.y+=e;return this}addVectors(e,t){this.x=e.x+t.x;this.y=e.y+t.y;return this}addScaledVector(e,t){this.x+=e.x*t;this.y+=e.y*t;return this}sub(e,t){if(void 0!==t){console.warn(\"THREE.Vector2: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.\");return this.subVectors(e,t)}this.x-=e.x;this.y-=e.y;return this}subScalar(e){this.x-=e;this.y-=e;return this}subVectors(e,t){this.x=e.x-t.x;this.y=e.y-t.y;return this}multiply(e){this.x*=e.x;this.y*=e.y;return this}multiplyScalar(e){this.x*=e;this.y*=e;return this}divide(e){this.x/=e.x;this.y/=e.y;return this}divideScalar(e){return this.multiplyScalar(1/e)}applyMatrix3(e){const t=this.x,n=this.y;const r=e.elements;this.x=r[0]*t+r[3]*n+r[6];this.y=r[1]*t+r[4]*n+r[7];return this}min(e){this.x=Math.min(this.x,e.x);this.y=Math.min(this.y,e.y);return this}max(e){this.x=Math.max(this.x,e.x);this.y=Math.max(this.y,e.y);return this}clamp(e,t){this.x=Math.max(e.x,Math.min(t.x,this.x));this.y=Math.max(e.y,Math.min(t.y,this.y));return this}clampScalar(e,t){this.x=Math.max(e,Math.min(t,this.x));this.y=Math.max(e,Math.min(t,this.y));return this}clampLength(e,t){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(e,Math.min(t,n)))}floor(){this.x=Math.floor(this.x);this.y=Math.floor(this.y);return this}ceil(){this.x=Math.ceil(this.x);this.y=Math.ceil(this.y);return this}round(){this.x=Math.round(this.x);this.y=Math.round(this.y);return this}roundToZero(){this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x);this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y);return this}negate(){this.x=-this.x;this.y=-this.y;return this}dot(e){return this.x*e.x+this.y*e.y}cross(e){return this.x*e.y-this.y*e.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){const e=Math.atan2(-this.y,-this.x)+Math.PI;return e}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){const t=this.x-e.x,n=this.y-e.y;return t*t+n*n}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){this.x+=(e.x-this.x)*t;this.y+=(e.y-this.y)*t;return this}lerpVectors(e,t,n){this.x=e.x+(t.x-e.x)*n;this.y=e.y+(t.y-e.y)*n;return this}equals(e){return e.x===this.x&&e.y===this.y}fromArray(e,t=0){this.x=e[t];this.y=e[t+1];return this}toArray(e=[],t=0){e[t]=this.x;e[t+1]=this.y;return e}fromBufferAttribute(e,t,n){void 0!==n&&console.warn(\"THREE.Vector2: offset has been removed from .fromBufferAttribute().\");this.x=e.getX(t);this.y=e.getY(t);return this}rotateAround(e,t){const n=Math.cos(t),r=Math.sin(t);const i=this.x-e.x;const s=this.y-e.y;this.x=i*n-s*r+e.x;this.y=i*r+s*n+e.y;return this}random(){this.x=Math.random();this.y=Math.random();return this}*[Symbol.iterator](){yield this.x;yield this.y}}Vector2.prototype.isVector2=true;class Matrix3{constructor(){this.elements=[1,0,0,0,1,0,0,0,1];arguments.length>0&&console.error(\"THREE.Matrix3: the constructor no longer reads arguments. use .set() instead.\")}set(e,t,n,r,i,s,a,o,l){const c=this.elements;c[0]=e;c[1]=r;c[2]=a;c[3]=t;c[4]=i;c[5]=o;c[6]=n;c[7]=s;c[8]=l;return this}identity(){this.set(1,0,0,0,1,0,0,0,1);return this}copy(e){const t=this.elements;const n=e.elements;t[0]=n[0];t[1]=n[1];t[2]=n[2];t[3]=n[3];t[4]=n[4];t[5]=n[5];t[6]=n[6];t[7]=n[7];t[8]=n[8];return this}extractBasis(e,t,n){e.setFromMatrix3Column(this,0);t.setFromMatrix3Column(this,1);n.setFromMatrix3Column(this,2);return this}setFromMatrix4(e){const t=e.elements;this.set(t[0],t[4],t[8],t[1],t[5],t[9],t[2],t[6],t[10]);return this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,t){const n=e.elements;const r=t.elements;const i=this.elements;const s=n[0],a=n[3],o=n[6];const l=n[1],c=n[4],u=n[7];const h=n[2],d=n[5],p=n[8];const f=r[0],m=r[3],g=r[6];const y=r[1],x=r[4],b=r[7];const _=r[2],M=r[5],w=r[8];i[0]=s*f+a*y+o*_;i[3]=s*m+a*x+o*M;i[6]=s*g+a*b+o*w;i[1]=l*f+c*y+u*_;i[4]=l*m+c*x+u*M;i[7]=l*g+c*b+u*w;i[2]=h*f+d*y+p*_;i[5]=h*m+d*x+p*M;i[8]=h*g+d*b+p*w;return this}multiplyScalar(e){const t=this.elements;t[0]*=e;t[3]*=e;t[6]*=e;t[1]*=e;t[4]*=e;t[7]*=e;t[2]*=e;t[5]*=e;t[8]*=e;return this}determinant(){const e=this.elements;const t=e[0],n=e[1],r=e[2],i=e[3],s=e[4],a=e[5],o=e[6],l=e[7],c=e[8];return t*s*c-t*a*l-n*i*c+n*a*o+r*i*l-r*s*o}invert(){const e=this.elements,t=e[0],n=e[1],r=e[2],i=e[3],s=e[4],a=e[5],o=e[6],l=e[7],c=e[8],u=c*s-a*l,h=a*o-c*i,d=l*i-s*o,p=t*u+n*h+r*d;if(0===p)return this.set(0,0,0,0,0,0,0,0,0);const f=1/p;e[0]=u*f;e[1]=(r*l-c*n)*f;e[2]=(a*n-r*s)*f;e[3]=h*f;e[4]=(c*t-r*o)*f;e[5]=(r*i-a*t)*f;e[6]=d*f;e[7]=(n*o-l*t)*f;e[8]=(s*t-n*i)*f;return this}transpose(){let e;const t=this.elements;e=t[1];t[1]=t[3];t[3]=e;e=t[2];t[2]=t[6];t[6]=e;e=t[5];t[5]=t[7];t[7]=e;return this}getNormalMatrix(e){return this.setFromMatrix4(e).invert().transpose()}transposeIntoArray(e){const t=this.elements;e[0]=t[0];e[1]=t[3];e[2]=t[6];e[3]=t[1];e[4]=t[4];e[5]=t[7];e[6]=t[2];e[7]=t[5];e[8]=t[8];return this}setUvTransform(e,t,n,r,i,s,a){const o=Math.cos(i);const l=Math.sin(i);this.set(n*o,n*l,-n*(o*s+l*a)+s+e,-r*l,r*o,-r*(-l*s+o*a)+a+t,0,0,1);return this}scale(e,t){const n=this.elements;n[0]*=e;n[3]*=e;n[6]*=e;n[1]*=t;n[4]*=t;n[7]*=t;return this}rotate(e){const t=Math.cos(e);const n=Math.sin(e);const r=this.elements;const i=r[0],s=r[3],a=r[6];const o=r[1],l=r[4],c=r[7];r[0]=t*i+n*o;r[3]=t*s+n*l;r[6]=t*a+n*c;r[1]=-n*i+t*o;r[4]=-n*s+t*l;r[7]=-n*a+t*c;return this}translate(e,t){const n=this.elements;n[0]+=e*n[2];n[3]+=e*n[5];n[6]+=e*n[8];n[1]+=t*n[2];n[4]+=t*n[5];n[7]+=t*n[8];return this}equals(e){const t=this.elements;const n=e.elements;for(let e=0;e<9;e++)if(t[e]!==n[e])return false;return true}fromArray(e,t=0){for(let n=0;n<9;n++)this.elements[n]=e[n+t];return this}toArray(e=[],t=0){const n=this.elements;e[t]=n[0];e[t+1]=n[1];e[t+2]=n[2];e[t+3]=n[3];e[t+4]=n[4];e[t+5]=n[5];e[t+6]=n[6];e[t+7]=n[7];e[t+8]=n[8];return e}clone(){return(new this.constructor).fromArray(this.elements)}}Matrix3.prototype.isMatrix3=true;function arrayMax(e){if(0===e.length)return-Infinity;let t=e[0];for(let n=1,r=e.length;n<r;++n)e[n]>t&&(t=e[n]);return t}const In={Int8Array:Int8Array,Uint8Array:Uint8Array,Uint8ClampedArray:Uint8ClampedArray,Int16Array:Int16Array,Uint16Array:Uint16Array,Int32Array:Int32Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array};function getTypedArray(e,t){return new In[e](t)}function createElementNS(e){return document.createElementNS(\"http://www.w3.org/1999/xhtml\",e)}let Dn;class ImageUtils{static getDataURL(e){if(/^data:/i.test(e.src))return e.src;if(\"undefined\"==typeof HTMLCanvasElement)return e.src;let t;if(e instanceof HTMLCanvasElement)t=e;else{void 0===Dn&&(Dn=createElementNS(\"canvas\"));Dn.width=e.width;Dn.height=e.height;const n=Dn.getContext(\"2d\");e instanceof ImageData?n.putImageData(e,0,0):n.drawImage(e,0,0,e.width,e.height);t=Dn}if(t.width>2048||t.height>2048){console.warn(\"THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons\",e);return t.toDataURL(\"image/jpeg\",.6)}return t.toDataURL(\"image/png\")}}let Bn=0;class Texture extends EventDispatcher{constructor(e=Texture.DEFAULT_IMAGE,t=Texture.DEFAULT_MAPPING,n=ue,r=ue,i=ye,s=be,a=Ne,o=Me,l=1,c=Xt){super();Object.defineProperty(this,\"id\",{value:Bn++});this.uuid=generateUUID();this.name=\"\";this.image=e;this.mipmaps=[];this.mapping=t;this.wrapS=n;this.wrapT=r;this.magFilter=i;this.minFilter=s;this.anisotropy=l;this.format=a;this.internalFormat=null;this.type=o;this.offset=new Vector2(0,0);this.repeat=new Vector2(1,1);this.center=new Vector2(0,0);this.rotation=0;this.matrixAutoUpdate=true;this.matrix=new Matrix3;this.generateMipmaps=true;this.premultiplyAlpha=false;this.flipY=true;this.unpackAlignment=4;this.encoding=c;this.userData={};this.version=0;this.onUpdate=null;this.isRenderTargetTexture=false}updateMatrix(){this.matrix.setUvTransform(this.offset.x,this.offset.y,this.repeat.x,this.repeat.y,this.rotation,this.center.x,this.center.y)}clone(){return(new this.constructor).copy(this)}copy(e){this.name=e.name;this.image=e.image;this.mipmaps=e.mipmaps.slice(0);this.mapping=e.mapping;this.wrapS=e.wrapS;this.wrapT=e.wrapT;this.magFilter=e.magFilter;this.minFilter=e.minFilter;this.anisotropy=e.anisotropy;this.format=e.format;this.internalFormat=e.internalFormat;this.type=e.type;this.offset.copy(e.offset);this.repeat.copy(e.repeat);this.center.copy(e.center);this.rotation=e.rotation;this.matrixAutoUpdate=e.matrixAutoUpdate;this.matrix.copy(e.matrix);this.generateMipmaps=e.generateMipmaps;this.premultiplyAlpha=e.premultiplyAlpha;this.flipY=e.flipY;this.unpackAlignment=e.unpackAlignment;this.encoding=e.encoding;this.userData=JSON.parse(JSON.stringify(e.userData));return this}toJSON(e){const t=void 0===e||\"string\"===typeof e;if(!t&&void 0!==e.textures[this.uuid])return e.textures[this.uuid];const n={metadata:{version:4.5,type:\"Texture\",generator:\"Texture.toJSON\"},uuid:this.uuid,name:this.name,mapping:this.mapping,repeat:[this.repeat.x,this.repeat.y],offset:[this.offset.x,this.offset.y],center:[this.center.x,this.center.y],rotation:this.rotation,wrap:[this.wrapS,this.wrapT],format:this.format,type:this.type,encoding:this.encoding,minFilter:this.minFilter,magFilter:this.magFilter,anisotropy:this.anisotropy,flipY:this.flipY,premultiplyAlpha:this.premultiplyAlpha,unpackAlignment:this.unpackAlignment};if(void 0!==this.image){const r=this.image;void 0===r.uuid&&(r.uuid=generateUUID());if(!t&&void 0===e.images[r.uuid]){let t;if(Array.isArray(r)){t=[];for(let e=0,n=r.length;e<n;e++)r[e].isDataTexture?t.push(serializeImage(r[e].image)):t.push(serializeImage(r[e]))}else t=serializeImage(r);e.images[r.uuid]={uuid:r.uuid,url:t}}n.image=r.uuid}\"{}\"!==JSON.stringify(this.userData)&&(n.userData=this.userData);t||(e.textures[this.uuid]=n);return n}dispose(){this.dispatchEvent({type:\"dispose\"})}transformUv(e){if(this.mapping!==ne)return e;e.applyMatrix3(this.matrix);if(e.x<0||e.x>1)switch(this.wrapS){case ce:e.x=e.x-Math.floor(e.x);break;case ue:e.x=e.x<0?0:1;break;case he:1===Math.abs(Math.floor(e.x)%2)?e.x=Math.ceil(e.x)-e.x:e.x=e.x-Math.floor(e.x);break}if(e.y<0||e.y>1)switch(this.wrapT){case ce:e.y=e.y-Math.floor(e.y);break;case ue:e.y=e.y<0?0:1;break;case he:1===Math.abs(Math.floor(e.y)%2)?e.y=Math.ceil(e.y)-e.y:e.y=e.y-Math.floor(e.y);break}this.flipY&&(e.y=1-e.y);return e}set needsUpdate(e){true===e&&this.version++}}Texture.DEFAULT_IMAGE=void 0;Texture.DEFAULT_MAPPING=ne;Texture.prototype.isTexture=true;function serializeImage(e){if(\"undefined\"!==typeof HTMLImageElement&&e instanceof HTMLImageElement||\"undefined\"!==typeof HTMLCanvasElement&&e instanceof HTMLCanvasElement||\"undefined\"!==typeof ImageBitmap&&e instanceof ImageBitmap)return ImageUtils.getDataURL(e);if(e.data)return{data:Array.prototype.slice.call(e.data),width:e.width,height:e.height,type:e.data.constructor.name};console.warn(\"THREE.Texture: Unable to serialize Texture.\");return{}}class Vector4{constructor(e=0,t=0,n=0,r=1){this.x=e;this.y=t;this.z=n;this.w=r}get width(){return this.z}set width(e){this.z=e}get height(){return this.w}set height(e){this.w=e}set(e,t,n,r){this.x=e;this.y=t;this.z=n;this.w=r;return this}setScalar(e){this.x=e;this.y=e;this.z=e;this.w=e;return this}setX(e){this.x=e;return this}setY(e){this.y=e;return this}setZ(e){this.z=e;return this}setW(e){this.w=e;return this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;case 3:this.w=t;break;default:throw new Error(\"index is out of range: \"+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error(\"index is out of range: \"+e)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(e){this.x=e.x;this.y=e.y;this.z=e.z;this.w=void 0!==e.w?e.w:1;return this}add(e,t){if(void 0!==t){console.warn(\"THREE.Vector4: .add() now only accepts one argument. Use .addVectors( a, b ) instead.\");return this.addVectors(e,t)}this.x+=e.x;this.y+=e.y;this.z+=e.z;this.w+=e.w;return this}addScalar(e){this.x+=e;this.y+=e;this.z+=e;this.w+=e;return this}addVectors(e,t){this.x=e.x+t.x;this.y=e.y+t.y;this.z=e.z+t.z;this.w=e.w+t.w;return this}addScaledVector(e,t){this.x+=e.x*t;this.y+=e.y*t;this.z+=e.z*t;this.w+=e.w*t;return this}sub(e,t){if(void 0!==t){console.warn(\"THREE.Vector4: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.\");return this.subVectors(e,t)}this.x-=e.x;this.y-=e.y;this.z-=e.z;this.w-=e.w;return this}subScalar(e){this.x-=e;this.y-=e;this.z-=e;this.w-=e;return this}subVectors(e,t){this.x=e.x-t.x;this.y=e.y-t.y;this.z=e.z-t.z;this.w=e.w-t.w;return this}multiply(e){this.x*=e.x;this.y*=e.y;this.z*=e.z;this.w*=e.w;return this}multiplyScalar(e){this.x*=e;this.y*=e;this.z*=e;this.w*=e;return this}applyMatrix4(e){const t=this.x,n=this.y,r=this.z,i=this.w;const s=e.elements;this.x=s[0]*t+s[4]*n+s[8]*r+s[12]*i;this.y=s[1]*t+s[5]*n+s[9]*r+s[13]*i;this.z=s[2]*t+s[6]*n+s[10]*r+s[14]*i;this.w=s[3]*t+s[7]*n+s[11]*r+s[15]*i;return this}divideScalar(e){return this.multiplyScalar(1/e)}setAxisAngleFromQuaternion(e){this.w=2*Math.acos(e.w);const t=Math.sqrt(1-e.w*e.w);if(t<1e-4){this.x=1;this.y=0;this.z=0}else{this.x=e.x/t;this.y=e.y/t;this.z=e.z/t}return this}setAxisAngleFromRotationMatrix(e){let t,n,r,i;const s=.01,a=.1,o=e.elements,l=o[0],c=o[4],u=o[8],h=o[1],d=o[5],p=o[9],f=o[2],m=o[6],g=o[10];if(Math.abs(c-h)<s&&Math.abs(u-f)<s&&Math.abs(p-m)<s){if(Math.abs(c+h)<a&&Math.abs(u+f)<a&&Math.abs(p+m)<a&&Math.abs(l+d+g-3)<a){this.set(1,0,0,0);return this}t=Math.PI;const e=(l+1)/2;const o=(d+1)/2;const y=(g+1)/2;const x=(c+h)/4;const b=(u+f)/4;const _=(p+m)/4;if(e>o&&e>y)if(e<s){n=0;r=.707106781;i=.707106781}else{n=Math.sqrt(e);r=x/n;i=b/n}else if(o>y)if(o<s){n=.707106781;r=0;i=.707106781}else{r=Math.sqrt(o);n=x/r;i=_/r}else if(y<s){n=.707106781;r=.707106781;i=0}else{i=Math.sqrt(y);n=b/i;r=_/i}this.set(n,r,i,t);return this}let y=Math.sqrt((m-p)*(m-p)+(u-f)*(u-f)+(h-c)*(h-c));Math.abs(y)<.001&&(y=1);this.x=(m-p)/y;this.y=(u-f)/y;this.z=(h-c)/y;this.w=Math.acos((l+d+g-1)/2);return this}min(e){this.x=Math.min(this.x,e.x);this.y=Math.min(this.y,e.y);this.z=Math.min(this.z,e.z);this.w=Math.min(this.w,e.w);return this}max(e){this.x=Math.max(this.x,e.x);this.y=Math.max(this.y,e.y);this.z=Math.max(this.z,e.z);this.w=Math.max(this.w,e.w);return this}clamp(e,t){this.x=Math.max(e.x,Math.min(t.x,this.x));this.y=Math.max(e.y,Math.min(t.y,this.y));this.z=Math.max(e.z,Math.min(t.z,this.z));this.w=Math.max(e.w,Math.min(t.w,this.w));return this}clampScalar(e,t){this.x=Math.max(e,Math.min(t,this.x));this.y=Math.max(e,Math.min(t,this.y));this.z=Math.max(e,Math.min(t,this.z));this.w=Math.max(e,Math.min(t,this.w));return this}clampLength(e,t){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(e,Math.min(t,n)))}floor(){this.x=Math.floor(this.x);this.y=Math.floor(this.y);this.z=Math.floor(this.z);this.w=Math.floor(this.w);return this}ceil(){this.x=Math.ceil(this.x);this.y=Math.ceil(this.y);this.z=Math.ceil(this.z);this.w=Math.ceil(this.w);return this}round(){this.x=Math.round(this.x);this.y=Math.round(this.y);this.z=Math.round(this.z);this.w=Math.round(this.w);return this}roundToZero(){this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x);this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y);this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z);this.w=this.w<0?Math.ceil(this.w):Math.floor(this.w);return this}negate(){this.x=-this.x;this.y=-this.y;this.z=-this.z;this.w=-this.w;return this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z+this.w*e.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){this.x+=(e.x-this.x)*t;this.y+=(e.y-this.y)*t;this.z+=(e.z-this.z)*t;this.w+=(e.w-this.w)*t;return this}lerpVectors(e,t,n){this.x=e.x+(t.x-e.x)*n;this.y=e.y+(t.y-e.y)*n;this.z=e.z+(t.z-e.z)*n;this.w=e.w+(t.w-e.w)*n;return this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z&&e.w===this.w}fromArray(e,t=0){this.x=e[t];this.y=e[t+1];this.z=e[t+2];this.w=e[t+3];return this}toArray(e=[],t=0){e[t]=this.x;e[t+1]=this.y;e[t+2]=this.z;e[t+3]=this.w;return e}fromBufferAttribute(e,t,n){void 0!==n&&console.warn(\"THREE.Vector4: offset has been removed from .fromBufferAttribute().\");this.x=e.getX(t);this.y=e.getY(t);this.z=e.getZ(t);this.w=e.getW(t);return this}random(){this.x=Math.random();this.y=Math.random();this.z=Math.random();this.w=Math.random();return this}*[Symbol.iterator](){yield this.x;yield this.y;yield this.z;yield this.w}}Vector4.prototype.isVector4=true;class WebGLRenderTarget extends EventDispatcher{constructor(e,t,n={}){super();this.width=e;this.height=t;this.depth=1;this.scissor=new Vector4(0,0,e,t);this.scissorTest=false;this.viewport=new Vector4(0,0,e,t);this.texture=new Texture(void 0,n.mapping,n.wrapS,n.wrapT,n.magFilter,n.minFilter,n.format,n.type,n.anisotropy,n.encoding);this.texture.isRenderTargetTexture=true;this.texture.image={width:e,height:t,depth:1};this.texture.generateMipmaps=void 0!==n.generateMipmaps&&n.generateMipmaps;this.texture.internalFormat=void 0!==n.internalFormat?n.internalFormat:null;this.texture.minFilter=void 0!==n.minFilter?n.minFilter:ye;this.depthBuffer=void 0===n.depthBuffer||n.depthBuffer;this.stencilBuffer=void 0!==n.stencilBuffer&&n.stencilBuffer;this.depthTexture=void 0!==n.depthTexture?n.depthTexture:null}setTexture(e){e.image={width:this.width,height:this.height,depth:this.depth};this.texture=e}setSize(e,t,n=1){if(this.width!==e||this.height!==t||this.depth!==n){this.width=e;this.height=t;this.depth=n;this.texture.image.width=e;this.texture.image.height=t;this.texture.image.depth=n;this.dispose()}this.viewport.set(0,0,e,t);this.scissor.set(0,0,e,t)}clone(){return(new this.constructor).copy(this)}copy(e){this.width=e.width;this.height=e.height;this.depth=e.depth;this.viewport.copy(e.viewport);this.texture=e.texture.clone();this.texture.image={...this.texture.image};this.depthBuffer=e.depthBuffer;this.stencilBuffer=e.stencilBuffer;this.depthTexture=e.depthTexture;return this}dispose(){this.dispatchEvent({type:\"dispose\"})}}WebGLRenderTarget.prototype.isWebGLRenderTarget=true;class WebGLMultipleRenderTargets extends WebGLRenderTarget{constructor(e,t,n){super(e,t);const r=this.texture;this.texture=[];for(let e=0;e<n;e++)this.texture[e]=r.clone()}setSize(e,t,n=1){if(this.width!==e||this.height!==t||this.depth!==n){this.width=e;this.height=t;this.depth=n;for(let r=0,i=this.texture.length;r<i;r++){this.texture[r].image.width=e;this.texture[r].image.height=t;this.texture[r].image.depth=n}this.dispose()}this.viewport.set(0,0,e,t);this.scissor.set(0,0,e,t);return this}copy(e){this.dispose();this.width=e.width;this.height=e.height;this.depth=e.depth;this.viewport.set(0,0,this.width,this.height);this.scissor.set(0,0,this.width,this.height);this.depthBuffer=e.depthBuffer;this.stencilBuffer=e.stencilBuffer;this.depthTexture=e.depthTexture;this.texture.length=0;for(let t=0,n=e.texture.length;t<n;t++)this.texture[t]=e.texture[t].clone();return this}}WebGLMultipleRenderTargets.prototype.isWebGLMultipleRenderTargets=true;class WebGLMultisampleRenderTarget extends WebGLRenderTarget{constructor(e,t,n={}){super(e,t,n);this.samples=4;this.ignoreDepthForMultisampleCopy=void 0===n.ignoreDepth||n.ignoreDepth;this.useRenderToTexture=void 0!==n.useRenderToTexture&&n.useRenderToTexture;this.useRenderbuffer=false===this.useRenderToTexture}copy(e){super.copy.call(this,e);this.samples=e.samples;this.useRenderToTexture=e.useRenderToTexture;this.useRenderbuffer=e.useRenderbuffer;return this}}WebGLMultisampleRenderTarget.prototype.isWebGLMultisampleRenderTarget=true;class Quaternion{constructor(e=0,t=0,n=0,r=1){this._x=e;this._y=t;this._z=n;this._w=r}static slerp(e,t,n,r){console.warn(\"THREE.Quaternion: Static .slerp() has been deprecated. Use qm.slerpQuaternions( qa, qb, t ) instead.\");return n.slerpQuaternions(e,t,r)}static slerpFlat(e,t,n,r,i,s,a){let o=n[r+0],l=n[r+1],c=n[r+2],u=n[r+3];const h=i[s+0],d=i[s+1],p=i[s+2],f=i[s+3];if(0!==a)if(1!==a){if(u!==f||o!==h||l!==d||c!==p){let e=1-a;const t=o*h+l*d+c*p+u*f,n=t>=0?1:-1,r=1-t*t;if(r>Number.EPSILON){const i=Math.sqrt(r),s=Math.atan2(i,t*n);e=Math.sin(e*s)/i;a=Math.sin(a*s)/i}const i=a*n;o=o*e+h*i;l=l*e+d*i;c=c*e+p*i;u=u*e+f*i;if(e===1-a){const e=1/Math.sqrt(o*o+l*l+c*c+u*u);o*=e;l*=e;c*=e;u*=e}}e[t]=o;e[t+1]=l;e[t+2]=c;e[t+3]=u}else{e[t+0]=h;e[t+1]=d;e[t+2]=p;e[t+3]=f}else{e[t+0]=o;e[t+1]=l;e[t+2]=c;e[t+3]=u}}static multiplyQuaternionsFlat(e,t,n,r,i,s){const a=n[r];const o=n[r+1];const l=n[r+2];const c=n[r+3];const u=i[s];const h=i[s+1];const d=i[s+2];const p=i[s+3];e[t]=a*p+c*u+o*d-l*h;e[t+1]=o*p+c*h+l*u-a*d;e[t+2]=l*p+c*d+a*h-o*u;e[t+3]=c*p-a*u-o*h-l*d;return e}get x(){return this._x}set x(e){this._x=e;this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e;this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e;this._onChangeCallback()}get w(){return this._w}set w(e){this._w=e;this._onChangeCallback()}set(e,t,n,r){this._x=e;this._y=t;this._z=n;this._w=r;this._onChangeCallback();return this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(e){this._x=e.x;this._y=e.y;this._z=e.z;this._w=e.w;this._onChangeCallback();return this}setFromEuler(e,t){if(!(e&&e.isEuler))throw new Error(\"THREE.Quaternion: .setFromEuler() now expects an Euler rotation rather than a Vector3 and order.\");const n=e._x,r=e._y,i=e._z,s=e._order;const a=Math.cos;const o=Math.sin;const l=a(n/2);const c=a(r/2);const u=a(i/2);const h=o(n/2);const d=o(r/2);const p=o(i/2);switch(s){case\"XYZ\":this._x=h*c*u+l*d*p;this._y=l*d*u-h*c*p;this._z=l*c*p+h*d*u;this._w=l*c*u-h*d*p;break;case\"YXZ\":this._x=h*c*u+l*d*p;this._y=l*d*u-h*c*p;this._z=l*c*p-h*d*u;this._w=l*c*u+h*d*p;break;case\"ZXY\":this._x=h*c*u-l*d*p;this._y=l*d*u+h*c*p;this._z=l*c*p+h*d*u;this._w=l*c*u-h*d*p;break;case\"ZYX\":this._x=h*c*u-l*d*p;this._y=l*d*u+h*c*p;this._z=l*c*p-h*d*u;this._w=l*c*u+h*d*p;break;case\"YZX\":this._x=h*c*u+l*d*p;this._y=l*d*u+h*c*p;this._z=l*c*p-h*d*u;this._w=l*c*u-h*d*p;break;case\"XZY\":this._x=h*c*u-l*d*p;this._y=l*d*u-h*c*p;this._z=l*c*p+h*d*u;this._w=l*c*u+h*d*p;break;default:console.warn(\"THREE.Quaternion: .setFromEuler() encountered an unknown order: \"+s)}false!==t&&this._onChangeCallback();return this}setFromAxisAngle(e,t){const n=t/2,r=Math.sin(n);this._x=e.x*r;this._y=e.y*r;this._z=e.z*r;this._w=Math.cos(n);this._onChangeCallback();return this}setFromRotationMatrix(e){const t=e.elements,n=t[0],r=t[4],i=t[8],s=t[1],a=t[5],o=t[9],l=t[2],c=t[6],u=t[10],h=n+a+u;if(h>0){const e=.5/Math.sqrt(h+1);this._w=.25/e;this._x=(c-o)*e;this._y=(i-l)*e;this._z=(s-r)*e}else if(n>a&&n>u){const e=2*Math.sqrt(1+n-a-u);this._w=(c-o)/e;this._x=.25*e;this._y=(r+s)/e;this._z=(i+l)/e}else if(a>u){const e=2*Math.sqrt(1+a-n-u);this._w=(i-l)/e;this._x=(r+s)/e;this._y=.25*e;this._z=(o+c)/e}else{const e=2*Math.sqrt(1+u-n-a);this._w=(s-r)/e;this._x=(i+l)/e;this._y=(o+c)/e;this._z=.25*e}this._onChangeCallback();return this}setFromUnitVectors(e,t){let n=e.dot(t)+1;if(n<Number.EPSILON){n=0;if(Math.abs(e.x)>Math.abs(e.z)){this._x=-e.y;this._y=e.x;this._z=0;this._w=n}else{this._x=0;this._y=-e.z;this._z=e.y;this._w=n}}else{this._x=e.y*t.z-e.z*t.y;this._y=e.z*t.x-e.x*t.z;this._z=e.x*t.y-e.y*t.x;this._w=n}return this.normalize()}angleTo(e){return 2*Math.acos(Math.abs(clamp(this.dot(e),-1,1)))}rotateTowards(e,t){const n=this.angleTo(e);if(0===n)return this;const r=Math.min(1,t/n);this.slerp(e,r);return this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){this._x*=-1;this._y*=-1;this._z*=-1;this._onChangeCallback();return this}dot(e){return this._x*e._x+this._y*e._y+this._z*e._z+this._w*e._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let e=this.length();if(0===e){this._x=0;this._y=0;this._z=0;this._w=1}else{e=1/e;this._x=this._x*e;this._y=this._y*e;this._z=this._z*e;this._w=this._w*e}this._onChangeCallback();return this}multiply(e,t){if(void 0!==t){console.warn(\"THREE.Quaternion: .multiply() now only accepts one argument. Use .multiplyQuaternions( a, b ) instead.\");return this.multiplyQuaternions(e,t)}return this.multiplyQuaternions(this,e)}premultiply(e){return this.multiplyQuaternions(e,this)}multiplyQuaternions(e,t){const n=e._x,r=e._y,i=e._z,s=e._w;const a=t._x,o=t._y,l=t._z,c=t._w;this._x=n*c+s*a+r*l-i*o;this._y=r*c+s*o+i*a-n*l;this._z=i*c+s*l+n*o-r*a;this._w=s*c-n*a-r*o-i*l;this._onChangeCallback();return this}slerp(e,t){if(0===t)return this;if(1===t)return this.copy(e);const n=this._x,r=this._y,i=this._z,s=this._w;let a=s*e._w+n*e._x+r*e._y+i*e._z;if(a<0){this._w=-e._w;this._x=-e._x;this._y=-e._y;this._z=-e._z;a=-a}else this.copy(e);if(a>=1){this._w=s;this._x=n;this._y=r;this._z=i;return this}const o=1-a*a;if(o<=Number.EPSILON){const e=1-t;this._w=e*s+t*this._w;this._x=e*n+t*this._x;this._y=e*r+t*this._y;this._z=e*i+t*this._z;this.normalize();this._onChangeCallback();return this}const l=Math.sqrt(o);const c=Math.atan2(l,a);const u=Math.sin((1-t)*c)/l,h=Math.sin(t*c)/l;this._w=s*u+this._w*h;this._x=n*u+this._x*h;this._y=r*u+this._y*h;this._z=i*u+this._z*h;this._onChangeCallback();return this}slerpQuaternions(e,t,n){this.copy(e).slerp(t,n)}random(){const e=Math.random();const t=Math.sqrt(1-e);const n=Math.sqrt(e);const r=2*Math.PI*Math.random();const i=2*Math.PI*Math.random();return this.set(t*Math.cos(r),n*Math.sin(i),n*Math.cos(i),t*Math.sin(r))}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._w===this._w}fromArray(e,t=0){this._x=e[t];this._y=e[t+1];this._z=e[t+2];this._w=e[t+3];this._onChangeCallback();return this}toArray(e=[],t=0){e[t]=this._x;e[t+1]=this._y;e[t+2]=this._z;e[t+3]=this._w;return e}fromBufferAttribute(e,t){this._x=e.getX(t);this._y=e.getY(t);this._z=e.getZ(t);this._w=e.getW(t);return this}_onChange(e){this._onChangeCallback=e;return this}_onChangeCallback(){}}Quaternion.prototype.isQuaternion=true;class Vector3{constructor(e=0,t=0,n=0){this.x=e;this.y=t;this.z=n}set(e,t,n){void 0===n&&(n=this.z);this.x=e;this.y=t;this.z=n;return this}setScalar(e){this.x=e;this.y=e;this.z=e;return this}setX(e){this.x=e;return this}setY(e){this.y=e;return this}setZ(e){this.z=e;return this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;default:throw new Error(\"index is out of range: \"+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error(\"index is out of range: \"+e)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(e){this.x=e.x;this.y=e.y;this.z=e.z;return this}add(e,t){if(void 0!==t){console.warn(\"THREE.Vector3: .add() now only accepts one argument. Use .addVectors( a, b ) instead.\");return this.addVectors(e,t)}this.x+=e.x;this.y+=e.y;this.z+=e.z;return this}addScalar(e){this.x+=e;this.y+=e;this.z+=e;return this}addVectors(e,t){this.x=e.x+t.x;this.y=e.y+t.y;this.z=e.z+t.z;return this}addScaledVector(e,t){this.x+=e.x*t;this.y+=e.y*t;this.z+=e.z*t;return this}sub(e,t){if(void 0!==t){console.warn(\"THREE.Vector3: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.\");return this.subVectors(e,t)}this.x-=e.x;this.y-=e.y;this.z-=e.z;return this}subScalar(e){this.x-=e;this.y-=e;this.z-=e;return this}subVectors(e,t){this.x=e.x-t.x;this.y=e.y-t.y;this.z=e.z-t.z;return this}multiply(e,t){if(void 0!==t){console.warn(\"THREE.Vector3: .multiply() now only accepts one argument. Use .multiplyVectors( a, b ) instead.\");return this.multiplyVectors(e,t)}this.x*=e.x;this.y*=e.y;this.z*=e.z;return this}multiplyScalar(e){this.x*=e;this.y*=e;this.z*=e;return this}multiplyVectors(e,t){this.x=e.x*t.x;this.y=e.y*t.y;this.z=e.z*t.z;return this}applyEuler(e){e&&e.isEuler||console.error(\"THREE.Vector3: .applyEuler() now expects an Euler rotation rather than a Vector3 and order.\");return this.applyQuaternion(Nn.setFromEuler(e))}applyAxisAngle(e,t){return this.applyQuaternion(Nn.setFromAxisAngle(e,t))}applyMatrix3(e){const t=this.x,n=this.y,r=this.z;const i=e.elements;this.x=i[0]*t+i[3]*n+i[6]*r;this.y=i[1]*t+i[4]*n+i[7]*r;this.z=i[2]*t+i[5]*n+i[8]*r;return this}applyNormalMatrix(e){return this.applyMatrix3(e).normalize()}applyMatrix4(e){const t=this.x,n=this.y,r=this.z;const i=e.elements;const s=1/(i[3]*t+i[7]*n+i[11]*r+i[15]);this.x=(i[0]*t+i[4]*n+i[8]*r+i[12])*s;this.y=(i[1]*t+i[5]*n+i[9]*r+i[13])*s;this.z=(i[2]*t+i[6]*n+i[10]*r+i[14])*s;return this}applyQuaternion(e){const t=this.x,n=this.y,r=this.z;const i=e.x,s=e.y,a=e.z,o=e.w;const l=o*t+s*r-a*n;const c=o*n+a*t-i*r;const u=o*r+i*n-s*t;const h=-i*t-s*n-a*r;this.x=l*o+h*-i+c*-a-u*-s;this.y=c*o+h*-s+u*-i-l*-a;this.z=u*o+h*-a+l*-s-c*-i;return this}project(e){return this.applyMatrix4(e.matrixWorldInverse).applyMatrix4(e.projectionMatrix)}unproject(e){return this.applyMatrix4(e.projectionMatrixInverse).applyMatrix4(e.matrixWorld)}transformDirection(e){const t=this.x,n=this.y,r=this.z;const i=e.elements;this.x=i[0]*t+i[4]*n+i[8]*r;this.y=i[1]*t+i[5]*n+i[9]*r;this.z=i[2]*t+i[6]*n+i[10]*r;return this.normalize()}divide(e){this.x/=e.x;this.y/=e.y;this.z/=e.z;return this}divideScalar(e){return this.multiplyScalar(1/e)}min(e){this.x=Math.min(this.x,e.x);this.y=Math.min(this.y,e.y);this.z=Math.min(this.z,e.z);return this}max(e){this.x=Math.max(this.x,e.x);this.y=Math.max(this.y,e.y);this.z=Math.max(this.z,e.z);return this}clamp(e,t){this.x=Math.max(e.x,Math.min(t.x,this.x));this.y=Math.max(e.y,Math.min(t.y,this.y));this.z=Math.max(e.z,Math.min(t.z,this.z));return this}clampScalar(e,t){this.x=Math.max(e,Math.min(t,this.x));this.y=Math.max(e,Math.min(t,this.y));this.z=Math.max(e,Math.min(t,this.z));return this}clampLength(e,t){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(e,Math.min(t,n)))}floor(){this.x=Math.floor(this.x);this.y=Math.floor(this.y);this.z=Math.floor(this.z);return this}ceil(){this.x=Math.ceil(this.x);this.y=Math.ceil(this.y);this.z=Math.ceil(this.z);return this}round(){this.x=Math.round(this.x);this.y=Math.round(this.y);this.z=Math.round(this.z);return this}roundToZero(){this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x);this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y);this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z);return this}negate(){this.x=-this.x;this.y=-this.y;this.z=-this.z;return this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){this.x+=(e.x-this.x)*t;this.y+=(e.y-this.y)*t;this.z+=(e.z-this.z)*t;return this}lerpVectors(e,t,n){this.x=e.x+(t.x-e.x)*n;this.y=e.y+(t.y-e.y)*n;this.z=e.z+(t.z-e.z)*n;return this}cross(e,t){if(void 0!==t){console.warn(\"THREE.Vector3: .cross() now only accepts one argument. Use .crossVectors( a, b ) instead.\");return this.crossVectors(e,t)}return this.crossVectors(this,e)}crossVectors(e,t){const n=e.x,r=e.y,i=e.z;const s=t.x,a=t.y,o=t.z;this.x=r*o-i*a;this.y=i*s-n*o;this.z=n*a-r*s;return this}projectOnVector(e){const t=e.lengthSq();if(0===t)return this.set(0,0,0);const n=e.dot(this)/t;return this.copy(e).multiplyScalar(n)}projectOnPlane(e){Vn.copy(this).projectOnVector(e);return this.sub(Vn)}reflect(e){return this.sub(Vn.copy(e).multiplyScalar(2*this.dot(e)))}angleTo(e){const t=Math.sqrt(this.lengthSq()*e.lengthSq());if(0===t)return Math.PI/2;const n=this.dot(e)/t;return Math.acos(clamp(n,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){const t=this.x-e.x,n=this.y-e.y,r=this.z-e.z;return t*t+n*n+r*r}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)+Math.abs(this.z-e.z)}setFromSpherical(e){return this.setFromSphericalCoords(e.radius,e.phi,e.theta)}setFromSphericalCoords(e,t,n){const r=Math.sin(t)*e;this.x=r*Math.sin(n);this.y=Math.cos(t)*e;this.z=r*Math.cos(n);return this}setFromCylindrical(e){return this.setFromCylindricalCoords(e.radius,e.theta,e.y)}setFromCylindricalCoords(e,t,n){this.x=e*Math.sin(t);this.y=n;this.z=e*Math.cos(t);return this}setFromMatrixPosition(e){const t=e.elements;this.x=t[12];this.y=t[13];this.z=t[14];return this}setFromMatrixScale(e){const t=this.setFromMatrixColumn(e,0).length();const n=this.setFromMatrixColumn(e,1).length();const r=this.setFromMatrixColumn(e,2).length();this.x=t;this.y=n;this.z=r;return this}setFromMatrixColumn(e,t){return this.fromArray(e.elements,4*t)}setFromMatrix3Column(e,t){return this.fromArray(e.elements,3*t)}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z}fromArray(e,t=0){this.x=e[t];this.y=e[t+1];this.z=e[t+2];return this}toArray(e=[],t=0){e[t]=this.x;e[t+1]=this.y;e[t+2]=this.z;return e}fromBufferAttribute(e,t,n){void 0!==n&&console.warn(\"THREE.Vector3: offset has been removed from .fromBufferAttribute().\");this.x=e.getX(t);this.y=e.getY(t);this.z=e.getZ(t);return this}random(){this.x=Math.random();this.y=Math.random();this.z=Math.random();return this}randomDirection(){const e=2*(Math.random()-.5);const t=Math.random()*Math.PI*2;const n=Math.sqrt(1-e**2);this.x=n*Math.cos(t);this.y=n*Math.sin(t);this.z=e;return this}*[Symbol.iterator](){yield this.x;yield this.y;yield this.z}}Vector3.prototype.isVector3=true;const Vn=new Vector3;const Nn=new Quaternion;class Box3{constructor(e=new Vector3(Infinity,Infinity,Infinity),t=new Vector3(-Infinity,-Infinity,-Infinity)){this.min=e;this.max=t}set(e,t){this.min.copy(e);this.max.copy(t);return this}setFromArray(e){let t=Infinity;let n=Infinity;let r=Infinity;let i=-Infinity;let s=-Infinity;let a=-Infinity;for(let o=0,l=e.length;o<l;o+=3){const l=e[o];const c=e[o+1];const u=e[o+2];l<t&&(t=l);c<n&&(n=c);u<r&&(r=u);l>i&&(i=l);c>s&&(s=c);u>a&&(a=u)}this.min.set(t,n,r);this.max.set(i,s,a);return this}setFromBufferAttribute(e){let t=Infinity;let n=Infinity;let r=Infinity;let i=-Infinity;let s=-Infinity;let a=-Infinity;for(let o=0,l=e.count;o<l;o++){const l=e.getX(o);const c=e.getY(o);const u=e.getZ(o);l<t&&(t=l);c<n&&(n=c);u<r&&(r=u);l>i&&(i=l);c>s&&(s=c);u>a&&(a=u)}this.min.set(t,n,r);this.max.set(i,s,a);return this}setFromPoints(e){this.makeEmpty();for(let t=0,n=e.length;t<n;t++)this.expandByPoint(e[t]);return this}setFromCenterAndSize(e,t){const n=zn.copy(t).multiplyScalar(.5);this.min.copy(e).sub(n);this.max.copy(e).add(n);return this}setFromObject(e){this.makeEmpty();return this.expandByObject(e)}clone(){return(new this.constructor).copy(this)}copy(e){this.min.copy(e.min);this.max.copy(e.max);return this}makeEmpty(){this.min.x=this.min.y=this.min.z=Infinity;this.max.x=this.max.y=this.max.z=-Infinity;return this}isEmpty(){return this.max.x<this.min.x||this.max.y<this.min.y||this.max.z<this.min.z}getCenter(e){return this.isEmpty()?e.set(0,0,0):e.addVectors(this.min,this.max).multiplyScalar(.5)}getSize(e){return this.isEmpty()?e.set(0,0,0):e.subVectors(this.max,this.min)}expandByPoint(e){this.min.min(e);this.max.max(e);return this}expandByVector(e){this.min.sub(e);this.max.add(e);return this}expandByScalar(e){this.min.addScalar(-e);this.max.addScalar(e);return this}expandByObject(e){e.updateWorldMatrix(false,false);const t=e.geometry;if(void 0!==t){null===t.boundingBox&&t.computeBoundingBox();Gn.copy(t.boundingBox);Gn.applyMatrix4(e.matrixWorld);this.union(Gn)}const n=e.children;for(let e=0,t=n.length;e<t;e++)this.expandByObject(n[e]);return this}containsPoint(e){return!(e.x<this.min.x||e.x>this.max.x||e.y<this.min.y||e.y>this.max.y||e.z<this.min.z||e.z>this.max.z)}containsBox(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y&&this.min.z<=e.min.z&&e.max.z<=this.max.z}getParameter(e,t){return t.set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y),(e.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(e){return!(e.max.x<this.min.x||e.min.x>this.max.x||e.max.y<this.min.y||e.min.y>this.max.y||e.max.z<this.min.z||e.min.z>this.max.z)}intersectsSphere(e){this.clampPoint(e.center,zn);return zn.distanceToSquared(e.center)<=e.radius*e.radius}intersectsPlane(e){let t,n;if(e.normal.x>0){t=e.normal.x*this.min.x;n=e.normal.x*this.max.x}else{t=e.normal.x*this.max.x;n=e.normal.x*this.min.x}if(e.normal.y>0){t+=e.normal.y*this.min.y;n+=e.normal.y*this.max.y}else{t+=e.normal.y*this.max.y;n+=e.normal.y*this.min.y}if(e.normal.z>0){t+=e.normal.z*this.min.z;n+=e.normal.z*this.max.z}else{t+=e.normal.z*this.max.z;n+=e.normal.z*this.min.z}return t<=-e.constant&&n>=-e.constant}intersectsTriangle(e){if(this.isEmpty())return false;this.getCenter(qn);Xn.subVectors(this.max,qn);Fn.subVectors(e.a,qn);On.subVectors(e.b,qn);Hn.subVectors(e.c,qn);kn.subVectors(On,Fn);Wn.subVectors(Hn,On);jn.subVectors(Fn,Hn);let t=[0,-kn.z,kn.y,0,-Wn.z,Wn.y,0,-jn.z,jn.y,kn.z,0,-kn.x,Wn.z,0,-Wn.x,jn.z,0,-jn.x,-kn.y,kn.x,0,-Wn.y,Wn.x,0,-jn.y,jn.x,0];if(!satForAxes(t,Fn,On,Hn,Xn))return false;t=[1,0,0,0,1,0,0,0,1];if(!satForAxes(t,Fn,On,Hn,Xn))return false;Jn.crossVectors(kn,Wn);t=[Jn.x,Jn.y,Jn.z];return satForAxes(t,Fn,On,Hn,Xn)}clampPoint(e,t){return t.copy(e).clamp(this.min,this.max)}distanceToPoint(e){const t=zn.copy(e).clamp(this.min,this.max);return t.sub(e).length()}getBoundingSphere(e){this.getCenter(e.center);e.radius=.5*this.getSize(zn).length();return e}intersect(e){this.min.max(e.min);this.max.min(e.max);this.isEmpty()&&this.makeEmpty();return this}union(e){this.min.min(e.min);this.max.max(e.max);return this}applyMatrix4(e){if(this.isEmpty())return this;Un[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(e);Un[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(e);Un[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(e);Un[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(e);Un[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(e);Un[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(e);Un[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(e);Un[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(e);this.setFromPoints(Un);return this}translate(e){this.min.add(e);this.max.add(e);return this}equals(e){return e.min.equals(this.min)&&e.max.equals(this.max)}}Box3.prototype.isBox3=true;const Un=[new Vector3,new Vector3,new Vector3,new Vector3,new Vector3,new Vector3,new Vector3,new Vector3];const zn=new Vector3;const Gn=new Box3;const Fn=new Vector3;const On=new Vector3;const Hn=new Vector3;const kn=new Vector3;const Wn=new Vector3;const jn=new Vector3;const qn=new Vector3;const Xn=new Vector3;const Jn=new Vector3;const Yn=new Vector3;function satForAxes(e,t,n,r,i){for(let s=0,a=e.length-3;s<=a;s+=3){Yn.fromArray(e,s);const a=i.x*Math.abs(Yn.x)+i.y*Math.abs(Yn.y)+i.z*Math.abs(Yn.z);const o=t.dot(Yn);const l=n.dot(Yn);const c=r.dot(Yn);if(Math.max(-Math.max(o,l,c),Math.min(o,l,c))>a)return false}return true}const Zn=new Box3;const Qn=new Vector3;const Kn=new Vector3;const $n=new Vector3;class Sphere{constructor(e=new Vector3,t=-1){this.center=e;this.radius=t}set(e,t){this.center.copy(e);this.radius=t;return this}setFromPoints(e,t){const n=this.center;void 0!==t?n.copy(t):Zn.setFromPoints(e).getCenter(n);let r=0;for(let t=0,i=e.length;t<i;t++)r=Math.max(r,n.distanceToSquared(e[t]));this.radius=Math.sqrt(r);return this}copy(e){this.center.copy(e.center);this.radius=e.radius;return this}isEmpty(){return this.radius<0}makeEmpty(){this.center.set(0,0,0);this.radius=-1;return this}containsPoint(e){return e.distanceToSquared(this.center)<=this.radius*this.radius}distanceToPoint(e){return e.distanceTo(this.center)-this.radius}intersectsSphere(e){const t=this.radius+e.radius;return e.center.distanceToSquared(this.center)<=t*t}intersectsBox(e){return e.intersectsSphere(this)}intersectsPlane(e){return Math.abs(e.distanceToPoint(this.center))<=this.radius}clampPoint(e,t){const n=this.center.distanceToSquared(e);t.copy(e);if(n>this.radius*this.radius){t.sub(this.center).normalize();t.multiplyScalar(this.radius).add(this.center)}return t}getBoundingBox(e){if(this.isEmpty()){e.makeEmpty();return e}e.set(this.center,this.center);e.expandByScalar(this.radius);return e}applyMatrix4(e){this.center.applyMatrix4(e);this.radius=this.radius*e.getMaxScaleOnAxis();return this}translate(e){this.center.add(e);return this}expandByPoint(e){$n.subVectors(e,this.center);const t=$n.lengthSq();if(t>this.radius*this.radius){const e=Math.sqrt(t);const n=.5*(e-this.radius);this.center.add($n.multiplyScalar(n/e));this.radius+=n}return this}union(e){true===this.center.equals(e.center)?Kn.set(0,0,1).multiplyScalar(e.radius):Kn.subVectors(e.center,this.center).normalize().multiplyScalar(e.radius);this.expandByPoint(Qn.copy(e.center).add(Kn));this.expandByPoint(Qn.copy(e.center).sub(Kn));return this}equals(e){return e.center.equals(this.center)&&e.radius===this.radius}clone(){return(new this.constructor).copy(this)}}const er=new Vector3;const tr=new Vector3;const nr=new Vector3;const rr=new Vector3;const ir=new Vector3;const sr=new Vector3;const ar=new Vector3;class Ray{constructor(e=new Vector3,t=new Vector3(0,0,-1)){this.origin=e;this.direction=t}set(e,t){this.origin.copy(e);this.direction.copy(t);return this}copy(e){this.origin.copy(e.origin);this.direction.copy(e.direction);return this}at(e,t){return t.copy(this.direction).multiplyScalar(e).add(this.origin)}lookAt(e){this.direction.copy(e).sub(this.origin).normalize();return this}recast(e){this.origin.copy(this.at(e,er));return this}closestPointToPoint(e,t){t.subVectors(e,this.origin);const n=t.dot(this.direction);return n<0?t.copy(this.origin):t.copy(this.direction).multiplyScalar(n).add(this.origin)}distanceToPoint(e){return Math.sqrt(this.distanceSqToPoint(e))}distanceSqToPoint(e){const t=er.subVectors(e,this.origin).dot(this.direction);if(t<0)return this.origin.distanceToSquared(e);er.copy(this.direction).multiplyScalar(t).add(this.origin);return er.distanceToSquared(e)}distanceSqToSegment(e,t,n,r){tr.copy(e).add(t).multiplyScalar(.5);nr.copy(t).sub(e).normalize();rr.copy(this.origin).sub(tr);const i=.5*e.distanceTo(t);const s=-this.direction.dot(nr);const a=rr.dot(this.direction);const o=-rr.dot(nr);const l=rr.lengthSq();const c=Math.abs(1-s*s);let u,h,d,p;if(c>0){u=s*o-a;h=s*a-o;p=i*c;if(u>=0)if(h>=-p)if(h<=p){const e=1/c;u*=e;h*=e;d=u*(u+s*h+2*a)+h*(s*u+h+2*o)+l}else{h=i;u=Math.max(0,-(s*h+a));d=-u*u+h*(h+2*o)+l}else{h=-i;u=Math.max(0,-(s*h+a));d=-u*u+h*(h+2*o)+l}else if(h<=-p){u=Math.max(0,-(-s*i+a));h=u>0?-i:Math.min(Math.max(-i,-o),i);d=-u*u+h*(h+2*o)+l}else if(h<=p){u=0;h=Math.min(Math.max(-i,-o),i);d=h*(h+2*o)+l}else{u=Math.max(0,-(s*i+a));h=u>0?i:Math.min(Math.max(-i,-o),i);d=-u*u+h*(h+2*o)+l}}else{h=s>0?-i:i;u=Math.max(0,-(s*h+a));d=-u*u+h*(h+2*o)+l}n&&n.copy(this.direction).multiplyScalar(u).add(this.origin);r&&r.copy(nr).multiplyScalar(h).add(tr);return d}intersectSphere(e,t){er.subVectors(e.center,this.origin);const n=er.dot(this.direction);const r=er.dot(er)-n*n;const i=e.radius*e.radius;if(r>i)return null;const s=Math.sqrt(i-r);const a=n-s;const o=n+s;return a<0&&o<0?null:a<0?this.at(o,t):this.at(a,t)}intersectsSphere(e){return this.distanceSqToPoint(e.center)<=e.radius*e.radius}distanceToPlane(e){const t=e.normal.dot(this.direction);if(0===t)return 0===e.distanceToPoint(this.origin)?0:null;const n=-(this.origin.dot(e.normal)+e.constant)/t;return n>=0?n:null}intersectPlane(e,t){const n=this.distanceToPlane(e);return null===n?null:this.at(n,t)}intersectsPlane(e){const t=e.distanceToPoint(this.origin);if(0===t)return true;const n=e.normal.dot(this.direction);return n*t<0}intersectBox(e,t){let n,r,i,s,a,o;const l=1/this.direction.x,c=1/this.direction.y,u=1/this.direction.z;const h=this.origin;if(l>=0){n=(e.min.x-h.x)*l;r=(e.max.x-h.x)*l}else{n=(e.max.x-h.x)*l;r=(e.min.x-h.x)*l}if(c>=0){i=(e.min.y-h.y)*c;s=(e.max.y-h.y)*c}else{i=(e.max.y-h.y)*c;s=(e.min.y-h.y)*c}if(n>s||i>r)return null;(i>n||n!==n)&&(n=i);(s<r||r!==r)&&(r=s);if(u>=0){a=(e.min.z-h.z)*u;o=(e.max.z-h.z)*u}else{a=(e.max.z-h.z)*u;o=(e.min.z-h.z)*u}if(n>o||a>r)return null;(a>n||n!==n)&&(n=a);(o<r||r!==r)&&(r=o);return r<0?null:this.at(n>=0?n:r,t)}intersectsBox(e){return null!==this.intersectBox(e,er)}intersectTriangle(e,t,n,r,i){ir.subVectors(t,e);sr.subVectors(n,e);ar.crossVectors(ir,sr);let s=this.direction.dot(ar);let a;if(s>0){if(r)return null;a=1}else{if(!(s<0))return null;a=-1;s=-s}rr.subVectors(this.origin,e);const o=a*this.direction.dot(sr.crossVectors(rr,sr));if(o<0)return null;const l=a*this.direction.dot(ir.cross(rr));if(l<0)return null;if(o+l>s)return null;const c=-a*rr.dot(ar);return c<0?null:this.at(c/s,i)}applyMatrix4(e){this.origin.applyMatrix4(e);this.direction.transformDirection(e);return this}equals(e){return e.origin.equals(this.origin)&&e.direction.equals(this.direction)}clone(){return(new this.constructor).copy(this)}}class Matrix4{constructor(){this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];arguments.length>0&&console.error(\"THREE.Matrix4: the constructor no longer reads arguments. use .set() instead.\")}set(e,t,n,r,i,s,a,o,l,c,u,h,d,p,f,m){const g=this.elements;g[0]=e;g[4]=t;g[8]=n;g[12]=r;g[1]=i;g[5]=s;g[9]=a;g[13]=o;g[2]=l;g[6]=c;g[10]=u;g[14]=h;g[3]=d;g[7]=p;g[11]=f;g[15]=m;return this}identity(){this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1);return this}clone(){return(new Matrix4).fromArray(this.elements)}copy(e){const t=this.elements;const n=e.elements;t[0]=n[0];t[1]=n[1];t[2]=n[2];t[3]=n[3];t[4]=n[4];t[5]=n[5];t[6]=n[6];t[7]=n[7];t[8]=n[8];t[9]=n[9];t[10]=n[10];t[11]=n[11];t[12]=n[12];t[13]=n[13];t[14]=n[14];t[15]=n[15];return this}copyPosition(e){const t=this.elements,n=e.elements;t[12]=n[12];t[13]=n[13];t[14]=n[14];return this}setFromMatrix3(e){const t=e.elements;this.set(t[0],t[3],t[6],0,t[1],t[4],t[7],0,t[2],t[5],t[8],0,0,0,0,1);return this}extractBasis(e,t,n){e.setFromMatrixColumn(this,0);t.setFromMatrixColumn(this,1);n.setFromMatrixColumn(this,2);return this}makeBasis(e,t,n){this.set(e.x,t.x,n.x,0,e.y,t.y,n.y,0,e.z,t.z,n.z,0,0,0,0,1);return this}extractRotation(e){const t=this.elements;const n=e.elements;const r=1/or.setFromMatrixColumn(e,0).length();const i=1/or.setFromMatrixColumn(e,1).length();const s=1/or.setFromMatrixColumn(e,2).length();t[0]=n[0]*r;t[1]=n[1]*r;t[2]=n[2]*r;t[3]=0;t[4]=n[4]*i;t[5]=n[5]*i;t[6]=n[6]*i;t[7]=0;t[8]=n[8]*s;t[9]=n[9]*s;t[10]=n[10]*s;t[11]=0;t[12]=0;t[13]=0;t[14]=0;t[15]=1;return this}makeRotationFromEuler(e){e&&e.isEuler||console.error(\"THREE.Matrix4: .makeRotationFromEuler() now expects a Euler rotation rather than a Vector3 and order.\");const t=this.elements;const n=e.x,r=e.y,i=e.z;const s=Math.cos(n),a=Math.sin(n);const o=Math.cos(r),l=Math.sin(r);const c=Math.cos(i),u=Math.sin(i);if(\"XYZ\"===e.order){const e=s*c,n=s*u,r=a*c,i=a*u;t[0]=o*c;t[4]=-o*u;t[8]=l;t[1]=n+r*l;t[5]=e-i*l;t[9]=-a*o;t[2]=i-e*l;t[6]=r+n*l;t[10]=s*o}else if(\"YXZ\"===e.order){const e=o*c,n=o*u,r=l*c,i=l*u;t[0]=e+i*a;t[4]=r*a-n;t[8]=s*l;t[1]=s*u;t[5]=s*c;t[9]=-a;t[2]=n*a-r;t[6]=i+e*a;t[10]=s*o}else if(\"ZXY\"===e.order){const e=o*c,n=o*u,r=l*c,i=l*u;t[0]=e-i*a;t[4]=-s*u;t[8]=r+n*a;t[1]=n+r*a;t[5]=s*c;t[9]=i-e*a;t[2]=-s*l;t[6]=a;t[10]=s*o}else if(\"ZYX\"===e.order){const e=s*c,n=s*u,r=a*c,i=a*u;t[0]=o*c;t[4]=r*l-n;t[8]=e*l+i;t[1]=o*u;t[5]=i*l+e;t[9]=n*l-r;t[2]=-l;t[6]=a*o;t[10]=s*o}else if(\"YZX\"===e.order){const e=s*o,n=s*l,r=a*o,i=a*l;t[0]=o*c;t[4]=i-e*u;t[8]=r*u+n;t[1]=u;t[5]=s*c;t[9]=-a*c;t[2]=-l*c;t[6]=n*u+r;t[10]=e-i*u}else if(\"XZY\"===e.order){const e=s*o,n=s*l,r=a*o,i=a*l;t[0]=o*c;t[4]=-u;t[8]=l*c;t[1]=e*u+i;t[5]=s*c;t[9]=n*u-r;t[2]=r*u-n;t[6]=a*c;t[10]=i*u+e}t[3]=0;t[7]=0;t[11]=0;t[12]=0;t[13]=0;t[14]=0;t[15]=1;return this}makeRotationFromQuaternion(e){return this.compose(cr,e,ur)}lookAt(e,t,n){const r=this.elements;pr.subVectors(e,t);0===pr.lengthSq()&&(pr.z=1);pr.normalize();hr.crossVectors(n,pr);if(0===hr.lengthSq()){1===Math.abs(n.z)?pr.x+=1e-4:pr.z+=1e-4;pr.normalize();hr.crossVectors(n,pr)}hr.normalize();dr.crossVectors(pr,hr);r[0]=hr.x;r[4]=dr.x;r[8]=pr.x;r[1]=hr.y;r[5]=dr.y;r[9]=pr.y;r[2]=hr.z;r[6]=dr.z;r[10]=pr.z;return this}multiply(e,t){if(void 0!==t){console.warn(\"THREE.Matrix4: .multiply() now only accepts one argument. Use .multiplyMatrices( a, b ) instead.\");return this.multiplyMatrices(e,t)}return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,t){const n=e.elements;const r=t.elements;const i=this.elements;const s=n[0],a=n[4],o=n[8],l=n[12];const c=n[1],u=n[5],h=n[9],d=n[13];const p=n[2],f=n[6],m=n[10],g=n[14];const y=n[3],x=n[7],b=n[11],_=n[15];const M=r[0],w=r[4],S=r[8],T=r[12];const E=r[1],A=r[5],L=r[9],C=r[13];const R=r[2],P=r[6],I=r[10],D=r[14];const B=r[3],V=r[7],N=r[11],U=r[15];i[0]=s*M+a*E+o*R+l*B;i[4]=s*w+a*A+o*P+l*V;i[8]=s*S+a*L+o*I+l*N;i[12]=s*T+a*C+o*D+l*U;i[1]=c*M+u*E+h*R+d*B;i[5]=c*w+u*A+h*P+d*V;i[9]=c*S+u*L+h*I+d*N;i[13]=c*T+u*C+h*D+d*U;i[2]=p*M+f*E+m*R+g*B;i[6]=p*w+f*A+m*P+g*V;i[10]=p*S+f*L+m*I+g*N;i[14]=p*T+f*C+m*D+g*U;i[3]=y*M+x*E+b*R+_*B;i[7]=y*w+x*A+b*P+_*V;i[11]=y*S+x*L+b*I+_*N;i[15]=y*T+x*C+b*D+_*U;return this}multiplyScalar(e){const t=this.elements;t[0]*=e;t[4]*=e;t[8]*=e;t[12]*=e;t[1]*=e;t[5]*=e;t[9]*=e;t[13]*=e;t[2]*=e;t[6]*=e;t[10]*=e;t[14]*=e;t[3]*=e;t[7]*=e;t[11]*=e;t[15]*=e;return this}determinant(){const e=this.elements;const t=e[0],n=e[4],r=e[8],i=e[12];const s=e[1],a=e[5],o=e[9],l=e[13];const c=e[2],u=e[6],h=e[10],d=e[14];const p=e[3],f=e[7],m=e[11],g=e[15];return p*(+i*o*u-r*l*u-i*a*h+n*l*h+r*a*d-n*o*d)+f*(+t*o*d-t*l*h+i*s*h-r*s*d+r*l*c-i*o*c)+m*(+t*l*u-t*a*d-i*s*u+n*s*d+i*a*c-n*l*c)+g*(-r*a*c-t*o*u+t*a*h+r*s*u-n*s*h+n*o*c)}transpose(){const e=this.elements;let t;t=e[1];e[1]=e[4];e[4]=t;t=e[2];e[2]=e[8];e[8]=t;t=e[6];e[6]=e[9];e[9]=t;t=e[3];e[3]=e[12];e[12]=t;t=e[7];e[7]=e[13];e[13]=t;t=e[11];e[11]=e[14];e[14]=t;return this}setPosition(e,t,n){const r=this.elements;if(e.isVector3){r[12]=e.x;r[13]=e.y;r[14]=e.z}else{r[12]=e;r[13]=t;r[14]=n}return this}invert(){const e=this.elements,t=e[0],n=e[1],r=e[2],i=e[3],s=e[4],a=e[5],o=e[6],l=e[7],c=e[8],u=e[9],h=e[10],d=e[11],p=e[12],f=e[13],m=e[14],g=e[15],y=u*m*l-f*h*l+f*o*d-a*m*d-u*o*g+a*h*g,x=p*h*l-c*m*l-p*o*d+s*m*d+c*o*g-s*h*g,b=c*f*l-p*u*l+p*a*d-s*f*d-c*a*g+s*u*g,_=p*u*o-c*f*o-p*a*h+s*f*h+c*a*m-s*u*m;const M=t*y+n*x+r*b+i*_;if(0===M)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const w=1/M;e[0]=y*w;e[1]=(f*h*i-u*m*i-f*r*d+n*m*d+u*r*g-n*h*g)*w;e[2]=(a*m*i-f*o*i+f*r*l-n*m*l-a*r*g+n*o*g)*w;e[3]=(u*o*i-a*h*i-u*r*l+n*h*l+a*r*d-n*o*d)*w;e[4]=x*w;e[5]=(c*m*i-p*h*i+p*r*d-t*m*d-c*r*g+t*h*g)*w;e[6]=(p*o*i-s*m*i-p*r*l+t*m*l+s*r*g-t*o*g)*w;e[7]=(s*h*i-c*o*i+c*r*l-t*h*l-s*r*d+t*o*d)*w;e[8]=b*w;e[9]=(p*u*i-c*f*i-p*n*d+t*f*d+c*n*g-t*u*g)*w;e[10]=(s*f*i-p*a*i+p*n*l-t*f*l-s*n*g+t*a*g)*w;e[11]=(c*a*i-s*u*i-c*n*l+t*u*l+s*n*d-t*a*d)*w;e[12]=_*w;e[13]=(c*f*r-p*u*r+p*n*h-t*f*h-c*n*m+t*u*m)*w;e[14]=(p*a*r-s*f*r-p*n*o+t*f*o+s*n*m-t*a*m)*w;e[15]=(s*u*r-c*a*r+c*n*o-t*u*o-s*n*h+t*a*h)*w;return this}scale(e){const t=this.elements;const n=e.x,r=e.y,i=e.z;t[0]*=n;t[4]*=r;t[8]*=i;t[1]*=n;t[5]*=r;t[9]*=i;t[2]*=n;t[6]*=r;t[10]*=i;t[3]*=n;t[7]*=r;t[11]*=i;return this}getMaxScaleOnAxis(){const e=this.elements;const t=e[0]*e[0]+e[1]*e[1]+e[2]*e[2];const n=e[4]*e[4]+e[5]*e[5]+e[6]*e[6];const r=e[8]*e[8]+e[9]*e[9]+e[10]*e[10];return Math.sqrt(Math.max(t,n,r))}makeTranslation(e,t,n){this.set(1,0,0,e,0,1,0,t,0,0,1,n,0,0,0,1);return this}makeRotationX(e){const t=Math.cos(e),n=Math.sin(e);this.set(1,0,0,0,0,t,-n,0,0,n,t,0,0,0,0,1);return this}makeRotationY(e){const t=Math.cos(e),n=Math.sin(e);this.set(t,0,n,0,0,1,0,0,-n,0,t,0,0,0,0,1);return this}makeRotationZ(e){const t=Math.cos(e),n=Math.sin(e);this.set(t,-n,0,0,n,t,0,0,0,0,1,0,0,0,0,1);return this}makeRotationAxis(e,t){const n=Math.cos(t);const r=Math.sin(t);const i=1-n;const s=e.x,a=e.y,o=e.z;const l=i*s,c=i*a;this.set(l*s+n,l*a-r*o,l*o+r*a,0,l*a+r*o,c*a+n,c*o-r*s,0,l*o-r*a,c*o+r*s,i*o*o+n,0,0,0,0,1);return this}makeScale(e,t,n){this.set(e,0,0,0,0,t,0,0,0,0,n,0,0,0,0,1);return this}makeShear(e,t,n,r,i,s){this.set(1,n,i,0,e,1,s,0,t,r,1,0,0,0,0,1);return this}compose(e,t,n){const r=this.elements;const i=t._x,s=t._y,a=t._z,o=t._w;const l=i+i,c=s+s,u=a+a;const h=i*l,d=i*c,p=i*u;const f=s*c,m=s*u,g=a*u;const y=o*l,x=o*c,b=o*u;const _=n.x,M=n.y,w=n.z;r[0]=(1-(f+g))*_;r[1]=(d+b)*_;r[2]=(p-x)*_;r[3]=0;r[4]=(d-b)*M;r[5]=(1-(h+g))*M;r[6]=(m+y)*M;r[7]=0;r[8]=(p+x)*w;r[9]=(m-y)*w;r[10]=(1-(h+f))*w;r[11]=0;r[12]=e.x;r[13]=e.y;r[14]=e.z;r[15]=1;return this}decompose(e,t,n){const r=this.elements;let i=or.set(r[0],r[1],r[2]).length();const s=or.set(r[4],r[5],r[6]).length();const a=or.set(r[8],r[9],r[10]).length();const o=this.determinant();o<0&&(i=-i);e.x=r[12];e.y=r[13];e.z=r[14];lr.copy(this);const l=1/i;const c=1/s;const u=1/a;lr.elements[0]*=l;lr.elements[1]*=l;lr.elements[2]*=l;lr.elements[4]*=c;lr.elements[5]*=c;lr.elements[6]*=c;lr.elements[8]*=u;lr.elements[9]*=u;lr.elements[10]*=u;t.setFromRotationMatrix(lr);n.x=i;n.y=s;n.z=a;return this}makePerspective(e,t,n,r,i,s){void 0===s&&console.warn(\"THREE.Matrix4: .makePerspective() has been redefined and has a new signature. Please check the docs.\");const a=this.elements;const o=2*i/(t-e);const l=2*i/(n-r);const c=(t+e)/(t-e);const u=(n+r)/(n-r);const h=-(s+i)/(s-i);const d=-2*s*i/(s-i);a[0]=o;a[4]=0;a[8]=c;a[12]=0;a[1]=0;a[5]=l;a[9]=u;a[13]=0;a[2]=0;a[6]=0;a[10]=h;a[14]=d;a[3]=0;a[7]=0;a[11]=-1;a[15]=0;return this}makeOrthographic(e,t,n,r,i,s){const a=this.elements;const o=1/(t-e);const l=1/(n-r);const c=1/(s-i);const u=(t+e)*o;const h=(n+r)*l;const d=(s+i)*c;a[0]=2*o;a[4]=0;a[8]=0;a[12]=-u;a[1]=0;a[5]=2*l;a[9]=0;a[13]=-h;a[2]=0;a[6]=0;a[10]=-2*c;a[14]=-d;a[3]=0;a[7]=0;a[11]=0;a[15]=1;return this}equals(e){const t=this.elements;const n=e.elements;for(let e=0;e<16;e++)if(t[e]!==n[e])return false;return true}fromArray(e,t=0){for(let n=0;n<16;n++)this.elements[n]=e[n+t];return this}toArray(e=[],t=0){const n=this.elements;e[t]=n[0];e[t+1]=n[1];e[t+2]=n[2];e[t+3]=n[3];e[t+4]=n[4];e[t+5]=n[5];e[t+6]=n[6];e[t+7]=n[7];e[t+8]=n[8];e[t+9]=n[9];e[t+10]=n[10];e[t+11]=n[11];e[t+12]=n[12];e[t+13]=n[13];e[t+14]=n[14];e[t+15]=n[15];return e}}Matrix4.prototype.isMatrix4=true;const or=new Vector3;const lr=new Matrix4;const cr=new Vector3(0,0,0);const ur=new Vector3(1,1,1);const hr=new Vector3;const dr=new Vector3;const pr=new Vector3;const fr=new Matrix4;const mr=new Quaternion;class Euler{constructor(e=0,t=0,n=0,r=Euler.DefaultOrder){this._x=e;this._y=t;this._z=n;this._order=r}get x(){return this._x}set x(e){this._x=e;this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e;this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e;this._onChangeCallback()}get order(){return this._order}set order(e){this._order=e;this._onChangeCallback()}set(e,t,n,r=this._order){this._x=e;this._y=t;this._z=n;this._order=r;this._onChangeCallback();return this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(e){this._x=e._x;this._y=e._y;this._z=e._z;this._order=e._order;this._onChangeCallback();return this}setFromRotationMatrix(e,t=this._order,n=true){const r=e.elements;const i=r[0],s=r[4],a=r[8];const o=r[1],l=r[5],c=r[9];const u=r[2],h=r[6],d=r[10];switch(t){case\"XYZ\":this._y=Math.asin(clamp(a,-1,1));if(Math.abs(a)<.9999999){this._x=Math.atan2(-c,d);this._z=Math.atan2(-s,i)}else{this._x=Math.atan2(h,l);this._z=0}break;case\"YXZ\":this._x=Math.asin(-clamp(c,-1,1));if(Math.abs(c)<.9999999){this._y=Math.atan2(a,d);this._z=Math.atan2(o,l)}else{this._y=Math.atan2(-u,i);this._z=0}break;case\"ZXY\":this._x=Math.asin(clamp(h,-1,1));if(Math.abs(h)<.9999999){this._y=Math.atan2(-u,d);this._z=Math.atan2(-s,l)}else{this._y=0;this._z=Math.atan2(o,i)}break;case\"ZYX\":this._y=Math.asin(-clamp(u,-1,1));if(Math.abs(u)<.9999999){this._x=Math.atan2(h,d);this._z=Math.atan2(o,i)}else{this._x=0;this._z=Math.atan2(-s,l)}break;case\"YZX\":this._z=Math.asin(clamp(o,-1,1));if(Math.abs(o)<.9999999){this._x=Math.atan2(-c,l);this._y=Math.atan2(-u,i)}else{this._x=0;this._y=Math.atan2(a,d)}break;case\"XZY\":this._z=Math.asin(-clamp(s,-1,1));if(Math.abs(s)<.9999999){this._x=Math.atan2(h,l);this._y=Math.atan2(a,i)}else{this._x=Math.atan2(-c,d);this._y=0}break;default:console.warn(\"THREE.Euler: .setFromRotationMatrix() encountered an unknown order: \"+t)}this._order=t;true===n&&this._onChangeCallback();return this}setFromQuaternion(e,t,n){fr.makeRotationFromQuaternion(e);return this.setFromRotationMatrix(fr,t,n)}setFromVector3(e,t=this._order){return this.set(e.x,e.y,e.z,t)}reorder(e){mr.setFromEuler(this);return this.setFromQuaternion(mr,e)}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._order===this._order}fromArray(e){this._x=e[0];this._y=e[1];this._z=e[2];void 0!==e[3]&&(this._order=e[3]);this._onChangeCallback();return this}toArray(e=[],t=0){e[t]=this._x;e[t+1]=this._y;e[t+2]=this._z;e[t+3]=this._order;return e}toVector3(e){return e?e.set(this._x,this._y,this._z):new Vector3(this._x,this._y,this._z)}_onChange(e){this._onChangeCallback=e;return this}_onChangeCallback(){}}Euler.prototype.isEuler=true;Euler.DefaultOrder=\"XYZ\";Euler.RotationOrders=[\"XYZ\",\"YZX\",\"ZXY\",\"XZY\",\"YXZ\",\"ZYX\"];class Layers{constructor(){this.mask=1}set(e){this.mask=(1<<e|0)>>>0}enable(e){this.mask|=1<<e|0}enableAll(){this.mask=-1}toggle(e){this.mask^=1<<e|0}disable(e){this.mask&=~(1<<e|0)}disableAll(){this.mask=0}test(e){return 0!==(this.mask&e.mask)}isEnabled(e){return 0!==(this.mask&(1<<e|0))}}let gr=0;const yr=new Vector3;const vr=new Quaternion;const xr=new Matrix4;const br=new Vector3;const _r=new Vector3;const Mr=new Vector3;const wr=new Quaternion;const Sr=new Vector3(1,0,0);const Tr=new Vector3(0,1,0);const Er=new Vector3(0,0,1);const Ar={type:\"added\"};const Lr={type:\"removed\"};class Object3D extends EventDispatcher{constructor(){super();Object.defineProperty(this,\"id\",{value:gr++});this.uuid=generateUUID();this.name=\"\";this.type=\"Object3D\";this.parent=null;this.children=[];this.up=Object3D.DefaultUp.clone();const e=new Vector3;const t=new Euler;const n=new Quaternion;const r=new Vector3(1,1,1);function onRotationChange(){n.setFromEuler(t,false)}function onQuaternionChange(){t.setFromQuaternion(n,void 0,false)}t._onChange(onRotationChange);n._onChange(onQuaternionChange);Object.defineProperties(this,{position:{configurable:true,enumerable:true,value:e},rotation:{configurable:true,enumerable:true,value:t},quaternion:{configurable:true,enumerable:true,value:n},scale:{configurable:true,enumerable:true,value:r},modelViewMatrix:{value:new Matrix4},normalMatrix:{value:new Matrix3}});this.matrix=new Matrix4;this.matrixWorld=new Matrix4;this.matrixAutoUpdate=Object3D.DefaultMatrixAutoUpdate;this.matrixWorldNeedsUpdate=false;this.layers=new Layers;this.visible=true;this.castShadow=false;this.receiveShadow=false;this.frustumCulled=true;this.renderOrder=0;this.animations=[];this.userData={}}onBeforeRender(){}onAfterRender(){}applyMatrix4(e){this.matrixAutoUpdate&&this.updateMatrix();this.matrix.premultiply(e);this.matrix.decompose(this.position,this.quaternion,this.scale)}applyQuaternion(e){this.quaternion.premultiply(e);return this}setRotationFromAxisAngle(e,t){this.quaternion.setFromAxisAngle(e,t)}setRotationFromEuler(e){this.quaternion.setFromEuler(e,true)}setRotationFromMatrix(e){this.quaternion.setFromRotationMatrix(e)}setRotationFromQuaternion(e){this.quaternion.copy(e)}rotateOnAxis(e,t){vr.setFromAxisAngle(e,t);this.quaternion.multiply(vr);return this}rotateOnWorldAxis(e,t){vr.setFromAxisAngle(e,t);this.quaternion.premultiply(vr);return this}rotateX(e){return this.rotateOnAxis(Sr,e)}rotateY(e){return this.rotateOnAxis(Tr,e)}rotateZ(e){return this.rotateOnAxis(Er,e)}translateOnAxis(e,t){yr.copy(e).applyQuaternion(this.quaternion);this.position.add(yr.multiplyScalar(t));return this}translateX(e){return this.translateOnAxis(Sr,e)}translateY(e){return this.translateOnAxis(Tr,e)}translateZ(e){return this.translateOnAxis(Er,e)}localToWorld(e){return e.applyMatrix4(this.matrixWorld)}worldToLocal(e){return e.applyMatrix4(xr.copy(this.matrixWorld).invert())}lookAt(e,t,n){e.isVector3?br.copy(e):br.set(e,t,n);const r=this.parent;this.updateWorldMatrix(true,false);_r.setFromMatrixPosition(this.matrixWorld);this.isCamera||this.isLight?xr.lookAt(_r,br,this.up):xr.lookAt(br,_r,this.up);this.quaternion.setFromRotationMatrix(xr);if(r){xr.extractRotation(r.matrixWorld);vr.setFromRotationMatrix(xr);this.quaternion.premultiply(vr.invert())}}add(e){if(arguments.length>1){for(let e=0;e<arguments.length;e++)this.add(arguments[e]);return this}if(e===this){console.error(\"THREE.Object3D.add: object can't be added as a child of itself.\",e);return this}if(e&&e.isObject3D){null!==e.parent&&e.parent.remove(e);e.parent=this;this.children.push(e);e.dispatchEvent(Ar)}else console.error(\"THREE.Object3D.add: object not an instance of THREE.Object3D.\",e);return this}remove(e){if(arguments.length>1){for(let e=0;e<arguments.length;e++)this.remove(arguments[e]);return this}const t=this.children.indexOf(e);if(-1!==t){e.parent=null;this.children.splice(t,1);e.dispatchEvent(Lr)}return this}removeFromParent(){const e=this.parent;null!==e&&e.remove(this);return this}clear(){for(let e=0;e<this.children.length;e++){const t=this.children[e];t.parent=null;t.dispatchEvent(Lr)}this.children.length=0;return this}attach(e){this.updateWorldMatrix(true,false);xr.copy(this.matrixWorld).invert();if(null!==e.parent){e.parent.updateWorldMatrix(true,false);xr.multiply(e.parent.matrixWorld)}e.applyMatrix4(xr);this.add(e);e.updateWorldMatrix(false,true);return this}getObjectById(e){return this.getObjectByProperty(\"id\",e)}getObjectByName(e){return this.getObjectByProperty(\"name\",e)}getObjectByProperty(e,t){if(this[e]===t)return this;for(let n=0,r=this.children.length;n<r;n++){const r=this.children[n];const i=r.getObjectByProperty(e,t);if(void 0!==i)return i}}getWorldPosition(e){this.updateWorldMatrix(true,false);return e.setFromMatrixPosition(this.matrixWorld)}getWorldQuaternion(e){this.updateWorldMatrix(true,false);this.matrixWorld.decompose(_r,e,Mr);return e}getWorldScale(e){this.updateWorldMatrix(true,false);this.matrixWorld.decompose(_r,wr,e);return e}getWorldDirection(e){this.updateWorldMatrix(true,false);const t=this.matrixWorld.elements;return e.set(t[8],t[9],t[10]).normalize()}raycast(){}traverse(e){e(this);const t=this.children;for(let n=0,r=t.length;n<r;n++)t[n].traverse(e)}traverseVisible(e){if(false===this.visible)return;e(this);const t=this.children;for(let n=0,r=t.length;n<r;n++)t[n].traverseVisible(e)}traverseAncestors(e){const t=this.parent;if(null!==t){e(t);t.traverseAncestors(e)}}updateMatrix(){this.matrix.compose(this.position,this.quaternion,this.scale);this.matrixWorldNeedsUpdate=true}updateMatrixWorld(e){this.matrixAutoUpdate&&this.updateMatrix();if(this.matrixWorldNeedsUpdate||e){null===this.parent?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix);this.matrixWorldNeedsUpdate=false;e=true}const t=this.children;for(let n=0,r=t.length;n<r;n++)t[n].updateMatrixWorld(e)}updateWorldMatrix(e,t){const n=this.parent;true===e&&null!==n&&n.updateWorldMatrix(true,false);this.matrixAutoUpdate&&this.updateMatrix();null===this.parent?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix);if(true===t){const e=this.children;for(let t=0,n=e.length;t<n;t++)e[t].updateWorldMatrix(false,true)}}toJSON(e){const t=void 0===e||\"string\"===typeof e;const n={};if(t){e={geometries:{},materials:{},textures:{},images:{},shapes:{},skeletons:{},animations:{}};n.metadata={version:4.5,type:\"Object\",generator:\"Object3D.toJSON\"}}const r={};r.uuid=this.uuid;r.type=this.type;\"\"!==this.name&&(r.name=this.name);true===this.castShadow&&(r.castShadow=true);true===this.receiveShadow&&(r.receiveShadow=true);false===this.visible&&(r.visible=false);false===this.frustumCulled&&(r.frustumCulled=false);0!==this.renderOrder&&(r.renderOrder=this.renderOrder);\"{}\"!==JSON.stringify(this.userData)&&(r.userData=this.userData);r.layers=this.layers.mask;r.matrix=this.matrix.toArray();false===this.matrixAutoUpdate&&(r.matrixAutoUpdate=false);if(this.isInstancedMesh){r.type=\"InstancedMesh\";r.count=this.count;r.instanceMatrix=this.instanceMatrix.toJSON();null!==this.instanceColor&&(r.instanceColor=this.instanceColor.toJSON())}function serialize(t,n){void 0===t[n.uuid]&&(t[n.uuid]=n.toJSON(e));return n.uuid}if(this.isScene){this.background&&(this.background.isColor?r.background=this.background.toJSON():this.background.isTexture&&(r.background=this.background.toJSON(e).uuid));this.environment&&this.environment.isTexture&&(r.environment=this.environment.toJSON(e).uuid)}else if(this.isMesh||this.isLine||this.isPoints){r.geometry=serialize(e.geometries,this.geometry);const t=this.geometry.parameters;if(void 0!==t&&void 0!==t.shapes){const n=t.shapes;if(Array.isArray(n))for(let t=0,r=n.length;t<r;t++){const r=n[t];serialize(e.shapes,r)}else serialize(e.shapes,n)}}if(this.isSkinnedMesh){r.bindMode=this.bindMode;r.bindMatrix=this.bindMatrix.toArray();if(void 0!==this.skeleton){serialize(e.skeletons,this.skeleton);r.skeleton=this.skeleton.uuid}}if(void 0!==this.material)if(Array.isArray(this.material)){const t=[];for(let n=0,r=this.material.length;n<r;n++)t.push(serialize(e.materials,this.material[n]));r.material=t}else r.material=serialize(e.materials,this.material);if(this.children.length>0){r.children=[];for(let t=0;t<this.children.length;t++)r.children.push(this.children[t].toJSON(e).object)}if(this.animations.length>0){r.animations=[];for(let t=0;t<this.animations.length;t++){const n=this.animations[t];r.animations.push(serialize(e.animations,n))}}if(t){const t=extractFromCache(e.geometries);const r=extractFromCache(e.materials);const i=extractFromCache(e.textures);const s=extractFromCache(e.images);const a=extractFromCache(e.shapes);const o=extractFromCache(e.skeletons);const l=extractFromCache(e.animations);t.length>0&&(n.geometries=t);r.length>0&&(n.materials=r);i.length>0&&(n.textures=i);s.length>0&&(n.images=s);a.length>0&&(n.shapes=a);o.length>0&&(n.skeletons=o);l.length>0&&(n.animations=l)}n.object=r;return n;function extractFromCache(e){const t=[];for(const n in e){const r=e[n];delete r.metadata;t.push(r)}return t}}clone(e){return(new this.constructor).copy(this,e)}copy(e,t=true){this.name=e.name;this.up.copy(e.up);this.position.copy(e.position);this.rotation.order=e.rotation.order;this.quaternion.copy(e.quaternion);this.scale.copy(e.scale);this.matrix.copy(e.matrix);this.matrixWorld.copy(e.matrixWorld);this.matrixAutoUpdate=e.matrixAutoUpdate;this.matrixWorldNeedsUpdate=e.matrixWorldNeedsUpdate;this.layers.mask=e.layers.mask;this.visible=e.visible;this.castShadow=e.castShadow;this.receiveShadow=e.receiveShadow;this.frustumCulled=e.frustumCulled;this.renderOrder=e.renderOrder;this.userData=JSON.parse(JSON.stringify(e.userData));if(true===t)for(let t=0;t<e.children.length;t++){const n=e.children[t];this.add(n.clone())}return this}}Object3D.DefaultUp=new Vector3(0,1,0);Object3D.DefaultMatrixAutoUpdate=true;Object3D.prototype.isObject3D=true;const Cr=new Vector3;const Rr=new Vector3;const Pr=new Vector3;const Ir=new Vector3;const Dr=new Vector3;const Br=new Vector3;const Vr=new Vector3;const Nr=new Vector3;const Ur=new Vector3;const zr=new Vector3;class Triangle{constructor(e=new Vector3,t=new Vector3,n=new Vector3){this.a=e;this.b=t;this.c=n}static getNormal(e,t,n,r){r.subVectors(n,t);Cr.subVectors(e,t);r.cross(Cr);const i=r.lengthSq();return i>0?r.multiplyScalar(1/Math.sqrt(i)):r.set(0,0,0)}static getBarycoord(e,t,n,r,i){Cr.subVectors(r,t);Rr.subVectors(n,t);Pr.subVectors(e,t);const s=Cr.dot(Cr);const a=Cr.dot(Rr);const o=Cr.dot(Pr);const l=Rr.dot(Rr);const c=Rr.dot(Pr);const u=s*l-a*a;if(0===u)return i.set(-2,-1,-1);const h=1/u;const d=(l*o-a*c)*h;const p=(s*c-a*o)*h;return i.set(1-d-p,p,d)}static containsPoint(e,t,n,r){this.getBarycoord(e,t,n,r,Ir);return Ir.x>=0&&Ir.y>=0&&Ir.x+Ir.y<=1}static getUV(e,t,n,r,i,s,a,o){this.getBarycoord(e,t,n,r,Ir);o.set(0,0);o.addScaledVector(i,Ir.x);o.addScaledVector(s,Ir.y);o.addScaledVector(a,Ir.z);return o}static isFrontFacing(e,t,n,r){Cr.subVectors(n,t);Rr.subVectors(e,t);return Cr.cross(Rr).dot(r)<0}set(e,t,n){this.a.copy(e);this.b.copy(t);this.c.copy(n);return this}setFromPointsAndIndices(e,t,n,r){this.a.copy(e[t]);this.b.copy(e[n]);this.c.copy(e[r]);return this}setFromAttributeAndIndices(e,t,n,r){this.a.fromBufferAttribute(e,t);this.b.fromBufferAttribute(e,n);this.c.fromBufferAttribute(e,r);return this}clone(){return(new this.constructor).copy(this)}copy(e){this.a.copy(e.a);this.b.copy(e.b);this.c.copy(e.c);return this}getArea(){Cr.subVectors(this.c,this.b);Rr.subVectors(this.a,this.b);return.5*Cr.cross(Rr).length()}getMidpoint(e){return e.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(e){return Triangle.getNormal(this.a,this.b,this.c,e)}getPlane(e){return e.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(e,t){return Triangle.getBarycoord(e,this.a,this.b,this.c,t)}getUV(e,t,n,r,i){return Triangle.getUV(e,this.a,this.b,this.c,t,n,r,i)}containsPoint(e){return Triangle.containsPoint(e,this.a,this.b,this.c)}isFrontFacing(e){return Triangle.isFrontFacing(this.a,this.b,this.c,e)}intersectsBox(e){return e.intersectsTriangle(this)}closestPointToPoint(e,t){const n=this.a,r=this.b,i=this.c;let s,a;Dr.subVectors(r,n);Br.subVectors(i,n);Nr.subVectors(e,n);const o=Dr.dot(Nr);const l=Br.dot(Nr);if(o<=0&&l<=0)return t.copy(n);Ur.subVectors(e,r);const c=Dr.dot(Ur);const u=Br.dot(Ur);if(c>=0&&u<=c)return t.copy(r);const h=o*u-c*l;if(h<=0&&o>=0&&c<=0){s=o/(o-c);return t.copy(n).addScaledVector(Dr,s)}zr.subVectors(e,i);const d=Dr.dot(zr);const p=Br.dot(zr);if(p>=0&&d<=p)return t.copy(i);const f=d*l-o*p;if(f<=0&&l>=0&&p<=0){a=l/(l-p);return t.copy(n).addScaledVector(Br,a)}const m=c*p-d*u;if(m<=0&&u-c>=0&&d-p>=0){Vr.subVectors(i,r);a=(u-c)/(u-c+(d-p));return t.copy(r).addScaledVector(Vr,a)}const g=1/(m+f+h);s=f*g;a=h*g;return t.copy(n).addScaledVector(Dr,s).addScaledVector(Br,a)}equals(e){return e.a.equals(this.a)&&e.b.equals(this.b)&&e.c.equals(this.c)}}let Gr=0;class Material extends EventDispatcher{constructor(){super();Object.defineProperty(this,\"id\",{value:Gr++});this.uuid=generateUUID();this.name=\"\";this.type=\"Material\";this.fog=true;this.blending=y;this.side=h;this.vertexColors=false;this.opacity=1;this.format=Ne;this.transparent=false;this.blendSrc=I;this.blendDst=D;this.blendEquation=w;this.blendSrcAlpha=null;this.blendDstAlpha=null;this.blendEquationAlpha=null;this.depthFunc=H;this.depthTest=true;this.depthWrite=true;this.stencilWriteMask=255;this.stencilFunc=mn;this.stencilRef=0;this.stencilFuncMask=255;this.stencilFail=en;this.stencilZFail=en;this.stencilZPass=en;this.stencilWrite=false;this.clippingPlanes=null;this.clipIntersection=false;this.clipShadows=false;this.shadowSide=null;this.colorWrite=true;this.precision=null;this.polygonOffset=false;this.polygonOffsetFactor=0;this.polygonOffsetUnits=0;this.dithering=false;this.alphaToCoverage=false;this.premultipliedAlpha=false;this.visible=true;this.toneMapped=true;this.userData={};this.version=0;this._alphaTest=0}get alphaTest(){return this._alphaTest}set alphaTest(e){this._alphaTest>0!==e>0&&this.version++;this._alphaTest=e}onBuild(){}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(e){if(void 0!==e)for(const t in e){const n=e[t];if(void 0===n){console.warn(\"THREE.Material: '\"+t+\"' parameter is undefined.\");continue}if(\"shading\"===t){console.warn(\"THREE.\"+this.type+\": .shading has been removed. Use the boolean .flatShading instead.\");this.flatShading=n===f;continue}const r=this[t];void 0!==r?r&&r.isColor?r.set(n):r&&r.isVector3&&n&&n.isVector3?r.copy(n):this[t]=n:console.warn(\"THREE.\"+this.type+\": '\"+t+\"' is not a property of this material.\")}}toJSON(e){const t=void 0===e||\"string\"===typeof e;t&&(e={textures:{},images:{}});const n={metadata:{version:4.5,type:\"Material\",generator:\"Material.toJSON\"}};n.uuid=this.uuid;n.type=this.type;\"\"!==this.name&&(n.name=this.name);this.color&&this.color.isColor&&(n.color=this.color.getHex());void 0!==this.roughness&&(n.roughness=this.roughness);void 0!==this.metalness&&(n.metalness=this.metalness);void 0!==this.sheen&&(n.sheen=this.sheen);this.sheenColor&&this.sheenColor.isColor&&(n.sheenColor=this.sheenColor.getHex());void 0!==this.sheenRoughness&&(n.sheenRoughness=this.sheenRoughness);this.emissive&&this.emissive.isColor&&(n.emissive=this.emissive.getHex());this.emissiveIntensity&&1!==this.emissiveIntensity&&(n.emissiveIntensity=this.emissiveIntensity);this.specular&&this.specular.isColor&&(n.specular=this.specular.getHex());void 0!==this.specularIntensity&&(n.specularIntensity=this.specularIntensity);this.specularColor&&this.specularColor.isColor&&(n.specularColor=this.specularColor.getHex());void 0!==this.shininess&&(n.shininess=this.shininess);void 0!==this.clearcoat&&(n.clearcoat=this.clearcoat);void 0!==this.clearcoatRoughness&&(n.clearcoatRoughness=this.clearcoatRoughness);this.clearcoatMap&&this.clearcoatMap.isTexture&&(n.clearcoatMap=this.clearcoatMap.toJSON(e).uuid);this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(n.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(e).uuid);if(this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture){n.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(e).uuid;n.clearcoatNormalScale=this.clearcoatNormalScale.toArray()}this.map&&this.map.isTexture&&(n.map=this.map.toJSON(e).uuid);this.matcap&&this.matcap.isTexture&&(n.matcap=this.matcap.toJSON(e).uuid);this.alphaMap&&this.alphaMap.isTexture&&(n.alphaMap=this.alphaMap.toJSON(e).uuid);if(this.lightMap&&this.lightMap.isTexture){n.lightMap=this.lightMap.toJSON(e).uuid;n.lightMapIntensity=this.lightMapIntensity}if(this.aoMap&&this.aoMap.isTexture){n.aoMap=this.aoMap.toJSON(e).uuid;n.aoMapIntensity=this.aoMapIntensity}if(this.bumpMap&&this.bumpMap.isTexture){n.bumpMap=this.bumpMap.toJSON(e).uuid;n.bumpScale=this.bumpScale}if(this.normalMap&&this.normalMap.isTexture){n.normalMap=this.normalMap.toJSON(e).uuid;n.normalMapType=this.normalMapType;n.normalScale=this.normalScale.toArray()}if(this.displacementMap&&this.displacementMap.isTexture){n.displacementMap=this.displacementMap.toJSON(e).uuid;n.displacementScale=this.displacementScale;n.displacementBias=this.displacementBias}this.roughnessMap&&this.roughnessMap.isTexture&&(n.roughnessMap=this.roughnessMap.toJSON(e).uuid);this.metalnessMap&&this.metalnessMap.isTexture&&(n.metalnessMap=this.metalnessMap.toJSON(e).uuid);this.emissiveMap&&this.emissiveMap.isTexture&&(n.emissiveMap=this.emissiveMap.toJSON(e).uuid);this.specularMap&&this.specularMap.isTexture&&(n.specularMap=this.specularMap.toJSON(e).uuid);this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(n.specularIntensityMap=this.specularIntensityMap.toJSON(e).uuid);this.specularColorMap&&this.specularColorMap.isTexture&&(n.specularColorMap=this.specularColorMap.toJSON(e).uuid);if(this.envMap&&this.envMap.isTexture){n.envMap=this.envMap.toJSON(e).uuid;void 0!==this.combine&&(n.combine=this.combine)}void 0!==this.envMapIntensity&&(n.envMapIntensity=this.envMapIntensity);void 0!==this.reflectivity&&(n.reflectivity=this.reflectivity);void 0!==this.refractionRatio&&(n.refractionRatio=this.refractionRatio);this.gradientMap&&this.gradientMap.isTexture&&(n.gradientMap=this.gradientMap.toJSON(e).uuid);void 0!==this.transmission&&(n.transmission=this.transmission);this.transmissionMap&&this.transmissionMap.isTexture&&(n.transmissionMap=this.transmissionMap.toJSON(e).uuid);void 0!==this.thickness&&(n.thickness=this.thickness);this.thicknessMap&&this.thicknessMap.isTexture&&(n.thicknessMap=this.thicknessMap.toJSON(e).uuid);void 0!==this.attenuationDistance&&(n.attenuationDistance=this.attenuationDistance);void 0!==this.attenuationColor&&(n.attenuationColor=this.attenuationColor.getHex());void 0!==this.size&&(n.size=this.size);null!==this.shadowSide&&(n.shadowSide=this.shadowSide);void 0!==this.sizeAttenuation&&(n.sizeAttenuation=this.sizeAttenuation);this.blending!==y&&(n.blending=this.blending);this.side!==h&&(n.side=this.side);this.vertexColors&&(n.vertexColors=true);this.opacity<1&&(n.opacity=this.opacity);this.format!==Ne&&(n.format=this.format);true===this.transparent&&(n.transparent=this.transparent);n.depthFunc=this.depthFunc;n.depthTest=this.depthTest;n.depthWrite=this.depthWrite;n.colorWrite=this.colorWrite;n.stencilWrite=this.stencilWrite;n.stencilWriteMask=this.stencilWriteMask;n.stencilFunc=this.stencilFunc;n.stencilRef=this.stencilRef;n.stencilFuncMask=this.stencilFuncMask;n.stencilFail=this.stencilFail;n.stencilZFail=this.stencilZFail;n.stencilZPass=this.stencilZPass;this.rotation&&0!==this.rotation&&(n.rotation=this.rotation);true===this.polygonOffset&&(n.polygonOffset=true);0!==this.polygonOffsetFactor&&(n.polygonOffsetFactor=this.polygonOffsetFactor);0!==this.polygonOffsetUnits&&(n.polygonOffsetUnits=this.polygonOffsetUnits);this.linewidth&&1!==this.linewidth&&(n.linewidth=this.linewidth);void 0!==this.dashSize&&(n.dashSize=this.dashSize);void 0!==this.gapSize&&(n.gapSize=this.gapSize);void 0!==this.scale&&(n.scale=this.scale);true===this.dithering&&(n.dithering=true);this.alphaTest>0&&(n.alphaTest=this.alphaTest);true===this.alphaToCoverage&&(n.alphaToCoverage=this.alphaToCoverage);true===this.premultipliedAlpha&&(n.premultipliedAlpha=this.premultipliedAlpha);true===this.wireframe&&(n.wireframe=this.wireframe);this.wireframeLinewidth>1&&(n.wireframeLinewidth=this.wireframeLinewidth);\"round\"!==this.wireframeLinecap&&(n.wireframeLinecap=this.wireframeLinecap);\"round\"!==this.wireframeLinejoin&&(n.wireframeLinejoin=this.wireframeLinejoin);true===this.flatShading&&(n.flatShading=this.flatShading);false===this.visible&&(n.visible=false);false===this.toneMapped&&(n.toneMapped=false);\"{}\"!==JSON.stringify(this.userData)&&(n.userData=this.userData);function extractFromCache(e){const t=[];for(const n in e){const r=e[n];delete r.metadata;t.push(r)}return t}if(t){const t=extractFromCache(e.textures);const r=extractFromCache(e.images);t.length>0&&(n.textures=t);r.length>0&&(n.images=r)}return n}clone(){return(new this.constructor).copy(this)}copy(e){this.name=e.name;this.fog=e.fog;this.blending=e.blending;this.side=e.side;this.vertexColors=e.vertexColors;this.opacity=e.opacity;this.format=e.format;this.transparent=e.transparent;this.blendSrc=e.blendSrc;this.blendDst=e.blendDst;this.blendEquation=e.blendEquation;this.blendSrcAlpha=e.blendSrcAlpha;this.blendDstAlpha=e.blendDstAlpha;this.blendEquationAlpha=e.blendEquationAlpha;this.depthFunc=e.depthFunc;this.depthTest=e.depthTest;this.depthWrite=e.depthWrite;this.stencilWriteMask=e.stencilWriteMask;this.stencilFunc=e.stencilFunc;this.stencilRef=e.stencilRef;this.stencilFuncMask=e.stencilFuncMask;this.stencilFail=e.stencilFail;this.stencilZFail=e.stencilZFail;this.stencilZPass=e.stencilZPass;this.stencilWrite=e.stencilWrite;const t=e.clippingPlanes;let n=null;if(null!==t){const e=t.length;n=new Array(e);for(let r=0;r!==e;++r)n[r]=t[r].clone()}this.clippingPlanes=n;this.clipIntersection=e.clipIntersection;this.clipShadows=e.clipShadows;this.shadowSide=e.shadowSide;this.colorWrite=e.colorWrite;this.precision=e.precision;this.polygonOffset=e.polygonOffset;this.polygonOffsetFactor=e.polygonOffsetFactor;this.polygonOffsetUnits=e.polygonOffsetUnits;this.dithering=e.dithering;this.alphaTest=e.alphaTest;this.alphaToCoverage=e.alphaToCoverage;this.premultipliedAlpha=e.premultipliedAlpha;this.visible=e.visible;this.toneMapped=e.toneMapped;this.userData=JSON.parse(JSON.stringify(e.userData));return this}dispose(){this.dispatchEvent({type:\"dispose\"})}set needsUpdate(e){true===e&&this.version++}}Material.prototype.isMaterial=true;const Fr={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};const Or={h:0,s:0,l:0};const Hr={h:0,s:0,l:0};function hue2rgb(e,t,n){n<0&&(n+=1);n>1&&(n-=1);return n<1/6?e+6*(t-e)*n:n<.5?t:n<2/3?e+6*(t-e)*(2/3-n):e}function SRGBToLinear(e){return e<.04045?.0773993808*e:Math.pow(.9478672986*e+.0521327014,2.4)}function LinearToSRGB(e){return e<.0031308?12.92*e:1.055*Math.pow(e,.41666)-.055}class Color{constructor(e,t,n){return void 0===t&&void 0===n?this.set(e):this.setRGB(e,t,n)}set(e){e&&e.isColor?this.copy(e):\"number\"===typeof e?this.setHex(e):\"string\"===typeof e&&this.setStyle(e);return this}setScalar(e){this.r=e;this.g=e;this.b=e;return this}setHex(e){e=Math.floor(e);this.r=(e>>16&255)/255;this.g=(e>>8&255)/255;this.b=(255&e)/255;return this}setRGB(e,t,n){this.r=e;this.g=t;this.b=n;return this}setHSL(e,t,n){e=euclideanModulo(e,1);t=clamp(t,0,1);n=clamp(n,0,1);if(0===t)this.r=this.g=this.b=n;else{const r=n<=.5?n*(1+t):n+t-n*t;const i=2*n-r;this.r=hue2rgb(i,r,e+1/3);this.g=hue2rgb(i,r,e);this.b=hue2rgb(i,r,e-1/3)}return this}setStyle(e){function handleAlpha(t){void 0!==t&&parseFloat(t)<1&&console.warn(\"THREE.Color: Alpha component of \"+e+\" will be ignored.\")}let t;if(t=/^((?:rgb|hsl)a?)\\(([^\\)]*)\\)/.exec(e)){let e;const n=t[1];const r=t[2];switch(n){case\"rgb\":case\"rgba\":if(e=/^\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec(r)){this.r=Math.min(255,parseInt(e[1],10))/255;this.g=Math.min(255,parseInt(e[2],10))/255;this.b=Math.min(255,parseInt(e[3],10))/255;handleAlpha(e[4]);return this}if(e=/^\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec(r)){this.r=Math.min(100,parseInt(e[1],10))/100;this.g=Math.min(100,parseInt(e[2],10))/100;this.b=Math.min(100,parseInt(e[3],10))/100;handleAlpha(e[4]);return this}break;case\"hsl\":case\"hsla\":if(e=/^\\s*(\\d*\\.?\\d+)\\s*,\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec(r)){const t=parseFloat(e[1])/360;const n=parseInt(e[2],10)/100;const r=parseInt(e[3],10)/100;handleAlpha(e[4]);return this.setHSL(t,n,r)}break}}else if(t=/^\\#([A-Fa-f\\d]+)$/.exec(e)){const e=t[1];const n=e.length;if(3===n){this.r=parseInt(e.charAt(0)+e.charAt(0),16)/255;this.g=parseInt(e.charAt(1)+e.charAt(1),16)/255;this.b=parseInt(e.charAt(2)+e.charAt(2),16)/255;return this}if(6===n){this.r=parseInt(e.charAt(0)+e.charAt(1),16)/255;this.g=parseInt(e.charAt(2)+e.charAt(3),16)/255;this.b=parseInt(e.charAt(4)+e.charAt(5),16)/255;return this}}return e&&e.length>0?this.setColorName(e):this}setColorName(e){const t=Fr[e.toLowerCase()];void 0!==t?this.setHex(t):console.warn(\"THREE.Color: Unknown color \"+e);return this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(e){this.r=e.r;this.g=e.g;this.b=e.b;return this}copySRGBToLinear(e){this.r=SRGBToLinear(e.r);this.g=SRGBToLinear(e.g);this.b=SRGBToLinear(e.b);return this}copyLinearToSRGB(e){this.r=LinearToSRGB(e.r);this.g=LinearToSRGB(e.g);this.b=LinearToSRGB(e.b);return this}convertSRGBToLinear(){this.copySRGBToLinear(this);return this}convertLinearToSRGB(){this.copyLinearToSRGB(this);return this}getHex(){return 255*this.r<<16^255*this.g<<8^255*this.b<<0}getHexString(){return(\"000000\"+this.getHex().toString(16)).slice(-6)}getHSL(e){const t=this.r,n=this.g,r=this.b;const i=Math.max(t,n,r);const s=Math.min(t,n,r);let a,o;const l=(s+i)/2;if(s===i){a=0;o=0}else{const e=i-s;o=l<=.5?e/(i+s):e/(2-i-s);switch(i){case t:a=(n-r)/e+(n<r?6:0);break;case n:a=(r-t)/e+2;break;case r:a=(t-n)/e+4;break}a/=6}e.h=a;e.s=o;e.l=l;return e}getStyle(){return\"rgb(\"+(255*this.r|0)+\",\"+(255*this.g|0)+\",\"+(255*this.b|0)+\")\"}offsetHSL(e,t,n){this.getHSL(Or);Or.h+=e;Or.s+=t;Or.l+=n;this.setHSL(Or.h,Or.s,Or.l);return this}add(e){this.r+=e.r;this.g+=e.g;this.b+=e.b;return this}addColors(e,t){this.r=e.r+t.r;this.g=e.g+t.g;this.b=e.b+t.b;return this}addScalar(e){this.r+=e;this.g+=e;this.b+=e;return this}sub(e){this.r=Math.max(0,this.r-e.r);this.g=Math.max(0,this.g-e.g);this.b=Math.max(0,this.b-e.b);return this}multiply(e){this.r*=e.r;this.g*=e.g;this.b*=e.b;return this}multiplyScalar(e){this.r*=e;this.g*=e;this.b*=e;return this}lerp(e,t){this.r+=(e.r-this.r)*t;this.g+=(e.g-this.g)*t;this.b+=(e.b-this.b)*t;return this}lerpColors(e,t,n){this.r=e.r+(t.r-e.r)*n;this.g=e.g+(t.g-e.g)*n;this.b=e.b+(t.b-e.b)*n;return this}lerpHSL(e,t){this.getHSL(Or);e.getHSL(Hr);const n=lerp(Or.h,Hr.h,t);const r=lerp(Or.s,Hr.s,t);const i=lerp(Or.l,Hr.l,t);this.setHSL(n,r,i);return this}equals(e){return e.r===this.r&&e.g===this.g&&e.b===this.b}fromArray(e,t=0){this.r=e[t];this.g=e[t+1];this.b=e[t+2];return this}toArray(e=[],t=0){e[t]=this.r;e[t+1]=this.g;e[t+2]=this.b;return e}fromBufferAttribute(e,t){this.r=e.getX(t);this.g=e.getY(t);this.b=e.getZ(t);if(true===e.normalized){this.r/=255;this.g/=255;this.b/=255}return this}toJSON(){return this.getHex()}}Color.NAMES=Fr;Color.prototype.isColor=true;Color.prototype.r=1;Color.prototype.g=1;Color.prototype.b=1;class MeshBasicMaterial extends Material{constructor(e){super();this.type=\"MeshBasicMaterial\";this.color=new Color(16777215);this.map=null;this.lightMap=null;this.lightMapIntensity=1;this.aoMap=null;this.aoMapIntensity=1;this.specularMap=null;this.alphaMap=null;this.envMap=null;this.combine=X;this.reflectivity=1;this.refractionRatio=.98;this.wireframe=false;this.wireframeLinewidth=1;this.wireframeLinecap=\"round\";this.wireframeLinejoin=\"round\";this.setValues(e)}copy(e){super.copy(e);this.color.copy(e.color);this.map=e.map;this.lightMap=e.lightMap;this.lightMapIntensity=e.lightMapIntensity;this.aoMap=e.aoMap;this.aoMapIntensity=e.aoMapIntensity;this.specularMap=e.specularMap;this.alphaMap=e.alphaMap;this.envMap=e.envMap;this.combine=e.combine;this.reflectivity=e.reflectivity;this.refractionRatio=e.refractionRatio;this.wireframe=e.wireframe;this.wireframeLinewidth=e.wireframeLinewidth;this.wireframeLinecap=e.wireframeLinecap;this.wireframeLinejoin=e.wireframeLinejoin;return this}}MeshBasicMaterial.prototype.isMeshBasicMaterial=true;const kr=new Vector3;const Wr=new Vector2;class BufferAttribute{constructor(e,t,n){if(Array.isArray(e))throw new TypeError(\"THREE.BufferAttribute: array should be a Typed Array.\");this.name=\"\";this.array=e;this.itemSize=t;this.count=void 0!==e?e.length/t:0;this.normalized=true===n;this.usage=gn;this.updateRange={offset:0,count:-1};this.version=0}onUploadCallback(){}set needsUpdate(e){true===e&&this.version++}setUsage(e){this.usage=e;return this}copy(e){this.name=e.name;this.array=new e.array.constructor(e.array);this.itemSize=e.itemSize;this.count=e.count;this.normalized=e.normalized;this.usage=e.usage;return this}copyAt(e,t,n){e*=this.itemSize;n*=t.itemSize;for(let r=0,i=this.itemSize;r<i;r++)this.array[e+r]=t.array[n+r];return this}copyArray(e){this.array.set(e);return this}copyColorsArray(e){const t=this.array;let n=0;for(let r=0,i=e.length;r<i;r++){let i=e[r];if(void 0===i){console.warn(\"THREE.BufferAttribute.copyColorsArray(): color is undefined\",r);i=new Color}t[n++]=i.r;t[n++]=i.g;t[n++]=i.b}return this}copyVector2sArray(e){const t=this.array;let n=0;for(let r=0,i=e.length;r<i;r++){let i=e[r];if(void 0===i){console.warn(\"THREE.BufferAttribute.copyVector2sArray(): vector is undefined\",r);i=new Vector2}t[n++]=i.x;t[n++]=i.y}return this}copyVector3sArray(e){const t=this.array;let n=0;for(let r=0,i=e.length;r<i;r++){let i=e[r];if(void 0===i){console.warn(\"THREE.BufferAttribute.copyVector3sArray(): vector is undefined\",r);i=new Vector3}t[n++]=i.x;t[n++]=i.y;t[n++]=i.z}return this}copyVector4sArray(e){const t=this.array;let n=0;for(let r=0,i=e.length;r<i;r++){let i=e[r];if(void 0===i){console.warn(\"THREE.BufferAttribute.copyVector4sArray(): vector is undefined\",r);i=new Vector4}t[n++]=i.x;t[n++]=i.y;t[n++]=i.z;t[n++]=i.w}return this}applyMatrix3(e){if(2===this.itemSize)for(let t=0,n=this.count;t<n;t++){Wr.fromBufferAttribute(this,t);Wr.applyMatrix3(e);this.setXY(t,Wr.x,Wr.y)}else if(3===this.itemSize)for(let t=0,n=this.count;t<n;t++){kr.fromBufferAttribute(this,t);kr.applyMatrix3(e);this.setXYZ(t,kr.x,kr.y,kr.z)}return this}applyMatrix4(e){for(let t=0,n=this.count;t<n;t++){kr.x=this.getX(t);kr.y=this.getY(t);kr.z=this.getZ(t);kr.applyMatrix4(e);this.setXYZ(t,kr.x,kr.y,kr.z)}return this}applyNormalMatrix(e){for(let t=0,n=this.count;t<n;t++){kr.x=this.getX(t);kr.y=this.getY(t);kr.z=this.getZ(t);kr.applyNormalMatrix(e);this.setXYZ(t,kr.x,kr.y,kr.z)}return this}transformDirection(e){for(let t=0,n=this.count;t<n;t++){kr.x=this.getX(t);kr.y=this.getY(t);kr.z=this.getZ(t);kr.transformDirection(e);this.setXYZ(t,kr.x,kr.y,kr.z)}return this}set(e,t=0){this.array.set(e,t);return this}getX(e){return this.array[e*this.itemSize]}setX(e,t){this.array[e*this.itemSize]=t;return this}getY(e){return this.array[e*this.itemSize+1]}setY(e,t){this.array[e*this.itemSize+1]=t;return this}getZ(e){return this.array[e*this.itemSize+2]}setZ(e,t){this.array[e*this.itemSize+2]=t;return this}getW(e){return this.array[e*this.itemSize+3]}setW(e,t){this.array[e*this.itemSize+3]=t;return this}setXY(e,t,n){e*=this.itemSize;this.array[e+0]=t;this.array[e+1]=n;return this}setXYZ(e,t,n,r){e*=this.itemSize;this.array[e+0]=t;this.array[e+1]=n;this.array[e+2]=r;return this}setXYZW(e,t,n,r,i){e*=this.itemSize;this.array[e+0]=t;this.array[e+1]=n;this.array[e+2]=r;this.array[e+3]=i;return this}onUpload(e){this.onUploadCallback=e;return this}clone(){return new this.constructor(this.array,this.itemSize).copy(this)}toJSON(){const e={itemSize:this.itemSize,type:this.array.constructor.name,array:Array.prototype.slice.call(this.array),normalized:this.normalized};\"\"!==this.name&&(e.name=this.name);this.usage!==gn&&(e.usage=this.usage);0===this.updateRange.offset&&-1===this.updateRange.count||(e.updateRange=this.updateRange);return e}}BufferAttribute.prototype.isBufferAttribute=true;class Int8BufferAttribute extends BufferAttribute{constructor(e,t,n){super(new Int8Array(e),t,n)}}class Uint8BufferAttribute extends BufferAttribute{constructor(e,t,n){super(new Uint8Array(e),t,n)}}class Uint8ClampedBufferAttribute extends BufferAttribute{constructor(e,t,n){super(new Uint8ClampedArray(e),t,n)}}class Int16BufferAttribute extends BufferAttribute{constructor(e,t,n){super(new Int16Array(e),t,n)}}class Uint16BufferAttribute extends BufferAttribute{constructor(e,t,n){super(new Uint16Array(e),t,n)}}class Int32BufferAttribute extends BufferAttribute{constructor(e,t,n){super(new Int32Array(e),t,n)}}class Uint32BufferAttribute extends BufferAttribute{constructor(e,t,n){super(new Uint32Array(e),t,n)}}class Float16BufferAttribute extends BufferAttribute{constructor(e,t,n){super(new Uint16Array(e),t,n)}}Float16BufferAttribute.prototype.isFloat16BufferAttribute=true;class Float32BufferAttribute extends BufferAttribute{constructor(e,t,n){super(new Float32Array(e),t,n)}}class Float64BufferAttribute extends BufferAttribute{constructor(e,t,n){super(new Float64Array(e),t,n)}}let jr=0;const qr=new Matrix4;const Xr=new Object3D;const Jr=new Vector3;const Yr=new Box3;const Zr=new Box3;const Qr=new Vector3;class BufferGeometry extends EventDispatcher{constructor(){super();Object.defineProperty(this,\"id\",{value:jr++});this.uuid=generateUUID();this.name=\"\";this.type=\"BufferGeometry\";this.index=null;this.attributes={};this.morphAttributes={};this.morphTargetsRelative=false;this.groups=[];this.boundingBox=null;this.boundingSphere=null;this.drawRange={start:0,count:Infinity};this.userData={}}getIndex(){return this.index}setIndex(e){Array.isArray(e)?this.index=new(arrayMax(e)>65535?Uint32BufferAttribute:Uint16BufferAttribute)(e,1):this.index=e;return this}getAttribute(e){return this.attributes[e]}setAttribute(e,t){this.attributes[e]=t;return this}deleteAttribute(e){delete this.attributes[e];return this}hasAttribute(e){return void 0!==this.attributes[e]}addGroup(e,t,n=0){this.groups.push({start:e,count:t,materialIndex:n})}clearGroups(){this.groups=[]}setDrawRange(e,t){this.drawRange.start=e;this.drawRange.count=t}applyMatrix4(e){const t=this.attributes.position;if(void 0!==t){t.applyMatrix4(e);t.needsUpdate=true}const n=this.attributes.normal;if(void 0!==n){const t=(new Matrix3).getNormalMatrix(e);n.applyNormalMatrix(t);n.needsUpdate=true}const r=this.attributes.tangent;if(void 0!==r){r.transformDirection(e);r.needsUpdate=true}null!==this.boundingBox&&this.computeBoundingBox();null!==this.boundingSphere&&this.computeBoundingSphere();return this}applyQuaternion(e){qr.makeRotationFromQuaternion(e);this.applyMatrix4(qr);return this}rotateX(e){qr.makeRotationX(e);this.applyMatrix4(qr);return this}rotateY(e){qr.makeRotationY(e);this.applyMatrix4(qr);return this}rotateZ(e){qr.makeRotationZ(e);this.applyMatrix4(qr);return this}translate(e,t,n){qr.makeTranslation(e,t,n);this.applyMatrix4(qr);return this}scale(e,t,n){qr.makeScale(e,t,n);this.applyMatrix4(qr);return this}lookAt(e){Xr.lookAt(e);Xr.updateMatrix();this.applyMatrix4(Xr.matrix);return this}center(){this.computeBoundingBox();this.boundingBox.getCenter(Jr).negate();this.translate(Jr.x,Jr.y,Jr.z);return this}setFromPoints(e){const t=[];for(let n=0,r=e.length;n<r;n++){const r=e[n];t.push(r.x,r.y,r.z||0)}this.setAttribute(\"position\",new Float32BufferAttribute(t,3));return this}computeBoundingBox(){null===this.boundingBox&&(this.boundingBox=new Box3);const e=this.attributes.position;const t=this.morphAttributes.position;if(e&&e.isGLBufferAttribute){console.error('THREE.BufferGeometry.computeBoundingBox(): GLBufferAttribute requires a manual bounding box. Alternatively set \"mesh.frustumCulled\" to \"false\".',this);this.boundingBox.set(new Vector3(-Infinity,-Infinity,-Infinity),new Vector3(Infinity,Infinity,Infinity))}else{if(void 0!==e){this.boundingBox.setFromBufferAttribute(e);if(t)for(let e=0,n=t.length;e<n;e++){const n=t[e];Yr.setFromBufferAttribute(n);if(this.morphTargetsRelative){Qr.addVectors(this.boundingBox.min,Yr.min);this.boundingBox.expandByPoint(Qr);Qr.addVectors(this.boundingBox.max,Yr.max);this.boundingBox.expandByPoint(Qr)}else{this.boundingBox.expandByPoint(Yr.min);this.boundingBox.expandByPoint(Yr.max)}}}else this.boundingBox.makeEmpty();(isNaN(this.boundingBox.min.x)||isNaN(this.boundingBox.min.y)||isNaN(this.boundingBox.min.z))&&console.error('THREE.BufferGeometry.computeBoundingBox(): Computed min/max have NaN values. The \"position\" attribute is likely to have NaN values.',this)}}computeBoundingSphere(){null===this.boundingSphere&&(this.boundingSphere=new Sphere);const e=this.attributes.position;const t=this.morphAttributes.position;if(e&&e.isGLBufferAttribute){console.error('THREE.BufferGeometry.computeBoundingSphere(): GLBufferAttribute requires a manual bounding sphere. Alternatively set \"mesh.frustumCulled\" to \"false\".',this);this.boundingSphere.set(new Vector3,Infinity)}else if(e){const n=this.boundingSphere.center;Yr.setFromBufferAttribute(e);if(t)for(let e=0,n=t.length;e<n;e++){const n=t[e];Zr.setFromBufferAttribute(n);if(this.morphTargetsRelative){Qr.addVectors(Yr.min,Zr.min);Yr.expandByPoint(Qr);Qr.addVectors(Yr.max,Zr.max);Yr.expandByPoint(Qr)}else{Yr.expandByPoint(Zr.min);Yr.expandByPoint(Zr.max)}}Yr.getCenter(n);let r=0;for(let t=0,i=e.count;t<i;t++){Qr.fromBufferAttribute(e,t);r=Math.max(r,n.distanceToSquared(Qr))}if(t)for(let i=0,s=t.length;i<s;i++){const s=t[i];const a=this.morphTargetsRelative;for(let t=0,i=s.count;t<i;t++){Qr.fromBufferAttribute(s,t);if(a){Jr.fromBufferAttribute(e,t);Qr.add(Jr)}r=Math.max(r,n.distanceToSquared(Qr))}}this.boundingSphere.radius=Math.sqrt(r);isNaN(this.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The \"position\" attribute is likely to have NaN values.',this)}}computeTangents(){const e=this.index;const t=this.attributes;if(null===e||void 0===t.position||void 0===t.normal||void 0===t.uv){console.error(\"THREE.BufferGeometry: .computeTangents() failed. Missing required attributes (index, position, normal or uv)\");return}const n=e.array;const r=t.position.array;const i=t.normal.array;const s=t.uv.array;const a=r.length/3;void 0===t.tangent&&this.setAttribute(\"tangent\",new BufferAttribute(new Float32Array(4*a),4));const o=t.tangent.array;const l=[],c=[];for(let e=0;e<a;e++){l[e]=new Vector3;c[e]=new Vector3}const u=new Vector3,h=new Vector3,d=new Vector3,p=new Vector2,f=new Vector2,m=new Vector2,g=new Vector3,y=new Vector3;function handleTriangle(e,t,n){u.fromArray(r,3*e);h.fromArray(r,3*t);d.fromArray(r,3*n);p.fromArray(s,2*e);f.fromArray(s,2*t);m.fromArray(s,2*n);h.sub(u);d.sub(u);f.sub(p);m.sub(p);const i=1/(f.x*m.y-m.x*f.y);if(isFinite(i)){g.copy(h).multiplyScalar(m.y).addScaledVector(d,-f.y).multiplyScalar(i);y.copy(d).multiplyScalar(f.x).addScaledVector(h,-m.x).multiplyScalar(i);l[e].add(g);l[t].add(g);l[n].add(g);c[e].add(y);c[t].add(y);c[n].add(y)}}let x=this.groups;0===x.length&&(x=[{start:0,count:n.length}]);for(let e=0,t=x.length;e<t;++e){const t=x[e];const r=t.start;const i=t.count;for(let e=r,t=r+i;e<t;e+=3)handleTriangle(n[e+0],n[e+1],n[e+2])}const b=new Vector3,_=new Vector3;const M=new Vector3,w=new Vector3;function handleVertex(e){M.fromArray(i,3*e);w.copy(M);const t=l[e];b.copy(t);b.sub(M.multiplyScalar(M.dot(t))).normalize();_.crossVectors(w,t);const n=_.dot(c[e]);const r=n<0?-1:1;o[4*e]=b.x;o[4*e+1]=b.y;o[4*e+2]=b.z;o[4*e+3]=r}for(let e=0,t=x.length;e<t;++e){const t=x[e];const r=t.start;const i=t.count;for(let e=r,t=r+i;e<t;e+=3){handleVertex(n[e+0]);handleVertex(n[e+1]);handleVertex(n[e+2])}}}computeVertexNormals(){const e=this.index;const t=this.getAttribute(\"position\");if(void 0!==t){let n=this.getAttribute(\"normal\");if(void 0===n){n=new BufferAttribute(new Float32Array(3*t.count),3);this.setAttribute(\"normal\",n)}else for(let e=0,t=n.count;e<t;e++)n.setXYZ(e,0,0,0);const r=new Vector3,i=new Vector3,s=new Vector3;const a=new Vector3,o=new Vector3,l=new Vector3;const c=new Vector3,u=new Vector3;if(e)for(let h=0,d=e.count;h<d;h+=3){const d=e.getX(h+0);const p=e.getX(h+1);const f=e.getX(h+2);r.fromBufferAttribute(t,d);i.fromBufferAttribute(t,p);s.fromBufferAttribute(t,f);c.subVectors(s,i);u.subVectors(r,i);c.cross(u);a.fromBufferAttribute(n,d);o.fromBufferAttribute(n,p);l.fromBufferAttribute(n,f);a.add(c);o.add(c);l.add(c);n.setXYZ(d,a.x,a.y,a.z);n.setXYZ(p,o.x,o.y,o.z);n.setXYZ(f,l.x,l.y,l.z)}else for(let e=0,a=t.count;e<a;e+=3){r.fromBufferAttribute(t,e+0);i.fromBufferAttribute(t,e+1);s.fromBufferAttribute(t,e+2);c.subVectors(s,i);u.subVectors(r,i);c.cross(u);n.setXYZ(e+0,c.x,c.y,c.z);n.setXYZ(e+1,c.x,c.y,c.z);n.setXYZ(e+2,c.x,c.y,c.z)}this.normalizeNormals();n.needsUpdate=true}}merge(e,t){if(!(e&&e.isBufferGeometry)){console.error(\"THREE.BufferGeometry.merge(): geometry not an instance of THREE.BufferGeometry.\",e);return}if(void 0===t){t=0;console.warn(\"THREE.BufferGeometry.merge(): Overwriting original geometry, starting at offset=0. Use BufferGeometryUtils.mergeBufferGeometries() for lossless merge.\")}const n=this.attributes;for(const r in n){if(void 0===e.attributes[r])continue;const i=n[r];const s=i.array;const a=e.attributes[r];const o=a.array;const l=a.itemSize*t;const c=Math.min(o.length,s.length-l);for(let e=0,t=l;e<c;e++,t++)s[t]=o[e]}return this}normalizeNormals(){const e=this.attributes.normal;for(let t=0,n=e.count;t<n;t++){Qr.fromBufferAttribute(e,t);Qr.normalize();e.setXYZ(t,Qr.x,Qr.y,Qr.z)}}toNonIndexed(){function convertBufferAttribute(e,t){const n=e.array;const r=e.itemSize;const i=e.normalized;const s=new n.constructor(t.length*r);let a=0,o=0;for(let i=0,l=t.length;i<l;i++){a=e.isInterleavedBufferAttribute?t[i]*e.data.stride+e.offset:t[i]*r;for(let e=0;e<r;e++)s[o++]=n[a++]}return new BufferAttribute(s,r,i)}if(null===this.index){console.warn(\"THREE.BufferGeometry.toNonIndexed(): BufferGeometry is already non-indexed.\");return this}const e=new BufferGeometry;const t=this.index.array;const n=this.attributes;for(const r in n){const i=n[r];const s=convertBufferAttribute(i,t);e.setAttribute(r,s)}const r=this.morphAttributes;for(const n in r){const i=[];const s=r[n];for(let e=0,n=s.length;e<n;e++){const n=s[e];const r=convertBufferAttribute(n,t);i.push(r)}e.morphAttributes[n]=i}e.morphTargetsRelative=this.morphTargetsRelative;const i=this.groups;for(let t=0,n=i.length;t<n;t++){const n=i[t];e.addGroup(n.start,n.count,n.materialIndex)}return e}toJSON(){const e={metadata:{version:4.5,type:\"BufferGeometry\",generator:\"BufferGeometry.toJSON\"}};e.uuid=this.uuid;e.type=this.type;\"\"!==this.name&&(e.name=this.name);Object.keys(this.userData).length>0&&(e.userData=this.userData);if(void 0!==this.parameters){const t=this.parameters;for(const n in t)void 0!==t[n]&&(e[n]=t[n]);return e}e.data={attributes:{}};const t=this.index;null!==t&&(e.data.index={type:t.array.constructor.name,array:Array.prototype.slice.call(t.array)});const n=this.attributes;for(const t in n){const r=n[t];e.data.attributes[t]=r.toJSON(e.data)}const r={};let i=false;for(const t in this.morphAttributes){const n=this.morphAttributes[t];const s=[];for(let t=0,r=n.length;t<r;t++){const r=n[t];s.push(r.toJSON(e.data))}if(s.length>0){r[t]=s;i=true}}if(i){e.data.morphAttributes=r;e.data.morphTargetsRelative=this.morphTargetsRelative}const s=this.groups;s.length>0&&(e.data.groups=JSON.parse(JSON.stringify(s)));const a=this.boundingSphere;null!==a&&(e.data.boundingSphere={center:a.center.toArray(),radius:a.radius});return e}clone(){return(new this.constructor).copy(this)}copy(e){this.index=null;this.attributes={};this.morphAttributes={};this.groups=[];this.boundingBox=null;this.boundingSphere=null;const t={};this.name=e.name;const n=e.index;null!==n&&this.setIndex(n.clone(t));const r=e.attributes;for(const e in r){const n=r[e];this.setAttribute(e,n.clone(t))}const i=e.morphAttributes;for(const e in i){const n=[];const r=i[e];for(let e=0,i=r.length;e<i;e++)n.push(r[e].clone(t));this.morphAttributes[e]=n}this.morphTargetsRelative=e.morphTargetsRelative;const s=e.groups;for(let e=0,t=s.length;e<t;e++){const t=s[e];this.addGroup(t.start,t.count,t.materialIndex)}const a=e.boundingBox;null!==a&&(this.boundingBox=a.clone());const o=e.boundingSphere;null!==o&&(this.boundingSphere=o.clone());this.drawRange.start=e.drawRange.start;this.drawRange.count=e.drawRange.count;this.userData=e.userData;void 0!==e.parameters&&(this.parameters=Object.assign({},e.parameters));return this}dispose(){this.dispatchEvent({type:\"dispose\"})}}BufferGeometry.prototype.isBufferGeometry=true;const Kr=new Matrix4;const $r=new Ray;const ei=new Sphere;const ti=new Vector3;const ni=new Vector3;const ri=new Vector3;const ii=new Vector3;const si=new Vector3;const ai=new Vector3;const oi=new Vector3;const li=new Vector3;const ci=new Vector3;const ui=new Vector2;const hi=new Vector2;const di=new Vector2;const pi=new Vector3;const fi=new Vector3;class Mesh extends Object3D{constructor(e=new BufferGeometry,t=new MeshBasicMaterial){super();this.type=\"Mesh\";this.geometry=e;this.material=t;this.updateMorphTargets()}copy(e){super.copy(e);void 0!==e.morphTargetInfluences&&(this.morphTargetInfluences=e.morphTargetInfluences.slice());void 0!==e.morphTargetDictionary&&(this.morphTargetDictionary=Object.assign({},e.morphTargetDictionary));this.material=e.material;this.geometry=e.geometry;return this}updateMorphTargets(){const e=this.geometry;if(e.isBufferGeometry){const t=e.morphAttributes;const n=Object.keys(t);if(n.length>0){const e=t[n[0]];if(void 0!==e){this.morphTargetInfluences=[];this.morphTargetDictionary={};for(let t=0,n=e.length;t<n;t++){const n=e[t].name||String(t);this.morphTargetInfluences.push(0);this.morphTargetDictionary[n]=t}}}}else{const t=e.morphTargets;void 0!==t&&t.length>0&&console.error(\"THREE.Mesh.updateMorphTargets() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.\")}}raycast(e,t){const n=this.geometry;const r=this.material;const i=this.matrixWorld;if(void 0===r)return;null===n.boundingSphere&&n.computeBoundingSphere();ei.copy(n.boundingSphere);ei.applyMatrix4(i);if(false===e.ray.intersectsSphere(ei))return;Kr.copy(i).invert();$r.copy(e.ray).applyMatrix4(Kr);if(null!==n.boundingBox&&false===$r.intersectsBox(n.boundingBox))return;let s;if(n.isBufferGeometry){const i=n.index;const a=n.attributes.position;const o=n.morphAttributes.position;const l=n.morphTargetsRelative;const c=n.attributes.uv;const u=n.attributes.uv2;const h=n.groups;const d=n.drawRange;if(null!==i)if(Array.isArray(r))for(let n=0,p=h.length;n<p;n++){const p=h[n];const f=r[p.materialIndex];const m=Math.max(p.start,d.start);const g=Math.min(i.count,Math.min(p.start+p.count,d.start+d.count));for(let n=m,r=g;n<r;n+=3){const r=i.getX(n);const h=i.getX(n+1);const d=i.getX(n+2);s=checkBufferGeometryIntersection(this,f,e,$r,a,o,l,c,u,r,h,d);if(s){s.faceIndex=Math.floor(n/3);s.face.materialIndex=p.materialIndex;t.push(s)}}}else{const n=Math.max(0,d.start);const h=Math.min(i.count,d.start+d.count);for(let d=n,p=h;d<p;d+=3){const n=i.getX(d);const h=i.getX(d+1);const p=i.getX(d+2);s=checkBufferGeometryIntersection(this,r,e,$r,a,o,l,c,u,n,h,p);if(s){s.faceIndex=Math.floor(d/3);t.push(s)}}}else if(void 0!==a)if(Array.isArray(r))for(let n=0,i=h.length;n<i;n++){const i=h[n];const p=r[i.materialIndex];const f=Math.max(i.start,d.start);const m=Math.min(a.count,Math.min(i.start+i.count,d.start+d.count));for(let n=f,r=m;n<r;n+=3){const r=n;const h=n+1;const d=n+2;s=checkBufferGeometryIntersection(this,p,e,$r,a,o,l,c,u,r,h,d);if(s){s.faceIndex=Math.floor(n/3);s.face.materialIndex=i.materialIndex;t.push(s)}}}else{const n=Math.max(0,d.start);const i=Math.min(a.count,d.start+d.count);for(let h=n,d=i;h<d;h+=3){const n=h;const i=h+1;const d=h+2;s=checkBufferGeometryIntersection(this,r,e,$r,a,o,l,c,u,n,i,d);if(s){s.faceIndex=Math.floor(h/3);t.push(s)}}}}else n.isGeometry&&console.error(\"THREE.Mesh.raycast() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.\")}}Mesh.prototype.isMesh=true;function checkIntersection(e,t,n,r,i,s,a,o){let l;l=t.side===d?r.intersectTriangle(a,s,i,true,o):r.intersectTriangle(i,s,a,t.side!==p,o);if(null===l)return null;fi.copy(o);fi.applyMatrix4(e.matrixWorld);const c=n.ray.origin.distanceTo(fi);return c<n.near||c>n.far?null:{distance:c,point:fi.clone(),object:e}}function checkBufferGeometryIntersection(e,t,n,r,i,s,a,o,l,c,u,h){ti.fromBufferAttribute(i,c);ni.fromBufferAttribute(i,u);ri.fromBufferAttribute(i,h);const d=e.morphTargetInfluences;if(s&&d){oi.set(0,0,0);li.set(0,0,0);ci.set(0,0,0);for(let e=0,t=s.length;e<t;e++){const t=d[e];const n=s[e];if(0!==t){ii.fromBufferAttribute(n,c);si.fromBufferAttribute(n,u);ai.fromBufferAttribute(n,h);if(a){oi.addScaledVector(ii,t);li.addScaledVector(si,t);ci.addScaledVector(ai,t)}else{oi.addScaledVector(ii.sub(ti),t);li.addScaledVector(si.sub(ni),t);ci.addScaledVector(ai.sub(ri),t)}}}ti.add(oi);ni.add(li);ri.add(ci)}if(e.isSkinnedMesh){e.boneTransform(c,ti);e.boneTransform(u,ni);e.boneTransform(h,ri)}const p=checkIntersection(e,t,n,r,ti,ni,ri,pi);if(p){if(o){ui.fromBufferAttribute(o,c);hi.fromBufferAttribute(o,u);di.fromBufferAttribute(o,h);p.uv=Triangle.getUV(pi,ti,ni,ri,ui,hi,di,new Vector2)}if(l){ui.fromBufferAttribute(l,c);hi.fromBufferAttribute(l,u);di.fromBufferAttribute(l,h);p.uv2=Triangle.getUV(pi,ti,ni,ri,ui,hi,di,new Vector2)}const e={a:c,b:u,c:h,normal:new Vector3,materialIndex:0};Triangle.getNormal(ti,ni,ri,e.normal);p.face=e}return p}class BoxGeometry extends BufferGeometry{constructor(e=1,t=1,n=1,r=1,i=1,s=1){super();this.type=\"BoxGeometry\";this.parameters={width:e,height:t,depth:n,widthSegments:r,heightSegments:i,depthSegments:s};const a=this;r=Math.floor(r);i=Math.floor(i);s=Math.floor(s);const o=[];const l=[];const c=[];const u=[];let h=0;let d=0;buildPlane(\"z\",\"y\",\"x\",-1,-1,n,t,e,s,i,0);buildPlane(\"z\",\"y\",\"x\",1,-1,n,t,-e,s,i,1);buildPlane(\"x\",\"z\",\"y\",1,1,e,n,t,r,s,2);buildPlane(\"x\",\"z\",\"y\",1,-1,e,n,-t,r,s,3);buildPlane(\"x\",\"y\",\"z\",1,-1,e,t,n,r,i,4);buildPlane(\"x\",\"y\",\"z\",-1,-1,e,t,-n,r,i,5);this.setIndex(o);this.setAttribute(\"position\",new Float32BufferAttribute(l,3));this.setAttribute(\"normal\",new Float32BufferAttribute(c,3));this.setAttribute(\"uv\",new Float32BufferAttribute(u,2));function buildPlane(e,t,n,r,i,s,p,f,m,g,y){const x=s/m;const b=p/g;const _=s/2;const M=p/2;const w=f/2;const S=m+1;const T=g+1;let E=0;let A=0;const L=new Vector3;for(let s=0;s<T;s++){const a=s*b-M;for(let o=0;o<S;o++){const h=o*x-_;L[e]=h*r;L[t]=a*i;L[n]=w;l.push(L.x,L.y,L.z);L[e]=0;L[t]=0;L[n]=f>0?1:-1;c.push(L.x,L.y,L.z);u.push(o/m);u.push(1-s/g);E+=1}}for(let e=0;e<g;e++)for(let t=0;t<m;t++){const n=h+t+S*e;const r=h+t+S*(e+1);const i=h+(t+1)+S*(e+1);const s=h+(t+1)+S*e;o.push(n,r,s);o.push(r,i,s);A+=6}a.addGroup(d,A,y);d+=A;h+=E}}static fromJSON(e){return new BoxGeometry(e.width,e.height,e.depth,e.widthSegments,e.heightSegments,e.depthSegments)}}function cloneUniforms(e){const t={};for(const n in e){t[n]={};for(const r in e[n]){const i=e[n][r];i&&(i.isColor||i.isMatrix3||i.isMatrix4||i.isVector2||i.isVector3||i.isVector4||i.isTexture||i.isQuaternion)?t[n][r]=i.clone():Array.isArray(i)?t[n][r]=i.slice():t[n][r]=i}}return t}function mergeUniforms(e){const t={};for(let n=0;n<e.length;n++){const r=cloneUniforms(e[n]);for(const e in r)t[e]=r[e]}return t}const mi={clone:cloneUniforms,merge:mergeUniforms};var gi=\"void main() {\\n\\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\\n}\";var yi=\"void main() {\\n\\tgl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );\\n}\";class ShaderMaterial extends Material{constructor(e){super();this.type=\"ShaderMaterial\";this.defines={};this.uniforms={};this.vertexShader=gi;this.fragmentShader=yi;this.linewidth=1;this.wireframe=false;this.wireframeLinewidth=1;this.fog=false;this.lights=false;this.clipping=false;this.extensions={derivatives:false,fragDepth:false,drawBuffers:false,shaderTextureLOD:false};this.defaultAttributeValues={color:[1,1,1],uv:[0,0],uv2:[0,0]};this.index0AttributeName=void 0;this.uniformsNeedUpdate=false;this.glslVersion=null;if(void 0!==e){void 0!==e.attributes&&console.error(\"THREE.ShaderMaterial: attributes should now be defined in THREE.BufferGeometry instead.\");this.setValues(e)}}copy(e){super.copy(e);this.fragmentShader=e.fragmentShader;this.vertexShader=e.vertexShader;this.uniforms=cloneUniforms(e.uniforms);this.defines=Object.assign({},e.defines);this.wireframe=e.wireframe;this.wireframeLinewidth=e.wireframeLinewidth;this.lights=e.lights;this.clipping=e.clipping;this.extensions=Object.assign({},e.extensions);this.glslVersion=e.glslVersion;return this}toJSON(e){const t=super.toJSON(e);t.glslVersion=this.glslVersion;t.uniforms={};for(const n in this.uniforms){const r=this.uniforms[n];const i=r.value;i&&i.isTexture?t.uniforms[n]={type:\"t\",value:i.toJSON(e).uuid}:i&&i.isColor?t.uniforms[n]={type:\"c\",value:i.getHex()}:i&&i.isVector2?t.uniforms[n]={type:\"v2\",value:i.toArray()}:i&&i.isVector3?t.uniforms[n]={type:\"v3\",value:i.toArray()}:i&&i.isVector4?t.uniforms[n]={type:\"v4\",value:i.toArray()}:i&&i.isMatrix3?t.uniforms[n]={type:\"m3\",value:i.toArray()}:i&&i.isMatrix4?t.uniforms[n]={type:\"m4\",value:i.toArray()}:t.uniforms[n]={value:i}}Object.keys(this.defines).length>0&&(t.defines=this.defines);t.vertexShader=this.vertexShader;t.fragmentShader=this.fragmentShader;const n={};for(const e in this.extensions)true===this.extensions[e]&&(n[e]=true);Object.keys(n).length>0&&(t.extensions=n);return t}}ShaderMaterial.prototype.isShaderMaterial=true;class Camera extends Object3D{constructor(){super();this.type=\"Camera\";this.matrixWorldInverse=new Matrix4;this.projectionMatrix=new Matrix4;this.projectionMatrixInverse=new Matrix4}copy(e,t){super.copy(e,t);this.matrixWorldInverse.copy(e.matrixWorldInverse);this.projectionMatrix.copy(e.projectionMatrix);this.projectionMatrixInverse.copy(e.projectionMatrixInverse);return this}getWorldDirection(e){this.updateWorldMatrix(true,false);const t=this.matrixWorld.elements;return e.set(-t[8],-t[9],-t[10]).normalize()}updateMatrixWorld(e){super.updateMatrixWorld(e);this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(e,t){super.updateWorldMatrix(e,t);this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return(new this.constructor).copy(this)}}Camera.prototype.isCamera=true;class PerspectiveCamera extends Camera{constructor(e=50,t=1,n=.1,r=2e3){super();this.type=\"PerspectiveCamera\";this.fov=e;this.zoom=1;this.near=n;this.far=r;this.focus=10;this.aspect=t;this.view=null;this.filmGauge=35;this.filmOffset=0;this.updateProjectionMatrix()}copy(e,t){super.copy(e,t);this.fov=e.fov;this.zoom=e.zoom;this.near=e.near;this.far=e.far;this.focus=e.focus;this.aspect=e.aspect;this.view=null===e.view?null:Object.assign({},e.view);this.filmGauge=e.filmGauge;this.filmOffset=e.filmOffset;return this}setFocalLength(e){const t=.5*this.getFilmHeight()/e;this.fov=2*Rn*Math.atan(t);this.updateProjectionMatrix()}getFocalLength(){const e=Math.tan(.5*Cn*this.fov);return.5*this.getFilmHeight()/e}getEffectiveFOV(){return 2*Rn*Math.atan(Math.tan(.5*Cn*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}setViewOffset(e,t,n,r,i,s){this.aspect=e/t;null===this.view&&(this.view={enabled:true,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1});this.view.enabled=true;this.view.fullWidth=e;this.view.fullHeight=t;this.view.offsetX=n;this.view.offsetY=r;this.view.width=i;this.view.height=s;this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=false);this.updateProjectionMatrix()}updateProjectionMatrix(){const e=this.near;let t=e*Math.tan(.5*Cn*this.fov)/this.zoom;let n=2*t;let r=this.aspect*n;let i=-.5*r;const s=this.view;if(null!==this.view&&this.view.enabled){const e=s.fullWidth,a=s.fullHeight;i+=s.offsetX*r/e;t-=s.offsetY*n/a;r*=s.width/e;n*=s.height/a}const a=this.filmOffset;0!==a&&(i+=e*a/this.getFilmWidth());this.projectionMatrix.makePerspective(i,i+r,t,t-n,e,this.far);this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(e){const t=super.toJSON(e);t.object.fov=this.fov;t.object.zoom=this.zoom;t.object.near=this.near;t.object.far=this.far;t.object.focus=this.focus;t.object.aspect=this.aspect;null!==this.view&&(t.object.view=Object.assign({},this.view));t.object.filmGauge=this.filmGauge;t.object.filmOffset=this.filmOffset;return t}}PerspectiveCamera.prototype.isPerspectiveCamera=true;const vi=90,xi=1;class CubeCamera extends Object3D{constructor(e,t,n){super();this.type=\"CubeCamera\";if(true!==n.isWebGLCubeRenderTarget){console.error(\"THREE.CubeCamera: The constructor now expects an instance of WebGLCubeRenderTarget as third parameter.\");return}this.renderTarget=n;const r=new PerspectiveCamera(vi,xi,e,t);r.layers=this.layers;r.up.set(0,-1,0);r.lookAt(new Vector3(1,0,0));this.add(r);const i=new PerspectiveCamera(vi,xi,e,t);i.layers=this.layers;i.up.set(0,-1,0);i.lookAt(new Vector3(-1,0,0));this.add(i);const s=new PerspectiveCamera(vi,xi,e,t);s.layers=this.layers;s.up.set(0,0,1);s.lookAt(new Vector3(0,1,0));this.add(s);const a=new PerspectiveCamera(vi,xi,e,t);a.layers=this.layers;a.up.set(0,0,-1);a.lookAt(new Vector3(0,-1,0));this.add(a);const o=new PerspectiveCamera(vi,xi,e,t);o.layers=this.layers;o.up.set(0,-1,0);o.lookAt(new Vector3(0,0,1));this.add(o);const l=new PerspectiveCamera(vi,xi,e,t);l.layers=this.layers;l.up.set(0,-1,0);l.lookAt(new Vector3(0,0,-1));this.add(l)}update(e,t){null===this.parent&&this.updateMatrixWorld();const n=this.renderTarget;const[r,i,s,a,o,l]=this.children;const c=e.xr.enabled;const u=e.getRenderTarget();e.xr.enabled=false;const h=n.texture.generateMipmaps;n.texture.generateMipmaps=false;e.setRenderTarget(n,0);e.render(t,r);e.setRenderTarget(n,1);e.render(t,i);e.setRenderTarget(n,2);e.render(t,s);e.setRenderTarget(n,3);e.render(t,a);e.setRenderTarget(n,4);e.render(t,o);n.texture.generateMipmaps=h;e.setRenderTarget(n,5);e.render(t,l);e.setRenderTarget(u);e.xr.enabled=c}}class CubeTexture extends Texture{constructor(e,t,n,r,i,s,a,o,l,c){e=void 0!==e?e:[];t=void 0!==t?t:re;super(e,t,n,r,i,s,a,o,l,c);this.flipY=false}get images(){return this.image}set images(e){this.image=e}}CubeTexture.prototype.isCubeTexture=true;class WebGLCubeRenderTarget extends WebGLRenderTarget{constructor(e,t,n){if(Number.isInteger(t)){console.warn(\"THREE.WebGLCubeRenderTarget: constructor signature is now WebGLCubeRenderTarget( size, options )\");t=n}super(e,e,t);t=t||{};this.texture=new CubeTexture(void 0,t.mapping,t.wrapS,t.wrapT,t.magFilter,t.minFilter,t.format,t.type,t.anisotropy,t.encoding);this.texture.isRenderTargetTexture=true;this.texture.generateMipmaps=void 0!==t.generateMipmaps&&t.generateMipmaps;this.texture.minFilter=void 0!==t.minFilter?t.minFilter:ye;this.texture._needsFlipEnvMap=false}fromEquirectangularTexture(e,t){this.texture.type=t.type;this.texture.format=Ne;this.texture.encoding=t.encoding;this.texture.generateMipmaps=t.generateMipmaps;this.texture.minFilter=t.minFilter;this.texture.magFilter=t.magFilter;const n={uniforms:{tEquirect:{value:null}},vertexShader:\"\\n\\n\\t\\t\\t\\tvarying vec3 vWorldDirection;\\n\\n\\t\\t\\t\\tvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\\n\\n\\t\\t\\t\\t\\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\\n\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\tvoid main() {\\n\\n\\t\\t\\t\\t\\tvWorldDirection = transformDirection( position, modelMatrix );\\n\\n\\t\\t\\t\\t\\t#include <begin_vertex>\\n\\t\\t\\t\\t\\t#include <project_vertex>\\n\\n\\t\\t\\t\\t}\\n\\t\\t\\t\",fragmentShader:\"\\n\\n\\t\\t\\t\\tuniform sampler2D tEquirect;\\n\\n\\t\\t\\t\\tvarying vec3 vWorldDirection;\\n\\n\\t\\t\\t\\t#include <common>\\n\\n\\t\\t\\t\\tvoid main() {\\n\\n\\t\\t\\t\\t\\tvec3 direction = normalize( vWorldDirection );\\n\\n\\t\\t\\t\\t\\tvec2 sampleUV = equirectUv( direction );\\n\\n\\t\\t\\t\\t\\tgl_FragColor = texture2D( tEquirect, sampleUV );\\n\\n\\t\\t\\t\\t}\\n\\t\\t\\t\"};const r=new BoxGeometry(5,5,5);const i=new ShaderMaterial({name:\"CubemapFromEquirect\",uniforms:cloneUniforms(n.uniforms),vertexShader:n.vertexShader,fragmentShader:n.fragmentShader,side:d,blending:g});i.uniforms.tEquirect.value=t;const s=new Mesh(r,i);const a=t.minFilter;t.minFilter===be&&(t.minFilter=ye);const o=new CubeCamera(1,10,this);o.update(e,s);t.minFilter=a;s.geometry.dispose();s.material.dispose();return this}clear(e,t,n,r){const i=e.getRenderTarget();for(let i=0;i<6;i++){e.setRenderTarget(this,i);e.clear(t,n,r)}e.setRenderTarget(i)}}WebGLCubeRenderTarget.prototype.isWebGLCubeRenderTarget=true;const bi=new Vector3;const _i=new Vector3;const Mi=new Matrix3;class Plane{constructor(e=new Vector3(1,0,0),t=0){this.normal=e;this.constant=t}set(e,t){this.normal.copy(e);this.constant=t;return this}setComponents(e,t,n,r){this.normal.set(e,t,n);this.constant=r;return this}setFromNormalAndCoplanarPoint(e,t){this.normal.copy(e);this.constant=-t.dot(this.normal);return this}setFromCoplanarPoints(e,t,n){const r=bi.subVectors(n,t).cross(_i.subVectors(e,t)).normalize();this.setFromNormalAndCoplanarPoint(r,e);return this}copy(e){this.normal.copy(e.normal);this.constant=e.constant;return this}normalize(){const e=1/this.normal.length();this.normal.multiplyScalar(e);this.constant*=e;return this}negate(){this.constant*=-1;this.normal.negate();return this}distanceToPoint(e){return this.normal.dot(e)+this.constant}distanceToSphere(e){return this.distanceToPoint(e.center)-e.radius}projectPoint(e,t){return t.copy(this.normal).multiplyScalar(-this.distanceToPoint(e)).add(e)}intersectLine(e,t){const n=e.delta(bi);const r=this.normal.dot(n);if(0===r)return 0===this.distanceToPoint(e.start)?t.copy(e.start):null;const i=-(e.start.dot(this.normal)+this.constant)/r;return i<0||i>1?null:t.copy(n).multiplyScalar(i).add(e.start)}intersectsLine(e){const t=this.distanceToPoint(e.start);const n=this.distanceToPoint(e.end);return t<0&&n>0||n<0&&t>0}intersectsBox(e){return e.intersectsPlane(this)}intersectsSphere(e){return e.intersectsPlane(this)}coplanarPoint(e){return e.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(e,t){const n=t||Mi.getNormalMatrix(e);const r=this.coplanarPoint(bi).applyMatrix4(e);const i=this.normal.applyMatrix3(n).normalize();this.constant=-r.dot(i);return this}translate(e){this.constant-=e.dot(this.normal);return this}equals(e){return e.normal.equals(this.normal)&&e.constant===this.constant}clone(){return(new this.constructor).copy(this)}}Plane.prototype.isPlane=true;const wi=new Sphere;const Si=new Vector3;class Frustum{constructor(e=new Plane,t=new Plane,n=new Plane,r=new Plane,i=new Plane,s=new Plane){this.planes=[e,t,n,r,i,s]}set(e,t,n,r,i,s){const a=this.planes;a[0].copy(e);a[1].copy(t);a[2].copy(n);a[3].copy(r);a[4].copy(i);a[5].copy(s);return this}copy(e){const t=this.planes;for(let n=0;n<6;n++)t[n].copy(e.planes[n]);return this}setFromProjectionMatrix(e){const t=this.planes;const n=e.elements;const r=n[0],i=n[1],s=n[2],a=n[3];const o=n[4],l=n[5],c=n[6],u=n[7];const h=n[8],d=n[9],p=n[10],f=n[11];const m=n[12],g=n[13],y=n[14],x=n[15];t[0].setComponents(a-r,u-o,f-h,x-m).normalize();t[1].setComponents(a+r,u+o,f+h,x+m).normalize();t[2].setComponents(a+i,u+l,f+d,x+g).normalize();t[3].setComponents(a-i,u-l,f-d,x-g).normalize();t[4].setComponents(a-s,u-c,f-p,x-y).normalize();t[5].setComponents(a+s,u+c,f+p,x+y).normalize();return this}intersectsObject(e){const t=e.geometry;null===t.boundingSphere&&t.computeBoundingSphere();wi.copy(t.boundingSphere).applyMatrix4(e.matrixWorld);return this.intersectsSphere(wi)}intersectsSprite(e){wi.center.set(0,0,0);wi.radius=.7071067811865476;wi.applyMatrix4(e.matrixWorld);return this.intersectsSphere(wi)}intersectsSphere(e){const t=this.planes;const n=e.center;const r=-e.radius;for(let e=0;e<6;e++){const i=t[e].distanceToPoint(n);if(i<r)return false}return true}intersectsBox(e){const t=this.planes;for(let n=0;n<6;n++){const r=t[n];Si.x=r.normal.x>0?e.max.x:e.min.x;Si.y=r.normal.y>0?e.max.y:e.min.y;Si.z=r.normal.z>0?e.max.z:e.min.z;if(r.distanceToPoint(Si)<0)return false}return true}containsPoint(e){const t=this.planes;for(let n=0;n<6;n++)if(t[n].distanceToPoint(e)<0)return false;return true}clone(){return(new this.constructor).copy(this)}}function WebGLAnimation(){let e=null;let t=false;let n=null;let r=null;function onAnimationFrame(t,i){n(t,i);r=e.requestAnimationFrame(onAnimationFrame)}return{start:function(){if(true!==t&&null!==n){r=e.requestAnimationFrame(onAnimationFrame);t=true}},stop:function(){e.cancelAnimationFrame(r);t=false},setAnimationLoop:function(e){n=e},setContext:function(t){e=t}}}function WebGLAttributes(e,t){const n=t.isWebGL2;const r=new WeakMap;function createBuffer(t,r){const i=t.array;const s=t.usage;const a=e.createBuffer();e.bindBuffer(r,a);e.bufferData(r,i,s);t.onUploadCallback();let o=5126;i instanceof Float32Array?o=5126:i instanceof Float64Array?console.warn(\"THREE.WebGLAttributes: Unsupported data buffer format: Float64Array.\"):i instanceof Uint16Array?t.isFloat16BufferAttribute?n?o=5131:console.warn(\"THREE.WebGLAttributes: Usage of Float16BufferAttribute requires WebGL2.\"):o=5123:i instanceof Int16Array?o=5122:i instanceof Uint32Array?o=5125:i instanceof Int32Array?o=5124:i instanceof Int8Array?o=5120:(i instanceof Uint8Array||i instanceof Uint8ClampedArray)&&(o=5121);return{buffer:a,type:o,bytesPerElement:i.BYTES_PER_ELEMENT,version:t.version}}function updateBuffer(t,r,i){const s=r.array;const a=r.updateRange;e.bindBuffer(i,t);if(-1===a.count)e.bufferSubData(i,0,s);else{n?e.bufferSubData(i,a.offset*s.BYTES_PER_ELEMENT,s,a.offset,a.count):e.bufferSubData(i,a.offset*s.BYTES_PER_ELEMENT,s.subarray(a.offset,a.offset+a.count));a.count=-1}}function get(e){e.isInterleavedBufferAttribute&&(e=e.data);return r.get(e)}function remove(t){t.isInterleavedBufferAttribute&&(t=t.data);const n=r.get(t);if(n){e.deleteBuffer(n.buffer);r.delete(t)}}function update(e,t){if(e.isGLBufferAttribute){const t=r.get(e);(!t||t.version<e.version)&&r.set(e,{buffer:e.buffer,type:e.type,bytesPerElement:e.elementSize,version:e.version});return}e.isInterleavedBufferAttribute&&(e=e.data);const n=r.get(e);if(void 0===n)r.set(e,createBuffer(e,t));else if(n.version<e.version){updateBuffer(n.buffer,e,t);n.version=e.version}}return{get:get,remove:remove,update:update}}class PlaneGeometry extends BufferGeometry{constructor(e=1,t=1,n=1,r=1){super();this.type=\"PlaneGeometry\";this.parameters={width:e,height:t,widthSegments:n,heightSegments:r};const i=e/2;const s=t/2;const a=Math.floor(n);const o=Math.floor(r);const l=a+1;const c=o+1;const u=e/a;const h=t/o;const d=[];const p=[];const f=[];const m=[];for(let e=0;e<c;e++){const t=e*h-s;for(let n=0;n<l;n++){const r=n*u-i;p.push(r,-t,0);f.push(0,0,1);m.push(n/a);m.push(1-e/o)}}for(let e=0;e<o;e++)for(let t=0;t<a;t++){const n=t+l*e;const r=t+l*(e+1);const i=t+1+l*(e+1);const s=t+1+l*e;d.push(n,r,s);d.push(r,i,s)}this.setIndex(d);this.setAttribute(\"position\",new Float32BufferAttribute(p,3));this.setAttribute(\"normal\",new Float32BufferAttribute(f,3));this.setAttribute(\"uv\",new Float32BufferAttribute(m,2))}static fromJSON(e){return new PlaneGeometry(e.width,e.height,e.widthSegments,e.heightSegments)}}var Ti=\"#ifdef USE_ALPHAMAP\\n\\tdiffuseColor.a *= texture2D( alphaMap, vUv ).g;\\n#endif\";var Ei=\"#ifdef USE_ALPHAMAP\\n\\tuniform sampler2D alphaMap;\\n#endif\";var Ai=\"#ifdef USE_ALPHATEST\\n\\tif ( diffuseColor.a < alphaTest ) discard;\\n#endif\";var Li=\"#ifdef USE_ALPHATEST\\n\\tuniform float alphaTest;\\n#endif\";var Ci=\"#ifdef USE_AOMAP\\n\\tfloat ambientOcclusion = ( texture2D( aoMap, vUv2 ).r - 1.0 ) * aoMapIntensity + 1.0;\\n\\treflectedLight.indirectDiffuse *= ambientOcclusion;\\n\\t#if defined( USE_ENVMAP ) && defined( STANDARD )\\n\\t\\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\\n\\t\\treflectedLight.indirectSpecular *= computeSpecularOcclusion( dotNV, ambientOcclusion, material.roughness );\\n\\t#endif\\n#endif\";var Ri=\"#ifdef USE_AOMAP\\n\\tuniform sampler2D aoMap;\\n\\tuniform float aoMapIntensity;\\n#endif\";var Pi=\"vec3 transformed = vec3( position );\";var Ii=\"vec3 objectNormal = vec3( normal );\\n#ifdef USE_TANGENT\\n\\tvec3 objectTangent = vec3( tangent.xyz );\\n#endif\";var Di=\"vec3 BRDF_Lambert( const in vec3 diffuseColor ) {\\n\\treturn RECIPROCAL_PI * diffuseColor;\\n}\\nvec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) {\\n\\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\\n\\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\\n}\\nfloat V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\\n\\tfloat a2 = pow2( alpha );\\n\\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\\n\\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\\n\\treturn 0.5 / max( gv + gl, EPSILON );\\n}\\nfloat D_GGX( const in float alpha, const in float dotNH ) {\\n\\tfloat a2 = pow2( alpha );\\n\\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\\n\\treturn RECIPROCAL_PI * a2 / pow2( denom );\\n}\\nvec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in vec3 f0, const in float f90, const in float roughness ) {\\n\\tfloat alpha = pow2( roughness );\\n\\tvec3 halfDir = normalize( lightDir + viewDir );\\n\\tfloat dotNL = saturate( dot( normal, lightDir ) );\\n\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\\tfloat dotNH = saturate( dot( normal, halfDir ) );\\n\\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\\n\\tvec3 F = F_Schlick( f0, f90, dotVH );\\n\\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\\n\\tfloat D = D_GGX( alpha, dotNH );\\n\\treturn F * ( V * D );\\n}\\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\\n\\tconst float LUT_SIZE = 64.0;\\n\\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\\n\\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\\n\\tfloat dotNV = saturate( dot( N, V ) );\\n\\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\\n\\tuv = uv * LUT_SCALE + LUT_BIAS;\\n\\treturn uv;\\n}\\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\\n\\tfloat l = length( f );\\n\\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\\n}\\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\\n\\tfloat x = dot( v1, v2 );\\n\\tfloat y = abs( x );\\n\\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\\n\\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\\n\\tfloat v = a / b;\\n\\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\\n\\treturn cross( v1, v2 ) * theta_sintheta;\\n}\\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\\n\\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\\n\\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\\n\\tvec3 lightNormal = cross( v1, v2 );\\n\\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\\n\\tvec3 T1, T2;\\n\\tT1 = normalize( V - N * dot( V, N ) );\\n\\tT2 = - cross( N, T1 );\\n\\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\\n\\tvec3 coords[ 4 ];\\n\\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\\n\\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\\n\\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\\n\\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\\n\\tcoords[ 0 ] = normalize( coords[ 0 ] );\\n\\tcoords[ 1 ] = normalize( coords[ 1 ] );\\n\\tcoords[ 2 ] = normalize( coords[ 2 ] );\\n\\tcoords[ 3 ] = normalize( coords[ 3 ] );\\n\\tvec3 vectorFormFactor = vec3( 0.0 );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\\n\\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\\n\\treturn vec3( result );\\n}\\nfloat G_BlinnPhong_Implicit( ) {\\n\\treturn 0.25;\\n}\\nfloat D_BlinnPhong( const in float shininess, const in float dotNH ) {\\n\\treturn RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess );\\n}\\nvec3 BRDF_BlinnPhong( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float shininess ) {\\n\\tvec3 halfDir = normalize( lightDir + viewDir );\\n\\tfloat dotNH = saturate( dot( normal, halfDir ) );\\n\\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\\n\\tvec3 F = F_Schlick( specularColor, 1.0, dotVH );\\n\\tfloat G = G_BlinnPhong_Implicit( );\\n\\tfloat D = D_BlinnPhong( shininess, dotNH );\\n\\treturn F * ( G * D );\\n}\\n#if defined( USE_SHEEN )\\nfloat D_Charlie( float roughness, float dotNH ) {\\n\\tfloat alpha = pow2( roughness );\\n\\tfloat invAlpha = 1.0 / alpha;\\n\\tfloat cos2h = dotNH * dotNH;\\n\\tfloat sin2h = max( 1.0 - cos2h, 0.0078125 );\\n\\treturn ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI );\\n}\\nfloat V_Neubelt( float dotNV, float dotNL ) {\\n\\treturn saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) );\\n}\\nvec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) {\\n\\tvec3 halfDir = normalize( lightDir + viewDir );\\n\\tfloat dotNL = saturate( dot( normal, lightDir ) );\\n\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\\tfloat dotNH = saturate( dot( normal, halfDir ) );\\n\\tfloat D = D_Charlie( sheenRoughness, dotNH );\\n\\tfloat V = V_Neubelt( dotNV, dotNL );\\n\\treturn sheenColor * ( D * V );\\n}\\n#endif\";var Bi=\"#ifdef USE_BUMPMAP\\n\\tuniform sampler2D bumpMap;\\n\\tuniform float bumpScale;\\n\\tvec2 dHdxy_fwd() {\\n\\t\\tvec2 dSTdx = dFdx( vUv );\\n\\t\\tvec2 dSTdy = dFdy( vUv );\\n\\t\\tfloat Hll = bumpScale * texture2D( bumpMap, vUv ).x;\\n\\t\\tfloat dBx = bumpScale * texture2D( bumpMap, vUv + dSTdx ).x - Hll;\\n\\t\\tfloat dBy = bumpScale * texture2D( bumpMap, vUv + dSTdy ).x - Hll;\\n\\t\\treturn vec2( dBx, dBy );\\n\\t}\\n\\tvec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy, float faceDirection ) {\\n\\t\\tvec3 vSigmaX = vec3( dFdx( surf_pos.x ), dFdx( surf_pos.y ), dFdx( surf_pos.z ) );\\n\\t\\tvec3 vSigmaY = vec3( dFdy( surf_pos.x ), dFdy( surf_pos.y ), dFdy( surf_pos.z ) );\\n\\t\\tvec3 vN = surf_norm;\\n\\t\\tvec3 R1 = cross( vSigmaY, vN );\\n\\t\\tvec3 R2 = cross( vN, vSigmaX );\\n\\t\\tfloat fDet = dot( vSigmaX, R1 ) * faceDirection;\\n\\t\\tvec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );\\n\\t\\treturn normalize( abs( fDet ) * surf_norm - vGrad );\\n\\t}\\n#endif\";var Vi=\"#if NUM_CLIPPING_PLANES > 0\\n\\tvec4 plane;\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\\n\\t\\tplane = clippingPlanes[ i ];\\n\\t\\tif ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\\n\\t\\tbool clipped = true;\\n\\t\\t#pragma unroll_loop_start\\n\\t\\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\\n\\t\\t\\tplane = clippingPlanes[ i ];\\n\\t\\t\\tclipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;\\n\\t\\t}\\n\\t\\t#pragma unroll_loop_end\\n\\t\\tif ( clipped ) discard;\\n\\t#endif\\n#endif\";var Ni=\"#if NUM_CLIPPING_PLANES > 0\\n\\tvarying vec3 vClipPosition;\\n\\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\\n#endif\";var Ui=\"#if NUM_CLIPPING_PLANES > 0\\n\\tvarying vec3 vClipPosition;\\n#endif\";var zi=\"#if NUM_CLIPPING_PLANES > 0\\n\\tvClipPosition = - mvPosition.xyz;\\n#endif\";var Gi=\"#if defined( USE_COLOR_ALPHA )\\n\\tdiffuseColor *= vColor;\\n#elif defined( USE_COLOR )\\n\\tdiffuseColor.rgb *= vColor;\\n#endif\";var Fi=\"#if defined( USE_COLOR_ALPHA )\\n\\tvarying vec4 vColor;\\n#elif defined( USE_COLOR )\\n\\tvarying vec3 vColor;\\n#endif\";var Oi=\"#if defined( USE_COLOR_ALPHA )\\n\\tvarying vec4 vColor;\\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\\n\\tvarying vec3 vColor;\\n#endif\";var Hi=\"#if defined( USE_COLOR_ALPHA )\\n\\tvColor = vec4( 1.0 );\\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\\n\\tvColor = vec3( 1.0 );\\n#endif\\n#ifdef USE_COLOR\\n\\tvColor *= color;\\n#endif\\n#ifdef USE_INSTANCING_COLOR\\n\\tvColor.xyz *= instanceColor.xyz;\\n#endif\";var ki=\"#define PI 3.141592653589793\\n#define PI2 6.283185307179586\\n#define PI_HALF 1.5707963267948966\\n#define RECIPROCAL_PI 0.3183098861837907\\n#define RECIPROCAL_PI2 0.15915494309189535\\n#define EPSILON 1e-6\\n#ifndef saturate\\n#define saturate( a ) clamp( a, 0.0, 1.0 )\\n#endif\\n#define whiteComplement( a ) ( 1.0 - saturate( a ) )\\nfloat pow2( const in float x ) { return x*x; }\\nfloat pow3( const in float x ) { return x*x*x; }\\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\\nfloat max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); }\\nfloat average( const in vec3 color ) { return dot( color, vec3( 0.3333 ) ); }\\nhighp float rand( const in vec2 uv ) {\\n\\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\\n\\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\\n\\treturn fract( sin( sn ) * c );\\n}\\n#ifdef HIGH_PRECISION\\n\\tfloat precisionSafeLength( vec3 v ) { return length( v ); }\\n#else\\n\\tfloat precisionSafeLength( vec3 v ) {\\n\\t\\tfloat maxComponent = max3( abs( v ) );\\n\\t\\treturn length( v / maxComponent ) * maxComponent;\\n\\t}\\n#endif\\nstruct IncidentLight {\\n\\tvec3 color;\\n\\tvec3 direction;\\n\\tbool visible;\\n};\\nstruct ReflectedLight {\\n\\tvec3 directDiffuse;\\n\\tvec3 directSpecular;\\n\\tvec3 indirectDiffuse;\\n\\tvec3 indirectSpecular;\\n};\\nstruct GeometricContext {\\n\\tvec3 position;\\n\\tvec3 normal;\\n\\tvec3 viewDir;\\n#ifdef USE_CLEARCOAT\\n\\tvec3 clearcoatNormal;\\n#endif\\n};\\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\\n\\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\\n}\\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\\n\\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\\n}\\nmat3 transposeMat3( const in mat3 m ) {\\n\\tmat3 tmp;\\n\\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\\n\\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\\n\\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\\n\\treturn tmp;\\n}\\nfloat linearToRelativeLuminance( const in vec3 color ) {\\n\\tvec3 weights = vec3( 0.2126, 0.7152, 0.0722 );\\n\\treturn dot( weights, color.rgb );\\n}\\nbool isPerspectiveMatrix( mat4 m ) {\\n\\treturn m[ 2 ][ 3 ] == - 1.0;\\n}\\nvec2 equirectUv( in vec3 dir ) {\\n\\tfloat u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;\\n\\tfloat v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\\n\\treturn vec2( u, v );\\n}\";var Wi=\"#ifdef ENVMAP_TYPE_CUBE_UV\\n\\t#define cubeUV_maxMipLevel 8.0\\n\\t#define cubeUV_minMipLevel 4.0\\n\\t#define cubeUV_maxTileSize 256.0\\n\\t#define cubeUV_minTileSize 16.0\\n\\tfloat getFace( vec3 direction ) {\\n\\t\\tvec3 absDirection = abs( direction );\\n\\t\\tfloat face = - 1.0;\\n\\t\\tif ( absDirection.x > absDirection.z ) {\\n\\t\\t\\tif ( absDirection.x > absDirection.y )\\n\\t\\t\\t\\tface = direction.x > 0.0 ? 0.0 : 3.0;\\n\\t\\t\\telse\\n\\t\\t\\t\\tface = direction.y > 0.0 ? 1.0 : 4.0;\\n\\t\\t} else {\\n\\t\\t\\tif ( absDirection.z > absDirection.y )\\n\\t\\t\\t\\tface = direction.z > 0.0 ? 2.0 : 5.0;\\n\\t\\t\\telse\\n\\t\\t\\t\\tface = direction.y > 0.0 ? 1.0 : 4.0;\\n\\t\\t}\\n\\t\\treturn face;\\n\\t}\\n\\tvec2 getUV( vec3 direction, float face ) {\\n\\t\\tvec2 uv;\\n\\t\\tif ( face == 0.0 ) {\\n\\t\\t\\tuv = vec2( direction.z, direction.y ) / abs( direction.x );\\n\\t\\t} else if ( face == 1.0 ) {\\n\\t\\t\\tuv = vec2( - direction.x, - direction.z ) / abs( direction.y );\\n\\t\\t} else if ( face == 2.0 ) {\\n\\t\\t\\tuv = vec2( - direction.x, direction.y ) / abs( direction.z );\\n\\t\\t} else if ( face == 3.0 ) {\\n\\t\\t\\tuv = vec2( - direction.z, direction.y ) / abs( direction.x );\\n\\t\\t} else if ( face == 4.0 ) {\\n\\t\\t\\tuv = vec2( - direction.x, direction.z ) / abs( direction.y );\\n\\t\\t} else {\\n\\t\\t\\tuv = vec2( direction.x, direction.y ) / abs( direction.z );\\n\\t\\t}\\n\\t\\treturn 0.5 * ( uv + 1.0 );\\n\\t}\\n\\tvec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) {\\n\\t\\tfloat face = getFace( direction );\\n\\t\\tfloat filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 );\\n\\t\\tmipInt = max( mipInt, cubeUV_minMipLevel );\\n\\t\\tfloat faceSize = exp2( mipInt );\\n\\t\\tfloat texelSize = 1.0 / ( 3.0 * cubeUV_maxTileSize );\\n\\t\\tvec2 uv = getUV( direction, face ) * ( faceSize - 1.0 ) + 0.5;\\n\\t\\tif ( face > 2.0 ) {\\n\\t\\t\\tuv.y += faceSize;\\n\\t\\t\\tface -= 3.0;\\n\\t\\t}\\n\\t\\tuv.x += face * faceSize;\\n\\t\\tif ( mipInt < cubeUV_maxMipLevel ) {\\n\\t\\t\\tuv.y += 2.0 * cubeUV_maxTileSize;\\n\\t\\t}\\n\\t\\tuv.y += filterInt * 2.0 * cubeUV_minTileSize;\\n\\t\\tuv.x += 3.0 * max( 0.0, cubeUV_maxTileSize - 2.0 * faceSize );\\n\\t\\tuv *= texelSize;\\n\\t\\treturn texture2D( envMap, uv ).rgb;\\n\\t}\\n\\t#define r0 1.0\\n\\t#define v0 0.339\\n\\t#define m0 - 2.0\\n\\t#define r1 0.8\\n\\t#define v1 0.276\\n\\t#define m1 - 1.0\\n\\t#define r4 0.4\\n\\t#define v4 0.046\\n\\t#define m4 2.0\\n\\t#define r5 0.305\\n\\t#define v5 0.016\\n\\t#define m5 3.0\\n\\t#define r6 0.21\\n\\t#define v6 0.0038\\n\\t#define m6 4.0\\n\\tfloat roughnessToMip( float roughness ) {\\n\\t\\tfloat mip = 0.0;\\n\\t\\tif ( roughness >= r1 ) {\\n\\t\\t\\tmip = ( r0 - roughness ) * ( m1 - m0 ) / ( r0 - r1 ) + m0;\\n\\t\\t} else if ( roughness >= r4 ) {\\n\\t\\t\\tmip = ( r1 - roughness ) * ( m4 - m1 ) / ( r1 - r4 ) + m1;\\n\\t\\t} else if ( roughness >= r5 ) {\\n\\t\\t\\tmip = ( r4 - roughness ) * ( m5 - m4 ) / ( r4 - r5 ) + m4;\\n\\t\\t} else if ( roughness >= r6 ) {\\n\\t\\t\\tmip = ( r5 - roughness ) * ( m6 - m5 ) / ( r5 - r6 ) + m5;\\n\\t\\t} else {\\n\\t\\t\\tmip = - 2.0 * log2( 1.16 * roughness );\\t\\t}\\n\\t\\treturn mip;\\n\\t}\\n\\tvec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {\\n\\t\\tfloat mip = clamp( roughnessToMip( roughness ), m0, cubeUV_maxMipLevel );\\n\\t\\tfloat mipF = fract( mip );\\n\\t\\tfloat mipInt = floor( mip );\\n\\t\\tvec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );\\n\\t\\tif ( mipF == 0.0 ) {\\n\\t\\t\\treturn vec4( color0, 1.0 );\\n\\t\\t} else {\\n\\t\\t\\tvec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 );\\n\\t\\t\\treturn vec4( mix( color0, color1, mipF ), 1.0 );\\n\\t\\t}\\n\\t}\\n#endif\";var ji=\"vec3 transformedNormal = objectNormal;\\n#ifdef USE_INSTANCING\\n\\tmat3 m = mat3( instanceMatrix );\\n\\ttransformedNormal /= vec3( dot( m[ 0 ], m[ 0 ] ), dot( m[ 1 ], m[ 1 ] ), dot( m[ 2 ], m[ 2 ] ) );\\n\\ttransformedNormal = m * transformedNormal;\\n#endif\\ntransformedNormal = normalMatrix * transformedNormal;\\n#ifdef FLIP_SIDED\\n\\ttransformedNormal = - transformedNormal;\\n#endif\\n#ifdef USE_TANGENT\\n\\tvec3 transformedTangent = ( modelViewMatrix * vec4( objectTangent, 0.0 ) ).xyz;\\n\\t#ifdef FLIP_SIDED\\n\\t\\ttransformedTangent = - transformedTangent;\\n\\t#endif\\n#endif\";var qi=\"#ifdef USE_DISPLACEMENTMAP\\n\\tuniform sampler2D displacementMap;\\n\\tuniform float displacementScale;\\n\\tuniform float displacementBias;\\n#endif\";var Xi=\"#ifdef USE_DISPLACEMENTMAP\\n\\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, vUv ).x * displacementScale + displacementBias );\\n#endif\";var Ji=\"#ifdef USE_EMISSIVEMAP\\n\\tvec4 emissiveColor = texture2D( emissiveMap, vUv );\\n\\temissiveColor.rgb = emissiveMapTexelToLinear( emissiveColor ).rgb;\\n\\ttotalEmissiveRadiance *= emissiveColor.rgb;\\n#endif\";var Yi=\"#ifdef USE_EMISSIVEMAP\\n\\tuniform sampler2D emissiveMap;\\n#endif\";var Zi=\"gl_FragColor = linearToOutputTexel( gl_FragColor );\";var Qi=\"vec4 LinearToLinear( in vec4 value ) {\\n\\treturn value;\\n}\\nvec4 sRGBToLinear( in vec4 value ) {\\n\\treturn vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.a );\\n}\\nvec4 LinearTosRGB( in vec4 value ) {\\n\\treturn vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a );\\n}\";var Ki=\"#ifdef USE_ENVMAP\\n\\t#ifdef ENV_WORLDPOS\\n\\t\\tvec3 cameraToFrag;\\n\\t\\tif ( isOrthographic ) {\\n\\t\\t\\tcameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\\n\\t\\t} else {\\n\\t\\t\\tcameraToFrag = normalize( vWorldPosition - cameraPosition );\\n\\t\\t}\\n\\t\\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\\n\\t\\t#ifdef ENVMAP_MODE_REFLECTION\\n\\t\\t\\tvec3 reflectVec = reflect( cameraToFrag, worldNormal );\\n\\t\\t#else\\n\\t\\t\\tvec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );\\n\\t\\t#endif\\n\\t#else\\n\\t\\tvec3 reflectVec = vReflect;\\n\\t#endif\\n\\t#ifdef ENVMAP_TYPE_CUBE\\n\\t\\tvec4 envColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\\n\\t\\tenvColor = envMapTexelToLinear( envColor );\\n\\t#elif defined( ENVMAP_TYPE_CUBE_UV )\\n\\t\\tvec4 envColor = textureCubeUV( envMap, reflectVec, 0.0 );\\n\\t#else\\n\\t\\tvec4 envColor = vec4( 0.0 );\\n\\t#endif\\n\\t#ifdef ENVMAP_BLENDING_MULTIPLY\\n\\t\\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\\n\\t#elif defined( ENVMAP_BLENDING_MIX )\\n\\t\\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\\n\\t#elif defined( ENVMAP_BLENDING_ADD )\\n\\t\\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\\n\\t#endif\\n#endif\";var $i=\"#ifdef USE_ENVMAP\\n\\tuniform float envMapIntensity;\\n\\tuniform float flipEnvMap;\\n\\t#ifdef ENVMAP_TYPE_CUBE\\n\\t\\tuniform samplerCube envMap;\\n\\t#else\\n\\t\\tuniform sampler2D envMap;\\n\\t#endif\\n\\t\\n#endif\";var es=\"#ifdef USE_ENVMAP\\n\\tuniform float reflectivity;\\n\\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\\n\\t\\t#define ENV_WORLDPOS\\n\\t#endif\\n\\t#ifdef ENV_WORLDPOS\\n\\t\\tvarying vec3 vWorldPosition;\\n\\t\\tuniform float refractionRatio;\\n\\t#else\\n\\t\\tvarying vec3 vReflect;\\n\\t#endif\\n#endif\";var ts=\"#ifdef USE_ENVMAP\\n\\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) ||defined( PHONG )\\n\\t\\t#define ENV_WORLDPOS\\n\\t#endif\\n\\t#ifdef ENV_WORLDPOS\\n\\t\\t\\n\\t\\tvarying vec3 vWorldPosition;\\n\\t#else\\n\\t\\tvarying vec3 vReflect;\\n\\t\\tuniform float refractionRatio;\\n\\t#endif\\n#endif\";var ns=\"#ifdef USE_ENVMAP\\n\\t#ifdef ENV_WORLDPOS\\n\\t\\tvWorldPosition = worldPosition.xyz;\\n\\t#else\\n\\t\\tvec3 cameraToVertex;\\n\\t\\tif ( isOrthographic ) {\\n\\t\\t\\tcameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\\n\\t\\t} else {\\n\\t\\t\\tcameraToVertex = normalize( worldPosition.xyz - cameraPosition );\\n\\t\\t}\\n\\t\\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\\n\\t\\t#ifdef ENVMAP_MODE_REFLECTION\\n\\t\\t\\tvReflect = reflect( cameraToVertex, worldNormal );\\n\\t\\t#else\\n\\t\\t\\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\\n\\t\\t#endif\\n\\t#endif\\n#endif\";var rs=\"#ifdef USE_FOG\\n\\tvFogDepth = - mvPosition.z;\\n#endif\";var is=\"#ifdef USE_FOG\\n\\tvarying float vFogDepth;\\n#endif\";var ss=\"#ifdef USE_FOG\\n\\t#ifdef FOG_EXP2\\n\\t\\tfloat fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth );\\n\\t#else\\n\\t\\tfloat fogFactor = smoothstep( fogNear, fogFar, vFogDepth );\\n\\t#endif\\n\\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\\n#endif\";var as=\"#ifdef USE_FOG\\n\\tuniform vec3 fogColor;\\n\\tvarying float vFogDepth;\\n\\t#ifdef FOG_EXP2\\n\\t\\tuniform float fogDensity;\\n\\t#else\\n\\t\\tuniform float fogNear;\\n\\t\\tuniform float fogFar;\\n\\t#endif\\n#endif\";var os=\"#ifdef USE_GRADIENTMAP\\n\\tuniform sampler2D gradientMap;\\n#endif\\nvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\\n\\tfloat dotNL = dot( normal, lightDirection );\\n\\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\\n\\t#ifdef USE_GRADIENTMAP\\n\\t\\treturn vec3( texture2D( gradientMap, coord ).r );\\n\\t#else\\n\\t\\treturn ( coord.x < 0.7 ) ? vec3( 0.7 ) : vec3( 1.0 );\\n\\t#endif\\n}\";var ls=\"#ifdef USE_LIGHTMAP\\n\\tvec4 lightMapTexel = texture2D( lightMap, vUv2 );\\n\\tvec3 lightMapIrradiance = lightMapTexelToLinear( lightMapTexel ).rgb * lightMapIntensity;\\n\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\t\\tlightMapIrradiance *= PI;\\n\\t#endif\\n\\treflectedLight.indirectDiffuse += lightMapIrradiance;\\n#endif\";var cs=\"#ifdef USE_LIGHTMAP\\n\\tuniform sampler2D lightMap;\\n\\tuniform float lightMapIntensity;\\n#endif\";var us=\"vec3 diffuse = vec3( 1.0 );\\nGeometricContext geometry;\\ngeometry.position = mvPosition.xyz;\\ngeometry.normal = normalize( transformedNormal );\\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( -mvPosition.xyz );\\nGeometricContext backGeometry;\\nbackGeometry.position = geometry.position;\\nbackGeometry.normal = -geometry.normal;\\nbackGeometry.viewDir = geometry.viewDir;\\nvLightFront = vec3( 0.0 );\\nvIndirectFront = vec3( 0.0 );\\n#ifdef DOUBLE_SIDED\\n\\tvLightBack = vec3( 0.0 );\\n\\tvIndirectBack = vec3( 0.0 );\\n#endif\\nIncidentLight directLight;\\nfloat dotNL;\\nvec3 directLightColor_Diffuse;\\nvIndirectFront += getAmbientLightIrradiance( ambientLightColor );\\nvIndirectFront += getLightProbeIrradiance( lightProbe, geometry.normal );\\n#ifdef DOUBLE_SIDED\\n\\tvIndirectBack += getAmbientLightIrradiance( ambientLightColor );\\n\\tvIndirectBack += getLightProbeIrradiance( lightProbe, backGeometry.normal );\\n#endif\\n#if NUM_POINT_LIGHTS > 0\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\\n\\t\\tgetPointLightInfo( pointLights[ i ], geometry, directLight );\\n\\t\\tdotNL = dot( geometry.normal, directLight.direction );\\n\\t\\tdirectLightColor_Diffuse = directLight.color;\\n\\t\\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\\n\\t\\t#ifdef DOUBLE_SIDED\\n\\t\\t\\tvLightBack += saturate( - dotNL ) * directLightColor_Diffuse;\\n\\t\\t#endif\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if NUM_SPOT_LIGHTS > 0\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\\n\\t\\tgetSpotLightInfo( spotLights[ i ], geometry, directLight );\\n\\t\\tdotNL = dot( geometry.normal, directLight.direction );\\n\\t\\tdirectLightColor_Diffuse = directLight.color;\\n\\t\\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\\n\\t\\t#ifdef DOUBLE_SIDED\\n\\t\\t\\tvLightBack += saturate( - dotNL ) * directLightColor_Diffuse;\\n\\t\\t#endif\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if NUM_DIR_LIGHTS > 0\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\\n\\t\\tgetDirectionalLightInfo( directionalLights[ i ], geometry, directLight );\\n\\t\\tdotNL = dot( geometry.normal, directLight.direction );\\n\\t\\tdirectLightColor_Diffuse = directLight.color;\\n\\t\\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\\n\\t\\t#ifdef DOUBLE_SIDED\\n\\t\\t\\tvLightBack += saturate( - dotNL ) * directLightColor_Diffuse;\\n\\t\\t#endif\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if NUM_HEMI_LIGHTS > 0\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\\n\\t\\tvIndirectFront += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry.normal );\\n\\t\\t#ifdef DOUBLE_SIDED\\n\\t\\t\\tvIndirectBack += getHemisphereLightIrradiance( hemisphereLights[ i ], backGeometry.normal );\\n\\t\\t#endif\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\";var hs=\"uniform bool receiveShadow;\\nuniform vec3 ambientLightColor;\\nuniform vec3 lightProbe[ 9 ];\\nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\\n\\tfloat x = normal.x, y = normal.y, z = normal.z;\\n\\tvec3 result = shCoefficients[ 0 ] * 0.886227;\\n\\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\\n\\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\\n\\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\\n\\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\\n\\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\\n\\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\\n\\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\\n\\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\\n\\treturn result;\\n}\\nvec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) {\\n\\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\\n\\tvec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\\n\\treturn irradiance;\\n}\\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\\n\\tvec3 irradiance = ambientLightColor;\\n\\treturn irradiance;\\n}\\nfloat getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\\n\\t#if defined ( PHYSICALLY_CORRECT_LIGHTS )\\n\\t\\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\\n\\t\\tif ( cutoffDistance > 0.0 ) {\\n\\t\\t\\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\\n\\t\\t}\\n\\t\\treturn distanceFalloff;\\n\\t#else\\n\\t\\tif ( cutoffDistance > 0.0 && decayExponent > 0.0 ) {\\n\\t\\t\\treturn pow( saturate( - lightDistance / cutoffDistance + 1.0 ), decayExponent );\\n\\t\\t}\\n\\t\\treturn 1.0;\\n\\t#endif\\n}\\nfloat getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) {\\n\\treturn smoothstep( coneCosine, penumbraCosine, angleCosine );\\n}\\n#if NUM_DIR_LIGHTS > 0\\n\\tstruct DirectionalLight {\\n\\t\\tvec3 direction;\\n\\t\\tvec3 color;\\n\\t};\\n\\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\\n\\tvoid getDirectionalLightInfo( const in DirectionalLight directionalLight, const in GeometricContext geometry, out IncidentLight light ) {\\n\\t\\tlight.color = directionalLight.color;\\n\\t\\tlight.direction = directionalLight.direction;\\n\\t\\tlight.visible = true;\\n\\t}\\n#endif\\n#if NUM_POINT_LIGHTS > 0\\n\\tstruct PointLight {\\n\\t\\tvec3 position;\\n\\t\\tvec3 color;\\n\\t\\tfloat distance;\\n\\t\\tfloat decay;\\n\\t};\\n\\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\\n\\tvoid getPointLightInfo( const in PointLight pointLight, const in GeometricContext geometry, out IncidentLight light ) {\\n\\t\\tvec3 lVector = pointLight.position - geometry.position;\\n\\t\\tlight.direction = normalize( lVector );\\n\\t\\tfloat lightDistance = length( lVector );\\n\\t\\tlight.color = pointLight.color;\\n\\t\\tlight.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay );\\n\\t\\tlight.visible = ( light.color != vec3( 0.0 ) );\\n\\t}\\n#endif\\n#if NUM_SPOT_LIGHTS > 0\\n\\tstruct SpotLight {\\n\\t\\tvec3 position;\\n\\t\\tvec3 direction;\\n\\t\\tvec3 color;\\n\\t\\tfloat distance;\\n\\t\\tfloat decay;\\n\\t\\tfloat coneCos;\\n\\t\\tfloat penumbraCos;\\n\\t};\\n\\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\\n\\tvoid getSpotLightInfo( const in SpotLight spotLight, const in GeometricContext geometry, out IncidentLight light ) {\\n\\t\\tvec3 lVector = spotLight.position - geometry.position;\\n\\t\\tlight.direction = normalize( lVector );\\n\\t\\tfloat angleCos = dot( light.direction, spotLight.direction );\\n\\t\\tfloat spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos );\\n\\t\\tif ( spotAttenuation > 0.0 ) {\\n\\t\\t\\tfloat lightDistance = length( lVector );\\n\\t\\t\\tlight.color = spotLight.color * spotAttenuation;\\n\\t\\t\\tlight.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay );\\n\\t\\t\\tlight.visible = ( light.color != vec3( 0.0 ) );\\n\\t\\t} else {\\n\\t\\t\\tlight.color = vec3( 0.0 );\\n\\t\\t\\tlight.visible = false;\\n\\t\\t}\\n\\t}\\n#endif\\n#if NUM_RECT_AREA_LIGHTS > 0\\n\\tstruct RectAreaLight {\\n\\t\\tvec3 color;\\n\\t\\tvec3 position;\\n\\t\\tvec3 halfWidth;\\n\\t\\tvec3 halfHeight;\\n\\t};\\n\\tuniform sampler2D ltc_1;\\tuniform sampler2D ltc_2;\\n\\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\\n#endif\\n#if NUM_HEMI_LIGHTS > 0\\n\\tstruct HemisphereLight {\\n\\t\\tvec3 direction;\\n\\t\\tvec3 skyColor;\\n\\t\\tvec3 groundColor;\\n\\t};\\n\\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\\n\\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) {\\n\\t\\tfloat dotNL = dot( normal, hemiLight.direction );\\n\\t\\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\\n\\t\\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\\n\\t\\treturn irradiance;\\n\\t}\\n#endif\";var ds=\"#if defined( USE_ENVMAP )\\n\\t#ifdef ENVMAP_MODE_REFRACTION\\n\\t\\tuniform float refractionRatio;\\n\\t#endif\\n\\tvec3 getIBLIrradiance( const in vec3 normal ) {\\n\\t\\t#if defined( ENVMAP_TYPE_CUBE_UV )\\n\\t\\t\\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\\n\\t\\t\\tvec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 );\\n\\t\\t\\treturn PI * envMapColor.rgb * envMapIntensity;\\n\\t\\t#else\\n\\t\\t\\treturn vec3( 0.0 );\\n\\t\\t#endif\\n\\t}\\n\\tvec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {\\n\\t\\t#if defined( ENVMAP_TYPE_CUBE_UV )\\n\\t\\t\\tvec3 reflectVec;\\n\\t\\t\\t#ifdef ENVMAP_MODE_REFLECTION\\n\\t\\t\\t\\treflectVec = reflect( - viewDir, normal );\\n\\t\\t\\t\\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\\n\\t\\t\\t#else\\n\\t\\t\\t\\treflectVec = refract( - viewDir, normal, refractionRatio );\\n\\t\\t\\t#endif\\n\\t\\t\\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\\n\\t\\t\\tvec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness );\\n\\t\\t\\treturn envMapColor.rgb * envMapIntensity;\\n\\t\\t#else\\n\\t\\t\\treturn vec3( 0.0 );\\n\\t\\t#endif\\n\\t}\\n#endif\";var ps=\"ToonMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb;\";var fs=\"varying vec3 vViewPosition;\\nstruct ToonMaterial {\\n\\tvec3 diffuseColor;\\n};\\nvoid RE_Direct_Toon( const in IncidentLight directLight, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\\n\\tvec3 irradiance = getGradientIrradiance( geometry.normal, directLight.direction ) * directLight.color;\\n\\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\nvoid RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\\n\\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\n#define RE_Direct\\t\\t\\t\\tRE_Direct_Toon\\n#define RE_IndirectDiffuse\\t\\tRE_IndirectDiffuse_Toon\\n#define Material_LightProbeLOD( material )\\t(0)\";var ms=\"BlinnPhongMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb;\\nmaterial.specularColor = specular;\\nmaterial.specularShininess = shininess;\\nmaterial.specularStrength = specularStrength;\";var gs=\"varying vec3 vViewPosition;\\nstruct BlinnPhongMaterial {\\n\\tvec3 diffuseColor;\\n\\tvec3 specularColor;\\n\\tfloat specularShininess;\\n\\tfloat specularStrength;\\n};\\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\\n\\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\\n\\tvec3 irradiance = dotNL * directLight.color;\\n\\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n\\treflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularShininess ) * material.specularStrength;\\n}\\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\\n\\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\n#define RE_Direct\\t\\t\\t\\tRE_Direct_BlinnPhong\\n#define RE_IndirectDiffuse\\t\\tRE_IndirectDiffuse_BlinnPhong\\n#define Material_LightProbeLOD( material )\\t(0)\";var ys=\"PhysicalMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\\nvec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );\\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\\nmaterial.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness;\\nmaterial.roughness = min( material.roughness, 1.0 );\\n#ifdef IOR\\n\\t#ifdef SPECULAR\\n\\t\\tfloat specularIntensityFactor = specularIntensity;\\n\\t\\tvec3 specularColorFactor = specularColor;\\n\\t\\t#ifdef USE_SPECULARINTENSITYMAP\\n\\t\\t\\tspecularIntensityFactor *= texture2D( specularIntensityMap, vUv ).a;\\n\\t\\t#endif\\n\\t\\t#ifdef USE_SPECULARCOLORMAP\\n\\t\\t\\tspecularColorFactor *= specularColorMapTexelToLinear( texture2D( specularColorMap, vUv ) ).rgb;\\n\\t\\t#endif\\n\\t\\tmaterial.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor );\\n\\t#else\\n\\t\\tfloat specularIntensityFactor = 1.0;\\n\\t\\tvec3 specularColorFactor = vec3( 1.0 );\\n\\t\\tmaterial.specularF90 = 1.0;\\n\\t#endif\\n\\tmaterial.specularColor = mix( min( pow2( ( ior - 1.0 ) / ( ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor );\\n#else\\n\\tmaterial.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor );\\n\\tmaterial.specularF90 = 1.0;\\n#endif\\n#ifdef USE_CLEARCOAT\\n\\tmaterial.clearcoat = clearcoat;\\n\\tmaterial.clearcoatRoughness = clearcoatRoughness;\\n\\tmaterial.clearcoatF0 = vec3( 0.04 );\\n\\tmaterial.clearcoatF90 = 1.0;\\n\\t#ifdef USE_CLEARCOATMAP\\n\\t\\tmaterial.clearcoat *= texture2D( clearcoatMap, vUv ).x;\\n\\t#endif\\n\\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\n\\t\\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vUv ).y;\\n\\t#endif\\n\\tmaterial.clearcoat = saturate( material.clearcoat );\\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\\n\\tmaterial.clearcoatRoughness += geometryRoughness;\\n\\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\\n#endif\\n#ifdef USE_SHEEN\\n\\tmaterial.sheenColor = sheenColor;\\n\\t#ifdef USE_SHEENCOLORMAP\\n\\t\\tmaterial.sheenColor *= sheenColorMapTexelToLinear( texture2D( sheenColorMap, vUv ) ).rgb;\\n\\t#endif\\n\\tmaterial.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );\\n\\t#ifdef USE_SHEENROUGHNESSMAP\\n\\t\\tmaterial.sheenRoughness *= texture2D( sheenRoughnessMap, vUv ).a;\\n\\t#endif\\n#endif\";var vs=\"struct PhysicalMaterial {\\n\\tvec3 diffuseColor;\\n\\tfloat roughness;\\n\\tvec3 specularColor;\\n\\tfloat specularF90;\\n\\t#ifdef USE_CLEARCOAT\\n\\t\\tfloat clearcoat;\\n\\t\\tfloat clearcoatRoughness;\\n\\t\\tvec3 clearcoatF0;\\n\\t\\tfloat clearcoatF90;\\n\\t#endif\\n\\t#ifdef USE_SHEEN\\n\\t\\tvec3 sheenColor;\\n\\t\\tfloat sheenRoughness;\\n\\t#endif\\n};\\nvec3 clearcoatSpecular = vec3( 0.0 );\\nvec3 sheenSpecular = vec3( 0.0 );\\nfloat IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness) {\\n\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\\tfloat r2 = roughness * roughness;\\n\\tfloat a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95;\\n\\tfloat b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72;\\n\\tfloat DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) );\\n\\treturn saturate( DG * RECIPROCAL_PI );\\n}\\nvec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\\n\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\\n\\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\\n\\tvec4 r = roughness * c0 + c1;\\n\\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\\n\\tvec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw;\\n\\treturn fab;\\n}\\nvec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) {\\n\\tvec2 fab = DFGApprox( normal, viewDir, roughness );\\n\\treturn specularColor * fab.x + specularF90 * fab.y;\\n}\\nvoid computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\\n\\tvec2 fab = DFGApprox( normal, viewDir, roughness );\\n\\tvec3 FssEss = specularColor * fab.x + specularF90 * fab.y;\\n\\tfloat Ess = fab.x + fab.y;\\n\\tfloat Ems = 1.0 - Ess;\\n\\tvec3 Favg = specularColor + ( 1.0 - specularColor ) * 0.047619;\\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\\n\\tsingleScatter += FssEss;\\n\\tmultiScatter += Fms * Ems;\\n}\\n#if NUM_RECT_AREA_LIGHTS > 0\\n\\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\\t\\tvec3 normal = geometry.normal;\\n\\t\\tvec3 viewDir = geometry.viewDir;\\n\\t\\tvec3 position = geometry.position;\\n\\t\\tvec3 lightPos = rectAreaLight.position;\\n\\t\\tvec3 halfWidth = rectAreaLight.halfWidth;\\n\\t\\tvec3 halfHeight = rectAreaLight.halfHeight;\\n\\t\\tvec3 lightColor = rectAreaLight.color;\\n\\t\\tfloat roughness = material.roughness;\\n\\t\\tvec3 rectCoords[ 4 ];\\n\\t\\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight;\\t\\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\\n\\t\\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\\n\\t\\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\\n\\t\\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\\n\\t\\tvec4 t1 = texture2D( ltc_1, uv );\\n\\t\\tvec4 t2 = texture2D( ltc_2, uv );\\n\\t\\tmat3 mInv = mat3(\\n\\t\\t\\tvec3( t1.x, 0, t1.y ),\\n\\t\\t\\tvec3(    0, 1,    0 ),\\n\\t\\t\\tvec3( t1.z, 0, t1.w )\\n\\t\\t);\\n\\t\\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\\n\\t\\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\\n\\t\\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\\n\\t}\\n#endif\\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\\n\\tvec3 irradiance = dotNL * directLight.color;\\n\\t#ifdef USE_CLEARCOAT\\n\\t\\tfloat dotNLcc = saturate( dot( geometry.clearcoatNormal, directLight.direction ) );\\n\\t\\tvec3 ccIrradiance = dotNLcc * directLight.color;\\n\\t\\tclearcoatSpecular += ccIrradiance * BRDF_GGX( directLight.direction, geometry.viewDir, geometry.clearcoatNormal, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\\n\\t#endif\\n\\t#ifdef USE_SHEEN\\n\\t\\tsheenSpecular += irradiance * BRDF_Sheen( directLight.direction, geometry.viewDir, geometry.normal, material.sheenColor, material.sheenRoughness );\\n\\t#endif\\n\\treflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularF90, material.roughness );\\n\\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\\n\\t#ifdef USE_CLEARCOAT\\n\\t\\tclearcoatSpecular += clearcoatRadiance * EnvironmentBRDF( geometry.clearcoatNormal, geometry.viewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\\n\\t#endif\\n\\t#ifdef USE_SHEEN\\n\\t\\tsheenSpecular += irradiance * material.sheenColor * IBLSheenBRDF( geometry.normal, geometry.viewDir, material.sheenRoughness );\\n\\t#endif\\n\\tvec3 singleScattering = vec3( 0.0 );\\n\\tvec3 multiScattering = vec3( 0.0 );\\n\\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\\n\\tcomputeMultiscattering( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering );\\n\\tvec3 diffuse = material.diffuseColor * ( 1.0 - ( singleScattering + multiScattering ) );\\n\\treflectedLight.indirectSpecular += radiance * singleScattering;\\n\\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\\n\\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\\n}\\n#define RE_Direct\\t\\t\\t\\tRE_Direct_Physical\\n#define RE_Direct_RectArea\\t\\tRE_Direct_RectArea_Physical\\n#define RE_IndirectDiffuse\\t\\tRE_IndirectDiffuse_Physical\\n#define RE_IndirectSpecular\\t\\tRE_IndirectSpecular_Physical\\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\\n\\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\\n}\";var xs=\"\\nGeometricContext geometry;\\ngeometry.position = - vViewPosition;\\ngeometry.normal = normal;\\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\\n#ifdef USE_CLEARCOAT\\n\\tgeometry.clearcoatNormal = clearcoatNormal;\\n#endif\\nIncidentLight directLight;\\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\\n\\tPointLight pointLight;\\n\\t#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\\n\\tPointLightShadow pointLightShadow;\\n\\t#endif\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\\n\\t\\tpointLight = pointLights[ i ];\\n\\t\\tgetPointLightInfo( pointLight, geometry, directLight );\\n\\t\\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\\n\\t\\tpointLightShadow = pointLightShadows[ i ];\\n\\t\\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\\n\\t\\t#endif\\n\\t\\tRE_Direct( directLight, geometry, material, reflectedLight );\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\\n\\tSpotLight spotLight;\\n\\t#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\\n\\tSpotLightShadow spotLightShadow;\\n\\t#endif\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\\n\\t\\tspotLight = spotLights[ i ];\\n\\t\\tgetSpotLightInfo( spotLight, geometry, directLight );\\n\\t\\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\\n\\t\\tspotLightShadow = spotLightShadows[ i ];\\n\\t\\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\\n\\t\\t#endif\\n\\t\\tRE_Direct( directLight, geometry, material, reflectedLight );\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\\n\\tDirectionalLight directionalLight;\\n\\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\\n\\tDirectionalLightShadow directionalLightShadow;\\n\\t#endif\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\\n\\t\\tdirectionalLight = directionalLights[ i ];\\n\\t\\tgetDirectionalLightInfo( directionalLight, geometry, directLight );\\n\\t\\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\\n\\t\\tdirectionalLightShadow = directionalLightShadows[ i ];\\n\\t\\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\\n\\t\\t#endif\\n\\t\\tRE_Direct( directLight, geometry, material, reflectedLight );\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\\n\\tRectAreaLight rectAreaLight;\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\\n\\t\\trectAreaLight = rectAreaLights[ i ];\\n\\t\\tRE_Direct_RectArea( rectAreaLight, geometry, material, reflectedLight );\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if defined( RE_IndirectDiffuse )\\n\\tvec3 iblIrradiance = vec3( 0.0 );\\n\\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\\n\\tirradiance += getLightProbeIrradiance( lightProbe, geometry.normal );\\n\\t#if ( NUM_HEMI_LIGHTS > 0 )\\n\\t\\t#pragma unroll_loop_start\\n\\t\\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\\n\\t\\t\\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry.normal );\\n\\t\\t}\\n\\t\\t#pragma unroll_loop_end\\n\\t#endif\\n#endif\\n#if defined( RE_IndirectSpecular )\\n\\tvec3 radiance = vec3( 0.0 );\\n\\tvec3 clearcoatRadiance = vec3( 0.0 );\\n#endif\";var bs=\"#if defined( RE_IndirectDiffuse )\\n\\t#ifdef USE_LIGHTMAP\\n\\t\\tvec4 lightMapTexel = texture2D( lightMap, vUv2 );\\n\\t\\tvec3 lightMapIrradiance = lightMapTexelToLinear( lightMapTexel ).rgb * lightMapIntensity;\\n\\t\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\t\\t\\tlightMapIrradiance *= PI;\\n\\t\\t#endif\\n\\t\\tirradiance += lightMapIrradiance;\\n\\t#endif\\n\\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\\n\\t\\tiblIrradiance += getIBLIrradiance( geometry.normal );\\n\\t#endif\\n#endif\\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\\n\\tradiance += getIBLRadiance( geometry.viewDir, geometry.normal, material.roughness );\\n\\t#ifdef USE_CLEARCOAT\\n\\t\\tclearcoatRadiance += getIBLRadiance( geometry.viewDir, geometry.clearcoatNormal, material.clearcoatRoughness );\\n\\t#endif\\n#endif\";var _s=\"#if defined( RE_IndirectDiffuse )\\n\\tRE_IndirectDiffuse( irradiance, geometry, material, reflectedLight );\\n#endif\\n#if defined( RE_IndirectSpecular )\\n\\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometry, material, reflectedLight );\\n#endif\";var Ms=\"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\\n\\tgl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\\n#endif\";var ws=\"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\\n\\tuniform float logDepthBufFC;\\n\\tvarying float vFragDepth;\\n\\tvarying float vIsPerspective;\\n#endif\";var Ss=\"#ifdef USE_LOGDEPTHBUF\\n\\t#ifdef USE_LOGDEPTHBUF_EXT\\n\\t\\tvarying float vFragDepth;\\n\\t\\tvarying float vIsPerspective;\\n\\t#else\\n\\t\\tuniform float logDepthBufFC;\\n\\t#endif\\n#endif\";var Ts=\"#ifdef USE_LOGDEPTHBUF\\n\\t#ifdef USE_LOGDEPTHBUF_EXT\\n\\t\\tvFragDepth = 1.0 + gl_Position.w;\\n\\t\\tvIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );\\n\\t#else\\n\\t\\tif ( isPerspectiveMatrix( projectionMatrix ) ) {\\n\\t\\t\\tgl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0;\\n\\t\\t\\tgl_Position.z *= gl_Position.w;\\n\\t\\t}\\n\\t#endif\\n#endif\";var Es=\"#ifdef USE_MAP\\n\\tvec4 texelColor = texture2D( map, vUv );\\n\\ttexelColor = mapTexelToLinear( texelColor );\\n\\tdiffuseColor *= texelColor;\\n#endif\";var As=\"#ifdef USE_MAP\\n\\tuniform sampler2D map;\\n#endif\";var Ls=\"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\\n\\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\\n#endif\\n#ifdef USE_MAP\\n\\tvec4 mapTexel = texture2D( map, uv );\\n\\tdiffuseColor *= mapTexelToLinear( mapTexel );\\n#endif\\n#ifdef USE_ALPHAMAP\\n\\tdiffuseColor.a *= texture2D( alphaMap, uv ).g;\\n#endif\";var Cs=\"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\\n\\tuniform mat3 uvTransform;\\n#endif\\n#ifdef USE_MAP\\n\\tuniform sampler2D map;\\n#endif\\n#ifdef USE_ALPHAMAP\\n\\tuniform sampler2D alphaMap;\\n#endif\";var Rs=\"float metalnessFactor = metalness;\\n#ifdef USE_METALNESSMAP\\n\\tvec4 texelMetalness = texture2D( metalnessMap, vUv );\\n\\tmetalnessFactor *= texelMetalness.b;\\n#endif\";var Ps=\"#ifdef USE_METALNESSMAP\\n\\tuniform sampler2D metalnessMap;\\n#endif\";var Is=\"#ifdef USE_MORPHNORMALS\\n\\tobjectNormal *= morphTargetBaseInfluence;\\n\\t#ifdef MORPHTARGETS_TEXTURE\\n\\t\\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\\n\\t\\t\\tif ( morphTargetInfluences[ i ] > 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1, 2 ) * morphTargetInfluences[ i ];\\n\\t\\t}\\n\\t#else\\n\\t\\tobjectNormal += morphNormal0 * morphTargetInfluences[ 0 ];\\n\\t\\tobjectNormal += morphNormal1 * morphTargetInfluences[ 1 ];\\n\\t\\tobjectNormal += morphNormal2 * morphTargetInfluences[ 2 ];\\n\\t\\tobjectNormal += morphNormal3 * morphTargetInfluences[ 3 ];\\n\\t#endif\\n#endif\";var Ds=\"#ifdef USE_MORPHTARGETS\\n\\tuniform float morphTargetBaseInfluence;\\n\\t#ifdef MORPHTARGETS_TEXTURE\\n\\t\\tuniform float morphTargetInfluences[ MORPHTARGETS_COUNT ];\\n\\t\\tuniform sampler2DArray morphTargetsTexture;\\n\\t\\tuniform vec2 morphTargetsTextureSize;\\n\\t\\tvec3 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset, const in int stride ) {\\n\\t\\t\\tfloat texelIndex = float( vertexIndex * stride + offset );\\n\\t\\t\\tfloat y = floor( texelIndex / morphTargetsTextureSize.x );\\n\\t\\t\\tfloat x = texelIndex - y * morphTargetsTextureSize.x;\\n\\t\\t\\tvec3 morphUV = vec3( ( x + 0.5 ) / morphTargetsTextureSize.x, y / morphTargetsTextureSize.y, morphTargetIndex );\\n\\t\\t\\treturn texture( morphTargetsTexture, morphUV ).xyz;\\n\\t\\t}\\n\\t#else\\n\\t\\t#ifndef USE_MORPHNORMALS\\n\\t\\t\\tuniform float morphTargetInfluences[ 8 ];\\n\\t\\t#else\\n\\t\\t\\tuniform float morphTargetInfluences[ 4 ];\\n\\t\\t#endif\\n\\t#endif\\n#endif\";var Bs=\"#ifdef USE_MORPHTARGETS\\n\\ttransformed *= morphTargetBaseInfluence;\\n\\t#ifdef MORPHTARGETS_TEXTURE\\n\\t\\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\\n\\t\\t\\t#ifndef USE_MORPHNORMALS\\n\\t\\t\\t\\tif ( morphTargetInfluences[ i ] > 0.0 ) transformed += getMorph( gl_VertexID, i, 0, 1 ) * morphTargetInfluences[ i ];\\n\\t\\t\\t#else\\n\\t\\t\\t\\tif ( morphTargetInfluences[ i ] > 0.0 ) transformed += getMorph( gl_VertexID, i, 0, 2 ) * morphTargetInfluences[ i ];\\n\\t\\t\\t#endif\\n\\t\\t}\\n\\t#else\\n\\t\\ttransformed += morphTarget0 * morphTargetInfluences[ 0 ];\\n\\t\\ttransformed += morphTarget1 * morphTargetInfluences[ 1 ];\\n\\t\\ttransformed += morphTarget2 * morphTargetInfluences[ 2 ];\\n\\t\\ttransformed += morphTarget3 * morphTargetInfluences[ 3 ];\\n\\t\\t#ifndef USE_MORPHNORMALS\\n\\t\\t\\ttransformed += morphTarget4 * morphTargetInfluences[ 4 ];\\n\\t\\t\\ttransformed += morphTarget5 * morphTargetInfluences[ 5 ];\\n\\t\\t\\ttransformed += morphTarget6 * morphTargetInfluences[ 6 ];\\n\\t\\t\\ttransformed += morphTarget7 * morphTargetInfluences[ 7 ];\\n\\t\\t#endif\\n\\t#endif\\n#endif\";var Vs=\"float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;\\n#ifdef FLAT_SHADED\\n\\tvec3 fdx = vec3( dFdx( vViewPosition.x ), dFdx( vViewPosition.y ), dFdx( vViewPosition.z ) );\\n\\tvec3 fdy = vec3( dFdy( vViewPosition.x ), dFdy( vViewPosition.y ), dFdy( vViewPosition.z ) );\\n\\tvec3 normal = normalize( cross( fdx, fdy ) );\\n#else\\n\\tvec3 normal = normalize( vNormal );\\n\\t#ifdef DOUBLE_SIDED\\n\\t\\tnormal = normal * faceDirection;\\n\\t#endif\\n\\t#ifdef USE_TANGENT\\n\\t\\tvec3 tangent = normalize( vTangent );\\n\\t\\tvec3 bitangent = normalize( vBitangent );\\n\\t\\t#ifdef DOUBLE_SIDED\\n\\t\\t\\ttangent = tangent * faceDirection;\\n\\t\\t\\tbitangent = bitangent * faceDirection;\\n\\t\\t#endif\\n\\t\\t#if defined( TANGENTSPACE_NORMALMAP ) || defined( USE_CLEARCOAT_NORMALMAP )\\n\\t\\t\\tmat3 vTBN = mat3( tangent, bitangent, normal );\\n\\t\\t#endif\\n\\t#endif\\n#endif\\nvec3 geometryNormal = normal;\";var Ns=\"#ifdef OBJECTSPACE_NORMALMAP\\n\\tnormal = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\\n\\t#ifdef FLIP_SIDED\\n\\t\\tnormal = - normal;\\n\\t#endif\\n\\t#ifdef DOUBLE_SIDED\\n\\t\\tnormal = normal * faceDirection;\\n\\t#endif\\n\\tnormal = normalize( normalMatrix * normal );\\n#elif defined( TANGENTSPACE_NORMALMAP )\\n\\tvec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\\n\\tmapN.xy *= normalScale;\\n\\t#ifdef USE_TANGENT\\n\\t\\tnormal = normalize( vTBN * mapN );\\n\\t#else\\n\\t\\tnormal = perturbNormal2Arb( - vViewPosition, normal, mapN, faceDirection );\\n\\t#endif\\n#elif defined( USE_BUMPMAP )\\n\\tnormal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection );\\n#endif\";var Us=\"#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n\\t#ifdef USE_TANGENT\\n\\t\\tvarying vec3 vTangent;\\n\\t\\tvarying vec3 vBitangent;\\n\\t#endif\\n#endif\";var zs=\"#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n\\t#ifdef USE_TANGENT\\n\\t\\tvarying vec3 vTangent;\\n\\t\\tvarying vec3 vBitangent;\\n\\t#endif\\n#endif\";var Gs=\"#ifndef FLAT_SHADED\\n\\tvNormal = normalize( transformedNormal );\\n\\t#ifdef USE_TANGENT\\n\\t\\tvTangent = normalize( transformedTangent );\\n\\t\\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\\n\\t#endif\\n#endif\";var Fs=\"#ifdef USE_NORMALMAP\\n\\tuniform sampler2D normalMap;\\n\\tuniform vec2 normalScale;\\n#endif\\n#ifdef OBJECTSPACE_NORMALMAP\\n\\tuniform mat3 normalMatrix;\\n#endif\\n#if ! defined ( USE_TANGENT ) && ( defined ( TANGENTSPACE_NORMALMAP ) || defined ( USE_CLEARCOAT_NORMALMAP ) )\\n\\tvec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm, vec3 mapN, float faceDirection ) {\\n\\t\\tvec3 q0 = vec3( dFdx( eye_pos.x ), dFdx( eye_pos.y ), dFdx( eye_pos.z ) );\\n\\t\\tvec3 q1 = vec3( dFdy( eye_pos.x ), dFdy( eye_pos.y ), dFdy( eye_pos.z ) );\\n\\t\\tvec2 st0 = dFdx( vUv.st );\\n\\t\\tvec2 st1 = dFdy( vUv.st );\\n\\t\\tvec3 N = surf_norm;\\n\\t\\tvec3 q1perp = cross( q1, N );\\n\\t\\tvec3 q0perp = cross( N, q0 );\\n\\t\\tvec3 T = q1perp * st0.x + q0perp * st1.x;\\n\\t\\tvec3 B = q1perp * st0.y + q0perp * st1.y;\\n\\t\\tfloat det = max( dot( T, T ), dot( B, B ) );\\n\\t\\tfloat scale = ( det == 0.0 ) ? 0.0 : faceDirection * inversesqrt( det );\\n\\t\\treturn normalize( T * ( mapN.x * scale ) + B * ( mapN.y * scale ) + N * mapN.z );\\n\\t}\\n#endif\";var Os=\"#ifdef USE_CLEARCOAT\\n\\tvec3 clearcoatNormal = geometryNormal;\\n#endif\";var Hs=\"#ifdef USE_CLEARCOAT_NORMALMAP\\n\\tvec3 clearcoatMapN = texture2D( clearcoatNormalMap, vUv ).xyz * 2.0 - 1.0;\\n\\tclearcoatMapN.xy *= clearcoatNormalScale;\\n\\t#ifdef USE_TANGENT\\n\\t\\tclearcoatNormal = normalize( vTBN * clearcoatMapN );\\n\\t#else\\n\\t\\tclearcoatNormal = perturbNormal2Arb( - vViewPosition, clearcoatNormal, clearcoatMapN, faceDirection );\\n\\t#endif\\n#endif\";var ks=\"#ifdef USE_CLEARCOATMAP\\n\\tuniform sampler2D clearcoatMap;\\n#endif\\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\n\\tuniform sampler2D clearcoatRoughnessMap;\\n#endif\\n#ifdef USE_CLEARCOAT_NORMALMAP\\n\\tuniform sampler2D clearcoatNormalMap;\\n\\tuniform vec2 clearcoatNormalScale;\\n#endif\";var Ws=\"#ifdef OPAQUE\\ndiffuseColor.a = 1.0;\\n#endif\\n#ifdef USE_TRANSMISSION\\ndiffuseColor.a *= transmissionAlpha + 0.1;\\n#endif\\ngl_FragColor = vec4( outgoingLight, diffuseColor.a );\";var js=\"vec3 packNormalToRGB( const in vec3 normal ) {\\n\\treturn normalize( normal ) * 0.5 + 0.5;\\n}\\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\\n\\treturn 2.0 * rgb.xyz - 1.0;\\n}\\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;\\nconst vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\\nconst vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. );\\nconst float ShiftRight8 = 1. / 256.;\\nvec4 packDepthToRGBA( const in float v ) {\\n\\tvec4 r = vec4( fract( v * PackFactors ), v );\\n\\tr.yzw -= r.xyz * ShiftRight8;\\treturn r * PackUpscale;\\n}\\nfloat unpackRGBAToDepth( const in vec4 v ) {\\n\\treturn dot( v, UnpackFactors );\\n}\\nvec4 pack2HalfToRGBA( vec2 v ) {\\n\\tvec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) );\\n\\treturn vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w );\\n}\\nvec2 unpackRGBATo2Half( vec4 v ) {\\n\\treturn vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );\\n}\\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\\n\\treturn ( viewZ + near ) / ( near - far );\\n}\\nfloat orthographicDepthToViewZ( const in float linearClipZ, const in float near, const in float far ) {\\n\\treturn linearClipZ * ( near - far ) - near;\\n}\\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\\n\\treturn ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ );\\n}\\nfloat perspectiveDepthToViewZ( const in float invClipZ, const in float near, const in float far ) {\\n\\treturn ( near * far ) / ( ( far - near ) * invClipZ - far );\\n}\";var qs=\"#ifdef PREMULTIPLIED_ALPHA\\n\\tgl_FragColor.rgb *= gl_FragColor.a;\\n#endif\";var Xs=\"vec4 mvPosition = vec4( transformed, 1.0 );\\n#ifdef USE_INSTANCING\\n\\tmvPosition = instanceMatrix * mvPosition;\\n#endif\\nmvPosition = modelViewMatrix * mvPosition;\\ngl_Position = projectionMatrix * mvPosition;\";var Js=\"#ifdef DITHERING\\n\\tgl_FragColor.rgb = dithering( gl_FragColor.rgb );\\n#endif\";var Ys=\"#ifdef DITHERING\\n\\tvec3 dithering( vec3 color ) {\\n\\t\\tfloat grid_position = rand( gl_FragCoord.xy );\\n\\t\\tvec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\\n\\t\\tdither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\\n\\t\\treturn color + dither_shift_RGB;\\n\\t}\\n#endif\";var Zs=\"float roughnessFactor = roughness;\\n#ifdef USE_ROUGHNESSMAP\\n\\tvec4 texelRoughness = texture2D( roughnessMap, vUv );\\n\\troughnessFactor *= texelRoughness.g;\\n#endif\";var Qs=\"#ifdef USE_ROUGHNESSMAP\\n\\tuniform sampler2D roughnessMap;\\n#endif\";var Ks=\"#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\\t\\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t\\tstruct DirectionalLightShadow {\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t};\\n\\t\\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\n\\t\\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t\\tstruct SpotLightShadow {\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t};\\n\\t\\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t#endif\\n\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\\t\\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t\\tstruct PointLightShadow {\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t\\tfloat shadowCameraNear;\\n\\t\\t\\tfloat shadowCameraFar;\\n\\t\\t};\\n\\t\\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t#endif\\n\\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\\n\\t\\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\\n\\t}\\n\\tvec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {\\n\\t\\treturn unpackRGBATo2Half( texture2D( shadow, uv ) );\\n\\t}\\n\\tfloat VSMShadow (sampler2D shadow, vec2 uv, float compare ){\\n\\t\\tfloat occlusion = 1.0;\\n\\t\\tvec2 distribution = texture2DDistribution( shadow, uv );\\n\\t\\tfloat hard_shadow = step( compare , distribution.x );\\n\\t\\tif (hard_shadow != 1.0 ) {\\n\\t\\t\\tfloat distance = compare - distribution.x ;\\n\\t\\t\\tfloat variance = max( 0.00000, distribution.y * distribution.y );\\n\\t\\t\\tfloat softness_probability = variance / (variance + distance * distance );\\t\\t\\tsoftness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 );\\t\\t\\tocclusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );\\n\\t\\t}\\n\\t\\treturn occlusion;\\n\\t}\\n\\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\\n\\t\\tfloat shadow = 1.0;\\n\\t\\tshadowCoord.xyz /= shadowCoord.w;\\n\\t\\tshadowCoord.z += shadowBias;\\n\\t\\tbvec4 inFrustumVec = bvec4 ( shadowCoord.x >= 0.0, shadowCoord.x <= 1.0, shadowCoord.y >= 0.0, shadowCoord.y <= 1.0 );\\n\\t\\tbool inFrustum = all( inFrustumVec );\\n\\t\\tbvec2 frustumTestVec = bvec2( inFrustum, shadowCoord.z <= 1.0 );\\n\\t\\tbool frustumTest = all( frustumTestVec );\\n\\t\\tif ( frustumTest ) {\\n\\t\\t#if defined( SHADOWMAP_TYPE_PCF )\\n\\t\\t\\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\\n\\t\\t\\tfloat dx0 = - texelSize.x * shadowRadius;\\n\\t\\t\\tfloat dy0 = - texelSize.y * shadowRadius;\\n\\t\\t\\tfloat dx1 = + texelSize.x * shadowRadius;\\n\\t\\t\\tfloat dy1 = + texelSize.y * shadowRadius;\\n\\t\\t\\tfloat dx2 = dx0 / 2.0;\\n\\t\\t\\tfloat dy2 = dy0 / 2.0;\\n\\t\\t\\tfloat dx3 = dx1 / 2.0;\\n\\t\\t\\tfloat dy3 = dy1 / 2.0;\\n\\t\\t\\tshadow = (\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\\n\\t\\t\\t) * ( 1.0 / 17.0 );\\n\\t\\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\\n\\t\\t\\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\\n\\t\\t\\tfloat dx = texelSize.x;\\n\\t\\t\\tfloat dy = texelSize.y;\\n\\t\\t\\tvec2 uv = shadowCoord.xy;\\n\\t\\t\\tvec2 f = fract( uv * shadowMapSize + 0.5 );\\n\\t\\t\\tuv -= f * texelSize;\\n\\t\\t\\tshadow = (\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, uv, shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +\\n\\t\\t\\t\\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ), \\n\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t f.x ) +\\n\\t\\t\\t\\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ), \\n\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t f.x ) +\\n\\t\\t\\t\\tmix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ), \\n\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t f.y ) +\\n\\t\\t\\t\\tmix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ), \\n\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t f.y ) +\\n\\t\\t\\t\\tmix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ), \\n\\t\\t\\t\\t\\t\\t  texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t\\t  f.x ),\\n\\t\\t\\t\\t\\t mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ), \\n\\t\\t\\t\\t\\t\\t  texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t\\t  f.x ),\\n\\t\\t\\t\\t\\t f.y )\\n\\t\\t\\t) * ( 1.0 / 9.0 );\\n\\t\\t#elif defined( SHADOWMAP_TYPE_VSM )\\n\\t\\t\\tshadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );\\n\\t\\t#else\\n\\t\\t\\tshadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\\n\\t\\t#endif\\n\\t\\t}\\n\\t\\treturn shadow;\\n\\t}\\n\\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\\n\\t\\tvec3 absV = abs( v );\\n\\t\\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\\n\\t\\tabsV *= scaleToCube;\\n\\t\\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\\n\\t\\tvec2 planar = v.xy;\\n\\t\\tfloat almostATexel = 1.5 * texelSizeY;\\n\\t\\tfloat almostOne = 1.0 - almostATexel;\\n\\t\\tif ( absV.z >= almostOne ) {\\n\\t\\t\\tif ( v.z > 0.0 )\\n\\t\\t\\t\\tplanar.x = 4.0 - v.x;\\n\\t\\t} else if ( absV.x >= almostOne ) {\\n\\t\\t\\tfloat signX = sign( v.x );\\n\\t\\t\\tplanar.x = v.z * signX + 2.0 * signX;\\n\\t\\t} else if ( absV.y >= almostOne ) {\\n\\t\\t\\tfloat signY = sign( v.y );\\n\\t\\t\\tplanar.x = v.x + 2.0 * signY + 2.0;\\n\\t\\t\\tplanar.y = v.z * signY - 2.0;\\n\\t\\t}\\n\\t\\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\\n\\t}\\n\\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\\n\\t\\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\\n\\t\\tvec3 lightToPosition = shadowCoord.xyz;\\n\\t\\tfloat dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );\\t\\tdp += shadowBias;\\n\\t\\tvec3 bd3D = normalize( lightToPosition );\\n\\t\\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )\\n\\t\\t\\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\\n\\t\\t\\treturn (\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\\n\\t\\t\\t) * ( 1.0 / 9.0 );\\n\\t\\t#else\\n\\t\\t\\treturn texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\\n\\t\\t#endif\\n\\t}\\n#endif\";var $s=\"#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\\t\\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t\\tstruct DirectionalLightShadow {\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t};\\n\\t\\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\n\\t\\tuniform mat4 spotShadowMatrix[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t\\tstruct SpotLightShadow {\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t};\\n\\t\\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t#endif\\n\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\\t\\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t\\tstruct PointLightShadow {\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t\\tfloat shadowCameraNear;\\n\\t\\t\\tfloat shadowCameraFar;\\n\\t\\t};\\n\\t\\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t#endif\\n#endif\";var ea=\"#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0 || NUM_SPOT_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0\\n\\t\\tvec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\\n\\t\\tvec4 shadowWorldPosition;\\n\\t#endif\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );\\n\\t\\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias, 0 );\\n\\t\\tvSpotShadowCoord[ i ] = spotShadowMatrix[ i ] * shadowWorldPosition;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#endif\\n\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );\\n\\t\\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#endif\\n#endif\";var ta=\"float getShadowMask() {\\n\\tfloat shadow = 1.0;\\n\\t#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\\tDirectionalLightShadow directionalLight;\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tdirectionalLight = directionalLightShadows[ i ];\\n\\t\\tshadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\n\\tSpotLightShadow spotLight;\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tspotLight = spotLightShadows[ i ];\\n\\t\\tshadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#endif\\n\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\\tPointLightShadow pointLight;\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tpointLight = pointLightShadows[ i ];\\n\\t\\tshadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#endif\\n\\t#endif\\n\\treturn shadow;\\n}\";var na=\"#ifdef USE_SKINNING\\n\\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\\n\\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\\n\\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\\n\\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\\n#endif\";var ra=\"#ifdef USE_SKINNING\\n\\tuniform mat4 bindMatrix;\\n\\tuniform mat4 bindMatrixInverse;\\n\\t#ifdef BONE_TEXTURE\\n\\t\\tuniform highp sampler2D boneTexture;\\n\\t\\tuniform int boneTextureSize;\\n\\t\\tmat4 getBoneMatrix( const in float i ) {\\n\\t\\t\\tfloat j = i * 4.0;\\n\\t\\t\\tfloat x = mod( j, float( boneTextureSize ) );\\n\\t\\t\\tfloat y = floor( j / float( boneTextureSize ) );\\n\\t\\t\\tfloat dx = 1.0 / float( boneTextureSize );\\n\\t\\t\\tfloat dy = 1.0 / float( boneTextureSize );\\n\\t\\t\\ty = dy * ( y + 0.5 );\\n\\t\\t\\tvec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) );\\n\\t\\t\\tvec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) );\\n\\t\\t\\tvec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) );\\n\\t\\t\\tvec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) );\\n\\t\\t\\tmat4 bone = mat4( v1, v2, v3, v4 );\\n\\t\\t\\treturn bone;\\n\\t\\t}\\n\\t#else\\n\\t\\tuniform mat4 boneMatrices[ MAX_BONES ];\\n\\t\\tmat4 getBoneMatrix( const in float i ) {\\n\\t\\t\\tmat4 bone = boneMatrices[ int(i) ];\\n\\t\\t\\treturn bone;\\n\\t\\t}\\n\\t#endif\\n#endif\";var ia=\"#ifdef USE_SKINNING\\n\\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\\n\\tvec4 skinned = vec4( 0.0 );\\n\\tskinned += boneMatX * skinVertex * skinWeight.x;\\n\\tskinned += boneMatY * skinVertex * skinWeight.y;\\n\\tskinned += boneMatZ * skinVertex * skinWeight.z;\\n\\tskinned += boneMatW * skinVertex * skinWeight.w;\\n\\ttransformed = ( bindMatrixInverse * skinned ).xyz;\\n#endif\";var sa=\"#ifdef USE_SKINNING\\n\\tmat4 skinMatrix = mat4( 0.0 );\\n\\tskinMatrix += skinWeight.x * boneMatX;\\n\\tskinMatrix += skinWeight.y * boneMatY;\\n\\tskinMatrix += skinWeight.z * boneMatZ;\\n\\tskinMatrix += skinWeight.w * boneMatW;\\n\\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\\n\\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\\n\\t#ifdef USE_TANGENT\\n\\t\\tobjectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;\\n\\t#endif\\n#endif\";var aa=\"float specularStrength;\\n#ifdef USE_SPECULARMAP\\n\\tvec4 texelSpecular = texture2D( specularMap, vUv );\\n\\tspecularStrength = texelSpecular.r;\\n#else\\n\\tspecularStrength = 1.0;\\n#endif\";var oa=\"#ifdef USE_SPECULARMAP\\n\\tuniform sampler2D specularMap;\\n#endif\";var la=\"#if defined( TONE_MAPPING )\\n\\tgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\\n#endif\";var ca=\"#ifndef saturate\\n#define saturate( a ) clamp( a, 0.0, 1.0 )\\n#endif\\nuniform float toneMappingExposure;\\nvec3 LinearToneMapping( vec3 color ) {\\n\\treturn toneMappingExposure * color;\\n}\\nvec3 ReinhardToneMapping( vec3 color ) {\\n\\tcolor *= toneMappingExposure;\\n\\treturn saturate( color / ( vec3( 1.0 ) + color ) );\\n}\\nvec3 OptimizedCineonToneMapping( vec3 color ) {\\n\\tcolor *= toneMappingExposure;\\n\\tcolor = max( vec3( 0.0 ), color - 0.004 );\\n\\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\\n}\\nvec3 RRTAndODTFit( vec3 v ) {\\n\\tvec3 a = v * ( v + 0.0245786 ) - 0.000090537;\\n\\tvec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;\\n\\treturn a / b;\\n}\\nvec3 ACESFilmicToneMapping( vec3 color ) {\\n\\tconst mat3 ACESInputMat = mat3(\\n\\t\\tvec3( 0.59719, 0.07600, 0.02840 ),\\t\\tvec3( 0.35458, 0.90834, 0.13383 ),\\n\\t\\tvec3( 0.04823, 0.01566, 0.83777 )\\n\\t);\\n\\tconst mat3 ACESOutputMat = mat3(\\n\\t\\tvec3(  1.60475, -0.10208, -0.00327 ),\\t\\tvec3( -0.53108,  1.10813, -0.07276 ),\\n\\t\\tvec3( -0.07367, -0.00605,  1.07602 )\\n\\t);\\n\\tcolor *= toneMappingExposure / 0.6;\\n\\tcolor = ACESInputMat * color;\\n\\tcolor = RRTAndODTFit( color );\\n\\tcolor = ACESOutputMat * color;\\n\\treturn saturate( color );\\n}\\nvec3 CustomToneMapping( vec3 color ) { return color; }\";var ua=\"#ifdef USE_TRANSMISSION\\n\\tfloat transmissionAlpha = 1.0;\\n\\tfloat transmissionFactor = transmission;\\n\\tfloat thicknessFactor = thickness;\\n\\t#ifdef USE_TRANSMISSIONMAP\\n\\t\\ttransmissionFactor *= texture2D( transmissionMap, vUv ).r;\\n\\t#endif\\n\\t#ifdef USE_THICKNESSMAP\\n\\t\\tthicknessFactor *= texture2D( thicknessMap, vUv ).g;\\n\\t#endif\\n\\tvec3 pos = vWorldPosition;\\n\\tvec3 v = normalize( cameraPosition - pos );\\n\\tvec3 n = inverseTransformDirection( normal, viewMatrix );\\n\\tvec4 transmission = getIBLVolumeRefraction(\\n\\t\\tn, v, roughnessFactor, material.diffuseColor, material.specularColor, material.specularF90,\\n\\t\\tpos, modelMatrix, viewMatrix, projectionMatrix, ior, thicknessFactor,\\n\\t\\tattenuationColor, attenuationDistance );\\n\\ttotalDiffuse = mix( totalDiffuse, transmission.rgb, transmissionFactor );\\n\\ttransmissionAlpha = mix( transmissionAlpha, transmission.a, transmissionFactor );\\n#endif\";var ha=\"#ifdef USE_TRANSMISSION\\n\\tuniform float transmission;\\n\\tuniform float thickness;\\n\\tuniform float attenuationDistance;\\n\\tuniform vec3 attenuationColor;\\n\\t#ifdef USE_TRANSMISSIONMAP\\n\\t\\tuniform sampler2D transmissionMap;\\n\\t#endif\\n\\t#ifdef USE_THICKNESSMAP\\n\\t\\tuniform sampler2D thicknessMap;\\n\\t#endif\\n\\tuniform vec2 transmissionSamplerSize;\\n\\tuniform sampler2D transmissionSamplerMap;\\n\\tuniform mat4 modelMatrix;\\n\\tuniform mat4 projectionMatrix;\\n\\tvarying vec3 vWorldPosition;\\n\\tvec3 getVolumeTransmissionRay( vec3 n, vec3 v, float thickness, float ior, mat4 modelMatrix ) {\\n\\t\\tvec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior );\\n\\t\\tvec3 modelScale;\\n\\t\\tmodelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) );\\n\\t\\tmodelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) );\\n\\t\\tmodelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );\\n\\t\\treturn normalize( refractionVector ) * thickness * modelScale;\\n\\t}\\n\\tfloat applyIorToRoughness( float roughness, float ior ) {\\n\\t\\treturn roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );\\n\\t}\\n\\tvec4 getTransmissionSample( vec2 fragCoord, float roughness, float ior ) {\\n\\t\\tfloat framebufferLod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );\\n\\t\\t#ifdef TEXTURE_LOD_EXT\\n\\t\\t\\treturn texture2DLodEXT( transmissionSamplerMap, fragCoord.xy, framebufferLod );\\n\\t\\t#else\\n\\t\\t\\treturn texture2D( transmissionSamplerMap, fragCoord.xy, framebufferLod );\\n\\t\\t#endif\\n\\t}\\n\\tvec3 applyVolumeAttenuation( vec3 radiance, float transmissionDistance, vec3 attenuationColor, float attenuationDistance ) {\\n\\t\\tif ( attenuationDistance == 0.0 ) {\\n\\t\\t\\treturn radiance;\\n\\t\\t} else {\\n\\t\\t\\tvec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;\\n\\t\\t\\tvec3 transmittance = exp( - attenuationCoefficient * transmissionDistance );\\t\\t\\treturn transmittance * radiance;\\n\\t\\t}\\n\\t}\\n\\tvec4 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 diffuseColor, vec3 specularColor, float specularF90,\\n\\t\\tvec3 position, mat4 modelMatrix, mat4 viewMatrix, mat4 projMatrix, float ior, float thickness,\\n\\t\\tvec3 attenuationColor, float attenuationDistance ) {\\n\\t\\tvec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );\\n\\t\\tvec3 refractedRayExit = position + transmissionRay;\\n\\t\\tvec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\\n\\t\\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\\n\\t\\trefractionCoords += 1.0;\\n\\t\\trefractionCoords /= 2.0;\\n\\t\\tvec4 transmittedLight = getTransmissionSample( refractionCoords, roughness, ior );\\n\\t\\tvec3 attenuatedColor = applyVolumeAttenuation( transmittedLight.rgb, length( transmissionRay ), attenuationColor, attenuationDistance );\\n\\t\\tvec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );\\n\\t\\treturn vec4( ( 1.0 - F ) * attenuatedColor * diffuseColor, transmittedLight.a );\\n\\t}\\n#endif\";var da=\"#if ( defined( USE_UV ) && ! defined( UVS_VERTEX_ONLY ) )\\n\\tvarying vec2 vUv;\\n#endif\";var pa=\"#ifdef USE_UV\\n\\t#ifdef UVS_VERTEX_ONLY\\n\\t\\tvec2 vUv;\\n\\t#else\\n\\t\\tvarying vec2 vUv;\\n\\t#endif\\n\\tuniform mat3 uvTransform;\\n#endif\";var fa=\"#ifdef USE_UV\\n\\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\\n#endif\";var ma=\"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\\n\\tvarying vec2 vUv2;\\n#endif\";var ga=\"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\\n\\tattribute vec2 uv2;\\n\\tvarying vec2 vUv2;\\n\\tuniform mat3 uv2Transform;\\n#endif\";var ya=\"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\\n\\tvUv2 = ( uv2Transform * vec3( uv2, 1 ) ).xy;\\n#endif\";var va=\"#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION )\\n\\tvec4 worldPosition = vec4( transformed, 1.0 );\\n\\t#ifdef USE_INSTANCING\\n\\t\\tworldPosition = instanceMatrix * worldPosition;\\n\\t#endif\\n\\tworldPosition = modelMatrix * worldPosition;\\n#endif\";const xa=\"varying vec2 vUv;\\nuniform mat3 uvTransform;\\nvoid main() {\\n\\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\\n\\tgl_Position = vec4( position.xy, 1.0, 1.0 );\\n}\";const ba=\"uniform sampler2D t2D;\\nvarying vec2 vUv;\\nvoid main() {\\n\\tvec4 texColor = texture2D( t2D, vUv );\\n\\tgl_FragColor = mapTexelToLinear( texColor );\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n}\";const _a=\"varying vec3 vWorldDirection;\\n#include <common>\\nvoid main() {\\n\\tvWorldDirection = transformDirection( position, modelMatrix );\\n\\t#include <begin_vertex>\\n\\t#include <project_vertex>\\n\\tgl_Position.z = gl_Position.w;\\n}\";const Ma=\"#include <envmap_common_pars_fragment>\\nuniform float opacity;\\nvarying vec3 vWorldDirection;\\n#include <cube_uv_reflection_fragment>\\nvoid main() {\\n\\tvec3 vReflect = vWorldDirection;\\n\\t#include <envmap_fragment>\\n\\tgl_FragColor = envColor;\\n\\tgl_FragColor.a *= opacity;\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n}\";const wa=\"#include <common>\\n#include <uv_pars_vertex>\\n#include <displacementmap_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvarying vec2 vHighPrecisionZW;\\nvoid main() {\\n\\t#include <uv_vertex>\\n\\t#include <skinbase_vertex>\\n\\t#ifdef USE_DISPLACEMENTMAP\\n\\t\\t#include <beginnormal_vertex>\\n\\t\\t#include <morphnormal_vertex>\\n\\t\\t#include <skinnormal_vertex>\\n\\t#endif\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <skinning_vertex>\\n\\t#include <displacementmap_vertex>\\n\\t#include <project_vertex>\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\tvHighPrecisionZW = gl_Position.zw;\\n}\";const Sa=\"#if DEPTH_PACKING == 3200\\n\\tuniform float opacity;\\n#endif\\n#include <common>\\n#include <packing>\\n#include <uv_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <alphatest_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvarying vec2 vHighPrecisionZW;\\nvoid main() {\\n\\t#include <clipping_planes_fragment>\\n\\tvec4 diffuseColor = vec4( 1.0 );\\n\\t#if DEPTH_PACKING == 3200\\n\\t\\tdiffuseColor.a = opacity;\\n\\t#endif\\n\\t#include <map_fragment>\\n\\t#include <alphamap_fragment>\\n\\t#include <alphatest_fragment>\\n\\t#include <logdepthbuf_fragment>\\n\\tfloat fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;\\n\\t#if DEPTH_PACKING == 3200\\n\\t\\tgl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );\\n\\t#elif DEPTH_PACKING == 3201\\n\\t\\tgl_FragColor = packDepthToRGBA( fragCoordZ );\\n\\t#endif\\n}\";const Ta=\"#define DISTANCE\\nvarying vec3 vWorldPosition;\\n#include <common>\\n#include <uv_pars_vertex>\\n#include <displacementmap_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\\t#include <uv_vertex>\\n\\t#include <skinbase_vertex>\\n\\t#ifdef USE_DISPLACEMENTMAP\\n\\t\\t#include <beginnormal_vertex>\\n\\t\\t#include <morphnormal_vertex>\\n\\t\\t#include <skinnormal_vertex>\\n\\t#endif\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <skinning_vertex>\\n\\t#include <displacementmap_vertex>\\n\\t#include <project_vertex>\\n\\t#include <worldpos_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\tvWorldPosition = worldPosition.xyz;\\n}\";const Ea=\"#define DISTANCE\\nuniform vec3 referencePosition;\\nuniform float nearDistance;\\nuniform float farDistance;\\nvarying vec3 vWorldPosition;\\n#include <common>\\n#include <packing>\\n#include <uv_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <alphatest_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main () {\\n\\t#include <clipping_planes_fragment>\\n\\tvec4 diffuseColor = vec4( 1.0 );\\n\\t#include <map_fragment>\\n\\t#include <alphamap_fragment>\\n\\t#include <alphatest_fragment>\\n\\tfloat dist = length( vWorldPosition - referencePosition );\\n\\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\\n\\tdist = saturate( dist );\\n\\tgl_FragColor = packDepthToRGBA( dist );\\n}\";const Aa=\"varying vec3 vWorldDirection;\\n#include <common>\\nvoid main() {\\n\\tvWorldDirection = transformDirection( position, modelMatrix );\\n\\t#include <begin_vertex>\\n\\t#include <project_vertex>\\n}\";const La=\"uniform sampler2D tEquirect;\\nvarying vec3 vWorldDirection;\\n#include <common>\\nvoid main() {\\n\\tvec3 direction = normalize( vWorldDirection );\\n\\tvec2 sampleUV = equirectUv( direction );\\n\\tvec4 texColor = texture2D( tEquirect, sampleUV );\\n\\tgl_FragColor = mapTexelToLinear( texColor );\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n}\";const Ca=\"uniform float scale;\\nattribute float lineDistance;\\nvarying float vLineDistance;\\n#include <common>\\n#include <color_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\\tvLineDistance = scale * lineDistance;\\n\\t#include <color_vertex>\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <project_vertex>\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\t#include <fog_vertex>\\n}\";const Ra=\"uniform vec3 diffuse;\\nuniform float opacity;\\nuniform float dashSize;\\nuniform float totalSize;\\nvarying float vLineDistance;\\n#include <common>\\n#include <color_pars_fragment>\\n#include <fog_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\\t#include <clipping_planes_fragment>\\n\\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\\n\\t\\tdiscard;\\n\\t}\\n\\tvec3 outgoingLight = vec3( 0.0 );\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <color_fragment>\\n\\toutgoingLight = diffuseColor.rgb;\\n\\t#include <output_fragment>\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n\\t#include <fog_fragment>\\n\\t#include <premultiplied_alpha_fragment>\\n}\";const Pa=\"#include <common>\\n#include <uv_pars_vertex>\\n#include <uv2_pars_vertex>\\n#include <envmap_pars_vertex>\\n#include <color_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\\t#include <uv_vertex>\\n\\t#include <uv2_vertex>\\n\\t#include <color_vertex>\\n\\t#if defined ( USE_ENVMAP ) || defined ( USE_SKINNING )\\n\\t\\t#include <beginnormal_vertex>\\n\\t\\t#include <morphnormal_vertex>\\n\\t\\t#include <skinbase_vertex>\\n\\t\\t#include <skinnormal_vertex>\\n\\t\\t#include <defaultnormal_vertex>\\n\\t#endif\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <skinning_vertex>\\n\\t#include <project_vertex>\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\t#include <worldpos_vertex>\\n\\t#include <envmap_vertex>\\n\\t#include <fog_vertex>\\n}\";const Ia=\"uniform vec3 diffuse;\\nuniform float opacity;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\n#include <common>\\n#include <dithering_pars_fragment>\\n#include <color_pars_fragment>\\n#include <uv_pars_fragment>\\n#include <uv2_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <alphatest_pars_fragment>\\n#include <aomap_pars_fragment>\\n#include <lightmap_pars_fragment>\\n#include <envmap_common_pars_fragment>\\n#include <envmap_pars_fragment>\\n#include <cube_uv_reflection_fragment>\\n#include <fog_pars_fragment>\\n#include <specularmap_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\\t#include <clipping_planes_fragment>\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <map_fragment>\\n\\t#include <color_fragment>\\n\\t#include <alphamap_fragment>\\n\\t#include <alphatest_fragment>\\n\\t#include <specularmap_fragment>\\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\t#ifdef USE_LIGHTMAP\\n\\t\\tvec4 lightMapTexel= texture2D( lightMap, vUv2 );\\n\\t\\treflectedLight.indirectDiffuse += lightMapTexelToLinear( lightMapTexel ).rgb * lightMapIntensity;\\n\\t#else\\n\\t\\treflectedLight.indirectDiffuse += vec3( 1.0 );\\n\\t#endif\\n\\t#include <aomap_fragment>\\n\\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\\n\\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\\n\\t#include <envmap_fragment>\\n\\t#include <output_fragment>\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n\\t#include <fog_fragment>\\n\\t#include <premultiplied_alpha_fragment>\\n\\t#include <dithering_fragment>\\n}\";const Da=\"#define LAMBERT\\nvarying vec3 vLightFront;\\nvarying vec3 vIndirectFront;\\n#ifdef DOUBLE_SIDED\\n\\tvarying vec3 vLightBack;\\n\\tvarying vec3 vIndirectBack;\\n#endif\\n#include <common>\\n#include <uv_pars_vertex>\\n#include <uv2_pars_vertex>\\n#include <envmap_pars_vertex>\\n#include <bsdfs>\\n#include <lights_pars_begin>\\n#include <color_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <shadowmap_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\\t#include <uv_vertex>\\n\\t#include <uv2_vertex>\\n\\t#include <color_vertex>\\n\\t#include <beginnormal_vertex>\\n\\t#include <morphnormal_vertex>\\n\\t#include <skinbase_vertex>\\n\\t#include <skinnormal_vertex>\\n\\t#include <defaultnormal_vertex>\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <skinning_vertex>\\n\\t#include <project_vertex>\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\t#include <worldpos_vertex>\\n\\t#include <envmap_vertex>\\n\\t#include <lights_lambert_vertex>\\n\\t#include <shadowmap_vertex>\\n\\t#include <fog_vertex>\\n}\";const Ba=\"uniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform float opacity;\\nvarying vec3 vLightFront;\\nvarying vec3 vIndirectFront;\\n#ifdef DOUBLE_SIDED\\n\\tvarying vec3 vLightBack;\\n\\tvarying vec3 vIndirectBack;\\n#endif\\n#include <common>\\n#include <packing>\\n#include <dithering_pars_fragment>\\n#include <color_pars_fragment>\\n#include <uv_pars_fragment>\\n#include <uv2_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <alphatest_pars_fragment>\\n#include <aomap_pars_fragment>\\n#include <lightmap_pars_fragment>\\n#include <emissivemap_pars_fragment>\\n#include <envmap_common_pars_fragment>\\n#include <envmap_pars_fragment>\\n#include <cube_uv_reflection_fragment>\\n#include <bsdfs>\\n#include <lights_pars_begin>\\n#include <fog_pars_fragment>\\n#include <shadowmap_pars_fragment>\\n#include <shadowmask_pars_fragment>\\n#include <specularmap_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\\t#include <clipping_planes_fragment>\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <map_fragment>\\n\\t#include <color_fragment>\\n\\t#include <alphamap_fragment>\\n\\t#include <alphatest_fragment>\\n\\t#include <specularmap_fragment>\\n\\t#include <emissivemap_fragment>\\n\\t#ifdef DOUBLE_SIDED\\n\\t\\treflectedLight.indirectDiffuse += ( gl_FrontFacing ) ? vIndirectFront : vIndirectBack;\\n\\t#else\\n\\t\\treflectedLight.indirectDiffuse += vIndirectFront;\\n\\t#endif\\n\\t#include <lightmap_fragment>\\n\\treflectedLight.indirectDiffuse *= BRDF_Lambert( diffuseColor.rgb );\\n\\t#ifdef DOUBLE_SIDED\\n\\t\\treflectedLight.directDiffuse = ( gl_FrontFacing ) ? vLightFront : vLightBack;\\n\\t#else\\n\\t\\treflectedLight.directDiffuse = vLightFront;\\n\\t#endif\\n\\treflectedLight.directDiffuse *= BRDF_Lambert( diffuseColor.rgb ) * getShadowMask();\\n\\t#include <aomap_fragment>\\n\\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\\n\\t#include <envmap_fragment>\\n\\t#include <output_fragment>\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n\\t#include <fog_fragment>\\n\\t#include <premultiplied_alpha_fragment>\\n\\t#include <dithering_fragment>\\n}\";const Va=\"#define MATCAP\\nvarying vec3 vViewPosition;\\n#include <common>\\n#include <uv_pars_vertex>\\n#include <color_pars_vertex>\\n#include <displacementmap_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <normal_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\\t#include <uv_vertex>\\n\\t#include <color_vertex>\\n\\t#include <beginnormal_vertex>\\n\\t#include <morphnormal_vertex>\\n\\t#include <skinbase_vertex>\\n\\t#include <skinnormal_vertex>\\n\\t#include <defaultnormal_vertex>\\n\\t#include <normal_vertex>\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <skinning_vertex>\\n\\t#include <displacementmap_vertex>\\n\\t#include <project_vertex>\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\t#include <fog_vertex>\\n\\tvViewPosition = - mvPosition.xyz;\\n}\";const Na=\"#define MATCAP\\nuniform vec3 diffuse;\\nuniform float opacity;\\nuniform sampler2D matcap;\\nvarying vec3 vViewPosition;\\n#include <common>\\n#include <dithering_pars_fragment>\\n#include <color_pars_fragment>\\n#include <uv_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <alphatest_pars_fragment>\\n#include <fog_pars_fragment>\\n#include <normal_pars_fragment>\\n#include <bumpmap_pars_fragment>\\n#include <normalmap_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\\t#include <clipping_planes_fragment>\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <map_fragment>\\n\\t#include <color_fragment>\\n\\t#include <alphamap_fragment>\\n\\t#include <alphatest_fragment>\\n\\t#include <normal_fragment_begin>\\n\\t#include <normal_fragment_maps>\\n\\tvec3 viewDir = normalize( vViewPosition );\\n\\tvec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );\\n\\tvec3 y = cross( viewDir, x );\\n\\tvec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;\\n\\t#ifdef USE_MATCAP\\n\\t\\tvec4 matcapColor = texture2D( matcap, uv );\\n\\t\\tmatcapColor = matcapTexelToLinear( matcapColor );\\n\\t#else\\n\\t\\tvec4 matcapColor = vec4( 1.0 );\\n\\t#endif\\n\\tvec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;\\n\\t#include <output_fragment>\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n\\t#include <fog_fragment>\\n\\t#include <premultiplied_alpha_fragment>\\n\\t#include <dithering_fragment>\\n}\";const Ua=\"#define NORMAL\\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\\n\\tvarying vec3 vViewPosition;\\n#endif\\n#include <common>\\n#include <uv_pars_vertex>\\n#include <displacementmap_pars_vertex>\\n#include <normal_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\\t#include <uv_vertex>\\n\\t#include <beginnormal_vertex>\\n\\t#include <morphnormal_vertex>\\n\\t#include <skinbase_vertex>\\n\\t#include <skinnormal_vertex>\\n\\t#include <defaultnormal_vertex>\\n\\t#include <normal_vertex>\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <skinning_vertex>\\n\\t#include <displacementmap_vertex>\\n\\t#include <project_vertex>\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\\n\\tvViewPosition = - mvPosition.xyz;\\n#endif\\n}\";const za=\"#define NORMAL\\nuniform float opacity;\\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\\n\\tvarying vec3 vViewPosition;\\n#endif\\n#include <packing>\\n#include <uv_pars_fragment>\\n#include <normal_pars_fragment>\\n#include <bumpmap_pars_fragment>\\n#include <normalmap_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\\t#include <clipping_planes_fragment>\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <normal_fragment_begin>\\n\\t#include <normal_fragment_maps>\\n\\tgl_FragColor = vec4( packNormalToRGB( normal ), opacity );\\n}\";const Ga=\"#define PHONG\\nvarying vec3 vViewPosition;\\n#include <common>\\n#include <uv_pars_vertex>\\n#include <uv2_pars_vertex>\\n#include <displacementmap_pars_vertex>\\n#include <envmap_pars_vertex>\\n#include <color_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <normal_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <shadowmap_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\\t#include <uv_vertex>\\n\\t#include <uv2_vertex>\\n\\t#include <color_vertex>\\n\\t#include <beginnormal_vertex>\\n\\t#include <morphnormal_vertex>\\n\\t#include <skinbase_vertex>\\n\\t#include <skinnormal_vertex>\\n\\t#include <defaultnormal_vertex>\\n\\t#include <normal_vertex>\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <skinning_vertex>\\n\\t#include <displacementmap_vertex>\\n\\t#include <project_vertex>\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\tvViewPosition = - mvPosition.xyz;\\n\\t#include <worldpos_vertex>\\n\\t#include <envmap_vertex>\\n\\t#include <shadowmap_vertex>\\n\\t#include <fog_vertex>\\n}\";const Fa=\"#define PHONG\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform vec3 specular;\\nuniform float shininess;\\nuniform float opacity;\\n#include <common>\\n#include <packing>\\n#include <dithering_pars_fragment>\\n#include <color_pars_fragment>\\n#include <uv_pars_fragment>\\n#include <uv2_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <alphatest_pars_fragment>\\n#include <aomap_pars_fragment>\\n#include <lightmap_pars_fragment>\\n#include <emissivemap_pars_fragment>\\n#include <envmap_common_pars_fragment>\\n#include <envmap_pars_fragment>\\n#include <cube_uv_reflection_fragment>\\n#include <fog_pars_fragment>\\n#include <bsdfs>\\n#include <lights_pars_begin>\\n#include <normal_pars_fragment>\\n#include <lights_phong_pars_fragment>\\n#include <shadowmap_pars_fragment>\\n#include <bumpmap_pars_fragment>\\n#include <normalmap_pars_fragment>\\n#include <specularmap_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\\t#include <clipping_planes_fragment>\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <map_fragment>\\n\\t#include <color_fragment>\\n\\t#include <alphamap_fragment>\\n\\t#include <alphatest_fragment>\\n\\t#include <specularmap_fragment>\\n\\t#include <normal_fragment_begin>\\n\\t#include <normal_fragment_maps>\\n\\t#include <emissivemap_fragment>\\n\\t#include <lights_phong_fragment>\\n\\t#include <lights_fragment_begin>\\n\\t#include <lights_fragment_maps>\\n\\t#include <lights_fragment_end>\\n\\t#include <aomap_fragment>\\n\\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\\n\\t#include <envmap_fragment>\\n\\t#include <output_fragment>\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n\\t#include <fog_fragment>\\n\\t#include <premultiplied_alpha_fragment>\\n\\t#include <dithering_fragment>\\n}\";const Oa=\"#define STANDARD\\nvarying vec3 vViewPosition;\\n#ifdef USE_TRANSMISSION\\n\\tvarying vec3 vWorldPosition;\\n#endif\\n#include <common>\\n#include <uv_pars_vertex>\\n#include <uv2_pars_vertex>\\n#include <displacementmap_pars_vertex>\\n#include <color_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <normal_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <shadowmap_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\\t#include <uv_vertex>\\n\\t#include <uv2_vertex>\\n\\t#include <color_vertex>\\n\\t#include <beginnormal_vertex>\\n\\t#include <morphnormal_vertex>\\n\\t#include <skinbase_vertex>\\n\\t#include <skinnormal_vertex>\\n\\t#include <defaultnormal_vertex>\\n\\t#include <normal_vertex>\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <skinning_vertex>\\n\\t#include <displacementmap_vertex>\\n\\t#include <project_vertex>\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\tvViewPosition = - mvPosition.xyz;\\n\\t#include <worldpos_vertex>\\n\\t#include <shadowmap_vertex>\\n\\t#include <fog_vertex>\\n#ifdef USE_TRANSMISSION\\n\\tvWorldPosition = worldPosition.xyz;\\n#endif\\n}\";const Ha=\"#define STANDARD\\n#ifdef PHYSICAL\\n\\t#define IOR\\n\\t#define SPECULAR\\n#endif\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform float roughness;\\nuniform float metalness;\\nuniform float opacity;\\n#ifdef IOR\\n\\tuniform float ior;\\n#endif\\n#ifdef SPECULAR\\n\\tuniform float specularIntensity;\\n\\tuniform vec3 specularColor;\\n\\t#ifdef USE_SPECULARINTENSITYMAP\\n\\t\\tuniform sampler2D specularIntensityMap;\\n\\t#endif\\n\\t#ifdef USE_SPECULARCOLORMAP\\n\\t\\tuniform sampler2D specularColorMap;\\n\\t#endif\\n#endif\\n#ifdef USE_CLEARCOAT\\n\\tuniform float clearcoat;\\n\\tuniform float clearcoatRoughness;\\n#endif\\n#ifdef USE_SHEEN\\n\\tuniform vec3 sheenColor;\\n\\tuniform float sheenRoughness;\\n\\t#ifdef USE_SHEENCOLORMAP\\n\\t\\tuniform sampler2D sheenColorMap;\\n\\t#endif\\n\\t#ifdef USE_SHEENROUGHNESSMAP\\n\\t\\tuniform sampler2D sheenRoughnessMap;\\n\\t#endif\\n#endif\\nvarying vec3 vViewPosition;\\n#include <common>\\n#include <packing>\\n#include <dithering_pars_fragment>\\n#include <color_pars_fragment>\\n#include <uv_pars_fragment>\\n#include <uv2_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <alphatest_pars_fragment>\\n#include <aomap_pars_fragment>\\n#include <lightmap_pars_fragment>\\n#include <emissivemap_pars_fragment>\\n#include <bsdfs>\\n#include <cube_uv_reflection_fragment>\\n#include <envmap_common_pars_fragment>\\n#include <envmap_physical_pars_fragment>\\n#include <fog_pars_fragment>\\n#include <lights_pars_begin>\\n#include <normal_pars_fragment>\\n#include <lights_physical_pars_fragment>\\n#include <transmission_pars_fragment>\\n#include <shadowmap_pars_fragment>\\n#include <bumpmap_pars_fragment>\\n#include <normalmap_pars_fragment>\\n#include <clearcoat_pars_fragment>\\n#include <roughnessmap_pars_fragment>\\n#include <metalnessmap_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\\t#include <clipping_planes_fragment>\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <map_fragment>\\n\\t#include <color_fragment>\\n\\t#include <alphamap_fragment>\\n\\t#include <alphatest_fragment>\\n\\t#include <roughnessmap_fragment>\\n\\t#include <metalnessmap_fragment>\\n\\t#include <normal_fragment_begin>\\n\\t#include <normal_fragment_maps>\\n\\t#include <clearcoat_normal_fragment_begin>\\n\\t#include <clearcoat_normal_fragment_maps>\\n\\t#include <emissivemap_fragment>\\n\\t#include <lights_physical_fragment>\\n\\t#include <lights_fragment_begin>\\n\\t#include <lights_fragment_maps>\\n\\t#include <lights_fragment_end>\\n\\t#include <aomap_fragment>\\n\\tvec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\\n\\tvec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\\n\\t#include <transmission_fragment>\\n\\tvec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\\n\\t#ifdef USE_SHEEN\\n\\t\\tfloat sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );\\n\\t\\toutgoingLight = outgoingLight * sheenEnergyComp + sheenSpecular;\\n\\t#endif\\n\\t#ifdef USE_CLEARCOAT\\n\\t\\tfloat dotNVcc = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );\\n\\t\\tvec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\\n\\t\\toutgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + clearcoatSpecular * material.clearcoat;\\n\\t#endif\\n\\t#include <output_fragment>\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n\\t#include <fog_fragment>\\n\\t#include <premultiplied_alpha_fragment>\\n\\t#include <dithering_fragment>\\n}\";const ka=\"#define TOON\\nvarying vec3 vViewPosition;\\n#include <common>\\n#include <uv_pars_vertex>\\n#include <uv2_pars_vertex>\\n#include <displacementmap_pars_vertex>\\n#include <color_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <normal_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <shadowmap_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\\t#include <uv_vertex>\\n\\t#include <uv2_vertex>\\n\\t#include <color_vertex>\\n\\t#include <beginnormal_vertex>\\n\\t#include <morphnormal_vertex>\\n\\t#include <skinbase_vertex>\\n\\t#include <skinnormal_vertex>\\n\\t#include <defaultnormal_vertex>\\n\\t#include <normal_vertex>\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <skinning_vertex>\\n\\t#include <displacementmap_vertex>\\n\\t#include <project_vertex>\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\tvViewPosition = - mvPosition.xyz;\\n\\t#include <worldpos_vertex>\\n\\t#include <shadowmap_vertex>\\n\\t#include <fog_vertex>\\n}\";const Wa=\"#define TOON\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform float opacity;\\n#include <common>\\n#include <packing>\\n#include <dithering_pars_fragment>\\n#include <color_pars_fragment>\\n#include <uv_pars_fragment>\\n#include <uv2_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <alphatest_pars_fragment>\\n#include <aomap_pars_fragment>\\n#include <lightmap_pars_fragment>\\n#include <emissivemap_pars_fragment>\\n#include <gradientmap_pars_fragment>\\n#include <fog_pars_fragment>\\n#include <bsdfs>\\n#include <lights_pars_begin>\\n#include <normal_pars_fragment>\\n#include <lights_toon_pars_fragment>\\n#include <shadowmap_pars_fragment>\\n#include <bumpmap_pars_fragment>\\n#include <normalmap_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\\t#include <clipping_planes_fragment>\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <map_fragment>\\n\\t#include <color_fragment>\\n\\t#include <alphamap_fragment>\\n\\t#include <alphatest_fragment>\\n\\t#include <normal_fragment_begin>\\n\\t#include <normal_fragment_maps>\\n\\t#include <emissivemap_fragment>\\n\\t#include <lights_toon_fragment>\\n\\t#include <lights_fragment_begin>\\n\\t#include <lights_fragment_maps>\\n\\t#include <lights_fragment_end>\\n\\t#include <aomap_fragment>\\n\\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\\n\\t#include <output_fragment>\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n\\t#include <fog_fragment>\\n\\t#include <premultiplied_alpha_fragment>\\n\\t#include <dithering_fragment>\\n}\";const ja=\"uniform float size;\\nuniform float scale;\\n#include <common>\\n#include <color_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\\t#include <color_vertex>\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <project_vertex>\\n\\tgl_PointSize = size;\\n\\t#ifdef USE_SIZEATTENUATION\\n\\t\\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\\n\\t\\tif ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );\\n\\t#endif\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\t#include <worldpos_vertex>\\n\\t#include <fog_vertex>\\n}\";const qa=\"uniform vec3 diffuse;\\nuniform float opacity;\\n#include <common>\\n#include <color_pars_fragment>\\n#include <map_particle_pars_fragment>\\n#include <alphatest_pars_fragment>\\n#include <fog_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\\t#include <clipping_planes_fragment>\\n\\tvec3 outgoingLight = vec3( 0.0 );\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <map_particle_fragment>\\n\\t#include <color_fragment>\\n\\t#include <alphatest_fragment>\\n\\toutgoingLight = diffuseColor.rgb;\\n\\t#include <output_fragment>\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n\\t#include <fog_fragment>\\n\\t#include <premultiplied_alpha_fragment>\\n}\";const Xa=\"#include <common>\\n#include <fog_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <shadowmap_pars_vertex>\\nvoid main() {\\n\\t#include <beginnormal_vertex>\\n\\t#include <morphnormal_vertex>\\n\\t#include <skinbase_vertex>\\n\\t#include <skinnormal_vertex>\\n\\t#include <defaultnormal_vertex>\\n\\t#include <begin_vertex>\\n\\t#include <morphtarget_vertex>\\n\\t#include <skinning_vertex>\\n\\t#include <project_vertex>\\n\\t#include <worldpos_vertex>\\n\\t#include <shadowmap_vertex>\\n\\t#include <fog_vertex>\\n}\";const Ja=\"uniform vec3 color;\\nuniform float opacity;\\n#include <common>\\n#include <packing>\\n#include <fog_pars_fragment>\\n#include <bsdfs>\\n#include <lights_pars_begin>\\n#include <shadowmap_pars_fragment>\\n#include <shadowmask_pars_fragment>\\nvoid main() {\\n\\tgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n\\t#include <fog_fragment>\\n}\";const Ya=\"uniform float rotation;\\nuniform vec2 center;\\n#include <common>\\n#include <uv_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\\t#include <uv_vertex>\\n\\tvec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\\n\\tvec2 scale;\\n\\tscale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) );\\n\\tscale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) );\\n\\t#ifndef USE_SIZEATTENUATION\\n\\t\\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\\n\\t\\tif ( isPerspective ) scale *= - mvPosition.z;\\n\\t#endif\\n\\tvec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;\\n\\tvec2 rotatedPosition;\\n\\trotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\\n\\trotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\\n\\tmvPosition.xy += rotatedPosition;\\n\\tgl_Position = projectionMatrix * mvPosition;\\n\\t#include <logdepthbuf_vertex>\\n\\t#include <clipping_planes_vertex>\\n\\t#include <fog_vertex>\\n}\";const Za=\"uniform vec3 diffuse;\\nuniform float opacity;\\n#include <common>\\n#include <uv_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <alphatest_pars_fragment>\\n#include <fog_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\\t#include <clipping_planes_fragment>\\n\\tvec3 outgoingLight = vec3( 0.0 );\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include <logdepthbuf_fragment>\\n\\t#include <map_fragment>\\n\\t#include <alphamap_fragment>\\n\\t#include <alphatest_fragment>\\n\\toutgoingLight = diffuseColor.rgb;\\n\\t#include <output_fragment>\\n\\t#include <tonemapping_fragment>\\n\\t#include <encodings_fragment>\\n\\t#include <fog_fragment>\\n}\";const Qa={alphamap_fragment:Ti,alphamap_pars_fragment:Ei,alphatest_fragment:Ai,alphatest_pars_fragment:Li,aomap_fragment:Ci,aomap_pars_fragment:Ri,begin_vertex:Pi,beginnormal_vertex:Ii,bsdfs:Di,bumpmap_pars_fragment:Bi,clipping_planes_fragment:Vi,clipping_planes_pars_fragment:Ni,clipping_planes_pars_vertex:Ui,clipping_planes_vertex:zi,color_fragment:Gi,color_pars_fragment:Fi,color_pars_vertex:Oi,color_vertex:Hi,common:ki,cube_uv_reflection_fragment:Wi,defaultnormal_vertex:ji,displacementmap_pars_vertex:qi,displacementmap_vertex:Xi,emissivemap_fragment:Ji,emissivemap_pars_fragment:Yi,encodings_fragment:Zi,encodings_pars_fragment:Qi,envmap_fragment:Ki,envmap_common_pars_fragment:$i,envmap_pars_fragment:es,envmap_pars_vertex:ts,envmap_physical_pars_fragment:ds,envmap_vertex:ns,fog_vertex:rs,fog_pars_vertex:is,fog_fragment:ss,fog_pars_fragment:as,gradientmap_pars_fragment:os,lightmap_fragment:ls,lightmap_pars_fragment:cs,lights_lambert_vertex:us,lights_pars_begin:hs,lights_toon_fragment:ps,lights_toon_pars_fragment:fs,lights_phong_fragment:ms,lights_phong_pars_fragment:gs,lights_physical_fragment:ys,lights_physical_pars_fragment:vs,lights_fragment_begin:xs,lights_fragment_maps:bs,lights_fragment_end:_s,logdepthbuf_fragment:Ms,logdepthbuf_pars_fragment:ws,logdepthbuf_pars_vertex:Ss,logdepthbuf_vertex:Ts,map_fragment:Es,map_pars_fragment:As,map_particle_fragment:Ls,map_particle_pars_fragment:Cs,metalnessmap_fragment:Rs,metalnessmap_pars_fragment:Ps,morphnormal_vertex:Is,morphtarget_pars_vertex:Ds,morphtarget_vertex:Bs,normal_fragment_begin:Vs,normal_fragment_maps:Ns,normal_pars_fragment:Us,normal_pars_vertex:zs,normal_vertex:Gs,normalmap_pars_fragment:Fs,clearcoat_normal_fragment_begin:Os,clearcoat_normal_fragment_maps:Hs,clearcoat_pars_fragment:ks,output_fragment:Ws,packing:js,premultiplied_alpha_fragment:qs,project_vertex:Xs,dithering_fragment:Js,dithering_pars_fragment:Ys,roughnessmap_fragment:Zs,roughnessmap_pars_fragment:Qs,shadowmap_pars_fragment:Ks,shadowmap_pars_vertex:$s,shadowmap_vertex:ea,shadowmask_pars_fragment:ta,skinbase_vertex:na,skinning_pars_vertex:ra,skinning_vertex:ia,skinnormal_vertex:sa,specularmap_fragment:aa,specularmap_pars_fragment:oa,tonemapping_fragment:la,tonemapping_pars_fragment:ca,transmission_fragment:ua,transmission_pars_fragment:ha,uv_pars_fragment:da,uv_pars_vertex:pa,uv_vertex:fa,uv2_pars_fragment:ma,uv2_pars_vertex:ga,uv2_vertex:ya,worldpos_vertex:va,background_vert:xa,background_frag:ba,cube_vert:_a,cube_frag:Ma,depth_vert:wa,depth_frag:Sa,distanceRGBA_vert:Ta,distanceRGBA_frag:Ea,equirect_vert:Aa,equirect_frag:La,linedashed_vert:Ca,linedashed_frag:Ra,meshbasic_vert:Pa,meshbasic_frag:Ia,meshlambert_vert:Da,meshlambert_frag:Ba,meshmatcap_vert:Va,meshmatcap_frag:Na,meshnormal_vert:Ua,meshnormal_frag:za,meshphong_vert:Ga,meshphong_frag:Fa,meshphysical_vert:Oa,meshphysical_frag:Ha,meshtoon_vert:ka,meshtoon_frag:Wa,points_vert:ja,points_frag:qa,shadow_vert:Xa,shadow_frag:Ja,sprite_vert:Ya,sprite_frag:Za};const Ka={common:{diffuse:{value:new Color(16777215)},opacity:{value:1},map:{value:null},uvTransform:{value:new Matrix3},uv2Transform:{value:new Matrix3},alphaMap:{value:null},alphaTest:{value:0}},specularmap:{specularMap:{value:null}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1}},emissivemap:{emissiveMap:{value:null}},bumpmap:{bumpMap:{value:null},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalScale:{value:new Vector2(1,1)}},displacementmap:{displacementMap:{value:null},displacementScale:{value:1},displacementBias:{value:0}},roughnessmap:{roughnessMap:{value:null}},metalnessmap:{metalnessMap:{value:null}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new Color(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotShadowMap:{value:[]},spotShadowMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new Color(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaTest:{value:0},uvTransform:{value:new Matrix3}},sprite:{diffuse:{value:new Color(16777215)},opacity:{value:1},center:{value:new Vector2(.5,.5)},rotation:{value:0},map:{value:null},alphaMap:{value:null},alphaTest:{value:0},uvTransform:{value:new Matrix3}}};const $a={basic:{uniforms:mergeUniforms([Ka.common,Ka.specularmap,Ka.envmap,Ka.aomap,Ka.lightmap,Ka.fog]),vertexShader:Qa.meshbasic_vert,fragmentShader:Qa.meshbasic_frag},lambert:{uniforms:mergeUniforms([Ka.common,Ka.specularmap,Ka.envmap,Ka.aomap,Ka.lightmap,Ka.emissivemap,Ka.fog,Ka.lights,{emissive:{value:new Color(0)}}]),vertexShader:Qa.meshlambert_vert,fragmentShader:Qa.meshlambert_frag},phong:{uniforms:mergeUniforms([Ka.common,Ka.specularmap,Ka.envmap,Ka.aomap,Ka.lightmap,Ka.emissivemap,Ka.bumpmap,Ka.normalmap,Ka.displacementmap,Ka.fog,Ka.lights,{emissive:{value:new Color(0)},specular:{value:new Color(1118481)},shininess:{value:30}}]),vertexShader:Qa.meshphong_vert,fragmentShader:Qa.meshphong_frag},standard:{uniforms:mergeUniforms([Ka.common,Ka.envmap,Ka.aomap,Ka.lightmap,Ka.emissivemap,Ka.bumpmap,Ka.normalmap,Ka.displacementmap,Ka.roughnessmap,Ka.metalnessmap,Ka.fog,Ka.lights,{emissive:{value:new Color(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:Qa.meshphysical_vert,fragmentShader:Qa.meshphysical_frag},toon:{uniforms:mergeUniforms([Ka.common,Ka.aomap,Ka.lightmap,Ka.emissivemap,Ka.bumpmap,Ka.normalmap,Ka.displacementmap,Ka.gradientmap,Ka.fog,Ka.lights,{emissive:{value:new Color(0)}}]),vertexShader:Qa.meshtoon_vert,fragmentShader:Qa.meshtoon_frag},matcap:{uniforms:mergeUniforms([Ka.common,Ka.bumpmap,Ka.normalmap,Ka.displacementmap,Ka.fog,{matcap:{value:null}}]),vertexShader:Qa.meshmatcap_vert,fragmentShader:Qa.meshmatcap_frag},points:{uniforms:mergeUniforms([Ka.points,Ka.fog]),vertexShader:Qa.points_vert,fragmentShader:Qa.points_frag},dashed:{uniforms:mergeUniforms([Ka.common,Ka.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:Qa.linedashed_vert,fragmentShader:Qa.linedashed_frag},depth:{uniforms:mergeUniforms([Ka.common,Ka.displacementmap]),vertexShader:Qa.depth_vert,fragmentShader:Qa.depth_frag},normal:{uniforms:mergeUniforms([Ka.common,Ka.bumpmap,Ka.normalmap,Ka.displacementmap,{opacity:{value:1}}]),vertexShader:Qa.meshnormal_vert,fragmentShader:Qa.meshnormal_frag},sprite:{uniforms:mergeUniforms([Ka.sprite,Ka.fog]),vertexShader:Qa.sprite_vert,fragmentShader:Qa.sprite_frag},background:{uniforms:{uvTransform:{value:new Matrix3},t2D:{value:null}},vertexShader:Qa.background_vert,fragmentShader:Qa.background_frag},cube:{uniforms:mergeUniforms([Ka.envmap,{opacity:{value:1}}]),vertexShader:Qa.cube_vert,fragmentShader:Qa.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:Qa.equirect_vert,fragmentShader:Qa.equirect_frag},distanceRGBA:{uniforms:mergeUniforms([Ka.common,Ka.displacementmap,{referencePosition:{value:new Vector3},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:Qa.distanceRGBA_vert,fragmentShader:Qa.distanceRGBA_frag},shadow:{uniforms:mergeUniforms([Ka.lights,Ka.fog,{color:{value:new Color(0)},opacity:{value:1}}]),vertexShader:Qa.shadow_vert,fragmentShader:Qa.shadow_frag}};$a.physical={uniforms:mergeUniforms([$a.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatNormalScale:{value:new Vector2(1,1)},clearcoatNormalMap:{value:null},sheen:{value:0},sheenColor:{value:new Color(0)},sheenColorMap:{value:null},sheenRoughness:{value:0},sheenRoughnessMap:{value:null},transmission:{value:0},transmissionMap:{value:null},transmissionSamplerSize:{value:new Vector2},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},attenuationDistance:{value:0},attenuationColor:{value:new Color(0)},specularIntensity:{value:0},specularIntensityMap:{value:null},specularColor:{value:new Color(1,1,1)},specularColorMap:{value:null}}]),vertexShader:Qa.meshphysical_vert,fragmentShader:Qa.meshphysical_frag};function WebGLBackground(e,t,n,r,i){const s=new Color(0);let a=0;let o;let l;let c=null;let u=0;let p=null;function render(n,i){let f=false;let m=true===i.isScene?i.background:null;m&&m.isTexture&&(m=t.get(m));const g=e.xr;const y=g.getSession&&g.getSession();y&&\"additive\"===y.environmentBlendMode&&(m=null);if(null===m)setClear(s,a);else if(m&&m.isColor){setClear(m,1);f=true}(e.autoClear||f)&&e.clear(e.autoClearColor,e.autoClearDepth,e.autoClearStencil);if(m&&(m.isCubeTexture||m.mapping===oe)){if(void 0===l){l=new Mesh(new BoxGeometry(1,1,1),new ShaderMaterial({name:\"BackgroundCubeMaterial\",uniforms:cloneUniforms($a.cube.uniforms),vertexShader:$a.cube.vertexShader,fragmentShader:$a.cube.fragmentShader,side:d,depthTest:false,depthWrite:false,fog:false}));l.geometry.deleteAttribute(\"normal\");l.geometry.deleteAttribute(\"uv\");l.onBeforeRender=function(e,t,n){this.matrixWorld.copyPosition(n.matrixWorld)};Object.defineProperty(l.material,\"envMap\",{get:function(){return this.uniforms.envMap.value}});r.update(l)}l.material.uniforms.envMap.value=m;l.material.uniforms.flipEnvMap.value=m.isCubeTexture&&false===m.isRenderTargetTexture?-1:1;if(c!==m||u!==m.version||p!==e.toneMapping){l.material.needsUpdate=true;c=m;u=m.version;p=e.toneMapping}n.unshift(l,l.geometry,l.material,0,0,null)}else if(m&&m.isTexture){if(void 0===o){o=new Mesh(new PlaneGeometry(2,2),new ShaderMaterial({name:\"BackgroundMaterial\",uniforms:cloneUniforms($a.background.uniforms),vertexShader:$a.background.vertexShader,fragmentShader:$a.background.fragmentShader,side:h,depthTest:false,depthWrite:false,fog:false}));o.geometry.deleteAttribute(\"normal\");Object.defineProperty(o.material,\"map\",{get:function(){return this.uniforms.t2D.value}});r.update(o)}o.material.uniforms.t2D.value=m;true===m.matrixAutoUpdate&&m.updateMatrix();o.material.uniforms.uvTransform.value.copy(m.matrix);if(c!==m||u!==m.version||p!==e.toneMapping){o.material.needsUpdate=true;c=m;u=m.version;p=e.toneMapping}n.unshift(o,o.geometry,o.material,0,0,null)}}function setClear(e,t){n.buffers.color.setClear(e.r,e.g,e.b,t,i)}return{getClearColor:function(){return s},setClearColor:function(e,t=1){s.set(e);a=t;setClear(s,a)},getClearAlpha:function(){return a},setClearAlpha:function(e){a=e;setClear(s,a)},render:render}}function WebGLBindingStates(e,t,n,r){const i=e.getParameter(34921);const s=r.isWebGL2?null:t.get(\"OES_vertex_array_object\");const a=r.isWebGL2||null!==s;const o={};const l=createBindingState(null);let c=l;function setup(t,r,i,s,o){let l=false;if(a){const e=getBindingState(s,i,r);if(c!==e){c=e;bindVertexArrayObject(c.object)}l=needsUpdate(s,o);l&&saveCache(s,o)}else{const e=true===r.wireframe;if(c.geometry!==s.id||c.program!==i.id||c.wireframe!==e){c.geometry=s.id;c.program=i.id;c.wireframe=e;l=true}}true===t.isInstancedMesh&&(l=true);null!==o&&n.update(o,34963);if(l){setupVertexAttributes(t,r,i,s);null!==o&&e.bindBuffer(34963,n.get(o).buffer)}}function createVertexArrayObject(){return r.isWebGL2?e.createVertexArray():s.createVertexArrayOES()}function bindVertexArrayObject(t){return r.isWebGL2?e.bindVertexArray(t):s.bindVertexArrayOES(t)}function deleteVertexArrayObject(t){return r.isWebGL2?e.deleteVertexArray(t):s.deleteVertexArrayOES(t)}function getBindingState(e,t,n){const r=true===n.wireframe;let i=o[e.id];if(void 0===i){i={};o[e.id]=i}let s=i[t.id];if(void 0===s){s={};i[t.id]=s}let a=s[r];if(void 0===a){a=createBindingState(createVertexArrayObject());s[r]=a}return a}function createBindingState(e){const t=[];const n=[];const r=[];for(let e=0;e<i;e++){t[e]=0;n[e]=0;r[e]=0}return{geometry:null,program:null,wireframe:false,newAttributes:t,enabledAttributes:n,attributeDivisors:r,object:e,attributes:{},index:null}}function needsUpdate(e,t){const n=c.attributes;const r=e.attributes;let i=0;for(const e in r){const t=n[e];const s=r[e];if(void 0===t)return true;if(t.attribute!==s)return true;if(t.data!==s.data)return true;i++}return c.attributesNum!==i||c.index!==t}function saveCache(e,t){const n={};const r=e.attributes;let i=0;for(const e in r){const t=r[e];const s={};s.attribute=t;t.data&&(s.data=t.data);n[e]=s;i++}c.attributes=n;c.attributesNum=i;c.index=t}function initAttributes(){const e=c.newAttributes;for(let t=0,n=e.length;t<n;t++)e[t]=0}function enableAttribute(e){enableAttributeAndDivisor(e,0)}function enableAttributeAndDivisor(n,i){const s=c.newAttributes;const a=c.enabledAttributes;const o=c.attributeDivisors;s[n]=1;if(0===a[n]){e.enableVertexAttribArray(n);a[n]=1}if(o[n]!==i){const s=r.isWebGL2?e:t.get(\"ANGLE_instanced_arrays\");s[r.isWebGL2?\"vertexAttribDivisor\":\"vertexAttribDivisorANGLE\"](n,i);o[n]=i}}function disableUnusedAttributes(){const t=c.newAttributes;const n=c.enabledAttributes;for(let r=0,i=n.length;r<i;r++)if(n[r]!==t[r]){e.disableVertexAttribArray(r);n[r]=0}}function vertexAttribPointer(t,n,i,s,a,o){true!==r.isWebGL2||5124!==i&&5125!==i?e.vertexAttribPointer(t,n,i,s,a,o):e.vertexAttribIPointer(t,n,i,a,o)}function setupVertexAttributes(i,s,a,o){if(false===r.isWebGL2&&(i.isInstancedMesh||o.isInstancedBufferGeometry)&&null===t.get(\"ANGLE_instanced_arrays\"))return;initAttributes();const l=o.attributes;const c=a.getAttributes();const u=s.defaultAttributeValues;for(const t in c){const r=c[t];if(r.location>=0){let s=l[t];if(void 0===s){\"instanceMatrix\"===t&&i.instanceMatrix&&(s=i.instanceMatrix);\"instanceColor\"===t&&i.instanceColor&&(s=i.instanceColor)}if(void 0!==s){const t=s.normalized;const a=s.itemSize;const l=n.get(s);if(void 0===l)continue;const c=l.buffer;const u=l.type;const h=l.bytesPerElement;if(s.isInterleavedBufferAttribute){const n=s.data;const l=n.stride;const d=s.offset;if(n&&n.isInstancedInterleavedBuffer){for(let e=0;e<r.locationSize;e++)enableAttributeAndDivisor(r.location+e,n.meshPerAttribute);true!==i.isInstancedMesh&&void 0===o._maxInstanceCount&&(o._maxInstanceCount=n.meshPerAttribute*n.count)}else for(let e=0;e<r.locationSize;e++)enableAttribute(r.location+e);e.bindBuffer(34962,c);for(let e=0;e<r.locationSize;e++)vertexAttribPointer(r.location+e,a/r.locationSize,u,t,l*h,(d+a/r.locationSize*e)*h)}else{if(s.isInstancedBufferAttribute){for(let e=0;e<r.locationSize;e++)enableAttributeAndDivisor(r.location+e,s.meshPerAttribute);true!==i.isInstancedMesh&&void 0===o._maxInstanceCount&&(o._maxInstanceCount=s.meshPerAttribute*s.count)}else for(let e=0;e<r.locationSize;e++)enableAttribute(r.location+e);e.bindBuffer(34962,c);for(let e=0;e<r.locationSize;e++)vertexAttribPointer(r.location+e,a/r.locationSize,u,t,a*h,a/r.locationSize*e*h)}}else if(void 0!==u){const n=u[t];if(void 0!==n)switch(n.length){case 2:e.vertexAttrib2fv(r.location,n);break;case 3:e.vertexAttrib3fv(r.location,n);break;case 4:e.vertexAttrib4fv(r.location,n);break;default:e.vertexAttrib1fv(r.location,n)}}}}disableUnusedAttributes()}function dispose(){reset();for(const e in o){const t=o[e];for(const e in t){const n=t[e];for(const e in n){deleteVertexArrayObject(n[e].object);delete n[e]}delete t[e]}delete o[e]}}function releaseStatesOfGeometry(e){if(void 0===o[e.id])return;const t=o[e.id];for(const e in t){const n=t[e];for(const e in n){deleteVertexArrayObject(n[e].object);delete n[e]}delete t[e]}delete o[e.id]}function releaseStatesOfProgram(e){for(const t in o){const n=o[t];if(void 0===n[e.id])continue;const r=n[e.id];for(const e in r){deleteVertexArrayObject(r[e].object);delete r[e]}delete n[e.id]}}function reset(){resetDefaultState();if(c!==l){c=l;bindVertexArrayObject(c.object)}}function resetDefaultState(){l.geometry=null;l.program=null;l.wireframe=false}return{setup:setup,reset:reset,resetDefaultState:resetDefaultState,dispose:dispose,releaseStatesOfGeometry:releaseStatesOfGeometry,releaseStatesOfProgram:releaseStatesOfProgram,initAttributes:initAttributes,enableAttribute:enableAttribute,disableUnusedAttributes:disableUnusedAttributes}}function WebGLBufferRenderer(e,t,n,r){const i=r.isWebGL2;let s;function setMode(e){s=e}function render(t,r){e.drawArrays(s,t,r);n.update(r,s,1)}function renderInstances(r,a,o){if(0===o)return;let l,c;if(i){l=e;c=\"drawArraysInstanced\"}else{l=t.get(\"ANGLE_instanced_arrays\");c=\"drawArraysInstancedANGLE\";if(null===l){console.error(\"THREE.WebGLBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.\");return}}l[c](s,r,a,o);n.update(a,s,o)}this.setMode=setMode;this.render=render;this.renderInstances=renderInstances}function WebGLCapabilities(e,t,n){let r;function getMaxAnisotropy(){if(void 0!==r)return r;if(true===t.has(\"EXT_texture_filter_anisotropic\")){const n=t.get(\"EXT_texture_filter_anisotropic\");r=e.getParameter(n.MAX_TEXTURE_MAX_ANISOTROPY_EXT)}else r=0;return r}function getMaxPrecision(t){if(\"highp\"===t){if(e.getShaderPrecisionFormat(35633,36338).precision>0&&e.getShaderPrecisionFormat(35632,36338).precision>0)return\"highp\";t=\"mediump\"}return\"mediump\"===t&&e.getShaderPrecisionFormat(35633,36337).precision>0&&e.getShaderPrecisionFormat(35632,36337).precision>0?\"mediump\":\"lowp\"}const i=\"undefined\"!==typeof WebGL2RenderingContext&&e instanceof WebGL2RenderingContext||\"undefined\"!==typeof WebGL2ComputeRenderingContext&&e instanceof WebGL2ComputeRenderingContext;let s=void 0!==n.precision?n.precision:\"highp\";const a=getMaxPrecision(s);if(a!==s){console.warn(\"THREE.WebGLRenderer:\",s,\"not supported, using\",a,\"instead.\");s=a}const o=i||t.has(\"WEBGL_draw_buffers\");const l=true===n.logarithmicDepthBuffer;const c=e.getParameter(34930);const u=e.getParameter(35660);const h=e.getParameter(3379);const d=e.getParameter(34076);const p=e.getParameter(34921);const f=e.getParameter(36347);const m=e.getParameter(36348);const g=e.getParameter(36349);const y=u>0;const x=i||t.has(\"OES_texture_float\");const b=y&&x;const _=i?e.getParameter(36183):0;return{isWebGL2:i,drawBuffers:o,getMaxAnisotropy:getMaxAnisotropy,getMaxPrecision:getMaxPrecision,precision:s,logarithmicDepthBuffer:l,maxTextures:c,maxVertexTextures:u,maxTextureSize:h,maxCubemapSize:d,maxAttributes:p,maxVertexUniforms:f,maxVaryings:m,maxFragmentUniforms:g,vertexTextures:y,floatFragmentTextures:x,floatVertexTextures:b,maxSamples:_}}function WebGLClipping(e){const t=this;let n=null,r=0,i=false,s=false;const a=new Plane,o=new Matrix3,l={value:null,needsUpdate:false};this.uniform=l;this.numPlanes=0;this.numIntersection=0;this.init=function(e,t,s){const a=0!==e.length||t||0!==r||i;i=t;n=projectPlanes(e,s,0);r=e.length;return a};this.beginShadows=function(){s=true;projectPlanes(null)};this.endShadows=function(){s=false;resetGlobalState()};this.setState=function(t,a,o){const c=t.clippingPlanes,u=t.clipIntersection,h=t.clipShadows;const d=e.get(t);if(!i||null===c||0===c.length||s&&!h)s?projectPlanes(null):resetGlobalState();else{const e=s?0:r,t=4*e;let i=d.clippingState||null;l.value=i;i=projectPlanes(c,a,t,o);for(let e=0;e!==t;++e)i[e]=n[e];d.clippingState=i;this.numIntersection=u?this.numPlanes:0;this.numPlanes+=e}};function resetGlobalState(){if(l.value!==n){l.value=n;l.needsUpdate=r>0}t.numPlanes=r;t.numIntersection=0}function projectPlanes(e,n,r,i){const s=null!==e?e.length:0;let c=null;if(0!==s){c=l.value;if(true!==i||null===c){const t=r+4*s,i=n.matrixWorldInverse;o.getNormalMatrix(i);(null===c||c.length<t)&&(c=new Float32Array(t));for(let t=0,n=r;t!==s;++t,n+=4){a.copy(e[t]).applyMatrix4(i,o);a.normal.toArray(c,n);c[n+3]=a.constant}}l.value=c;l.needsUpdate=true}t.numPlanes=s;t.numIntersection=0;return c}}function WebGLCubeMaps(e){let t=new WeakMap;function mapTextureMapping(e,t){t===se?e.mapping=re:t===ae&&(e.mapping=ie);return e}function get(n){if(n&&n.isTexture&&false===n.isRenderTargetTexture){const r=n.mapping;if(r===se||r===ae){if(t.has(n)){const e=t.get(n).texture;return mapTextureMapping(e,n.mapping)}{const r=n.image;if(r&&r.height>0){const i=e.getRenderTarget();const s=new WebGLCubeRenderTarget(r.height/2);s.fromEquirectangularTexture(e,n);t.set(n,s);e.setRenderTarget(i);n.addEventListener(\"dispose\",onTextureDispose);return mapTextureMapping(s.texture,n.mapping)}return null}}}return n}function onTextureDispose(e){const n=e.target;n.removeEventListener(\"dispose\",onTextureDispose);const r=t.get(n);if(void 0!==r){t.delete(n);r.dispose()}}function dispose(){t=new WeakMap}return{get:get,dispose:dispose}}class OrthographicCamera extends Camera{constructor(e=-1,t=1,n=1,r=-1,i=.1,s=2e3){super();this.type=\"OrthographicCamera\";this.zoom=1;this.view=null;this.left=e;this.right=t;this.top=n;this.bottom=r;this.near=i;this.far=s;this.updateProjectionMatrix()}copy(e,t){super.copy(e,t);this.left=e.left;this.right=e.right;this.top=e.top;this.bottom=e.bottom;this.near=e.near;this.far=e.far;this.zoom=e.zoom;this.view=null===e.view?null:Object.assign({},e.view);return this}setViewOffset(e,t,n,r,i,s){null===this.view&&(this.view={enabled:true,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1});this.view.enabled=true;this.view.fullWidth=e;this.view.fullHeight=t;this.view.offsetX=n;this.view.offsetY=r;this.view.width=i;this.view.height=s;this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=false);this.updateProjectionMatrix()}updateProjectionMatrix(){const e=(this.right-this.left)/(2*this.zoom);const t=(this.top-this.bottom)/(2*this.zoom);const n=(this.right+this.left)/2;const r=(this.top+this.bottom)/2;let i=n-e;let s=n+e;let a=r+t;let o=r-t;if(null!==this.view&&this.view.enabled){const e=(this.right-this.left)/this.view.fullWidth/this.zoom;const t=(this.top-this.bottom)/this.view.fullHeight/this.zoom;i+=e*this.view.offsetX;s=i+e*this.view.width;a-=t*this.view.offsetY;o=a-t*this.view.height}this.projectionMatrix.makeOrthographic(i,s,a,o,this.near,this.far);this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(e){const t=super.toJSON(e);t.object.zoom=this.zoom;t.object.left=this.left;t.object.right=this.right;t.object.top=this.top;t.object.bottom=this.bottom;t.object.near=this.near;t.object.far=this.far;null!==this.view&&(t.object.view=Object.assign({},this.view));return t}}OrthographicCamera.prototype.isOrthographicCamera=true;class RawShaderMaterial extends ShaderMaterial{constructor(e){super(e);this.type=\"RawShaderMaterial\"}}RawShaderMaterial.prototype.isRawShaderMaterial=true;const eo=4;const to=8;const no=Math.pow(2,to);const ro=[.125,.215,.35,.446,.526,.582];const io=to-eo+1+ro.length;const so=20;const ao={[Xt]:0,[Jt]:1};const oo=new OrthographicCamera;const{_lodPlanes:lo,_sizeLods:co,_sigmas:uo}=_createPlanes();const ho=new Color;let po=null;const fo=(1+Math.sqrt(5))/2;const mo=1/fo;const go=[new Vector3(1,1,1),new Vector3(-1,1,1),new Vector3(1,1,-1),new Vector3(-1,1,-1),new Vector3(0,fo,mo),new Vector3(0,fo,-mo),new Vector3(mo,0,fo),new Vector3(-mo,0,fo),new Vector3(fo,mo,0),new Vector3(-fo,mo,0)];class PMREMGenerator{constructor(e){this._renderer=e;this._pingPongRenderTarget=null;this._blurMaterial=_getBlurShader(so);this._equirectShader=null;this._cubemapShader=null;this._compileMaterial(this._blurMaterial)}fromScene(e,t=0,n=.1,r=100){po=this._renderer.getRenderTarget();const i=this._allocateTargets();this._sceneToCubeUV(e,n,r,i);t>0&&this._blur(i,0,0,t);this._applyPMREM(i);this._cleanup(i);return i}fromEquirectangular(e){return this._fromTexture(e)}fromCubemap(e){return this._fromTexture(e)}compileCubemapShader(){if(null===this._cubemapShader){this._cubemapShader=_getCubemapShader();this._compileMaterial(this._cubemapShader)}}compileEquirectangularShader(){if(null===this._equirectShader){this._equirectShader=_getEquirectShader();this._compileMaterial(this._equirectShader)}}dispose(){this._blurMaterial.dispose();null!==this._cubemapShader&&this._cubemapShader.dispose();null!==this._equirectShader&&this._equirectShader.dispose();for(let e=0;e<lo.length;e++)lo[e].dispose()}_cleanup(e){this._pingPongRenderTarget.dispose();this._renderer.setRenderTarget(po);e.scissorTest=false;_setViewport(e,0,0,e.width,e.height)}_fromTexture(e){po=this._renderer.getRenderTarget();const t=this._allocateTargets(e);this._textureToCubeUV(e,t);this._applyPMREM(t);this._cleanup(t);return t}_allocateTargets(e){const t={magFilter:ye,minFilter:ye,generateMipmaps:false,type:Ce,format:Ne,encoding:Xt,depthBuffer:false};const n=_createRenderTarget(t);n.depthBuffer=!e;this._pingPongRenderTarget=_createRenderTarget(t);return n}_compileMaterial(e){const t=new Mesh(lo[0],e);this._renderer.compile(t,oo)}_sceneToCubeUV(e,t,n,r){const i=90;const s=1;const a=new PerspectiveCamera(i,s,t,n);const o=[1,-1,1,1,1,1];const l=[1,1,1,-1,-1,-1];const c=this._renderer;const u=c.autoClear;const h=c.toneMapping;c.getClearColor(ho);c.toneMapping=Z;c.autoClear=false;const p=new MeshBasicMaterial({name:\"PMREM.Background\",side:d,depthWrite:false,depthTest:false});const f=new Mesh(new BoxGeometry,p);let m=false;const g=e.background;if(g){if(g.isColor){p.color.copy(g);e.background=null;m=true}}else{p.color.copy(ho);m=true}for(let t=0;t<6;t++){const n=t%3;if(0==n){a.up.set(0,o[t],0);a.lookAt(l[t],0,0)}else if(1==n){a.up.set(0,0,o[t]);a.lookAt(0,l[t],0)}else{a.up.set(0,o[t],0);a.lookAt(0,0,l[t])}_setViewport(r,n*no,t>2?no:0,no,no);c.setRenderTarget(r);m&&c.render(f,a);c.render(e,a)}f.geometry.dispose();f.material.dispose();c.toneMapping=h;c.autoClear=u;e.background=g}_setEncoding(e,t){true===this._renderer.capabilities.isWebGL2&&t.format===Ne&&t.type===Me&&t.encoding===Jt?e.value=ao[Xt]:e.value=ao[t.encoding]}_textureToCubeUV(e,t){const n=this._renderer;const r=e.mapping===re||e.mapping===ie;r?null==this._cubemapShader&&(this._cubemapShader=_getCubemapShader()):null==this._equirectShader&&(this._equirectShader=_getEquirectShader());const i=r?this._cubemapShader:this._equirectShader;const s=new Mesh(lo[0],i);const a=i.uniforms;a.envMap.value=e;r||a.texelSize.value.set(1/e.image.width,1/e.image.height);this._setEncoding(a.inputEncoding,e);_setViewport(t,0,0,3*no,2*no);n.setRenderTarget(t);n.render(s,oo)}_applyPMREM(e){const t=this._renderer;const n=t.autoClear;t.autoClear=false;for(let t=1;t<io;t++){const n=Math.sqrt(uo[t]*uo[t]-uo[t-1]*uo[t-1]);const r=go[(t-1)%go.length];this._blur(e,t-1,t,n,r)}t.autoClear=n}_blur(e,t,n,r,i){const s=this._pingPongRenderTarget;this._halfBlur(e,s,t,n,r,\"latitudinal\",i);this._halfBlur(s,e,n,n,r,\"longitudinal\",i)}_halfBlur(e,t,n,r,i,s,a){const o=this._renderer;const l=this._blurMaterial;\"latitudinal\"!==s&&\"longitudinal\"!==s&&console.error(\"blur direction must be either latitudinal or longitudinal!\");const c=3;const u=new Mesh(lo[r],l);const h=l.uniforms;const d=co[n]-1;const p=isFinite(i)?Math.PI/(2*d):2*Math.PI/(2*so-1);const f=i/p;const m=isFinite(i)?1+Math.floor(c*f):so;m>so&&console.warn(`sigmaRadians, ${i}, is too large and will clip, as it requested ${m} samples when the maximum is set to ${so}`);const g=[];let y=0;for(let e=0;e<so;++e){const t=e/f;const n=Math.exp(-t*t/2);g.push(n);0==e?y+=n:e<m&&(y+=2*n)}for(let e=0;e<g.length;e++)g[e]=g[e]/y;h.envMap.value=e.texture;h.samples.value=m;h.weights.value=g;h.latitudinal.value=\"latitudinal\"===s;a&&(h.poleAxis.value=a);h.dTheta.value=p;h.mipInt.value=to-n;const x=co[r];const b=3*Math.max(0,no-2*x);const _=(0===r?0:2*no)+2*x*(r>to-eo?r-to+eo:0);_setViewport(t,b,_,3*x,2*x);o.setRenderTarget(t);o.render(u,oo)}}function _createPlanes(){const e=[];const t=[];const n=[];let r=to;for(let i=0;i<io;i++){const s=Math.pow(2,r);t.push(s);let a=1/s;i>to-eo?a=ro[i-to+eo-1]:0==i&&(a=0);n.push(a);const o=1/(s-1);const l=-o/2;const c=1+o/2;const u=[l,l,c,l,c,c,l,l,c,c,l,c];const h=6;const d=6;const p=3;const f=2;const m=1;const g=new Float32Array(p*d*h);const y=new Float32Array(f*d*h);const x=new Float32Array(m*d*h);for(let e=0;e<h;e++){const t=e%3*2/3-1;const n=e>2?0:-1;const r=[t,n,0,t+2/3,n,0,t+2/3,n+1,0,t,n,0,t+2/3,n+1,0,t,n+1,0];g.set(r,p*d*e);y.set(u,f*d*e);const i=[e,e,e,e,e,e];x.set(i,m*d*e)}const b=new BufferGeometry;b.setAttribute(\"position\",new BufferAttribute(g,p));b.setAttribute(\"uv\",new BufferAttribute(y,f));b.setAttribute(\"faceIndex\",new BufferAttribute(x,m));e.push(b);r>eo&&r--}return{_lodPlanes:e,_sizeLods:t,_sigmas:n}}function _createRenderTarget(e){const t=new WebGLRenderTarget(3*no,3*no,e);t.texture.mapping=oe;t.texture.name=\"PMREM.cubeUv\";t.scissorTest=true;return t}function _setViewport(e,t,n,r,i){e.viewport.set(t,n,r,i);e.scissor.set(t,n,r,i)}function _getBlurShader(e){const t=new Float32Array(e);const n=new Vector3(0,1,0);const r=new RawShaderMaterial({name:\"SphericalGaussianBlur\",defines:{n:e},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:t},latitudinal:{value:false},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:n}},vertexShader:_getCommonVertexShader(),fragmentShader:`\\n\\n\\t\\t\\tprecision mediump float;\\n\\t\\t\\tprecision mediump int;\\n\\n\\t\\t\\tvarying vec3 vOutputDirection;\\n\\n\\t\\t\\tuniform sampler2D envMap;\\n\\t\\t\\tuniform int samples;\\n\\t\\t\\tuniform float weights[ n ];\\n\\t\\t\\tuniform bool latitudinal;\\n\\t\\t\\tuniform float dTheta;\\n\\t\\t\\tuniform float mipInt;\\n\\t\\t\\tuniform vec3 poleAxis;\\n\\n\\t\\t\\t${_getEncodings()}\\n\\n\\t\\t\\t#define ENVMAP_TYPE_CUBE_UV\\n\\t\\t\\t#include <cube_uv_reflection_fragment>\\n\\n\\t\\t\\tvec3 getSample( float theta, vec3 axis ) {\\n\\n\\t\\t\\t\\tfloat cosTheta = cos( theta );\\n\\t\\t\\t\\t// Rodrigues' axis-angle rotation\\n\\t\\t\\t\\tvec3 sampleDirection = vOutputDirection * cosTheta\\n\\t\\t\\t\\t\\t+ cross( axis, vOutputDirection ) * sin( theta )\\n\\t\\t\\t\\t\\t+ axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta );\\n\\n\\t\\t\\t\\treturn bilinearCubeUV( envMap, sampleDirection, mipInt );\\n\\n\\t\\t\\t}\\n\\n\\t\\t\\tvoid main() {\\n\\n\\t\\t\\t\\tvec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection );\\n\\n\\t\\t\\t\\tif ( all( equal( axis, vec3( 0.0 ) ) ) ) {\\n\\n\\t\\t\\t\\t\\taxis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x );\\n\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\taxis = normalize( axis );\\n\\n\\t\\t\\t\\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\\n\\t\\t\\t\\tgl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis );\\n\\n\\t\\t\\t\\tfor ( int i = 1; i < n; i++ ) {\\n\\n\\t\\t\\t\\t\\tif ( i >= samples ) {\\n\\n\\t\\t\\t\\t\\t\\tbreak;\\n\\n\\t\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t\\tfloat theta = dTheta * float( i );\\n\\t\\t\\t\\t\\tgl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis );\\n\\t\\t\\t\\t\\tgl_FragColor.rgb += weights[ i ] * getSample( theta, axis );\\n\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t}\\n\\t\\t`,blending:g,depthTest:false,depthWrite:false});return r}function _getEquirectShader(){const e=new Vector2(1,1);const t=new RawShaderMaterial({name:\"EquirectangularToCubeUV\",uniforms:{envMap:{value:null},texelSize:{value:e},inputEncoding:{value:ao[Xt]}},vertexShader:_getCommonVertexShader(),fragmentShader:`\\n\\n\\t\\t\\tprecision mediump float;\\n\\t\\t\\tprecision mediump int;\\n\\n\\t\\t\\tvarying vec3 vOutputDirection;\\n\\n\\t\\t\\tuniform sampler2D envMap;\\n\\t\\t\\tuniform vec2 texelSize;\\n\\n\\t\\t\\t${_getEncodings()}\\n\\n\\t\\t\\t#include <common>\\n\\n\\t\\t\\tvoid main() {\\n\\n\\t\\t\\t\\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\\n\\n\\t\\t\\t\\tvec3 outputDirection = normalize( vOutputDirection );\\n\\t\\t\\t\\tvec2 uv = equirectUv( outputDirection );\\n\\n\\t\\t\\t\\tvec2 f = fract( uv / texelSize - 0.5 );\\n\\t\\t\\t\\tuv -= f * texelSize;\\n\\t\\t\\t\\tvec3 tl = envMapTexelToLinear( texture2D ( envMap, uv ) ).rgb;\\n\\t\\t\\t\\tuv.x += texelSize.x;\\n\\t\\t\\t\\tvec3 tr = envMapTexelToLinear( texture2D ( envMap, uv ) ).rgb;\\n\\t\\t\\t\\tuv.y += texelSize.y;\\n\\t\\t\\t\\tvec3 br = envMapTexelToLinear( texture2D ( envMap, uv ) ).rgb;\\n\\t\\t\\t\\tuv.x -= texelSize.x;\\n\\t\\t\\t\\tvec3 bl = envMapTexelToLinear( texture2D ( envMap, uv ) ).rgb;\\n\\n\\t\\t\\t\\tvec3 tm = mix( tl, tr, f.x );\\n\\t\\t\\t\\tvec3 bm = mix( bl, br, f.x );\\n\\t\\t\\t\\tgl_FragColor.rgb = mix( tm, bm, f.y );\\n\\n\\t\\t\\t}\\n\\t\\t`,blending:g,depthTest:false,depthWrite:false});return t}function _getCubemapShader(){const e=new RawShaderMaterial({name:\"CubemapToCubeUV\",uniforms:{envMap:{value:null},inputEncoding:{value:ao[Xt]}},vertexShader:_getCommonVertexShader(),fragmentShader:`\\n\\n\\t\\t\\tprecision mediump float;\\n\\t\\t\\tprecision mediump int;\\n\\n\\t\\t\\tvarying vec3 vOutputDirection;\\n\\n\\t\\t\\tuniform samplerCube envMap;\\n\\n\\t\\t\\t${_getEncodings()}\\n\\n\\t\\t\\tvoid main() {\\n\\n\\t\\t\\t\\tgl_FragColor = envMapTexelToLinear( textureCube( envMap, vec3( - vOutputDirection.x, vOutputDirection.yz ) ) );\\n\\n\\t\\t\\t}\\n\\t\\t`,blending:g,depthTest:false,depthWrite:false});return e}function _getCommonVertexShader(){return\"\\n\\n\\t\\tprecision mediump float;\\n\\t\\tprecision mediump int;\\n\\n\\t\\tattribute vec3 position;\\n\\t\\tattribute vec2 uv;\\n\\t\\tattribute float faceIndex;\\n\\n\\t\\tvarying vec3 vOutputDirection;\\n\\n\\t\\t// RH coordinate system; PMREM face-indexing convention\\n\\t\\tvec3 getDirection( vec2 uv, float face ) {\\n\\n\\t\\t\\tuv = 2.0 * uv - 1.0;\\n\\n\\t\\t\\tvec3 direction = vec3( uv, 1.0 );\\n\\n\\t\\t\\tif ( face == 0.0 ) {\\n\\n\\t\\t\\t\\tdirection = direction.zyx; // ( 1, v, u ) pos x\\n\\n\\t\\t\\t} else if ( face == 1.0 ) {\\n\\n\\t\\t\\t\\tdirection = direction.xzy;\\n\\t\\t\\t\\tdirection.xz *= -1.0; // ( -u, 1, -v ) pos y\\n\\n\\t\\t\\t} else if ( face == 2.0 ) {\\n\\n\\t\\t\\t\\tdirection.x *= -1.0; // ( -u, v, 1 ) pos z\\n\\n\\t\\t\\t} else if ( face == 3.0 ) {\\n\\n\\t\\t\\t\\tdirection = direction.zyx;\\n\\t\\t\\t\\tdirection.xz *= -1.0; // ( -1, v, -u ) neg x\\n\\n\\t\\t\\t} else if ( face == 4.0 ) {\\n\\n\\t\\t\\t\\tdirection = direction.xzy;\\n\\t\\t\\t\\tdirection.xy *= -1.0; // ( -u, -1, v ) neg y\\n\\n\\t\\t\\t} else if ( face == 5.0 ) {\\n\\n\\t\\t\\t\\tdirection.z *= -1.0; // ( u, v, -1 ) neg z\\n\\n\\t\\t\\t}\\n\\n\\t\\t\\treturn direction;\\n\\n\\t\\t}\\n\\n\\t\\tvoid main() {\\n\\n\\t\\t\\tvOutputDirection = getDirection( uv, faceIndex );\\n\\t\\t\\tgl_Position = vec4( position, 1.0 );\\n\\n\\t\\t}\\n\\t\"}function _getEncodings(){return\"\\n\\n\\t\\tuniform int inputEncoding;\\n\\n\\t\\t#include <encodings_pars_fragment>\\n\\n\\t\\tvec4 inputTexelToLinear( vec4 value ) {\\n\\n\\t\\t\\tif ( inputEncoding == 0 ) {\\n\\n\\t\\t\\t\\treturn value;\\n\\n\\t\\t\\t} else {\\n\\n\\t\\t\\t\\treturn sRGBToLinear( value );\\n\\n\\t\\t\\t}\\n\\n\\t\\t}\\n\\n\\t\\tvec4 envMapTexelToLinear( vec4 color ) {\\n\\n\\t\\t\\treturn inputTexelToLinear( color );\\n\\n\\t\\t}\\n\\t\"}function WebGLCubeUVMaps(e){let t=new WeakMap;let n=null;function get(r){if(r&&r.isTexture&&false===r.isRenderTargetTexture){const i=r.mapping;const s=i===se||i===ae;const a=i===re||i===ie;if(s||a){if(t.has(r))return t.get(r).texture;{const i=r.image;if(s&&i&&i.height>0||a&&i&&isCubeTextureComplete(i)){const i=e.getRenderTarget();null===n&&(n=new PMREMGenerator(e));const a=s?n.fromEquirectangular(r):n.fromCubemap(r);t.set(r,a);e.setRenderTarget(i);r.addEventListener(\"dispose\",onTextureDispose);return a.texture}return null}}}return r}function isCubeTextureComplete(e){let t=0;const n=6;for(let r=0;r<n;r++)void 0!==e[r]&&t++;return t===n}function onTextureDispose(e){const n=e.target;n.removeEventListener(\"dispose\",onTextureDispose);const r=t.get(n);if(void 0!==r){t.delete(n);r.dispose()}}function dispose(){t=new WeakMap;if(null!==n){n.dispose();n=null}}return{get:get,dispose:dispose}}function WebGLExtensions(e){const t={};function getExtension(n){if(void 0!==t[n])return t[n];let r;switch(n){case\"WEBGL_depth_texture\":r=e.getExtension(\"WEBGL_depth_texture\")||e.getExtension(\"MOZ_WEBGL_depth_texture\")||e.getExtension(\"WEBKIT_WEBGL_depth_texture\");break;case\"EXT_texture_filter_anisotropic\":r=e.getExtension(\"EXT_texture_filter_anisotropic\")||e.getExtension(\"MOZ_EXT_texture_filter_anisotropic\")||e.getExtension(\"WEBKIT_EXT_texture_filter_anisotropic\");break;case\"WEBGL_compressed_texture_s3tc\":r=e.getExtension(\"WEBGL_compressed_texture_s3tc\")||e.getExtension(\"MOZ_WEBGL_compressed_texture_s3tc\")||e.getExtension(\"WEBKIT_WEBGL_compressed_texture_s3tc\");break;case\"WEBGL_compressed_texture_pvrtc\":r=e.getExtension(\"WEBGL_compressed_texture_pvrtc\")||e.getExtension(\"WEBKIT_WEBGL_compressed_texture_pvrtc\");break;default:r=e.getExtension(n)}t[n]=r;return r}return{has:function(e){return null!==getExtension(e)},init:function(e){if(e.isWebGL2)getExtension(\"EXT_color_buffer_float\");else{getExtension(\"WEBGL_depth_texture\");getExtension(\"OES_texture_float\");getExtension(\"OES_texture_half_float\");getExtension(\"OES_texture_half_float_linear\");getExtension(\"OES_standard_derivatives\");getExtension(\"OES_element_index_uint\");getExtension(\"OES_vertex_array_object\");getExtension(\"ANGLE_instanced_arrays\")}getExtension(\"OES_texture_float_linear\");getExtension(\"EXT_color_buffer_half_float\");getExtension(\"WEBGL_multisampled_render_to_texture\")},get:function(e){const t=getExtension(e);null===t&&console.warn(\"THREE.WebGLRenderer: \"+e+\" extension not supported.\");return t}}}function WebGLGeometries(e,t,n,r){const i={};const s=new WeakMap;function onGeometryDispose(e){const a=e.target;null!==a.index&&t.remove(a.index);for(const e in a.attributes)t.remove(a.attributes[e]);a.removeEventListener(\"dispose\",onGeometryDispose);delete i[a.id];const o=s.get(a);if(o){t.remove(o);s.delete(a)}r.releaseStatesOfGeometry(a);true===a.isInstancedBufferGeometry&&delete a._maxInstanceCount;n.memory.geometries--}function get(e,t){if(true===i[t.id])return t;t.addEventListener(\"dispose\",onGeometryDispose);i[t.id]=true;n.memory.geometries++;return t}function update(e){const n=e.attributes;for(const e in n)t.update(n[e],34962);const r=e.morphAttributes;for(const e in r){const n=r[e];for(let e=0,r=n.length;e<r;e++)t.update(n[e],34962)}}function updateWireframeAttribute(e){const n=[];const r=e.index;const i=e.attributes.position;let a=0;if(null!==r){const e=r.array;a=r.version;for(let t=0,r=e.length;t<r;t+=3){const r=e[t+0];const i=e[t+1];const s=e[t+2];n.push(r,i,i,s,s,r)}}else{const e=i.array;a=i.version;for(let t=0,r=e.length/3-1;t<r;t+=3){const e=t+0;const r=t+1;const i=t+2;n.push(e,r,r,i,i,e)}}const o=new(arrayMax(n)>65535?Uint32BufferAttribute:Uint16BufferAttribute)(n,1);o.version=a;const l=s.get(e);l&&t.remove(l);s.set(e,o)}function getWireframeAttribute(e){const t=s.get(e);if(t){const n=e.index;null!==n&&t.version<n.version&&updateWireframeAttribute(e)}else updateWireframeAttribute(e);return s.get(e)}return{get:get,update:update,getWireframeAttribute:getWireframeAttribute}}function WebGLIndexedBufferRenderer(e,t,n,r){const i=r.isWebGL2;let s;function setMode(e){s=e}let a,o;function setIndex(e){a=e.type;o=e.bytesPerElement}function render(t,r){e.drawElements(s,r,a,t*o);n.update(r,s,1)}function renderInstances(r,l,c){if(0===c)return;let u,h;if(i){u=e;h=\"drawElementsInstanced\"}else{u=t.get(\"ANGLE_instanced_arrays\");h=\"drawElementsInstancedANGLE\";if(null===u){console.error(\"THREE.WebGLIndexedBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.\");return}}u[h](s,l,a,r*o,c);n.update(l,s,c)}this.setMode=setMode;this.setIndex=setIndex;this.render=render;this.renderInstances=renderInstances}function WebGLInfo(e){const t={geometries:0,textures:0};const n={frame:0,calls:0,triangles:0,points:0,lines:0};function update(e,t,r){n.calls++;switch(t){case 4:n.triangles+=r*(e/3);break;case 1:n.lines+=r*(e/2);break;case 3:n.lines+=r*(e-1);break;case 2:n.lines+=r*e;break;case 0:n.points+=r*e;break;default:console.error(\"THREE.WebGLInfo: Unknown draw mode:\",t);break}}function reset(){n.frame++;n.calls=0;n.triangles=0;n.points=0;n.lines=0}return{memory:t,render:n,programs:null,autoReset:true,reset:reset,update:update}}class DataTexture2DArray extends Texture{constructor(e=null,t=1,n=1,r=1){super(null);this.image={data:e,width:t,height:n,depth:r};this.magFilter=de;this.minFilter=de;this.wrapR=ue;this.generateMipmaps=false;this.flipY=false;this.unpackAlignment=1}}DataTexture2DArray.prototype.isDataTexture2DArray=true;function numericalSort(e,t){return e[0]-t[0]}function absNumericalSort(e,t){return Math.abs(t[1])-Math.abs(e[1])}function denormalize(e,t){let n=1;const r=t.isInterleavedBufferAttribute?t.data.array:t.array;r instanceof Int8Array?n=127:r instanceof Int16Array?n=32767:r instanceof Int32Array?n=2147483647:console.error(\"THREE.WebGLMorphtargets: Unsupported morph attribute data type: \",r);e.divideScalar(n)}function WebGLMorphtargets(e,t,n){const r={};const i=new Float32Array(8);const s=new WeakMap;const a=new Vector3;const o=[];for(let e=0;e<8;e++)o[e]=[e,0];function update(l,c,u,h){const d=l.morphTargetInfluences;if(true===t.isWebGL2){const r=c.morphAttributes.position.length;let i=s.get(c);if(void 0===i||i.count!==r){void 0!==i&&i.texture.dispose();const e=void 0!==c.morphAttributes.normal;const n=c.morphAttributes.position;const o=c.morphAttributes.normal||[];const l=c.attributes.position.count;const u=true===e?2:1;let h=l*u;let d=1;if(h>t.maxTextureSize){d=Math.ceil(h/t.maxTextureSize);h=t.maxTextureSize}const p=new Float32Array(h*d*4*r);const f=new DataTexture2DArray(p,h,d,r);f.format=Ne;f.type=Le;f.needsUpdate=true;const m=4*u;for(let t=0;t<r;t++){const r=n[t];const i=o[t];const s=h*d*4*t;for(let t=0;t<r.count;t++){a.fromBufferAttribute(r,t);true===r.normalized&&denormalize(a,r);const n=t*m;p[s+n+0]=a.x;p[s+n+1]=a.y;p[s+n+2]=a.z;p[s+n+3]=0;if(true===e){a.fromBufferAttribute(i,t);true===i.normalized&&denormalize(a,i);p[s+n+4]=a.x;p[s+n+5]=a.y;p[s+n+6]=a.z;p[s+n+7]=0}}}i={count:r,texture:f,size:new Vector2(h,d)};s.set(c,i)}let o=0;for(let e=0;e<d.length;e++)o+=d[e];const l=c.morphTargetsRelative?1:1-o;h.getUniforms().setValue(e,\"morphTargetBaseInfluence\",l);h.getUniforms().setValue(e,\"morphTargetInfluences\",d);h.getUniforms().setValue(e,\"morphTargetsTexture\",i.texture,n);h.getUniforms().setValue(e,\"morphTargetsTextureSize\",i.size)}else{const t=void 0===d?0:d.length;let n=r[c.id];if(void 0===n||n.length!==t){n=[];for(let e=0;e<t;e++)n[e]=[e,0];r[c.id]=n}for(let e=0;e<t;e++){const t=n[e];t[0]=e;t[1]=d[e]}n.sort(absNumericalSort);for(let e=0;e<8;e++)if(e<t&&n[e][1]){o[e][0]=n[e][0];o[e][1]=n[e][1]}else{o[e][0]=Number.MAX_SAFE_INTEGER;o[e][1]=0}o.sort(numericalSort);const s=c.morphAttributes.position;const a=c.morphAttributes.normal;let l=0;for(let e=0;e<8;e++){const t=o[e];const n=t[0];const r=t[1];if(n!==Number.MAX_SAFE_INTEGER&&r){s&&c.getAttribute(\"morphTarget\"+e)!==s[n]&&c.setAttribute(\"morphTarget\"+e,s[n]);a&&c.getAttribute(\"morphNormal\"+e)!==a[n]&&c.setAttribute(\"morphNormal\"+e,a[n]);i[e]=r;l+=r}else{s&&true===c.hasAttribute(\"morphTarget\"+e)&&c.deleteAttribute(\"morphTarget\"+e);a&&true===c.hasAttribute(\"morphNormal\"+e)&&c.deleteAttribute(\"morphNormal\"+e);i[e]=0}}const u=c.morphTargetsRelative?1:1-l;h.getUniforms().setValue(e,\"morphTargetBaseInfluence\",u);h.getUniforms().setValue(e,\"morphTargetInfluences\",i)}}return{update:update}}function WebGLObjects(e,t,n,r){let i=new WeakMap;function update(e){const s=r.render.frame;const a=e.geometry;const o=t.get(e,a);if(i.get(o)!==s){t.update(o);i.set(o,s)}if(e.isInstancedMesh){false===e.hasEventListener(\"dispose\",onInstancedMeshDispose)&&e.addEventListener(\"dispose\",onInstancedMeshDispose);n.update(e.instanceMatrix,34962);null!==e.instanceColor&&n.update(e.instanceColor,34962)}return o}function dispose(){i=new WeakMap}function onInstancedMeshDispose(e){const t=e.target;t.removeEventListener(\"dispose\",onInstancedMeshDispose);n.remove(t.instanceMatrix);null!==t.instanceColor&&n.remove(t.instanceColor)}return{update:update,dispose:dispose}}class DataTexture3D extends Texture{constructor(e=null,t=1,n=1,r=1){super(null);this.image={data:e,width:t,height:n,depth:r};this.magFilter=de;this.minFilter=de;this.wrapR=ue;this.generateMipmaps=false;this.flipY=false;this.unpackAlignment=1}}DataTexture3D.prototype.isDataTexture3D=true;const yo=new Texture;const vo=new DataTexture2DArray;const xo=new DataTexture3D;const bo=new CubeTexture;const _o=[];const Mo=[];const wo=new Float32Array(16);const So=new Float32Array(9);const To=new Float32Array(4);function flatten(e,t,n){const r=e[0];if(r<=0||r>0)return e;const i=t*n;let s=_o[i];if(void 0===s){s=new Float32Array(i);_o[i]=s}if(0!==t){r.toArray(s,0);for(let r=1,i=0;r!==t;++r){i+=n;e[r].toArray(s,i)}}return s}function arraysEqual(e,t){if(e.length!==t.length)return false;for(let n=0,r=e.length;n<r;n++)if(e[n]!==t[n])return false;return true}function copyArray(e,t){for(let n=0,r=t.length;n<r;n++)e[n]=t[n]}function allocTexUnits(e,t){let n=Mo[t];if(void 0===n){n=new Int32Array(t);Mo[t]=n}for(let r=0;r!==t;++r)n[r]=e.allocateTextureUnit();return n}function setValueV1f(e,t){const n=this.cache;if(n[0]!==t){e.uniform1f(this.addr,t);n[0]=t}}function setValueV2f(e,t){const n=this.cache;if(void 0!==t.x){if(n[0]!==t.x||n[1]!==t.y){e.uniform2f(this.addr,t.x,t.y);n[0]=t.x;n[1]=t.y}}else{if(arraysEqual(n,t))return;e.uniform2fv(this.addr,t);copyArray(n,t)}}function setValueV3f(e,t){const n=this.cache;if(void 0!==t.x){if(n[0]!==t.x||n[1]!==t.y||n[2]!==t.z){e.uniform3f(this.addr,t.x,t.y,t.z);n[0]=t.x;n[1]=t.y;n[2]=t.z}}else if(void 0!==t.r){if(n[0]!==t.r||n[1]!==t.g||n[2]!==t.b){e.uniform3f(this.addr,t.r,t.g,t.b);n[0]=t.r;n[1]=t.g;n[2]=t.b}}else{if(arraysEqual(n,t))return;e.uniform3fv(this.addr,t);copyArray(n,t)}}function setValueV4f(e,t){const n=this.cache;if(void 0!==t.x){if(n[0]!==t.x||n[1]!==t.y||n[2]!==t.z||n[3]!==t.w){e.uniform4f(this.addr,t.x,t.y,t.z,t.w);n[0]=t.x;n[1]=t.y;n[2]=t.z;n[3]=t.w}}else{if(arraysEqual(n,t))return;e.uniform4fv(this.addr,t);copyArray(n,t)}}function setValueM2(e,t){const n=this.cache;const r=t.elements;if(void 0===r){if(arraysEqual(n,t))return;e.uniformMatrix2fv(this.addr,false,t);copyArray(n,t)}else{if(arraysEqual(n,r))return;To.set(r);e.uniformMatrix2fv(this.addr,false,To);copyArray(n,r)}}function setValueM3(e,t){const n=this.cache;const r=t.elements;if(void 0===r){if(arraysEqual(n,t))return;e.uniformMatrix3fv(this.addr,false,t);copyArray(n,t)}else{if(arraysEqual(n,r))return;So.set(r);e.uniformMatrix3fv(this.addr,false,So);copyArray(n,r)}}function setValueM4(e,t){const n=this.cache;const r=t.elements;if(void 0===r){if(arraysEqual(n,t))return;e.uniformMatrix4fv(this.addr,false,t);copyArray(n,t)}else{if(arraysEqual(n,r))return;wo.set(r);e.uniformMatrix4fv(this.addr,false,wo);copyArray(n,r)}}function setValueV1i(e,t){const n=this.cache;if(n[0]!==t){e.uniform1i(this.addr,t);n[0]=t}}function setValueV2i(e,t){const n=this.cache;if(!arraysEqual(n,t)){e.uniform2iv(this.addr,t);copyArray(n,t)}}function setValueV3i(e,t){const n=this.cache;if(!arraysEqual(n,t)){e.uniform3iv(this.addr,t);copyArray(n,t)}}function setValueV4i(e,t){const n=this.cache;if(!arraysEqual(n,t)){e.uniform4iv(this.addr,t);copyArray(n,t)}}function setValueV1ui(e,t){const n=this.cache;if(n[0]!==t){e.uniform1ui(this.addr,t);n[0]=t}}function setValueV2ui(e,t){const n=this.cache;if(!arraysEqual(n,t)){e.uniform2uiv(this.addr,t);copyArray(n,t)}}function setValueV3ui(e,t){const n=this.cache;if(!arraysEqual(n,t)){e.uniform3uiv(this.addr,t);copyArray(n,t)}}function setValueV4ui(e,t){const n=this.cache;if(!arraysEqual(n,t)){e.uniform4uiv(this.addr,t);copyArray(n,t)}}function setValueT1(e,t,n){const r=this.cache;const i=n.allocateTextureUnit();if(r[0]!==i){e.uniform1i(this.addr,i);r[0]=i}n.safeSetTexture2D(t||yo,i)}function setValueT3D1(e,t,n){const r=this.cache;const i=n.allocateTextureUnit();if(r[0]!==i){e.uniform1i(this.addr,i);r[0]=i}n.setTexture3D(t||xo,i)}function setValueT6(e,t,n){const r=this.cache;const i=n.allocateTextureUnit();if(r[0]!==i){e.uniform1i(this.addr,i);r[0]=i}n.safeSetTextureCube(t||bo,i)}function setValueT2DArray1(e,t,n){const r=this.cache;const i=n.allocateTextureUnit();if(r[0]!==i){e.uniform1i(this.addr,i);r[0]=i}n.setTexture2DArray(t||vo,i)}function getSingularSetter(e){switch(e){case 5126:return setValueV1f;case 35664:return setValueV2f;case 35665:return setValueV3f;case 35666:return setValueV4f;case 35674:return setValueM2;case 35675:return setValueM3;case 35676:return setValueM4;case 5124:case 35670:return setValueV1i;case 35667:case 35671:return setValueV2i;case 35668:case 35672:return setValueV3i;case 35669:case 35673:return setValueV4i;case 5125:return setValueV1ui;case 36294:return setValueV2ui;case 36295:return setValueV3ui;case 36296:return setValueV4ui;case 35678:case 36198:case 36298:case 36306:case 35682:return setValueT1;case 35679:case 36299:case 36307:return setValueT3D1;case 35680:case 36300:case 36308:case 36293:return setValueT6;case 36289:case 36303:case 36311:case 36292:return setValueT2DArray1}}function setValueV1fArray(e,t){e.uniform1fv(this.addr,t)}function setValueV2fArray(e,t){const n=flatten(t,this.size,2);e.uniform2fv(this.addr,n)}function setValueV3fArray(e,t){const n=flatten(t,this.size,3);e.uniform3fv(this.addr,n)}function setValueV4fArray(e,t){const n=flatten(t,this.size,4);e.uniform4fv(this.addr,n)}function setValueM2Array(e,t){const n=flatten(t,this.size,4);e.uniformMatrix2fv(this.addr,false,n)}function setValueM3Array(e,t){const n=flatten(t,this.size,9);e.uniformMatrix3fv(this.addr,false,n)}function setValueM4Array(e,t){const n=flatten(t,this.size,16);e.uniformMatrix4fv(this.addr,false,n)}function setValueV1iArray(e,t){e.uniform1iv(this.addr,t)}function setValueV2iArray(e,t){e.uniform2iv(this.addr,t)}function setValueV3iArray(e,t){e.uniform3iv(this.addr,t)}function setValueV4iArray(e,t){e.uniform4iv(this.addr,t)}function setValueV1uiArray(e,t){e.uniform1uiv(this.addr,t)}function setValueV2uiArray(e,t){e.uniform2uiv(this.addr,t)}function setValueV3uiArray(e,t){e.uniform3uiv(this.addr,t)}function setValueV4uiArray(e,t){e.uniform4uiv(this.addr,t)}function setValueT1Array(e,t,n){const r=t.length;const i=allocTexUnits(n,r);e.uniform1iv(this.addr,i);for(let e=0;e!==r;++e)n.safeSetTexture2D(t[e]||yo,i[e])}function setValueT3DArray(e,t,n){const r=t.length;const i=allocTexUnits(n,r);e.uniform1iv(this.addr,i);for(let e=0;e!==r;++e)n.setTexture3D(t[e]||xo,i[e])}function setValueT6Array(e,t,n){const r=t.length;const i=allocTexUnits(n,r);e.uniform1iv(this.addr,i);for(let e=0;e!==r;++e)n.safeSetTextureCube(t[e]||bo,i[e])}function setValueT2DArrayArray(e,t,n){const r=t.length;const i=allocTexUnits(n,r);e.uniform1iv(this.addr,i);for(let e=0;e!==r;++e)n.setTexture2DArray(t[e]||vo,i[e])}function getPureArraySetter(e){switch(e){case 5126:return setValueV1fArray;case 35664:return setValueV2fArray;case 35665:return setValueV3fArray;case 35666:return setValueV4fArray;case 35674:return setValueM2Array;case 35675:return setValueM3Array;case 35676:return setValueM4Array;case 5124:case 35670:return setValueV1iArray;case 35667:case 35671:return setValueV2iArray;case 35668:case 35672:return setValueV3iArray;case 35669:case 35673:return setValueV4iArray;case 5125:return setValueV1uiArray;case 36294:return setValueV2uiArray;case 36295:return setValueV3uiArray;case 36296:return setValueV4uiArray;case 35678:case 36198:case 36298:case 36306:case 35682:return setValueT1Array;case 35679:case 36299:case 36307:return setValueT3DArray;case 35680:case 36300:case 36308:case 36293:return setValueT6Array;case 36289:case 36303:case 36311:case 36292:return setValueT2DArrayArray}}function SingleUniform(e,t,n){this.id=e;this.addr=n;this.cache=[];this.setValue=getSingularSetter(t.type)}function PureArrayUniform(e,t,n){this.id=e;this.addr=n;this.cache=[];this.size=t.size;this.setValue=getPureArraySetter(t.type)}PureArrayUniform.prototype.updateCache=function(e){const t=this.cache;e instanceof Float32Array&&t.length!==e.length&&(this.cache=new Float32Array(e.length));copyArray(t,e)};function StructuredUniform(e){this.id=e;this.seq=[];this.map={}}StructuredUniform.prototype.setValue=function(e,t,n){const r=this.seq;for(let i=0,s=r.length;i!==s;++i){const s=r[i];s.setValue(e,t[s.id],n)}};const Eo=/(\\w+)(\\])?(\\[|\\.)?/g;function addUniform(e,t){e.seq.push(t);e.map[t.id]=t}function parseUniform(e,t,n){const r=e.name,i=r.length;Eo.lastIndex=0;while(true){const s=Eo.exec(r),a=Eo.lastIndex;let o=s[1];const l=\"]\"===s[2],c=s[3];l&&(o|=0);if(void 0===c||\"[\"===c&&a+2===i){addUniform(n,void 0===c?new SingleUniform(o,e,t):new PureArrayUniform(o,e,t));break}{const e=n.map;let t=e[o];if(void 0===t){t=new StructuredUniform(o);addUniform(n,t)}n=t}}}function WebGLUniforms(e,t){this.seq=[];this.map={};const n=e.getProgramParameter(t,35718);for(let r=0;r<n;++r){const n=e.getActiveUniform(t,r),i=e.getUniformLocation(t,n.name);parseUniform(n,i,this)}}WebGLUniforms.prototype.setValue=function(e,t,n,r){const i=this.map[t];void 0!==i&&i.setValue(e,n,r)};WebGLUniforms.prototype.setOptional=function(e,t,n){const r=t[n];void 0!==r&&this.setValue(e,n,r)};WebGLUniforms.upload=function(e,t,n,r){for(let i=0,s=t.length;i!==s;++i){const s=t[i],a=n[s.id];false!==a.needsUpdate&&s.setValue(e,a.value,r)}};WebGLUniforms.seqWithValue=function(e,t){const n=[];for(let r=0,i=e.length;r!==i;++r){const i=e[r];i.id in t&&n.push(i)}return n};function WebGLShader(e,t,n){const r=e.createShader(t);e.shaderSource(r,n);e.compileShader(r);return r}let Ao=0;function addLineNumbers(e){const t=e.split(\"\\n\");for(let e=0;e<t.length;e++)t[e]=e+1+\": \"+t[e];return t.join(\"\\n\")}function getEncodingComponents(e){switch(e){case Xt:return[\"Linear\",\"( value )\"];case Jt:return[\"sRGB\",\"( value )\"];default:console.warn(\"THREE.WebGLProgram: Unsupported encoding:\",e);return[\"Linear\",\"( value )\"]}}function getShaderErrors(e,t,n){const r=e.getShaderParameter(t,35713);const i=e.getShaderInfoLog(t).trim();return r&&\"\"===i?\"\":n.toUpperCase()+\"\\n\\n\"+i+\"\\n\\n\"+addLineNumbers(e.getShaderSource(t))}function getTexelDecodingFunction(e,t){const n=getEncodingComponents(t);return\"vec4 \"+e+\"( vec4 value ) { return \"+n[0]+\"ToLinear\"+n[1]+\"; }\"}function getTexelEncodingFunction(e,t){const n=getEncodingComponents(t);return\"vec4 \"+e+\"( vec4 value ) { return LinearTo\"+n[0]+n[1]+\"; }\"}function getToneMappingFunction(e,t){let n;switch(t){case Q:n=\"Linear\";break;case K:n=\"Reinhard\";break;case $:n=\"OptimizedCineon\";break;case ee:n=\"ACESFilmic\";break;case te:n=\"Custom\";break;default:console.warn(\"THREE.WebGLProgram: Unsupported toneMapping:\",t);n=\"Linear\"}return\"vec3 \"+e+\"( vec3 color ) { return \"+n+\"ToneMapping( color ); }\"}function generateExtensions(e){const t=[e.extensionDerivatives||e.envMapCubeUV||e.bumpMap||e.tangentSpaceNormalMap||e.clearcoatNormalMap||e.flatShading||\"physical\"===e.shaderID?\"#extension GL_OES_standard_derivatives : enable\":\"\",(e.extensionFragDepth||e.logarithmicDepthBuffer)&&e.rendererExtensionFragDepth?\"#extension GL_EXT_frag_depth : enable\":\"\",e.extensionDrawBuffers&&e.rendererExtensionDrawBuffers?\"#extension GL_EXT_draw_buffers : require\":\"\",(e.extensionShaderTextureLOD||e.envMap||e.transmission)&&e.rendererExtensionShaderTextureLod?\"#extension GL_EXT_shader_texture_lod : enable\":\"\"];return t.filter(filterEmptyLine).join(\"\\n\")}function generateDefines(e){const t=[];for(const n in e){const r=e[n];false!==r&&t.push(\"#define \"+n+\" \"+r)}return t.join(\"\\n\")}function fetchAttributeLocations(e,t){const n={};const r=e.getProgramParameter(t,35721);for(let i=0;i<r;i++){const r=e.getActiveAttrib(t,i);const s=r.name;let a=1;35674===r.type&&(a=2);35675===r.type&&(a=3);35676===r.type&&(a=4);n[s]={type:r.type,location:e.getAttribLocation(t,s),locationSize:a}}return n}function filterEmptyLine(e){return\"\"!==e}function replaceLightNums(e,t){return e.replace(/NUM_DIR_LIGHTS/g,t.numDirLights).replace(/NUM_SPOT_LIGHTS/g,t.numSpotLights).replace(/NUM_RECT_AREA_LIGHTS/g,t.numRectAreaLights).replace(/NUM_POINT_LIGHTS/g,t.numPointLights).replace(/NUM_HEMI_LIGHTS/g,t.numHemiLights).replace(/NUM_DIR_LIGHT_SHADOWS/g,t.numDirLightShadows).replace(/NUM_SPOT_LIGHT_SHADOWS/g,t.numSpotLightShadows).replace(/NUM_POINT_LIGHT_SHADOWS/g,t.numPointLightShadows)}function replaceClippingPlaneNums(e,t){return e.replace(/NUM_CLIPPING_PLANES/g,t.numClippingPlanes).replace(/UNION_CLIPPING_PLANES/g,t.numClippingPlanes-t.numClipIntersection)}const Lo=/^[ \\t]*#include +<([\\w\\d./]+)>/gm;function resolveIncludes(e){return e.replace(Lo,includeReplacer)}function includeReplacer(e,t){const n=Qa[t];if(void 0===n)throw new Error(\"Can not resolve #include <\"+t+\">\");return resolveIncludes(n)}const Co=/#pragma unroll_loop[\\s]+?for \\( int i \\= (\\d+)\\; i < (\\d+)\\; i \\+\\+ \\) \\{([\\s\\S]+?)(?=\\})\\}/g;const Ro=/#pragma unroll_loop_start\\s+for\\s*\\(\\s*int\\s+i\\s*=\\s*(\\d+)\\s*;\\s*i\\s*<\\s*(\\d+)\\s*;\\s*i\\s*\\+\\+\\s*\\)\\s*{([\\s\\S]+?)}\\s+#pragma unroll_loop_end/g;function unrollLoops(e){return e.replace(Ro,loopReplacer).replace(Co,deprecatedLoopReplacer)}function deprecatedLoopReplacer(e,t,n,r){console.warn(\"WebGLProgram: #pragma unroll_loop shader syntax is deprecated. Please use #pragma unroll_loop_start syntax instead.\");return loopReplacer(e,t,n,r)}function loopReplacer(e,t,n,r){let i=\"\";for(let e=parseInt(t);e<parseInt(n);e++)i+=r.replace(/\\[\\s*i\\s*\\]/g,\"[ \"+e+\" ]\").replace(/UNROLLED_LOOP_INDEX/g,e);return i}function generatePrecision(e){let t=\"precision \"+e.precision+\" float;\\nprecision \"+e.precision+\" int;\";\"highp\"===e.precision?t+=\"\\n#define HIGH_PRECISION\":\"mediump\"===e.precision?t+=\"\\n#define MEDIUM_PRECISION\":\"lowp\"===e.precision&&(t+=\"\\n#define LOW_PRECISION\");return t}function generateShadowMapTypeDefine(e){let t=\"SHADOWMAP_TYPE_BASIC\";e.shadowMapType===l?t=\"SHADOWMAP_TYPE_PCF\":e.shadowMapType===c?t=\"SHADOWMAP_TYPE_PCF_SOFT\":e.shadowMapType===u&&(t=\"SHADOWMAP_TYPE_VSM\");return t}function generateEnvMapTypeDefine(e){let t=\"ENVMAP_TYPE_CUBE\";if(e.envMap)switch(e.envMapMode){case re:case ie:t=\"ENVMAP_TYPE_CUBE\";break;case oe:case le:t=\"ENVMAP_TYPE_CUBE_UV\";break}return t}function generateEnvMapModeDefine(e){let t=\"ENVMAP_MODE_REFLECTION\";if(e.envMap)switch(e.envMapMode){case ie:case le:t=\"ENVMAP_MODE_REFRACTION\";break}return t}function generateEnvMapBlendingDefine(e){let t=\"ENVMAP_BLENDING_NONE\";if(e.envMap)switch(e.combine){case X:t=\"ENVMAP_BLENDING_MULTIPLY\";break;case J:t=\"ENVMAP_BLENDING_MIX\";break;case Y:t=\"ENVMAP_BLENDING_ADD\";break}return t}function WebGLProgram(e,t,n,r){const i=e.getContext();const s=n.defines;let a=n.vertexShader;let o=n.fragmentShader;const l=generateShadowMapTypeDefine(n);const c=generateEnvMapTypeDefine(n);const u=generateEnvMapModeDefine(n);const h=generateEnvMapBlendingDefine(n);const d=n.isWebGL2?\"\":generateExtensions(n);const p=generateDefines(s);const f=i.createProgram();let m,g;let y=n.glslVersion?\"#version \"+n.glslVersion+\"\\n\":\"\";if(n.isRawShaderMaterial){m=[p].filter(filterEmptyLine).join(\"\\n\");m.length>0&&(m+=\"\\n\");g=[d,p].filter(filterEmptyLine).join(\"\\n\");g.length>0&&(g+=\"\\n\")}else{m=[generatePrecision(n),\"#define SHADER_NAME \"+n.shaderName,p,n.instancing?\"#define USE_INSTANCING\":\"\",n.instancingColor?\"#define USE_INSTANCING_COLOR\":\"\",n.supportsVertexTextures?\"#define VERTEX_TEXTURES\":\"\",\"#define MAX_BONES \"+n.maxBones,n.useFog&&n.fog?\"#define USE_FOG\":\"\",n.useFog&&n.fogExp2?\"#define FOG_EXP2\":\"\",n.map?\"#define USE_MAP\":\"\",n.envMap?\"#define USE_ENVMAP\":\"\",n.envMap?\"#define \"+u:\"\",n.lightMap?\"#define USE_LIGHTMAP\":\"\",n.aoMap?\"#define USE_AOMAP\":\"\",n.emissiveMap?\"#define USE_EMISSIVEMAP\":\"\",n.bumpMap?\"#define USE_BUMPMAP\":\"\",n.normalMap?\"#define USE_NORMALMAP\":\"\",n.normalMap&&n.objectSpaceNormalMap?\"#define OBJECTSPACE_NORMALMAP\":\"\",n.normalMap&&n.tangentSpaceNormalMap?\"#define TANGENTSPACE_NORMALMAP\":\"\",n.clearcoatMap?\"#define USE_CLEARCOATMAP\":\"\",n.clearcoatRoughnessMap?\"#define USE_CLEARCOAT_ROUGHNESSMAP\":\"\",n.clearcoatNormalMap?\"#define USE_CLEARCOAT_NORMALMAP\":\"\",n.displacementMap&&n.supportsVertexTextures?\"#define USE_DISPLACEMENTMAP\":\"\",n.specularMap?\"#define USE_SPECULARMAP\":\"\",n.specularIntensityMap?\"#define USE_SPECULARINTENSITYMAP\":\"\",n.specularColorMap?\"#define USE_SPECULARCOLORMAP\":\"\",n.roughnessMap?\"#define USE_ROUGHNESSMAP\":\"\",n.metalnessMap?\"#define USE_METALNESSMAP\":\"\",n.alphaMap?\"#define USE_ALPHAMAP\":\"\",n.transmission?\"#define USE_TRANSMISSION\":\"\",n.transmissionMap?\"#define USE_TRANSMISSIONMAP\":\"\",n.thicknessMap?\"#define USE_THICKNESSMAP\":\"\",n.sheenColorMap?\"#define USE_SHEENCOLORMAP\":\"\",n.sheenRoughnessMap?\"#define USE_SHEENROUGHNESSMAP\":\"\",n.vertexTangents?\"#define USE_TANGENT\":\"\",n.vertexColors?\"#define USE_COLOR\":\"\",n.vertexAlphas?\"#define USE_COLOR_ALPHA\":\"\",n.vertexUvs?\"#define USE_UV\":\"\",n.uvsVertexOnly?\"#define UVS_VERTEX_ONLY\":\"\",n.flatShading?\"#define FLAT_SHADED\":\"\",n.skinning?\"#define USE_SKINNING\":\"\",n.useVertexTexture?\"#define BONE_TEXTURE\":\"\",n.morphTargets?\"#define USE_MORPHTARGETS\":\"\",n.morphNormals&&false===n.flatShading?\"#define USE_MORPHNORMALS\":\"\",n.morphTargets&&n.isWebGL2?\"#define MORPHTARGETS_TEXTURE\":\"\",n.morphTargets&&n.isWebGL2?\"#define MORPHTARGETS_COUNT \"+n.morphTargetsCount:\"\",n.doubleSided?\"#define DOUBLE_SIDED\":\"\",n.flipSided?\"#define FLIP_SIDED\":\"\",n.shadowMapEnabled?\"#define USE_SHADOWMAP\":\"\",n.shadowMapEnabled?\"#define \"+l:\"\",n.sizeAttenuation?\"#define USE_SIZEATTENUATION\":\"\",n.logarithmicDepthBuffer?\"#define USE_LOGDEPTHBUF\":\"\",n.logarithmicDepthBuffer&&n.rendererExtensionFragDepth?\"#define USE_LOGDEPTHBUF_EXT\":\"\",\"uniform mat4 modelMatrix;\",\"uniform mat4 modelViewMatrix;\",\"uniform mat4 projectionMatrix;\",\"uniform mat4 viewMatrix;\",\"uniform mat3 normalMatrix;\",\"uniform vec3 cameraPosition;\",\"uniform bool isOrthographic;\",\"#ifdef USE_INSTANCING\",\"\\tattribute mat4 instanceMatrix;\",\"#endif\",\"#ifdef USE_INSTANCING_COLOR\",\"\\tattribute vec3 instanceColor;\",\"#endif\",\"attribute vec3 position;\",\"attribute vec3 normal;\",\"attribute vec2 uv;\",\"#ifdef USE_TANGENT\",\"\\tattribute vec4 tangent;\",\"#endif\",\"#if defined( USE_COLOR_ALPHA )\",\"\\tattribute vec4 color;\",\"#elif defined( USE_COLOR )\",\"\\tattribute vec3 color;\",\"#endif\",\"#if ( defined( USE_MORPHTARGETS ) && ! defined( MORPHTARGETS_TEXTURE ) )\",\"\\tattribute vec3 morphTarget0;\",\"\\tattribute vec3 morphTarget1;\",\"\\tattribute vec3 morphTarget2;\",\"\\tattribute vec3 morphTarget3;\",\"\\t#ifdef USE_MORPHNORMALS\",\"\\t\\tattribute vec3 morphNormal0;\",\"\\t\\tattribute vec3 morphNormal1;\",\"\\t\\tattribute vec3 morphNormal2;\",\"\\t\\tattribute vec3 morphNormal3;\",\"\\t#else\",\"\\t\\tattribute vec3 morphTarget4;\",\"\\t\\tattribute vec3 morphTarget5;\",\"\\t\\tattribute vec3 morphTarget6;\",\"\\t\\tattribute vec3 morphTarget7;\",\"\\t#endif\",\"#endif\",\"#ifdef USE_SKINNING\",\"\\tattribute vec4 skinIndex;\",\"\\tattribute vec4 skinWeight;\",\"#endif\",\"\\n\"].filter(filterEmptyLine).join(\"\\n\");g=[d,generatePrecision(n),\"#define SHADER_NAME \"+n.shaderName,p,n.useFog&&n.fog?\"#define USE_FOG\":\"\",n.useFog&&n.fogExp2?\"#define FOG_EXP2\":\"\",n.map?\"#define USE_MAP\":\"\",n.matcap?\"#define USE_MATCAP\":\"\",n.envMap?\"#define USE_ENVMAP\":\"\",n.envMap?\"#define \"+c:\"\",n.envMap?\"#define \"+u:\"\",n.envMap?\"#define \"+h:\"\",n.lightMap?\"#define USE_LIGHTMAP\":\"\",n.aoMap?\"#define USE_AOMAP\":\"\",n.emissiveMap?\"#define USE_EMISSIVEMAP\":\"\",n.bumpMap?\"#define USE_BUMPMAP\":\"\",n.normalMap?\"#define USE_NORMALMAP\":\"\",n.normalMap&&n.objectSpaceNormalMap?\"#define OBJECTSPACE_NORMALMAP\":\"\",n.normalMap&&n.tangentSpaceNormalMap?\"#define TANGENTSPACE_NORMALMAP\":\"\",n.clearcoat?\"#define USE_CLEARCOAT\":\"\",n.clearcoatMap?\"#define USE_CLEARCOATMAP\":\"\",n.clearcoatRoughnessMap?\"#define USE_CLEARCOAT_ROUGHNESSMAP\":\"\",n.clearcoatNormalMap?\"#define USE_CLEARCOAT_NORMALMAP\":\"\",n.specularMap?\"#define USE_SPECULARMAP\":\"\",n.specularIntensityMap?\"#define USE_SPECULARINTENSITYMAP\":\"\",n.specularColorMap?\"#define USE_SPECULARCOLORMAP\":\"\",n.roughnessMap?\"#define USE_ROUGHNESSMAP\":\"\",n.metalnessMap?\"#define USE_METALNESSMAP\":\"\",n.alphaMap?\"#define USE_ALPHAMAP\":\"\",n.alphaTest?\"#define USE_ALPHATEST\":\"\",n.sheen?\"#define USE_SHEEN\":\"\",n.sheenColorMap?\"#define USE_SHEENCOLORMAP\":\"\",n.sheenRoughnessMap?\"#define USE_SHEENROUGHNESSMAP\":\"\",n.transmission?\"#define USE_TRANSMISSION\":\"\",n.transmissionMap?\"#define USE_TRANSMISSIONMAP\":\"\",n.thicknessMap?\"#define USE_THICKNESSMAP\":\"\",n.vertexTangents?\"#define USE_TANGENT\":\"\",n.vertexColors||n.instancingColor?\"#define USE_COLOR\":\"\",n.vertexAlphas?\"#define USE_COLOR_ALPHA\":\"\",n.vertexUvs?\"#define USE_UV\":\"\",n.uvsVertexOnly?\"#define UVS_VERTEX_ONLY\":\"\",n.gradientMap?\"#define USE_GRADIENTMAP\":\"\",n.flatShading?\"#define FLAT_SHADED\":\"\",n.doubleSided?\"#define DOUBLE_SIDED\":\"\",n.flipSided?\"#define FLIP_SIDED\":\"\",n.shadowMapEnabled?\"#define USE_SHADOWMAP\":\"\",n.shadowMapEnabled?\"#define \"+l:\"\",n.premultipliedAlpha?\"#define PREMULTIPLIED_ALPHA\":\"\",n.physicallyCorrectLights?\"#define PHYSICALLY_CORRECT_LIGHTS\":\"\",n.logarithmicDepthBuffer?\"#define USE_LOGDEPTHBUF\":\"\",n.logarithmicDepthBuffer&&n.rendererExtensionFragDepth?\"#define USE_LOGDEPTHBUF_EXT\":\"\",(n.extensionShaderTextureLOD||n.envMap)&&n.rendererExtensionShaderTextureLod?\"#define TEXTURE_LOD_EXT\":\"\",\"uniform mat4 viewMatrix;\",\"uniform vec3 cameraPosition;\",\"uniform bool isOrthographic;\",n.toneMapping!==Z?\"#define TONE_MAPPING\":\"\",n.toneMapping!==Z?Qa.tonemapping_pars_fragment:\"\",n.toneMapping!==Z?getToneMappingFunction(\"toneMapping\",n.toneMapping):\"\",n.dithering?\"#define DITHERING\":\"\",n.format===Ve?\"#define OPAQUE\":\"\",Qa.encodings_pars_fragment,n.map?getTexelDecodingFunction(\"mapTexelToLinear\",n.mapEncoding):\"\",n.matcap?getTexelDecodingFunction(\"matcapTexelToLinear\",n.matcapEncoding):\"\",n.envMap?getTexelDecodingFunction(\"envMapTexelToLinear\",n.envMapEncoding):\"\",n.emissiveMap?getTexelDecodingFunction(\"emissiveMapTexelToLinear\",n.emissiveMapEncoding):\"\",n.specularColorMap?getTexelDecodingFunction(\"specularColorMapTexelToLinear\",n.specularColorMapEncoding):\"\",n.sheenColorMap?getTexelDecodingFunction(\"sheenColorMapTexelToLinear\",n.sheenColorMapEncoding):\"\",n.lightMap?getTexelDecodingFunction(\"lightMapTexelToLinear\",n.lightMapEncoding):\"\",getTexelEncodingFunction(\"linearToOutputTexel\",n.outputEncoding),n.depthPacking?\"#define DEPTH_PACKING \"+n.depthPacking:\"\",\"\\n\"].filter(filterEmptyLine).join(\"\\n\")}a=resolveIncludes(a);a=replaceLightNums(a,n);a=replaceClippingPlaneNums(a,n);o=resolveIncludes(o);o=replaceLightNums(o,n);o=replaceClippingPlaneNums(o,n);a=unrollLoops(a);o=unrollLoops(o);if(n.isWebGL2&&true!==n.isRawShaderMaterial){y=\"#version 300 es\\n\";m=[\"precision mediump sampler2DArray;\",\"#define attribute in\",\"#define varying out\",\"#define texture2D texture\"].join(\"\\n\")+\"\\n\"+m;g=[\"#define varying in\",n.glslVersion===En?\"\":\"layout(location = 0) out highp vec4 pc_fragColor;\",n.glslVersion===En?\"\":\"#define gl_FragColor pc_fragColor\",\"#define gl_FragDepthEXT gl_FragDepth\",\"#define texture2D texture\",\"#define textureCube texture\",\"#define texture2DProj textureProj\",\"#define texture2DLodEXT textureLod\",\"#define texture2DProjLodEXT textureProjLod\",\"#define textureCubeLodEXT textureLod\",\"#define texture2DGradEXT textureGrad\",\"#define texture2DProjGradEXT textureProjGrad\",\"#define textureCubeGradEXT textureGrad\"].join(\"\\n\")+\"\\n\"+g}const x=y+m+a;const b=y+g+o;const _=WebGLShader(i,35633,x);const M=WebGLShader(i,35632,b);i.attachShader(f,_);i.attachShader(f,M);void 0!==n.index0AttributeName?i.bindAttribLocation(f,0,n.index0AttributeName):true===n.morphTargets&&i.bindAttribLocation(f,0,\"position\");i.linkProgram(f);if(e.debug.checkShaderErrors){const e=i.getProgramInfoLog(f).trim();const t=i.getShaderInfoLog(_).trim();const n=i.getShaderInfoLog(M).trim();let r=true;let s=true;if(false===i.getProgramParameter(f,35714)){r=false;const t=getShaderErrors(i,_,\"vertex\");const n=getShaderErrors(i,M,\"fragment\");console.error(\"THREE.WebGLProgram: Shader Error \"+i.getError()+\" - VALIDATE_STATUS \"+i.getProgramParameter(f,35715)+\"\\n\\nProgram Info Log: \"+e+\"\\n\"+t+\"\\n\"+n)}else\"\"!==e?console.warn(\"THREE.WebGLProgram: Program Info Log:\",e):\"\"!==t&&\"\"!==n||(s=false);s&&(this.diagnostics={runnable:r,programLog:e,vertexShader:{log:t,prefix:m},fragmentShader:{log:n,prefix:g}})}i.deleteShader(_);i.deleteShader(M);let w;this.getUniforms=function(){void 0===w&&(w=new WebGLUniforms(i,f));return w};let S;this.getAttributes=function(){void 0===S&&(S=fetchAttributeLocations(i,f));return S};this.destroy=function(){r.releaseStatesOfProgram(this);i.deleteProgram(f);this.program=void 0};this.name=n.shaderName;this.id=Ao++;this.cacheKey=t;this.usedTimes=1;this.program=f;this.vertexShader=_;this.fragmentShader=M;return this}let Po=0;class WebGLShaderCache{constructor(){this.shaderCache=new Map;this.materialCache=new Map}update(e){const t=e.vertexShader;const n=e.fragmentShader;const r=this._getShaderStage(t);const i=this._getShaderStage(n);const s=this._getShaderCacheForMaterial(e);if(false===s.has(r)){s.add(r);r.usedTimes++}if(false===s.has(i)){s.add(i);i.usedTimes++}return this}remove(e){const t=this.materialCache.get(e);for(const e of t){e.usedTimes--;0===e.usedTimes&&this.shaderCache.delete(e)}this.materialCache.delete(e);return this}getVertexShaderID(e){return this._getShaderStage(e.vertexShader).id}getFragmentShaderID(e){return this._getShaderStage(e.fragmentShader).id}dispose(){this.shaderCache.clear();this.materialCache.clear()}_getShaderCacheForMaterial(e){const t=this.materialCache;false===t.has(e)&&t.set(e,new Set);return t.get(e)}_getShaderStage(e){const t=this.shaderCache;if(false===t.has(e)){const n=new WebGLShaderStage;t.set(e,n)}return t.get(e)}}class WebGLShaderStage{constructor(){this.id=Po++;this.usedTimes=0}}function WebGLPrograms(e,t,n,r,i,s,a){const o=new Layers;const l=new WebGLShaderCache;const c=[];const u=i.isWebGL2;const h=i.logarithmicDepthBuffer;const f=i.floatVertexTextures;const m=i.maxVertexUniforms;const g=i.vertexTextures;let y=i.precision;const x={MeshDepthMaterial:\"depth\",MeshDistanceMaterial:\"distanceRGBA\",MeshNormalMaterial:\"normal\",MeshBasicMaterial:\"basic\",MeshLambertMaterial:\"lambert\",MeshPhongMaterial:\"phong\",MeshToonMaterial:\"toon\",MeshStandardMaterial:\"physical\",MeshPhysicalMaterial:\"physical\",MeshMatcapMaterial:\"matcap\",LineBasicMaterial:\"basic\",LineDashedMaterial:\"dashed\",PointsMaterial:\"points\",ShadowMaterial:\"shadow\",SpriteMaterial:\"sprite\"};function getMaxBones(e){const t=e.skeleton;const n=t.bones;if(f)return 1024;{const e=m;const t=Math.floor((e-20)/4);const r=Math.min(t,n.length);if(r<n.length){console.warn(\"THREE.WebGLRenderer: Skeleton has \"+n.length+\" bones. This GPU supports \"+r+\".\");return 0}return r}}function getTextureEncodingFromMap(e){let t;if(e&&e.isTexture)t=e.encoding;else if(e&&e.isWebGLRenderTarget){console.warn(\"THREE.WebGLPrograms.getTextureEncodingFromMap: don't use render targets as textures. Use their .texture property instead.\");t=e.texture.encoding}else t=Xt;u&&e&&e.isTexture&&e.format===Ne&&e.type===Me&&e.encoding===Jt&&(t=Xt);return t}function getParameters(s,o,c,m,b){const _=m.fog;const M=s.isMeshStandardMaterial?m.environment:null;const w=(s.isMeshStandardMaterial?n:t).get(s.envMap||M);const S=x[s.type];const T=b.isSkinnedMesh?getMaxBones(b):0;if(null!==s.precision){y=i.getMaxPrecision(s.precision);y!==s.precision&&console.warn(\"THREE.WebGLProgram.getParameters:\",s.precision,\"not supported, using\",y,\"instead.\")}let E,A;let L,C;if(S){const e=$a[S];E=e.vertexShader;A=e.fragmentShader}else{E=s.vertexShader;A=s.fragmentShader;l.update(s);L=l.getVertexShaderID(s);C=l.getFragmentShaderID(s)}const R=e.getRenderTarget();const P=s.alphaTest>0;const I=s.clearcoat>0;const D={isWebGL2:u,shaderID:S,shaderName:s.type,vertexShader:E,fragmentShader:A,defines:s.defines,customVertexShaderID:L,customFragmentShaderID:C,isRawShaderMaterial:true===s.isRawShaderMaterial,glslVersion:s.glslVersion,precision:y,instancing:true===b.isInstancedMesh,instancingColor:true===b.isInstancedMesh&&null!==b.instanceColor,supportsVertexTextures:g,outputEncoding:null!==R?getTextureEncodingFromMap(R.texture):e.outputEncoding,map:!!s.map,mapEncoding:getTextureEncodingFromMap(s.map),matcap:!!s.matcap,matcapEncoding:getTextureEncodingFromMap(s.matcap),envMap:!!w,envMapMode:w&&w.mapping,envMapEncoding:getTextureEncodingFromMap(w),envMapCubeUV:!!w&&(w.mapping===oe||w.mapping===le),lightMap:!!s.lightMap,lightMapEncoding:getTextureEncodingFromMap(s.lightMap),aoMap:!!s.aoMap,emissiveMap:!!s.emissiveMap,emissiveMapEncoding:getTextureEncodingFromMap(s.emissiveMap),bumpMap:!!s.bumpMap,normalMap:!!s.normalMap,objectSpaceNormalMap:s.normalMapType===Kt,tangentSpaceNormalMap:s.normalMapType===Qt,clearcoat:I,clearcoatMap:I&&!!s.clearcoatMap,clearcoatRoughnessMap:I&&!!s.clearcoatRoughnessMap,clearcoatNormalMap:I&&!!s.clearcoatNormalMap,displacementMap:!!s.displacementMap,roughnessMap:!!s.roughnessMap,metalnessMap:!!s.metalnessMap,specularMap:!!s.specularMap,specularIntensityMap:!!s.specularIntensityMap,specularColorMap:!!s.specularColorMap,specularColorMapEncoding:getTextureEncodingFromMap(s.specularColorMap),alphaMap:!!s.alphaMap,alphaTest:P,gradientMap:!!s.gradientMap,sheen:s.sheen>0,sheenColorMap:!!s.sheenColorMap,sheenColorMapEncoding:getTextureEncodingFromMap(s.sheenColorMap),sheenRoughnessMap:!!s.sheenRoughnessMap,transmission:s.transmission>0,transmissionMap:!!s.transmissionMap,thicknessMap:!!s.thicknessMap,combine:s.combine,vertexTangents:!!s.normalMap&&!!b.geometry&&!!b.geometry.attributes.tangent,vertexColors:s.vertexColors,vertexAlphas:true===s.vertexColors&&!!b.geometry&&!!b.geometry.attributes.color&&4===b.geometry.attributes.color.itemSize,vertexUvs:!!s.map||!!s.bumpMap||!!s.normalMap||!!s.specularMap||!!s.alphaMap||!!s.emissiveMap||!!s.roughnessMap||!!s.metalnessMap||!!s.clearcoatMap||!!s.clearcoatRoughnessMap||!!s.clearcoatNormalMap||!!s.displacementMap||!!s.transmissionMap||!!s.thicknessMap||!!s.specularIntensityMap||!!s.specularColorMap||!!s.sheenColorMap||!!s.sheenRoughnessMap,uvsVertexOnly:!(!!s.map||!!s.bumpMap||!!s.normalMap||!!s.specularMap||!!s.alphaMap||!!s.emissiveMap||!!s.roughnessMap||!!s.metalnessMap||!!s.clearcoatNormalMap||s.transmission>0||!!s.transmissionMap||!!s.thicknessMap||!!s.specularIntensityMap||!!s.specularColorMap||s.sheen>0||!!s.sheenColorMap||!!s.sheenRoughnessMap)&&!!s.displacementMap,fog:!!_,useFog:s.fog,fogExp2:_&&_.isFogExp2,flatShading:!!s.flatShading,sizeAttenuation:s.sizeAttenuation,logarithmicDepthBuffer:h,skinning:true===b.isSkinnedMesh&&T>0,maxBones:T,useVertexTexture:f,morphTargets:!!b.geometry&&!!b.geometry.morphAttributes.position,morphNormals:!!b.geometry&&!!b.geometry.morphAttributes.normal,morphTargetsCount:!b.geometry||!b.geometry.morphAttributes.position?0:b.geometry.morphAttributes.position.length,numDirLights:o.directional.length,numPointLights:o.point.length,numSpotLights:o.spot.length,numRectAreaLights:o.rectArea.length,numHemiLights:o.hemi.length,numDirLightShadows:o.directionalShadowMap.length,numPointLightShadows:o.pointShadowMap.length,numSpotLightShadows:o.spotShadowMap.length,numClippingPlanes:a.numPlanes,numClipIntersection:a.numIntersection,format:s.format,dithering:s.dithering,shadowMapEnabled:e.shadowMap.enabled&&c.length>0,shadowMapType:e.shadowMap.type,toneMapping:s.toneMapped?e.toneMapping:Z,physicallyCorrectLights:e.physicallyCorrectLights,premultipliedAlpha:s.premultipliedAlpha,doubleSided:s.side===p,flipSided:s.side===d,depthPacking:void 0!==s.depthPacking&&s.depthPacking,index0AttributeName:s.index0AttributeName,extensionDerivatives:s.extensions&&s.extensions.derivatives,extensionFragDepth:s.extensions&&s.extensions.fragDepth,extensionDrawBuffers:s.extensions&&s.extensions.drawBuffers,extensionShaderTextureLOD:s.extensions&&s.extensions.shaderTextureLOD,rendererExtensionFragDepth:u||r.has(\"EXT_frag_depth\"),rendererExtensionDrawBuffers:u||r.has(\"WEBGL_draw_buffers\"),rendererExtensionShaderTextureLod:u||r.has(\"EXT_shader_texture_lod\"),customProgramCacheKey:s.customProgramCacheKey()};return D}function getProgramCacheKey(t){const n=[];if(t.shaderID)n.push(t.shaderID);else{n.push(t.customVertexShaderID);n.push(t.customFragmentShaderID)}if(void 0!==t.defines)for(const e in t.defines){n.push(e);n.push(t.defines[e])}if(false===t.isRawShaderMaterial){getProgramCacheKeyParameters(n,t);getProgramCacheKeyBooleans(n,t);n.push(e.outputEncoding)}n.push(t.customProgramCacheKey);return n.join()}function getProgramCacheKeyParameters(e,t){e.push(t.precision);e.push(t.outputEncoding);e.push(t.mapEncoding);e.push(t.matcapEncoding);e.push(t.envMapMode);e.push(t.envMapEncoding);e.push(t.lightMapEncoding);e.push(t.emissiveMapEncoding);e.push(t.combine);e.push(t.vertexUvs);e.push(t.fogExp2);e.push(t.sizeAttenuation);e.push(t.maxBones);e.push(t.morphTargetsCount);e.push(t.numDirLights);e.push(t.numPointLights);e.push(t.numSpotLights);e.push(t.numHemiLights);e.push(t.numRectAreaLights);e.push(t.numDirLightShadows);e.push(t.numPointLightShadows);e.push(t.numSpotLightShadows);e.push(t.shadowMapType);e.push(t.toneMapping);e.push(t.numClippingPlanes);e.push(t.numClipIntersection);e.push(t.format);e.push(t.specularColorMapEncoding);e.push(t.sheenColorMapEncoding)}function getProgramCacheKeyBooleans(e,t){o.disableAll();t.isWebGL2&&o.enable(0);t.supportsVertexTextures&&o.enable(1);t.instancing&&o.enable(2);t.instancingColor&&o.enable(3);t.map&&o.enable(4);t.matcap&&o.enable(5);t.envMap&&o.enable(6);t.envMapCubeUV&&o.enable(7);t.lightMap&&o.enable(8);t.aoMap&&o.enable(9);t.emissiveMap&&o.enable(10);t.bumpMap&&o.enable(11);t.normalMap&&o.enable(12);t.objectSpaceNormalMap&&o.enable(13);t.tangentSpaceNormalMap&&o.enable(14);t.clearcoat&&o.enable(15);t.clearcoatMap&&o.enable(16);t.clearcoatRoughnessMap&&o.enable(17);t.clearcoatNormalMap&&o.enable(18);t.displacementMap&&o.enable(19);t.specularMap&&o.enable(20);t.roughnessMap&&o.enable(21);t.metalnessMap&&o.enable(22);t.gradientMap&&o.enable(23);t.alphaMap&&o.enable(24);t.alphaTest&&o.enable(25);t.vertexColors&&o.enable(26);t.vertexAlphas&&o.enable(27);t.vertexUvs&&o.enable(28);t.vertexTangents&&o.enable(29);t.uvsVertexOnly&&o.enable(30);t.fog&&o.enable(31);e.push(o.mask);o.disableAll();t.useFog&&o.enable(0);t.flatShading&&o.enable(1);t.logarithmicDepthBuffer&&o.enable(2);t.skinning&&o.enable(3);t.useVertexTexture&&o.enable(4);t.morphTargets&&o.enable(5);t.morphNormals&&o.enable(6);t.premultipliedAlpha&&o.enable(7);t.shadowMapEnabled&&o.enable(8);t.physicallyCorrectLights&&o.enable(9);t.doubleSided&&o.enable(10);t.flipSided&&o.enable(11);t.depthPacking&&o.enable(12);t.dithering&&o.enable(13);t.specularIntensityMap&&o.enable(14);t.specularColorMap&&o.enable(15);t.transmission&&o.enable(16);t.transmissionMap&&o.enable(17);t.thicknessMap&&o.enable(18);t.sheen&&o.enable(19);t.sheenColorMap&&o.enable(20);t.sheenRoughnessMap&&o.enable(21);e.push(o.mask)}function getUniforms(e){const t=x[e.type];let n;if(t){const e=$a[t];n=mi.clone(e.uniforms)}else n=e.uniforms;return n}function acquireProgram(t,n){let r;for(let e=0,t=c.length;e<t;e++){const t=c[e];if(t.cacheKey===n){r=t;++r.usedTimes;break}}if(void 0===r){r=new WebGLProgram(e,n,t,s);c.push(r)}return r}function releaseProgram(e){if(0===--e.usedTimes){const t=c.indexOf(e);c[t]=c[c.length-1];c.pop();e.destroy()}}function releaseShaderCache(e){l.remove(e)}function dispose(){l.dispose()}return{getParameters:getParameters,getProgramCacheKey:getProgramCacheKey,getUniforms:getUniforms,acquireProgram:acquireProgram,releaseProgram:releaseProgram,releaseShaderCache:releaseShaderCache,programs:c,dispose:dispose}}function WebGLProperties(){let e=new WeakMap;function get(t){let n=e.get(t);if(void 0===n){n={};e.set(t,n)}return n}function remove(t){e.delete(t)}function update(t,n,r){e.get(t)[n]=r}function dispose(){e=new WeakMap}return{get:get,remove:remove,update:update,dispose:dispose}}function painterSortStable(e,t){return e.groupOrder!==t.groupOrder?e.groupOrder-t.groupOrder:e.renderOrder!==t.renderOrder?e.renderOrder-t.renderOrder:e.material.id!==t.material.id?e.material.id-t.material.id:e.z!==t.z?e.z-t.z:e.id-t.id}function reversePainterSortStable(e,t){return e.groupOrder!==t.groupOrder?e.groupOrder-t.groupOrder:e.renderOrder!==t.renderOrder?e.renderOrder-t.renderOrder:e.z!==t.z?t.z-e.z:e.id-t.id}function WebGLRenderList(){const e=[];let t=0;const n=[];const r=[];const i=[];function init(){t=0;n.length=0;r.length=0;i.length=0}function getNextRenderItem(n,r,i,s,a,o){let l=e[t];if(void 0===l){l={id:n.id,object:n,geometry:r,material:i,groupOrder:s,renderOrder:n.renderOrder,z:a,group:o};e[t]=l}else{l.id=n.id;l.object=n;l.geometry=r;l.material=i;l.groupOrder=s;l.renderOrder=n.renderOrder;l.z=a;l.group=o}t++;return l}function push(e,t,s,a,o,l){const c=getNextRenderItem(e,t,s,a,o,l);s.transmission>0?r.push(c):true===s.transparent?i.push(c):n.push(c)}function unshift(e,t,s,a,o,l){const c=getNextRenderItem(e,t,s,a,o,l);s.transmission>0?r.unshift(c):true===s.transparent?i.unshift(c):n.unshift(c)}function sort(e,t){n.length>1&&n.sort(e||painterSortStable);r.length>1&&r.sort(t||reversePainterSortStable);i.length>1&&i.sort(t||reversePainterSortStable)}function finish(){for(let n=t,r=e.length;n<r;n++){const t=e[n];if(null===t.id)break;t.id=null;t.object=null;t.geometry=null;t.material=null;t.group=null}}return{opaque:n,transmissive:r,transparent:i,init:init,push:push,unshift:unshift,finish:finish,sort:sort}}function WebGLRenderLists(){let e=new WeakMap;function get(t,n){let r;if(false===e.has(t)){r=new WebGLRenderList;e.set(t,[r])}else if(n>=e.get(t).length){r=new WebGLRenderList;e.get(t).push(r)}else r=e.get(t)[n];return r}function dispose(){e=new WeakMap}return{get:get,dispose:dispose}}function UniformsCache(){const e={};return{get:function(t){if(void 0!==e[t.id])return e[t.id];let n;switch(t.type){case\"DirectionalLight\":n={direction:new Vector3,color:new Color};break;case\"SpotLight\":n={position:new Vector3,direction:new Vector3,color:new Color,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case\"PointLight\":n={position:new Vector3,color:new Color,distance:0,decay:0};break;case\"HemisphereLight\":n={direction:new Vector3,skyColor:new Color,groundColor:new Color};break;case\"RectAreaLight\":n={color:new Color,position:new Vector3,halfWidth:new Vector3,halfHeight:new Vector3};break}e[t.id]=n;return n}}}function ShadowUniformsCache(){const e={};return{get:function(t){if(void 0!==e[t.id])return e[t.id];let n;switch(t.type){case\"DirectionalLight\":n={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Vector2};break;case\"SpotLight\":n={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Vector2};break;case\"PointLight\":n={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Vector2,shadowCameraNear:1,shadowCameraFar:1e3};break}e[t.id]=n;return n}}}let Io=0;function shadowCastingLightsFirst(e,t){return(t.castShadow?1:0)-(e.castShadow?1:0)}function WebGLLights(e,t){const n=new UniformsCache;const r=ShadowUniformsCache();const i={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotShadow:[],spotShadowMap:[],spotShadowMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[]};for(let e=0;e<9;e++)i.probe.push(new Vector3);const s=new Vector3;const a=new Matrix4;const o=new Matrix4;function setup(s,a){let o=0,l=0,c=0;for(let e=0;e<9;e++)i.probe[e].set(0,0,0);let u=0;let h=0;let d=0;let p=0;let f=0;let m=0;let g=0;let y=0;s.sort(shadowCastingLightsFirst);const x=true!==a?Math.PI:1;for(let e=0,t=s.length;e<t;e++){const t=s[e];const a=t.color;const b=t.intensity;const _=t.distance;const M=t.shadow&&t.shadow.map?t.shadow.map.texture:null;if(t.isAmbientLight){o+=a.r*b*x;l+=a.g*b*x;c+=a.b*b*x}else if(t.isLightProbe)for(let e=0;e<9;e++)i.probe[e].addScaledVector(t.sh.coefficients[e],b);else if(t.isDirectionalLight){const e=n.get(t);e.color.copy(t.color).multiplyScalar(t.intensity*x);if(t.castShadow){const e=t.shadow;const n=r.get(t);n.shadowBias=e.bias;n.shadowNormalBias=e.normalBias;n.shadowRadius=e.radius;n.shadowMapSize=e.mapSize;i.directionalShadow[u]=n;i.directionalShadowMap[u]=M;i.directionalShadowMatrix[u]=t.shadow.matrix;m++}i.directional[u]=e;u++}else if(t.isSpotLight){const e=n.get(t);e.position.setFromMatrixPosition(t.matrixWorld);e.color.copy(a).multiplyScalar(b*x);e.distance=_;e.coneCos=Math.cos(t.angle);e.penumbraCos=Math.cos(t.angle*(1-t.penumbra));e.decay=t.decay;if(t.castShadow){const e=t.shadow;const n=r.get(t);n.shadowBias=e.bias;n.shadowNormalBias=e.normalBias;n.shadowRadius=e.radius;n.shadowMapSize=e.mapSize;i.spotShadow[d]=n;i.spotShadowMap[d]=M;i.spotShadowMatrix[d]=t.shadow.matrix;y++}i.spot[d]=e;d++}else if(t.isRectAreaLight){const e=n.get(t);e.color.copy(a).multiplyScalar(b);e.halfWidth.set(.5*t.width,0,0);e.halfHeight.set(0,.5*t.height,0);i.rectArea[p]=e;p++}else if(t.isPointLight){const e=n.get(t);e.color.copy(t.color).multiplyScalar(t.intensity*x);e.distance=t.distance;e.decay=t.decay;if(t.castShadow){const e=t.shadow;const n=r.get(t);n.shadowBias=e.bias;n.shadowNormalBias=e.normalBias;n.shadowRadius=e.radius;n.shadowMapSize=e.mapSize;n.shadowCameraNear=e.camera.near;n.shadowCameraFar=e.camera.far;i.pointShadow[h]=n;i.pointShadowMap[h]=M;i.pointShadowMatrix[h]=t.shadow.matrix;g++}i.point[h]=e;h++}else if(t.isHemisphereLight){const e=n.get(t);e.skyColor.copy(t.color).multiplyScalar(b*x);e.groundColor.copy(t.groundColor).multiplyScalar(b*x);i.hemi[f]=e;f++}}if(p>0)if(t.isWebGL2){i.rectAreaLTC1=Ka.LTC_FLOAT_1;i.rectAreaLTC2=Ka.LTC_FLOAT_2}else if(true===e.has(\"OES_texture_float_linear\")){i.rectAreaLTC1=Ka.LTC_FLOAT_1;i.rectAreaLTC2=Ka.LTC_FLOAT_2}else if(true===e.has(\"OES_texture_half_float_linear\")){i.rectAreaLTC1=Ka.LTC_HALF_1;i.rectAreaLTC2=Ka.LTC_HALF_2}else console.error(\"THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.\");i.ambient[0]=o;i.ambient[1]=l;i.ambient[2]=c;const b=i.hash;if(b.directionalLength!==u||b.pointLength!==h||b.spotLength!==d||b.rectAreaLength!==p||b.hemiLength!==f||b.numDirectionalShadows!==m||b.numPointShadows!==g||b.numSpotShadows!==y){i.directional.length=u;i.spot.length=d;i.rectArea.length=p;i.point.length=h;i.hemi.length=f;i.directionalShadow.length=m;i.directionalShadowMap.length=m;i.pointShadow.length=g;i.pointShadowMap.length=g;i.spotShadow.length=y;i.spotShadowMap.length=y;i.directionalShadowMatrix.length=m;i.pointShadowMatrix.length=g;i.spotShadowMatrix.length=y;b.directionalLength=u;b.pointLength=h;b.spotLength=d;b.rectAreaLength=p;b.hemiLength=f;b.numDirectionalShadows=m;b.numPointShadows=g;b.numSpotShadows=y;i.version=Io++}}function setupView(e,t){let n=0;let r=0;let l=0;let c=0;let u=0;const h=t.matrixWorldInverse;for(let t=0,d=e.length;t<d;t++){const d=e[t];if(d.isDirectionalLight){const e=i.directional[n];e.direction.setFromMatrixPosition(d.matrixWorld);s.setFromMatrixPosition(d.target.matrixWorld);e.direction.sub(s);e.direction.transformDirection(h);n++}else if(d.isSpotLight){const e=i.spot[l];e.position.setFromMatrixPosition(d.matrixWorld);e.position.applyMatrix4(h);e.direction.setFromMatrixPosition(d.matrixWorld);s.setFromMatrixPosition(d.target.matrixWorld);e.direction.sub(s);e.direction.transformDirection(h);l++}else if(d.isRectAreaLight){const e=i.rectArea[c];e.position.setFromMatrixPosition(d.matrixWorld);e.position.applyMatrix4(h);o.identity();a.copy(d.matrixWorld);a.premultiply(h);o.extractRotation(a);e.halfWidth.set(.5*d.width,0,0);e.halfHeight.set(0,.5*d.height,0);e.halfWidth.applyMatrix4(o);e.halfHeight.applyMatrix4(o);c++}else if(d.isPointLight){const e=i.point[r];e.position.setFromMatrixPosition(d.matrixWorld);e.position.applyMatrix4(h);r++}else if(d.isHemisphereLight){const e=i.hemi[u];e.direction.setFromMatrixPosition(d.matrixWorld);e.direction.transformDirection(h);e.direction.normalize();u++}}}return{setup:setup,setupView:setupView,state:i}}function WebGLRenderState(e,t){const n=new WebGLLights(e,t);const r=[];const i=[];function init(){r.length=0;i.length=0}function pushLight(e){r.push(e)}function pushShadow(e){i.push(e)}function setupLights(e){n.setup(r,e)}function setupLightsView(e){n.setupView(r,e)}const s={lightsArray:r,shadowsArray:i,lights:n};return{init:init,state:s,setupLights:setupLights,setupLightsView:setupLightsView,pushLight:pushLight,pushShadow:pushShadow}}function WebGLRenderStates(e,t){let n=new WeakMap;function get(r,i=0){let s;if(false===n.has(r)){s=new WebGLRenderState(e,t);n.set(r,[s])}else if(i>=n.get(r).length){s=new WebGLRenderState(e,t);n.get(r).push(s)}else s=n.get(r)[i];return s}function dispose(){n=new WeakMap}return{get:get,dispose:dispose}}class MeshDepthMaterial extends Material{constructor(e){super();this.type=\"MeshDepthMaterial\";this.depthPacking=Yt;this.map=null;this.alphaMap=null;this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.wireframe=false;this.wireframeLinewidth=1;this.fog=false;this.setValues(e)}copy(e){super.copy(e);this.depthPacking=e.depthPacking;this.map=e.map;this.alphaMap=e.alphaMap;this.displacementMap=e.displacementMap;this.displacementScale=e.displacementScale;this.displacementBias=e.displacementBias;this.wireframe=e.wireframe;this.wireframeLinewidth=e.wireframeLinewidth;return this}}MeshDepthMaterial.prototype.isMeshDepthMaterial=true;class MeshDistanceMaterial extends Material{constructor(e){super();this.type=\"MeshDistanceMaterial\";this.referencePosition=new Vector3;this.nearDistance=1;this.farDistance=1e3;this.map=null;this.alphaMap=null;this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.fog=false;this.setValues(e)}copy(e){super.copy(e);this.referencePosition.copy(e.referencePosition);this.nearDistance=e.nearDistance;this.farDistance=e.farDistance;this.map=e.map;this.alphaMap=e.alphaMap;this.displacementMap=e.displacementMap;this.displacementScale=e.displacementScale;this.displacementBias=e.displacementBias;return this}}MeshDistanceMaterial.prototype.isMeshDistanceMaterial=true;const Do=\"void main() {\\n\\tgl_Position = vec4( position, 1.0 );\\n}\";const Bo=\"uniform sampler2D shadow_pass;\\nuniform vec2 resolution;\\nuniform float radius;\\n#include <packing>\\nvoid main() {\\n\\tconst float samples = float( VSM_SAMPLES );\\n\\tfloat mean = 0.0;\\n\\tfloat squared_mean = 0.0;\\n\\tfloat uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 );\\n\\tfloat uvStart = samples <= 1.0 ? 0.0 : - 1.0;\\n\\tfor ( float i = 0.0; i < samples; i ++ ) {\\n\\t\\tfloat uvOffset = uvStart + i * uvStride;\\n\\t\\t#ifdef HORIZONTAL_PASS\\n\\t\\t\\tvec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) );\\n\\t\\t\\tmean += distribution.x;\\n\\t\\t\\tsquared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\\n\\t\\t#else\\n\\t\\t\\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) );\\n\\t\\t\\tmean += depth;\\n\\t\\t\\tsquared_mean += depth * depth;\\n\\t\\t#endif\\n\\t}\\n\\tmean = mean / samples;\\n\\tsquared_mean = squared_mean / samples;\\n\\tfloat std_dev = sqrt( squared_mean - mean * mean );\\n\\tgl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\\n}\";function WebGLShadowMap(e,t,n){let r=new Frustum;const i=new Vector2,s=new Vector2,a=new Vector4,o=new MeshDepthMaterial({depthPacking:Zt}),c=new MeshDistanceMaterial,f={},m=n.maxTextureSize;const y={0:d,1:h,2:p};const x=new ShaderMaterial({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new Vector2},radius:{value:4}},vertexShader:Do,fragmentShader:Bo});const b=x.clone();b.defines.HORIZONTAL_PASS=1;const _=new BufferGeometry;_.setAttribute(\"position\",new BufferAttribute(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const M=new Mesh(_,x);const w=this;this.enabled=false;this.autoUpdate=true;this.needsUpdate=false;this.type=l;this.render=function(t,n,o){if(false===w.enabled)return;if(false===w.autoUpdate&&false===w.needsUpdate)return;if(0===t.length)return;const l=e.getRenderTarget();const c=e.getActiveCubeFace();const h=e.getActiveMipmapLevel();const d=e.state;d.setBlending(g);d.buffers.color.setClear(1,1,1,1);d.buffers.depth.setTest(true);d.setScissorTest(false);for(let l=0,c=t.length;l<c;l++){const c=t[l];const h=c.shadow;if(void 0===h){console.warn(\"THREE.WebGLShadowMap:\",c,\"has no shadow.\");continue}if(false===h.autoUpdate&&false===h.needsUpdate)continue;i.copy(h.mapSize);const p=h.getFrameExtents();i.multiply(p);s.copy(h.mapSize);if(i.x>m||i.y>m){if(i.x>m){s.x=Math.floor(m/p.x);i.x=s.x*p.x;h.mapSize.x=s.x}if(i.y>m){s.y=Math.floor(m/p.y);i.y=s.y*p.y;h.mapSize.y=s.y}}if(null===h.map&&!h.isPointLightShadow&&this.type===u){const e={minFilter:ye,magFilter:ye,format:Ne};h.map=new WebGLRenderTarget(i.x,i.y,e);h.map.texture.name=c.name+\".shadowMap\";h.mapPass=new WebGLRenderTarget(i.x,i.y,e);h.camera.updateProjectionMatrix()}if(null===h.map){const e={minFilter:de,magFilter:de,format:Ne};h.map=new WebGLRenderTarget(i.x,i.y,e);h.map.texture.name=c.name+\".shadowMap\";h.camera.updateProjectionMatrix()}e.setRenderTarget(h.map);e.clear();const f=h.getViewportCount();for(let e=0;e<f;e++){const t=h.getViewport(e);a.set(s.x*t.x,s.y*t.y,s.x*t.z,s.y*t.w);d.viewport(a);h.updateMatrices(c,e);r=h.getFrustum();renderObject(n,o,h.camera,c,this.type)}h.isPointLightShadow||this.type!==u||VSMPass(h,o);h.needsUpdate=false}w.needsUpdate=false;e.setRenderTarget(l,c,h)};function VSMPass(n,r){const i=t.update(M);if(x.defines.VSM_SAMPLES!==n.blurSamples){x.defines.VSM_SAMPLES=n.blurSamples;b.defines.VSM_SAMPLES=n.blurSamples;x.needsUpdate=true;b.needsUpdate=true}x.uniforms.shadow_pass.value=n.map.texture;x.uniforms.resolution.value=n.mapSize;x.uniforms.radius.value=n.radius;e.setRenderTarget(n.mapPass);e.clear();e.renderBufferDirect(r,null,i,x,M,null);b.uniforms.shadow_pass.value=n.mapPass.texture;b.uniforms.resolution.value=n.mapSize;b.uniforms.radius.value=n.radius;e.setRenderTarget(n.map);e.clear();e.renderBufferDirect(r,null,i,b,M,null)}function getDepthMaterial(t,n,r,i,s,a,l){let h=null;const d=true===i.isPointLight?t.customDistanceMaterial:t.customDepthMaterial;h=void 0!==d?d:true===i.isPointLight?c:o;if(e.localClippingEnabled&&true===r.clipShadows&&0!==r.clippingPlanes.length||r.displacementMap&&0!==r.displacementScale||r.alphaMap&&r.alphaTest>0){const e=h.uuid,t=r.uuid;let n=f[e];if(void 0===n){n={};f[e]=n}let i=n[t];if(void 0===i){i=h.clone();n[t]=i}h=i}h.visible=r.visible;h.wireframe=r.wireframe;h.side=l===u?null!==r.shadowSide?r.shadowSide:r.side:null!==r.shadowSide?r.shadowSide:y[r.side];h.alphaMap=r.alphaMap;h.alphaTest=r.alphaTest;h.clipShadows=r.clipShadows;h.clippingPlanes=r.clippingPlanes;h.clipIntersection=r.clipIntersection;h.displacementMap=r.displacementMap;h.displacementScale=r.displacementScale;h.displacementBias=r.displacementBias;h.wireframeLinewidth=r.wireframeLinewidth;h.linewidth=r.linewidth;if(true===i.isPointLight&&true===h.isMeshDistanceMaterial){h.referencePosition.setFromMatrixPosition(i.matrixWorld);h.nearDistance=s;h.farDistance=a}return h}function renderObject(n,i,s,a,o){if(false===n.visible)return;const l=n.layers.test(i.layers);if(l&&(n.isMesh||n.isLine||n.isPoints)&&(n.castShadow||n.receiveShadow&&o===u)&&(!n.frustumCulled||r.intersectsObject(n))){n.modelViewMatrix.multiplyMatrices(s.matrixWorldInverse,n.matrixWorld);const r=t.update(n);const i=n.material;if(Array.isArray(i)){const t=r.groups;for(let l=0,c=t.length;l<c;l++){const c=t[l];const u=i[c.materialIndex];if(u&&u.visible){const t=getDepthMaterial(n,r,u,a,s.near,s.far,o);e.renderBufferDirect(s,null,r,t,n,c)}}}else if(i.visible){const t=getDepthMaterial(n,r,i,a,s.near,s.far,o);e.renderBufferDirect(s,null,r,t,n,null)}}const c=n.children;for(let e=0,t=c.length;e<t;e++)renderObject(c[e],i,s,a,o)}}function WebGLState(e,t,n){const a=n.isWebGL2;function ColorBuffer(){let t=false;const n=new Vector4;let r=null;const i=new Vector4(0,0,0,0);return{setMask:function(n){if(r!==n&&!t){e.colorMask(n,n,n,n);r=n}},setLocked:function(e){t=e},setClear:function(t,r,s,a,o){if(true===o){t*=a;r*=a;s*=a}n.set(t,r,s,a);if(false===i.equals(n)){e.clearColor(t,r,s,a);i.copy(n)}},reset:function(){t=false;r=null;i.set(-1,0,0,0)}}}function DepthBuffer(){let t=false;let n=null;let r=null;let i=null;return{setTest:function(e){e?enable(2929):disable(2929)},setMask:function(r){if(n!==r&&!t){e.depthMask(r);n=r}},setFunc:function(t){if(r!==t){if(t)switch(t){case G:e.depthFunc(512);break;case F:e.depthFunc(519);break;case O:e.depthFunc(513);break;case H:e.depthFunc(515);break;case k:e.depthFunc(514);break;case W:e.depthFunc(518);break;case j:e.depthFunc(516);break;case q:e.depthFunc(517);break;default:e.depthFunc(515)}else e.depthFunc(515);r=t}},setLocked:function(e){t=e},setClear:function(t){if(i!==t){e.clearDepth(t);i=t}},reset:function(){t=false;n=null;r=null;i=null}}}function StencilBuffer(){let t=false;let n=null;let r=null;let i=null;let s=null;let a=null;let o=null;let l=null;let c=null;return{setTest:function(e){t||(e?enable(2960):disable(2960))},setMask:function(r){if(n!==r&&!t){e.stencilMask(r);n=r}},setFunc:function(t,n,a){if(r!==t||i!==n||s!==a){e.stencilFunc(t,n,a);r=t;i=n;s=a}},setOp:function(t,n,r){if(a!==t||o!==n||l!==r){e.stencilOp(t,n,r);a=t;o=n;l=r}},setLocked:function(e){t=e},setClear:function(t){if(c!==t){e.clearStencil(t);c=t}},reset:function(){t=false;n=null;r=null;i=null;s=null;a=null;o=null;l=null;c=null}}}const o=new ColorBuffer;const l=new DepthBuffer;const c=new StencilBuffer;let u={};let h={};let f=null;let m=false;let X=null;let J=null;let Y=null;let Z=null;let Q=null;let K=null;let $=null;let ee=false;let te=null;let ne=null;let re=null;let ie=null;let se=null;const ae=e.getParameter(35661);let oe=false;let le=0;const ce=e.getParameter(7938);if(-1!==ce.indexOf(\"WebGL\")){le=parseFloat(/^WebGL (\\d)/.exec(ce)[1]);oe=le>=1}else if(-1!==ce.indexOf(\"OpenGL ES\")){le=parseFloat(/^OpenGL ES (\\d)/.exec(ce)[1]);oe=le>=2}let ue=null;let he={};const de=e.getParameter(3088);const pe=e.getParameter(2978);const fe=(new Vector4).fromArray(de);const me=(new Vector4).fromArray(pe);function createTexture(t,n,r){const i=new Uint8Array(4);const s=e.createTexture();e.bindTexture(t,s);e.texParameteri(t,10241,9728);e.texParameteri(t,10240,9728);for(let t=0;t<r;t++)e.texImage2D(n+t,0,6408,1,1,0,6408,5121,i);return s}const ge={};ge[3553]=createTexture(3553,3553,1);ge[34067]=createTexture(34067,34069,6);o.setClear(0,0,0,1);l.setClear(1);c.setClear(0);enable(2929);l.setFunc(H);setFlipSided(false);setCullFace(i);enable(2884);setBlending(g);function enable(t){if(true!==u[t]){e.enable(t);u[t]=true}}function disable(t){if(false!==u[t]){e.disable(t);u[t]=false}}function bindFramebuffer(t,n){if(h[t]!==n){e.bindFramebuffer(t,n);h[t]=n;if(a){36009===t&&(h[36160]=n);36160===t&&(h[36009]=n)}return true}return false}function useProgram(t){if(f!==t){e.useProgram(t);f=t;return true}return false}const ye={[w]:32774,[S]:32778,[T]:32779};if(a){ye[E]=32775;ye[A]=32776}else{const e=t.get(\"EXT_blend_minmax\");if(null!==e){ye[E]=e.MIN_EXT;ye[A]=e.MAX_EXT}}const ve={[L]:0,[C]:1,[R]:768,[I]:770,[z]:776,[N]:774,[B]:772,[P]:769,[D]:771,[U]:775,[V]:773};function setBlending(t,n,r,i,s,a,o,l){if(t!==g){if(false===m){enable(3042);m=true}if(t===M){s=s||n;a=a||r;o=o||i;if(n!==J||s!==Q){e.blendEquationSeparate(ye[n],ye[s]);J=n;Q=s}if(r!==Y||i!==Z||a!==K||o!==$){e.blendFuncSeparate(ve[r],ve[i],ve[a],ve[o]);Y=r;Z=i;K=a;$=o}X=t;ee=null}else if(t!==X||l!==ee){if(J!==w||Q!==w){e.blendEquation(32774);J=w;Q=w}if(l)switch(t){case y:e.blendFuncSeparate(1,771,1,771);break;case x:e.blendFunc(1,1);break;case b:e.blendFuncSeparate(0,0,769,771);break;case _:e.blendFuncSeparate(0,768,0,770);break;default:console.error(\"THREE.WebGLState: Invalid blending: \",t);break}else switch(t){case y:e.blendFuncSeparate(770,771,1,771);break;case x:e.blendFunc(770,1);break;case b:e.blendFunc(0,769);break;case _:e.blendFunc(0,768);break;default:console.error(\"THREE.WebGLState: Invalid blending: \",t);break}Y=null;Z=null;K=null;$=null;X=t;ee=l}}else if(true===m){disable(3042);m=false}}function setMaterial(e,t){e.side===p?disable(2884):enable(2884);let n=e.side===d;t&&(n=!n);setFlipSided(n);e.blending===y&&false===e.transparent?setBlending(g):setBlending(e.blending,e.blendEquation,e.blendSrc,e.blendDst,e.blendEquationAlpha,e.blendSrcAlpha,e.blendDstAlpha,e.premultipliedAlpha);l.setFunc(e.depthFunc);l.setTest(e.depthTest);l.setMask(e.depthWrite);o.setMask(e.colorWrite);const r=e.stencilWrite;c.setTest(r);if(r){c.setMask(e.stencilWriteMask);c.setFunc(e.stencilFunc,e.stencilRef,e.stencilFuncMask);c.setOp(e.stencilFail,e.stencilZFail,e.stencilZPass)}setPolygonOffset(e.polygonOffset,e.polygonOffsetFactor,e.polygonOffsetUnits);true===e.alphaToCoverage?enable(32926):disable(32926)}function setFlipSided(t){if(te!==t){t?e.frontFace(2304):e.frontFace(2305);te=t}}function setCullFace(t){if(t!==r){enable(2884);t!==ne&&(t===i?e.cullFace(1029):t===s?e.cullFace(1028):e.cullFace(1032))}else disable(2884);ne=t}function setLineWidth(t){if(t!==re){oe&&e.lineWidth(t);re=t}}function setPolygonOffset(t,n,r){if(t){enable(32823);if(ie!==n||se!==r){e.polygonOffset(n,r);ie=n;se=r}}else disable(32823)}function setScissorTest(e){e?enable(3089):disable(3089)}function activeTexture(t){void 0===t&&(t=33984+ae-1);if(ue!==t){e.activeTexture(t);ue=t}}function bindTexture(t,n){null===ue&&activeTexture();let r=he[ue];if(void 0===r){r={type:void 0,texture:void 0};he[ue]=r}if(r.type!==t||r.texture!==n){e.bindTexture(t,n||ge[t]);r.type=t;r.texture=n}}function unbindTexture(){const t=he[ue];if(void 0!==t&&void 0!==t.type){e.bindTexture(t.type,null);t.type=void 0;t.texture=void 0}}function compressedTexImage2D(){try{e.compressedTexImage2D.apply(e,arguments)}catch(e){console.error(\"THREE.WebGLState:\",e)}}function texSubImage2D(){try{e.texSubImage2D.apply(e,arguments)}catch(e){console.error(\"THREE.WebGLState:\",e)}}function texSubImage3D(){try{e.texSubImage3D.apply(e,arguments)}catch(e){console.error(\"THREE.WebGLState:\",e)}}function compressedTexSubImage2D(){try{e.compressedTexSubImage2D.apply(e,arguments)}catch(e){console.error(\"THREE.WebGLState:\",e)}}function texStorage2D(){try{e.texStorage2D.apply(e,arguments)}catch(e){console.error(\"THREE.WebGLState:\",e)}}function texStorage3D(){try{e.texStorage3D.apply(e,arguments)}catch(e){console.error(\"THREE.WebGLState:\",e)}}function texImage2D(){try{e.texImage2D.apply(e,arguments)}catch(e){console.error(\"THREE.WebGLState:\",e)}}function texImage3D(){try{e.texImage3D.apply(e,arguments)}catch(e){console.error(\"THREE.WebGLState:\",e)}}function scissor(t){if(false===fe.equals(t)){e.scissor(t.x,t.y,t.z,t.w);fe.copy(t)}}function viewport(t){if(false===me.equals(t)){e.viewport(t.x,t.y,t.z,t.w);me.copy(t)}}function reset(){e.disable(3042);e.disable(2884);e.disable(2929);e.disable(32823);e.disable(3089);e.disable(2960);e.disable(32926);e.blendEquation(32774);e.blendFunc(1,0);e.blendFuncSeparate(1,0,1,0);e.colorMask(true,true,true,true);e.clearColor(0,0,0,0);e.depthMask(true);e.depthFunc(513);e.clearDepth(1);e.stencilMask(4294967295);e.stencilFunc(519,0,4294967295);e.stencilOp(7680,7680,7680);e.clearStencil(0);e.cullFace(1029);e.frontFace(2305);e.polygonOffset(0,0);e.activeTexture(33984);e.bindFramebuffer(36160,null);if(true===a){e.bindFramebuffer(36009,null);e.bindFramebuffer(36008,null)}e.useProgram(null);e.lineWidth(1);e.scissor(0,0,e.canvas.width,e.canvas.height);e.viewport(0,0,e.canvas.width,e.canvas.height);u={};ue=null;he={};h={};f=null;m=false;X=null;J=null;Y=null;Z=null;Q=null;K=null;$=null;ee=false;te=null;ne=null;re=null;ie=null;se=null;fe.set(0,0,e.canvas.width,e.canvas.height);me.set(0,0,e.canvas.width,e.canvas.height);o.reset();l.reset();c.reset()}return{buffers:{color:o,depth:l,stencil:c},enable:enable,disable:disable,bindFramebuffer:bindFramebuffer,useProgram:useProgram,setBlending:setBlending,setMaterial:setMaterial,setFlipSided:setFlipSided,setCullFace:setCullFace,setLineWidth:setLineWidth,setPolygonOffset:setPolygonOffset,setScissorTest:setScissorTest,activeTexture:activeTexture,bindTexture:bindTexture,unbindTexture:unbindTexture,compressedTexImage2D:compressedTexImage2D,texImage2D:texImage2D,texImage3D:texImage3D,texStorage2D:texStorage2D,texStorage3D:texStorage3D,texSubImage2D:texSubImage2D,texSubImage3D:texSubImage3D,compressedTexSubImage2D:compressedTexSubImage2D,scissor:scissor,viewport:viewport,reset:reset}}function WebGLTextures(e,t,n,r,i,s,a){const o=i.isWebGL2;const l=i.maxTextures;const c=i.maxCubemapSize;const u=i.maxTextureSize;const h=i.maxSamples;const d=t.has(\"WEBGL_multisampled_render_to_texture\");const p=d?t.get(\"WEBGL_multisampled_render_to_texture\"):void 0;const f=new WeakMap;let m;let g=false;try{g=\"undefined\"!==typeof OffscreenCanvas&&null!==new OffscreenCanvas(1,1).getContext(\"2d\")}catch(e){}function createCanvas(e,t){return g?new OffscreenCanvas(e,t):createElementNS(\"canvas\")}function resizeImage(e,t,n,r){let i=1;(e.width>r||e.height>r)&&(i=r/Math.max(e.width,e.height));if(i<1||true===t){if(\"undefined\"!==typeof HTMLImageElement&&e instanceof HTMLImageElement||\"undefined\"!==typeof HTMLCanvasElement&&e instanceof HTMLCanvasElement||\"undefined\"!==typeof ImageBitmap&&e instanceof ImageBitmap){const r=t?floorPowerOfTwo:Math.floor;const s=r(i*e.width);const a=r(i*e.height);void 0===m&&(m=createCanvas(s,a));const o=n?createCanvas(s,a):m;o.width=s;o.height=a;const l=o.getContext(\"2d\");l.drawImage(e,0,0,s,a);console.warn(\"THREE.WebGLRenderer: Texture has been resized from (\"+e.width+\"x\"+e.height+\") to (\"+s+\"x\"+a+\").\");return o}\"data\"in e&&console.warn(\"THREE.WebGLRenderer: Image in DataTexture is too big (\"+e.width+\"x\"+e.height+\").\");return e}return e}function isPowerOfTwo$1(e){return isPowerOfTwo(e.width)&&isPowerOfTwo(e.height)}function textureNeedsPowerOfTwo(e){return!o&&(e.wrapS!==ue||e.wrapT!==ue||e.minFilter!==de&&e.minFilter!==ye)}function textureNeedsGenerateMipmaps(e,t){return e.generateMipmaps&&t&&e.minFilter!==de&&e.minFilter!==ye}function generateMipmap(t){e.generateMipmap(t)}function getInternalFormat(n,r,i,s){if(false===o)return r;if(null!==n){if(void 0!==e[n])return e[n];console.warn(\"THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '\"+n+\"'\")}let a=r;if(6403===r){5126===i&&(a=33326);5131===i&&(a=33325);5121===i&&(a=33321)}if(6407===r){5126===i&&(a=34837);5131===i&&(a=34843);5121===i&&(a=32849)}if(6408===r){5126===i&&(a=34836);5131===i&&(a=34842);5121===i&&(a=s===Jt?35907:32856)}33325!==a&&33326!==a&&34842!==a&&34836!==a||t.get(\"EXT_color_buffer_float\");return a}function getMipLevels(e,t,n){return true===textureNeedsGenerateMipmaps(e,n)||e.isFramebufferTexture&&e.minFilter!==de&&e.minFilter!==ye?Math.log2(Math.max(t.width,t.height))+1:void 0!==e.mipmaps&&e.mipmaps.length>0?e.mipmaps.length:e.isCompressedTexture&&Array.isArray(e.image)?t.mipmaps.length:1}function filterFallback(e){return e===de||e===pe||e===me?9728:9729}function onTextureDispose(e){const t=e.target;t.removeEventListener(\"dispose\",onTextureDispose);deallocateTexture(t);t.isVideoTexture&&f.delete(t);a.memory.textures--}function onRenderTargetDispose(e){const t=e.target;t.removeEventListener(\"dispose\",onRenderTargetDispose);deallocateRenderTarget(t)}function deallocateTexture(t){const n=r.get(t);if(void 0!==n.__webglInit){e.deleteTexture(n.__webglTexture);r.remove(t)}}function deallocateRenderTarget(t){const n=t.texture;const i=r.get(t);const s=r.get(n);if(t){if(void 0!==s.__webglTexture){e.deleteTexture(s.__webglTexture);a.memory.textures--}t.depthTexture&&t.depthTexture.dispose();if(t.isWebGLCubeRenderTarget)for(let t=0;t<6;t++){e.deleteFramebuffer(i.__webglFramebuffer[t]);i.__webglDepthbuffer&&e.deleteRenderbuffer(i.__webglDepthbuffer[t])}else{e.deleteFramebuffer(i.__webglFramebuffer);i.__webglDepthbuffer&&e.deleteRenderbuffer(i.__webglDepthbuffer);i.__webglMultisampledFramebuffer&&e.deleteFramebuffer(i.__webglMultisampledFramebuffer);i.__webglColorRenderbuffer&&e.deleteRenderbuffer(i.__webglColorRenderbuffer);i.__webglDepthRenderbuffer&&e.deleteRenderbuffer(i.__webglDepthRenderbuffer)}if(t.isWebGLMultipleRenderTargets)for(let t=0,i=n.length;t<i;t++){const i=r.get(n[t]);if(i.__webglTexture){e.deleteTexture(i.__webglTexture);a.memory.textures--}r.remove(n[t])}r.remove(n);r.remove(t)}}let y=0;function resetTextureUnits(){y=0}function allocateTextureUnit(){const e=y;e>=l&&console.warn(\"THREE.WebGLTextures: Trying to use \"+e+\" texture units while this GPU supports only \"+l);y+=1;return e}function setTexture2D(e,t){const i=r.get(e);e.isVideoTexture&&updateVideoTexture(e);if(e.version>0&&i.__version!==e.version){const n=e.image;if(void 0===n)console.warn(\"THREE.WebGLRenderer: Texture marked for update but image is undefined\");else{if(false!==n.complete){uploadTexture(i,e,t);return}console.warn(\"THREE.WebGLRenderer: Texture marked for update but image is incomplete\")}}n.activeTexture(33984+t);n.bindTexture(3553,i.__webglTexture)}function setTexture2DArray(e,t){const i=r.get(e);if(e.version>0&&i.__version!==e.version)uploadTexture(i,e,t);else{n.activeTexture(33984+t);n.bindTexture(35866,i.__webglTexture)}}function setTexture3D(e,t){const i=r.get(e);if(e.version>0&&i.__version!==e.version)uploadTexture(i,e,t);else{n.activeTexture(33984+t);n.bindTexture(32879,i.__webglTexture)}}function setTextureCube(e,t){const i=r.get(e);if(e.version>0&&i.__version!==e.version)uploadCubeTexture(i,e,t);else{n.activeTexture(33984+t);n.bindTexture(34067,i.__webglTexture)}}const x={[ce]:10497,[ue]:33071,[he]:33648};const b={[de]:9728,[pe]:9984,[me]:9986,[ye]:9729,[ve]:9985,[be]:9987};function setTextureParameters(n,s,a){if(a){e.texParameteri(n,10242,x[s.wrapS]);e.texParameteri(n,10243,x[s.wrapT]);32879!==n&&35866!==n||e.texParameteri(n,32882,x[s.wrapR]);e.texParameteri(n,10240,b[s.magFilter]);e.texParameteri(n,10241,b[s.minFilter])}else{e.texParameteri(n,10242,33071);e.texParameteri(n,10243,33071);32879!==n&&35866!==n||e.texParameteri(n,32882,33071);s.wrapS===ue&&s.wrapT===ue||console.warn(\"THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping.\");e.texParameteri(n,10240,filterFallback(s.magFilter));e.texParameteri(n,10241,filterFallback(s.minFilter));s.minFilter!==de&&s.minFilter!==ye&&console.warn(\"THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.\")}if(true===t.has(\"EXT_texture_filter_anisotropic\")){const a=t.get(\"EXT_texture_filter_anisotropic\");if(s.type===Le&&false===t.has(\"OES_texture_float_linear\"))return;if(false===o&&s.type===Ce&&false===t.has(\"OES_texture_half_float_linear\"))return;if(s.anisotropy>1||r.get(s).__currentAnisotropy){e.texParameterf(n,a.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(s.anisotropy,i.getMaxAnisotropy()));r.get(s).__currentAnisotropy=s.anisotropy}}}function initTexture(t,n){if(void 0===t.__webglInit){t.__webglInit=true;n.addEventListener(\"dispose\",onTextureDispose);t.__webglTexture=e.createTexture();a.memory.textures++}}function uploadTexture(t,r,i){let a=3553;r.isDataTexture2DArray&&(a=35866);r.isDataTexture3D&&(a=32879);initTexture(t,r);n.activeTexture(33984+i);n.bindTexture(a,t.__webglTexture);e.pixelStorei(37440,r.flipY);e.pixelStorei(37441,r.premultiplyAlpha);e.pixelStorei(3317,r.unpackAlignment);e.pixelStorei(37443,0);const l=textureNeedsPowerOfTwo(r)&&false===isPowerOfTwo$1(r.image);const c=resizeImage(r.image,l,false,u);const h=isPowerOfTwo$1(c)||o,d=s.convert(r.format);let p=s.convert(r.type),f=getInternalFormat(r.internalFormat,d,p,r.encoding);setTextureParameters(a,r,h);let m;const g=r.mipmaps;const y=o&&true!==r.isVideoTexture;const x=void 0===t.__version;const b=getMipLevels(r,c,h);if(r.isDepthTexture){f=6402;o?f=r.type===Le?36012:r.type===Ae?33190:r.type===De?35056:33189:r.type===Le&&console.error(\"WebGLRenderer: Floating point depth texture requires WebGL2.\");if(r.format===Ge&&6402===f&&r.type!==Te&&r.type!==Ae){console.warn(\"THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture.\");r.type=Te;p=s.convert(r.type)}if(r.format===Fe&&6402===f){f=34041;if(r.type!==De){console.warn(\"THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture.\");r.type=De;p=s.convert(r.type)}}y&&x?n.texStorage2D(3553,1,f,c.width,c.height):n.texImage2D(3553,0,f,c.width,c.height,0,d,p,null)}else if(r.isDataTexture)if(g.length>0&&h){y&&x&&n.texStorage2D(3553,b,f,g[0].width,g[0].height);for(let e=0,t=g.length;e<t;e++){m=g[e];y?n.texSubImage2D(3553,0,0,0,m.width,m.height,d,p,m.data):n.texImage2D(3553,e,f,m.width,m.height,0,d,p,m.data)}r.generateMipmaps=false}else if(y){x&&n.texStorage2D(3553,b,f,c.width,c.height);n.texSubImage2D(3553,0,0,0,c.width,c.height,d,p,c.data)}else n.texImage2D(3553,0,f,c.width,c.height,0,d,p,c.data);else if(r.isCompressedTexture){y&&x&&n.texStorage2D(3553,b,f,g[0].width,g[0].height);for(let e=0,t=g.length;e<t;e++){m=g[e];r.format!==Ne&&r.format!==Ve?null!==d?y?n.compressedTexSubImage2D(3553,e,0,0,m.width,m.height,d,m.data):n.compressedTexImage2D(3553,e,f,m.width,m.height,0,m.data):console.warn(\"THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()\"):y?n.texSubImage2D(3553,e,0,0,m.width,m.height,d,p,m.data):n.texImage2D(3553,e,f,m.width,m.height,0,d,p,m.data)}}else if(r.isDataTexture2DArray)if(y){x&&n.texStorage3D(35866,b,f,c.width,c.height,c.depth);n.texSubImage3D(35866,0,0,0,0,c.width,c.height,c.depth,d,p,c.data)}else n.texImage3D(35866,0,f,c.width,c.height,c.depth,0,d,p,c.data);else if(r.isDataTexture3D)if(y){x&&n.texStorage3D(32879,b,f,c.width,c.height,c.depth);n.texSubImage3D(32879,0,0,0,0,c.width,c.height,c.depth,d,p,c.data)}else n.texImage3D(32879,0,f,c.width,c.height,c.depth,0,d,p,c.data);else if(r.isFramebufferTexture)y&&x?n.texStorage2D(3553,b,f,c.width,c.height):n.texImage2D(3553,0,f,c.width,c.height,0,d,p,null);else if(g.length>0&&h){y&&x&&n.texStorage2D(3553,b,f,g[0].width,g[0].height);for(let e=0,t=g.length;e<t;e++){m=g[e];y?n.texSubImage2D(3553,e,0,0,d,p,m):n.texImage2D(3553,e,f,d,p,m)}r.generateMipmaps=false}else if(y){x&&n.texStorage2D(3553,b,f,c.width,c.height);n.texSubImage2D(3553,0,0,0,d,p,c)}else n.texImage2D(3553,0,f,d,p,c);textureNeedsGenerateMipmaps(r,h)&&generateMipmap(a);t.__version=r.version;r.onUpdate&&r.onUpdate(r)}function uploadCubeTexture(t,r,i){if(6!==r.image.length)return;initTexture(t,r);n.activeTexture(33984+i);n.bindTexture(34067,t.__webglTexture);e.pixelStorei(37440,r.flipY);e.pixelStorei(37441,r.premultiplyAlpha);e.pixelStorei(3317,r.unpackAlignment);e.pixelStorei(37443,0);const a=r&&(r.isCompressedTexture||r.image[0].isCompressedTexture);const l=r.image[0]&&r.image[0].isDataTexture;const u=[];for(let e=0;e<6;e++)u[e]=a||l?l?r.image[e].image:r.image[e]:resizeImage(r.image[e],false,true,c);const h=u[0],d=isPowerOfTwo$1(h)||o,p=s.convert(r.format),f=s.convert(r.type),m=getInternalFormat(r.internalFormat,p,f,r.encoding);const g=o&&true!==r.isVideoTexture;const y=void 0===t.__version;let x=getMipLevels(r,h,d);setTextureParameters(34067,r,d);let b;if(a){g&&y&&n.texStorage2D(34067,x,m,h.width,h.height);for(let e=0;e<6;e++){b=u[e].mipmaps;for(let t=0;t<b.length;t++){const i=b[t];r.format!==Ne&&r.format!==Ve?null!==p?g?n.compressedTexSubImage2D(34069+e,t,0,0,i.width,i.height,p,i.data):n.compressedTexImage2D(34069+e,t,m,i.width,i.height,0,i.data):console.warn(\"THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()\"):g?n.texSubImage2D(34069+e,t,0,0,i.width,i.height,p,f,i.data):n.texImage2D(34069+e,t,m,i.width,i.height,0,p,f,i.data)}}}else{b=r.mipmaps;if(g&&y){b.length>0&&x++;n.texStorage2D(34067,x,m,u[0].width,u[0].height)}for(let e=0;e<6;e++)if(l){g?n.texSubImage2D(34069+e,0,0,0,u[e].width,u[e].height,p,f,u[e].data):n.texImage2D(34069+e,0,m,u[e].width,u[e].height,0,p,f,u[e].data);for(let t=0;t<b.length;t++){const r=b[t];const i=r.image[e].image;g?n.texSubImage2D(34069+e,t+1,0,0,i.width,i.height,p,f,i.data):n.texImage2D(34069+e,t+1,m,i.width,i.height,0,p,f,i.data)}}else{g?n.texSubImage2D(34069+e,0,0,0,p,f,u[e]):n.texImage2D(34069+e,0,m,p,f,u[e]);for(let t=0;t<b.length;t++){const r=b[t];g?n.texSubImage2D(34069+e,t+1,0,0,p,f,r.image[e]):n.texImage2D(34069+e,t+1,m,p,f,r.image[e])}}}textureNeedsGenerateMipmaps(r,d)&&generateMipmap(34067);t.__version=r.version;r.onUpdate&&r.onUpdate(r)}function setupFrameBufferTexture(t,i,a,o,l){const c=s.convert(a.format);const u=s.convert(a.type);const h=getInternalFormat(a.internalFormat,c,u,a.encoding);const d=r.get(i);d.__hasExternalTextures||(32879===l||35866===l?n.texImage3D(l,0,h,i.width,i.height,i.depth,0,c,u,null):n.texImage2D(l,0,h,i.width,i.height,0,c,u,null));n.bindFramebuffer(36160,t);i.useRenderToTexture?p.framebufferTexture2DMultisampleEXT(36160,o,l,r.get(a).__webglTexture,0,getRenderTargetSamples(i)):e.framebufferTexture2D(36160,o,l,r.get(a).__webglTexture,0);n.bindFramebuffer(36160,null)}function setupRenderBufferStorage(t,n,r){e.bindRenderbuffer(36161,t);if(n.depthBuffer&&!n.stencilBuffer){let i=33189;if(r||n.useRenderToTexture){const t=n.depthTexture;t&&t.isDepthTexture&&(t.type===Le?i=36012:t.type===Ae&&(i=33190));const r=getRenderTargetSamples(n);n.useRenderToTexture?p.renderbufferStorageMultisampleEXT(36161,r,i,n.width,n.height):e.renderbufferStorageMultisample(36161,r,i,n.width,n.height)}else e.renderbufferStorage(36161,i,n.width,n.height);e.framebufferRenderbuffer(36160,36096,36161,t)}else if(n.depthBuffer&&n.stencilBuffer){const i=getRenderTargetSamples(n);r&&n.useRenderbuffer?e.renderbufferStorageMultisample(36161,i,35056,n.width,n.height):n.useRenderToTexture?p.renderbufferStorageMultisampleEXT(36161,i,35056,n.width,n.height):e.renderbufferStorage(36161,34041,n.width,n.height);e.framebufferRenderbuffer(36160,33306,36161,t)}else{const t=true===n.isWebGLMultipleRenderTargets?n.texture[0]:n.texture;const i=s.convert(t.format);const a=s.convert(t.type);const o=getInternalFormat(t.internalFormat,i,a,t.encoding);const l=getRenderTargetSamples(n);r&&n.useRenderbuffer?e.renderbufferStorageMultisample(36161,l,o,n.width,n.height):n.useRenderToTexture?p.renderbufferStorageMultisampleEXT(36161,l,o,n.width,n.height):e.renderbufferStorage(36161,o,n.width,n.height)}e.bindRenderbuffer(36161,null)}function setupDepthTexture(t,i){const s=i&&i.isWebGLCubeRenderTarget;if(s)throw new Error(\"Depth Texture with cube render targets is not supported\");n.bindFramebuffer(36160,t);if(!(i.depthTexture&&i.depthTexture.isDepthTexture))throw new Error(\"renderTarget.depthTexture must be an instance of THREE.DepthTexture\");if(!r.get(i.depthTexture).__webglTexture||i.depthTexture.image.width!==i.width||i.depthTexture.image.height!==i.height){i.depthTexture.image.width=i.width;i.depthTexture.image.height=i.height;i.depthTexture.needsUpdate=true}setTexture2D(i.depthTexture,0);const a=r.get(i.depthTexture).__webglTexture;const o=getRenderTargetSamples(i);if(i.depthTexture.format===Ge)i.useRenderToTexture?p.framebufferTexture2DMultisampleEXT(36160,36096,3553,a,0,o):e.framebufferTexture2D(36160,36096,3553,a,0);else{if(i.depthTexture.format!==Fe)throw new Error(\"Unknown depthTexture format\");i.useRenderToTexture?p.framebufferTexture2DMultisampleEXT(36160,33306,3553,a,0,o):e.framebufferTexture2D(36160,33306,3553,a,0)}}function setupDepthRenderbuffer(t){const i=r.get(t);const s=true===t.isWebGLCubeRenderTarget;if(t.depthTexture&&!i.__autoAllocateDepthBuffer){if(s)throw new Error(\"target.depthTexture not supported in Cube render targets\");setupDepthTexture(i.__webglFramebuffer,t)}else if(s){i.__webglDepthbuffer=[];for(let r=0;r<6;r++){n.bindFramebuffer(36160,i.__webglFramebuffer[r]);i.__webglDepthbuffer[r]=e.createRenderbuffer();setupRenderBufferStorage(i.__webglDepthbuffer[r],t,false)}}else{n.bindFramebuffer(36160,i.__webglFramebuffer);i.__webglDepthbuffer=e.createRenderbuffer();setupRenderBufferStorage(i.__webglDepthbuffer,t,false)}n.bindFramebuffer(36160,null)}function rebindTextures(e,t,n){const i=r.get(e);void 0!==t&&setupFrameBufferTexture(i.__webglFramebuffer,e,e.texture,36064,3553);void 0!==n&&setupDepthRenderbuffer(e)}function setupRenderTarget(t){const l=t.texture;const c=r.get(t);const u=r.get(l);t.addEventListener(\"dispose\",onRenderTargetDispose);if(true!==t.isWebGLMultipleRenderTargets){void 0===u.__webglTexture&&(u.__webglTexture=e.createTexture());u.__version=l.version;a.memory.textures++}const h=true===t.isWebGLCubeRenderTarget;const d=true===t.isWebGLMultipleRenderTargets;const p=l.isDataTexture3D||l.isDataTexture2DArray;const f=isPowerOfTwo$1(t)||o;if(o&&l.format===Ve&&(l.type===Le||l.type===Ce)){l.format=Ne;console.warn(\"THREE.WebGLRenderer: Rendering to textures with RGB format is not supported. Using RGBA format instead.\")}if(h){c.__webglFramebuffer=[];for(let t=0;t<6;t++)c.__webglFramebuffer[t]=e.createFramebuffer()}else{c.__webglFramebuffer=e.createFramebuffer();if(d)if(i.drawBuffers){const n=t.texture;for(let t=0,i=n.length;t<i;t++){const i=r.get(n[t]);if(void 0===i.__webglTexture){i.__webglTexture=e.createTexture();a.memory.textures++}}}else console.warn(\"THREE.WebGLRenderer: WebGLMultipleRenderTargets can only be used with WebGL2 or WEBGL_draw_buffers extension.\");else if(t.useRenderbuffer)if(o){c.__webglMultisampledFramebuffer=e.createFramebuffer();c.__webglColorRenderbuffer=e.createRenderbuffer();e.bindRenderbuffer(36161,c.__webglColorRenderbuffer);const r=s.convert(l.format);const i=s.convert(l.type);const a=getInternalFormat(l.internalFormat,r,i,l.encoding);const o=getRenderTargetSamples(t);e.renderbufferStorageMultisample(36161,o,a,t.width,t.height);n.bindFramebuffer(36160,c.__webglMultisampledFramebuffer);e.framebufferRenderbuffer(36160,36064,36161,c.__webglColorRenderbuffer);e.bindRenderbuffer(36161,null);if(t.depthBuffer){c.__webglDepthRenderbuffer=e.createRenderbuffer();setupRenderBufferStorage(c.__webglDepthRenderbuffer,t,true)}n.bindFramebuffer(36160,null)}else console.warn(\"THREE.WebGLRenderer: WebGLMultisampleRenderTarget can only be used with WebGL2.\")}if(h){n.bindTexture(34067,u.__webglTexture);setTextureParameters(34067,l,f);for(let e=0;e<6;e++)setupFrameBufferTexture(c.__webglFramebuffer[e],t,l,36064,34069+e);textureNeedsGenerateMipmaps(l,f)&&generateMipmap(34067);n.unbindTexture()}else if(d){const e=t.texture;for(let i=0,s=e.length;i<s;i++){const s=e[i];const a=r.get(s);n.bindTexture(3553,a.__webglTexture);setTextureParameters(3553,s,f);setupFrameBufferTexture(c.__webglFramebuffer,t,s,36064+i,3553);textureNeedsGenerateMipmaps(s,f)&&generateMipmap(3553)}n.unbindTexture()}else{let e=3553;if(p)if(o){const t=l.isDataTexture3D;e=t?32879:35866}else console.warn(\"THREE.DataTexture3D and THREE.DataTexture2DArray only supported with WebGL2.\");n.bindTexture(e,u.__webglTexture);setTextureParameters(e,l,f);setupFrameBufferTexture(c.__webglFramebuffer,t,l,36064,e);textureNeedsGenerateMipmaps(l,f)&&generateMipmap(e);n.unbindTexture()}t.depthBuffer&&setupDepthRenderbuffer(t)}function updateRenderTargetMipmap(e){const t=isPowerOfTwo$1(e)||o;const i=true===e.isWebGLMultipleRenderTargets?e.texture:[e.texture];for(let s=0,a=i.length;s<a;s++){const a=i[s];if(textureNeedsGenerateMipmaps(a,t)){const t=e.isWebGLCubeRenderTarget?34067:3553;const i=r.get(a).__webglTexture;n.bindTexture(t,i);generateMipmap(t);n.unbindTexture()}}}function updateMultisampleRenderTarget(t){if(t.useRenderbuffer)if(o){const i=t.width;const s=t.height;let a=16384;const o=[36064];const l=t.stencilBuffer?33306:36096;t.depthBuffer&&o.push(l);if(!t.ignoreDepthForMultisampleCopy){t.depthBuffer&&(a|=256);t.stencilBuffer&&(a|=1024)}const c=r.get(t);n.bindFramebuffer(36008,c.__webglMultisampledFramebuffer);n.bindFramebuffer(36009,c.__webglFramebuffer);if(t.ignoreDepthForMultisampleCopy){e.invalidateFramebuffer(36008,[l]);e.invalidateFramebuffer(36009,[l])}e.blitFramebuffer(0,0,i,s,0,0,i,s,a,9728);e.invalidateFramebuffer(36008,o);n.bindFramebuffer(36008,null);n.bindFramebuffer(36009,c.__webglMultisampledFramebuffer)}else console.warn(\"THREE.WebGLRenderer: WebGLMultisampleRenderTarget can only be used with WebGL2.\")}function getRenderTargetSamples(e){return o&&(e.useRenderbuffer||e.useRenderToTexture)?Math.min(h,e.samples):0}function updateVideoTexture(e){const t=a.render.frame;if(f.get(e)!==t){f.set(e,t);e.update()}}let _=false;let M=false;function safeSetTexture2D(e,t){if(e&&e.isWebGLRenderTarget){if(false===_){console.warn(\"THREE.WebGLTextures.safeSetTexture2D: don't use render targets as textures. Use their .texture property instead.\");_=true}e=e.texture}setTexture2D(e,t)}function safeSetTextureCube(e,t){if(e&&e.isWebGLCubeRenderTarget){if(false===M){console.warn(\"THREE.WebGLTextures.safeSetTextureCube: don't use cube render targets as textures. Use their .texture property instead.\");M=true}e=e.texture}setTextureCube(e,t)}this.allocateTextureUnit=allocateTextureUnit;this.resetTextureUnits=resetTextureUnits;this.setTexture2D=setTexture2D;this.setTexture2DArray=setTexture2DArray;this.setTexture3D=setTexture3D;this.setTextureCube=setTextureCube;this.rebindTextures=rebindTextures;this.setupRenderTarget=setupRenderTarget;this.updateRenderTargetMipmap=updateRenderTargetMipmap;this.updateMultisampleRenderTarget=updateMultisampleRenderTarget;this.setupDepthRenderbuffer=setupDepthRenderbuffer;this.setupFrameBufferTexture=setupFrameBufferTexture;this.safeSetTexture2D=safeSetTexture2D;this.safeSetTextureCube=safeSetTextureCube}function WebGLUtils(e,t,n){const r=n.isWebGL2;function convert(e){let n;if(e===Me)return 5121;if(e===Re)return 32819;if(e===Pe)return 32820;if(e===Ie)return 33635;if(e===we)return 5120;if(e===Se)return 5122;if(e===Te)return 5123;if(e===Ee)return 5124;if(e===Ae)return 5125;if(e===Le)return 5126;if(e===Ce){if(r)return 5131;n=t.get(\"OES_texture_half_float\");return null!==n?n.HALF_FLOAT_OES:null}if(e===Be)return 6406;if(e===Ve)return 6407;if(e===Ne)return 6408;if(e===Ue)return 6409;if(e===ze)return 6410;if(e===Ge)return 6402;if(e===Fe)return 34041;if(e===Oe)return 6403;if(e===He)return 36244;if(e===ke)return 33319;if(e===We)return 33320;if(e===je)return 36248;if(e===qe)return 36249;if(e===Xe||e===Je||e===Ye||e===Ze){n=t.get(\"WEBGL_compressed_texture_s3tc\");if(null===n)return null;if(e===Xe)return n.COMPRESSED_RGB_S3TC_DXT1_EXT;if(e===Je)return n.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(e===Ye)return n.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(e===Ze)return n.COMPRESSED_RGBA_S3TC_DXT5_EXT}if(e===Qe||e===Ke||e===$e||e===et){n=t.get(\"WEBGL_compressed_texture_pvrtc\");if(null===n)return null;if(e===Qe)return n.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(e===Ke)return n.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(e===$e)return n.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(e===et)return n.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}if(e===tt){n=t.get(\"WEBGL_compressed_texture_etc1\");return null!==n?n.COMPRESSED_RGB_ETC1_WEBGL:null}if(e===nt||e===rt){n=t.get(\"WEBGL_compressed_texture_etc\");if(null!==n){if(e===nt)return n.COMPRESSED_RGB8_ETC2;if(e===rt)return n.COMPRESSED_RGBA8_ETC2_EAC}}if(e===it||e===st||e===at||e===ot||e===lt||e===ct||e===ut||e===ht||e===dt||e===pt||e===ft||e===mt||e===gt||e===yt||e===xt||e===bt||e===_t||e===Mt||e===wt||e===St||e===Tt||e===Et||e===At||e===Lt||e===Ct||e===Rt||e===Pt||e===It){n=t.get(\"WEBGL_compressed_texture_astc\");return null!==n?e:null}if(e===vt){n=t.get(\"EXT_texture_compression_bptc\");return null!==n?e:null}if(e===De){if(r)return 34042;n=t.get(\"WEBGL_depth_texture\");return null!==n?n.UNSIGNED_INT_24_8_WEBGL:null}}return{convert:convert}}class ArrayCamera extends PerspectiveCamera{constructor(e=[]){super();this.cameras=e}}ArrayCamera.prototype.isArrayCamera=true;class Group extends Object3D{constructor(){super();this.type=\"Group\"}}Group.prototype.isGroup=true;const Vo={type:\"move\"};class WebXRController{constructor(){this._targetRay=null;this._grip=null;this._hand=null}getHandSpace(){if(null===this._hand){this._hand=new Group;this._hand.matrixAutoUpdate=false;this._hand.visible=false;this._hand.joints={};this._hand.inputState={pinching:false}}return this._hand}getTargetRaySpace(){if(null===this._targetRay){this._targetRay=new Group;this._targetRay.matrixAutoUpdate=false;this._targetRay.visible=false;this._targetRay.hasLinearVelocity=false;this._targetRay.linearVelocity=new Vector3;this._targetRay.hasAngularVelocity=false;this._targetRay.angularVelocity=new Vector3}return this._targetRay}getGripSpace(){if(null===this._grip){this._grip=new Group;this._grip.matrixAutoUpdate=false;this._grip.visible=false;this._grip.hasLinearVelocity=false;this._grip.linearVelocity=new Vector3;this._grip.hasAngularVelocity=false;this._grip.angularVelocity=new Vector3}return this._grip}dispatchEvent(e){null!==this._targetRay&&this._targetRay.dispatchEvent(e);null!==this._grip&&this._grip.dispatchEvent(e);null!==this._hand&&this._hand.dispatchEvent(e);return this}disconnect(e){this.dispatchEvent({type:\"disconnected\",data:e});null!==this._targetRay&&(this._targetRay.visible=false);null!==this._grip&&(this._grip.visible=false);null!==this._hand&&(this._hand.visible=false);return this}update(e,t,n){let r=null;let i=null;let s=null;const a=this._targetRay;const o=this._grip;const l=this._hand;if(e&&\"visible-blurred\"!==t.session.visibilityState){if(null!==a){r=t.getPose(e.targetRaySpace,n);if(null!==r){a.matrix.fromArray(r.transform.matrix);a.matrix.decompose(a.position,a.rotation,a.scale);if(r.linearVelocity){a.hasLinearVelocity=true;a.linearVelocity.copy(r.linearVelocity)}else a.hasLinearVelocity=false;if(r.angularVelocity){a.hasAngularVelocity=true;a.angularVelocity.copy(r.angularVelocity)}else a.hasAngularVelocity=false;this.dispatchEvent(Vo)}}if(l&&e.hand){s=true;for(const r of e.hand.values()){const e=t.getJointPose(r,n);if(void 0===l.joints[r.jointName]){const e=new Group;e.matrixAutoUpdate=false;e.visible=false;l.joints[r.jointName]=e;l.add(e)}const i=l.joints[r.jointName];if(null!==e){i.matrix.fromArray(e.transform.matrix);i.matrix.decompose(i.position,i.rotation,i.scale);i.jointRadius=e.radius}i.visible=null!==e}const r=l.joints[\"index-finger-tip\"];const i=l.joints[\"thumb-tip\"];const a=r.position.distanceTo(i.position);const o=.02;const c=.005;if(l.inputState.pinching&&a>o+c){l.inputState.pinching=false;this.dispatchEvent({type:\"pinchend\",handedness:e.handedness,target:this})}else if(!l.inputState.pinching&&a<=o-c){l.inputState.pinching=true;this.dispatchEvent({type:\"pinchstart\",handedness:e.handedness,target:this})}}else if(null!==o&&e.gripSpace){i=t.getPose(e.gripSpace,n);if(null!==i){o.matrix.fromArray(i.transform.matrix);o.matrix.decompose(o.position,o.rotation,o.scale);if(i.linearVelocity){o.hasLinearVelocity=true;o.linearVelocity.copy(i.linearVelocity)}else o.hasLinearVelocity=false;if(i.angularVelocity){o.hasAngularVelocity=true;o.angularVelocity.copy(i.angularVelocity)}else o.hasAngularVelocity=false}}}null!==a&&(a.visible=null!==r);null!==o&&(o.visible=null!==i);null!==l&&(l.visible=null!==s);return this}}class DepthTexture extends Texture{constructor(e,t,n,r,i,s,a,o,l,c){c=void 0!==c?c:Ge;if(c!==Ge&&c!==Fe)throw new Error(\"DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat\");void 0===n&&c===Ge&&(n=Te);void 0===n&&c===Fe&&(n=De);super(null,r,i,s,a,o,c,n,l);this.image={width:e,height:t};this.magFilter=void 0!==a?a:de;this.minFilter=void 0!==o?o:de;this.flipY=false;this.generateMipmaps=false}}DepthTexture.prototype.isDepthTexture=true;class WebXRManager extends EventDispatcher{constructor(e,t){super();const n=this;let r=null;let i=1;let s=null;let a=\"local-floor\";const o=e.extensions.has(\"WEBGL_multisampled_render_to_texture\");let l=null;let c=null;let u=null;let h=null;let d=false;let p=null;const f=t.getContextAttributes();let m=null;let g=null;const y=[];const x=new Map;const b=new PerspectiveCamera;b.layers.enable(1);b.viewport=new Vector4;const _=new PerspectiveCamera;_.layers.enable(2);_.viewport=new Vector4;const M=[b,_];const w=new ArrayCamera;w.layers.enable(1);w.layers.enable(2);let S=null;let T=null;this.cameraAutoUpdate=true;this.enabled=false;this.isPresenting=false;this.getController=function(e){let t=y[e];if(void 0===t){t=new WebXRController;y[e]=t}return t.getTargetRaySpace()};this.getControllerGrip=function(e){let t=y[e];if(void 0===t){t=new WebXRController;y[e]=t}return t.getGripSpace()};this.getHand=function(e){let t=y[e];if(void 0===t){t=new WebXRController;y[e]=t}return t.getHandSpace()};function onSessionEvent(e){const t=x.get(e.inputSource);t&&t.dispatchEvent({type:e.type,data:e.inputSource})}function onSessionEnd(){x.forEach((function(e,t){e.disconnect(t)}));x.clear();S=null;T=null;e.setRenderTarget(m);h=null;u=null;c=null;r=null;g=null;C.stop();n.isPresenting=false;n.dispatchEvent({type:\"sessionend\"})}this.setFramebufferScaleFactor=function(e){i=e;true===n.isPresenting&&console.warn(\"THREE.WebXRManager: Cannot change framebuffer scale while presenting.\")};this.setReferenceSpaceType=function(e){a=e;true===n.isPresenting&&console.warn(\"THREE.WebXRManager: Cannot change reference space type while presenting.\")};this.getReferenceSpace=function(){return s};this.getBaseLayer=function(){return null!==u?u:h};this.getBinding=function(){return c};this.getFrame=function(){return p};this.getSession=function(){return r};this.setSession=async function(l){r=l;if(null!==r){m=e.getRenderTarget();r.addEventListener(\"select\",onSessionEvent);r.addEventListener(\"selectstart\",onSessionEvent);r.addEventListener(\"selectend\",onSessionEvent);r.addEventListener(\"squeeze\",onSessionEvent);r.addEventListener(\"squeezestart\",onSessionEvent);r.addEventListener(\"squeezeend\",onSessionEvent);r.addEventListener(\"end\",onSessionEnd);r.addEventListener(\"inputsourceschange\",onInputSourcesChange);true!==f.xrCompatible&&await t.makeXRCompatible();if(void 0===r.renderState.layers||false===e.capabilities.isWebGL2){const n={antialias:void 0!==r.renderState.layers||f.antialias,alpha:f.alpha,depth:f.depth,stencil:f.stencil,framebufferScaleFactor:i};h=new XRWebGLLayer(r,t,n);r.updateRenderState({baseLayer:h});g=new WebGLRenderTarget(h.framebufferWidth,h.framebufferHeight,{format:Ne,type:Me,encoding:e.outputEncoding})}else{d=f.antialias;let n=null;let s=null;let a=null;if(f.depth){a=f.stencil?35056:33190;n=f.stencil?Fe:Ge;s=f.stencil?De:Te}const l={colorFormat:f.alpha||d?32856:32849,depthFormat:a,scaleFactor:i};c=new XRWebGLBinding(r,t);u=c.createProjectionLayer(l);r.updateRenderState({layers:[u]});g=d?new WebGLMultisampleRenderTarget(u.textureWidth,u.textureHeight,{format:Ne,type:Me,depthTexture:new DepthTexture(u.textureWidth,u.textureHeight,s,void 0,void 0,void 0,void 0,void 0,void 0,n),stencilBuffer:f.stencil,ignoreDepth:u.ignoreDepthValues,useRenderToTexture:o,encoding:e.outputEncoding}):new WebGLRenderTarget(u.textureWidth,u.textureHeight,{format:f.alpha?Ne:Ve,type:Me,depthTexture:new DepthTexture(u.textureWidth,u.textureHeight,s,void 0,void 0,void 0,void 0,void 0,void 0,n),stencilBuffer:f.stencil,ignoreDepth:u.ignoreDepthValues,encoding:e.outputEncoding})}this.setFoveation(1);s=await r.requestReferenceSpace(a);C.setContext(r);C.start();n.isPresenting=true;n.dispatchEvent({type:\"sessionstart\"})}};function onInputSourcesChange(e){const t=r.inputSources;for(let e=0;e<y.length;e++)x.set(t[e],y[e]);for(let t=0;t<e.removed.length;t++){const n=e.removed[t];const r=x.get(n);if(r){r.dispatchEvent({type:\"disconnected\",data:n});x.delete(n)}}for(let t=0;t<e.added.length;t++){const n=e.added[t];const r=x.get(n);r&&r.dispatchEvent({type:\"connected\",data:n})}}const E=new Vector3;const A=new Vector3;function setProjectionFromUnion(e,t,n){E.setFromMatrixPosition(t.matrixWorld);A.setFromMatrixPosition(n.matrixWorld);const r=E.distanceTo(A);const i=t.projectionMatrix.elements;const s=n.projectionMatrix.elements;const a=i[14]/(i[10]-1);const o=i[14]/(i[10]+1);const l=(i[9]+1)/i[5];const c=(i[9]-1)/i[5];const u=(i[8]-1)/i[0];const h=(s[8]+1)/s[0];const d=a*u;const p=a*h;const f=r/(-u+h);const m=f*-u;t.matrixWorld.decompose(e.position,e.quaternion,e.scale);e.translateX(m);e.translateZ(f);e.matrixWorld.compose(e.position,e.quaternion,e.scale);e.matrixWorldInverse.copy(e.matrixWorld).invert();const g=a+f;const y=o+f;const x=d-m;const b=p+(r-m);const _=l*o/y*g;const M=c*o/y*g;e.projectionMatrix.makePerspective(x,b,_,M,g,y)}function updateCamera(e,t){null===t?e.matrixWorld.copy(e.matrix):e.matrixWorld.multiplyMatrices(t.matrixWorld,e.matrix);e.matrixWorldInverse.copy(e.matrixWorld).invert()}this.updateCamera=function(e){if(null===r)return;w.near=_.near=b.near=e.near;w.far=_.far=b.far=e.far;if(S!==w.near||T!==w.far){r.updateRenderState({depthNear:w.near,depthFar:w.far});S=w.near;T=w.far}const t=e.parent;const n=w.cameras;updateCamera(w,t);for(let e=0;e<n.length;e++)updateCamera(n[e],t);w.matrixWorld.decompose(w.position,w.quaternion,w.scale);e.position.copy(w.position);e.quaternion.copy(w.quaternion);e.scale.copy(w.scale);e.matrix.copy(w.matrix);e.matrixWorld.copy(w.matrixWorld);const i=e.children;for(let e=0,t=i.length;e<t;e++)i[e].updateMatrixWorld(true);2===n.length?setProjectionFromUnion(w,b,_):w.projectionMatrix.copy(b.projectionMatrix)};this.getCamera=function(){return w};this.getFoveation=function(){return null!==u?u.fixedFoveation:null!==h?h.fixedFoveation:void 0};this.setFoveation=function(e){null!==u&&(u.fixedFoveation=e);null!==h&&void 0!==h.fixedFoveation&&(h.fixedFoveation=e)};let L=null;function onAnimationFrame(t,n){l=n.getViewerPose(s);p=n;if(null!==l){const t=l.views;if(null!==h){e.setRenderTargetFramebuffer(g,h.framebuffer);e.setRenderTarget(g)}let n=false;if(t.length!==w.cameras.length){w.cameras.length=0;n=true}for(let r=0;r<t.length;r++){const i=t[r];let s=null;if(null!==h)s=h.getViewport(i);else{const t=c.getViewSubImage(u,i);s=t.viewport;if(0===r){e.setRenderTargetTextures(g,t.colorTexture,u.ignoreDepthValues?void 0:t.depthStencilTexture);e.setRenderTarget(g)}}const a=M[r];a.matrix.fromArray(i.transform.matrix);a.projectionMatrix.fromArray(i.projectionMatrix);a.viewport.set(s.x,s.y,s.width,s.height);0===r&&w.matrix.copy(a.matrix);true===n&&w.cameras.push(a)}}const i=r.inputSources;for(let e=0;e<y.length;e++){const t=y[e];const r=i[e];t.update(r,n,s)}L&&L(t,n);p=null}const C=new WebGLAnimation;C.setAnimationLoop(onAnimationFrame);this.setAnimationLoop=function(e){L=e};this.dispose=function(){}}}function WebGLMaterials(e){function refreshFogUniforms(e,t){e.fogColor.value.copy(t.color);if(t.isFog){e.fogNear.value=t.near;e.fogFar.value=t.far}else t.isFogExp2&&(e.fogDensity.value=t.density)}function refreshMaterialUniforms(e,t,n,r,i){if(t.isMeshBasicMaterial)refreshUniformsCommon(e,t);else if(t.isMeshLambertMaterial){refreshUniformsCommon(e,t);refreshUniformsLambert(e,t)}else if(t.isMeshToonMaterial){refreshUniformsCommon(e,t);refreshUniformsToon(e,t)}else if(t.isMeshPhongMaterial){refreshUniformsCommon(e,t);refreshUniformsPhong(e,t)}else if(t.isMeshStandardMaterial){refreshUniformsCommon(e,t);t.isMeshPhysicalMaterial?refreshUniformsPhysical(e,t,i):refreshUniformsStandard(e,t)}else if(t.isMeshMatcapMaterial){refreshUniformsCommon(e,t);refreshUniformsMatcap(e,t)}else if(t.isMeshDepthMaterial){refreshUniformsCommon(e,t);refreshUniformsDepth(e,t)}else if(t.isMeshDistanceMaterial){refreshUniformsCommon(e,t);refreshUniformsDistance(e,t)}else if(t.isMeshNormalMaterial){refreshUniformsCommon(e,t);refreshUniformsNormal(e,t)}else if(t.isLineBasicMaterial){refreshUniformsLine(e,t);t.isLineDashedMaterial&&refreshUniformsDash(e,t)}else if(t.isPointsMaterial)refreshUniformsPoints(e,t,n,r);else if(t.isSpriteMaterial)refreshUniformsSprites(e,t);else if(t.isShadowMaterial){e.color.value.copy(t.color);e.opacity.value=t.opacity}else t.isShaderMaterial&&(t.uniformsNeedUpdate=false)}function refreshUniformsCommon(t,n){t.opacity.value=n.opacity;n.color&&t.diffuse.value.copy(n.color);n.emissive&&t.emissive.value.copy(n.emissive).multiplyScalar(n.emissiveIntensity);n.map&&(t.map.value=n.map);n.alphaMap&&(t.alphaMap.value=n.alphaMap);n.specularMap&&(t.specularMap.value=n.specularMap);n.alphaTest>0&&(t.alphaTest.value=n.alphaTest);const r=e.get(n).envMap;if(r){t.envMap.value=r;t.flipEnvMap.value=r.isCubeTexture&&false===r.isRenderTargetTexture?-1:1;t.reflectivity.value=n.reflectivity;t.ior.value=n.ior;t.refractionRatio.value=n.refractionRatio}if(n.lightMap){t.lightMap.value=n.lightMap;t.lightMapIntensity.value=n.lightMapIntensity}if(n.aoMap){t.aoMap.value=n.aoMap;t.aoMapIntensity.value=n.aoMapIntensity}let i;n.map?i=n.map:n.specularMap?i=n.specularMap:n.displacementMap?i=n.displacementMap:n.normalMap?i=n.normalMap:n.bumpMap?i=n.bumpMap:n.roughnessMap?i=n.roughnessMap:n.metalnessMap?i=n.metalnessMap:n.alphaMap?i=n.alphaMap:n.emissiveMap?i=n.emissiveMap:n.clearcoatMap?i=n.clearcoatMap:n.clearcoatNormalMap?i=n.clearcoatNormalMap:n.clearcoatRoughnessMap?i=n.clearcoatRoughnessMap:n.specularIntensityMap?i=n.specularIntensityMap:n.specularColorMap?i=n.specularColorMap:n.transmissionMap?i=n.transmissionMap:n.thicknessMap?i=n.thicknessMap:n.sheenColorMap?i=n.sheenColorMap:n.sheenRoughnessMap&&(i=n.sheenRoughnessMap);if(void 0!==i){i.isWebGLRenderTarget&&(i=i.texture);true===i.matrixAutoUpdate&&i.updateMatrix();t.uvTransform.value.copy(i.matrix)}let s;n.aoMap?s=n.aoMap:n.lightMap&&(s=n.lightMap);if(void 0!==s){s.isWebGLRenderTarget&&(s=s.texture);true===s.matrixAutoUpdate&&s.updateMatrix();t.uv2Transform.value.copy(s.matrix)}}function refreshUniformsLine(e,t){e.diffuse.value.copy(t.color);e.opacity.value=t.opacity}function refreshUniformsDash(e,t){e.dashSize.value=t.dashSize;e.totalSize.value=t.dashSize+t.gapSize;e.scale.value=t.scale}function refreshUniformsPoints(e,t,n,r){e.diffuse.value.copy(t.color);e.opacity.value=t.opacity;e.size.value=t.size*n;e.scale.value=.5*r;t.map&&(e.map.value=t.map);t.alphaMap&&(e.alphaMap.value=t.alphaMap);t.alphaTest>0&&(e.alphaTest.value=t.alphaTest);let i;t.map?i=t.map:t.alphaMap&&(i=t.alphaMap);if(void 0!==i){true===i.matrixAutoUpdate&&i.updateMatrix();e.uvTransform.value.copy(i.matrix)}}function refreshUniformsSprites(e,t){e.diffuse.value.copy(t.color);e.opacity.value=t.opacity;e.rotation.value=t.rotation;t.map&&(e.map.value=t.map);t.alphaMap&&(e.alphaMap.value=t.alphaMap);t.alphaTest>0&&(e.alphaTest.value=t.alphaTest);let n;t.map?n=t.map:t.alphaMap&&(n=t.alphaMap);if(void 0!==n){true===n.matrixAutoUpdate&&n.updateMatrix();e.uvTransform.value.copy(n.matrix)}}function refreshUniformsLambert(e,t){t.emissiveMap&&(e.emissiveMap.value=t.emissiveMap)}function refreshUniformsPhong(e,t){e.specular.value.copy(t.specular);e.shininess.value=Math.max(t.shininess,1e-4);t.emissiveMap&&(e.emissiveMap.value=t.emissiveMap);if(t.bumpMap){e.bumpMap.value=t.bumpMap;e.bumpScale.value=t.bumpScale;t.side===d&&(e.bumpScale.value*=-1)}if(t.normalMap){e.normalMap.value=t.normalMap;e.normalScale.value.copy(t.normalScale);t.side===d&&e.normalScale.value.negate()}if(t.displacementMap){e.displacementMap.value=t.displacementMap;e.displacementScale.value=t.displacementScale;e.displacementBias.value=t.displacementBias}}function refreshUniformsToon(e,t){t.gradientMap&&(e.gradientMap.value=t.gradientMap);t.emissiveMap&&(e.emissiveMap.value=t.emissiveMap);if(t.bumpMap){e.bumpMap.value=t.bumpMap;e.bumpScale.value=t.bumpScale;t.side===d&&(e.bumpScale.value*=-1)}if(t.normalMap){e.normalMap.value=t.normalMap;e.normalScale.value.copy(t.normalScale);t.side===d&&e.normalScale.value.negate()}if(t.displacementMap){e.displacementMap.value=t.displacementMap;e.displacementScale.value=t.displacementScale;e.displacementBias.value=t.displacementBias}}function refreshUniformsStandard(t,n){t.roughness.value=n.roughness;t.metalness.value=n.metalness;n.roughnessMap&&(t.roughnessMap.value=n.roughnessMap);n.metalnessMap&&(t.metalnessMap.value=n.metalnessMap);n.emissiveMap&&(t.emissiveMap.value=n.emissiveMap);if(n.bumpMap){t.bumpMap.value=n.bumpMap;t.bumpScale.value=n.bumpScale;n.side===d&&(t.bumpScale.value*=-1)}if(n.normalMap){t.normalMap.value=n.normalMap;t.normalScale.value.copy(n.normalScale);n.side===d&&t.normalScale.value.negate()}if(n.displacementMap){t.displacementMap.value=n.displacementMap;t.displacementScale.value=n.displacementScale;t.displacementBias.value=n.displacementBias}const r=e.get(n).envMap;r&&(t.envMapIntensity.value=n.envMapIntensity)}function refreshUniformsPhysical(e,t,n){refreshUniformsStandard(e,t);e.ior.value=t.ior;if(t.sheen>0){e.sheenColor.value.copy(t.sheenColor).multiplyScalar(t.sheen);e.sheenRoughness.value=t.sheenRoughness;t.sheenColorMap&&(e.sheenColorMap.value=t.sheenColorMap);t.sheenRoughnessMap&&(e.sheenRoughnessMap.value=t.sheenRoughnessMap)}if(t.clearcoat>0){e.clearcoat.value=t.clearcoat;e.clearcoatRoughness.value=t.clearcoatRoughness;t.clearcoatMap&&(e.clearcoatMap.value=t.clearcoatMap);t.clearcoatRoughnessMap&&(e.clearcoatRoughnessMap.value=t.clearcoatRoughnessMap);if(t.clearcoatNormalMap){e.clearcoatNormalScale.value.copy(t.clearcoatNormalScale);e.clearcoatNormalMap.value=t.clearcoatNormalMap;t.side===d&&e.clearcoatNormalScale.value.negate()}}if(t.transmission>0){e.transmission.value=t.transmission;e.transmissionSamplerMap.value=n.texture;e.transmissionSamplerSize.value.set(n.width,n.height);t.transmissionMap&&(e.transmissionMap.value=t.transmissionMap);e.thickness.value=t.thickness;t.thicknessMap&&(e.thicknessMap.value=t.thicknessMap);e.attenuationDistance.value=t.attenuationDistance;e.attenuationColor.value.copy(t.attenuationColor)}e.specularIntensity.value=t.specularIntensity;e.specularColor.value.copy(t.specularColor);t.specularIntensityMap&&(e.specularIntensityMap.value=t.specularIntensityMap);t.specularColorMap&&(e.specularColorMap.value=t.specularColorMap)}function refreshUniformsMatcap(e,t){t.matcap&&(e.matcap.value=t.matcap);if(t.bumpMap){e.bumpMap.value=t.bumpMap;e.bumpScale.value=t.bumpScale;t.side===d&&(e.bumpScale.value*=-1)}if(t.normalMap){e.normalMap.value=t.normalMap;e.normalScale.value.copy(t.normalScale);t.side===d&&e.normalScale.value.negate()}if(t.displacementMap){e.displacementMap.value=t.displacementMap;e.displacementScale.value=t.displacementScale;e.displacementBias.value=t.displacementBias}}function refreshUniformsDepth(e,t){if(t.displacementMap){e.displacementMap.value=t.displacementMap;e.displacementScale.value=t.displacementScale;e.displacementBias.value=t.displacementBias}}function refreshUniformsDistance(e,t){if(t.displacementMap){e.displacementMap.value=t.displacementMap;e.displacementScale.value=t.displacementScale;e.displacementBias.value=t.displacementBias}e.referencePosition.value.copy(t.referencePosition);e.nearDistance.value=t.nearDistance;e.farDistance.value=t.farDistance}function refreshUniformsNormal(e,t){if(t.bumpMap){e.bumpMap.value=t.bumpMap;e.bumpScale.value=t.bumpScale;t.side===d&&(e.bumpScale.value*=-1)}if(t.normalMap){e.normalMap.value=t.normalMap;e.normalScale.value.copy(t.normalScale);t.side===d&&e.normalScale.value.negate()}if(t.displacementMap){e.displacementMap.value=t.displacementMap;e.displacementScale.value=t.displacementScale;e.displacementBias.value=t.displacementBias}}return{refreshFogUniforms:refreshFogUniforms,refreshMaterialUniforms:refreshMaterialUniforms}}function createCanvasElement(){const e=createElementNS(\"canvas\");e.style.display=\"block\";return e}function WebGLRenderer(t={}){const n=void 0!==t.canvas?t.canvas:createCanvasElement(),r=void 0!==t.context?t.context:null,i=void 0!==t.alpha&&t.alpha,s=void 0===t.depth||t.depth,a=void 0===t.stencil||t.stencil,o=void 0!==t.antialias&&t.antialias,l=void 0===t.premultipliedAlpha||t.premultipliedAlpha,c=void 0!==t.preserveDrawingBuffer&&t.preserveDrawingBuffer,u=void 0!==t.powerPreference?t.powerPreference:\"default\",f=void 0!==t.failIfMajorPerformanceCaveat&&t.failIfMajorPerformanceCaveat;let m=null;let g=null;const y=[];const x=[];this.domElement=n;this.debug={\n/**\n\t\t * Enables error checking and reporting when shader programs are being compiled\n\t\t * @type {boolean}\n\t\t */\ncheckShaderErrors:true};this.autoClear=true;this.autoClearColor=true;this.autoClearDepth=true;this.autoClearStencil=true;this.sortObjects=true;this.clippingPlanes=[];this.localClippingEnabled=false;this.outputEncoding=Xt;this.physicallyCorrectLights=false;this.toneMapping=Z;this.toneMappingExposure=1;const b=this;let _=false;let M=0;let w=0;let S=null;let T=-1;let E=null;const A=new Vector4;const L=new Vector4;let C=null;let R=n.width;let P=n.height;let I=1;let D=null;let B=null;const V=new Vector4(0,0,R,P);const N=new Vector4(0,0,R,P);let U=false;const z=[];const G=new Frustum;let F=false;let O=false;let H=null;const k=new Matrix4;const W=new Vector3;const j={background:null,fog:null,environment:null,overrideMaterial:null,isScene:true};function getTargetPixelRatio(){return null===S?I:1}let q=r;function getContext(e,t){for(let r=0;r<e.length;r++){const i=e[r];const s=n.getContext(i,t);if(null!==s)return s}return null}try{const t={alpha:i,depth:s,stencil:a,antialias:o,premultipliedAlpha:l,preserveDrawingBuffer:c,powerPreference:u,failIfMajorPerformanceCaveat:f};\"setAttribute\"in n&&n.setAttribute(\"data-engine\",`three.js r${e}`);n.addEventListener(\"webglcontextlost\",onContextLost,false);n.addEventListener(\"webglcontextrestored\",onContextRestore,false);if(null===q){const e=[\"webgl2\",\"webgl\",\"experimental-webgl\"];true===b.isWebGL1Renderer&&e.shift();q=getContext(e,t);if(null===q)throw getContext(e)?new Error(\"Error creating WebGL context with your selected attributes.\"):new Error(\"Error creating WebGL context.\")}void 0===q.getShaderPrecisionFormat&&(q.getShaderPrecisionFormat=function(){return{rangeMin:1,rangeMax:1,precision:1}})}catch(e){console.error(\"THREE.WebGLRenderer: \"+e.message);throw e}let X,J,Y,Q;let K,$,ee,te,ne,re,ie;let se,ae,oe,le,ce,he;let pe,fe,me,ge;let ye,ve;function initGLContext(){X=new WebGLExtensions(q);J=new WebGLCapabilities(q,X,t);X.init(J);ye=new WebGLUtils(q,X,J);Y=new WebGLState(q,X,J);z[0]=1029;Q=new WebGLInfo(q);K=new WebGLProperties;$=new WebGLTextures(q,X,Y,K,J,ye,Q);ee=new WebGLCubeMaps(b);te=new WebGLCubeUVMaps(b);ne=new WebGLAttributes(q,J);ve=new WebGLBindingStates(q,X,ne,J);re=new WebGLGeometries(q,ne,Q,ve);ie=new WebGLObjects(q,re,ne,Q);fe=new WebGLMorphtargets(q,J,$);ce=new WebGLClipping(K);se=new WebGLPrograms(b,ee,te,X,J,ve,ce);ae=new WebGLMaterials(K);oe=new WebGLRenderLists;le=new WebGLRenderStates(X,J);pe=new WebGLBackground(b,ee,Y,ie,l);he=new WebGLShadowMap(b,ie,J);me=new WebGLBufferRenderer(q,X,Q,J);ge=new WebGLIndexedBufferRenderer(q,X,Q,J);Q.programs=se.programs;b.capabilities=J;b.extensions=X;b.properties=K;b.renderLists=oe;b.shadowMap=he;b.state=Y;b.info=Q}initGLContext();const xe=new WebXRManager(b,q);this.xr=xe;this.getContext=function(){return q};this.getContextAttributes=function(){return q.getContextAttributes()};this.forceContextLoss=function(){const e=X.get(\"WEBGL_lose_context\");e&&e.loseContext()};this.forceContextRestore=function(){const e=X.get(\"WEBGL_lose_context\");e&&e.restoreContext()};this.getPixelRatio=function(){return I};this.setPixelRatio=function(e){if(void 0!==e){I=e;this.setSize(R,P,false)}};this.getSize=function(e){return e.set(R,P)};this.setSize=function(e,t,r){if(xe.isPresenting)console.warn(\"THREE.WebGLRenderer: Can't change size while VR device is presenting.\");else{R=e;P=t;n.width=Math.floor(e*I);n.height=Math.floor(t*I);if(false!==r){n.style.width=e+\"px\";n.style.height=t+\"px\"}this.setViewport(0,0,e,t)}};this.getDrawingBufferSize=function(e){return e.set(R*I,P*I).floor()};this.setDrawingBufferSize=function(e,t,r){R=e;P=t;I=r;n.width=Math.floor(e*r);n.height=Math.floor(t*r);this.setViewport(0,0,e,t)};this.getCurrentViewport=function(e){return e.copy(A)};this.getViewport=function(e){return e.copy(V)};this.setViewport=function(e,t,n,r){e.isVector4?V.set(e.x,e.y,e.z,e.w):V.set(e,t,n,r);Y.viewport(A.copy(V).multiplyScalar(I).floor())};this.getScissor=function(e){return e.copy(N)};this.setScissor=function(e,t,n,r){e.isVector4?N.set(e.x,e.y,e.z,e.w):N.set(e,t,n,r);Y.scissor(L.copy(N).multiplyScalar(I).floor())};this.getScissorTest=function(){return U};this.setScissorTest=function(e){Y.setScissorTest(U=e)};this.setOpaqueSort=function(e){D=e};this.setTransparentSort=function(e){B=e};this.getClearColor=function(e){return e.copy(pe.getClearColor())};this.setClearColor=function(){pe.setClearColor.apply(pe,arguments)};this.getClearAlpha=function(){return pe.getClearAlpha()};this.setClearAlpha=function(){pe.setClearAlpha.apply(pe,arguments)};this.clear=function(e,t,n){let r=0;(void 0===e||e)&&(r|=16384);(void 0===t||t)&&(r|=256);(void 0===n||n)&&(r|=1024);q.clear(r)};this.clearColor=function(){this.clear(true,false,false)};this.clearDepth=function(){this.clear(false,true,false)};this.clearStencil=function(){this.clear(false,false,true)};this.dispose=function(){n.removeEventListener(\"webglcontextlost\",onContextLost,false);n.removeEventListener(\"webglcontextrestored\",onContextRestore,false);oe.dispose();le.dispose();K.dispose();ee.dispose();te.dispose();ie.dispose();ve.dispose();se.dispose();xe.dispose();xe.removeEventListener(\"sessionstart\",onXRSessionStart);xe.removeEventListener(\"sessionend\",onXRSessionEnd);if(H){H.dispose();H=null}we.stop()};function onContextLost(e){e.preventDefault();console.log(\"THREE.WebGLRenderer: Context Lost.\");_=true}function onContextRestore(){console.log(\"THREE.WebGLRenderer: Context Restored.\");_=false;const e=Q.autoReset;const t=he.enabled;const n=he.autoUpdate;const r=he.needsUpdate;const i=he.type;initGLContext();Q.autoReset=e;he.enabled=t;he.autoUpdate=n;he.needsUpdate=r;he.type=i}function onMaterialDispose(e){const t=e.target;t.removeEventListener(\"dispose\",onMaterialDispose);deallocateMaterial(t)}function deallocateMaterial(e){releaseMaterialProgramReferences(e);K.remove(e)}function releaseMaterialProgramReferences(e){const t=K.get(e).programs;if(void 0!==t){t.forEach((function(e){se.releaseProgram(e)}));e.isShaderMaterial&&se.releaseShaderCache(e)}}this.renderBufferDirect=function(e,t,n,r,i,s){null===t&&(t=j);const a=i.isMesh&&i.matrixWorld.determinant()<0;const o=setProgram(e,t,n,r,i);Y.setMaterial(r,a);let l=n.index;const c=n.attributes.position;if(null===l){if(void 0===c||0===c.count)return}else if(0===l.count)return;let u=1;if(true===r.wireframe){l=re.getWireframeAttribute(n);u=2}ve.setup(i,r,o,n,l);let h;let d=me;if(null!==l){h=ne.get(l);d=ge;d.setIndex(h)}const p=null!==l?l.count:c.count;const f=n.drawRange.start*u;const m=n.drawRange.count*u;const g=null!==s?s.start*u:0;const y=null!==s?s.count*u:Infinity;const x=Math.max(f,g);const b=Math.min(p,f+m,g+y)-1;const _=Math.max(0,b-x+1);if(0!==_){if(i.isMesh)if(true===r.wireframe){Y.setLineWidth(r.wireframeLinewidth*getTargetPixelRatio());d.setMode(1)}else d.setMode(4);else if(i.isLine){let e=r.linewidth;void 0===e&&(e=1);Y.setLineWidth(e*getTargetPixelRatio());i.isLineSegments?d.setMode(1):i.isLineLoop?d.setMode(2):d.setMode(3)}else i.isPoints?d.setMode(0):i.isSprite&&d.setMode(4);if(i.isInstancedMesh)d.renderInstances(x,_,i.count);else if(n.isInstancedBufferGeometry){const e=Math.min(n.instanceCount,n._maxInstanceCount);d.renderInstances(x,_,e)}else d.render(x,_)}};this.compile=function(e,t){g=le.get(e);g.init();x.push(g);e.traverseVisible((function(e){if(e.isLight&&e.layers.test(t.layers)){g.pushLight(e);e.castShadow&&g.pushShadow(e)}}));g.setupLights(b.physicallyCorrectLights);e.traverse((function(t){const n=t.material;if(n)if(Array.isArray(n))for(let r=0;r<n.length;r++){const i=n[r];getProgram(i,e,t)}else getProgram(n,e,t)}));x.pop();g=null};let _e=null;function onAnimationFrame(e){_e&&_e(e)}function onXRSessionStart(){we.stop()}function onXRSessionEnd(){we.start()}const we=new WebGLAnimation;we.setAnimationLoop(onAnimationFrame);\"undefined\"!==typeof window&&we.setContext(window);this.setAnimationLoop=function(e){_e=e;xe.setAnimationLoop(e);null===e?we.stop():we.start()};xe.addEventListener(\"sessionstart\",onXRSessionStart);xe.addEventListener(\"sessionend\",onXRSessionEnd);this.render=function(e,t){if(void 0!==t&&true!==t.isCamera){console.error(\"THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.\");return}if(true===_)return;true===e.autoUpdate&&e.updateMatrixWorld();null===t.parent&&t.updateMatrixWorld();if(true===xe.enabled&&true===xe.isPresenting){true===xe.cameraAutoUpdate&&xe.updateCamera(t);t=xe.getCamera()}true===e.isScene&&e.onBeforeRender(b,e,t,S);g=le.get(e,x.length);g.init();x.push(g);k.multiplyMatrices(t.projectionMatrix,t.matrixWorldInverse);G.setFromProjectionMatrix(k);O=this.localClippingEnabled;F=ce.init(this.clippingPlanes,O,t);m=oe.get(e,y.length);m.init();y.push(m);projectObject(e,t,0,b.sortObjects);m.finish();true===b.sortObjects&&m.sort(D,B);true===F&&ce.beginShadows();const n=g.state.shadowsArray;he.render(n,e,t);true===F&&ce.endShadows();true===this.info.autoReset&&this.info.reset();pe.render(m,e);g.setupLights(b.physicallyCorrectLights);if(t.isArrayCamera){const n=t.cameras;for(let t=0,r=n.length;t<r;t++){const r=n[t];renderScene(m,e,r,r.viewport)}}else renderScene(m,e,t);if(null!==S){$.updateMultisampleRenderTarget(S);$.updateRenderTargetMipmap(S)}true===e.isScene&&e.onAfterRender(b,e,t);Y.buffers.depth.setTest(true);Y.buffers.depth.setMask(true);Y.buffers.color.setMask(true);Y.setPolygonOffset(false);ve.resetDefaultState();T=-1;E=null;x.pop();g=x.length>0?x[x.length-1]:null;y.pop();m=y.length>0?y[y.length-1]:null};function projectObject(e,t,n,r){if(false===e.visible)return;const i=e.layers.test(t.layers);if(i)if(e.isGroup)n=e.renderOrder;else if(e.isLOD)true===e.autoUpdate&&e.update(t);else if(e.isLight){g.pushLight(e);e.castShadow&&g.pushShadow(e)}else if(e.isSprite){if(!e.frustumCulled||G.intersectsSprite(e)){r&&W.setFromMatrixPosition(e.matrixWorld).applyMatrix4(k);const t=ie.update(e);const i=e.material;i.visible&&m.push(e,t,i,n,W.z,null)}}else if(e.isMesh||e.isLine||e.isPoints){if(e.isSkinnedMesh&&e.skeleton.frame!==Q.render.frame){e.skeleton.update();e.skeleton.frame=Q.render.frame}if(!e.frustumCulled||G.intersectsObject(e)){r&&W.setFromMatrixPosition(e.matrixWorld).applyMatrix4(k);const t=ie.update(e);const i=e.material;if(Array.isArray(i)){const r=t.groups;for(let s=0,a=r.length;s<a;s++){const a=r[s];const o=i[a.materialIndex];o&&o.visible&&m.push(e,t,o,n,W.z,a)}}else i.visible&&m.push(e,t,i,n,W.z,null)}}const s=e.children;for(let e=0,i=s.length;e<i;e++)projectObject(s[e],t,n,r)}function renderScene(e,t,n,r){const i=e.opaque;const s=e.transmissive;const a=e.transparent;g.setupLightsView(n);s.length>0&&renderTransmissionPass(i,t,n);r&&Y.viewport(A.copy(r));i.length>0&&renderObjects(i,t,n);s.length>0&&renderObjects(s,t,n);a.length>0&&renderObjects(a,t,n)}function renderTransmissionPass(e,t,n){if(null===H){const e=true===o&&true===J.isWebGL2;const t=e?WebGLMultisampleRenderTarget:WebGLRenderTarget;H=new t(1024,1024,{generateMipmaps:true,type:null!==ye.convert(Ce)?Ce:Me,minFilter:be,magFilter:de,wrapS:ue,wrapT:ue,useRenderToTexture:X.has(\"WEBGL_multisampled_render_to_texture\")})}const r=b.getRenderTarget();b.setRenderTarget(H);b.clear();const i=b.toneMapping;b.toneMapping=Z;renderObjects(e,t,n);b.toneMapping=i;$.updateMultisampleRenderTarget(H);$.updateRenderTargetMipmap(H);b.setRenderTarget(r)}function renderObjects(e,t,n){const r=true===t.isScene?t.overrideMaterial:null;for(let i=0,s=e.length;i<s;i++){const s=e[i];const a=s.object;const o=s.geometry;const l=null===r?s.material:r;const c=s.group;a.layers.test(n.layers)&&renderObject(a,t,n,o,l,c)}}function renderObject(e,t,n,r,i,s){e.onBeforeRender(b,t,n,r,i,s);e.modelViewMatrix.multiplyMatrices(n.matrixWorldInverse,e.matrixWorld);e.normalMatrix.getNormalMatrix(e.modelViewMatrix);i.onBeforeRender(b,t,n,r,e,s);if(true===i.transparent&&i.side===p){i.side=d;i.needsUpdate=true;b.renderBufferDirect(n,t,r,i,e,s);i.side=h;i.needsUpdate=true;b.renderBufferDirect(n,t,r,i,e,s);i.side=p}else b.renderBufferDirect(n,t,r,i,e,s);e.onAfterRender(b,t,n,r,i,s)}function getProgram(e,t,n){true!==t.isScene&&(t=j);const r=K.get(e);const i=g.state.lights;const s=g.state.shadowsArray;const a=i.state.version;const o=se.getParameters(e,i.state,s,t,n);const l=se.getProgramCacheKey(o);let c=r.programs;r.environment=e.isMeshStandardMaterial?t.environment:null;r.fog=t.fog;r.envMap=(e.isMeshStandardMaterial?te:ee).get(e.envMap||r.environment);if(void 0===c){e.addEventListener(\"dispose\",onMaterialDispose);c=new Map;r.programs=c}let u=c.get(l);if(void 0!==u){if(r.currentProgram===u&&r.lightsStateVersion===a){updateCommonMaterialProperties(e,o);return u}}else{o.uniforms=se.getUniforms(e);e.onBuild(n,o,b);e.onBeforeCompile(o,b);u=se.acquireProgram(o,l);c.set(l,u);r.uniforms=o.uniforms}const h=r.uniforms;(e.isShaderMaterial||e.isRawShaderMaterial)&&true!==e.clipping||(h.clippingPlanes=ce.uniform);updateCommonMaterialProperties(e,o);r.needsLights=materialNeedsLights(e);r.lightsStateVersion=a;if(r.needsLights){h.ambientLightColor.value=i.state.ambient;h.lightProbe.value=i.state.probe;h.directionalLights.value=i.state.directional;h.directionalLightShadows.value=i.state.directionalShadow;h.spotLights.value=i.state.spot;h.spotLightShadows.value=i.state.spotShadow;h.rectAreaLights.value=i.state.rectArea;h.ltc_1.value=i.state.rectAreaLTC1;h.ltc_2.value=i.state.rectAreaLTC2;h.pointLights.value=i.state.point;h.pointLightShadows.value=i.state.pointShadow;h.hemisphereLights.value=i.state.hemi;h.directionalShadowMap.value=i.state.directionalShadowMap;h.directionalShadowMatrix.value=i.state.directionalShadowMatrix;h.spotShadowMap.value=i.state.spotShadowMap;h.spotShadowMatrix.value=i.state.spotShadowMatrix;h.pointShadowMap.value=i.state.pointShadowMap;h.pointShadowMatrix.value=i.state.pointShadowMatrix}const d=u.getUniforms();const p=WebGLUniforms.seqWithValue(d.seq,h);r.currentProgram=u;r.uniformsList=p;return u}function updateCommonMaterialProperties(e,t){const n=K.get(e);n.outputEncoding=t.outputEncoding;n.instancing=t.instancing;n.skinning=t.skinning;n.morphTargets=t.morphTargets;n.morphNormals=t.morphNormals;n.morphTargetsCount=t.morphTargetsCount;n.numClippingPlanes=t.numClippingPlanes;n.numIntersection=t.numClipIntersection;n.vertexAlphas=t.vertexAlphas;n.vertexTangents=t.vertexTangents;n.toneMapping=t.toneMapping}function setProgram(e,t,n,r,i){true!==t.isScene&&(t=j);$.resetTextureUnits();const s=t.fog;const a=r.isMeshStandardMaterial?t.environment:null;const o=null===S?b.outputEncoding:S.texture.encoding;const l=(r.isMeshStandardMaterial?te:ee).get(r.envMap||a);const c=true===r.vertexColors&&!!n.attributes.color&&4===n.attributes.color.itemSize;const u=!!r.normalMap&&!!n.attributes.tangent;const h=!!n.morphAttributes.position;const d=!!n.morphAttributes.normal;const p=!n.morphAttributes.position?0:n.morphAttributes.position.length;const f=r.toneMapped?b.toneMapping:Z;const m=K.get(r);const y=g.state.lights;if(true===F&&(true===O||e!==E)){const t=e===E&&r.id===T;ce.setState(r,e,t)}let x=false;if(r.version===m.__version)m.needsLights&&m.lightsStateVersion!==y.state.version||m.outputEncoding!==o||i.isInstancedMesh&&false===m.instancing?x=true:i.isInstancedMesh||true!==m.instancing?i.isSkinnedMesh&&false===m.skinning?x=true:i.isSkinnedMesh||true!==m.skinning?m.envMap!==l||r.fog&&m.fog!==s?x=true:void 0===m.numClippingPlanes||m.numClippingPlanes===ce.numPlanes&&m.numIntersection===ce.numIntersection?(m.vertexAlphas!==c||m.vertexTangents!==u||m.morphTargets!==h||m.morphNormals!==d||m.toneMapping!==f||true===J.isWebGL2&&m.morphTargetsCount!==p)&&(x=true):x=true:x=true:x=true;else{x=true;m.__version=r.version}let _=m.currentProgram;true===x&&(_=getProgram(r,t,i));let M=false;let w=false;let A=false;const L=_.getUniforms(),C=m.uniforms;if(Y.useProgram(_.program)){M=true;w=true;A=true}if(r.id!==T){T=r.id;w=true}if(M||E!==e){L.setValue(q,\"projectionMatrix\",e.projectionMatrix);J.logarithmicDepthBuffer&&L.setValue(q,\"logDepthBufFC\",2/(Math.log(e.far+1)/Math.LN2));if(E!==e){E=e;w=true;A=true}if(r.isShaderMaterial||r.isMeshPhongMaterial||r.isMeshToonMaterial||r.isMeshStandardMaterial||r.envMap){const t=L.map.cameraPosition;void 0!==t&&t.setValue(q,W.setFromMatrixPosition(e.matrixWorld))}(r.isMeshPhongMaterial||r.isMeshToonMaterial||r.isMeshLambertMaterial||r.isMeshBasicMaterial||r.isMeshStandardMaterial||r.isShaderMaterial)&&L.setValue(q,\"isOrthographic\",true===e.isOrthographicCamera);(r.isMeshPhongMaterial||r.isMeshToonMaterial||r.isMeshLambertMaterial||r.isMeshBasicMaterial||r.isMeshStandardMaterial||r.isShaderMaterial||r.isShadowMaterial||i.isSkinnedMesh)&&L.setValue(q,\"viewMatrix\",e.matrixWorldInverse)}if(i.isSkinnedMesh){L.setOptional(q,i,\"bindMatrix\");L.setOptional(q,i,\"bindMatrixInverse\");const e=i.skeleton;if(e)if(J.floatVertexTextures){null===e.boneTexture&&e.computeBoneTexture();L.setValue(q,\"boneTexture\",e.boneTexture,$);L.setValue(q,\"boneTextureSize\",e.boneTextureSize)}else L.setOptional(q,e,\"boneMatrices\")}!n||void 0===n.morphAttributes.position&&void 0===n.morphAttributes.normal||fe.update(i,n,r,_);if(w||m.receiveShadow!==i.receiveShadow){m.receiveShadow=i.receiveShadow;L.setValue(q,\"receiveShadow\",i.receiveShadow)}if(w){L.setValue(q,\"toneMappingExposure\",b.toneMappingExposure);m.needsLights&&markUniformsLightsNeedsUpdate(C,A);s&&r.fog&&ae.refreshFogUniforms(C,s);ae.refreshMaterialUniforms(C,r,I,P,H);WebGLUniforms.upload(q,m.uniformsList,C,$)}if(r.isShaderMaterial&&true===r.uniformsNeedUpdate){WebGLUniforms.upload(q,m.uniformsList,C,$);r.uniformsNeedUpdate=false}r.isSpriteMaterial&&L.setValue(q,\"center\",i.center);L.setValue(q,\"modelViewMatrix\",i.modelViewMatrix);L.setValue(q,\"normalMatrix\",i.normalMatrix);L.setValue(q,\"modelMatrix\",i.matrixWorld);return _}function markUniformsLightsNeedsUpdate(e,t){e.ambientLightColor.needsUpdate=t;e.lightProbe.needsUpdate=t;e.directionalLights.needsUpdate=t;e.directionalLightShadows.needsUpdate=t;e.pointLights.needsUpdate=t;e.pointLightShadows.needsUpdate=t;e.spotLights.needsUpdate=t;e.spotLightShadows.needsUpdate=t;e.rectAreaLights.needsUpdate=t;e.hemisphereLights.needsUpdate=t}function materialNeedsLights(e){return e.isMeshLambertMaterial||e.isMeshToonMaterial||e.isMeshPhongMaterial||e.isMeshStandardMaterial||e.isShadowMaterial||e.isShaderMaterial&&true===e.lights}this.getActiveCubeFace=function(){return M};this.getActiveMipmapLevel=function(){return w};this.getRenderTarget=function(){return S};this.setRenderTargetTextures=function(e,t,n){K.get(e.texture).__webglTexture=t;K.get(e.depthTexture).__webglTexture=n;const r=K.get(e);r.__hasExternalTextures=true;if(r.__hasExternalTextures){r.__autoAllocateDepthBuffer=void 0===n;if(!r.__autoAllocateDepthBuffer&&e.useRenderToTexture){console.warn(\"render-to-texture extension was disabled because an external texture was provided\");e.useRenderToTexture=false;e.useRenderbuffer=true}}};this.setRenderTargetFramebuffer=function(e,t){const n=K.get(e);n.__webglFramebuffer=t;n.__useDefaultFramebuffer=void 0===t};this.setRenderTarget=function(e,t=0,n=0){S=e;M=t;w=n;let r=true;if(e){const t=K.get(e);if(void 0!==t.__useDefaultFramebuffer){Y.bindFramebuffer(36160,null);r=false}else void 0===t.__webglFramebuffer?$.setupRenderTarget(e):t.__hasExternalTextures&&$.rebindTextures(e,K.get(e.texture).__webglTexture,K.get(e.depthTexture).__webglTexture)}let i=null;let s=false;let a=false;if(e){const n=e.texture;(n.isDataTexture3D||n.isDataTexture2DArray)&&(a=true);const r=K.get(e).__webglFramebuffer;if(e.isWebGLCubeRenderTarget){i=r[t];s=true}else i=e.useRenderbuffer?K.get(e).__webglMultisampledFramebuffer:r;A.copy(e.viewport);L.copy(e.scissor);C=e.scissorTest}else{A.copy(V).multiplyScalar(I).floor();L.copy(N).multiplyScalar(I).floor();C=U}const o=Y.bindFramebuffer(36160,i);if(o&&J.drawBuffers&&r){let t=false;if(e){if(e.isWebGLMultipleRenderTargets){const n=e.texture;if(z.length!==n.length||36064!==z[0]){for(let e=0,t=n.length;e<t;e++)z[e]=36064+e;z.length=n.length;t=true}}else if(1!==z.length||36064!==z[0]){z[0]=36064;z.length=1;t=true}}else if(1!==z.length||1029!==z[0]){z[0]=1029;z.length=1;t=true}t&&(J.isWebGL2?q.drawBuffers(z):X.get(\"WEBGL_draw_buffers\").drawBuffersWEBGL(z))}Y.viewport(A);Y.scissor(L);Y.setScissorTest(C);if(s){const r=K.get(e.texture);q.framebufferTexture2D(36160,36064,34069+t,r.__webglTexture,n)}else if(a){const r=K.get(e.texture);const i=t||0;q.framebufferTextureLayer(36160,36064,r.__webglTexture,n||0,i)}T=-1};this.readRenderTargetPixels=function(e,t,n,r,i,s,a){if(!(e&&e.isWebGLRenderTarget)){console.error(\"THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.\");return}let o=K.get(e).__webglFramebuffer;e.isWebGLCubeRenderTarget&&void 0!==a&&(o=o[a]);if(o){Y.bindFramebuffer(36160,o);try{const a=e.texture;const o=a.format;const l=a.type;if(o!==Ne&&ye.convert(o)!==q.getParameter(35739)){console.error(\"THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.\");return}const c=l===Ce&&(X.has(\"EXT_color_buffer_half_float\")||J.isWebGL2&&X.has(\"EXT_color_buffer_float\"));if(l!==Me&&ye.convert(l)!==q.getParameter(35738)&&!(l===Le&&(J.isWebGL2||X.has(\"OES_texture_float\")||X.has(\"WEBGL_color_buffer_float\")))&&!c){console.error(\"THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.\");return}36053===q.checkFramebufferStatus(36160)?t>=0&&t<=e.width-r&&n>=0&&n<=e.height-i&&q.readPixels(t,n,r,i,ye.convert(o),ye.convert(l),s):console.error(\"THREE.WebGLRenderer.readRenderTargetPixels: readPixels from renderTarget failed. Framebuffer not complete.\")}finally{const e=null!==S?K.get(S).__webglFramebuffer:null;Y.bindFramebuffer(36160,e)}}};this.copyFramebufferToTexture=function(e,t,n=0){if(true!==t.isFramebufferTexture){console.error(\"THREE.WebGLRenderer: copyFramebufferToTexture() can only be used with FramebufferTexture.\");return}const r=Math.pow(2,-n);const i=Math.floor(t.image.width*r);const s=Math.floor(t.image.height*r);$.setTexture2D(t,0);q.copyTexSubImage2D(3553,n,0,0,e.x,e.y,i,s);Y.unbindTexture()};this.copyTextureToTexture=function(e,t,n,r=0){const i=t.image.width;const s=t.image.height;const a=ye.convert(n.format);const o=ye.convert(n.type);$.setTexture2D(n,0);q.pixelStorei(37440,n.flipY);q.pixelStorei(37441,n.premultiplyAlpha);q.pixelStorei(3317,n.unpackAlignment);t.isDataTexture?q.texSubImage2D(3553,r,e.x,e.y,i,s,a,o,t.image.data):t.isCompressedTexture?q.compressedTexSubImage2D(3553,r,e.x,e.y,t.mipmaps[0].width,t.mipmaps[0].height,a,t.mipmaps[0].data):q.texSubImage2D(3553,r,e.x,e.y,a,o,t.image);0===r&&n.generateMipmaps&&q.generateMipmap(3553);Y.unbindTexture()};this.copyTextureToTexture3D=function(e,t,n,r,i=0){if(b.isWebGL1Renderer){console.warn(\"THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.\");return}const s=e.max.x-e.min.x+1;const a=e.max.y-e.min.y+1;const o=e.max.z-e.min.z+1;const l=ye.convert(r.format);const c=ye.convert(r.type);let u;if(r.isDataTexture3D){$.setTexture3D(r,0);u=32879}else{if(!r.isDataTexture2DArray){console.warn(\"THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.\");return}$.setTexture2DArray(r,0);u=35866}q.pixelStorei(37440,r.flipY);q.pixelStorei(37441,r.premultiplyAlpha);q.pixelStorei(3317,r.unpackAlignment);const h=q.getParameter(3314);const d=q.getParameter(32878);const p=q.getParameter(3316);const f=q.getParameter(3315);const m=q.getParameter(32877);const g=n.isCompressedTexture?n.mipmaps[0]:n.image;q.pixelStorei(3314,g.width);q.pixelStorei(32878,g.height);q.pixelStorei(3316,e.min.x);q.pixelStorei(3315,e.min.y);q.pixelStorei(32877,e.min.z);if(n.isDataTexture||n.isDataTexture3D)q.texSubImage3D(u,i,t.x,t.y,t.z,s,a,o,l,c,g.data);else if(n.isCompressedTexture){console.warn(\"THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture.\");q.compressedTexSubImage3D(u,i,t.x,t.y,t.z,s,a,o,l,g.data)}else q.texSubImage3D(u,i,t.x,t.y,t.z,s,a,o,l,c,g);q.pixelStorei(3314,h);q.pixelStorei(32878,d);q.pixelStorei(3316,p);q.pixelStorei(3315,f);q.pixelStorei(32877,m);0===i&&r.generateMipmaps&&q.generateMipmap(u);Y.unbindTexture()};this.initTexture=function(e){$.setTexture2D(e,0);Y.unbindTexture()};this.resetState=function(){M=0;w=0;S=null;Y.reset();ve.reset()};\"undefined\"!==typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent(\"observe\",{detail:this}))}WebGLRenderer.prototype.isWebGLRenderer=true;class WebGL1Renderer extends WebGLRenderer{}WebGL1Renderer.prototype.isWebGL1Renderer=true;class FogExp2{constructor(e,t=25e-5){this.name=\"\";this.color=new Color(e);this.density=t}clone(){return new FogExp2(this.color,this.density)}toJSON(){return{type:\"FogExp2\",color:this.color.getHex(),density:this.density}}}FogExp2.prototype.isFogExp2=true;class Fog{constructor(e,t=1,n=1e3){this.name=\"\";this.color=new Color(e);this.near=t;this.far=n}clone(){return new Fog(this.color,this.near,this.far)}toJSON(){return{type:\"Fog\",color:this.color.getHex(),near:this.near,far:this.far}}}Fog.prototype.isFog=true;class Scene extends Object3D{constructor(){super();this.type=\"Scene\";this.background=null;this.environment=null;this.fog=null;this.overrideMaterial=null;this.autoUpdate=true;\"undefined\"!==typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent(\"observe\",{detail:this}))}copy(e,t){super.copy(e,t);null!==e.background&&(this.background=e.background.clone());null!==e.environment&&(this.environment=e.environment.clone());null!==e.fog&&(this.fog=e.fog.clone());null!==e.overrideMaterial&&(this.overrideMaterial=e.overrideMaterial.clone());this.autoUpdate=e.autoUpdate;this.matrixAutoUpdate=e.matrixAutoUpdate;return this}toJSON(e){const t=super.toJSON(e);null!==this.fog&&(t.object.fog=this.fog.toJSON());return t}}Scene.prototype.isScene=true;class InterleavedBuffer{constructor(e,t){this.array=e;this.stride=t;this.count=void 0!==e?e.length/t:0;this.usage=gn;this.updateRange={offset:0,count:-1};this.version=0;this.uuid=generateUUID()}onUploadCallback(){}set needsUpdate(e){true===e&&this.version++}setUsage(e){this.usage=e;return this}copy(e){this.array=new e.array.constructor(e.array);this.count=e.count;this.stride=e.stride;this.usage=e.usage;return this}copyAt(e,t,n){e*=this.stride;n*=t.stride;for(let r=0,i=this.stride;r<i;r++)this.array[e+r]=t.array[n+r];return this}set(e,t=0){this.array.set(e,t);return this}clone(e){void 0===e.arrayBuffers&&(e.arrayBuffers={});void 0===this.array.buffer._uuid&&(this.array.buffer._uuid=generateUUID());void 0===e.arrayBuffers[this.array.buffer._uuid]&&(e.arrayBuffers[this.array.buffer._uuid]=this.array.slice(0).buffer);const t=new this.array.constructor(e.arrayBuffers[this.array.buffer._uuid]);const n=new this.constructor(t,this.stride);n.setUsage(this.usage);return n}onUpload(e){this.onUploadCallback=e;return this}toJSON(e){void 0===e.arrayBuffers&&(e.arrayBuffers={});void 0===this.array.buffer._uuid&&(this.array.buffer._uuid=generateUUID());void 0===e.arrayBuffers[this.array.buffer._uuid]&&(e.arrayBuffers[this.array.buffer._uuid]=Array.prototype.slice.call(new Uint32Array(this.array.buffer)));return{uuid:this.uuid,buffer:this.array.buffer._uuid,type:this.array.constructor.name,stride:this.stride}}}InterleavedBuffer.prototype.isInterleavedBuffer=true;const No=new Vector3;class InterleavedBufferAttribute{constructor(e,t,n,r=false){this.name=\"\";this.data=e;this.itemSize=t;this.offset=n;this.normalized=true===r}get count(){return this.data.count}get array(){return this.data.array}set needsUpdate(e){this.data.needsUpdate=e}applyMatrix4(e){for(let t=0,n=this.data.count;t<n;t++){No.x=this.getX(t);No.y=this.getY(t);No.z=this.getZ(t);No.applyMatrix4(e);this.setXYZ(t,No.x,No.y,No.z)}return this}applyNormalMatrix(e){for(let t=0,n=this.count;t<n;t++){No.x=this.getX(t);No.y=this.getY(t);No.z=this.getZ(t);No.applyNormalMatrix(e);this.setXYZ(t,No.x,No.y,No.z)}return this}transformDirection(e){for(let t=0,n=this.count;t<n;t++){No.x=this.getX(t);No.y=this.getY(t);No.z=this.getZ(t);No.transformDirection(e);this.setXYZ(t,No.x,No.y,No.z)}return this}setX(e,t){this.data.array[e*this.data.stride+this.offset]=t;return this}setY(e,t){this.data.array[e*this.data.stride+this.offset+1]=t;return this}setZ(e,t){this.data.array[e*this.data.stride+this.offset+2]=t;return this}setW(e,t){this.data.array[e*this.data.stride+this.offset+3]=t;return this}getX(e){return this.data.array[e*this.data.stride+this.offset]}getY(e){return this.data.array[e*this.data.stride+this.offset+1]}getZ(e){return this.data.array[e*this.data.stride+this.offset+2]}getW(e){return this.data.array[e*this.data.stride+this.offset+3]}setXY(e,t,n){e=e*this.data.stride+this.offset;this.data.array[e+0]=t;this.data.array[e+1]=n;return this}setXYZ(e,t,n,r){e=e*this.data.stride+this.offset;this.data.array[e+0]=t;this.data.array[e+1]=n;this.data.array[e+2]=r;return this}setXYZW(e,t,n,r,i){e=e*this.data.stride+this.offset;this.data.array[e+0]=t;this.data.array[e+1]=n;this.data.array[e+2]=r;this.data.array[e+3]=i;return this}clone(e){if(void 0===e){console.log(\"THREE.InterleavedBufferAttribute.clone(): Cloning an interlaved buffer attribute will deinterleave buffer data.\");const e=[];for(let t=0;t<this.count;t++){const n=t*this.data.stride+this.offset;for(let t=0;t<this.itemSize;t++)e.push(this.data.array[n+t])}return new BufferAttribute(new this.array.constructor(e),this.itemSize,this.normalized)}void 0===e.interleavedBuffers&&(e.interleavedBuffers={});void 0===e.interleavedBuffers[this.data.uuid]&&(e.interleavedBuffers[this.data.uuid]=this.data.clone(e));return new InterleavedBufferAttribute(e.interleavedBuffers[this.data.uuid],this.itemSize,this.offset,this.normalized)}toJSON(e){if(void 0===e){console.log(\"THREE.InterleavedBufferAttribute.toJSON(): Serializing an interlaved buffer attribute will deinterleave buffer data.\");const e=[];for(let t=0;t<this.count;t++){const n=t*this.data.stride+this.offset;for(let t=0;t<this.itemSize;t++)e.push(this.data.array[n+t])}return{itemSize:this.itemSize,type:this.array.constructor.name,array:e,normalized:this.normalized}}void 0===e.interleavedBuffers&&(e.interleavedBuffers={});void 0===e.interleavedBuffers[this.data.uuid]&&(e.interleavedBuffers[this.data.uuid]=this.data.toJSON(e));return{isInterleavedBufferAttribute:true,itemSize:this.itemSize,data:this.data.uuid,offset:this.offset,normalized:this.normalized}}}InterleavedBufferAttribute.prototype.isInterleavedBufferAttribute=true;class SpriteMaterial extends Material{constructor(e){super();this.type=\"SpriteMaterial\";this.color=new Color(16777215);this.map=null;this.alphaMap=null;this.rotation=0;this.sizeAttenuation=true;this.transparent=true;this.setValues(e)}copy(e){super.copy(e);this.color.copy(e.color);this.map=e.map;this.alphaMap=e.alphaMap;this.rotation=e.rotation;this.sizeAttenuation=e.sizeAttenuation;return this}}SpriteMaterial.prototype.isSpriteMaterial=true;let Uo;const zo=new Vector3;const Go=new Vector3;const Fo=new Vector3;const Oo=new Vector2;const Ho=new Vector2;const ko=new Matrix4;const Wo=new Vector3;const jo=new Vector3;const qo=new Vector3;const Xo=new Vector2;const Jo=new Vector2;const Yo=new Vector2;class Sprite extends Object3D{constructor(e){super();this.type=\"Sprite\";if(void 0===Uo){Uo=new BufferGeometry;const e=new Float32Array([-.5,-.5,0,0,0,.5,-.5,0,1,0,.5,.5,0,1,1,-.5,.5,0,0,1]);const t=new InterleavedBuffer(e,5);Uo.setIndex([0,1,2,0,2,3]);Uo.setAttribute(\"position\",new InterleavedBufferAttribute(t,3,0,false));Uo.setAttribute(\"uv\",new InterleavedBufferAttribute(t,2,3,false))}this.geometry=Uo;this.material=void 0!==e?e:new SpriteMaterial;this.center=new Vector2(.5,.5)}raycast(e,t){null===e.camera&&console.error('THREE.Sprite: \"Raycaster.camera\" needs to be set in order to raycast against sprites.');Go.setFromMatrixScale(this.matrixWorld);ko.copy(e.camera.matrixWorld);this.modelViewMatrix.multiplyMatrices(e.camera.matrixWorldInverse,this.matrixWorld);Fo.setFromMatrixPosition(this.modelViewMatrix);e.camera.isPerspectiveCamera&&false===this.material.sizeAttenuation&&Go.multiplyScalar(-Fo.z);const n=this.material.rotation;let r,i;if(0!==n){i=Math.cos(n);r=Math.sin(n)}const s=this.center;transformVertex(Wo.set(-.5,-.5,0),Fo,s,Go,r,i);transformVertex(jo.set(.5,-.5,0),Fo,s,Go,r,i);transformVertex(qo.set(.5,.5,0),Fo,s,Go,r,i);Xo.set(0,0);Jo.set(1,0);Yo.set(1,1);let a=e.ray.intersectTriangle(Wo,jo,qo,false,zo);if(null===a){transformVertex(jo.set(-.5,.5,0),Fo,s,Go,r,i);Jo.set(0,1);a=e.ray.intersectTriangle(Wo,qo,jo,false,zo);if(null===a)return}const o=e.ray.origin.distanceTo(zo);o<e.near||o>e.far||t.push({distance:o,point:zo.clone(),uv:Triangle.getUV(zo,Wo,jo,qo,Xo,Jo,Yo,new Vector2),face:null,object:this})}copy(e){super.copy(e);void 0!==e.center&&this.center.copy(e.center);this.material=e.material;return this}}Sprite.prototype.isSprite=true;function transformVertex(e,t,n,r,i,s){Oo.subVectors(e,n).addScalar(.5).multiply(r);if(void 0!==i){Ho.x=s*Oo.x-i*Oo.y;Ho.y=i*Oo.x+s*Oo.y}else Ho.copy(Oo);e.copy(t);e.x+=Ho.x;e.y+=Ho.y;e.applyMatrix4(ko)}const Zo=new Vector3;const Qo=new Vector3;class LOD extends Object3D{constructor(){super();this._currentLevel=0;this.type=\"LOD\";Object.defineProperties(this,{levels:{enumerable:true,value:[]},isLOD:{value:true}});this.autoUpdate=true}copy(e){super.copy(e,false);const t=e.levels;for(let e=0,n=t.length;e<n;e++){const n=t[e];this.addLevel(n.object.clone(),n.distance)}this.autoUpdate=e.autoUpdate;return this}addLevel(e,t=0){t=Math.abs(t);const n=this.levels;let r;for(r=0;r<n.length;r++)if(t<n[r].distance)break;n.splice(r,0,{distance:t,object:e});this.add(e);return this}getCurrentLevel(){return this._currentLevel}getObjectForDistance(e){const t=this.levels;if(t.length>0){let n,r;for(n=1,r=t.length;n<r;n++)if(e<t[n].distance)break;return t[n-1].object}return null}raycast(e,t){const n=this.levels;if(n.length>0){Zo.setFromMatrixPosition(this.matrixWorld);const n=e.ray.origin.distanceTo(Zo);this.getObjectForDistance(n).raycast(e,t)}}update(e){const t=this.levels;if(t.length>1){Zo.setFromMatrixPosition(e.matrixWorld);Qo.setFromMatrixPosition(this.matrixWorld);const n=Zo.distanceTo(Qo)/e.zoom;t[0].object.visible=true;let r,i;for(r=1,i=t.length;r<i;r++){if(!(n>=t[r].distance))break;t[r-1].object.visible=false;t[r].object.visible=true}this._currentLevel=r-1;for(;r<i;r++)t[r].object.visible=false}}toJSON(e){const t=super.toJSON(e);false===this.autoUpdate&&(t.object.autoUpdate=false);t.object.levels=[];const n=this.levels;for(let e=0,r=n.length;e<r;e++){const r=n[e];t.object.levels.push({object:r.object.uuid,distance:r.distance})}return t}}const Ko=new Vector3;const $o=new Vector4;const el=new Vector4;const tl=new Vector3;const nl=new Matrix4;class SkinnedMesh extends Mesh{constructor(e,t){super(e,t);this.type=\"SkinnedMesh\";this.bindMode=\"attached\";this.bindMatrix=new Matrix4;this.bindMatrixInverse=new Matrix4}copy(e){super.copy(e);this.bindMode=e.bindMode;this.bindMatrix.copy(e.bindMatrix);this.bindMatrixInverse.copy(e.bindMatrixInverse);this.skeleton=e.skeleton;return this}bind(e,t){this.skeleton=e;if(void 0===t){this.updateMatrixWorld(true);this.skeleton.calculateInverses();t=this.matrixWorld}this.bindMatrix.copy(t);this.bindMatrixInverse.copy(t).invert()}pose(){this.skeleton.pose()}normalizeSkinWeights(){const e=new Vector4;const t=this.geometry.attributes.skinWeight;for(let n=0,r=t.count;n<r;n++){e.x=t.getX(n);e.y=t.getY(n);e.z=t.getZ(n);e.w=t.getW(n);const r=1/e.manhattanLength();Infinity!==r?e.multiplyScalar(r):e.set(1,0,0,0);t.setXYZW(n,e.x,e.y,e.z,e.w)}}updateMatrixWorld(e){super.updateMatrixWorld(e);\"attached\"===this.bindMode?this.bindMatrixInverse.copy(this.matrixWorld).invert():\"detached\"===this.bindMode?this.bindMatrixInverse.copy(this.bindMatrix).invert():console.warn(\"THREE.SkinnedMesh: Unrecognized bindMode: \"+this.bindMode)}boneTransform(e,t){const n=this.skeleton;const r=this.geometry;$o.fromBufferAttribute(r.attributes.skinIndex,e);el.fromBufferAttribute(r.attributes.skinWeight,e);Ko.copy(t).applyMatrix4(this.bindMatrix);t.set(0,0,0);for(let e=0;e<4;e++){const r=el.getComponent(e);if(0!==r){const i=$o.getComponent(e);nl.multiplyMatrices(n.bones[i].matrixWorld,n.boneInverses[i]);t.addScaledVector(tl.copy(Ko).applyMatrix4(nl),r)}}return t.applyMatrix4(this.bindMatrixInverse)}}SkinnedMesh.prototype.isSkinnedMesh=true;class Bone extends Object3D{constructor(){super();this.type=\"Bone\"}}Bone.prototype.isBone=true;class DataTexture extends Texture{constructor(e=null,t=1,n=1,r,i,s,a,o,l=de,c=de,u,h){super(null,s,a,o,l,c,r,i,u,h);this.image={data:e,width:t,height:n};this.magFilter=l;this.minFilter=c;this.generateMipmaps=false;this.flipY=false;this.unpackAlignment=1}}DataTexture.prototype.isDataTexture=true;const rl=new Matrix4;const il=new Matrix4;class Skeleton{constructor(e=[],t=[]){this.uuid=generateUUID();this.bones=e.slice(0);this.boneInverses=t;this.boneMatrices=null;this.boneTexture=null;this.boneTextureSize=0;this.frame=-1;this.init()}init(){const e=this.bones;const t=this.boneInverses;this.boneMatrices=new Float32Array(16*e.length);if(0===t.length)this.calculateInverses();else if(e.length!==t.length){console.warn(\"THREE.Skeleton: Number of inverse bone matrices does not match amount of bones.\");this.boneInverses=[];for(let e=0,t=this.bones.length;e<t;e++)this.boneInverses.push(new Matrix4)}}calculateInverses(){this.boneInverses.length=0;for(let e=0,t=this.bones.length;e<t;e++){const t=new Matrix4;this.bones[e]&&t.copy(this.bones[e].matrixWorld).invert();this.boneInverses.push(t)}}pose(){for(let e=0,t=this.bones.length;e<t;e++){const t=this.bones[e];t&&t.matrixWorld.copy(this.boneInverses[e]).invert()}for(let e=0,t=this.bones.length;e<t;e++){const t=this.bones[e];if(t){if(t.parent&&t.parent.isBone){t.matrix.copy(t.parent.matrixWorld).invert();t.matrix.multiply(t.matrixWorld)}else t.matrix.copy(t.matrixWorld);t.matrix.decompose(t.position,t.quaternion,t.scale)}}}update(){const e=this.bones;const t=this.boneInverses;const n=this.boneMatrices;const r=this.boneTexture;for(let r=0,i=e.length;r<i;r++){const i=e[r]?e[r].matrixWorld:il;rl.multiplyMatrices(i,t[r]);rl.toArray(n,16*r)}null!==r&&(r.needsUpdate=true)}clone(){return new Skeleton(this.bones,this.boneInverses)}computeBoneTexture(){let e=Math.sqrt(4*this.bones.length);e=ceilPowerOfTwo(e);e=Math.max(e,4);const t=new Float32Array(e*e*4);t.set(this.boneMatrices);const n=new DataTexture(t,e,e,Ne,Le);n.needsUpdate=true;this.boneMatrices=t;this.boneTexture=n;this.boneTextureSize=e;return this}getBoneByName(e){for(let t=0,n=this.bones.length;t<n;t++){const n=this.bones[t];if(n.name===e)return n}}dispose(){if(null!==this.boneTexture){this.boneTexture.dispose();this.boneTexture=null}}fromJSON(e,t){this.uuid=e.uuid;for(let n=0,r=e.bones.length;n<r;n++){const r=e.bones[n];let i=t[r];if(void 0===i){console.warn(\"THREE.Skeleton: No bone found with UUID:\",r);i=new Bone}this.bones.push(i);this.boneInverses.push((new Matrix4).fromArray(e.boneInverses[n]))}this.init();return this}toJSON(){const e={metadata:{version:4.5,type:\"Skeleton\",generator:\"Skeleton.toJSON\"},bones:[],boneInverses:[]};e.uuid=this.uuid;const t=this.bones;const n=this.boneInverses;for(let r=0,i=t.length;r<i;r++){const i=t[r];e.bones.push(i.uuid);const s=n[r];e.boneInverses.push(s.toArray())}return e}}class InstancedBufferAttribute extends BufferAttribute{constructor(e,t,n,r=1){if(\"number\"===typeof n){r=n;n=false;console.error(\"THREE.InstancedBufferAttribute: The constructor now expects normalized as the third argument.\")}super(e,t,n);this.meshPerAttribute=r}copy(e){super.copy(e);this.meshPerAttribute=e.meshPerAttribute;return this}toJSON(){const e=super.toJSON();e.meshPerAttribute=this.meshPerAttribute;e.isInstancedBufferAttribute=true;return e}}InstancedBufferAttribute.prototype.isInstancedBufferAttribute=true;const sl=new Matrix4;const al=new Matrix4;const ol=[];const ll=new Mesh;class InstancedMesh extends Mesh{constructor(e,t,n){super(e,t);this.instanceMatrix=new InstancedBufferAttribute(new Float32Array(16*n),16);this.instanceColor=null;this.count=n;this.frustumCulled=false}copy(e){super.copy(e);this.instanceMatrix.copy(e.instanceMatrix);null!==e.instanceColor&&(this.instanceColor=e.instanceColor.clone());this.count=e.count;return this}getColorAt(e,t){t.fromArray(this.instanceColor.array,3*e)}getMatrixAt(e,t){t.fromArray(this.instanceMatrix.array,16*e)}raycast(e,t){const n=this.matrixWorld;const r=this.count;ll.geometry=this.geometry;ll.material=this.material;if(void 0!==ll.material)for(let i=0;i<r;i++){this.getMatrixAt(i,sl);al.multiplyMatrices(n,sl);ll.matrixWorld=al;ll.raycast(e,ol);for(let e=0,n=ol.length;e<n;e++){const n=ol[e];n.instanceId=i;n.object=this;t.push(n)}ol.length=0}}setColorAt(e,t){null===this.instanceColor&&(this.instanceColor=new InstancedBufferAttribute(new Float32Array(3*this.instanceMatrix.count),3));t.toArray(this.instanceColor.array,3*e)}setMatrixAt(e,t){t.toArray(this.instanceMatrix.array,16*e)}updateMorphTargets(){}dispose(){this.dispatchEvent({type:\"dispose\"})}}InstancedMesh.prototype.isInstancedMesh=true;class LineBasicMaterial extends Material{constructor(e){super();this.type=\"LineBasicMaterial\";this.color=new Color(16777215);this.linewidth=1;this.linecap=\"round\";this.linejoin=\"round\";this.setValues(e)}copy(e){super.copy(e);this.color.copy(e.color);this.linewidth=e.linewidth;this.linecap=e.linecap;this.linejoin=e.linejoin;return this}}LineBasicMaterial.prototype.isLineBasicMaterial=true;const cl=new Vector3;const ul=new Vector3;const hl=new Matrix4;const dl=new Ray;const pl=new Sphere;class Line extends Object3D{constructor(e=new BufferGeometry,t=new LineBasicMaterial){super();this.type=\"Line\";this.geometry=e;this.material=t;this.updateMorphTargets()}copy(e){super.copy(e);this.material=e.material;this.geometry=e.geometry;return this}computeLineDistances(){const e=this.geometry;if(e.isBufferGeometry)if(null===e.index){const t=e.attributes.position;const n=[0];for(let e=1,r=t.count;e<r;e++){cl.fromBufferAttribute(t,e-1);ul.fromBufferAttribute(t,e);n[e]=n[e-1];n[e]+=cl.distanceTo(ul)}e.setAttribute(\"lineDistance\",new Float32BufferAttribute(n,1))}else console.warn(\"THREE.Line.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.\");else e.isGeometry&&console.error(\"THREE.Line.computeLineDistances() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.\");return this}raycast(e,t){const n=this.geometry;const r=this.matrixWorld;const i=e.params.Line.threshold;const s=n.drawRange;null===n.boundingSphere&&n.computeBoundingSphere();pl.copy(n.boundingSphere);pl.applyMatrix4(r);pl.radius+=i;if(false===e.ray.intersectsSphere(pl))return;hl.copy(r).invert();dl.copy(e.ray).applyMatrix4(hl);const a=i/((this.scale.x+this.scale.y+this.scale.z)/3);const o=a*a;const l=new Vector3;const c=new Vector3;const u=new Vector3;const h=new Vector3;const d=this.isLineSegments?2:1;if(n.isBufferGeometry){const r=n.index;const i=n.attributes;const a=i.position;if(null!==r){const n=Math.max(0,s.start);const i=Math.min(r.count,s.start+s.count);for(let s=n,p=i-1;s<p;s+=d){const n=r.getX(s);const i=r.getX(s+1);l.fromBufferAttribute(a,n);c.fromBufferAttribute(a,i);const d=dl.distanceSqToSegment(l,c,h,u);if(d>o)continue;h.applyMatrix4(this.matrixWorld);const p=e.ray.origin.distanceTo(h);p<e.near||p>e.far||t.push({distance:p,point:u.clone().applyMatrix4(this.matrixWorld),index:s,face:null,faceIndex:null,object:this})}}else{const n=Math.max(0,s.start);const r=Math.min(a.count,s.start+s.count);for(let i=n,s=r-1;i<s;i+=d){l.fromBufferAttribute(a,i);c.fromBufferAttribute(a,i+1);const n=dl.distanceSqToSegment(l,c,h,u);if(n>o)continue;h.applyMatrix4(this.matrixWorld);const r=e.ray.origin.distanceTo(h);r<e.near||r>e.far||t.push({distance:r,point:u.clone().applyMatrix4(this.matrixWorld),index:i,face:null,faceIndex:null,object:this})}}}else n.isGeometry&&console.error(\"THREE.Line.raycast() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.\")}updateMorphTargets(){const e=this.geometry;if(e.isBufferGeometry){const t=e.morphAttributes;const n=Object.keys(t);if(n.length>0){const e=t[n[0]];if(void 0!==e){this.morphTargetInfluences=[];this.morphTargetDictionary={};for(let t=0,n=e.length;t<n;t++){const n=e[t].name||String(t);this.morphTargetInfluences.push(0);this.morphTargetDictionary[n]=t}}}}else{const t=e.morphTargets;void 0!==t&&t.length>0&&console.error(\"THREE.Line.updateMorphTargets() does not support THREE.Geometry. Use THREE.BufferGeometry instead.\")}}}Line.prototype.isLine=true;const fl=new Vector3;const ml=new Vector3;class LineSegments extends Line{constructor(e,t){super(e,t);this.type=\"LineSegments\"}computeLineDistances(){const e=this.geometry;if(e.isBufferGeometry)if(null===e.index){const t=e.attributes.position;const n=[];for(let e=0,r=t.count;e<r;e+=2){fl.fromBufferAttribute(t,e);ml.fromBufferAttribute(t,e+1);n[e]=0===e?0:n[e-1];n[e+1]=n[e]+fl.distanceTo(ml)}e.setAttribute(\"lineDistance\",new Float32BufferAttribute(n,1))}else console.warn(\"THREE.LineSegments.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.\");else e.isGeometry&&console.error(\"THREE.LineSegments.computeLineDistances() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.\");return this}}LineSegments.prototype.isLineSegments=true;class LineLoop extends Line{constructor(e,t){super(e,t);this.type=\"LineLoop\"}}LineLoop.prototype.isLineLoop=true;class PointsMaterial extends Material{constructor(e){super();this.type=\"PointsMaterial\";this.color=new Color(16777215);this.map=null;this.alphaMap=null;this.size=1;this.sizeAttenuation=true;this.setValues(e)}copy(e){super.copy(e);this.color.copy(e.color);this.map=e.map;this.alphaMap=e.alphaMap;this.size=e.size;this.sizeAttenuation=e.sizeAttenuation;return this}}PointsMaterial.prototype.isPointsMaterial=true;const gl=new Matrix4;const yl=new Ray;const vl=new Sphere;const xl=new Vector3;class Points extends Object3D{constructor(e=new BufferGeometry,t=new PointsMaterial){super();this.type=\"Points\";this.geometry=e;this.material=t;this.updateMorphTargets()}copy(e){super.copy(e);this.material=e.material;this.geometry=e.geometry;return this}raycast(e,t){const n=this.geometry;const r=this.matrixWorld;const i=e.params.Points.threshold;const s=n.drawRange;null===n.boundingSphere&&n.computeBoundingSphere();vl.copy(n.boundingSphere);vl.applyMatrix4(r);vl.radius+=i;if(false===e.ray.intersectsSphere(vl))return;gl.copy(r).invert();yl.copy(e.ray).applyMatrix4(gl);const a=i/((this.scale.x+this.scale.y+this.scale.z)/3);const o=a*a;if(n.isBufferGeometry){const i=n.index;const a=n.attributes;const l=a.position;if(null!==i){const n=Math.max(0,s.start);const a=Math.min(i.count,s.start+s.count);for(let s=n,c=a;s<c;s++){const n=i.getX(s);xl.fromBufferAttribute(l,n);testPoint(xl,n,o,r,e,t,this)}}else{const n=Math.max(0,s.start);const i=Math.min(l.count,s.start+s.count);for(let s=n,a=i;s<a;s++){xl.fromBufferAttribute(l,s);testPoint(xl,s,o,r,e,t,this)}}}else console.error(\"THREE.Points.raycast() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.\")}updateMorphTargets(){const e=this.geometry;if(e.isBufferGeometry){const t=e.morphAttributes;const n=Object.keys(t);if(n.length>0){const e=t[n[0]];if(void 0!==e){this.morphTargetInfluences=[];this.morphTargetDictionary={};for(let t=0,n=e.length;t<n;t++){const n=e[t].name||String(t);this.morphTargetInfluences.push(0);this.morphTargetDictionary[n]=t}}}}else{const t=e.morphTargets;void 0!==t&&t.length>0&&console.error(\"THREE.Points.updateMorphTargets() does not support THREE.Geometry. Use THREE.BufferGeometry instead.\")}}}Points.prototype.isPoints=true;function testPoint(e,t,n,r,i,s,a){const o=yl.distanceSqToPoint(e);if(o<n){const n=new Vector3;yl.closestPointToPoint(e,n);n.applyMatrix4(r);const l=i.ray.origin.distanceTo(n);if(l<i.near||l>i.far)return;s.push({distance:l,distanceToRay:Math.sqrt(o),point:n,index:t,face:null,object:a})}}class VideoTexture extends Texture{constructor(e,t,n,r,i,s,a,o,l){super(e,t,n,r,i,s,a,o,l);this.format=void 0!==a?a:Ve;this.minFilter=void 0!==s?s:ye;this.magFilter=void 0!==i?i:ye;this.generateMipmaps=false;const c=this;function updateVideo(){c.needsUpdate=true;e.requestVideoFrameCallback(updateVideo)}\"requestVideoFrameCallback\"in e&&e.requestVideoFrameCallback(updateVideo)}clone(){return new this.constructor(this.image).copy(this)}update(){const e=this.image;const t=\"requestVideoFrameCallback\"in e;false===t&&e.readyState>=e.HAVE_CURRENT_DATA&&(this.needsUpdate=true)}}VideoTexture.prototype.isVideoTexture=true;class FramebufferTexture extends Texture{constructor(e,t,n){super({width:e,height:t});this.format=n;this.magFilter=de;this.minFilter=de;this.generateMipmaps=false;this.needsUpdate=true}}FramebufferTexture.prototype.isFramebufferTexture=true;class CompressedTexture extends Texture{constructor(e,t,n,r,i,s,a,o,l,c,u,h){super(null,s,a,o,l,c,r,i,u,h);this.image={width:t,height:n};this.mipmaps=e;this.flipY=false;this.generateMipmaps=false}}CompressedTexture.prototype.isCompressedTexture=true;class CanvasTexture extends Texture{constructor(e,t,n,r,i,s,a,o,l){super(e,t,n,r,i,s,a,o,l);this.needsUpdate=true}}CanvasTexture.prototype.isCanvasTexture=true;class CircleGeometry extends BufferGeometry{constructor(e=1,t=8,n=0,r=2*Math.PI){super();this.type=\"CircleGeometry\";this.parameters={radius:e,segments:t,thetaStart:n,thetaLength:r};t=Math.max(3,t);const i=[];const s=[];const a=[];const o=[];const l=new Vector3;const c=new Vector2;s.push(0,0,0);a.push(0,0,1);o.push(.5,.5);for(let i=0,u=3;i<=t;i++,u+=3){const h=n+i/t*r;l.x=e*Math.cos(h);l.y=e*Math.sin(h);s.push(l.x,l.y,l.z);a.push(0,0,1);c.x=(s[u]/e+1)/2;c.y=(s[u+1]/e+1)/2;o.push(c.x,c.y)}for(let e=1;e<=t;e++)i.push(e,e+1,0);this.setIndex(i);this.setAttribute(\"position\",new Float32BufferAttribute(s,3));this.setAttribute(\"normal\",new Float32BufferAttribute(a,3));this.setAttribute(\"uv\",new Float32BufferAttribute(o,2))}static fromJSON(e){return new CircleGeometry(e.radius,e.segments,e.thetaStart,e.thetaLength)}}class CylinderGeometry extends BufferGeometry{constructor(e=1,t=1,n=1,r=8,i=1,s=false,a=0,o=2*Math.PI){super();this.type=\"CylinderGeometry\";this.parameters={radiusTop:e,radiusBottom:t,height:n,radialSegments:r,heightSegments:i,openEnded:s,thetaStart:a,thetaLength:o};const l=this;r=Math.floor(r);i=Math.floor(i);const c=[];const u=[];const h=[];const d=[];let p=0;const f=[];const m=n/2;let g=0;generateTorso();if(false===s){e>0&&generateCap(true);t>0&&generateCap(false)}this.setIndex(c);this.setAttribute(\"position\",new Float32BufferAttribute(u,3));this.setAttribute(\"normal\",new Float32BufferAttribute(h,3));this.setAttribute(\"uv\",new Float32BufferAttribute(d,2));function generateTorso(){const s=new Vector3;const y=new Vector3;let x=0;const b=(t-e)/n;for(let l=0;l<=i;l++){const c=[];const g=l/i;const x=g*(t-e)+e;for(let e=0;e<=r;e++){const t=e/r;const i=t*o+a;const l=Math.sin(i);const f=Math.cos(i);y.x=x*l;y.y=-g*n+m;y.z=x*f;u.push(y.x,y.y,y.z);s.set(l,b,f).normalize();h.push(s.x,s.y,s.z);d.push(t,1-g);c.push(p++)}f.push(c)}for(let e=0;e<r;e++)for(let t=0;t<i;t++){const n=f[t][e];const r=f[t+1][e];const i=f[t+1][e+1];const s=f[t][e+1];c.push(n,r,s);c.push(r,i,s);x+=6}l.addGroup(g,x,0);g+=x}function generateCap(n){const i=p;const s=new Vector2;const f=new Vector3;let y=0;const x=true===n?e:t;const b=true===n?1:-1;for(let e=1;e<=r;e++){u.push(0,m*b,0);h.push(0,b,0);d.push(.5,.5);p++}const _=p;for(let e=0;e<=r;e++){const t=e/r;const n=t*o+a;const i=Math.cos(n);const l=Math.sin(n);f.x=x*l;f.y=m*b;f.z=x*i;u.push(f.x,f.y,f.z);h.push(0,b,0);s.x=.5*i+.5;s.y=.5*l*b+.5;d.push(s.x,s.y);p++}for(let e=0;e<r;e++){const t=i+e;const r=_+e;true===n?c.push(r,r+1,t):c.push(r+1,r,t);y+=3}l.addGroup(g,y,true===n?1:2);g+=y}}static fromJSON(e){return new CylinderGeometry(e.radiusTop,e.radiusBottom,e.height,e.radialSegments,e.heightSegments,e.openEnded,e.thetaStart,e.thetaLength)}}class ConeGeometry extends CylinderGeometry{constructor(e=1,t=1,n=8,r=1,i=false,s=0,a=2*Math.PI){super(0,e,t,n,r,i,s,a);this.type=\"ConeGeometry\";this.parameters={radius:e,height:t,radialSegments:n,heightSegments:r,openEnded:i,thetaStart:s,thetaLength:a}}static fromJSON(e){return new ConeGeometry(e.radius,e.height,e.radialSegments,e.heightSegments,e.openEnded,e.thetaStart,e.thetaLength)}}class PolyhedronGeometry extends BufferGeometry{constructor(e=[],t=[],n=1,r=0){super();this.type=\"PolyhedronGeometry\";this.parameters={vertices:e,indices:t,radius:n,detail:r};const i=[];const s=[];subdivide(r);applyRadius(n);generateUVs();this.setAttribute(\"position\",new Float32BufferAttribute(i,3));this.setAttribute(\"normal\",new Float32BufferAttribute(i.slice(),3));this.setAttribute(\"uv\",new Float32BufferAttribute(s,2));0===r?this.computeVertexNormals():this.normalizeNormals();function subdivide(e){const n=new Vector3;const r=new Vector3;const i=new Vector3;for(let s=0;s<t.length;s+=3){getVertexByIndex(t[s+0],n);getVertexByIndex(t[s+1],r);getVertexByIndex(t[s+2],i);subdivideFace(n,r,i,e)}}function subdivideFace(e,t,n,r){const i=r+1;const s=[];for(let r=0;r<=i;r++){s[r]=[];const a=e.clone().lerp(n,r/i);const o=t.clone().lerp(n,r/i);const l=i-r;for(let e=0;e<=l;e++)s[r][e]=0===e&&r===i?a:a.clone().lerp(o,e/l)}for(let e=0;e<i;e++)for(let t=0;t<2*(i-e)-1;t++){const n=Math.floor(t/2);if(t%2===0){pushVertex(s[e][n+1]);pushVertex(s[e+1][n]);pushVertex(s[e][n])}else{pushVertex(s[e][n+1]);pushVertex(s[e+1][n+1]);pushVertex(s[e+1][n])}}}function applyRadius(e){const t=new Vector3;for(let n=0;n<i.length;n+=3){t.x=i[n+0];t.y=i[n+1];t.z=i[n+2];t.normalize().multiplyScalar(e);i[n+0]=t.x;i[n+1]=t.y;i[n+2]=t.z}}function generateUVs(){const e=new Vector3;for(let t=0;t<i.length;t+=3){e.x=i[t+0];e.y=i[t+1];e.z=i[t+2];const n=azimuth(e)/2/Math.PI+.5;const r=inclination(e)/Math.PI+.5;s.push(n,1-r)}correctUVs();correctSeam()}function correctSeam(){for(let e=0;e<s.length;e+=6){const t=s[e+0];const n=s[e+2];const r=s[e+4];const i=Math.max(t,n,r);const a=Math.min(t,n,r);if(i>.9&&a<.1){t<.2&&(s[e+0]+=1);n<.2&&(s[e+2]+=1);r<.2&&(s[e+4]+=1)}}}function pushVertex(e){i.push(e.x,e.y,e.z)}function getVertexByIndex(t,n){const r=3*t;n.x=e[r+0];n.y=e[r+1];n.z=e[r+2]}function correctUVs(){const e=new Vector3;const t=new Vector3;const n=new Vector3;const r=new Vector3;const a=new Vector2;const o=new Vector2;const l=new Vector2;for(let c=0,u=0;c<i.length;c+=9,u+=6){e.set(i[c+0],i[c+1],i[c+2]);t.set(i[c+3],i[c+4],i[c+5]);n.set(i[c+6],i[c+7],i[c+8]);a.set(s[u+0],s[u+1]);o.set(s[u+2],s[u+3]);l.set(s[u+4],s[u+5]);r.copy(e).add(t).add(n).divideScalar(3);const h=azimuth(r);correctUV(a,u+0,e,h);correctUV(o,u+2,t,h);correctUV(l,u+4,n,h)}}function correctUV(e,t,n,r){r<0&&1===e.x&&(s[t]=e.x-1);0===n.x&&0===n.z&&(s[t]=r/2/Math.PI+.5)}function azimuth(e){return Math.atan2(e.z,-e.x)}function inclination(e){return Math.atan2(-e.y,Math.sqrt(e.x*e.x+e.z*e.z))}}static fromJSON(e){return new PolyhedronGeometry(e.vertices,e.indices,e.radius,e.details)}}class DodecahedronGeometry extends PolyhedronGeometry{constructor(e=1,t=0){const n=(1+Math.sqrt(5))/2;const r=1/n;const i=[-1,-1,-1,-1,-1,1,-1,1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,0,-r,-n,0,-r,n,0,r,-n,0,r,n,-r,-n,0,-r,n,0,r,-n,0,r,n,0,-n,0,-r,n,0,-r,-n,0,r,n,0,r];const s=[3,11,7,3,7,15,3,15,13,7,19,17,7,17,6,7,6,15,17,4,8,17,8,10,17,10,6,8,0,16,8,16,2,8,2,10,0,12,1,0,1,18,0,18,16,6,10,2,6,2,13,6,13,15,2,16,18,2,18,3,2,3,13,18,1,9,18,9,11,18,11,3,4,14,12,4,12,0,4,0,8,11,9,5,11,5,19,11,19,7,19,5,14,19,14,4,19,4,17,1,12,14,1,14,5,1,5,9];super(i,s,e,t);this.type=\"DodecahedronGeometry\";this.parameters={radius:e,detail:t}}static fromJSON(e){return new DodecahedronGeometry(e.radius,e.detail)}}const bl=new Vector3;const _l=new Vector3;const Ml=new Vector3;const wl=new Triangle;class EdgesGeometry extends BufferGeometry{constructor(e=null,t=1){super();this.type=\"EdgesGeometry\";this.parameters={geometry:e,thresholdAngle:t};if(null!==e){const n=4;const r=Math.pow(10,n);const i=Math.cos(Cn*t);const s=e.getIndex();const a=e.getAttribute(\"position\");const o=s?s.count:a.count;const l=[0,0,0];const c=[\"a\",\"b\",\"c\"];const u=new Array(3);const h={};const d=[];for(let e=0;e<o;e+=3){if(s){l[0]=s.getX(e);l[1]=s.getX(e+1);l[2]=s.getX(e+2)}else{l[0]=e;l[1]=e+1;l[2]=e+2}const{a:t,b:n,c:o}=wl;t.fromBufferAttribute(a,l[0]);n.fromBufferAttribute(a,l[1]);o.fromBufferAttribute(a,l[2]);wl.getNormal(Ml);u[0]=`${Math.round(t.x*r)},${Math.round(t.y*r)},${Math.round(t.z*r)}`;u[1]=`${Math.round(n.x*r)},${Math.round(n.y*r)},${Math.round(n.z*r)}`;u[2]=`${Math.round(o.x*r)},${Math.round(o.y*r)},${Math.round(o.z*r)}`;if(u[0]!==u[1]&&u[1]!==u[2]&&u[2]!==u[0])for(let e=0;e<3;e++){const t=(e+1)%3;const n=u[e];const r=u[t];const s=wl[c[e]];const a=wl[c[t]];const o=`${n}_${r}`;const p=`${r}_${n}`;if(p in h&&h[p]){if(Ml.dot(h[p].normal)<=i){d.push(s.x,s.y,s.z);d.push(a.x,a.y,a.z)}h[p]=null}else o in h||(h[o]={index0:l[e],index1:l[t],normal:Ml.clone()})}}for(const e in h)if(h[e]){const{index0:t,index1:n}=h[e];bl.fromBufferAttribute(a,t);_l.fromBufferAttribute(a,n);d.push(bl.x,bl.y,bl.z);d.push(_l.x,_l.y,_l.z)}this.setAttribute(\"position\",new Float32BufferAttribute(d,3))}}}class Curve{constructor(){this.type=\"Curve\";this.arcLengthDivisions=200}getPoint(){console.warn(\"THREE.Curve: .getPoint() not implemented.\");return null}getPointAt(e,t){const n=this.getUtoTmapping(e);return this.getPoint(n,t)}getPoints(e=5){const t=[];for(let n=0;n<=e;n++)t.push(this.getPoint(n/e));return t}getSpacedPoints(e=5){const t=[];for(let n=0;n<=e;n++)t.push(this.getPointAt(n/e));return t}getLength(){const e=this.getLengths();return e[e.length-1]}getLengths(e=this.arcLengthDivisions){if(this.cacheArcLengths&&this.cacheArcLengths.length===e+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=false;const t=[];let n,r=this.getPoint(0);let i=0;t.push(0);for(let s=1;s<=e;s++){n=this.getPoint(s/e);i+=n.distanceTo(r);t.push(i);r=n}this.cacheArcLengths=t;return t}updateArcLengths(){this.needsUpdate=true;this.getLengths()}getUtoTmapping(e,t){const n=this.getLengths();let r=0;const i=n.length;let s;s=t||e*n[i-1];let a,o=0,l=i-1;while(o<=l){r=Math.floor(o+(l-o)/2);a=n[r]-s;if(a<0)o=r+1;else{if(!(a>0)){l=r;break}l=r-1}}r=l;if(n[r]===s)return r/(i-1);const c=n[r];const u=n[r+1];const h=u-c;const d=(s-c)/h;const p=(r+d)/(i-1);return p}getTangent(e,t){const n=1e-4;let r=e-n;let i=e+n;r<0&&(r=0);i>1&&(i=1);const s=this.getPoint(r);const a=this.getPoint(i);const o=t||(s.isVector2?new Vector2:new Vector3);o.copy(a).sub(s).normalize();return o}getTangentAt(e,t){const n=this.getUtoTmapping(e);return this.getTangent(n,t)}computeFrenetFrames(e,t){const n=new Vector3;const r=[];const i=[];const s=[];const a=new Vector3;const o=new Matrix4;for(let t=0;t<=e;t++){const n=t/e;r[t]=this.getTangentAt(n,new Vector3)}i[0]=new Vector3;s[0]=new Vector3;let l=Number.MAX_VALUE;const c=Math.abs(r[0].x);const u=Math.abs(r[0].y);const h=Math.abs(r[0].z);if(c<=l){l=c;n.set(1,0,0)}if(u<=l){l=u;n.set(0,1,0)}h<=l&&n.set(0,0,1);a.crossVectors(r[0],n).normalize();i[0].crossVectors(r[0],a);s[0].crossVectors(r[0],i[0]);for(let t=1;t<=e;t++){i[t]=i[t-1].clone();s[t]=s[t-1].clone();a.crossVectors(r[t-1],r[t]);if(a.length()>Number.EPSILON){a.normalize();const e=Math.acos(clamp(r[t-1].dot(r[t]),-1,1));i[t].applyMatrix4(o.makeRotationAxis(a,e))}s[t].crossVectors(r[t],i[t])}if(true===t){let t=Math.acos(clamp(i[0].dot(i[e]),-1,1));t/=e;r[0].dot(a.crossVectors(i[0],i[e]))>0&&(t=-t);for(let n=1;n<=e;n++){i[n].applyMatrix4(o.makeRotationAxis(r[n],t*n));s[n].crossVectors(r[n],i[n])}}return{tangents:r,normals:i,binormals:s}}clone(){return(new this.constructor).copy(this)}copy(e){this.arcLengthDivisions=e.arcLengthDivisions;return this}toJSON(){const e={metadata:{version:4.5,type:\"Curve\",generator:\"Curve.toJSON\"}};e.arcLengthDivisions=this.arcLengthDivisions;e.type=this.type;return e}fromJSON(e){this.arcLengthDivisions=e.arcLengthDivisions;return this}}class EllipseCurve extends Curve{constructor(e=0,t=0,n=1,r=1,i=0,s=2*Math.PI,a=false,o=0){super();this.type=\"EllipseCurve\";this.aX=e;this.aY=t;this.xRadius=n;this.yRadius=r;this.aStartAngle=i;this.aEndAngle=s;this.aClockwise=a;this.aRotation=o}getPoint(e,t){const n=t||new Vector2;const r=2*Math.PI;let i=this.aEndAngle-this.aStartAngle;const s=Math.abs(i)<Number.EPSILON;while(i<0)i+=r;while(i>r)i-=r;i<Number.EPSILON&&(i=s?0:r);true!==this.aClockwise||s||(i===r?i=-r:i-=r);const a=this.aStartAngle+e*i;let o=this.aX+this.xRadius*Math.cos(a);let l=this.aY+this.yRadius*Math.sin(a);if(0!==this.aRotation){const e=Math.cos(this.aRotation);const t=Math.sin(this.aRotation);const n=o-this.aX;const r=l-this.aY;o=n*e-r*t+this.aX;l=n*t+r*e+this.aY}return n.set(o,l)}copy(e){super.copy(e);this.aX=e.aX;this.aY=e.aY;this.xRadius=e.xRadius;this.yRadius=e.yRadius;this.aStartAngle=e.aStartAngle;this.aEndAngle=e.aEndAngle;this.aClockwise=e.aClockwise;this.aRotation=e.aRotation;return this}toJSON(){const e=super.toJSON();e.aX=this.aX;e.aY=this.aY;e.xRadius=this.xRadius;e.yRadius=this.yRadius;e.aStartAngle=this.aStartAngle;e.aEndAngle=this.aEndAngle;e.aClockwise=this.aClockwise;e.aRotation=this.aRotation;return e}fromJSON(e){super.fromJSON(e);this.aX=e.aX;this.aY=e.aY;this.xRadius=e.xRadius;this.yRadius=e.yRadius;this.aStartAngle=e.aStartAngle;this.aEndAngle=e.aEndAngle;this.aClockwise=e.aClockwise;this.aRotation=e.aRotation;return this}}EllipseCurve.prototype.isEllipseCurve=true;class ArcCurve extends EllipseCurve{constructor(e,t,n,r,i,s){super(e,t,n,n,r,i,s);this.type=\"ArcCurve\"}}ArcCurve.prototype.isArcCurve=true;function CubicPoly(){let e=0,t=0,n=0,r=0;function init(i,s,a,o){e=i;t=a;n=-3*i+3*s-2*a-o;r=2*i-2*s+a+o}return{initCatmullRom:function(e,t,n,r,i){init(t,n,i*(n-e),i*(r-t))},initNonuniformCatmullRom:function(e,t,n,r,i,s,a){let o=(t-e)/i-(n-e)/(i+s)+(n-t)/s;let l=(n-t)/s-(r-t)/(s+a)+(r-n)/a;o*=s;l*=s;init(t,n,o,l)},calc:function(i){const s=i*i;const a=s*i;return e+t*i+n*s+r*a}}}const Sl=new Vector3;const Tl=new CubicPoly,El=new CubicPoly,Al=new CubicPoly;class CatmullRomCurve3 extends Curve{constructor(e=[],t=false,n=\"centripetal\",r=.5){super();this.type=\"CatmullRomCurve3\";this.points=e;this.closed=t;this.curveType=n;this.tension=r}getPoint(e,t=new Vector3){const n=t;const r=this.points;const i=r.length;const s=(i-(this.closed?0:1))*e;let a=Math.floor(s);let o=s-a;if(this.closed)a+=a>0?0:(Math.floor(Math.abs(a)/i)+1)*i;else if(0===o&&a===i-1){a=i-2;o=1}let l,c;if(this.closed||a>0)l=r[(a-1)%i];else{Sl.subVectors(r[0],r[1]).add(r[0]);l=Sl}const u=r[a%i];const h=r[(a+1)%i];if(this.closed||a+2<i)c=r[(a+2)%i];else{Sl.subVectors(r[i-1],r[i-2]).add(r[i-1]);c=Sl}if(\"centripetal\"===this.curveType||\"chordal\"===this.curveType){const e=\"chordal\"===this.curveType?.5:.25;let t=Math.pow(l.distanceToSquared(u),e);let n=Math.pow(u.distanceToSquared(h),e);let r=Math.pow(h.distanceToSquared(c),e);n<1e-4&&(n=1);t<1e-4&&(t=n);r<1e-4&&(r=n);Tl.initNonuniformCatmullRom(l.x,u.x,h.x,c.x,t,n,r);El.initNonuniformCatmullRom(l.y,u.y,h.y,c.y,t,n,r);Al.initNonuniformCatmullRom(l.z,u.z,h.z,c.z,t,n,r)}else if(\"catmullrom\"===this.curveType){Tl.initCatmullRom(l.x,u.x,h.x,c.x,this.tension);El.initCatmullRom(l.y,u.y,h.y,c.y,this.tension);Al.initCatmullRom(l.z,u.z,h.z,c.z,this.tension)}n.set(Tl.calc(o),El.calc(o),Al.calc(o));return n}copy(e){super.copy(e);this.points=[];for(let t=0,n=e.points.length;t<n;t++){const n=e.points[t];this.points.push(n.clone())}this.closed=e.closed;this.curveType=e.curveType;this.tension=e.tension;return this}toJSON(){const e=super.toJSON();e.points=[];for(let t=0,n=this.points.length;t<n;t++){const n=this.points[t];e.points.push(n.toArray())}e.closed=this.closed;e.curveType=this.curveType;e.tension=this.tension;return e}fromJSON(e){super.fromJSON(e);this.points=[];for(let t=0,n=e.points.length;t<n;t++){const n=e.points[t];this.points.push((new Vector3).fromArray(n))}this.closed=e.closed;this.curveType=e.curveType;this.tension=e.tension;return this}}CatmullRomCurve3.prototype.isCatmullRomCurve3=true;function CatmullRom(e,t,n,r,i){const s=.5*(r-t);const a=.5*(i-n);const o=e*e;const l=e*o;return(2*n-2*r+s+a)*l+(-3*n+3*r-2*s-a)*o+s*e+n}function QuadraticBezierP0(e,t){const n=1-e;return n*n*t}function QuadraticBezierP1(e,t){return 2*(1-e)*e*t}function QuadraticBezierP2(e,t){return e*e*t}function QuadraticBezier(e,t,n,r){return QuadraticBezierP0(e,t)+QuadraticBezierP1(e,n)+QuadraticBezierP2(e,r)}function CubicBezierP0(e,t){const n=1-e;return n*n*n*t}function CubicBezierP1(e,t){const n=1-e;return 3*n*n*e*t}function CubicBezierP2(e,t){return 3*(1-e)*e*e*t}function CubicBezierP3(e,t){return e*e*e*t}function CubicBezier(e,t,n,r,i){return CubicBezierP0(e,t)+CubicBezierP1(e,n)+CubicBezierP2(e,r)+CubicBezierP3(e,i)}class CubicBezierCurve extends Curve{constructor(e=new Vector2,t=new Vector2,n=new Vector2,r=new Vector2){super();this.type=\"CubicBezierCurve\";this.v0=e;this.v1=t;this.v2=n;this.v3=r}getPoint(e,t=new Vector2){const n=t;const r=this.v0,i=this.v1,s=this.v2,a=this.v3;n.set(CubicBezier(e,r.x,i.x,s.x,a.x),CubicBezier(e,r.y,i.y,s.y,a.y));return n}copy(e){super.copy(e);this.v0.copy(e.v0);this.v1.copy(e.v1);this.v2.copy(e.v2);this.v3.copy(e.v3);return this}toJSON(){const e=super.toJSON();e.v0=this.v0.toArray();e.v1=this.v1.toArray();e.v2=this.v2.toArray();e.v3=this.v3.toArray();return e}fromJSON(e){super.fromJSON(e);this.v0.fromArray(e.v0);this.v1.fromArray(e.v1);this.v2.fromArray(e.v2);this.v3.fromArray(e.v3);return this}}CubicBezierCurve.prototype.isCubicBezierCurve=true;class CubicBezierCurve3 extends Curve{constructor(e=new Vector3,t=new Vector3,n=new Vector3,r=new Vector3){super();this.type=\"CubicBezierCurve3\";this.v0=e;this.v1=t;this.v2=n;this.v3=r}getPoint(e,t=new Vector3){const n=t;const r=this.v0,i=this.v1,s=this.v2,a=this.v3;n.set(CubicBezier(e,r.x,i.x,s.x,a.x),CubicBezier(e,r.y,i.y,s.y,a.y),CubicBezier(e,r.z,i.z,s.z,a.z));return n}copy(e){super.copy(e);this.v0.copy(e.v0);this.v1.copy(e.v1);this.v2.copy(e.v2);this.v3.copy(e.v3);return this}toJSON(){const e=super.toJSON();e.v0=this.v0.toArray();e.v1=this.v1.toArray();e.v2=this.v2.toArray();e.v3=this.v3.toArray();return e}fromJSON(e){super.fromJSON(e);this.v0.fromArray(e.v0);this.v1.fromArray(e.v1);this.v2.fromArray(e.v2);this.v3.fromArray(e.v3);return this}}CubicBezierCurve3.prototype.isCubicBezierCurve3=true;class LineCurve extends Curve{constructor(e=new Vector2,t=new Vector2){super();this.type=\"LineCurve\";this.v1=e;this.v2=t}getPoint(e,t=new Vector2){const n=t;if(1===e)n.copy(this.v2);else{n.copy(this.v2).sub(this.v1);n.multiplyScalar(e).add(this.v1)}return n}getPointAt(e,t){return this.getPoint(e,t)}getTangent(e,t){const n=t||new Vector2;n.copy(this.v2).sub(this.v1).normalize();return n}copy(e){super.copy(e);this.v1.copy(e.v1);this.v2.copy(e.v2);return this}toJSON(){const e=super.toJSON();e.v1=this.v1.toArray();e.v2=this.v2.toArray();return e}fromJSON(e){super.fromJSON(e);this.v1.fromArray(e.v1);this.v2.fromArray(e.v2);return this}}LineCurve.prototype.isLineCurve=true;class LineCurve3 extends Curve{constructor(e=new Vector3,t=new Vector3){super();this.type=\"LineCurve3\";this.isLineCurve3=true;this.v1=e;this.v2=t}getPoint(e,t=new Vector3){const n=t;if(1===e)n.copy(this.v2);else{n.copy(this.v2).sub(this.v1);n.multiplyScalar(e).add(this.v1)}return n}getPointAt(e,t){return this.getPoint(e,t)}copy(e){super.copy(e);this.v1.copy(e.v1);this.v2.copy(e.v2);return this}toJSON(){const e=super.toJSON();e.v1=this.v1.toArray();e.v2=this.v2.toArray();return e}fromJSON(e){super.fromJSON(e);this.v1.fromArray(e.v1);this.v2.fromArray(e.v2);return this}}class QuadraticBezierCurve extends Curve{constructor(e=new Vector2,t=new Vector2,n=new Vector2){super();this.type=\"QuadraticBezierCurve\";this.v0=e;this.v1=t;this.v2=n}getPoint(e,t=new Vector2){const n=t;const r=this.v0,i=this.v1,s=this.v2;n.set(QuadraticBezier(e,r.x,i.x,s.x),QuadraticBezier(e,r.y,i.y,s.y));return n}copy(e){super.copy(e);this.v0.copy(e.v0);this.v1.copy(e.v1);this.v2.copy(e.v2);return this}toJSON(){const e=super.toJSON();e.v0=this.v0.toArray();e.v1=this.v1.toArray();e.v2=this.v2.toArray();return e}fromJSON(e){super.fromJSON(e);this.v0.fromArray(e.v0);this.v1.fromArray(e.v1);this.v2.fromArray(e.v2);return this}}QuadraticBezierCurve.prototype.isQuadraticBezierCurve=true;class QuadraticBezierCurve3 extends Curve{constructor(e=new Vector3,t=new Vector3,n=new Vector3){super();this.type=\"QuadraticBezierCurve3\";this.v0=e;this.v1=t;this.v2=n}getPoint(e,t=new Vector3){const n=t;const r=this.v0,i=this.v1,s=this.v2;n.set(QuadraticBezier(e,r.x,i.x,s.x),QuadraticBezier(e,r.y,i.y,s.y),QuadraticBezier(e,r.z,i.z,s.z));return n}copy(e){super.copy(e);this.v0.copy(e.v0);this.v1.copy(e.v1);this.v2.copy(e.v2);return this}toJSON(){const e=super.toJSON();e.v0=this.v0.toArray();e.v1=this.v1.toArray();e.v2=this.v2.toArray();return e}fromJSON(e){super.fromJSON(e);this.v0.fromArray(e.v0);this.v1.fromArray(e.v1);this.v2.fromArray(e.v2);return this}}QuadraticBezierCurve3.prototype.isQuadraticBezierCurve3=true;class SplineCurve extends Curve{constructor(e=[]){super();this.type=\"SplineCurve\";this.points=e}getPoint(e,t=new Vector2){const n=t;const r=this.points;const i=(r.length-1)*e;const s=Math.floor(i);const a=i-s;const o=r[0===s?s:s-1];const l=r[s];const c=r[s>r.length-2?r.length-1:s+1];const u=r[s>r.length-3?r.length-1:s+2];n.set(CatmullRom(a,o.x,l.x,c.x,u.x),CatmullRom(a,o.y,l.y,c.y,u.y));return n}copy(e){super.copy(e);this.points=[];for(let t=0,n=e.points.length;t<n;t++){const n=e.points[t];this.points.push(n.clone())}return this}toJSON(){const e=super.toJSON();e.points=[];for(let t=0,n=this.points.length;t<n;t++){const n=this.points[t];e.points.push(n.toArray())}return e}fromJSON(e){super.fromJSON(e);this.points=[];for(let t=0,n=e.points.length;t<n;t++){const n=e.points[t];this.points.push((new Vector2).fromArray(n))}return this}}SplineCurve.prototype.isSplineCurve=true;var Ll=Object.freeze({__proto__:null,ArcCurve:ArcCurve,CatmullRomCurve3:CatmullRomCurve3,CubicBezierCurve:CubicBezierCurve,CubicBezierCurve3:CubicBezierCurve3,EllipseCurve:EllipseCurve,LineCurve:LineCurve,LineCurve3:LineCurve3,QuadraticBezierCurve:QuadraticBezierCurve,QuadraticBezierCurve3:QuadraticBezierCurve3,SplineCurve:SplineCurve});class CurvePath extends Curve{constructor(){super();this.type=\"CurvePath\";this.curves=[];this.autoClose=false}add(e){this.curves.push(e)}closePath(){const e=this.curves[0].getPoint(0);const t=this.curves[this.curves.length-1].getPoint(1);e.equals(t)||this.curves.push(new LineCurve(t,e))}getPoint(e,t){const n=e*this.getLength();const r=this.getCurveLengths();let i=0;while(i<r.length){if(r[i]>=n){const e=r[i]-n;const s=this.curves[i];const a=s.getLength();const o=0===a?0:1-e/a;return s.getPointAt(o,t)}i++}return null}getLength(){const e=this.getCurveLengths();return e[e.length-1]}updateArcLengths(){this.needsUpdate=true;this.cacheLengths=null;this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;const e=[];let t=0;for(let n=0,r=this.curves.length;n<r;n++){t+=this.curves[n].getLength();e.push(t)}this.cacheLengths=e;return e}getSpacedPoints(e=40){const t=[];for(let n=0;n<=e;n++)t.push(this.getPoint(n/e));this.autoClose&&t.push(t[0]);return t}getPoints(e=12){const t=[];let n;for(let r=0,i=this.curves;r<i.length;r++){const s=i[r];const a=s&&s.isEllipseCurve?2*e:s&&(s.isLineCurve||s.isLineCurve3)?1:s&&s.isSplineCurve?e*s.points.length:e;const o=s.getPoints(a);for(let e=0;e<o.length;e++){const r=o[e];if(!n||!n.equals(r)){t.push(r);n=r}}}this.autoClose&&t.length>1&&!t[t.length-1].equals(t[0])&&t.push(t[0]);return t}copy(e){super.copy(e);this.curves=[];for(let t=0,n=e.curves.length;t<n;t++){const n=e.curves[t];this.curves.push(n.clone())}this.autoClose=e.autoClose;return this}toJSON(){const e=super.toJSON();e.autoClose=this.autoClose;e.curves=[];for(let t=0,n=this.curves.length;t<n;t++){const n=this.curves[t];e.curves.push(n.toJSON())}return e}fromJSON(e){super.fromJSON(e);this.autoClose=e.autoClose;this.curves=[];for(let t=0,n=e.curves.length;t<n;t++){const n=e.curves[t];this.curves.push((new Ll[n.type]).fromJSON(n))}return this}}class Path extends CurvePath{constructor(e){super();this.type=\"Path\";this.currentPoint=new Vector2;e&&this.setFromPoints(e)}setFromPoints(e){this.moveTo(e[0].x,e[0].y);for(let t=1,n=e.length;t<n;t++)this.lineTo(e[t].x,e[t].y);return this}moveTo(e,t){this.currentPoint.set(e,t);return this}lineTo(e,t){const n=new LineCurve(this.currentPoint.clone(),new Vector2(e,t));this.curves.push(n);this.currentPoint.set(e,t);return this}quadraticCurveTo(e,t,n,r){const i=new QuadraticBezierCurve(this.currentPoint.clone(),new Vector2(e,t),new Vector2(n,r));this.curves.push(i);this.currentPoint.set(n,r);return this}bezierCurveTo(e,t,n,r,i,s){const a=new CubicBezierCurve(this.currentPoint.clone(),new Vector2(e,t),new Vector2(n,r),new Vector2(i,s));this.curves.push(a);this.currentPoint.set(i,s);return this}splineThru(e){const t=[this.currentPoint.clone()].concat(e);const n=new SplineCurve(t);this.curves.push(n);this.currentPoint.copy(e[e.length-1]);return this}arc(e,t,n,r,i,s){const a=this.currentPoint.x;const o=this.currentPoint.y;this.absarc(e+a,t+o,n,r,i,s);return this}absarc(e,t,n,r,i,s){this.absellipse(e,t,n,n,r,i,s);return this}ellipse(e,t,n,r,i,s,a,o){const l=this.currentPoint.x;const c=this.currentPoint.y;this.absellipse(e+l,t+c,n,r,i,s,a,o);return this}absellipse(e,t,n,r,i,s,a,o){const l=new EllipseCurve(e,t,n,r,i,s,a,o);if(this.curves.length>0){const e=l.getPoint(0);e.equals(this.currentPoint)||this.lineTo(e.x,e.y)}this.curves.push(l);const c=l.getPoint(1);this.currentPoint.copy(c);return this}copy(e){super.copy(e);this.currentPoint.copy(e.currentPoint);return this}toJSON(){const e=super.toJSON();e.currentPoint=this.currentPoint.toArray();return e}fromJSON(e){super.fromJSON(e);this.currentPoint.fromArray(e.currentPoint);return this}}class Shape extends Path{constructor(e){super(e);this.uuid=generateUUID();this.type=\"Shape\";this.holes=[]}getPointsHoles(e){const t=[];for(let n=0,r=this.holes.length;n<r;n++)t[n]=this.holes[n].getPoints(e);return t}extractPoints(e){return{shape:this.getPoints(e),holes:this.getPointsHoles(e)}}copy(e){super.copy(e);this.holes=[];for(let t=0,n=e.holes.length;t<n;t++){const n=e.holes[t];this.holes.push(n.clone())}return this}toJSON(){const e=super.toJSON();e.uuid=this.uuid;e.holes=[];for(let t=0,n=this.holes.length;t<n;t++){const n=this.holes[t];e.holes.push(n.toJSON())}return e}fromJSON(e){super.fromJSON(e);this.uuid=e.uuid;this.holes=[];for(let t=0,n=e.holes.length;t<n;t++){const n=e.holes[t];this.holes.push((new Path).fromJSON(n))}return this}}const Cl={triangulate:function(e,t,n=2){const r=t&&t.length;const i=r?t[0]*n:e.length;let s=linkedList(e,0,i,n,true);const a=[];if(!s||s.next===s.prev)return a;let o,l,c,u,h,d,p;r&&(s=eliminateHoles(e,t,s,n));if(e.length>80*n){o=c=e[0];l=u=e[1];for(let t=n;t<i;t+=n){h=e[t];d=e[t+1];h<o&&(o=h);d<l&&(l=d);h>c&&(c=h);d>u&&(u=d)}p=Math.max(c-o,u-l);p=0!==p?1/p:0}earcutLinked(s,a,n,o,l,p);return a}};function linkedList(e,t,n,r,i){let s,a;if(i===signedArea(e,t,n,r)>0)for(s=t;s<n;s+=r)a=insertNode(s,e[s],e[s+1],a);else for(s=n-r;s>=t;s-=r)a=insertNode(s,e[s],e[s+1],a);if(a&&equals(a,a.next)){removeNode(a);a=a.next}return a}function filterPoints(e,t){if(!e)return e;t||(t=e);let n,r=e;do{n=false;if(r.steiner||!equals(r,r.next)&&0!==area(r.prev,r,r.next))r=r.next;else{removeNode(r);r=t=r.prev;if(r===r.next)break;n=true}}while(n||r!==t);return t}function earcutLinked(e,t,n,r,i,s,a){if(!e)return;!a&&s&&indexCurve(e,r,i,s);let o,l,c=e;while(e.prev!==e.next){o=e.prev;l=e.next;if(s?isEarHashed(e,r,i,s):isEar(e)){t.push(o.i/n);t.push(e.i/n);t.push(l.i/n);removeNode(e);e=l.next;c=l.next}else{e=l;if(e===c){if(a)if(1===a){e=cureLocalIntersections(filterPoints(e),t,n);earcutLinked(e,t,n,r,i,s,2)}else 2===a&&splitEarcut(e,t,n,r,i,s);else earcutLinked(filterPoints(e),t,n,r,i,s,1);break}}}}function isEar(e){const t=e.prev,n=e,r=e.next;if(area(t,n,r)>=0)return false;let i=e.next.next;while(i!==e.prev){if(pointInTriangle(t.x,t.y,n.x,n.y,r.x,r.y,i.x,i.y)&&area(i.prev,i,i.next)>=0)return false;i=i.next}return true}function isEarHashed(e,t,n,r){const i=e.prev,s=e,a=e.next;if(area(i,s,a)>=0)return false;const o=i.x<s.x?i.x<a.x?i.x:a.x:s.x<a.x?s.x:a.x,l=i.y<s.y?i.y<a.y?i.y:a.y:s.y<a.y?s.y:a.y,c=i.x>s.x?i.x>a.x?i.x:a.x:s.x>a.x?s.x:a.x,u=i.y>s.y?i.y>a.y?i.y:a.y:s.y>a.y?s.y:a.y;const h=zOrder(o,l,t,n,r),d=zOrder(c,u,t,n,r);let p=e.prevZ,f=e.nextZ;while(p&&p.z>=h&&f&&f.z<=d){if(p!==e.prev&&p!==e.next&&pointInTriangle(i.x,i.y,s.x,s.y,a.x,a.y,p.x,p.y)&&area(p.prev,p,p.next)>=0)return false;p=p.prevZ;if(f!==e.prev&&f!==e.next&&pointInTriangle(i.x,i.y,s.x,s.y,a.x,a.y,f.x,f.y)&&area(f.prev,f,f.next)>=0)return false;f=f.nextZ}while(p&&p.z>=h){if(p!==e.prev&&p!==e.next&&pointInTriangle(i.x,i.y,s.x,s.y,a.x,a.y,p.x,p.y)&&area(p.prev,p,p.next)>=0)return false;p=p.prevZ}while(f&&f.z<=d){if(f!==e.prev&&f!==e.next&&pointInTriangle(i.x,i.y,s.x,s.y,a.x,a.y,f.x,f.y)&&area(f.prev,f,f.next)>=0)return false;f=f.nextZ}return true}function cureLocalIntersections(e,t,n){let r=e;do{const i=r.prev,s=r.next.next;if(!equals(i,s)&&intersects(i,r,r.next,s)&&locallyInside(i,s)&&locallyInside(s,i)){t.push(i.i/n);t.push(r.i/n);t.push(s.i/n);removeNode(r);removeNode(r.next);r=e=s}r=r.next}while(r!==e);return filterPoints(r)}function splitEarcut(e,t,n,r,i,s){let a=e;do{let e=a.next.next;while(e!==a.prev){if(a.i!==e.i&&isValidDiagonal(a,e)){let o=splitPolygon(a,e);a=filterPoints(a,a.next);o=filterPoints(o,o.next);earcutLinked(a,t,n,r,i,s);earcutLinked(o,t,n,r,i,s);return}e=e.next}a=a.next}while(a!==e)}function eliminateHoles(e,t,n,r){const i=[];let s,a,o,l,c;for(s=0,a=t.length;s<a;s++){o=t[s]*r;l=s<a-1?t[s+1]*r:e.length;c=linkedList(e,o,l,r,false);c===c.next&&(c.steiner=true);i.push(getLeftmost(c))}i.sort(compareX);for(s=0;s<i.length;s++){eliminateHole(i[s],n);n=filterPoints(n,n.next)}return n}function compareX(e,t){return e.x-t.x}function eliminateHole(e,t){t=findHoleBridge(e,t);if(t){const n=splitPolygon(t,e);filterPoints(t,t.next);filterPoints(n,n.next)}}function findHoleBridge(e,t){let n=t;const r=e.x;const i=e.y;let s,a=-Infinity;do{if(i<=n.y&&i>=n.next.y&&n.next.y!==n.y){const e=n.x+(i-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(e<=r&&e>a){a=e;if(e===r){if(i===n.y)return n;if(i===n.next.y)return n.next}s=n.x<n.next.x?n:n.next}}n=n.next}while(n!==t);if(!s)return null;if(r===a)return s;const o=s,l=s.x,c=s.y;let u,h=Infinity;n=s;do{if(r>=n.x&&n.x>=l&&r!==n.x&&pointInTriangle(i<c?r:a,i,l,c,i<c?a:r,i,n.x,n.y)){u=Math.abs(i-n.y)/(r-n.x);if(locallyInside(n,e)&&(u<h||u===h&&(n.x>s.x||n.x===s.x&&sectorContainsSector(s,n)))){s=n;h=u}}n=n.next}while(n!==o);return s}function sectorContainsSector(e,t){return area(e.prev,e,t.prev)<0&&area(t.next,e,e.next)<0}function indexCurve(e,t,n,r){let i=e;do{null===i.z&&(i.z=zOrder(i.x,i.y,t,n,r));i.prevZ=i.prev;i.nextZ=i.next;i=i.next}while(i!==e);i.prevZ.nextZ=null;i.prevZ=null;sortLinked(i)}function sortLinked(e){let t,n,r,i,s,a,o,l,c=1;do{n=e;e=null;s=null;a=0;while(n){a++;r=n;o=0;for(t=0;t<c;t++){o++;r=r.nextZ;if(!r)break}l=c;while(o>0||l>0&&r){if(0!==o&&(0===l||!r||n.z<=r.z)){i=n;n=n.nextZ;o--}else{i=r;r=r.nextZ;l--}s?s.nextZ=i:e=i;i.prevZ=s;s=i}n=r}s.nextZ=null;c*=2}while(a>1);return e}function zOrder(e,t,n,r,i){e=32767*(e-n)*i;t=32767*(t-r)*i;e=16711935&(e|e<<8);e=252645135&(e|e<<4);e=858993459&(e|e<<2);e=1431655765&(e|e<<1);t=16711935&(t|t<<8);t=252645135&(t|t<<4);t=858993459&(t|t<<2);t=1431655765&(t|t<<1);return e|t<<1}function getLeftmost(e){let t=e,n=e;do{(t.x<n.x||t.x===n.x&&t.y<n.y)&&(n=t);t=t.next}while(t!==e);return n}function pointInTriangle(e,t,n,r,i,s,a,o){return(i-a)*(t-o)-(e-a)*(s-o)>=0&&(e-a)*(r-o)-(n-a)*(t-o)>=0&&(n-a)*(s-o)-(i-a)*(r-o)>=0}function isValidDiagonal(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!intersectsPolygon(e,t)&&(locallyInside(e,t)&&locallyInside(t,e)&&middleInside(e,t)&&(area(e.prev,e,t.prev)||area(e,t.prev,t))||equals(e,t)&&area(e.prev,e,e.next)>0&&area(t.prev,t,t.next)>0)}function area(e,t,n){return(t.y-e.y)*(n.x-t.x)-(t.x-e.x)*(n.y-t.y)}function equals(e,t){return e.x===t.x&&e.y===t.y}function intersects(e,t,n,r){const i=sign(area(e,t,n));const s=sign(area(e,t,r));const a=sign(area(n,r,e));const o=sign(area(n,r,t));return i!==s&&a!==o||(!(0!==i||!onSegment(e,n,t))||(!(0!==s||!onSegment(e,r,t))||(!(0!==a||!onSegment(n,e,r))||!(0!==o||!onSegment(n,t,r)))))}function onSegment(e,t,n){return t.x<=Math.max(e.x,n.x)&&t.x>=Math.min(e.x,n.x)&&t.y<=Math.max(e.y,n.y)&&t.y>=Math.min(e.y,n.y)}function sign(e){return e>0?1:e<0?-1:0}function intersectsPolygon(e,t){let n=e;do{if(n.i!==e.i&&n.next.i!==e.i&&n.i!==t.i&&n.next.i!==t.i&&intersects(n,n.next,e,t))return true;n=n.next}while(n!==e);return false}function locallyInside(e,t){return area(e.prev,e,e.next)<0?area(e,t,e.next)>=0&&area(e,e.prev,t)>=0:area(e,t,e.prev)<0||area(e,e.next,t)<0}function middleInside(e,t){let n=e,r=false;const i=(e.x+t.x)/2,s=(e.y+t.y)/2;do{n.y>s!==n.next.y>s&&n.next.y!==n.y&&i<(n.next.x-n.x)*(s-n.y)/(n.next.y-n.y)+n.x&&(r=!r);n=n.next}while(n!==e);return r}function splitPolygon(e,t){const n=new Node(e.i,e.x,e.y),r=new Node(t.i,t.x,t.y),i=e.next,s=t.prev;e.next=t;t.prev=e;n.next=i;i.prev=n;r.next=n;n.prev=r;s.next=r;r.prev=s;return r}function insertNode(e,t,n,r){const i=new Node(e,t,n);if(r){i.next=r.next;i.prev=r;r.next.prev=i;r.next=i}else{i.prev=i;i.next=i}return i}function removeNode(e){e.next.prev=e.prev;e.prev.next=e.next;e.prevZ&&(e.prevZ.nextZ=e.nextZ);e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function Node(e,t,n){this.i=e;this.x=t;this.y=n;this.prev=null;this.next=null;this.z=null;this.prevZ=null;this.nextZ=null;this.steiner=false}function signedArea(e,t,n,r){let i=0;for(let s=t,a=n-r;s<n;s+=r){i+=(e[a]-e[s])*(e[s+1]+e[a+1]);a=s}return i}class ShapeUtils{static area(e){const t=e.length;let n=0;for(let r=t-1,i=0;i<t;r=i++)n+=e[r].x*e[i].y-e[i].x*e[r].y;return.5*n}static isClockWise(e){return ShapeUtils.area(e)<0}static triangulateShape(e,t){const n=[];const r=[];const i=[];removeDupEndPts(e);addContour(n,e);let s=e.length;t.forEach(removeDupEndPts);for(let e=0;e<t.length;e++){r.push(s);s+=t[e].length;addContour(n,t[e])}const a=Cl.triangulate(n,r);for(let e=0;e<a.length;e+=3)i.push(a.slice(e,e+3));return i}}function removeDupEndPts(e){const t=e.length;t>2&&e[t-1].equals(e[0])&&e.pop()}function addContour(e,t){for(let n=0;n<t.length;n++){e.push(t[n].x);e.push(t[n].y)}}class ExtrudeGeometry extends BufferGeometry{constructor(e=new Shape([new Vector2(.5,.5),new Vector2(-.5,.5),new Vector2(-.5,-.5),new Vector2(.5,-.5)]),t={}){super();this.type=\"ExtrudeGeometry\";this.parameters={shapes:e,options:t};e=Array.isArray(e)?e:[e];const n=this;const r=[];const i=[];for(let t=0,n=e.length;t<n;t++){const n=e[t];addShape(n)}this.setAttribute(\"position\",new Float32BufferAttribute(r,3));this.setAttribute(\"uv\",new Float32BufferAttribute(i,2));this.computeVertexNormals();function addShape(e){const s=[];const a=void 0!==t.curveSegments?t.curveSegments:12;const o=void 0!==t.steps?t.steps:1;let l=void 0!==t.depth?t.depth:1;let c=void 0===t.bevelEnabled||t.bevelEnabled;let u=void 0!==t.bevelThickness?t.bevelThickness:.2;let h=void 0!==t.bevelSize?t.bevelSize:u-.1;let d=void 0!==t.bevelOffset?t.bevelOffset:0;let p=void 0!==t.bevelSegments?t.bevelSegments:3;const f=t.extrudePath;const m=void 0!==t.UVGenerator?t.UVGenerator:Rl;if(void 0!==t.amount){console.warn(\"THREE.ExtrudeBufferGeometry: amount has been renamed to depth.\");l=t.amount}let g,y=false;let x,b,_,M;if(f){g=f.getSpacedPoints(o);y=true;c=false;x=f.computeFrenetFrames(o,false);b=new Vector3;_=new Vector3;M=new Vector3}if(!c){p=0;u=0;h=0;d=0}const w=e.extractPoints(a);let S=w.shape;const T=w.holes;const E=!ShapeUtils.isClockWise(S);if(E){S=S.reverse();for(let e=0,t=T.length;e<t;e++){const t=T[e];ShapeUtils.isClockWise(t)&&(T[e]=t.reverse())}}const A=ShapeUtils.triangulateShape(S,T);const L=S;for(let e=0,t=T.length;e<t;e++){const t=T[e];S=S.concat(t)}function scalePt2(e,t,n){t||console.error(\"THREE.ExtrudeGeometry: vec does not exist\");return t.clone().multiplyScalar(n).add(e)}const C=S.length,R=A.length;function getBevelVec(e,t,n){let r,i,s;const a=e.x-t.x,o=e.y-t.y;const l=n.x-e.x,c=n.y-e.y;const u=a*a+o*o;const h=a*c-o*l;if(Math.abs(h)>Number.EPSILON){const h=Math.sqrt(u);const d=Math.sqrt(l*l+c*c);const p=t.x-o/h;const f=t.y+a/h;const m=n.x-c/d;const g=n.y+l/d;const y=((m-p)*c-(g-f)*l)/(a*c-o*l);r=p+a*y-e.x;i=f+o*y-e.y;const x=r*r+i*i;if(x<=2)return new Vector2(r,i);s=Math.sqrt(x/2)}else{let e=false;a>Number.EPSILON?l>Number.EPSILON&&(e=true):a<-Number.EPSILON?l<-Number.EPSILON&&(e=true):Math.sign(o)===Math.sign(c)&&(e=true);if(e){r=-o;i=a;s=Math.sqrt(u)}else{r=a;i=o;s=Math.sqrt(u/2)}}return new Vector2(r/s,i/s)}const P=[];for(let e=0,t=L.length,n=t-1,r=e+1;e<t;e++,n++,r++){n===t&&(n=0);r===t&&(r=0);P[e]=getBevelVec(L[e],L[n],L[r])}const I=[];let D,B=P.concat();for(let e=0,t=T.length;e<t;e++){const t=T[e];D=[];for(let e=0,n=t.length,r=n-1,i=e+1;e<n;e++,r++,i++){r===n&&(r=0);i===n&&(i=0);D[e]=getBevelVec(t[e],t[r],t[i])}I.push(D);B=B.concat(D)}for(let e=0;e<p;e++){const t=e/p;const n=u*Math.cos(t*Math.PI/2);const r=h*Math.sin(t*Math.PI/2)+d;for(let e=0,t=L.length;e<t;e++){const t=scalePt2(L[e],P[e],r);v(t.x,t.y,-n)}for(let e=0,t=T.length;e<t;e++){const t=T[e];D=I[e];for(let e=0,i=t.length;e<i;e++){const i=scalePt2(t[e],D[e],r);v(i.x,i.y,-n)}}}const V=h+d;for(let e=0;e<C;e++){const t=c?scalePt2(S[e],B[e],V):S[e];if(y){_.copy(x.normals[0]).multiplyScalar(t.x);b.copy(x.binormals[0]).multiplyScalar(t.y);M.copy(g[0]).add(_).add(b);v(M.x,M.y,M.z)}else v(t.x,t.y,0)}for(let e=1;e<=o;e++)for(let t=0;t<C;t++){const n=c?scalePt2(S[t],B[t],V):S[t];if(y){_.copy(x.normals[e]).multiplyScalar(n.x);b.copy(x.binormals[e]).multiplyScalar(n.y);M.copy(g[e]).add(_).add(b);v(M.x,M.y,M.z)}else v(n.x,n.y,l/o*e)}for(let e=p-1;e>=0;e--){const t=e/p;const n=u*Math.cos(t*Math.PI/2);const r=h*Math.sin(t*Math.PI/2)+d;for(let e=0,t=L.length;e<t;e++){const t=scalePt2(L[e],P[e],r);v(t.x,t.y,l+n)}for(let e=0,t=T.length;e<t;e++){const t=T[e];D=I[e];for(let e=0,i=t.length;e<i;e++){const i=scalePt2(t[e],D[e],r);y?v(i.x,i.y+g[o-1].y,g[o-1].x+n):v(i.x,i.y,l+n)}}}buildLidFaces();buildSideFaces();function buildLidFaces(){const e=r.length/3;if(c){let e=0;let t=C*e;for(let e=0;e<R;e++){const n=A[e];f3(n[2]+t,n[1]+t,n[0]+t)}e=o+2*p;t=C*e;for(let e=0;e<R;e++){const n=A[e];f3(n[0]+t,n[1]+t,n[2]+t)}}else{for(let e=0;e<R;e++){const t=A[e];f3(t[2],t[1],t[0])}for(let e=0;e<R;e++){const t=A[e];f3(t[0]+C*o,t[1]+C*o,t[2]+C*o)}}n.addGroup(e,r.length/3-e,0)}function buildSideFaces(){const e=r.length/3;let t=0;sidewalls(L,t);t+=L.length;for(let e=0,n=T.length;e<n;e++){const n=T[e];sidewalls(n,t);t+=n.length}n.addGroup(e,r.length/3-e,1)}function sidewalls(e,t){let n=e.length;while(--n>=0){const r=n;let i=n-1;i<0&&(i=e.length-1);for(let e=0,n=o+2*p;e<n;e++){const n=C*e;const s=C*(e+1);const a=t+r+n,o=t+i+n,l=t+i+s,c=t+r+s;f4(a,o,l,c)}}}function v(e,t,n){s.push(e);s.push(t);s.push(n)}function f3(e,t,i){addVertex(e);addVertex(t);addVertex(i);const s=r.length/3;const a=m.generateTopUV(n,r,s-3,s-2,s-1);addUV(a[0]);addUV(a[1]);addUV(a[2])}function f4(e,t,i,s){addVertex(e);addVertex(t);addVertex(s);addVertex(t);addVertex(i);addVertex(s);const a=r.length/3;const o=m.generateSideWallUV(n,r,a-6,a-3,a-2,a-1);addUV(o[0]);addUV(o[1]);addUV(o[3]);addUV(o[1]);addUV(o[2]);addUV(o[3])}function addVertex(e){r.push(s[3*e+0]);r.push(s[3*e+1]);r.push(s[3*e+2])}function addUV(e){i.push(e.x);i.push(e.y)}}}toJSON(){const e=super.toJSON();const t=this.parameters.shapes;const n=this.parameters.options;return toJSON$1(t,n,e)}static fromJSON(e,t){const n=[];for(let r=0,i=e.shapes.length;r<i;r++){const i=t[e.shapes[r]];n.push(i)}const r=e.options.extrudePath;void 0!==r&&(e.options.extrudePath=(new Ll[r.type]).fromJSON(r));return new ExtrudeGeometry(n,e.options)}}const Rl={generateTopUV:function(e,t,n,r,i){const s=t[3*n];const a=t[3*n+1];const o=t[3*r];const l=t[3*r+1];const c=t[3*i];const u=t[3*i+1];return[new Vector2(s,a),new Vector2(o,l),new Vector2(c,u)]},generateSideWallUV:function(e,t,n,r,i,s){const a=t[3*n];const o=t[3*n+1];const l=t[3*n+2];const c=t[3*r];const u=t[3*r+1];const h=t[3*r+2];const d=t[3*i];const p=t[3*i+1];const f=t[3*i+2];const m=t[3*s];const g=t[3*s+1];const y=t[3*s+2];return Math.abs(o-u)<Math.abs(a-c)?[new Vector2(a,1-l),new Vector2(c,1-h),new Vector2(d,1-f),new Vector2(m,1-y)]:[new Vector2(o,1-l),new Vector2(u,1-h),new Vector2(p,1-f),new Vector2(g,1-y)]}};function toJSON$1(e,t,n){n.shapes=[];if(Array.isArray(e))for(let t=0,r=e.length;t<r;t++){const r=e[t];n.shapes.push(r.uuid)}else n.shapes.push(e.uuid);void 0!==t.extrudePath&&(n.options.extrudePath=t.extrudePath.toJSON());return n}class IcosahedronGeometry extends PolyhedronGeometry{constructor(e=1,t=0){const n=(1+Math.sqrt(5))/2;const r=[-1,n,0,1,n,0,-1,-n,0,1,-n,0,0,-1,n,0,1,n,0,-1,-n,0,1,-n,n,0,-1,n,0,1,-n,0,-1,-n,0,1];const i=[0,11,5,0,5,1,0,1,7,0,7,10,0,10,11,1,5,9,5,11,4,11,10,2,10,7,6,7,1,8,3,9,4,3,4,2,3,2,6,3,6,8,3,8,9,4,9,5,2,4,11,6,2,10,8,6,7,9,8,1];super(r,i,e,t);this.type=\"IcosahedronGeometry\";this.parameters={radius:e,detail:t}}static fromJSON(e){return new IcosahedronGeometry(e.radius,e.detail)}}class LatheGeometry extends BufferGeometry{constructor(e=[new Vector2(0,.5),new Vector2(.5,0),new Vector2(0,-.5)],t=12,n=0,r=2*Math.PI){super();this.type=\"LatheGeometry\";this.parameters={points:e,segments:t,phiStart:n,phiLength:r};t=Math.floor(t);r=clamp(r,0,2*Math.PI);const i=[];const s=[];const a=[];const o=[];const l=[];const c=1/t;const u=new Vector3;const h=new Vector2;const d=new Vector3;const p=new Vector3;const f=new Vector3;let m=0;let g=0;for(let t=0;t<=e.length-1;t++)switch(t){case 0:m=e[t+1].x-e[t].x;g=e[t+1].y-e[t].y;d.x=1*g;d.y=-m;d.z=0*g;f.copy(d);d.normalize();o.push(d.x,d.y,d.z);break;case e.length-1:o.push(f.x,f.y,f.z);break;default:m=e[t+1].x-e[t].x;g=e[t+1].y-e[t].y;d.x=1*g;d.y=-m;d.z=0*g;p.copy(d);d.x+=f.x;d.y+=f.y;d.z+=f.z;d.normalize();o.push(d.x,d.y,d.z);f.copy(p)}for(let i=0;i<=t;i++){const d=n+i*c*r;const p=Math.sin(d);const f=Math.cos(d);for(let n=0;n<=e.length-1;n++){u.x=e[n].x*p;u.y=e[n].y;u.z=e[n].x*f;s.push(u.x,u.y,u.z);h.x=i/t;h.y=n/(e.length-1);a.push(h.x,h.y);const r=o[3*n+0]*p;const c=o[3*n+1];const d=o[3*n+0]*f;l.push(r,c,d)}}for(let n=0;n<t;n++)for(let t=0;t<e.length-1;t++){const r=t+n*e.length;const s=r;const a=r+e.length;const o=r+e.length+1;const l=r+1;i.push(s,a,l);i.push(a,o,l)}this.setIndex(i);this.setAttribute(\"position\",new Float32BufferAttribute(s,3));this.setAttribute(\"uv\",new Float32BufferAttribute(a,2));this.setAttribute(\"normal\",new Float32BufferAttribute(l,3))}static fromJSON(e){return new LatheGeometry(e.points,e.segments,e.phiStart,e.phiLength)}}class OctahedronGeometry extends PolyhedronGeometry{constructor(e=1,t=0){const n=[1,0,0,-1,0,0,0,1,0,0,-1,0,0,0,1,0,0,-1];const r=[0,2,4,0,4,3,0,3,5,0,5,2,1,2,5,1,5,3,1,3,4,1,4,2];super(n,r,e,t);this.type=\"OctahedronGeometry\";this.parameters={radius:e,detail:t}}static fromJSON(e){return new OctahedronGeometry(e.radius,e.detail)}}class RingGeometry extends BufferGeometry{constructor(e=.5,t=1,n=8,r=1,i=0,s=2*Math.PI){super();this.type=\"RingGeometry\";this.parameters={innerRadius:e,outerRadius:t,thetaSegments:n,phiSegments:r,thetaStart:i,thetaLength:s};n=Math.max(3,n);r=Math.max(1,r);const a=[];const o=[];const l=[];const c=[];let u=e;const h=(t-e)/r;const d=new Vector3;const p=new Vector2;for(let e=0;e<=r;e++){for(let e=0;e<=n;e++){const r=i+e/n*s;d.x=u*Math.cos(r);d.y=u*Math.sin(r);o.push(d.x,d.y,d.z);l.push(0,0,1);p.x=(d.x/t+1)/2;p.y=(d.y/t+1)/2;c.push(p.x,p.y)}u+=h}for(let e=0;e<r;e++){const t=e*(n+1);for(let e=0;e<n;e++){const r=e+t;const i=r;const s=r+n+1;const o=r+n+2;const l=r+1;a.push(i,s,l);a.push(s,o,l)}}this.setIndex(a);this.setAttribute(\"position\",new Float32BufferAttribute(o,3));this.setAttribute(\"normal\",new Float32BufferAttribute(l,3));this.setAttribute(\"uv\",new Float32BufferAttribute(c,2))}static fromJSON(e){return new RingGeometry(e.innerRadius,e.outerRadius,e.thetaSegments,e.phiSegments,e.thetaStart,e.thetaLength)}}class ShapeGeometry extends BufferGeometry{constructor(e=new Shape([new Vector2(0,.5),new Vector2(-.5,-.5),new Vector2(.5,-.5)]),t=12){super();this.type=\"ShapeGeometry\";this.parameters={shapes:e,curveSegments:t};const n=[];const r=[];const i=[];const s=[];let a=0;let o=0;if(false===Array.isArray(e))addShape(e);else for(let t=0;t<e.length;t++){addShape(e[t]);this.addGroup(a,o,t);a+=o;o=0}this.setIndex(n);this.setAttribute(\"position\",new Float32BufferAttribute(r,3));this.setAttribute(\"normal\",new Float32BufferAttribute(i,3));this.setAttribute(\"uv\",new Float32BufferAttribute(s,2));function addShape(e){const a=r.length/3;const l=e.extractPoints(t);let c=l.shape;const u=l.holes;false===ShapeUtils.isClockWise(c)&&(c=c.reverse());for(let e=0,t=u.length;e<t;e++){const t=u[e];true===ShapeUtils.isClockWise(t)&&(u[e]=t.reverse())}const h=ShapeUtils.triangulateShape(c,u);for(let e=0,t=u.length;e<t;e++){const t=u[e];c=c.concat(t)}for(let e=0,t=c.length;e<t;e++){const t=c[e];r.push(t.x,t.y,0);i.push(0,0,1);s.push(t.x,t.y)}for(let e=0,t=h.length;e<t;e++){const t=h[e];const r=t[0]+a;const i=t[1]+a;const s=t[2]+a;n.push(r,i,s);o+=3}}}toJSON(){const e=super.toJSON();const t=this.parameters.shapes;return toJSON(t,e)}static fromJSON(e,t){const n=[];for(let r=0,i=e.shapes.length;r<i;r++){const i=t[e.shapes[r]];n.push(i)}return new ShapeGeometry(n,e.curveSegments)}}function toJSON(e,t){t.shapes=[];if(Array.isArray(e))for(let n=0,r=e.length;n<r;n++){const r=e[n];t.shapes.push(r.uuid)}else t.shapes.push(e.uuid);return t}class SphereGeometry extends BufferGeometry{constructor(e=1,t=32,n=16,r=0,i=2*Math.PI,s=0,a=Math.PI){super();this.type=\"SphereGeometry\";this.parameters={radius:e,widthSegments:t,heightSegments:n,phiStart:r,phiLength:i,thetaStart:s,thetaLength:a};t=Math.max(3,Math.floor(t));n=Math.max(2,Math.floor(n));const o=Math.min(s+a,Math.PI);let l=0;const c=[];const u=new Vector3;const h=new Vector3;const d=[];const p=[];const f=[];const m=[];for(let d=0;d<=n;d++){const g=[];const y=d/n;let x=0;0==d&&0==s?x=.5/t:d==n&&o==Math.PI&&(x=-.5/t);for(let n=0;n<=t;n++){const o=n/t;u.x=-e*Math.cos(r+o*i)*Math.sin(s+y*a);u.y=e*Math.cos(s+y*a);u.z=e*Math.sin(r+o*i)*Math.sin(s+y*a);p.push(u.x,u.y,u.z);h.copy(u).normalize();f.push(h.x,h.y,h.z);m.push(o+x,1-y);g.push(l++)}c.push(g)}for(let e=0;e<n;e++)for(let r=0;r<t;r++){const t=c[e][r+1];const i=c[e][r];const a=c[e+1][r];const l=c[e+1][r+1];(0!==e||s>0)&&d.push(t,i,l);(e!==n-1||o<Math.PI)&&d.push(i,a,l)}this.setIndex(d);this.setAttribute(\"position\",new Float32BufferAttribute(p,3));this.setAttribute(\"normal\",new Float32BufferAttribute(f,3));this.setAttribute(\"uv\",new Float32BufferAttribute(m,2))}static fromJSON(e){return new SphereGeometry(e.radius,e.widthSegments,e.heightSegments,e.phiStart,e.phiLength,e.thetaStart,e.thetaLength)}}class TetrahedronGeometry extends PolyhedronGeometry{constructor(e=1,t=0){const n=[1,1,1,-1,-1,1,-1,1,-1,1,-1,-1];const r=[2,1,0,0,3,2,1,3,0,2,3,1];super(n,r,e,t);this.type=\"TetrahedronGeometry\";this.parameters={radius:e,detail:t}}static fromJSON(e){return new TetrahedronGeometry(e.radius,e.detail)}}class TorusGeometry extends BufferGeometry{constructor(e=1,t=.4,n=8,r=6,i=2*Math.PI){super();this.type=\"TorusGeometry\";this.parameters={radius:e,tube:t,radialSegments:n,tubularSegments:r,arc:i};n=Math.floor(n);r=Math.floor(r);const s=[];const a=[];const o=[];const l=[];const c=new Vector3;const u=new Vector3;const h=new Vector3;for(let s=0;s<=n;s++)for(let d=0;d<=r;d++){const p=d/r*i;const f=s/n*Math.PI*2;u.x=(e+t*Math.cos(f))*Math.cos(p);u.y=(e+t*Math.cos(f))*Math.sin(p);u.z=t*Math.sin(f);a.push(u.x,u.y,u.z);c.x=e*Math.cos(p);c.y=e*Math.sin(p);h.subVectors(u,c).normalize();o.push(h.x,h.y,h.z);l.push(d/r);l.push(s/n)}for(let e=1;e<=n;e++)for(let t=1;t<=r;t++){const n=(r+1)*e+t-1;const i=(r+1)*(e-1)+t-1;const a=(r+1)*(e-1)+t;const o=(r+1)*e+t;s.push(n,i,o);s.push(i,a,o)}this.setIndex(s);this.setAttribute(\"position\",new Float32BufferAttribute(a,3));this.setAttribute(\"normal\",new Float32BufferAttribute(o,3));this.setAttribute(\"uv\",new Float32BufferAttribute(l,2))}static fromJSON(e){return new TorusGeometry(e.radius,e.tube,e.radialSegments,e.tubularSegments,e.arc)}}class TorusKnotGeometry extends BufferGeometry{constructor(e=1,t=.4,n=64,r=8,i=2,s=3){super();this.type=\"TorusKnotGeometry\";this.parameters={radius:e,tube:t,tubularSegments:n,radialSegments:r,p:i,q:s};n=Math.floor(n);r=Math.floor(r);const a=[];const o=[];const l=[];const c=[];const u=new Vector3;const h=new Vector3;const d=new Vector3;const p=new Vector3;const f=new Vector3;const m=new Vector3;const g=new Vector3;for(let a=0;a<=n;++a){const y=a/n*i*Math.PI*2;calculatePositionOnCurve(y,i,s,e,d);calculatePositionOnCurve(y+.01,i,s,e,p);m.subVectors(p,d);g.addVectors(p,d);f.crossVectors(m,g);g.crossVectors(f,m);f.normalize();g.normalize();for(let e=0;e<=r;++e){const i=e/r*Math.PI*2;const s=-t*Math.cos(i);const p=t*Math.sin(i);u.x=d.x+(s*g.x+p*f.x);u.y=d.y+(s*g.y+p*f.y);u.z=d.z+(s*g.z+p*f.z);o.push(u.x,u.y,u.z);h.subVectors(u,d).normalize();l.push(h.x,h.y,h.z);c.push(a/n);c.push(e/r)}}for(let e=1;e<=n;e++)for(let t=1;t<=r;t++){const n=(r+1)*(e-1)+(t-1);const i=(r+1)*e+(t-1);const s=(r+1)*e+t;const o=(r+1)*(e-1)+t;a.push(n,i,o);a.push(i,s,o)}this.setIndex(a);this.setAttribute(\"position\",new Float32BufferAttribute(o,3));this.setAttribute(\"normal\",new Float32BufferAttribute(l,3));this.setAttribute(\"uv\",new Float32BufferAttribute(c,2));function calculatePositionOnCurve(e,t,n,r,i){const s=Math.cos(e);const a=Math.sin(e);const o=n/t*e;const l=Math.cos(o);i.x=r*(2+l)*.5*s;i.y=r*(2+l)*a*.5;i.z=r*Math.sin(o)*.5}}static fromJSON(e){return new TorusKnotGeometry(e.radius,e.tube,e.tubularSegments,e.radialSegments,e.p,e.q)}}class TubeGeometry extends BufferGeometry{constructor(e=new QuadraticBezierCurve3(new Vector3(-1,-1,0),new Vector3(-1,1,0),new Vector3(1,1,0)),t=64,n=1,r=8,i=false){super();this.type=\"TubeGeometry\";this.parameters={path:e,tubularSegments:t,radius:n,radialSegments:r,closed:i};const s=e.computeFrenetFrames(t,i);this.tangents=s.tangents;this.normals=s.normals;this.binormals=s.binormals;const a=new Vector3;const o=new Vector3;const l=new Vector2;let c=new Vector3;const u=[];const h=[];const d=[];const p=[];generateBufferData();this.setIndex(p);this.setAttribute(\"position\",new Float32BufferAttribute(u,3));this.setAttribute(\"normal\",new Float32BufferAttribute(h,3));this.setAttribute(\"uv\",new Float32BufferAttribute(d,2));function generateBufferData(){for(let e=0;e<t;e++)generateSegment(e);generateSegment(false===i?t:0);generateUVs();generateIndices()}function generateSegment(i){c=e.getPointAt(i/t,c);const l=s.normals[i];const d=s.binormals[i];for(let e=0;e<=r;e++){const t=e/r*Math.PI*2;const i=Math.sin(t);const s=-Math.cos(t);o.x=s*l.x+i*d.x;o.y=s*l.y+i*d.y;o.z=s*l.z+i*d.z;o.normalize();h.push(o.x,o.y,o.z);a.x=c.x+n*o.x;a.y=c.y+n*o.y;a.z=c.z+n*o.z;u.push(a.x,a.y,a.z)}}function generateIndices(){for(let e=1;e<=t;e++)for(let t=1;t<=r;t++){const n=(r+1)*(e-1)+(t-1);const i=(r+1)*e+(t-1);const s=(r+1)*e+t;const a=(r+1)*(e-1)+t;p.push(n,i,a);p.push(i,s,a)}}function generateUVs(){for(let e=0;e<=t;e++)for(let n=0;n<=r;n++){l.x=e/t;l.y=n/r;d.push(l.x,l.y)}}}toJSON(){const e=super.toJSON();e.path=this.parameters.path.toJSON();return e}static fromJSON(e){return new TubeGeometry((new Ll[e.path.type]).fromJSON(e.path),e.tubularSegments,e.radius,e.radialSegments,e.closed)}}class WireframeGeometry extends BufferGeometry{constructor(e=null){super();this.type=\"WireframeGeometry\";this.parameters={geometry:e};if(null!==e){const t=[];const n=new Set;const r=new Vector3;const i=new Vector3;if(null!==e.index){const s=e.attributes.position;const a=e.index;let o=e.groups;0===o.length&&(o=[{start:0,count:a.count,materialIndex:0}]);for(let e=0,l=o.length;e<l;++e){const l=o[e];const c=l.start;const u=l.count;for(let e=c,o=c+u;e<o;e+=3)for(let o=0;o<3;o++){const l=a.getX(e+o);const c=a.getX(e+(o+1)%3);r.fromBufferAttribute(s,l);i.fromBufferAttribute(s,c);if(true===isUniqueEdge(r,i,n)){t.push(r.x,r.y,r.z);t.push(i.x,i.y,i.z)}}}}else{const s=e.attributes.position;for(let e=0,a=s.count/3;e<a;e++)for(let a=0;a<3;a++){const o=3*e+a;const l=3*e+(a+1)%3;r.fromBufferAttribute(s,o);i.fromBufferAttribute(s,l);if(true===isUniqueEdge(r,i,n)){t.push(r.x,r.y,r.z);t.push(i.x,i.y,i.z)}}}this.setAttribute(\"position\",new Float32BufferAttribute(t,3))}}}function isUniqueEdge(e,t,n){const r=`${e.x},${e.y},${e.z}-${t.x},${t.y},${t.z}`;const i=`${t.x},${t.y},${t.z}-${e.x},${e.y},${e.z}`;if(true===n.has(r)||true===n.has(i))return false;n.add(r,i);return true}var Pl=Object.freeze({__proto__:null,BoxGeometry:BoxGeometry,BoxBufferGeometry:BoxGeometry,CircleGeometry:CircleGeometry,CircleBufferGeometry:CircleGeometry,ConeGeometry:ConeGeometry,ConeBufferGeometry:ConeGeometry,CylinderGeometry:CylinderGeometry,CylinderBufferGeometry:CylinderGeometry,DodecahedronGeometry:DodecahedronGeometry,DodecahedronBufferGeometry:DodecahedronGeometry,EdgesGeometry:EdgesGeometry,ExtrudeGeometry:ExtrudeGeometry,ExtrudeBufferGeometry:ExtrudeGeometry,IcosahedronGeometry:IcosahedronGeometry,IcosahedronBufferGeometry:IcosahedronGeometry,LatheGeometry:LatheGeometry,LatheBufferGeometry:LatheGeometry,OctahedronGeometry:OctahedronGeometry,OctahedronBufferGeometry:OctahedronGeometry,PlaneGeometry:PlaneGeometry,PlaneBufferGeometry:PlaneGeometry,PolyhedronGeometry:PolyhedronGeometry,PolyhedronBufferGeometry:PolyhedronGeometry,RingGeometry:RingGeometry,RingBufferGeometry:RingGeometry,ShapeGeometry:ShapeGeometry,ShapeBufferGeometry:ShapeGeometry,SphereGeometry:SphereGeometry,SphereBufferGeometry:SphereGeometry,TetrahedronGeometry:TetrahedronGeometry,TetrahedronBufferGeometry:TetrahedronGeometry,TorusGeometry:TorusGeometry,TorusBufferGeometry:TorusGeometry,TorusKnotGeometry:TorusKnotGeometry,TorusKnotBufferGeometry:TorusKnotGeometry,TubeGeometry:TubeGeometry,TubeBufferGeometry:TubeGeometry,WireframeGeometry:WireframeGeometry});class ShadowMaterial extends Material{constructor(e){super();this.type=\"ShadowMaterial\";this.color=new Color(0);this.transparent=true;this.setValues(e)}copy(e){super.copy(e);this.color.copy(e.color);return this}}ShadowMaterial.prototype.isShadowMaterial=true;class MeshStandardMaterial extends Material{constructor(e){super();this.defines={STANDARD:\"\"};this.type=\"MeshStandardMaterial\";this.color=new Color(16777215);this.roughness=1;this.metalness=0;this.map=null;this.lightMap=null;this.lightMapIntensity=1;this.aoMap=null;this.aoMapIntensity=1;this.emissive=new Color(0);this.emissiveIntensity=1;this.emissiveMap=null;this.bumpMap=null;this.bumpScale=1;this.normalMap=null;this.normalMapType=Qt;this.normalScale=new Vector2(1,1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.roughnessMap=null;this.metalnessMap=null;this.alphaMap=null;this.envMap=null;this.envMapIntensity=1;this.refractionRatio=.98;this.wireframe=false;this.wireframeLinewidth=1;this.wireframeLinecap=\"round\";this.wireframeLinejoin=\"round\";this.flatShading=false;this.setValues(e)}copy(e){super.copy(e);this.defines={STANDARD:\"\"};this.color.copy(e.color);this.roughness=e.roughness;this.metalness=e.metalness;this.map=e.map;this.lightMap=e.lightMap;this.lightMapIntensity=e.lightMapIntensity;this.aoMap=e.aoMap;this.aoMapIntensity=e.aoMapIntensity;this.emissive.copy(e.emissive);this.emissiveMap=e.emissiveMap;this.emissiveIntensity=e.emissiveIntensity;this.bumpMap=e.bumpMap;this.bumpScale=e.bumpScale;this.normalMap=e.normalMap;this.normalMapType=e.normalMapType;this.normalScale.copy(e.normalScale);this.displacementMap=e.displacementMap;this.displacementScale=e.displacementScale;this.displacementBias=e.displacementBias;this.roughnessMap=e.roughnessMap;this.metalnessMap=e.metalnessMap;this.alphaMap=e.alphaMap;this.envMap=e.envMap;this.envMapIntensity=e.envMapIntensity;this.refractionRatio=e.refractionRatio;this.wireframe=e.wireframe;this.wireframeLinewidth=e.wireframeLinewidth;this.wireframeLinecap=e.wireframeLinecap;this.wireframeLinejoin=e.wireframeLinejoin;this.flatShading=e.flatShading;return this}}MeshStandardMaterial.prototype.isMeshStandardMaterial=true;class MeshPhysicalMaterial extends MeshStandardMaterial{constructor(e){super();this.defines={STANDARD:\"\",PHYSICAL:\"\"};this.type=\"MeshPhysicalMaterial\";this.clearcoatMap=null;this.clearcoatRoughness=0;this.clearcoatRoughnessMap=null;this.clearcoatNormalScale=new Vector2(1,1);this.clearcoatNormalMap=null;this.ior=1.5;Object.defineProperty(this,\"reflectivity\",{get:function(){return clamp(2.5*(this.ior-1)/(this.ior+1),0,1)},set:function(e){this.ior=(1+.4*e)/(1-.4*e)}});this.sheenColor=new Color(0);this.sheenColorMap=null;this.sheenRoughness=1;this.sheenRoughnessMap=null;this.transmissionMap=null;this.thickness=0;this.thicknessMap=null;this.attenuationDistance=0;this.attenuationColor=new Color(1,1,1);this.specularIntensity=1;this.specularIntensityMap=null;this.specularColor=new Color(1,1,1);this.specularColorMap=null;this._sheen=0;this._clearcoat=0;this._transmission=0;this.setValues(e)}get sheen(){return this._sheen}set sheen(e){this._sheen>0!==e>0&&this.version++;this._sheen=e}get clearcoat(){return this._clearcoat}set clearcoat(e){this._clearcoat>0!==e>0&&this.version++;this._clearcoat=e}get transmission(){return this._transmission}set transmission(e){this._transmission>0!==e>0&&this.version++;this._transmission=e}copy(e){super.copy(e);this.defines={STANDARD:\"\",PHYSICAL:\"\"};this.clearcoat=e.clearcoat;this.clearcoatMap=e.clearcoatMap;this.clearcoatRoughness=e.clearcoatRoughness;this.clearcoatRoughnessMap=e.clearcoatRoughnessMap;this.clearcoatNormalMap=e.clearcoatNormalMap;this.clearcoatNormalScale.copy(e.clearcoatNormalScale);this.ior=e.ior;this.sheen=e.sheen;this.sheenColor.copy(e.sheenColor);this.sheenColorMap=e.sheenColorMap;this.sheenRoughness=e.sheenRoughness;this.sheenRoughnessMap=e.sheenRoughnessMap;this.transmission=e.transmission;this.transmissionMap=e.transmissionMap;this.thickness=e.thickness;this.thicknessMap=e.thicknessMap;this.attenuationDistance=e.attenuationDistance;this.attenuationColor.copy(e.attenuationColor);this.specularIntensity=e.specularIntensity;this.specularIntensityMap=e.specularIntensityMap;this.specularColor.copy(e.specularColor);this.specularColorMap=e.specularColorMap;return this}}MeshPhysicalMaterial.prototype.isMeshPhysicalMaterial=true;class MeshPhongMaterial extends Material{constructor(e){super();this.type=\"MeshPhongMaterial\";this.color=new Color(16777215);this.specular=new Color(1118481);this.shininess=30;this.map=null;this.lightMap=null;this.lightMapIntensity=1;this.aoMap=null;this.aoMapIntensity=1;this.emissive=new Color(0);this.emissiveIntensity=1;this.emissiveMap=null;this.bumpMap=null;this.bumpScale=1;this.normalMap=null;this.normalMapType=Qt;this.normalScale=new Vector2(1,1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.specularMap=null;this.alphaMap=null;this.envMap=null;this.combine=X;this.reflectivity=1;this.refractionRatio=.98;this.wireframe=false;this.wireframeLinewidth=1;this.wireframeLinecap=\"round\";this.wireframeLinejoin=\"round\";this.flatShading=false;this.setValues(e)}copy(e){super.copy(e);this.color.copy(e.color);this.specular.copy(e.specular);this.shininess=e.shininess;this.map=e.map;this.lightMap=e.lightMap;this.lightMapIntensity=e.lightMapIntensity;this.aoMap=e.aoMap;this.aoMapIntensity=e.aoMapIntensity;this.emissive.copy(e.emissive);this.emissiveMap=e.emissiveMap;this.emissiveIntensity=e.emissiveIntensity;this.bumpMap=e.bumpMap;this.bumpScale=e.bumpScale;this.normalMap=e.normalMap;this.normalMapType=e.normalMapType;this.normalScale.copy(e.normalScale);this.displacementMap=e.displacementMap;this.displacementScale=e.displacementScale;this.displacementBias=e.displacementBias;this.specularMap=e.specularMap;this.alphaMap=e.alphaMap;this.envMap=e.envMap;this.combine=e.combine;this.reflectivity=e.reflectivity;this.refractionRatio=e.refractionRatio;this.wireframe=e.wireframe;this.wireframeLinewidth=e.wireframeLinewidth;this.wireframeLinecap=e.wireframeLinecap;this.wireframeLinejoin=e.wireframeLinejoin;this.flatShading=e.flatShading;return this}}MeshPhongMaterial.prototype.isMeshPhongMaterial=true;class MeshToonMaterial extends Material{constructor(e){super();this.defines={TOON:\"\"};this.type=\"MeshToonMaterial\";this.color=new Color(16777215);this.map=null;this.gradientMap=null;this.lightMap=null;this.lightMapIntensity=1;this.aoMap=null;this.aoMapIntensity=1;this.emissive=new Color(0);this.emissiveIntensity=1;this.emissiveMap=null;this.bumpMap=null;this.bumpScale=1;this.normalMap=null;this.normalMapType=Qt;this.normalScale=new Vector2(1,1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.alphaMap=null;this.wireframe=false;this.wireframeLinewidth=1;this.wireframeLinecap=\"round\";this.wireframeLinejoin=\"round\";this.setValues(e)}copy(e){super.copy(e);this.color.copy(e.color);this.map=e.map;this.gradientMap=e.gradientMap;this.lightMap=e.lightMap;this.lightMapIntensity=e.lightMapIntensity;this.aoMap=e.aoMap;this.aoMapIntensity=e.aoMapIntensity;this.emissive.copy(e.emissive);this.emissiveMap=e.emissiveMap;this.emissiveIntensity=e.emissiveIntensity;this.bumpMap=e.bumpMap;this.bumpScale=e.bumpScale;this.normalMap=e.normalMap;this.normalMapType=e.normalMapType;this.normalScale.copy(e.normalScale);this.displacementMap=e.displacementMap;this.displacementScale=e.displacementScale;this.displacementBias=e.displacementBias;this.alphaMap=e.alphaMap;this.wireframe=e.wireframe;this.wireframeLinewidth=e.wireframeLinewidth;this.wireframeLinecap=e.wireframeLinecap;this.wireframeLinejoin=e.wireframeLinejoin;return this}}MeshToonMaterial.prototype.isMeshToonMaterial=true;class MeshNormalMaterial extends Material{constructor(e){super();this.type=\"MeshNormalMaterial\";this.bumpMap=null;this.bumpScale=1;this.normalMap=null;this.normalMapType=Qt;this.normalScale=new Vector2(1,1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.wireframe=false;this.wireframeLinewidth=1;this.fog=false;this.flatShading=false;this.setValues(e)}copy(e){super.copy(e);this.bumpMap=e.bumpMap;this.bumpScale=e.bumpScale;this.normalMap=e.normalMap;this.normalMapType=e.normalMapType;this.normalScale.copy(e.normalScale);this.displacementMap=e.displacementMap;this.displacementScale=e.displacementScale;this.displacementBias=e.displacementBias;this.wireframe=e.wireframe;this.wireframeLinewidth=e.wireframeLinewidth;this.flatShading=e.flatShading;return this}}MeshNormalMaterial.prototype.isMeshNormalMaterial=true;class MeshLambertMaterial extends Material{constructor(e){super();this.type=\"MeshLambertMaterial\";this.color=new Color(16777215);this.map=null;this.lightMap=null;this.lightMapIntensity=1;this.aoMap=null;this.aoMapIntensity=1;this.emissive=new Color(0);this.emissiveIntensity=1;this.emissiveMap=null;this.specularMap=null;this.alphaMap=null;this.envMap=null;this.combine=X;this.reflectivity=1;this.refractionRatio=.98;this.wireframe=false;this.wireframeLinewidth=1;this.wireframeLinecap=\"round\";this.wireframeLinejoin=\"round\";this.setValues(e)}copy(e){super.copy(e);this.color.copy(e.color);this.map=e.map;this.lightMap=e.lightMap;this.lightMapIntensity=e.lightMapIntensity;this.aoMap=e.aoMap;this.aoMapIntensity=e.aoMapIntensity;this.emissive.copy(e.emissive);this.emissiveMap=e.emissiveMap;this.emissiveIntensity=e.emissiveIntensity;this.specularMap=e.specularMap;this.alphaMap=e.alphaMap;this.envMap=e.envMap;this.combine=e.combine;this.reflectivity=e.reflectivity;this.refractionRatio=e.refractionRatio;this.wireframe=e.wireframe;this.wireframeLinewidth=e.wireframeLinewidth;this.wireframeLinecap=e.wireframeLinecap;this.wireframeLinejoin=e.wireframeLinejoin;return this}}MeshLambertMaterial.prototype.isMeshLambertMaterial=true;class MeshMatcapMaterial extends Material{constructor(e){super();this.defines={MATCAP:\"\"};this.type=\"MeshMatcapMaterial\";this.color=new Color(16777215);this.matcap=null;this.map=null;this.bumpMap=null;this.bumpScale=1;this.normalMap=null;this.normalMapType=Qt;this.normalScale=new Vector2(1,1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.alphaMap=null;this.flatShading=false;this.setValues(e)}copy(e){super.copy(e);this.defines={MATCAP:\"\"};this.color.copy(e.color);this.matcap=e.matcap;this.map=e.map;this.bumpMap=e.bumpMap;this.bumpScale=e.bumpScale;this.normalMap=e.normalMap;this.normalMapType=e.normalMapType;this.normalScale.copy(e.normalScale);this.displacementMap=e.displacementMap;this.displacementScale=e.displacementScale;this.displacementBias=e.displacementBias;this.alphaMap=e.alphaMap;this.flatShading=e.flatShading;return this}}MeshMatcapMaterial.prototype.isMeshMatcapMaterial=true;class LineDashedMaterial extends LineBasicMaterial{constructor(e){super();this.type=\"LineDashedMaterial\";this.scale=1;this.dashSize=3;this.gapSize=1;this.setValues(e)}copy(e){super.copy(e);this.scale=e.scale;this.dashSize=e.dashSize;this.gapSize=e.gapSize;return this}}LineDashedMaterial.prototype.isLineDashedMaterial=true;var Il=Object.freeze({__proto__:null,ShadowMaterial:ShadowMaterial,SpriteMaterial:SpriteMaterial,RawShaderMaterial:RawShaderMaterial,ShaderMaterial:ShaderMaterial,PointsMaterial:PointsMaterial,MeshPhysicalMaterial:MeshPhysicalMaterial,MeshStandardMaterial:MeshStandardMaterial,MeshPhongMaterial:MeshPhongMaterial,MeshToonMaterial:MeshToonMaterial,MeshNormalMaterial:MeshNormalMaterial,MeshLambertMaterial:MeshLambertMaterial,MeshDepthMaterial:MeshDepthMaterial,MeshDistanceMaterial:MeshDistanceMaterial,MeshBasicMaterial:MeshBasicMaterial,MeshMatcapMaterial:MeshMatcapMaterial,LineDashedMaterial:LineDashedMaterial,LineBasicMaterial:LineBasicMaterial,Material:Material});const Dl={arraySlice:function(e,t,n){return Dl.isTypedArray(e)?new e.constructor(e.subarray(t,void 0!==n?n:e.length)):e.slice(t,n)},convertArray:function(e,t,n){return!e||!n&&e.constructor===t?e:\"number\"===typeof t.BYTES_PER_ELEMENT?new t(e):Array.prototype.slice.call(e)},isTypedArray:function(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)},getKeyframeOrder:function(e){function compareTime(t,n){return e[t]-e[n]}const t=e.length;const n=new Array(t);for(let e=0;e!==t;++e)n[e]=e;n.sort(compareTime);return n},sortedArray:function(e,t,n){const r=e.length;const i=new e.constructor(r);for(let s=0,a=0;a!==r;++s){const r=n[s]*t;for(let n=0;n!==t;++n)i[a++]=e[r+n]}return i},flattenJSON:function(e,t,n,r){let i=1,s=e[0];while(void 0!==s&&void 0===s[r])s=e[i++];if(void 0===s)return;let a=s[r];if(void 0!==a)if(Array.isArray(a))do{a=s[r];if(void 0!==a){t.push(s.time);n.push.apply(n,a)}s=e[i++]}while(void 0!==s);else if(void 0!==a.toArray)do{a=s[r];if(void 0!==a){t.push(s.time);a.toArray(n,n.length)}s=e[i++]}while(void 0!==s);else do{a=s[r];if(void 0!==a){t.push(s.time);n.push(a)}s=e[i++]}while(void 0!==s)},subclip:function(e,t,n,r,i=30){const s=e.clone();s.name=t;const a=[];for(let e=0;e<s.tracks.length;++e){const t=s.tracks[e];const o=t.getValueSize();const l=[];const c=[];for(let e=0;e<t.times.length;++e){const s=t.times[e]*i;if(!(s<n||s>=r)){l.push(t.times[e]);for(let n=0;n<o;++n)c.push(t.values[e*o+n])}}if(0!==l.length){t.times=Dl.convertArray(l,t.times.constructor);t.values=Dl.convertArray(c,t.values.constructor);a.push(t)}}s.tracks=a;let o=Infinity;for(let e=0;e<s.tracks.length;++e)o>s.tracks[e].times[0]&&(o=s.tracks[e].times[0]);for(let e=0;e<s.tracks.length;++e)s.tracks[e].shift(-1*o);s.resetDuration();return s},makeClipAdditive:function(e,t=0,n=e,r=30){r<=0&&(r=30);const i=n.tracks.length;const s=t/r;for(let t=0;t<i;++t){const r=n.tracks[t];const i=r.ValueTypeName;if(\"bool\"===i||\"string\"===i)continue;const a=e.tracks.find((function(e){return e.name===r.name&&e.ValueTypeName===i}));if(void 0===a)continue;let o=0;const l=r.getValueSize();r.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline&&(o=l/3);let c=0;const u=a.getValueSize();a.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline&&(c=u/3);const h=r.times.length-1;let d;if(s<=r.times[0]){const e=o;const t=l-o;d=Dl.arraySlice(r.values,e,t)}else if(s>=r.times[h]){const e=h*l+o;const t=e+l-o;d=Dl.arraySlice(r.values,e,t)}else{const e=r.createInterpolant();const t=o;const n=l-o;e.evaluate(s);d=Dl.arraySlice(e.resultBuffer,t,n)}if(\"quaternion\"===i){const e=(new Quaternion).fromArray(d).normalize().conjugate();e.toArray(d)}const p=a.times.length;for(let e=0;e<p;++e){const t=e*u+c;if(\"quaternion\"===i)Quaternion.multiplyQuaternionsFlat(a.values,t,d,0,a.values,t);else{const e=u-2*c;for(let n=0;n<e;++n)a.values[t+n]-=d[n]}}}e.blendMode=kt;return e}};class Interpolant{constructor(e,t,n,r){this.parameterPositions=e;this._cachedIndex=0;this.resultBuffer=void 0!==r?r:new t.constructor(n);this.sampleValues=t;this.valueSize=n;this.settings=null;this.DefaultSettings_={}}evaluate(e){const t=this.parameterPositions;let n=this._cachedIndex,r=t[n],i=t[n-1];e:{t:{let s;n:{r:if(!(e<r)){for(let s=n+2;;){if(void 0===r){if(e<i)break r;n=t.length;this._cachedIndex=n;return this.afterEnd_(n-1,e,i)}if(n===s)break;i=r;r=t[++n];if(e<r)break t}s=t.length;break n}if(e>=i)break e;{const a=t[1];if(e<a){n=2;i=a}for(let s=n-2;;){if(void 0===i){this._cachedIndex=0;return this.beforeStart_(0,e,r)}if(n===s)break;r=i;i=t[--n-1];if(e>=i)break t}s=n;n=0}}while(n<s){const r=n+s>>>1;e<t[r]?s=r:n=r+1}r=t[n];i=t[n-1];if(void 0===i){this._cachedIndex=0;return this.beforeStart_(0,e,r)}if(void 0===r){n=t.length;this._cachedIndex=n;return this.afterEnd_(n-1,i,e)}}this._cachedIndex=n;this.intervalChanged_(n,i,r)}return this.interpolate_(n,i,e,r)}getSettings_(){return this.settings||this.DefaultSettings_}copySampleValue_(e){const t=this.resultBuffer,n=this.sampleValues,r=this.valueSize,i=e*r;for(let e=0;e!==r;++e)t[e]=n[i+e];return t}interpolate_(){throw new Error(\"call to abstract method\")}intervalChanged_(){}}Interpolant.prototype.beforeStart_=Interpolant.prototype.copySampleValue_;Interpolant.prototype.afterEnd_=Interpolant.prototype.copySampleValue_;class CubicInterpolant extends Interpolant{constructor(e,t,n,r){super(e,t,n,r);this._weightPrev=-0;this._offsetPrev=-0;this._weightNext=-0;this._offsetNext=-0;this.DefaultSettings_={endingStart:Gt,endingEnd:Gt}}intervalChanged_(e,t,n){const r=this.parameterPositions;let i=e-2,s=e+1,a=r[i],o=r[s];if(void 0===a)switch(this.getSettings_().endingStart){case Ft:i=e;a=2*t-n;break;case Ot:i=r.length-2;a=t+r[i]-r[i+1];break;default:i=e;a=n}if(void 0===o)switch(this.getSettings_().endingEnd){case Ft:s=e;o=2*n-t;break;case Ot:s=1;o=n+r[1]-r[0];break;default:s=e-1;o=t}const l=.5*(n-t),c=this.valueSize;this._weightPrev=l/(t-a);this._weightNext=l/(o-n);this._offsetPrev=i*c;this._offsetNext=s*c}interpolate_(e,t,n,r){const i=this.resultBuffer,s=this.sampleValues,a=this.valueSize,o=e*a,l=o-a,c=this._offsetPrev,u=this._offsetNext,h=this._weightPrev,d=this._weightNext,p=(n-t)/(r-t),f=p*p,m=f*p;const g=-h*m+2*h*f-h*p;const y=(1+h)*m+(-1.5-2*h)*f+(-.5+h)*p+1;const x=(-1-d)*m+(1.5+d)*f+.5*p;const b=d*m-d*f;for(let e=0;e!==a;++e)i[e]=g*s[c+e]+y*s[l+e]+x*s[o+e]+b*s[u+e];return i}}class LinearInterpolant extends Interpolant{constructor(e,t,n,r){super(e,t,n,r)}interpolate_(e,t,n,r){const i=this.resultBuffer,s=this.sampleValues,a=this.valueSize,o=e*a,l=o-a,c=(n-t)/(r-t),u=1-c;for(let e=0;e!==a;++e)i[e]=s[l+e]*u+s[o+e]*c;return i}}class DiscreteInterpolant extends Interpolant{constructor(e,t,n,r){super(e,t,n,r)}interpolate_(e){return this.copySampleValue_(e-1)}}class KeyframeTrack{constructor(e,t,n,r){if(void 0===e)throw new Error(\"THREE.KeyframeTrack: track name is undefined\");if(void 0===t||0===t.length)throw new Error(\"THREE.KeyframeTrack: no keyframes in track named \"+e);this.name=e;this.times=Dl.convertArray(t,this.TimeBufferType);this.values=Dl.convertArray(n,this.ValueBufferType);this.setInterpolation(r||this.DefaultInterpolation)}static toJSON(e){const t=e.constructor;let n;if(t.toJSON!==this.toJSON)n=t.toJSON(e);else{n={name:e.name,times:Dl.convertArray(e.times,Array),values:Dl.convertArray(e.values,Array)};const t=e.getInterpolation();t!==e.DefaultInterpolation&&(n.interpolation=t)}n.type=e.ValueTypeName;return n}InterpolantFactoryMethodDiscrete(e){return new DiscreteInterpolant(this.times,this.values,this.getValueSize(),e)}InterpolantFactoryMethodLinear(e){return new LinearInterpolant(this.times,this.values,this.getValueSize(),e)}InterpolantFactoryMethodSmooth(e){return new CubicInterpolant(this.times,this.values,this.getValueSize(),e)}setInterpolation(e){let t;switch(e){case Nt:t=this.InterpolantFactoryMethodDiscrete;break;case Ut:t=this.InterpolantFactoryMethodLinear;break;case zt:t=this.InterpolantFactoryMethodSmooth;break}if(void 0===t){const t=\"unsupported interpolation for \"+this.ValueTypeName+\" keyframe track named \"+this.name;if(void 0===this.createInterpolant){if(e===this.DefaultInterpolation)throw new Error(t);this.setInterpolation(this.DefaultInterpolation)}console.warn(\"THREE.KeyframeTrack:\",t);return this}this.createInterpolant=t;return this}getInterpolation(){switch(this.createInterpolant){case this.InterpolantFactoryMethodDiscrete:return Nt;case this.InterpolantFactoryMethodLinear:return Ut;case this.InterpolantFactoryMethodSmooth:return zt}}getValueSize(){return this.values.length/this.times.length}shift(e){if(0!==e){const t=this.times;for(let n=0,r=t.length;n!==r;++n)t[n]+=e}return this}scale(e){if(1!==e){const t=this.times;for(let n=0,r=t.length;n!==r;++n)t[n]*=e}return this}trim(e,t){const n=this.times,r=n.length;let i=0,s=r-1;while(i!==r&&n[i]<e)++i;while(-1!==s&&n[s]>t)--s;++s;if(0!==i||s!==r){if(i>=s){s=Math.max(s,1);i=s-1}const e=this.getValueSize();this.times=Dl.arraySlice(n,i,s);this.values=Dl.arraySlice(this.values,i*e,s*e)}return this}validate(){let e=true;const t=this.getValueSize();if(t-Math.floor(t)!==0){console.error(\"THREE.KeyframeTrack: Invalid value size in track.\",this);e=false}const n=this.times,r=this.values,i=n.length;if(0===i){console.error(\"THREE.KeyframeTrack: Track is empty.\",this);e=false}let s=null;for(let t=0;t!==i;t++){const r=n[t];if(\"number\"===typeof r&&isNaN(r)){console.error(\"THREE.KeyframeTrack: Time is not a valid number.\",this,t,r);e=false;break}if(null!==s&&s>r){console.error(\"THREE.KeyframeTrack: Out of order keys.\",this,t,r,s);e=false;break}s=r}if(void 0!==r&&Dl.isTypedArray(r))for(let t=0,n=r.length;t!==n;++t){const n=r[t];if(isNaN(n)){console.error(\"THREE.KeyframeTrack: Value is not a valid number.\",this,t,n);e=false;break}}return e}optimize(){const e=Dl.arraySlice(this.times),t=Dl.arraySlice(this.values),n=this.getValueSize(),r=this.getInterpolation()===zt,i=e.length-1;let s=1;for(let a=1;a<i;++a){let i=false;const o=e[a];const l=e[a+1];if(o!==l&&(1!==a||o!==e[0]))if(r)i=true;else{const e=a*n,r=e-n,s=e+n;for(let a=0;a!==n;++a){const n=t[e+a];if(n!==t[r+a]||n!==t[s+a]){i=true;break}}}if(i){if(a!==s){e[s]=e[a];const r=a*n,i=s*n;for(let e=0;e!==n;++e)t[i+e]=t[r+e]}++s}}if(i>0){e[s]=e[i];for(let e=i*n,r=s*n,a=0;a!==n;++a)t[r+a]=t[e+a];++s}if(s!==e.length){this.times=Dl.arraySlice(e,0,s);this.values=Dl.arraySlice(t,0,s*n)}else{this.times=e;this.values=t}return this}clone(){const e=Dl.arraySlice(this.times,0);const t=Dl.arraySlice(this.values,0);const n=this.constructor;const r=new n(this.name,e,t);r.createInterpolant=this.createInterpolant;return r}}KeyframeTrack.prototype.TimeBufferType=Float32Array;KeyframeTrack.prototype.ValueBufferType=Float32Array;KeyframeTrack.prototype.DefaultInterpolation=Ut;class BooleanKeyframeTrack extends KeyframeTrack{}BooleanKeyframeTrack.prototype.ValueTypeName=\"bool\";BooleanKeyframeTrack.prototype.ValueBufferType=Array;BooleanKeyframeTrack.prototype.DefaultInterpolation=Nt;BooleanKeyframeTrack.prototype.InterpolantFactoryMethodLinear=void 0;BooleanKeyframeTrack.prototype.InterpolantFactoryMethodSmooth=void 0;class ColorKeyframeTrack extends KeyframeTrack{}ColorKeyframeTrack.prototype.ValueTypeName=\"color\";class NumberKeyframeTrack extends KeyframeTrack{}NumberKeyframeTrack.prototype.ValueTypeName=\"number\";class QuaternionLinearInterpolant extends Interpolant{constructor(e,t,n,r){super(e,t,n,r)}interpolate_(e,t,n,r){const i=this.resultBuffer,s=this.sampleValues,a=this.valueSize,o=(n-t)/(r-t);let l=e*a;for(let e=l+a;l!==e;l+=4)Quaternion.slerpFlat(i,0,s,l-a,s,l,o);return i}}class QuaternionKeyframeTrack extends KeyframeTrack{InterpolantFactoryMethodLinear(e){return new QuaternionLinearInterpolant(this.times,this.values,this.getValueSize(),e)}}QuaternionKeyframeTrack.prototype.ValueTypeName=\"quaternion\";QuaternionKeyframeTrack.prototype.DefaultInterpolation=Ut;QuaternionKeyframeTrack.prototype.InterpolantFactoryMethodSmooth=void 0;class StringKeyframeTrack extends KeyframeTrack{}StringKeyframeTrack.prototype.ValueTypeName=\"string\";StringKeyframeTrack.prototype.ValueBufferType=Array;StringKeyframeTrack.prototype.DefaultInterpolation=Nt;StringKeyframeTrack.prototype.InterpolantFactoryMethodLinear=void 0;StringKeyframeTrack.prototype.InterpolantFactoryMethodSmooth=void 0;class VectorKeyframeTrack extends KeyframeTrack{}VectorKeyframeTrack.prototype.ValueTypeName=\"vector\";class AnimationClip{constructor(e,t=-1,n,r=Ht){this.name=e;this.tracks=n;this.duration=t;this.blendMode=r;this.uuid=generateUUID();this.duration<0&&this.resetDuration()}static parse(e){const t=[],n=e.tracks,r=1/(e.fps||1);for(let e=0,i=n.length;e!==i;++e)t.push(parseKeyframeTrack(n[e]).scale(r));const i=new this(e.name,e.duration,t,e.blendMode);i.uuid=e.uuid;return i}static toJSON(e){const t=[],n=e.tracks;const r={name:e.name,duration:e.duration,tracks:t,uuid:e.uuid,blendMode:e.blendMode};for(let e=0,r=n.length;e!==r;++e)t.push(KeyframeTrack.toJSON(n[e]));return r}static CreateFromMorphTargetSequence(e,t,n,r){const i=t.length;const s=[];for(let e=0;e<i;e++){let a=[];let o=[];a.push((e+i-1)%i,e,(e+1)%i);o.push(0,1,0);const l=Dl.getKeyframeOrder(a);a=Dl.sortedArray(a,1,l);o=Dl.sortedArray(o,1,l);if(!r&&0===a[0]){a.push(i);o.push(o[0])}s.push(new NumberKeyframeTrack(\".morphTargetInfluences[\"+t[e].name+\"]\",a,o).scale(1/n))}return new this(e,-1,s)}static findByName(e,t){let n=e;if(!Array.isArray(e)){const t=e;n=t.geometry&&t.geometry.animations||t.animations}for(let e=0;e<n.length;e++)if(n[e].name===t)return n[e];return null}static CreateClipsFromMorphTargetSequences(e,t,n){const r={};const i=/^([\\w-]*?)([\\d]+)$/;for(let t=0,n=e.length;t<n;t++){const n=e[t];const s=n.name.match(i);if(s&&s.length>1){const e=s[1];let t=r[e];t||(r[e]=t=[]);t.push(n)}}const s=[];for(const e in r)s.push(this.CreateFromMorphTargetSequence(e,r[e],t,n));return s}static parseAnimation(e,t){if(!e){console.error(\"THREE.AnimationClip: No animation in JSONLoader data.\");return null}const addNonemptyTrack=function(e,t,n,r,i){if(0!==n.length){const s=[];const a=[];Dl.flattenJSON(n,s,a,r);0!==s.length&&i.push(new e(t,s,a))}};const n=[];const r=e.name||\"default\";const i=e.fps||30;const s=e.blendMode;let a=e.length||-1;const o=e.hierarchy||[];for(let e=0;e<o.length;e++){const r=o[e].keys;if(r&&0!==r.length)if(r[0].morphTargets){const e={};let t;for(t=0;t<r.length;t++)if(r[t].morphTargets)for(let n=0;n<r[t].morphTargets.length;n++)e[r[t].morphTargets[n]]=-1;for(const i in e){const e=[];const s=[];for(let n=0;n!==r[t].morphTargets.length;++n){const n=r[t];e.push(n.time);s.push(n.morphTarget===i?1:0)}n.push(new NumberKeyframeTrack(\".morphTargetInfluence[\"+i+\"]\",e,s))}a=e.length*(i||1)}else{const i=\".bones[\"+t[e].name+\"]\";addNonemptyTrack(VectorKeyframeTrack,i+\".position\",r,\"pos\",n);addNonemptyTrack(QuaternionKeyframeTrack,i+\".quaternion\",r,\"rot\",n);addNonemptyTrack(VectorKeyframeTrack,i+\".scale\",r,\"scl\",n)}}if(0===n.length)return null;const l=new this(r,a,n,s);return l}resetDuration(){const e=this.tracks;let t=0;for(let n=0,r=e.length;n!==r;++n){const e=this.tracks[n];t=Math.max(t,e.times[e.times.length-1])}this.duration=t;return this}trim(){for(let e=0;e<this.tracks.length;e++)this.tracks[e].trim(0,this.duration);return this}validate(){let e=true;for(let t=0;t<this.tracks.length;t++)e=e&&this.tracks[t].validate();return e}optimize(){for(let e=0;e<this.tracks.length;e++)this.tracks[e].optimize();return this}clone(){const e=[];for(let t=0;t<this.tracks.length;t++)e.push(this.tracks[t].clone());return new this.constructor(this.name,this.duration,e,this.blendMode)}toJSON(){return this.constructor.toJSON(this)}}function getTrackTypeForValueTypeName(e){switch(e.toLowerCase()){case\"scalar\":case\"double\":case\"float\":case\"number\":case\"integer\":return NumberKeyframeTrack;case\"vector\":case\"vector2\":case\"vector3\":case\"vector4\":return VectorKeyframeTrack;case\"color\":return ColorKeyframeTrack;case\"quaternion\":return QuaternionKeyframeTrack;case\"bool\":case\"boolean\":return BooleanKeyframeTrack;case\"string\":return StringKeyframeTrack}throw new Error(\"THREE.KeyframeTrack: Unsupported typeName: \"+e)}function parseKeyframeTrack(e){if(void 0===e.type)throw new Error(\"THREE.KeyframeTrack: track type undefined, can not parse\");const t=getTrackTypeForValueTypeName(e.type);if(void 0===e.times){const t=[],n=[];Dl.flattenJSON(e.keys,t,n,\"value\");e.times=t;e.values=n}return void 0!==t.parse?t.parse(e):new t(e.name,e.times,e.values,e.interpolation)}const Bl={enabled:false,files:{},add:function(e,t){false!==this.enabled&&(this.files[e]=t)},get:function(e){if(false!==this.enabled)return this.files[e]},remove:function(e){delete this.files[e]},clear:function(){this.files={}}};class LoadingManager{constructor(e,t,n){const r=this;let i=false;let s=0;let a=0;let o;const l=[];this.onStart=void 0;this.onLoad=e;this.onProgress=t;this.onError=n;this.itemStart=function(e){a++;false===i&&void 0!==r.onStart&&r.onStart(e,s,a);i=true};this.itemEnd=function(e){s++;void 0!==r.onProgress&&r.onProgress(e,s,a);if(s===a){i=false;void 0!==r.onLoad&&r.onLoad()}};this.itemError=function(e){void 0!==r.onError&&r.onError(e)};this.resolveURL=function(e){return o?o(e):e};this.setURLModifier=function(e){o=e;return this};this.addHandler=function(e,t){l.push(e,t);return this};this.removeHandler=function(e){const t=l.indexOf(e);-1!==t&&l.splice(t,2);return this};this.getHandler=function(e){for(let t=0,n=l.length;t<n;t+=2){const n=l[t];const r=l[t+1];n.global&&(n.lastIndex=0);if(n.test(e))return r}return null}}}const Vl=new LoadingManager;class Loader{constructor(e){this.manager=void 0!==e?e:Vl;this.crossOrigin=\"anonymous\";this.withCredentials=false;this.path=\"\";this.resourcePath=\"\";this.requestHeader={}}load(){}loadAsync(e,t){const n=this;return new Promise((function(r,i){n.load(e,r,t,i)}))}parse(){}setCrossOrigin(e){this.crossOrigin=e;return this}setWithCredentials(e){this.withCredentials=e;return this}setPath(e){this.path=e;return this}setResourcePath(e){this.resourcePath=e;return this}setRequestHeader(e){this.requestHeader=e;return this}}const Nl={};class FileLoader extends Loader{constructor(e){super(e)}load(e,t,n,r){void 0===e&&(e=\"\");void 0!==this.path&&(e=this.path+e);e=this.manager.resolveURL(e);const i=Bl.get(e);if(void 0!==i){this.manager.itemStart(e);setTimeout((()=>{t&&t(i);this.manager.itemEnd(e)}),0);return i}if(void 0!==Nl[e]){Nl[e].push({onLoad:t,onProgress:n,onError:r});return}Nl[e]=[];Nl[e].push({onLoad:t,onProgress:n,onError:r});const s=new Request(e,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?\"include\":\"same-origin\"});fetch(s).then((t=>{if(200===t.status||0===t.status){0===t.status&&console.warn(\"THREE.FileLoader: HTTP Status 0 received.\");if(\"undefined\"===typeof ReadableStream||void 0===t.body.getReader)return t;const n=Nl[e];const r=t.body.getReader();const i=t.headers.get(\"Content-Length\");const s=i?parseInt(i):0;const a=0!==s;let o=0;const l=new ReadableStream({start(e){readData();function readData(){r.read().then((({done:t,value:r})=>{if(t)e.close();else{o+=r.byteLength;const t=new ProgressEvent(\"progress\",{lengthComputable:a,loaded:o,total:s});for(let e=0,r=n.length;e<r;e++){const r=n[e];r.onProgress&&r.onProgress(t)}e.enqueue(r);readData()}}))}}});return new Response(l)}throw Error(`fetch for \"${t.url}\" responded with ${t.status}: ${t.statusText}`)})).then((e=>{switch(this.responseType){case\"arraybuffer\":return e.arrayBuffer();case\"blob\":return e.blob();case\"document\":return e.text().then((e=>{const t=new DOMParser;return t.parseFromString(e,this.mimeType)}));case\"json\":return e.json();default:return e.text()}})).then((t=>{Bl.add(e,t);const n=Nl[e];delete Nl[e];for(let e=0,r=n.length;e<r;e++){const r=n[e];r.onLoad&&r.onLoad(t)}})).catch((t=>{const n=Nl[e];if(void 0===n){this.manager.itemError(e);throw t}delete Nl[e];for(let e=0,r=n.length;e<r;e++){const r=n[e];r.onError&&r.onError(t)}this.manager.itemError(e)})).finally((()=>{this.manager.itemEnd(e)}));this.manager.itemStart(e)}setResponseType(e){this.responseType=e;return this}setMimeType(e){this.mimeType=e;return this}}class AnimationLoader extends Loader{constructor(e){super(e)}load(e,t,n,r){const i=this;const s=new FileLoader(this.manager);s.setPath(this.path);s.setRequestHeader(this.requestHeader);s.setWithCredentials(this.withCredentials);s.load(e,(function(n){try{t(i.parse(JSON.parse(n)))}catch(t){r?r(t):console.error(t);i.manager.itemError(e)}}),n,r)}parse(e){const t=[];for(let n=0;n<e.length;n++){const r=AnimationClip.parse(e[n]);t.push(r)}return t}}class CompressedTextureLoader extends Loader{constructor(e){super(e)}load(e,t,n,r){const i=this;const s=[];const a=new CompressedTexture;const o=new FileLoader(this.manager);o.setPath(this.path);o.setResponseType(\"arraybuffer\");o.setRequestHeader(this.requestHeader);o.setWithCredentials(i.withCredentials);let l=0;function loadTexture(c){o.load(e[c],(function(e){const n=i.parse(e,true);s[c]={width:n.width,height:n.height,format:n.format,mipmaps:n.mipmaps};l+=1;if(6===l){1===n.mipmapCount&&(a.minFilter=ye);a.image=s;a.format=n.format;a.needsUpdate=true;t&&t(a)}}),n,r)}if(Array.isArray(e))for(let t=0,n=e.length;t<n;++t)loadTexture(t);else o.load(e,(function(e){const n=i.parse(e,true);if(n.isCubemap){const e=n.mipmaps.length/n.mipmapCount;for(let t=0;t<e;t++){s[t]={mipmaps:[]};for(let e=0;e<n.mipmapCount;e++){s[t].mipmaps.push(n.mipmaps[t*n.mipmapCount+e]);s[t].format=n.format;s[t].width=n.width;s[t].height=n.height}}a.image=s}else{a.image.width=n.width;a.image.height=n.height;a.mipmaps=n.mipmaps}1===n.mipmapCount&&(a.minFilter=ye);a.format=n.format;a.needsUpdate=true;t&&t(a)}),n,r);return a}}class ImageLoader extends Loader{constructor(e){super(e)}load(e,t,n,r){void 0!==this.path&&(e=this.path+e);e=this.manager.resolveURL(e);const i=this;const s=Bl.get(e);if(void 0!==s){i.manager.itemStart(e);setTimeout((function(){t&&t(s);i.manager.itemEnd(e)}),0);return s}const a=createElementNS(\"img\");function onImageLoad(){removeEventListeners();Bl.add(e,this);t&&t(this);i.manager.itemEnd(e)}function onImageError(t){removeEventListeners();r&&r(t);i.manager.itemError(e);i.manager.itemEnd(e)}function removeEventListeners(){a.removeEventListener(\"load\",onImageLoad,false);a.removeEventListener(\"error\",onImageError,false)}a.addEventListener(\"load\",onImageLoad,false);a.addEventListener(\"error\",onImageError,false);\"data:\"!==e.substr(0,5)&&void 0!==this.crossOrigin&&(a.crossOrigin=this.crossOrigin);i.manager.itemStart(e);a.src=e;return a}}class CubeTextureLoader extends Loader{constructor(e){super(e)}load(e,t,n,r){const i=new CubeTexture;const s=new ImageLoader(this.manager);s.setCrossOrigin(this.crossOrigin);s.setPath(this.path);let a=0;function loadTexture(n){s.load(e[n],(function(e){i.images[n]=e;a++;if(6===a){i.needsUpdate=true;t&&t(i)}}),void 0,r)}for(let t=0;t<e.length;++t)loadTexture(t);return i}}class DataTextureLoader extends Loader{constructor(e){super(e)}load(e,t,n,r){const i=this;const s=new DataTexture;const a=new FileLoader(this.manager);a.setResponseType(\"arraybuffer\");a.setRequestHeader(this.requestHeader);a.setPath(this.path);a.setWithCredentials(i.withCredentials);a.load(e,(function(e){const n=i.parse(e);if(n){if(void 0!==n.image)s.image=n.image;else if(void 0!==n.data){s.image.width=n.width;s.image.height=n.height;s.image.data=n.data}s.wrapS=void 0!==n.wrapS?n.wrapS:ue;s.wrapT=void 0!==n.wrapT?n.wrapT:ue;s.magFilter=void 0!==n.magFilter?n.magFilter:ye;s.minFilter=void 0!==n.minFilter?n.minFilter:ye;s.anisotropy=void 0!==n.anisotropy?n.anisotropy:1;void 0!==n.encoding&&(s.encoding=n.encoding);void 0!==n.flipY&&(s.flipY=n.flipY);void 0!==n.format&&(s.format=n.format);void 0!==n.type&&(s.type=n.type);if(void 0!==n.mipmaps){s.mipmaps=n.mipmaps;s.minFilter=be}1===n.mipmapCount&&(s.minFilter=ye);void 0!==n.generateMipmaps&&(s.generateMipmaps=n.generateMipmaps);s.needsUpdate=true;t&&t(s,n)}}),n,r);return s}}class TextureLoader extends Loader{constructor(e){super(e)}load(e,t,n,r){const i=new Texture;const s=new ImageLoader(this.manager);s.setCrossOrigin(this.crossOrigin);s.setPath(this.path);s.load(e,(function(e){i.image=e;i.needsUpdate=true;void 0!==t&&t(i)}),n,r);return i}}class Light extends Object3D{constructor(e,t=1){super();this.type=\"Light\";this.color=new Color(e);this.intensity=t}dispose(){}copy(e){super.copy(e);this.color.copy(e.color);this.intensity=e.intensity;return this}toJSON(e){const t=super.toJSON(e);t.object.color=this.color.getHex();t.object.intensity=this.intensity;void 0!==this.groundColor&&(t.object.groundColor=this.groundColor.getHex());void 0!==this.distance&&(t.object.distance=this.distance);void 0!==this.angle&&(t.object.angle=this.angle);void 0!==this.decay&&(t.object.decay=this.decay);void 0!==this.penumbra&&(t.object.penumbra=this.penumbra);void 0!==this.shadow&&(t.object.shadow=this.shadow.toJSON());return t}}Light.prototype.isLight=true;class HemisphereLight extends Light{constructor(e,t,n){super(e,n);this.type=\"HemisphereLight\";this.position.copy(Object3D.DefaultUp);this.updateMatrix();this.groundColor=new Color(t)}copy(e){Light.prototype.copy.call(this,e);this.groundColor.copy(e.groundColor);return this}}HemisphereLight.prototype.isHemisphereLight=true;const Ul=new Matrix4;const zl=new Vector3;const Gl=new Vector3;class LightShadow{constructor(e){this.camera=e;this.bias=0;this.normalBias=0;this.radius=1;this.blurSamples=8;this.mapSize=new Vector2(512,512);this.map=null;this.mapPass=null;this.matrix=new Matrix4;this.autoUpdate=true;this.needsUpdate=false;this._frustum=new Frustum;this._frameExtents=new Vector2(1,1);this._viewportCount=1;this._viewports=[new Vector4(0,0,1,1)]}getViewportCount(){return this._viewportCount}getFrustum(){return this._frustum}updateMatrices(e){const t=this.camera;const n=this.matrix;zl.setFromMatrixPosition(e.matrixWorld);t.position.copy(zl);Gl.setFromMatrixPosition(e.target.matrixWorld);t.lookAt(Gl);t.updateMatrixWorld();Ul.multiplyMatrices(t.projectionMatrix,t.matrixWorldInverse);this._frustum.setFromProjectionMatrix(Ul);n.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1);n.multiply(t.projectionMatrix);n.multiply(t.matrixWorldInverse)}getViewport(e){return this._viewports[e]}getFrameExtents(){return this._frameExtents}dispose(){this.map&&this.map.dispose();this.mapPass&&this.mapPass.dispose()}copy(e){this.camera=e.camera.clone();this.bias=e.bias;this.radius=e.radius;this.mapSize.copy(e.mapSize);return this}clone(){return(new this.constructor).copy(this)}toJSON(){const e={};0!==this.bias&&(e.bias=this.bias);0!==this.normalBias&&(e.normalBias=this.normalBias);1!==this.radius&&(e.radius=this.radius);512===this.mapSize.x&&512===this.mapSize.y||(e.mapSize=this.mapSize.toArray());e.camera=this.camera.toJSON(false).object;delete e.camera.matrix;return e}}class SpotLightShadow extends LightShadow{constructor(){super(new PerspectiveCamera(50,1,.5,500));this.focus=1}updateMatrices(e){const t=this.camera;const n=2*Rn*e.angle*this.focus;const r=this.mapSize.width/this.mapSize.height;const i=e.distance||t.far;if(n!==t.fov||r!==t.aspect||i!==t.far){t.fov=n;t.aspect=r;t.far=i;t.updateProjectionMatrix()}super.updateMatrices(e)}copy(e){super.copy(e);this.focus=e.focus;return this}}SpotLightShadow.prototype.isSpotLightShadow=true;class SpotLight extends Light{constructor(e,t,n=0,r=Math.PI/3,i=0,s=1){super(e,t);this.type=\"SpotLight\";this.position.copy(Object3D.DefaultUp);this.updateMatrix();this.target=new Object3D;this.distance=n;this.angle=r;this.penumbra=i;this.decay=s;this.shadow=new SpotLightShadow}get power(){return this.intensity*Math.PI}set power(e){this.intensity=e/Math.PI}dispose(){this.shadow.dispose()}copy(e){super.copy(e);this.distance=e.distance;this.angle=e.angle;this.penumbra=e.penumbra;this.decay=e.decay;this.target=e.target.clone();this.shadow=e.shadow.clone();return this}}SpotLight.prototype.isSpotLight=true;const Fl=new Matrix4;const Ol=new Vector3;const Hl=new Vector3;class PointLightShadow extends LightShadow{constructor(){super(new PerspectiveCamera(90,1,.5,500));this._frameExtents=new Vector2(4,2);this._viewportCount=6;this._viewports=[new Vector4(2,1,1,1),new Vector4(0,1,1,1),new Vector4(3,1,1,1),new Vector4(1,1,1,1),new Vector4(3,0,1,1),new Vector4(1,0,1,1)];this._cubeDirections=[new Vector3(1,0,0),new Vector3(-1,0,0),new Vector3(0,0,1),new Vector3(0,0,-1),new Vector3(0,1,0),new Vector3(0,-1,0)];this._cubeUps=[new Vector3(0,1,0),new Vector3(0,1,0),new Vector3(0,1,0),new Vector3(0,1,0),new Vector3(0,0,1),new Vector3(0,0,-1)]}updateMatrices(e,t=0){const n=this.camera;const r=this.matrix;const i=e.distance||n.far;if(i!==n.far){n.far=i;n.updateProjectionMatrix()}Ol.setFromMatrixPosition(e.matrixWorld);n.position.copy(Ol);Hl.copy(n.position);Hl.add(this._cubeDirections[t]);n.up.copy(this._cubeUps[t]);n.lookAt(Hl);n.updateMatrixWorld();r.makeTranslation(-Ol.x,-Ol.y,-Ol.z);Fl.multiplyMatrices(n.projectionMatrix,n.matrixWorldInverse);this._frustum.setFromProjectionMatrix(Fl)}}PointLightShadow.prototype.isPointLightShadow=true;class PointLight extends Light{constructor(e,t,n=0,r=1){super(e,t);this.type=\"PointLight\";this.distance=n;this.decay=r;this.shadow=new PointLightShadow}get power(){return 4*this.intensity*Math.PI}set power(e){this.intensity=e/(4*Math.PI)}dispose(){this.shadow.dispose()}copy(e){super.copy(e);this.distance=e.distance;this.decay=e.decay;this.shadow=e.shadow.clone();return this}}PointLight.prototype.isPointLight=true;class DirectionalLightShadow extends LightShadow{constructor(){super(new OrthographicCamera(-5,5,5,-5,.5,500))}}DirectionalLightShadow.prototype.isDirectionalLightShadow=true;class DirectionalLight extends Light{constructor(e,t){super(e,t);this.type=\"DirectionalLight\";this.position.copy(Object3D.DefaultUp);this.updateMatrix();this.target=new Object3D;this.shadow=new DirectionalLightShadow}dispose(){this.shadow.dispose()}copy(e){super.copy(e);this.target=e.target.clone();this.shadow=e.shadow.clone();return this}}DirectionalLight.prototype.isDirectionalLight=true;class AmbientLight extends Light{constructor(e,t){super(e,t);this.type=\"AmbientLight\"}}AmbientLight.prototype.isAmbientLight=true;class RectAreaLight extends Light{constructor(e,t,n=10,r=10){super(e,t);this.type=\"RectAreaLight\";this.width=n;this.height=r}get power(){return this.intensity*this.width*this.height*Math.PI}set power(e){this.intensity=e/(this.width*this.height*Math.PI)}copy(e){super.copy(e);this.width=e.width;this.height=e.height;return this}toJSON(e){const t=super.toJSON(e);t.object.width=this.width;t.object.height=this.height;return t}}RectAreaLight.prototype.isRectAreaLight=true;class SphericalHarmonics3{constructor(){this.coefficients=[];for(let e=0;e<9;e++)this.coefficients.push(new Vector3)}set(e){for(let t=0;t<9;t++)this.coefficients[t].copy(e[t]);return this}zero(){for(let e=0;e<9;e++)this.coefficients[e].set(0,0,0);return this}getAt(e,t){const n=e.x,r=e.y,i=e.z;const s=this.coefficients;t.copy(s[0]).multiplyScalar(.282095);t.addScaledVector(s[1],.488603*r);t.addScaledVector(s[2],.488603*i);t.addScaledVector(s[3],.488603*n);t.addScaledVector(s[4],n*r*1.092548);t.addScaledVector(s[5],r*i*1.092548);t.addScaledVector(s[6],.315392*(3*i*i-1));t.addScaledVector(s[7],n*i*1.092548);t.addScaledVector(s[8],.546274*(n*n-r*r));return t}getIrradianceAt(e,t){const n=e.x,r=e.y,i=e.z;const s=this.coefficients;t.copy(s[0]).multiplyScalar(.886227);t.addScaledVector(s[1],1.023328*r);t.addScaledVector(s[2],1.023328*i);t.addScaledVector(s[3],1.023328*n);t.addScaledVector(s[4],.858086*n*r);t.addScaledVector(s[5],.858086*r*i);t.addScaledVector(s[6],.743125*i*i-.247708);t.addScaledVector(s[7],.858086*n*i);t.addScaledVector(s[8],.429043*(n*n-r*r));return t}add(e){for(let t=0;t<9;t++)this.coefficients[t].add(e.coefficients[t]);return this}addScaledSH(e,t){for(let n=0;n<9;n++)this.coefficients[n].addScaledVector(e.coefficients[n],t);return this}scale(e){for(let t=0;t<9;t++)this.coefficients[t].multiplyScalar(e);return this}lerp(e,t){for(let n=0;n<9;n++)this.coefficients[n].lerp(e.coefficients[n],t);return this}equals(e){for(let t=0;t<9;t++)if(!this.coefficients[t].equals(e.coefficients[t]))return false;return true}copy(e){return this.set(e.coefficients)}clone(){return(new this.constructor).copy(this)}fromArray(e,t=0){const n=this.coefficients;for(let r=0;r<9;r++)n[r].fromArray(e,t+3*r);return this}toArray(e=[],t=0){const n=this.coefficients;for(let r=0;r<9;r++)n[r].toArray(e,t+3*r);return e}static getBasisAt(e,t){const n=e.x,r=e.y,i=e.z;t[0]=.282095;t[1]=.488603*r;t[2]=.488603*i;t[3]=.488603*n;t[4]=1.092548*n*r;t[5]=1.092548*r*i;t[6]=.315392*(3*i*i-1);t[7]=1.092548*n*i;t[8]=.546274*(n*n-r*r)}}SphericalHarmonics3.prototype.isSphericalHarmonics3=true;class LightProbe extends Light{constructor(e=new SphericalHarmonics3,t=1){super(void 0,t);this.sh=e}copy(e){super.copy(e);this.sh.copy(e.sh);return this}fromJSON(e){this.intensity=e.intensity;this.sh.fromArray(e.sh);return this}toJSON(e){const t=super.toJSON(e);t.object.sh=this.sh.toArray();return t}}LightProbe.prototype.isLightProbe=true;class MaterialLoader extends Loader{constructor(e){super(e);this.textures={}}load(e,t,n,r){const i=this;const s=new FileLoader(i.manager);s.setPath(i.path);s.setRequestHeader(i.requestHeader);s.setWithCredentials(i.withCredentials);s.load(e,(function(n){try{t(i.parse(JSON.parse(n)))}catch(t){r?r(t):console.error(t);i.manager.itemError(e)}}),n,r)}parse(e){const t=this.textures;function getTexture(e){void 0===t[e]&&console.warn(\"THREE.MaterialLoader: Undefined texture\",e);return t[e]}const n=new Il[e.type];void 0!==e.uuid&&(n.uuid=e.uuid);void 0!==e.name&&(n.name=e.name);void 0!==e.color&&void 0!==n.color&&n.color.setHex(e.color);void 0!==e.roughness&&(n.roughness=e.roughness);void 0!==e.metalness&&(n.metalness=e.metalness);void 0!==e.sheen&&(n.sheen=e.sheen);void 0!==e.sheenColor&&(n.sheenColor=(new Color).setHex(e.sheenColor));void 0!==e.sheenRoughness&&(n.sheenRoughness=e.sheenRoughness);void 0!==e.emissive&&void 0!==n.emissive&&n.emissive.setHex(e.emissive);void 0!==e.specular&&void 0!==n.specular&&n.specular.setHex(e.specular);void 0!==e.specularIntensity&&(n.specularIntensity=e.specularIntensity);void 0!==e.specularColor&&void 0!==n.specularColor&&n.specularColor.setHex(e.specularColor);void 0!==e.shininess&&(n.shininess=e.shininess);void 0!==e.clearcoat&&(n.clearcoat=e.clearcoat);void 0!==e.clearcoatRoughness&&(n.clearcoatRoughness=e.clearcoatRoughness);void 0!==e.transmission&&(n.transmission=e.transmission);void 0!==e.thickness&&(n.thickness=e.thickness);void 0!==e.attenuationDistance&&(n.attenuationDistance=e.attenuationDistance);void 0!==e.attenuationColor&&void 0!==n.attenuationColor&&n.attenuationColor.setHex(e.attenuationColor);void 0!==e.fog&&(n.fog=e.fog);void 0!==e.flatShading&&(n.flatShading=e.flatShading);void 0!==e.blending&&(n.blending=e.blending);void 0!==e.combine&&(n.combine=e.combine);void 0!==e.side&&(n.side=e.side);void 0!==e.shadowSide&&(n.shadowSide=e.shadowSide);void 0!==e.opacity&&(n.opacity=e.opacity);void 0!==e.format&&(n.format=e.format);void 0!==e.transparent&&(n.transparent=e.transparent);void 0!==e.alphaTest&&(n.alphaTest=e.alphaTest);void 0!==e.depthTest&&(n.depthTest=e.depthTest);void 0!==e.depthWrite&&(n.depthWrite=e.depthWrite);void 0!==e.colorWrite&&(n.colorWrite=e.colorWrite);void 0!==e.stencilWrite&&(n.stencilWrite=e.stencilWrite);void 0!==e.stencilWriteMask&&(n.stencilWriteMask=e.stencilWriteMask);void 0!==e.stencilFunc&&(n.stencilFunc=e.stencilFunc);void 0!==e.stencilRef&&(n.stencilRef=e.stencilRef);void 0!==e.stencilFuncMask&&(n.stencilFuncMask=e.stencilFuncMask);void 0!==e.stencilFail&&(n.stencilFail=e.stencilFail);void 0!==e.stencilZFail&&(n.stencilZFail=e.stencilZFail);void 0!==e.stencilZPass&&(n.stencilZPass=e.stencilZPass);void 0!==e.wireframe&&(n.wireframe=e.wireframe);void 0!==e.wireframeLinewidth&&(n.wireframeLinewidth=e.wireframeLinewidth);void 0!==e.wireframeLinecap&&(n.wireframeLinecap=e.wireframeLinecap);void 0!==e.wireframeLinejoin&&(n.wireframeLinejoin=e.wireframeLinejoin);void 0!==e.rotation&&(n.rotation=e.rotation);1!==e.linewidth&&(n.linewidth=e.linewidth);void 0!==e.dashSize&&(n.dashSize=e.dashSize);void 0!==e.gapSize&&(n.gapSize=e.gapSize);void 0!==e.scale&&(n.scale=e.scale);void 0!==e.polygonOffset&&(n.polygonOffset=e.polygonOffset);void 0!==e.polygonOffsetFactor&&(n.polygonOffsetFactor=e.polygonOffsetFactor);void 0!==e.polygonOffsetUnits&&(n.polygonOffsetUnits=e.polygonOffsetUnits);void 0!==e.dithering&&(n.dithering=e.dithering);void 0!==e.alphaToCoverage&&(n.alphaToCoverage=e.alphaToCoverage);void 0!==e.premultipliedAlpha&&(n.premultipliedAlpha=e.premultipliedAlpha);void 0!==e.visible&&(n.visible=e.visible);void 0!==e.toneMapped&&(n.toneMapped=e.toneMapped);void 0!==e.userData&&(n.userData=e.userData);void 0!==e.vertexColors&&(\"number\"===typeof e.vertexColors?n.vertexColors=e.vertexColors>0:n.vertexColors=e.vertexColors);if(void 0!==e.uniforms)for(const t in e.uniforms){const r=e.uniforms[t];n.uniforms[t]={};switch(r.type){case\"t\":n.uniforms[t].value=getTexture(r.value);break;case\"c\":n.uniforms[t].value=(new Color).setHex(r.value);break;case\"v2\":n.uniforms[t].value=(new Vector2).fromArray(r.value);break;case\"v3\":n.uniforms[t].value=(new Vector3).fromArray(r.value);break;case\"v4\":n.uniforms[t].value=(new Vector4).fromArray(r.value);break;case\"m3\":n.uniforms[t].value=(new Matrix3).fromArray(r.value);break;case\"m4\":n.uniforms[t].value=(new Matrix4).fromArray(r.value);break;default:n.uniforms[t].value=r.value}}void 0!==e.defines&&(n.defines=e.defines);void 0!==e.vertexShader&&(n.vertexShader=e.vertexShader);void 0!==e.fragmentShader&&(n.fragmentShader=e.fragmentShader);if(void 0!==e.extensions)for(const t in e.extensions)n.extensions[t]=e.extensions[t];void 0!==e.shading&&(n.flatShading=1===e.shading);void 0!==e.size&&(n.size=e.size);void 0!==e.sizeAttenuation&&(n.sizeAttenuation=e.sizeAttenuation);void 0!==e.map&&(n.map=getTexture(e.map));void 0!==e.matcap&&(n.matcap=getTexture(e.matcap));void 0!==e.alphaMap&&(n.alphaMap=getTexture(e.alphaMap));void 0!==e.bumpMap&&(n.bumpMap=getTexture(e.bumpMap));void 0!==e.bumpScale&&(n.bumpScale=e.bumpScale);void 0!==e.normalMap&&(n.normalMap=getTexture(e.normalMap));void 0!==e.normalMapType&&(n.normalMapType=e.normalMapType);if(void 0!==e.normalScale){let t=e.normalScale;false===Array.isArray(t)&&(t=[t,t]);n.normalScale=(new Vector2).fromArray(t)}void 0!==e.displacementMap&&(n.displacementMap=getTexture(e.displacementMap));void 0!==e.displacementScale&&(n.displacementScale=e.displacementScale);void 0!==e.displacementBias&&(n.displacementBias=e.displacementBias);void 0!==e.roughnessMap&&(n.roughnessMap=getTexture(e.roughnessMap));void 0!==e.metalnessMap&&(n.metalnessMap=getTexture(e.metalnessMap));void 0!==e.emissiveMap&&(n.emissiveMap=getTexture(e.emissiveMap));void 0!==e.emissiveIntensity&&(n.emissiveIntensity=e.emissiveIntensity);void 0!==e.specularMap&&(n.specularMap=getTexture(e.specularMap));void 0!==e.specularIntensityMap&&(n.specularIntensityMap=getTexture(e.specularIntensityMap));void 0!==e.specularColorMap&&(n.specularColorMap=getTexture(e.specularColorMap));void 0!==e.envMap&&(n.envMap=getTexture(e.envMap));void 0!==e.envMapIntensity&&(n.envMapIntensity=e.envMapIntensity);void 0!==e.reflectivity&&(n.reflectivity=e.reflectivity);void 0!==e.refractionRatio&&(n.refractionRatio=e.refractionRatio);void 0!==e.lightMap&&(n.lightMap=getTexture(e.lightMap));void 0!==e.lightMapIntensity&&(n.lightMapIntensity=e.lightMapIntensity);void 0!==e.aoMap&&(n.aoMap=getTexture(e.aoMap));void 0!==e.aoMapIntensity&&(n.aoMapIntensity=e.aoMapIntensity);void 0!==e.gradientMap&&(n.gradientMap=getTexture(e.gradientMap));void 0!==e.clearcoatMap&&(n.clearcoatMap=getTexture(e.clearcoatMap));void 0!==e.clearcoatRoughnessMap&&(n.clearcoatRoughnessMap=getTexture(e.clearcoatRoughnessMap));void 0!==e.clearcoatNormalMap&&(n.clearcoatNormalMap=getTexture(e.clearcoatNormalMap));void 0!==e.clearcoatNormalScale&&(n.clearcoatNormalScale=(new Vector2).fromArray(e.clearcoatNormalScale));void 0!==e.transmissionMap&&(n.transmissionMap=getTexture(e.transmissionMap));void 0!==e.thicknessMap&&(n.thicknessMap=getTexture(e.thicknessMap));void 0!==e.sheenColorMap&&(n.sheenColorMap=getTexture(e.sheenColorMap));void 0!==e.sheenRoughnessMap&&(n.sheenRoughnessMap=getTexture(e.sheenRoughnessMap));return n}setTextures(e){this.textures=e;return this}}class LoaderUtils{static decodeText(e){if(\"undefined\"!==typeof TextDecoder)return(new TextDecoder).decode(e);let t=\"\";for(let n=0,r=e.length;n<r;n++)t+=String.fromCharCode(e[n]);try{return decodeURIComponent(escape(t))}catch(e){return t}}static extractUrlBase(e){const t=e.lastIndexOf(\"/\");return-1===t?\"./\":e.substr(0,t+1)}static resolveURL(e,t){if(\"string\"!==typeof e||\"\"===e)return\"\";/^https?:\\/\\//i.test(t)&&/^\\//.test(e)&&(t=t.replace(/(^https?:\\/\\/[^\\/]+).*/i,\"$1\"));return/^(https?:)?\\/\\//i.test(e)||/^data:.*,.*$/i.test(e)||/^blob:.*$/i.test(e)?e:t+e}}class InstancedBufferGeometry extends BufferGeometry{constructor(){super();this.type=\"InstancedBufferGeometry\";this.instanceCount=Infinity}copy(e){super.copy(e);this.instanceCount=e.instanceCount;return this}clone(){return(new this.constructor).copy(this)}toJSON(){const e=super.toJSON(this);e.instanceCount=this.instanceCount;e.isInstancedBufferGeometry=true;return e}}InstancedBufferGeometry.prototype.isInstancedBufferGeometry=true;class BufferGeometryLoader extends Loader{constructor(e){super(e)}load(e,t,n,r){const i=this;const s=new FileLoader(i.manager);s.setPath(i.path);s.setRequestHeader(i.requestHeader);s.setWithCredentials(i.withCredentials);s.load(e,(function(n){try{t(i.parse(JSON.parse(n)))}catch(t){r?r(t):console.error(t);i.manager.itemError(e)}}),n,r)}parse(e){const t={};const n={};function getInterleavedBuffer(e,n){if(void 0!==t[n])return t[n];const r=e.interleavedBuffers;const i=r[n];const s=getArrayBuffer(e,i.buffer);const a=getTypedArray(i.type,s);const o=new InterleavedBuffer(a,i.stride);o.uuid=i.uuid;t[n]=o;return o}function getArrayBuffer(e,t){if(void 0!==n[t])return n[t];const r=e.arrayBuffers;const i=r[t];const s=new Uint32Array(i).buffer;n[t]=s;return s}const r=e.isInstancedBufferGeometry?new InstancedBufferGeometry:new BufferGeometry;const i=e.data.index;if(void 0!==i){const e=getTypedArray(i.type,i.array);r.setIndex(new BufferAttribute(e,1))}const s=e.data.attributes;for(const t in s){const n=s[t];let i;if(n.isInterleavedBufferAttribute){const t=getInterleavedBuffer(e.data,n.data);i=new InterleavedBufferAttribute(t,n.itemSize,n.offset,n.normalized)}else{const e=getTypedArray(n.type,n.array);const t=n.isInstancedBufferAttribute?InstancedBufferAttribute:BufferAttribute;i=new t(e,n.itemSize,n.normalized)}void 0!==n.name&&(i.name=n.name);void 0!==n.usage&&i.setUsage(n.usage);if(void 0!==n.updateRange){i.updateRange.offset=n.updateRange.offset;i.updateRange.count=n.updateRange.count}r.setAttribute(t,i)}const a=e.data.morphAttributes;if(a)for(const t in a){const n=a[t];const i=[];for(let t=0,r=n.length;t<r;t++){const r=n[t];let s;if(r.isInterleavedBufferAttribute){const t=getInterleavedBuffer(e.data,r.data);s=new InterleavedBufferAttribute(t,r.itemSize,r.offset,r.normalized)}else{const e=getTypedArray(r.type,r.array);s=new BufferAttribute(e,r.itemSize,r.normalized)}void 0!==r.name&&(s.name=r.name);i.push(s)}r.morphAttributes[t]=i}const o=e.data.morphTargetsRelative;o&&(r.morphTargetsRelative=true);const l=e.data.groups||e.data.drawcalls||e.data.offsets;if(void 0!==l)for(let e=0,t=l.length;e!==t;++e){const t=l[e];r.addGroup(t.start,t.count,t.materialIndex)}const c=e.data.boundingSphere;if(void 0!==c){const e=new Vector3;void 0!==c.center&&e.fromArray(c.center);r.boundingSphere=new Sphere(e,c.radius)}e.name&&(r.name=e.name);e.userData&&(r.userData=e.userData);return r}}class ObjectLoader extends Loader{constructor(e){super(e)}load(e,t,n,r){const i=this;const s=\"\"===this.path?LoaderUtils.extractUrlBase(e):this.path;this.resourcePath=this.resourcePath||s;const a=new FileLoader(this.manager);a.setPath(this.path);a.setRequestHeader(this.requestHeader);a.setWithCredentials(this.withCredentials);a.load(e,(function(n){let s=null;try{s=JSON.parse(n)}catch(t){void 0!==r&&r(t);console.error(\"THREE:ObjectLoader: Can't parse \"+e+\".\",t.message);return}const a=s.metadata;void 0!==a&&void 0!==a.type&&\"geometry\"!==a.type.toLowerCase()?i.parse(s,t):console.error(\"THREE.ObjectLoader: Can't load \"+e)}),n,r)}async loadAsync(e,t){const n=this;const r=\"\"===this.path?LoaderUtils.extractUrlBase(e):this.path;this.resourcePath=this.resourcePath||r;const i=new FileLoader(this.manager);i.setPath(this.path);i.setRequestHeader(this.requestHeader);i.setWithCredentials(this.withCredentials);const s=await i.loadAsync(e,t);const a=JSON.parse(s);const o=a.metadata;if(void 0===o||void 0===o.type||\"geometry\"===o.type.toLowerCase())throw new Error(\"THREE.ObjectLoader: Can't load \"+e);return await n.parseAsync(a)}parse(e,t){const n=this.parseAnimations(e.animations);const r=this.parseShapes(e.shapes);const i=this.parseGeometries(e.geometries,r);const s=this.parseImages(e.images,(function(){void 0!==t&&t(l)}));const a=this.parseTextures(e.textures,s);const o=this.parseMaterials(e.materials,a);const l=this.parseObject(e.object,i,o,a,n);const c=this.parseSkeletons(e.skeletons,l);this.bindSkeletons(l,c);if(void 0!==t){let e=false;for(const t in s)if(s[t]instanceof HTMLImageElement){e=true;break}false===e&&t(l)}return l}async parseAsync(e){const t=this.parseAnimations(e.animations);const n=this.parseShapes(e.shapes);const r=this.parseGeometries(e.geometries,n);const i=await this.parseImagesAsync(e.images);const s=this.parseTextures(e.textures,i);const a=this.parseMaterials(e.materials,s);const o=this.parseObject(e.object,r,a,s,t);const l=this.parseSkeletons(e.skeletons,o);this.bindSkeletons(o,l);return o}parseShapes(e){const t={};if(void 0!==e)for(let n=0,r=e.length;n<r;n++){const r=(new Shape).fromJSON(e[n]);t[r.uuid]=r}return t}parseSkeletons(e,t){const n={};const r={};t.traverse((function(e){e.isBone&&(r[e.uuid]=e)}));if(void 0!==e)for(let t=0,i=e.length;t<i;t++){const i=(new Skeleton).fromJSON(e[t],r);n[i.uuid]=i}return n}parseGeometries(e,t){const n={};if(void 0!==e){const r=new BufferGeometryLoader;for(let i=0,s=e.length;i<s;i++){let s;const a=e[i];switch(a.type){case\"BufferGeometry\":case\"InstancedBufferGeometry\":s=r.parse(a);break;case\"Geometry\":console.error(\"THREE.ObjectLoader: The legacy Geometry type is no longer supported.\");break;default:a.type in Pl?s=Pl[a.type].fromJSON(a,t):console.warn(`THREE.ObjectLoader: Unsupported geometry type \"${a.type}\"`)}s.uuid=a.uuid;void 0!==a.name&&(s.name=a.name);true===s.isBufferGeometry&&void 0!==a.userData&&(s.userData=a.userData);n[a.uuid]=s}}return n}parseMaterials(e,t){const n={};const r={};if(void 0!==e){const i=new MaterialLoader;i.setTextures(t);for(let t=0,s=e.length;t<s;t++){const s=e[t];if(\"MultiMaterial\"===s.type){const e=[];for(let t=0;t<s.materials.length;t++){const r=s.materials[t];void 0===n[r.uuid]&&(n[r.uuid]=i.parse(r));e.push(n[r.uuid])}r[s.uuid]=e}else{void 0===n[s.uuid]&&(n[s.uuid]=i.parse(s));r[s.uuid]=n[s.uuid]}}}return r}parseAnimations(e){const t={};if(void 0!==e)for(let n=0;n<e.length;n++){const r=e[n];const i=AnimationClip.parse(r);t[i.uuid]=i}return t}parseImages(e,t){const n=this;const r={};let i;function loadImage(e){n.manager.itemStart(e);return i.load(e,(function(){n.manager.itemEnd(e)}),void 0,(function(){n.manager.itemError(e);n.manager.itemEnd(e)}))}function deserializeImage(e){if(\"string\"===typeof e){const t=e;const r=/^(\\/\\/)|([a-z]+:(\\/\\/)?)/i.test(t)?t:n.resourcePath+t;return loadImage(r)}return e.data?{data:getTypedArray(e.type,e.data),width:e.width,height:e.height}:null}if(void 0!==e&&e.length>0){const n=new LoadingManager(t);i=new ImageLoader(n);i.setCrossOrigin(this.crossOrigin);for(let t=0,n=e.length;t<n;t++){const n=e[t];const i=n.url;if(Array.isArray(i)){r[n.uuid]=[];for(let e=0,t=i.length;e<t;e++){const t=i[e];const s=deserializeImage(t);null!==s&&(s instanceof HTMLImageElement?r[n.uuid].push(s):r[n.uuid].push(new DataTexture(s.data,s.width,s.height)))}}else{const e=deserializeImage(n.url);null!==e&&(r[n.uuid]=e)}}}return r}async parseImagesAsync(e){const t=this;const n={};let r;async function deserializeImage(e){if(\"string\"===typeof e){const n=e;const i=/^(\\/\\/)|([a-z]+:(\\/\\/)?)/i.test(n)?n:t.resourcePath+n;return await r.loadAsync(i)}return e.data?{data:getTypedArray(e.type,e.data),width:e.width,height:e.height}:null}if(void 0!==e&&e.length>0){r=new ImageLoader(this.manager);r.setCrossOrigin(this.crossOrigin);for(let t=0,r=e.length;t<r;t++){const r=e[t];const i=r.url;if(Array.isArray(i)){n[r.uuid]=[];for(let e=0,t=i.length;e<t;e++){const t=i[e];const s=await deserializeImage(t);null!==s&&(s instanceof HTMLImageElement?n[r.uuid].push(s):n[r.uuid].push(new DataTexture(s.data,s.width,s.height)))}}else{const e=await deserializeImage(r.url);null!==e&&(n[r.uuid]=e)}}}return n}parseTextures(e,t){function parseConstant(e,t){if(\"number\"===typeof e)return e;console.warn(\"THREE.ObjectLoader.parseTexture: Constant should be in numeric form.\",e);return t[e]}const n={};if(void 0!==e)for(let r=0,i=e.length;r<i;r++){const i=e[r];void 0===i.image&&console.warn('THREE.ObjectLoader: No \"image\" specified for',i.uuid);void 0===t[i.image]&&console.warn(\"THREE.ObjectLoader: Undefined image\",i.image);let s;const a=t[i.image];if(Array.isArray(a)){s=new CubeTexture(a);6===a.length&&(s.needsUpdate=true)}else{s=a&&a.data?new DataTexture(a.data,a.width,a.height):new Texture(a);a&&(s.needsUpdate=true)}s.uuid=i.uuid;void 0!==i.name&&(s.name=i.name);void 0!==i.mapping&&(s.mapping=parseConstant(i.mapping,kl));void 0!==i.offset&&s.offset.fromArray(i.offset);void 0!==i.repeat&&s.repeat.fromArray(i.repeat);void 0!==i.center&&s.center.fromArray(i.center);void 0!==i.rotation&&(s.rotation=i.rotation);if(void 0!==i.wrap){s.wrapS=parseConstant(i.wrap[0],Wl);s.wrapT=parseConstant(i.wrap[1],Wl)}void 0!==i.format&&(s.format=i.format);void 0!==i.type&&(s.type=i.type);void 0!==i.encoding&&(s.encoding=i.encoding);void 0!==i.minFilter&&(s.minFilter=parseConstant(i.minFilter,jl));void 0!==i.magFilter&&(s.magFilter=parseConstant(i.magFilter,jl));void 0!==i.anisotropy&&(s.anisotropy=i.anisotropy);void 0!==i.flipY&&(s.flipY=i.flipY);void 0!==i.premultiplyAlpha&&(s.premultiplyAlpha=i.premultiplyAlpha);void 0!==i.unpackAlignment&&(s.unpackAlignment=i.unpackAlignment);void 0!==i.userData&&(s.userData=i.userData);n[i.uuid]=s}return n}parseObject(e,t,n,r,i){let s;function getGeometry(e){void 0===t[e]&&console.warn(\"THREE.ObjectLoader: Undefined geometry\",e);return t[e]}function getMaterial(e){if(void 0!==e){if(Array.isArray(e)){const t=[];for(let r=0,i=e.length;r<i;r++){const i=e[r];void 0===n[i]&&console.warn(\"THREE.ObjectLoader: Undefined material\",i);t.push(n[i])}return t}void 0===n[e]&&console.warn(\"THREE.ObjectLoader: Undefined material\",e);return n[e]}}function getTexture(e){void 0===r[e]&&console.warn(\"THREE.ObjectLoader: Undefined texture\",e);return r[e]}let a,o;switch(e.type){case\"Scene\":s=new Scene;void 0!==e.background&&(Number.isInteger(e.background)?s.background=new Color(e.background):s.background=getTexture(e.background));void 0!==e.environment&&(s.environment=getTexture(e.environment));void 0!==e.fog&&(\"Fog\"===e.fog.type?s.fog=new Fog(e.fog.color,e.fog.near,e.fog.far):\"FogExp2\"===e.fog.type&&(s.fog=new FogExp2(e.fog.color,e.fog.density)));break;case\"PerspectiveCamera\":s=new PerspectiveCamera(e.fov,e.aspect,e.near,e.far);void 0!==e.focus&&(s.focus=e.focus);void 0!==e.zoom&&(s.zoom=e.zoom);void 0!==e.filmGauge&&(s.filmGauge=e.filmGauge);void 0!==e.filmOffset&&(s.filmOffset=e.filmOffset);void 0!==e.view&&(s.view=Object.assign({},e.view));break;case\"OrthographicCamera\":s=new OrthographicCamera(e.left,e.right,e.top,e.bottom,e.near,e.far);void 0!==e.zoom&&(s.zoom=e.zoom);void 0!==e.view&&(s.view=Object.assign({},e.view));break;case\"AmbientLight\":s=new AmbientLight(e.color,e.intensity);break;case\"DirectionalLight\":s=new DirectionalLight(e.color,e.intensity);break;case\"PointLight\":s=new PointLight(e.color,e.intensity,e.distance,e.decay);break;case\"RectAreaLight\":s=new RectAreaLight(e.color,e.intensity,e.width,e.height);break;case\"SpotLight\":s=new SpotLight(e.color,e.intensity,e.distance,e.angle,e.penumbra,e.decay);break;case\"HemisphereLight\":s=new HemisphereLight(e.color,e.groundColor,e.intensity);break;case\"LightProbe\":s=(new LightProbe).fromJSON(e);break;case\"SkinnedMesh\":a=getGeometry(e.geometry);o=getMaterial(e.material);s=new SkinnedMesh(a,o);void 0!==e.bindMode&&(s.bindMode=e.bindMode);void 0!==e.bindMatrix&&s.bindMatrix.fromArray(e.bindMatrix);void 0!==e.skeleton&&(s.skeleton=e.skeleton);break;case\"Mesh\":a=getGeometry(e.geometry);o=getMaterial(e.material);s=new Mesh(a,o);break;case\"InstancedMesh\":a=getGeometry(e.geometry);o=getMaterial(e.material);const t=e.count;const n=e.instanceMatrix;const r=e.instanceColor;s=new InstancedMesh(a,o,t);s.instanceMatrix=new InstancedBufferAttribute(new Float32Array(n.array),16);void 0!==r&&(s.instanceColor=new InstancedBufferAttribute(new Float32Array(r.array),r.itemSize));break;case\"LOD\":s=new LOD;break;case\"Line\":s=new Line(getGeometry(e.geometry),getMaterial(e.material));break;case\"LineLoop\":s=new LineLoop(getGeometry(e.geometry),getMaterial(e.material));break;case\"LineSegments\":s=new LineSegments(getGeometry(e.geometry),getMaterial(e.material));break;case\"PointCloud\":case\"Points\":s=new Points(getGeometry(e.geometry),getMaterial(e.material));break;case\"Sprite\":s=new Sprite(getMaterial(e.material));break;case\"Group\":s=new Group;break;case\"Bone\":s=new Bone;break;default:s=new Object3D}s.uuid=e.uuid;void 0!==e.name&&(s.name=e.name);if(void 0!==e.matrix){s.matrix.fromArray(e.matrix);void 0!==e.matrixAutoUpdate&&(s.matrixAutoUpdate=e.matrixAutoUpdate);s.matrixAutoUpdate&&s.matrix.decompose(s.position,s.quaternion,s.scale)}else{void 0!==e.position&&s.position.fromArray(e.position);void 0!==e.rotation&&s.rotation.fromArray(e.rotation);void 0!==e.quaternion&&s.quaternion.fromArray(e.quaternion);void 0!==e.scale&&s.scale.fromArray(e.scale)}void 0!==e.castShadow&&(s.castShadow=e.castShadow);void 0!==e.receiveShadow&&(s.receiveShadow=e.receiveShadow);if(e.shadow){void 0!==e.shadow.bias&&(s.shadow.bias=e.shadow.bias);void 0!==e.shadow.normalBias&&(s.shadow.normalBias=e.shadow.normalBias);void 0!==e.shadow.radius&&(s.shadow.radius=e.shadow.radius);void 0!==e.shadow.mapSize&&s.shadow.mapSize.fromArray(e.shadow.mapSize);void 0!==e.shadow.camera&&(s.shadow.camera=this.parseObject(e.shadow.camera))}void 0!==e.visible&&(s.visible=e.visible);void 0!==e.frustumCulled&&(s.frustumCulled=e.frustumCulled);void 0!==e.renderOrder&&(s.renderOrder=e.renderOrder);void 0!==e.userData&&(s.userData=e.userData);void 0!==e.layers&&(s.layers.mask=e.layers);if(void 0!==e.children){const a=e.children;for(let e=0;e<a.length;e++)s.add(this.parseObject(a[e],t,n,r,i))}if(void 0!==e.animations){const t=e.animations;for(let e=0;e<t.length;e++){const n=t[e];s.animations.push(i[n])}}if(\"LOD\"===e.type){void 0!==e.autoUpdate&&(s.autoUpdate=e.autoUpdate);const t=e.levels;for(let e=0;e<t.length;e++){const n=t[e];const r=s.getObjectByProperty(\"uuid\",n.object);void 0!==r&&s.addLevel(r,n.distance)}}return s}bindSkeletons(e,t){0!==Object.keys(t).length&&e.traverse((function(e){if(true===e.isSkinnedMesh&&void 0!==e.skeleton){const n=t[e.skeleton];void 0===n?console.warn(\"THREE.ObjectLoader: No skeleton found with UUID:\",e.skeleton):e.bind(n,e.bindMatrix)}}))}setTexturePath(e){console.warn(\"THREE.ObjectLoader: .setTexturePath() has been renamed to .setResourcePath().\");return this.setResourcePath(e)}}const kl={UVMapping:ne,CubeReflectionMapping:re,CubeRefractionMapping:ie,EquirectangularReflectionMapping:se,EquirectangularRefractionMapping:ae,CubeUVReflectionMapping:oe,CubeUVRefractionMapping:le};const Wl={RepeatWrapping:ce,ClampToEdgeWrapping:ue,MirroredRepeatWrapping:he};const jl={NearestFilter:de,NearestMipmapNearestFilter:pe,NearestMipmapLinearFilter:me,LinearFilter:ye,LinearMipmapNearestFilter:ve,LinearMipmapLinearFilter:be};class ImageBitmapLoader extends Loader{constructor(e){super(e);\"undefined\"===typeof createImageBitmap&&console.warn(\"THREE.ImageBitmapLoader: createImageBitmap() not supported.\");\"undefined\"===typeof fetch&&console.warn(\"THREE.ImageBitmapLoader: fetch() not supported.\");this.options={premultiplyAlpha:\"none\"}}setOptions(e){this.options=e;return this}load(e,t,n,r){void 0===e&&(e=\"\");void 0!==this.path&&(e=this.path+e);e=this.manager.resolveURL(e);const i=this;const s=Bl.get(e);if(void 0!==s){i.manager.itemStart(e);setTimeout((function(){t&&t(s);i.manager.itemEnd(e)}),0);return s}const a={};a.credentials=\"anonymous\"===this.crossOrigin?\"same-origin\":\"include\";a.headers=this.requestHeader;fetch(e,a).then((function(e){return e.blob()})).then((function(e){return createImageBitmap(e,Object.assign(i.options,{colorSpaceConversion:\"none\"}))})).then((function(n){Bl.add(e,n);t&&t(n);i.manager.itemEnd(e)})).catch((function(t){r&&r(t);i.manager.itemError(e);i.manager.itemEnd(e)}));i.manager.itemStart(e)}}ImageBitmapLoader.prototype.isImageBitmapLoader=true;let ql;const Xl={getContext:function(){void 0===ql&&(ql=new(window.AudioContext||window.webkitAudioContext));return ql},setContext:function(e){ql=e}};class AudioLoader extends Loader{constructor(e){super(e)}load(e,t,n,r){const i=this;const s=new FileLoader(this.manager);s.setResponseType(\"arraybuffer\");s.setPath(this.path);s.setRequestHeader(this.requestHeader);s.setWithCredentials(this.withCredentials);s.load(e,(function(n){try{const e=n.slice(0);const r=Xl.getContext();r.decodeAudioData(e,(function(e){t(e)}))}catch(t){r?r(t):console.error(t);i.manager.itemError(e)}}),n,r)}}class HemisphereLightProbe extends LightProbe{constructor(e,t,n=1){super(void 0,n);const r=(new Color).set(e);const i=(new Color).set(t);const s=new Vector3(r.r,r.g,r.b);const a=new Vector3(i.r,i.g,i.b);const o=Math.sqrt(Math.PI);const l=o*Math.sqrt(.75);this.sh.coefficients[0].copy(s).add(a).multiplyScalar(o);this.sh.coefficients[1].copy(s).sub(a).multiplyScalar(l)}}HemisphereLightProbe.prototype.isHemisphereLightProbe=true;class AmbientLightProbe extends LightProbe{constructor(e,t=1){super(void 0,t);const n=(new Color).set(e);this.sh.coefficients[0].set(n.r,n.g,n.b).multiplyScalar(2*Math.sqrt(Math.PI))}}AmbientLightProbe.prototype.isAmbientLightProbe=true;const Jl=new Matrix4;const Yl=new Matrix4;const Zl=new Matrix4;class StereoCamera{constructor(){this.type=\"StereoCamera\";this.aspect=1;this.eyeSep=.064;this.cameraL=new PerspectiveCamera;this.cameraL.layers.enable(1);this.cameraL.matrixAutoUpdate=false;this.cameraR=new PerspectiveCamera;this.cameraR.layers.enable(2);this.cameraR.matrixAutoUpdate=false;this._cache={focus:null,fov:null,aspect:null,near:null,far:null,zoom:null,eyeSep:null}}update(e){const t=this._cache;const n=t.focus!==e.focus||t.fov!==e.fov||t.aspect!==e.aspect*this.aspect||t.near!==e.near||t.far!==e.far||t.zoom!==e.zoom||t.eyeSep!==this.eyeSep;if(n){t.focus=e.focus;t.fov=e.fov;t.aspect=e.aspect*this.aspect;t.near=e.near;t.far=e.far;t.zoom=e.zoom;t.eyeSep=this.eyeSep;Zl.copy(e.projectionMatrix);const n=t.eyeSep/2;const r=n*t.near/t.focus;const i=t.near*Math.tan(Cn*t.fov*.5)/t.zoom;let s,a;Yl.elements[12]=-n;Jl.elements[12]=n;s=-i*t.aspect+r;a=i*t.aspect+r;Zl.elements[0]=2*t.near/(a-s);Zl.elements[8]=(a+s)/(a-s);this.cameraL.projectionMatrix.copy(Zl);s=-i*t.aspect-r;a=i*t.aspect-r;Zl.elements[0]=2*t.near/(a-s);Zl.elements[8]=(a+s)/(a-s);this.cameraR.projectionMatrix.copy(Zl)}this.cameraL.matrixWorld.copy(e.matrixWorld).multiply(Yl);this.cameraR.matrixWorld.copy(e.matrixWorld).multiply(Jl)}}class Clock{constructor(e=true){this.autoStart=e;this.startTime=0;this.oldTime=0;this.elapsedTime=0;this.running=false}start(){this.startTime=now();this.oldTime=this.startTime;this.elapsedTime=0;this.running=true}stop(){this.getElapsedTime();this.running=false;this.autoStart=false}getElapsedTime(){this.getDelta();return this.elapsedTime}getDelta(){let e=0;if(this.autoStart&&!this.running){this.start();return 0}if(this.running){const t=now();e=(t-this.oldTime)/1e3;this.oldTime=t;this.elapsedTime+=e}return e}}function now(){return(\"undefined\"===typeof performance?Date:performance).now()}const Ql=new Vector3;const Kl=new Quaternion;const $l=new Vector3;const ec=new Vector3;class AudioListener extends Object3D{constructor(){super();this.type=\"AudioListener\";this.context=Xl.getContext();this.gain=this.context.createGain();this.gain.connect(this.context.destination);this.filter=null;this.timeDelta=0;this._clock=new Clock}getInput(){return this.gain}removeFilter(){if(null!==this.filter){this.gain.disconnect(this.filter);this.filter.disconnect(this.context.destination);this.gain.connect(this.context.destination);this.filter=null}return this}getFilter(){return this.filter}setFilter(e){if(null!==this.filter){this.gain.disconnect(this.filter);this.filter.disconnect(this.context.destination)}else this.gain.disconnect(this.context.destination);this.filter=e;this.gain.connect(this.filter);this.filter.connect(this.context.destination);return this}getMasterVolume(){return this.gain.gain.value}setMasterVolume(e){this.gain.gain.setTargetAtTime(e,this.context.currentTime,.01);return this}updateMatrixWorld(e){super.updateMatrixWorld(e);const t=this.context.listener;const n=this.up;this.timeDelta=this._clock.getDelta();this.matrixWorld.decompose(Ql,Kl,$l);ec.set(0,0,-1).applyQuaternion(Kl);if(t.positionX){const e=this.context.currentTime+this.timeDelta;t.positionX.linearRampToValueAtTime(Ql.x,e);t.positionY.linearRampToValueAtTime(Ql.y,e);t.positionZ.linearRampToValueAtTime(Ql.z,e);t.forwardX.linearRampToValueAtTime(ec.x,e);t.forwardY.linearRampToValueAtTime(ec.y,e);t.forwardZ.linearRampToValueAtTime(ec.z,e);t.upX.linearRampToValueAtTime(n.x,e);t.upY.linearRampToValueAtTime(n.y,e);t.upZ.linearRampToValueAtTime(n.z,e)}else{t.setPosition(Ql.x,Ql.y,Ql.z);t.setOrientation(ec.x,ec.y,ec.z,n.x,n.y,n.z)}}}class Audio extends Object3D{constructor(e){super();this.type=\"Audio\";this.listener=e;this.context=e.context;this.gain=this.context.createGain();this.gain.connect(e.getInput());this.autoplay=false;this.buffer=null;this.detune=0;this.loop=false;this.loopStart=0;this.loopEnd=0;this.offset=0;this.duration=void 0;this.playbackRate=1;this.isPlaying=false;this.hasPlaybackControl=true;this.source=null;this.sourceType=\"empty\";this._startedAt=0;this._progress=0;this._connected=false;this.filters=[]}getOutput(){return this.gain}setNodeSource(e){this.hasPlaybackControl=false;this.sourceType=\"audioNode\";this.source=e;this.connect();return this}setMediaElementSource(e){this.hasPlaybackControl=false;this.sourceType=\"mediaNode\";this.source=this.context.createMediaElementSource(e);this.connect();return this}setMediaStreamSource(e){this.hasPlaybackControl=false;this.sourceType=\"mediaStreamNode\";this.source=this.context.createMediaStreamSource(e);this.connect();return this}setBuffer(e){this.buffer=e;this.sourceType=\"buffer\";this.autoplay&&this.play();return this}play(e=0){if(true===this.isPlaying){console.warn(\"THREE.Audio: Audio is already playing.\");return}if(false===this.hasPlaybackControl){console.warn(\"THREE.Audio: this Audio has no playback control.\");return}this._startedAt=this.context.currentTime+e;const t=this.context.createBufferSource();t.buffer=this.buffer;t.loop=this.loop;t.loopStart=this.loopStart;t.loopEnd=this.loopEnd;t.onended=this.onEnded.bind(this);t.start(this._startedAt,this._progress+this.offset,this.duration);this.isPlaying=true;this.source=t;this.setDetune(this.detune);this.setPlaybackRate(this.playbackRate);return this.connect()}pause(){if(false!==this.hasPlaybackControl){if(true===this.isPlaying){this._progress+=Math.max(this.context.currentTime-this._startedAt,0)*this.playbackRate;true===this.loop&&(this._progress=this._progress%(this.duration||this.buffer.duration));this.source.stop();this.source.onended=null;this.isPlaying=false}return this}console.warn(\"THREE.Audio: this Audio has no playback control.\")}stop(){if(false!==this.hasPlaybackControl){this._progress=0;this.source.stop();this.source.onended=null;this.isPlaying=false;return this}console.warn(\"THREE.Audio: this Audio has no playback control.\")}connect(){if(this.filters.length>0){this.source.connect(this.filters[0]);for(let e=1,t=this.filters.length;e<t;e++)this.filters[e-1].connect(this.filters[e]);this.filters[this.filters.length-1].connect(this.getOutput())}else this.source.connect(this.getOutput());this._connected=true;return this}disconnect(){if(this.filters.length>0){this.source.disconnect(this.filters[0]);for(let e=1,t=this.filters.length;e<t;e++)this.filters[e-1].disconnect(this.filters[e]);this.filters[this.filters.length-1].disconnect(this.getOutput())}else this.source.disconnect(this.getOutput());this._connected=false;return this}getFilters(){return this.filters}setFilters(e){e||(e=[]);if(true===this._connected){this.disconnect();this.filters=e.slice();this.connect()}else this.filters=e.slice();return this}setDetune(e){this.detune=e;if(void 0!==this.source.detune){true===this.isPlaying&&this.source.detune.setTargetAtTime(this.detune,this.context.currentTime,.01);return this}}getDetune(){return this.detune}getFilter(){return this.getFilters()[0]}setFilter(e){return this.setFilters(e?[e]:[])}setPlaybackRate(e){if(false!==this.hasPlaybackControl){this.playbackRate=e;true===this.isPlaying&&this.source.playbackRate.setTargetAtTime(this.playbackRate,this.context.currentTime,.01);return this}console.warn(\"THREE.Audio: this Audio has no playback control.\")}getPlaybackRate(){return this.playbackRate}onEnded(){this.isPlaying=false}getLoop(){if(false===this.hasPlaybackControl){console.warn(\"THREE.Audio: this Audio has no playback control.\");return false}return this.loop}setLoop(e){if(false!==this.hasPlaybackControl){this.loop=e;true===this.isPlaying&&(this.source.loop=this.loop);return this}console.warn(\"THREE.Audio: this Audio has no playback control.\")}setLoopStart(e){this.loopStart=e;return this}setLoopEnd(e){this.loopEnd=e;return this}getVolume(){return this.gain.gain.value}setVolume(e){this.gain.gain.setTargetAtTime(e,this.context.currentTime,.01);return this}}const tc=new Vector3;const nc=new Quaternion;const rc=new Vector3;const ic=new Vector3;class PositionalAudio extends Audio{constructor(e){super(e);this.panner=this.context.createPanner();this.panner.panningModel=\"HRTF\";this.panner.connect(this.gain)}getOutput(){return this.panner}getRefDistance(){return this.panner.refDistance}setRefDistance(e){this.panner.refDistance=e;return this}getRolloffFactor(){return this.panner.rolloffFactor}setRolloffFactor(e){this.panner.rolloffFactor=e;return this}getDistanceModel(){return this.panner.distanceModel}setDistanceModel(e){this.panner.distanceModel=e;return this}getMaxDistance(){return this.panner.maxDistance}setMaxDistance(e){this.panner.maxDistance=e;return this}setDirectionalCone(e,t,n){this.panner.coneInnerAngle=e;this.panner.coneOuterAngle=t;this.panner.coneOuterGain=n;return this}updateMatrixWorld(e){super.updateMatrixWorld(e);if(true===this.hasPlaybackControl&&false===this.isPlaying)return;this.matrixWorld.decompose(tc,nc,rc);ic.set(0,0,1).applyQuaternion(nc);const t=this.panner;if(t.positionX){const e=this.context.currentTime+this.listener.timeDelta;t.positionX.linearRampToValueAtTime(tc.x,e);t.positionY.linearRampToValueAtTime(tc.y,e);t.positionZ.linearRampToValueAtTime(tc.z,e);t.orientationX.linearRampToValueAtTime(ic.x,e);t.orientationY.linearRampToValueAtTime(ic.y,e);t.orientationZ.linearRampToValueAtTime(ic.z,e)}else{t.setPosition(tc.x,tc.y,tc.z);t.setOrientation(ic.x,ic.y,ic.z)}}}class AudioAnalyser{constructor(e,t=2048){this.analyser=e.context.createAnalyser();this.analyser.fftSize=t;this.data=new Uint8Array(this.analyser.frequencyBinCount);e.getOutput().connect(this.analyser)}getFrequencyData(){this.analyser.getByteFrequencyData(this.data);return this.data}getAverageFrequency(){let e=0;const t=this.getFrequencyData();for(let n=0;n<t.length;n++)e+=t[n];return e/t.length}}class PropertyMixer{constructor(e,t,n){this.binding=e;this.valueSize=n;let r,i,s;switch(t){case\"quaternion\":r=this._slerp;i=this._slerpAdditive;s=this._setAdditiveIdentityQuaternion;this.buffer=new Float64Array(6*n);this._workIndex=5;break;case\"string\":case\"bool\":r=this._select;i=this._select;s=this._setAdditiveIdentityOther;this.buffer=new Array(5*n);break;default:r=this._lerp;i=this._lerpAdditive;s=this._setAdditiveIdentityNumeric;this.buffer=new Float64Array(5*n)}this._mixBufferRegion=r;this._mixBufferRegionAdditive=i;this._setIdentity=s;this._origIndex=3;this._addIndex=4;this.cumulativeWeight=0;this.cumulativeWeightAdditive=0;this.useCount=0;this.referenceCount=0}accumulate(e,t){const n=this.buffer,r=this.valueSize,i=e*r+r;let s=this.cumulativeWeight;if(0===s){for(let e=0;e!==r;++e)n[i+e]=n[e];s=t}else{s+=t;const e=t/s;this._mixBufferRegion(n,i,0,e,r)}this.cumulativeWeight=s}accumulateAdditive(e){const t=this.buffer,n=this.valueSize,r=n*this._addIndex;0===this.cumulativeWeightAdditive&&this._setIdentity();this._mixBufferRegionAdditive(t,r,0,e,n);this.cumulativeWeightAdditive+=e}apply(e){const t=this.valueSize,n=this.buffer,r=e*t+t,i=this.cumulativeWeight,s=this.cumulativeWeightAdditive,a=this.binding;this.cumulativeWeight=0;this.cumulativeWeightAdditive=0;if(i<1){const e=t*this._origIndex;this._mixBufferRegion(n,r,e,1-i,t)}s>0&&this._mixBufferRegionAdditive(n,r,this._addIndex*t,1,t);for(let e=t,i=t+t;e!==i;++e)if(n[e]!==n[e+t]){a.setValue(n,r);break}}saveOriginalState(){const e=this.binding;const t=this.buffer,n=this.valueSize,r=n*this._origIndex;e.getValue(t,r);for(let e=n,i=r;e!==i;++e)t[e]=t[r+e%n];this._setIdentity();this.cumulativeWeight=0;this.cumulativeWeightAdditive=0}restoreOriginalState(){const e=3*this.valueSize;this.binding.setValue(this.buffer,e)}_setAdditiveIdentityNumeric(){const e=this._addIndex*this.valueSize;const t=e+this.valueSize;for(let n=e;n<t;n++)this.buffer[n]=0}_setAdditiveIdentityQuaternion(){this._setAdditiveIdentityNumeric();this.buffer[this._addIndex*this.valueSize+3]=1}_setAdditiveIdentityOther(){const e=this._origIndex*this.valueSize;const t=this._addIndex*this.valueSize;for(let n=0;n<this.valueSize;n++)this.buffer[t+n]=this.buffer[e+n]}_select(e,t,n,r,i){if(r>=.5)for(let r=0;r!==i;++r)e[t+r]=e[n+r]}_slerp(e,t,n,r){Quaternion.slerpFlat(e,t,e,t,e,n,r)}_slerpAdditive(e,t,n,r,i){const s=this._workIndex*i;Quaternion.multiplyQuaternionsFlat(e,s,e,t,e,n);Quaternion.slerpFlat(e,t,e,t,e,s,r)}_lerp(e,t,n,r,i){const s=1-r;for(let a=0;a!==i;++a){const i=t+a;e[i]=e[i]*s+e[n+a]*r}}_lerpAdditive(e,t,n,r,i){for(let s=0;s!==i;++s){const i=t+s;e[i]=e[i]+e[n+s]*r}}}const sc=\"\\\\[\\\\]\\\\.:\\\\/\";const ac=new RegExp(\"[\"+sc+\"]\",\"g\");const oc=\"[^\"+sc+\"]\";const lc=\"[^\"+sc.replace(\"\\\\.\",\"\")+\"]\";const cc=/((?:WC+[\\/:])*)/.source.replace(\"WC\",oc);const uc=/(WCOD+)?/.source.replace(\"WCOD\",lc);const hc=/(?:\\.(WC+)(?:\\[(.+)\\])?)?/.source.replace(\"WC\",oc);const dc=/\\.(WC+)(?:\\[(.+)\\])?/.source.replace(\"WC\",oc);const pc=new RegExp(\"^\"+cc+uc+hc+dc+\"$\");const fc=[\"material\",\"materials\",\"bones\"];class Composite{constructor(e,t,n){const r=n||PropertyBinding.parseTrackName(t);this._targetGroup=e;this._bindings=e.subscribe_(t,r)}getValue(e,t){this.bind();const n=this._targetGroup.nCachedObjects_,r=this._bindings[n];void 0!==r&&r.getValue(e,t)}setValue(e,t){const n=this._bindings;for(let r=this._targetGroup.nCachedObjects_,i=n.length;r!==i;++r)n[r].setValue(e,t)}bind(){const e=this._bindings;for(let t=this._targetGroup.nCachedObjects_,n=e.length;t!==n;++t)e[t].bind()}unbind(){const e=this._bindings;for(let t=this._targetGroup.nCachedObjects_,n=e.length;t!==n;++t)e[t].unbind()}}class PropertyBinding{constructor(e,t,n){this.path=t;this.parsedPath=n||PropertyBinding.parseTrackName(t);this.node=PropertyBinding.findNode(e,this.parsedPath.nodeName)||e;this.rootNode=e;this.getValue=this._getValue_unbound;this.setValue=this._setValue_unbound}static create(e,t,n){return e&&e.isAnimationObjectGroup?new PropertyBinding.Composite(e,t,n):new PropertyBinding(e,t,n)}\n/**\n\t * Replaces spaces with underscores and removes unsupported characters from\n\t * node names, to ensure compatibility with parseTrackName().\n\t *\n\t * @param {string} name Node name to be sanitized.\n\t * @return {string}\n\t */static sanitizeNodeName(e){return e.replace(/\\s/g,\"_\").replace(ac,\"\")}static parseTrackName(e){const t=pc.exec(e);if(!t)throw new Error(\"PropertyBinding: Cannot parse trackName: \"+e);const n={nodeName:t[2],objectName:t[3],objectIndex:t[4],propertyName:t[5],propertyIndex:t[6]};const r=n.nodeName&&n.nodeName.lastIndexOf(\".\");if(void 0!==r&&-1!==r){const e=n.nodeName.substring(r+1);if(-1!==fc.indexOf(e)){n.nodeName=n.nodeName.substring(0,r);n.objectName=e}}if(null===n.propertyName||0===n.propertyName.length)throw new Error(\"PropertyBinding: can not parse propertyName from trackName: \"+e);return n}static findNode(e,t){if(!t||\"\"===t||\".\"===t||-1===t||t===e.name||t===e.uuid)return e;if(e.skeleton){const n=e.skeleton.getBoneByName(t);if(void 0!==n)return n}if(e.children){const searchNodeSubtree=function(e){for(let n=0;n<e.length;n++){const r=e[n];if(r.name===t||r.uuid===t)return r;const i=searchNodeSubtree(r.children);if(i)return i}return null};const n=searchNodeSubtree(e.children);if(n)return n}return null}_getValue_unavailable(){}_setValue_unavailable(){}_getValue_direct(e,t){e[t]=this.targetObject[this.propertyName]}_getValue_array(e,t){const n=this.resolvedProperty;for(let r=0,i=n.length;r!==i;++r)e[t++]=n[r]}_getValue_arrayElement(e,t){e[t]=this.resolvedProperty[this.propertyIndex]}_getValue_toArray(e,t){this.resolvedProperty.toArray(e,t)}_setValue_direct(e,t){this.targetObject[this.propertyName]=e[t]}_setValue_direct_setNeedsUpdate(e,t){this.targetObject[this.propertyName]=e[t];this.targetObject.needsUpdate=true}_setValue_direct_setMatrixWorldNeedsUpdate(e,t){this.targetObject[this.propertyName]=e[t];this.targetObject.matrixWorldNeedsUpdate=true}_setValue_array(e,t){const n=this.resolvedProperty;for(let r=0,i=n.length;r!==i;++r)n[r]=e[t++]}_setValue_array_setNeedsUpdate(e,t){const n=this.resolvedProperty;for(let r=0,i=n.length;r!==i;++r)n[r]=e[t++];this.targetObject.needsUpdate=true}_setValue_array_setMatrixWorldNeedsUpdate(e,t){const n=this.resolvedProperty;for(let r=0,i=n.length;r!==i;++r)n[r]=e[t++];this.targetObject.matrixWorldNeedsUpdate=true}_setValue_arrayElement(e,t){this.resolvedProperty[this.propertyIndex]=e[t]}_setValue_arrayElement_setNeedsUpdate(e,t){this.resolvedProperty[this.propertyIndex]=e[t];this.targetObject.needsUpdate=true}_setValue_arrayElement_setMatrixWorldNeedsUpdate(e,t){this.resolvedProperty[this.propertyIndex]=e[t];this.targetObject.matrixWorldNeedsUpdate=true}_setValue_fromArray(e,t){this.resolvedProperty.fromArray(e,t)}_setValue_fromArray_setNeedsUpdate(e,t){this.resolvedProperty.fromArray(e,t);this.targetObject.needsUpdate=true}_setValue_fromArray_setMatrixWorldNeedsUpdate(e,t){this.resolvedProperty.fromArray(e,t);this.targetObject.matrixWorldNeedsUpdate=true}_getValue_unbound(e,t){this.bind();this.getValue(e,t)}_setValue_unbound(e,t){this.bind();this.setValue(e,t)}bind(){let e=this.node;const t=this.parsedPath;const n=t.objectName;const r=t.propertyName;let i=t.propertyIndex;if(!e){e=PropertyBinding.findNode(this.rootNode,t.nodeName)||this.rootNode;this.node=e}this.getValue=this._getValue_unavailable;this.setValue=this._setValue_unavailable;if(!e){console.error(\"THREE.PropertyBinding: Trying to update node for track: \"+this.path+\" but it wasn't found.\");return}if(n){let r=t.objectIndex;switch(n){case\"materials\":if(!e.material){console.error(\"THREE.PropertyBinding: Can not bind to material as node does not have a material.\",this);return}if(!e.material.materials){console.error(\"THREE.PropertyBinding: Can not bind to material.materials as node.material does not have a materials array.\",this);return}e=e.material.materials;break;case\"bones\":if(!e.skeleton){console.error(\"THREE.PropertyBinding: Can not bind to bones as node does not have a skeleton.\",this);return}e=e.skeleton.bones;for(let t=0;t<e.length;t++)if(e[t].name===r){r=t;break}break;default:if(void 0===e[n]){console.error(\"THREE.PropertyBinding: Can not bind to objectName of node undefined.\",this);return}e=e[n]}if(void 0!==r){if(void 0===e[r]){console.error(\"THREE.PropertyBinding: Trying to bind to objectIndex of objectName, but is undefined.\",this,e);return}e=e[r]}}const s=e[r];if(void 0===s){const n=t.nodeName;console.error(\"THREE.PropertyBinding: Trying to update property for track: \"+n+\".\"+r+\" but it wasn't found.\",e);return}let a=this.Versioning.None;this.targetObject=e;void 0!==e.needsUpdate?a=this.Versioning.NeedsUpdate:void 0!==e.matrixWorldNeedsUpdate&&(a=this.Versioning.MatrixWorldNeedsUpdate);let o=this.BindingType.Direct;if(void 0!==i){if(\"morphTargetInfluences\"===r){if(!e.geometry){console.error(\"THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.\",this);return}if(!e.geometry.isBufferGeometry){console.error(\"THREE.PropertyBinding: Can not bind to morphTargetInfluences on THREE.Geometry. Use THREE.BufferGeometry instead.\",this);return}if(!e.geometry.morphAttributes){console.error(\"THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.morphAttributes.\",this);return}void 0!==e.morphTargetDictionary[i]&&(i=e.morphTargetDictionary[i])}o=this.BindingType.ArrayElement;this.resolvedProperty=s;this.propertyIndex=i}else if(void 0!==s.fromArray&&void 0!==s.toArray){o=this.BindingType.HasFromToArray;this.resolvedProperty=s}else if(Array.isArray(s)){o=this.BindingType.EntireArray;this.resolvedProperty=s}else this.propertyName=r;this.getValue=this.GetterByBindingType[o];this.setValue=this.SetterByBindingTypeAndVersioning[o][a]}unbind(){this.node=null;this.getValue=this._getValue_unbound;this.setValue=this._setValue_unbound}}PropertyBinding.Composite=Composite;PropertyBinding.prototype.BindingType={Direct:0,EntireArray:1,ArrayElement:2,HasFromToArray:3};PropertyBinding.prototype.Versioning={None:0,NeedsUpdate:1,MatrixWorldNeedsUpdate:2};PropertyBinding.prototype.GetterByBindingType=[PropertyBinding.prototype._getValue_direct,PropertyBinding.prototype._getValue_array,PropertyBinding.prototype._getValue_arrayElement,PropertyBinding.prototype._getValue_toArray];PropertyBinding.prototype.SetterByBindingTypeAndVersioning=[[PropertyBinding.prototype._setValue_direct,PropertyBinding.prototype._setValue_direct_setNeedsUpdate,PropertyBinding.prototype._setValue_direct_setMatrixWorldNeedsUpdate],[PropertyBinding.prototype._setValue_array,PropertyBinding.prototype._setValue_array_setNeedsUpdate,PropertyBinding.prototype._setValue_array_setMatrixWorldNeedsUpdate],[PropertyBinding.prototype._setValue_arrayElement,PropertyBinding.prototype._setValue_arrayElement_setNeedsUpdate,PropertyBinding.prototype._setValue_arrayElement_setMatrixWorldNeedsUpdate],[PropertyBinding.prototype._setValue_fromArray,PropertyBinding.prototype._setValue_fromArray_setNeedsUpdate,PropertyBinding.prototype._setValue_fromArray_setMatrixWorldNeedsUpdate]];class AnimationObjectGroup{constructor(){this.uuid=generateUUID();this._objects=Array.prototype.slice.call(arguments);this.nCachedObjects_=0;const e={};this._indicesByUUID=e;for(let t=0,n=arguments.length;t!==n;++t)e[arguments[t].uuid]=t;this._paths=[];this._parsedPaths=[];this._bindings=[];this._bindingsIndicesByPath={};const t=this;this.stats={objects:{get total(){return t._objects.length},get inUse(){return this.total-t.nCachedObjects_}},get bindingsPerObject(){return t._bindings.length}}}add(){const e=this._objects,t=this._indicesByUUID,n=this._paths,r=this._parsedPaths,i=this._bindings,s=i.length;let a,o=e.length,l=this.nCachedObjects_;for(let c=0,u=arguments.length;c!==u;++c){const u=arguments[c],h=u.uuid;let d=t[h];if(void 0===d){d=o++;t[h]=d;e.push(u);for(let e=0,t=s;e!==t;++e)i[e].push(new PropertyBinding(u,n[e],r[e]))}else if(d<l){a=e[d];const o=--l,c=e[o];t[c.uuid]=d;e[d]=c;t[h]=o;e[o]=u;for(let e=0,t=s;e!==t;++e){const t=i[e],s=t[o];let a=t[d];t[d]=s;void 0===a&&(a=new PropertyBinding(u,n[e],r[e]));t[o]=a}}else e[d]!==a&&console.error(\"THREE.AnimationObjectGroup: Different objects with the same UUID detected. Clean the caches or recreate your infrastructure when reloading scenes.\")}this.nCachedObjects_=l}remove(){const e=this._objects,t=this._indicesByUUID,n=this._bindings,r=n.length;let i=this.nCachedObjects_;for(let s=0,a=arguments.length;s!==a;++s){const a=arguments[s],o=a.uuid,l=t[o];if(void 0!==l&&l>=i){const s=i++,c=e[s];t[c.uuid]=l;e[l]=c;t[o]=s;e[s]=a;for(let e=0,t=r;e!==t;++e){const t=n[e],r=t[s],i=t[l];t[l]=r;t[s]=i}}}this.nCachedObjects_=i}uncache(){const e=this._objects,t=this._indicesByUUID,n=this._bindings,r=n.length;let i=this.nCachedObjects_,s=e.length;for(let a=0,o=arguments.length;a!==o;++a){const o=arguments[a],l=o.uuid,c=t[l];if(void 0!==c){delete t[l];if(c<i){const a=--i,o=e[a],l=--s,u=e[l];t[o.uuid]=c;e[c]=o;t[u.uuid]=a;e[a]=u;e.pop();for(let e=0,t=r;e!==t;++e){const t=n[e],r=t[a],i=t[l];t[c]=r;t[a]=i;t.pop()}}else{const i=--s,a=e[i];i>0&&(t[a.uuid]=c);e[c]=a;e.pop();for(let e=0,t=r;e!==t;++e){const t=n[e];t[c]=t[i];t.pop()}}}}this.nCachedObjects_=i}subscribe_(e,t){const n=this._bindingsIndicesByPath;let r=n[e];const i=this._bindings;if(void 0!==r)return i[r];const s=this._paths,a=this._parsedPaths,o=this._objects,l=o.length,c=this.nCachedObjects_,u=new Array(l);r=i.length;n[e]=r;s.push(e);a.push(t);i.push(u);for(let n=c,r=o.length;n!==r;++n){const r=o[n];u[n]=new PropertyBinding(r,e,t)}return u}unsubscribe_(e){const t=this._bindingsIndicesByPath,n=t[e];if(void 0!==n){const r=this._paths,i=this._parsedPaths,s=this._bindings,a=s.length-1,o=s[a],l=e[a];t[l]=n;s[n]=o;s.pop();i[n]=i[a];i.pop();r[n]=r[a];r.pop()}}}AnimationObjectGroup.prototype.isAnimationObjectGroup=true;class AnimationAction{constructor(e,t,n=null,r=t.blendMode){this._mixer=e;this._clip=t;this._localRoot=n;this.blendMode=r;const i=t.tracks,s=i.length,a=new Array(s);const o={endingStart:Gt,endingEnd:Gt};for(let e=0;e!==s;++e){const t=i[e].createInterpolant(null);a[e]=t;t.settings=o}this._interpolantSettings=o;this._interpolants=a;this._propertyBindings=new Array(s);this._cacheIndex=null;this._byClipCacheIndex=null;this._timeScaleInterpolant=null;this._weightInterpolant=null;this.loop=Bt;this._loopCount=-1;this._startTime=null;this.time=0;this.timeScale=1;this._effectiveTimeScale=1;this.weight=1;this._effectiveWeight=1;this.repetitions=Infinity;this.paused=false;this.enabled=true;this.clampWhenFinished=false;this.zeroSlopeAtStart=true;this.zeroSlopeAtEnd=true}play(){this._mixer._activateAction(this);return this}stop(){this._mixer._deactivateAction(this);return this.reset()}reset(){this.paused=false;this.enabled=true;this.time=0;this._loopCount=-1;this._startTime=null;return this.stopFading().stopWarping()}isRunning(){return this.enabled&&!this.paused&&0!==this.timeScale&&null===this._startTime&&this._mixer._isActiveAction(this)}isScheduled(){return this._mixer._isActiveAction(this)}startAt(e){this._startTime=e;return this}setLoop(e,t){this.loop=e;this.repetitions=t;return this}setEffectiveWeight(e){this.weight=e;this._effectiveWeight=this.enabled?e:0;return this.stopFading()}getEffectiveWeight(){return this._effectiveWeight}fadeIn(e){return this._scheduleFading(e,0,1)}fadeOut(e){return this._scheduleFading(e,1,0)}crossFadeFrom(e,t,n){e.fadeOut(t);this.fadeIn(t);if(n){const n=this._clip.duration,r=e._clip.duration,i=r/n,s=n/r;e.warp(1,i,t);this.warp(s,1,t)}return this}crossFadeTo(e,t,n){return e.crossFadeFrom(this,t,n)}stopFading(){const e=this._weightInterpolant;if(null!==e){this._weightInterpolant=null;this._mixer._takeBackControlInterpolant(e)}return this}setEffectiveTimeScale(e){this.timeScale=e;this._effectiveTimeScale=this.paused?0:e;return this.stopWarping()}getEffectiveTimeScale(){return this._effectiveTimeScale}setDuration(e){this.timeScale=this._clip.duration/e;return this.stopWarping()}syncWith(e){this.time=e.time;this.timeScale=e.timeScale;return this.stopWarping()}halt(e){return this.warp(this._effectiveTimeScale,0,e)}warp(e,t,n){const r=this._mixer,i=r.time,s=this.timeScale;let a=this._timeScaleInterpolant;if(null===a){a=r._lendControlInterpolant();this._timeScaleInterpolant=a}const o=a.parameterPositions,l=a.sampleValues;o[0]=i;o[1]=i+n;l[0]=e/s;l[1]=t/s;return this}stopWarping(){const e=this._timeScaleInterpolant;if(null!==e){this._timeScaleInterpolant=null;this._mixer._takeBackControlInterpolant(e)}return this}getMixer(){return this._mixer}getClip(){return this._clip}getRoot(){return this._localRoot||this._mixer._root}_update(e,t,n,r){if(!this.enabled){this._updateWeight(e);return}const i=this._startTime;if(null!==i){const r=(e-i)*n;if(r<0||0===n)return;this._startTime=null;t=n*r}t*=this._updateTimeScale(e);const s=this._updateTime(t);const a=this._updateWeight(e);if(a>0){const e=this._interpolants;const t=this._propertyBindings;switch(this.blendMode){case kt:for(let n=0,r=e.length;n!==r;++n){e[n].evaluate(s);t[n].accumulateAdditive(a)}break;case Ht:default:for(let n=0,i=e.length;n!==i;++n){e[n].evaluate(s);t[n].accumulate(r,a)}}}}_updateWeight(e){let t=0;if(this.enabled){t=this.weight;const n=this._weightInterpolant;if(null!==n){const r=n.evaluate(e)[0];t*=r;if(e>n.parameterPositions[1]){this.stopFading();0===r&&(this.enabled=false)}}}this._effectiveWeight=t;return t}_updateTimeScale(e){let t=0;if(!this.paused){t=this.timeScale;const n=this._timeScaleInterpolant;if(null!==n){const r=n.evaluate(e)[0];t*=r;if(e>n.parameterPositions[1]){this.stopWarping();0===t?this.paused=true:this.timeScale=t}}}this._effectiveTimeScale=t;return t}_updateTime(e){const t=this._clip.duration;const n=this.loop;let r=this.time+e;let i=this._loopCount;const s=n===Vt;if(0===e)return-1===i?r:s&&1===(1&i)?t-r:r;if(n===Dt){if(-1===i){this._loopCount=0;this._setEndings(true,true,false)}e:{if(r>=t)r=t;else{if(!(r<0)){this.time=r;break e}r=0}this.clampWhenFinished?this.paused=true:this.enabled=false;this.time=r;this._mixer.dispatchEvent({type:\"finished\",action:this,direction:e<0?-1:1})}}else{if(-1===i)if(e>=0){i=0;this._setEndings(true,0===this.repetitions,s)}else this._setEndings(0===this.repetitions,true,s);if(r>=t||r<0){const n=Math.floor(r/t);r-=t*n;i+=Math.abs(n);const a=this.repetitions-i;if(a<=0){this.clampWhenFinished?this.paused=true:this.enabled=false;r=e>0?t:0;this.time=r;this._mixer.dispatchEvent({type:\"finished\",action:this,direction:e>0?1:-1})}else{if(1===a){const t=e<0;this._setEndings(t,!t,s)}else this._setEndings(false,false,s);this._loopCount=i;this.time=r;this._mixer.dispatchEvent({type:\"loop\",action:this,loopDelta:n})}}else this.time=r;if(s&&1===(1&i))return t-r}return r}_setEndings(e,t,n){const r=this._interpolantSettings;if(n){r.endingStart=Ft;r.endingEnd=Ft}else{r.endingStart=e?this.zeroSlopeAtStart?Ft:Gt:Ot;r.endingEnd=t?this.zeroSlopeAtEnd?Ft:Gt:Ot}}_scheduleFading(e,t,n){const r=this._mixer,i=r.time;let s=this._weightInterpolant;if(null===s){s=r._lendControlInterpolant();this._weightInterpolant=s}const a=s.parameterPositions,o=s.sampleValues;a[0]=i;o[0]=t;a[1]=i+e;o[1]=n;return this}}class AnimationMixer extends EventDispatcher{constructor(e){super();this._root=e;this._initMemoryManager();this._accuIndex=0;this.time=0;this.timeScale=1}_bindAction(e,t){const n=e._localRoot||this._root,r=e._clip.tracks,i=r.length,s=e._propertyBindings,a=e._interpolants,o=n.uuid,l=this._bindingsByRootAndName;let c=l[o];if(void 0===c){c={};l[o]=c}for(let e=0;e!==i;++e){const i=r[e],l=i.name;let u=c[l];if(void 0!==u)s[e]=u;else{u=s[e];if(void 0!==u){if(null===u._cacheIndex){++u.referenceCount;this._addInactiveBinding(u,o,l)}continue}const r=t&&t._propertyBindings[e].binding.parsedPath;u=new PropertyMixer(PropertyBinding.create(n,l,r),i.ValueTypeName,i.getValueSize());++u.referenceCount;this._addInactiveBinding(u,o,l);s[e]=u}a[e].resultBuffer=u.buffer}}_activateAction(e){if(!this._isActiveAction(e)){if(null===e._cacheIndex){const t=(e._localRoot||this._root).uuid,n=e._clip.uuid,r=this._actionsByClip[n];this._bindAction(e,r&&r.knownActions[0]);this._addInactiveAction(e,n,t)}const t=e._propertyBindings;for(let e=0,n=t.length;e!==n;++e){const n=t[e];if(0===n.useCount++){this._lendBinding(n);n.saveOriginalState()}}this._lendAction(e)}}_deactivateAction(e){if(this._isActiveAction(e)){const t=e._propertyBindings;for(let e=0,n=t.length;e!==n;++e){const n=t[e];if(0===--n.useCount){n.restoreOriginalState();this._takeBackBinding(n)}}this._takeBackAction(e)}}_initMemoryManager(){this._actions=[];this._nActiveActions=0;this._actionsByClip={};this._bindings=[];this._nActiveBindings=0;this._bindingsByRootAndName={};this._controlInterpolants=[];this._nActiveControlInterpolants=0;const e=this;this.stats={actions:{get total(){return e._actions.length},get inUse(){return e._nActiveActions}},bindings:{get total(){return e._bindings.length},get inUse(){return e._nActiveBindings}},controlInterpolants:{get total(){return e._controlInterpolants.length},get inUse(){return e._nActiveControlInterpolants}}}}_isActiveAction(e){const t=e._cacheIndex;return null!==t&&t<this._nActiveActions}_addInactiveAction(e,t,n){const r=this._actions,i=this._actionsByClip;let s=i[t];if(void 0===s){s={knownActions:[e],actionByRoot:{}};e._byClipCacheIndex=0;i[t]=s}else{const t=s.knownActions;e._byClipCacheIndex=t.length;t.push(e)}e._cacheIndex=r.length;r.push(e);s.actionByRoot[n]=e}_removeInactiveAction(e){const t=this._actions,n=t[t.length-1],r=e._cacheIndex;n._cacheIndex=r;t[r]=n;t.pop();e._cacheIndex=null;const i=e._clip.uuid,s=this._actionsByClip,a=s[i],o=a.knownActions,l=o[o.length-1],c=e._byClipCacheIndex;l._byClipCacheIndex=c;o[c]=l;o.pop();e._byClipCacheIndex=null;const u=a.actionByRoot,h=(e._localRoot||this._root).uuid;delete u[h];0===o.length&&delete s[i];this._removeInactiveBindingsForAction(e)}_removeInactiveBindingsForAction(e){const t=e._propertyBindings;for(let e=0,n=t.length;e!==n;++e){const n=t[e];0===--n.referenceCount&&this._removeInactiveBinding(n)}}_lendAction(e){const t=this._actions,n=e._cacheIndex,r=this._nActiveActions++,i=t[r];e._cacheIndex=r;t[r]=e;i._cacheIndex=n;t[n]=i}_takeBackAction(e){const t=this._actions,n=e._cacheIndex,r=--this._nActiveActions,i=t[r];e._cacheIndex=r;t[r]=e;i._cacheIndex=n;t[n]=i}_addInactiveBinding(e,t,n){const r=this._bindingsByRootAndName,i=this._bindings;let s=r[t];if(void 0===s){s={};r[t]=s}s[n]=e;e._cacheIndex=i.length;i.push(e)}_removeInactiveBinding(e){const t=this._bindings,n=e.binding,r=n.rootNode.uuid,i=n.path,s=this._bindingsByRootAndName,a=s[r],o=t[t.length-1],l=e._cacheIndex;o._cacheIndex=l;t[l]=o;t.pop();delete a[i];0===Object.keys(a).length&&delete s[r]}_lendBinding(e){const t=this._bindings,n=e._cacheIndex,r=this._nActiveBindings++,i=t[r];e._cacheIndex=r;t[r]=e;i._cacheIndex=n;t[n]=i}_takeBackBinding(e){const t=this._bindings,n=e._cacheIndex,r=--this._nActiveBindings,i=t[r];e._cacheIndex=r;t[r]=e;i._cacheIndex=n;t[n]=i}_lendControlInterpolant(){const e=this._controlInterpolants,t=this._nActiveControlInterpolants++;let n=e[t];if(void 0===n){n=new LinearInterpolant(new Float32Array(2),new Float32Array(2),1,this._controlInterpolantsResultBuffer);n.__cacheIndex=t;e[t]=n}return n}_takeBackControlInterpolant(e){const t=this._controlInterpolants,n=e.__cacheIndex,r=--this._nActiveControlInterpolants,i=t[r];e.__cacheIndex=r;t[r]=e;i.__cacheIndex=n;t[n]=i}clipAction(e,t,n){const r=t||this._root,i=r.uuid;let s=\"string\"===typeof e?AnimationClip.findByName(r,e):e;const a=null!==s?s.uuid:e;const o=this._actionsByClip[a];let l=null;void 0===n&&(n=null!==s?s.blendMode:Ht);if(void 0!==o){const e=o.actionByRoot[i];if(void 0!==e&&e.blendMode===n)return e;l=o.knownActions[0];null===s&&(s=l._clip)}if(null===s)return null;const c=new AnimationAction(this,s,t,n);this._bindAction(c,l);this._addInactiveAction(c,a,i);return c}existingAction(e,t){const n=t||this._root,r=n.uuid,i=\"string\"===typeof e?AnimationClip.findByName(n,e):e,s=i?i.uuid:e,a=this._actionsByClip[s];return void 0!==a&&a.actionByRoot[r]||null}stopAllAction(){const e=this._actions,t=this._nActiveActions;for(let n=t-1;n>=0;--n)e[n].stop();return this}update(e){e*=this.timeScale;const t=this._actions,n=this._nActiveActions,r=this.time+=e,i=Math.sign(e),s=this._accuIndex^=1;for(let a=0;a!==n;++a){const n=t[a];n._update(r,e,i,s)}const a=this._bindings,o=this._nActiveBindings;for(let e=0;e!==o;++e)a[e].apply(s);return this}setTime(e){this.time=0;for(let e=0;e<this._actions.length;e++)this._actions[e].time=0;return this.update(e)}getRoot(){return this._root}uncacheClip(e){const t=this._actions,n=e.uuid,r=this._actionsByClip,i=r[n];if(void 0!==i){const e=i.knownActions;for(let n=0,r=e.length;n!==r;++n){const r=e[n];this._deactivateAction(r);const i=r._cacheIndex,s=t[t.length-1];r._cacheIndex=null;r._byClipCacheIndex=null;s._cacheIndex=i;t[i]=s;t.pop();this._removeInactiveBindingsForAction(r)}delete r[n]}}uncacheRoot(e){const t=e.uuid,n=this._actionsByClip;for(const e in n){const r=n[e].actionByRoot,i=r[t];if(void 0!==i){this._deactivateAction(i);this._removeInactiveAction(i)}}const r=this._bindingsByRootAndName,i=r[t];if(void 0!==i)for(const e in i){const t=i[e];t.restoreOriginalState();this._removeInactiveBinding(t)}}uncacheAction(e,t){const n=this.existingAction(e,t);if(null!==n){this._deactivateAction(n);this._removeInactiveAction(n)}}}AnimationMixer.prototype._controlInterpolantsResultBuffer=new Float32Array(1);class Uniform{constructor(e){if(\"string\"===typeof e){console.warn(\"THREE.Uniform: Type parameter is no longer needed.\");e=arguments[1]}this.value=e}clone(){return new Uniform(void 0===this.value.clone?this.value:this.value.clone())}}class InstancedInterleavedBuffer extends InterleavedBuffer{constructor(e,t,n=1){super(e,t);this.meshPerAttribute=n}copy(e){super.copy(e);this.meshPerAttribute=e.meshPerAttribute;return this}clone(e){const t=super.clone(e);t.meshPerAttribute=this.meshPerAttribute;return t}toJSON(e){const t=super.toJSON(e);t.isInstancedInterleavedBuffer=true;t.meshPerAttribute=this.meshPerAttribute;return t}}InstancedInterleavedBuffer.prototype.isInstancedInterleavedBuffer=true;class GLBufferAttribute{constructor(e,t,n,r,i){this.buffer=e;this.type=t;this.itemSize=n;this.elementSize=r;this.count=i;this.version=0}set needsUpdate(e){true===e&&this.version++}setBuffer(e){this.buffer=e;return this}setType(e,t){this.type=e;this.elementSize=t;return this}setItemSize(e){this.itemSize=e;return this}setCount(e){this.count=e;return this}}GLBufferAttribute.prototype.isGLBufferAttribute=true;class Raycaster{constructor(e,t,n=0,r=Infinity){this.ray=new Ray(e,t);this.near=n;this.far=r;this.camera=null;this.layers=new Layers;this.params={Mesh:{},Line:{threshold:1},LOD:{},Points:{threshold:1},Sprite:{}}}set(e,t){this.ray.set(e,t)}setFromCamera(e,t){if(t&&t.isPerspectiveCamera){this.ray.origin.setFromMatrixPosition(t.matrixWorld);this.ray.direction.set(e.x,e.y,.5).unproject(t).sub(this.ray.origin).normalize();this.camera=t}else if(t&&t.isOrthographicCamera){this.ray.origin.set(e.x,e.y,(t.near+t.far)/(t.near-t.far)).unproject(t);this.ray.direction.set(0,0,-1).transformDirection(t.matrixWorld);this.camera=t}else console.error(\"THREE.Raycaster: Unsupported camera type: \"+t.type)}intersectObject(e,t=true,n=[]){intersectObject(e,this,n,t);n.sort(ascSort);return n}intersectObjects(e,t=true,n=[]){for(let r=0,i=e.length;r<i;r++)intersectObject(e[r],this,n,t);n.sort(ascSort);return n}}function ascSort(e,t){return e.distance-t.distance}function intersectObject(e,t,n,r){e.layers.test(t.layers)&&e.raycast(t,n);if(true===r){const r=e.children;for(let e=0,i=r.length;e<i;e++)intersectObject(r[e],t,n,true)}}class Spherical{constructor(e=1,t=0,n=0){this.radius=e;this.phi=t;this.theta=n;return this}set(e,t,n){this.radius=e;this.phi=t;this.theta=n;return this}copy(e){this.radius=e.radius;this.phi=e.phi;this.theta=e.theta;return this}makeSafe(){const e=1e-6;this.phi=Math.max(e,Math.min(Math.PI-e,this.phi));return this}setFromVector3(e){return this.setFromCartesianCoords(e.x,e.y,e.z)}setFromCartesianCoords(e,t,n){this.radius=Math.sqrt(e*e+t*t+n*n);if(0===this.radius){this.theta=0;this.phi=0}else{this.theta=Math.atan2(e,n);this.phi=Math.acos(clamp(t/this.radius,-1,1))}return this}clone(){return(new this.constructor).copy(this)}}class Cylindrical{constructor(e=1,t=0,n=0){this.radius=e;this.theta=t;this.y=n;return this}set(e,t,n){this.radius=e;this.theta=t;this.y=n;return this}copy(e){this.radius=e.radius;this.theta=e.theta;this.y=e.y;return this}setFromVector3(e){return this.setFromCartesianCoords(e.x,e.y,e.z)}setFromCartesianCoords(e,t,n){this.radius=Math.sqrt(e*e+n*n);this.theta=Math.atan2(e,n);this.y=t;return this}clone(){return(new this.constructor).copy(this)}}const mc=new Vector2;class Box2{constructor(e=new Vector2(Infinity,Infinity),t=new Vector2(-Infinity,-Infinity)){this.min=e;this.max=t}set(e,t){this.min.copy(e);this.max.copy(t);return this}setFromPoints(e){this.makeEmpty();for(let t=0,n=e.length;t<n;t++)this.expandByPoint(e[t]);return this}setFromCenterAndSize(e,t){const n=mc.copy(t).multiplyScalar(.5);this.min.copy(e).sub(n);this.max.copy(e).add(n);return this}clone(){return(new this.constructor).copy(this)}copy(e){this.min.copy(e.min);this.max.copy(e.max);return this}makeEmpty(){this.min.x=this.min.y=Infinity;this.max.x=this.max.y=-Infinity;return this}isEmpty(){return this.max.x<this.min.x||this.max.y<this.min.y}getCenter(e){return this.isEmpty()?e.set(0,0):e.addVectors(this.min,this.max).multiplyScalar(.5)}getSize(e){return this.isEmpty()?e.set(0,0):e.subVectors(this.max,this.min)}expandByPoint(e){this.min.min(e);this.max.max(e);return this}expandByVector(e){this.min.sub(e);this.max.add(e);return this}expandByScalar(e){this.min.addScalar(-e);this.max.addScalar(e);return this}containsPoint(e){return!(e.x<this.min.x||e.x>this.max.x||e.y<this.min.y||e.y>this.max.y)}containsBox(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y}getParameter(e,t){return t.set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y))}intersectsBox(e){return!(e.max.x<this.min.x||e.min.x>this.max.x||e.max.y<this.min.y||e.min.y>this.max.y)}clampPoint(e,t){return t.copy(e).clamp(this.min,this.max)}distanceToPoint(e){const t=mc.copy(e).clamp(this.min,this.max);return t.sub(e).length()}intersect(e){this.min.max(e.min);this.max.min(e.max);return this}union(e){this.min.min(e.min);this.max.max(e.max);return this}translate(e){this.min.add(e);this.max.add(e);return this}equals(e){return e.min.equals(this.min)&&e.max.equals(this.max)}}Box2.prototype.isBox2=true;const gc=new Vector3;const yc=new Vector3;class Line3{constructor(e=new Vector3,t=new Vector3){this.start=e;this.end=t}set(e,t){this.start.copy(e);this.end.copy(t);return this}copy(e){this.start.copy(e.start);this.end.copy(e.end);return this}getCenter(e){return e.addVectors(this.start,this.end).multiplyScalar(.5)}delta(e){return e.subVectors(this.end,this.start)}distanceSq(){return this.start.distanceToSquared(this.end)}distance(){return this.start.distanceTo(this.end)}at(e,t){return this.delta(t).multiplyScalar(e).add(this.start)}closestPointToPointParameter(e,t){gc.subVectors(e,this.start);yc.subVectors(this.end,this.start);const n=yc.dot(yc);const r=yc.dot(gc);let i=r/n;t&&(i=clamp(i,0,1));return i}closestPointToPoint(e,t,n){const r=this.closestPointToPointParameter(e,t);return this.delta(n).multiplyScalar(r).add(this.start)}applyMatrix4(e){this.start.applyMatrix4(e);this.end.applyMatrix4(e);return this}equals(e){return e.start.equals(this.start)&&e.end.equals(this.end)}clone(){return(new this.constructor).copy(this)}}const vc=new Vector3;class SpotLightHelper extends Object3D{constructor(e,t){super();this.light=e;this.light.updateMatrixWorld();this.matrix=e.matrixWorld;this.matrixAutoUpdate=false;this.color=t;const n=new BufferGeometry;const r=[0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,-1,0,1,0,0,0,0,1,1,0,0,0,0,-1,1];for(let e=0,t=1,n=32;e<n;e++,t++){const i=e/n*Math.PI*2;const s=t/n*Math.PI*2;r.push(Math.cos(i),Math.sin(i),1,Math.cos(s),Math.sin(s),1)}n.setAttribute(\"position\",new Float32BufferAttribute(r,3));const i=new LineBasicMaterial({fog:false,toneMapped:false});this.cone=new LineSegments(n,i);this.add(this.cone);this.update()}dispose(){this.cone.geometry.dispose();this.cone.material.dispose()}update(){this.light.updateMatrixWorld();const e=this.light.distance?this.light.distance:1e3;const t=e*Math.tan(this.light.angle);this.cone.scale.set(t,t,e);vc.setFromMatrixPosition(this.light.target.matrixWorld);this.cone.lookAt(vc);void 0!==this.color?this.cone.material.color.set(this.color):this.cone.material.color.copy(this.light.color)}}const xc=new Vector3;const bc=new Matrix4;const _c=new Matrix4;class SkeletonHelper extends LineSegments{constructor(e){const t=getBoneList(e);const n=new BufferGeometry;const r=[];const i=[];const s=new Color(0,0,1);const a=new Color(0,1,0);for(let e=0;e<t.length;e++){const n=t[e];if(n.parent&&n.parent.isBone){r.push(0,0,0);r.push(0,0,0);i.push(s.r,s.g,s.b);i.push(a.r,a.g,a.b)}}n.setAttribute(\"position\",new Float32BufferAttribute(r,3));n.setAttribute(\"color\",new Float32BufferAttribute(i,3));const o=new LineBasicMaterial({vertexColors:true,depthTest:false,depthWrite:false,toneMapped:false,transparent:true});super(n,o);this.type=\"SkeletonHelper\";this.isSkeletonHelper=true;this.root=e;this.bones=t;this.matrix=e.matrixWorld;this.matrixAutoUpdate=false}updateMatrixWorld(e){const t=this.bones;const n=this.geometry;const r=n.getAttribute(\"position\");_c.copy(this.root.matrixWorld).invert();for(let e=0,n=0;e<t.length;e++){const i=t[e];if(i.parent&&i.parent.isBone){bc.multiplyMatrices(_c,i.matrixWorld);xc.setFromMatrixPosition(bc);r.setXYZ(n,xc.x,xc.y,xc.z);bc.multiplyMatrices(_c,i.parent.matrixWorld);xc.setFromMatrixPosition(bc);r.setXYZ(n+1,xc.x,xc.y,xc.z);n+=2}}n.getAttribute(\"position\").needsUpdate=true;super.updateMatrixWorld(e)}}function getBoneList(e){const t=[];e&&e.isBone&&t.push(e);for(let n=0;n<e.children.length;n++)t.push.apply(t,getBoneList(e.children[n]));return t}class PointLightHelper extends Mesh{constructor(e,t,n){const r=new SphereGeometry(t,4,2);const i=new MeshBasicMaterial({wireframe:true,fog:false,toneMapped:false});super(r,i);this.light=e;this.light.updateMatrixWorld();this.color=n;this.type=\"PointLightHelper\";this.matrix=this.light.matrixWorld;this.matrixAutoUpdate=false;this.update()}dispose(){this.geometry.dispose();this.material.dispose()}update(){void 0!==this.color?this.material.color.set(this.color):this.material.color.copy(this.light.color)}}const Mc=new Vector3;const wc=new Color;const Sc=new Color;class HemisphereLightHelper extends Object3D{constructor(e,t,n){super();this.light=e;this.light.updateMatrixWorld();this.matrix=e.matrixWorld;this.matrixAutoUpdate=false;this.color=n;const r=new OctahedronGeometry(t);r.rotateY(.5*Math.PI);this.material=new MeshBasicMaterial({wireframe:true,fog:false,toneMapped:false});void 0===this.color&&(this.material.vertexColors=true);const i=r.getAttribute(\"position\");const s=new Float32Array(3*i.count);r.setAttribute(\"color\",new BufferAttribute(s,3));this.add(new Mesh(r,this.material));this.update()}dispose(){this.children[0].geometry.dispose();this.children[0].material.dispose()}update(){const e=this.children[0];if(void 0!==this.color)this.material.color.set(this.color);else{const t=e.geometry.getAttribute(\"color\");wc.copy(this.light.color);Sc.copy(this.light.groundColor);for(let e=0,n=t.count;e<n;e++){const r=e<n/2?wc:Sc;t.setXYZ(e,r.r,r.g,r.b)}t.needsUpdate=true}e.lookAt(Mc.setFromMatrixPosition(this.light.matrixWorld).negate())}}class GridHelper extends LineSegments{constructor(e=10,t=10,n=4473924,r=8947848){n=new Color(n);r=new Color(r);const i=t/2;const s=e/t;const a=e/2;const o=[],l=[];for(let e=0,c=0,u=-a;e<=t;e++,u+=s){o.push(-a,0,u,a,0,u);o.push(u,0,-a,u,0,a);const t=e===i?n:r;t.toArray(l,c);c+=3;t.toArray(l,c);c+=3;t.toArray(l,c);c+=3;t.toArray(l,c);c+=3}const c=new BufferGeometry;c.setAttribute(\"position\",new Float32BufferAttribute(o,3));c.setAttribute(\"color\",new Float32BufferAttribute(l,3));const u=new LineBasicMaterial({vertexColors:true,toneMapped:false});super(c,u);this.type=\"GridHelper\"}}class PolarGridHelper extends LineSegments{constructor(e=10,t=16,n=8,r=64,i=4473924,s=8947848){i=new Color(i);s=new Color(s);const a=[];const o=[];for(let n=0;n<=t;n++){const r=n/t*(2*Math.PI);const l=Math.sin(r)*e;const c=Math.cos(r)*e;a.push(0,0,0);a.push(l,0,c);const u=1&n?i:s;o.push(u.r,u.g,u.b);o.push(u.r,u.g,u.b)}for(let t=0;t<=n;t++){const l=1&t?i:s;const c=e-e/n*t;for(let e=0;e<r;e++){let t=e/r*(2*Math.PI);let n=Math.sin(t)*c;let i=Math.cos(t)*c;a.push(n,0,i);o.push(l.r,l.g,l.b);t=(e+1)/r*(2*Math.PI);n=Math.sin(t)*c;i=Math.cos(t)*c;a.push(n,0,i);o.push(l.r,l.g,l.b)}}const l=new BufferGeometry;l.setAttribute(\"position\",new Float32BufferAttribute(a,3));l.setAttribute(\"color\",new Float32BufferAttribute(o,3));const c=new LineBasicMaterial({vertexColors:true,toneMapped:false});super(l,c);this.type=\"PolarGridHelper\"}}const Tc=new Vector3;const Ec=new Vector3;const Ac=new Vector3;class DirectionalLightHelper extends Object3D{constructor(e,t,n){super();this.light=e;this.light.updateMatrixWorld();this.matrix=e.matrixWorld;this.matrixAutoUpdate=false;this.color=n;void 0===t&&(t=1);let r=new BufferGeometry;r.setAttribute(\"position\",new Float32BufferAttribute([-t,t,0,t,t,0,t,-t,0,-t,-t,0,-t,t,0],3));const i=new LineBasicMaterial({fog:false,toneMapped:false});this.lightPlane=new Line(r,i);this.add(this.lightPlane);r=new BufferGeometry;r.setAttribute(\"position\",new Float32BufferAttribute([0,0,0,0,0,1],3));this.targetLine=new Line(r,i);this.add(this.targetLine);this.update()}dispose(){this.lightPlane.geometry.dispose();this.lightPlane.material.dispose();this.targetLine.geometry.dispose();this.targetLine.material.dispose()}update(){Tc.setFromMatrixPosition(this.light.matrixWorld);Ec.setFromMatrixPosition(this.light.target.matrixWorld);Ac.subVectors(Ec,Tc);this.lightPlane.lookAt(Ec);if(void 0!==this.color){this.lightPlane.material.color.set(this.color);this.targetLine.material.color.set(this.color)}else{this.lightPlane.material.color.copy(this.light.color);this.targetLine.material.color.copy(this.light.color)}this.targetLine.lookAt(Ec);this.targetLine.scale.z=Ac.length()}}const Lc=new Vector3;const Cc=new Camera;class CameraHelper extends LineSegments{constructor(e){const t=new BufferGeometry;const n=new LineBasicMaterial({color:16777215,vertexColors:true,toneMapped:false});const r=[];const i=[];const s={};const a=new Color(16755200);const o=new Color(16711680);const l=new Color(43775);const c=new Color(16777215);const u=new Color(3355443);addLine(\"n1\",\"n2\",a);addLine(\"n2\",\"n4\",a);addLine(\"n4\",\"n3\",a);addLine(\"n3\",\"n1\",a);addLine(\"f1\",\"f2\",a);addLine(\"f2\",\"f4\",a);addLine(\"f4\",\"f3\",a);addLine(\"f3\",\"f1\",a);addLine(\"n1\",\"f1\",a);addLine(\"n2\",\"f2\",a);addLine(\"n3\",\"f3\",a);addLine(\"n4\",\"f4\",a);addLine(\"p\",\"n1\",o);addLine(\"p\",\"n2\",o);addLine(\"p\",\"n3\",o);addLine(\"p\",\"n4\",o);addLine(\"u1\",\"u2\",l);addLine(\"u2\",\"u3\",l);addLine(\"u3\",\"u1\",l);addLine(\"c\",\"t\",c);addLine(\"p\",\"c\",u);addLine(\"cn1\",\"cn2\",u);addLine(\"cn3\",\"cn4\",u);addLine(\"cf1\",\"cf2\",u);addLine(\"cf3\",\"cf4\",u);function addLine(e,t,n){addPoint(e,n);addPoint(t,n)}function addPoint(e,t){r.push(0,0,0);i.push(t.r,t.g,t.b);void 0===s[e]&&(s[e]=[]);s[e].push(r.length/3-1)}t.setAttribute(\"position\",new Float32BufferAttribute(r,3));t.setAttribute(\"color\",new Float32BufferAttribute(i,3));super(t,n);this.type=\"CameraHelper\";this.camera=e;this.camera.updateProjectionMatrix&&this.camera.updateProjectionMatrix();this.matrix=e.matrixWorld;this.matrixAutoUpdate=false;this.pointMap=s;this.update()}update(){const e=this.geometry;const t=this.pointMap;const n=1,r=1;Cc.projectionMatrixInverse.copy(this.camera.projectionMatrixInverse);setPoint(\"c\",t,e,Cc,0,0,-1);setPoint(\"t\",t,e,Cc,0,0,1);setPoint(\"n1\",t,e,Cc,-n,-r,-1);setPoint(\"n2\",t,e,Cc,n,-r,-1);setPoint(\"n3\",t,e,Cc,-n,r,-1);setPoint(\"n4\",t,e,Cc,n,r,-1);setPoint(\"f1\",t,e,Cc,-n,-r,1);setPoint(\"f2\",t,e,Cc,n,-r,1);setPoint(\"f3\",t,e,Cc,-n,r,1);setPoint(\"f4\",t,e,Cc,n,r,1);setPoint(\"u1\",t,e,Cc,.7*n,1.1*r,-1);setPoint(\"u2\",t,e,Cc,.7*-n,1.1*r,-1);setPoint(\"u3\",t,e,Cc,0,2*r,-1);setPoint(\"cf1\",t,e,Cc,-n,0,1);setPoint(\"cf2\",t,e,Cc,n,0,1);setPoint(\"cf3\",t,e,Cc,0,-r,1);setPoint(\"cf4\",t,e,Cc,0,r,1);setPoint(\"cn1\",t,e,Cc,-n,0,-1);setPoint(\"cn2\",t,e,Cc,n,0,-1);setPoint(\"cn3\",t,e,Cc,0,-r,-1);setPoint(\"cn4\",t,e,Cc,0,r,-1);e.getAttribute(\"position\").needsUpdate=true}dispose(){this.geometry.dispose();this.material.dispose()}}function setPoint(e,t,n,r,i,s,a){Lc.set(i,s,a).unproject(r);const o=t[e];if(void 0!==o){const e=n.getAttribute(\"position\");for(let t=0,n=o.length;t<n;t++)e.setXYZ(o[t],Lc.x,Lc.y,Lc.z)}}const Rc=new Box3;class BoxHelper extends LineSegments{constructor(e,t=16776960){const n=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]);const r=new Float32Array(24);const i=new BufferGeometry;i.setIndex(new BufferAttribute(n,1));i.setAttribute(\"position\",new BufferAttribute(r,3));super(i,new LineBasicMaterial({color:t,toneMapped:false}));this.object=e;this.type=\"BoxHelper\";this.matrixAutoUpdate=false;this.update()}update(e){void 0!==e&&console.warn(\"THREE.BoxHelper: .update() has no longer arguments.\");void 0!==this.object&&Rc.setFromObject(this.object);if(Rc.isEmpty())return;const t=Rc.min;const n=Rc.max;const r=this.geometry.attributes.position;const i=r.array;i[0]=n.x;i[1]=n.y;i[2]=n.z;i[3]=t.x;i[4]=n.y;i[5]=n.z;i[6]=t.x;i[7]=t.y;i[8]=n.z;i[9]=n.x;i[10]=t.y;i[11]=n.z;i[12]=n.x;i[13]=n.y;i[14]=t.z;i[15]=t.x;i[16]=n.y;i[17]=t.z;i[18]=t.x;i[19]=t.y;i[20]=t.z;i[21]=n.x;i[22]=t.y;i[23]=t.z;r.needsUpdate=true;this.geometry.computeBoundingSphere()}setFromObject(e){this.object=e;this.update();return this}copy(e){LineSegments.prototype.copy.call(this,e);this.object=e.object;return this}}class Box3Helper extends LineSegments{constructor(e,t=16776960){const n=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]);const r=[1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,-1,-1,1,-1,-1,-1,-1,1,-1,-1];const i=new BufferGeometry;i.setIndex(new BufferAttribute(n,1));i.setAttribute(\"position\",new Float32BufferAttribute(r,3));super(i,new LineBasicMaterial({color:t,toneMapped:false}));this.box=e;this.type=\"Box3Helper\";this.geometry.computeBoundingSphere()}updateMatrixWorld(e){const t=this.box;if(!t.isEmpty()){t.getCenter(this.position);t.getSize(this.scale);this.scale.multiplyScalar(.5);super.updateMatrixWorld(e)}}}class PlaneHelper extends Line{constructor(e,t=1,n=16776960){const r=n;const i=[1,-1,1,-1,1,1,-1,-1,1,1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,1,0,0,1,0,0,0];const s=new BufferGeometry;s.setAttribute(\"position\",new Float32BufferAttribute(i,3));s.computeBoundingSphere();super(s,new LineBasicMaterial({color:r,toneMapped:false}));this.type=\"PlaneHelper\";this.plane=e;this.size=t;const a=[1,1,1,-1,1,1,-1,-1,1,1,1,1,-1,-1,1,1,-1,1];const o=new BufferGeometry;o.setAttribute(\"position\",new Float32BufferAttribute(a,3));o.computeBoundingSphere();this.add(new Mesh(o,new MeshBasicMaterial({color:r,opacity:.2,transparent:true,depthWrite:false,toneMapped:false})))}updateMatrixWorld(e){let t=-this.plane.constant;Math.abs(t)<1e-8&&(t=1e-8);this.scale.set(.5*this.size,.5*this.size,t);this.children[0].material.side=t<0?d:h;this.lookAt(this.plane.normal);super.updateMatrixWorld(e)}}const Pc=new Vector3;let Ic,Dc;class ArrowHelper extends Object3D{constructor(e=new Vector3(0,0,1),t=new Vector3(0,0,0),n=1,r=16776960,i=.2*n,s=.2*i){super();this.type=\"ArrowHelper\";if(void 0===Ic){Ic=new BufferGeometry;Ic.setAttribute(\"position\",new Float32BufferAttribute([0,0,0,0,1,0],3));Dc=new CylinderGeometry(0,.5,1,5,1);Dc.translate(0,-.5,0)}this.position.copy(t);this.line=new Line(Ic,new LineBasicMaterial({color:r,toneMapped:false}));this.line.matrixAutoUpdate=false;this.add(this.line);this.cone=new Mesh(Dc,new MeshBasicMaterial({color:r,toneMapped:false}));this.cone.matrixAutoUpdate=false;this.add(this.cone);this.setDirection(e);this.setLength(n,i,s)}setDirection(e){if(e.y>.99999)this.quaternion.set(0,0,0,1);else if(e.y<-.99999)this.quaternion.set(1,0,0,0);else{Pc.set(e.z,0,-e.x).normalize();const t=Math.acos(e.y);this.quaternion.setFromAxisAngle(Pc,t)}}setLength(e,t=.2*e,n=.2*t){this.line.scale.set(1,Math.max(1e-4,e-t),1);this.line.updateMatrix();this.cone.scale.set(n,t,n);this.cone.position.y=e;this.cone.updateMatrix()}setColor(e){this.line.material.color.set(e);this.cone.material.color.set(e)}copy(e){super.copy(e,false);this.line.copy(e.line);this.cone.copy(e.cone);return this}}class AxesHelper extends LineSegments{constructor(e=1){const t=[0,0,0,e,0,0,0,0,0,0,e,0,0,0,0,0,0,e];const n=[1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1];const r=new BufferGeometry;r.setAttribute(\"position\",new Float32BufferAttribute(t,3));r.setAttribute(\"color\",new Float32BufferAttribute(n,3));const i=new LineBasicMaterial({vertexColors:true,toneMapped:false});super(r,i);this.type=\"AxesHelper\"}setColors(e,t,n){const r=new Color;const i=this.geometry.attributes.color.array;r.set(e);r.toArray(i,0);r.toArray(i,3);r.set(t);r.toArray(i,6);r.toArray(i,9);r.set(n);r.toArray(i,12);r.toArray(i,15);this.geometry.attributes.color.needsUpdate=true;return this}dispose(){this.geometry.dispose();this.material.dispose()}}class ShapePath{constructor(){this.type=\"ShapePath\";this.color=new Color;this.subPaths=[];this.currentPath=null}moveTo(e,t){this.currentPath=new Path;this.subPaths.push(this.currentPath);this.currentPath.moveTo(e,t);return this}lineTo(e,t){this.currentPath.lineTo(e,t);return this}quadraticCurveTo(e,t,n,r){this.currentPath.quadraticCurveTo(e,t,n,r);return this}bezierCurveTo(e,t,n,r,i,s){this.currentPath.bezierCurveTo(e,t,n,r,i,s);return this}splineThru(e){this.currentPath.splineThru(e);return this}toShapes(e,t){function toShapesNoHoles(e){const t=[];for(let n=0,r=e.length;n<r;n++){const r=e[n];const i=new Shape;i.curves=r.curves;t.push(i)}return t}function isPointInsidePolygon(e,t){const n=t.length;let r=false;for(let i=n-1,s=0;s<n;i=s++){let n=t[i];let a=t[s];let o=a.x-n.x;let l=a.y-n.y;if(Math.abs(l)>Number.EPSILON){if(l<0){n=t[s];o=-o;a=t[i];l=-l}if(e.y<n.y||e.y>a.y)continue;if(e.y===n.y){if(e.x===n.x)return true}else{const t=l*(e.x-n.x)-o*(e.y-n.y);if(0===t)return true;if(t<0)continue;r=!r}}else{if(e.y!==n.y)continue;if(a.x<=e.x&&e.x<=n.x||n.x<=e.x&&e.x<=a.x)return true}}return r}const n=ShapeUtils.isClockWise;const r=this.subPaths;if(0===r.length)return[];if(true===t)return toShapesNoHoles(r);let i,s,a;const o=[];if(1===r.length){s=r[0];a=new Shape;a.curves=s.curves;o.push(a);return o}let l=!n(r[0].getPoints());l=e?!l:l;const c=[];const u=[];let h=[];let d=0;let p;u[d]=void 0;h[d]=[];for(let t=0,a=r.length;t<a;t++){s=r[t];p=s.getPoints();i=n(p);i=e?!i:i;if(i){!l&&u[d]&&d++;u[d]={s:new Shape,p:p};u[d].s.curves=s.curves;l&&d++;h[d]=[]}else h[d].push({h:s,p:p[0]})}if(!u[0])return toShapesNoHoles(r);if(u.length>1){let e=false;const t=[];for(let e=0,t=u.length;e<t;e++)c[e]=[];for(let n=0,r=u.length;n<r;n++){const r=h[n];for(let i=0;i<r.length;i++){const s=r[i];let a=true;for(let r=0;r<u.length;r++)if(isPointInsidePolygon(s.p,u[r].p)){n!==r&&t.push({froms:n,tos:r,hole:i});if(a){a=false;c[r].push(s)}else e=true}a&&c[n].push(s)}}t.length>0&&(e||(h=c))}let f;for(let e=0,t=u.length;e<t;e++){a=u[e].s;o.push(a);f=h[e];for(let e=0,t=f.length;e<t;e++)a.holes.push(f[e].h)}return o}}const Bc=new Float32Array(1);const Vc=new Int32Array(Bc.buffer);class DataUtils{static toHalfFloat(e){if(e>65504){console.warn(\"THREE.DataUtils.toHalfFloat(): value exceeds 65504.\");e=65504}Bc[0]=e;const t=Vc[0];let n=t>>16&32768;let r=t>>12&2047;const i=t>>23&255;if(i<103)return n;if(i>142){n|=31744;n|=(255==i?0:1)&&8388607&t;return n}if(i<113){r|=2048;n|=(r>>114-i)+(r>>113-i&1);return n}n|=i-112<<10|r>>1;n+=1&r;return n}}const Nc=0;const Uc=1;const zc=0;const Gc=1;const Fc=2;function MeshFaceMaterial(e){console.warn(\"THREE.MeshFaceMaterial has been removed. Use an Array instead.\");return e}function MultiMaterial(e=[]){console.warn(\"THREE.MultiMaterial has been removed. Use an Array instead.\");e.isMultiMaterial=true;e.materials=e;e.clone=function(){return e.slice()};return e}function PointCloud(e,t){console.warn(\"THREE.PointCloud has been renamed to THREE.Points.\");return new Points(e,t)}function Particle(e){console.warn(\"THREE.Particle has been renamed to THREE.Sprite.\");return new Sprite(e)}function ParticleSystem(e,t){console.warn(\"THREE.ParticleSystem has been renamed to THREE.Points.\");return new Points(e,t)}function PointCloudMaterial(e){console.warn(\"THREE.PointCloudMaterial has been renamed to THREE.PointsMaterial.\");return new PointsMaterial(e)}function ParticleBasicMaterial(e){console.warn(\"THREE.ParticleBasicMaterial has been renamed to THREE.PointsMaterial.\");return new PointsMaterial(e)}function ParticleSystemMaterial(e){console.warn(\"THREE.ParticleSystemMaterial has been renamed to THREE.PointsMaterial.\");return new PointsMaterial(e)}function Vertex(e,t,n){console.warn(\"THREE.Vertex has been removed. Use THREE.Vector3 instead.\");return new Vector3(e,t,n)}function DynamicBufferAttribute(e,t){console.warn(\"THREE.DynamicBufferAttribute has been removed. Use new THREE.BufferAttribute().setUsage( THREE.DynamicDrawUsage ) instead.\");return new BufferAttribute(e,t).setUsage(yn)}function Int8Attribute(e,t){console.warn(\"THREE.Int8Attribute has been removed. Use new THREE.Int8BufferAttribute() instead.\");return new Int8BufferAttribute(e,t)}function Uint8Attribute(e,t){console.warn(\"THREE.Uint8Attribute has been removed. Use new THREE.Uint8BufferAttribute() instead.\");return new Uint8BufferAttribute(e,t)}function Uint8ClampedAttribute(e,t){console.warn(\"THREE.Uint8ClampedAttribute has been removed. Use new THREE.Uint8ClampedBufferAttribute() instead.\");return new Uint8ClampedBufferAttribute(e,t)}function Int16Attribute(e,t){console.warn(\"THREE.Int16Attribute has been removed. Use new THREE.Int16BufferAttribute() instead.\");return new Int16BufferAttribute(e,t)}function Uint16Attribute(e,t){console.warn(\"THREE.Uint16Attribute has been removed. Use new THREE.Uint16BufferAttribute() instead.\");return new Uint16BufferAttribute(e,t)}function Int32Attribute(e,t){console.warn(\"THREE.Int32Attribute has been removed. Use new THREE.Int32BufferAttribute() instead.\");return new Int32BufferAttribute(e,t)}function Uint32Attribute(e,t){console.warn(\"THREE.Uint32Attribute has been removed. Use new THREE.Uint32BufferAttribute() instead.\");return new Uint32BufferAttribute(e,t)}function Float32Attribute(e,t){console.warn(\"THREE.Float32Attribute has been removed. Use new THREE.Float32BufferAttribute() instead.\");return new Float32BufferAttribute(e,t)}function Float64Attribute(e,t){console.warn(\"THREE.Float64Attribute has been removed. Use new THREE.Float64BufferAttribute() instead.\");return new Float64BufferAttribute(e,t)}Curve.create=function(e,t){console.log(\"THREE.Curve.create() has been deprecated\");e.prototype=Object.create(Curve.prototype);e.prototype.constructor=e;e.prototype.getPoint=t;return e};Path.prototype.fromPoints=function(e){console.warn(\"THREE.Path: .fromPoints() has been renamed to .setFromPoints().\");return this.setFromPoints(e)};function AxisHelper(e){console.warn(\"THREE.AxisHelper has been renamed to THREE.AxesHelper.\");return new AxesHelper(e)}function BoundingBoxHelper(e,t){console.warn(\"THREE.BoundingBoxHelper has been deprecated. Creating a THREE.BoxHelper instead.\");return new BoxHelper(e,t)}function EdgesHelper(e,t){console.warn(\"THREE.EdgesHelper has been removed. Use THREE.EdgesGeometry instead.\");return new LineSegments(new EdgesGeometry(e.geometry),new LineBasicMaterial({color:void 0!==t?t:16777215}))}GridHelper.prototype.setColors=function(){console.error(\"THREE.GridHelper: setColors() has been deprecated, pass them in the constructor instead.\")};SkeletonHelper.prototype.update=function(){console.error(\"THREE.SkeletonHelper: update() no longer needs to be called.\")};function WireframeHelper(e,t){console.warn(\"THREE.WireframeHelper has been removed. Use THREE.WireframeGeometry instead.\");return new LineSegments(new WireframeGeometry(e.geometry),new LineBasicMaterial({color:void 0!==t?t:16777215}))}Loader.prototype.extractUrlBase=function(e){console.warn(\"THREE.Loader: .extractUrlBase() has been deprecated. Use THREE.LoaderUtils.extractUrlBase() instead.\");return LoaderUtils.extractUrlBase(e)};Loader.Handlers={add:function(){console.error(\"THREE.Loader: Handlers.add() has been removed. Use LoadingManager.addHandler() instead.\")},get:function(){console.error(\"THREE.Loader: Handlers.get() has been removed. Use LoadingManager.getHandler() instead.\")}};function XHRLoader(e){console.warn(\"THREE.XHRLoader has been renamed to THREE.FileLoader.\");return new FileLoader(e)}function BinaryTextureLoader(e){console.warn(\"THREE.BinaryTextureLoader has been renamed to THREE.DataTextureLoader.\");return new DataTextureLoader(e)}Box2.prototype.center=function(e){console.warn(\"THREE.Box2: .center() has been renamed to .getCenter().\");return this.getCenter(e)};Box2.prototype.empty=function(){console.warn(\"THREE.Box2: .empty() has been renamed to .isEmpty().\");return this.isEmpty()};Box2.prototype.isIntersectionBox=function(e){console.warn(\"THREE.Box2: .isIntersectionBox() has been renamed to .intersectsBox().\");return this.intersectsBox(e)};Box2.prototype.size=function(e){console.warn(\"THREE.Box2: .size() has been renamed to .getSize().\");return this.getSize(e)};Box3.prototype.center=function(e){console.warn(\"THREE.Box3: .center() has been renamed to .getCenter().\");return this.getCenter(e)};Box3.prototype.empty=function(){console.warn(\"THREE.Box3: .empty() has been renamed to .isEmpty().\");return this.isEmpty()};Box3.prototype.isIntersectionBox=function(e){console.warn(\"THREE.Box3: .isIntersectionBox() has been renamed to .intersectsBox().\");return this.intersectsBox(e)};Box3.prototype.isIntersectionSphere=function(e){console.warn(\"THREE.Box3: .isIntersectionSphere() has been renamed to .intersectsSphere().\");return this.intersectsSphere(e)};Box3.prototype.size=function(e){console.warn(\"THREE.Box3: .size() has been renamed to .getSize().\");return this.getSize(e)};Sphere.prototype.empty=function(){console.warn(\"THREE.Sphere: .empty() has been renamed to .isEmpty().\");return this.isEmpty()};Frustum.prototype.setFromMatrix=function(e){console.warn(\"THREE.Frustum: .setFromMatrix() has been renamed to .setFromProjectionMatrix().\");return this.setFromProjectionMatrix(e)};Line3.prototype.center=function(e){console.warn(\"THREE.Line3: .center() has been renamed to .getCenter().\");return this.getCenter(e)};Matrix3.prototype.flattenToArrayOffset=function(e,t){console.warn(\"THREE.Matrix3: .flattenToArrayOffset() has been deprecated. Use .toArray() instead.\");return this.toArray(e,t)};Matrix3.prototype.multiplyVector3=function(e){console.warn(\"THREE.Matrix3: .multiplyVector3() has been removed. Use vector.applyMatrix3( matrix ) instead.\");return e.applyMatrix3(this)};Matrix3.prototype.multiplyVector3Array=function(){console.error(\"THREE.Matrix3: .multiplyVector3Array() has been removed.\")};Matrix3.prototype.applyToBufferAttribute=function(e){console.warn(\"THREE.Matrix3: .applyToBufferAttribute() has been removed. Use attribute.applyMatrix3( matrix ) instead.\");return e.applyMatrix3(this)};Matrix3.prototype.applyToVector3Array=function(){console.error(\"THREE.Matrix3: .applyToVector3Array() has been removed.\")};Matrix3.prototype.getInverse=function(e){console.warn(\"THREE.Matrix3: .getInverse() has been removed. Use matrixInv.copy( matrix ).invert(); instead.\");return this.copy(e).invert()};Matrix4.prototype.extractPosition=function(e){console.warn(\"THREE.Matrix4: .extractPosition() has been renamed to .copyPosition().\");return this.copyPosition(e)};Matrix4.prototype.flattenToArrayOffset=function(e,t){console.warn(\"THREE.Matrix4: .flattenToArrayOffset() has been deprecated. Use .toArray() instead.\");return this.toArray(e,t)};Matrix4.prototype.getPosition=function(){console.warn(\"THREE.Matrix4: .getPosition() has been removed. Use Vector3.setFromMatrixPosition( matrix ) instead.\");return(new Vector3).setFromMatrixColumn(this,3)};Matrix4.prototype.setRotationFromQuaternion=function(e){console.warn(\"THREE.Matrix4: .setRotationFromQuaternion() has been renamed to .makeRotationFromQuaternion().\");return this.makeRotationFromQuaternion(e)};Matrix4.prototype.multiplyToArray=function(){console.warn(\"THREE.Matrix4: .multiplyToArray() has been removed.\")};Matrix4.prototype.multiplyVector3=function(e){console.warn(\"THREE.Matrix4: .multiplyVector3() has been removed. Use vector.applyMatrix4( matrix ) instead.\");return e.applyMatrix4(this)};Matrix4.prototype.multiplyVector4=function(e){console.warn(\"THREE.Matrix4: .multiplyVector4() has been removed. Use vector.applyMatrix4( matrix ) instead.\");return e.applyMatrix4(this)};Matrix4.prototype.multiplyVector3Array=function(){console.error(\"THREE.Matrix4: .multiplyVector3Array() has been removed.\")};Matrix4.prototype.rotateAxis=function(e){console.warn(\"THREE.Matrix4: .rotateAxis() has been removed. Use Vector3.transformDirection( matrix ) instead.\");e.transformDirection(this)};Matrix4.prototype.crossVector=function(e){console.warn(\"THREE.Matrix4: .crossVector() has been removed. Use vector.applyMatrix4( matrix ) instead.\");return e.applyMatrix4(this)};Matrix4.prototype.translate=function(){console.error(\"THREE.Matrix4: .translate() has been removed.\")};Matrix4.prototype.rotateX=function(){console.error(\"THREE.Matrix4: .rotateX() has been removed.\")};Matrix4.prototype.rotateY=function(){console.error(\"THREE.Matrix4: .rotateY() has been removed.\")};Matrix4.prototype.rotateZ=function(){console.error(\"THREE.Matrix4: .rotateZ() has been removed.\")};Matrix4.prototype.rotateByAxis=function(){console.error(\"THREE.Matrix4: .rotateByAxis() has been removed.\")};Matrix4.prototype.applyToBufferAttribute=function(e){console.warn(\"THREE.Matrix4: .applyToBufferAttribute() has been removed. Use attribute.applyMatrix4( matrix ) instead.\");return e.applyMatrix4(this)};Matrix4.prototype.applyToVector3Array=function(){console.error(\"THREE.Matrix4: .applyToVector3Array() has been removed.\")};Matrix4.prototype.makeFrustum=function(e,t,n,r,i,s){console.warn(\"THREE.Matrix4: .makeFrustum() has been removed. Use .makePerspective( left, right, top, bottom, near, far ) instead.\");return this.makePerspective(e,t,r,n,i,s)};Matrix4.prototype.getInverse=function(e){console.warn(\"THREE.Matrix4: .getInverse() has been removed. Use matrixInv.copy( matrix ).invert(); instead.\");return this.copy(e).invert()};Plane.prototype.isIntersectionLine=function(e){console.warn(\"THREE.Plane: .isIntersectionLine() has been renamed to .intersectsLine().\");return this.intersectsLine(e)};Quaternion.prototype.multiplyVector3=function(e){console.warn(\"THREE.Quaternion: .multiplyVector3() has been removed. Use is now vector.applyQuaternion( quaternion ) instead.\");return e.applyQuaternion(this)};Quaternion.prototype.inverse=function(){console.warn(\"THREE.Quaternion: .inverse() has been renamed to invert().\");return this.invert()};Ray.prototype.isIntersectionBox=function(e){console.warn(\"THREE.Ray: .isIntersectionBox() has been renamed to .intersectsBox().\");return this.intersectsBox(e)};Ray.prototype.isIntersectionPlane=function(e){console.warn(\"THREE.Ray: .isIntersectionPlane() has been renamed to .intersectsPlane().\");return this.intersectsPlane(e)};Ray.prototype.isIntersectionSphere=function(e){console.warn(\"THREE.Ray: .isIntersectionSphere() has been renamed to .intersectsSphere().\");return this.intersectsSphere(e)};Triangle.prototype.area=function(){console.warn(\"THREE.Triangle: .area() has been renamed to .getArea().\");return this.getArea()};Triangle.prototype.barycoordFromPoint=function(e,t){console.warn(\"THREE.Triangle: .barycoordFromPoint() has been renamed to .getBarycoord().\");return this.getBarycoord(e,t)};Triangle.prototype.midpoint=function(e){console.warn(\"THREE.Triangle: .midpoint() has been renamed to .getMidpoint().\");return this.getMidpoint(e)};Triangle.prototypenormal=function(e){console.warn(\"THREE.Triangle: .normal() has been renamed to .getNormal().\");return this.getNormal(e)};Triangle.prototype.plane=function(e){console.warn(\"THREE.Triangle: .plane() has been renamed to .getPlane().\");return this.getPlane(e)};Triangle.barycoordFromPoint=function(e,t,n,r,i){console.warn(\"THREE.Triangle: .barycoordFromPoint() has been renamed to .getBarycoord().\");return Triangle.getBarycoord(e,t,n,r,i)};Triangle.normal=function(e,t,n,r){console.warn(\"THREE.Triangle: .normal() has been renamed to .getNormal().\");return Triangle.getNormal(e,t,n,r)};Shape.prototype.extractAllPoints=function(e){console.warn(\"THREE.Shape: .extractAllPoints() has been removed. Use .extractPoints() instead.\");return this.extractPoints(e)};Shape.prototype.extrude=function(e){console.warn(\"THREE.Shape: .extrude() has been removed. Use ExtrudeGeometry() instead.\");return new ExtrudeGeometry(this,e)};Shape.prototype.makeGeometry=function(e){console.warn(\"THREE.Shape: .makeGeometry() has been removed. Use ShapeGeometry() instead.\");return new ShapeGeometry(this,e)};Vector2.prototype.fromAttribute=function(e,t,n){console.warn(\"THREE.Vector2: .fromAttribute() has been renamed to .fromBufferAttribute().\");return this.fromBufferAttribute(e,t,n)};Vector2.prototype.distanceToManhattan=function(e){console.warn(\"THREE.Vector2: .distanceToManhattan() has been renamed to .manhattanDistanceTo().\");return this.manhattanDistanceTo(e)};Vector2.prototype.lengthManhattan=function(){console.warn(\"THREE.Vector2: .lengthManhattan() has been renamed to .manhattanLength().\");return this.manhattanLength()};Vector3.prototype.setEulerFromRotationMatrix=function(){console.error(\"THREE.Vector3: .setEulerFromRotationMatrix() has been removed. Use Euler.setFromRotationMatrix() instead.\")};Vector3.prototype.setEulerFromQuaternion=function(){console.error(\"THREE.Vector3: .setEulerFromQuaternion() has been removed. Use Euler.setFromQuaternion() instead.\")};Vector3.prototype.getPositionFromMatrix=function(e){console.warn(\"THREE.Vector3: .getPositionFromMatrix() has been renamed to .setFromMatrixPosition().\");return this.setFromMatrixPosition(e)};Vector3.prototype.getScaleFromMatrix=function(e){console.warn(\"THREE.Vector3: .getScaleFromMatrix() has been renamed to .setFromMatrixScale().\");return this.setFromMatrixScale(e)};Vector3.prototype.getColumnFromMatrix=function(e,t){console.warn(\"THREE.Vector3: .getColumnFromMatrix() has been renamed to .setFromMatrixColumn().\");return this.setFromMatrixColumn(t,e)};Vector3.prototype.applyProjection=function(e){console.warn(\"THREE.Vector3: .applyProjection() has been removed. Use .applyMatrix4( m ) instead.\");return this.applyMatrix4(e)};Vector3.prototype.fromAttribute=function(e,t,n){console.warn(\"THREE.Vector3: .fromAttribute() has been renamed to .fromBufferAttribute().\");return this.fromBufferAttribute(e,t,n)};Vector3.prototype.distanceToManhattan=function(e){console.warn(\"THREE.Vector3: .distanceToManhattan() has been renamed to .manhattanDistanceTo().\");return this.manhattanDistanceTo(e)};Vector3.prototype.lengthManhattan=function(){console.warn(\"THREE.Vector3: .lengthManhattan() has been renamed to .manhattanLength().\");return this.manhattanLength()};Vector4.prototype.fromAttribute=function(e,t,n){console.warn(\"THREE.Vector4: .fromAttribute() has been renamed to .fromBufferAttribute().\");return this.fromBufferAttribute(e,t,n)};Vector4.prototype.lengthManhattan=function(){console.warn(\"THREE.Vector4: .lengthManhattan() has been renamed to .manhattanLength().\");return this.manhattanLength()};Object3D.prototype.getChildByName=function(e){console.warn(\"THREE.Object3D: .getChildByName() has been renamed to .getObjectByName().\");return this.getObjectByName(e)};Object3D.prototype.renderDepth=function(){console.warn(\"THREE.Object3D: .renderDepth has been removed. Use .renderOrder, instead.\")};Object3D.prototype.translate=function(e,t){console.warn(\"THREE.Object3D: .translate() has been removed. Use .translateOnAxis( axis, distance ) instead.\");return this.translateOnAxis(t,e)};Object3D.prototype.getWorldRotation=function(){console.error(\"THREE.Object3D: .getWorldRotation() has been removed. Use THREE.Object3D.getWorldQuaternion( target ) instead.\")};Object3D.prototype.applyMatrix=function(e){console.warn(\"THREE.Object3D: .applyMatrix() has been renamed to .applyMatrix4().\");return this.applyMatrix4(e)};Object.defineProperties(Object3D.prototype,{eulerOrder:{get:function(){console.warn(\"THREE.Object3D: .eulerOrder is now .rotation.order.\");return this.rotation.order},set:function(e){console.warn(\"THREE.Object3D: .eulerOrder is now .rotation.order.\");this.rotation.order=e}},useQuaternion:{get:function(){console.warn(\"THREE.Object3D: .useQuaternion has been removed. The library now uses quaternions by default.\")},set:function(){console.warn(\"THREE.Object3D: .useQuaternion has been removed. The library now uses quaternions by default.\")}}});Mesh.prototype.setDrawMode=function(){console.error(\"THREE.Mesh: .setDrawMode() has been removed. The renderer now always assumes THREE.TrianglesDrawMode. Transform your geometry via BufferGeometryUtils.toTrianglesDrawMode() if necessary.\")};Object.defineProperties(Mesh.prototype,{drawMode:{get:function(){console.error(\"THREE.Mesh: .drawMode has been removed. The renderer now always assumes THREE.TrianglesDrawMode.\");return Wt},set:function(){console.error(\"THREE.Mesh: .drawMode has been removed. The renderer now always assumes THREE.TrianglesDrawMode. Transform your geometry via BufferGeometryUtils.toTrianglesDrawMode() if necessary.\")}}});SkinnedMesh.prototype.initBones=function(){console.error(\"THREE.SkinnedMesh: initBones() has been removed.\")};PerspectiveCamera.prototype.setLens=function(e,t){console.warn(\"THREE.PerspectiveCamera.setLens is deprecated. Use .setFocalLength and .filmGauge for a photographic setup.\");void 0!==t&&(this.filmGauge=t);this.setFocalLength(e)};Object.defineProperties(Light.prototype,{onlyShadow:{set:function(){console.warn(\"THREE.Light: .onlyShadow has been removed.\")}},shadowCameraFov:{set:function(e){console.warn(\"THREE.Light: .shadowCameraFov is now .shadow.camera.fov.\");this.shadow.camera.fov=e}},shadowCameraLeft:{set:function(e){console.warn(\"THREE.Light: .shadowCameraLeft is now .shadow.camera.left.\");this.shadow.camera.left=e}},shadowCameraRight:{set:function(e){console.warn(\"THREE.Light: .shadowCameraRight is now .shadow.camera.right.\");this.shadow.camera.right=e}},shadowCameraTop:{set:function(e){console.warn(\"THREE.Light: .shadowCameraTop is now .shadow.camera.top.\");this.shadow.camera.top=e}},shadowCameraBottom:{set:function(e){console.warn(\"THREE.Light: .shadowCameraBottom is now .shadow.camera.bottom.\");this.shadow.camera.bottom=e}},shadowCameraNear:{set:function(e){console.warn(\"THREE.Light: .shadowCameraNear is now .shadow.camera.near.\");this.shadow.camera.near=e}},shadowCameraFar:{set:function(e){console.warn(\"THREE.Light: .shadowCameraFar is now .shadow.camera.far.\");this.shadow.camera.far=e}},shadowCameraVisible:{set:function(){console.warn(\"THREE.Light: .shadowCameraVisible has been removed. Use new THREE.CameraHelper( light.shadow.camera ) instead.\")}},shadowBias:{set:function(e){console.warn(\"THREE.Light: .shadowBias is now .shadow.bias.\");this.shadow.bias=e}},shadowDarkness:{set:function(){console.warn(\"THREE.Light: .shadowDarkness has been removed.\")}},shadowMapWidth:{set:function(e){console.warn(\"THREE.Light: .shadowMapWidth is now .shadow.mapSize.width.\");this.shadow.mapSize.width=e}},shadowMapHeight:{set:function(e){console.warn(\"THREE.Light: .shadowMapHeight is now .shadow.mapSize.height.\");this.shadow.mapSize.height=e}}});Object.defineProperties(BufferAttribute.prototype,{length:{get:function(){console.warn(\"THREE.BufferAttribute: .length has been deprecated. Use .count instead.\");return this.array.length}},dynamic:{get:function(){console.warn(\"THREE.BufferAttribute: .dynamic has been deprecated. Use .usage instead.\");return this.usage===yn},set:function(){console.warn(\"THREE.BufferAttribute: .dynamic has been deprecated. Use .usage instead.\");this.setUsage(yn)}}});BufferAttribute.prototype.setDynamic=function(e){console.warn(\"THREE.BufferAttribute: .setDynamic() has been deprecated. Use .setUsage() instead.\");this.setUsage(true===e?yn:gn);return this};BufferAttribute.prototype.copyIndicesArray=function(){console.error(\"THREE.BufferAttribute: .copyIndicesArray() has been removed.\")},BufferAttribute.prototype.setArray=function(){console.error(\"THREE.BufferAttribute: .setArray has been removed. Use BufferGeometry .setAttribute to replace/resize attribute buffers\")};BufferGeometry.prototype.addIndex=function(e){console.warn(\"THREE.BufferGeometry: .addIndex() has been renamed to .setIndex().\");this.setIndex(e)};BufferGeometry.prototype.addAttribute=function(e,t){console.warn(\"THREE.BufferGeometry: .addAttribute() has been renamed to .setAttribute().\");if(!(t&&t.isBufferAttribute)&&!(t&&t.isInterleavedBufferAttribute)){console.warn(\"THREE.BufferGeometry: .addAttribute() now expects ( name, attribute ).\");return this.setAttribute(e,new BufferAttribute(arguments[1],arguments[2]))}if(\"index\"===e){console.warn(\"THREE.BufferGeometry.addAttribute: Use .setIndex() for index attribute.\");this.setIndex(t);return this}return this.setAttribute(e,t)};BufferGeometry.prototype.addDrawCall=function(e,t,n){void 0!==n&&console.warn(\"THREE.BufferGeometry: .addDrawCall() no longer supports indexOffset.\");console.warn(\"THREE.BufferGeometry: .addDrawCall() is now .addGroup().\");this.addGroup(e,t)};BufferGeometry.prototype.clearDrawCalls=function(){console.warn(\"THREE.BufferGeometry: .clearDrawCalls() is now .clearGroups().\");this.clearGroups()};BufferGeometry.prototype.computeOffsets=function(){console.warn(\"THREE.BufferGeometry: .computeOffsets() has been removed.\")};BufferGeometry.prototype.removeAttribute=function(e){console.warn(\"THREE.BufferGeometry: .removeAttribute() has been renamed to .deleteAttribute().\");return this.deleteAttribute(e)};BufferGeometry.prototype.applyMatrix=function(e){console.warn(\"THREE.BufferGeometry: .applyMatrix() has been renamed to .applyMatrix4().\");return this.applyMatrix4(e)};Object.defineProperties(BufferGeometry.prototype,{drawcalls:{get:function(){console.error(\"THREE.BufferGeometry: .drawcalls has been renamed to .groups.\");return this.groups}},offsets:{get:function(){console.warn(\"THREE.BufferGeometry: .offsets has been renamed to .groups.\");return this.groups}}});InterleavedBuffer.prototype.setDynamic=function(e){console.warn(\"THREE.InterleavedBuffer: .setDynamic() has been deprecated. Use .setUsage() instead.\");this.setUsage(true===e?yn:gn);return this};InterleavedBuffer.prototype.setArray=function(){console.error(\"THREE.InterleavedBuffer: .setArray has been removed. Use BufferGeometry .setAttribute to replace/resize attribute buffers\")};ExtrudeGeometry.prototype.getArrays=function(){console.error(\"THREE.ExtrudeGeometry: .getArrays() has been removed.\")};ExtrudeGeometry.prototype.addShapeList=function(){console.error(\"THREE.ExtrudeGeometry: .addShapeList() has been removed.\")};ExtrudeGeometry.prototype.addShape=function(){console.error(\"THREE.ExtrudeGeometry: .addShape() has been removed.\")};Scene.prototype.dispose=function(){console.error(\"THREE.Scene: .dispose() has been removed.\")};Uniform.prototype.onUpdate=function(){console.warn(\"THREE.Uniform: .onUpdate() has been removed. Use object.onBeforeRender() instead.\");return this};Object.defineProperties(Material.prototype,{wrapAround:{get:function(){console.warn(\"THREE.Material: .wrapAround has been removed.\")},set:function(){console.warn(\"THREE.Material: .wrapAround has been removed.\")}},overdraw:{get:function(){console.warn(\"THREE.Material: .overdraw has been removed.\")},set:function(){console.warn(\"THREE.Material: .overdraw has been removed.\")}},wrapRGB:{get:function(){console.warn(\"THREE.Material: .wrapRGB has been removed.\");return new Color}},shading:{get:function(){console.error(\"THREE.\"+this.type+\": .shading has been removed. Use the boolean .flatShading instead.\")},set:function(e){console.warn(\"THREE.\"+this.type+\": .shading has been removed. Use the boolean .flatShading instead.\");this.flatShading=e===f}},stencilMask:{get:function(){console.warn(\"THREE.\"+this.type+\": .stencilMask has been removed. Use .stencilFuncMask instead.\");return this.stencilFuncMask},set:function(e){console.warn(\"THREE.\"+this.type+\": .stencilMask has been removed. Use .stencilFuncMask instead.\");this.stencilFuncMask=e}},vertexTangents:{get:function(){console.warn(\"THREE.\"+this.type+\": .vertexTangents has been removed.\")},set:function(){console.warn(\"THREE.\"+this.type+\": .vertexTangents has been removed.\")}}});Object.defineProperties(ShaderMaterial.prototype,{derivatives:{get:function(){console.warn(\"THREE.ShaderMaterial: .derivatives has been moved to .extensions.derivatives.\");return this.extensions.derivatives},set:function(e){console.warn(\"THREE. ShaderMaterial: .derivatives has been moved to .extensions.derivatives.\");this.extensions.derivatives=e}}});WebGLRenderer.prototype.clearTarget=function(e,t,n,r){console.warn(\"THREE.WebGLRenderer: .clearTarget() has been deprecated. Use .setRenderTarget() and .clear() instead.\");this.setRenderTarget(e);this.clear(t,n,r)};WebGLRenderer.prototype.animate=function(e){console.warn(\"THREE.WebGLRenderer: .animate() is now .setAnimationLoop().\");this.setAnimationLoop(e)};WebGLRenderer.prototype.getCurrentRenderTarget=function(){console.warn(\"THREE.WebGLRenderer: .getCurrentRenderTarget() is now .getRenderTarget().\");return this.getRenderTarget()};WebGLRenderer.prototype.getMaxAnisotropy=function(){console.warn(\"THREE.WebGLRenderer: .getMaxAnisotropy() is now .capabilities.getMaxAnisotropy().\");return this.capabilities.getMaxAnisotropy()};WebGLRenderer.prototype.getPrecision=function(){console.warn(\"THREE.WebGLRenderer: .getPrecision() is now .capabilities.precision.\");return this.capabilities.precision};WebGLRenderer.prototype.resetGLState=function(){console.warn(\"THREE.WebGLRenderer: .resetGLState() is now .state.reset().\");return this.state.reset()};WebGLRenderer.prototype.supportsFloatTextures=function(){console.warn(\"THREE.WebGLRenderer: .supportsFloatTextures() is now .extensions.get( 'OES_texture_float' ).\");return this.extensions.get(\"OES_texture_float\")};WebGLRenderer.prototype.supportsHalfFloatTextures=function(){console.warn(\"THREE.WebGLRenderer: .supportsHalfFloatTextures() is now .extensions.get( 'OES_texture_half_float' ).\");return this.extensions.get(\"OES_texture_half_float\")};WebGLRenderer.prototype.supportsStandardDerivatives=function(){console.warn(\"THREE.WebGLRenderer: .supportsStandardDerivatives() is now .extensions.get( 'OES_standard_derivatives' ).\");return this.extensions.get(\"OES_standard_derivatives\")};WebGLRenderer.prototype.supportsCompressedTextureS3TC=function(){console.warn(\"THREE.WebGLRenderer: .supportsCompressedTextureS3TC() is now .extensions.get( 'WEBGL_compressed_texture_s3tc' ).\");return this.extensions.get(\"WEBGL_compressed_texture_s3tc\")};WebGLRenderer.prototype.supportsCompressedTexturePVRTC=function(){console.warn(\"THREE.WebGLRenderer: .supportsCompressedTexturePVRTC() is now .extensions.get( 'WEBGL_compressed_texture_pvrtc' ).\");return this.extensions.get(\"WEBGL_compressed_texture_pvrtc\")};WebGLRenderer.prototype.supportsBlendMinMax=function(){console.warn(\"THREE.WebGLRenderer: .supportsBlendMinMax() is now .extensions.get( 'EXT_blend_minmax' ).\");return this.extensions.get(\"EXT_blend_minmax\")};WebGLRenderer.prototype.supportsVertexTextures=function(){console.warn(\"THREE.WebGLRenderer: .supportsVertexTextures() is now .capabilities.vertexTextures.\");return this.capabilities.vertexTextures};WebGLRenderer.prototype.supportsInstancedArrays=function(){console.warn(\"THREE.WebGLRenderer: .supportsInstancedArrays() is now .extensions.get( 'ANGLE_instanced_arrays' ).\");return this.extensions.get(\"ANGLE_instanced_arrays\")};WebGLRenderer.prototype.enableScissorTest=function(e){console.warn(\"THREE.WebGLRenderer: .enableScissorTest() is now .setScissorTest().\");this.setScissorTest(e)};WebGLRenderer.prototype.initMaterial=function(){console.warn(\"THREE.WebGLRenderer: .initMaterial() has been removed.\")};WebGLRenderer.prototype.addPrePlugin=function(){console.warn(\"THREE.WebGLRenderer: .addPrePlugin() has been removed.\")};WebGLRenderer.prototype.addPostPlugin=function(){console.warn(\"THREE.WebGLRenderer: .addPostPlugin() has been removed.\")};WebGLRenderer.prototype.updateShadowMap=function(){console.warn(\"THREE.WebGLRenderer: .updateShadowMap() has been removed.\")};WebGLRenderer.prototype.setFaceCulling=function(){console.warn(\"THREE.WebGLRenderer: .setFaceCulling() has been removed.\")};WebGLRenderer.prototype.allocTextureUnit=function(){console.warn(\"THREE.WebGLRenderer: .allocTextureUnit() has been removed.\")};WebGLRenderer.prototype.setTexture=function(){console.warn(\"THREE.WebGLRenderer: .setTexture() has been removed.\")};WebGLRenderer.prototype.setTexture2D=function(){console.warn(\"THREE.WebGLRenderer: .setTexture2D() has been removed.\")};WebGLRenderer.prototype.setTextureCube=function(){console.warn(\"THREE.WebGLRenderer: .setTextureCube() has been removed.\")};WebGLRenderer.prototype.getActiveMipMapLevel=function(){console.warn(\"THREE.WebGLRenderer: .getActiveMipMapLevel() is now .getActiveMipmapLevel().\");return this.getActiveMipmapLevel()};Object.defineProperties(WebGLRenderer.prototype,{shadowMapEnabled:{get:function(){return this.shadowMap.enabled},set:function(e){console.warn(\"THREE.WebGLRenderer: .shadowMapEnabled is now .shadowMap.enabled.\");this.shadowMap.enabled=e}},shadowMapType:{get:function(){return this.shadowMap.type},set:function(e){console.warn(\"THREE.WebGLRenderer: .shadowMapType is now .shadowMap.type.\");this.shadowMap.type=e}},shadowMapCullFace:{get:function(){console.warn(\"THREE.WebGLRenderer: .shadowMapCullFace has been removed. Set Material.shadowSide instead.\")},set:function(){console.warn(\"THREE.WebGLRenderer: .shadowMapCullFace has been removed. Set Material.shadowSide instead.\")}},context:{get:function(){console.warn(\"THREE.WebGLRenderer: .context has been removed. Use .getContext() instead.\");return this.getContext()}},vr:{get:function(){console.warn(\"THREE.WebGLRenderer: .vr has been renamed to .xr\");return this.xr}},gammaInput:{get:function(){console.warn(\"THREE.WebGLRenderer: .gammaInput has been removed. Set the encoding for textures via Texture.encoding instead.\");return false},set:function(){console.warn(\"THREE.WebGLRenderer: .gammaInput has been removed. Set the encoding for textures via Texture.encoding instead.\")}},gammaOutput:{get:function(){console.warn(\"THREE.WebGLRenderer: .gammaOutput has been removed. Set WebGLRenderer.outputEncoding instead.\");return false},set:function(e){console.warn(\"THREE.WebGLRenderer: .gammaOutput has been removed. Set WebGLRenderer.outputEncoding instead.\");this.outputEncoding=true===e?Jt:Xt}},toneMappingWhitePoint:{get:function(){console.warn(\"THREE.WebGLRenderer: .toneMappingWhitePoint has been removed.\");return 1},set:function(){console.warn(\"THREE.WebGLRenderer: .toneMappingWhitePoint has been removed.\")}},gammaFactor:{get:function(){console.warn(\"THREE.WebGLRenderer: .gammaFactor has been removed.\");return 2},set:function(){console.warn(\"THREE.WebGLRenderer: .gammaFactor has been removed.\")}}});Object.defineProperties(WebGLShadowMap.prototype,{cullFace:{get:function(){console.warn(\"THREE.WebGLRenderer: .shadowMap.cullFace has been removed. Set Material.shadowSide instead.\")},set:function(){console.warn(\"THREE.WebGLRenderer: .shadowMap.cullFace has been removed. Set Material.shadowSide instead.\")}},renderReverseSided:{get:function(){console.warn(\"THREE.WebGLRenderer: .shadowMap.renderReverseSided has been removed. Set Material.shadowSide instead.\")},set:function(){console.warn(\"THREE.WebGLRenderer: .shadowMap.renderReverseSided has been removed. Set Material.shadowSide instead.\")}},renderSingleSided:{get:function(){console.warn(\"THREE.WebGLRenderer: .shadowMap.renderSingleSided has been removed. Set Material.shadowSide instead.\")},set:function(){console.warn(\"THREE.WebGLRenderer: .shadowMap.renderSingleSided has been removed. Set Material.shadowSide instead.\")}}});function WebGLRenderTargetCube(e,t,n){console.warn(\"THREE.WebGLRenderTargetCube( width, height, options ) is now WebGLCubeRenderTarget( size, options ).\");return new WebGLCubeRenderTarget(e,n)}Object.defineProperties(WebGLRenderTarget.prototype,{wrapS:{get:function(){console.warn(\"THREE.WebGLRenderTarget: .wrapS is now .texture.wrapS.\");return this.texture.wrapS},set:function(e){console.warn(\"THREE.WebGLRenderTarget: .wrapS is now .texture.wrapS.\");this.texture.wrapS=e}},wrapT:{get:function(){console.warn(\"THREE.WebGLRenderTarget: .wrapT is now .texture.wrapT.\");return this.texture.wrapT},set:function(e){console.warn(\"THREE.WebGLRenderTarget: .wrapT is now .texture.wrapT.\");this.texture.wrapT=e}},magFilter:{get:function(){console.warn(\"THREE.WebGLRenderTarget: .magFilter is now .texture.magFilter.\");return this.texture.magFilter},set:function(e){console.warn(\"THREE.WebGLRenderTarget: .magFilter is now .texture.magFilter.\");this.texture.magFilter=e}},minFilter:{get:function(){console.warn(\"THREE.WebGLRenderTarget: .minFilter is now .texture.minFilter.\");return this.texture.minFilter},set:function(e){console.warn(\"THREE.WebGLRenderTarget: .minFilter is now .texture.minFilter.\");this.texture.minFilter=e}},anisotropy:{get:function(){console.warn(\"THREE.WebGLRenderTarget: .anisotropy is now .texture.anisotropy.\");return this.texture.anisotropy},set:function(e){console.warn(\"THREE.WebGLRenderTarget: .anisotropy is now .texture.anisotropy.\");this.texture.anisotropy=e}},offset:{get:function(){console.warn(\"THREE.WebGLRenderTarget: .offset is now .texture.offset.\");return this.texture.offset},set:function(e){console.warn(\"THREE.WebGLRenderTarget: .offset is now .texture.offset.\");this.texture.offset=e}},repeat:{get:function(){console.warn(\"THREE.WebGLRenderTarget: .repeat is now .texture.repeat.\");return this.texture.repeat},set:function(e){console.warn(\"THREE.WebGLRenderTarget: .repeat is now .texture.repeat.\");this.texture.repeat=e}},format:{get:function(){console.warn(\"THREE.WebGLRenderTarget: .format is now .texture.format.\");return this.texture.format},set:function(e){console.warn(\"THREE.WebGLRenderTarget: .format is now .texture.format.\");this.texture.format=e}},type:{get:function(){console.warn(\"THREE.WebGLRenderTarget: .type is now .texture.type.\");return this.texture.type},set:function(e){console.warn(\"THREE.WebGLRenderTarget: .type is now .texture.type.\");this.texture.type=e}},generateMipmaps:{get:function(){console.warn(\"THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps.\");return this.texture.generateMipmaps},set:function(e){console.warn(\"THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps.\");this.texture.generateMipmaps=e}}});Audio.prototype.load=function(e){console.warn(\"THREE.Audio: .load has been deprecated. Use THREE.AudioLoader instead.\");const t=this;const n=new AudioLoader;n.load(e,(function(e){t.setBuffer(e)}));return this};AudioAnalyser.prototype.getData=function(){console.warn(\"THREE.AudioAnalyser: .getData() is now .getFrequencyData().\");return this.getFrequencyData()};CubeCamera.prototype.updateCubeMap=function(e,t){console.warn(\"THREE.CubeCamera: .updateCubeMap() is now .update().\");return this.update(e,t)};CubeCamera.prototype.clear=function(e,t,n,r){console.warn(\"THREE.CubeCamera: .clear() is now .renderTarget.clear().\");return this.renderTarget.clear(e,t,n,r)};ImageUtils.crossOrigin=void 0;ImageUtils.loadTexture=function(e,t,n,r){console.warn(\"THREE.ImageUtils.loadTexture has been deprecated. Use THREE.TextureLoader() instead.\");const i=new TextureLoader;i.setCrossOrigin(this.crossOrigin);const s=i.load(e,n,void 0,r);t&&(s.mapping=t);return s};ImageUtils.loadTextureCube=function(e,t,n,r){console.warn(\"THREE.ImageUtils.loadTextureCube has been deprecated. Use THREE.CubeTextureLoader() instead.\");const i=new CubeTextureLoader;i.setCrossOrigin(this.crossOrigin);const s=i.load(e,n,void 0,r);t&&(s.mapping=t);return s};ImageUtils.loadCompressedTexture=function(){console.error(\"THREE.ImageUtils.loadCompressedTexture has been removed. Use THREE.DDSLoader instead.\")};ImageUtils.loadCompressedTextureCube=function(){console.error(\"THREE.ImageUtils.loadCompressedTextureCube has been removed. Use THREE.DDSLoader instead.\")};function CanvasRenderer(){console.error(\"THREE.CanvasRenderer has been removed\")}function JSONLoader(){console.error(\"THREE.JSONLoader has been removed.\")}const Oc={createMultiMaterialObject:function(){console.error(\"THREE.SceneUtils has been moved to /examples/jsm/utils/SceneUtils.js\")},detach:function(){console.error(\"THREE.SceneUtils has been moved to /examples/jsm/utils/SceneUtils.js\")},attach:function(){console.error(\"THREE.SceneUtils has been moved to /examples/jsm/utils/SceneUtils.js\")}};function LensFlare(){console.error(\"THREE.LensFlare has been moved to /examples/jsm/objects/Lensflare.js\")}function ParametricGeometry(){console.error(\"THREE.ParametricGeometry has been moved to /examples/jsm/geometries/ParametricGeometry.js\");return new BufferGeometry}function TextGeometry(){console.error(\"THREE.TextGeometry has been moved to /examples/jsm/geometries/TextGeometry.js\");return new BufferGeometry}function FontLoader(){console.error(\"THREE.FontLoader has been moved to /examples/jsm/loaders/FontLoader.js\")}function Font(){console.error(\"THREE.Font has been moved to /examples/jsm/loaders/FontLoader.js\")}function ImmediateRenderObject(){console.error(\"THREE.ImmediateRenderObject has been removed.\")}\"undefined\"!==typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent(\"register\",{detail:{revision:e}}));\"undefined\"!==typeof window&&(window.__THREE__?console.warn(\"WARNING: Multiple instances of Three.js being imported.\"):window.__THREE__=e);export{ee as ACESFilmicToneMapping,w as AddEquation,Y as AddOperation,kt as AdditiveAnimationBlendMode,x as AdditiveBlending,Be as AlphaFormat,F as AlwaysDepth,mn as AlwaysStencilFunc,AmbientLight,AmbientLightProbe,AnimationClip,AnimationLoader,AnimationMixer,AnimationObjectGroup,Dl as AnimationUtils,ArcCurve,ArrayCamera,ArrowHelper,Audio,AudioAnalyser,Xl as AudioContext,AudioListener,AudioLoader,AxesHelper,AxisHelper,d as BackSide,Yt as BasicDepthPacking,o as BasicShadowMap,BinaryTextureLoader,Bone,BooleanKeyframeTrack,BoundingBoxHelper,Box2,Box3,Box3Helper,BoxGeometry as BoxBufferGeometry,BoxGeometry,BoxHelper,BufferAttribute,BufferGeometry,BufferGeometryLoader,we as ByteType,Bl as Cache,Camera,CameraHelper,CanvasRenderer,CanvasTexture,CatmullRomCurve3,$ as CineonToneMapping,CircleGeometry as CircleBufferGeometry,CircleGeometry,ue as ClampToEdgeWrapping,Clock,Color,ColorKeyframeTrack,CompressedTexture,CompressedTextureLoader,ConeGeometry as ConeBufferGeometry,ConeGeometry,CubeCamera,re as CubeReflectionMapping,ie as CubeRefractionMapping,CubeTexture,CubeTextureLoader,oe as CubeUVReflectionMapping,le as CubeUVRefractionMapping,CubicBezierCurve,CubicBezierCurve3,CubicInterpolant,i as CullFaceBack,s as CullFaceFront,a as CullFaceFrontBack,r as CullFaceNone,Curve,CurvePath,M as CustomBlending,te as CustomToneMapping,CylinderGeometry as CylinderBufferGeometry,CylinderGeometry,Cylindrical,DataTexture,DataTexture2DArray,DataTexture3D,DataTextureLoader,DataUtils,rn as DecrementStencilOp,an as DecrementWrapStencilOp,Vl as DefaultLoadingManager,Ge as DepthFormat,Fe as DepthStencilFormat,DepthTexture,DirectionalLight,DirectionalLightHelper,DiscreteInterpolant,DodecahedronGeometry as DodecahedronBufferGeometry,DodecahedronGeometry,p as DoubleSide,B as DstAlphaFactor,N as DstColorFactor,DynamicBufferAttribute,wn as DynamicCopyUsage,yn as DynamicDrawUsage,bn as DynamicReadUsage,EdgesGeometry,EdgesHelper,EllipseCurve,k as EqualDepth,un as EqualStencilFunc,se as EquirectangularReflectionMapping,ae as EquirectangularRefractionMapping,Euler,EventDispatcher,ExtrudeGeometry as ExtrudeBufferGeometry,ExtrudeGeometry,Gc as FaceColors,FileLoader,f as FlatShading,Float16BufferAttribute,Float32Attribute,Float32BufferAttribute,Float64Attribute,Float64BufferAttribute,Le as FloatType,Fog,FogExp2,Font,FontLoader,FramebufferTexture,h as FrontSide,Frustum,GLBufferAttribute,Tn as GLSL1,En as GLSL3,j as GreaterDepth,W as GreaterEqualDepth,fn as GreaterEqualStencilFunc,dn as GreaterStencilFunc,GridHelper,Group,Ce as HalfFloatType,HemisphereLight,HemisphereLightHelper,HemisphereLightProbe,IcosahedronGeometry as IcosahedronBufferGeometry,IcosahedronGeometry,ImageBitmapLoader,ImageLoader,ImageUtils,ImmediateRenderObject,nn as IncrementStencilOp,sn as IncrementWrapStencilOp,InstancedBufferAttribute,InstancedBufferGeometry,InstancedInterleavedBuffer,InstancedMesh,Int16Attribute,Int16BufferAttribute,Int32Attribute,Int32BufferAttribute,Int8Attribute,Int8BufferAttribute,Ee as IntType,InterleavedBuffer,InterleavedBufferAttribute,Interpolant,Nt as InterpolateDiscrete,Ut as InterpolateLinear,zt as InterpolateSmooth,on as InvertStencilOp,JSONLoader,en as KeepStencilOp,KeyframeTrack,LOD,LatheGeometry as LatheBufferGeometry,LatheGeometry,Layers,LensFlare,O as LessDepth,H as LessEqualDepth,hn as LessEqualStencilFunc,cn as LessStencilFunc,Light,LightProbe,Line,Line3,LineBasicMaterial,LineCurve,LineCurve3,LineDashedMaterial,LineLoop,Uc as LinePieces,LineSegments,Nc as LineStrip,Xt as LinearEncoding,ye as LinearFilter,LinearInterpolant,_e as LinearMipMapLinearFilter,xe as LinearMipMapNearestFilter,be as LinearMipmapLinearFilter,ve as LinearMipmapNearestFilter,Q as LinearToneMapping,Loader,LoaderUtils,LoadingManager,Dt as LoopOnce,Vt as LoopPingPong,Bt as LoopRepeat,ze as LuminanceAlphaFormat,Ue as LuminanceFormat,t as MOUSE,Material,MaterialLoader,Pn as Math,Pn as MathUtils,Matrix3,Matrix4,A as MaxEquation,Mesh,MeshBasicMaterial,MeshDepthMaterial,MeshDistanceMaterial,MeshFaceMaterial,MeshLambertMaterial,MeshMatcapMaterial,MeshNormalMaterial,MeshPhongMaterial,MeshPhysicalMaterial,MeshStandardMaterial,MeshToonMaterial,E as MinEquation,he as MirroredRepeatWrapping,J as MixOperation,MultiMaterial,_ as MultiplyBlending,X as MultiplyOperation,de as NearestFilter,ge as NearestMipMapLinearFilter,fe as NearestMipMapNearestFilter,me as NearestMipmapLinearFilter,pe as NearestMipmapNearestFilter,G as NeverDepth,ln as NeverStencilFunc,g as NoBlending,zc as NoColors,Z as NoToneMapping,Ht as NormalAnimationBlendMode,y as NormalBlending,q as NotEqualDepth,pn as NotEqualStencilFunc,NumberKeyframeTrack,Object3D,ObjectLoader,Kt as ObjectSpaceNormalMap,OctahedronGeometry as OctahedronBufferGeometry,OctahedronGeometry,C as OneFactor,V as OneMinusDstAlphaFactor,U as OneMinusDstColorFactor,D as OneMinusSrcAlphaFactor,P as OneMinusSrcColorFactor,OrthographicCamera,l as PCFShadowMap,c as PCFSoftShadowMap,PMREMGenerator,ParametricGeometry,Particle,ParticleBasicMaterial,ParticleSystem,ParticleSystemMaterial,Path,PerspectiveCamera,Plane,PlaneGeometry as PlaneBufferGeometry,PlaneGeometry,PlaneHelper,PointCloud,PointCloudMaterial,PointLight,PointLightHelper,Points,PointsMaterial,PolarGridHelper,PolyhedronGeometry as PolyhedronBufferGeometry,PolyhedronGeometry,PositionalAudio,PropertyBinding,PropertyMixer,QuadraticBezierCurve,QuadraticBezierCurve3,Quaternion,QuaternionKeyframeTrack,QuaternionLinearInterpolant,e as REVISION,Zt as RGBADepthPacking,Ne as RGBAFormat,qe as RGBAIntegerFormat,mt as RGBA_ASTC_10x10_Format,dt as RGBA_ASTC_10x5_Format,pt as RGBA_ASTC_10x6_Format,ft as RGBA_ASTC_10x8_Format,gt as RGBA_ASTC_12x10_Format,yt as RGBA_ASTC_12x12_Format,it as RGBA_ASTC_4x4_Format,st as RGBA_ASTC_5x4_Format,at as RGBA_ASTC_5x5_Format,ot as RGBA_ASTC_6x5_Format,lt as RGBA_ASTC_6x6_Format,ct as RGBA_ASTC_8x5_Format,ut as RGBA_ASTC_8x6_Format,ht as RGBA_ASTC_8x8_Format,vt as RGBA_BPTC_Format,rt as RGBA_ETC2_EAC_Format,et as RGBA_PVRTC_2BPPV1_Format,$e as RGBA_PVRTC_4BPPV1_Format,Je as RGBA_S3TC_DXT1_Format,Ye as RGBA_S3TC_DXT3_Format,Ze as RGBA_S3TC_DXT5_Format,Ve as RGBFormat,je as RGBIntegerFormat,tt as RGB_ETC1_Format,nt as RGB_ETC2_Format,Ke as RGB_PVRTC_2BPPV1_Format,Qe as RGB_PVRTC_4BPPV1_Format,Xe as RGB_S3TC_DXT1_Format,ke as RGFormat,We as RGIntegerFormat,RawShaderMaterial,Ray,Raycaster,RectAreaLight,Oe as RedFormat,He as RedIntegerFormat,K as ReinhardToneMapping,ce as RepeatWrapping,tn as ReplaceStencilOp,T as ReverseSubtractEquation,RingGeometry as RingBufferGeometry,RingGeometry,Rt as SRGB8_ALPHA8_ASTC_10x10_Format,At as SRGB8_ALPHA8_ASTC_10x5_Format,Lt as SRGB8_ALPHA8_ASTC_10x6_Format,Ct as SRGB8_ALPHA8_ASTC_10x8_Format,Pt as SRGB8_ALPHA8_ASTC_12x10_Format,It as SRGB8_ALPHA8_ASTC_12x12_Format,xt as SRGB8_ALPHA8_ASTC_4x4_Format,bt as SRGB8_ALPHA8_ASTC_5x4_Format,_t as SRGB8_ALPHA8_ASTC_5x5_Format,Mt as SRGB8_ALPHA8_ASTC_6x5_Format,wt as SRGB8_ALPHA8_ASTC_6x6_Format,St as SRGB8_ALPHA8_ASTC_8x5_Format,Tt as SRGB8_ALPHA8_ASTC_8x6_Format,Et as SRGB8_ALPHA8_ASTC_8x8_Format,Scene,Oc as SceneUtils,Qa as ShaderChunk,$a as ShaderLib,ShaderMaterial,ShadowMaterial,Shape,ShapeGeometry as ShapeBufferGeometry,ShapeGeometry,ShapePath,ShapeUtils,Se as ShortType,Skeleton,SkeletonHelper,SkinnedMesh,m as SmoothShading,Sphere,SphereGeometry as SphereBufferGeometry,SphereGeometry,Spherical,SphericalHarmonics3,SplineCurve,SpotLight,SpotLightHelper,Sprite,SpriteMaterial,I as SrcAlphaFactor,z as SrcAlphaSaturateFactor,R as SrcColorFactor,Mn as StaticCopyUsage,gn as StaticDrawUsage,xn as StaticReadUsage,StereoCamera,Sn as StreamCopyUsage,vn as StreamDrawUsage,_n as StreamReadUsage,StringKeyframeTrack,S as SubtractEquation,b as SubtractiveBlending,n as TOUCH,Qt as TangentSpaceNormalMap,TetrahedronGeometry as TetrahedronBufferGeometry,TetrahedronGeometry,TextGeometry,Texture,TextureLoader,TorusGeometry as TorusBufferGeometry,TorusGeometry,TorusKnotGeometry as TorusKnotBufferGeometry,TorusKnotGeometry,Triangle,qt as TriangleFanDrawMode,jt as TriangleStripDrawMode,Wt as TrianglesDrawMode,TubeGeometry as TubeBufferGeometry,TubeGeometry,ne as UVMapping,Uint16Attribute,Uint16BufferAttribute,Uint32Attribute,Uint32BufferAttribute,Uint8Attribute,Uint8BufferAttribute,Uint8ClampedAttribute,Uint8ClampedBufferAttribute,Uniform,Ka as UniformsLib,mi as UniformsUtils,Me as UnsignedByteType,De as UnsignedInt248Type,Ae as UnsignedIntType,Re as UnsignedShort4444Type,Pe as UnsignedShort5551Type,Ie as UnsignedShort565Type,Te as UnsignedShortType,u as VSMShadowMap,Vector2,Vector3,Vector4,VectorKeyframeTrack,Vertex,Fc as VertexColors,VideoTexture,WebGL1Renderer,WebGLCubeRenderTarget,WebGLMultipleRenderTargets,WebGLMultisampleRenderTarget,WebGLRenderTarget,WebGLRenderTargetCube,WebGLRenderer,WebGLUtils,WireframeGeometry,WireframeHelper,Ot as WrapAroundEnding,XHRLoader,Gt as ZeroCurvatureEnding,L as ZeroFactor,Ft as ZeroSlopeEnding,$t as ZeroStencilOp,Jt as sRGBEncoding};\n\n//# sourceMappingURL=three.module.js.map","import{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import React,{useRef,useEffect,useMemo,useState}from\"react\";import*as THREE from\"three\";const RAY_Y_POSITION_1=-.4;const RAY_Y_POSITION_2=-.5;/**\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n *\n * @framerDisableUnlink\n *\n * @framerIntrinsicWidth 400\n * @framerIntrinsicHeight 400\n */export default function Rays(props){const{raysColor}=props;const containerRef=useRef(null);const rendererRef=useRef(null);const sceneRef=useRef(null);const cameraRef=useRef(null);const meshRef=useRef(null);const frameIdRef=useRef();const darkMode=useDarkMode();const[isMounted,setIsMounted]=useState(false);const animationRef=useRef(props.animation);useEffect(()=>{setIsMounted(true);return()=>setIsMounted(false);},[]);useEffect(()=>{animationRef.current=props.animation;},[props.animation]);const[randomColor1RGB,randomColor2RGB]=useMemo(()=>{if(raysColor.mode===\"random\"){const h=Math.random()*360;const s=60+Math.random()*40;return[hslToRgb(h,s,50),hslToRgb(h,s,65)];}else{return[[1,1,1],[1,1,1]];}},[raysColor]);const[color1RGB,color2RGB,raysOpacity]=useMemo(()=>{if(raysColor.mode===\"random\"){return[randomColor1RGB,randomColor2RGB,1];}else{let color1=\"\";let color2=\"\";switch(raysColor.mode){case\"single\":color1=raysColor.color;color2=raysColor.color;break;case\"multi\":color1=raysColor.color1;color2=raysColor.color2;break;}const[r1,g1,b1,a1]=colorToRGBA(getColorValue(color1,containerRef));const[r2,g2,b2,a2]=colorToRGBA(getColorValue(color2,containerRef));return[[r1,g1,b1],[r2,g2,b2],Math.max(a1,a2)];}},[raysColor,darkMode,containerRef]);useEffect(()=>{setIsMounted(true);// Setup three.js scene\nconst container=containerRef.current;if(!container)return;const scene=new THREE.Scene;const camera=new THREE.PerspectiveCamera(75,container.clientWidth/container.clientHeight,.1,1e3);camera.position.z=5;const renderer=new THREE.WebGLRenderer({preserveDrawingBuffer:true,premultipliedAlpha:true,alpha:true,antialias:true,precision:\"highp\",powerPreference:\"high-performance\"});renderer.setSize(container.clientWidth,container.clientHeight);renderer.setPixelRatio(1);container.appendChild(renderer.domElement);// Create mesh\nconst geometry=new THREE.PlaneGeometry(1024,1024);const material=new THREE.ShaderMaterial({fragmentShader:FRAGMENT_SHADER,vertexShader:VERTEX_SHADER,uniforms:{u_colors:{value:[new THREE.Vector4(color1RGB[0],color1RGB[1],color1RGB[2],1),new THREE.Vector4(color2RGB[0],color2RGB[1],color2RGB[2],1)]},u_intensity:{value:mapRange(props.intensity,0,100,0,.5)},u_rays:{value:mapRange(props.rays,0,100,0,.3)},u_reach:{value:mapRange(props.reach,0,100,0,.5)},u_time:{value:Math.random()*1e4},u_mouse:{value:[0,0]},u_resolution:{value:[container.clientWidth,container.clientHeight]},u_rayPos1:{value:[props.position/100*container.clientWidth,RAY_Y_POSITION_1*container.clientHeight]},u_rayPos2:{value:[(props.position/100+.02)*container.clientWidth,RAY_Y_POSITION_2*container.clientHeight]}},wireframe:false,wireframeLinewidth:0,dithering:false,flatShading:true,side:THREE.DoubleSide});const mesh=new THREE.Mesh(geometry,material);scene.add(mesh);// Store refs\nsceneRef.current=scene;cameraRef.current=camera;rendererRef.current=renderer;meshRef.current=mesh;// Animation loop\nlet lastTime=0;const animate=time=>{const animation=animationRef.current;if(!animation.animate){lastTime=time;}const delta=time-lastTime;lastTime=time;if(mesh.material instanceof THREE.ShaderMaterial){if(animation.animate){mesh.material.uniforms.u_time.value+=delta*animation.speed/1e3/10;}}renderer.render(scene,camera);frameIdRef.current=requestAnimationFrame(animate);};frameIdRef.current=requestAnimationFrame(animate);// Cleanup\nreturn()=>{if(frameIdRef.current){cancelAnimationFrame(frameIdRef.current);}renderer.dispose();geometry.dispose();material.dispose();container.removeChild(renderer.domElement);};},[isMounted]);// Update uniforms when props change\nuseEffect(()=>{if(meshRef.current?.material instanceof THREE.ShaderMaterial){const material=meshRef.current.material;const container=containerRef.current;if(!container)return;material.uniforms.u_colors.value=[new THREE.Vector4(color1RGB[0],color1RGB[1],color1RGB[2],1),new THREE.Vector4(color2RGB[0],color2RGB[1],color2RGB[2],1)];material.uniforms.u_intensity.value=mapRange(props.intensity,0,100,0,.5);material.uniforms.u_rays.value=mapRange(props.rays,0,100,0,.3);material.uniforms.u_reach.value=mapRange(props.reach,0,100,0,.5);material.uniforms.u_rayPos1.value=[props.position/100*container.clientWidth,RAY_Y_POSITION_1*container.clientHeight];material.uniforms.u_rayPos2.value=[(props.position/100+.02)*container.clientWidth,RAY_Y_POSITION_2*container.clientHeight];}},[props.intensity,props.rays,props.reach,props.position,color1RGB,color2RGB]);return /*#__PURE__*/_jsx(\"div\",{ref:containerRef,style:{borderRadius:props.radius,overflow:\"hidden\",backgroundColor:props.backgroundColor,...props.style}});}Rays.displayName=\"Light Rays\";addPropertyControls(Rays,{raysColor:{type:ControlType.Object,title:\"Color\",controls:{mode:{type:ControlType.Enum,defaultValue:\"single\",options:[\"random\",\"single\",\"multi\"],optionTitles:[\"Random\",\"Single\",\"Multi\"],displaySegmentedControl:true,segmentedControlDirection:\"vertical\"},color:{type:ControlType.Color,defaultValue:\"#FFF\",hidden:props=>props.mode!==\"single\"},color1:{type:ControlType.Color,defaultValue:\"#FFF\",hidden:props=>props.mode!==\"multi\"},color2:{type:ControlType.Color,defaultValue:\"#FFCB47\",hidden:props=>props.mode!==\"multi\"}}},backgroundColor:{type:ControlType.Color,defaultValue:\"#000\",optional:true,title:\"Background\"},animation:{type:ControlType.Object,icon:\"effect\",controls:{animate:{type:ControlType.Boolean,defaultValue:true},speed:{type:ControlType.Number,defaultValue:10,min:1,max:100,step:1,hidden:props=>!props.animate}}},intensity:{type:ControlType.Number,defaultValue:50,min:0,max:100,step:1},rays:{type:ControlType.Number,defaultValue:30,min:0,max:100,step:1},reach:{type:ControlType.Number,defaultValue:40,min:0,max:100,step:1},position:{type:ControlType.Number,defaultValue:80,min:0,max:100,step:1,unit:\"%\"},radius:{type:ControlType.BorderRadius,defaultValue:\"0px\",description:\"More components at [Framer University](https://frameruni.link/cc).\"}});class CanvasErrorBoundary extends React.Component{static getDerivedStateFromError(error){return{hasError:true};}render(){if(this.state.hasError){return null// Render nothing if there's an error\n;}return this.props.children;}constructor(props){super(props);this.state={hasError:false};}}function getColorValue(color,elementRef){if(color.startsWith(\"var(\")){const{variableName,defaultValue}=extractCSSVariableInfo(color);const defaultReturnValue=defaultValue||\"\";if(variableName&&typeof document!==\"undefined\"){const computedStyle=getComputedStyle(elementRef?.current||document.body);if(computedStyle){const computedValue=computedStyle.getPropertyValue(variableName).trim();return computedValue||defaultReturnValue;}return defaultReturnValue;}return defaultReturnValue;}else{return color;}}function extractCSSVariableInfo(cssString){// Regular expression to match the variable name and default value\nconst regex=/var\\s*\\(\\s*(--[\\w-]+)(?:\\s*,\\s*((?:\"[^\"]*\"|'[^']*'|[^)]+)))?\\s*\\)/;// Execute the regex on the input string\nconst match=regex.exec(cssString);if(match){const variableName=match[1];let defaultValue=match[2]||null;// If defaultValue is present, clean it up\nif(defaultValue){// Remove surrounding quotes if present\ndefaultValue=defaultValue.replace(/^[\"']|[\"']$/g,\"\");// Trim any whitespace\ndefaultValue=defaultValue.trim();}return{variableName,defaultValue};}return{variableName:\"\",defaultValue:\"\"};}const colorToRGBA=color=>{let r=1;let g=1;let b=1;let a=1;if(color&&typeof color===\"string\"){if(color.startsWith(\"rgba(\")){const parts=color.slice(5,-1).split(\",\");r=parseInt(parts[0])/255;g=parseInt(parts[1])/255;b=parseInt(parts[2])/255;a=parseFloat(parts[3]);}else if(color.startsWith(\"rgb(\")){const parts=color.slice(4,-1).split(\",\");r=parseInt(parts[0])/255;g=parseInt(parts[1])/255;b=parseInt(parts[2])/255;}else if(color.startsWith(\"#\")){const hex=color.slice(1);if(hex.length===3){r=parseInt(hex[0]+hex[0],16)/255;g=parseInt(hex[1]+hex[1],16)/255;b=parseInt(hex[2]+hex[2],16)/255;}else if(hex.length===6){r=parseInt(hex.slice(0,2),16)/255;g=parseInt(hex.slice(2,4),16)/255;b=parseInt(hex.slice(4,6),16)/255;}else if(hex.length===8){r=parseInt(hex.slice(0,2),16)/255;g=parseInt(hex.slice(2,4),16)/255;b=parseInt(hex.slice(4,6),16)/255;a=parseInt(hex.slice(6,8),16)/255;}}}return[r,g,b,a];};function useDarkMode(){const[isDarkMode,setIsDarkMode]=useState(false);useEffect(()=>{const mediaQuery=window.matchMedia(\"(prefers-color-scheme: dark)\");const handleChange=e=>{// Use requestAnimationFrame to ensure CSS variables have updated\nrequestAnimationFrame(()=>{// Add a small delay to ensure CSS variables have propagated\nsetTimeout(()=>{setIsDarkMode(e.matches);},80);});};setIsDarkMode(mediaQuery.matches);mediaQuery.addListener(handleChange);return()=>mediaQuery.removeListener(handleChange);},[]);return isDarkMode;}function hslToRgb(h,s,l){s/=100;l/=100;const c=(1-Math.abs(2*l-1))*s;const x=c*(1-Math.abs(h/60%2-1));const m=l-c/2;let r=0,g=0,b=0;if(h>=0&&h<60){r=c;g=x;b=0;}else if(h>=60&&h<120){r=x;g=c;b=0;}else if(h>=120&&h<180){r=0;g=c;b=x;}else if(h>=180&&h<240){r=0;g=x;b=c;}else if(h>=240&&h<300){r=x;g=0;b=c;}else if(h>=300&&h<360){r=c;g=0;b=x;}return[r+m,g+m,b+m];}function mapRange(value,fromLow,fromHigh,toLow,toHigh){const percentage=(value-fromLow)/(fromHigh-fromLow);return toLow+percentage*(toHigh-toLow);}const VERTEX_SHADER=`\nvoid main() {\n  gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}`;const FRAGMENT_SHADER=`\n// Uniforms\n\nuniform vec2 u_resolution;\nuniform vec2 u_mouse;\nuniform float u_time;\nuniform vec4 u_colors[2];\nuniform float u_intensity;\nuniform float u_rays;\nuniform float u_reach;\nuniform vec2 u_rayPos1;\nuniform vec2 u_rayPos2;\n\n#ifndef FNC_MOD289\n#define FNC_MOD289\n\nfloat mod289(const in float x) { return x - floor(x * (1. / 289.)) * 289.; }\nvec2 mod289(const in vec2 x) { return x - floor(x * (1. / 289.)) * 289.; }\nvec3 mod289(const in vec3 x) { return x - floor(x * (1. / 289.)) * 289.; }\nvec4 mod289(const in vec4 x) { return x - floor(x * (1. / 289.)) * 289.; }\n\n#endif\n\n#ifndef FNC_PERMUTE\n#define FNC_PERMUTE\n\nfloat permute(const in float x) { return mod289(((x * 34.0) + 1.0) * x); }\nvec2 permute(const in vec2 x) { return mod289(((x * 34.0) + 1.0) * x); }\nvec3 permute(const in vec3 x) { return mod289(((x * 34.0) + 1.0) * x); }\nvec4 permute(const in vec4 x) { return mod289(((x * 34.0) + 1.0) * x); }\n\n#endif\n\n#ifndef FNC_TAYLORINVSQRT\n#define FNC_TAYLORINVSQRT\nfloat taylorInvSqrt(in float r) { return 1.79284291400159 - 0.85373472095314 * r; }\nvec2 taylorInvSqrt(in vec2 r) { return 1.79284291400159 - 0.85373472095314 * r; }\nvec3 taylorInvSqrt(in vec3 r) { return 1.79284291400159 - 0.85373472095314 * r; }\nvec4 taylorInvSqrt(in vec4 r) { return 1.79284291400159 - 0.85373472095314 * r; }\n#endif\n\n#ifndef FNC_QUINTIC\n#define FNC_QUINTIC \n\nfloat quintic(const in float v) { return v*v*v*(v*(v*6.0-15.0)+10.0); }\nvec2  quintic(const in vec2 v)  { return v*v*v*(v*(v*6.0-15.0)+10.0); }\nvec3  quintic(const in vec3 v)  { return v*v*v*(v*(v*6.0-15.0)+10.0); }\nvec4  quintic(const in vec4 v)  { return v*v*v*(v*(v*6.0-15.0)+10.0); }\n\n#endif\n\n#ifndef FNC_PNOISE\n#define FNC_PNOISE\n\nfloat pnoise(in vec2 P, in vec2 rep) {\n    vec4 Pi = floor(P.xyxy) + vec4(0.0, 0.0, 1.0, 1.0);\n    vec4 Pf = fract(P.xyxy) - vec4(0.0, 0.0, 1.0, 1.0);\n    Pi = mod(Pi, rep.xyxy); \n    Pi = mod289(Pi);        \n    vec4 ix = Pi.xzxz;\n    vec4 iy = Pi.yyww;\n    vec4 fx = Pf.xzxz;\n    vec4 fy = Pf.yyww;\n\n    vec4 i = permute(permute(ix) + iy);\n\n    vec4 gx = fract(i * (1.0 / 41.0)) * 2.0 - 1.0 ;\n    vec4 gy = abs(gx) - 0.5 ;\n    vec4 tx = floor(gx + 0.5);\n    gx = gx - tx;\n\n    vec2 g00 = vec2(gx.x,gy.x);\n    vec2 g10 = vec2(gx.y,gy.y);\n    vec2 g01 = vec2(gx.z,gy.z);\n    vec2 g11 = vec2(gx.w,gy.w);\n\n    vec4 norm = taylorInvSqrt(vec4(dot(g00, g00), dot(g01, g01), dot(g10, g10), dot(g11, g11)));\n    g00 *= norm.x;\n    g01 *= norm.y;\n    g10 *= norm.z;\n    g11 *= norm.w;\n\n    float n00 = dot(g00, vec2(fx.x, fy.x));\n    float n10 = dot(g10, vec2(fx.y, fy.y));\n    float n01 = dot(g01, vec2(fx.z, fy.z));\n    float n11 = dot(g11, vec2(fx.w, fy.w));\n\n    vec2 fade_xy = quintic(Pf.xy);\n    vec2 n_x = mix(vec2(n00, n01), vec2(n10, n11), fade_xy.x);\n    float n_xy = mix(n_x.x, n_x.y, fade_xy.y);\n    return 2.3 * n_xy;\n}\n\nfloat pnoise(in vec3 P, in vec3 rep) {\n    vec3 Pi0 = mod(floor(P), rep); \n    vec3 Pi1 = mod(Pi0 + vec3(1.0), rep); \n    Pi0 = mod289(Pi0);\n    Pi1 = mod289(Pi1);\n    vec3 Pf0 = fract(P); \n    vec3 Pf1 = Pf0 - vec3(1.0); \n    vec4 ix = vec4(Pi0.x, Pi1.x, Pi0.x, Pi1.x);\n    vec4 iy = vec4(Pi0.yy, Pi1.yy);\n    vec4 iz0 = Pi0.zzzz;\n    vec4 iz1 = Pi1.zzzz;\n\n    vec4 ixy = permute(permute(ix) + iy);\n    vec4 ixy0 = permute(ixy + iz0);\n    vec4 ixy1 = permute(ixy + iz1);\n\n    vec4 gx0 = ixy0 * (1.0 / 7.0);\n    vec4 gy0 = fract(floor(gx0) * (1.0 / 7.0)) - 0.5;\n    gx0 = fract(gx0);\n    vec4 gz0 = vec4(0.5) - abs(gx0) - abs(gy0);\n    vec4 sz0 = step(gz0, vec4(0.0));\n    gx0 -= sz0 * (step(0.0, gx0) - 0.5);\n    gy0 -= sz0 * (step(0.0, gy0) - 0.5);\n\n    vec4 gx1 = ixy1 * (1.0 / 7.0);\n    vec4 gy1 = fract(floor(gx1) * (1.0 / 7.0)) - 0.5;\n    gx1 = fract(gx1);\n    vec4 gz1 = vec4(0.5) - abs(gx1) - abs(gy1);\n    vec4 sz1 = step(gz1, vec4(0.0));\n    gx1 -= sz1 * (step(0.0, gx1) - 0.5);\n    gy1 -= sz1 * (step(0.0, gy1) - 0.5);\n\n    vec3 g000 = vec3(gx0.x,gy0.x,gz0.x);\n    vec3 g100 = vec3(gx0.y,gy0.y,gz0.y);\n    vec3 g010 = vec3(gx0.z,gy0.z,gz0.z);\n    vec3 g110 = vec3(gx0.w,gy0.w,gz0.w);\n    vec3 g001 = vec3(gx1.x,gy1.x,gz1.x);\n    vec3 g101 = vec3(gx1.y,gy1.y,gz1.y);\n    vec3 g011 = vec3(gx1.z,gy1.z,gz1.z);\n    vec3 g111 = vec3(gx1.w,gy1.w,gz1.w);\n\n    vec4 norm0 = taylorInvSqrt(vec4(dot(g000, g000), dot(g010, g010), dot(g100, g100), dot(g110, g110)));\n    g000 *= norm0.x;\n    g010 *= norm0.y;\n    g100 *= norm0.z;\n    g110 *= norm0.w;\n    vec4 norm1 = taylorInvSqrt(vec4(dot(g001, g001), dot(g011, g011), dot(g101, g101), dot(g111, g111)));\n    g001 *= norm1.x;\n    g011 *= norm1.y;\n    g101 *= norm1.z;\n    g111 *= norm1.w;\n\n    float n000 = dot(g000, Pf0);\n    float n100 = dot(g100, vec3(Pf1.x, Pf0.yz));\n    float n010 = dot(g010, vec3(Pf0.x, Pf1.y, Pf0.z));\n    float n110 = dot(g110, vec3(Pf1.xy, Pf0.z));\n    float n001 = dot(g001, vec3(Pf0.xy, Pf1.z));\n    float n101 = dot(g101, vec3(Pf1.x, Pf0.y, Pf1.z));\n    float n011 = dot(g011, vec3(Pf0.x, Pf1.yz));\n    float n111 = dot(g111, Pf1);\n\n    vec3 fade_xyz = quintic(Pf0);\n    vec4 n_z = mix(vec4(n000, n100, n010, n110), vec4(n001, n101, n011, n111), fade_xyz.z);\n    vec2 n_yz = mix(n_z.xy, n_z.zw, fade_xyz.y);\n    float n_xyz = mix(n_yz.x, n_yz.y, fade_xyz.x);\n    return 2.2 * n_xyz;\n}\n\nfloat pnoise(in vec4 P, in vec4 rep) {\n    vec4 Pi0 = mod(floor(P), rep); \n    vec4 Pi1 = mod(Pi0 + 1.0, rep); \n    Pi0 = mod289(Pi0);\n    Pi1 = mod289(Pi1);\n    vec4 Pf0 = fract(P); \n    vec4 Pf1 = Pf0 - 1.0; \n    vec4 ix = vec4(Pi0.x, Pi1.x, Pi0.x, Pi1.x);\n    vec4 iy = vec4(Pi0.yy, Pi1.yy);\n    vec4 iz0 = vec4(Pi0.zzzz);\n    vec4 iz1 = vec4(Pi1.zzzz);\n    vec4 iw0 = vec4(Pi0.wwww);\n    vec4 iw1 = vec4(Pi1.wwww);\n\n    vec4 ixy = permute(permute(ix) + iy);\n    vec4 ixy0 = permute(ixy + iz0);\n    vec4 ixy1 = permute(ixy + iz1);\n    vec4 ixy00 = permute(ixy0 + iw0);\n    vec4 ixy01 = permute(ixy0 + iw1);\n    vec4 ixy10 = permute(ixy1 + iw0);\n    vec4 ixy11 = permute(ixy1 + iw1);\n\n    vec4 gx00 = ixy00 * (1.0 / 7.0);\n    vec4 gy00 = floor(gx00) * (1.0 / 7.0);\n    vec4 gz00 = floor(gy00) * (1.0 / 6.0);\n    gx00 = fract(gx00) - 0.5;\n    gy00 = fract(gy00) - 0.5;\n    gz00 = fract(gz00) - 0.5;\n    vec4 gw00 = vec4(0.75) - abs(gx00) - abs(gy00) - abs(gz00);\n    vec4 sw00 = step(gw00, vec4(0.0));\n    gx00 -= sw00 * (step(0.0, gx00) - 0.5);\n    gy00 -= sw00 * (step(0.0, gy00) - 0.5);\n\n    vec4 gx01 = ixy01 * (1.0 / 7.0);\n    vec4 gy01 = floor(gx01) * (1.0 / 7.0);\n    vec4 gz01 = floor(gy01) * (1.0 / 6.0);\n    gx01 = fract(gx01) - 0.5;\n    gy01 = fract(gy01) - 0.5;\n    gz01 = fract(gz01) - 0.5;\n    vec4 gw01 = vec4(0.75) - abs(gx01) - abs(gy01) - abs(gz01);\n    vec4 sw01 = step(gw01, vec4(0.0));\n    gx01 -= sw01 * (step(0.0, gx01) - 0.5);\n    gy01 -= sw01 * (step(0.0, gy01) - 0.5);\n\n    vec4 gx10 = ixy10 * (1.0 / 7.0);\n    vec4 gy10 = floor(gx10) * (1.0 / 7.0);\n    vec4 gz10 = floor(gy10) * (1.0 / 6.0);\n    gx10 = fract(gx10) - 0.5;\n    gy10 = fract(gy10) - 0.5;\n    gz10 = fract(gz10) - 0.5;\n    vec4 gw10 = vec4(0.75) - abs(gx10) - abs(gy10) - abs(gz10);\n    vec4 sw10 = step(gw10, vec4(0.0));\n    gx10 -= sw10 * (step(0.0, gx10) - 0.5);\n    gy10 -= sw10 * (step(0.0, gy10) - 0.5);\n\n    vec4 gx11 = ixy11 * (1.0 / 7.0);\n    vec4 gy11 = floor(gx11) * (1.0 / 7.0);\n    vec4 gz11 = floor(gy11) * (1.0 / 6.0);\n    gx11 = fract(gx11) - 0.5;\n    gy11 = fract(gy11) - 0.5;\n    gz11 = fract(gz11) - 0.5;\n    vec4 gw11 = vec4(0.75) - abs(gx11) - abs(gy11) - abs(gz11);\n    vec4 sw11 = step(gw11, vec4(0.0));\n    gx11 -= sw11 * (step(0.0, gx11) - 0.5);\n    gy11 -= sw11 * (step(0.0, gy11) - 0.5);\n\n    vec4 g0000 = vec4(gx00.x,gy00.x,gz00.x,gw00.x);\n    vec4 g1000 = vec4(gx00.y,gy00.y,gz00.y,gw00.y);\n    vec4 g0100 = vec4(gx00.z,gy00.z,gz00.z,gw00.z);\n    vec4 g1100 = vec4(gx00.w,gy00.w,gz00.w,gw00.w);\n    vec4 g0010 = vec4(gx10.x,gy10.x,gz10.x,gw10.x);\n    vec4 g1010 = vec4(gx10.y,gy10.y,gz10.y,gw10.y);\n    vec4 g0110 = vec4(gx10.z,gy10.z,gz10.z,gw10.z);\n    vec4 g1110 = vec4(gx10.w,gy10.w,gz10.w,gw10.w);\n    vec4 g0001 = vec4(gx01.x,gy01.x,gz01.x,gw01.x);\n    vec4 g1001 = vec4(gx01.y,gy01.y,gz01.y,gw01.y);\n    vec4 g0101 = vec4(gx01.z,gy01.z,gz01.z,gw01.z);\n    vec4 g1101 = vec4(gx01.w,gy01.w,gz01.w,gw01.w);\n    vec4 g0011 = vec4(gx11.x,gy11.x,gz11.x,gw11.x);\n    vec4 g1011 = vec4(gx11.y,gy11.y,gz11.y,gw11.y);\n    vec4 g0111 = vec4(gx11.z,gy11.z,gz11.z,gw11.z);\n    vec4 g1111 = vec4(gx11.w,gy11.w,gz11.w,gw11.w);\n\n    vec4 norm00 = taylorInvSqrt(vec4(dot(g0000, g0000), dot(g0100, g0100), dot(g1000, g1000), dot(g1100, g1100)));\n    g0000 *= norm00.x;\n    g0100 *= norm00.y;\n    g1000 *= norm00.z;\n    g1100 *= norm00.w;\n\n    vec4 norm01 = taylorInvSqrt(vec4(dot(g0001, g0001), dot(g0101, g0101), dot(g1001, g1001), dot(g1101, g1101)));\n    g0001 *= norm01.x;\n    g0101 *= norm01.y;\n    g1001 *= norm01.z;\n    g1101 *= norm01.w;\n\n    vec4 norm10 = taylorInvSqrt(vec4(dot(g0010, g0010), dot(g0110, g0110), dot(g1010, g1010), dot(g1110, g1110)));\n    g0010 *= norm10.x;\n    g0110 *= norm10.y;\n    g1010 *= norm10.z;\n    g1110 *= norm10.w;\n\n    vec4 norm11 = taylorInvSqrt(vec4(dot(g0011, g0011), dot(g0111, g0111), dot(g1011, g1011), dot(g1111, g1111)));\n    g0011 *= norm11.x;\n    g0111 *= norm11.y;\n    g1011 *= norm11.z;\n    g1111 *= norm11.w;\n\n    float n0000 = dot(g0000, Pf0);\n    float n1000 = dot(g1000, vec4(Pf1.x, Pf0.yzw));\n    float n0100 = dot(g0100, vec4(Pf0.x, Pf1.y, Pf0.zw));\n    float n1100 = dot(g1100, vec4(Pf1.xy, Pf0.zw));\n    float n0010 = dot(g0010, vec4(Pf0.xy, Pf1.z, Pf0.w));\n    float n1010 = dot(g1010, vec4(Pf1.x, Pf0.y, Pf1.z, Pf0.w));\n    float n0110 = dot(g0110, vec4(Pf0.x, Pf1.yz, Pf0.w));\n    float n1110 = dot(g1110, vec4(Pf1.xyz, Pf0.w));\n    float n0001 = dot(g0001, vec4(Pf0.xyz, Pf1.w));\n    float n1001 = dot(g1001, vec4(Pf1.x, Pf0.yz, Pf1.w));\n    float n0101 = dot(g0101, vec4(Pf0.x, Pf1.y, Pf0.z, Pf1.w));\n    float n1101 = dot(g1101, vec4(Pf1.xy, Pf0.z, Pf1.w));\n    float n0011 = dot(g0011, vec4(Pf0.xy, Pf1.zw));\n    float n1011 = dot(g1011, vec4(Pf1.x, Pf0.y, Pf1.zw));\n    float n0111 = dot(g0111, vec4(Pf0.x, Pf1.yzw));\n    float n1111 = dot(g1111, Pf1);\n\n    vec4 fade_xyzw = quintic(Pf0);\n    vec4 n_0w = mix(vec4(n0000, n1000, n0100, n1100), vec4(n0001, n1001, n0101, n1101), fade_xyzw.w);\n    vec4 n_1w = mix(vec4(n0010, n1010, n0110, n1110), vec4(n0011, n1011, n0111, n1111), fade_xyzw.w);\n    vec4 n_zw = mix(n_0w, n_1w, fade_xyzw.z);\n    vec2 n_yzw = mix(n_zw.xy, n_zw.zw, fade_xyzw.y);\n    float n_xyzw = mix(n_yzw.x, n_yzw.y, fade_xyzw.x);\n    return 2.2 * n_xyzw;\n}\n#endif\n\n#ifndef SRGB_EPSILON \n#define SRGB_EPSILON 0.00000001\n#endif\n\n#ifndef FNC_SRGB2RGB\n#define FNC_SRGB2RGB\n\nfloat srgb2rgb(float channel) {\n    return (channel < 0.04045) ? channel * 0.0773993808 : pow((channel + 0.055) * 0.947867298578199, 2.4);\n}\n\nvec3 srgb2rgb(vec3 srgb) {\n    return vec3(srgb2rgb(srgb.r + SRGB_EPSILON), \n                srgb2rgb(srgb.g + SRGB_EPSILON),\n                srgb2rgb(srgb.b + SRGB_EPSILON));\n}\n\nvec4 srgb2rgb(vec4 srgb) {\n    return vec4(srgb2rgb(srgb.rgb), srgb.a);\n}\n\n#endif\n\n#if !defined(FNC_SATURATE) && !defined(saturate)\n#define FNC_SATURATE\n#define saturate(x) clamp(x, 0.0, 1.0)\n#endif\n\n#ifndef SRGB_EPSILON \n#define SRGB_EPSILON 0.00000001\n#endif\n\n#ifndef FNC_RGB2SRGB\n#define FNC_RGB2SRGB\n\nfloat rgb2srgb(float channel) {\n    return (channel < 0.0031308) ? channel * 12.92 : 1.055 * pow(channel, 0.4166666666666667) - 0.055;\n}\n\nvec3 rgb2srgb(vec3 rgb) {\n    return saturate(vec3(rgb2srgb(rgb.r - SRGB_EPSILON), rgb2srgb(rgb.g - SRGB_EPSILON), rgb2srgb(rgb.b - SRGB_EPSILON)));\n}\n\nvec4 rgb2srgb(vec4 rgb) {\n    return vec4(rgb2srgb(rgb.rgb), rgb.a);\n}\n\n#endif\n\n#ifndef FNC_MIXOKLAB\n#define FNC_MIXOKLAB\nvec3 mixOklab( vec3 colA, vec3 colB, float h ) {\n\n    #ifdef MIXOKLAB_COLORSPACE_SRGB\n    colA = srgb2rgb(colA);\n    colB = srgb2rgb(colB);\n    #endif\n\n    const mat3 kCONEtoLMS = mat3(                \n         0.4121656120,  0.2118591070,  0.0883097947,\n         0.5362752080,  0.6807189584,  0.2818474174,\n         0.0514575653,  0.1074065790,  0.6302613616);\n    const mat3 kLMStoCONE = mat3(\n         4.0767245293, -1.2681437731, -0.0041119885,\n        -3.3072168827,  2.6093323231, -0.7034763098,\n         0.2307590544, -0.3411344290,  1.7068625689);\n\n    vec3 lmsA = pow( kCONEtoLMS * colA, vec3(1.0/3.0) );\n    vec3 lmsB = pow( kCONEtoLMS * colB, vec3(1.0/3.0) );\n    \n    vec3 lms = mix( lmsA, lmsB, h );\n\n    vec3 rgb = kLMStoCONE*(lms*lms*lms);\n\n    #ifdef MIXOKLAB_COLORSPACE_SRGB\n    return rgb2srgb(rgb);\n    #else\n    return rgb;\n    #endif\n}\n\nvec4 mixOklab( vec4 colA, vec4 colB, float h ) {\n    return vec4( mixOklab(colA.rgb, colB.rgb, h), mix(colA.a, colB.a, h) );\n}\n#endif\n\n\nfloat rayStrength(vec2 raySource, vec2 rayRefDirection, vec2 coord, float seedA, float seedB, float speed)\n{\n    vec2 sourceToCoord = coord - raySource;\n    float cosAngle = dot(normalize(sourceToCoord), rayRefDirection);\n    \n    // Calculate the diagonal length\n    float diagonal = length(u_resolution);\n\n    return clamp(\n        (.45 + 0.15 * sin(cosAngle * seedA + u_time * speed)) +\n        (0.3 + 0.2 * cos(-cosAngle * seedB + u_time * speed)),\n        u_reach, 1.0) *\n        clamp((diagonal - length(sourceToCoord)) / diagonal, u_reach, 1.0);\n}\n\nvoid main()\n{\n    vec2 uv = gl_FragCoord.xy / u_resolution.xy;\n    uv.y = 1.0 - uv.y;\n    vec2 coord = vec2(gl_FragCoord.x, u_resolution.y - gl_FragCoord.y);\n    float speed = u_rays * 10.0;\n    \n    // Set the parameters of the sun rays\n    vec2 rayPos1 = u_rayPos1;\n    vec2 rayRefDir1 = normalize(vec2(1.0, -0.116));\n    float raySeedA1 = 36.2214*speed;\n    float raySeedB1 = 21.11349*speed;\n    float raySpeed1 = 1.5*speed;\n    \n    vec2 rayPos2 = u_rayPos2;\n    vec2 rayRefDir2 = normalize(vec2(1.0, 0.241));\n    float raySeedA2 = 22.39910*speed;\n    float raySeedB2 = 18.0234*speed;\n    float raySpeed2 = 1.1*speed;\n    \n    // Calculate ray strengths\n    float strength1 = rayStrength(rayPos1, rayRefDir1, coord, raySeedA1, raySeedB1, raySpeed1);\n    float strength2 = rayStrength(rayPos2, rayRefDir2, coord, raySeedA2, raySeedB2, raySpeed2);\n    \n    // Calculate brightness attenuation\n    float brightness = 1.0*u_reach - (coord.y / u_resolution.y);\n    float attenuation = clamp(brightness + (0.5 + u_intensity), 0.0, 1.0);\n    \n    // Calculate alpha values while preserving color\n    float alpha1 = strength1 * attenuation * u_colors[0].a;\n    float alpha2 = strength2 * attenuation * u_colors[1].a;\n    \n    // Pre-multiply the colors with their alpha values\n    vec3 premultColor1 = u_colors[0].rgb * alpha1;\n    vec3 premultColor2 = u_colors[1].rgb * alpha2;\n    \n    // Blend the pre-multiplied colors\n    vec3 blendedColor = premultColor1 + premultColor2;\n    float blendedAlpha = alpha1 + alpha2 * (1.0 - alpha1);\n    \n    // Un-premultiply the final color\n    vec3 finalRGB = blendedColor / max(blendedAlpha, 0.0001);\n    \n    gl_FragColor = vec4(finalRGB * blendedAlpha, blendedAlpha);\n}\n`;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Rays\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"400\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerDisableUnlink\":\"*\",\"framerSupportedLayoutHeight\":\"fixed\",\"framerIntrinsicWidth\":\"400\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Rays_Prod.map","// Generated by Framer (fd7a51d)\nimport{fontStore}from\"framer\";fontStore.loadFonts([]);export const fonts=[{explicitInter:true,fonts:[]}];export const css=[\".framer-X3jDw .framer-styles-preset-1yx4pvj:not(.rich-text-wrapper), .framer-X3jDw .framer-styles-preset-1yx4pvj.rich-text-wrapper a { --framer-link-current-text-color: #111111; --framer-link-current-text-decoration: underline; --framer-link-hover-text-color: #0088ff; --framer-link-hover-text-decoration: underline; --framer-link-text-color: #0099ff; --framer-link-text-decoration: none; }\"];export const className=\"framer-X3jDw\";\nexport const __FramerMetadata__ = {\"exports\":{\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (ff6f0b6)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"GF;Inter-regular\",\"Inter-Bold\",\"Inter-BoldItalic\",\"Inter-Italic\"]);export const fonts=[{explicitInter:true,fonts:[{family:\"Inter\",openType:true,source:\"google\",style:\"normal\",url:\"https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuLyfMZ1rib2Bg-4.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/DpPBYI0sL4fYLgAkX8KXOPVt7c.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/4RAEQdEOrcnDkhHiiCbJOw92Lk.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/1K3W8DizY3v4emK8Mb08YHxTbs.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/tUSCtfYVM1I1IchuyCwz9gDdQ.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/VgYFWiwsAC5OYxAycRXXvhze58.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/DXD0Q7LSl7HEvDzucnyLnGBHM.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/GIryZETIX4IFypco5pYZONKhJIo.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/H89BbHkbHDzlxZzxi8uPzTsp90.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/u6gJwDuwB143kpNK1T1MDKDWkMc.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/43sJ6MfOPh1LCJt46OvyDuSbA6o.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/wccHG0r4gBDAIRhfHiOlq6oEkqw.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/WZ367JPwf9bRW6LdTHN8rXgSjw.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/QxmhnWTzLtyjIiZcfaLIJ8EFBXU.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/2A4Xx7CngadFGlVV4xrO06OBHY.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/CfMzU8w2e7tHgF4T4rATMPuWosA.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/867QObYax8ANsfX4TGEVU9YiCM.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/Oyn2ZbENFdnW7mt2Lzjk1h9Zb9k.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/cdAe8hgZ1cMyLu9g005pAW3xMo.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/DOfvtmE1UplCq161m6Hj8CSQYg.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/vFzuJY0c65av44uhEKB6vyjFMg.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/tKtBcDnBMevsEEJKdNGhhkLzYo.woff2\",weight:\"400\"}]}];export const css=['.framer-uvLuZ .framer-styles-preset-1dkxfhl:not(.rich-text-wrapper), .framer-uvLuZ .framer-styles-preset-1dkxfhl.rich-text-wrapper p { --framer-font-family: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-open-type-features: \\'blwf\\' on, \\'cv09\\' on, \\'cv03\\' on, \\'cv04\\' on, \\'cv11\\' on; --framer-font-size: 14px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 400; --framer-letter-spacing: 0em; --framer-line-height: 1.6em; --framer-paragraph-spacing: 20px; --framer-text-alignment: start; --framer-text-color: #666666; --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }'];export const className=\"framer-uvLuZ\";\nexport const __FramerMetadata__ = {\"exports\":{\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (7e4cc89)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ControlType,cx,SVG,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";const cycleOrder=[\"IU7Mdt0TT\",\"aMhuRdcY8\"];const serializationHash=\"framer-y5Z24\";const variantClassNames={aMhuRdcY8:\"framer-v-ud358d\",IU7Mdt0TT:\"framer-v-mdydcg\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={bounce:.2,delay:0,duration:.4,type:\"spring\"};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const humanReadableVariantMap={\"Variant 1\":\"IU7Mdt0TT\",\"Variant 2\":\"aMhuRdcY8\"};const getProps=({height,id,width,...props})=>{return{...props,variant:humanReadableVariantMap[props.variant]??props.variant??\"IU7Mdt0TT\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"IU7Mdt0TT\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsx(motion.div,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-mdydcg\",className,classNames),\"data-framer-name\":\"Variant 1\",layoutDependency:layoutDependency,layoutId:\"IU7Mdt0TT\",ref:refBinding,style:{...style},...addPropertyOverrides({aMhuRdcY8:{\"data-framer-name\":\"Variant 2\"}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SVG,{className:\"framer-1e1aght\",\"data-framer-name\":\"Constant Logo\",layout:\"position\",layoutDependency:layoutDependency,layoutId:\"ys5NHeOyk\",opacity:1,svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 170 34\"><path d=\"M 55.699 25.488 C 53.71 25.488 51.967 25.085 50.47 24.279 C 48.973 23.471 47.807 22.383 46.973 21.015 C 46.158 19.627 45.751 18.06 45.751 16.316 C 45.751 14.908 46.036 13.604 46.604 12.404 C 47.162 11.218 47.943 10.149 48.906 9.253 C 49.874 8.345 51.001 7.621 52.232 7.115 C 53.476 6.609 54.809 6.351 56.154 6.355 C 57.159 6.355 57.991 6.411 58.655 6.523 C 59.318 6.636 59.916 6.795 60.445 7.001 C 60.976 7.208 61.507 7.443 62.037 7.705 L 62.35 12.967 L 61.838 12.967 L 59.139 8.606 C 58.665 8.305 58.22 8.089 57.803 7.959 C 57.385 7.827 56.884 7.761 56.296 7.761 C 55.14 7.761 54.098 8.108 53.17 8.803 C 52.26 9.478 51.54 10.443 51.009 11.701 C 50.479 12.939 50.214 14.383 50.214 16.034 C 50.214 17.666 50.469 19.083 50.981 20.284 C 51.493 21.465 52.184 22.383 53.056 23.04 C 53.92 23.669 54.967 24.005 56.04 23.997 C 56.741 23.997 57.366 23.912 57.916 23.744 C 58.484 23.557 59.024 23.321 59.536 23.04 L 62.095 19.27 L 62.577 19.27 L 62.18 24.025 C 61.403 24.476 60.464 24.832 59.365 25.095 C 58.286 25.357 57.064 25.488 55.699 25.488 Z M 72.353 25.488 C 71.008 25.488 69.823 25.188 68.8 24.587 C 67.801 23.993 66.978 23.148 66.413 22.139 C 65.844 21.128 65.56 20.011 65.56 18.792 C 65.56 17.553 65.844 16.428 66.412 15.415 C 66.973 14.41 67.798 13.573 68.799 12.995 C 69.823 12.395 71.008 12.095 72.353 12.095 C 73.698 12.095 74.873 12.395 75.878 12.996 C 76.879 13.574 77.704 14.41 78.264 15.415 C 78.833 16.428 79.117 17.553 79.117 18.792 C 79.117 20.011 78.834 21.127 78.264 22.14 C 77.7 23.149 76.876 23.994 75.878 24.588 C 74.873 25.188 73.698 25.489 72.353 25.489 Z M 72.666 24.109 C 73.215 24.109 73.66 23.894 74.002 23.463 C 74.361 23.012 74.617 22.421 74.769 21.689 C 74.939 20.958 75.024 20.18 75.024 19.355 C 75.03 18.389 74.925 17.426 74.712 16.484 C 74.523 15.583 74.209 14.852 73.774 14.289 C 73.357 13.727 72.798 13.445 72.097 13.445 C 71.529 13.445 71.064 13.671 70.705 14.12 C 70.344 14.552 70.079 15.133 69.909 15.865 C 69.732 16.631 69.646 17.415 69.653 18.2 C 69.653 19.232 69.757 20.198 69.965 21.099 C 70.174 21.98 70.496 22.703 70.932 23.265 C 71.387 23.828 71.964 24.109 72.666 24.109 Z M 80.99 25.207 L 80.99 24.756 L 82.894 23.856 L 82.894 15.303 L 81.075 14.148 L 81.075 13.811 L 86.248 12.095 L 86.588 12.095 L 86.844 14.177 L 86.987 14.177 C 87.668 13.52 88.332 13.014 88.976 12.657 C 89.62 12.283 90.378 12.095 91.25 12.095 C 92.406 12.095 93.344 12.385 94.064 12.967 C 94.802 13.548 95.173 14.412 95.173 15.556 L 95.173 23.856 L 97.077 24.757 L 97.077 25.208 L 89.744 25.208 L 89.744 24.757 L 91.165 23.856 L 91.165 16.709 C 91.165 16.052 90.965 15.556 90.568 15.218 C 90.188 14.861 89.706 14.684 89.119 14.684 C 88.758 14.684 88.36 14.749 87.924 14.88 C 87.539 14.995 87.181 15.186 86.873 15.443 L 86.873 23.856 L 88.323 24.757 L 88.323 25.208 L 80.99 25.208 Z M 103.618 25.488 C 102.689 25.488 101.875 25.395 101.174 25.208 C 100.478 25.034 99.801 24.788 99.156 24.476 L 99.156 21.212 L 99.582 21.212 L 100.577 22.674 C 101.278 23.725 102.254 24.251 103.504 24.251 C 104.983 24.251 105.721 23.715 105.721 22.647 C 105.721 22.252 105.617 21.933 105.409 21.689 C 105.201 21.446 104.859 21.211 104.386 20.987 C 103.76 20.685 103.125 20.404 102.482 20.142 C 101.42 19.711 100.634 19.204 100.122 18.623 C 99.611 18.041 99.355 17.319 99.355 16.456 C 99.355 15.649 99.563 14.918 99.981 14.261 C 100.424 13.597 101.03 13.055 101.742 12.685 C 102.482 12.292 103.315 12.095 104.243 12.095 C 104.887 12.095 105.513 12.16 106.119 12.292 C 106.752 12.426 107.364 12.643 107.939 12.939 L 107.939 16.288 L 107.512 16.288 L 106.631 14.965 C 106.271 14.421 105.901 14.017 105.523 13.755 C 105.143 13.492 104.689 13.361 104.158 13.361 C 103.59 13.361 103.126 13.501 102.766 13.783 C 102.424 14.064 102.254 14.459 102.254 14.964 C 102.254 15.303 102.33 15.593 102.482 15.837 C 102.652 16.062 102.945 16.288 103.363 16.512 C 103.779 16.737 104.377 17 105.153 17.3 C 105.683 17.507 106.204 17.751 106.716 18.031 C 107.248 18.294 107.699 18.693 108.024 19.185 C 108.384 19.673 108.564 20.358 108.564 21.24 C 108.564 22.121 108.327 22.88 107.853 23.519 C 107.377 24.158 106.741 24.662 106.006 24.982 C 105.257 25.321 104.442 25.494 103.618 25.488 Z M 116.255 25.488 C 115.099 25.488 114.152 25.244 113.413 24.757 C 112.674 24.269 112.305 23.584 112.305 22.703 L 112.305 13.642 L 110.259 13.642 L 110.259 13.248 L 112.873 12.376 L 115.744 9.281 L 116.284 9.281 L 116.284 12.376 L 120.235 12.376 L 120.235 13.643 L 116.284 13.643 L 116.284 21.999 C 116.284 22.487 116.492 22.844 116.909 23.068 C 117.326 23.293 117.819 23.406 118.387 23.406 C 118.748 23.406 119.06 23.388 119.325 23.35 C 119.61 23.293 119.884 23.237 120.15 23.181 L 120.235 23.237 L 120.235 23.716 C 119.913 24.166 119.392 24.579 118.671 24.953 C 117.952 25.31 117.146 25.489 116.255 25.489 Z M 125.229 25.46 C 124.301 25.46 123.505 25.188 122.841 24.644 C 122.178 24.081 121.866 23.276 121.904 22.224 C 121.904 21.549 122.037 20.977 122.302 20.507 C 122.567 20.02 123.031 19.598 123.695 19.241 C 124.358 18.884 125.286 18.557 126.48 18.257 L 129.151 17.609 L 129.151 15.865 C 129.151 15.152 128.934 14.58 128.498 14.148 C 128.062 13.717 127.503 13.502 126.821 13.502 C 126.215 13.502 125.779 13.633 125.513 13.896 C 125.248 14.158 125.116 14.552 125.116 15.077 L 125.116 16.372 L 125.002 16.484 L 123.126 16.484 C 122.842 16.484 122.643 16.419 122.529 16.287 C 122.415 16.156 122.359 15.931 122.359 15.612 C 122.359 15.199 122.519 14.796 122.841 14.402 C 123.183 14.008 123.628 13.643 124.177 13.305 C 124.86 12.873 125.494 12.564 126.082 12.376 C 126.717 12.184 127.378 12.089 128.043 12.095 C 128.972 12.095 129.824 12.216 130.601 12.46 C 131.378 12.704 131.994 13.098 132.448 13.642 C 132.922 14.168 133.159 14.852 133.159 15.696 L 133.159 23.125 C 133.462 23.425 133.917 23.576 134.523 23.576 L 135.347 23.576 L 135.432 23.659 L 135.432 24.053 C 135.225 24.41 134.864 24.738 134.352 25.038 C 133.86 25.339 133.216 25.489 132.42 25.489 C 131.624 25.489 130.97 25.329 130.459 25.01 C 129.966 24.672 129.587 24.194 129.322 23.575 L 129.151 23.575 C 128.661 24.114 128.085 24.571 127.446 24.926 C 126.783 25.282 126.044 25.46 125.229 25.46 Z M 125.656 21.436 C 125.656 22.036 125.816 22.487 126.138 22.788 C 126.48 23.068 126.944 23.209 127.532 23.209 C 128.043 23.209 128.583 23.096 129.151 22.872 L 129.151 18.734 C 128.204 18.941 127.474 19.166 126.963 19.41 C 126.471 19.654 126.129 19.935 125.94 20.254 C 125.75 20.573 125.656 20.967 125.656 21.435 Z M 136.418 25.207 L 136.418 24.756 L 138.322 23.856 L 138.322 15.303 L 136.503 14.148 L 136.503 13.811 L 141.676 12.095 L 142.017 12.095 L 142.273 14.177 L 142.415 14.177 C 143.097 13.52 143.761 13.014 144.405 12.657 C 145.049 12.283 145.807 12.095 146.678 12.095 C 147.834 12.095 148.772 12.385 149.493 12.967 C 150.231 13.548 150.601 14.412 150.601 15.556 L 150.601 23.856 L 152.505 24.757 L 152.505 25.208 L 145.172 25.208 L 145.172 24.757 L 146.593 23.856 L 146.593 16.709 C 146.593 16.052 146.394 15.556 145.997 15.218 C 145.617 14.861 145.134 14.684 144.546 14.684 C 144.187 14.684 143.789 14.749 143.353 14.88 C 142.967 14.995 142.609 15.186 142.301 15.443 L 142.301 23.856 L 143.751 24.757 L 143.751 25.208 L 136.418 25.208 Z M 159.388 25.488 C 158.232 25.488 157.284 25.244 156.546 24.757 C 155.807 24.269 155.438 23.584 155.438 22.703 L 155.438 13.642 L 153.391 13.642 L 153.391 13.248 L 156.006 12.376 L 158.876 9.281 L 159.416 9.281 L 159.416 12.376 L 163.367 12.376 L 163.367 13.643 L 159.416 13.643 L 159.416 21.999 C 159.416 22.487 159.625 22.844 160.041 23.068 C 160.459 23.293 160.951 23.406 161.52 23.406 C 161.879 23.406 162.192 23.388 162.457 23.35 C 162.742 23.293 163.016 23.237 163.282 23.181 L 163.367 23.237 L 163.367 23.716 C 163.045 24.166 162.523 24.579 161.804 24.953 C 161.084 25.31 160.278 25.489 159.388 25.489 Z\" fill=\"rgb(0, 0, 0)\"></path><path d=\"M 29.607 0 L 4.737 0 C 2.121 0 0 2.1 0 4.689 L 0 29.311 C 0 31.9 2.121 34 4.737 34 L 29.607 34 C 32.223 34 34.343 31.9 34.343 29.311 L 34.343 4.689 C 34.343 2.1 32.223 0 29.607 0 Z\" fill=\"var(--token-e70e7896-8378-4d23-8680-0586ff6d15ad, rgb(50, 43, 255))\"></path><path d=\"M 17.808 28.155 C 15.404 28.155 13.298 27.668 11.489 26.693 C 9.68 25.718 8.272 24.404 7.264 22.749 C 6.281 21.072 5.788 19.179 5.788 17.071 C 5.788 15.371 6.131 13.796 6.818 12.345 C 7.505 10.894 8.432 9.625 9.6 8.537 C 10.769 7.441 12.131 6.565 13.618 5.953 C 15.129 5.341 16.709 5.035 18.357 5.035 C 19.571 5.035 20.579 5.103 21.38 5.239 C 22.181 5.375 22.902 5.568 23.543 5.817 C 24.185 6.066 24.826 6.35 25.467 6.667 L 25.844 13.025 L 25.226 13.025 L 21.963 7.755 C 21.392 7.392 20.853 7.132 20.349 6.973 C 19.845 6.814 19.239 6.735 18.529 6.735 C 17.132 6.735 15.874 7.154 14.751 7.993 C 13.652 8.809 12.783 9.976 12.141 11.495 C 11.501 12.991 11.18 14.736 11.18 16.731 C 11.18 18.703 11.489 20.414 12.107 21.865 C 12.725 23.293 13.561 24.404 14.614 25.197 C 15.658 25.958 16.924 26.363 18.22 26.353 C 19.067 26.353 19.823 26.251 20.487 26.047 C 21.174 25.82 21.826 25.537 22.444 25.197 L 25.535 20.641 L 26.119 20.641 L 25.638 26.387 C 24.7 26.931 23.566 27.362 22.238 27.679 C 20.933 27.996 19.456 28.155 17.808 28.155 Z\" fill=\"rgb(255,255,255)\"></path></svg>',svgContentId:11204597539,withExternalLayout:true,...addPropertyOverrides({aMhuRdcY8:{svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 170 34\"><path d=\"M 55.699 25.488 C 53.71 25.488 51.967 25.085 50.47 24.279 C 48.973 23.471 47.807 22.383 46.973 21.015 C 46.158 19.627 45.751 18.06 45.751 16.316 C 45.751 14.908 46.036 13.604 46.604 12.404 C 47.162 11.218 47.943 10.149 48.906 9.253 C 49.874 8.345 51.001 7.621 52.232 7.115 C 53.476 6.609 54.809 6.351 56.154 6.355 C 57.159 6.355 57.991 6.411 58.655 6.523 C 59.318 6.636 59.916 6.795 60.445 7.001 C 60.976 7.208 61.507 7.443 62.037 7.705 L 62.35 12.967 L 61.838 12.967 L 59.139 8.606 C 58.665 8.305 58.22 8.089 57.803 7.959 C 57.385 7.827 56.884 7.761 56.296 7.761 C 55.14 7.761 54.098 8.108 53.17 8.803 C 52.26 9.478 51.54 10.443 51.009 11.701 C 50.479 12.939 50.214 14.383 50.214 16.034 C 50.214 17.666 50.469 19.083 50.981 20.284 C 51.493 21.465 52.184 22.383 53.056 23.04 C 53.92 23.669 54.967 24.005 56.04 23.997 C 56.741 23.997 57.366 23.912 57.916 23.744 C 58.484 23.557 59.024 23.321 59.536 23.04 L 62.095 19.27 L 62.577 19.27 L 62.18 24.025 C 61.403 24.476 60.464 24.832 59.365 25.095 C 58.286 25.357 57.064 25.488 55.699 25.488 Z M 72.353 25.488 C 71.008 25.488 69.823 25.188 68.8 24.587 C 67.801 23.993 66.978 23.148 66.413 22.139 C 65.844 21.128 65.56 20.011 65.56 18.792 C 65.56 17.553 65.844 16.428 66.412 15.415 C 66.973 14.41 67.798 13.573 68.799 12.995 C 69.823 12.395 71.008 12.095 72.353 12.095 C 73.698 12.095 74.873 12.395 75.878 12.996 C 76.879 13.574 77.704 14.41 78.264 15.415 C 78.833 16.428 79.117 17.553 79.117 18.792 C 79.117 20.011 78.834 21.127 78.264 22.14 C 77.7 23.149 76.876 23.994 75.878 24.588 C 74.873 25.188 73.698 25.489 72.353 25.489 Z M 72.666 24.109 C 73.215 24.109 73.66 23.894 74.002 23.463 C 74.361 23.012 74.617 22.421 74.769 21.689 C 74.939 20.958 75.024 20.18 75.024 19.355 C 75.03 18.389 74.925 17.426 74.712 16.484 C 74.523 15.583 74.209 14.852 73.774 14.289 C 73.357 13.727 72.798 13.445 72.097 13.445 C 71.529 13.445 71.064 13.671 70.705 14.12 C 70.344 14.552 70.079 15.133 69.909 15.865 C 69.732 16.631 69.646 17.415 69.653 18.2 C 69.653 19.232 69.757 20.198 69.965 21.099 C 70.174 21.98 70.496 22.703 70.932 23.265 C 71.387 23.828 71.964 24.109 72.666 24.109 Z M 80.99 25.207 L 80.99 24.756 L 82.894 23.856 L 82.894 15.303 L 81.075 14.148 L 81.075 13.811 L 86.248 12.095 L 86.588 12.095 L 86.844 14.177 L 86.987 14.177 C 87.668 13.52 88.332 13.014 88.976 12.657 C 89.62 12.283 90.378 12.095 91.25 12.095 C 92.406 12.095 93.344 12.385 94.064 12.967 C 94.802 13.548 95.173 14.412 95.173 15.556 L 95.173 23.856 L 97.077 24.757 L 97.077 25.208 L 89.744 25.208 L 89.744 24.757 L 91.165 23.856 L 91.165 16.709 C 91.165 16.052 90.965 15.556 90.568 15.218 C 90.188 14.861 89.706 14.684 89.119 14.684 C 88.758 14.684 88.36 14.749 87.924 14.88 C 87.539 14.995 87.181 15.186 86.873 15.443 L 86.873 23.856 L 88.323 24.757 L 88.323 25.208 L 80.99 25.208 Z M 103.618 25.488 C 102.689 25.488 101.875 25.395 101.174 25.208 C 100.478 25.034 99.801 24.788 99.156 24.476 L 99.156 21.212 L 99.582 21.212 L 100.577 22.674 C 101.278 23.725 102.254 24.251 103.504 24.251 C 104.983 24.251 105.721 23.715 105.721 22.647 C 105.721 22.252 105.617 21.933 105.409 21.689 C 105.201 21.446 104.859 21.211 104.386 20.987 C 103.76 20.685 103.125 20.404 102.482 20.142 C 101.42 19.711 100.634 19.204 100.122 18.623 C 99.611 18.041 99.355 17.319 99.355 16.456 C 99.355 15.649 99.563 14.918 99.981 14.261 C 100.424 13.597 101.03 13.055 101.742 12.685 C 102.482 12.292 103.315 12.095 104.243 12.095 C 104.887 12.095 105.513 12.16 106.119 12.292 C 106.752 12.426 107.364 12.643 107.939 12.939 L 107.939 16.288 L 107.512 16.288 L 106.631 14.965 C 106.271 14.421 105.901 14.017 105.523 13.755 C 105.143 13.492 104.689 13.361 104.158 13.361 C 103.59 13.361 103.126 13.501 102.766 13.783 C 102.424 14.064 102.254 14.459 102.254 14.964 C 102.254 15.303 102.33 15.593 102.482 15.837 C 102.652 16.062 102.945 16.288 103.363 16.512 C 103.779 16.737 104.377 17 105.153 17.3 C 105.683 17.507 106.204 17.751 106.716 18.031 C 107.248 18.294 107.699 18.693 108.024 19.185 C 108.384 19.673 108.564 20.358 108.564 21.24 C 108.564 22.121 108.327 22.88 107.853 23.519 C 107.377 24.158 106.741 24.662 106.006 24.982 C 105.257 25.321 104.442 25.494 103.618 25.488 Z M 116.255 25.488 C 115.099 25.488 114.152 25.244 113.413 24.757 C 112.674 24.269 112.305 23.584 112.305 22.703 L 112.305 13.642 L 110.259 13.642 L 110.259 13.248 L 112.873 12.376 L 115.744 9.281 L 116.284 9.281 L 116.284 12.376 L 120.235 12.376 L 120.235 13.643 L 116.284 13.643 L 116.284 21.999 C 116.284 22.487 116.492 22.844 116.909 23.068 C 117.326 23.293 117.819 23.406 118.387 23.406 C 118.748 23.406 119.06 23.388 119.325 23.35 C 119.61 23.293 119.884 23.237 120.15 23.181 L 120.235 23.237 L 120.235 23.716 C 119.913 24.166 119.392 24.579 118.671 24.953 C 117.952 25.31 117.146 25.489 116.255 25.489 Z M 125.229 25.46 C 124.301 25.46 123.505 25.188 122.841 24.644 C 122.178 24.081 121.866 23.276 121.904 22.224 C 121.904 21.549 122.037 20.977 122.302 20.507 C 122.567 20.02 123.031 19.598 123.695 19.241 C 124.358 18.884 125.286 18.557 126.48 18.257 L 129.151 17.609 L 129.151 15.865 C 129.151 15.152 128.934 14.58 128.498 14.148 C 128.062 13.717 127.503 13.502 126.821 13.502 C 126.215 13.502 125.779 13.633 125.513 13.896 C 125.248 14.158 125.116 14.552 125.116 15.077 L 125.116 16.372 L 125.002 16.484 L 123.126 16.484 C 122.842 16.484 122.643 16.419 122.529 16.287 C 122.415 16.156 122.359 15.931 122.359 15.612 C 122.359 15.199 122.519 14.796 122.841 14.402 C 123.183 14.008 123.628 13.643 124.177 13.305 C 124.86 12.873 125.494 12.564 126.082 12.376 C 126.717 12.184 127.378 12.089 128.043 12.095 C 128.972 12.095 129.824 12.216 130.601 12.46 C 131.378 12.704 131.994 13.098 132.448 13.642 C 132.922 14.168 133.159 14.852 133.159 15.696 L 133.159 23.125 C 133.462 23.425 133.917 23.576 134.523 23.576 L 135.347 23.576 L 135.432 23.659 L 135.432 24.053 C 135.225 24.41 134.864 24.738 134.352 25.038 C 133.86 25.339 133.216 25.489 132.42 25.489 C 131.624 25.489 130.97 25.329 130.459 25.01 C 129.966 24.672 129.587 24.194 129.322 23.575 L 129.151 23.575 C 128.661 24.114 128.085 24.571 127.446 24.926 C 126.783 25.282 126.044 25.46 125.229 25.46 Z M 125.656 21.436 C 125.656 22.036 125.816 22.487 126.138 22.788 C 126.48 23.068 126.944 23.209 127.532 23.209 C 128.043 23.209 128.583 23.096 129.151 22.872 L 129.151 18.734 C 128.204 18.941 127.474 19.166 126.963 19.41 C 126.471 19.654 126.129 19.935 125.94 20.254 C 125.75 20.573 125.656 20.967 125.656 21.435 Z M 136.418 25.207 L 136.418 24.756 L 138.322 23.856 L 138.322 15.303 L 136.503 14.148 L 136.503 13.811 L 141.676 12.095 L 142.017 12.095 L 142.273 14.177 L 142.415 14.177 C 143.097 13.52 143.761 13.014 144.405 12.657 C 145.049 12.283 145.807 12.095 146.678 12.095 C 147.834 12.095 148.772 12.385 149.493 12.967 C 150.231 13.548 150.601 14.412 150.601 15.556 L 150.601 23.856 L 152.505 24.757 L 152.505 25.208 L 145.172 25.208 L 145.172 24.757 L 146.593 23.856 L 146.593 16.709 C 146.593 16.052 146.394 15.556 145.997 15.218 C 145.617 14.861 145.134 14.684 144.546 14.684 C 144.187 14.684 143.789 14.749 143.353 14.88 C 142.967 14.995 142.609 15.186 142.301 15.443 L 142.301 23.856 L 143.751 24.757 L 143.751 25.208 L 136.418 25.208 Z M 159.388 25.488 C 158.232 25.488 157.284 25.244 156.546 24.757 C 155.807 24.269 155.438 23.584 155.438 22.703 L 155.438 13.642 L 153.391 13.642 L 153.391 13.248 L 156.006 12.376 L 158.876 9.281 L 159.416 9.281 L 159.416 12.376 L 163.367 12.376 L 163.367 13.643 L 159.416 13.643 L 159.416 21.999 C 159.416 22.487 159.625 22.844 160.041 23.068 C 160.459 23.293 160.951 23.406 161.52 23.406 C 161.879 23.406 162.192 23.388 162.457 23.35 C 162.742 23.293 163.016 23.237 163.282 23.181 L 163.367 23.237 L 163.367 23.716 C 163.045 24.166 162.523 24.579 161.804 24.953 C 161.084 25.31 160.278 25.489 159.388 25.489 Z\" fill=\"var(--token-ca945b91-a0a3-4e69-95c0-e2f4bf868399, rgb(255, 255, 255)) /* {&quot;name&quot;:&quot;White&quot;} */\"></path><path d=\"M 29.607 0 L 4.737 0 C 2.121 0 0 2.1 0 4.689 L 0 29.311 C 0 31.9 2.121 34 4.737 34 L 29.607 34 C 32.223 34 34.343 31.9 34.343 29.311 L 34.343 4.689 C 34.343 2.1 32.223 0 29.607 0 Z\" fill=\"var(--token-e70e7896-8378-4d23-8680-0586ff6d15ad, rgb(50, 43, 255))\"></path><path d=\"M 17.808 28.155 C 15.404 28.155 13.298 27.668 11.489 26.693 C 9.68 25.718 8.272 24.404 7.264 22.749 C 6.281 21.072 5.788 19.179 5.788 17.071 C 5.788 15.371 6.131 13.796 6.818 12.345 C 7.505 10.894 8.432 9.625 9.6 8.537 C 10.769 7.441 12.131 6.565 13.618 5.953 C 15.129 5.341 16.709 5.035 18.357 5.035 C 19.571 5.035 20.579 5.103 21.38 5.239 C 22.181 5.375 22.902 5.568 23.543 5.817 C 24.185 6.066 24.826 6.35 25.467 6.667 L 25.844 13.025 L 25.226 13.025 L 21.963 7.755 C 21.392 7.392 20.853 7.132 20.349 6.973 C 19.845 6.814 19.239 6.735 18.529 6.735 C 17.132 6.735 15.874 7.154 14.751 7.993 C 13.652 8.809 12.783 9.976 12.141 11.495 C 11.501 12.991 11.18 14.736 11.18 16.731 C 11.18 18.703 11.489 20.414 12.107 21.865 C 12.725 23.293 13.561 24.404 14.614 25.197 C 15.658 25.958 16.924 26.363 18.22 26.353 C 19.067 26.353 19.823 26.251 20.487 26.047 C 21.174 25.82 21.826 25.537 22.444 25.197 L 25.535 20.641 L 26.119 20.641 L 25.638 26.387 C 24.7 26.931 23.566 27.362 22.238 27.679 C 20.933 27.996 19.456 28.155 17.808 28.155 Z\" fill=\"rgb(255,255,255)\"></path></svg>',svgContentId:12032353066}},baseVariant,gestureVariant)})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-y5Z24.framer-o9bsn7, .framer-y5Z24 .framer-o9bsn7 { display: block; }\",\".framer-y5Z24.framer-mdydcg { align-content: center; align-items: center; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; overflow: hidden; padding: 0px; position: relative; width: min-content; }\",\".framer-y5Z24 .framer-1e1aght { flex: none; height: 34px; position: relative; width: 170px; }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-y5Z24.framer-mdydcg { gap: 0px; } .framer-y5Z24.framer-mdydcg > * { margin: 0px; margin-left: calc(10px / 2); margin-right: calc(10px / 2); } .framer-y5Z24.framer-mdydcg > :first-child { margin-left: 0px; } .framer-y5Z24.framer-mdydcg > :last-child { margin-right: 0px; } }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 34\n * @framerIntrinsicWidth 170\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"auto\",\"auto\"]},\"aMhuRdcY8\":{\"layout\":[\"auto\",\"auto\"]}}}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerComponentViewportWidth true\n */const FramerKmomC3m61=withCSS(Component,css,\"framer-y5Z24\");export default FramerKmomC3m61;FramerKmomC3m61.displayName=\"Constant Logo\";FramerKmomC3m61.defaultProps={height:34,width:170};addPropertyControls(FramerKmomC3m61,{variant:{options:[\"IU7Mdt0TT\",\"aMhuRdcY8\"],optionTitles:[\"Variant 1\",\"Variant 2\"],title:\"Variant\",type:ControlType.Enum}});addFonts(FramerKmomC3m61,[{explicitInter:true,fonts:[]}],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerKmomC3m61\",\"slots\":[],\"annotations\":{\"framerComponentViewportWidth\":\"true\",\"framerIntrinsicWidth\":\"170\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"aMhuRdcY8\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]}}}\",\"framerDisplayContentsDiv\":\"false\",\"framerContractVersion\":\"1\",\"framerImmutableVariables\":\"true\",\"framerIntrinsicHeight\":\"34\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./KmomC3m61.map","// Generated by Framer (5e8f756)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,ControlType,cx,getFonts,getFontsFromSharedStyle,Link,ResolveLinks,RichText,SmartComponentScopedContainer,useComponentViewport,useLocaleInfo,useRouter,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import Button from\"https://framerusercontent.com/modules/1rwGa6LIznUj8fPdEJCk/FyC79zMY4jvd9suYaK6Q/LNCJ8JrMb.js\";import*as sharedStyle1 from\"https://framerusercontent.com/modules/xVpNubVhoMW3MCOGyjdX/vvRqF0MitD3187L2tymo/OgPd8ZMRH.js\";import*as sharedStyle from\"https://framerusercontent.com/modules/tYYvzC2scaL4kVQAoOX9/uP3dJdkYatSHGFoFGAzu/otMNhHQ2Z.js\";import ConstantLogo from\"https://framerusercontent.com/modules/k8OnpGQESjTcNLZEmfCL/S8XplV8O97mXdOfZGADT/KmomC3m61.js\";const ConstantLogoFonts=getFonts(ConstantLogo);const ButtonFonts=getFonts(Button);const cycleOrder=[\"U5En03Bc3\",\"SlTkuQK8Q\",\"wnFkhZiGa\"];const serializationHash=\"framer-byho7\";const variantClassNames={SlTkuQK8Q:\"framer-v-1yv9ce1\",U5En03Bc3:\"framer-v-cxx8d6\",wnFkhZiGa:\"framer-v-k572zs\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={damping:60,delay:0,mass:1,stiffness:500,type:\"spring\"};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const humanReadableVariantMap={\"Light [Desktop]\":\"U5En03Bc3\",\"Light [Mobile]\":\"wnFkhZiGa\",\"Light [Tablet]\":\"SlTkuQK8Q\"};const getProps=({height,id,width,...props})=>{return{...props,variant:humanReadableVariantMap[props.variant]??props.variant??\"U5En03Bc3\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"U5En03Bc3\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[sharedStyle.className,sharedStyle1.className];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);const router=useRouter();return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsx(motion.footer,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-cxx8d6\",className,classNames),\"data-framer-name\":\"Light [Desktop]\",layoutDependency:layoutDependency,layoutId:\"U5En03Bc3\",ref:refBinding,style:{backgroundColor:\"var(--token-ca945b91-a0a3-4e69-95c0-e2f4bf868399, rgb(255, 255, 255))\",...style},...addPropertyOverrides({SlTkuQK8Q:{\"data-framer-name\":\"Light [Tablet]\"},wnFkhZiGa:{\"data-framer-name\":\"Light [Mobile]\"}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsxs(motion.div,{className:\"framer-zcxs3b\",layoutDependency:layoutDependency,layoutId:\"v7ElmppOf\",children:[/*#__PURE__*/_jsx(motion.div,{className:\"framer-1fuei9w\",layoutDependency:layoutDependency,layoutId:\"EfhzXCPic\",children:/*#__PURE__*/_jsxs(motion.div,{className:\"framer-ec6lof\",layoutDependency:layoutDependency,layoutId:\"J96eNjUB5\",children:[/*#__PURE__*/_jsxs(motion.div,{className:\"framer-5ty3eu\",\"data-framer-name\":\"Column\",layoutDependency:layoutDependency,layoutId:\"Qz8mfefdj\",children:[/*#__PURE__*/_jsx(ComponentViewportProvider,{height:34,y:(componentViewport?.y||0)+42+(((componentViewport?.height||2052)-42-2710.8)/2+0+0)+0+0+0+0+0+0,...addPropertyOverrides({SlTkuQK8Q:{y:(componentViewport?.y||0)+60+(((componentViewport?.height||2603)-60-2750.8)/2+0+0)+0+0+0+0+0+0},wnFkhZiGa:{y:(componentViewport?.y||0)+40+(((componentViewport?.height||200)-40-3462.6)/2+0+0)+0+0+0+0+0+0+0}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-fsoyrq-container\",layoutDependency:layoutDependency,layoutId:\"IAXFsraWU-container\",nodeId:\"IAXFsraWU\",rendersWithMotion:true,scopeId:\"KDy7eQEX5\",children:/*#__PURE__*/_jsx(ConstantLogo,{height:\"100%\",id:\"IAXFsraWU\",layoutId:\"IAXFsraWU\",variant:\"IU7Mdt0TT\",width:\"100%\"})})}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsxs(motion.p,{style:{\"--font-selector\":\"R0Y7SW50ZXIgVGlnaHQtNTAw\",\"--framer-font-family\":'\"Inter Tight\", \"Inter Tight Placeholder\", sans-serif',\"--framer-font-weight\":\"500\",\"--framer-letter-spacing\":\"0.03em\",\"--framer-line-height\":\"1.8em\",\"--framer-text-alignment\":\"left\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-8287ee84-8e37-47bb-8c5f-44cf8360583f, rgb(9, 9, 11)))\"},children:[\"169 Madison Avenue, #2360\",/*#__PURE__*/_jsx(motion.br,{}),\"New York City, NY 10016\"]})}),className:\"framer-6x3tkq\",fonts:[\"GF;Inter Tight-500\"],layoutDependency:layoutDependency,layoutId:\"a8cUUOm1j\",style:{\"--extracted-r6o4lv\":\"var(--token-8287ee84-8e37-47bb-8c5f-44cf8360583f, rgb(9, 9, 11))\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},verticalAlignment:\"top\",withExternalLayout:true})]}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-6f4znx\",\"data-framer-name\":\"Column\",layoutDependency:layoutDependency,layoutId:\"ELqL3z2jm\",children:/*#__PURE__*/_jsxs(motion.div,{className:\"framer-lruf55\",\"data-framer-name\":\"Links\",layoutDependency:layoutDependency,layoutId:\"Bgrn6Cim3\",children:[/*#__PURE__*/_jsxs(motion.div,{className:\"framer-846icv\",\"data-framer-name\":\"Column\",layoutDependency:layoutDependency,layoutId:\"LCE69yk4D\",children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7SW50ZXIgVGlnaHQtNTAw\",\"--framer-font-family\":'\"Inter Tight\", \"Inter Tight Placeholder\", sans-serif',\"--framer-font-weight\":\"500\",\"--framer-letter-spacing\":\"0.03em\",\"--framer-line-height\":\"1.8em\",\"--framer-text-alignment\":\"left\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-de5448c6-98bb-4403-96cd-7fe86bf2daa6, rgb(9, 9, 11)))\"},children:\"Products\"})}),className:\"framer-14pu9f6\",fonts:[\"GF;Inter Tight-500\"],layoutDependency:layoutDependency,layoutId:\"yHc_bJAtq\",style:{\"--extracted-r6o4lv\":\"var(--token-de5448c6-98bb-4403-96cd-7fe86bf2daa6, rgb(9, 9, 11))\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\",\"--framer-paragraph-spacing\":\"0px\"},verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{webPageId:\"HUQWO8BWJ\"},implicitPathVariables:undefined},{href:{webPageId:\"HUQWO8BWJ\"},implicitPathVariables:undefined},{href:{webPageId:\"HUQWO8BWJ\"},implicitPathVariables:undefined}],children:resolvedLinks=>/*#__PURE__*/_jsx(ComponentViewportProvider,{height:50,y:(componentViewport?.y||0)+42+(((componentViewport?.height||2052)-42-2710.8)/2+0+0)+0+0+0+0+0+0+0+164,...addPropertyOverrides({SlTkuQK8Q:{y:(componentViewport?.y||0)+60+(((componentViewport?.height||2603)-60-2750.8)/2+0+0)+0+0+0+0+0+0+0+164},wnFkhZiGa:{y:(componentViewport?.y||0)+40+(((componentViewport?.height||200)-40-3462.6)/2+0+0)+0+0+0+0+135.8+0+0+0+0+0+159}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1caajzb-container\",isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"iMiW8jC6t-container\",nodeId:\"iMiW8jC6t\",rendersWithMotion:true,scopeId:\"KDy7eQEX5\",children:/*#__PURE__*/_jsx(Button,{ApWhoO21o:{borderColor:\"var(--token-31213cc7-db87-4df4-8209-e72c8adb68fb, rgb(228, 228, 231))\",borderStyle:\"solid\",borderWidth:1},ey7w8muFX:false,G77f5Yx_v:\"Private Equity\",height:\"100%\",HFfTjmBlq:\"var(--token-05d3d3db-be9e-464a-9684-d4b46306a4c3, rgb(113, 113, 122))\",id:\"iMiW8jC6t\",layoutId:\"iMiW8jC6t\",n9WP3fBIv:false,oV7zrnzuy:\"var(--token-2b0e18bf-9e9a-4016-bdfc-5769700a5529, rgb(255, 255, 255))\",SZQpZ3lk2:10,U1Kbkgydv:resolvedLinks[0],variant:\"dFbyw6SJY\",VkxZQkMEC:\"0px 0.6021873017743928px 0.6021873017743928px -1.25px rgba(9, 9, 11, 0.11), 0px 2.288533303243457px 2.288533303243457px -2.5px rgba(9, 9, 11, 0.1), 0px 10px 10px -3.75px rgba(9, 9, 11, 0.04)\",Vo_oxchYD:\"CaretRight\",width:\"100%\",WM2TpCryl:false,...addPropertyOverrides({SlTkuQK8Q:{U1Kbkgydv:resolvedLinks[1]},wnFkhZiGa:{U1Kbkgydv:resolvedLinks[2]}},baseVariant,gestureVariant)})})})}),/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{webPageId:\"H16J5YuUC\"},implicitPathVariables:undefined},{href:{webPageId:\"H16J5YuUC\"},implicitPathVariables:undefined},{href:{webPageId:\"H16J5YuUC\"},implicitPathVariables:undefined}],children:resolvedLinks1=>/*#__PURE__*/_jsx(ComponentViewportProvider,{height:50,y:(componentViewport?.y||0)+42+(((componentViewport?.height||2052)-42-2710.8)/2+0+0)+0+0+0+0+0+0+0+234,...addPropertyOverrides({SlTkuQK8Q:{y:(componentViewport?.y||0)+60+(((componentViewport?.height||2603)-60-2750.8)/2+0+0)+0+0+0+0+0+0+0+234},wnFkhZiGa:{y:(componentViewport?.y||0)+40+(((componentViewport?.height||200)-40-3462.6)/2+0+0)+0+0+0+0+135.8+0+0+0+0+0+224}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1glyjjb-container\",isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"lSLSmVhEs-container\",nodeId:\"lSLSmVhEs\",rendersWithMotion:true,scopeId:\"KDy7eQEX5\",children:/*#__PURE__*/_jsx(Button,{ApWhoO21o:{borderColor:\"var(--token-31213cc7-db87-4df4-8209-e72c8adb68fb, rgb(228, 228, 231))\",borderStyle:\"solid\",borderWidth:1},ey7w8muFX:false,G77f5Yx_v:\"Private Credit\",height:\"100%\",HFfTjmBlq:\"var(--token-05d3d3db-be9e-464a-9684-d4b46306a4c3, rgb(113, 113, 122))\",id:\"lSLSmVhEs\",layoutId:\"lSLSmVhEs\",n9WP3fBIv:false,oV7zrnzuy:\"var(--token-2b0e18bf-9e9a-4016-bdfc-5769700a5529, rgb(255, 255, 255))\",SZQpZ3lk2:10,U1Kbkgydv:resolvedLinks1[0],variant:\"dFbyw6SJY\",VkxZQkMEC:\"0px 0.6021873017743928px 0.6021873017743928px -1.25px rgba(9, 9, 11, 0.11), 0px 2.288533303243457px 2.288533303243457px -2.5px rgba(9, 9, 11, 0.1), 0px 10px 10px -3.75px rgba(9, 9, 11, 0.04)\",Vo_oxchYD:\"CaretRight\",width:\"100%\",WM2TpCryl:false,...addPropertyOverrides({SlTkuQK8Q:{U1Kbkgydv:resolvedLinks1[1]},wnFkhZiGa:{U1Kbkgydv:resolvedLinks1[2]}},baseVariant,gestureVariant)})})})})]}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-m3evao\",\"data-framer-name\":\"Column\",layoutDependency:layoutDependency,layoutId:\"t48Yq_i2z\",children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7SW50ZXIgVGlnaHQtNTAw\",\"--framer-font-family\":'\"Inter Tight\", \"Inter Tight Placeholder\", sans-serif',\"--framer-font-weight\":\"500\",\"--framer-letter-spacing\":\"0.03em\",\"--framer-line-height\":\"1.8em\",\"--framer-text-alignment\":\"left\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-de5448c6-98bb-4403-96cd-7fe86bf2daa6, rgb(9, 9, 11)))\"},children:\"Company\"})}),className:\"framer-1scnuuo\",fonts:[\"GF;Inter Tight-500\"],layoutDependency:layoutDependency,layoutId:\"R4Sw82HUX\",style:{\"--extracted-r6o4lv\":\"var(--token-de5448c6-98bb-4403-96cd-7fe86bf2daa6, rgb(9, 9, 11))\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\",\"--framer-paragraph-spacing\":\"0px\"},verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(ComponentViewportProvider,{height:50,y:(componentViewport?.y||0)+42+(((componentViewport?.height||2052)-42-2710.8)/2+0+0)+0+0+0+0+0+0+0+164,...addPropertyOverrides({SlTkuQK8Q:{y:(componentViewport?.y||0)+60+(((componentViewport?.height||2603)-60-2750.8)/2+0+0)+0+0+0+0+0+0+0+164},wnFkhZiGa:{y:(componentViewport?.y||0)+40+(((componentViewport?.height||200)-40-3462.6)/2+0+0)+0+0+0+0+135.8+0+0+0+308+0+159}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-ieirnr-container\",isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"pdGFY52m9-container\",nodeId:\"pdGFY52m9\",rendersWithMotion:true,scopeId:\"KDy7eQEX5\",children:/*#__PURE__*/_jsx(Button,{ApWhoO21o:{borderColor:\"var(--token-31213cc7-db87-4df4-8209-e72c8adb68fb, rgb(228, 228, 231))\",borderStyle:\"solid\",borderWidth:1},ey7w8muFX:false,G77f5Yx_v:\"About\",height:\"100%\",HFfTjmBlq:\"var(--token-05d3d3db-be9e-464a-9684-d4b46306a4c3, rgb(113, 113, 122))\",id:\"pdGFY52m9\",layoutId:\"pdGFY52m9\",n9WP3fBIv:false,oV7zrnzuy:\"var(--token-2b0e18bf-9e9a-4016-bdfc-5769700a5529, rgb(255, 255, 255))\",SZQpZ3lk2:10,U1Kbkgydv:\"https://www.ycombinator.com/companies/constant\",variant:\"dFbyw6SJY\",VkxZQkMEC:\"0px 0.6021873017743928px 0.6021873017743928px -1.25px rgba(9, 9, 11, 0.11), 0px 2.288533303243457px 2.288533303243457px -2.5px rgba(9, 9, 11, 0.1), 0px 10px 10px -3.75px rgba(9, 9, 11, 0.04)\",Vo_oxchYD:\"CaretRight\",width:\"100%\",WM2TpCryl:false})})}),/*#__PURE__*/_jsx(ComponentViewportProvider,{height:50,y:(componentViewport?.y||0)+42+(((componentViewport?.height||2052)-42-2710.8)/2+0+0)+0+0+0+0+0+0+0+234,...addPropertyOverrides({SlTkuQK8Q:{y:(componentViewport?.y||0)+60+(((componentViewport?.height||2603)-60-2750.8)/2+0+0)+0+0+0+0+0+0+0+234},wnFkhZiGa:{y:(componentViewport?.y||0)+40+(((componentViewport?.height||200)-40-3462.6)/2+0+0)+0+0+0+0+135.8+0+0+0+308+0+224}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1h7daqo-container\",isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"dugN8hkZo-container\",nodeId:\"dugN8hkZo\",rendersWithMotion:true,scopeId:\"KDy7eQEX5\",children:/*#__PURE__*/_jsx(Button,{ApWhoO21o:{borderColor:\"var(--token-31213cc7-db87-4df4-8209-e72c8adb68fb, rgb(228, 228, 231))\",borderStyle:\"solid\",borderWidth:1},ey7w8muFX:false,G77f5Yx_v:\"Careers\",height:\"100%\",HFfTjmBlq:\"var(--token-05d3d3db-be9e-464a-9684-d4b46306a4c3, rgb(113, 113, 122))\",id:\"dugN8hkZo\",layoutId:\"dugN8hkZo\",n9WP3fBIv:false,oV7zrnzuy:\"var(--token-2b0e18bf-9e9a-4016-bdfc-5769700a5529, rgb(255, 255, 255))\",SZQpZ3lk2:10,U1Kbkgydv:\"https://www.ycombinator.com/companies/constant/jobs\",variant:\"dFbyw6SJY\",VkxZQkMEC:\"0px 0.6021873017743928px 0.6021873017743928px -1.25px rgba(9, 9, 11, 0.11), 0px 2.288533303243457px 2.288533303243457px -2.5px rgba(9, 9, 11, 0.1), 0px 10px 10px -3.75px rgba(9, 9, 11, 0.04)\",Vo_oxchYD:\"CaretRight\",width:\"100%\",WM2TpCryl:false})})})]}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1q6xjwm\",\"data-framer-name\":\"Column\",layoutDependency:layoutDependency,layoutId:\"RzDupT6Tp\",children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7SW50ZXIgVGlnaHQtNTAw\",\"--framer-font-family\":'\"Inter Tight\", \"Inter Tight Placeholder\", sans-serif',\"--framer-font-weight\":\"500\",\"--framer-letter-spacing\":\"0.03em\",\"--framer-line-height\":\"1.8em\",\"--framer-text-alignment\":\"left\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-de5448c6-98bb-4403-96cd-7fe86bf2daa6, rgb(9, 9, 11)))\"},children:\"Legal\"})}),className:\"framer-bx1fwp\",fonts:[\"GF;Inter Tight-500\"],layoutDependency:layoutDependency,layoutId:\"Cwf7CIlH_\",style:{\"--extracted-r6o4lv\":\"var(--token-de5448c6-98bb-4403-96cd-7fe86bf2daa6, rgb(9, 9, 11))\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\",\"--framer-paragraph-spacing\":\"0px\"},verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(ComponentViewportProvider,{height:50,y:(componentViewport?.y||0)+42+(((componentViewport?.height||2052)-42-2710.8)/2+0+0)+0+0+0+0+0+0+0+164,...addPropertyOverrides({SlTkuQK8Q:{y:(componentViewport?.y||0)+60+(((componentViewport?.height||2603)-60-2750.8)/2+0+0)+0+0+0+0+0+0+0+164},wnFkhZiGa:{y:(componentViewport?.y||0)+40+(((componentViewport?.height||200)-40-3462.6)/2+0+0)+0+0+0+0+135.8+0+0+0+616+0+164}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-6b2b9u-container\",isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"vcEyyCZvD-container\",nodeId:\"vcEyyCZvD\",rendersWithMotion:true,scopeId:\"KDy7eQEX5\",children:/*#__PURE__*/_jsx(Button,{ApWhoO21o:{borderColor:\"var(--token-31213cc7-db87-4df4-8209-e72c8adb68fb, rgb(228, 228, 231))\",borderStyle:\"solid\",borderWidth:1},ey7w8muFX:false,G77f5Yx_v:\"Terms of Use\",height:\"100%\",HFfTjmBlq:\"var(--token-05d3d3db-be9e-464a-9684-d4b46306a4c3, rgb(113, 113, 122))\",id:\"vcEyyCZvD\",layoutId:\"vcEyyCZvD\",n9WP3fBIv:false,oV7zrnzuy:\"var(--token-2b0e18bf-9e9a-4016-bdfc-5769700a5529, rgb(255, 255, 255))\",SZQpZ3lk2:10,U1Kbkgydv:\"https://useconstant.app/docs/terms-of-use.pdf\",variant:\"dFbyw6SJY\",VkxZQkMEC:\"0px 0.6021873017743928px 0.6021873017743928px -1.25px rgba(9, 9, 11, 0.11), 0px 2.288533303243457px 2.288533303243457px -2.5px rgba(9, 9, 11, 0.1), 0px 10px 10px -3.75px rgba(9, 9, 11, 0.04)\",Vo_oxchYD:\"CaretRight\",width:\"100%\",WM2TpCryl:false})})}),/*#__PURE__*/_jsx(ComponentViewportProvider,{height:50,y:(componentViewport?.y||0)+42+(((componentViewport?.height||2052)-42-2710.8)/2+0+0)+0+0+0+0+0+0+0+234,...addPropertyOverrides({SlTkuQK8Q:{y:(componentViewport?.y||0)+60+(((componentViewport?.height||2603)-60-2750.8)/2+0+0)+0+0+0+0+0+0+0+234},wnFkhZiGa:{y:(componentViewport?.y||0)+40+(((componentViewport?.height||200)-40-3462.6)/2+0+0)+0+0+0+0+135.8+0+0+0+616+0+234}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1eklc0d-container\",isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"I__YBwsLQ-container\",nodeId:\"I__YBwsLQ\",rendersWithMotion:true,scopeId:\"KDy7eQEX5\",children:/*#__PURE__*/_jsx(Button,{ApWhoO21o:{borderColor:\"var(--token-31213cc7-db87-4df4-8209-e72c8adb68fb, rgb(228, 228, 231))\",borderStyle:\"solid\",borderWidth:1},ey7w8muFX:false,G77f5Yx_v:\"Privacy Policy\",height:\"100%\",HFfTjmBlq:\"var(--token-05d3d3db-be9e-464a-9684-d4b46306a4c3, rgb(113, 113, 122))\",id:\"I__YBwsLQ\",layoutId:\"I__YBwsLQ\",n9WP3fBIv:false,oV7zrnzuy:\"var(--token-2b0e18bf-9e9a-4016-bdfc-5769700a5529, rgb(255, 255, 255))\",SZQpZ3lk2:10,U1Kbkgydv:\"https://useconstant.app/docs/privacy-policy.pdf\",variant:\"dFbyw6SJY\",VkxZQkMEC:\"0px 0.6021873017743928px 0.6021873017743928px -1.25px rgba(9, 9, 11, 0.11), 0px 2.288533303243457px 2.288533303243457px -2.5px rgba(9, 9, 11, 0.1), 0px 10px 10px -3.75px rgba(9, 9, 11, 0.04)\",Vo_oxchYD:\"CaretRight\",width:\"100%\",WM2TpCryl:false})})}),/*#__PURE__*/_jsx(ComponentViewportProvider,{height:50,y:(componentViewport?.y||0)+42+(((componentViewport?.height||2052)-42-2710.8)/2+0+0)+0+0+0+0+0+0+0+304,...addPropertyOverrides({SlTkuQK8Q:{y:(componentViewport?.y||0)+60+(((componentViewport?.height||2603)-60-2750.8)/2+0+0)+0+0+0+0+0+0+0+304},wnFkhZiGa:{y:(componentViewport?.y||0)+40+(((componentViewport?.height||200)-40-3462.6)/2+0+0)+0+0+0+0+135.8+0+0+0+616+0+304}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-uko054-container\",isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"U6ntV1lE6-container\",nodeId:\"U6ntV1lE6\",rendersWithMotion:true,scopeId:\"KDy7eQEX5\",children:/*#__PURE__*/_jsx(Button,{ApWhoO21o:{borderColor:\"var(--token-31213cc7-db87-4df4-8209-e72c8adb68fb, rgb(228, 228, 231))\",borderStyle:\"solid\",borderWidth:1},ey7w8muFX:false,G77f5Yx_v:\"Disclosure Brochure\",height:\"100%\",HFfTjmBlq:\"var(--token-05d3d3db-be9e-464a-9684-d4b46306a4c3, rgb(113, 113, 122))\",id:\"U6ntV1lE6\",layoutId:\"U6ntV1lE6\",n9WP3fBIv:false,oV7zrnzuy:\"var(--token-2b0e18bf-9e9a-4016-bdfc-5769700a5529, rgb(255, 255, 255))\",SZQpZ3lk2:10,U1Kbkgydv:\"https://useconstant.app/docs/disclosure-brochure.pdf\",variant:\"dFbyw6SJY\",VkxZQkMEC:\"0px 0.6021873017743928px 0.6021873017743928px -1.25px rgba(9, 9, 11, 0.11), 0px 2.288533303243457px 2.288533303243457px -2.5px rgba(9, 9, 11, 0.1), 0px 10px 10px -3.75px rgba(9, 9, 11, 0.04)\",Vo_oxchYD:\"CaretRight\",width:\"100%\",WM2TpCryl:false})})}),/*#__PURE__*/_jsx(ComponentViewportProvider,{height:50,y:(componentViewport?.y||0)+42+(((componentViewport?.height||2052)-42-2710.8)/2+0+0)+0+0+0+0+0+0+0+374,...addPropertyOverrides({SlTkuQK8Q:{y:(componentViewport?.y||0)+60+(((componentViewport?.height||2603)-60-2750.8)/2+0+0)+0+0+0+0+0+0+0+374},wnFkhZiGa:{y:(componentViewport?.y||0)+40+(((componentViewport?.height||200)-40-3462.6)/2+0+0)+0+0+0+0+135.8+0+0+0+616+0+374}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1fpqjof-container\",isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"S03C6fjL7-container\",nodeId:\"S03C6fjL7\",rendersWithMotion:true,scopeId:\"KDy7eQEX5\",children:/*#__PURE__*/_jsx(Button,{ApWhoO21o:{borderColor:\"var(--token-31213cc7-db87-4df4-8209-e72c8adb68fb, rgb(228, 228, 231))\",borderStyle:\"solid\",borderWidth:1},ey7w8muFX:false,G77f5Yx_v:\"Important Disclosures\",height:\"100%\",HFfTjmBlq:\"var(--token-05d3d3db-be9e-464a-9684-d4b46306a4c3, rgb(113, 113, 122))\",id:\"S03C6fjL7\",layoutId:\"S03C6fjL7\",n9WP3fBIv:false,oV7zrnzuy:\"var(--token-2b0e18bf-9e9a-4016-bdfc-5769700a5529, rgb(255, 255, 255))\",SZQpZ3lk2:10,U1Kbkgydv:\"https://useconstant.app/docs/important-disclosure.pdf\",variant:\"dFbyw6SJY\",VkxZQkMEC:\"0px 0.6021873017743928px 0.6021873017743928px -1.25px rgba(9, 9, 11, 0.11), 0px 2.288533303243457px 2.288533303243457px -2.5px rgba(9, 9, 11, 0.1), 0px 10px 10px -3.75px rgba(9, 9, 11, 0.04)\",Vo_oxchYD:\"CaretRight\",width:\"100%\",WM2TpCryl:false})})})]})]})})]})}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-fvxf20\",layoutDependency:layoutDependency,layoutId:\"i8YvEgDlv\",children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7SW50ZXIgVGlnaHQtNTAw\",\"--framer-font-family\":'\"Inter Tight\", \"Inter Tight Placeholder\", sans-serif',\"--framer-font-weight\":\"500\",\"--framer-letter-spacing\":\"0.02em\",\"--framer-line-height\":\"1.8em\",\"--framer-text-alignment\":\"left\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-05d3d3db-be9e-464a-9684-d4b46306a4c3, rgb(113, 113, 122)))\"},children:\"Copyright \\xa9 2025, Jottix Inc. (D.B.A. Constant) All Rights Reserved\"})}),className:\"framer-ablr2t\",fonts:[\"GF;Inter Tight-500\"],layoutDependency:layoutDependency,layoutId:\"RTpbY9dox\",style:{\"--extracted-r6o4lv\":\"var(--token-05d3d3db-be9e-464a-9684-d4b46306a4c3, rgb(113, 113, 122))\"},verticalAlignment:\"top\",withExternalLayout:true})}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-1bvt9vm\",\"data-border\":true,\"data-framer-name\":\"Legal Text\",layoutDependency:layoutDependency,layoutId:\"agjzM2I_7\",style:{\"--border-bottom-width\":\"0px\",\"--border-color\":\"var(--token-e56f7e27-bc21-4038-ad06-7bf2680c5893, rgb(212, 212, 216))\",\"--border-left-width\":\"0px\",\"--border-right-width\":\"0px\",\"--border-style\":\"solid\",\"--border-top-width\":\"1px\"},children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsxs(React.Fragment,{children:[/*#__PURE__*/_jsxs(motion.p,{className:\"framer-styles-preset-1dkxfhl\",\"data-styles-preset\":\"otMNhHQ2Z\",children:[/*#__PURE__*/_jsx(motion.em,{children:\"Important Information, Terms and Disclosures:\"}),/*#__PURE__*/_jsx(motion.br,{}),\"Constant’s services are available only to residents of the United States in jurisdictions where Constant is registered or is exempt from the applicable registration requirements. By using this website, you accept and agree to the Constant \",/*#__PURE__*/_jsx(Link,{href:\"https://useconstant.app/docs/terms-of-use.pdf\",motionChild:true,nodeId:\"e3d3vihe1\",openInNewTab:true,relValues:[],scopeId:\"KDy7eQEX5\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-1yx4pvj\",\"data-styles-preset\":\"OgPd8ZMRH\",children:\"Terms of Use\"})}),\" and \",/*#__PURE__*/_jsx(Link,{href:\"https://useconstant.app/docs/privacy-policy.pdf\",motionChild:true,nodeId:\"e3d3vihe1\",openInNewTab:true,relValues:[],scopeId:\"KDy7eQEX5\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-1yx4pvj\",\"data-styles-preset\":\"OgPd8ZMRH\",children:\"Privacy Policy\"})}),\". Please refer to Constant’s \",/*#__PURE__*/_jsx(Link,{href:\"https://useconstant.app/docs/important-disclosure.pdf\",motionChild:true,nodeId:\"e3d3vihe1\",openInNewTab:true,relValues:[],scopeId:\"KDy7eQEX5\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-1yx4pvj\",\"data-styles-preset\":\"OgPd8ZMRH\",children:\"Important Disclosures\"})}),\" for additional information.\",/*#__PURE__*/_jsx(motion.br,{}),/*#__PURE__*/_jsx(motion.br,{}),\"Use of entities' marks and/or logos is for informational purposes only and does not constitute affiliation with, or endorsement or sponsorship by, such entities.\",/*#__PURE__*/_jsx(motion.br,{}),/*#__PURE__*/_jsx(motion.br,{}),/*#__PURE__*/_jsx(motion.em,{children:\"Sources and Notes:\"})]}),/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1dkxfhl\",\"data-styles-preset\":\"otMNhHQ2Z\",children:'(1) \"Institutional-grade” refers to funds with significant assets under management, operated by reputable institutional firms.'}),/*#__PURE__*/_jsx(motion.p,{children:/*#__PURE__*/_jsx(motion.br,{className:\"trailing-break\"})}),/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1dkxfhl\",\"data-styles-preset\":\"otMNhHQ2Z\",children:\"(2) A 0.18% advisory fee applies to investments exceeding $1 million, which we believe remains highly competitive compared to industry standards. This refers solely to our advisory fee; other fees, including but not limited to custodial fees and fees charged by underlying fund managers, may apply.\"}),/*#__PURE__*/_jsxs(motion.p,{className:\"framer-styles-preset-1dkxfhl\",\"data-styles-preset\":\"otMNhHQ2Z\",children:['Minimum investment amounts vary by fund and may be greater than $10,000. “Periodic liquidity”, \"semi-annual liquidity\", \"quarterly liquidity\" and \"flexible liquidity options\" refer to periodic repurchase offers made by the funds, which may vary between funds in frequency and availability. \"Simplified tax forms” and \"simple tax reporting\" refers to investments expected to issue Form 1099 rather than Schedule K-1; however, tax reporting requirements may vary by fund. ',/*#__PURE__*/_jsx(motion.br,{}),/*#__PURE__*/_jsx(motion.br,{className:\"trailing-break\"})]}),/*#__PURE__*/_jsxs(motion.p,{className:\"framer-styles-preset-1dkxfhl\",\"data-styles-preset\":\"otMNhHQ2Z\",children:['(3) Historical return figures from \"Private Markets Review\" by McKinsey & Company. Data is as of September 30, 2023. This information is provided for educational purposes only. These returns are general, and are not representative of Constant’s performance or of any specific funds you may invest in via Constant. The return figures do not represent the actual or hypothetical returns of any account managed by Constant. Past performance is no guarantee of future results. Performance is measured using the IRR of funds across the 2011 - 2020 vintage years.',/*#__PURE__*/_jsx(motion.br,{}),/*#__PURE__*/_jsx(motion.br,{}),\"The index returns should be considered for comparison purposes only and the comparison does not mean that there necessarily will be a correlation between the returns of any given fund or asset class, on the one hand, and the indices, on the other. The indices should not be understood to represent appropriate benchmarks against which to compare the performance of any given fund or asset class's performance; but, rather, is included to allow for comparison to that of certain well-known and widely recognized indices. Investments cannot be made directly in indices and such indices may re-invest dividends and income.\"]}),/*#__PURE__*/_jsx(motion.p,{children:/*#__PURE__*/_jsx(motion.br,{className:\"trailing-break\"})}),/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1dkxfhl\",\"data-styles-preset\":\"otMNhHQ2Z\",children:\"(4) “Attractive Relative Return” refers to a historical return that exceeds the performance of broad equity market indices, specifically the Russell 3000 and S&P 500, measured since the fund’s inception.\"}),/*#__PURE__*/_jsx(motion.p,{children:/*#__PURE__*/_jsx(motion.br,{className:\"trailing-break\"})}),/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1dkxfhl\",\"data-styles-preset\":\"otMNhHQ2Z\",children:\"(5) “Attractive Relative Return” refers to a historical return that exceeds the performance of broad indices, specifically the Morningstar LSTA US Leveraged Loan Index and the Bloomberg US Aggregate Index. Distribution rates and loan portfolio compositions are subject to change and may vary over time.\"}),/*#__PURE__*/_jsx(motion.p,{children:/*#__PURE__*/_jsx(motion.br,{className:\"trailing-break\"})}),/*#__PURE__*/_jsxs(motion.p,{className:\"framer-styles-preset-1dkxfhl\",\"data-styles-preset\":\"otMNhHQ2Z\",children:['(6) Historical return figures from \"Understanding Private Credit\" by GSAM Insights. Data is as of December 31, 2023. This information is provided for educational purposes only. These returns are general, and are not representative of Constant’s performance or of any specific funds you may invest in via Constant. The return figures do not represent the actual or hypothetical returns of any account managed by Constant. Past performance is no guarantee of future results. \"Public Loans\" is represented by the S&P LSTA Leveraged Loan Index, and \"High Yield\" is represented by the Bloomberg Global High Yield Index.',/*#__PURE__*/_jsx(motion.br,{}),/*#__PURE__*/_jsx(motion.br,{}),\"The index returns should be considered for comparison purposes only and the comparison does not mean that there necessarily will be a correlation between the returns of any given fund or asset class, on the one hand, and the indices, on the other. The indices should not be understood to represent appropriate benchmarks against which to compare the performance of any given fund or asset class's performance; but, rather, is included to allow for comparison to that of certain well-known and widely recognized indices. Investments cannot be made directly in indices and such indices may re-invest dividends and income.\"]}),/*#__PURE__*/_jsx(motion.p,{children:/*#__PURE__*/_jsx(motion.br,{className:\"trailing-break\"})}),/*#__PURE__*/_jsxs(motion.p,{className:\"framer-styles-preset-1dkxfhl\",\"data-styles-preset\":\"otMNhHQ2Z\",children:['(7) Historical return figures from Cambridge Associates. Data is as of June 30, 2024. This information is provided for educational purposes only. These returns are general, and are not representative of Constant’s performance or of any specific funds you may invest in via Constant. The return figures do not represent the actual or hypothetical returns of any account managed by Constant. Past performance is no guarantee of future results. \"MSCI Stock Market Index\" is represented by MSCI World/MSCI All Country World Index.',/*#__PURE__*/_jsx(motion.br,{}),/*#__PURE__*/_jsx(motion.br,{}),\"The index returns should be considered for comparison purposes only and the comparison does not mean that there necessarily will be a correlation between the returns of any given fund or asset class, on the one hand, and the indices, on the other. The indices should not be understood to represent appropriate benchmarks against which to compare the performance of any given fund or asset class's performance; but, rather, is included to allow for comparison to that of certain well-known and widely recognized indices. Investments cannot be made directly in indices and such indices may re-invest dividends and income.\"]}),/*#__PURE__*/_jsx(motion.p,{children:/*#__PURE__*/_jsx(motion.br,{className:\"trailing-break\"})}),/*#__PURE__*/_jsxs(motion.p,{className:\"framer-styles-preset-1dkxfhl\",\"data-styles-preset\":\"otMNhHQ2Z\",children:['(8) Historical \"Private Credit Total Assets Under Management\" figures from the Federal Reserve, FEDS Notes, \"Growth in Private Debt Allocations\". The graph shown represents the data from 2010 through 2023, with the 2023 data as of June 2023. This information is provided for educational purposes only.',/*#__PURE__*/_jsx(motion.br,{}),/*#__PURE__*/_jsx(motion.br,{}),'Historical \"Private Equity Total Assets Under Management\" figures from EY \"The rise and rise of private capital\". The graph shown represents the data from 2012 through 2023, with the 2023 data as of Q1 2023. The figures represent the combined value of private equity and venture capital. This information is provided for educational purposes only.']}),/*#__PURE__*/_jsx(motion.p,{children:/*#__PURE__*/_jsx(motion.br,{className:\"trailing-break\"})}),/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1dkxfhl\",\"data-styles-preset\":\"otMNhHQ2Z\",children:\"(9) Stephen Nesbitt, “Private Debt”, data from September 2004 through December 2021. These are general statistics based on indexes for each asset class, and are not representative of Constant's performance or of any specific fund’s performance. These returns do not represent the actual or hypothetical returns of any account managed by Constant. This information is provided for educational purposes only. From left to right, the indexes are Bloomberg US Aggregate Treasuries, Cliffwater Direct Lending Index, HFRI Fund Weighted, NCREIF Property, Cambridge US Buyout, Bloomberg High Yield, Morningstar LSTA US Leveraged Loan 100, and Russell 3000. The Cliffwater Direct Lending Index uses an unlevered methodology, and leverage has the effect of increasing the volatility of returns. Past performance is not indicative of future results.\"})]}),className:\"framer-1wx13ew\",fonts:[\"Inter\",\"Inter-Italic\"],layoutDependency:layoutDependency,layoutId:\"e3d3vihe1\",verticalAlignment:\"top\",withExternalLayout:true})})]})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-byho7.framer-tonuii, .framer-byho7 .framer-tonuii { display: block; }\",\".framer-byho7.framer-cxx8d6 { align-content: center; align-items: center; display: flex; flex-direction: column; flex-wrap: nowrap; gap: 80px; height: min-content; justify-content: center; overflow: visible; padding: 42px 32px 0px 32px; position: relative; width: 1200px; }\",\".framer-byho7 .framer-zcxs3b { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 40px; height: min-content; justify-content: center; max-width: 1200px; overflow: visible; padding: 0px; position: relative; width: 100%; }\",\".framer-byho7 .framer-1fuei9w, .framer-byho7 .framer-fvxf20 { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; height: min-content; justify-content: space-between; overflow: visible; padding: 0px; position: relative; width: 100%; }\",\".framer-byho7 .framer-ec6lof { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; height: min-content; justify-content: space-between; overflow: visible; padding: 0px; position: relative; width: 100%; }\",\".framer-byho7 .framer-5ty3eu { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 30px; height: min-content; justify-content: center; max-width: 1200px; overflow: visible; padding: 0px; position: relative; width: 40%; }\",\".framer-byho7 .framer-fsoyrq-container, .framer-byho7 .framer-1caajzb-container, .framer-byho7 .framer-1glyjjb-container, .framer-byho7 .framer-ieirnr-container, .framer-byho7 .framer-1h7daqo-container, .framer-byho7 .framer-6b2b9u-container, .framer-byho7 .framer-1eklc0d-container, .framer-byho7 .framer-uko054-container, .framer-byho7 .framer-1fpqjof-container { flex: none; height: auto; position: relative; width: auto; }\",\".framer-byho7 .framer-6x3tkq { flex: none; height: auto; max-width: 300px; position: relative; white-space: pre-wrap; width: auto; word-break: break-word; word-wrap: break-word; }\",\".framer-byho7 .framer-6f4znx { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: flex-end; overflow: visible; padding: 0px; position: relative; width: 460px; }\",\".framer-byho7 .framer-lruf55 { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: min-content; }\",\".framer-byho7 .framer-846icv { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 20px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: 150px; }\",\".framer-byho7 .framer-14pu9f6, .framer-byho7 .framer-1scnuuo, .framer-byho7 .framer-bx1fwp { flex: none; height: auto; max-width: 600px; overflow: visible; position: relative; white-space: pre-wrap; width: 106px; word-break: break-word; word-wrap: break-word; }\",\".framer-byho7 .framer-m3evao, .framer-byho7 .framer-1q6xjwm { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 20px; height: min-content; justify-content: center; max-width: 1200px; overflow: visible; padding: 0px; position: relative; width: 150px; }\",\".framer-byho7 .framer-ablr2t { --framer-text-wrap: balance; flex: none; height: auto; max-width: 650px; position: relative; white-space: pre-wrap; width: auto; word-break: break-word; word-wrap: break-word; }\",\".framer-byho7 .framer-1bvt9vm { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: flex-end; overflow: visible; padding: 42px 0px 32px 0px; position: relative; width: 100%; }\",\".framer-byho7 .framer-1wx13ew { flex: none; height: auto; position: relative; white-space: pre-wrap; width: 100%; word-break: break-word; word-wrap: break-word; }\",\".framer-byho7.framer-v-1yv9ce1.framer-cxx8d6 { gap: 60px; padding: 60px 32px 0px 32px; width: 810px; }\",\".framer-byho7.framer-v-1yv9ce1 .framer-zcxs3b { gap: 60px; }\",\".framer-byho7.framer-v-1yv9ce1 .framer-5ty3eu { flex-wrap: wrap; gap: 20px; max-width: unset; }\",\".framer-byho7.framer-v-1yv9ce1 .framer-6x3tkq { --framer-text-wrap: balance; max-width: unset; width: 100%; }\",\".framer-byho7.framer-v-1yv9ce1 .framer-6f4znx { flex: 1 0 0px; width: 1px; }\",\".framer-byho7.framer-v-1yv9ce1 .framer-lruf55 { gap: 0px; }\",\".framer-byho7.framer-v-1yv9ce1 .framer-fvxf20 { flex-direction: column; gap: 39px; justify-content: flex-start; }\",\".framer-byho7.framer-v-k572zs.framer-cxx8d6 { gap: 40px; padding: 40px 32px 0px 32px; width: 390px; }\",\".framer-byho7.framer-v-k572zs .framer-ec6lof { flex-direction: column; gap: 43px; justify-content: flex-start; }\",\".framer-byho7.framer-v-k572zs .framer-5ty3eu { flex-wrap: wrap; max-width: unset; width: 100%; }\",\".framer-byho7.framer-v-k572zs .framer-6f4znx { flex-direction: column; gap: 40px; width: 100%; }\",\".framer-byho7.framer-v-k572zs .framer-lruf55 { flex-direction: column; gap: 34px; width: 100%; }\",\".framer-byho7.framer-v-k572zs .framer-846icv, .framer-byho7.framer-v-k572zs .framer-m3evao { gap: 15px; width: min-content; }\",\".framer-byho7.framer-v-k572zs .framer-1q6xjwm { width: min-content; }\",\".framer-byho7.framer-v-k572zs .framer-fvxf20 { align-content: flex-start; align-items: flex-start; flex-direction: column; gap: 44px; justify-content: flex-start; }\",...sharedStyle.css,...sharedStyle1.css,'.framer-byho7[data-border=\"true\"]::after, .framer-byho7 [data-border=\"true\"]::after { content: \"\"; border-width: var(--border-top-width, 0) var(--border-right-width, 0) var(--border-bottom-width, 0) var(--border-left-width, 0); border-color: var(--border-color, none); border-style: var(--border-style, none); width: 100%; height: 100%; position: absolute; box-sizing: border-box; left: 0; top: 0; border-radius: inherit; pointer-events: none; }'];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 2052\n * @framerIntrinsicWidth 1200\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"auto\"]},\"SlTkuQK8Q\":{\"layout\":[\"fixed\",\"auto\"]},\"wnFkhZiGa\":{\"layout\":[\"fixed\",\"auto\"]}}}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerKDy7eQEX5=withCSS(Component,css,\"framer-byho7\");export default FramerKDy7eQEX5;FramerKDy7eQEX5.displayName=\"Footer\";FramerKDy7eQEX5.defaultProps={height:2052,width:1200};addPropertyControls(FramerKDy7eQEX5,{variant:{options:[\"U5En03Bc3\",\"SlTkuQK8Q\",\"wnFkhZiGa\"],optionTitles:[\"Light [Desktop]\",\"Light [Tablet]\",\"Light [Mobile]\"],title:\"Variant\",type:ControlType.Enum}});addFonts(FramerKDy7eQEX5,[{explicitInter:true,fonts:[{cssFamilyName:\"Inter Tight\",source:\"google\",style:\"normal\",uiFamilyName:\"Inter Tight\",url:\"https://fonts.gstatic.com/s/intertight/v9/NGSnv5HMAFg6IuGlBNMjxJEL2VmU3NS7Z2mjPQ-qWSRToK8EPg.woff2\",weight:\"500\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5vvr9Vy74if2I6bQbJvbw7SY1pQ.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/EOr0mi4hNtlgWNn9if640EZzXCo.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/Y9k9QrlZAqio88Klkmbd8VoMQc.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/OYrD2tBIBPvoJXiIHnLoOXnY9M.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/JeYwfuaPfZHQhEG8U5gtPDZ7WQ.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/GrgcKwrN6d3Uz8EwcLHZxwEfC4.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/b6Y37FthZeALduNqHicBT6FutY.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/CfMzU8w2e7tHgF4T4rATMPuWosA.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/867QObYax8ANsfX4TGEVU9YiCM.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/Oyn2ZbENFdnW7mt2Lzjk1h9Zb9k.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/cdAe8hgZ1cMyLu9g005pAW3xMo.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/DOfvtmE1UplCq161m6Hj8CSQYg.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/pKRFNWFoZl77qYCAIp84lN1h944.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/tKtBcDnBMevsEEJKdNGhhkLzYo.woff2\",weight:\"400\"}]},...ConstantLogoFonts,...ButtonFonts,...getFontsFromSharedStyle(sharedStyle.fonts),...getFontsFromSharedStyle(sharedStyle1.fonts)],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerKDy7eQEX5\",\"slots\":[],\"annotations\":{\"framerImmutableVariables\":\"true\",\"framerComponentViewportWidth\":\"true\",\"framerColorSyntax\":\"true\",\"framerAutoSizeImages\":\"true\",\"framerContractVersion\":\"1\",\"framerDisplayContentsDiv\":\"false\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"SlTkuQK8Q\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"wnFkhZiGa\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]}}}\",\"framerIntrinsicHeight\":\"2052\",\"framerIntrinsicWidth\":\"1200\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./KDy7eQEX5.map","// Generated by Framer (33d5032)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ControlType,cx,useActiveVariantCallback,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";const cycleOrder=[\"jes3YGVf7\",\"EiPw8AZS4\"];const serializationHash=\"framer-x5SFt\";const variantClassNames={EiPw8AZS4:\"framer-v-es8tzg\",jes3YGVf7:\"framer-v-1ib4qbi\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants===null||variants===void 0?void 0:variants.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={delay:0,duration:.3,ease:[.44,0,.56,1],type:\"tween\"};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value!==null&&value!==void 0?value:config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion(React.Fragment);const humanReadableVariantMap={\"Mobile Menu [Open]\":\"EiPw8AZS4\",\"Mobile Menu\":\"jes3YGVf7\"};const getProps=({height,iconColor,id,tap,width,...props})=>{var _ref,_humanReadableVariantMap_props_variant,_ref1;return{...props,E6NV4Gf2f:tap!==null&&tap!==void 0?tap:props.E6NV4Gf2f,lYvpkC7IW:(_ref=iconColor!==null&&iconColor!==void 0?iconColor:props.lYvpkC7IW)!==null&&_ref!==void 0?_ref:\"var(--token-963ba7ff-1506-4ab8-a9bc-332b05614e66, rgb(9, 9, 11))\",variant:(_ref1=(_humanReadableVariantMap_props_variant=humanReadableVariantMap[props.variant])!==null&&_humanReadableVariantMap_props_variant!==void 0?_humanReadableVariantMap_props_variant:props.variant)!==null&&_ref1!==void 0?_ref1:\"jes3YGVf7\"};};const createLayoutDependency=(props,variants)=>variants.join(\"-\")+props.layoutDependency;const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const{activeLocale,setLocale}=useLocaleInfo();const{style,className,layoutId,variant,E6NV4Gf2f,lYvpkC7IW,...restProps}=getProps(props);const{baseVariant,classNames,gestureVariant,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"jes3YGVf7\",variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const{activeVariantCallback,delay}=useActiveVariantCallback(baseVariant);const onTapey0dds=activeVariantCallback(async(...args)=>{setGestureState({isPressed:false});if(E6NV4Gf2f){const res=await E6NV4Gf2f(...args);if(res===false)return false;}setVariant(\"EiPw8AZS4\");});const onTap108nq5d=activeVariantCallback(async(...args)=>{setGestureState({isPressed:false});if(E6NV4Gf2f){const res=await E6NV4Gf2f(...args);if(res===false)return false;}setVariant(\"jes3YGVf7\");});const ref1=React.useRef(null);const defaultLayoutId=React.useId();const sharedStyleClassNames=[];const componentViewport=useComponentViewport();return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId!==null&&layoutId!==void 0?layoutId:defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsxs(motion.div,{...restProps,className:cx(serializationHash,...sharedStyleClassNames,\"framer-1ib4qbi\",className,classNames),\"data-framer-name\":\"Mobile Menu\",\"data-highlight\":true,layoutDependency:layoutDependency,layoutId:\"jes3YGVf7\",onHoverEnd:()=>setGestureState({isHovered:false}),onHoverStart:()=>setGestureState({isHovered:true}),onTap:onTapey0dds,onTapCancel:()=>setGestureState({isPressed:false}),onTapStart:()=>setGestureState({isPressed:true}),ref:ref!==null&&ref!==void 0?ref:ref1,style:{...style},...addPropertyOverrides({EiPw8AZS4:{\"data-framer-name\":\"Mobile Menu [Open]\",onTap:onTap108nq5d}},baseVariant,gestureVariant),children:[/*#__PURE__*/_jsx(motion.div,{className:\"framer-1cux5of\",layoutDependency:layoutDependency,layoutId:\"axZqjz8iD\",style:{backgroundColor:lYvpkC7IW,borderBottomLeftRadius:10,borderBottomRightRadius:10,borderTopLeftRadius:10,borderTopRightRadius:10,rotate:0},variants:{EiPw8AZS4:{rotate:45}}}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-1w1bul6\",layoutDependency:layoutDependency,layoutId:\"NLO8BEcKq\",style:{backgroundColor:lYvpkC7IW,borderBottomLeftRadius:10,borderBottomRightRadius:10,borderTopLeftRadius:10,borderTopRightRadius:10,rotate:0},variants:{EiPw8AZS4:{rotate:-45}}}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-1ku2ucf\",layoutDependency:layoutDependency,layoutId:\"eoR2V6lm3\",style:{backgroundColor:lYvpkC7IW,borderBottomLeftRadius:10,borderBottomRightRadius:10,borderTopLeftRadius:10,borderTopRightRadius:10,opacity:1,rotate:0},variants:{EiPw8AZS4:{opacity:0,rotate:-45}}})]})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-x5SFt.framer-3vm2ug, .framer-x5SFt .framer-3vm2ug { display: block; }\",\".framer-x5SFt.framer-1ib4qbi { cursor: pointer; height: 48px; position: relative; width: 48px; }\",\".framer-x5SFt .framer-1cux5of { flex: none; height: 3px; left: 11px; overflow: visible; position: absolute; top: 14px; width: 26px; }\",\".framer-x5SFt .framer-1w1bul6 { flex: none; height: 3px; left: 11px; overflow: visible; position: absolute; top: 22px; width: 26px; }\",\".framer-x5SFt .framer-1ku2ucf { flex: none; height: 3px; left: 11px; overflow: visible; position: absolute; top: 30px; width: 19px; }\",\".framer-x5SFt.framer-v-es8tzg.framer-1ib4qbi { aspect-ratio: 1 / 1; height: var(--framer-aspect-ratio-supported, 48px); }\",\".framer-x5SFt.framer-v-es8tzg .framer-1cux5of { left: calc(50.00000000000002% - 26px / 2); top: 23px; }\",\".framer-x5SFt.framer-v-es8tzg .framer-1w1bul6 { top: 23px; }\",\".framer-x5SFt.framer-v-es8tzg .framer-1ku2ucf { bottom: 18px; height: unset; left: 13px; width: 13px; }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 48\n * @framerIntrinsicWidth 48\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"fixed\"]},\"EiPw8AZS4\":{\"layout\":[\"fixed\",\"fixed\"]}}}\n * @framerVariables {\"E6NV4Gf2f\":\"tap\",\"lYvpkC7IW\":\"iconColor\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerComponentViewportWidth true\n */const FramersDquhqjHT=withCSS(Component,css,\"framer-x5SFt\");export default FramersDquhqjHT;FramersDquhqjHT.displayName=\"Menu/Hamburger Menu\";FramersDquhqjHT.defaultProps={height:48,width:48};addPropertyControls(FramersDquhqjHT,{variant:{options:[\"jes3YGVf7\",\"EiPw8AZS4\"],optionTitles:[\"Mobile Menu\",\"Mobile Menu [Open]\"],title:\"Variant\",type:ControlType.Enum},E6NV4Gf2f:{title:\"Tap\",type:ControlType.EventHandler},lYvpkC7IW:{defaultValue:'var(--token-963ba7ff-1506-4ab8-a9bc-332b05614e66, rgb(9, 9, 11)) /* {\"name\":\"Gray 950\"} */',title:\"Icon Color\",type:ControlType.Color}});addFonts(FramersDquhqjHT,[{explicitInter:true,fonts:[]}],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramersDquhqjHT\",\"slots\":[],\"annotations\":{\"framerComponentViewportWidth\":\"true\",\"framerImmutableVariables\":\"true\",\"framerVariables\":\"{\\\"E6NV4Gf2f\\\":\\\"tap\\\",\\\"lYvpkC7IW\\\":\\\"iconColor\\\"}\",\"framerDisplayContentsDiv\":\"false\",\"framerContractVersion\":\"1\",\"framerIntrinsicHeight\":\"48\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"EiPw8AZS4\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]}}}\",\"framerIntrinsicWidth\":\"48\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./sDquhqjHT.map","// Generated by Framer (98479f1)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ControlType,cx,getFontsFromSharedStyle,RichText,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import*as sharedStyle1 from\"https://framerusercontent.com/modules/ApX9HVBYzXw8OVpsB5J0/iAdQeJWoL35Kf2JGPnrF/acdDqsSOM.js\";import*as sharedStyle from\"https://framerusercontent.com/modules/kd8jVAanMrY55FyaEebM/QCGZ5TPXGA3QvV1Szskh/lpvldrpA0.js\";import*as sharedStyle2 from\"https://framerusercontent.com/modules/uSGUkH17FiSlGZhjBL7w/SPpxe0Y95Y7WW5V6fRL3/uYwjFvoUl.js\";const cycleOrder=[\"Dh_kmLg81\",\"Qy1b_vjYv\",\"XhoVkTECU\",\"cUGIJY4lk\"];const serializationHash=\"framer-gpXUq\";const variantClassNames={cUGIJY4lk:\"framer-v-1p942gh\",Dh_kmLg81:\"framer-v-7ipqct\",Qy1b_vjYv:\"framer-v-q9cg6d\",XhoVkTECU:\"framer-v-1xnqf79\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants===null||variants===void 0?void 0:variants.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const radiusForCorner=(value,cornerIndex)=>{if(typeof value===\"number\"&&Number.isFinite(value))return Math.max(0,value)+\"px\";if(typeof value!==\"string\"||typeof cornerIndex!==\"number\")return undefined;const segments=value.split(\" \");return segments[cornerIndex]||segments[cornerIndex-2]||segments[0];};const transition1={damping:60,delay:0,mass:1,stiffness:500,type:\"spring\"};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value!==null&&value!==void 0?value:config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const humanReadableVariantMap={\"Badge sm\":\"Qy1b_vjYv\",\"Badge xs\":\"XhoVkTECU\",\"Badge xxs\":\"cUGIJY4lk\",Badge:\"Dh_kmLg81\"};const getProps=({backgroundColor,bGBlur,border,height,id,radius,text,textColor,width,...props})=>{var _ref,_ref1,_ref2,_ref3,_humanReadableVariantMap_props_variant,_ref4,_ref5;return{...props,C_fTzd5lR:(_ref=border!==null&&border!==void 0?border:props.C_fTzd5lR)!==null&&_ref!==void 0?_ref:{borderColor:'var(--token-408e9ffb-f435-48c7-a9ff-2c04fe742fc2, rgb(228, 228, 231)) /* {\"name\":\"Gray 200\"} */',borderStyle:\"solid\",borderWidth:1},iXsfVjsEM:(_ref1=backgroundColor!==null&&backgroundColor!==void 0?backgroundColor:props.iXsfVjsEM)!==null&&_ref1!==void 0?_ref1:\"var(--token-3711503b-3d3b-4886-a85c-4293b65e43e7, rgb(255, 255, 255))\",JPO2n74ig:(_ref2=radius!==null&&radius!==void 0?radius:props.JPO2n74ig)!==null&&_ref2!==void 0?_ref2:10,Lsu1xrgI3:(_ref3=textColor!==null&&textColor!==void 0?textColor:props.Lsu1xrgI3)!==null&&_ref3!==void 0?_ref3:\"var(--token-963ba7ff-1506-4ab8-a9bc-332b05614e66, rgb(9, 9, 11))\",p4KdNyw2A:bGBlur!==null&&bGBlur!==void 0?bGBlur:props.p4KdNyw2A,variant:(_ref4=(_humanReadableVariantMap_props_variant=humanReadableVariantMap[props.variant])!==null&&_humanReadableVariantMap_props_variant!==void 0?_humanReadableVariantMap_props_variant:props.variant)!==null&&_ref4!==void 0?_ref4:\"Dh_kmLg81\",XGtDHEUvE:(_ref5=text!==null&&text!==void 0?text:props.XGtDHEUvE)!==null&&_ref5!==void 0?_ref5:\"Badge Text\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const{activeLocale,setLocale}=useLocaleInfo();const{style,className,layoutId,variant,XGtDHEUvE,Lsu1xrgI3,iXsfVjsEM,JPO2n74ig,C_fTzd5lR,p4KdNyw2A,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"Dh_kmLg81\",variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const ref1=React.useRef(null);const defaultLayoutId=React.useId();const sharedStyleClassNames=[sharedStyle.className,sharedStyle1.className,sharedStyle2.className];const componentViewport=useComponentViewport();var _C_fTzd5lR_borderBottomWidth,_C_fTzd5lR_borderLeftWidth,_C_fTzd5lR_borderRightWidth,_C_fTzd5lR_borderTopWidth;return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId!==null&&layoutId!==void 0?layoutId:defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsx(motion.div,{...restProps,...gestureHandlers,className:cx(serializationHash,...sharedStyleClassNames,\"framer-7ipqct\",className,classNames),\"data-border\":true,\"data-framer-name\":\"Badge\",layoutDependency:layoutDependency,layoutId:\"Dh_kmLg81\",ref:ref!==null&&ref!==void 0?ref:ref1,style:{\"--border-bottom-width\":`${(_C_fTzd5lR_borderBottomWidth=C_fTzd5lR.borderBottomWidth)!==null&&_C_fTzd5lR_borderBottomWidth!==void 0?_C_fTzd5lR_borderBottomWidth:C_fTzd5lR.borderWidth}px`,\"--border-color\":C_fTzd5lR.borderColor,\"--border-left-width\":`${(_C_fTzd5lR_borderLeftWidth=C_fTzd5lR.borderLeftWidth)!==null&&_C_fTzd5lR_borderLeftWidth!==void 0?_C_fTzd5lR_borderLeftWidth:C_fTzd5lR.borderWidth}px`,\"--border-right-width\":`${(_C_fTzd5lR_borderRightWidth=C_fTzd5lR.borderRightWidth)!==null&&_C_fTzd5lR_borderRightWidth!==void 0?_C_fTzd5lR_borderRightWidth:C_fTzd5lR.borderWidth}px`,\"--border-style\":C_fTzd5lR.borderStyle,\"--border-top-width\":`${(_C_fTzd5lR_borderTopWidth=C_fTzd5lR.borderTopWidth)!==null&&_C_fTzd5lR_borderTopWidth!==void 0?_C_fTzd5lR_borderTopWidth:C_fTzd5lR.borderWidth}px`,backdropFilter:`blur(${p4KdNyw2A}px)`,backgroundColor:iXsfVjsEM,borderBottomLeftRadius:radiusForCorner(JPO2n74ig,3),borderBottomRightRadius:radiusForCorner(JPO2n74ig,2),borderTopLeftRadius:radiusForCorner(JPO2n74ig,0),borderTopRightRadius:radiusForCorner(JPO2n74ig,1),...style},...addPropertyOverrides({cUGIJY4lk:{\"data-framer-name\":\"Badge xxs\"},Qy1b_vjYv:{\"data-framer-name\":\"Badge sm\"},XhoVkTECU:{\"data-framer-name\":\"Badge xs\"}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(motion.div,{className:\"framer-brloun\",layoutDependency:layoutDependency,layoutId:\"LJNyOguvz\",children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-oqxj12\",\"data-styles-preset\":\"lpvldrpA0\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--variable-reference-Lsu1xrgI3-ZC6oaTVqt))\"},children:\"Badge Text\"})}),className:\"framer-n2s70i\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"SsTSqHFV8\",style:{\"--extracted-r6o4lv\":\"var(--variable-reference-Lsu1xrgI3-ZC6oaTVqt)\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\",\"--variable-reference-Lsu1xrgI3-ZC6oaTVqt\":Lsu1xrgI3},text:XGtDHEUvE,verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({cUGIJY4lk:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1subfuh\",\"data-styles-preset\":\"uYwjFvoUl\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--variable-reference-Lsu1xrgI3-ZC6oaTVqt))\"},children:\"Badge Text\"})})},Qy1b_vjYv:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-5c03bw\",\"data-styles-preset\":\"acdDqsSOM\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--variable-reference-Lsu1xrgI3-ZC6oaTVqt))\"},children:\"Badge Text\"})})},XhoVkTECU:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1subfuh\",\"data-styles-preset\":\"uYwjFvoUl\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--variable-reference-Lsu1xrgI3-ZC6oaTVqt))\"},children:\"Badge Text\"})})}},baseVariant,gestureVariant)})})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-gpXUq.framer-1w5kpb9, .framer-gpXUq .framer-1w5kpb9 { display: block; }\",\".framer-gpXUq.framer-7ipqct { align-content: center; align-items: center; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; overflow: hidden; padding: 8px 12px 8px 12px; position: relative; width: min-content; will-change: var(--framer-will-change-override, transform); }\",\".framer-gpXUq .framer-brloun { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: min-content; }\",\".framer-gpXUq .framer-n2s70i { flex: none; height: auto; position: relative; white-space: pre; width: auto; }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-gpXUq.framer-7ipqct, .framer-gpXUq .framer-brloun { gap: 0px; } .framer-gpXUq.framer-7ipqct > *, .framer-gpXUq .framer-brloun > * { margin: 0px; margin-left: calc(10px / 2); margin-right: calc(10px / 2); } .framer-gpXUq.framer-7ipqct > :first-child, .framer-gpXUq .framer-brloun > :first-child { margin-left: 0px; } .framer-gpXUq.framer-7ipqct > :last-child, .framer-gpXUq .framer-brloun > :last-child { margin-right: 0px; } }\",\".framer-gpXUq.framer-v-q9cg6d.framer-7ipqct { padding: 6px 11px 6px 11px; }\",\".framer-gpXUq.framer-v-1xnqf79.framer-7ipqct { padding: 6px 8px 6px 8px; }\",\".framer-gpXUq.framer-v-1p942gh.framer-7ipqct { padding: 4px 6px 4px 6px; }\",...sharedStyle.css,...sharedStyle1.css,...sharedStyle2.css,'.framer-gpXUq[data-border=\"true\"]::after, .framer-gpXUq [data-border=\"true\"]::after { content: \"\"; border-width: var(--border-top-width, 0) var(--border-right-width, 0) var(--border-bottom-width, 0) var(--border-left-width, 0); border-color: var(--border-color, none); border-style: var(--border-style, none); width: 100%; height: 100%; position: absolute; box-sizing: border-box; left: 0; top: 0; border-radius: inherit; pointer-events: none; }'];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 45\n * @framerIntrinsicWidth 109.5\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"auto\",\"auto\"]},\"Qy1b_vjYv\":{\"layout\":[\"auto\",\"auto\"]},\"XhoVkTECU\":{\"layout\":[\"auto\",\"auto\"]},\"cUGIJY4lk\":{\"layout\":[\"auto\",\"auto\"]}}}\n * @framerVariables {\"XGtDHEUvE\":\"text\",\"Lsu1xrgI3\":\"textColor\",\"iXsfVjsEM\":\"backgroundColor\",\"JPO2n74ig\":\"radius\",\"C_fTzd5lR\":\"border\",\"p4KdNyw2A\":\"bGBlur\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerComponentViewportWidth true\n */const FramerZC6oaTVqt=withCSS(Component,css,\"framer-gpXUq\");export default FramerZC6oaTVqt;FramerZC6oaTVqt.displayName=\"Badge\";FramerZC6oaTVqt.defaultProps={height:45,width:109.5};addPropertyControls(FramerZC6oaTVqt,{variant:{options:[\"Dh_kmLg81\",\"Qy1b_vjYv\",\"XhoVkTECU\",\"cUGIJY4lk\"],optionTitles:[\"Badge\",\"Badge sm\",\"Badge xs\",\"Badge xxs\"],title:\"Variant\",type:ControlType.Enum},XGtDHEUvE:{defaultValue:\"Badge Text\",displayTextArea:false,title:\"Text\",type:ControlType.String},Lsu1xrgI3:{defaultValue:'var(--token-963ba7ff-1506-4ab8-a9bc-332b05614e66, rgb(9, 9, 11)) /* {\"name\":\"Gray 950\"} */',title:\"Text Color\",type:ControlType.Color},iXsfVjsEM:{defaultValue:'var(--token-3711503b-3d3b-4886-a85c-4293b65e43e7, rgb(255, 255, 255)) /* {\"name\":\"White\"} */',title:\"Background Color\",type:ControlType.Color},JPO2n74ig:{defaultValue:10,title:\"Radius\",type:ControlType.Number},C_fTzd5lR:{defaultValue:{borderColor:'var(--token-408e9ffb-f435-48c7-a9ff-2c04fe742fc2, rgb(228, 228, 231)) /* {\"name\":\"Gray 200\"} */',borderStyle:\"solid\",borderWidth:1},title:\"Border\",type:ControlType.Border},p4KdNyw2A:{defaultValue:0,title:\"BG Blur\",type:ControlType.Number}});addFonts(FramerZC6oaTVqt,[{explicitInter:true,fonts:[{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5vvr9Vy74if2I6bQbJvbw7SY1pQ.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/EOr0mi4hNtlgWNn9if640EZzXCo.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/Y9k9QrlZAqio88Klkmbd8VoMQc.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/OYrD2tBIBPvoJXiIHnLoOXnY9M.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/JeYwfuaPfZHQhEG8U5gtPDZ7WQ.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/vQyevYAyHtARFwPqUzQGpnDs.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/b6Y37FthZeALduNqHicBT6FutY.woff2\",weight:\"400\"}]},...getFontsFromSharedStyle(sharedStyle.fonts),...getFontsFromSharedStyle(sharedStyle1.fonts),...getFontsFromSharedStyle(sharedStyle2.fonts)],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerZC6oaTVqt\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerComponentViewportWidth\":\"true\",\"framerDisplayContentsDiv\":\"false\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"Qy1b_vjYv\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"XhoVkTECU\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"cUGIJY4lk\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]}}}\",\"framerIntrinsicWidth\":\"109.5\",\"framerImmutableVariables\":\"true\",\"framerIntrinsicHeight\":\"45\",\"framerVariables\":\"{\\\"XGtDHEUvE\\\":\\\"text\\\",\\\"Lsu1xrgI3\\\":\\\"textColor\\\",\\\"iXsfVjsEM\\\":\\\"backgroundColor\\\",\\\"JPO2n74ig\\\":\\\"radius\\\",\\\"C_fTzd5lR\\\":\\\"border\\\",\\\"p4KdNyw2A\\\":\\\"bGBlur\\\"}\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ZC6oaTVqt.map","// Generated by Framer (ae47b7e)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,ControlType,cx,getFonts,getFontsFromSharedStyle,Link,RichText,useActiveVariantCallback,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{Icon as Phosphor}from\"https://framerusercontent.com/modules/tYScH7LTqUtz5KUaUAYP/p8dptk4UIND8hbFWz9V7/Phosphor.js\";import*as sharedStyle from\"https://framerusercontent.com/modules/0AfC8Koo329Six6igTZY/1Ia8UITFrV9vlRPqT1ib/aGffgv7Ct.js\";import*as sharedStyle1 from\"https://framerusercontent.com/modules/KynAm6rQ47XtGN6u9X9H/DzB4KjeuyawzE1IYr5hh/maGpaxTnj.js\";import Badge from\"https://framerusercontent.com/modules/hKdE4BSlco24yloavHaF/gxw6wmgXPR7PasSQTa8q/ZC6oaTVqt.js\";const BadgeFonts=getFonts(Badge);const PhosphorFonts=getFonts(Phosphor);const enabledGestures={icuU8oJ0t:{hover:true}};const cycleOrder=[\"icuU8oJ0t\",\"HhwQ1hV0t\",\"LQXjyoW02\",\"kc88LMeYu\",\"usttoGkoS\"];const serializationHash=\"framer-vxWxL\";const variantClassNames={HhwQ1hV0t:\"framer-v-1vx7c28\",icuU8oJ0t:\"framer-v-hfop9t\",kc88LMeYu:\"framer-v-1rk7qb1\",LQXjyoW02:\"framer-v-ix00l\",usttoGkoS:\"framer-v-ri7xm7\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const radiusForCorner=(value,cornerIndex)=>{if(typeof value===\"number\"&&Number.isFinite(value))return Math.max(0,value)+\"px\";if(typeof value!==\"string\"||typeof cornerIndex!==\"number\")return undefined;const segments=value.split(\" \");return segments[cornerIndex]||segments[cornerIndex-2]||segments[0];};const transition1={damping:60,delay:0,mass:.5,stiffness:500,type:\"spring\"};const transition2={damping:60,delay:0,mass:.5,stiffness:300,type:\"spring\"};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const humanReadableEnumMap={\"Space Around\":\"space-around\",\"Space Between\":\"space-between\",\"Space Evenly\":\"space-evenly\",Center:\"center\",End:\"flex-end\",Start:\"flex-start\"};const humanReadableVariantMap={\"Dropdown Title Item\":\"kc88LMeYu\",\"Empty space\":\"usttoGkoS\",\"Menu Item Dropdown [Open]\":\"LQXjyoW02\",\"Menu Item Dropdown\":\"HhwQ1hV0t\",\"Menu Item Simple\":\"icuU8oJ0t\"};const getProps=({align,badgeBGColor,badgeBorder,badgeText,badgeTextColor,bGColor,bGHover,enableBadge,height,hover,id,link,name1,openInNewTab,radius,tap,textColor,width,...props})=>{return{...props,bxYeoQnmJ:badgeBGColor??props.bxYeoQnmJ??\"var(--token-2b0e18bf-9e9a-4016-bdfc-5769700a5529, rgb(255, 255, 255))\",CKLn4URch:badgeBorder??props.CKLn4URch??{borderColor:'var(--token-31213cc7-db87-4df4-8209-e72c8adb68fb, rgb(228, 228, 231)) /* {\"name\":\"Gray 200 [Dynamic]\"} */',borderStyle:\"solid\",borderWidth:1},dqMpST25y:radius??props.dqMpST25y??10,i6eMpMhze:tap??props.i6eMpMhze,i8hVK17KP:bGHover??props.i8hVK17KP??\"rgba(113, 113, 122, 0.08)\",kf3NktHXk:badgeText??props.kf3NktHXk??\"Badge\",ku0K5iab7:name1??props.ku0K5iab7??\"Link\",PnQ813Qxg:hover??props.PnQ813Qxg,qfg9TUc_S:enableBadge??props.qfg9TUc_S,stziIHmv7:bGColor??props.stziIHmv7??\"rgba(113, 113, 122, 0)\",T3ktnO2nz:openInNewTab??props.T3ktnO2nz,variant:humanReadableVariantMap[props.variant]??props.variant??\"icuU8oJ0t\",VdwkoqfEz:badgeTextColor??props.VdwkoqfEz??\"var(--token-de5448c6-98bb-4403-96cd-7fe86bf2daa6, rgb(9, 9, 11))\",wGRcFK04x:textColor??props.wGRcFK04x??\"var(--token-de5448c6-98bb-4403-96cd-7fe86bf2daa6, rgb(9, 9, 11))\",ycFa86gVJ:humanReadableEnumMap[align]??align??props.ycFa86gVJ??\"center\",ZpWw94nXT:link??props.ZpWw94nXT};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const{activeLocale,setLocale}=useLocaleInfo();const{style,className,layoutId,variant,ku0K5iab7,ZpWw94nXT,T3ktnO2nz,wGRcFK04x,stziIHmv7,i8hVK17KP,ycFa86gVJ,i6eMpMhze,PnQ813Qxg,dqMpST25y,qfg9TUc_S,kf3NktHXk,VdwkoqfEz,bxYeoQnmJ,CKLn4URch,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"icuU8oJ0t\",enabledGestures,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const{activeVariantCallback,delay}=useActiveVariantCallback(baseVariant);const onTap17wrld9=activeVariantCallback(async(...args)=>{setGestureState({isPressed:false});if(i6eMpMhze){const res=await i6eMpMhze(...args);if(res===false)return false;}});const onMouseEnter1x7u0ml=activeVariantCallback(async(...args)=>{setGestureState({isHovered:true});if(PnQ813Qxg){const res=await PnQ813Qxg(...args);if(res===false)return false;}});const sharedStyleClassNames=[sharedStyle.className,sharedStyle1.className];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);const ref1=React.useRef(null);const isDisplayed=()=>{if(baseVariant===\"usttoGkoS\")return false;return true;};const isDisplayed1=()=>{if([\"HhwQ1hV0t\",\"LQXjyoW02\"].includes(baseVariant))return true;return false;};const defaultLayoutId=React.useId();const componentViewport=useComponentViewport();return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,...addPropertyOverrides({LQXjyoW02:{value:transition2}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(Link,{href:ZpWw94nXT,nodeId:\"icuU8oJ0t\",openInNewTab:T3ktnO2nz,smoothScroll:true,...addPropertyOverrides({kc88LMeYu:{href:undefined},usttoGkoS:{href:undefined}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsxs(motion.a,{...restProps,...gestureHandlers,className:`${cx(scopingClassNames,\"framer-hfop9t\",className,classNames)} framer-1xk21ds`,\"data-framer-name\":\"Menu Item Simple\",\"data-highlight\":true,layoutDependency:layoutDependency,layoutId:\"icuU8oJ0t\",onMouseEnter:onMouseEnter1x7u0ml,onTap:onTap17wrld9,ref:ref??ref1,style:{\"--1rj8ghj\":ycFa86gVJ,backgroundColor:stziIHmv7,borderBottomLeftRadius:radiusForCorner(dqMpST25y,3),borderBottomRightRadius:radiusForCorner(dqMpST25y,2),borderTopLeftRadius:radiusForCorner(dqMpST25y,0),borderTopRightRadius:radiusForCorner(dqMpST25y,1),...style},variants:{\"icuU8oJ0t-hover\":{backgroundColor:i8hVK17KP},LQXjyoW02:{backgroundColor:\"rgba(9, 9, 11, 0.05)\"}},...addPropertyOverrides({\"icuU8oJ0t-hover\":{\"data-framer-name\":undefined},HhwQ1hV0t:{\"data-framer-name\":\"Menu Item Dropdown\"},kc88LMeYu:{\"data-framer-name\":\"Dropdown Title Item\"},LQXjyoW02:{\"data-framer-name\":\"Menu Item Dropdown [Open]\"},usttoGkoS:{\"data-framer-name\":\"Empty space\"}},baseVariant,gestureVariant),children:[isDisplayed()&&/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1xyptdp\",\"data-styles-preset\":\"aGffgv7Ct\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--variable-reference-wGRcFK04x-Z5aW2k3RB))\"},children:\"Link\"})}),className:\"framer-1vx5tu0\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"gTNv8fTVS\",style:{\"--extracted-r6o4lv\":\"var(--variable-reference-wGRcFK04x-Z5aW2k3RB)\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\",\"--variable-reference-wGRcFK04x-Z5aW2k3RB\":wGRcFK04x},text:ku0K5iab7,verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({kc88LMeYu:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1b8z1kr\",\"data-styles-preset\":\"maGpaxTnj\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--variable-reference-wGRcFK04x-Z5aW2k3RB))\"},children:\"Link\"})})}},baseVariant,gestureVariant)}),qfg9TUc_S&&/*#__PURE__*/_jsx(ComponentViewportProvider,{height:45,y:(componentViewport?.y||0)+(18+((componentViewport?.height||36)-36-45)/2),...addPropertyOverrides({kc88LMeYu:{y:(componentViewport?.y||0)+(8+((componentViewport?.height||30.5)-16-45)/2)},usttoGkoS:{y:(componentViewport?.y||0)+(0+((componentViewport?.height||0)-0-45)/2)}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(motion.div,{className:\"framer-eukp2i-container\",layoutDependency:layoutDependency,layoutId:\"JN6O6Y8K9-container\",children:/*#__PURE__*/_jsx(Badge,{C_fTzd5lR:CKLn4URch,height:\"100%\",id:\"JN6O6Y8K9\",iXsfVjsEM:bxYeoQnmJ,JPO2n74ig:5,layoutId:\"JN6O6Y8K9\",Lsu1xrgI3:VdwkoqfEz,p4KdNyw2A:0,variant:\"cUGIJY4lk\",width:\"100%\",XGtDHEUvE:kf3NktHXk})})}),isDisplayed1()&&/*#__PURE__*/_jsx(motion.div,{className:\"framer-12jenrk\",layoutDependency:layoutDependency,layoutId:\"qdqvZw6xP\",children:/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(motion.div,{className:\"framer-kr3p8o-container\",layoutDependency:layoutDependency,layoutId:\"TfGao9FSL-container\",style:{opacity:.5,rotate:0},variants:{LQXjyoW02:{rotate:-180}},children:/*#__PURE__*/_jsx(Phosphor,{color:wGRcFK04x,height:\"100%\",iconSearch:\"House\",iconSelection:\"CaretDown\",id:\"TfGao9FSL\",layoutId:\"TfGao9FSL\",mirrored:false,selectByList:true,style:{height:\"100%\",width:\"100%\"},weight:\"bold\",width:\"100%\"})})})})]})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-vxWxL.framer-1xk21ds, .framer-vxWxL .framer-1xk21ds { display: block; }\",\".framer-vxWxL.framer-hfop9t { align-content: center; align-items: center; cursor: pointer; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 7px; height: 17px; justify-content: var(--1rj8ghj); overflow: visible; padding: 18px 12px 18px 12px; position: relative; text-decoration: none; width: min-content; }\",\".framer-vxWxL .framer-1vx5tu0 { flex: none; height: auto; position: relative; white-space: pre; width: auto; }\",\".framer-vxWxL .framer-eukp2i-container { flex: none; height: auto; position: relative; width: auto; }\",\".framer-vxWxL .framer-12jenrk { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 5px; height: 17px; justify-content: center; overflow: visible; padding: 0px; position: relative; width: min-content; }\",\".framer-vxWxL .framer-kr3p8o-container { flex: none; height: 14px; position: relative; width: 14px; }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-vxWxL.framer-hfop9t, .framer-vxWxL .framer-12jenrk { gap: 0px; } .framer-vxWxL.framer-hfop9t > * { margin: 0px; margin-left: calc(7px / 2); margin-right: calc(7px / 2); } .framer-vxWxL.framer-hfop9t > :first-child, .framer-vxWxL .framer-12jenrk > :first-child { margin-left: 0px; } .framer-vxWxL.framer-hfop9t > :last-child, .framer-vxWxL .framer-12jenrk > :last-child { margin-right: 0px; } .framer-vxWxL .framer-12jenrk > * { margin: 0px; margin-left: calc(5px / 2); margin-right: calc(5px / 2); } }\",\".framer-vxWxL.framer-v-1vx7c28.framer-hfop9t, .framer-vxWxL.framer-v-ix00l.framer-hfop9t, .framer-vxWxL.framer-v-hfop9t.hover.framer-hfop9t { height: 36px; }\",\".framer-vxWxL.framer-v-1rk7qb1.framer-hfop9t { height: min-content; padding: 8px 12px 8px 12px; }\",\".framer-vxWxL.framer-v-1rk7qb1 .framer-1vx5tu0 { order: 0; }\",\".framer-vxWxL.framer-v-1rk7qb1 .framer-eukp2i-container, .framer-vxWxL.framer-v-ri7xm7 .framer-eukp2i-container { order: 1; }\",\".framer-vxWxL.framer-v-ri7xm7.framer-hfop9t { height: min-content; padding: 0px; }\",...sharedStyle.css,...sharedStyle1.css];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 36\n * @framerIntrinsicWidth 51\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"auto\",\"fixed\"]},\"HhwQ1hV0t\":{\"layout\":[\"auto\",\"fixed\"]},\"LQXjyoW02\":{\"layout\":[\"auto\",\"fixed\"]},\"kc88LMeYu\":{\"layout\":[\"auto\",\"auto\"]},\"usttoGkoS\":{\"layout\":[\"auto\",\"auto\"]},\"Dv2nGJV7X\":{\"layout\":[\"auto\",\"fixed\"]}}}\n * @framerVariables {\"ku0K5iab7\":\"name1\",\"ZpWw94nXT\":\"link\",\"T3ktnO2nz\":\"openInNewTab\",\"wGRcFK04x\":\"textColor\",\"stziIHmv7\":\"bGColor\",\"i8hVK17KP\":\"bGHover\",\"ycFa86gVJ\":\"align\",\"i6eMpMhze\":\"tap\",\"PnQ813Qxg\":\"hover\",\"dqMpST25y\":\"radius\",\"qfg9TUc_S\":\"enableBadge\",\"kf3NktHXk\":\"badgeText\",\"VdwkoqfEz\":\"badgeTextColor\",\"bxYeoQnmJ\":\"badgeBGColor\",\"CKLn4URch\":\"badgeBorder\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerComponentViewportWidth true\n */const FramerZ5aW2k3RB=withCSS(Component,css,\"framer-vxWxL\");export default FramerZ5aW2k3RB;FramerZ5aW2k3RB.displayName=\"Menu/Item\";FramerZ5aW2k3RB.defaultProps={height:36,width:51};addPropertyControls(FramerZ5aW2k3RB,{variant:{options:[\"icuU8oJ0t\",\"HhwQ1hV0t\",\"LQXjyoW02\",\"kc88LMeYu\",\"usttoGkoS\"],optionTitles:[\"Menu Item Simple\",\"Menu Item Dropdown\",\"Menu Item Dropdown [Open]\",\"Dropdown Title Item\",\"Empty space\"],title:\"Variant\",type:ControlType.Enum},ku0K5iab7:{defaultValue:\"Link\",displayTextArea:false,title:\"Name\",type:ControlType.String},ZpWw94nXT:{title:\"Link\",type:ControlType.Link},T3ktnO2nz:{defaultValue:false,title:\"Open in New Tab\",type:ControlType.Boolean},wGRcFK04x:{defaultValue:'var(--token-de5448c6-98bb-4403-96cd-7fe86bf2daa6, rgb(9, 9, 11)) /* {\"name\":\"Gray 950 [Dynamic]\"} */',title:\"Text Color\",type:ControlType.Color},stziIHmv7:{defaultValue:\"rgba(113, 113, 122, 0)\",title:\"BG Color\",type:ControlType.Color},i8hVK17KP:{defaultValue:\"rgba(113, 113, 122, 0.08)\",title:\"BG Hover\",type:ControlType.Color},ycFa86gVJ:{defaultValue:\"center\",options:[\"flex-start\",\"center\",\"flex-end\",\"space-between\",\"space-around\",\"space-evenly\"],optionTitles:[\"Start\",\"Center\",\"End\",\"Space Between\",\"Space Around\",\"Space Evenly\"],title:\"Align\",type:ControlType.Enum},i6eMpMhze:{title:\"Tap\",type:ControlType.EventHandler},PnQ813Qxg:{title:\"Hover\",type:ControlType.EventHandler},dqMpST25y:{defaultValue:10,title:\"Radius\",type:ControlType.Number},qfg9TUc_S:{defaultValue:false,title:\"Enable Badge\",type:ControlType.Boolean},kf3NktHXk:{defaultValue:\"Badge\",displayTextArea:false,title:\"Badge Text\",type:ControlType.String},VdwkoqfEz:{defaultValue:'var(--token-de5448c6-98bb-4403-96cd-7fe86bf2daa6, rgb(9, 9, 11)) /* {\"name\":\"Gray 950 [Dynamic]\"} */',title:\"Badge Text Color\",type:ControlType.Color},bxYeoQnmJ:{defaultValue:'var(--token-2b0e18bf-9e9a-4016-bdfc-5769700a5529, rgb(255, 255, 255)) /* {\"name\":\"White/Gray 950 [Dynamic]\"} */',title:\"Badge BG Color\",type:ControlType.Color},CKLn4URch:{defaultValue:{borderColor:'var(--token-31213cc7-db87-4df4-8209-e72c8adb68fb, rgb(228, 228, 231)) /* {\"name\":\"Gray 200 [Dynamic]\"} */',borderStyle:\"solid\",borderWidth:1},title:\"Badge Border\",type:ControlType.Border}});addFonts(FramerZ5aW2k3RB,[{explicitInter:true,fonts:[{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5vvr9Vy74if2I6bQbJvbw7SY1pQ.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/EOr0mi4hNtlgWNn9if640EZzXCo.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/Y9k9QrlZAqio88Klkmbd8VoMQc.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/OYrD2tBIBPvoJXiIHnLoOXnY9M.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/JeYwfuaPfZHQhEG8U5gtPDZ7WQ.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/vQyevYAyHtARFwPqUzQGpnDs.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/b6Y37FthZeALduNqHicBT6FutY.woff2\",weight:\"400\"}]},...BadgeFonts,...PhosphorFonts,...getFontsFromSharedStyle(sharedStyle.fonts),...getFontsFromSharedStyle(sharedStyle1.fonts)],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerZ5aW2k3RB\",\"slots\":[],\"annotations\":{\"framerVariables\":\"{\\\"ku0K5iab7\\\":\\\"name1\\\",\\\"ZpWw94nXT\\\":\\\"link\\\",\\\"T3ktnO2nz\\\":\\\"openInNewTab\\\",\\\"wGRcFK04x\\\":\\\"textColor\\\",\\\"stziIHmv7\\\":\\\"bGColor\\\",\\\"i8hVK17KP\\\":\\\"bGHover\\\",\\\"ycFa86gVJ\\\":\\\"align\\\",\\\"i6eMpMhze\\\":\\\"tap\\\",\\\"PnQ813Qxg\\\":\\\"hover\\\",\\\"dqMpST25y\\\":\\\"radius\\\",\\\"qfg9TUc_S\\\":\\\"enableBadge\\\",\\\"kf3NktHXk\\\":\\\"badgeText\\\",\\\"VdwkoqfEz\\\":\\\"badgeTextColor\\\",\\\"bxYeoQnmJ\\\":\\\"badgeBGColor\\\",\\\"CKLn4URch\\\":\\\"badgeBorder\\\"}\",\"framerComponentViewportWidth\":\"true\",\"framerIntrinsicWidth\":\"51\",\"framerImmutableVariables\":\"true\",\"framerContractVersion\":\"1\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"fixed\\\"]},\\\"HhwQ1hV0t\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"fixed\\\"]},\\\"LQXjyoW02\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"fixed\\\"]},\\\"kc88LMeYu\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"usttoGkoS\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"Dv2nGJV7X\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"fixed\\\"]}}}\",\"framerIntrinsicHeight\":\"36\",\"framerDisplayContentsDiv\":\"false\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Z5aW2k3RB.map","function t(e,i,s){return Math.max(e,Math.min(i,s))}class Animate{advance(e){if(!this.isRunning)return;let i=!1;if(this.lerp)this.value=(s=this.value,o=this.to,n=60*this.lerp,r=e,function(e,i,s){return(1-s)*e+s*i}(s,o,1-Math.exp(-n*r))),Math.round(this.value)===this.to&&(this.value=this.to,i=!0);else{this.currentTime+=e;const s=t(0,this.currentTime/this.duration,1);i=s>=1;const o=i?1:this.easing(s);this.value=this.from+(this.to-this.from)*o}var s,o,n,r;this.onUpdate?.(this.value,i),i&&this.stop()}stop(){this.isRunning=!1}fromTo(e,i,{lerp:s=.1,duration:o=1,easing:n=(e=>e),onStart:r,onUpdate:l}){this.from=this.value=e,this.to=i,this.lerp=s,this.duration=o,this.easing=n,this.currentTime=0,this.isRunning=!0,r?.(),this.onUpdate=l}}class Dimensions{constructor({wrapper:e,content:i,autoResize:s=!0,debounce:o=250}={}){this.wrapper=e,this.content=i,s&&(this.debouncedResize=function(e,i){let s;return function(){let o=arguments,n=this;clearTimeout(s),s=setTimeout((function(){e.apply(n,o)}),i)}}(this.resize,o),this.wrapper===window?window.addEventListener(\"resize\",this.debouncedResize,!1):(this.wrapperResizeObserver=new ResizeObserver(this.debouncedResize),this.wrapperResizeObserver.observe(this.wrapper)),this.contentResizeObserver=new ResizeObserver(this.debouncedResize),this.contentResizeObserver.observe(this.content)),this.resize()}destroy(){this.wrapperResizeObserver?.disconnect(),this.contentResizeObserver?.disconnect(),window.removeEventListener(\"resize\",this.debouncedResize,!1)}resize=()=>{this.onWrapperResize(),this.onContentResize()};onWrapperResize=()=>{this.wrapper===window?(this.width=window.innerWidth,this.height=window.innerHeight):(this.width=this.wrapper.clientWidth,this.height=this.wrapper.clientHeight)};onContentResize=()=>{this.wrapper===window?(this.scrollHeight=this.content.scrollHeight,this.scrollWidth=this.content.scrollWidth):(this.scrollHeight=this.wrapper.scrollHeight,this.scrollWidth=this.wrapper.scrollWidth)};get limit(){return{x:this.scrollWidth-this.width,y:this.scrollHeight-this.height}}}class Emitter{constructor(){this.events={}}emit(e,...i){let s=this.events[e]||[];for(let e=0,o=s.length;e<o;e++)s[e](...i)}on(e,i){return this.events[e]?.push(i)||(this.events[e]=[i]),()=>{this.events[e]=this.events[e]?.filter((e=>i!==e))}}off(e,i){this.events[e]=this.events[e]?.filter((e=>i!==e))}destroy(){this.events={}}}const e=100/6;class VirtualScroll{constructor(e,{wheelMultiplier:i=1,touchMultiplier:s=1}){this.element=e,this.wheelMultiplier=i,this.touchMultiplier=s,this.touchStart={x:null,y:null},this.emitter=new Emitter,window.addEventListener(\"resize\",this.onWindowResize,!1),this.onWindowResize(),this.element.addEventListener(\"wheel\",this.onWheel,{passive:!1}),this.element.addEventListener(\"touchstart\",this.onTouchStart,{passive:!1}),this.element.addEventListener(\"touchmove\",this.onTouchMove,{passive:!1}),this.element.addEventListener(\"touchend\",this.onTouchEnd,{passive:!1})}on(e,i){return this.emitter.on(e,i)}destroy(){this.emitter.destroy(),window.removeEventListener(\"resize\",this.onWindowResize,!1),this.element.removeEventListener(\"wheel\",this.onWheel,{passive:!1}),this.element.removeEventListener(\"touchstart\",this.onTouchStart,{passive:!1}),this.element.removeEventListener(\"touchmove\",this.onTouchMove,{passive:!1}),this.element.removeEventListener(\"touchend\",this.onTouchEnd,{passive:!1})}onTouchStart=e=>{const{clientX:i,clientY:s}=e.targetTouches?e.targetTouches[0]:e;this.touchStart.x=i,this.touchStart.y=s,this.lastDelta={x:0,y:0},this.emitter.emit(\"scroll\",{deltaX:0,deltaY:0,event:e})};onTouchMove=e=>{const{clientX:i,clientY:s}=e.targetTouches?e.targetTouches[0]:e,o=-(i-this.touchStart.x)*this.touchMultiplier,n=-(s-this.touchStart.y)*this.touchMultiplier;this.touchStart.x=i,this.touchStart.y=s,this.lastDelta={x:o,y:n},this.emitter.emit(\"scroll\",{deltaX:o,deltaY:n,event:e})};onTouchEnd=e=>{this.emitter.emit(\"scroll\",{deltaX:this.lastDelta.x,deltaY:this.lastDelta.y,event:e})};onWheel=i=>{let{deltaX:s,deltaY:o,deltaMode:n}=i;s*=1===n?e:2===n?this.windowWidth:1,o*=1===n?e:2===n?this.windowHeight:1,s*=this.wheelMultiplier,o*=this.wheelMultiplier,this.emitter.emit(\"scroll\",{deltaX:s,deltaY:o,event:i})};onWindowResize=()=>{this.windowWidth=window.innerWidth,this.windowHeight=window.innerHeight}}class Lenis{constructor({wrapper:e=window,content:i=document.documentElement,wheelEventsTarget:s=e,eventsTarget:o=s,smoothWheel:n=!0,syncTouch:r=!1,syncTouchLerp:l=.075,touchInertiaMultiplier:h=35,duration:a,easing:c=(e=>Math.min(1,1.001-Math.pow(2,-10*e))),lerp:d=!a&&.1,infinite:p=!1,orientation:u=\"vertical\",gestureOrientation:m=\"vertical\",touchMultiplier:v=1,wheelMultiplier:g=1,autoResize:S=!0,__experimental__naiveDimensions:w=!1}={}){this.__isSmooth=!1,this.__isScrolling=!1,this.__isStopped=!1,this.__isLocked=!1,this.onVirtualScroll=({deltaX:e,deltaY:i,event:s})=>{if(s.ctrlKey)return;const o=s.type.includes(\"touch\"),n=s.type.includes(\"wheel\");if(this.options.syncTouch&&o&&\"touchstart\"===s.type&&!this.isStopped&&!this.isLocked)return void this.reset();const r=0===e&&0===i,l=\"vertical\"===this.options.gestureOrientation&&0===i||\"horizontal\"===this.options.gestureOrientation&&0===e;if(r||l)return;let h=s.composedPath();if(h=h.slice(0,h.indexOf(this.rootElement)),h.find((e=>{var i,s,r,l,h;return(null===(i=e.hasAttribute)||void 0===i?void 0:i.call(e,\"data-lenis-prevent\"))||o&&(null===(s=e.hasAttribute)||void 0===s?void 0:s.call(e,\"data-lenis-prevent-touch\"))||n&&(null===(r=e.hasAttribute)||void 0===r?void 0:r.call(e,\"data-lenis-prevent-wheel\"))||(null===(l=e.classList)||void 0===l?void 0:l.contains(\"lenis\"))&&!(null===(h=e.classList)||void 0===h?void 0:h.contains(\"lenis-stopped\"))})))return;if(this.isStopped||this.isLocked)return void s.preventDefault();if(this.isSmooth=this.options.syncTouch&&o||this.options.smoothWheel&&n,!this.isSmooth)return this.isScrolling=!1,void this.animate.stop();s.preventDefault();let a=i;\"both\"===this.options.gestureOrientation?a=Math.abs(i)>Math.abs(e)?i:e:\"horizontal\"===this.options.gestureOrientation&&(a=e);const c=o&&this.options.syncTouch,d=o&&\"touchend\"===s.type&&Math.abs(a)>5;d&&(a=this.velocity*this.options.touchInertiaMultiplier),this.scrollTo(this.targetScroll+a,Object.assign({programmatic:!1},c?{lerp:d?this.options.syncTouchLerp:1}:{lerp:this.options.lerp,duration:this.options.duration,easing:this.options.easing}))},this.onNativeScroll=()=>{if(!this.__preventNextScrollEvent&&!this.isScrolling){const e=this.animatedScroll;this.animatedScroll=this.targetScroll=this.actualScroll,this.velocity=0,this.direction=Math.sign(this.animatedScroll-e),this.emit()}},window.lenisVersion=\"1.0.42\",e!==document.documentElement&&e!==document.body||(e=window),this.options={wrapper:e,content:i,wheelEventsTarget:s,eventsTarget:o,smoothWheel:n,syncTouch:r,syncTouchLerp:l,touchInertiaMultiplier:h,duration:a,easing:c,lerp:d,infinite:p,gestureOrientation:m,orientation:u,touchMultiplier:v,wheelMultiplier:g,autoResize:S,__experimental__naiveDimensions:w},this.animate=new Animate,this.emitter=new Emitter,this.dimensions=new Dimensions({wrapper:e,content:i,autoResize:S}),this.toggleClassName(\"lenis\",!0),this.velocity=0,this.isLocked=!1,this.isStopped=!1,this.isSmooth=r||n,this.isScrolling=!1,this.targetScroll=this.animatedScroll=this.actualScroll,this.options.wrapper.addEventListener(\"scroll\",this.onNativeScroll,!1),this.virtualScroll=new VirtualScroll(o,{touchMultiplier:v,wheelMultiplier:g}),this.virtualScroll.on(\"scroll\",this.onVirtualScroll)}destroy(){this.emitter.destroy(),this.options.wrapper.removeEventListener(\"scroll\",this.onNativeScroll,!1),this.virtualScroll.destroy(),this.dimensions.destroy(),this.toggleClassName(\"lenis\",!1),this.toggleClassName(\"lenis-smooth\",!1),this.toggleClassName(\"lenis-scrolling\",!1),this.toggleClassName(\"lenis-stopped\",!1),this.toggleClassName(\"lenis-locked\",!1)}on(e,i){return this.emitter.on(e,i)}off(e,i){return this.emitter.off(e,i)}setScroll(e){this.isHorizontal?this.rootElement.scrollLeft=e:this.rootElement.scrollTop=e}resize(){this.dimensions.resize()}emit(){this.emitter.emit(\"scroll\",this)}reset(){this.isLocked=!1,this.isScrolling=!1,this.animatedScroll=this.targetScroll=this.actualScroll,this.velocity=0,this.animate.stop()}start(){this.isStopped&&(this.isStopped=!1,this.reset())}stop(){this.isStopped||(this.isStopped=!0,this.animate.stop(),this.reset())}raf(e){const i=e-(this.time||e);this.time=e,this.animate.advance(.001*i)}scrollTo(e,{offset:i=0,immediate:s=!1,lock:o=!1,duration:n=this.options.duration,easing:r=this.options.easing,lerp:l=!n&&this.options.lerp,onComplete:h,force:a=!1,programmatic:c=!0}={}){if(!this.isStopped&&!this.isLocked||a){if([\"top\",\"left\",\"start\"].includes(e))e=0;else if([\"bottom\",\"right\",\"end\"].includes(e))e=this.limit;else{let s;if(\"string\"==typeof e?s=document.querySelector(e):(null==e?void 0:e.nodeType)&&(s=e),s){if(this.options.wrapper!==window){const e=this.options.wrapper.getBoundingClientRect();i-=this.isHorizontal?e.left:e.top}const o=s.getBoundingClientRect();e=(this.isHorizontal?o.left:o.top)+this.animatedScroll}}if(\"number\"==typeof e){if(e+=i,e=Math.round(e),this.options.infinite?c&&(this.targetScroll=this.animatedScroll=this.scroll):e=t(0,e,this.limit),s)return this.animatedScroll=this.targetScroll=e,this.setScroll(this.scroll),this.reset(),void(null==h||h(this));if(!c){if(e===this.targetScroll)return;this.targetScroll=e}this.animate.fromTo(this.animatedScroll,e,{duration:n,easing:r,lerp:l,onStart:()=>{o&&(this.isLocked=!0),this.isScrolling=!0},onUpdate:(e,i)=>{this.isScrolling=!0,this.velocity=e-this.animatedScroll,this.direction=Math.sign(this.velocity),this.animatedScroll=e,this.setScroll(this.scroll),c&&(this.targetScroll=e),i||this.emit(),i&&(this.reset(),this.emit(),null==h||h(this),this.__preventNextScrollEvent=!0,requestAnimationFrame((()=>{delete this.__preventNextScrollEvent})))}})}}}get rootElement(){return this.options.wrapper===window?document.documentElement:this.options.wrapper}get limit(){return this.options.__experimental__naiveDimensions?this.isHorizontal?this.rootElement.scrollWidth-this.rootElement.clientWidth:this.rootElement.scrollHeight-this.rootElement.clientHeight:this.dimensions.limit[this.isHorizontal?\"x\":\"y\"]}get isHorizontal(){return\"horizontal\"===this.options.orientation}get actualScroll(){return this.isHorizontal?this.rootElement.scrollLeft:this.rootElement.scrollTop}get scroll(){return this.options.infinite?(e=this.animatedScroll,i=this.limit,(e%i+i)%i):this.animatedScroll;var e,i}get progress(){return 0===this.limit?1:this.scroll/this.limit}get isSmooth(){return this.__isSmooth}set isSmooth(e){this.__isSmooth!==e&&(this.__isSmooth=e,this.toggleClassName(\"lenis-smooth\",e))}get isScrolling(){return this.__isScrolling}set isScrolling(e){this.__isScrolling!==e&&(this.__isScrolling=e,this.toggleClassName(\"lenis-scrolling\",e))}get isStopped(){return this.__isStopped}set isStopped(e){this.__isStopped!==e&&(this.__isStopped=e,this.toggleClassName(\"lenis-stopped\",e))}get isLocked(){return this.__isLocked}set isLocked(e){this.__isLocked!==e&&(this.__isLocked=e,this.toggleClassName(\"lenis-locked\",e))}get className(){let e=\"lenis\";return this.isStopped&&(e+=\" lenis-stopped\"),this.isLocked&&(e+=\" lenis-locked\"),this.isScrolling&&(e+=\" lenis-scrolling\"),this.isSmooth&&(e+=\" lenis-smooth\"),e}toggleClassName(e,i){this.rootElement.classList.toggle(e,i),this.emitter.emit(\"className change\",this)}}export{Lenis as default};\n//# sourceMappingURL=lenis.mjs.map\n","import{jsx as _jsx}from\"react/jsx-runtime\";import{useEffect}from\"react\";import{addPropertyControls,ControlType}from\"framer\";import Lenis from\"@studio-freight/lenis\";/**\n * @framerDisableUnlink\n */export default function SmoothScroll({intensity}){useEffect(()=>{const lenis=new Lenis({duration:intensity/10,smooth:true});function raf(time){lenis.raf(time);requestAnimationFrame(raf);}requestAnimationFrame(raf);return()=>{lenis.destroy();};},[intensity]);return /*#__PURE__*/_jsx(\"div\",{style:{display:\"none\"}})// Hidden div\n;}SmoothScroll.defaultProps={intensity:10};addPropertyControls(SmoothScroll,{intensity:{type:ControlType.Number,title:\"Intensity\",min:1,max:100,defaultValue:10,description:\"More components at [Embark Studio](https://embarkstudio.io)\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"SmoothScroll\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerDisableUnlink\":\"\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./SmoothScroll.map","// Generated by Framer (677c5d1)\nimport{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,ControlType,cx,Floating,getFonts,ResolveLinks,SmartComponentScopedContainer,useActiveVariantCallback,useComponentViewport,useLocaleInfo,useOverlayState,useRouter,useVariantState,withCSS,withFX}from\"framer\";import{AnimatePresence,LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import MenuItem from\"https://framerusercontent.com/modules/eNpn7EnkVGLbMTAgxgeN/OuOhkTRUz7xK3VNnnzt0/Z5aW2k3RB.js\";const MenuItemFonts=getFonts(MenuItem);const MotionDivWithFX=withFX(motion.div);const serializationHash=\"framer-lZWhJ\";const variantClassNames={cnhfk3ANw:\"framer-v-e7a760\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={damping:60,delay:0,mass:1,stiffness:500,type:\"spring\"};const transition2={damping:30,delay:0,mass:1,stiffness:400,type:\"spring\"};const animation={opacity:0,rotate:0,rotateX:0,rotateY:0,scale:.95,skewX:0,skewY:0,transition:transition2,x:0,y:0};const animation1={opacity:1,rotate:0,rotateX:0,rotateY:0,scale:1,skewX:0,skewY:0,transition:transition2,x:0,y:0};const animation2={opacity:0,rotate:0,rotateX:0,rotateY:0,scale:.95,skewX:0,skewY:0,x:0,y:0};const Overlay=({children,blockDocumentScrolling,enabled=true})=>{const[visible,setVisible]=useOverlayState({blockDocumentScrolling});return children({hide:()=>setVisible(false),show:()=>setVisible(true),toggle:()=>setVisible(!visible),visible:enabled&&visible});};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const humanReadableEnumMap={\"Space Around\":\"space-around\",\"Space Between\":\"space-between\",\"Space Evenly\":\"space-evenly\",Center:\"center\",End:\"flex-end\",Start:\"flex-start\"};const getProps=({align,bGBlur,dropdownBG,height,id,textColor,width,...props})=>{return{...props,ILT7xcLmk:dropdownBG??props.ILT7xcLmk??\"var(--token-2b0e18bf-9e9a-4016-bdfc-5769700a5529, rgb(255, 255, 255))\",odLrH8wIa:textColor??props.odLrH8wIa??\"var(--token-de5448c6-98bb-4403-96cd-7fe86bf2daa6, rgb(9, 9, 11))\",XWxsdOvDJ:bGBlur??props.XWxsdOvDJ??5,ZmT46usVX:humanReadableEnumMap[align]??align??props.ZmT46usVX??\"flex-start\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,ZmT46usVX,odLrH8wIa,ILT7xcLmk,XWxsdOvDJ,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({defaultVariant:\"cnhfk3ANw\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const{activeVariantCallback,delay}=useActiveVariantCallback(baseVariant);const PnQ813Qxgtxyyif=({overlay,loadMore})=>activeVariantCallback(async(...args)=>{overlay.show();});const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);const router=useRouter();const ref1=React.useRef(null);const ref2=React.useRef(null);return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsxs(motion.div,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-e7a760\",className,classNames),\"data-framer-name\":\"Menu\",layoutDependency:layoutDependency,layoutId:\"cnhfk3ANw\",ref:refBinding,style:{\"--hkf6fz\":ZmT46usVX,...style},children:[/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{webPageId:\"augiA20Il\"},implicitPathVariables:undefined}],children:resolvedLinks=>/*#__PURE__*/_jsx(ComponentViewportProvider,{height:36,y:(componentViewport?.y||0)+(0+((componentViewport?.height||36)-0-36)/2),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-5xt7dg-container\",isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"O0yg5l6AC-container\",nodeId:\"O0yg5l6AC\",rendersWithMotion:true,scopeId:\"rYuoi4sXX\",children:/*#__PURE__*/_jsx(MenuItem,{bxYeoQnmJ:\"var(--token-2b0e18bf-9e9a-4016-bdfc-5769700a5529, rgb(255, 255, 255))\",CKLn4URch:{borderColor:'var(--token-31213cc7-db87-4df4-8209-e72c8adb68fb, rgb(228, 228, 231)) /* {\"name\":\"Gray 200 [Dynamic]\"} */',borderStyle:\"solid\",borderWidth:1},dqMpST25y:10,height:\"100%\",i8hVK17KP:\"rgba(113, 113, 122, 0.08)\",id:\"O0yg5l6AC\",kf3NktHXk:\"Badge\",ku0K5iab7:\"Home\",layoutId:\"O0yg5l6AC\",qfg9TUc_S:false,stziIHmv7:\"rgba(113, 113, 122, 0)\",T3ktnO2nz:false,variant:\"icuU8oJ0t\",VdwkoqfEz:\"var(--token-de5448c6-98bb-4403-96cd-7fe86bf2daa6, rgb(9, 9, 11))\",wGRcFK04x:odLrH8wIa,width:\"100%\",ycFa86gVJ:\"center\",ZpWw94nXT:resolvedLinks[0]})})})}),/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{hash:\":A_4it90os\",webPageId:\"augiA20Il\"},implicitPathVariables:undefined}],children:resolvedLinks1=>/*#__PURE__*/_jsx(ComponentViewportProvider,{height:36,y:(componentViewport?.y||0)+(0+((componentViewport?.height||36)-0-36)/2),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-cikegg-container\",isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"CWuyIdUzv-container\",nodeId:\"CWuyIdUzv\",rendersWithMotion:true,scopeId:\"rYuoi4sXX\",children:/*#__PURE__*/_jsx(MenuItem,{bxYeoQnmJ:\"var(--token-2b0e18bf-9e9a-4016-bdfc-5769700a5529, rgb(255, 255, 255))\",CKLn4URch:{borderColor:'var(--token-31213cc7-db87-4df4-8209-e72c8adb68fb, rgb(228, 228, 231)) /* {\"name\":\"Gray 200 [Dynamic]\"} */',borderStyle:\"solid\",borderWidth:1},dqMpST25y:10,height:\"100%\",i8hVK17KP:\"rgba(113, 113, 122, 0.08)\",id:\"CWuyIdUzv\",kf3NktHXk:\"Badge\",ku0K5iab7:\"Platform\",layoutId:\"CWuyIdUzv\",qfg9TUc_S:false,stziIHmv7:\"rgba(113, 113, 122, 0)\",T3ktnO2nz:false,variant:\"icuU8oJ0t\",VdwkoqfEz:\"var(--token-de5448c6-98bb-4403-96cd-7fe86bf2daa6, rgb(9, 9, 11))\",wGRcFK04x:odLrH8wIa,width:\"100%\",ycFa86gVJ:\"center\",ZpWw94nXT:resolvedLinks1[0]})})})}),/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{hash:\":ZZ5d1fWGy\",webPageId:\"augiA20Il\"},implicitPathVariables:undefined}],children:resolvedLinks2=>/*#__PURE__*/_jsx(ComponentViewportProvider,{height:36,y:(componentViewport?.y||0)+(0+((componentViewport?.height||36)-0-36)/2),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1peyz6b-container\",isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"MtUzPwNLR-container\",nodeId:\"MtUzPwNLR\",rendersWithMotion:true,scopeId:\"rYuoi4sXX\",children:/*#__PURE__*/_jsx(MenuItem,{bxYeoQnmJ:\"var(--token-2b0e18bf-9e9a-4016-bdfc-5769700a5529, rgb(255, 255, 255))\",CKLn4URch:{borderColor:'var(--token-31213cc7-db87-4df4-8209-e72c8adb68fb, rgb(228, 228, 231)) /* {\"name\":\"Gray 200 [Dynamic]\"} */',borderStyle:\"solid\",borderWidth:1},dqMpST25y:10,height:\"100%\",i8hVK17KP:\"rgba(113, 113, 122, 0.08)\",id:\"MtUzPwNLR\",kf3NktHXk:\"Badge\",ku0K5iab7:\"Benefits\",layoutId:\"MtUzPwNLR\",qfg9TUc_S:false,stziIHmv7:\"rgba(113, 113, 122, 0)\",T3ktnO2nz:false,variant:\"icuU8oJ0t\",VdwkoqfEz:\"var(--token-de5448c6-98bb-4403-96cd-7fe86bf2daa6, rgb(9, 9, 11))\",wGRcFK04x:odLrH8wIa,width:\"100%\",ycFa86gVJ:\"center\",ZpWw94nXT:resolvedLinks2[0]})})})}),/*#__PURE__*/_jsx(Overlay,{blockDocumentScrolling:false,children:overlay=>/*#__PURE__*/_jsx(_Fragment,{children:/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{webPageId:\"augiA20Il\"},implicitPathVariables:undefined}],children:resolvedLinks3=>/*#__PURE__*/_jsx(ComponentViewportProvider,{height:36,y:(componentViewport?.y||0)+(0+((componentViewport?.height||36)-0-36)/2),children:/*#__PURE__*/_jsxs(SmartComponentScopedContainer,{className:\"framer-q5te1q-container\",id:`${layoutId}-q5te1q`,isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"QgpBxpFUo-container\",nodeId:\"QgpBxpFUo\",ref:ref1,rendersWithMotion:true,scopeId:\"rYuoi4sXX\",children:[/*#__PURE__*/_jsx(MenuItem,{bxYeoQnmJ:\"var(--token-2b0e18bf-9e9a-4016-bdfc-5769700a5529, rgb(255, 255, 255))\",CKLn4URch:{borderColor:'var(--token-31213cc7-db87-4df4-8209-e72c8adb68fb, rgb(228, 228, 231)) /* {\"name\":\"Gray 200 [Dynamic]\"} */',borderStyle:\"solid\",borderWidth:1},dqMpST25y:10,height:\"100%\",i8hVK17KP:\"rgba(113, 113, 122, 0.08)\",id:\"QgpBxpFUo\",kf3NktHXk:\"Badge\",ku0K5iab7:\"Products\",layoutId:\"QgpBxpFUo\",PnQ813Qxg:PnQ813Qxgtxyyif({overlay}),qfg9TUc_S:false,stziIHmv7:\"rgba(113, 113, 122, 0)\",T3ktnO2nz:false,variant:overlay.visible?\"LQXjyoW02\":\"HhwQ1hV0t\",VdwkoqfEz:\"var(--token-de5448c6-98bb-4403-96cd-7fe86bf2daa6, rgb(9, 9, 11))\",wGRcFK04x:odLrH8wIa,width:\"100%\",ycFa86gVJ:\"center\",ZpWw94nXT:resolvedLinks3[0]}),/*#__PURE__*/_jsx(AnimatePresence,{children:overlay.visible&&/*#__PURE__*/_jsx(Floating,{alignment:\"center\",anchorRef:ref1,className:cx(scopingClassNames,classNames),collisionDetection:true,collisionDetectionPadding:20,\"data-framer-portal-id\":`${layoutId}-q5te1q`,offsetX:0,offsetY:10,onDismiss:overlay.hide,placement:\"bottom\",safeArea:true,zIndex:11,children:/*#__PURE__*/_jsx(MotionDivWithFX,{__perspectiveFX:false,__smartComponentFX:true,__targetOpacity:1,animate:animation1,className:\"framer-vosepj\",\"data-border\":true,exit:animation,initial:animation2,layoutDependency:layoutDependency,layoutId:\"tN5u2DvAb\",ref:ref2,role:\"dialog\",style:{\"--border-bottom-width\":\"1px\",\"--border-color\":\"rgba(113, 113, 122, 0.2)\",\"--border-left-width\":\"1px\",\"--border-right-width\":\"1px\",\"--border-style\":\"solid\",\"--border-top-width\":\"1px\",backdropFilter:`blur(${XWxsdOvDJ}px)`,backgroundColor:ILT7xcLmk,borderBottomLeftRadius:10,borderBottomRightRadius:10,borderTopLeftRadius:10,borderTopRightRadius:10,boxShadow:\"0px 0.3010936508871964px 0.18065619053231788px -1.5px rgba(0, 0, 0, 0.04259), 0px 1.1442666516217286px 0.6865599909730372px -3px rgba(0, 0, 0, 0.03585), 0px 5px 3.0000000000000004px -4.5px rgba(0, 0, 0, 0.005), 0px 0.6021873017743928px 1.5656869846134214px -1px rgba(0, 0, 0, 0.0588), 0px 2.288533303243457px 5.950186588432988px -2px rgba(0, 0, 0, 0.05542), 0px 10px 26px -3px rgba(0, 0, 0, 0.04)\"},children:/*#__PURE__*/_jsx(motion.div,{className:\"framer-d9y1a3\",layoutDependency:layoutDependency,layoutId:\"OyhNyQQ55\",children:/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1b47w27\",layoutDependency:layoutDependency,layoutId:\"vBP5Y80fZ\",children:[/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{webPageId:\"H16J5YuUC\"},implicitPathVariables:undefined}],children:resolvedLinks4=>/*#__PURE__*/_jsx(ComponentViewportProvider,{width:\"170px\",children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1fgi5yc-container\",inComponentSlot:true,isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"SYhH3VyUS-container\",nodeId:\"SYhH3VyUS\",rendersWithMotion:true,scopeId:\"rYuoi4sXX\",children:/*#__PURE__*/_jsx(MenuItem,{bxYeoQnmJ:\"var(--token-2b0e18bf-9e9a-4016-bdfc-5769700a5529, rgb(255, 255, 255))\",CKLn4URch:{borderColor:'var(--token-31213cc7-db87-4df4-8209-e72c8adb68fb, rgb(228, 228, 231)) /* {\"name\":\"Gray 200 [Dynamic]\"} */',borderStyle:\"solid\",borderWidth:1},dqMpST25y:10,height:\"100%\",i8hVK17KP:\"rgba(113, 113, 122, 0.1)\",id:\"SYhH3VyUS\",kf3NktHXk:\"Badge\",ku0K5iab7:\"Private Credit\",layoutId:\"SYhH3VyUS\",qfg9TUc_S:false,style:{width:\"100%\"},stziIHmv7:\"rgba(113, 113, 122, 0)\",T3ktnO2nz:false,variant:\"icuU8oJ0t\",VdwkoqfEz:\"var(--token-de5448c6-98bb-4403-96cd-7fe86bf2daa6, rgb(9, 9, 11))\",wGRcFK04x:\"var(--token-de5448c6-98bb-4403-96cd-7fe86bf2daa6, rgb(9, 9, 11))\",width:\"100%\",ycFa86gVJ:\"flex-start\",ZpWw94nXT:resolvedLinks4[0]})})})}),/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{webPageId:\"HUQWO8BWJ\"},implicitPathVariables:undefined}],children:resolvedLinks5=>/*#__PURE__*/_jsx(ComponentViewportProvider,{width:\"170px\",children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-y26jqa-container\",inComponentSlot:true,isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"TmVMmFh0n-container\",nodeId:\"TmVMmFh0n\",rendersWithMotion:true,scopeId:\"rYuoi4sXX\",children:/*#__PURE__*/_jsx(MenuItem,{bxYeoQnmJ:\"var(--token-2b0e18bf-9e9a-4016-bdfc-5769700a5529, rgb(255, 255, 255))\",CKLn4URch:{borderColor:'var(--token-31213cc7-db87-4df4-8209-e72c8adb68fb, rgb(228, 228, 231)) /* {\"name\":\"Gray 200 [Dynamic]\"} */',borderStyle:\"solid\",borderWidth:1},dqMpST25y:10,height:\"100%\",i8hVK17KP:\"rgba(113, 113, 122, 0.1)\",id:\"TmVMmFh0n\",kf3NktHXk:\"Badge\",ku0K5iab7:\"Private Equity\",layoutId:\"TmVMmFh0n\",qfg9TUc_S:false,style:{width:\"100%\"},stziIHmv7:\"rgba(113, 113, 122, 0)\",T3ktnO2nz:false,variant:\"icuU8oJ0t\",VdwkoqfEz:\"var(--token-de5448c6-98bb-4403-96cd-7fe86bf2daa6, rgb(9, 9, 11))\",wGRcFK04x:\"var(--token-de5448c6-98bb-4403-96cd-7fe86bf2daa6, rgb(9, 9, 11))\",width:\"100%\",ycFa86gVJ:\"flex-start\",ZpWw94nXT:resolvedLinks5[0]})})})})]})})})})})]})})})})})]})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-lZWhJ.framer-1vxannj, .framer-lZWhJ .framer-1vxannj { display: block; }\",\".framer-lZWhJ.framer-e7a760 { align-content: center; align-items: center; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 5px; height: min-content; justify-content: var(--hkf6fz); overflow: visible; padding: 0px 0px 0px 15px; position: relative; width: min-content; }\",\".framer-lZWhJ .framer-5xt7dg-container, .framer-lZWhJ .framer-cikegg-container, .framer-lZWhJ .framer-1peyz6b-container { flex: none; height: auto; position: relative; width: auto; }\",\".framer-lZWhJ .framer-q5te1q-container { cursor: pointer; flex: none; height: auto; position: relative; width: auto; }\",\".framer-lZWhJ .framer-vosepj { align-content: center; align-items: center; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: center; overflow: hidden; padding: 0px; position: relative; width: min-content; will-change: var(--framer-will-change-override, transform); }\",\".framer-lZWhJ .framer-d9y1a3 { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 15px; height: min-content; justify-content: flex-start; overflow: hidden; padding: 15px; position: relative; width: 200px; }\",\".framer-lZWhJ .framer-1b47w27 { align-content: flex-start; align-items: flex-start; display: flex; flex: 1 0 0px; flex-direction: column; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: flex-start; padding: 0px; position: relative; width: 1px; }\",\".framer-lZWhJ .framer-1fgi5yc-container, .framer-lZWhJ .framer-y26jqa-container { flex: none; height: auto; position: relative; width: 100%; }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-lZWhJ.framer-e7a760, .framer-lZWhJ .framer-vosepj, .framer-lZWhJ .framer-d9y1a3, .framer-lZWhJ .framer-1b47w27 { gap: 0px; } .framer-lZWhJ.framer-e7a760 > * { margin: 0px; margin-left: calc(5px / 2); margin-right: calc(5px / 2); } .framer-lZWhJ.framer-e7a760 > :first-child, .framer-lZWhJ .framer-vosepj > :first-child, .framer-lZWhJ .framer-d9y1a3 > :first-child { margin-left: 0px; } .framer-lZWhJ.framer-e7a760 > :last-child, .framer-lZWhJ .framer-vosepj > :last-child, .framer-lZWhJ .framer-d9y1a3 > :last-child { margin-right: 0px; } .framer-lZWhJ .framer-vosepj > * { margin: 0px; margin-left: calc(0px / 2); margin-right: calc(0px / 2); } .framer-lZWhJ .framer-d9y1a3 > * { margin: 0px; margin-left: calc(15px / 2); margin-right: calc(15px / 2); } .framer-lZWhJ .framer-1b47w27 > * { margin: 0px; margin-bottom: calc(0px / 2); margin-top: calc(0px / 2); } .framer-lZWhJ .framer-1b47w27 > :first-child { margin-top: 0px; } .framer-lZWhJ .framer-1b47w27 > :last-child { margin-bottom: 0px; } }\",'.framer-lZWhJ[data-border=\"true\"]::after, .framer-lZWhJ [data-border=\"true\"]::after { content: \"\"; border-width: var(--border-top-width, 0) var(--border-right-width, 0) var(--border-bottom-width, 0) var(--border-left-width, 0); border-color: var(--border-color, none); border-style: var(--border-style, none); width: 100%; height: 100%; position: absolute; box-sizing: border-box; left: 0; top: 0; border-radius: inherit; pointer-events: none; }'];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 36\n * @framerIntrinsicWidth 354\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"auto\",\"auto\"]}}}\n * @framerVariables {\"ZmT46usVX\":\"align\",\"odLrH8wIa\":\"textColor\",\"ILT7xcLmk\":\"dropdownBG\",\"XWxsdOvDJ\":\"bGBlur\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerComponentViewportWidth true\n */const FramerrYuoi4sXX=withCSS(Component,css,\"framer-lZWhJ\");export default FramerrYuoi4sXX;FramerrYuoi4sXX.displayName=\"Menu/Menu\";FramerrYuoi4sXX.defaultProps={height:36,width:354};addPropertyControls(FramerrYuoi4sXX,{ZmT46usVX:{defaultValue:\"flex-start\",options:[\"flex-start\",\"center\",\"flex-end\",\"space-between\",\"space-around\",\"space-evenly\"],optionTitles:[\"Start\",\"Center\",\"End\",\"Space Between\",\"Space Around\",\"Space Evenly\"],title:\"Align\",type:ControlType.Enum},odLrH8wIa:{defaultValue:'var(--token-de5448c6-98bb-4403-96cd-7fe86bf2daa6, rgb(9, 9, 11)) /* {\"name\":\"Gray 950 [Dynamic]\"} */',title:\"Text Color\",type:ControlType.Color},ILT7xcLmk:{defaultValue:'var(--token-2b0e18bf-9e9a-4016-bdfc-5769700a5529, rgb(255, 255, 255)) /* {\"name\":\"White [Dynamic]\"} */',title:\"Dropdown BG\",type:ControlType.Color},XWxsdOvDJ:{defaultValue:5,title:\"BG Blur\",type:ControlType.Number}});addFonts(FramerrYuoi4sXX,[{explicitInter:true,fonts:[]},...MenuItemFonts],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerrYuoi4sXX\",\"slots\":[],\"annotations\":{\"framerVariables\":\"{\\\"ZmT46usVX\\\":\\\"align\\\",\\\"odLrH8wIa\\\":\\\"textColor\\\",\\\"ILT7xcLmk\\\":\\\"dropdownBG\\\",\\\"XWxsdOvDJ\\\":\\\"bGBlur\\\"}\",\"framerIntrinsicHeight\":\"36\",\"framerContractVersion\":\"1\",\"framerComponentViewportWidth\":\"true\",\"framerIntrinsicWidth\":\"354\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]}}}\",\"framerDisplayContentsDiv\":\"false\",\"framerImmutableVariables\":\"true\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./rYuoi4sXX.map","// Generated by Framer (7e4cc89)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,ControlType,cx,getFonts,getPropertyControls,Link,RichText,SmartComponentScopedContainer,useActiveVariantCallback,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import{Icon as Phosphor}from\"https://framerusercontent.com/modules/tYScH7LTqUtz5KUaUAYP/p8dptk4UIND8hbFWz9V7/Phosphor.js\";const PhosphorFonts=getFonts(Phosphor);const PhosphorControls=getPropertyControls(Phosphor);const enabledGestures={BhvRrEr6r:{hover:true,pressed:true},Cx4alkkqC:{hover:true,pressed:true},cZWldx30Y:{hover:true},gHB_xeuli:{hover:true,pressed:true},NI0g2OoOQ:{hover:true,pressed:true},PJYHuN3z4:{hover:true},pvOF8_SCJ:{hover:true,pressed:true},qPOsH73_Z:{hover:true},S61wHixPH:{hover:true,pressed:true},sMUlp0NSI:{hover:true,pressed:true},Tr_WvNWvK:{hover:true,pressed:true},vxOkolOvI:{hover:true,pressed:true}};const cycleOrder=[\"Cx4alkkqC\",\"gHB_xeuli\",\"NI0g2OoOQ\",\"sMUlp0NSI\",\"pvOF8_SCJ\",\"vxOkolOvI\",\"Tr_WvNWvK\",\"S61wHixPH\",\"BhvRrEr6r\",\"PJYHuN3z4\",\"cZWldx30Y\",\"qPOsH73_Z\"];const serializationHash=\"framer-4xngV\";const variantClassNames={BhvRrEr6r:\"framer-v-19o0zm9\",Cx4alkkqC:\"framer-v-1cd9rok\",cZWldx30Y:\"framer-v-brb3ro\",gHB_xeuli:\"framer-v-1sly88q\",NI0g2OoOQ:\"framer-v-1onkcp1\",PJYHuN3z4:\"framer-v-1tkfzcp\",pvOF8_SCJ:\"framer-v-1pamhq2\",qPOsH73_Z:\"framer-v-1julap2\",S61wHixPH:\"framer-v-1myd3aw\",sMUlp0NSI:\"framer-v-1vc9w8z\",Tr_WvNWvK:\"framer-v-42hiyg\",vxOkolOvI:\"framer-v-ps6gz4\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const radiusForCorner=(value,cornerIndex)=>{if(typeof value===\"number\"&&Number.isFinite(value))return Math.max(0,value)+\"px\";if(typeof value!==\"string\"||typeof cornerIndex!==\"number\")return undefined;const segments=value.split(\" \");return segments[cornerIndex]||segments[cornerIndex-2]||segments[0];};const transition1={damping:60,delay:0,mass:1,stiffness:500,type:\"spring\"};const equals=(a,b)=>{return typeof a===\"string\"&&typeof b===\"string\"?a.toLowerCase()===b.toLowerCase():a===b;};const convertFromBoolean=(value,activeLocale)=>{if(value){return 10;}else{return 5;}};const toNumber=value=>{if(typeof value===\"number\"&&Number.isFinite(value))return value;if(typeof value!==\"string\")return 0;const parsedNumber=parseFloat(value);return typeof parsedNumber===\"number\"&&Number.isFinite(parsedNumber)?parsedNumber:0;};const convertFromBoolean1=(value,activeLocale)=>{if(value){return 9;}else{return 4;}};const convertFromBoolean2=(value,activeLocale)=>{if(value){return 8;}else{return 3;}};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const humanReadableVariantMap={\"Button [Default]\":\"Cx4alkkqC\",\"Button [Line]\":\"gHB_xeuli\",\"Button [sm Line]\":\"sMUlp0NSI\",\"Button [sm]\":\"NI0g2OoOQ\",\"Button [xs Line]\":\"vxOkolOvI\",\"Button [xs]\":\"pvOF8_SCJ\",\"Icon [Default]\":\"PJYHuN3z4\",\"Icon [sm]\":\"cZWldx30Y\",\"Icon [xs]\":\"qPOsH73_Z\",\"Link [Default]\":\"Tr_WvNWvK\",\"Link [sm]\":\"S61wHixPH\",\"Link [xs]\":\"BhvRrEr6r\"};const getProps=({border,buttonColor,buttonTextColor,height,iconAnimation,iconName,id,joinWaitlist,link,newTab,radius,showIcon,tap,width,...props})=>{return{...props,ApWhoO21o:border??props.ApWhoO21o??{borderColor:'var(--token-31213cc7-db87-4df4-8209-e72c8adb68fb, rgb(228, 228, 231)) /* {\"name\":\"Gray 200 [Dynamic]\"} */',borderStyle:\"solid\",borderWidth:1},ey7w8muFX:newTab??props.ey7w8muFX,G77f5Yx_v:joinWaitlist??props.G77f5Yx_v??\"Button Label\",HFfTjmBlq:buttonTextColor??props.HFfTjmBlq??\"var(--token-de5448c6-98bb-4403-96cd-7fe86bf2daa6, rgb(9, 9, 11))\",n9WP3fBIv:showIcon??props.n9WP3fBIv??true,nSQvgmbyz:tap??props.nSQvgmbyz,oV7zrnzuy:buttonColor??props.oV7zrnzuy??\"var(--token-2b0e18bf-9e9a-4016-bdfc-5769700a5529, rgb(255, 255, 255))\",SZQpZ3lk2:radius??props.SZQpZ3lk2??8,U1Kbkgydv:link??props.U1Kbkgydv,variant:humanReadableVariantMap[props.variant]??props.variant??\"Cx4alkkqC\",Vo_oxchYD:iconName??props.Vo_oxchYD??\"CaretRight\",WM2TpCryl:iconAnimation??props.WM2TpCryl};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,G77f5Yx_v,U1Kbkgydv,ey7w8muFX,oV7zrnzuy,HFfTjmBlq,n9WP3fBIv,Vo_oxchYD,ApWhoO21o,SZQpZ3lk2,WM2TpCryl,nSQvgmbyz,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"Cx4alkkqC\",enabledGestures,ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const{activeVariantCallback,delay}=useActiveVariantCallback(baseVariant);const onTap1pc7sz3=activeVariantCallback(async(...args)=>{setGestureState({isPressed:false});if(nSQvgmbyz){const res=await nSQvgmbyz(...args);if(res===false)return false;}});const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);const gap=toNumber(convertFromBoolean(equals(WM2TpCryl,true),activeLocale));const gap1=toNumber(convertFromBoolean1(equals(WM2TpCryl,true),activeLocale));const gap2=toNumber(convertFromBoolean(WM2TpCryl,activeLocale));const gap3=toNumber(convertFromBoolean1(WM2TpCryl,activeLocale));const gap4=toNumber(convertFromBoolean2(WM2TpCryl,activeLocale));const isDisplayed=()=>{if([\"PJYHuN3z4-hover\",\"cZWldx30Y-hover\",\"qPOsH73_Z-hover\"].includes(gestureVariant))return false;if([\"PJYHuN3z4\",\"cZWldx30Y\",\"qPOsH73_Z\"].includes(baseVariant))return false;return true;};return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsx(Link,{href:U1Kbkgydv,motionChild:true,nodeId:\"Cx4alkkqC\",openInNewTab:ey7w8muFX,scopeId:\"Sg7vW7sWP\",smoothScroll:true,children:/*#__PURE__*/_jsxs(motion.a,{...restProps,...gestureHandlers,className:`${cx(scopingClassNames,\"framer-1cd9rok\",className,classNames)} framer-1ky1o4n`,\"data-framer-name\":\"Button [Default]\",\"data-highlight\":true,layoutDependency:layoutDependency,layoutId:\"Cx4alkkqC\",onTap:onTap1pc7sz3,ref:refBinding,style:{\"--1vfcgch\":gap1,\"--2tdpnr\":gap3,\"--456cd3\":gap4,\"--border-bottom-width\":\"0px\",\"--border-color\":\"rgba(0, 0, 0, 0)\",\"--border-left-width\":\"0px\",\"--border-right-width\":\"0px\",\"--border-style\":\"solid\",\"--border-top-width\":\"0px\",\"--dofoan\":gap2,\"--rmohyg\":gap,backgroundColor:oV7zrnzuy,borderBottomLeftRadius:radiusForCorner(SZQpZ3lk2,3),borderBottomRightRadius:radiusForCorner(SZQpZ3lk2,2),borderTopLeftRadius:radiusForCorner(SZQpZ3lk2,0),borderTopRightRadius:radiusForCorner(SZQpZ3lk2,1),boxShadow:\"0px 0.7961918735236395px 0.7961918735236395px -0.9375px rgba(0, 98, 196, 0.51107), 0px 2.414506143104518px 2.414506143104518px -1.875px rgba(0, 98, 196, 0.48275), 0px 6.382653521484461px 6.382653521484461px -2.8125px rgba(0, 98, 196, 0.4133), 0px 20px 20px -3.75px rgba(0, 98, 196, 0.175)\",opacity:1,...style},variants:{\"BhvRrEr6r-hover\":{opacity:.6},\"BhvRrEr6r-pressed\":{opacity:.4},\"Cx4alkkqC-hover\":{\"--border-bottom-width\":\"0px\",\"--border-left-width\":\"0px\",\"--border-right-width\":\"0px\",\"--border-top-width\":\"0px\",opacity:.6},\"Cx4alkkqC-pressed\":{\"--border-bottom-width\":\"0px\",\"--border-left-width\":\"0px\",\"--border-right-width\":\"0px\",\"--border-top-width\":\"0px\",opacity:.4},\"cZWldx30Y-hover\":{opacity:.6},\"gHB_xeuli-hover\":{borderBottomLeftRadius:10,borderBottomRightRadius:10,borderTopLeftRadius:10,borderTopRightRadius:10,opacity:.6},\"gHB_xeuli-pressed\":{opacity:.4},\"NI0g2OoOQ-hover\":{opacity:.6},\"NI0g2OoOQ-pressed\":{opacity:.4},\"PJYHuN3z4-hover\":{opacity:.6},\"pvOF8_SCJ-hover\":{opacity:.6},\"pvOF8_SCJ-pressed\":{opacity:.6},\"qPOsH73_Z-hover\":{opacity:.6},\"S61wHixPH-hover\":{opacity:.6},\"S61wHixPH-pressed\":{opacity:.4},\"sMUlp0NSI-hover\":{opacity:.6},\"sMUlp0NSI-pressed\":{opacity:.4},\"Tr_WvNWvK-hover\":{opacity:.6},\"Tr_WvNWvK-pressed\":{opacity:.4},\"vxOkolOvI-hover\":{opacity:.6},\"vxOkolOvI-pressed\":{opacity:.6},BhvRrEr6r:{\"--border-bottom-width\":\"0px\",\"--border-left-width\":\"0px\",\"--border-right-width\":\"0px\",\"--border-top-width\":\"0px\",backgroundColor:\"rgba(0, 0, 0, 0)\",borderBottomLeftRadius:0,borderBottomRightRadius:0,borderTopLeftRadius:0,borderTopRightRadius:0,boxShadow:\"none\"},cZWldx30Y:{\"--border-bottom-width\":\"0px\",\"--border-left-width\":\"0px\",\"--border-right-width\":\"0px\",\"--border-top-width\":\"0px\"},gHB_xeuli:{\"--border-bottom-width\":(ApWhoO21o.borderBottomWidth??ApWhoO21o.borderWidth)+\"px\",\"--border-color\":ApWhoO21o.borderColor,\"--border-left-width\":(ApWhoO21o.borderLeftWidth??ApWhoO21o.borderWidth)+\"px\",\"--border-right-width\":(ApWhoO21o.borderRightWidth??ApWhoO21o.borderWidth)+\"px\",\"--border-style\":ApWhoO21o.borderStyle,\"--border-top-width\":(ApWhoO21o.borderTopWidth??ApWhoO21o.borderWidth)+\"px\"},NI0g2OoOQ:{\"--border-bottom-width\":\"0px\",\"--border-left-width\":\"0px\",\"--border-right-width\":\"0px\",\"--border-top-width\":\"0px\"},PJYHuN3z4:{\"--border-bottom-width\":\"0px\",\"--border-left-width\":\"0px\",\"--border-right-width\":\"0px\",\"--border-top-width\":\"0px\"},pvOF8_SCJ:{\"--border-bottom-width\":\"0px\",\"--border-left-width\":\"0px\",\"--border-right-width\":\"0px\",\"--border-top-width\":\"0px\"},qPOsH73_Z:{\"--border-bottom-width\":\"0px\",\"--border-left-width\":\"0px\",\"--border-right-width\":\"0px\",\"--border-top-width\":\"0px\"},S61wHixPH:{\"--border-bottom-width\":\"0px\",\"--border-left-width\":\"0px\",\"--border-right-width\":\"0px\",\"--border-top-width\":\"0px\",backgroundColor:\"rgba(0, 0, 0, 0)\",borderBottomLeftRadius:0,borderBottomRightRadius:0,borderTopLeftRadius:0,borderTopRightRadius:0,boxShadow:\"none\"},sMUlp0NSI:{\"--border-bottom-width\":(ApWhoO21o.borderBottomWidth??ApWhoO21o.borderWidth)+\"px\",\"--border-color\":ApWhoO21o.borderColor,\"--border-left-width\":(ApWhoO21o.borderLeftWidth??ApWhoO21o.borderWidth)+\"px\",\"--border-right-width\":(ApWhoO21o.borderRightWidth??ApWhoO21o.borderWidth)+\"px\",\"--border-style\":ApWhoO21o.borderStyle,\"--border-top-width\":(ApWhoO21o.borderTopWidth??ApWhoO21o.borderWidth)+\"px\"},Tr_WvNWvK:{\"--border-bottom-width\":\"0px\",\"--border-left-width\":\"0px\",\"--border-right-width\":\"0px\",\"--border-top-width\":\"0px\",backgroundColor:\"rgba(0, 0, 0, 0)\",borderBottomLeftRadius:0,borderBottomRightRadius:0,borderTopLeftRadius:0,borderTopRightRadius:0,boxShadow:\"none\"},vxOkolOvI:{\"--border-bottom-width\":(ApWhoO21o.borderBottomWidth??ApWhoO21o.borderWidth)+\"px\",\"--border-color\":ApWhoO21o.borderColor,\"--border-left-width\":(ApWhoO21o.borderLeftWidth??ApWhoO21o.borderWidth)+\"px\",\"--border-right-width\":(ApWhoO21o.borderRightWidth??ApWhoO21o.borderWidth)+\"px\",\"--border-style\":ApWhoO21o.borderStyle,\"--border-top-width\":(ApWhoO21o.borderTopWidth??ApWhoO21o.borderWidth)+\"px\"}},...addPropertyOverrides({\"BhvRrEr6r-hover\":{\"data-framer-name\":undefined},\"BhvRrEr6r-pressed\":{\"data-framer-name\":undefined},\"Cx4alkkqC-hover\":{\"data-framer-name\":undefined},\"Cx4alkkqC-pressed\":{\"data-framer-name\":undefined},\"cZWldx30Y-hover\":{\"data-framer-name\":undefined},\"gHB_xeuli-hover\":{\"data-framer-name\":undefined},\"gHB_xeuli-pressed\":{\"data-framer-name\":undefined},\"NI0g2OoOQ-hover\":{\"data-framer-name\":undefined},\"NI0g2OoOQ-pressed\":{\"data-framer-name\":undefined},\"PJYHuN3z4-hover\":{\"data-framer-name\":undefined},\"pvOF8_SCJ-hover\":{\"data-framer-name\":undefined},\"pvOF8_SCJ-pressed\":{\"data-framer-name\":undefined},\"qPOsH73_Z-hover\":{\"data-framer-name\":undefined},\"S61wHixPH-hover\":{\"data-framer-name\":undefined},\"S61wHixPH-pressed\":{\"data-framer-name\":undefined},\"sMUlp0NSI-hover\":{\"data-framer-name\":undefined},\"sMUlp0NSI-pressed\":{\"data-framer-name\":undefined},\"Tr_WvNWvK-hover\":{\"data-framer-name\":undefined},\"Tr_WvNWvK-pressed\":{\"data-framer-name\":undefined},\"vxOkolOvI-hover\":{\"data-framer-name\":undefined},\"vxOkolOvI-pressed\":{\"data-framer-name\":undefined},BhvRrEr6r:{\"data-framer-name\":\"Link [xs]\"},cZWldx30Y:{\"data-framer-name\":\"Icon [sm]\"},gHB_xeuli:{\"data-border\":true,\"data-framer-name\":\"Button [Line]\"},NI0g2OoOQ:{\"data-framer-name\":\"Button [sm]\"},PJYHuN3z4:{\"data-framer-name\":\"Icon [Default]\"},pvOF8_SCJ:{\"data-framer-name\":\"Button [xs]\"},qPOsH73_Z:{\"data-framer-name\":\"Icon [xs]\"},S61wHixPH:{\"data-framer-name\":\"Link [sm]\"},sMUlp0NSI:{\"data-border\":true,\"data-framer-name\":\"Button [sm Line]\"},Tr_WvNWvK:{\"data-framer-name\":\"Link [Default]\"},vxOkolOvI:{\"data-border\":true,\"data-framer-name\":\"Button [xs Line]\"}},baseVariant,gestureVariant),children:[isDisplayed()&&/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7SW50ZXIgVGlnaHQtNjAw\",\"--framer-font-family\":'\"Inter Tight\", \"Inter Tight Placeholder\", sans-serif',\"--framer-font-weight\":\"600\",\"--framer-letter-spacing\":\"0.03em\",\"--framer-line-height\":\"1.8em\",\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--variable-reference-HFfTjmBlq-Sg7vW7sWP))\"},children:\"Button Label\"})}),className:\"framer-oslbf\",\"data-highlight\":true,fonts:[\"GF;Inter Tight-600\"],layoutDependency:layoutDependency,layoutId:\"jbm4W1ZaG\",style:{\"--extracted-r6o4lv\":\"var(--variable-reference-HFfTjmBlq-Sg7vW7sWP)\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\",\"--variable-reference-HFfTjmBlq-Sg7vW7sWP\":HFfTjmBlq},text:G77f5Yx_v,verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({BhvRrEr6r:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7SW50ZXIgVGlnaHQtNTAw\",\"--framer-font-family\":'\"Inter Tight\", \"Inter Tight Placeholder\", sans-serif',\"--framer-font-size\":\"12px\",\"--framer-font-weight\":\"500\",\"--framer-letter-spacing\":\"0.04em\",\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--variable-reference-HFfTjmBlq-Sg7vW7sWP))\"},children:\"Button Label\"})}),fonts:[\"GF;Inter Tight-500\"]},NI0g2OoOQ:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7SW50ZXIgVGlnaHQtNjAw\",\"--framer-font-family\":'\"Inter Tight\", \"Inter Tight Placeholder\", sans-serif',\"--framer-font-size\":\"14px\",\"--framer-font-weight\":\"600\",\"--framer-letter-spacing\":\"0.03em\",\"--framer-line-height\":\"1.5em\",\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--variable-reference-HFfTjmBlq-Sg7vW7sWP))\"},children:\"Button Label\"})})},pvOF8_SCJ:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7SW50ZXIgVGlnaHQtNjAw\",\"--framer-font-family\":'\"Inter Tight\", \"Inter Tight Placeholder\", sans-serif',\"--framer-font-size\":\"12px\",\"--framer-font-weight\":\"600\",\"--framer-letter-spacing\":\"0.04em\",\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--variable-reference-HFfTjmBlq-Sg7vW7sWP))\"},children:\"Button Label\"})})},S61wHixPH:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7SW50ZXIgVGlnaHQtNTAw\",\"--framer-font-family\":'\"Inter Tight\", \"Inter Tight Placeholder\", sans-serif',\"--framer-font-size\":\"14px\",\"--framer-font-weight\":\"500\",\"--framer-letter-spacing\":\"0.03em\",\"--framer-line-height\":\"1.5em\",\"--framer-text-alignment\":\"left\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--variable-reference-HFfTjmBlq-Sg7vW7sWP))\"},children:\"Button Label\"})}),fonts:[\"GF;Inter Tight-500\"]},sMUlp0NSI:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7SW50ZXIgVGlnaHQtNjAw\",\"--framer-font-family\":'\"Inter Tight\", \"Inter Tight Placeholder\", sans-serif',\"--framer-font-size\":\"14px\",\"--framer-font-weight\":\"600\",\"--framer-letter-spacing\":\"0.03em\",\"--framer-line-height\":\"1.5em\",\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--variable-reference-HFfTjmBlq-Sg7vW7sWP))\"},children:\"Button Label\"})})},Tr_WvNWvK:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7SW50ZXIgVGlnaHQtNTAw\",\"--framer-font-family\":'\"Inter Tight\", \"Inter Tight Placeholder\", sans-serif',\"--framer-font-weight\":\"500\",\"--framer-letter-spacing\":\"0.03em\",\"--framer-line-height\":\"1.8em\",\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--variable-reference-HFfTjmBlq-Sg7vW7sWP))\"},children:\"Button Label\"})}),fonts:[\"GF;Inter Tight-500\"]},vxOkolOvI:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7SW50ZXIgVGlnaHQtNjAw\",\"--framer-font-family\":'\"Inter Tight\", \"Inter Tight Placeholder\", sans-serif',\"--framer-font-size\":\"12px\",\"--framer-font-weight\":\"600\",\"--framer-letter-spacing\":\"0.04em\",\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--variable-reference-HFfTjmBlq-Sg7vW7sWP))\"},children:\"Button Label\"})})}},baseVariant,gestureVariant)}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-8csz2y\",layoutDependency:layoutDependency,layoutId:\"jrEt0pWVz\",children:n9WP3fBIv&&/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1m3jd95-container\",isAuthoredByUser:true,isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"MkECRwbqA-container\",nodeId:\"MkECRwbqA\",rendersWithMotion:true,scopeId:\"Sg7vW7sWP\",children:/*#__PURE__*/_jsx(Phosphor,{color:HFfTjmBlq,height:\"100%\",iconSearch:\"House\",iconSelection:Vo_oxchYD,id:\"MkECRwbqA\",layoutId:\"MkECRwbqA\",mirrored:false,selectByList:true,style:{height:\"100%\",width:\"100%\"},weight:\"bold\",width:\"100%\"})})})})]})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-4xngV.framer-1ky1o4n, .framer-4xngV .framer-1ky1o4n { display: block; }\",\".framer-4xngV.framer-1cd9rok { align-content: center; align-items: center; cursor: pointer; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 5px; height: 50px; justify-content: center; overflow: visible; padding: 14px 26px 14px 35px; position: relative; text-decoration: none; width: min-content; }\",\".framer-4xngV .framer-oslbf { flex: none; height: auto; position: relative; white-space: pre; width: auto; }\",\".framer-4xngV .framer-8csz2y { align-content: center; align-items: center; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: min-content; }\",\".framer-4xngV .framer-1m3jd95-container { aspect-ratio: 1 / 1; flex: none; height: var(--framer-aspect-ratio-supported, 19px); position: relative; width: 16px; }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-4xngV.framer-1cd9rok, .framer-4xngV .framer-8csz2y { gap: 0px; } .framer-4xngV.framer-1cd9rok > * { margin: 0px; margin-left: calc(5px / 2); margin-right: calc(5px / 2); } .framer-4xngV.framer-1cd9rok > :first-child { margin-left: 0px; } .framer-4xngV.framer-1cd9rok > :last-child { margin-right: 0px; } .framer-4xngV .framer-8csz2y > * { margin: 0px; margin-bottom: calc(10px / 2); margin-top: calc(10px / 2); } .framer-4xngV .framer-8csz2y > :first-child { margin-top: 0px; } .framer-4xngV .framer-8csz2y > :last-child { margin-bottom: 0px; } }\",\".framer-4xngV.framer-v-1sly88q.framer-1cd9rok { padding: 14px 26px 14px 25px; }\",\".framer-4xngV.framer-v-1onkcp1.framer-1cd9rok { gap: 4px; height: 40px; padding: 9px 12px 9px 16px; }\",\".framer-4xngV.framer-v-1onkcp1 .framer-1m3jd95-container, .framer-4xngV.framer-v-1vc9w8z .framer-1m3jd95-container, .framer-4xngV.framer-v-1myd3aw .framer-1m3jd95-container { height: var(--framer-aspect-ratio-supported, 17px); width: 14px; }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-4xngV.framer-v-1onkcp1.framer-1cd9rok { gap: 0px; } .framer-4xngV.framer-v-1onkcp1.framer-1cd9rok > * { margin: 0px; margin-left: calc(4px / 2); margin-right: calc(4px / 2); } .framer-4xngV.framer-v-1onkcp1.framer-1cd9rok > :first-child { margin-left: 0px; } .framer-4xngV.framer-v-1onkcp1.framer-1cd9rok > :last-child { margin-right: 0px; } }\",\".framer-4xngV.framer-v-1vc9w8z.framer-1cd9rok { gap: 4px; height: 40px; padding: 10px 12px 10px 16px; }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-4xngV.framer-v-1vc9w8z.framer-1cd9rok { gap: 0px; } .framer-4xngV.framer-v-1vc9w8z.framer-1cd9rok > * { margin: 0px; margin-left: calc(4px / 2); margin-right: calc(4px / 2); } .framer-4xngV.framer-v-1vc9w8z.framer-1cd9rok > :first-child { margin-left: 0px; } .framer-4xngV.framer-v-1vc9w8z.framer-1cd9rok > :last-child { margin-right: 0px; } }\",\".framer-4xngV.framer-v-1pamhq2.framer-1cd9rok, .framer-4xngV.framer-v-ps6gz4.framer-1cd9rok { gap: 4px; height: 30px; padding: 5px 8px 5px 12px; }\",\".framer-4xngV.framer-v-1pamhq2 .framer-1m3jd95-container, .framer-4xngV.framer-v-ps6gz4 .framer-1m3jd95-container { height: var(--framer-aspect-ratio-supported, 15px); width: 12px; }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-4xngV.framer-v-1pamhq2.framer-1cd9rok { gap: 0px; } .framer-4xngV.framer-v-1pamhq2.framer-1cd9rok > * { margin: 0px; margin-left: calc(4px / 2); margin-right: calc(4px / 2); } .framer-4xngV.framer-v-1pamhq2.framer-1cd9rok > :first-child { margin-left: 0px; } .framer-4xngV.framer-v-1pamhq2.framer-1cd9rok > :last-child { margin-right: 0px; } }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-4xngV.framer-v-ps6gz4.framer-1cd9rok { gap: 0px; } .framer-4xngV.framer-v-ps6gz4.framer-1cd9rok > * { margin: 0px; margin-left: calc(4px / 2); margin-right: calc(4px / 2); } .framer-4xngV.framer-v-ps6gz4.framer-1cd9rok > :first-child { margin-left: 0px; } .framer-4xngV.framer-v-ps6gz4.framer-1cd9rok > :last-child { margin-right: 0px; } }\",\".framer-4xngV.framer-v-42hiyg.framer-1cd9rok { height: min-content; justify-content: flex-start; padding: 0px; }\",\".framer-4xngV.framer-v-1myd3aw.framer-1cd9rok { gap: 4px; height: min-content; justify-content: flex-start; padding: 0px; }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-4xngV.framer-v-1myd3aw.framer-1cd9rok { gap: 0px; } .framer-4xngV.framer-v-1myd3aw.framer-1cd9rok > * { margin: 0px; margin-left: calc(4px / 2); margin-right: calc(4px / 2); } .framer-4xngV.framer-v-1myd3aw.framer-1cd9rok > :first-child { margin-left: 0px; } .framer-4xngV.framer-v-1myd3aw.framer-1cd9rok > :last-child { margin-right: 0px; } }\",\".framer-4xngV.framer-v-19o0zm9.framer-1cd9rok { gap: 3px; height: min-content; justify-content: flex-start; padding: 0px; }\",\".framer-4xngV.framer-v-19o0zm9 .framer-1m3jd95-container { aspect-ratio: unset; height: 12px; width: 12px; }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-4xngV.framer-v-19o0zm9.framer-1cd9rok { gap: 0px; } .framer-4xngV.framer-v-19o0zm9.framer-1cd9rok > * { margin: 0px; margin-left: calc(3px / 2); margin-right: calc(3px / 2); } .framer-4xngV.framer-v-19o0zm9.framer-1cd9rok > :first-child { margin-left: 0px; } .framer-4xngV.framer-v-19o0zm9.framer-1cd9rok > :last-child { margin-right: 0px; } }\",\".framer-4xngV.framer-v-1tkfzcp.framer-1cd9rok { height: min-content; padding: 15px; }\",\".framer-4xngV.framer-v-1tkfzcp .framer-1m3jd95-container, .framer-4xngV.framer-v-brb3ro .framer-1m3jd95-container { aspect-ratio: unset; height: 22px; width: 22px; }\",\".framer-4xngV.framer-v-brb3ro.framer-1cd9rok { height: min-content; padding: 10px; }\",\".framer-4xngV.framer-v-1julap2.framer-1cd9rok { height: min-content; padding: 8px; }\",\".framer-4xngV.framer-v-1julap2 .framer-1m3jd95-container { aspect-ratio: unset; height: 18px; width: 18px; }\",\".framer-4xngV.framer-v-1cd9rok.hover.framer-1cd9rok, .framer-4xngV.framer-v-1sly88q.hover.framer-1cd9rok { gap: calc(max(0, var(--rmohyg)) * 1px); }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-4xngV.framer-v-1cd9rok.hover.framer-1cd9rok { gap: 0px; } .framer-4xngV.framer-v-1cd9rok.hover.framer-1cd9rok > * { margin: 0px; margin-left: calc(calc(max(0, var(--rmohyg)) * 1px) / 2); margin-right: calc(calc(max(0, var(--rmohyg)) * 1px) / 2); } .framer-4xngV.framer-v-1cd9rok.hover.framer-1cd9rok > :first-child { margin-left: 0px; } .framer-4xngV.framer-v-1cd9rok.hover.framer-1cd9rok > :last-child { margin-right: 0px; } }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-4xngV.framer-v-1sly88q.hover.framer-1cd9rok { gap: 0px; } .framer-4xngV.framer-v-1sly88q.hover.framer-1cd9rok > * { margin: 0px; margin-left: calc(calc(max(0, var(--rmohyg)) * 1px) / 2); margin-right: calc(calc(max(0, var(--rmohyg)) * 1px) / 2); } .framer-4xngV.framer-v-1sly88q.hover.framer-1cd9rok > :first-child { margin-left: 0px; } .framer-4xngV.framer-v-1sly88q.hover.framer-1cd9rok > :last-child { margin-right: 0px; } }\",\".framer-4xngV.framer-v-1onkcp1.hover.framer-1cd9rok, .framer-4xngV.framer-v-1vc9w8z.hover.framer-1cd9rok, .framer-4xngV.framer-v-1pamhq2.hover.framer-1cd9rok { gap: calc(max(0, var(--1vfcgch)) * 1px); }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-4xngV.framer-v-1onkcp1.hover.framer-1cd9rok { gap: 0px; } .framer-4xngV.framer-v-1onkcp1.hover.framer-1cd9rok > * { margin: 0px; margin-left: calc(calc(max(0, var(--1vfcgch)) * 1px) / 2); margin-right: calc(calc(max(0, var(--1vfcgch)) * 1px) / 2); } .framer-4xngV.framer-v-1onkcp1.hover.framer-1cd9rok > :first-child { margin-left: 0px; } .framer-4xngV.framer-v-1onkcp1.hover.framer-1cd9rok > :last-child { margin-right: 0px; } }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-4xngV.framer-v-1vc9w8z.hover.framer-1cd9rok { gap: 0px; } .framer-4xngV.framer-v-1vc9w8z.hover.framer-1cd9rok > * { margin: 0px; margin-left: calc(calc(max(0, var(--1vfcgch)) * 1px) / 2); margin-right: calc(calc(max(0, var(--1vfcgch)) * 1px) / 2); } .framer-4xngV.framer-v-1vc9w8z.hover.framer-1cd9rok > :first-child { margin-left: 0px; } .framer-4xngV.framer-v-1vc9w8z.hover.framer-1cd9rok > :last-child { margin-right: 0px; } }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-4xngV.framer-v-1pamhq2.hover.framer-1cd9rok { gap: 0px; } .framer-4xngV.framer-v-1pamhq2.hover.framer-1cd9rok > * { margin: 0px; margin-left: calc(calc(max(0, var(--1vfcgch)) * 1px) / 2); margin-right: calc(calc(max(0, var(--1vfcgch)) * 1px) / 2); } .framer-4xngV.framer-v-1pamhq2.hover.framer-1cd9rok > :first-child { margin-left: 0px; } .framer-4xngV.framer-v-1pamhq2.hover.framer-1cd9rok > :last-child { margin-right: 0px; } }\",\".framer-4xngV.framer-v-42hiyg.hover.framer-1cd9rok { gap: calc(max(0, var(--dofoan)) * 1px); }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-4xngV.framer-v-42hiyg.hover.framer-1cd9rok { gap: 0px; } .framer-4xngV.framer-v-42hiyg.hover.framer-1cd9rok > * { margin: 0px; margin-left: calc(calc(max(0, var(--dofoan)) * 1px) / 2); margin-right: calc(calc(max(0, var(--dofoan)) * 1px) / 2); } .framer-4xngV.framer-v-42hiyg.hover.framer-1cd9rok > :first-child { margin-left: 0px; } .framer-4xngV.framer-v-42hiyg.hover.framer-1cd9rok > :last-child { margin-right: 0px; } }\",\".framer-4xngV.framer-v-1myd3aw.hover.framer-1cd9rok { gap: calc(max(0, var(--2tdpnr)) * 1px); }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-4xngV.framer-v-1myd3aw.hover.framer-1cd9rok { gap: 0px; } .framer-4xngV.framer-v-1myd3aw.hover.framer-1cd9rok > * { margin: 0px; margin-left: calc(calc(max(0, var(--2tdpnr)) * 1px) / 2); margin-right: calc(calc(max(0, var(--2tdpnr)) * 1px) / 2); } .framer-4xngV.framer-v-1myd3aw.hover.framer-1cd9rok > :first-child { margin-left: 0px; } .framer-4xngV.framer-v-1myd3aw.hover.framer-1cd9rok > :last-child { margin-right: 0px; } }\",\".framer-4xngV.framer-v-1myd3aw.pressed .framer-1m3jd95-container { height: var(--framer-aspect-ratio-supported, 14px); }\",\".framer-4xngV.framer-v-19o0zm9.hover.framer-1cd9rok { gap: calc(max(0, var(--456cd3)) * 1px); }\",\".framer-4xngV.framer-v-19o0zm9.hover .framer-1m3jd95-container, .framer-4xngV.framer-v-19o0zm9.pressed .framer-1m3jd95-container, .framer-4xngV.framer-v-1tkfzcp.hover .framer-1m3jd95-container, .framer-4xngV.framer-v-brb3ro.hover .framer-1m3jd95-container, .framer-4xngV.framer-v-1julap2.hover .framer-1m3jd95-container { aspect-ratio: unset; }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-4xngV.framer-v-19o0zm9.hover.framer-1cd9rok { gap: 0px; } .framer-4xngV.framer-v-19o0zm9.hover.framer-1cd9rok > * { margin: 0px; margin-left: calc(calc(max(0, var(--456cd3)) * 1px) / 2); margin-right: calc(calc(max(0, var(--456cd3)) * 1px) / 2); } .framer-4xngV.framer-v-19o0zm9.hover.framer-1cd9rok > :first-child { margin-left: 0px; } .framer-4xngV.framer-v-19o0zm9.hover.framer-1cd9rok > :last-child { margin-right: 0px; } }\",'.framer-4xngV[data-border=\"true\"]::after, .framer-4xngV [data-border=\"true\"]::after { content: \"\"; border-width: var(--border-top-width, 0) var(--border-right-width, 0) var(--border-bottom-width, 0) var(--border-left-width, 0); border-color: var(--border-color, none); border-style: var(--border-style, none); width: 100%; height: 100%; position: absolute; box-sizing: border-box; left: 0; top: 0; border-radius: inherit; pointer-events: none; }'];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 50\n * @framerIntrinsicWidth 178.5\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"auto\",\"fixed\"]},\"gHB_xeuli\":{\"layout\":[\"auto\",\"fixed\"]},\"NI0g2OoOQ\":{\"layout\":[\"auto\",\"fixed\"]},\"sMUlp0NSI\":{\"layout\":[\"auto\",\"fixed\"]},\"pvOF8_SCJ\":{\"layout\":[\"auto\",\"fixed\"]},\"vxOkolOvI\":{\"layout\":[\"auto\",\"fixed\"]},\"Tr_WvNWvK\":{\"layout\":[\"auto\",\"auto\"]},\"S61wHixPH\":{\"layout\":[\"auto\",\"auto\"]},\"BhvRrEr6r\":{\"layout\":[\"auto\",\"auto\"]},\"PJYHuN3z4\":{\"layout\":[\"auto\",\"auto\"]},\"cZWldx30Y\":{\"layout\":[\"auto\",\"auto\"]},\"qPOsH73_Z\":{\"layout\":[\"auto\",\"auto\"]},\"MrIV8RRb7\":{\"layout\":[\"auto\",\"fixed\"]},\"LYva4tX6c\":{\"layout\":[\"auto\",\"fixed\"]},\"xiHIHvFRG\":{\"layout\":[\"auto\",\"fixed\"]},\"bVYWD5Vaj\":{\"layout\":[\"auto\",\"fixed\"]},\"k_cFoSVVZ\":{\"layout\":[\"auto\",\"fixed\"]},\"fg2oQdBQp\":{\"layout\":[\"auto\",\"fixed\"]},\"WwxZrd_fA\":{\"layout\":[\"auto\",\"fixed\"]},\"vCrOLgMJq\":{\"layout\":[\"auto\",\"fixed\"]},\"RhPW160c_\":{\"layout\":[\"auto\",\"fixed\"]},\"PE211fPnf\":{\"layout\":[\"auto\",\"fixed\"]},\"D1H52Ica2\":{\"layout\":[\"auto\",\"fixed\"]},\"YPDpFk05m\":{\"layout\":[\"auto\",\"fixed\"]},\"qMKUMAYfC\":{\"layout\":[\"auto\",\"auto\"]},\"EYEql3erz\":{\"layout\":[\"auto\",\"auto\"]},\"xssmvjCjS\":{\"layout\":[\"auto\",\"auto\"]},\"VCr0VQuC4\":{\"layout\":[\"auto\",\"auto\"]},\"nAlpR9WQ3\":{\"layout\":[\"auto\",\"auto\"]},\"DpVAIpM1V\":{\"layout\":[\"auto\",\"auto\"]},\"zN52IErZq\":{\"layout\":[\"auto\",\"auto\"]},\"fImdFkBEf\":{\"layout\":[\"auto\",\"auto\"]},\"Uc1GArDys\":{\"layout\":[\"auto\",\"auto\"]}}}\n * @framerVariables {\"G77f5Yx_v\":\"joinWaitlist\",\"U1Kbkgydv\":\"link\",\"ey7w8muFX\":\"newTab\",\"oV7zrnzuy\":\"buttonColor\",\"HFfTjmBlq\":\"buttonTextColor\",\"n9WP3fBIv\":\"showIcon\",\"Vo_oxchYD\":\"iconName\",\"ApWhoO21o\":\"border\",\"SZQpZ3lk2\":\"radius\",\"WM2TpCryl\":\"iconAnimation\",\"nSQvgmbyz\":\"tap\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerComponentViewportWidth true\n */const FramerSg7vW7sWP=withCSS(Component,css,\"framer-4xngV\");export default FramerSg7vW7sWP;FramerSg7vW7sWP.displayName=\"Button\";FramerSg7vW7sWP.defaultProps={height:50,width:178.5};addPropertyControls(FramerSg7vW7sWP,{variant:{options:[\"Cx4alkkqC\",\"gHB_xeuli\",\"NI0g2OoOQ\",\"sMUlp0NSI\",\"pvOF8_SCJ\",\"vxOkolOvI\",\"Tr_WvNWvK\",\"S61wHixPH\",\"BhvRrEr6r\",\"PJYHuN3z4\",\"cZWldx30Y\",\"qPOsH73_Z\"],optionTitles:[\"Button [Default]\",\"Button [Line]\",\"Button [sm]\",\"Button [sm Line]\",\"Button [xs]\",\"Button [xs Line]\",\"Link [Default]\",\"Link [sm]\",\"Link [xs]\",\"Icon [Default]\",\"Icon [sm]\",\"Icon [xs]\"],title:\"Variant\",type:ControlType.Enum},G77f5Yx_v:{defaultValue:\"Button Label\",description:\"\",displayTextArea:false,placeholder:\"\",title:\"Join Waitlist\",type:ControlType.String},U1Kbkgydv:{title:\"Link\",type:ControlType.Link},ey7w8muFX:{defaultValue:false,title:\"New Tab\",type:ControlType.Boolean},oV7zrnzuy:{defaultValue:'var(--token-2b0e18bf-9e9a-4016-bdfc-5769700a5529, rgb(255, 255, 255)) /* {\"name\":\"White/Gray 950 [Dynamic]\"} */',title:\"Button Color\",type:ControlType.Color},HFfTjmBlq:{defaultValue:'var(--token-de5448c6-98bb-4403-96cd-7fe86bf2daa6, rgb(9, 9, 11)) /* {\"name\":\"Gray 950 [Dynamic]\"} */',title:\"Button Text Color\",type:ControlType.Color},n9WP3fBIv:{defaultValue:true,title:\"Show Icon\",type:ControlType.Boolean},Vo_oxchYD:PhosphorControls?.[\"iconSelection\"]&&{...PhosphorControls[\"iconSelection\"],defaultValue:\"CaretRight\",description:undefined,hidden:undefined,title:\"Icon Name\"},ApWhoO21o:{defaultValue:{borderColor:'var(--token-31213cc7-db87-4df4-8209-e72c8adb68fb, rgb(228, 228, 231)) /* {\"name\":\"Gray 200 [Dynamic]\"} */',borderStyle:\"solid\",borderWidth:1},title:\"Border\",type:ControlType.Border},SZQpZ3lk2:{defaultValue:8,title:\"Radius\",type:ControlType.Number},WM2TpCryl:{defaultValue:false,title:\"Icon Animation\",type:ControlType.Boolean},nSQvgmbyz:{title:\"Tap\",type:ControlType.EventHandler}});addFonts(FramerSg7vW7sWP,[{explicitInter:true,fonts:[{family:\"Inter Tight\",source:\"google\",style:\"normal\",url:\"https://fonts.gstatic.com/s/intertight/v7/NGSnv5HMAFg6IuGlBNMjxJEL2VmU3NS7Z2mj0QiqWSRToK8EPg.woff2\",weight:\"600\"},{family:\"Inter Tight\",source:\"google\",style:\"normal\",url:\"https://fonts.gstatic.com/s/intertight/v7/NGSnv5HMAFg6IuGlBNMjxJEL2VmU3NS7Z2mjPQ-qWSRToK8EPg.woff2\",weight:\"500\"}]},...PhosphorFonts],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerSg7vW7sWP\",\"slots\":[],\"annotations\":{\"framerComponentViewportWidth\":\"true\",\"framerIntrinsicHeight\":\"50\",\"framerIntrinsicWidth\":\"178.5\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"fixed\\\"]},\\\"gHB_xeuli\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"fixed\\\"]},\\\"NI0g2OoOQ\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"fixed\\\"]},\\\"sMUlp0NSI\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"fixed\\\"]},\\\"pvOF8_SCJ\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"fixed\\\"]},\\\"vxOkolOvI\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"fixed\\\"]},\\\"Tr_WvNWvK\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"S61wHixPH\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"BhvRrEr6r\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"PJYHuN3z4\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"cZWldx30Y\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"qPOsH73_Z\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"MrIV8RRb7\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"fixed\\\"]},\\\"LYva4tX6c\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"fixed\\\"]},\\\"xiHIHvFRG\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"fixed\\\"]},\\\"bVYWD5Vaj\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"fixed\\\"]},\\\"k_cFoSVVZ\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"fixed\\\"]},\\\"fg2oQdBQp\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"fixed\\\"]},\\\"WwxZrd_fA\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"fixed\\\"]},\\\"vCrOLgMJq\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"fixed\\\"]},\\\"RhPW160c_\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"fixed\\\"]},\\\"PE211fPnf\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"fixed\\\"]},\\\"D1H52Ica2\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"fixed\\\"]},\\\"YPDpFk05m\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"fixed\\\"]},\\\"qMKUMAYfC\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"EYEql3erz\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"xssmvjCjS\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"VCr0VQuC4\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"nAlpR9WQ3\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"DpVAIpM1V\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"zN52IErZq\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"fImdFkBEf\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"Uc1GArDys\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]}}}\",\"framerVariables\":\"{\\\"G77f5Yx_v\\\":\\\"joinWaitlist\\\",\\\"U1Kbkgydv\\\":\\\"link\\\",\\\"ey7w8muFX\\\":\\\"newTab\\\",\\\"oV7zrnzuy\\\":\\\"buttonColor\\\",\\\"HFfTjmBlq\\\":\\\"buttonTextColor\\\",\\\"n9WP3fBIv\\\":\\\"showIcon\\\",\\\"Vo_oxchYD\\\":\\\"iconName\\\",\\\"ApWhoO21o\\\":\\\"border\\\",\\\"SZQpZ3lk2\\\":\\\"radius\\\",\\\"WM2TpCryl\\\":\\\"iconAnimation\\\",\\\"nSQvgmbyz\\\":\\\"tap\\\"}\",\"framerDisplayContentsDiv\":\"false\",\"framerImmutableVariables\":\"true\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Sg7vW7sWP.map","// Generated by Framer (677c5d1)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,ControlType,cx,getFonts,Link,ResolveLinks,SmartComponentScopedContainer,useActiveVariantCallback,useComponentViewport,useLocaleInfo,useRouter,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import MenuHamburgerMenu from\"https://framerusercontent.com/modules/aQ4munSOxHvOdSa7Yt09/IT5c5z0oAE6lXPD5Bwf1/sDquhqjHT.js\";import MenuItem from\"https://framerusercontent.com/modules/eNpn7EnkVGLbMTAgxgeN/OuOhkTRUz7xK3VNnnzt0/Z5aW2k3RB.js\";import SmoothScroll from\"https://framerusercontent.com/modules/G8BYngIUThaPaidhX6PY/h4Po5ywGFvZL8KhSj6og/SmoothScroll.js\";import ConstantLogo from\"https://framerusercontent.com/modules/k8OnpGQESjTcNLZEmfCL/S8XplV8O97mXdOfZGADT/KmomC3m61.js\";import MenuMenu from\"https://framerusercontent.com/modules/wqIwquk1Cb1V7ix1p0XO/wj8rLZgc4ZgghcdF4Mgk/rYuoi4sXX.js\";import Button from\"https://framerusercontent.com/modules/vQ634yed2d2DbFxiIRMj/VWEJx1JEdRZ9xe6PAF9c/Sg7vW7sWP.js\";const SmoothScrollFonts=getFonts(SmoothScroll);const ConstantLogoFonts=getFonts(ConstantLogo);const MenuMenuFonts=getFonts(MenuMenu);const ButtonFonts=getFonts(Button);const MenuHamburgerMenuFonts=getFonts(MenuHamburgerMenu);const MenuItemFonts=getFonts(MenuItem);const cycleOrder=[\"BLOTQHf_D\",\"j5Zcq_cNM\",\"wUqth01Sr\",\"Fd892kDmd\",\"hmkP4OW_7\",\"FAfrSDieD\"];const serializationHash=\"framer-fGwhQ\";const variantClassNames={BLOTQHf_D:\"framer-v-1i6x88m\",FAfrSDieD:\"framer-v-1seze57\",Fd892kDmd:\"framer-v-e15nv1\",hmkP4OW_7:\"framer-v-1h4yk0a\",j5Zcq_cNM:\"framer-v-wrgo24\",wUqth01Sr:\"framer-v-7ygk7b\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={damping:60,delay:0,mass:1,stiffness:500,type:\"spring\"};const transition2={delay:0,duration:.3,ease:[.44,0,.56,1],type:\"tween\"};const transition3={delay:.1,duration:.15,ease:[.44,0,.56,1],type:\"tween\"};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const humanReadableVariantMap={\"Desktop [Boxed Mini]\":\"Fd892kDmd\",\"Desktop [Boxed]\":\"wUqth01Sr\",\"Desktop [Default]\":\"BLOTQHf_D\",\"Desktop [Full Width]\":\"j5Zcq_cNM\",\"Mobile [Menu Opend]\":\"FAfrSDieD\",Mobile:\"hmkP4OW_7\"};const getProps=({bGBlur,bgBorder,buttonColor,buttonLink,buttonTextColor,desktopBG,height,id,joinWaitlist,link,newTab,showButton,showMenu,textColor,width,...props})=>{return{...props,BeZsA273t:showMenu??props.BeZsA273t??true,Cof0RMUzO:textColor??props.Cof0RMUzO??\"var(--token-ca945b91-a0a3-4e69-95c0-e2f4bf868399, rgb(255, 255, 255))\",dbTkB554q:buttonLink??props.dbTkB554q,eGOhp_OqC:joinWaitlist??props.eGOhp_OqC??\"Contact\",FFcnuU4Ek:desktopBG??props.FFcnuU4Ek??\"var(--token-5cb9a68d-31cb-4baf-8414-1a3d9276de57, rgba(255, 255, 255, 0.95))\",KDPaGeBIL:buttonTextColor??props.KDPaGeBIL??\"var(--token-2b0e18bf-9e9a-4016-bdfc-5769700a5529, rgb(255, 255, 255))\",ORnOR2pUN:bgBorder??props.ORnOR2pUN??{borderBottomWidth:1,borderColor:'var(--token-31213cc7-db87-4df4-8209-e72c8adb68fb, rgb(228, 228, 231)) /* {\"name\":\"Gray 200 [Dynamic]\"} */',borderLeftWidth:0,borderRightWidth:0,borderStyle:\"solid\",borderTopWidth:0},PSllm3IyR:link??props.PSllm3IyR,sGHTFWZo5:showButton??props.sGHTFWZo5??true,t4qtipNl7:bGBlur??props.t4qtipNl7??10,UTTJR9foI:newTab??props.UTTJR9foI,variant:humanReadableVariantMap[props.variant]??props.variant??\"BLOTQHf_D\",zzroHIlLa:buttonColor??props.zzroHIlLa??\"var(--token-de5448c6-98bb-4403-96cd-7fe86bf2daa6, rgb(9, 9, 11))\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,Cof0RMUzO,ORnOR2pUN,BeZsA273t,sGHTFWZo5,eGOhp_OqC,zzroHIlLa,KDPaGeBIL,UTTJR9foI,dbTkB554q,FFcnuU4Ek,t4qtipNl7,PSllm3IyR,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"BLOTQHf_D\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const{activeVariantCallback,delay}=useActiveVariantCallback(baseVariant);const E6NV4Gf2fju3k3=activeVariantCallback(async(...args)=>{setVariant(\"FAfrSDieD\");});const E6NV4Gf2f133mi02=activeVariantCallback(async(...args)=>{setVariant(\"hmkP4OW_7\");});const i6eMpMhzestw5o3=activeVariantCallback(async(...args)=>{await delay(()=>setVariant(\"hmkP4OW_7\"),100);});const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);const isDisplayed=value=>{if([\"hmkP4OW_7\",\"FAfrSDieD\"].includes(baseVariant))return false;return value;};const isDisplayed1=()=>{if([\"hmkP4OW_7\",\"FAfrSDieD\"].includes(baseVariant))return false;return true;};const isDisplayed2=value=>{if(baseVariant===\"hmkP4OW_7\")return value;if(baseVariant===\"FAfrSDieD\")return true;return false;};const isDisplayed3=()=>{if(baseVariant===\"FAfrSDieD\")return true;return false;};const router=useRouter();return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,...addPropertyOverrides({FAfrSDieD:{value:transition3},hmkP4OW_7:{value:transition2}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsxs(motion.nav,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-1i6x88m\",className,classNames),\"data-border\":true,\"data-framer-name\":\"Desktop [Default]\",layoutDependency:layoutDependency,layoutId:\"BLOTQHf_D\",ref:refBinding,style:{\"--border-bottom-width\":(ORnOR2pUN.borderBottomWidth??ORnOR2pUN.borderWidth)+\"px\",\"--border-color\":ORnOR2pUN.borderColor,\"--border-left-width\":(ORnOR2pUN.borderLeftWidth??ORnOR2pUN.borderWidth)+\"px\",\"--border-right-width\":(ORnOR2pUN.borderRightWidth??ORnOR2pUN.borderWidth)+\"px\",\"--border-style\":ORnOR2pUN.borderStyle,\"--border-top-width\":(ORnOR2pUN.borderTopWidth??ORnOR2pUN.borderWidth)+\"px\",backdropFilter:\"blur(60px)\",backgroundColor:\"rgba(255, 255, 255, 0.1)\",WebkitBackdropFilter:\"blur(60px)\",...style},variants:{FAfrSDieD:{\"--border-bottom-width\":\"0px\",\"--border-left-width\":\"0px\",\"--border-right-width\":\"0px\",\"--border-top-width\":\"0px\",backdropFilter:\"blur(45px)\",backgroundColor:\"rgba(12, 18, 43, 0.72)\",WebkitBackdropFilter:\"blur(45px)\"},Fd892kDmd:{\"--border-bottom-width\":\"0px\",\"--border-left-width\":\"0px\",\"--border-right-width\":\"0px\",\"--border-top-width\":\"0px\",backdropFilter:\"none\",backgroundColor:\"rgba(0, 0, 0, 0)\",WebkitBackdropFilter:\"none\"},hmkP4OW_7:{\"--border-bottom-width\":\"0px\",\"--border-left-width\":\"0px\",\"--border-right-width\":\"0px\",\"--border-top-width\":\"0px\",backgroundColor:\"rgba(0, 0, 0, 0)\"},wUqth01Sr:{\"--border-bottom-width\":\"0px\",\"--border-left-width\":\"0px\",\"--border-right-width\":\"0px\",\"--border-top-width\":\"0px\",backdropFilter:\"none\",backgroundColor:\"rgba(0, 0, 0, 0)\",WebkitBackdropFilter:\"none\"}},...addPropertyOverrides({FAfrSDieD:{\"data-framer-name\":\"Mobile [Menu Opend]\"},Fd892kDmd:{\"data-framer-name\":\"Desktop [Boxed Mini]\"},hmkP4OW_7:{\"data-framer-name\":\"Mobile\"},j5Zcq_cNM:{\"data-framer-name\":\"Desktop [Full Width]\"},wUqth01Sr:{\"data-framer-name\":\"Desktop [Boxed]\"}},baseVariant,gestureVariant),children:[/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-h1by11-container\",isAuthoredByUser:true,isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"oYQh0zOMf-container\",nodeId:\"oYQh0zOMf\",rendersWithMotion:true,scopeId:\"L0XmJSAZ_\",children:/*#__PURE__*/_jsx(SmoothScroll,{height:\"100%\",id:\"oYQh0zOMf\",intensity:10,layoutId:\"oYQh0zOMf\",width:\"100%\"})})}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-gssze0\",\"data-framer-name\":\"Main Area\",layoutDependency:layoutDependency,layoutId:\"i0eUaJb_F\",style:{\"--border-bottom-width\":\"0px\",\"--border-color\":\"rgba(0, 0, 0, 0)\",\"--border-left-width\":\"0px\",\"--border-right-width\":\"0px\",\"--border-style\":\"solid\",\"--border-top-width\":\"0px\",backdropFilter:\"none\",backgroundColor:\"rgba(0, 0, 0, 0)\",borderBottomLeftRadius:0,borderBottomRightRadius:0,borderTopLeftRadius:0,borderTopRightRadius:0,boxShadow:\"none\",WebkitBackdropFilter:\"none\"},variants:{FAfrSDieD:{\"--border-bottom-width\":\"0px\",\"--border-left-width\":\"0px\",\"--border-right-width\":\"0px\",\"--border-top-width\":\"0px\",backdropFilter:\"none\",backgroundColor:\"rgba(0, 0, 0, 0)\",borderBottomLeftRadius:0,borderBottomRightRadius:0,borderTopLeftRadius:0,borderTopRightRadius:0,boxShadow:\"none\",WebkitBackdropFilter:\"none\"},Fd892kDmd:{\"--border-bottom-width\":\"1px\",\"--border-color\":\"rgba(113, 113, 122, 0.2)\",\"--border-left-width\":\"1px\",\"--border-right-width\":\"1px\",\"--border-style\":\"solid\",\"--border-top-width\":\"1px\",backdropFilter:\"blur(35px)\",backgroundColor:\"rgba(20, 22, 28, 0.22)\",borderBottomLeftRadius:46,borderBottomRightRadius:46,borderTopLeftRadius:46,borderTopRightRadius:46,boxShadow:\"0px 0.24145061431045178px 0.24145061431045178px -1.25px rgba(0, 0, 0, 0.05), 0px 2px 2px -2.5px rgba(0, 0, 0, 0.05), 0px 0.6021873017743928px 0.6021873017743928px -1.25px rgba(9, 9, 11, 0.07199), 0px 2.288533303243457px 2.288533303243457px -2.5px rgba(9, 9, 11, 0.06356), 0px 10px 10px -3.75px rgba(9, 9, 11, 0.025)\",WebkitBackdropFilter:\"blur(35px)\"},hmkP4OW_7:{\"--border-bottom-width\":\"0px\",\"--border-left-width\":\"0px\",\"--border-right-width\":\"0px\",\"--border-top-width\":\"0px\",backdropFilter:\"none\",backgroundColor:\"rgba(12, 18, 43, 0.6)\",borderBottomLeftRadius:0,borderBottomRightRadius:0,borderTopLeftRadius:0,borderTopRightRadius:0,boxShadow:\"none\",WebkitBackdropFilter:\"none\"},wUqth01Sr:{backdropFilter:\"blur(35px)\",backgroundColor:\"rgba(20, 22, 28, 0.22)\",borderBottomLeftRadius:36,borderBottomRightRadius:36,borderTopLeftRadius:36,borderTopRightRadius:36,WebkitBackdropFilter:\"blur(35px)\"}},...addPropertyOverrides({Fd892kDmd:{\"data-border\":true}},baseVariant,gestureVariant),children:[/*#__PURE__*/_jsx(Link,{href:PSllm3IyR,motionChild:true,nodeId:\"ihiAfscRR\",scopeId:\"L0XmJSAZ_\",children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-1hgq886 framer-1m46dnb\",layoutDependency:layoutDependency,layoutId:\"ihiAfscRR\",children:/*#__PURE__*/_jsx(ComponentViewportProvider,{height:34,y:(componentViewport?.y||0)+(10+((componentViewport?.height||60)-20-50)/2)+8+0,...addPropertyOverrides({FAfrSDieD:{y:(componentViewport?.y||0)+0+200+13+0},Fd892kDmd:{y:(componentViewport?.y||0)+(20+((componentViewport?.height||90)-20-80)/2)+23+0},hmkP4OW_7:{y:(componentViewport?.y||0)+0+200+13+0},wUqth01Sr:{y:(componentViewport?.y||0)+(20+((componentViewport?.height||90)-20-80)/2)+23+0}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1pmndj7-container\",layoutDependency:layoutDependency,layoutId:\"Gn5YiygBt-container\",nodeId:\"Gn5YiygBt\",rendersWithMotion:true,scopeId:\"L0XmJSAZ_\",children:/*#__PURE__*/_jsx(ConstantLogo,{height:\"100%\",id:\"Gn5YiygBt\",layoutId:\"Gn5YiygBt\",variant:\"IU7Mdt0TT\",width:\"100%\",...addPropertyOverrides({FAfrSDieD:{variant:\"aMhuRdcY8\"},Fd892kDmd:{variant:\"aMhuRdcY8\"},hmkP4OW_7:{variant:\"aMhuRdcY8\"},wUqth01Sr:{variant:\"aMhuRdcY8\"}},baseVariant,gestureVariant)})})})})}),isDisplayed(BeZsA273t)&&/*#__PURE__*/_jsx(ComponentViewportProvider,{height:30,y:(componentViewport?.y||0)+(10+((componentViewport?.height||60)-20-50)/2)+10,...addPropertyOverrides({Fd892kDmd:{y:(componentViewport?.y||0)+(20+((componentViewport?.height||90)-20-80)/2)+25},wUqth01Sr:{y:(componentViewport?.y||0)+(20+((componentViewport?.height||90)-20-80)/2)+25}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-3q0n4a-container\",\"data-framer-name\":\"Menu [Desktop]\",layoutDependency:layoutDependency,layoutId:\"NZC9XbLzH-container\",name:\"Menu [Desktop]\",nodeId:\"NZC9XbLzH\",rendersWithMotion:true,scopeId:\"L0XmJSAZ_\",children:/*#__PURE__*/_jsx(MenuMenu,{height:\"100%\",id:\"NZC9XbLzH\",ILT7xcLmk:FFcnuU4Ek,layoutId:\"NZC9XbLzH\",name:\"Menu [Desktop]\",odLrH8wIa:Cof0RMUzO,style:{height:\"100%\",width:\"100%\"},width:\"100%\",XWxsdOvDJ:t4qtipNl7,ZmT46usVX:\"flex-end\",...addPropertyOverrides({Fd892kDmd:{odLrH8wIa:\"var(--token-ca945b91-a0a3-4e69-95c0-e2f4bf868399, rgb(255, 255, 255))\",style:{height:\"100%\"}}},baseVariant,gestureVariant)})})}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-ogziw1\",layoutDependency:layoutDependency,layoutId:\"UM6DaGhpk\",children:[isDisplayed1()&&/*#__PURE__*/_jsx(motion.div,{className:\"framer-1g5liq9\",layoutDependency:layoutDependency,layoutId:\"EV9c_cSGi\",children:sGHTFWZo5&&/*#__PURE__*/_jsx(ComponentViewportProvider,{height:50,y:(componentViewport?.y||0)+(10+((componentViewport?.height||60)-20-50)/2)+0+0+0,...addPropertyOverrides({Fd892kDmd:{y:(componentViewport?.y||0)+(20+((componentViewport?.height||90)-20-80)/2)+15+0+0},wUqth01Sr:{y:(componentViewport?.y||0)+(20+((componentViewport?.height||90)-20-80)/2)+15+0+0}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-92ywdk-container\",layoutDependency:layoutDependency,layoutId:\"cuYM5RPXX-container\",nodeId:\"cuYM5RPXX\",rendersWithMotion:true,scopeId:\"L0XmJSAZ_\",children:/*#__PURE__*/_jsx(Button,{ApWhoO21o:{borderColor:'var(--token-31213cc7-db87-4df4-8209-e72c8adb68fb, rgb(228, 228, 231)) /* {\"name\":\"Gray 200 [Dynamic]\"} */',borderStyle:\"solid\",borderWidth:1},ey7w8muFX:UTTJR9foI,G77f5Yx_v:eGOhp_OqC,height:\"100%\",HFfTjmBlq:KDPaGeBIL,id:\"cuYM5RPXX\",layoutId:\"cuYM5RPXX\",n9WP3fBIv:true,oV7zrnzuy:zzroHIlLa,SZQpZ3lk2:8,U1Kbkgydv:dbTkB554q,variant:\"NI0g2OoOQ\",Vo_oxchYD:\"CaretRight\",width:\"100%\",WM2TpCryl:false,...addPropertyOverrides({Fd892kDmd:{G77f5Yx_v:\"Join Waitlist\",U1Kbkgydv:\"https://useconstant.typeform.com/to/H9TxXfT0\"},wUqth01Sr:{G77f5Yx_v:\"Join Waitlist\",U1Kbkgydv:\"https://useconstant.typeform.com/to/H9TxXfT0\"}},baseVariant,gestureVariant)})})})}),isDisplayed2(BeZsA273t)&&/*#__PURE__*/_jsx(ComponentViewportProvider,{...addPropertyOverrides({FAfrSDieD:{height:48,width:\"48px\",y:(componentViewport?.y||0)+0+200+6+0},hmkP4OW_7:{height:48,width:\"48px\",y:(componentViewport?.y||0)+0+200+6+0}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-lpm7ml-container\",isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"P8N4tNuTp-container\",nodeId:\"P8N4tNuTp\",rendersWithMotion:true,scopeId:\"L0XmJSAZ_\",children:/*#__PURE__*/_jsx(MenuHamburgerMenu,{E6NV4Gf2f:E6NV4Gf2fju3k3,height:\"100%\",id:\"P8N4tNuTp\",layoutId:\"P8N4tNuTp\",lYvpkC7IW:\"var(--token-963ba7ff-1506-4ab8-a9bc-332b05614e66, rgb(9, 9, 11))\",style:{height:\"100%\",width:\"100%\"},variant:\"jes3YGVf7\",width:\"100%\",...addPropertyOverrides({FAfrSDieD:{E6NV4Gf2f:E6NV4Gf2f133mi02,lYvpkC7IW:Cof0RMUzO,variant:\"EiPw8AZS4\"},hmkP4OW_7:{lYvpkC7IW:Cof0RMUzO}},baseVariant,gestureVariant)})})})]})]}),isDisplayed3()&&/*#__PURE__*/_jsx(Transition,{value:transition2,children:/*#__PURE__*/_jsxs(motion.div,{className:\"framer-w9ch7f\",\"data-framer-name\":\"Mobile Dropdown\",layoutDependency:layoutDependency,layoutId:\"vQgggtX18\",children:[/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{webPageId:\"augiA20Il\"},implicitPathVariables:undefined},{href:{webPageId:\"augiA20Il\"},implicitPathVariables:undefined}],children:resolvedLinks=>/*#__PURE__*/_jsx(ComponentViewportProvider,{height:36,...addPropertyOverrides({FAfrSDieD:{width:`calc(${componentViewport?.width||\"100vw\"} - 30px)`,y:(componentViewport?.y||0)+0+260+15+0}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-14456jh-container\",isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"ZzFa8mjIm-container\",nodeId:\"ZzFa8mjIm\",rendersWithMotion:true,scopeId:\"L0XmJSAZ_\",children:/*#__PURE__*/_jsx(MenuItem,{bxYeoQnmJ:\"var(--token-2b0e18bf-9e9a-4016-bdfc-5769700a5529, rgb(255, 255, 255))\",CKLn4URch:{borderColor:'var(--token-31213cc7-db87-4df4-8209-e72c8adb68fb, rgb(228, 228, 231)) /* {\"name\":\"Gray 200 [Dynamic]\"} */',borderStyle:\"solid\",borderWidth:1},dqMpST25y:10,height:\"100%\",i6eMpMhze:i6eMpMhzestw5o3,i8hVK17KP:\"rgba(9, 9, 11, 0.05)\",id:\"ZzFa8mjIm\",kf3NktHXk:\"Badge\",ku0K5iab7:\"Home\",layoutId:\"ZzFa8mjIm\",qfg9TUc_S:false,style:{height:\"100%\",width:\"100%\"},stziIHmv7:\"rgba(255, 255, 255, 0)\",T3ktnO2nz:false,variant:\"icuU8oJ0t\",VdwkoqfEz:\"var(--token-de5448c6-98bb-4403-96cd-7fe86bf2daa6, rgb(9, 9, 11))\",wGRcFK04x:Cof0RMUzO,width:\"100%\",ycFa86gVJ:\"flex-start\",ZpWw94nXT:resolvedLinks[0],...addPropertyOverrides({FAfrSDieD:{ZpWw94nXT:resolvedLinks[1]}},baseVariant,gestureVariant)})})})}),/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{webPageId:\"augiA20Il\"},implicitPathVariables:undefined},{href:{hash:\":A_4it90os\",webPageId:\"augiA20Il\"},implicitPathVariables:undefined}],children:resolvedLinks1=>/*#__PURE__*/_jsx(ComponentViewportProvider,{height:36,...addPropertyOverrides({FAfrSDieD:{width:`calc(${componentViewport?.width||\"100vw\"} - 30px)`,y:(componentViewport?.y||0)+0+260+15+46}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1hdks70-container\",isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"DQPWscf1d-container\",nodeId:\"DQPWscf1d\",rendersWithMotion:true,scopeId:\"L0XmJSAZ_\",children:/*#__PURE__*/_jsx(MenuItem,{bxYeoQnmJ:\"var(--token-2b0e18bf-9e9a-4016-bdfc-5769700a5529, rgb(255, 255, 255))\",CKLn4URch:{borderColor:'var(--token-31213cc7-db87-4df4-8209-e72c8adb68fb, rgb(228, 228, 231)) /* {\"name\":\"Gray 200 [Dynamic]\"} */',borderStyle:\"solid\",borderWidth:1},dqMpST25y:10,height:\"100%\",i6eMpMhze:i6eMpMhzestw5o3,i8hVK17KP:\"rgba(9, 9, 11, 0.05)\",id:\"DQPWscf1d\",kf3NktHXk:\"Badge\",ku0K5iab7:\"Features\",layoutId:\"DQPWscf1d\",qfg9TUc_S:false,style:{height:\"100%\",width:\"100%\"},stziIHmv7:\"rgba(255, 255, 255, 0)\",T3ktnO2nz:false,variant:\"icuU8oJ0t\",VdwkoqfEz:\"var(--token-de5448c6-98bb-4403-96cd-7fe86bf2daa6, rgb(9, 9, 11))\",wGRcFK04x:Cof0RMUzO,width:\"100%\",ycFa86gVJ:\"flex-start\",ZpWw94nXT:resolvedLinks1[0],...addPropertyOverrides({FAfrSDieD:{ku0K5iab7:\"Platform\",ZpWw94nXT:resolvedLinks1[1]}},baseVariant,gestureVariant)})})})}),/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{webPageId:\"augiA20Il\"},implicitPathVariables:undefined},{href:{hash:\":ZZ5d1fWGy\",webPageId:\"augiA20Il\"},implicitPathVariables:undefined}],children:resolvedLinks2=>/*#__PURE__*/_jsx(ComponentViewportProvider,{height:36,...addPropertyOverrides({FAfrSDieD:{width:`calc(${componentViewport?.width||\"100vw\"} - 30px)`,y:(componentViewport?.y||0)+0+260+15+92}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-4fk9mv-container\",isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"vownHs2m8-container\",nodeId:\"vownHs2m8\",rendersWithMotion:true,scopeId:\"L0XmJSAZ_\",children:/*#__PURE__*/_jsx(MenuItem,{bxYeoQnmJ:\"var(--token-2b0e18bf-9e9a-4016-bdfc-5769700a5529, rgb(255, 255, 255))\",CKLn4URch:{borderColor:'var(--token-31213cc7-db87-4df4-8209-e72c8adb68fb, rgb(228, 228, 231)) /* {\"name\":\"Gray 200 [Dynamic]\"} */',borderStyle:\"solid\",borderWidth:1},dqMpST25y:10,height:\"100%\",i6eMpMhze:i6eMpMhzestw5o3,i8hVK17KP:\"rgba(9, 9, 11, 0.05)\",id:\"vownHs2m8\",kf3NktHXk:\"Badge\",ku0K5iab7:\"Benefits\",layoutId:\"vownHs2m8\",qfg9TUc_S:false,style:{height:\"100%\",width:\"100%\"},stziIHmv7:\"rgba(255, 255, 255, 0)\",T3ktnO2nz:false,variant:\"icuU8oJ0t\",VdwkoqfEz:\"var(--token-de5448c6-98bb-4403-96cd-7fe86bf2daa6, rgb(9, 9, 11))\",wGRcFK04x:Cof0RMUzO,width:\"100%\",ycFa86gVJ:\"flex-start\",ZpWw94nXT:resolvedLinks2[0],...addPropertyOverrides({FAfrSDieD:{ZpWw94nXT:resolvedLinks2[1]}},baseVariant,gestureVariant)})})})}),/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{webPageId:\"w77agOON3\"},implicitPathVariables:undefined},{href:{webPageId:\"HUQWO8BWJ\"},implicitPathVariables:undefined}],children:resolvedLinks3=>/*#__PURE__*/_jsx(ComponentViewportProvider,{height:36,...addPropertyOverrides({FAfrSDieD:{width:`calc(${componentViewport?.width||\"100vw\"} - 30px)`,y:(componentViewport?.y||0)+0+260+15+230}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-8lmlkt-container\",isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"A4TwVniPh-container\",nodeId:\"A4TwVniPh\",rendersWithMotion:true,scopeId:\"L0XmJSAZ_\",children:/*#__PURE__*/_jsx(MenuItem,{bxYeoQnmJ:\"var(--token-2b0e18bf-9e9a-4016-bdfc-5769700a5529, rgb(255, 255, 255))\",CKLn4URch:{borderColor:'var(--token-31213cc7-db87-4df4-8209-e72c8adb68fb, rgb(228, 228, 231)) /* {\"name\":\"Gray 200 [Dynamic]\"} */',borderStyle:\"solid\",borderWidth:1},dqMpST25y:10,height:\"100%\",i6eMpMhze:i6eMpMhzestw5o3,i8hVK17KP:\"rgba(9, 9, 11, 0.05)\",id:\"A4TwVniPh\",kf3NktHXk:\"Badge\",ku0K5iab7:\"Changelog\",layoutId:\"A4TwVniPh\",qfg9TUc_S:false,style:{height:\"100%\",width:\"100%\"},stziIHmv7:\"rgba(255, 255, 255, 0)\",T3ktnO2nz:false,variant:\"icuU8oJ0t\",VdwkoqfEz:\"var(--token-de5448c6-98bb-4403-96cd-7fe86bf2daa6, rgb(9, 9, 11))\",wGRcFK04x:Cof0RMUzO,width:\"100%\",ycFa86gVJ:\"flex-start\",ZpWw94nXT:resolvedLinks3[0],...addPropertyOverrides({FAfrSDieD:{ku0K5iab7:\"Private Equity\",ZpWw94nXT:resolvedLinks3[1]}},baseVariant,gestureVariant)})})})}),/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{webPageId:\"H16J5YuUC\"},implicitPathVariables:undefined},{href:{webPageId:\"H16J5YuUC\"},implicitPathVariables:undefined}],children:resolvedLinks4=>/*#__PURE__*/_jsx(ComponentViewportProvider,{height:36,...addPropertyOverrides({FAfrSDieD:{width:`calc(${componentViewport?.width||\"100vw\"} - 30px)`,y:(componentViewport?.y||0)+0+260+15+184}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1fipx61-container\",isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"qvw51kBfz-container\",nodeId:\"qvw51kBfz\",rendersWithMotion:true,scopeId:\"L0XmJSAZ_\",children:/*#__PURE__*/_jsx(MenuItem,{bxYeoQnmJ:\"var(--token-2b0e18bf-9e9a-4016-bdfc-5769700a5529, rgb(255, 255, 255))\",CKLn4URch:{borderColor:'var(--token-31213cc7-db87-4df4-8209-e72c8adb68fb, rgb(228, 228, 231)) /* {\"name\":\"Gray 200 [Dynamic]\"} */',borderStyle:\"solid\",borderWidth:1},dqMpST25y:10,height:\"100%\",i6eMpMhze:i6eMpMhzestw5o3,i8hVK17KP:\"rgba(9, 9, 11, 0.05)\",id:\"qvw51kBfz\",kf3NktHXk:\"Badge\",ku0K5iab7:\"Private Credit\",layoutId:\"qvw51kBfz\",qfg9TUc_S:false,style:{height:\"100%\",width:\"100%\"},stziIHmv7:\"rgba(255, 255, 255, 0)\",T3ktnO2nz:false,variant:\"icuU8oJ0t\",VdwkoqfEz:\"var(--token-de5448c6-98bb-4403-96cd-7fe86bf2daa6, rgb(9, 9, 11))\",wGRcFK04x:Cof0RMUzO,width:\"100%\",ycFa86gVJ:\"flex-start\",ZpWw94nXT:resolvedLinks4[0],...addPropertyOverrides({FAfrSDieD:{ZpWw94nXT:resolvedLinks4[1]}},baseVariant,gestureVariant)})})})}),/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{webPageId:\"augiA20Il\"},implicitPathVariables:undefined},{href:{hash:\":TgqxfkeB_\",webPageId:\"augiA20Il\"},implicitPathVariables:undefined}],children:resolvedLinks5=>/*#__PURE__*/_jsx(ComponentViewportProvider,{height:36,...addPropertyOverrides({FAfrSDieD:{width:`calc(${componentViewport?.width||\"100vw\"} - 30px)`,y:(componentViewport?.y||0)+0+260+15+138}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1uiflik-container\",isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"K4MX35UNb-container\",nodeId:\"K4MX35UNb\",rendersWithMotion:true,scopeId:\"L0XmJSAZ_\",children:/*#__PURE__*/_jsx(MenuItem,{bxYeoQnmJ:\"var(--token-2b0e18bf-9e9a-4016-bdfc-5769700a5529, rgb(255, 255, 255))\",CKLn4URch:{borderColor:'var(--token-31213cc7-db87-4df4-8209-e72c8adb68fb, rgb(228, 228, 231)) /* {\"name\":\"Gray 200 [Dynamic]\"} */',borderStyle:\"solid\",borderWidth:1},dqMpST25y:10,height:\"100%\",i6eMpMhze:i6eMpMhzestw5o3,i8hVK17KP:\"rgba(9, 9, 11, 0.05)\",id:\"K4MX35UNb\",kf3NktHXk:\"Badge\",ku0K5iab7:\"Components\",layoutId:\"K4MX35UNb\",qfg9TUc_S:false,style:{height:\"100%\",width:\"100%\"},stziIHmv7:\"rgba(255, 255, 255, 0)\",T3ktnO2nz:false,variant:\"icuU8oJ0t\",VdwkoqfEz:\"var(--token-de5448c6-98bb-4403-96cd-7fe86bf2daa6, rgb(9, 9, 11))\",wGRcFK04x:Cof0RMUzO,width:\"100%\",ycFa86gVJ:\"flex-start\",ZpWw94nXT:resolvedLinks5[0],...addPropertyOverrides({FAfrSDieD:{ku0K5iab7:\"FAQ\",ZpWw94nXT:resolvedLinks5[1]}},baseVariant,gestureVariant)})})})}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-py29xq\",layoutDependency:layoutDependency,layoutId:\"RHpptuvPk\",children:sGHTFWZo5&&/*#__PURE__*/_jsx(ComponentViewportProvider,{height:50,...addPropertyOverrides({FAfrSDieD:{width:`max((${componentViewport?.width||\"100vw\"} - 20px) / 0, 1px)`,y:(componentViewport?.y||0)+0+260+15+276+10}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-56tfgg-container\",layoutDependency:layoutDependency,layoutId:\"Ozb6RR6kB-container\",nodeId:\"Ozb6RR6kB\",rendersWithMotion:true,scopeId:\"L0XmJSAZ_\",children:/*#__PURE__*/_jsx(Button,{ApWhoO21o:{borderColor:'var(--token-31213cc7-db87-4df4-8209-e72c8adb68fb, rgb(228, 228, 231)) /* {\"name\":\"Gray 200 [Dynamic]\"} */',borderStyle:\"solid\",borderWidth:1},ey7w8muFX:UTTJR9foI,G77f5Yx_v:eGOhp_OqC,height:\"100%\",HFfTjmBlq:KDPaGeBIL,id:\"Ozb6RR6kB\",layoutId:\"Ozb6RR6kB\",n9WP3fBIv:true,oV7zrnzuy:zzroHIlLa,SZQpZ3lk2:8,U1Kbkgydv:dbTkB554q,variant:\"Cx4alkkqC\",Vo_oxchYD:\"CaretRight\",width:\"100%\",WM2TpCryl:false,...addPropertyOverrides({FAfrSDieD:{G77f5Yx_v:\"Join Waitlist\",style:{width:\"100%\"},U1Kbkgydv:\"https://useconstant.typeform.com/to/H9TxXfT0\"}},baseVariant,gestureVariant)})})})})]})})]})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-fGwhQ.framer-1m46dnb, .framer-fGwhQ .framer-1m46dnb { display: block; }\",\".framer-fGwhQ.framer-1i6x88m { align-content: center; align-items: center; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; overflow: visible; padding: 10px 40px 10px 40px; position: relative; width: 1200px; }\",\".framer-fGwhQ .framer-h1by11-container, .framer-fGwhQ .framer-1pmndj7-container, .framer-fGwhQ .framer-92ywdk-container, .framer-fGwhQ .framer-56tfgg-container { flex: none; height: auto; position: relative; width: auto; }\",\".framer-fGwhQ .framer-gssze0 { align-content: center; align-items: center; display: flex; flex: 1 0 0px; flex-direction: row; flex-wrap: nowrap; height: min-content; justify-content: space-between; max-width: 1200px; overflow: visible; padding: 0px; position: relative; width: 1px; }\",\".framer-fGwhQ .framer-1hgq886 { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; text-decoration: none; width: min-content; }\",\".framer-fGwhQ .framer-3q0n4a-container { flex: 1 0 0px; height: 30px; position: relative; width: 1px; z-index: 1; }\",\".framer-fGwhQ .framer-ogziw1 { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 15px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: min-content; }\",\".framer-fGwhQ .framer-1g5liq9 { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 15px; height: min-content; justify-content: flex-end; overflow: visible; padding: 0px 0px 0px 15px; position: relative; width: min-content; }\",\".framer-fGwhQ .framer-lpm7ml-container { flex: none; height: 48px; position: relative; width: 48px; }\",\".framer-fGwhQ .framer-w9ch7f { align-content: flex-start; align-items: flex-start; display: flex; flex: 1 0 0px; flex-direction: column; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: flex-start; overflow: visible; padding: 15px; position: relative; width: 1px; }\",\".framer-fGwhQ .framer-14456jh-container, .framer-fGwhQ .framer-1hdks70-container, .framer-fGwhQ .framer-4fk9mv-container, .framer-fGwhQ .framer-8lmlkt-container, .framer-fGwhQ .framer-1fipx61-container, .framer-fGwhQ .framer-1uiflik-container { flex: none; height: 36px; position: relative; width: 100%; }\",\".framer-fGwhQ .framer-py29xq { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; overflow: visible; padding: 10px 0px 80px 0px; position: relative; width: 100%; }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-fGwhQ.framer-1i6x88m, .framer-fGwhQ .framer-1hgq886, .framer-fGwhQ .framer-ogziw1, .framer-fGwhQ .framer-1g5liq9, .framer-fGwhQ .framer-w9ch7f, .framer-fGwhQ .framer-py29xq { gap: 0px; } .framer-fGwhQ.framer-1i6x88m > *, .framer-fGwhQ .framer-1hgq886 > *, .framer-fGwhQ .framer-py29xq > * { margin: 0px; margin-left: calc(10px / 2); margin-right: calc(10px / 2); } .framer-fGwhQ.framer-1i6x88m > :first-child, .framer-fGwhQ .framer-1hgq886 > :first-child, .framer-fGwhQ .framer-ogziw1 > :first-child, .framer-fGwhQ .framer-1g5liq9 > :first-child, .framer-fGwhQ .framer-py29xq > :first-child { margin-left: 0px; } .framer-fGwhQ.framer-1i6x88m > :last-child, .framer-fGwhQ .framer-1hgq886 > :last-child, .framer-fGwhQ .framer-ogziw1 > :last-child, .framer-fGwhQ .framer-1g5liq9 > :last-child, .framer-fGwhQ .framer-py29xq > :last-child { margin-right: 0px; } .framer-fGwhQ .framer-ogziw1 > *, .framer-fGwhQ .framer-1g5liq9 > * { margin: 0px; margin-left: calc(15px / 2); margin-right: calc(15px / 2); } .framer-fGwhQ .framer-w9ch7f > * { margin: 0px; margin-bottom: calc(10px / 2); margin-top: calc(10px / 2); } .framer-fGwhQ .framer-w9ch7f > :first-child { margin-top: 0px; } .framer-fGwhQ .framer-w9ch7f > :last-child { margin-bottom: 0px; } }\",\".framer-fGwhQ.framer-v-wrgo24 .framer-gssze0 { max-width: unset; }\",\".framer-fGwhQ.framer-v-7ygk7b.framer-1i6x88m { padding: 20px 15px 0px 15px; }\",\".framer-fGwhQ.framer-v-7ygk7b .framer-gssze0 { padding: 15px 20px 15px 20px; z-index: 10; }\",\".framer-fGwhQ.framer-v-e15nv1.framer-1i6x88m { padding: 20px 15px 0px 15px; width: min-content; }\",\".framer-fGwhQ.framer-v-e15nv1 .framer-gssze0 { flex: none; max-width: unset; padding: 15px 20px 15px 25px; width: min-content; z-index: 10; }\",\".framer-fGwhQ.framer-v-e15nv1 .framer-3q0n4a-container { flex: none; width: auto; }\",\".framer-fGwhQ.framer-v-1h4yk0a.framer-1i6x88m { flex-direction: column; gap: 0px; justify-content: flex-start; padding: 0px; width: 390px; }\",\".framer-fGwhQ.framer-v-1h4yk0a .framer-gssze0 { flex: none; height: 60px; padding: 15px 10px 15px 15px; width: 100%; z-index: 1; }\",\".framer-fGwhQ.framer-v-1h4yk0a .framer-ogziw1 { gap: 0px; justify-content: flex-end; }\",\".framer-fGwhQ.framer-v-1h4yk0a .framer-lpm7ml-container, .framer-fGwhQ.framer-v-1seze57 .framer-1hgq886, .framer-fGwhQ.framer-v-1seze57 .framer-1hdks70-container { order: 1; }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-fGwhQ.framer-v-1h4yk0a.framer-1i6x88m, .framer-fGwhQ.framer-v-1h4yk0a .framer-ogziw1 { gap: 0px; } .framer-fGwhQ.framer-v-1h4yk0a.framer-1i6x88m > * { margin: 0px; margin-bottom: calc(0px / 2); margin-top: calc(0px / 2); } .framer-fGwhQ.framer-v-1h4yk0a.framer-1i6x88m > :first-child { margin-top: 0px; } .framer-fGwhQ.framer-v-1h4yk0a.framer-1i6x88m > :last-child { margin-bottom: 0px; } .framer-fGwhQ.framer-v-1h4yk0a .framer-ogziw1 > * { margin: 0px; margin-left: calc(0px / 2); margin-right: calc(0px / 2); } .framer-fGwhQ.framer-v-1h4yk0a .framer-ogziw1 > :first-child { margin-left: 0px; } .framer-fGwhQ.framer-v-1h4yk0a .framer-ogziw1 > :last-child { margin-right: 0px; } }\",\".framer-fGwhQ.framer-v-1seze57.framer-1i6x88m { flex-direction: column; gap: 0px; justify-content: flex-start; max-height: calc(var(--framer-viewport-height, 100vh) * 1); min-height: calc(var(--framer-viewport-height, 100vh) * 1); overflow: auto; padding: 0px; width: 390px; }\",\".framer-fGwhQ.framer-v-1seze57 .framer-gssze0 { flex: none; height: 60px; padding: 15px 10px 15px 15px; width: 100%; }\",\".framer-fGwhQ.framer-v-1seze57 .framer-ogziw1 { gap: 10px; order: 2; }\",\".framer-fGwhQ.framer-v-1seze57 .framer-w9ch7f { flex: none; width: 100%; }\",\".framer-fGwhQ.framer-v-1seze57 .framer-14456jh-container { order: 0; }\",\".framer-fGwhQ.framer-v-1seze57 .framer-4fk9mv-container { order: 2; }\",\".framer-fGwhQ.framer-v-1seze57 .framer-8lmlkt-container { order: 5; }\",\".framer-fGwhQ.framer-v-1seze57 .framer-1fipx61-container { order: 4; }\",\".framer-fGwhQ.framer-v-1seze57 .framer-1uiflik-container { order: 3; }\",\".framer-fGwhQ.framer-v-1seze57 .framer-py29xq { order: 6; }\",\".framer-fGwhQ.framer-v-1seze57 .framer-56tfgg-container { flex: 1 0 0px; width: 1px; }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-fGwhQ.framer-v-1seze57.framer-1i6x88m, .framer-fGwhQ.framer-v-1seze57 .framer-ogziw1 { gap: 0px; } .framer-fGwhQ.framer-v-1seze57.framer-1i6x88m > * { margin: 0px; margin-bottom: calc(0px / 2); margin-top: calc(0px / 2); } .framer-fGwhQ.framer-v-1seze57.framer-1i6x88m > :first-child { margin-top: 0px; } .framer-fGwhQ.framer-v-1seze57.framer-1i6x88m > :last-child { margin-bottom: 0px; } .framer-fGwhQ.framer-v-1seze57 .framer-ogziw1 > * { margin: 0px; margin-left: calc(10px / 2); margin-right: calc(10px / 2); } .framer-fGwhQ.framer-v-1seze57 .framer-ogziw1 > :first-child { margin-left: 0px; } .framer-fGwhQ.framer-v-1seze57 .framer-ogziw1 > :last-child { margin-right: 0px; } }\",'.framer-fGwhQ[data-border=\"true\"]::after, .framer-fGwhQ [data-border=\"true\"]::after { content: \"\"; border-width: var(--border-top-width, 0) var(--border-right-width, 0) var(--border-bottom-width, 0) var(--border-left-width, 0); border-color: var(--border-color, none); border-style: var(--border-style, none); width: 100%; height: 100%; position: absolute; box-sizing: border-box; left: 0; top: 0; border-radius: inherit; pointer-events: none; }'];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 60\n * @framerIntrinsicWidth 1200\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"auto\"]},\"j5Zcq_cNM\":{\"layout\":[\"fixed\",\"auto\"]},\"wUqth01Sr\":{\"layout\":[\"fixed\",\"auto\"]},\"Fd892kDmd\":{\"layout\":[\"auto\",\"auto\"]},\"hmkP4OW_7\":{\"layout\":[\"fixed\",\"auto\"]},\"FAfrSDieD\":{\"layout\":[\"fixed\",\"auto\"],\"constraints\":[null,null,\"100vh\",\"100vh\"]}}}\n * @framerVariables {\"Cof0RMUzO\":\"textColor\",\"ORnOR2pUN\":\"bgBorder\",\"BeZsA273t\":\"showMenu\",\"sGHTFWZo5\":\"showButton\",\"eGOhp_OqC\":\"joinWaitlist\",\"zzroHIlLa\":\"buttonColor\",\"KDPaGeBIL\":\"buttonTextColor\",\"UTTJR9foI\":\"newTab\",\"dbTkB554q\":\"buttonLink\",\"FFcnuU4Ek\":\"desktopBG\",\"t4qtipNl7\":\"bGBlur\",\"PSllm3IyR\":\"link\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerComponentViewportWidth true\n */const FramerL0XmJSAZ_=withCSS(Component,css,\"framer-fGwhQ\");export default FramerL0XmJSAZ_;FramerL0XmJSAZ_.displayName=\"Header\";FramerL0XmJSAZ_.defaultProps={height:60,width:1200};addPropertyControls(FramerL0XmJSAZ_,{variant:{options:[\"BLOTQHf_D\",\"j5Zcq_cNM\",\"wUqth01Sr\",\"Fd892kDmd\",\"hmkP4OW_7\",\"FAfrSDieD\"],optionTitles:[\"Desktop [Default]\",\"Desktop [Full Width]\",\"Desktop [Boxed]\",\"Desktop [Boxed Mini]\",\"Mobile\",\"Mobile [Menu Opend]\"],title:\"Variant\",type:ControlType.Enum},Cof0RMUzO:{defaultValue:'var(--token-ca945b91-a0a3-4e69-95c0-e2f4bf868399, rgb(255, 255, 255)) /* {\"name\":\"White\"} */',title:\"Text Color\",type:ControlType.Color},ORnOR2pUN:{defaultValue:{borderBottomWidth:1,borderColor:'var(--token-31213cc7-db87-4df4-8209-e72c8adb68fb, rgb(228, 228, 231)) /* {\"name\":\"Gray 200 [Dynamic]\"} */',borderLeftWidth:0,borderRightWidth:0,borderStyle:\"solid\",borderTopWidth:0},title:\"Bg Border\",type:ControlType.Border},BeZsA273t:{defaultValue:true,title:\"Show Menu\",type:ControlType.Boolean},sGHTFWZo5:{defaultValue:true,title:\"Show Button\",type:ControlType.Boolean},eGOhp_OqC:{defaultValue:\"Contact\",description:\"\",displayTextArea:false,placeholder:\"\",title:\"Join Waitlist\",type:ControlType.String},zzroHIlLa:{defaultValue:'var(--token-de5448c6-98bb-4403-96cd-7fe86bf2daa6, rgb(9, 9, 11)) /* {\"name\":\"Gray 950 [Dynamic]\"} */',title:\"Button Color\",type:ControlType.Color},KDPaGeBIL:{defaultValue:'var(--token-2b0e18bf-9e9a-4016-bdfc-5769700a5529, rgb(255, 255, 255)) /* {\"name\":\"White/Gray 950 [Dynamic]\"} */',title:\"Button Text Color\",type:ControlType.Color},UTTJR9foI:{defaultValue:false,title:\"New Tab\",type:ControlType.Boolean},dbTkB554q:{title:\"Button Link\",type:ControlType.Link},FFcnuU4Ek:{defaultValue:'var(--token-5cb9a68d-31cb-4baf-8414-1a3d9276de57, rgba(255, 255, 255, 0.95)) /* {\"name\":\"Header Background [Dynamic]\"} */',title:\"Desktop BG\",type:ControlType.Color},t4qtipNl7:{defaultValue:10,step:1,title:\"BG Blur\",type:ControlType.Number},PSllm3IyR:{title:\"Link\",type:ControlType.Link}});addFonts(FramerL0XmJSAZ_,[{explicitInter:true,fonts:[]},...SmoothScrollFonts,...ConstantLogoFonts,...MenuMenuFonts,...ButtonFonts,...MenuHamburgerMenuFonts,...MenuItemFonts],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerL0XmJSAZ_\",\"slots\":[],\"annotations\":{\"framerIntrinsicWidth\":\"1200\",\"framerDisplayContentsDiv\":\"false\",\"framerVariables\":\"{\\\"Cof0RMUzO\\\":\\\"textColor\\\",\\\"ORnOR2pUN\\\":\\\"bgBorder\\\",\\\"BeZsA273t\\\":\\\"showMenu\\\",\\\"sGHTFWZo5\\\":\\\"showButton\\\",\\\"eGOhp_OqC\\\":\\\"joinWaitlist\\\",\\\"zzroHIlLa\\\":\\\"buttonColor\\\",\\\"KDPaGeBIL\\\":\\\"buttonTextColor\\\",\\\"UTTJR9foI\\\":\\\"newTab\\\",\\\"dbTkB554q\\\":\\\"buttonLink\\\",\\\"FFcnuU4Ek\\\":\\\"desktopBG\\\",\\\"t4qtipNl7\\\":\\\"bGBlur\\\",\\\"PSllm3IyR\\\":\\\"link\\\"}\",\"framerComponentViewportWidth\":\"true\",\"framerIntrinsicHeight\":\"60\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"j5Zcq_cNM\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"wUqth01Sr\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"Fd892kDmd\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"hmkP4OW_7\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"FAfrSDieD\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"],\\\"constraints\\\":[null,null,\\\"100vh\\\",\\\"100vh\\\"]}}}\",\"framerContractVersion\":\"1\",\"framerImmutableVariables\":\"true\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./L0XmJSAZ_.map","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{Children,useEffect,useState,useRef,useMemo,createRef,useCallback,cloneElement}from\"react\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{useAnimationFrame,useReducedMotion,LayoutGroup,useInView,useMotionValue,useTransform,motion,wrap,frame}from\"framer-motion\";import{resize}from\"@motionone/dom\";const MAX_DUPLICATED_ITEMS=100;const MAX_AREA=5e6;const CSS_VAR_NAME=\"--ticker-offset\";const supportsWaapi=typeof Animation!==\"undefined\"&&typeof Animation.prototype.updatePlaybackRate===\"function\";let supportsRegisterProperty=true;if(typeof window!==\"undefined\"){try{window.CSS.registerProperty({name:CSS_VAR_NAME,syntax:\"<length>\",initialValue:\"0px\",inherits:false});}catch(e){supportsRegisterProperty=false;}}/**\n *\n * @framerIntrinsicWidth 400\n * @framerIntrinsicHeight 200\n *\n * @framerDisableUnlink\n *\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n */export default function Ticker(props){/* Props */let{slots,gap,padding,paddingPerSide,paddingTop,paddingRight,paddingBottom,paddingLeft,speed,hoverFactor,direction,alignment,sizingOptions,fadeOptions,style}=props;const{fadeContent,overflow,fadeWidth,fadeInset,fadeAlpha}=fadeOptions;const{widthType,heightType}=sizingOptions;const paddingValue=paddingPerSide?`${paddingTop}px ${paddingRight}px ${paddingBottom}px ${paddingLeft}px`:`${padding}px`;/* Checks */const isCanvas=RenderTarget.current()===RenderTarget.canvas;// Remove empty slots (such as hidden layers)\nconst filteredSlots=slots.filter(Boolean);const numChildren=Children.count(filteredSlots);const hasChildren=numChildren>0;if(direction===true){direction=\"left\";}const isHorizontal=direction===\"left\"||direction===\"right\";const offset=useMotionValue(0);const axis=isHorizontal?\"X\":\"Y\";const minus=direction===\"left\"||direction===\"top\"?\"-\":\"\";const transform=useTransform(()=>`translate${axis}(${minus}${offset.get()}px)`);/* Refs and State */const parentRef=useRef(null);const childrenRef=useMemo(()=>{return[/*#__PURE__*/createRef(),/*#__PURE__*/createRef()];},[]);const[size,setSize]=useState({parent:null,children:null,childrenArea:null});/* Arrays */let clonedChildren=[];let dupedChildren=[];/* Duplicate value */let duplicateBy=0;let opacity=0;if(isCanvas){duplicateBy=numChildren?Math.floor(10/numChildren):0;opacity=1;}if(!isCanvas&&hasChildren&&size.parent){duplicateBy=Math.round(size.parent/size.children*2)+1;duplicateBy=Math.min(duplicateBy,MAX_DUPLICATED_ITEMS);opacity=1;}const fullChildrenArea=size.childrenArea===null?null:size.childrenArea*(duplicateBy+1);const isLayerTooBig=fullChildrenArea===null?null:fullChildrenArea>MAX_AREA;/* Measure parent and child */const measure=useCallback(()=>{if(hasChildren&&parentRef.current){const parentLength=isHorizontal?parentRef.current.offsetWidth:parentRef.current.offsetHeight;const[firstChild,lastChild]=childrenRef;const childrenLeft=firstChild.current?firstChild.current.offsetLeft:0;const childrenRight=lastChild.current?lastChild.current.offsetLeft+lastChild.current.offsetWidth:0;const childrenTop=firstChild.current?firstChild.current.offsetTop:0;const childrenBottom=lastChild.current?lastChild.current.offsetTop+lastChild.current.offsetHeight:0;const childrenWidth=childrenRight-childrenLeft;const childrenHeight=childrenBottom-childrenTop;const childrenArea=childrenWidth*childrenHeight;const childrenLength=(isHorizontal?childrenWidth:childrenHeight)+gap;setSize({parent:parentLength,children:childrenLength,childrenArea});}},[]);const childrenStyles=isCanvas?{contentVisibility:\"auto\"}:{};/* Add refs to first and last child */if(hasChildren){// TODO: These conditional hooks will be unsafe if hasChildren ever changes outside the canvas.\nif(!isCanvas){/**\n             * Track whether this is the initial resize event. By default this will fire on mount,\n             * which we do in the useEffect. We should only fire it on subsequent resizes.\n             */let initialResize=useRef(true);useEffect(()=>{frame.read(measure);return resize(parentRef.current,({contentSize})=>{if(!initialResize.current&&(contentSize.width||contentSize.height)){frame.read(measure);}initialResize.current=false;});},[]);}clonedChildren=Children.map(filteredSlots,(child,index)=>{var _child_props,_child_props1,_child_props2,_child_props3;let ref;if(index===0){ref=childrenRef[0];}if(index===filteredSlots.length-1){ref=childrenRef[1];}const size={width:widthType?(_child_props=child.props)===null||_child_props===void 0?void 0:_child_props.width:\"100%\",height:heightType?(_child_props1=child.props)===null||_child_props1===void 0?void 0:_child_props1.height:\"100%\"};return /*#__PURE__*/_jsx(LayoutGroup,{inherit:\"id\",children:/*#__PURE__*/_jsx(\"li\",{ref:ref,style:size,children:/*#__PURE__*/cloneElement(child,{style:{...(_child_props2=child.props)===null||_child_props2===void 0?void 0:_child_props2.style,...size,flexShrink:0,...childrenStyles},layoutId:child.props.layoutId?child.props.layoutId+\"-original-\"+index:undefined},(_child_props3=child.props)===null||_child_props3===void 0?void 0:_child_props3.children)})},index+\"-original\");});}if(!isCanvas){for(let i=0;i<duplicateBy;i++){dupedChildren=[...dupedChildren,...Children.map(filteredSlots,(child,childIndex)=>{var _child_props,_child_props1,_child_props2,_child_props3,_child_props4,_child_props5;const size={width:widthType?(_child_props=child.props)===null||_child_props===void 0?void 0:_child_props.width:\"100%\",height:heightType?(_child_props1=child.props)===null||_child_props1===void 0?void 0:_child_props1.height:\"100%\",willChange:isLayerTooBig===true?\"auto\":\"transform\"};return /*#__PURE__*/_jsx(LayoutGroup,{inherit:\"id\",children:/*#__PURE__*/_jsx(\"li\",{style:size,\"aria-hidden\":true,children:/*#__PURE__*/cloneElement(child,{key:i+\" \"+childIndex,style:{...(_child_props2=child.props)===null||_child_props2===void 0?void 0:_child_props2.style,width:widthType?(_child_props3=child.props)===null||_child_props3===void 0?void 0:_child_props3.width:\"100%\",height:heightType?(_child_props4=child.props)===null||_child_props4===void 0?void 0:_child_props4.height:\"100%\",flexShrink:0,...childrenStyles},layoutId:child.props.layoutId?child.props.layoutId+\"-dupe-\"+i:undefined},(_child_props5=child.props)===null||_child_props5===void 0?void 0:_child_props5.children)},i+\"li\"+childIndex)},i+\"lg\"+childIndex);})];}}const animateToValue=size.children+size.children*Math.round(size.parent/size.children);const initialTime=useRef(null);const prevTime=useRef(null);const xOrY=useRef(0);const isHover=useRef(false);const isReducedMotion=useReducedMotion();const listRef=useRef(null);const animationRef=useRef(null);/**\n     * Setup animations\n     */if(!isCanvas){const isInView=useInView(parentRef);/**\n         * If this is an animation we can hardware accelerate, animate with WAAPI\n         */if(supportsWaapi&&(!isLayerTooBig||isLayerTooBig&&supportsRegisterProperty)){useEffect(()=>{if(isReducedMotion||!animateToValue||!speed||isLayerTooBig===null){return;}if(isLayerTooBig){try{window.CSS.registerProperty({name:CSS_VAR_NAME,syntax:\"<length>\",initialValue:\"0px\",inherits:false});}catch(e){}}/**\n                 * If the layer is too big we want to animate a CSS variable instead of the transform\n                 * to avoid promoting the layer to the GPU.\n                 */const keyframes=isLayerTooBig?{[CSS_VAR_NAME]:[\"0px\",`${minus}${animateToValue}px`]}:{transform:[`translate${axis}(0px)`,`translate${axis}(${minus}${animateToValue}px)`]};animationRef.current=listRef.current.animate(keyframes,{duration:Math.abs(animateToValue)/speed*1e3,iterations:Infinity,easing:\"linear\"});return()=>animationRef.current.cancel();},[hoverFactor,animateToValue,speed,isLayerTooBig]);// Pause the animation when it's out of view\nuseEffect(()=>{if(!animationRef.current)return;if(isInView&&animationRef.current.playState===\"paused\"){animationRef.current.play();}else if(!isInView&&animationRef.current.playState===\"running\"){animationRef.current.pause();}},[isInView]);}else{/**\n             * If we can't accelerate this animation because we have a hoverFactor defined\n             * animate with a rAF loop.\n             */useAnimationFrame(t=>{if(!animateToValue||isReducedMotion||supportsWaapi){return;}/**\n                 * In case this animation is delayed from starting because we're running a bunch\n                 * of other work, we want to set an initial time rather than counting from 0.\n                 * That ensures that if the animation is delayed, it starts from the first frame\n                 * rather than jumping.\n                 */if(initialTime.current===null){initialTime.current=t;}t=t-initialTime.current;const timeSince=prevTime.current===null?0:t-prevTime.current;let delta=timeSince*(speed/1e3);if(isHover.current){delta*=hoverFactor;}xOrY.current+=delta;xOrY.current=wrap(0,animateToValue,xOrY.current);prevTime.current=t;if(!isInView)return;offset.set(xOrY.current);});}}/* Fades */const fadeDirection=isHorizontal?\"to right\":\"to bottom\";const fadeWidthStart=fadeWidth/2;const fadeWidthEnd=100-fadeWidth/2;const fadeInsetStart=clamp(fadeInset,0,fadeWidthStart);const fadeInsetEnd=100-fadeInset;const fadeMask=`linear-gradient(${fadeDirection}, rgba(0, 0, 0, ${fadeAlpha}) ${fadeInsetStart}%, rgba(0, 0, 0, 1) ${fadeWidthStart}%, rgba(0, 0, 0, 1) ${fadeWidthEnd}%, rgba(0, 0, 0, ${fadeAlpha}) ${fadeInsetEnd}%)`;/* Empty state */if(!hasChildren){return /*#__PURE__*/_jsxs(\"section\",{style:placeholderStyles,children:[/*#__PURE__*/_jsx(\"div\",{style:emojiStyles,children:\"✨\"}),/*#__PURE__*/_jsx(\"p\",{style:titleStyles,children:\"Connect to Content\"}),/*#__PURE__*/_jsx(\"p\",{style:subtitleStyles,children:\"Add layers or components to infinitely loop on your page.\"})]});}return /*#__PURE__*/_jsx(\"section\",{style:{...containerStyle,opacity:opacity,WebkitMaskImage:fadeContent?fadeMask:undefined,MozMaskImage:fadeContent?fadeMask:undefined,maskImage:fadeContent?fadeMask:undefined,overflow:overflow?\"visible\":\"hidden\",padding:paddingValue},ref:parentRef,children:/*#__PURE__*/_jsxs(motion.ul,{ref:listRef,style:{...containerStyle,gap:gap,top:direction===\"bottom\"&&isValidNumber(animateToValue)?-animateToValue:undefined,left:direction===\"right\"&&isValidNumber(animateToValue)?-animateToValue:undefined,placeItems:alignment,position:\"relative\",flexDirection:isHorizontal?\"row\":\"column\",...style,willChange:isCanvas||isLayerTooBig?\"auto\":\"transform\",transform:supportsWaapi?isLayerTooBig?`translate${axis}(var(${CSS_VAR_NAME}))`:\"none\":transform},onMouseEnter:()=>{isHover.current=true;if(animationRef.current){// TODO Replace with updatePlaybackRate when Chrome bugs sorted\nanimationRef.current.playbackRate=hoverFactor;}},onMouseLeave:()=>{isHover.current=false;if(animationRef.current){// TODO Replace with updatePlaybackRate when Chrome bugs sorted\nanimationRef.current.playbackRate=1;}},children:[clonedChildren,dupedChildren]})});}/* Default Properties */Ticker.defaultProps={gap:10,padding:10,sizingOptions:{widthType:true,heightType:true},fadeOptions:{fadeContent:true,overflow:false,fadeWidth:25,fadeAlpha:0,fadeInset:0},direction:true};/* Property Controls */addPropertyControls(Ticker,{slots:{type:ControlType.Array,title:\"Children\",control:{type:ControlType.ComponentInstance}},speed:{type:ControlType.Number,title:\"Speed\",min:0,max:1e3,defaultValue:100,unit:\"%\",displayStepper:true,step:5},direction:{type:ControlType.Enum,title:\"Direction\",options:[\"left\",\"right\",\"top\",\"bottom\"],optionIcons:[\"direction-left\",\"direction-right\",\"direction-up\",\"direction-down\"],optionTitles:[\"Left\",\"Right\",\"Top\",\"Bottom\"],defaultValue:\"left\",displaySegmentedControl:true},alignment:{type:ControlType.Enum,title:\"Align\",options:[\"flex-start\",\"center\",\"flex-end\"],optionIcons:{direction:{right:[\"align-top\",\"align-middle\",\"align-bottom\"],left:[\"align-top\",\"align-middle\",\"align-bottom\"],top:[\"align-left\",\"align-center\",\"align-right\"],bottom:[\"align-left\",\"align-center\",\"align-right\"]}},defaultValue:\"center\",displaySegmentedControl:true},gap:{type:ControlType.Number,title:\"Gap\"},padding:{title:\"Padding\",type:ControlType.FusedNumber,toggleKey:\"paddingPerSide\",toggleTitles:[\"Padding\",\"Padding per side\"],valueKeys:[\"paddingTop\",\"paddingRight\",\"paddingBottom\",\"paddingLeft\"],valueLabels:[\"T\",\"R\",\"B\",\"L\"],min:0},sizingOptions:{type:ControlType.Object,title:\"Sizing\",controls:{widthType:{type:ControlType.Boolean,title:\"Width\",enabledTitle:\"Auto\",disabledTitle:\"Stretch\",defaultValue:true},heightType:{type:ControlType.Boolean,title:\"Height\",enabledTitle:\"Auto\",disabledTitle:\"Stretch\",defaultValue:true}}},fadeOptions:{type:ControlType.Object,title:\"Clipping\",controls:{fadeContent:{type:ControlType.Boolean,title:\"Fade\",defaultValue:true},overflow:{type:ControlType.Boolean,title:\"Overflow\",enabledTitle:\"Show\",disabledTitle:\"Hide\",defaultValue:false,hidden(props){return props.fadeContent===true;}},fadeWidth:{type:ControlType.Number,title:\"Width\",defaultValue:25,min:0,max:100,unit:\"%\",hidden(props){return props.fadeContent===false;}},fadeInset:{type:ControlType.Number,title:\"Inset\",defaultValue:0,min:0,max:100,unit:\"%\",hidden(props){return props.fadeContent===false;}},fadeAlpha:{type:ControlType.Number,title:\"Opacity\",defaultValue:0,min:0,max:1,step:.05,hidden(props){return props.fadeContent===false;}}}},hoverFactor:{type:ControlType.Number,title:\"Hover\",min:0,max:1,unit:\"x\",defaultValue:1,step:.1,displayStepper:true,description:\"Slows down the speed while you are hovering.\"}});/* Placeholder Styles */const containerStyle={display:\"flex\",width:\"100%\",height:\"100%\",maxWidth:\"100%\",maxHeight:\"100%\",placeItems:\"center\",margin:0,padding:0,listStyleType:\"none\",textIndent:\"none\"};/* Styles */const placeholderStyles={display:\"flex\",width:\"100%\",height:\"100%\",placeContent:\"center\",placeItems:\"center\",flexDirection:\"column\",color:\"#96F\",background:\"rgba(136, 85, 255, 0.1)\",fontSize:11,overflow:\"hidden\",padding:\"20px 20px 30px 20px\"};const emojiStyles={fontSize:32,marginBottom:10};const titleStyles={margin:0,marginBottom:10,fontWeight:600,textAlign:\"center\"};const subtitleStyles={margin:0,opacity:.7,maxWidth:150,lineHeight:1.5,textAlign:\"center\"};/* Clamp function, used for fadeInset */const clamp=(num,min,max)=>Math.min(Math.max(num,min),max);const isValidNumber=value=>typeof value===\"number\"&&!isNaN(value);\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Ticker\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"fixed\",\"framerSupportedLayoutHeight\":\"fixed\",\"framerIntrinsicWidth\":\"400\",\"framerIntrinsicHeight\":\"200\",\"framerContractVersion\":\"1\",\"framerDisableUnlink\":\"*\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Ticker.map","// Generated by Framer (b6cf623)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"GF;Inter-regular\",\"Inter-Bold\",\"Inter-BoldItalic\",\"Inter-Italic\"]);export const fonts=[{explicitInter:true,fonts:[{family:\"Inter\",openType:true,source:\"google\",style:\"normal\",url:\"https://fonts.gstatic.com/s/inter/v18/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuLyfMZ1rib2Bg-4.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/DpPBYI0sL4fYLgAkX8KXOPVt7c.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/4RAEQdEOrcnDkhHiiCbJOw92Lk.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/1K3W8DizY3v4emK8Mb08YHxTbs.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/tUSCtfYVM1I1IchuyCwz9gDdQ.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/VgYFWiwsAC5OYxAycRXXvhze58.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/DXD0Q7LSl7HEvDzucnyLnGBHM.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/GIryZETIX4IFypco5pYZONKhJIo.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/H89BbHkbHDzlxZzxi8uPzTsp90.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/u6gJwDuwB143kpNK1T1MDKDWkMc.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/43sJ6MfOPh1LCJt46OvyDuSbA6o.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/wccHG0r4gBDAIRhfHiOlq6oEkqw.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/WZ367JPwf9bRW6LdTHN8rXgSjw.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/QxmhnWTzLtyjIiZcfaLIJ8EFBXU.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/2A4Xx7CngadFGlVV4xrO06OBHY.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/CfMzU8w2e7tHgF4T4rATMPuWosA.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/867QObYax8ANsfX4TGEVU9YiCM.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/Oyn2ZbENFdnW7mt2Lzjk1h9Zb9k.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/cdAe8hgZ1cMyLu9g005pAW3xMo.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/DOfvtmE1UplCq161m6Hj8CSQYg.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/vFzuJY0c65av44uhEKB6vyjFMg.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/tKtBcDnBMevsEEJKdNGhhkLzYo.woff2\",weight:\"400\"}]}];export const css=['.framer-TN2WV .framer-styles-preset-jbijs2:not(.rich-text-wrapper), .framer-TN2WV .framer-styles-preset-jbijs2.rich-text-wrapper p { --framer-font-family: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-open-type-features: \\'blwf\\' on, \\'cv09\\' on, \\'cv03\\' on, \\'cv04\\' on, \\'cv11\\' on; --framer-font-size: 16px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 400; --framer-letter-spacing: 0em; --framer-line-height: 1.6em; --framer-paragraph-spacing: 20px; --framer-text-alignment: start; --framer-text-color: #666666; --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }','@media (max-width: 1899px) and (min-width: 1200px) { .framer-TN2WV .framer-styles-preset-jbijs2:not(.rich-text-wrapper), .framer-TN2WV .framer-styles-preset-jbijs2.rich-text-wrapper p { --framer-font-family: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-open-type-features: \\'blwf\\' on, \\'cv09\\' on, \\'cv03\\' on, \\'cv04\\' on, \\'cv11\\' on; --framer-font-size: 15px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 400; --framer-letter-spacing: 0em; --framer-line-height: 1.6em; --framer-paragraph-spacing: 20px; --framer-text-alignment: start; --framer-text-color: #666666; --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }','@media (max-width: 1199px) and (min-width: 810px) { .framer-TN2WV .framer-styles-preset-jbijs2:not(.rich-text-wrapper), .framer-TN2WV .framer-styles-preset-jbijs2.rich-text-wrapper p { --framer-font-family: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-open-type-features: \\'blwf\\' on, \\'cv09\\' on, \\'cv03\\' on, \\'cv04\\' on, \\'cv11\\' on; --framer-font-size: 14px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 400; --framer-letter-spacing: 0em; --framer-line-height: 1.6em; --framer-paragraph-spacing: 20px; --framer-text-alignment: start; --framer-text-color: #666666; --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }','@media (max-width: 809px) and (min-width: 0px) { .framer-TN2WV .framer-styles-preset-jbijs2:not(.rich-text-wrapper), .framer-TN2WV .framer-styles-preset-jbijs2.rich-text-wrapper p { --framer-font-family: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-open-type-features: \\'blwf\\' on, \\'cv09\\' on, \\'cv03\\' on, \\'cv04\\' on, \\'cv11\\' on; --framer-font-size: 14px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 400; --framer-letter-spacing: 0em; --framer-line-height: 1.6em; --framer-paragraph-spacing: 20px; --framer-text-alignment: start; --framer-text-color: #666666; --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }'];export const className=\"framer-TN2WV\";\nexport const __FramerMetadata__ = {\"exports\":{\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (8ea6382)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,ControlType,cx,getFonts,getFontsFromSharedStyle,Image,RichText,SmartComponentScopedContainer,SVG,useComponentViewport,useLocaleInfo,useVariantState,withCSS,withFX,withOptimizedAppearEffect}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import Ticker from\"https://framerusercontent.com/modules/B2xAlJLcN0gOnt11mSPw/RLUeKLNmERbgkhrJQwKX/Ticker.js\";import*as sharedStyle from\"https://framerusercontent.com/modules/et6JkTRO8IVJ2Mkze7aJ/RgQUqqZYJCUpWsTRrrYH/L1uzTq5oS.js\";const TickerFonts=getFonts(Ticker);const MotionDivWithFXWithOptimizedAppearEffect=withOptimizedAppearEffect(withFX(motion.div));const cycleOrder=[\"PER248Whv\",\"BwP5sdq78\",\"Nta9X9bwB\",\"cXXc2BDjq\"];const serializationHash=\"framer-4HslC\";const variantClassNames={BwP5sdq78:\"framer-v-1uokjyk\",cXXc2BDjq:\"framer-v-1uet4xl\",Nta9X9bwB:\"framer-v-1yl79pi\",PER248Whv:\"framer-v-1kbn3i5\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={bounce:.2,delay:0,duration:.4,type:\"spring\"};const transition2={damping:50,delay:.5,mass:1,stiffness:400,type:\"spring\"};const animation={opacity:1,rotate:0,rotateX:0,rotateY:0,scale:1,skewX:0,skewY:0,transition:transition2,x:0,y:0};const animation1={opacity:.001,rotate:0,rotateX:0,rotateY:0,scale:1,skewX:0,skewY:0,x:0,y:10};const transition3={damping:30,delay:0,mass:1,stiffness:400,type:\"spring\"};const animation2={opacity:1,rotate:0,rotateX:0,rotateY:0,scale:1,skewX:0,skewY:0,transition:transition3};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const humanReadableVariantMap={Desktop:\"PER248Whv\",Laptop:\"BwP5sdq78\",Phone:\"cXXc2BDjq\",Tablet:\"Nta9X9bwB\"};const getProps=({height,id,width,...props})=>{return{...props,variant:humanReadableVariantMap[props.variant]??props.variant??\"PER248Whv\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"PER248Whv\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[sharedStyle.className];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsxs(motion.section,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-1kbn3i5\",className,classNames),\"data-framer-name\":\"Desktop\",layoutDependency:layoutDependency,layoutId:\"PER248Whv\",ref:refBinding,style:{background:'linear-gradient(180deg, var(--token-6e44f8a4-229c-4714-bc9a-6f15586a4b26, rgb(20, 22, 28)) /* {\"name\":\"Accent 2\"} */ 50%, var(--token-6e44f8a4-229c-4714-bc9a-6f15586a4b26, rgb(20, 22, 28)) /* {\"name\":\"Accent 2\"} */ 100%)',...style},...addPropertyOverrides({BwP5sdq78:{\"data-framer-name\":\"Laptop\"},cXXc2BDjq:{\"data-framer-name\":\"Phone\"},Nta9X9bwB:{\"data-framer-name\":\"Tablet\"}},baseVariant,gestureVariant),children:[/*#__PURE__*/_jsx(motion.div,{className:\"framer-5br65l\",\"data-framer-name\":\"Content\",layoutDependency:layoutDependency,layoutId:\"t7Q5FPV5e\",children:/*#__PURE__*/_jsxs(motion.div,{className:\"framer-124ww89\",layoutDependency:layoutDependency,layoutId:\"nY2v8CRhF\",children:[/*#__PURE__*/_jsxs(MotionDivWithFXWithOptimizedAppearEffect,{__perspectiveFX:false,__smartComponentFX:true,__targetOpacity:1,animate:animation,className:\"framer-1q8s6f7\",\"data-framer-appear-id\":\"1q8s6f7\",initial:animation1,layoutDependency:layoutDependency,layoutId:\"oEpLclxM4\",optimized:true,children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-jbijs2\",\"data-styles-preset\":\"L1uzTq5oS\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-ca945b91-a0a3-4e69-95c0-e2f4bf868399, rgb(255, 255, 255)))\"},children:\"Backed by sophisticated venture capital firms\"})}),className:\"framer-1hxvrba\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"UrbAtdoDm\",style:{\"--extracted-r6o4lv\":\"var(--token-ca945b91-a0a3-4e69-95c0-e2f4bf868399, rgb(255, 255, 255))\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-187tps9\",\"data-framer-name\":\"Logos\",layoutDependency:layoutDependency,layoutId:\"KkVDGkw7c\",children:/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1mpjbxk-container\",isAuthoredByUser:true,isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"PlvkXu7eZ-container\",nodeId:\"PlvkXu7eZ\",rendersWithMotion:true,scopeId:\"msKqGLnqR\",style:{filter:\"invert(1)\",opacity:.75,WebkitFilter:\"invert(1)\"},whileHover:animation2,children:/*#__PURE__*/_jsx(Ticker,{alignment:\"center\",direction:\"left\",fadeOptions:{fadeAlpha:0,fadeContent:true,fadeInset:0,fadeWidth:80,overflow:false},gap:80,height:\"100%\",hoverFactor:.5,id:\"PlvkXu7eZ\",layoutId:\"PlvkXu7eZ\",padding:10,paddingBottom:10,paddingLeft:10,paddingPerSide:false,paddingRight:10,paddingTop:10,sizingOptions:{heightType:true,widthType:true},slots:[/*#__PURE__*/_jsx(Image,{background:{alt:\"\",fit:\"fill\",intrinsicHeight:71,intrinsicWidth:312,pixelHeight:142,pixelWidth:624,sizes:\"154px\",src:\"https://framerusercontent.com/images/IYy6uIk3Us97XCkWdxhxkhDEEQ.png?scale-down-to=512\",srcSet:\"https://framerusercontent.com/images/IYy6uIk3Us97XCkWdxhxkhDEEQ.png?scale-down-to=512 512w,https://framerusercontent.com/images/IYy6uIk3Us97XCkWdxhxkhDEEQ.png 624w\"},className:\"framer-e7lijw\",\"data-framer-name\":\"Image\",layoutDependency:layoutDependency,layoutId:\"sjCWtzGtQ\"}),/*#__PURE__*/_jsx(Image,{background:{alt:\"\",fit:\"fill\",intrinsicHeight:75,intrinsicWidth:166,pixelHeight:150,pixelWidth:332,src:\"https://framerusercontent.com/images/y0QFtvB2Fxlq1Fg1bPnYCh8Hd4.png\"},className:\"framer-jzogd5\",\"data-framer-name\":\"Image\",layoutDependency:layoutDependency,layoutId:\"WT_Sy3036\"}),/*#__PURE__*/_jsx(Image,{background:{alt:\"\",fit:\"fill\",intrinsicHeight:51,intrinsicWidth:322,pixelHeight:102,pixelWidth:644,sizes:\"154px\",src:\"https://framerusercontent.com/images/xOFPntb8msozDKD4YfrENOfr2YI.png?scale-down-to=512\",srcSet:\"https://framerusercontent.com/images/xOFPntb8msozDKD4YfrENOfr2YI.png?scale-down-to=512 512w,https://framerusercontent.com/images/xOFPntb8msozDKD4YfrENOfr2YI.png 644w\"},className:\"framer-g7eehn\",\"data-framer-name\":\"Image\",layoutDependency:layoutDependency,layoutId:\"ErWjUFyDo\"}),/*#__PURE__*/_jsx(Image,{background:{alt:\"\",fit:\"fill\",intrinsicHeight:70.5,intrinsicWidth:278,pixelHeight:141,pixelWidth:556,sizes:\"169px\",src:\"https://framerusercontent.com/images/s7T4UAm5DvO6OMkX2Q2Tyiojdc.png?scale-down-to=512\",srcSet:\"https://framerusercontent.com/images/s7T4UAm5DvO6OMkX2Q2Tyiojdc.png?scale-down-to=512 512w,https://framerusercontent.com/images/s7T4UAm5DvO6OMkX2Q2Tyiojdc.png 556w\"},className:\"framer-1eo9eq2\",\"data-framer-name\":\"Image\",layoutDependency:layoutDependency,layoutId:\"MuM9gDYlO\"}),/*#__PURE__*/_jsx(Image,{background:{alt:\"\",fit:\"fill\",intrinsicHeight:114.5,intrinsicWidth:278.5,pixelHeight:229,pixelWidth:557,sizes:\"79px\",src:\"https://framerusercontent.com/images/pxdFaVyuB6gmmDb4XMARgRsE.png?scale-down-to=512\",srcSet:\"https://framerusercontent.com/images/pxdFaVyuB6gmmDb4XMARgRsE.png?scale-down-to=512 512w,https://framerusercontent.com/images/pxdFaVyuB6gmmDb4XMARgRsE.png 557w\"},className:\"framer-19uvnmb\",\"data-framer-name\":\"Image\",layoutDependency:layoutDependency,layoutId:\"ERxKabtS1\"}),/*#__PURE__*/_jsx(Image,{background:{alt:\"\",fit:\"fill\",intrinsicHeight:166,intrinsicWidth:415,pixelHeight:332,pixelWidth:830,sizes:\"86px\",src:\"https://framerusercontent.com/images/akxGVBJxcJtzSvpF1E3tSow.png?scale-down-to=512\",srcSet:\"https://framerusercontent.com/images/akxGVBJxcJtzSvpF1E3tSow.png?scale-down-to=512 512w,https://framerusercontent.com/images/akxGVBJxcJtzSvpF1E3tSow.png 830w\"},className:\"framer-15amaqg\",\"data-framer-name\":\"Image\",layoutDependency:layoutDependency,layoutId:\"W8MbNqlpA\"})],speed:40,style:{height:\"100%\",width:\"100%\"},width:\"100%\"})})})})]}),/*#__PURE__*/_jsxs(MotionDivWithFXWithOptimizedAppearEffect,{__perspectiveFX:false,__smartComponentFX:true,__targetOpacity:1,animate:animation,className:\"framer-iwilxq\",\"data-framer-appear-id\":\"iwilxq\",initial:animation1,layoutDependency:layoutDependency,layoutId:\"OjZsFdYEH\",optimized:true,children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-jbijs2\",\"data-styles-preset\":\"L1uzTq5oS\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-ca945b91-a0a3-4e69-95c0-e2f4bf868399, rgb(255, 255, 255)))\"},children:\"And backed by individual investors drawing experience from\"})}),className:\"framer-u67hng\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"wuQVLoGLu\",style:{\"--extracted-r6o4lv\":\"var(--token-ca945b91-a0a3-4e69-95c0-e2f4bf868399, rgb(255, 255, 255))\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({cXXc2BDjq:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-jbijs2\",\"data-styles-preset\":\"L1uzTq5oS\",style:{\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-ca945b91-a0a3-4e69-95c0-e2f4bf868399, rgb(255, 255, 255)))\"},children:\"And backed by individual investors drawing experience from\"})})},Nta9X9bwB:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-jbijs2\",\"data-styles-preset\":\"L1uzTq5oS\",style:{\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-ca945b91-a0a3-4e69-95c0-e2f4bf868399, rgb(255, 255, 255)))\"},children:\"And backed by individual investors drawing experience from\"})})}},baseVariant,gestureVariant)}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-1e096wo\",\"data-framer-name\":\"Logos\",layoutDependency:layoutDependency,layoutId:\"ptYrEZwyg\",children:/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-547vx-container\",isAuthoredByUser:true,isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"yppPZ_GXm-container\",nodeId:\"yppPZ_GXm\",rendersWithMotion:true,scopeId:\"msKqGLnqR\",style:{filter:\"invert(1)\",opacity:.75,WebkitFilter:\"invert(1)\"},whileHover:animation2,children:/*#__PURE__*/_jsx(Ticker,{alignment:\"center\",direction:\"right\",fadeOptions:{fadeAlpha:0,fadeContent:true,fadeInset:0,fadeWidth:80,overflow:false},gap:80,height:\"100%\",hoverFactor:.5,id:\"yppPZ_GXm\",layoutId:\"yppPZ_GXm\",padding:10,paddingBottom:10,paddingLeft:10,paddingPerSide:false,paddingRight:10,paddingTop:10,sizingOptions:{heightType:true,widthType:true},slots:[/*#__PURE__*/_jsx(SVG,{className:\"framer-axjab0\",\"data-framer-name\":\"Princeton\",layout:\"position\",layoutDependency:layoutDependency,layoutId:\"e4SGcd4RE\",opacity:1,svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 126 32\"><g transform=\"translate(0.488 0)\" id=\"ss8633014098_1\"><path d=\"M 0 0.488 L 124.8 0.488 L 124.8 31.688 L 0 31.688 Z\" fill=\"transparent\"></path><path d=\"M 124.8 0.436 C 124.799 0.355 124.78 0.276 124.744 0.203 L 124.382 0.203 C 123.545 0.203 123.015 0.233 121.482 0.233 C 120.953 0.233 120.199 0.203 120.004 0.203 L 119.558 0.203 C 119.502 0.233 119.502 0.436 119.502 0.494 C 119.502 0.61 119.531 0.698 119.586 0.785 C 120.18 0.878 120.761 1.044 121.314 1.279 C 121.621 1.832 121.816 2.442 121.816 3.082 C 121.845 3.343 121.845 3.605 121.845 4.332 L 121.845 7.995 C 121.845 8.256 121.845 8.489 121.816 8.751 C 121.538 8.431 121.119 7.791 120.451 7.006 L 114.818 0.523 C 114.734 0.436 114.651 0.349 114.567 0.291 C 114.428 0.291 114.205 0.261 114.066 0.261 C 112.978 0.261 111.026 0.203 110.748 0.203 C 110.719 0.291 110.692 0.349 110.692 0.436 C 110.692 0.552 110.719 0.669 110.748 0.785 C 111.221 0.872 111.668 1.105 112.002 1.454 C 112.336 1.774 112.643 2.151 112.894 2.558 C 112.95 2.733 112.978 2.936 112.95 3.111 C 112.95 4.011 112.894 5.291 112.894 6.541 L 112.894 10.117 C 112.894 10.553 112.867 11.018 112.783 11.454 C 112.295 11.915 111.685 12.228 111.026 12.356 C 110.992 12.459 110.973 12.567 110.971 12.676 C 110.971 12.733 110.998 12.908 111.026 12.908 L 111.333 12.908 C 111.668 12.908 112.448 12.85 112.95 12.85 C 113.703 12.85 114.205 12.908 114.874 12.908 L 115.878 12.908 C 115.934 12.878 115.961 12.675 115.961 12.618 C 115.961 12.53 115.934 12.414 115.906 12.326 C 115.126 12.23 114.41 11.847 113.898 11.251 C 113.755 10.533 113.68 9.803 113.675 9.071 C 113.675 8.518 113.647 7.733 113.647 6.716 C 113.647 5.32 113.675 4.128 113.675 3.518 C 113.787 3.634 113.898 3.808 113.982 3.896 L 121.761 12.996 C 121.905 13.078 122.069 13.118 122.235 13.111 C 122.291 13.111 122.374 13.111 122.43 13.082 C 122.531 12.833 122.578 12.566 122.57 12.297 C 122.57 11.803 122.542 11.251 122.542 10.989 L 122.542 3.663 C 122.542 1.483 123.545 0.843 124.689 0.814 C 124.8 0.669 124.8 0.552 124.8 0.436 Z M 105.534 6.018 C 105.534 8.663 104.836 10.989 103.86 11.832 C 103.359 12.268 102.717 12.472 102.076 12.472 C 101.184 12.53 100.319 12.065 99.846 11.309 C 99.149 9.914 98.814 8.344 98.842 6.745 C 98.842 4.303 99.456 2.384 100.515 1.454 C 100.997 1.02 101.624 0.782 102.272 0.785 C 103.164 0.785 104.028 1.221 104.557 2.006 C 105.227 2.878 105.534 4.216 105.534 6.018 Z M 108.573 6.367 C 108.656 4.099 107.513 1.977 105.589 0.901 C 104.622 0.315 103.514 0.003 102.383 0 C 100.096 0.03 97.95 1.25 96.723 3.256 C 96.083 4.328 95.746 5.554 95.747 6.803 C 95.747 8.809 96.639 10.698 98.145 11.949 C 99.249 12.789 100.606 13.23 101.993 13.199 C 102.857 13.199 103.721 13.024 104.557 12.704 C 105.458 12.345 106.261 11.777 106.9 11.047 C 108.015 9.768 108.6 8.082 108.573 6.367 Z M 93.796 4.157 L 93.796 0.581 C 93.796 0.32 93.684 0.261 93.433 0.261 C 92.931 0.261 90.282 0.32 87.577 0.32 C 85.487 0.32 83.757 0.29 82.81 0.29 L 81.555 0.29 C 81.332 0.29 81.276 0.349 81.276 0.581 L 81.276 3.925 C 81.36 3.983 81.443 4.012 81.556 3.983 C 81.666 3.983 81.806 3.983 81.917 3.953 C 82.67 2.355 83.367 1.512 84.259 1.018 C 84.761 0.959 85.765 0.959 86.016 0.959 C 86.044 1.163 86.044 1.773 86.072 2.5 C 86.1 3.75 86.1 4.303 86.1 7.297 C 86.1 9.884 86.072 11.047 86.044 11.309 C 85.988 11.803 86.072 12.181 84.036 12.269 C 83.981 12.385 83.981 12.53 83.981 12.675 C 83.981 12.763 83.981 12.85 84.009 12.966 L 84.65 12.966 C 85.263 12.966 86.74 12.908 87.355 12.908 C 87.829 12.908 89.417 12.966 90.421 12.966 L 90.896 12.966 C 90.951 12.85 90.951 12.734 90.951 12.588 C 90.949 12.479 90.93 12.371 90.896 12.268 C 90.301 12.323 89.702 12.212 89.166 11.948 C 89.051 11.522 89.004 11.081 89.027 10.64 C 88.999 8.75 88.999 8.024 88.999 6.774 C 88.999 5.146 89.027 4.041 89.027 1.018 C 89.251 1.018 89.808 0.988 90.31 1.018 C 91.118 1.192 91.816 1.658 92.317 2.355 C 92.68 2.965 92.987 3.605 93.21 4.274 C 93.294 4.303 93.405 4.303 93.489 4.303 C 93.572 4.215 93.684 4.186 93.796 4.157 Z M 79.296 9.855 C 79.296 9.681 79.296 9.507 79.269 9.361 C 79.185 9.303 79.101 9.303 79.017 9.303 C 78.907 9.303 78.767 9.303 78.656 9.333 C 78.268 10.36 77.637 11.278 76.816 12.007 C 76.42 12.175 75.989 12.244 75.56 12.21 L 74.194 12.21 C 73.832 12.21 73.441 12.181 73.079 12.123 C 72.828 12.065 72.549 11.658 72.438 11.367 C 72.277 11.022 72.209 10.641 72.242 10.262 L 72.242 6.425 L 72.856 6.425 C 73.218 6.425 73.553 6.512 73.887 6.657 C 74.222 6.803 74.473 7.064 74.64 7.384 C 74.78 7.849 74.891 8.344 74.919 8.838 C 75.059 8.896 75.198 8.925 75.365 8.896 C 75.482 8.895 75.597 8.865 75.7 8.809 C 75.7 8.344 75.588 7.064 75.588 6.367 C 75.588 5.495 75.7 4.274 75.756 3.663 C 75.656 3.602 75.536 3.581 75.421 3.605 C 75.281 3.605 75.114 3.605 74.975 3.663 C 74.919 3.896 74.752 4.651 74.696 4.71 C 74.445 5.146 74.026 5.466 73.553 5.61 C 73.246 5.698 72.912 5.727 72.577 5.756 L 72.242 5.756 L 72.242 4.128 C 72.242 2.442 72.27 1.89 72.298 1.57 C 72.329 1.368 72.348 1.164 72.354 0.96 C 72.688 0.93 73.023 0.901 73.358 0.93 C 74.333 0.93 74.78 0.96 74.947 0.96 C 75.337 0.96 75.699 1.076 76.035 1.308 C 76.706 1.927 77.254 2.667 77.652 3.488 C 77.762 3.518 77.875 3.518 78.014 3.518 C 78.125 3.518 78.125 3.488 78.264 3.401 C 78.264 2.326 78.209 0.959 78.154 0.494 C 78.125 0.32 78.097 0.262 77.763 0.262 C 77.623 0.262 76.983 0.232 76.313 0.232 C 75.365 0.232 74.975 0.262 73.497 0.262 C 72.717 0.262 71.071 0.291 70.374 0.291 C 69.371 0.291 68.506 0.261 68.06 0.261 L 67.502 0.261 C 67.445 0.347 67.416 0.449 67.419 0.552 C 67.419 0.669 67.447 0.785 67.502 0.902 C 67.921 0.93 68.339 0.988 68.729 1.105 C 69.092 1.366 69.315 1.773 69.343 2.239 C 69.371 2.616 69.398 3.634 69.398 4.419 L 69.398 8.024 C 69.398 8.751 69.371 9.826 69.371 10.262 C 69.337 10.83 69.214 11.389 69.008 11.919 C 68.525 12.093 68.015 12.181 67.502 12.181 C 67.448 12.3 67.42 12.429 67.419 12.559 C 67.419 12.675 67.447 12.792 67.502 12.879 L 68.06 12.879 C 68.59 12.879 70.597 12.821 71.043 12.821 C 71.462 12.821 72.27 12.85 73.246 12.85 C 73.776 12.85 75.366 12.966 78.766 12.966 C 78.906 12.966 79.074 12.966 79.213 12.937 C 79.269 12.85 79.297 12.762 79.269 12.647 C 79.297 12.297 79.297 11.28 79.297 9.855 Z M 65.049 10.465 C 64.965 10.205 64.742 10.03 64.463 10.059 C 64.435 10.059 64.38 10.088 64.352 10.088 C 63.348 11.571 62.232 12.152 60.978 12.152 C 59.5 12.152 58.162 11.251 57.576 9.826 C 57.231 8.795 57.052 7.715 57.046 6.628 C 57.017 5.579 57.188 4.533 57.548 3.547 C 58.302 1.512 59.362 0.872 60.672 0.872 C 61.772 0.936 62.776 1.519 63.377 2.442 C 63.762 3.106 64.053 3.82 64.241 4.564 C 64.353 4.594 64.492 4.622 64.604 4.622 C 64.746 4.618 64.883 4.567 64.994 4.477 C 64.966 4.274 64.799 2.937 64.799 2.5 C 64.799 1.977 64.939 1.105 64.939 0.785 C 64.741 0.674 64.523 0.605 64.297 0.581 C 64.071 0.797 63.874 1.042 63.711 1.308 C 62.662 0.445 61.332 0 59.975 0.058 C 58.385 0 56.879 0.64 55.764 1.802 C 54.537 3.111 53.896 4.913 53.952 6.745 C 53.896 8.78 54.788 10.727 56.322 11.978 C 57.469 12.786 58.851 13.194 60.253 13.14 C 62.316 13.14 63.794 12.326 64.547 11.25 C 64.77 11.018 64.937 10.757 65.049 10.466 Z M 51.972 0.437 C 51.97 0.356 51.951 0.277 51.916 0.204 L 51.526 0.204 C 50.689 0.204 50.16 0.234 48.626 0.234 C 48.096 0.234 47.344 0.204 47.149 0.204 L 46.702 0.204 C 46.647 0.234 46.647 0.437 46.647 0.495 C 46.647 0.611 46.675 0.699 46.73 0.786 C 47.324 0.879 47.905 1.045 48.459 1.28 C 48.766 1.833 48.933 2.443 48.933 3.083 C 48.961 3.344 48.961 3.606 48.961 4.333 L 48.961 7.996 C 48.961 8.257 48.961 8.49 48.933 8.752 C 48.654 8.432 48.236 7.792 47.567 7.007 L 41.962 0.523 C 41.886 0.438 41.802 0.36 41.712 0.291 C 41.572 0.291 41.349 0.261 41.21 0.261 C 40.122 0.261 38.17 0.203 37.892 0.203 C 37.864 0.291 37.836 0.349 37.836 0.436 C 37.836 0.552 37.864 0.669 37.892 0.785 C 38.366 0.872 38.812 1.105 39.146 1.454 C 39.481 1.774 39.788 2.151 40.039 2.558 C 40.094 2.733 40.122 2.936 40.094 3.111 C 40.094 4.011 40.039 5.291 40.039 6.541 L 40.039 10.117 C 40.039 10.553 40.011 11.018 39.927 11.454 C 39.439 11.915 38.829 12.228 38.17 12.356 C 38.143 12.472 38.115 12.559 38.115 12.676 C 38.115 12.733 38.143 12.908 38.17 12.908 L 38.477 12.908 C 38.812 12.908 39.592 12.85 40.094 12.85 C 40.847 12.85 41.349 12.908 42.018 12.908 L 43.022 12.908 C 43.078 12.878 43.106 12.675 43.106 12.618 C 43.101 12.519 43.082 12.42 43.05 12.326 C 42.27 12.239 41.572 11.832 41.042 11.251 C 40.899 10.533 40.824 9.803 40.819 9.071 C 40.819 8.518 40.791 7.733 40.791 6.716 C 40.791 5.32 40.819 4.128 40.819 3.518 C 40.931 3.634 41.042 3.808 41.126 3.896 L 48.877 12.996 C 49.017 13.082 49.184 13.111 49.351 13.111 C 49.407 13.111 49.491 13.111 49.546 13.082 C 49.647 12.833 49.694 12.566 49.686 12.297 C 49.686 11.803 49.658 11.251 49.658 10.989 L 49.658 3.663 C 49.658 1.483 50.662 0.843 51.805 0.814 C 51.945 0.669 51.972 0.552 51.972 0.436 Z M 35.327 12.588 C 35.327 12.472 35.299 12.356 35.271 12.239 C 34.851 12.205 34.433 12.157 34.016 12.094 C 33.709 11.706 33.508 11.246 33.431 10.757 C 33.403 9.914 33.403 8.169 33.403 6.541 L 33.403 2.24 C 33.375 1.89 33.486 1.57 33.709 1.28 C 34.155 0.99 34.685 0.844 35.215 0.815 C 35.243 0.699 35.271 0.582 35.271 0.495 C 35.269 0.393 35.24 0.293 35.187 0.205 L 34.713 0.205 C 34.016 0.205 32.371 0.292 31.785 0.292 C 31.423 0.292 29.778 0.234 29.053 0.234 L 28.691 0.234 C 28.638 0.322 28.609 0.422 28.607 0.524 C 28.607 0.641 28.607 0.757 28.635 0.844 C 29.081 0.844 29.527 0.931 29.945 1.106 C 30.335 1.484 30.531 2.036 30.503 2.588 C 30.531 2.908 30.531 3.635 30.559 5.263 C 30.587 6.135 30.587 7.356 30.587 8.373 C 30.587 8.868 30.559 10.031 30.531 10.641 C 30.503 10.991 30.447 11.368 30.308 11.688 C 30.113 11.862 29.89 12.182 28.663 12.269 C 28.635 12.386 28.607 12.502 28.607 12.647 C 28.607 12.793 28.635 12.851 28.635 12.938 L 28.914 12.938 C 29.583 12.938 31.256 12.851 32.148 12.851 C 32.398 12.851 34.155 12.909 34.713 12.909 L 35.271 12.909 C 35.299 12.793 35.327 12.705 35.327 12.589 Z M 21.832 3.46 C 21.832 4.535 21.134 5.785 20.298 5.989 C 19.852 6.105 19.378 6.134 18.904 6.134 C 18.709 6.134 18.486 6.134 18.291 6.105 L 18.263 4.622 L 18.263 1.366 C 18.263 1.221 18.29 1.105 18.374 0.988 C 18.597 0.901 18.848 0.872 19.071 0.872 C 20.381 0.872 20.967 0.988 21.413 1.832 C 21.717 2.319 21.863 2.887 21.832 3.46 Z M 26.711 12.617 C 26.71 12.486 26.681 12.358 26.627 12.239 C 26.237 12.239 25.875 12.181 25.512 12.007 C 25.409 11.868 25.316 11.723 25.233 11.571 C 25.038 10.886 24.796 10.216 24.508 9.565 C 24.235 8.79 23.809 8.077 23.254 7.471 C 22.864 7.21 22.445 7.035 21.999 6.891 C 21.72 6.774 21.525 6.687 21.302 6.599 C 21.525 6.541 21.748 6.512 21.999 6.483 C 23.254 6.309 23.532 6.105 23.839 5.843 C 24.514 5.286 24.894 4.45 24.871 3.576 C 24.899 2.151 24.034 0.872 22.78 0.378 C 22.12 0.238 21.447 0.17 20.772 0.174 C 19.517 0.174 17.732 0.291 16.896 0.291 C 16.646 0.291 15.168 0.261 14.582 0.261 C 14.332 0.261 13.69 0.233 13.578 0.233 C 13.525 0.331 13.496 0.441 13.495 0.553 C 13.495 0.669 13.495 0.756 13.523 0.873 C 13.802 0.901 14.331 0.988 14.61 1.018 C 14.917 1.25 15.168 1.598 15.307 1.977 C 15.419 3.46 15.447 4.971 15.419 6.454 C 15.419 8.256 15.447 10.321 15.363 10.989 C 15.363 11.483 15.084 11.919 14.666 12.152 C 14.359 12.21 14.025 12.239 13.718 12.268 C 13.664 12.377 13.635 12.496 13.634 12.618 C 13.634 12.704 13.662 12.821 13.69 12.908 C 13.94 12.908 16.506 12.85 17.036 12.85 C 18.123 12.85 19.016 12.908 19.991 12.908 C 20.023 12.824 20.042 12.736 20.047 12.646 C 20.047 12.53 20.019 12.385 19.991 12.268 C 19.657 12.239 19.239 12.123 19.043 12.094 C 18.572 11.861 18.287 11.368 18.318 10.844 L 18.291 6.803 C 18.43 6.773 18.569 6.773 18.737 6.773 C 19.043 6.773 19.35 6.89 19.629 7.064 C 20.185 7.358 20.648 7.802 20.967 8.344 C 21.553 9.536 21.887 10.786 22.027 12.123 C 22.082 12.501 22.222 12.821 22.529 12.85 C 22.668 12.879 23.56 12.908 24.202 12.908 L 26.599 12.908 C 26.676 12.832 26.716 12.726 26.711 12.618 Z M 8.448 3.547 C 8.476 4.361 8.169 5.175 7.584 5.727 C 7.07 6.081 6.449 6.246 5.827 6.192 C 5.577 6.192 5.353 6.192 5.102 6.163 C 4.962 6.134 4.879 6.134 4.879 6.047 L 4.907 0.901 C 5.229 0.843 5.556 0.814 5.883 0.814 C 7.026 0.814 7.723 1.104 8.058 1.861 C 8.337 2.384 8.448 2.936 8.448 3.547 Z M 11.459 3.605 C 11.479 2.327 10.779 1.146 9.647 0.552 C 8.678 0.228 7.656 0.09 6.636 0.145 C 5.353 0.145 3.318 0.262 2.426 0.262 C 1.812 0.262 0.864 0.203 0.335 0.203 C 0.278 0.289 0.249 0.391 0.251 0.494 C 0.251 0.61 0.251 0.727 0.307 0.844 C 0.613 0.959 1.143 1.047 1.477 1.134 C 1.757 1.395 1.896 1.744 1.924 2.122 C 1.98 2.732 2.007 3.518 2.007 4.855 C 2.007 8.547 1.98 10.495 1.952 10.931 C 1.893 11.492 1.528 11.973 1.004 12.181 C 0.684 12.267 0.358 12.326 0.028 12.356 C 0 12.472 0 12.588 0 12.733 C 0 12.821 0 12.908 0.056 12.995 C 0.586 12.995 2.175 12.937 2.788 12.937 C 4.294 12.937 5.828 12.995 6.441 12.995 L 6.859 12.995 C 6.915 12.908 6.915 12.821 6.915 12.705 C 6.915 12.588 6.915 12.501 6.887 12.385 C 6.329 12.385 5.772 12.181 5.297 11.832 C 5.063 11.535 4.944 11.164 4.963 10.786 L 4.907 6.919 C 5.911 6.977 6.998 7.035 7.584 7.035 C 8.247 7.03 8.906 6.922 9.536 6.715 C 10.731 6.144 11.482 4.929 11.459 3.605 Z M 124.8 19.387 C 124.8 19.28 124.744 19.253 124.689 19.2 C 123.994 19.2 123.103 19.253 122.742 19.253 C 121.88 19.253 120.85 19.2 120.406 19.2 C 120.35 19.307 120.35 19.307 120.35 19.387 C 120.35 19.44 120.35 19.52 120.378 19.573 C 120.85 19.68 121.574 19.787 121.713 20 C 121.824 20.187 121.88 20.4 121.852 20.613 C 121.852 20.827 121.824 21.013 121.741 21.2 C 121.602 21.6 121.268 22.24 120.823 23.12 C 120.044 24.613 119.571 25.547 119.293 25.92 C 118.848 25.227 117.874 23.36 117.652 22.853 L 116.706 20.88 C 116.651 20.747 116.651 20.587 116.651 20.453 C 116.651 20.32 116.651 20.16 116.706 20.027 C 116.845 19.733 117.373 19.707 118.097 19.627 C 118.129 19.551 118.147 19.469 118.152 19.387 C 118.152 19.28 118.097 19.307 118.041 19.227 L 117.735 19.227 C 116.623 19.227 116.956 19.28 115.01 19.28 C 114.203 19.28 113.202 19.227 113.063 19.227 C 113.007 19.333 112.951 19.36 112.951 19.467 C 112.951 19.547 112.979 19.6 113.007 19.653 C 114.12 19.92 114.453 20.107 114.593 20.32 L 117.541 25.84 C 117.763 26.213 117.93 26.64 118.069 27.04 C 118.18 27.68 118.236 28.32 118.208 28.96 C 118.264 29.44 118.069 29.92 117.68 30.213 C 117.234 30.32 116.79 30.4 116.345 30.427 C 116.289 30.484 116.259 30.561 116.261 30.64 C 116.261 30.693 116.289 30.773 116.317 30.827 C 117.179 30.827 118.069 30.8 118.57 30.8 C 118.931 30.8 119.46 30.827 120.461 30.827 C 121.045 30.853 121.463 30.853 121.768 30.853 C 121.824 30.796 121.854 30.719 121.852 30.64 C 121.85 30.566 121.831 30.493 121.796 30.427 C 121.299 30.403 120.81 30.295 120.35 30.107 C 120.045 29.851 119.88 29.465 119.905 29.067 L 119.766 26.64 C 119.766 26.507 119.793 26.373 119.822 26.267 C 119.877 26.107 119.933 25.947 120.016 25.813 L 122.603 20.907 C 122.879 20.473 123.25 20.108 123.688 19.84 C 124.049 19.68 124.411 19.573 124.773 19.52 C 124.773 19.547 124.8 19.467 124.8 19.387 Z M 111.255 22.72 L 111.255 19.6 C 111.255 19.36 111.144 19.307 110.893 19.307 C 110.392 19.307 108.084 19.36 105.386 19.36 C 103.3 19.36 101.91 19.333 100.964 19.333 L 99.712 19.333 C 99.49 19.333 99.434 19.387 99.434 19.6 L 99.434 22.507 C 99.49 22.56 99.573 22.56 99.629 22.56 C 99.684 22.56 99.768 22.56 99.823 22.533 C 100.463 21.147 100.825 20.4 101.937 19.84 C 102.438 19.787 104.19 19.787 104.468 19.787 C 104.496 19.973 104.496 20.533 104.524 21.2 C 104.552 22.347 104.552 22.987 104.552 25.733 C 104.552 28.107 104.524 29.307 104.496 29.573 C 104.441 30.027 104.524 30.373 102.493 30.453 C 102.438 30.533 102.438 30.64 102.438 30.72 C 102.438 30.773 102.438 30.853 102.466 30.907 L 103.106 30.907 C 103.717 30.907 104.552 30.853 105.164 30.853 C 105.637 30.853 106.582 30.907 107.583 30.907 L 108.057 30.907 C 108.084 30.827 108.112 30.747 108.112 30.667 C 108.112 30.587 108.084 30.507 108.057 30.427 C 107.466 30.478 106.872 30.377 106.332 30.133 C 106.221 29.733 106.165 29.333 106.193 28.933 C 106.165 27.2 106.165 26.373 106.165 25.227 C 106.165 23.733 106.193 22.587 106.193 19.813 C 106.415 19.813 107.667 19.787 108.168 19.813 C 108.946 19.973 109.613 20.4 110.059 21.04 C 110.42 21.573 110.67 22.16 110.81 22.8 C 110.893 22.827 110.977 22.827 111.06 22.827 C 111.116 22.773 111.199 22.747 111.255 22.72 Z M 97.292 30.667 C 97.292 30.587 97.265 30.507 97.237 30.453 C 96.986 30.427 96.291 30.373 95.985 30.32 C 95.682 29.972 95.481 29.547 95.401 29.093 C 95.373 28.32 95.373 26.56 95.373 25.067 L 95.373 20.987 C 95.373 20.667 95.457 20.373 95.679 20.107 C 96.124 19.84 96.653 19.707 97.181 19.68 C 97.216 19.614 97.235 19.541 97.237 19.467 C 97.239 19.395 97.208 19.326 97.153 19.28 L 96.681 19.28 C 95.985 19.28 94.956 19.36 94.4 19.36 C 94.038 19.36 93.036 19.307 92.314 19.307 L 91.952 19.307 C 91.897 19.364 91.867 19.441 91.869 19.52 C 91.869 19.6 91.897 19.653 91.897 19.733 C 92.341 19.733 92.787 19.813 93.204 19.947 C 93.594 20.293 93.788 20.8 93.76 21.307 C 93.788 21.6 93.788 22.427 93.815 23.92 C 93.843 24.72 93.843 25.813 93.843 26.747 C 93.843 27.227 93.815 28.427 93.788 28.987 C 93.76 29.307 93.704 29.653 93.565 29.947 C 93.371 30.107 93.148 30.4 91.925 30.48 C 91.893 30.556 91.874 30.637 91.869 30.72 C 91.869 30.853 91.897 30.853 91.897 30.933 L 92.175 30.933 C 92.842 30.933 93.899 30.853 94.761 30.853 C 95.011 30.853 96.124 30.907 96.681 30.907 L 97.237 30.907 C 97.265 30.8 97.292 30.747 97.292 30.667 Z M 89.004 27.707 C 89.031 26.48 88.281 25.36 87.112 24.88 C 86.529 24.613 85.889 24.373 85.249 24.24 C 84.414 24.032 83.603 23.737 82.829 23.36 C 82.189 22.987 81.8 22.32 81.828 21.6 C 81.828 20.56 82.913 19.707 84.192 19.707 C 85.11 19.707 85.972 20.133 86.501 20.827 C 86.918 21.387 87.279 22 87.529 22.667 C 87.586 22.693 87.641 22.693 87.697 22.693 C 87.835 22.698 87.968 22.639 88.058 22.533 C 87.975 22.053 87.948 21.573 87.919 21.093 C 87.947 20.667 87.975 20.24 88.059 19.84 C 87.945 19.68 87.752 19.598 87.558 19.627 C 87.308 19.787 87.085 20 86.89 20.213 C 86.112 19.547 85.082 19.2 84.025 19.227 C 81.967 19.227 80.493 20.56 80.493 22.293 C 80.521 22.933 80.715 23.547 81.105 24.053 C 81.522 24.587 82.078 24.987 82.745 25.227 C 83.219 25.413 85.415 26.053 85.722 26.16 C 87.057 26.667 87.558 27.093 87.558 28.24 C 87.524 28.858 87.255 29.44 86.807 29.867 C 86.333 30.373 85.667 30.667 84.943 30.613 C 83.859 30.613 82.829 30.187 82.133 29.413 C 81.636 28.761 81.251 28.031 80.993 27.253 C 80.91 27.227 80.826 27.227 80.771 27.227 C 80.659 27.221 80.549 27.259 80.465 27.333 C 80.465 27.547 80.521 28.613 80.521 28.933 C 80.521 29.413 80.437 29.893 80.326 30.373 C 80.437 30.56 80.632 30.693 80.854 30.693 C 81.105 30.453 81.384 30.293 81.689 30.187 C 81.828 30.187 81.967 30.24 82.079 30.32 C 82.914 30.862 83.893 31.14 84.888 31.12 C 87.308 31.093 89.004 29.947 89.004 27.707 Z M 74.152 22.16 C 74.125 23.253 73.374 24.213 72.317 24.56 C 71.738 24.657 71.151 24.702 70.564 24.693 C 70.23 24.693 69.869 24.693 69.535 24.667 L 69.507 23.253 L 69.507 20.213 C 69.507 20 69.563 19.893 69.619 19.84 C 70.009 19.76 70.398 19.733 70.787 19.733 C 72.372 19.733 73.095 19.867 73.652 20.667 C 74.013 21.093 74.18 21.627 74.152 22.16 Z M 77.685 30.667 C 77.682 30.58 77.653 30.496 77.601 30.427 C 77.212 30.427 76.851 30.373 76.489 30.213 C 76.387 30.087 76.294 29.953 76.211 29.813 C 76.012 29.135 75.78 28.468 75.515 27.813 C 75.237 27.093 74.811 26.439 74.264 25.893 C 73.902 25.653 73.484 25.493 73.067 25.36 C 72.789 25.253 72.595 25.173 72.372 25.093 C 72.595 25.04 72.817 25.013 73.068 24.987 C 73.706 24.968 74.324 24.764 74.848 24.4 C 75.538 23.932 75.954 23.154 75.96 22.32 C 75.988 21.013 75.126 19.867 73.874 19.413 C 73.214 19.285 72.544 19.223 71.872 19.227 C 70.62 19.227 69.674 19.333 68.84 19.333 C 68.59 19.333 67.755 19.307 67.171 19.307 C 66.921 19.307 66.281 19.28 66.17 19.28 C 66.114 19.387 66.086 19.44 66.086 19.493 C 66.086 19.573 66.114 19.653 66.114 19.707 C 66.392 19.733 66.921 19.813 67.199 19.84 C 67.533 20.053 67.755 20.347 67.894 20.72 C 67.978 21.227 68.006 22.693 68.006 24.96 C 68.006 26.613 68.033 28.667 67.95 29.28 C 67.95 29.733 67.672 30.16 67.255 30.347 C 66.949 30.4 66.615 30.427 66.309 30.453 C 66.253 30.51 66.223 30.587 66.225 30.667 C 66.225 30.747 66.253 30.8 66.281 30.853 C 66.503 30.853 68.451 30.8 68.979 30.8 C 70.064 30.8 70.314 30.853 71.288 30.853 C 71.322 30.797 71.341 30.733 71.343 30.667 C 71.343 30.587 71.315 30.507 71.288 30.427 C 70.954 30.4 70.536 30.293 70.342 30.267 C 69.897 30.053 69.591 29.6 69.619 29.12 L 69.591 25.093 C 69.73 25.067 70.203 25.067 70.341 25.067 C 70.799 25.037 71.258 25.12 71.677 25.307 C 72.344 25.573 72.928 26.027 73.317 26.613 C 73.902 27.707 74.236 28.907 74.375 30.107 C 74.43 30.453 74.57 30.747 74.875 30.773 C 75.209 30.827 75.515 30.827 75.849 30.827 L 77.601 30.827 C 77.657 30.827 77.685 30.747 77.685 30.667 Z M 63.61 28.24 C 63.61 28.08 63.61 27.92 63.582 27.787 C 63.499 27.733 63.415 27.733 63.332 27.733 C 63.248 27.733 63.192 27.733 63.109 27.76 C 62.852 28.76 62.239 29.633 61.385 30.213 C 60.94 30.373 60.439 30.427 59.966 30.4 L 58.075 30.4 C 57.713 30.4 57.324 30.373 56.962 30.32 C 56.712 30.267 56.434 29.893 56.322 29.627 C 56.159 29.277 56.093 28.891 56.128 28.507 L 56.128 24.827 L 56.657 24.827 C 57.142 24.8 57.626 24.882 58.075 25.067 C 58.437 25.2 58.742 25.44 58.993 25.76 C 59.132 26.187 59.215 26.64 59.215 27.093 C 59.299 27.147 59.382 27.173 59.493 27.147 C 59.591 27.146 59.688 27.118 59.772 27.067 C 59.772 26.64 59.66 25.467 59.66 24.827 C 59.66 24.027 59.772 23.04 59.827 22.453 C 59.747 22.395 59.645 22.376 59.549 22.4 C 59.466 22.4 59.354 22.4 59.271 22.453 C 59.215 22.693 59.076 23.36 59.048 23.413 C 58.715 23.813 58.27 24.133 57.769 24.267 C 57.324 24.373 56.851 24.4 56.379 24.4 L 56.1 24.4 L 56.1 22.827 C 56.1 21.28 56.128 20.667 56.156 20.373 C 56.184 20.187 56.211 19.973 56.211 19.813 C 56.351 19.787 56.851 19.787 57.63 19.787 C 58.603 19.787 59.327 19.813 59.466 19.813 C 59.856 19.813 60.216 19.92 60.55 20.133 C 61.243 20.631 61.767 21.329 62.052 22.133 C 62.108 22.16 62.192 22.16 62.247 22.16 C 62.358 22.16 62.358 22.133 62.497 22.053 C 62.497 21.067 62.442 19.973 62.387 19.547 C 62.358 19.387 62.331 19.333 61.997 19.333 C 61.857 19.333 61.217 19.307 60.55 19.307 C 59.605 19.307 59.215 19.333 57.741 19.333 C 56.962 19.333 55.571 19.36 54.876 19.36 C 53.876 19.36 53.653 19.333 53.208 19.333 L 52.624 19.333 C 52.569 19.379 52.538 19.448 52.54 19.52 C 52.54 19.6 52.568 19.68 52.624 19.76 C 53.041 19.787 53.458 19.84 53.847 19.947 C 54.07 20.133 54.292 20.187 54.459 20.96 C 54.487 21.307 54.515 22.4 54.515 23.12 L 54.515 26.427 C 54.515 27.093 54.487 28.213 54.487 28.613 C 54.459 29.147 54.32 29.68 54.125 30.187 C 53.625 30.347 53.125 30.427 52.595 30.427 C 52.539 30.504 52.51 30.598 52.512 30.693 C 52.512 30.773 52.54 30.853 52.596 30.907 L 53.152 30.907 C 53.68 30.907 55.043 30.853 55.488 30.853 C 55.906 30.853 56.49 30.88 57.463 30.88 C 57.992 30.88 59.577 30.987 62.97 30.987 C 63.11 30.987 63.276 30.987 63.415 30.96 C 63.475 30.885 63.496 30.786 63.471 30.693 C 63.61 30.32 63.61 29.52 63.61 28.24 Z M 51.177 19.44 C 51.177 19.387 51.149 19.28 51.094 19.253 L 50.51 19.253 C 50.12 19.253 49.48 19.28 49.175 19.28 C 47.812 19.28 47.339 19.2 47.116 19.2 L 46.81 19.2 C 46.783 19.28 46.727 19.333 46.727 19.413 C 46.727 19.467 46.755 19.52 46.755 19.6 C 47.145 19.653 47.534 19.733 47.923 19.84 C 48.194 20.107 48.344 20.473 48.34 20.853 C 48.257 21.36 48.145 21.84 47.923 22.32 L 45.225 28.693 L 41.915 20.64 C 41.943 20.265 42.15 19.928 42.471 19.733 C 42.833 19.653 43.195 19.627 43.556 19.6 C 43.584 19.52 43.612 19.467 43.612 19.387 C 43.612 19.333 43.584 19.227 43.528 19.2 L 43.112 19.2 C 42.612 19.2 41.805 19.253 40.915 19.253 C 40.525 19.253 39.775 19.227 39.023 19.227 L 38.439 19.227 C 38.408 19.285 38.389 19.348 38.384 19.413 C 38.384 19.493 38.384 19.547 38.439 19.6 C 38.94 19.733 39.413 19.92 39.858 20.16 C 40.386 21.12 40.831 22.08 41.248 23.093 L 42.639 26.32 C 43.779 28.987 44.475 30.773 44.559 31.093 C 44.642 31.147 44.559 31.2 44.698 31.2 C 44.837 31.2 44.837 31.173 44.864 31.093 L 49.204 21.12 C 49.343 20.773 49.564 20.48 49.815 20.213 C 50.205 19.92 50.677 19.76 51.15 19.707 C 51.15 19.6 51.178 19.52 51.178 19.44 Z M 36.492 30.667 C 36.492 30.587 36.464 30.507 36.436 30.453 C 36.186 30.427 35.49 30.373 35.184 30.32 C 34.882 29.972 34.68 29.547 34.6 29.093 C 34.572 28.32 34.572 26.56 34.572 25.067 L 34.572 20.987 C 34.545 20.667 34.656 20.373 34.878 20.107 C 35.331 19.833 35.85 19.685 36.38 19.68 C 36.415 19.614 36.434 19.541 36.436 19.467 C 36.438 19.395 36.407 19.326 36.352 19.28 L 35.88 19.28 C 35.184 19.28 34.155 19.36 33.599 19.36 C 33.237 19.36 32.236 19.307 31.513 19.307 L 31.151 19.307 C 31.096 19.364 31.066 19.441 31.068 19.52 C 31.068 19.6 31.096 19.653 31.096 19.733 C 31.541 19.733 31.986 19.813 32.403 19.947 C 32.793 20.293 32.987 20.8 32.959 21.307 C 32.987 21.6 32.987 22.427 33.015 23.92 C 33.043 24.72 33.043 25.813 33.043 26.747 C 33.043 27.227 33.015 28.427 32.987 28.987 C 32.959 29.307 32.904 29.653 32.764 29.947 C 32.57 30.107 32.375 30.4 31.151 30.48 C 31.12 30.556 31.101 30.638 31.096 30.72 C 31.096 30.853 31.123 30.853 31.123 30.933 L 31.402 30.933 C 32.069 30.933 33.126 30.853 33.988 30.853 C 34.238 30.853 35.351 30.907 35.908 30.907 L 36.464 30.907 C 36.464 30.8 36.492 30.747 36.492 30.667 Z M 28.898 19.413 C 28.892 19.356 28.873 19.301 28.843 19.253 L 28.453 19.253 C 27.619 19.253 27.257 19.28 25.728 19.28 C 25.199 19.28 24.448 19.253 24.253 19.253 L 23.809 19.253 C 23.753 19.28 23.753 19.387 23.753 19.467 C 23.753 19.547 23.781 19.6 23.836 19.653 C 24.42 19.733 25.004 19.893 25.561 20.107 C 25.867 20.613 26.034 21.173 26.034 21.76 C 26.061 22 26.061 22.24 26.061 22.907 L 26.061 27.68 C 26.061 27.92 26.061 28.133 26.034 28.373 C 25.755 28.08 25.254 27.467 24.615 26.72 L 18.218 19.547 C 18.141 19.468 18.058 19.396 17.968 19.333 C 17.828 19.333 17.662 19.307 17.523 19.307 C 16.438 19.307 15.52 19.253 15.214 19.253 C 15.183 19.301 15.164 19.356 15.158 19.413 C 15.158 19.493 15.186 19.547 15.186 19.627 C 15.65 19.68 16.096 19.835 16.493 20.08 C 16.799 20.373 17.078 20.667 17.3 21.04 C 17.356 21.2 17.384 21.387 17.356 21.547 C 17.356 22.373 17.3 23.92 17.3 25.04 L 17.3 28.48 C 17.3 28.88 17.272 29.307 17.189 29.707 C 16.689 30.133 16.076 30.427 15.437 30.533 C 15.406 30.591 15.387 30.654 15.381 30.72 C 15.381 30.773 15.409 30.853 15.437 30.88 L 15.742 30.88 C 16.076 30.88 16.855 30.827 17.356 30.827 C 18.079 30.827 18.44 30.88 19.108 30.88 L 20.109 30.88 C 20.165 30.853 20.193 30.747 20.193 30.667 C 20.187 30.61 20.168 30.555 20.137 30.507 C 19.373 30.426 18.663 30.076 18.134 29.52 C 17.99 28.854 17.916 28.175 17.912 27.493 C 17.912 26.987 17.884 26.133 17.884 25.2 C 17.884 23.92 17.912 22.187 17.912 21.6 C 18.023 21.707 18.162 21.893 18.274 22.027 L 26.228 30.96 C 26.284 31.013 26.339 31.067 26.423 31.067 C 26.506 31.067 26.451 31.067 26.534 31.04 C 26.59 30.8 26.618 30.56 26.618 30.32 C 26.618 29.867 26.59 29.36 26.59 29.12 L 26.59 22.293 C 26.59 20.293 27.591 19.707 28.732 19.68 C 28.871 19.573 28.898 19.493 28.898 19.413 Z M 13.351 19.493 C 13.351 19.413 13.323 19.333 13.267 19.28 L 12.794 19.28 C 12.266 19.28 11.57 19.307 10.959 19.307 C 10.291 19.307 9.54 19.28 9.039 19.28 L 8.428 19.28 C 8.372 19.333 8.372 19.413 8.372 19.493 C 8.372 19.573 8.4 19.627 8.428 19.707 C 8.483 19.707 9.707 19.733 9.929 20 C 10.207 20.347 10.43 20.773 10.569 21.2 C 10.653 21.787 10.709 22.373 10.709 22.96 C 10.709 24.32 10.709 25.253 10.68 25.733 C 10.68 26.453 10.57 27.173 10.375 27.867 C 9.902 29.253 8.817 29.947 7.092 29.947 C 6.414 29.948 5.742 29.812 5.118 29.547 C 4.255 29.173 3.644 28.427 3.504 27.52 L 3.421 22.693 L 3.421 20.72 C 3.421 20.347 3.894 20 4.061 19.813 C 4.478 19.733 4.923 19.68 5.341 19.653 C 5.396 19.596 5.426 19.519 5.424 19.44 C 5.424 19.36 5.368 19.28 5.312 19.227 L 4.672 19.253 C 4.061 19.28 3.226 19.28 2.698 19.28 C 1.891 19.28 1.279 19.253 0.778 19.253 L 0.084 19.253 C 0.029 19.31 -0.001 19.387 0.001 19.467 C 0.001 19.547 0.029 19.6 0.057 19.653 C 0.585 19.707 0.947 19.76 1.169 19.813 C 1.447 19.973 1.642 20.24 1.753 20.533 C 1.781 20.747 1.809 21.253 1.809 22.267 L 1.809 26.133 C 1.781 26.853 1.837 27.573 1.976 28.293 C 2.17 29.12 2.699 29.813 3.422 30.267 C 4.352 30.8 5.411 31.067 6.482 31.04 C 7.486 31.061 8.48 30.832 9.374 30.373 C 10.205 29.928 10.811 29.154 11.043 28.24 C 11.219 27.615 11.312 26.969 11.321 26.32 L 11.321 23.227 C 11.321 22.64 11.349 21.92 11.349 21.627 C 11.349 21.013 11.516 20.4 11.849 19.867 C 12.295 19.733 12.767 19.68 13.24 19.653 C 13.324 19.627 13.351 19.573 13.351 19.493 Z\" fill=\"rgb(9, 9, 11)\"></path></g></svg>',svgContentId:8633014098,withExternalLayout:true}),/*#__PURE__*/_jsx(Image,{background:{alt:\"\",fit:\"fill\",intrinsicHeight:81,intrinsicWidth:355,pixelHeight:162,pixelWidth:710,sizes:\"165px\",src:\"https://framerusercontent.com/images/Xreoh6F6gMPt8XnYnZbo84MBN8.png?scale-down-to=512\",srcSet:\"https://framerusercontent.com/images/Xreoh6F6gMPt8XnYnZbo84MBN8.png?scale-down-to=512 512w,https://framerusercontent.com/images/Xreoh6F6gMPt8XnYnZbo84MBN8.png 710w\"},className:\"framer-1vs8dd4\",\"data-framer-name\":\"Image\",layoutDependency:layoutDependency,layoutId:\"gBvFOwI_d\"}),/*#__PURE__*/_jsx(Image,{background:{alt:\"\",fit:\"fill\",intrinsicHeight:155,intrinsicWidth:275,pixelHeight:310,pixelWidth:550,sizes:\"147px\",src:\"https://framerusercontent.com/images/prdFsb2Exj3FRB7QWUGzWBu2I.png?scale-down-to=512\",srcSet:\"https://framerusercontent.com/images/prdFsb2Exj3FRB7QWUGzWBu2I.png?scale-down-to=512 512w,https://framerusercontent.com/images/prdFsb2Exj3FRB7QWUGzWBu2I.png 550w\"},className:\"framer-bbszh3\",\"data-framer-name\":\"Image\",layoutDependency:layoutDependency,layoutId:\"yEVt5Ur96\"}),/*#__PURE__*/_jsx(Image,{background:{alt:\"\",fit:\"fill\",intrinsicHeight:63,intrinsicWidth:358.5,pixelHeight:126,pixelWidth:717,sizes:\"179px\",src:\"https://framerusercontent.com/images/22v195pf7h0iGmIjJfPGdmpZurM.png?scale-down-to=512\",srcSet:\"https://framerusercontent.com/images/22v195pf7h0iGmIjJfPGdmpZurM.png?scale-down-to=512 512w,https://framerusercontent.com/images/22v195pf7h0iGmIjJfPGdmpZurM.png 717w\"},className:\"framer-6cjjex\",\"data-framer-name\":\"Image\",layoutDependency:layoutDependency,layoutId:\"aEnuzu9EQ\"}),/*#__PURE__*/_jsx(Image,{background:{alt:\"\",fit:\"fill\",intrinsicHeight:107.5,intrinsicWidth:376,pixelHeight:215,pixelWidth:752,sizes:\"120px\",src:\"https://framerusercontent.com/images/TjLMZ2pDn84rVEvRL3UDPUfc210.png?scale-down-to=512\",srcSet:\"https://framerusercontent.com/images/TjLMZ2pDn84rVEvRL3UDPUfc210.png?scale-down-to=512 512w,https://framerusercontent.com/images/TjLMZ2pDn84rVEvRL3UDPUfc210.png 752w\"},className:\"framer-lnv07u\",\"data-framer-name\":\"Image\",layoutDependency:layoutDependency,layoutId:\"jZYWilZ0X\"}),/*#__PURE__*/_jsx(Image,{background:{alt:\"\",fit:\"fill\",intrinsicHeight:200,intrinsicWidth:800,pixelHeight:400,pixelWidth:1600,sizes:\"159px\",src:\"https://framerusercontent.com/images/FVpl5WQV1TVGJDWiOPpfImPqvns.png?scale-down-to=1024\",srcSet:\"https://framerusercontent.com/images/FVpl5WQV1TVGJDWiOPpfImPqvns.png?scale-down-to=512 512w,https://framerusercontent.com/images/FVpl5WQV1TVGJDWiOPpfImPqvns.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/FVpl5WQV1TVGJDWiOPpfImPqvns.png 1600w\"},className:\"framer-1j6mzh4\",\"data-framer-name\":\"Image\",layoutDependency:layoutDependency,layoutId:\"E7oAngfTm\"}),/*#__PURE__*/_jsx(Image,{background:{alt:\"\",fit:\"fill\",src:\"https://framerusercontent.com/images/8N3h1PosBip8BnqWXnO1JrB7k0.png\"},className:\"framer-64a7gz\",\"data-framer-name\":\"HBS\",layoutDependency:layoutDependency,layoutId:\"St4vqTPF1\"}),/*#__PURE__*/_jsx(Image,{background:{alt:\"\",fit:\"stretch\",positionX:\"center\",positionY:\"center\",sizes:\"189px\",src:\"https://framerusercontent.com/images/uwJeaPKWuE7YUEKDgTJE6KU2Q.png\",srcSet:\"https://framerusercontent.com/images/uwJeaPKWuE7YUEKDgTJE6KU2Q.png?scale-down-to=512 512w,https://framerusercontent.com/images/uwJeaPKWuE7YUEKDgTJE6KU2Q.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/uwJeaPKWuE7YUEKDgTJE6KU2Q.png?scale-down-to=2048 2048w,https://framerusercontent.com/images/uwJeaPKWuE7YUEKDgTJE6KU2Q.png 4000w\"},className:\"framer-1l07v4e\",\"data-framer-name\":\"McKinsey\",layoutDependency:layoutDependency,layoutId:\"uFIrw0AAe\"}),/*#__PURE__*/_jsx(Image,{background:{alt:\"\",fit:\"stretch\",positionX:\"center\",positionY:\"center\",sizes:\"164px\",src:\"https://framerusercontent.com/images/hfJ6mbQRsVKLfMOJaou9J7zuDg.png\",srcSet:\"https://framerusercontent.com/images/hfJ6mbQRsVKLfMOJaou9J7zuDg.png?scale-down-to=512 512w,https://framerusercontent.com/images/hfJ6mbQRsVKLfMOJaou9J7zuDg.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/hfJ6mbQRsVKLfMOJaou9J7zuDg.png?scale-down-to=2048 2048w,https://framerusercontent.com/images/hfJ6mbQRsVKLfMOJaou9J7zuDg.png 4000w\"},className:\"framer-faztjy\",\"data-framer-name\":\"BCG\",layoutDependency:layoutDependency,layoutId:\"U2Exka5nr\"})],speed:40,style:{height:\"100%\",width:\"100%\"},width:\"100%\"})})})})]})]})}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-muf4uf\",\"data-framer-name\":\"Menu Trigger\",layoutDependency:layoutDependency,layoutId:\"sTyR6Vf4e\"})]})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-4HslC.framer-1luej0a, .framer-4HslC .framer-1luej0a { display: block; }\",\".framer-4HslC.framer-1kbn3i5 { align-content: center; align-items: center; display: flex; flex-direction: column; flex-wrap: nowrap; gap: 20px; height: min-content; justify-content: center; overflow: hidden; padding: 15px; position: relative; width: 1900px; }\",\".framer-4HslC .framer-5br65l { align-content: center; align-items: center; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 69px; height: min-content; justify-content: center; overflow: hidden; padding: 42px 0px 42px 0px; position: relative; width: 100%; }\",\".framer-4HslC .framer-124ww89 { align-content: center; align-items: center; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; overflow: hidden; padding: 0px; position: relative; width: 100%; }\",\".framer-4HslC .framer-1q8s6f7, .framer-4HslC .framer-iwilxq { align-content: center; align-items: center; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: flex-start; overflow: visible; padding: 0px; position: relative; width: 100%; }\",\".framer-4HslC .framer-1hxvrba, .framer-4HslC .framer-u67hng { flex: none; height: auto; position: relative; white-space: pre; width: auto; }\",\".framer-4HslC .framer-187tps9, .framer-4HslC .framer-1e096wo { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; overflow: hidden; padding: 10px 0px 20px 0px; position: relative; width: 100%; }\",\".framer-4HslC .framer-1mpjbxk-container, .framer-4HslC .framer-547vx-container { flex: 1 0 0px; height: 75px; position: relative; width: 1px; }\",\".framer-4HslC .framer-e7lijw { aspect-ratio: 4.394366197183099 / 1; height: var(--framer-aspect-ratio-supported, 35px); overflow: visible; position: relative; width: 154px; }\",\".framer-4HslC .framer-jzogd5 { aspect-ratio: 2.2133333333333334 / 1; height: var(--framer-aspect-ratio-supported, 42px); overflow: visible; position: relative; width: 94px; }\",\".framer-4HslC .framer-g7eehn { aspect-ratio: 6.313725490196078 / 1; height: var(--framer-aspect-ratio-supported, 24px); overflow: visible; position: relative; width: 154px; }\",\".framer-4HslC .framer-1eo9eq2 { aspect-ratio: 3.9432624113475176 / 1; height: var(--framer-aspect-ratio-supported, 43px); overflow: visible; position: relative; width: 169px; }\",\".framer-4HslC .framer-19uvnmb { aspect-ratio: 2.432314410480349 / 1; height: var(--framer-aspect-ratio-supported, 32px); overflow: visible; position: relative; width: 79px; }\",\".framer-4HslC .framer-15amaqg { aspect-ratio: 2.5 / 1; height: var(--framer-aspect-ratio-supported, 34px); overflow: visible; position: relative; width: 86px; }\",\".framer-4HslC .framer-axjab0 { height: 32px; position: relative; width: 126px; }\",\".framer-4HslC .framer-1vs8dd4 { aspect-ratio: 4.382716049382716 / 1; height: var(--framer-aspect-ratio-supported, 38px); overflow: visible; position: relative; width: 165px; }\",\".framer-4HslC .framer-bbszh3 { aspect-ratio: 1.7741935483870968 / 1; height: var(--framer-aspect-ratio-supported, 83px); overflow: visible; position: relative; width: 147px; }\",\".framer-4HslC .framer-6cjjex { aspect-ratio: 5.690476190476191 / 1; height: var(--framer-aspect-ratio-supported, 31px); overflow: visible; position: relative; width: 179px; }\",\".framer-4HslC .framer-lnv07u { aspect-ratio: 3.4976744186046513 / 1; height: var(--framer-aspect-ratio-supported, 34px); overflow: visible; position: relative; width: 120px; }\",\".framer-4HslC .framer-1j6mzh4 { aspect-ratio: 4 / 1; height: var(--framer-aspect-ratio-supported, 40px); overflow: visible; position: relative; width: 159px; }\",\".framer-4HslC .framer-64a7gz { aspect-ratio: 1.5 / 1; height: var(--framer-aspect-ratio-supported, 84px); position: relative; width: 126px; }\",\".framer-4HslC .framer-1l07v4e { aspect-ratio: 2.998500749625187 / 1; height: var(--framer-aspect-ratio-supported, 63px); position: relative; width: 189px; }\",\".framer-4HslC .framer-faztjy { aspect-ratio: 4.424778761061947 / 1; height: var(--framer-aspect-ratio-supported, 37px); position: relative; width: 164px; }\",\".framer-4HslC .framer-muf4uf { bottom: 0px; flex: none; height: 100px; left: calc(50.00000000000002% - 100% / 2); overflow: hidden; pointer-events: none; position: absolute; width: 100%; z-index: 1; }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-4HslC.framer-1kbn3i5, .framer-4HslC .framer-5br65l, .framer-4HslC .framer-124ww89, .framer-4HslC .framer-1q8s6f7, .framer-4HslC .framer-187tps9, .framer-4HslC .framer-iwilxq, .framer-4HslC .framer-1e096wo { gap: 0px; } .framer-4HslC.framer-1kbn3i5 > * { margin: 0px; margin-bottom: calc(20px / 2); margin-top: calc(20px / 2); } .framer-4HslC.framer-1kbn3i5 > :first-child, .framer-4HslC .framer-5br65l > :first-child, .framer-4HslC .framer-124ww89 > :first-child, .framer-4HslC .framer-1q8s6f7 > :first-child, .framer-4HslC .framer-iwilxq > :first-child { margin-top: 0px; } .framer-4HslC.framer-1kbn3i5 > :last-child, .framer-4HslC .framer-5br65l > :last-child, .framer-4HslC .framer-124ww89 > :last-child, .framer-4HslC .framer-1q8s6f7 > :last-child, .framer-4HslC .framer-iwilxq > :last-child { margin-bottom: 0px; } .framer-4HslC .framer-5br65l > * { margin: 0px; margin-bottom: calc(69px / 2); margin-top: calc(69px / 2); } .framer-4HslC .framer-124ww89 > * { margin: 0px; margin-bottom: calc(10px / 2); margin-top: calc(10px / 2); } .framer-4HslC .framer-1q8s6f7 > *, .framer-4HslC .framer-iwilxq > * { margin: 0px; margin-bottom: calc(0px / 2); margin-top: calc(0px / 2); } .framer-4HslC .framer-187tps9 > *, .framer-4HslC .framer-1e096wo > * { margin: 0px; margin-left: calc(10px / 2); margin-right: calc(10px / 2); } .framer-4HslC .framer-187tps9 > :first-child, .framer-4HslC .framer-1e096wo > :first-child { margin-left: 0px; } .framer-4HslC .framer-187tps9 > :last-child, .framer-4HslC .framer-1e096wo > :last-child { margin-right: 0px; } }\",\".framer-4HslC.framer-v-1uokjyk.framer-1kbn3i5 { width: 1200px; }\",\".framer-4HslC.framer-v-1yl79pi.framer-1kbn3i5 { width: 810px; }\",\".framer-4HslC.framer-v-1yl79pi .framer-u67hng, .framer-4HslC.framer-v-1uet4xl .framer-u67hng { white-space: pre-wrap; width: 100%; word-break: break-word; word-wrap: break-word; }\",\".framer-4HslC.framer-v-1uet4xl.framer-1kbn3i5 { width: 390px; }\",\".framer-4HslC.framer-v-1uet4xl .framer-iwilxq { padding: 0px 40px 0px 40px; }\",...sharedStyle.css];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 385\n * @framerIntrinsicWidth 1900\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"auto\"]},\"BwP5sdq78\":{\"layout\":[\"fixed\",\"auto\"]},\"Nta9X9bwB\":{\"layout\":[\"fixed\",\"auto\"]},\"cXXc2BDjq\":{\"layout\":[\"fixed\",\"auto\"]}}}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerComponentViewportWidth true\n */const FramermsKqGLnqR=withCSS(Component,css,\"framer-4HslC\");export default FramermsKqGLnqR;FramermsKqGLnqR.displayName=\"White logos\";FramermsKqGLnqR.defaultProps={height:385,width:1900};addPropertyControls(FramermsKqGLnqR,{variant:{options:[\"PER248Whv\",\"BwP5sdq78\",\"Nta9X9bwB\",\"cXXc2BDjq\"],optionTitles:[\"Desktop\",\"Laptop\",\"Tablet\",\"Phone\"],title:\"Variant\",type:ControlType.Enum}});addFonts(FramermsKqGLnqR,[{explicitInter:true,fonts:[{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5vvr9Vy74if2I6bQbJvbw7SY1pQ.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/EOr0mi4hNtlgWNn9if640EZzXCo.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/Y9k9QrlZAqio88Klkmbd8VoMQc.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/OYrD2tBIBPvoJXiIHnLoOXnY9M.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/JeYwfuaPfZHQhEG8U5gtPDZ7WQ.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/vQyevYAyHtARFwPqUzQGpnDs.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/b6Y37FthZeALduNqHicBT6FutY.woff2\",weight:\"400\"}]},...TickerFonts,...getFontsFromSharedStyle(sharedStyle.fonts)],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FramermsKqGLnqR\",\"slots\":[],\"annotations\":{\"framerIntrinsicWidth\":\"1900\",\"framerDisplayContentsDiv\":\"false\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"BwP5sdq78\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"Nta9X9bwB\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"cXXc2BDjq\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]}}}\",\"framerContractVersion\":\"1\",\"framerComponentViewportWidth\":\"true\",\"framerImmutableVariables\":\"true\",\"framerIntrinsicHeight\":\"385\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./msKqGLnqR.map","var t=[\"x\",\"y\",\"z\"],e=function(t){Object.assign(this,{uniforms:{},geometry:{vertices:[{x:0,y:0,z:0}]},mode:0,modifiers:{},attributes:[],multiplier:1,buffers:[]}),Object.assign(this,t),this.prepareProgram(),this.prepareUniforms(),this.prepareAttributes()};e.prototype.compileShader=function(t,r){var s=this.gl.createShader(t);return this.gl.shaderSource(s,r),this.gl.compileShader(s),s},e.prototype.prepareProgram=function(){var t=this.gl,r=this.vertex,s=this.fragment,n=t.createProgram();t.attachShader(n,this.compileShader(35633,r)),t.attachShader(n,this.compileShader(35632,s)),t.linkProgram(n),t.useProgram(n),this.program=n},e.prototype.prepareUniforms=function(){for(var t=Object.keys(this.uniforms),r=0;r<t.length;r+=1){var s=this.gl.getUniformLocation(this.program,t[r]);this.uniforms[t[r]].location=s}},e.prototype.prepareAttributes=function(){void 0!==this.geometry.vertices&&this.attributes.push({name:\"aPosition\",size:3}),void 0!==this.geometry.normal&&this.attributes.push({name:\"aNormal\",size:3}),this.attributeKeys=[];for(var t=0;t<this.attributes.length;t+=1)this.attributeKeys.push(this.attributes[t].name),this.prepareAttribute(this.attributes[t])},e.prototype.prepareAttribute=function(r){for(var s=this.geometry,n=this.multiplier,a=s.vertices,o=s.normal,h=new Float32Array(n*a.length*r.size),u=0;u<n;u+=1)for(var f=r.data&&r.data(u,n),c=u*a.length*r.size,l=0;l<a.length;l+=1)for(var p=0;p<r.size;p+=1){var m=this.modifiers[r.name];h[c]=void 0!==m?m(f,l,p,this):\"aPosition\"===r.name?a[l][t[p]]:\"aNormal\"===r.name?o[l][t[p]]:f[p],c+=1}this.attributes[this.attributeKeys.indexOf(r.name)].data=h,this.prepareBuffer(this.attributes[this.attributeKeys.indexOf(r.name)])},e.prototype.prepareBuffer=function(t){var r=t.data,s=t.name,n=t.size,a=this.gl.createBuffer();this.gl.bindBuffer(34962,a),this.gl.bufferData(34962,r,35044);var o=this.gl.getAttribLocation(this.program,s);this.gl.enableVertexAttribArray(o),this.gl.vertexAttribPointer(o,n,5126,!1,0,0),this.buffers[this.attributeKeys.indexOf(t.name)]={buffer:a,location:o,size:n}},e.prototype.render=function(t){var r=this,s=this.uniforms,n=this.multiplier,a=this.gl;a.useProgram(this.program);for(var o=0;o<this.buffers.length;o+=1){var h=this.buffers[o],u=h.location,f=h.buffer,c=h.size;a.enableVertexAttribArray(u),a.bindBuffer(34962,f),a.vertexAttribPointer(u,c,5126,!1,0,0)}Object.keys(t).forEach((function(r){s[r].value=t[r].value})),Object.keys(s).forEach((function(t){var n=s[t];r.uniformMap[n.type](n.location,n.value)})),a.drawArrays(this.mode,0,n*this.geometry.vertices.length),this.onRender&&this.onRender(this)},e.prototype.destroy=function(){for(var t=0;t<this.buffers.length;t+=1)this.gl.deleteBuffer(this.buffers[t].buffer);this.gl.deleteProgram(this.program),this.gl=null};var i=function(t){var r=this,s=t||{},n=s.canvas;void 0===n&&(n=document.querySelector(\"canvas\"));var a=s.context;void 0===a&&(a={});var o=s.contextType;void 0===o&&(o=\"experimental-webgl\");var h=s.settings;void 0===h&&(h={});var u=n.getContext(o,Object.assign({alpha:!1,antialias:!1},a));Object.assign(this,{gl:u,canvas:n,uniforms:{},instances:new Map,shouldRender:!0}),Object.assign(this,{devicePixelRatio:1,clearColor:[1,1,1,1],position:{x:0,y:0,z:2},clip:[.001,100]}),Object.assign(this,h),this.uniformMap={float:function(t,r){return u.uniform1f(t,r)},vec2:function(t,r){return u.uniform2fv(t,r)},vec3:function(t,r){return u.uniform3fv(t,r)},vec4:function(t,r){return u.uniform4fv(t,r)},mat2:function(t,r){return u.uniformMatrix2fv(t,!1,r)},mat3:function(t,r){return u.uniformMatrix3fv(t,!1,r)},mat4:function(t,r){return u.uniformMatrix4fv(t,!1,r)}},u.enable(u.DEPTH_TEST),u.depthFunc(u.LEQUAL),!1===u.getContextAttributes().alpha&&(u.clearColor.apply(u,this.clearColor),u.clearDepth(1)),this.onSetup&&this.onSetup(u),window.addEventListener(\"resize\",(function(){return r.resize()})),this.resize(),this.render()};i.prototype.resize=function(){var t=this.gl,r=this.canvas,s=this.devicePixelRatio,n=this.position;r.width=r.clientWidth*s,r.height=r.clientHeight*s;var a=t.drawingBufferWidth,o=t.drawingBufferHeight,h=a/o;t.viewport(0,0,a,o);var u=Math.tan(Math.PI/180*22.5),f=[1,0,0,0,0,1,0,0,0,0,1,0,n.x,n.y,(h<1?1:h)*-n.z,1];this.uniforms.uProjectionMatrix={type:\"mat4\",value:[.5/u,0,0,0,0,h/u*.5,0,0,0,0,-(this.clip[1]+this.clip[0])/(this.clip[1]-this.clip[0]),-1,0,0,-2*this.clip[1]*(this.clip[0]/(this.clip[1]-this.clip[0])),0]},this.uniforms.uViewMatrix={type:\"mat4\",value:[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]},this.uniforms.uModelMatrix={type:\"mat4\",value:f}},i.prototype.toggle=function(t){t!==this.shouldRender&&(this.shouldRender=void 0!==t?t:!this.shouldRender,this.shouldRender&&this.render())},i.prototype.render=function(){var t=this;this.gl.clear(16640),this.instances.forEach((function(r){r.render(t.uniforms)})),this.onRender&&this.onRender(this),this.shouldRender&&requestAnimationFrame((function(){return t.render()}))},i.prototype.add=function(t,r){void 0===r&&(r={uniforms:{}}),void 0===r.uniforms&&(r.uniforms={}),Object.assign(r.uniforms,JSON.parse(JSON.stringify(this.uniforms))),Object.assign(r,{gl:this.gl,uniformMap:this.uniformMap});var s=new e(r);return this.instances.set(t,s),s},i.prototype.remove=function(t){var r=this.instances.get(t);void 0!==r&&(r.destroy(),this.instances.delete(t))},i.prototype.destroy=function(){var t=this;this.instances.forEach((function(r,s){r.destroy(),t.instances.delete(s)})),this.toggle(!1)};export default i;\n\n//# sourceMappingURL=phenomenon.mjs.map","import e from\"phenomenon\";var a=\"phi\",o=\"theta\",t=\"mapSamples\",i=\"mapBrightness\",f=\"baseColor\",r=\"markerColor\",l=\"glowColor\",c=\"markers\",n=\"diffuse\",A=\"devicePixelRatio\",g=\"dark\",v=\"offset\",s=\"scale\",d={[a]:\"A\",[o]:\"B\",[t]:\"k\",[i]:\"E\",[f]:\"L\",[r]:\"M\",[l]:\"y\",[n]:\"F\",[g]:\"G\",[v]:\"x\",[s]:\"C\"},{PI:u,sin:m,cos:x}=Math,U=e=>[].concat(...e.map((e=>{let[a,o]=e.location;a=a*u/180,o=o*u/180-u;let t=x(a);return[-t*x(o),m(a),t*m(o),e.size]})),[0,0,0,0]),D=(u,m)=>{let _=(e,a,o)=>({type:e,value:\"undefined\"==typeof m[a]?o:m[a]}),x=u.getContext(\"webgl\")?\"webgl\":\"experimental-webgl\",y=new e({canvas:u,contextType:x,context:{alpha:!0,stencil:!1,antialias:!0,depth:!1,preserveDrawingBuffer:!1},settings:{[A]:m[A]||1,onSetup:e=>{let a=e.RGB,o=e.UNSIGNED_BYTE,t=e.TEXTURE_2D,i=e.createTexture();e.bindTexture(t,i),e.texImage2D(t,0,a,1,1,0,a,o,new Uint8Array([0,0,0,0]));let f=new Image;f.onload=()=>{e.bindTexture(t,i),e.texImage2D(t,0,a,a,o,f),e.generateMipmap(t);let r=e.getParameter(e.CURRENT_PROGRAM),l=e.getUniformLocation(r,\"H\");e.texParameteri(t,e.TEXTURE_MIN_FILTER,e.NEAREST),e.texParameteri(t,e.TEXTURE_MAG_FILTER,e.NEAREST),e.uniform1i(l,0)},f.src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAACAAQAAAADMzoqnAAAAAXNSR0IArs4c6QAABA5JREFUeNrV179uHEUAx/Hf3JpbF+E2VASBsmVKTBcpKJs3SMEDcDwBiVJAAewYEBUivIHT0uUBIt0YCovKD0CRjUC4QfHYh8hYXu+P25vZ2Zm9c66gMd/GJ/tz82d3bk8GN4SrByYF2366FNTACIAkivVAAazQdnf3MvAlbNUQfOPAdQDvSAimMWhwy4I2g4SU+Kp04ISLpPBAKLxPyic3O/CCi+Y7rUJbiodcpDOFY7CgxCEXmdYD2EYK2s5lApOx5pEDDYCUwM1XdJUwBV11QQMg59kePSCaPAASQMEL2hwo6TJFgxpg+TgC2ymXPbuvc40awr3D1QCFfbH9kcoqAOkZozpQo0aqAGQRKCog/+tjkgbNFEtg2FffBvBGlSxHoAaAa1u6X4PBAwDiR8FFsrQgeUhfJTSALaB9jy5NCybJPn1SVFiWk7ywN+KzhH1aKAuydhGkbEF4lWohLXDXavlyFgHY7LBnLRdlAP6BS5Cc8RfVDXbkwN/oIvmY+6obbNeBP0JwTuMGu9gTzy1Q4RS/cWpfzszeYwd+CAFrtBW/Hur0gLbJGlD+/OjVwe/drfBxkbbg63dndEDfiEBlAd7ac0BPe1D6Jd8dfbLH+RI0OzseFB5s01/M+gMdAeluLOCAuaUA9Lezo/vSgXoCX9rtEiXnp7Q1W/CNyWcd8DXoS6jH/YZ5vAJEWY2dXFQe2TUgaFaNejCzJ98g6HnlVrsE58sDcYqg+9XY75fPqdoh/kRQWiXKg8MWlJQxUFMPjqnyujhFBE7UxIMjyszk0QwQlFsezImsyvUYYYVED2pk6m0Tg8T04Fwjk2kdAwSACqlM6gRRt3vQYAFGX0Ah7Ebx1H+MDRI5ui0QldH4j7FGcm90XdxD2Jg1AOEAVAKhEFXSn4cKUELurIAKwJ3MArypPscQaLhJFICJ0ohjDySAdH8AhDtCiTuMycH8CXzhH9jUACAO5uMhoAwA5i+T6WAKmmAqnLy80wxHqIPFYpqCwxGaYLt4Dyievg5kEoVEUAhs6pqKgFtDQYOuaXypaWKQfIuwwoGSZgfLsu/XAtI8cGN+h7Cc1A5oLOMhwlIPXuhu48AIvsSBkvtV9wsJRKCyYLfq5lTrQMFd1a262oqBck9K1V0YjQg0iEYYgpS1A9GlXQV5cykwm4A7BzVsxQqo7E+zCegO7Ma7yKgsuOcfKbMBwLC8wvVNYDsANYalEpOAa6zpWjTeMKGwEwC1CiQewJc5EKfgy7GmRAZA4vUVGwE2dPM/g0xuAInE/yG5aZ8ISxWGfYigUVbdyBElTHh2uCwGdfCkOLGgQVBh3Ewp+/QK4CDlR5Ws/Zf7yhCf8pH7vinWAvoVCQ6zz0NX5V/6GkAVV+2/5qsJ/gU8bsxpM8IeAQAAAABJRU5ErkJggg==\"}}});return y.add(\"\",{vertex:\"attribute vec3 aPosition;uniform mat4 uProjectionMatrix;uniform mat4 uModelMatrix;uniform mat4 uViewMatrix;void main(){gl_Position=uProjectionMatrix*uModelMatrix*uViewMatrix*vec4(aPosition,1.);}\",fragment:\"precision highp float;uniform vec2 r,x;uniform vec3 L,M,y;uniform vec4 z[64];uniform float A,B,k,C,D,E,F,G;uniform sampler2D H;float I=1./k;mat3 J(float a,float b){float c=cos(a),d=cos(b),e=sin(a),f=sin(b);return mat3(d,f*e,-f*c,0.,c,e,f,d*-e,d*c);}vec3 v(vec3 c,out float w){c=c.xzy;float p=max(2.,floor(log2(2.236068*k*3.141593*(1.-c.z*c.z))*.72021));vec2 g=floor(pow(1.618034,p)/2.236068*vec2(1.,1.618034)+.5),d=fract((g+1.)*.618034)*6.283185-3.883222,e=-2.*g,f=vec2(atan(c.y,c.x),c.z-1.),q=floor(vec2(e.y*f.x-d.y*(f.y*k+1.),-e.x*f.x+d.x*(f.y*k+1.))/(d.x*e.y-e.x*d.y));float n=3.141593;vec3 s;for(float h=0.;h<4.;h+=1.){vec2 t=vec2(mod(h,2.),floor(h*.5));float j=dot(g,q+t);if(j>k)continue;float a=j,b=0.;if(a>=524288.)a-=524288.,b+=.803894;if(a>=262144.)a-=262144.,b+=.901947;if(a>=131072.)a-=131072.,b+=.950973;if(a>=65536.)a-=65536.,b+=.475487;if(a>=32768.)a-=32768.,b+=.737743;if(a>=16384.)a-=16384.,b+=.868872;if(a>=8192.)a-=8192.,b+=.934436;if(a>=4096.)a-=4096.,b+=.467218;if(a>=2048.)a-=2048.,b+=.733609;if(a>=1024.)a-=1024.,b+=.866804;if(a>=512.)a-=512.,b+=.433402;if(a>=256.)a-=256.,b+=.216701;if(a>=128.)a-=128.,b+=.108351;if(a>=64.)a-=64.,b+=.554175;if(a>=32.)a-=32.,b+=.777088;if(a>=16.)a-=16.,b+=.888544;if(a>=8.)a-=8.,b+=.944272;if(a>=4.)a-=4.,b+=.472136;if(a>=2.)a-=2.,b+=.236068;if(a>=1.)a-=1.,b+=.618034;float l=fract(b)*6.283185,i=1.-2.*j*I,m=sqrt(1.-i*i);vec3 o=vec3(cos(l)*m,sin(l)*m,i);float u=length(c-o);if(u<n)n=u,s=o;}w=n;return s.xzy;}void main(){vec2 a=(gl_FragCoord.xy/r*2.-1.)/C-x*vec2(1.,-1.)/r;a.x*=r.x/r.y;float c=dot(a,a),b;vec3 d=vec3(0.,0.,1.),e=normalize(vec3(a,sqrt(.64-c)));if(c<=.64){vec3 f=e*J(B,A),g=v(f,b);float j=asin(g.y),h=acos(-g.x/cos(j));h=g.z<0.?-h:h;float t=texture2D(H,vec2(h*.5/3.141593,-(j/3.141593+.5))).x,u=smoothstep(8e-3,0.,b),l=dot(e,d),s=pow(l,F)*E,m=t*u*s,N=mix((1.-m)*pow(l,.4),m,G)+.1;gl_FragColor=vec4(L*N,1.);int O=int(D);float n=0.;for(int i=0;i<64;i++){if(i>=O)break;vec4 o=z[i];vec3 p=o.xyz,w=p-f;float q=o.w;if(dot(w,w)>q*q*4.)continue;vec3 P=v(p,b);b=length(P-f),b<q?n+=smoothstep(q*.5,0.,b):0.;}n=min(1.,n*s),gl_FragColor.xyz=mix(gl_FragColor.xyz,M,n),gl_FragColor.xyz+=pow(1.-dot(e,d),4.)*y;}float K=pow(dot(normalize(vec3(-a,sqrt(1.-c))),d),4.)*smoothstep(.1,1.,.2/(c-.64));gl_FragColor+=vec4(K*y,K);}\",uniforms:{r:{type:\"vec2\",value:[m.width,m.height]},A:_(\"float\",a),B:_(\"float\",o),k:_(\"float\",t),E:_(\"float\",i),L:_(\"vec3\",f),M:_(\"vec3\",r),F:_(\"float\",n),y:_(\"vec3\",l),G:_(\"float\",g),z:{type:\"vec4\",value:U(m[c])},D:{type:\"float\",value:m[c].length},x:_(\"vec2\",v,[0,0]),C:_(\"float\",s,1)},mode:4,geometry:{vertices:[{x:-100,y:100,z:0},{x:-100,y:-100,z:0},{x:100,y:100,z:0},{x:100,y:-100,z:0},{x:-100,y:-100,z:0},{x:100,y:100,z:0}]},onRender:({uniforms:e})=>{let a={};if(m.onRender){m.onRender(a);for(let o in d)void 0!==a[o]&&(e[d[o]].value=a[o]);void 0!==a[c]&&(e.z.value=U(a[c]),e.D.value=a[c].length),a.width&&a.height&&(e.r.value=[a.width,a.height])}}}),y};export{D as default};\n\n//# sourceMappingURL=index.esm.js.map","import{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,Color,RenderTarget}from\"framer\";import{useEffect,useRef}from\"react\";import createGlobe from\"cobe\";import{useSpring}from\"framer-motion\";/**\n * GLOBE FOR FRAMER\n * @framerIntrinsicWidth 300\n * @framerIntrinsicHeight 300\n * @framerDisableUnlink\n *\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n */ export default function Globe(props){const{background,baseColor,glowColor,isDraggable,dragOptions,speed,theta,phi,dark,diffuse,maxSamples,mapBrightness,markerSize,markerArray,markerColor,scale,alignment,maxWidth,offset}=props;const{offsetX,offsetY}=offset;const{stiffness,damping,mass}=dragOptions;const canvasRef=useRef();const pointerInteracting=useRef(null);const pointerInteractionMovement=useRef(0);const isCanvas=RenderTarget.current()===RenderTarget.canvas;const r=useSpring(0,{stiffness:stiffness,damping:damping,mass:mass,restDelta:1e-4,restSpeed:1e-4});const fadeMask=\"radial-gradient(circle at 50% 50%, rgba(0,0,0,1) 60%, rgba(0,0,0,0) 70%)\";useEffect(()=>{let phiValue=phi;let width=0;const onResize=()=>{if(canvasRef.current&&(width=canvasRef.current.offsetWidth)){window.addEventListener(\"resize\",onResize);}};onResize();const baseConvert=convertRGB(baseColor);const glowConvert=convertRGB(glowColor);const markerConvert=convertRGB(markerColor);const globe=createGlobe(canvasRef.current,{devicePixelRatio:2,width:width*2,height:width*2,phi:phi,theta:theta,dark:dark,diffuse:diffuse,mapSamples:maxSamples,mapBrightness:mapBrightness,baseColor:[baseConvert.r,baseConvert.g,baseConvert.b],glowColor:[glowConvert.r,glowConvert.g,glowConvert.b],markerColor:[markerConvert.r,markerConvert.g,markerConvert.b],markers:markerArray.map(marker=>{return{location:[marker.latitude,marker.longitude],size:markerSize};}),scale:scale,offset:[offsetX,offsetY],onRender:state=>{if(!isCanvas){state.phi=phiValue+r.get();}state.width=width*2;state.height=width*2;if(!isCanvas){state.phi=phiValue+r.get();phiValue+=speed/200;}}});return()=>{globe.destroy();};},[props]);return /*#__PURE__*/ _jsx(\"div\",{style:{...flexStyles,placeItems:alignment,background:background},children:/*#__PURE__*/ _jsx(\"div\",{style:{width:\"100%\",aspectRatio:\"1/1\",maxWidth:maxWidth,WebkitMaskImage:fadeMask,MozMaskImage:fadeMask,maskImage:fadeMask},children:/*#__PURE__*/ _jsx(\"canvas\",{ref:canvasRef,style:{width:\"100%\",height:\"100%\",contain:\"layout paint size\",cursor:\"auto\",userSelect:\"none\"},onPointerDown:e=>{if(isDraggable){pointerInteracting.current=e.clientX-pointerInteractionMovement.current;canvasRef.current.style.cursor=\"grabbing\";}},onPointerUp:()=>{if(isDraggable){pointerInteracting.current=null;canvasRef.current.style.cursor=\"grab\";}},onPointerOver:()=>{if(isDraggable){canvasRef.current.style.cursor=\"grab\";}},onPointerOut:()=>{if(isDraggable){pointerInteracting.current=null;canvasRef.current.style.cursor=\"auto\";}},onMouseMove:e=>{if(isDraggable){if(pointerInteracting.current!==null){const delta=e.clientX-pointerInteracting.current;pointerInteractionMovement.current=delta;r.set(delta/100);}}},onTouchMove:e=>{if(pointerInteracting.current!==null&&e.touches[0]){const delta=e.touches[0].clientX-pointerInteracting.current;pointerInteractionMovement.current=delta;r.set(delta/100);}}})})});};/* Default properties */ Globe.defaultProps={background:\"#000000\",baseColor:\"#333333\",glowColor:\"#ffffff\",markerColor:\"#ffffff\",isDraggable:true,dragOptions:{stiffness:200,damping:40,mass:1},speed:1,phi:0,theta:.3,dark:1,diffuse:2,mapBrightness:20,maxSamples:2e4,markerSize:.1,markerArray:{latitude:52.3676,longitude:4.9041},scale:1,alignment:\"center\",maxWidth:800,offset:{offsetX:0,offsetY:0}};Globe.displayName=\"Globe\";const dp=Globe.defaultProps;const dpOffset=Globe.defaultProps.offset;const dpDrag=Globe.defaultProps.dragOptions;addPropertyControls(Globe,{background:{type:ControlType.Color,title:\"Backdrop\",defaultValue:dp.background},baseColor:{type:ControlType.Color,title:\"Base\",defaultValue:dp.baseColor},glowColor:{type:ControlType.Color,title:\"Glow\",defaultValue:dp.glowColor},markerColor:{type:ControlType.Color,title:\"Marker\",defaultValue:dp.markerColor},isDraggable:{type:ControlType.Boolean,title:\"Draggable\",defaultValue:dp.isDraggable},dragOptions:{type:ControlType.Object,title:\"Transition\",controls:{stiffness:{type:ControlType.Number,min:0,max:1e3,title:\"Stiffness\",defaultValue:dpDrag.stiffness},damping:{type:ControlType.Number,min:0,max:100,title:\"Damping\",defaultValue:dpDrag.damping},mass:{type:ControlType.Number,min:0,title:\"Mass\",displayStepper:true,defaultValue:dpDrag.mass}},hidden(props){return!props.isDraggable;}},speed:{type:ControlType.Number,min:0,step:.1,displayStepper:true,title:\"Speed\",defaultValue:dp.speed},phi:{type:ControlType.Number,min:0,max:6.28,step:.01,displayStepper:true,title:\"Phi\",defaultValue:dp.phi},theta:{type:ControlType.Number,min:-1.57,max:1.57,step:.01,title:\"Theta\",defaultValue:dp.theta},dark:{type:ControlType.Number,min:0,max:1,step:.1,displayStepper:true,title:\"Dark\",defaultValue:dp.dark},diffuse:{type:ControlType.Number,min:0,max:5,step:.01,title:\"Diffuse\",defaultValue:dp.diffuse},mapBrightness:{type:ControlType.Number,min:0,max:12,step:.01,title:\"Brightness\",defaultValue:dp.mapBrightness},maxSamples:{type:ControlType.Number,min:0,max:1e5,title:\"Samples\",defaultValue:dp.maxSamples},scale:{type:ControlType.Number,min:0,max:5,step:.025,displayStepper:true,title:\"Scale\",defaultValue:dp.scale},alignment:{type:ControlType.Enum,title:\"Align\",options:[\"flex-start\",\"center\",\"flex-end\"],optionIcons:[\"align-top\",\"align-middle\",\"align-bottom\"],defaultValue:dp.alignment,displaySegmentedControl:true},maxWidth:{type:ControlType.Number,title:\"Max Width\",min:100,max:5e3,defaultValue:dp.maxWidth},offset:{type:ControlType.Object,title:\"Offset\",controls:{offsetX:{type:ControlType.Number,min:-5e3,max:5e3,title:\"X\",defaultValue:dpOffset.offsetX},offsetY:{type:ControlType.Number,min:-5e3,max:5e3,title:\"Y\",defaultValue:dpOffset.offsetY}}},markerSize:{type:ControlType.Number,min:0,max:1,step:.01,title:\"Markers\",defaultValue:dp.markerSize},markerArray:{type:ControlType.Array,title:\"Location\",// defaultValue: [{ latitude: 52.3676, longitude: 4.9041 }],\ncontrol:{type:ControlType.Object,title:\"Location\",controls:{latitude:{type:ControlType.Number,min:-90,max:90,title:\"Lat\",step:1e-4,defaultValue:dp.markerArray.latitude},longitude:{type:ControlType.Number,min:-180,max:180,title:\"Long\",step:1e-4,defaultValue:dp.markerArray.longitude}}}}});/* Styles */ const flexStyles={width:\"100%\",height:\"100%\",display:\"flex\",placeItems:\"center\",placeContent:\"center\",overflow:\"visible\"};/* Functions */ const convertRGB=color=>{return{r:Color(color).r/255,g:Color(color).g/255,b:Color(color).b/255};};\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Globe\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"fixed\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerDisableUnlink\":\"*\",\"framerIntrinsicWidth\":\"300\",\"framerIntrinsicHeight\":\"300\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Globe.map","// Generated by Framer (77d7dc9)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,ControlType,cx,getFonts,RichText,SmartComponentScopedContainer,useComponentViewport,useLocaleInfo,useVariantState,withCSS,withFX}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import Globe from\"https://framerusercontent.com/modules/xFhv3ETdRBLjJusGaZ1P/d9ZONLqTB9uCj5kbWKll/Globe.js\";const GlobeFonts=getFonts(Globe);const SmartComponentScopedContainerWithFX=withFX(SmartComponentScopedContainer);const RichTextWithFX=withFX(RichText);const MotionDivWithFX=withFX(motion.div);const cycleOrder=[\"mde25S2xv\",\"AAmct7w6a\",\"jRzRk8qXv\",\"T_vBbYYrZ\"];const serializationHash=\"framer-vgVRB\";const variantClassNames={AAmct7w6a:\"framer-v-1brm2k5\",jRzRk8qXv:\"framer-v-rsshye\",mde25S2xv:\"framer-v-kzxzm0\",T_vBbYYrZ:\"framer-v-7drtbw\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={bounce:.2,delay:0,duration:.4,type:\"spring\"};const animation={opacity:0,rotate:0,rotateX:0,rotateY:0,scale:1,skewX:0,skewY:0,x:0,y:15};const transition2={bounce:.2,delay:.75,duration:.6,type:\"spring\"};const animation1={opacity:0,rotate:0,rotateX:0,rotateY:0,scale:1,skewX:0,skewY:0,transition:transition1,x:0,y:25};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const humanReadableVariantMap={Desktop:\"mde25S2xv\",Laptop:\"AAmct7w6a\",Phone:\"T_vBbYYrZ\",Tablet:\"jRzRk8qXv\"};const getProps=({height,id,width,...props})=>{return{...props,variant:humanReadableVariantMap[props.variant]??props.variant??\"mde25S2xv\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"mde25S2xv\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsx(motion.section,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-kzxzm0\",className,classNames),\"data-framer-name\":\"Desktop\",layoutDependency:layoutDependency,layoutId:\"mde25S2xv\",ref:refBinding,style:{backgroundColor:\"rgb(255, 255, 255)\",...style},...addPropertyOverrides({AAmct7w6a:{\"data-framer-name\":\"Laptop\"},jRzRk8qXv:{\"data-framer-name\":\"Tablet\"},T_vBbYYrZ:{\"data-framer-name\":\"Phone\"}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsxs(MotionDivWithFX,{__framer__spring:{bounce:.2,damping:68,delay:0,duration:1,durationBasedSpring:false,ease:[.44,0,.56,1],mass:1,stiffness:225,type:\"spring\"},__framer__styleTransformEffectEnabled:true,__framer__transformTargets:[{target:{opacity:1,rotate:0,rotateX:0,rotateY:0,scale:.9,skewX:0,skewY:0,x:0,y:0}},{target:{opacity:1,rotate:0,rotateX:0,rotateY:0,scale:1,skewX:0,skewY:0,x:0,y:0}}],__framer__transformTrigger:\"onInView\",__perspectiveFX:false,__smartComponentFX:true,__targetOpacity:1,className:\"framer-1jjfgts\",\"data-framer-name\":\"Showcase Box\",layoutDependency:layoutDependency,layoutId:\"KZuWBV_LY\",style:{background:\"radial-gradient(50% 50% at 50.8% 45.1%, var(--token-e70e7896-8378-4d23-8680-0586ff6d15ad, rgb(0, 115, 230)) 0%, rgb(6, 39, 78) 54.054054054054056%, rgb(9, 9, 11) 100%)\",borderBottomLeftRadius:25,borderBottomRightRadius:25,borderTopLeftRadius:25,borderTopRightRadius:25},children:[/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(SmartComponentScopedContainerWithFX,{__framer__spring:{damping:40,delay:0,duration:.3,ease:[.44,0,.56,1],mass:1,stiffness:600,type:\"spring\"},__framer__styleTransformEffectEnabled:true,__framer__transformTargets:[{target:{opacity:.2,rotate:0,rotateX:0,rotateY:0,scale:1,skewX:0,skewY:0,x:0,y:100}},{target:{opacity:1,rotate:0,rotateX:0,rotateY:0,scale:1,skewX:0,skewY:0,x:0,y:0}}],__framer__transformTrigger:\"onInView\",__perspectiveFX:false,__smartComponentFX:true,__targetOpacity:1,className:\"framer-12qws22-container\",isAuthoredByUser:true,isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"hhWRAm_dK-container\",nodeId:\"hhWRAm_dK\",rendersWithMotion:true,scopeId:\"MYiqcc6J9\",style:{mask:\"linear-gradient(180deg, rgba(0,0,0,0) 0%, rgb(0, 0, 0) 34%, rgba(0, 0, 0, 0) 54%) add\",WebkitMask:\"linear-gradient(180deg, rgba(0,0,0,0) 0%, rgb(0, 0, 0) 34%, rgba(0, 0, 0, 0) 54%) add\"},children:/*#__PURE__*/_jsx(Globe,{alignment:\"center\",background:\"rgba(0, 0, 0, 0)\",baseColor:\"rgb(0, 115, 230)\",dark:1,diffuse:3,dragOptions:{damping:40,mass:1,stiffness:200},glowColor:\"rgb(84, 84, 84)\",height:\"100%\",id:\"hhWRAm_dK\",isDraggable:true,layoutId:\"hhWRAm_dK\",mapBrightness:12,markerArray:[{latitude:52.3676,longitude:4.9041}],markerColor:\"var(--token-3711503b-3d3b-4886-a85c-4293b65e43e7, rgb(255, 255, 255))\",markerSize:.1,maxSamples:2e4,maxWidth:1200,offset:{offsetX:0,offsetY:0},phi:0,scale:1,speed:.3,style:{height:\"100%\",width:\"100%\"},theta:.3,width:\"100%\"})})}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-v31f2w\",\"data-framer-name\":\"Wrapper\",layoutDependency:layoutDependency,layoutId:\"BTA1A0MLe\",children:[/*#__PURE__*/_jsx(RichTextWithFX,{__framer__animate:{transition:transition2},__framer__animateOnce:true,__framer__enter:animation,__framer__exit:animation1,__framer__styleAppearEffectEnabled:true,__framer__threshold:.5,__fromCanvasComponent:true,__perspectiveFX:false,__smartComponentFX:true,__targetOpacity:1,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.h2,{style:{\"--font-selector\":\"R0Y7U291cmNlIFNlcmlmIDQtcmVndWxhcg==\",\"--framer-font-family\":'\"Source Serif 4\", \"Source Serif 4 Placeholder\", serif',\"--framer-font-size\":\"32px\",\"--framer-line-height\":\"1.4em\",\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-1of0zx5, var(--token-3ae8ccb7-84ec-4f65-9a35-aa25d61ba4ff, rgb(250, 250, 250)))\"},children:\"Our goal is to bring something new to Planet Earth.\"})}),className:\"framer-1sue3d0\",fonts:[\"GF;Source Serif 4-regular\"],layoutDependency:layoutDependency,layoutId:\"yLpkHRkWX\",style:{\"--extracted-1of0zx5\":\"var(--token-3ae8ccb7-84ec-4f65-9a35-aa25d61ba4ff, rgb(250, 250, 250))\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\",\"--framer-paragraph-spacing\":\"0px\"},verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({T_vBbYYrZ:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.h2,{style:{\"--font-selector\":\"R0Y7U291cmNlIFNlcmlmIDQtcmVndWxhcg==\",\"--framer-font-family\":'\"Source Serif 4\", \"Source Serif 4 Placeholder\", serif',\"--framer-font-size\":\"22px\",\"--framer-line-height\":\"1.4em\",\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-1of0zx5, var(--token-3ae8ccb7-84ec-4f65-9a35-aa25d61ba4ff, rgb(250, 250, 250)))\"},children:\"We are a unique firm, run by unique people. Our goal is to bring something new to Planet Earth.\"})})}},baseVariant,gestureVariant)}),/*#__PURE__*/_jsx(RichTextWithFX,{__framer__animate:{transition:transition2},__framer__animateOnce:true,__framer__enter:animation,__framer__exit:animation1,__framer__styleAppearEffectEnabled:true,__framer__threshold:.5,__fromCanvasComponent:true,__perspectiveFX:false,__smartComponentFX:true,__targetOpacity:1,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7SW50ZXIgVGlnaHQtcmVndWxhcg==\",\"--framer-font-family\":'\"Inter Tight\", \"Inter Tight Placeholder\", sans-serif',\"--framer-font-size\":\"18px\",\"--framer-letter-spacing\":\"0.02em\",\"--framer-line-height\":\"1.6em\",\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-e56f7e27-bc21-4038-ad06-7bf2680c5893, rgb(212, 212, 216)))\"},children:\"Not just another finance company. Not just another technology company. We're here because we truly love investing, and genuinely want to help you.\"})}),className:\"framer-tglwlr\",fonts:[\"GF;Inter Tight-regular\"],layoutDependency:layoutDependency,layoutId:\"bFZiOhw90\",style:{\"--extracted-r6o4lv\":\"var(--token-e56f7e27-bc21-4038-ad06-7bf2680c5893, rgb(212, 212, 216))\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},verticalAlignment:\"top\",withExternalLayout:true})]})]})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-vgVRB.framer-10cn9mc, .framer-vgVRB .framer-10cn9mc { display: block; }\",\".framer-vgVRB.framer-kzxzm0 { align-content: center; align-items: center; display: flex; flex-direction: column; flex-wrap: nowrap; gap: 38px; height: min-content; justify-content: center; overflow: visible; padding: 40px 15px 40px 15px; position: relative; width: 1900px; }\",\".framer-vgVRB .framer-1jjfgts { align-content: center; align-items: center; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 15px; height: 700px; justify-content: flex-start; max-width: 1200px; overflow: hidden; padding: 60px 30px 0px 30px; position: relative; width: 100%; will-change: var(--framer-will-change-override, transform); }\",\".framer-vgVRB .framer-12qws22-container { flex: none; height: 144%; left: calc(50.00000000000002% - 74.875% / 2); position: absolute; top: calc(93.71428571428574% - 143.64285714285714% / 2); width: 75%; z-index: 10; }\",\".framer-vgVRB .framer-v31f2w { align-content: center; align-items: center; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 15px; height: min-content; justify-content: center; max-width: 1200px; overflow: visible; padding: 0px; position: relative; width: 100%; }\",\".framer-vgVRB .framer-1sue3d0 { flex: none; height: auto; max-width: 790px; overflow: visible; position: relative; white-space: pre-wrap; width: 100%; word-break: break-word; word-wrap: break-word; }\",\".framer-vgVRB .framer-tglwlr { flex: none; height: auto; max-width: 650px; position: relative; white-space: pre-wrap; width: auto; word-break: break-word; word-wrap: break-word; }\",\".framer-vgVRB.framer-v-1brm2k5.framer-kzxzm0 { width: 1200px; }\",\".framer-vgVRB.framer-v-rsshye.framer-kzxzm0 { width: 810px; }\",\".framer-vgVRB.framer-v-7drtbw.framer-kzxzm0 { width: 390px; }\",\".framer-vgVRB.framer-v-7drtbw .framer-12qws22-container { height: 67%; left: calc(50.00000000000002% - 123.05555555555556% / 2); top: calc(93.71428571428574% - 66.57142857142857% / 2); width: 123%; }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 780\n * @framerIntrinsicWidth 1900\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"auto\"]},\"AAmct7w6a\":{\"layout\":[\"fixed\",\"auto\"]},\"jRzRk8qXv\":{\"layout\":[\"fixed\",\"auto\"]},\"T_vBbYYrZ\":{\"layout\":[\"fixed\",\"auto\"]}}}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerMYiqcc6J9=withCSS(Component,css,\"framer-vgVRB\");export default FramerMYiqcc6J9;FramerMYiqcc6J9.displayName=\"Globe Section\";FramerMYiqcc6J9.defaultProps={height:780,width:1900};addPropertyControls(FramerMYiqcc6J9,{variant:{options:[\"mde25S2xv\",\"AAmct7w6a\",\"jRzRk8qXv\",\"T_vBbYYrZ\"],optionTitles:[\"Desktop\",\"Laptop\",\"Tablet\",\"Phone\"],title:\"Variant\",type:ControlType.Enum}});addFonts(FramerMYiqcc6J9,[{explicitInter:true,fonts:[{cssFamilyName:\"Source Serif 4\",source:\"google\",style:\"normal\",uiFamilyName:\"Source Serif 4\",url:\"https://fonts.gstatic.com/s/sourceserif4/v14/vEFy2_tTDB4M7-auWDN0ahZJW3IX2ih5nk3AucvUHf6OAVIJmeUDygwjihdqrhlXD-wGvjU.woff2\",weight:\"400\"},{cssFamilyName:\"Inter Tight\",source:\"google\",style:\"normal\",uiFamilyName:\"Inter Tight\",url:\"https://fonts.gstatic.com/s/intertight/v9/NGSnv5HMAFg6IuGlBNMjxJEL2VmU3NS7Z2mjDw-qWSRToK8EPg.woff2\",weight:\"400\"}]},...GlobeFonts],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerMYiqcc6J9\",\"slots\":[],\"annotations\":{\"framerColorSyntax\":\"true\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"AAmct7w6a\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"jRzRk8qXv\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"T_vBbYYrZ\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]}}}\",\"framerDisplayContentsDiv\":\"false\",\"framerIntrinsicWidth\":\"1900\",\"framerIntrinsicHeight\":\"780\",\"framerAutoSizeImages\":\"true\",\"framerComponentViewportWidth\":\"true\",\"framerImmutableVariables\":\"true\",\"framerContractVersion\":\"1\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./MYiqcc6J9.map","// Generated by Framer (8ea6382)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,ControlType,cx,getFonts,getFontsFromSharedStyle,Image,RichText,SmartComponentScopedContainer,SVG,useComponentViewport,useLocaleInfo,useVariantState,withCSS,withFX,withOptimizedAppearEffect}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import Ticker from\"https://framerusercontent.com/modules/B2xAlJLcN0gOnt11mSPw/RLUeKLNmERbgkhrJQwKX/Ticker.js\";import*as sharedStyle from\"https://framerusercontent.com/modules/tYYvzC2scaL4kVQAoOX9/uP3dJdkYatSHGFoFGAzu/otMNhHQ2Z.js\";const TickerFonts=getFonts(Ticker);const MotionDivWithFXWithOptimizedAppearEffect=withOptimizedAppearEffect(withFX(motion.div));const MotionSectionWithFX=withFX(motion.section);const cycleOrder=[\"dYSZvMGKY\",\"LUs7ehBCg\",\"yAWq82oEM\",\"Oqj5DiSLZ\"];const serializationHash=\"framer-7FCzZ\";const variantClassNames={dYSZvMGKY:\"framer-v-1nam4zz\",LUs7ehBCg:\"framer-v-1rr3r2f\",Oqj5DiSLZ:\"framer-v-2opxaq\",yAWq82oEM:\"framer-v-1qnlcy\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const animation={opacity:1,rotate:0,rotateX:0,rotateY:0,scale:.8,skewX:0,skewY:0,x:0,y:10};const transition1={delay:0,duration:.6,ease:[.12,.23,.5,1],type:\"tween\"};const animation1={opacity:1,rotate:0,rotateX:0,rotateY:0,scale:.8,skewX:0,skewY:0,transition:transition1,x:0,y:10};const transition2={bounce:.2,delay:0,duration:.4,type:\"spring\"};const transition3={damping:50,delay:.5,mass:1,stiffness:400,type:\"spring\"};const animation2={opacity:1,rotate:0,rotateX:0,rotateY:0,scale:1,skewX:0,skewY:0,transition:transition3,x:0,y:0};const animation3={opacity:.001,rotate:0,rotateX:0,rotateY:0,scale:1,skewX:0,skewY:0,x:0,y:10};const transition4={damping:30,delay:0,mass:1,stiffness:400,type:\"spring\"};const animation4={opacity:1,rotate:0,rotateX:0,rotateY:0,scale:1,skewX:0,skewY:0,transition:transition4};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const humanReadableVariantMap={Desktop:\"dYSZvMGKY\",Laptop:\"LUs7ehBCg\",Phone:\"Oqj5DiSLZ\",Tablet:\"yAWq82oEM\"};const getProps=({height,id,width,...props})=>{return{...props,variant:humanReadableVariantMap[props.variant]??props.variant??\"dYSZvMGKY\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"dYSZvMGKY\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[sharedStyle.className];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition2,children:/*#__PURE__*/_jsx(MotionSectionWithFX,{...restProps,...gestureHandlers,__framer__animate:{transition:transition1},__framer__animateOnce:true,__framer__enter:animation,__framer__exit:animation1,__framer__styleAppearEffectEnabled:true,__framer__threshold:.5,__perspectiveFX:false,__smartComponentFX:true,__targetOpacity:1,className:cx(scopingClassNames,\"framer-1nam4zz\",className,classNames),\"data-framer-name\":\"Desktop\",layoutDependency:layoutDependency,layoutId:\"dYSZvMGKY\",ref:refBinding,style:{backgroundColor:\"rgb(255, 255, 255)\",...style},...addPropertyOverrides({LUs7ehBCg:{\"data-framer-name\":\"Laptop\"},Oqj5DiSLZ:{\"data-framer-name\":\"Phone\"},yAWq82oEM:{\"data-framer-name\":\"Tablet\"}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1qng10t\",layoutDependency:layoutDependency,layoutId:\"ZPR_Sw2SJ\",children:[/*#__PURE__*/_jsxs(MotionDivWithFXWithOptimizedAppearEffect,{__perspectiveFX:false,__smartComponentFX:true,__targetOpacity:1,animate:animation2,className:\"framer-y5sxsa\",\"data-framer-appear-id\":\"y5sxsa\",initial:animation3,layoutDependency:layoutDependency,layoutId:\"Vt2FAVOUp\",optimized:true,children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1dkxfhl\",\"data-styles-preset\":\"otMNhHQ2Z\",children:\"Backed by sophisticated venture capital firms\"})}),className:\"framer-14hd3in\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"PT26_O6vW\",style:{\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-wrq1ij\",\"data-framer-name\":\"Logos\",layoutDependency:layoutDependency,layoutId:\"On1_YxRIc\",children:/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1brh2aq-container\",isAuthoredByUser:true,isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"AJVHx04AN-container\",nodeId:\"AJVHx04AN\",rendersWithMotion:true,scopeId:\"taW6MDQnD\",style:{opacity:.75},whileHover:animation4,children:/*#__PURE__*/_jsx(Ticker,{alignment:\"center\",direction:\"left\",fadeOptions:{fadeAlpha:0,fadeContent:true,fadeInset:0,fadeWidth:80,overflow:false},gap:80,height:\"100%\",hoverFactor:.5,id:\"AJVHx04AN\",layoutId:\"AJVHx04AN\",padding:10,paddingBottom:10,paddingLeft:10,paddingPerSide:false,paddingRight:10,paddingTop:10,sizingOptions:{heightType:true,widthType:true},slots:[/*#__PURE__*/_jsx(Image,{background:{alt:\"\",fit:\"fill\",intrinsicHeight:166,intrinsicWidth:415,pixelHeight:332,pixelWidth:830,sizes:\"86px\",src:\"https://framerusercontent.com/images/akxGVBJxcJtzSvpF1E3tSow.png?scale-down-to=512\",srcSet:\"https://framerusercontent.com/images/akxGVBJxcJtzSvpF1E3tSow.png?scale-down-to=512 512w,https://framerusercontent.com/images/akxGVBJxcJtzSvpF1E3tSow.png 830w\"},className:\"framer-1y9zgps\",\"data-framer-name\":\"Image\",layoutDependency:layoutDependency,layoutId:\"r81aJ1kJe\"}),/*#__PURE__*/_jsx(Image,{background:{alt:\"\",fit:\"fill\",intrinsicHeight:71,intrinsicWidth:312,pixelHeight:142,pixelWidth:624,sizes:\"154px\",src:\"https://framerusercontent.com/images/IYy6uIk3Us97XCkWdxhxkhDEEQ.png?scale-down-to=512\",srcSet:\"https://framerusercontent.com/images/IYy6uIk3Us97XCkWdxhxkhDEEQ.png?scale-down-to=512 512w,https://framerusercontent.com/images/IYy6uIk3Us97XCkWdxhxkhDEEQ.png 624w\"},className:\"framer-5n2ko6\",\"data-framer-name\":\"Image\",layoutDependency:layoutDependency,layoutId:\"sCA24k9Qa\"}),/*#__PURE__*/_jsx(Image,{background:{alt:\"\",fit:\"fill\",intrinsicHeight:75,intrinsicWidth:166,pixelHeight:150,pixelWidth:332,src:\"https://framerusercontent.com/images/y0QFtvB2Fxlq1Fg1bPnYCh8Hd4.png\"},className:\"framer-1wf7qrq\",\"data-framer-name\":\"Image\",layoutDependency:layoutDependency,layoutId:\"ld3q_ZATq\"}),/*#__PURE__*/_jsx(Image,{background:{alt:\"\",fit:\"fill\",intrinsicHeight:51,intrinsicWidth:322,pixelHeight:102,pixelWidth:644,sizes:\"154px\",src:\"https://framerusercontent.com/images/xOFPntb8msozDKD4YfrENOfr2YI.png?scale-down-to=512\",srcSet:\"https://framerusercontent.com/images/xOFPntb8msozDKD4YfrENOfr2YI.png?scale-down-to=512 512w,https://framerusercontent.com/images/xOFPntb8msozDKD4YfrENOfr2YI.png 644w\"},className:\"framer-6lkthn\",\"data-framer-name\":\"Image\",layoutDependency:layoutDependency,layoutId:\"NVsn65qkl\"}),/*#__PURE__*/_jsx(Image,{background:{alt:\"\",fit:\"fill\",intrinsicHeight:70.5,intrinsicWidth:278,pixelHeight:141,pixelWidth:556,sizes:\"169px\",src:\"https://framerusercontent.com/images/s7T4UAm5DvO6OMkX2Q2Tyiojdc.png?scale-down-to=512\",srcSet:\"https://framerusercontent.com/images/s7T4UAm5DvO6OMkX2Q2Tyiojdc.png?scale-down-to=512 512w,https://framerusercontent.com/images/s7T4UAm5DvO6OMkX2Q2Tyiojdc.png 556w\"},className:\"framer-142cjg6\",\"data-framer-name\":\"Image\",layoutDependency:layoutDependency,layoutId:\"m8JkGE6Ul\"}),/*#__PURE__*/_jsx(Image,{background:{alt:\"\",fit:\"fill\",intrinsicHeight:114.5,intrinsicWidth:278.5,pixelHeight:229,pixelWidth:557,sizes:\"79px\",src:\"https://framerusercontent.com/images/pxdFaVyuB6gmmDb4XMARgRsE.png?scale-down-to=512\",srcSet:\"https://framerusercontent.com/images/pxdFaVyuB6gmmDb4XMARgRsE.png?scale-down-to=512 512w,https://framerusercontent.com/images/pxdFaVyuB6gmmDb4XMARgRsE.png 557w\"},className:\"framer-1akbr9h\",\"data-framer-name\":\"Image\",layoutDependency:layoutDependency,layoutId:\"m3Wekwly2\"})],speed:40,style:{height:\"100%\",width:\"100%\"},width:\"100%\"})})})})]}),/*#__PURE__*/_jsxs(MotionDivWithFXWithOptimizedAppearEffect,{__perspectiveFX:false,__smartComponentFX:true,__targetOpacity:1,animate:animation2,className:\"framer-s49jfu\",\"data-framer-appear-id\":\"s49jfu\",initial:animation3,layoutDependency:layoutDependency,layoutId:\"FPtGjca9F\",optimized:true,children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1dkxfhl\",\"data-styles-preset\":\"otMNhHQ2Z\",children:\"And backed by individual investors drawing experience from\"})}),className:\"framer-1e9mfj\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"AUJVMIelD\",style:{\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({Oqj5DiSLZ:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1dkxfhl\",\"data-styles-preset\":\"otMNhHQ2Z\",style:{\"--framer-text-alignment\":\"center\"},children:\"And backed by individual investors drawing experience from\"})})},yAWq82oEM:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1dkxfhl\",\"data-styles-preset\":\"otMNhHQ2Z\",style:{\"--framer-text-alignment\":\"center\"},children:\"And backed by individual investors drawing experience from\"})})}},baseVariant,gestureVariant)}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-7ao9pg\",\"data-framer-name\":\"Logos\",layoutDependency:layoutDependency,layoutId:\"wa0ovSCzW\",children:/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-govd2k-container\",isAuthoredByUser:true,isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"nLrdLe8D2-container\",nodeId:\"nLrdLe8D2\",rendersWithMotion:true,scopeId:\"taW6MDQnD\",style:{opacity:.75},whileHover:animation4,children:/*#__PURE__*/_jsx(Ticker,{alignment:\"center\",direction:\"right\",fadeOptions:{fadeAlpha:0,fadeContent:true,fadeInset:0,fadeWidth:80,overflow:false},gap:80,height:\"100%\",hoverFactor:.5,id:\"nLrdLe8D2\",layoutId:\"nLrdLe8D2\",padding:10,paddingBottom:10,paddingLeft:10,paddingPerSide:false,paddingRight:10,paddingTop:10,sizingOptions:{heightType:true,widthType:true},slots:[/*#__PURE__*/_jsx(SVG,{className:\"framer-1wi3v51\",\"data-framer-name\":\"63ec97e4e7fe503b8892111c Group 3408 1\",layout:\"position\",layoutDependency:layoutDependency,layoutId:\"KCzqrX1IT\",opacity:1,svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 126 32\"><g transform=\"translate(0.488 0)\" id=\"ss8633014098_1\"><path d=\"M 0 0.488 L 124.8 0.488 L 124.8 31.688 L 0 31.688 Z\" fill=\"transparent\"></path><path d=\"M 124.8 0.436 C 124.799 0.355 124.78 0.276 124.744 0.203 L 124.382 0.203 C 123.545 0.203 123.015 0.233 121.482 0.233 C 120.953 0.233 120.199 0.203 120.004 0.203 L 119.558 0.203 C 119.502 0.233 119.502 0.436 119.502 0.494 C 119.502 0.61 119.531 0.698 119.586 0.785 C 120.18 0.878 120.761 1.044 121.314 1.279 C 121.621 1.832 121.816 2.442 121.816 3.082 C 121.845 3.343 121.845 3.605 121.845 4.332 L 121.845 7.995 C 121.845 8.256 121.845 8.489 121.816 8.751 C 121.538 8.431 121.119 7.791 120.451 7.006 L 114.818 0.523 C 114.734 0.436 114.651 0.349 114.567 0.291 C 114.428 0.291 114.205 0.261 114.066 0.261 C 112.978 0.261 111.026 0.203 110.748 0.203 C 110.719 0.291 110.692 0.349 110.692 0.436 C 110.692 0.552 110.719 0.669 110.748 0.785 C 111.221 0.872 111.668 1.105 112.002 1.454 C 112.336 1.774 112.643 2.151 112.894 2.558 C 112.95 2.733 112.978 2.936 112.95 3.111 C 112.95 4.011 112.894 5.291 112.894 6.541 L 112.894 10.117 C 112.894 10.553 112.867 11.018 112.783 11.454 C 112.295 11.915 111.685 12.228 111.026 12.356 C 110.992 12.459 110.973 12.567 110.971 12.676 C 110.971 12.733 110.998 12.908 111.026 12.908 L 111.333 12.908 C 111.668 12.908 112.448 12.85 112.95 12.85 C 113.703 12.85 114.205 12.908 114.874 12.908 L 115.878 12.908 C 115.934 12.878 115.961 12.675 115.961 12.618 C 115.961 12.53 115.934 12.414 115.906 12.326 C 115.126 12.23 114.41 11.847 113.898 11.251 C 113.755 10.533 113.68 9.803 113.675 9.071 C 113.675 8.518 113.647 7.733 113.647 6.716 C 113.647 5.32 113.675 4.128 113.675 3.518 C 113.787 3.634 113.898 3.808 113.982 3.896 L 121.761 12.996 C 121.905 13.078 122.069 13.118 122.235 13.111 C 122.291 13.111 122.374 13.111 122.43 13.082 C 122.531 12.833 122.578 12.566 122.57 12.297 C 122.57 11.803 122.542 11.251 122.542 10.989 L 122.542 3.663 C 122.542 1.483 123.545 0.843 124.689 0.814 C 124.8 0.669 124.8 0.552 124.8 0.436 Z M 105.534 6.018 C 105.534 8.663 104.836 10.989 103.86 11.832 C 103.359 12.268 102.717 12.472 102.076 12.472 C 101.184 12.53 100.319 12.065 99.846 11.309 C 99.149 9.914 98.814 8.344 98.842 6.745 C 98.842 4.303 99.456 2.384 100.515 1.454 C 100.997 1.02 101.624 0.782 102.272 0.785 C 103.164 0.785 104.028 1.221 104.557 2.006 C 105.227 2.878 105.534 4.216 105.534 6.018 Z M 108.573 6.367 C 108.656 4.099 107.513 1.977 105.589 0.901 C 104.622 0.315 103.514 0.003 102.383 0 C 100.096 0.03 97.95 1.25 96.723 3.256 C 96.083 4.328 95.746 5.554 95.747 6.803 C 95.747 8.809 96.639 10.698 98.145 11.949 C 99.249 12.789 100.606 13.23 101.993 13.199 C 102.857 13.199 103.721 13.024 104.557 12.704 C 105.458 12.345 106.261 11.777 106.9 11.047 C 108.015 9.768 108.6 8.082 108.573 6.367 Z M 93.796 4.157 L 93.796 0.581 C 93.796 0.32 93.684 0.261 93.433 0.261 C 92.931 0.261 90.282 0.32 87.577 0.32 C 85.487 0.32 83.757 0.29 82.81 0.29 L 81.555 0.29 C 81.332 0.29 81.276 0.349 81.276 0.581 L 81.276 3.925 C 81.36 3.983 81.443 4.012 81.556 3.983 C 81.666 3.983 81.806 3.983 81.917 3.953 C 82.67 2.355 83.367 1.512 84.259 1.018 C 84.761 0.959 85.765 0.959 86.016 0.959 C 86.044 1.163 86.044 1.773 86.072 2.5 C 86.1 3.75 86.1 4.303 86.1 7.297 C 86.1 9.884 86.072 11.047 86.044 11.309 C 85.988 11.803 86.072 12.181 84.036 12.269 C 83.981 12.385 83.981 12.53 83.981 12.675 C 83.981 12.763 83.981 12.85 84.009 12.966 L 84.65 12.966 C 85.263 12.966 86.74 12.908 87.355 12.908 C 87.829 12.908 89.417 12.966 90.421 12.966 L 90.896 12.966 C 90.951 12.85 90.951 12.734 90.951 12.588 C 90.949 12.479 90.93 12.371 90.896 12.268 C 90.301 12.323 89.702 12.212 89.166 11.948 C 89.051 11.522 89.004 11.081 89.027 10.64 C 88.999 8.75 88.999 8.024 88.999 6.774 C 88.999 5.146 89.027 4.041 89.027 1.018 C 89.251 1.018 89.808 0.988 90.31 1.018 C 91.118 1.192 91.816 1.658 92.317 2.355 C 92.68 2.965 92.987 3.605 93.21 4.274 C 93.294 4.303 93.405 4.303 93.489 4.303 C 93.572 4.215 93.684 4.186 93.796 4.157 Z M 79.296 9.855 C 79.296 9.681 79.296 9.507 79.269 9.361 C 79.185 9.303 79.101 9.303 79.017 9.303 C 78.907 9.303 78.767 9.303 78.656 9.333 C 78.268 10.36 77.637 11.278 76.816 12.007 C 76.42 12.175 75.989 12.244 75.56 12.21 L 74.194 12.21 C 73.832 12.21 73.441 12.181 73.079 12.123 C 72.828 12.065 72.549 11.658 72.438 11.367 C 72.277 11.022 72.209 10.641 72.242 10.262 L 72.242 6.425 L 72.856 6.425 C 73.218 6.425 73.553 6.512 73.887 6.657 C 74.222 6.803 74.473 7.064 74.64 7.384 C 74.78 7.849 74.891 8.344 74.919 8.838 C 75.059 8.896 75.198 8.925 75.365 8.896 C 75.482 8.895 75.597 8.865 75.7 8.809 C 75.7 8.344 75.588 7.064 75.588 6.367 C 75.588 5.495 75.7 4.274 75.756 3.663 C 75.656 3.602 75.536 3.581 75.421 3.605 C 75.281 3.605 75.114 3.605 74.975 3.663 C 74.919 3.896 74.752 4.651 74.696 4.71 C 74.445 5.146 74.026 5.466 73.553 5.61 C 73.246 5.698 72.912 5.727 72.577 5.756 L 72.242 5.756 L 72.242 4.128 C 72.242 2.442 72.27 1.89 72.298 1.57 C 72.329 1.368 72.348 1.164 72.354 0.96 C 72.688 0.93 73.023 0.901 73.358 0.93 C 74.333 0.93 74.78 0.96 74.947 0.96 C 75.337 0.96 75.699 1.076 76.035 1.308 C 76.706 1.927 77.254 2.667 77.652 3.488 C 77.762 3.518 77.875 3.518 78.014 3.518 C 78.125 3.518 78.125 3.488 78.264 3.401 C 78.264 2.326 78.209 0.959 78.154 0.494 C 78.125 0.32 78.097 0.262 77.763 0.262 C 77.623 0.262 76.983 0.232 76.313 0.232 C 75.365 0.232 74.975 0.262 73.497 0.262 C 72.717 0.262 71.071 0.291 70.374 0.291 C 69.371 0.291 68.506 0.261 68.06 0.261 L 67.502 0.261 C 67.445 0.347 67.416 0.449 67.419 0.552 C 67.419 0.669 67.447 0.785 67.502 0.902 C 67.921 0.93 68.339 0.988 68.729 1.105 C 69.092 1.366 69.315 1.773 69.343 2.239 C 69.371 2.616 69.398 3.634 69.398 4.419 L 69.398 8.024 C 69.398 8.751 69.371 9.826 69.371 10.262 C 69.337 10.83 69.214 11.389 69.008 11.919 C 68.525 12.093 68.015 12.181 67.502 12.181 C 67.448 12.3 67.42 12.429 67.419 12.559 C 67.419 12.675 67.447 12.792 67.502 12.879 L 68.06 12.879 C 68.59 12.879 70.597 12.821 71.043 12.821 C 71.462 12.821 72.27 12.85 73.246 12.85 C 73.776 12.85 75.366 12.966 78.766 12.966 C 78.906 12.966 79.074 12.966 79.213 12.937 C 79.269 12.85 79.297 12.762 79.269 12.647 C 79.297 12.297 79.297 11.28 79.297 9.855 Z M 65.049 10.465 C 64.965 10.205 64.742 10.03 64.463 10.059 C 64.435 10.059 64.38 10.088 64.352 10.088 C 63.348 11.571 62.232 12.152 60.978 12.152 C 59.5 12.152 58.162 11.251 57.576 9.826 C 57.231 8.795 57.052 7.715 57.046 6.628 C 57.017 5.579 57.188 4.533 57.548 3.547 C 58.302 1.512 59.362 0.872 60.672 0.872 C 61.772 0.936 62.776 1.519 63.377 2.442 C 63.762 3.106 64.053 3.82 64.241 4.564 C 64.353 4.594 64.492 4.622 64.604 4.622 C 64.746 4.618 64.883 4.567 64.994 4.477 C 64.966 4.274 64.799 2.937 64.799 2.5 C 64.799 1.977 64.939 1.105 64.939 0.785 C 64.741 0.674 64.523 0.605 64.297 0.581 C 64.071 0.797 63.874 1.042 63.711 1.308 C 62.662 0.445 61.332 0 59.975 0.058 C 58.385 0 56.879 0.64 55.764 1.802 C 54.537 3.111 53.896 4.913 53.952 6.745 C 53.896 8.78 54.788 10.727 56.322 11.978 C 57.469 12.786 58.851 13.194 60.253 13.14 C 62.316 13.14 63.794 12.326 64.547 11.25 C 64.77 11.018 64.937 10.757 65.049 10.466 Z M 51.972 0.437 C 51.97 0.356 51.951 0.277 51.916 0.204 L 51.526 0.204 C 50.689 0.204 50.16 0.234 48.626 0.234 C 48.096 0.234 47.344 0.204 47.149 0.204 L 46.702 0.204 C 46.647 0.234 46.647 0.437 46.647 0.495 C 46.647 0.611 46.675 0.699 46.73 0.786 C 47.324 0.879 47.905 1.045 48.459 1.28 C 48.766 1.833 48.933 2.443 48.933 3.083 C 48.961 3.344 48.961 3.606 48.961 4.333 L 48.961 7.996 C 48.961 8.257 48.961 8.49 48.933 8.752 C 48.654 8.432 48.236 7.792 47.567 7.007 L 41.962 0.523 C 41.886 0.438 41.802 0.36 41.712 0.291 C 41.572 0.291 41.349 0.261 41.21 0.261 C 40.122 0.261 38.17 0.203 37.892 0.203 C 37.864 0.291 37.836 0.349 37.836 0.436 C 37.836 0.552 37.864 0.669 37.892 0.785 C 38.366 0.872 38.812 1.105 39.146 1.454 C 39.481 1.774 39.788 2.151 40.039 2.558 C 40.094 2.733 40.122 2.936 40.094 3.111 C 40.094 4.011 40.039 5.291 40.039 6.541 L 40.039 10.117 C 40.039 10.553 40.011 11.018 39.927 11.454 C 39.439 11.915 38.829 12.228 38.17 12.356 C 38.143 12.472 38.115 12.559 38.115 12.676 C 38.115 12.733 38.143 12.908 38.17 12.908 L 38.477 12.908 C 38.812 12.908 39.592 12.85 40.094 12.85 C 40.847 12.85 41.349 12.908 42.018 12.908 L 43.022 12.908 C 43.078 12.878 43.106 12.675 43.106 12.618 C 43.101 12.519 43.082 12.42 43.05 12.326 C 42.27 12.239 41.572 11.832 41.042 11.251 C 40.899 10.533 40.824 9.803 40.819 9.071 C 40.819 8.518 40.791 7.733 40.791 6.716 C 40.791 5.32 40.819 4.128 40.819 3.518 C 40.931 3.634 41.042 3.808 41.126 3.896 L 48.877 12.996 C 49.017 13.082 49.184 13.111 49.351 13.111 C 49.407 13.111 49.491 13.111 49.546 13.082 C 49.647 12.833 49.694 12.566 49.686 12.297 C 49.686 11.803 49.658 11.251 49.658 10.989 L 49.658 3.663 C 49.658 1.483 50.662 0.843 51.805 0.814 C 51.945 0.669 51.972 0.552 51.972 0.436 Z M 35.327 12.588 C 35.327 12.472 35.299 12.356 35.271 12.239 C 34.851 12.205 34.433 12.157 34.016 12.094 C 33.709 11.706 33.508 11.246 33.431 10.757 C 33.403 9.914 33.403 8.169 33.403 6.541 L 33.403 2.24 C 33.375 1.89 33.486 1.57 33.709 1.28 C 34.155 0.99 34.685 0.844 35.215 0.815 C 35.243 0.699 35.271 0.582 35.271 0.495 C 35.269 0.393 35.24 0.293 35.187 0.205 L 34.713 0.205 C 34.016 0.205 32.371 0.292 31.785 0.292 C 31.423 0.292 29.778 0.234 29.053 0.234 L 28.691 0.234 C 28.638 0.322 28.609 0.422 28.607 0.524 C 28.607 0.641 28.607 0.757 28.635 0.844 C 29.081 0.844 29.527 0.931 29.945 1.106 C 30.335 1.484 30.531 2.036 30.503 2.588 C 30.531 2.908 30.531 3.635 30.559 5.263 C 30.587 6.135 30.587 7.356 30.587 8.373 C 30.587 8.868 30.559 10.031 30.531 10.641 C 30.503 10.991 30.447 11.368 30.308 11.688 C 30.113 11.862 29.89 12.182 28.663 12.269 C 28.635 12.386 28.607 12.502 28.607 12.647 C 28.607 12.793 28.635 12.851 28.635 12.938 L 28.914 12.938 C 29.583 12.938 31.256 12.851 32.148 12.851 C 32.398 12.851 34.155 12.909 34.713 12.909 L 35.271 12.909 C 35.299 12.793 35.327 12.705 35.327 12.589 Z M 21.832 3.46 C 21.832 4.535 21.134 5.785 20.298 5.989 C 19.852 6.105 19.378 6.134 18.904 6.134 C 18.709 6.134 18.486 6.134 18.291 6.105 L 18.263 4.622 L 18.263 1.366 C 18.263 1.221 18.29 1.105 18.374 0.988 C 18.597 0.901 18.848 0.872 19.071 0.872 C 20.381 0.872 20.967 0.988 21.413 1.832 C 21.717 2.319 21.863 2.887 21.832 3.46 Z M 26.711 12.617 C 26.71 12.486 26.681 12.358 26.627 12.239 C 26.237 12.239 25.875 12.181 25.512 12.007 C 25.409 11.868 25.316 11.723 25.233 11.571 C 25.038 10.886 24.796 10.216 24.508 9.565 C 24.235 8.79 23.809 8.077 23.254 7.471 C 22.864 7.21 22.445 7.035 21.999 6.891 C 21.72 6.774 21.525 6.687 21.302 6.599 C 21.525 6.541 21.748 6.512 21.999 6.483 C 23.254 6.309 23.532 6.105 23.839 5.843 C 24.514 5.286 24.894 4.45 24.871 3.576 C 24.899 2.151 24.034 0.872 22.78 0.378 C 22.12 0.238 21.447 0.17 20.772 0.174 C 19.517 0.174 17.732 0.291 16.896 0.291 C 16.646 0.291 15.168 0.261 14.582 0.261 C 14.332 0.261 13.69 0.233 13.578 0.233 C 13.525 0.331 13.496 0.441 13.495 0.553 C 13.495 0.669 13.495 0.756 13.523 0.873 C 13.802 0.901 14.331 0.988 14.61 1.018 C 14.917 1.25 15.168 1.598 15.307 1.977 C 15.419 3.46 15.447 4.971 15.419 6.454 C 15.419 8.256 15.447 10.321 15.363 10.989 C 15.363 11.483 15.084 11.919 14.666 12.152 C 14.359 12.21 14.025 12.239 13.718 12.268 C 13.664 12.377 13.635 12.496 13.634 12.618 C 13.634 12.704 13.662 12.821 13.69 12.908 C 13.94 12.908 16.506 12.85 17.036 12.85 C 18.123 12.85 19.016 12.908 19.991 12.908 C 20.023 12.824 20.042 12.736 20.047 12.646 C 20.047 12.53 20.019 12.385 19.991 12.268 C 19.657 12.239 19.239 12.123 19.043 12.094 C 18.572 11.861 18.287 11.368 18.318 10.844 L 18.291 6.803 C 18.43 6.773 18.569 6.773 18.737 6.773 C 19.043 6.773 19.35 6.89 19.629 7.064 C 20.185 7.358 20.648 7.802 20.967 8.344 C 21.553 9.536 21.887 10.786 22.027 12.123 C 22.082 12.501 22.222 12.821 22.529 12.85 C 22.668 12.879 23.56 12.908 24.202 12.908 L 26.599 12.908 C 26.676 12.832 26.716 12.726 26.711 12.618 Z M 8.448 3.547 C 8.476 4.361 8.169 5.175 7.584 5.727 C 7.07 6.081 6.449 6.246 5.827 6.192 C 5.577 6.192 5.353 6.192 5.102 6.163 C 4.962 6.134 4.879 6.134 4.879 6.047 L 4.907 0.901 C 5.229 0.843 5.556 0.814 5.883 0.814 C 7.026 0.814 7.723 1.104 8.058 1.861 C 8.337 2.384 8.448 2.936 8.448 3.547 Z M 11.459 3.605 C 11.479 2.327 10.779 1.146 9.647 0.552 C 8.678 0.228 7.656 0.09 6.636 0.145 C 5.353 0.145 3.318 0.262 2.426 0.262 C 1.812 0.262 0.864 0.203 0.335 0.203 C 0.278 0.289 0.249 0.391 0.251 0.494 C 0.251 0.61 0.251 0.727 0.307 0.844 C 0.613 0.959 1.143 1.047 1.477 1.134 C 1.757 1.395 1.896 1.744 1.924 2.122 C 1.98 2.732 2.007 3.518 2.007 4.855 C 2.007 8.547 1.98 10.495 1.952 10.931 C 1.893 11.492 1.528 11.973 1.004 12.181 C 0.684 12.267 0.358 12.326 0.028 12.356 C 0 12.472 0 12.588 0 12.733 C 0 12.821 0 12.908 0.056 12.995 C 0.586 12.995 2.175 12.937 2.788 12.937 C 4.294 12.937 5.828 12.995 6.441 12.995 L 6.859 12.995 C 6.915 12.908 6.915 12.821 6.915 12.705 C 6.915 12.588 6.915 12.501 6.887 12.385 C 6.329 12.385 5.772 12.181 5.297 11.832 C 5.063 11.535 4.944 11.164 4.963 10.786 L 4.907 6.919 C 5.911 6.977 6.998 7.035 7.584 7.035 C 8.247 7.03 8.906 6.922 9.536 6.715 C 10.731 6.144 11.482 4.929 11.459 3.605 Z M 124.8 19.387 C 124.8 19.28 124.744 19.253 124.689 19.2 C 123.994 19.2 123.103 19.253 122.742 19.253 C 121.88 19.253 120.85 19.2 120.406 19.2 C 120.35 19.307 120.35 19.307 120.35 19.387 C 120.35 19.44 120.35 19.52 120.378 19.573 C 120.85 19.68 121.574 19.787 121.713 20 C 121.824 20.187 121.88 20.4 121.852 20.613 C 121.852 20.827 121.824 21.013 121.741 21.2 C 121.602 21.6 121.268 22.24 120.823 23.12 C 120.044 24.613 119.571 25.547 119.293 25.92 C 118.848 25.227 117.874 23.36 117.652 22.853 L 116.706 20.88 C 116.651 20.747 116.651 20.587 116.651 20.453 C 116.651 20.32 116.651 20.16 116.706 20.027 C 116.845 19.733 117.373 19.707 118.097 19.627 C 118.129 19.551 118.147 19.469 118.152 19.387 C 118.152 19.28 118.097 19.307 118.041 19.227 L 117.735 19.227 C 116.623 19.227 116.956 19.28 115.01 19.28 C 114.203 19.28 113.202 19.227 113.063 19.227 C 113.007 19.333 112.951 19.36 112.951 19.467 C 112.951 19.547 112.979 19.6 113.007 19.653 C 114.12 19.92 114.453 20.107 114.593 20.32 L 117.541 25.84 C 117.763 26.213 117.93 26.64 118.069 27.04 C 118.18 27.68 118.236 28.32 118.208 28.96 C 118.264 29.44 118.069 29.92 117.68 30.213 C 117.234 30.32 116.79 30.4 116.345 30.427 C 116.289 30.484 116.259 30.561 116.261 30.64 C 116.261 30.693 116.289 30.773 116.317 30.827 C 117.179 30.827 118.069 30.8 118.57 30.8 C 118.931 30.8 119.46 30.827 120.461 30.827 C 121.045 30.853 121.463 30.853 121.768 30.853 C 121.824 30.796 121.854 30.719 121.852 30.64 C 121.85 30.566 121.831 30.493 121.796 30.427 C 121.299 30.403 120.81 30.295 120.35 30.107 C 120.045 29.851 119.88 29.465 119.905 29.067 L 119.766 26.64 C 119.766 26.507 119.793 26.373 119.822 26.267 C 119.877 26.107 119.933 25.947 120.016 25.813 L 122.603 20.907 C 122.879 20.473 123.25 20.108 123.688 19.84 C 124.049 19.68 124.411 19.573 124.773 19.52 C 124.773 19.547 124.8 19.467 124.8 19.387 Z M 111.255 22.72 L 111.255 19.6 C 111.255 19.36 111.144 19.307 110.893 19.307 C 110.392 19.307 108.084 19.36 105.386 19.36 C 103.3 19.36 101.91 19.333 100.964 19.333 L 99.712 19.333 C 99.49 19.333 99.434 19.387 99.434 19.6 L 99.434 22.507 C 99.49 22.56 99.573 22.56 99.629 22.56 C 99.684 22.56 99.768 22.56 99.823 22.533 C 100.463 21.147 100.825 20.4 101.937 19.84 C 102.438 19.787 104.19 19.787 104.468 19.787 C 104.496 19.973 104.496 20.533 104.524 21.2 C 104.552 22.347 104.552 22.987 104.552 25.733 C 104.552 28.107 104.524 29.307 104.496 29.573 C 104.441 30.027 104.524 30.373 102.493 30.453 C 102.438 30.533 102.438 30.64 102.438 30.72 C 102.438 30.773 102.438 30.853 102.466 30.907 L 103.106 30.907 C 103.717 30.907 104.552 30.853 105.164 30.853 C 105.637 30.853 106.582 30.907 107.583 30.907 L 108.057 30.907 C 108.084 30.827 108.112 30.747 108.112 30.667 C 108.112 30.587 108.084 30.507 108.057 30.427 C 107.466 30.478 106.872 30.377 106.332 30.133 C 106.221 29.733 106.165 29.333 106.193 28.933 C 106.165 27.2 106.165 26.373 106.165 25.227 C 106.165 23.733 106.193 22.587 106.193 19.813 C 106.415 19.813 107.667 19.787 108.168 19.813 C 108.946 19.973 109.613 20.4 110.059 21.04 C 110.42 21.573 110.67 22.16 110.81 22.8 C 110.893 22.827 110.977 22.827 111.06 22.827 C 111.116 22.773 111.199 22.747 111.255 22.72 Z M 97.292 30.667 C 97.292 30.587 97.265 30.507 97.237 30.453 C 96.986 30.427 96.291 30.373 95.985 30.32 C 95.682 29.972 95.481 29.547 95.401 29.093 C 95.373 28.32 95.373 26.56 95.373 25.067 L 95.373 20.987 C 95.373 20.667 95.457 20.373 95.679 20.107 C 96.124 19.84 96.653 19.707 97.181 19.68 C 97.216 19.614 97.235 19.541 97.237 19.467 C 97.239 19.395 97.208 19.326 97.153 19.28 L 96.681 19.28 C 95.985 19.28 94.956 19.36 94.4 19.36 C 94.038 19.36 93.036 19.307 92.314 19.307 L 91.952 19.307 C 91.897 19.364 91.867 19.441 91.869 19.52 C 91.869 19.6 91.897 19.653 91.897 19.733 C 92.341 19.733 92.787 19.813 93.204 19.947 C 93.594 20.293 93.788 20.8 93.76 21.307 C 93.788 21.6 93.788 22.427 93.815 23.92 C 93.843 24.72 93.843 25.813 93.843 26.747 C 93.843 27.227 93.815 28.427 93.788 28.987 C 93.76 29.307 93.704 29.653 93.565 29.947 C 93.371 30.107 93.148 30.4 91.925 30.48 C 91.893 30.556 91.874 30.637 91.869 30.72 C 91.869 30.853 91.897 30.853 91.897 30.933 L 92.175 30.933 C 92.842 30.933 93.899 30.853 94.761 30.853 C 95.011 30.853 96.124 30.907 96.681 30.907 L 97.237 30.907 C 97.265 30.8 97.292 30.747 97.292 30.667 Z M 89.004 27.707 C 89.031 26.48 88.281 25.36 87.112 24.88 C 86.529 24.613 85.889 24.373 85.249 24.24 C 84.414 24.032 83.603 23.737 82.829 23.36 C 82.189 22.987 81.8 22.32 81.828 21.6 C 81.828 20.56 82.913 19.707 84.192 19.707 C 85.11 19.707 85.972 20.133 86.501 20.827 C 86.918 21.387 87.279 22 87.529 22.667 C 87.586 22.693 87.641 22.693 87.697 22.693 C 87.835 22.698 87.968 22.639 88.058 22.533 C 87.975 22.053 87.948 21.573 87.919 21.093 C 87.947 20.667 87.975 20.24 88.059 19.84 C 87.945 19.68 87.752 19.598 87.558 19.627 C 87.308 19.787 87.085 20 86.89 20.213 C 86.112 19.547 85.082 19.2 84.025 19.227 C 81.967 19.227 80.493 20.56 80.493 22.293 C 80.521 22.933 80.715 23.547 81.105 24.053 C 81.522 24.587 82.078 24.987 82.745 25.227 C 83.219 25.413 85.415 26.053 85.722 26.16 C 87.057 26.667 87.558 27.093 87.558 28.24 C 87.524 28.858 87.255 29.44 86.807 29.867 C 86.333 30.373 85.667 30.667 84.943 30.613 C 83.859 30.613 82.829 30.187 82.133 29.413 C 81.636 28.761 81.251 28.031 80.993 27.253 C 80.91 27.227 80.826 27.227 80.771 27.227 C 80.659 27.221 80.549 27.259 80.465 27.333 C 80.465 27.547 80.521 28.613 80.521 28.933 C 80.521 29.413 80.437 29.893 80.326 30.373 C 80.437 30.56 80.632 30.693 80.854 30.693 C 81.105 30.453 81.384 30.293 81.689 30.187 C 81.828 30.187 81.967 30.24 82.079 30.32 C 82.914 30.862 83.893 31.14 84.888 31.12 C 87.308 31.093 89.004 29.947 89.004 27.707 Z M 74.152 22.16 C 74.125 23.253 73.374 24.213 72.317 24.56 C 71.738 24.657 71.151 24.702 70.564 24.693 C 70.23 24.693 69.869 24.693 69.535 24.667 L 69.507 23.253 L 69.507 20.213 C 69.507 20 69.563 19.893 69.619 19.84 C 70.009 19.76 70.398 19.733 70.787 19.733 C 72.372 19.733 73.095 19.867 73.652 20.667 C 74.013 21.093 74.18 21.627 74.152 22.16 Z M 77.685 30.667 C 77.682 30.58 77.653 30.496 77.601 30.427 C 77.212 30.427 76.851 30.373 76.489 30.213 C 76.387 30.087 76.294 29.953 76.211 29.813 C 76.012 29.135 75.78 28.468 75.515 27.813 C 75.237 27.093 74.811 26.439 74.264 25.893 C 73.902 25.653 73.484 25.493 73.067 25.36 C 72.789 25.253 72.595 25.173 72.372 25.093 C 72.595 25.04 72.817 25.013 73.068 24.987 C 73.706 24.968 74.324 24.764 74.848 24.4 C 75.538 23.932 75.954 23.154 75.96 22.32 C 75.988 21.013 75.126 19.867 73.874 19.413 C 73.214 19.285 72.544 19.223 71.872 19.227 C 70.62 19.227 69.674 19.333 68.84 19.333 C 68.59 19.333 67.755 19.307 67.171 19.307 C 66.921 19.307 66.281 19.28 66.17 19.28 C 66.114 19.387 66.086 19.44 66.086 19.493 C 66.086 19.573 66.114 19.653 66.114 19.707 C 66.392 19.733 66.921 19.813 67.199 19.84 C 67.533 20.053 67.755 20.347 67.894 20.72 C 67.978 21.227 68.006 22.693 68.006 24.96 C 68.006 26.613 68.033 28.667 67.95 29.28 C 67.95 29.733 67.672 30.16 67.255 30.347 C 66.949 30.4 66.615 30.427 66.309 30.453 C 66.253 30.51 66.223 30.587 66.225 30.667 C 66.225 30.747 66.253 30.8 66.281 30.853 C 66.503 30.853 68.451 30.8 68.979 30.8 C 70.064 30.8 70.314 30.853 71.288 30.853 C 71.322 30.797 71.341 30.733 71.343 30.667 C 71.343 30.587 71.315 30.507 71.288 30.427 C 70.954 30.4 70.536 30.293 70.342 30.267 C 69.897 30.053 69.591 29.6 69.619 29.12 L 69.591 25.093 C 69.73 25.067 70.203 25.067 70.341 25.067 C 70.799 25.037 71.258 25.12 71.677 25.307 C 72.344 25.573 72.928 26.027 73.317 26.613 C 73.902 27.707 74.236 28.907 74.375 30.107 C 74.43 30.453 74.57 30.747 74.875 30.773 C 75.209 30.827 75.515 30.827 75.849 30.827 L 77.601 30.827 C 77.657 30.827 77.685 30.747 77.685 30.667 Z M 63.61 28.24 C 63.61 28.08 63.61 27.92 63.582 27.787 C 63.499 27.733 63.415 27.733 63.332 27.733 C 63.248 27.733 63.192 27.733 63.109 27.76 C 62.852 28.76 62.239 29.633 61.385 30.213 C 60.94 30.373 60.439 30.427 59.966 30.4 L 58.075 30.4 C 57.713 30.4 57.324 30.373 56.962 30.32 C 56.712 30.267 56.434 29.893 56.322 29.627 C 56.159 29.277 56.093 28.891 56.128 28.507 L 56.128 24.827 L 56.657 24.827 C 57.142 24.8 57.626 24.882 58.075 25.067 C 58.437 25.2 58.742 25.44 58.993 25.76 C 59.132 26.187 59.215 26.64 59.215 27.093 C 59.299 27.147 59.382 27.173 59.493 27.147 C 59.591 27.146 59.688 27.118 59.772 27.067 C 59.772 26.64 59.66 25.467 59.66 24.827 C 59.66 24.027 59.772 23.04 59.827 22.453 C 59.747 22.395 59.645 22.376 59.549 22.4 C 59.466 22.4 59.354 22.4 59.271 22.453 C 59.215 22.693 59.076 23.36 59.048 23.413 C 58.715 23.813 58.27 24.133 57.769 24.267 C 57.324 24.373 56.851 24.4 56.379 24.4 L 56.1 24.4 L 56.1 22.827 C 56.1 21.28 56.128 20.667 56.156 20.373 C 56.184 20.187 56.211 19.973 56.211 19.813 C 56.351 19.787 56.851 19.787 57.63 19.787 C 58.603 19.787 59.327 19.813 59.466 19.813 C 59.856 19.813 60.216 19.92 60.55 20.133 C 61.243 20.631 61.767 21.329 62.052 22.133 C 62.108 22.16 62.192 22.16 62.247 22.16 C 62.358 22.16 62.358 22.133 62.497 22.053 C 62.497 21.067 62.442 19.973 62.387 19.547 C 62.358 19.387 62.331 19.333 61.997 19.333 C 61.857 19.333 61.217 19.307 60.55 19.307 C 59.605 19.307 59.215 19.333 57.741 19.333 C 56.962 19.333 55.571 19.36 54.876 19.36 C 53.876 19.36 53.653 19.333 53.208 19.333 L 52.624 19.333 C 52.569 19.379 52.538 19.448 52.54 19.52 C 52.54 19.6 52.568 19.68 52.624 19.76 C 53.041 19.787 53.458 19.84 53.847 19.947 C 54.07 20.133 54.292 20.187 54.459 20.96 C 54.487 21.307 54.515 22.4 54.515 23.12 L 54.515 26.427 C 54.515 27.093 54.487 28.213 54.487 28.613 C 54.459 29.147 54.32 29.68 54.125 30.187 C 53.625 30.347 53.125 30.427 52.595 30.427 C 52.539 30.504 52.51 30.598 52.512 30.693 C 52.512 30.773 52.54 30.853 52.596 30.907 L 53.152 30.907 C 53.68 30.907 55.043 30.853 55.488 30.853 C 55.906 30.853 56.49 30.88 57.463 30.88 C 57.992 30.88 59.577 30.987 62.97 30.987 C 63.11 30.987 63.276 30.987 63.415 30.96 C 63.475 30.885 63.496 30.786 63.471 30.693 C 63.61 30.32 63.61 29.52 63.61 28.24 Z M 51.177 19.44 C 51.177 19.387 51.149 19.28 51.094 19.253 L 50.51 19.253 C 50.12 19.253 49.48 19.28 49.175 19.28 C 47.812 19.28 47.339 19.2 47.116 19.2 L 46.81 19.2 C 46.783 19.28 46.727 19.333 46.727 19.413 C 46.727 19.467 46.755 19.52 46.755 19.6 C 47.145 19.653 47.534 19.733 47.923 19.84 C 48.194 20.107 48.344 20.473 48.34 20.853 C 48.257 21.36 48.145 21.84 47.923 22.32 L 45.225 28.693 L 41.915 20.64 C 41.943 20.265 42.15 19.928 42.471 19.733 C 42.833 19.653 43.195 19.627 43.556 19.6 C 43.584 19.52 43.612 19.467 43.612 19.387 C 43.612 19.333 43.584 19.227 43.528 19.2 L 43.112 19.2 C 42.612 19.2 41.805 19.253 40.915 19.253 C 40.525 19.253 39.775 19.227 39.023 19.227 L 38.439 19.227 C 38.408 19.285 38.389 19.348 38.384 19.413 C 38.384 19.493 38.384 19.547 38.439 19.6 C 38.94 19.733 39.413 19.92 39.858 20.16 C 40.386 21.12 40.831 22.08 41.248 23.093 L 42.639 26.32 C 43.779 28.987 44.475 30.773 44.559 31.093 C 44.642 31.147 44.559 31.2 44.698 31.2 C 44.837 31.2 44.837 31.173 44.864 31.093 L 49.204 21.12 C 49.343 20.773 49.564 20.48 49.815 20.213 C 50.205 19.92 50.677 19.76 51.15 19.707 C 51.15 19.6 51.178 19.52 51.178 19.44 Z M 36.492 30.667 C 36.492 30.587 36.464 30.507 36.436 30.453 C 36.186 30.427 35.49 30.373 35.184 30.32 C 34.882 29.972 34.68 29.547 34.6 29.093 C 34.572 28.32 34.572 26.56 34.572 25.067 L 34.572 20.987 C 34.545 20.667 34.656 20.373 34.878 20.107 C 35.331 19.833 35.85 19.685 36.38 19.68 C 36.415 19.614 36.434 19.541 36.436 19.467 C 36.438 19.395 36.407 19.326 36.352 19.28 L 35.88 19.28 C 35.184 19.28 34.155 19.36 33.599 19.36 C 33.237 19.36 32.236 19.307 31.513 19.307 L 31.151 19.307 C 31.096 19.364 31.066 19.441 31.068 19.52 C 31.068 19.6 31.096 19.653 31.096 19.733 C 31.541 19.733 31.986 19.813 32.403 19.947 C 32.793 20.293 32.987 20.8 32.959 21.307 C 32.987 21.6 32.987 22.427 33.015 23.92 C 33.043 24.72 33.043 25.813 33.043 26.747 C 33.043 27.227 33.015 28.427 32.987 28.987 C 32.959 29.307 32.904 29.653 32.764 29.947 C 32.57 30.107 32.375 30.4 31.151 30.48 C 31.12 30.556 31.101 30.638 31.096 30.72 C 31.096 30.853 31.123 30.853 31.123 30.933 L 31.402 30.933 C 32.069 30.933 33.126 30.853 33.988 30.853 C 34.238 30.853 35.351 30.907 35.908 30.907 L 36.464 30.907 C 36.464 30.8 36.492 30.747 36.492 30.667 Z M 28.898 19.413 C 28.892 19.356 28.873 19.301 28.843 19.253 L 28.453 19.253 C 27.619 19.253 27.257 19.28 25.728 19.28 C 25.199 19.28 24.448 19.253 24.253 19.253 L 23.809 19.253 C 23.753 19.28 23.753 19.387 23.753 19.467 C 23.753 19.547 23.781 19.6 23.836 19.653 C 24.42 19.733 25.004 19.893 25.561 20.107 C 25.867 20.613 26.034 21.173 26.034 21.76 C 26.061 22 26.061 22.24 26.061 22.907 L 26.061 27.68 C 26.061 27.92 26.061 28.133 26.034 28.373 C 25.755 28.08 25.254 27.467 24.615 26.72 L 18.218 19.547 C 18.141 19.468 18.058 19.396 17.968 19.333 C 17.828 19.333 17.662 19.307 17.523 19.307 C 16.438 19.307 15.52 19.253 15.214 19.253 C 15.183 19.301 15.164 19.356 15.158 19.413 C 15.158 19.493 15.186 19.547 15.186 19.627 C 15.65 19.68 16.096 19.835 16.493 20.08 C 16.799 20.373 17.078 20.667 17.3 21.04 C 17.356 21.2 17.384 21.387 17.356 21.547 C 17.356 22.373 17.3 23.92 17.3 25.04 L 17.3 28.48 C 17.3 28.88 17.272 29.307 17.189 29.707 C 16.689 30.133 16.076 30.427 15.437 30.533 C 15.406 30.591 15.387 30.654 15.381 30.72 C 15.381 30.773 15.409 30.853 15.437 30.88 L 15.742 30.88 C 16.076 30.88 16.855 30.827 17.356 30.827 C 18.079 30.827 18.44 30.88 19.108 30.88 L 20.109 30.88 C 20.165 30.853 20.193 30.747 20.193 30.667 C 20.187 30.61 20.168 30.555 20.137 30.507 C 19.373 30.426 18.663 30.076 18.134 29.52 C 17.99 28.854 17.916 28.175 17.912 27.493 C 17.912 26.987 17.884 26.133 17.884 25.2 C 17.884 23.92 17.912 22.187 17.912 21.6 C 18.023 21.707 18.162 21.893 18.274 22.027 L 26.228 30.96 C 26.284 31.013 26.339 31.067 26.423 31.067 C 26.506 31.067 26.451 31.067 26.534 31.04 C 26.59 30.8 26.618 30.56 26.618 30.32 C 26.618 29.867 26.59 29.36 26.59 29.12 L 26.59 22.293 C 26.59 20.293 27.591 19.707 28.732 19.68 C 28.871 19.573 28.898 19.493 28.898 19.413 Z M 13.351 19.493 C 13.351 19.413 13.323 19.333 13.267 19.28 L 12.794 19.28 C 12.266 19.28 11.57 19.307 10.959 19.307 C 10.291 19.307 9.54 19.28 9.039 19.28 L 8.428 19.28 C 8.372 19.333 8.372 19.413 8.372 19.493 C 8.372 19.573 8.4 19.627 8.428 19.707 C 8.483 19.707 9.707 19.733 9.929 20 C 10.207 20.347 10.43 20.773 10.569 21.2 C 10.653 21.787 10.709 22.373 10.709 22.96 C 10.709 24.32 10.709 25.253 10.68 25.733 C 10.68 26.453 10.57 27.173 10.375 27.867 C 9.902 29.253 8.817 29.947 7.092 29.947 C 6.414 29.948 5.742 29.812 5.118 29.547 C 4.255 29.173 3.644 28.427 3.504 27.52 L 3.421 22.693 L 3.421 20.72 C 3.421 20.347 3.894 20 4.061 19.813 C 4.478 19.733 4.923 19.68 5.341 19.653 C 5.396 19.596 5.426 19.519 5.424 19.44 C 5.424 19.36 5.368 19.28 5.312 19.227 L 4.672 19.253 C 4.061 19.28 3.226 19.28 2.698 19.28 C 1.891 19.28 1.279 19.253 0.778 19.253 L 0.084 19.253 C 0.029 19.31 -0.001 19.387 0.001 19.467 C 0.001 19.547 0.029 19.6 0.057 19.653 C 0.585 19.707 0.947 19.76 1.169 19.813 C 1.447 19.973 1.642 20.24 1.753 20.533 C 1.781 20.747 1.809 21.253 1.809 22.267 L 1.809 26.133 C 1.781 26.853 1.837 27.573 1.976 28.293 C 2.17 29.12 2.699 29.813 3.422 30.267 C 4.352 30.8 5.411 31.067 6.482 31.04 C 7.486 31.061 8.48 30.832 9.374 30.373 C 10.205 29.928 10.811 29.154 11.043 28.24 C 11.219 27.615 11.312 26.969 11.321 26.32 L 11.321 23.227 C 11.321 22.64 11.349 21.92 11.349 21.627 C 11.349 21.013 11.516 20.4 11.849 19.867 C 12.295 19.733 12.767 19.68 13.24 19.653 C 13.324 19.627 13.351 19.573 13.351 19.493 Z\" fill=\"rgb(9, 9, 11)\"></path></g></svg>',svgContentId:8633014098,withExternalLayout:true}),/*#__PURE__*/_jsx(Image,{background:{alt:\"\",fit:\"fill\",intrinsicHeight:81,intrinsicWidth:355,pixelHeight:162,pixelWidth:710,sizes:\"165px\",src:\"https://framerusercontent.com/images/Xreoh6F6gMPt8XnYnZbo84MBN8.png?scale-down-to=512\",srcSet:\"https://framerusercontent.com/images/Xreoh6F6gMPt8XnYnZbo84MBN8.png?scale-down-to=512 512w,https://framerusercontent.com/images/Xreoh6F6gMPt8XnYnZbo84MBN8.png 710w\"},className:\"framer-19tj2w1\",\"data-framer-name\":\"Image\",layoutDependency:layoutDependency,layoutId:\"jEn5eYHqH\"}),/*#__PURE__*/_jsx(Image,{background:{alt:\"\",fit:\"fill\",intrinsicHeight:155,intrinsicWidth:275,pixelHeight:310,pixelWidth:550,sizes:\"147px\",src:\"https://framerusercontent.com/images/prdFsb2Exj3FRB7QWUGzWBu2I.png?scale-down-to=512\",srcSet:\"https://framerusercontent.com/images/prdFsb2Exj3FRB7QWUGzWBu2I.png?scale-down-to=512 512w,https://framerusercontent.com/images/prdFsb2Exj3FRB7QWUGzWBu2I.png 550w\"},className:\"framer-13aidu7\",\"data-framer-name\":\"Image\",layoutDependency:layoutDependency,layoutId:\"tYHkUyIrP\"}),/*#__PURE__*/_jsx(Image,{background:{alt:\"\",fit:\"fill\",intrinsicHeight:63,intrinsicWidth:358.5,pixelHeight:126,pixelWidth:717,sizes:\"179px\",src:\"https://framerusercontent.com/images/22v195pf7h0iGmIjJfPGdmpZurM.png?scale-down-to=512\",srcSet:\"https://framerusercontent.com/images/22v195pf7h0iGmIjJfPGdmpZurM.png?scale-down-to=512 512w,https://framerusercontent.com/images/22v195pf7h0iGmIjJfPGdmpZurM.png 717w\"},className:\"framer-t73uv5\",\"data-framer-name\":\"Image\",layoutDependency:layoutDependency,layoutId:\"Ri2aIekiu\"}),/*#__PURE__*/_jsx(Image,{background:{alt:\"\",fit:\"fill\",intrinsicHeight:107.5,intrinsicWidth:376,pixelHeight:215,pixelWidth:752,sizes:\"120px\",src:\"https://framerusercontent.com/images/TjLMZ2pDn84rVEvRL3UDPUfc210.png?scale-down-to=512\",srcSet:\"https://framerusercontent.com/images/TjLMZ2pDn84rVEvRL3UDPUfc210.png?scale-down-to=512 512w,https://framerusercontent.com/images/TjLMZ2pDn84rVEvRL3UDPUfc210.png 752w\"},className:\"framer-aq5ngh\",\"data-framer-name\":\"Image\",layoutDependency:layoutDependency,layoutId:\"NXXQFd_f4\"}),/*#__PURE__*/_jsx(Image,{background:{alt:\"\",fit:\"fill\",intrinsicHeight:200,intrinsicWidth:800,pixelHeight:400,pixelWidth:1600,sizes:\"159px\",src:\"https://framerusercontent.com/images/FVpl5WQV1TVGJDWiOPpfImPqvns.png?scale-down-to=1024\",srcSet:\"https://framerusercontent.com/images/FVpl5WQV1TVGJDWiOPpfImPqvns.png?scale-down-to=512 512w,https://framerusercontent.com/images/FVpl5WQV1TVGJDWiOPpfImPqvns.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/FVpl5WQV1TVGJDWiOPpfImPqvns.png 1600w\"},className:\"framer-1jfsbv1\",\"data-framer-name\":\"Image\",layoutDependency:layoutDependency,layoutId:\"qXkGJh3wM\"}),/*#__PURE__*/_jsx(Image,{background:{alt:\"\",fit:\"stretch\",positionX:\"center\",positionY:\"center\",sizes:\"164px\",src:\"https://framerusercontent.com/images/hfJ6mbQRsVKLfMOJaou9J7zuDg.png\",srcSet:\"https://framerusercontent.com/images/hfJ6mbQRsVKLfMOJaou9J7zuDg.png?scale-down-to=512 512w,https://framerusercontent.com/images/hfJ6mbQRsVKLfMOJaou9J7zuDg.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/hfJ6mbQRsVKLfMOJaou9J7zuDg.png?scale-down-to=2048 2048w,https://framerusercontent.com/images/hfJ6mbQRsVKLfMOJaou9J7zuDg.png 4000w\"},className:\"framer-3kuoyr\",\"data-framer-name\":\"BCG\",layoutDependency:layoutDependency,layoutId:\"TwKXaeerI\"}),/*#__PURE__*/_jsx(Image,{background:{alt:\"\",fit:\"stretch\",positionX:\"center\",positionY:\"center\",sizes:\"189px\",src:\"https://framerusercontent.com/images/uwJeaPKWuE7YUEKDgTJE6KU2Q.png\",srcSet:\"https://framerusercontent.com/images/uwJeaPKWuE7YUEKDgTJE6KU2Q.png?scale-down-to=512 512w,https://framerusercontent.com/images/uwJeaPKWuE7YUEKDgTJE6KU2Q.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/uwJeaPKWuE7YUEKDgTJE6KU2Q.png?scale-down-to=2048 2048w,https://framerusercontent.com/images/uwJeaPKWuE7YUEKDgTJE6KU2Q.png 4000w\"},className:\"framer-c5cp4e\",\"data-framer-name\":\"McKinsey\",layoutDependency:layoutDependency,layoutId:\"vWxuYpft_\"}),/*#__PURE__*/_jsx(Image,{background:{alt:\"\",fit:\"fill\",src:\"https://framerusercontent.com/images/8N3h1PosBip8BnqWXnO1JrB7k0.png\"},className:\"framer-urgcbn\",\"data-framer-name\":\"HBS\",layoutDependency:layoutDependency,layoutId:\"OZMXysibn\"})],speed:40,style:{height:\"100%\",width:\"100%\"},width:\"100%\"})})})})]})]})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-7FCzZ.framer-3iyegz, .framer-7FCzZ .framer-3iyegz { display: block; }\",\".framer-7FCzZ.framer-1nam4zz { align-content: center; align-items: center; display: flex; flex-direction: column; flex-wrap: nowrap; gap: 38px; height: min-content; justify-content: center; max-width: 1200px; overflow: visible; padding: 40px 15px 40px 15px; position: relative; width: 1200px; }\",\".framer-7FCzZ .framer-1qng10t { align-content: center; align-items: center; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; overflow: hidden; padding: 0px; position: relative; width: 100%; }\",\".framer-7FCzZ .framer-y5sxsa, .framer-7FCzZ .framer-s49jfu { align-content: center; align-items: center; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: flex-start; overflow: visible; padding: 0px; position: relative; width: 100%; }\",\".framer-7FCzZ .framer-14hd3in, .framer-7FCzZ .framer-1e9mfj { flex: none; height: auto; position: relative; white-space: pre; width: auto; }\",\".framer-7FCzZ .framer-wrq1ij, .framer-7FCzZ .framer-7ao9pg { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; overflow: hidden; padding: 10px 0px 20px 0px; position: relative; width: min-content; }\",\".framer-7FCzZ .framer-1brh2aq-container, .framer-7FCzZ .framer-govd2k-container { flex: none; height: 75px; position: relative; width: 924px; }\",\".framer-7FCzZ .framer-1y9zgps { aspect-ratio: 2.5 / 1; height: var(--framer-aspect-ratio-supported, 34px); overflow: visible; position: relative; width: 86px; }\",\".framer-7FCzZ .framer-5n2ko6 { aspect-ratio: 4.394366197183099 / 1; height: var(--framer-aspect-ratio-supported, 35px); overflow: visible; position: relative; width: 154px; }\",\".framer-7FCzZ .framer-1wf7qrq { aspect-ratio: 2.2133333333333334 / 1; height: var(--framer-aspect-ratio-supported, 42px); overflow: visible; position: relative; width: 94px; }\",\".framer-7FCzZ .framer-6lkthn { aspect-ratio: 6.313725490196078 / 1; height: var(--framer-aspect-ratio-supported, 24px); overflow: visible; position: relative; width: 154px; }\",\".framer-7FCzZ .framer-142cjg6 { aspect-ratio: 3.9432624113475176 / 1; height: var(--framer-aspect-ratio-supported, 43px); overflow: visible; position: relative; width: 169px; }\",\".framer-7FCzZ .framer-1akbr9h { aspect-ratio: 2.432314410480349 / 1; height: var(--framer-aspect-ratio-supported, 32px); overflow: visible; position: relative; width: 79px; }\",\".framer-7FCzZ .framer-1wi3v51 { height: 32px; position: relative; width: 126px; }\",\".framer-7FCzZ .framer-19tj2w1 { aspect-ratio: 4.382716049382716 / 1; height: var(--framer-aspect-ratio-supported, 38px); overflow: visible; position: relative; width: 165px; }\",\".framer-7FCzZ .framer-13aidu7 { aspect-ratio: 1.7741935483870968 / 1; height: var(--framer-aspect-ratio-supported, 83px); overflow: visible; position: relative; width: 147px; }\",\".framer-7FCzZ .framer-t73uv5 { aspect-ratio: 5.690476190476191 / 1; height: var(--framer-aspect-ratio-supported, 31px); overflow: visible; position: relative; width: 179px; }\",\".framer-7FCzZ .framer-aq5ngh { aspect-ratio: 3.4976744186046513 / 1; height: var(--framer-aspect-ratio-supported, 34px); overflow: visible; position: relative; width: 120px; }\",\".framer-7FCzZ .framer-1jfsbv1 { aspect-ratio: 4 / 1; height: var(--framer-aspect-ratio-supported, 40px); overflow: visible; position: relative; width: 159px; }\",\".framer-7FCzZ .framer-3kuoyr { aspect-ratio: 4.424778761061947 / 1; height: var(--framer-aspect-ratio-supported, 37px); position: relative; width: 164px; }\",\".framer-7FCzZ .framer-c5cp4e { aspect-ratio: 2.998500749625187 / 1; height: var(--framer-aspect-ratio-supported, 63px); position: relative; width: 189px; }\",\".framer-7FCzZ .framer-urgcbn { aspect-ratio: 1.5 / 1; height: var(--framer-aspect-ratio-supported, 84px); position: relative; width: 126px; }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-7FCzZ.framer-1nam4zz, .framer-7FCzZ .framer-1qng10t, .framer-7FCzZ .framer-y5sxsa, .framer-7FCzZ .framer-wrq1ij, .framer-7FCzZ .framer-s49jfu, .framer-7FCzZ .framer-7ao9pg { gap: 0px; } .framer-7FCzZ.framer-1nam4zz > * { margin: 0px; margin-bottom: calc(38px / 2); margin-top: calc(38px / 2); } .framer-7FCzZ.framer-1nam4zz > :first-child, .framer-7FCzZ .framer-1qng10t > :first-child, .framer-7FCzZ .framer-y5sxsa > :first-child, .framer-7FCzZ .framer-s49jfu > :first-child { margin-top: 0px; } .framer-7FCzZ.framer-1nam4zz > :last-child, .framer-7FCzZ .framer-1qng10t > :last-child, .framer-7FCzZ .framer-y5sxsa > :last-child, .framer-7FCzZ .framer-s49jfu > :last-child { margin-bottom: 0px; } .framer-7FCzZ .framer-1qng10t > * { margin: 0px; margin-bottom: calc(10px / 2); margin-top: calc(10px / 2); } .framer-7FCzZ .framer-y5sxsa > *, .framer-7FCzZ .framer-s49jfu > * { margin: 0px; margin-bottom: calc(0px / 2); margin-top: calc(0px / 2); } .framer-7FCzZ .framer-wrq1ij > *, .framer-7FCzZ .framer-7ao9pg > * { margin: 0px; margin-left: calc(10px / 2); margin-right: calc(10px / 2); } .framer-7FCzZ .framer-wrq1ij > :first-child, .framer-7FCzZ .framer-7ao9pg > :first-child { margin-left: 0px; } .framer-7FCzZ .framer-wrq1ij > :last-child, .framer-7FCzZ .framer-7ao9pg > :last-child { margin-right: 0px; } }\",\".framer-7FCzZ.framer-v-1qnlcy.framer-1nam4zz { width: 810px; }\",\".framer-7FCzZ.framer-v-1qnlcy .framer-1e9mfj, .framer-7FCzZ.framer-v-2opxaq .framer-1e9mfj { white-space: pre-wrap; width: 100%; word-break: break-word; word-wrap: break-word; }\",\".framer-7FCzZ.framer-v-2opxaq.framer-1nam4zz { width: 390px; }\",\".framer-7FCzZ.framer-v-2opxaq .framer-s49jfu { padding: 0px 40px 0px 40px; }\",...sharedStyle.css];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 345\n * @framerIntrinsicWidth 1200\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"auto\"],\"constraints\":[null,\"1200px\",null,null]},\"LUs7ehBCg\":{\"layout\":[\"fixed\",\"auto\"],\"constraints\":[null,\"1200px\",null,null]},\"yAWq82oEM\":{\"layout\":[\"fixed\",\"auto\"],\"constraints\":[null,\"1200px\",null,null]},\"Oqj5DiSLZ\":{\"layout\":[\"fixed\",\"auto\"],\"constraints\":[null,\"1200px\",null,null]}}}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerComponentViewportWidth true\n */const FramertaW6MDQnD=withCSS(Component,css,\"framer-7FCzZ\");export default FramertaW6MDQnD;FramertaW6MDQnD.displayName=\"Black logos\";FramertaW6MDQnD.defaultProps={height:345,width:1200};addPropertyControls(FramertaW6MDQnD,{variant:{options:[\"dYSZvMGKY\",\"LUs7ehBCg\",\"yAWq82oEM\",\"Oqj5DiSLZ\"],optionTitles:[\"Desktop\",\"Laptop\",\"Tablet\",\"Phone\"],title:\"Variant\",type:ControlType.Enum}});addFonts(FramertaW6MDQnD,[{explicitInter:true,fonts:[{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5vvr9Vy74if2I6bQbJvbw7SY1pQ.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/EOr0mi4hNtlgWNn9if640EZzXCo.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/Y9k9QrlZAqio88Klkmbd8VoMQc.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/OYrD2tBIBPvoJXiIHnLoOXnY9M.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/JeYwfuaPfZHQhEG8U5gtPDZ7WQ.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/vQyevYAyHtARFwPqUzQGpnDs.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/b6Y37FthZeALduNqHicBT6FutY.woff2\",weight:\"400\"}]},...TickerFonts,...getFontsFromSharedStyle(sharedStyle.fonts)],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramertaW6MDQnD\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"345\",\"framerIntrinsicWidth\":\"1200\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"],\\\"constraints\\\":[null,\\\"1200px\\\",null,null]},\\\"LUs7ehBCg\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"],\\\"constraints\\\":[null,\\\"1200px\\\",null,null]},\\\"yAWq82oEM\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"],\\\"constraints\\\":[null,\\\"1200px\\\",null,null]},\\\"Oqj5DiSLZ\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"],\\\"constraints\\\":[null,\\\"1200px\\\",null,null]}}}\",\"framerContractVersion\":\"1\",\"framerDisplayContentsDiv\":\"false\",\"framerImmutableVariables\":\"true\",\"framerComponentViewportWidth\":\"true\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./taW6MDQnD.map","import { ControlType } from \"framer\";\nexport const fontStack = `\"Inter\", system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"`;\nexport const containerStyles = {\n    position: \"relative\",\n    width: \"100%\",\n    height: \"100%\",\n    display: \"flex\",\n    justifyContent: \"center\",\n    alignItems: \"center\"\n};\nexport const emptyStateStyle = {\n    ...containerStyles,\n    borderRadius: 6,\n    background: \"rgba(136, 85, 255, 0.3)\",\n    color: \"#85F\",\n    border: \"1px dashed #85F\",\n    flexDirection: \"column\"\n};\nexport const defaultEvents = {\n    onClick: {\n        type: ControlType.EventHandler\n    },\n    onMouseEnter: {\n        type: ControlType.EventHandler\n    },\n    onMouseLeave: {\n        type: ControlType.EventHandler\n    }\n};\nexport const fontSizeOptions = {\n    type: ControlType.Number,\n    title: \"Font Size\",\n    min: 2,\n    max: 200,\n    step: 1,\n    displayStepper: true\n};\nexport const fontControls = {\n    font: {\n        type: ControlType.Boolean,\n        title: \"Font\",\n        defaultValue: false,\n        disabledTitle: \"Default\",\n        enabledTitle: \"Custom\"\n    },\n    fontFamily: {\n        type: ControlType.String,\n        title: \"Family\",\n        placeholder: \"Inter\",\n        hidden: ({ font  })=>!font\n    },\n    fontWeight: {\n        type: ControlType.Enum,\n        title: \"Weight\",\n        options: [\n            100,\n            200,\n            300,\n            400,\n            500,\n            600,\n            700,\n            800,\n            900\n        ],\n        optionTitles: [\n            \"Thin\",\n            \"Extra-light\",\n            \"Light\",\n            \"Regular\",\n            \"Medium\",\n            \"Semi-bold\",\n            \"Bold\",\n            \"Extra-bold\",\n            \"Black\", \n        ],\n        hidden: ({ font  })=>!font\n    }\n};\n// @TODO check if we're missing anything here — there doesn't seem to be a reliable browser API for this\nexport const localeOptions = {\n    af: \"Afrikaans\",\n    sq: \"Albanian\",\n    an: \"Aragonese\",\n    ar: \"Arabic (Standard)\",\n    \"ar-dz\": \"Arabic (Algeria)\",\n    \"ar-bh\": \"Arabic (Bahrain)\",\n    \"ar-eg\": \"Arabic (Egypt)\",\n    \"ar-iq\": \"Arabic (Iraq)\",\n    \"ar-jo\": \"Arabic (Jordan)\",\n    \"ar-kw\": \"Arabic (Kuwait)\",\n    \"ar-lb\": \"Arabic (Lebanon)\",\n    \"ar-ly\": \"Arabic (Libya)\",\n    \"ar-ma\": \"Arabic (Morocco)\",\n    \"ar-om\": \"Arabic (Oman)\",\n    \"ar-qa\": \"Arabic (Qatar)\",\n    \"ar-sa\": \"Arabic (Saudi Arabia)\",\n    \"ar-sy\": \"Arabic (Syria)\",\n    \"ar-tn\": \"Arabic (Tunisia)\",\n    \"ar-ae\": \"Arabic (U.A.E.)\",\n    \"ar-ye\": \"Arabic (Yemen)\",\n    hy: \"Armenian\",\n    as: \"Assamese\",\n    ast: \"Asturian\",\n    az: \"Azerbaijani\",\n    eu: \"Basque\",\n    bg: \"Bulgarian\",\n    be: \"Belarusian\",\n    bn: \"Bengali\",\n    bs: \"Bosnian\",\n    br: \"Breton\",\n    my: \"Burmese\",\n    ca: \"Catalan\",\n    ch: \"Chamorro\",\n    ce: \"Chechen\",\n    zh: \"Chinese\",\n    \"zh-hk\": \"Chinese (Hong Kong)\",\n    \"zh-cn\": \"Chinese (PRC)\",\n    \"zh-sg\": \"Chinese (Singapore)\",\n    \"zh-tw\": \"Chinese (Taiwan)\",\n    cv: \"Chuvash\",\n    co: \"Corsican\",\n    cr: \"Cree\",\n    hr: \"Croatian\",\n    cs: \"Czech\",\n    da: \"Danish\",\n    nl: \"Dutch (Standard)\",\n    \"nl-be\": \"Dutch (Belgian)\",\n    en: \"English\",\n    \"en-au\": \"English (Australia)\",\n    \"en-bz\": \"English (Belize)\",\n    \"en-ca\": \"English (Canada)\",\n    \"en-ie\": \"English (Ireland)\",\n    \"en-jm\": \"English (Jamaica)\",\n    \"en-nz\": \"English (New Zealand)\",\n    \"en-ph\": \"English (Philippines)\",\n    \"en-za\": \"English (South Africa)\",\n    \"en-tt\": \"English (Trinidad & Tobago)\",\n    \"en-gb\": \"English (United Kingdom)\",\n    \"en-us\": \"English (United States)\",\n    \"en-zw\": \"English (Zimbabwe)\",\n    eo: \"Esperanto\",\n    et: \"Estonian\",\n    fo: \"Faeroese\",\n    fa: \"Farsi\",\n    fj: \"Fijian\",\n    fi: \"Finnish\",\n    fr: \"French (Standard)\",\n    \"fr-be\": \"French (Belgium)\",\n    \"fr-ca\": \"French (Canada)\",\n    \"fr-fr\": \"French (France)\",\n    \"fr-lu\": \"French (Luxembourg)\",\n    \"fr-mc\": \"French (Monaco)\",\n    \"fr-ch\": \"French (Switzerland)\",\n    fy: \"Frisian\",\n    fur: \"Friulian\",\n    gd: \"Gaelic (Scots)\",\n    \"gd-ie\": \"Gaelic (Irish)\",\n    gl: \"Galacian\",\n    ka: \"Georgian\",\n    de: \"German (Standard)\",\n    \"de-at\": \"German (Austria)\",\n    \"de-de\": \"German (Germany)\",\n    \"de-li\": \"German (Liechtenstein)\",\n    \"de-lu\": \"German (Luxembourg)\",\n    \"de-ch\": \"German (Switzerland)\",\n    el: \"Greek\",\n    gu: \"Gujurati\",\n    ht: \"Haitian\",\n    he: \"Hebrew\",\n    hi: \"Hindi\",\n    hu: \"Hungarian\",\n    is: \"Icelandic\",\n    id: \"Indonesian\",\n    iu: \"Inuktitut\",\n    ga: \"Irish\",\n    it: \"Italian (Standard)\",\n    \"it-ch\": \"Italian (Switzerland)\",\n    ja: \"Japanese\",\n    kn: \"Kannada\",\n    ks: \"Kashmiri\",\n    kk: \"Kazakh\",\n    km: \"Khmer\",\n    ky: \"Kirghiz\",\n    tlh: \"Klingon\",\n    ko: \"Korean\",\n    \"ko-kp\": \"Korean (North Korea)\",\n    \"ko-kr\": \"Korean (South Korea)\",\n    la: \"Latin\",\n    lv: \"Latvian\",\n    lt: \"Lithuanian\",\n    lb: \"Luxembourgish\",\n    mk: \"FYRO Macedonian\",\n    ms: \"Malay\",\n    ml: \"Malayalam\",\n    mt: \"Maltese\",\n    mi: \"Maori\",\n    mr: \"Marathi\",\n    mo: \"Moldavian\",\n    nv: \"Navajo\",\n    ng: \"Ndonga\",\n    ne: \"Nepali\",\n    no: \"Norwegian\",\n    nb: \"Norwegian (Bokmal)\",\n    nn: \"Norwegian (Nynorsk)\",\n    oc: \"Occitan\",\n    or: \"Oriya\",\n    om: \"Oromo\",\n    \"fa-ir\": \"Persian/Iran\",\n    pl: \"Polish\",\n    pt: \"Portuguese\",\n    \"pt-br\": \"Portuguese (Brazil)\",\n    pa: \"Punjabi\",\n    \"pa-in\": \"Punjabi (India)\",\n    \"pa-pk\": \"Punjabi (Pakistan)\",\n    qu: \"Quechua\",\n    rm: \"Rhaeto-Romanic\",\n    ro: \"Romanian\",\n    \"ro-mo\": \"Romanian (Moldavia)\",\n    ru: \"Russian\",\n    \"ru-mo\": \"Russian (Moldavia)\",\n    sz: \"Sami (Lappish)\",\n    sg: \"Sango\",\n    sa: \"Sanskrit\",\n    sc: \"Sardinian\",\n    sd: \"Sindhi\",\n    si: \"Singhalese\",\n    sr: \"Serbian\",\n    sk: \"Slovak\",\n    sl: \"Slovenian\",\n    so: \"Somani\",\n    sb: \"Sorbian\",\n    es: \"Spanish\",\n    \"es-ar\": \"Spanish (Argentina)\",\n    \"es-bo\": \"Spanish (Bolivia)\",\n    \"es-cl\": \"Spanish (Chile)\",\n    \"es-co\": \"Spanish (Colombia)\",\n    \"es-cr\": \"Spanish (Costa Rica)\",\n    \"es-do\": \"Spanish (Dominican Republic)\",\n    \"es-ec\": \"Spanish (Ecuador)\",\n    \"es-sv\": \"Spanish (El Salvador)\",\n    \"es-gt\": \"Spanish (Guatemala)\",\n    \"es-hn\": \"Spanish (Honduras)\",\n    \"es-mx\": \"Spanish (Mexico)\",\n    \"es-ni\": \"Spanish (Nicaragua)\",\n    \"es-pa\": \"Spanish (Panama)\",\n    \"es-py\": \"Spanish (Paraguay)\",\n    \"es-pe\": \"Spanish (Peru)\",\n    \"es-pr\": \"Spanish (Puerto Rico)\",\n    \"es-es\": \"Spanish (Spain)\",\n    \"es-uy\": \"Spanish (Uruguay)\",\n    \"es-ve\": \"Spanish (Venezuela)\",\n    sx: \"Sutu\",\n    sw: \"Swahili\",\n    sv: \"Swedish\",\n    \"sv-fi\": \"Swedish (Finland)\",\n    \"sv-sv\": \"Swedish (Sweden)\",\n    ta: \"Tamil\",\n    tt: \"Tatar\",\n    te: \"Teluga\",\n    th: \"Thai\",\n    tig: \"Tigre\",\n    ts: \"Tsonga\",\n    tn: \"Tswana\",\n    tr: \"Turkish\",\n    tk: \"Turkmen\",\n    uk: \"Ukrainian\",\n    hsb: \"Upper Sorbian\",\n    ur: \"Urdu\",\n    ve: \"Venda\",\n    vi: \"Vietnamese\",\n    vo: \"Volapuk\",\n    wa: \"Walloon\",\n    cy: \"Welsh\",\n    xh: \"Xhosa\",\n    ji: \"Yiddish\",\n    zu: \"Zulu\"\n};\n\nexport const __FramerMetadata__ = {\"exports\":{\"fontSizeOptions\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fontControls\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"localeOptions\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fontStack\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"emptyStateStyle\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"containerStyles\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"defaultEvents\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./constants.map","import { useIsInCurrentNavigationTarget } from \"framer\";\nimport { useEffect } from \"react\";\nexport function useOnEnter(onEnter, enabled) {\n    return useOnSpecificTargetChange(true, onEnter, enabled);\n}\nexport function useOnExit(onExit, enabled) {\n    return useOnSpecificTargetChange(false, onExit, enabled);\n}\nfunction useOnSpecificTargetChange(goal, callback, enabled = true) {\n    const isInTarget = useIsInCurrentNavigationTarget();\n    useEffect(()=>{\n        if (enabled && isInTarget === goal) callback();\n    }, [\n        isInTarget\n    ]);\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"useOnEnter\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useOnExit\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./useOnNavigationTargetChange.map","import { useRef } from \"react\";\n/**\n * Creates a constant value over the lifecycle of a component.\n *\n * Even if `useMemo` is provided an empty array as its final argument, it doesn't offer\n * a guarantee that it won't re-run for performance reasons later on. By using `useConstant`\n * you can ensure that initialisers don't execute twice or more.\n */ export function useConstant(init) {\n    const ref = useRef(null);\n    if (ref.current === null) {\n        ref.current = init();\n    }\n    return ref.current;\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"useConstant\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./useConstant.map","import { Color } from \"framer\";\nexport function colorFromToken(color) {\n    if (color.startsWith(\"var(--token-\")) return \"rgb\" + color.split(\") /*\")[0].split(\", rgb\")[1];\n    return color;\n}\nexport function colorTokentoValue(color) {\n    return Color(colorFromToken(color)).toValue();\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"colorFromToken\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"colorTokentoValue\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./colorFromToken.map","import { MotionValue } from \"framer\";\nexport const isMotionValue = (v)=>v instanceof MotionValue\n;\n\nexport const __FramerMetadata__ = {\"exports\":{\"isMotionValue\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./isMotionValue.map","import * as React from \"react\";\nconst letters = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\";\nconst l = ()=>letters[Math.floor(Math.random() * letters.length)]\n;\nexport const randomID = ()=>l() + l() + l() + l() + l() + l() + l() + l() + l()\n;\nfunction createUniqueClass(suffix) {\n    return `framer-${suffix}-${randomID()}`;\n}\nexport function useUniqueClassName(suffix, deps) {\n    const [className, setClassName] = React.useState(createUniqueClass(suffix));\n    React.useEffect(()=>{\n        setClassName(createUniqueClass(suffix));\n    }, [\n        suffix,\n        ...deps\n    ]);\n    return className;\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"useUniqueClassName\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"randomID\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./useUniqueClassName.map","import { ControlType } from \"framer\";\n// I realize this only applies to select right now\n// but we can work on it in here\nexport function getVariantControls(Component, variant, additionalControls = {\n}) {\n    return {\n        [`${variant}TextColor`]: {\n            type: ControlType.Color,\n            title: \"Text Color\",\n            defaultValue: Component.defaultProps[`${variant}TextColor`],\n            hidden: (props)=>props.variant !== variant\n        },\n        [`${variant}IconColor`]: {\n            type: ControlType.Color,\n            title: \"Icon Color\",\n            defaultValue: Component.defaultProps[`${variant}IconColor`],\n            hidden: (props)=>props.variant !== variant\n        },\n        [`${variant}BackgroundColor`]: {\n            type: ControlType.Color,\n            title: \"Bg Color\",\n            defaultValue: Component.defaultProps[`${variant}BackgroundColor`],\n            hidden: (props)=>props.variant !== variant\n        },\n        [`${variant}BorderColor`]: {\n            type: ControlType.Color,\n            title: \"Border Color\",\n            defaultValue: Component.defaultProps[`${variant}BorderColor`],\n            hidden: (props)=>props.variant !== variant\n        },\n        [`${variant}BorderWidth`]: {\n            type: ControlType.Number,\n            title: \" \",\n            min: 0,\n            max: 5,\n            displayStepper: true,\n            defaultValue: Component.defaultProps[`${variant}BorderWidth`],\n            hidden: (props)=>props.variant !== variant\n        },\n        ...additionalControls\n    };\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"getVariantControls\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./variantUtils.map","import { useMemo } from \"react\";\nexport const isBrowserSafari = ()=>{\n    if (typeof navigator !== `undefined`) {\n        const userAgent = navigator.userAgent.toLowerCase();\n        const isSafari = (userAgent.indexOf(\"safari\") > -1 || userAgent.indexOf(\"framermobile\") > -1 || userAgent.indexOf(\"framerx\") > -1) && userAgent.indexOf(\"chrome\") < 0;\n        return isSafari;\n    } else return false;\n};\nexport const useIsBrowserSafari = ()=>useMemo(()=>isBrowserSafari()\n    , [])\n;\n\nexport const __FramerMetadata__ = {\"exports\":{\"useIsBrowserSafari\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"isBrowserSafari\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./isBrowser.map","import { useEffect } from \"react\";\n//@ts-ignore\nimport { isMotionValue } from \"https://framerusercontent.com/modules/3mKFSGQqKHV82uOV1eBc/5fbRLvOpxZC0JOXugvwm/isMotionValue.js\";\nexport function useOnChange(value, callback) {\n    useEffect(()=>// @ts-ignore this should be detected as a MV :shrug:\n        isMotionValue(value) ? value.onChange(callback) : undefined\n    );\n}\nexport function useMultiOnChange(values, handler) {\n    useEffect(()=>{\n        const subscriptions = values.map((value)=>value.onChange(handler)\n        );\n        return ()=>subscriptions.forEach((unsubscribe)=>unsubscribe()\n            )\n        ;\n    });\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"Subscriber\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useOnChange\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useMultiOnChange\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./useOnChange.map","import { useCallback, useEffect, useRef } from \"react\";\nimport { motionValue, animate, RenderTarget } from \"framer\";\n// @ts-ignore\nimport { isMotionValue } from \"https://framerusercontent.com/modules/3mKFSGQqKHV82uOV1eBc/5fbRLvOpxZC0JOXugvwm/isMotionValue.js\";\n// @ts-ignore\nimport { useConstant } from \"https://framerusercontent.com/modules/ExNgrA7EJTKUPpH6vIlN/eiOrSJ2Ab5M9jPCvVwUz/useConstant.js\";\nexport function useAutoMotionValue(inputValue, options) {\n    var ref;\n    // Put options on a local ref\n    // Might wanna just memo instead but it works for now\n    const optionsRef = useRef(options);\n    const animation = useRef();\n    const didInitialMount = useRef(false);\n    const isOnCanvas = RenderTarget.current() === RenderTarget.canvas;\n    // in-progress - trying to figure out effect hooks\n    const onChangeDeps = (options === null || options === void 0 ? void 0 : options.onChangeDeps) ? options.onChangeDeps : [];\n    // Memoize the onChange handler\n    const onChange = useCallback(options === null || options === void 0 ? void 0 : options.onChange, [\n        ...onChangeDeps, \n    ]);\n    // Optionally scale the value from props\n    const transformer = useCallback((value)=>((ref = optionsRef.current) === null || ref === void 0 ? void 0 : ref.transform) ? optionsRef.current.transform(value) : value\n    , []);\n    // Create new MotionValue from inputValue\n    const value = useConstant(()=>isMotionValue(inputValue) ? inputValue : motionValue(transformer(inputValue))\n    );\n    // Setting value from prop change\n    useEffect(()=>{\n        if (!isMotionValue(inputValue) && didInitialMount.current) {\n            var ref1, ref2;\n            const newValue = transformer(inputValue);\n            (ref1 = animation.current) === null || ref1 === void 0 ? void 0 : ref1.stop();\n            // Call change callback\n            if (onChange) onChange(newValue, value);\n            // Trigger animation to new value\n            if (((ref2 = optionsRef.current) === null || ref2 === void 0 ? void 0 : ref2.animate) && !isOnCanvas) {\n                var ref3;\n                // @ts-ignore\n                animation.current = animate(value, newValue, (ref3 = optionsRef.current) === null || ref3 === void 0 ? void 0 : ref3.transition);\n            } else {\n                value.set(newValue);\n            }\n        }\n        didInitialMount.current = true;\n    }, [\n        inputValue,\n        ...onChangeDeps\n    ]);\n    return value;\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"useAutoMotionValue\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}","// @ts-ignore\nimport{fontStore}from\"framer\";import{useEffect}from\"react\";import{fontStack}from\"https://framerusercontent.com/modules/VTUDdizacRHpwbkOamr7/AykinQJbgwl92LvMGZwu/constants.js\";const fontWeights={100:\"Thin\",200:\"Extra-light\",300:\"Light\",400:\"Regular\",500:\"Medium\",600:\"Semi-bold\",700:\"Bold\",800:\"Extra-bold\",900:\"Black\"};export function useFontControls(props){const{fontFamily=\"Inter\",fontSize=16,fontWeight=400,font=false}=props;const fontWeightName=fontWeights[fontWeight];const customFontStack=`\"${fontFamily} ${fontWeightName}\", \"${fontFamily}\", ${fontStack}`;const fontFamilyStyle=fontFamily?{fontSize,fontWeight,fontFamily:customFontStack}:{fontSize,fontWeight};const fetchCustomFonts=async()=>{await fontStore.loadWebFontsFromSelectors([`CUSTOM;${fontFamily}`,`CUSTOM;${fontFamily} ${fontWeightName}`,`GF;${fontFamily}-${fontWeightName.toLowerCase()}`,]).catch(e=>console.error(e));};useEffect(()=>{if(font)fetchCustomFonts();},[font,fontFamily,fontWeight]);return fontFamilyStyle;}\nexport const __FramerMetadata__ = {\"exports\":{\"useFontControls\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./useFontControls.map","import { useMemo } from \"react\";\nimport { RenderTarget } from \"framer\";\nexport function useRenderTarget() {\n    const currentRenderTarget = useMemo(()=>RenderTarget.current()\n    , []);\n    return currentRenderTarget;\n}\nexport function useIsInPreview() {\n    const inPreview = useMemo(()=>RenderTarget.current() === RenderTarget.preview\n    , []);\n    return inPreview;\n}\nexport function useIsOnCanvas() {\n    const onCanvas = useMemo(()=>RenderTarget.current() === RenderTarget.canvas\n    , []);\n    return onCanvas;\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"useIsInPreview\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useRenderTarget\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useIsOnCanvas\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./useRenderTarget.map","import * as React from \"react\";\nexport function useControlledState(value) {\n    const [controlledValue, setValue] = React.useState(value);\n    React.useEffect(()=>{\n        setValue(value);\n    }, [\n        value\n    ]);\n    return [\n        controlledValue,\n        setValue\n    ];\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"useControlledState\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./useControlledState.map","import { useMemo } from \"react\";\nimport { ControlType } from \"framer\";\nexport function useRadius(props) {\n    const { borderRadius , isMixedBorderRadius , topLeftRadius , topRightRadius , bottomRightRadius , bottomLeftRadius ,  } = props;\n    const radiusValue = useMemo(()=>isMixedBorderRadius ? `${topLeftRadius}px ${topRightRadius}px ${bottomRightRadius}px ${bottomLeftRadius}px` : `${borderRadius}px`\n    , [\n        borderRadius,\n        isMixedBorderRadius,\n        topLeftRadius,\n        topRightRadius,\n        bottomRightRadius,\n        bottomLeftRadius, \n    ]);\n    return radiusValue;\n}\nexport const borderRadiusControl = {\n    borderRadius: {\n        title: \"Radius\",\n        type: ControlType.FusedNumber,\n        toggleKey: \"isMixedBorderRadius\",\n        toggleTitles: [\n            \"Radius\",\n            \"Radius per corner\"\n        ],\n        valueKeys: [\n            \"topLeftRadius\",\n            \"topRightRadius\",\n            \"bottomRightRadius\",\n            \"bottomLeftRadius\", \n        ],\n        valueLabels: [\n            \"TL\",\n            \"TR\",\n            \"BR\",\n            \"BL\"\n        ],\n        min: 0\n    }\n};\nexport function usePadding(props) {\n    const { padding , paddingPerSide , paddingTop , paddingRight , paddingBottom , paddingLeft ,  } = props;\n    const paddingValue = useMemo(()=>paddingPerSide ? `${paddingTop}px ${paddingRight}px ${paddingBottom}px ${paddingLeft}px` : padding\n    , [\n        padding,\n        paddingPerSide,\n        paddingTop,\n        paddingRight,\n        paddingBottom,\n        paddingLeft, \n    ]);\n    return paddingValue;\n}\nexport const paddingControl = {\n    padding: {\n        type: ControlType.FusedNumber,\n        toggleKey: \"paddingPerSide\",\n        toggleTitles: [\n            \"Padding\",\n            \"Padding per side\"\n        ],\n        valueKeys: [\n            \"paddingTop\",\n            \"paddingRight\",\n            \"paddingBottom\",\n            \"paddingLeft\", \n        ],\n        valueLabels: [\n            \"T\",\n            \"R\",\n            \"B\",\n            \"L\"\n        ],\n        min: 0,\n        title: \"Padding\"\n    }\n};\n\nexport const __FramerMetadata__ = {\"exports\":{\"borderRadiusControl\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useRadius\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"RadiusProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"PaddingProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"usePadding\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"paddingControl\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./propUtils.map","import{defaultEvents,localeOptions,fontControls,fontSizeOptions,emptyStateStyle,containerStyles,fontStack}from\"https://framerusercontent.com/modules/VTUDdizacRHpwbkOamr7/AykinQJbgwl92LvMGZwu/constants.js\";import{useOnEnter,useOnExit}from\"https://framerusercontent.com/modules/D4TWeLfcxT6Tysr2BlYg/iZjmqdxVx1EOiM3k1FaW/useOnNavigationTargetChange.js\";import{useConstant}from\"https://framerusercontent.com/modules/ExNgrA7EJTKUPpH6vIlN/eiOrSJ2Ab5M9jPCvVwUz/useConstant.js\";import{colorTokentoValue,colorFromToken}from\"https://framerusercontent.com/modules/D2Lz5CmnNVPZFFiZXalt/QaCzPbriZBfXWZIIycFI/colorFromToken.js\";import{isMotionValue}from\"https://framerusercontent.com/modules/3mKFSGQqKHV82uOV1eBc/5fbRLvOpxZC0JOXugvwm/isMotionValue.js\";import{useUniqueClassName,randomID}from\"https://framerusercontent.com/modules/xDiQsqBGXzmMsv7AlEVy/uhunpMiNsbXxzjlXsg1y/useUniqueClassName.js\";import{getVariantControls}from\"https://framerusercontent.com/modules/ETACN5BJyFTSo0VVDJfu/NHRqowOiXkF9UwOzczF7/variantUtils.js\";import{useIsBrowserSafari}from\"https://framerusercontent.com/modules/eMBrwoqQK7h6mEeGQUH8/GuplvPJVjmxpk9zqOTcb/isBrowser.js\";import{useMultiOnChange,useOnChange}from\"https://framerusercontent.com/modules/v9AWX2URmiYsHf7GbctE/XxKAZ9KlhWqf5x1JMyyF/useOnChange.js\";import{mstoMinAndSec,secondsToMinutes}from\"https://framerusercontent.com/modules/4zHZnO5JojN1PrIbu2jm/revv9QCWpkh8lPzi2jje/time.js\";import{useAutoMotionValue}from\"https://framerusercontent.com/modules/kNDwabfjDEb3vUxkQlZS/fSIr3AOAYbGlfSPgXpYu/useAutoMotionValue.js\";import{useFontControls}from\"https://framerusercontent.com/modules/cuQH4dmpDnV8YK1mSgQX/KqRXqunFjE6ufhpc7ZRu/useFontControls.js\";import{useRenderTarget,useIsInPreview,useIsOnCanvas}from\"https://framerusercontent.com/modules/afBE9Yx1W6bY5q32qPxe/m3q7puE2tbo1S2C0s0CT/useRenderTarget.js\";import{useControlledState}from\"https://framerusercontent.com/modules/zGkoP8tPDCkoBzMdt5uq/0zFSjxIYliHxrQQnryFX/useControlledState.js\";import{usePadding,useRadius,paddingControl,borderRadiusControl}from\"https://framerusercontent.com/modules/5SM58HxZHxjjv7aLMOgQ/WXz9i6mVki0bBCrKdqB3/propUtils.js\";import{detectAutoSizingAxis}from\"https://framerusercontent.com/modules/8CkHAZatUz1UR8jNTcfD/HwbnIAZlUmQ2oTpcLkaH/detectAutoSizingAxis.js\";export{useOnEnter,useOnExit,defaultEvents,isMotionValue,colorFromToken,colorTokentoValue,localeOptions,fontControls,fontSizeOptions,emptyStateStyle,containerStyles,fontStack,useUniqueClassName,getVariantControls,useIsBrowserSafari,randomID,useConstant,useMultiOnChange,useOnChange,usePadding,useRadius,paddingControl,borderRadiusControl,mstoMinAndSec,useFontControls,secondsToMinutes,useAutoMotionValue,useRenderTarget,useIsInPreview,useControlledState,detectAutoSizingAxis,useIsOnCanvas,};\nexport const __FramerMetadata__ = {\"exports\":{\"useConstant\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"isMotionValue\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fontControls\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"defaultEvents\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useUniqueClassName\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useMultiOnChange\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useOnChange\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useIsOnCanvas\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useOnExit\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fontSizeOptions\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"colorTokentoValue\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useRadius\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getVariantControls\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"colorFromToken\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"containerStyles\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"usePadding\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fontStack\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useControlledState\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useFontControls\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useAutoMotionValue\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"emptyStateStyle\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useIsInPreview\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useIsBrowserSafari\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"detectAutoSizingAxis\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"borderRadiusControl\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"mstoMinAndSec\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"randomID\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"localeOptions\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useOnEnter\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"secondsToMinutes\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useRenderTarget\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"paddingControl\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}","import{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,useIsInCurrentNavigationTarget,RenderTarget}from\"framer\";import{isMotionValue,useInView}from\"framer-motion\";import{borderRadiusControl,defaultEvents,useIsBrowserSafari,useIsOnCanvas,useOnEnter,useOnExit,useRadius,useRenderTarget}from\"https://framerusercontent.com/modules/G4IfyjvwmaeSBpdb4TWu/OIjZRBmWDcIE2B6qgG1j/index.js\";// https://framer.com/m/framer/default-utils.js@^0.45.0\nimport{memo,useCallback,useEffect,useMemo,useRef,useState}from\"react\";var ObjectFitType;(function(ObjectFitType){ObjectFitType[\"Fill\"]=\"fill\";ObjectFitType[\"Contain\"]=\"contain\";ObjectFitType[\"Cover\"]=\"cover\";ObjectFitType[\"None\"]=\"none\";ObjectFitType[\"ScaleDown\"]=\"scale-down\";})(ObjectFitType||(ObjectFitType={}));var SrcType;(function(SrcType){SrcType[\"Video\"]=\"Upload\";SrcType[\"Url\"]=\"URL\";})(SrcType||(SrcType={}));const defaultVideo=\"https://framerusercontent.com/assets/MLWPbW1dUQawJLhhun3dBwpgJak.mp4\";// Reduce renders\nfunction getProps(props){const{width,height,topLeft,topRight,bottomRight,bottomLeft,id,children,...rest}=props;return rest;}/**\n * VIDEO\n *\n * @framerIntrinsicWidth 200\n * @framerIntrinsicHeight 112\n *\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n */export function Video(props){const newProps=getProps(props);return /*#__PURE__*/_jsx(VideoMemo,{...newProps});}function usePlaybackControls(videoRef){const isInCurrentNavigationTarget=useIsInCurrentNavigationTarget();const requestingPlay=useRef(false);const isPlayingRef=useRef(false);const setProgress=useCallback(rawProgress=>{if(!videoRef.current)return;const newProgress=(rawProgress===1?.999:rawProgress)*videoRef.current.duration;const isAlreadySet=Math.abs(videoRef.current.currentTime-newProgress)<.1;if(videoRef.current.duration>0&&!isAlreadySet){videoRef.current.currentTime=newProgress;}},[]);const play=useCallback(()=>{const video=videoRef.current;if(!video)return;video.preload=\"auto\"// makes sure browsers don't throttle: https://html.spec.whatwg.org/multipage/media.html#:~:text=When%20the%20media%20resource%20is%20playing%2C%20hints%20to%20the%20user%20agent%20that%20bandwidth%20is%20to%20be%20considered%20scarce%2C%20e.g.%20suggesting%20throttling%20the%20download%20so%20that%20the%20media%20data%20is%20obtained%20at%20the%20slowest%20possible%20rate%20that%20still%20maintains%20consistent%20playback.\n;const isPlaying=video.currentTime>0&&video.onplaying&&!video.paused&&!video.ended&&video.readyState>=video.HAVE_CURRENT_DATA;if(!isPlaying&&video&&!requestingPlay.current&&isInCurrentNavigationTarget){requestingPlay.current=true;isPlayingRef.current=true;video.play().catch(e=>{})// It's likely fine, swallow error\n.finally(()=>requestingPlay.current=false);}},[]);const pause=useCallback(()=>{if(!videoRef.current||requestingPlay.current)return;videoRef.current.pause();isPlayingRef.current=false;},[]);return{play,pause,setProgress,isPlaying:isPlayingRef};}function useAutoplayBehavior({playingProp,muted,loop,playsinline,controls}){const[initialPlayingProp]=useState(()=>playingProp);const[hasPlayingPropChanged,setHasPlayingPropChanged]=useState(false);if(playingProp!==initialPlayingProp&&!hasPlayingPropChanged){setHasPlayingPropChanged(true);}const behavesAsGif=// passing `playing === true` on mount indicates that the video should\n// autoplay, like a GIF\ninitialPlayingProp&&muted&&loop&&playsinline&&!controls&&// Some users of the <Video> component use it by wrapping it with\n// another smart component and adding their own controls on top. (The\n// controls use transitions to control the video: e.g., when clicking\n// the play button, the smart component will transition to a state with\n// <Video playing={true} />.) In this case, we don't want the video to\n// behave as a gif, as it will be weird if the video suddenly started\n// acting as such (and auto-pausing when leaving the viewport) as soon\n// as the site visitor mutes it and clicks “Play”.\n!hasPlayingPropChanged;let autoplay;if(behavesAsGif)autoplay=\"on-viewport\";else if(initialPlayingProp)autoplay=\"on-mount\";else autoplay=\"no-autoplay\";return autoplay;}const VideoMemo=/*#__PURE__*/memo(function VideoInner(props){const{// default props\nsrcType=\"URL\",srcUrl,srcFile=\"\",posterEnabled=false,controls=false,playing=true,loop=true,muted=true,playsinline=true,restartOnEnter=false,objectFit=\"cover\",backgroundColor=\"rgba(0,0,0,0)\",radius=0,volume=25,startTime:startTimeProp=0,poster,playing:playingProp,progress,onSeeked,onPause,onPlay,onEnd,onClick,onMouseEnter,onMouseLeave,onMouseDown,onMouseUp}=props;const videoRef=useRef();const isSafari=useIsBrowserSafari();const wasPausedOnLeave=useRef(null);const wasEndedOnLeave=useRef(null);const isOnCanvas=useIsOnCanvas();const renderTarget=useRenderTarget();const isStaticRenderer=isOnCanvas||renderTarget===RenderTarget.export;const borderRadius=useRadius(props);// Hard-coding `autoplayBehavior` and `isInViewport` when on canvas as a\n// tiny perf optimization. isStaticRenderer won’t change through the lifecycle of\n// the component, so using these hooks conditionally should be safe\nconst autoplayBehavior=isStaticRenderer?\"no-autoplay\":useAutoplayBehavior({playingProp,muted,loop,playsinline,controls});const isInViewport=isStaticRenderer?true:useInView(videoRef);const isCloseToViewport=isStaticRenderer?false:useInView(videoRef,{margin:\"0px 0px 100px 100px\",once:true});// Video elements behave oddly at 100% duration\nconst startTime=startTimeProp===100?99.9:startTimeProp;const{play,pause,setProgress,isPlaying}=usePlaybackControls(videoRef);// Pause/play via props\nuseEffect(()=>{if(isStaticRenderer)return;if(playingProp)play();else pause();},[playingProp]);// Pause/play via viewport\nuseEffect(()=>{if(isStaticRenderer)return;if(autoplayBehavior!==\"on-viewport\")return;if(isInViewport)play();else pause();},[autoplayBehavior,isInViewport]);/**\n     * The Video component has some effects that sync the video element with props\n     * like `startTime`, `progress`, etc. React calls these effects whenever these\n     * props change. However, it also calls them on the first mount, and this is\n     * troublesome – if we’re doing SSR, and the user changed the video state before\n     * the video was hydrated, the initial `useEffect` call will reset the video\n     * state. To avoid this, we use this flag.\n     */const isMountedAndReadyForProgressChanges=useRef(false);// Allow scrubbling via progress prop\n// 1) Handle cases when the progress prop itself changes\nuseEffect(()=>{if(!isMountedAndReadyForProgressChanges.current){isMountedAndReadyForProgressChanges.current=true;return;}const rawProgressValue=isMotionValue(progress)?progress.get():(progress??0)*.01;setProgress(// When the progress value exists (e.g. <Video startTime={10}\n// progress={50} />), we respect the `progress` value over\n// `startTime`, even if `startTime` changes. That’s because\n// `startTime` == start == changing it shouldn’t affect the current\n// progress\n(rawProgressValue??0)||// Then why fall back to `startTime` when `progress` doesn’t exist,\n// you might ask? Now, that’s for\n// - canvas UX: we want the video progress to change when the user\n//   is scrobbling the “Start Time” in component settings.\n// - backwards compatibility: maybe some users *are* scrobbling\n//   using `startTime` instead of `progress`? We don’t know, and it\n//   always supported it, so let’s not break it\n(startTime??0)/100);},[startTime,srcFile,srcUrl,progress]);// 2) Handle cases when the motion value inside the progress prop changes\nuseEffect(()=>{if(!isMotionValue(progress))return;return progress.on(\"change\",value=>setProgress(value));},[progress]);// (Prototyping) Checking if we need to play on navigation enter\nuseOnEnter(()=>{if(wasPausedOnLeave.current===null)return;if(videoRef.current){// if (restartOnEnter) setProgress(0)\nif(!wasEndedOnLeave&&loop||!wasPausedOnLeave.current)play();}});// (Prototyping) Pausing & saving playing state on navigation exit\nuseOnExit(()=>{if(videoRef.current){wasEndedOnLeave.current=videoRef.current.ended;wasPausedOnLeave.current=videoRef.current.paused;pause();}});const src=useMemo(()=>{let fragment=\"\";// if (\n//     startTime > 0 &&\n//     videoRef.current &&\n//     !isNaN(videoRef.current.duration) &&\n//     !isStaticRenderer\n// ) {\n//     console.log(startTime, videoRef.current.duration)\n//     fragment = `#t=${startTime * videoRef.current.duration}`\n// }\nif(srcType===\"URL\")return srcUrl+fragment;if(srcType===\"Upload\")return srcFile+fragment;},[srcType,srcFile,srcUrl,startTime]);// Autoplay via JS to work in Safari\nuseEffect(()=>{if(isSafari&&videoRef.current&&autoplayBehavior===\"on-mount\"){setTimeout(()=>play(),50);}},[]);// Volume Control\nuseEffect(()=>{if(videoRef.current&&!muted)videoRef.current.volume=(volume??0)/100;},[volume]);// When video is ready, set start-time, then autoplay if needed\nconst handleReady=()=>{const video=videoRef.current;if(!video)return;if(video.currentTime<.3&&startTime>0)setProgress((startTime??0)*.01);if(// when the component updates (e.g. only srcFile/url changes), and the video was already playing, keep playing\nisPlaying.current||autoplayBehavior===\"on-mount\"||autoplayBehavior===\"on-viewport\"&&isInViewport)play();};return /*#__PURE__*/_jsx(\"video\",{onClick,onMouseEnter,onMouseLeave,onMouseDown,onMouseUp,src:src,loop:loop,ref:videoRef,onSeeked:e=>onSeeked?.(e),onPause:e=>onPause?.(e),onPlay:e=>onPlay?.(e),onEnded:e=>onEnd?.(e),autoPlay:isPlaying.current||autoplayBehavior===\"on-mount\"||autoplayBehavior===\"on-viewport\"&&isInViewport,preload:isPlaying.current?\"auto\":isStaticRenderer&&!poster?\"metadata\":autoplayBehavior!==\"on-mount\"&&!isCloseToViewport?\"none\":// `autoplay` overrides this too\n\"metadata\",poster:posterEnabled&&!srcFile&&srcUrl===defaultVideo?\"https://framerusercontent.com/images/5ILRvlYXf72kHSVHqpa3snGzjU.jpg\":posterEnabled&&poster?poster:undefined,onLoadedData:handleReady,controls:controls,muted:isStaticRenderer?true:muted,playsInline:playsinline,style:{cursor:!!onClick?\"pointer\":\"auto\",width:\"100%\",height:\"100%\",borderRadius,display:\"block\",objectFit:objectFit,backgroundColor:backgroundColor,objectPosition:\"50% 50%\"}});});Video.displayName=\"Video\";function capitalizeFirstLetter(value){return value.charAt(0).toUpperCase()+value.slice(1);}export function titleCase(value){const groups=value.match(/[A-Z]{2,}|[A-Z][a-z]+|[a-z]+|[A-Z]|\\d+/gu)||[];return groups.map(capitalizeFirstLetter).join(\" \");}const objectFitOptions=[\"cover\",\"fill\",\"contain\",\"scale-down\",\"none\"];addPropertyControls(Video,{srcType:{type:ControlType.Enum,displaySegmentedControl:true,title:\"Source\",options:[\"URL\",\"Upload\"]},srcUrl:{type:ControlType.String,title:\"URL\",defaultValue:\"https://framerusercontent.com/assets/MLWPbW1dUQawJLhhun3dBwpgJak.mp4\",hidden(props){return props.srcType===\"Upload\";}},srcFile:{type:ControlType.File,title:\"File\",allowedFileTypes:[\"mp4\",\"webm\"],hidden(props){return props.srcType===\"URL\";}},playing:{type:ControlType.Boolean,title:\"Playing\",enabledTitle:\"Yes\",disabledTitle:\"No\"},...borderRadiusControl,posterEnabled:{type:ControlType.Boolean,title:\"Poster\",enabledTitle:\"Yes\",disabledTitle:\"No\"},poster:{type:ControlType.Image,title:\"Image\",hidden:({posterEnabled})=>!posterEnabled,description:\"We recommend adding a poster. [Learn more](https://www.framer.com/help/articles/how-are-videos-optimized-in-framer/).\"},backgroundColor:{type:ControlType.Color,title:\"Background\",defaultValue:\"rgba(0,0,0,0)\"},startTime:{title:\"Start Time\",type:ControlType.Number,min:0,max:100,step:.1,unit:\"%\"},loop:{type:ControlType.Boolean,title:\"Loop\",enabledTitle:\"Yes\",disabledTitle:\"No\"},objectFit:{type:ControlType.Enum,title:\"Fit\",options:objectFitOptions,optionTitles:objectFitOptions.map(titleCase)},// restartOnEnter: {\n//     type: ControlType.Boolean,\n//     title: \"On ReEnter\",\n//     enabledTitle: \"Restart\",\n//     disabledTitle: \"Resume\",\n// },\ncontrols:{type:ControlType.Boolean,title:\"Controls\",enabledTitle:\"Show\",disabledTitle:\"Hide\",defaultValue:false},muted:{type:ControlType.Boolean,title:\"Muted\",enabledTitle:\"Yes\",disabledTitle:\"No\"},volume:{type:ControlType.Number,max:100,min:0,unit:\"%\",hidden:({muted})=>muted,defaultValue:25},onEnd:{type:ControlType.EventHandler},onSeeked:{type:ControlType.EventHandler},onPause:{type:ControlType.EventHandler},onPlay:{type:ControlType.EventHandler},...defaultEvents});\nexport const __FramerMetadata__ = {\"exports\":{\"titleCase\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"VideoProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Video\":{\"type\":\"reactComponent\",\"name\":\"Video\",\"slots\":[],\"annotations\":{\"framerIntrinsicWidth\":\"200\",\"framerIntrinsicHeight\":\"112\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Video.map","// Generated by Framer (b6cf623)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"GF;Source Serif 4-regular\",\"GF;Source Serif 4-700\",\"GF;Source Serif 4-700italic\",\"GF;Source Serif 4-italic\"]);export const fonts=[{explicitInter:true,fonts:[{family:\"Source Serif 4\",openType:true,source:\"google\",style:\"normal\",url:\"https://fonts.gstatic.com/s/sourceserif4/v8/vEFy2_tTDB4M7-auWDN0ahZJW3IX2ih5nk3AucvUHf6OAVIJmeUDygwjihdqrhlXD-wGvjU.woff2\",weight:\"400\"},{family:\"Source Serif 4\",openType:true,source:\"google\",style:\"normal\",url:\"https://fonts.gstatic.com/s/sourceserif4/v8/vEFy2_tTDB4M7-auWDN0ahZJW3IX2ih5nk3AucvUHf6OAVIJmeUDygwjivBtrhlXD-wGvjU.woff2\",weight:\"700\"},{family:\"Source Serif 4\",openType:true,source:\"google\",style:\"italic\",url:\"https://fonts.gstatic.com/s/sourceserif4/v8/vEF02_tTDB4M7-auWDN0ahZJW1ge6NmXpVAHV83Bfb_US2D2QYxoUKIkn98poVhdDs4DrjXEXw.woff2\",weight:\"700\"},{family:\"Source Serif 4\",openType:true,source:\"google\",style:\"italic\",url:\"https://fonts.gstatic.com/s/sourceserif4/v8/vEF02_tTDB4M7-auWDN0ahZJW1ge6NmXpVAHV83Bfb_US2D2QYxoUKIkn98pRl9dDs4DrjXEXw.woff2\",weight:\"400\"}]}];export const css=['.framer-rw6TW .framer-styles-preset-1rg8u9r:not(.rich-text-wrapper), .framer-rw6TW .framer-styles-preset-1rg8u9r.rich-text-wrapper h3 { --framer-font-family: \"Source Serif 4\", \"Source Serif 4 Placeholder\", serif; --framer-font-family-bold: \"Source Serif 4\", \"Source Serif 4 Placeholder\", serif; --framer-font-family-bold-italic: \"Source Serif 4\", \"Source Serif 4 Placeholder\", serif; --framer-font-family-italic: \"Source Serif 4\", \"Source Serif 4 Placeholder\", serif; --framer-font-open-type-features: \\'blwf\\' on, \\'cv09\\' on, \\'cv03\\' on, \\'cv04\\' on, \\'cv11\\' on; --framer-font-size: 44px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 400; --framer-letter-spacing: 0em; --framer-line-height: 1.4em; --framer-paragraph-spacing: 40px; --framer-text-alignment: start; --framer-text-color: #000000; --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }','@media (max-width: 1899px) and (min-width: 1200px) { .framer-rw6TW .framer-styles-preset-1rg8u9r:not(.rich-text-wrapper), .framer-rw6TW .framer-styles-preset-1rg8u9r.rich-text-wrapper h3 { --framer-font-family: \"Source Serif 4\", \"Source Serif 4 Placeholder\", serif; --framer-font-family-bold: \"Source Serif 4\", \"Source Serif 4 Placeholder\", serif; --framer-font-family-bold-italic: \"Source Serif 4\", \"Source Serif 4 Placeholder\", serif; --framer-font-family-italic: \"Source Serif 4\", \"Source Serif 4 Placeholder\", serif; --framer-font-open-type-features: \\'blwf\\' on, \\'cv09\\' on, \\'cv03\\' on, \\'cv04\\' on, \\'cv11\\' on; --framer-font-size: 35px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 400; --framer-letter-spacing: 0em; --framer-line-height: 1.4em; --framer-paragraph-spacing: 40px; --framer-text-alignment: start; --framer-text-color: #000000; --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }','@media (max-width: 1199px) and (min-width: 810px) { .framer-rw6TW .framer-styles-preset-1rg8u9r:not(.rich-text-wrapper), .framer-rw6TW .framer-styles-preset-1rg8u9r.rich-text-wrapper h3 { --framer-font-family: \"Source Serif 4\", \"Source Serif 4 Placeholder\", serif; --framer-font-family-bold: \"Source Serif 4\", \"Source Serif 4 Placeholder\", serif; --framer-font-family-bold-italic: \"Source Serif 4\", \"Source Serif 4 Placeholder\", serif; --framer-font-family-italic: \"Source Serif 4\", \"Source Serif 4 Placeholder\", serif; --framer-font-open-type-features: \\'blwf\\' on, \\'cv09\\' on, \\'cv03\\' on, \\'cv04\\' on, \\'cv11\\' on; --framer-font-size: 28px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 400; --framer-letter-spacing: 0em; --framer-line-height: 1.4em; --framer-paragraph-spacing: 40px; --framer-text-alignment: start; --framer-text-color: #000000; --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }','@media (max-width: 809px) and (min-width: 0px) { .framer-rw6TW .framer-styles-preset-1rg8u9r:not(.rich-text-wrapper), .framer-rw6TW .framer-styles-preset-1rg8u9r.rich-text-wrapper h3 { --framer-font-family: \"Source Serif 4\", \"Source Serif 4 Placeholder\", serif; --framer-font-family-bold: \"Source Serif 4\", \"Source Serif 4 Placeholder\", serif; --framer-font-family-bold-italic: \"Source Serif 4\", \"Source Serif 4 Placeholder\", serif; --framer-font-family-italic: \"Source Serif 4\", \"Source Serif 4 Placeholder\", serif; --framer-font-open-type-features: \\'blwf\\' on, \\'cv09\\' on, \\'cv03\\' on, \\'cv04\\' on, \\'cv11\\' on; --framer-font-size: 23px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 400; --framer-letter-spacing: 0em; --framer-line-height: 1.4em; --framer-paragraph-spacing: 40px; --framer-text-alignment: start; --framer-text-color: #000000; --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }'];export const className=\"framer-rw6TW\";\nexport const __FramerMetadata__ = {\"exports\":{\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (677c5d1)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,ControlType,cx,getFonts,getFontsFromSharedStyle,RichText,SmartComponentScopedContainer,useComponentViewport,useLocaleInfo,useVariantState,withCSS,withFX}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import{Video}from\"https://framerusercontent.com/modules/lRDHiNWNVWmE0lqtoVHP/jFOAZKc2EvehHtUZX1Hf/Video.js\";import*as sharedStyle from\"https://framerusercontent.com/modules/yVDoa3Wk7St7KfAomznY/GSMcXS2xvkut9HtlrtRA/K9YHCSkx0.js\";import*as sharedStyle1 from\"https://framerusercontent.com/modules/et6JkTRO8IVJ2Mkze7aJ/RgQUqqZYJCUpWsTRrrYH/L1uzTq5oS.js\";import Button from\"https://framerusercontent.com/modules/vQ634yed2d2DbFxiIRMj/VWEJx1JEdRZ9xe6PAF9c/Sg7vW7sWP.js\";const VideoFonts=getFonts(Video);const ButtonFonts=getFonts(Button);const SmartComponentScopedContainerWithFX=withFX(SmartComponentScopedContainer);const cycleOrder=[\"SGTrSlw8F\",\"tvFd5h4vc\",\"cZwMWeiQd\"];const serializationHash=\"framer-5cinZ\";const variantClassNames={cZwMWeiQd:\"framer-v-4ve2xe\",SGTrSlw8F:\"framer-v-h65lju\",tvFd5h4vc:\"framer-v-1a12rxx\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={damping:60,delay:0,mass:1,stiffness:500,type:\"spring\"};const animation={opacity:0,rotate:0,rotateX:0,rotateY:0,scale:1,skewX:0,skewY:0,x:0,y:10};const transition2={damping:50,delay:.2,mass:1,stiffness:400,type:\"spring\"};const animation1={opacity:0,rotate:0,rotateX:0,rotateY:0,scale:1,skewX:0,skewY:0,transition:transition2,x:0,y:10};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const humanReadableVariantMap={\"Simple Light [Desktop]\":\"SGTrSlw8F\",\"Simple Light [Mobile]\":\"cZwMWeiQd\",\"Simple Light [Tablet]\":\"tvFd5h4vc\"};const getProps=({height,id,text,title,width,...props})=>{return{...props,eG2qRWVuY:text??props.eG2qRWVuY??\"Enter your text here.\",TPfgUMKvU:title??props.TPfgUMKvU??\"Call To Action\",variant:humanReadableVariantMap[props.variant]??props.variant??\"SGTrSlw8F\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,TPfgUMKvU,eG2qRWVuY,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"SGTrSlw8F\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[sharedStyle.className,sharedStyle1.className];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsx(motion.section,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-h65lju\",className,classNames),\"data-framer-name\":\"Simple Light [Desktop]\",layoutDependency:layoutDependency,layoutId:\"SGTrSlw8F\",ref:refBinding,style:{...style},...addPropertyOverrides({cZwMWeiQd:{\"data-framer-name\":\"Simple Light [Mobile]\"},tvFd5h4vc:{\"data-framer-name\":\"Simple Light [Tablet]\"}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1a4vd7x\",\"data-framer-name\":\"Wrapper\",layoutDependency:layoutDependency,layoutId:\"VUPVlTME4\",style:{background:'radial-gradient(50% 122% at 2.3% 7.5%, var(--token-e70e7896-8378-4d23-8680-0586ff6d15ad, rgb(0, 115, 230)) /* {\"name\":\"Accent Colour\"} */ 0%, rgb(16, 32, 48) 53%, rgb(0, 0, 0) 100%)',borderBottomLeftRadius:15,borderBottomRightRadius:15,borderTopLeftRadius:15,borderTopRightRadius:15},children:[/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-zujvz6-container\",isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"Fvqec_hqS-container\",nodeId:\"Fvqec_hqS\",rendersWithMotion:true,scopeId:\"ZTpafdvTc\",style:{mask:\"linear-gradient(90deg, rgba(0,0,0,0) 0%, rgba(0,0,0,1) 24.547789977477475%) add\",WebkitMask:\"linear-gradient(90deg, rgba(0,0,0,0) 0%, rgba(0,0,0,1) 24.547789977477475%) add\"},variants:{cZwMWeiQd:{mask:\"linear-gradient(360deg, rgba(0,0,0,1) 67.89132882882882%, rgba(0, 0, 0, 0) 100%) add\",WebkitMask:\"linear-gradient(360deg, rgba(0,0,0,1) 67.89132882882882%, rgba(0, 0, 0, 0) 100%) add\"}},children:/*#__PURE__*/_jsx(Video,{backgroundColor:\"rgba(0, 0, 0, 0)\",borderRadius:0,bottomLeftRadius:0,bottomRightRadius:0,controls:false,height:\"100%\",id:\"Fvqec_hqS\",isMixedBorderRadius:false,layoutId:\"Fvqec_hqS\",loop:true,muted:true,objectFit:\"cover\",playing:true,posterEnabled:true,srcFile:\"https://framerusercontent.com/assets/L19sN0LDpH7YELhd6KWRGdJjk.mp4\",srcType:\"Upload\",srcUrl:\"https://framerusercontent.com/assets/MLWPbW1dUQawJLhhun3dBwpgJak.mp4\",startTime:0,style:{height:\"100%\",width:\"100%\"},topLeftRadius:0,topRightRadius:0,volume:25,width:\"100%\"})})}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-yqpana\",layoutDependency:layoutDependency,layoutId:\"SH0WYeY0D\",children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.h3,{className:\"framer-styles-preset-1rg8u9r\",\"data-styles-preset\":\"K9YHCSkx0\",style:{\"--framer-text-alignment\":\"left\",\"--framer-text-color\":\"var(--extracted-a0htzi, var(--token-ca945b91-a0a3-4e69-95c0-e2f4bf868399, rgb(255, 255, 255)))\"},children:\"Call To Action\"})}),className:\"framer-qn25ig\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"uE6IcfHhI\",style:{\"--extracted-a0htzi\":\"var(--token-ca945b91-a0a3-4e69-95c0-e2f4bf868399, rgb(255, 255, 255))\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\",\"--framer-paragraph-spacing\":\"0px\"},text:TPfgUMKvU,verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-jbijs2\",\"data-styles-preset\":\"L1uzTq5oS\",style:{\"--framer-text-alignment\":\"left\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-1fc3ff3c-18ad-4cef-bdbf-1adf91e93799, rgb(228, 228, 231)))\"},children:\"Enter your text here.\"})}),className:\"framer-7xy0zw\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"crQtGABwU\",style:{\"--extracted-r6o4lv\":\"var(--token-1fc3ff3c-18ad-4cef-bdbf-1adf91e93799, rgb(228, 228, 231))\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},text:eG2qRWVuY,verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-1g3fj76\",\"data-framer-name\":\"Button\",layoutDependency:layoutDependency,layoutId:\"qVz_zcu3P\",children:/*#__PURE__*/_jsx(ComponentViewportProvider,{height:50,y:(componentViewport?.y||0)+(15+((componentViewport?.height||504)-30-473.5)/2)+80+73.15+0+107.19999999999999+10,...addPropertyOverrides({cZwMWeiQd:{y:(componentViewport?.y||0)+15+(((componentViewport?.height||690)-30-(((componentViewport?.height||690)-30)*1+0))/2+0+0)+40+0+0+107.19999999999999+10},tvFd5h4vc:{y:(componentViewport?.y||0)+(15+((componentViewport?.height||504)-30-473.5)/2)+60+93.15+0+107.19999999999999+10}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainerWithFX,{__framer__animate:{transition:transition2},__framer__animateOnce:true,__framer__enter:animation,__framer__exit:animation1,__framer__styleAppearEffectEnabled:true,__framer__threshold:.5,__perspectiveFX:false,__smartComponentFX:true,__targetOpacity:1,className:\"framer-11ww7zs-container\",layoutDependency:layoutDependency,layoutId:\"bysSUWkLK-container\",nodeId:\"bysSUWkLK\",rendersWithMotion:true,scopeId:\"ZTpafdvTc\",children:/*#__PURE__*/_jsx(Button,{ApWhoO21o:{borderColor:'var(--token-31213cc7-db87-4df4-8209-e72c8adb68fb, rgb(228, 228, 231)) /* {\"name\":\"Gray 200 [Dynamic]\"} */',borderStyle:\"solid\",borderWidth:1},ey7w8muFX:false,G77f5Yx_v:\"Join Waitlist\",height:\"100%\",HFfTjmBlq:\"var(--token-2b0e18bf-9e9a-4016-bdfc-5769700a5529, rgb(255, 255, 255))\",id:\"bysSUWkLK\",layoutId:\"bysSUWkLK\",n9WP3fBIv:true,oV7zrnzuy:\"var(--token-e70e7896-8378-4d23-8680-0586ff6d15ad, rgb(0, 115, 230))\",SZQpZ3lk2:8,U1Kbkgydv:\"https://useconstant.typeform.com/to/H9TxXfT0\",variant:\"Cx4alkkqC\",Vo_oxchYD:\"CaretRight\",width:\"100%\",WM2TpCryl:false})})})})]})]})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-5cinZ.framer-j02awx, .framer-5cinZ .framer-j02awx { display: block; }\",\".framer-5cinZ.framer-h65lju { align-content: center; align-items: center; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: center; overflow: visible; padding: 15px; position: relative; width: 1200px; }\",\".framer-5cinZ .framer-1a4vd7x { align-content: flex-start; align-items: flex-start; display: flex; flex: 1 0 0px; flex-direction: column; flex-wrap: nowrap; gap: 20px; height: 474px; justify-content: center; max-width: 1200px; min-height: 440px; overflow: hidden; padding: 80px; position: relative; width: 1px; will-change: var(--framer-will-change-override, transform); }\",\".framer-5cinZ .framer-zujvz6-container { flex: none; height: 100%; mix-blend-mode: hard-light; position: absolute; right: 0px; top: calc(49.841605068637826% - 100% / 2); width: 50%; z-index: 0; }\",\".framer-5cinZ .framer-yqpana { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: 50%; }\",\".framer-5cinZ .framer-qn25ig { flex: none; height: auto; overflow: visible; position: relative; white-space: pre; width: auto; z-index: 0; }\",\".framer-5cinZ .framer-7xy0zw { flex: none; height: auto; max-width: 650px; position: relative; white-space: pre-wrap; width: auto; word-break: break-word; word-wrap: break-word; z-index: 0; }\",\".framer-5cinZ .framer-1g3fj76 { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 20px; height: min-content; justify-content: center; overflow: visible; padding: 10px 0px 0px 0px; position: relative; width: min-content; z-index: 0; }\",\".framer-5cinZ .framer-11ww7zs-container { flex: none; height: auto; position: relative; width: auto; }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-5cinZ.framer-h65lju, .framer-5cinZ .framer-1a4vd7x, .framer-5cinZ .framer-yqpana, .framer-5cinZ .framer-1g3fj76 { gap: 0px; } .framer-5cinZ.framer-h65lju > * { margin: 0px; margin-left: calc(0px / 2); margin-right: calc(0px / 2); } .framer-5cinZ.framer-h65lju > :first-child, .framer-5cinZ .framer-1g3fj76 > :first-child { margin-left: 0px; } .framer-5cinZ.framer-h65lju > :last-child, .framer-5cinZ .framer-1g3fj76 > :last-child { margin-right: 0px; } .framer-5cinZ .framer-1a4vd7x > * { margin: 0px; margin-bottom: calc(20px / 2); margin-top: calc(20px / 2); } .framer-5cinZ .framer-1a4vd7x > :first-child, .framer-5cinZ .framer-yqpana > :first-child { margin-top: 0px; } .framer-5cinZ .framer-1a4vd7x > :last-child, .framer-5cinZ .framer-yqpana > :last-child { margin-bottom: 0px; } .framer-5cinZ .framer-yqpana > * { margin: 0px; margin-bottom: calc(10px / 2); margin-top: calc(10px / 2); } .framer-5cinZ .framer-1g3fj76 > * { margin: 0px; margin-left: calc(20px / 2); margin-right: calc(20px / 2); } }\",\".framer-5cinZ.framer-v-1a12rxx.framer-h65lju { width: 810px; }\",\".framer-5cinZ.framer-v-1a12rxx .framer-1a4vd7x { min-height: 360px; padding: 60px; }\",\".framer-5cinZ.framer-v-1a12rxx .framer-zujvz6-container { height: 100%; top: calc(49.841605068637826% - 100.10559662090812% / 2); width: 55%; }\",\".framer-5cinZ.framer-v-4ve2xe.framer-h65lju { flex-direction: column; height: 690px; width: 390px; }\",\".framer-5cinZ.framer-v-4ve2xe .framer-1a4vd7x { flex: none; gap: 10px; height: 100%; justify-content: flex-start; max-width: 1200%; min-height: unset; padding: 40px; width: 100%; }\",\".framer-5cinZ.framer-v-4ve2xe .framer-zujvz6-container { bottom: 0px; height: unset; top: 330px; width: 100%; }\",\".framer-5cinZ.framer-v-4ve2xe .framer-yqpana { width: 100%; }\",\".framer-5cinZ.framer-v-4ve2xe .framer-qn25ig { white-space: pre-wrap; width: 100%; word-break: break-word; word-wrap: break-word; }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-5cinZ.framer-v-4ve2xe.framer-h65lju, .framer-5cinZ.framer-v-4ve2xe .framer-1a4vd7x { gap: 0px; } .framer-5cinZ.framer-v-4ve2xe.framer-h65lju > * { margin: 0px; margin-bottom: calc(0px / 2); margin-top: calc(0px / 2); } .framer-5cinZ.framer-v-4ve2xe.framer-h65lju > :first-child, .framer-5cinZ.framer-v-4ve2xe .framer-1a4vd7x > :first-child { margin-top: 0px; } .framer-5cinZ.framer-v-4ve2xe.framer-h65lju > :last-child, .framer-5cinZ.framer-v-4ve2xe .framer-1a4vd7x > :last-child { margin-bottom: 0px; } .framer-5cinZ.framer-v-4ve2xe .framer-1a4vd7x > * { margin: 0px; margin-bottom: calc(10px / 2); margin-top: calc(10px / 2); } }\",...sharedStyle.css,...sharedStyle1.css];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 504\n * @framerIntrinsicWidth 1200\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"auto\"]},\"tvFd5h4vc\":{\"layout\":[\"fixed\",\"auto\"]},\"cZwMWeiQd\":{\"layout\":[\"fixed\",\"fixed\"]}}}\n * @framerVariables {\"TPfgUMKvU\":\"title\",\"eG2qRWVuY\":\"text\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerComponentViewportWidth true\n */const FramerZTpafdvTc=withCSS(Component,css,\"framer-5cinZ\");export default FramerZTpafdvTc;FramerZTpafdvTc.displayName=\"Call To Action\";FramerZTpafdvTc.defaultProps={height:504,width:1200};addPropertyControls(FramerZTpafdvTc,{variant:{options:[\"SGTrSlw8F\",\"tvFd5h4vc\",\"cZwMWeiQd\"],optionTitles:[\"Simple Light [Desktop]\",\"Simple Light [Tablet]\",\"Simple Light [Mobile]\"],title:\"Variant\",type:ControlType.Enum},TPfgUMKvU:{defaultValue:\"Call To Action\",displayTextArea:true,title:\"Title\",type:ControlType.String},eG2qRWVuY:{defaultValue:\"Enter your text here.\",displayTextArea:false,title:\"Text\",type:ControlType.String}});addFonts(FramerZTpafdvTc,[{explicitInter:true,fonts:[{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5vvr9Vy74if2I6bQbJvbw7SY1pQ.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/EOr0mi4hNtlgWNn9if640EZzXCo.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/Y9k9QrlZAqio88Klkmbd8VoMQc.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/OYrD2tBIBPvoJXiIHnLoOXnY9M.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/JeYwfuaPfZHQhEG8U5gtPDZ7WQ.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/vQyevYAyHtARFwPqUzQGpnDs.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/b6Y37FthZeALduNqHicBT6FutY.woff2\",weight:\"400\"}]},...VideoFonts,...ButtonFonts,...getFontsFromSharedStyle(sharedStyle.fonts),...getFontsFromSharedStyle(sharedStyle1.fonts)],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerZTpafdvTc\",\"slots\":[],\"annotations\":{\"framerImmutableVariables\":\"true\",\"framerContractVersion\":\"1\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"tvFd5h4vc\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"cZwMWeiQd\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]}}}\",\"framerDisplayContentsDiv\":\"false\",\"framerIntrinsicWidth\":\"1200\",\"framerComponentViewportWidth\":\"true\",\"framerIntrinsicHeight\":\"504\",\"framerVariables\":\"{\\\"TPfgUMKvU\\\":\\\"title\\\",\\\"eG2qRWVuY\\\":\\\"text\\\"}\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ZTpafdvTc.map","var __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __pow = Math.pow;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp.call(b, prop))\n      __defNormalProp(a, prop, b[prop]);\n  if (__getOwnPropSymbols)\n    for (var prop of __getOwnPropSymbols(b)) {\n      if (__propIsEnum.call(b, prop))\n        __defNormalProp(a, prop, b[prop]);\n    }\n  return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n  var target = {};\n  for (var prop in source)\n    if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n      target[prop] = source[prop];\n  if (source != null && __getOwnPropSymbols)\n    for (var prop of __getOwnPropSymbols(source)) {\n      if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n        target[prop] = source[prop];\n    }\n  return target;\n};\nvar __export = (target, all) => {\n  for (var name in all)\n    __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __async = (__this, __arguments, generator) => {\n  return new Promise((resolve, reject) => {\n    var fulfilled = (value) => {\n      try {\n        step(generator.next(value));\n      } catch (e) {\n        reject(e);\n      }\n    };\n    var rejected = (value) => {\n      try {\n        step(generator.throw(value));\n      } catch (e) {\n        reject(e);\n      }\n    };\n    var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);\n    step((generator = generator.apply(__this, __arguments)).next());\n  });\n};\n\nexport {\n  __pow,\n  __spreadValues,\n  __spreadProps,\n  __objRest,\n  __export,\n  __async\n};\n","import {\n  __async,\n  __export,\n  __pow,\n  __spreadProps,\n  __spreadValues\n} from \"./chunk-5BEQP2BQ.mjs\";\n\n// ../../node_modules/.pnpm/three@0.169.0/node_modules/three/build/three.module.js\nvar three_module_exports = {};\n__export(three_module_exports, {\n  ACESFilmicToneMapping: () => ACESFilmicToneMapping,\n  AddEquation: () => AddEquation,\n  AddOperation: () => AddOperation,\n  AdditiveAnimationBlendMode: () => AdditiveAnimationBlendMode,\n  AdditiveBlending: () => AdditiveBlending,\n  AgXToneMapping: () => AgXToneMapping,\n  AlphaFormat: () => AlphaFormat,\n  AlwaysCompare: () => AlwaysCompare,\n  AlwaysDepth: () => AlwaysDepth,\n  AlwaysStencilFunc: () => AlwaysStencilFunc,\n  AmbientLight: () => AmbientLight,\n  AnimationAction: () => AnimationAction,\n  AnimationClip: () => AnimationClip,\n  AnimationLoader: () => AnimationLoader,\n  AnimationMixer: () => AnimationMixer,\n  AnimationObjectGroup: () => AnimationObjectGroup,\n  AnimationUtils: () => AnimationUtils,\n  ArcCurve: () => ArcCurve,\n  ArrayCamera: () => ArrayCamera,\n  ArrowHelper: () => ArrowHelper,\n  AttachedBindMode: () => AttachedBindMode,\n  Audio: () => Audio,\n  AudioAnalyser: () => AudioAnalyser,\n  AudioContext: () => AudioContext,\n  AudioListener: () => AudioListener,\n  AudioLoader: () => AudioLoader,\n  AxesHelper: () => AxesHelper,\n  BackSide: () => BackSide,\n  BasicDepthPacking: () => BasicDepthPacking,\n  BasicShadowMap: () => BasicShadowMap,\n  BatchedMesh: () => BatchedMesh,\n  Bone: () => Bone,\n  BooleanKeyframeTrack: () => BooleanKeyframeTrack,\n  Box2: () => Box2,\n  Box3: () => Box3,\n  Box3Helper: () => Box3Helper,\n  BoxGeometry: () => BoxGeometry,\n  BoxHelper: () => BoxHelper,\n  BufferAttribute: () => BufferAttribute,\n  BufferGeometry: () => BufferGeometry,\n  BufferGeometryLoader: () => BufferGeometryLoader,\n  ByteType: () => ByteType,\n  Cache: () => Cache,\n  Camera: () => Camera,\n  CameraHelper: () => CameraHelper,\n  CanvasTexture: () => CanvasTexture,\n  CapsuleGeometry: () => CapsuleGeometry,\n  CatmullRomCurve3: () => CatmullRomCurve3,\n  CineonToneMapping: () => CineonToneMapping,\n  CircleGeometry: () => CircleGeometry,\n  ClampToEdgeWrapping: () => ClampToEdgeWrapping,\n  Clock: () => Clock,\n  Color: () => Color,\n  ColorKeyframeTrack: () => ColorKeyframeTrack,\n  ColorManagement: () => ColorManagement,\n  CompressedArrayTexture: () => CompressedArrayTexture,\n  CompressedCubeTexture: () => CompressedCubeTexture,\n  CompressedTexture: () => CompressedTexture,\n  CompressedTextureLoader: () => CompressedTextureLoader,\n  ConeGeometry: () => ConeGeometry,\n  ConstantAlphaFactor: () => ConstantAlphaFactor,\n  ConstantColorFactor: () => ConstantColorFactor,\n  Controls: () => Controls,\n  CubeCamera: () => CubeCamera,\n  CubeReflectionMapping: () => CubeReflectionMapping,\n  CubeRefractionMapping: () => CubeRefractionMapping,\n  CubeTexture: () => CubeTexture,\n  CubeTextureLoader: () => CubeTextureLoader,\n  CubeUVReflectionMapping: () => CubeUVReflectionMapping,\n  CubicBezierCurve: () => CubicBezierCurve,\n  CubicBezierCurve3: () => CubicBezierCurve3,\n  CubicInterpolant: () => CubicInterpolant,\n  CullFaceBack: () => CullFaceBack,\n  CullFaceFront: () => CullFaceFront,\n  CullFaceFrontBack: () => CullFaceFrontBack,\n  CullFaceNone: () => CullFaceNone,\n  Curve: () => Curve,\n  CurvePath: () => CurvePath,\n  CustomBlending: () => CustomBlending,\n  CustomToneMapping: () => CustomToneMapping,\n  CylinderGeometry: () => CylinderGeometry,\n  Cylindrical: () => Cylindrical,\n  Data3DTexture: () => Data3DTexture,\n  DataArrayTexture: () => DataArrayTexture,\n  DataTexture: () => DataTexture,\n  DataTextureLoader: () => DataTextureLoader,\n  DataUtils: () => DataUtils,\n  DecrementStencilOp: () => DecrementStencilOp,\n  DecrementWrapStencilOp: () => DecrementWrapStencilOp,\n  DefaultLoadingManager: () => DefaultLoadingManager,\n  DepthFormat: () => DepthFormat,\n  DepthStencilFormat: () => DepthStencilFormat,\n  DepthTexture: () => DepthTexture,\n  DetachedBindMode: () => DetachedBindMode,\n  DirectionalLight: () => DirectionalLight,\n  DirectionalLightHelper: () => DirectionalLightHelper,\n  DiscreteInterpolant: () => DiscreteInterpolant,\n  DisplayP3ColorSpace: () => DisplayP3ColorSpace,\n  DodecahedronGeometry: () => DodecahedronGeometry,\n  DoubleSide: () => DoubleSide,\n  DstAlphaFactor: () => DstAlphaFactor,\n  DstColorFactor: () => DstColorFactor,\n  DynamicCopyUsage: () => DynamicCopyUsage,\n  DynamicDrawUsage: () => DynamicDrawUsage,\n  DynamicReadUsage: () => DynamicReadUsage,\n  EdgesGeometry: () => EdgesGeometry,\n  EllipseCurve: () => EllipseCurve,\n  EqualCompare: () => EqualCompare,\n  EqualDepth: () => EqualDepth,\n  EqualStencilFunc: () => EqualStencilFunc,\n  EquirectangularReflectionMapping: () => EquirectangularReflectionMapping,\n  EquirectangularRefractionMapping: () => EquirectangularRefractionMapping,\n  Euler: () => Euler,\n  EventDispatcher: () => EventDispatcher,\n  ExtrudeGeometry: () => ExtrudeGeometry,\n  FileLoader: () => FileLoader,\n  Float16BufferAttribute: () => Float16BufferAttribute,\n  Float32BufferAttribute: () => Float32BufferAttribute,\n  FloatType: () => FloatType,\n  Fog: () => Fog,\n  FogExp2: () => FogExp2,\n  FramebufferTexture: () => FramebufferTexture,\n  FrontSide: () => FrontSide,\n  Frustum: () => Frustum,\n  GLBufferAttribute: () => GLBufferAttribute,\n  GLSL1: () => GLSL1,\n  GLSL3: () => GLSL3,\n  GreaterCompare: () => GreaterCompare,\n  GreaterDepth: () => GreaterDepth,\n  GreaterEqualCompare: () => GreaterEqualCompare,\n  GreaterEqualDepth: () => GreaterEqualDepth,\n  GreaterEqualStencilFunc: () => GreaterEqualStencilFunc,\n  GreaterStencilFunc: () => GreaterStencilFunc,\n  GridHelper: () => GridHelper,\n  Group: () => Group,\n  HalfFloatType: () => HalfFloatType,\n  HemisphereLight: () => HemisphereLight,\n  HemisphereLightHelper: () => HemisphereLightHelper,\n  IcosahedronGeometry: () => IcosahedronGeometry,\n  ImageBitmapLoader: () => ImageBitmapLoader,\n  ImageLoader: () => ImageLoader,\n  ImageUtils: () => ImageUtils,\n  IncrementStencilOp: () => IncrementStencilOp,\n  IncrementWrapStencilOp: () => IncrementWrapStencilOp,\n  InstancedBufferAttribute: () => InstancedBufferAttribute,\n  InstancedBufferGeometry: () => InstancedBufferGeometry,\n  InstancedInterleavedBuffer: () => InstancedInterleavedBuffer,\n  InstancedMesh: () => InstancedMesh,\n  Int16BufferAttribute: () => Int16BufferAttribute,\n  Int32BufferAttribute: () => Int32BufferAttribute,\n  Int8BufferAttribute: () => Int8BufferAttribute,\n  IntType: () => IntType,\n  InterleavedBuffer: () => InterleavedBuffer,\n  InterleavedBufferAttribute: () => InterleavedBufferAttribute,\n  Interpolant: () => Interpolant,\n  InterpolateDiscrete: () => InterpolateDiscrete,\n  InterpolateLinear: () => InterpolateLinear,\n  InterpolateSmooth: () => InterpolateSmooth,\n  InvertStencilOp: () => InvertStencilOp,\n  KeepStencilOp: () => KeepStencilOp,\n  KeyframeTrack: () => KeyframeTrack,\n  LOD: () => LOD,\n  LatheGeometry: () => LatheGeometry,\n  Layers: () => Layers,\n  LessCompare: () => LessCompare,\n  LessDepth: () => LessDepth,\n  LessEqualCompare: () => LessEqualCompare,\n  LessEqualDepth: () => LessEqualDepth,\n  LessEqualStencilFunc: () => LessEqualStencilFunc,\n  LessStencilFunc: () => LessStencilFunc,\n  Light: () => Light,\n  LightProbe: () => LightProbe,\n  Line: () => Line,\n  Line3: () => Line3,\n  LineBasicMaterial: () => LineBasicMaterial,\n  LineCurve: () => LineCurve,\n  LineCurve3: () => LineCurve3,\n  LineDashedMaterial: () => LineDashedMaterial,\n  LineLoop: () => LineLoop,\n  LineSegments: () => LineSegments,\n  LinearDisplayP3ColorSpace: () => LinearDisplayP3ColorSpace,\n  LinearFilter: () => LinearFilter,\n  LinearInterpolant: () => LinearInterpolant,\n  LinearMipMapLinearFilter: () => LinearMipMapLinearFilter,\n  LinearMipMapNearestFilter: () => LinearMipMapNearestFilter,\n  LinearMipmapLinearFilter: () => LinearMipmapLinearFilter,\n  LinearMipmapNearestFilter: () => LinearMipmapNearestFilter,\n  LinearSRGBColorSpace: () => LinearSRGBColorSpace,\n  LinearToneMapping: () => LinearToneMapping,\n  LinearTransfer: () => LinearTransfer,\n  Loader: () => Loader,\n  LoaderUtils: () => LoaderUtils,\n  LoadingManager: () => LoadingManager,\n  LoopOnce: () => LoopOnce,\n  LoopPingPong: () => LoopPingPong,\n  LoopRepeat: () => LoopRepeat,\n  LuminanceAlphaFormat: () => LuminanceAlphaFormat,\n  LuminanceFormat: () => LuminanceFormat,\n  MOUSE: () => MOUSE,\n  Material: () => Material,\n  MaterialLoader: () => MaterialLoader,\n  MathUtils: () => MathUtils,\n  Matrix2: () => Matrix2,\n  Matrix3: () => Matrix3,\n  Matrix4: () => Matrix4,\n  MaxEquation: () => MaxEquation,\n  Mesh: () => Mesh,\n  MeshBasicMaterial: () => MeshBasicMaterial,\n  MeshDepthMaterial: () => MeshDepthMaterial,\n  MeshDistanceMaterial: () => MeshDistanceMaterial,\n  MeshLambertMaterial: () => MeshLambertMaterial,\n  MeshMatcapMaterial: () => MeshMatcapMaterial,\n  MeshNormalMaterial: () => MeshNormalMaterial,\n  MeshPhongMaterial: () => MeshPhongMaterial,\n  MeshPhysicalMaterial: () => MeshPhysicalMaterial,\n  MeshStandardMaterial: () => MeshStandardMaterial,\n  MeshToonMaterial: () => MeshToonMaterial,\n  MinEquation: () => MinEquation,\n  MirroredRepeatWrapping: () => MirroredRepeatWrapping,\n  MixOperation: () => MixOperation,\n  MultiplyBlending: () => MultiplyBlending,\n  MultiplyOperation: () => MultiplyOperation,\n  NearestFilter: () => NearestFilter,\n  NearestMipMapLinearFilter: () => NearestMipMapLinearFilter,\n  NearestMipMapNearestFilter: () => NearestMipMapNearestFilter,\n  NearestMipmapLinearFilter: () => NearestMipmapLinearFilter,\n  NearestMipmapNearestFilter: () => NearestMipmapNearestFilter,\n  NeutralToneMapping: () => NeutralToneMapping,\n  NeverCompare: () => NeverCompare,\n  NeverDepth: () => NeverDepth,\n  NeverStencilFunc: () => NeverStencilFunc,\n  NoBlending: () => NoBlending,\n  NoColorSpace: () => NoColorSpace,\n  NoToneMapping: () => NoToneMapping,\n  NormalAnimationBlendMode: () => NormalAnimationBlendMode,\n  NormalBlending: () => NormalBlending,\n  NotEqualCompare: () => NotEqualCompare,\n  NotEqualDepth: () => NotEqualDepth,\n  NotEqualStencilFunc: () => NotEqualStencilFunc,\n  NumberKeyframeTrack: () => NumberKeyframeTrack,\n  Object3D: () => Object3D,\n  ObjectLoader: () => ObjectLoader,\n  ObjectSpaceNormalMap: () => ObjectSpaceNormalMap,\n  OctahedronGeometry: () => OctahedronGeometry,\n  OneFactor: () => OneFactor,\n  OneMinusConstantAlphaFactor: () => OneMinusConstantAlphaFactor,\n  OneMinusConstantColorFactor: () => OneMinusConstantColorFactor,\n  OneMinusDstAlphaFactor: () => OneMinusDstAlphaFactor,\n  OneMinusDstColorFactor: () => OneMinusDstColorFactor,\n  OneMinusSrcAlphaFactor: () => OneMinusSrcAlphaFactor,\n  OneMinusSrcColorFactor: () => OneMinusSrcColorFactor,\n  OrthographicCamera: () => OrthographicCamera,\n  P3Primaries: () => P3Primaries,\n  PCFShadowMap: () => PCFShadowMap,\n  PCFSoftShadowMap: () => PCFSoftShadowMap,\n  PMREMGenerator: () => PMREMGenerator,\n  Path: () => Path,\n  PerspectiveCamera: () => PerspectiveCamera,\n  Plane: () => Plane,\n  PlaneGeometry: () => PlaneGeometry,\n  PlaneHelper: () => PlaneHelper,\n  PointLight: () => PointLight,\n  PointLightHelper: () => PointLightHelper,\n  Points: () => Points,\n  PointsMaterial: () => PointsMaterial,\n  PolarGridHelper: () => PolarGridHelper,\n  PolyhedronGeometry: () => PolyhedronGeometry,\n  PositionalAudio: () => PositionalAudio,\n  PropertyBinding: () => PropertyBinding,\n  PropertyMixer: () => PropertyMixer,\n  QuadraticBezierCurve: () => QuadraticBezierCurve,\n  QuadraticBezierCurve3: () => QuadraticBezierCurve3,\n  Quaternion: () => Quaternion,\n  QuaternionKeyframeTrack: () => QuaternionKeyframeTrack,\n  QuaternionLinearInterpolant: () => QuaternionLinearInterpolant,\n  RED_GREEN_RGTC2_Format: () => RED_GREEN_RGTC2_Format,\n  RED_RGTC1_Format: () => RED_RGTC1_Format,\n  REVISION: () => REVISION,\n  RGBADepthPacking: () => RGBADepthPacking,\n  RGBAFormat: () => RGBAFormat,\n  RGBAIntegerFormat: () => RGBAIntegerFormat,\n  RGBA_ASTC_10x10_Format: () => RGBA_ASTC_10x10_Format,\n  RGBA_ASTC_10x5_Format: () => RGBA_ASTC_10x5_Format,\n  RGBA_ASTC_10x6_Format: () => RGBA_ASTC_10x6_Format,\n  RGBA_ASTC_10x8_Format: () => RGBA_ASTC_10x8_Format,\n  RGBA_ASTC_12x10_Format: () => RGBA_ASTC_12x10_Format,\n  RGBA_ASTC_12x12_Format: () => RGBA_ASTC_12x12_Format,\n  RGBA_ASTC_4x4_Format: () => RGBA_ASTC_4x4_Format,\n  RGBA_ASTC_5x4_Format: () => RGBA_ASTC_5x4_Format,\n  RGBA_ASTC_5x5_Format: () => RGBA_ASTC_5x5_Format,\n  RGBA_ASTC_6x5_Format: () => RGBA_ASTC_6x5_Format,\n  RGBA_ASTC_6x6_Format: () => RGBA_ASTC_6x6_Format,\n  RGBA_ASTC_8x5_Format: () => RGBA_ASTC_8x5_Format,\n  RGBA_ASTC_8x6_Format: () => RGBA_ASTC_8x6_Format,\n  RGBA_ASTC_8x8_Format: () => RGBA_ASTC_8x8_Format,\n  RGBA_BPTC_Format: () => RGBA_BPTC_Format,\n  RGBA_ETC2_EAC_Format: () => RGBA_ETC2_EAC_Format,\n  RGBA_PVRTC_2BPPV1_Format: () => RGBA_PVRTC_2BPPV1_Format,\n  RGBA_PVRTC_4BPPV1_Format: () => RGBA_PVRTC_4BPPV1_Format,\n  RGBA_S3TC_DXT1_Format: () => RGBA_S3TC_DXT1_Format,\n  RGBA_S3TC_DXT3_Format: () => RGBA_S3TC_DXT3_Format,\n  RGBA_S3TC_DXT5_Format: () => RGBA_S3TC_DXT5_Format,\n  RGBDepthPacking: () => RGBDepthPacking,\n  RGBFormat: () => RGBFormat,\n  RGBIntegerFormat: () => RGBIntegerFormat,\n  RGB_BPTC_SIGNED_Format: () => RGB_BPTC_SIGNED_Format,\n  RGB_BPTC_UNSIGNED_Format: () => RGB_BPTC_UNSIGNED_Format,\n  RGB_ETC1_Format: () => RGB_ETC1_Format,\n  RGB_ETC2_Format: () => RGB_ETC2_Format,\n  RGB_PVRTC_2BPPV1_Format: () => RGB_PVRTC_2BPPV1_Format,\n  RGB_PVRTC_4BPPV1_Format: () => RGB_PVRTC_4BPPV1_Format,\n  RGB_S3TC_DXT1_Format: () => RGB_S3TC_DXT1_Format,\n  RGDepthPacking: () => RGDepthPacking,\n  RGFormat: () => RGFormat,\n  RGIntegerFormat: () => RGIntegerFormat,\n  RawShaderMaterial: () => RawShaderMaterial,\n  Ray: () => Ray,\n  Raycaster: () => Raycaster,\n  Rec709Primaries: () => Rec709Primaries,\n  RectAreaLight: () => RectAreaLight,\n  RedFormat: () => RedFormat,\n  RedIntegerFormat: () => RedIntegerFormat,\n  ReinhardToneMapping: () => ReinhardToneMapping,\n  RenderTarget: () => RenderTarget,\n  RepeatWrapping: () => RepeatWrapping,\n  ReplaceStencilOp: () => ReplaceStencilOp,\n  ReverseSubtractEquation: () => ReverseSubtractEquation,\n  RingGeometry: () => RingGeometry,\n  SIGNED_RED_GREEN_RGTC2_Format: () => SIGNED_RED_GREEN_RGTC2_Format,\n  SIGNED_RED_RGTC1_Format: () => SIGNED_RED_RGTC1_Format,\n  SRGBColorSpace: () => SRGBColorSpace,\n  SRGBTransfer: () => SRGBTransfer,\n  Scene: () => Scene,\n  ShaderChunk: () => ShaderChunk,\n  ShaderLib: () => ShaderLib,\n  ShaderMaterial: () => ShaderMaterial,\n  ShadowMaterial: () => ShadowMaterial,\n  Shape: () => Shape,\n  ShapeGeometry: () => ShapeGeometry,\n  ShapePath: () => ShapePath,\n  ShapeUtils: () => ShapeUtils,\n  ShortType: () => ShortType,\n  Skeleton: () => Skeleton,\n  SkeletonHelper: () => SkeletonHelper,\n  SkinnedMesh: () => SkinnedMesh,\n  Source: () => Source,\n  Sphere: () => Sphere,\n  SphereGeometry: () => SphereGeometry,\n  Spherical: () => Spherical,\n  SphericalHarmonics3: () => SphericalHarmonics3,\n  SplineCurve: () => SplineCurve,\n  SpotLight: () => SpotLight,\n  SpotLightHelper: () => SpotLightHelper,\n  Sprite: () => Sprite,\n  SpriteMaterial: () => SpriteMaterial,\n  SrcAlphaFactor: () => SrcAlphaFactor,\n  SrcAlphaSaturateFactor: () => SrcAlphaSaturateFactor,\n  SrcColorFactor: () => SrcColorFactor,\n  StaticCopyUsage: () => StaticCopyUsage,\n  StaticDrawUsage: () => StaticDrawUsage,\n  StaticReadUsage: () => StaticReadUsage,\n  StereoCamera: () => StereoCamera,\n  StreamCopyUsage: () => StreamCopyUsage,\n  StreamDrawUsage: () => StreamDrawUsage,\n  StreamReadUsage: () => StreamReadUsage,\n  StringKeyframeTrack: () => StringKeyframeTrack,\n  SubtractEquation: () => SubtractEquation,\n  SubtractiveBlending: () => SubtractiveBlending,\n  TOUCH: () => TOUCH,\n  TangentSpaceNormalMap: () => TangentSpaceNormalMap,\n  TetrahedronGeometry: () => TetrahedronGeometry,\n  Texture: () => Texture,\n  TextureLoader: () => TextureLoader,\n  TextureUtils: () => TextureUtils,\n  TorusGeometry: () => TorusGeometry,\n  TorusKnotGeometry: () => TorusKnotGeometry,\n  Triangle: () => Triangle,\n  TriangleFanDrawMode: () => TriangleFanDrawMode,\n  TriangleStripDrawMode: () => TriangleStripDrawMode,\n  TrianglesDrawMode: () => TrianglesDrawMode,\n  TubeGeometry: () => TubeGeometry,\n  UVMapping: () => UVMapping,\n  Uint16BufferAttribute: () => Uint16BufferAttribute,\n  Uint32BufferAttribute: () => Uint32BufferAttribute,\n  Uint8BufferAttribute: () => Uint8BufferAttribute,\n  Uint8ClampedBufferAttribute: () => Uint8ClampedBufferAttribute,\n  Uniform: () => Uniform,\n  UniformsGroup: () => UniformsGroup,\n  UniformsLib: () => UniformsLib,\n  UniformsUtils: () => UniformsUtils,\n  UnsignedByteType: () => UnsignedByteType,\n  UnsignedInt248Type: () => UnsignedInt248Type,\n  UnsignedInt5999Type: () => UnsignedInt5999Type,\n  UnsignedIntType: () => UnsignedIntType,\n  UnsignedShort4444Type: () => UnsignedShort4444Type,\n  UnsignedShort5551Type: () => UnsignedShort5551Type,\n  UnsignedShortType: () => UnsignedShortType,\n  VSMShadowMap: () => VSMShadowMap,\n  Vector2: () => Vector2,\n  Vector3: () => Vector3,\n  Vector4: () => Vector4,\n  VectorKeyframeTrack: () => VectorKeyframeTrack,\n  VideoTexture: () => VideoTexture,\n  WebGL3DRenderTarget: () => WebGL3DRenderTarget,\n  WebGLArrayRenderTarget: () => WebGLArrayRenderTarget,\n  WebGLCoordinateSystem: () => WebGLCoordinateSystem,\n  WebGLCubeRenderTarget: () => WebGLCubeRenderTarget,\n  WebGLMultipleRenderTargets: () => WebGLMultipleRenderTargets,\n  WebGLRenderTarget: () => WebGLRenderTarget,\n  WebGLRenderer: () => WebGLRenderer,\n  WebGLUtils: () => WebGLUtils,\n  WebGPUCoordinateSystem: () => WebGPUCoordinateSystem,\n  WireframeGeometry: () => WireframeGeometry,\n  WrapAroundEnding: () => WrapAroundEnding,\n  ZeroCurvatureEnding: () => ZeroCurvatureEnding,\n  ZeroFactor: () => ZeroFactor,\n  ZeroSlopeEnding: () => ZeroSlopeEnding,\n  ZeroStencilOp: () => ZeroStencilOp,\n  createCanvasElement: () => createCanvasElement\n});\nvar REVISION = \"169\";\nvar MOUSE = { LEFT: 0, MIDDLE: 1, RIGHT: 2, ROTATE: 0, DOLLY: 1, PAN: 2 };\nvar TOUCH = { ROTATE: 0, PAN: 1, DOLLY_PAN: 2, DOLLY_ROTATE: 3 };\nvar CullFaceNone = 0;\nvar CullFaceBack = 1;\nvar CullFaceFront = 2;\nvar CullFaceFrontBack = 3;\nvar BasicShadowMap = 0;\nvar PCFShadowMap = 1;\nvar PCFSoftShadowMap = 2;\nvar VSMShadowMap = 3;\nvar FrontSide = 0;\nvar BackSide = 1;\nvar DoubleSide = 2;\nvar NoBlending = 0;\nvar NormalBlending = 1;\nvar AdditiveBlending = 2;\nvar SubtractiveBlending = 3;\nvar MultiplyBlending = 4;\nvar CustomBlending = 5;\nvar AddEquation = 100;\nvar SubtractEquation = 101;\nvar ReverseSubtractEquation = 102;\nvar MinEquation = 103;\nvar MaxEquation = 104;\nvar ZeroFactor = 200;\nvar OneFactor = 201;\nvar SrcColorFactor = 202;\nvar OneMinusSrcColorFactor = 203;\nvar SrcAlphaFactor = 204;\nvar OneMinusSrcAlphaFactor = 205;\nvar DstAlphaFactor = 206;\nvar OneMinusDstAlphaFactor = 207;\nvar DstColorFactor = 208;\nvar OneMinusDstColorFactor = 209;\nvar SrcAlphaSaturateFactor = 210;\nvar ConstantColorFactor = 211;\nvar OneMinusConstantColorFactor = 212;\nvar ConstantAlphaFactor = 213;\nvar OneMinusConstantAlphaFactor = 214;\nvar NeverDepth = 0;\nvar AlwaysDepth = 1;\nvar LessDepth = 2;\nvar LessEqualDepth = 3;\nvar EqualDepth = 4;\nvar GreaterEqualDepth = 5;\nvar GreaterDepth = 6;\nvar NotEqualDepth = 7;\nvar MultiplyOperation = 0;\nvar MixOperation = 1;\nvar AddOperation = 2;\nvar NoToneMapping = 0;\nvar LinearToneMapping = 1;\nvar ReinhardToneMapping = 2;\nvar CineonToneMapping = 3;\nvar ACESFilmicToneMapping = 4;\nvar CustomToneMapping = 5;\nvar AgXToneMapping = 6;\nvar NeutralToneMapping = 7;\nvar AttachedBindMode = \"attached\";\nvar DetachedBindMode = \"detached\";\nvar UVMapping = 300;\nvar CubeReflectionMapping = 301;\nvar CubeRefractionMapping = 302;\nvar EquirectangularReflectionMapping = 303;\nvar EquirectangularRefractionMapping = 304;\nvar CubeUVReflectionMapping = 306;\nvar RepeatWrapping = 1e3;\nvar ClampToEdgeWrapping = 1001;\nvar MirroredRepeatWrapping = 1002;\nvar NearestFilter = 1003;\nvar NearestMipmapNearestFilter = 1004;\nvar NearestMipMapNearestFilter = 1004;\nvar NearestMipmapLinearFilter = 1005;\nvar NearestMipMapLinearFilter = 1005;\nvar LinearFilter = 1006;\nvar LinearMipmapNearestFilter = 1007;\nvar LinearMipMapNearestFilter = 1007;\nvar LinearMipmapLinearFilter = 1008;\nvar LinearMipMapLinearFilter = 1008;\nvar UnsignedByteType = 1009;\nvar ByteType = 1010;\nvar ShortType = 1011;\nvar UnsignedShortType = 1012;\nvar IntType = 1013;\nvar UnsignedIntType = 1014;\nvar FloatType = 1015;\nvar HalfFloatType = 1016;\nvar UnsignedShort4444Type = 1017;\nvar UnsignedShort5551Type = 1018;\nvar UnsignedInt248Type = 1020;\nvar UnsignedInt5999Type = 35902;\nvar AlphaFormat = 1021;\nvar RGBFormat = 1022;\nvar RGBAFormat = 1023;\nvar LuminanceFormat = 1024;\nvar LuminanceAlphaFormat = 1025;\nvar DepthFormat = 1026;\nvar DepthStencilFormat = 1027;\nvar RedFormat = 1028;\nvar RedIntegerFormat = 1029;\nvar RGFormat = 1030;\nvar RGIntegerFormat = 1031;\nvar RGBIntegerFormat = 1032;\nvar RGBAIntegerFormat = 1033;\nvar RGB_S3TC_DXT1_Format = 33776;\nvar RGBA_S3TC_DXT1_Format = 33777;\nvar RGBA_S3TC_DXT3_Format = 33778;\nvar RGBA_S3TC_DXT5_Format = 33779;\nvar RGB_PVRTC_4BPPV1_Format = 35840;\nvar RGB_PVRTC_2BPPV1_Format = 35841;\nvar RGBA_PVRTC_4BPPV1_Format = 35842;\nvar RGBA_PVRTC_2BPPV1_Format = 35843;\nvar RGB_ETC1_Format = 36196;\nvar RGB_ETC2_Format = 37492;\nvar RGBA_ETC2_EAC_Format = 37496;\nvar RGBA_ASTC_4x4_Format = 37808;\nvar RGBA_ASTC_5x4_Format = 37809;\nvar RGBA_ASTC_5x5_Format = 37810;\nvar RGBA_ASTC_6x5_Format = 37811;\nvar RGBA_ASTC_6x6_Format = 37812;\nvar RGBA_ASTC_8x5_Format = 37813;\nvar RGBA_ASTC_8x6_Format = 37814;\nvar RGBA_ASTC_8x8_Format = 37815;\nvar RGBA_ASTC_10x5_Format = 37816;\nvar RGBA_ASTC_10x6_Format = 37817;\nvar RGBA_ASTC_10x8_Format = 37818;\nvar RGBA_ASTC_10x10_Format = 37819;\nvar RGBA_ASTC_12x10_Format = 37820;\nvar RGBA_ASTC_12x12_Format = 37821;\nvar RGBA_BPTC_Format = 36492;\nvar RGB_BPTC_SIGNED_Format = 36494;\nvar RGB_BPTC_UNSIGNED_Format = 36495;\nvar RED_RGTC1_Format = 36283;\nvar SIGNED_RED_RGTC1_Format = 36284;\nvar RED_GREEN_RGTC2_Format = 36285;\nvar SIGNED_RED_GREEN_RGTC2_Format = 36286;\nvar LoopOnce = 2200;\nvar LoopRepeat = 2201;\nvar LoopPingPong = 2202;\nvar InterpolateDiscrete = 2300;\nvar InterpolateLinear = 2301;\nvar InterpolateSmooth = 2302;\nvar ZeroCurvatureEnding = 2400;\nvar ZeroSlopeEnding = 2401;\nvar WrapAroundEnding = 2402;\nvar NormalAnimationBlendMode = 2500;\nvar AdditiveAnimationBlendMode = 2501;\nvar TrianglesDrawMode = 0;\nvar TriangleStripDrawMode = 1;\nvar TriangleFanDrawMode = 2;\nvar BasicDepthPacking = 3200;\nvar RGBADepthPacking = 3201;\nvar RGBDepthPacking = 3202;\nvar RGDepthPacking = 3203;\nvar TangentSpaceNormalMap = 0;\nvar ObjectSpaceNormalMap = 1;\nvar NoColorSpace = \"\";\nvar SRGBColorSpace = \"srgb\";\nvar LinearSRGBColorSpace = \"srgb-linear\";\nvar DisplayP3ColorSpace = \"display-p3\";\nvar LinearDisplayP3ColorSpace = \"display-p3-linear\";\nvar LinearTransfer = \"linear\";\nvar SRGBTransfer = \"srgb\";\nvar Rec709Primaries = \"rec709\";\nvar P3Primaries = \"p3\";\nvar ZeroStencilOp = 0;\nvar KeepStencilOp = 7680;\nvar ReplaceStencilOp = 7681;\nvar IncrementStencilOp = 7682;\nvar DecrementStencilOp = 7683;\nvar IncrementWrapStencilOp = 34055;\nvar DecrementWrapStencilOp = 34056;\nvar InvertStencilOp = 5386;\nvar NeverStencilFunc = 512;\nvar LessStencilFunc = 513;\nvar EqualStencilFunc = 514;\nvar LessEqualStencilFunc = 515;\nvar GreaterStencilFunc = 516;\nvar NotEqualStencilFunc = 517;\nvar GreaterEqualStencilFunc = 518;\nvar AlwaysStencilFunc = 519;\nvar NeverCompare = 512;\nvar LessCompare = 513;\nvar EqualCompare = 514;\nvar LessEqualCompare = 515;\nvar GreaterCompare = 516;\nvar NotEqualCompare = 517;\nvar GreaterEqualCompare = 518;\nvar AlwaysCompare = 519;\nvar StaticDrawUsage = 35044;\nvar DynamicDrawUsage = 35048;\nvar StreamDrawUsage = 35040;\nvar StaticReadUsage = 35045;\nvar DynamicReadUsage = 35049;\nvar StreamReadUsage = 35041;\nvar StaticCopyUsage = 35046;\nvar DynamicCopyUsage = 35050;\nvar StreamCopyUsage = 35042;\nvar GLSL1 = \"100\";\nvar GLSL3 = \"300 es\";\nvar WebGLCoordinateSystem = 2e3;\nvar WebGPUCoordinateSystem = 2001;\nvar EventDispatcher = class {\n  addEventListener(type, listener) {\n    if (this._listeners === void 0) this._listeners = {};\n    const listeners = this._listeners;\n    if (listeners[type] === void 0) {\n      listeners[type] = [];\n    }\n    if (listeners[type].indexOf(listener) === -1) {\n      listeners[type].push(listener);\n    }\n  }\n  hasEventListener(type, listener) {\n    if (this._listeners === void 0) return false;\n    const listeners = this._listeners;\n    return listeners[type] !== void 0 && listeners[type].indexOf(listener) !== -1;\n  }\n  removeEventListener(type, listener) {\n    if (this._listeners === void 0) return;\n    const listeners = this._listeners;\n    const listenerArray = listeners[type];\n    if (listenerArray !== void 0) {\n      const index = listenerArray.indexOf(listener);\n      if (index !== -1) {\n        listenerArray.splice(index, 1);\n      }\n    }\n  }\n  dispatchEvent(event) {\n    if (this._listeners === void 0) return;\n    const listeners = this._listeners;\n    const listenerArray = listeners[event.type];\n    if (listenerArray !== void 0) {\n      event.target = this;\n      const array = listenerArray.slice(0);\n      for (let i = 0, l = array.length; i < l; i++) {\n        array[i].call(this, event);\n      }\n      event.target = null;\n    }\n  }\n};\nvar _lut = [\"00\", \"01\", \"02\", \"03\", \"04\", \"05\", \"06\", \"07\", \"08\", \"09\", \"0a\", \"0b\", \"0c\", \"0d\", \"0e\", \"0f\", \"10\", \"11\", \"12\", \"13\", \"14\", \"15\", \"16\", \"17\", \"18\", \"19\", \"1a\", \"1b\", \"1c\", \"1d\", \"1e\", \"1f\", \"20\", \"21\", \"22\", \"23\", \"24\", \"25\", \"26\", \"27\", \"28\", \"29\", \"2a\", \"2b\", \"2c\", \"2d\", \"2e\", \"2f\", \"30\", \"31\", \"32\", \"33\", \"34\", \"35\", \"36\", \"37\", \"38\", \"39\", \"3a\", \"3b\", \"3c\", \"3d\", \"3e\", \"3f\", \"40\", \"41\", \"42\", \"43\", \"44\", \"45\", \"46\", \"47\", \"48\", \"49\", \"4a\", \"4b\", \"4c\", \"4d\", \"4e\", \"4f\", \"50\", \"51\", \"52\", \"53\", \"54\", \"55\", \"56\", \"57\", \"58\", \"59\", \"5a\", \"5b\", \"5c\", \"5d\", \"5e\", \"5f\", \"60\", \"61\", \"62\", \"63\", \"64\", \"65\", \"66\", \"67\", \"68\", \"69\", \"6a\", \"6b\", \"6c\", \"6d\", \"6e\", \"6f\", \"70\", \"71\", \"72\", \"73\", \"74\", \"75\", \"76\", \"77\", \"78\", \"79\", \"7a\", \"7b\", \"7c\", \"7d\", \"7e\", \"7f\", \"80\", \"81\", \"82\", \"83\", \"84\", \"85\", \"86\", \"87\", \"88\", \"89\", \"8a\", \"8b\", \"8c\", \"8d\", \"8e\", \"8f\", \"90\", \"91\", \"92\", \"93\", \"94\", \"95\", \"96\", \"97\", \"98\", \"99\", \"9a\", \"9b\", \"9c\", \"9d\", \"9e\", \"9f\", \"a0\", \"a1\", \"a2\", \"a3\", \"a4\", \"a5\", \"a6\", \"a7\", \"a8\", \"a9\", \"aa\", \"ab\", \"ac\", \"ad\", \"ae\", \"af\", \"b0\", \"b1\", \"b2\", \"b3\", \"b4\", \"b5\", \"b6\", \"b7\", \"b8\", \"b9\", \"ba\", \"bb\", \"bc\", \"bd\", \"be\", \"bf\", \"c0\", \"c1\", \"c2\", \"c3\", \"c4\", \"c5\", \"c6\", \"c7\", \"c8\", \"c9\", \"ca\", \"cb\", \"cc\", \"cd\", \"ce\", \"cf\", \"d0\", \"d1\", \"d2\", \"d3\", \"d4\", \"d5\", \"d6\", \"d7\", \"d8\", \"d9\", \"da\", \"db\", \"dc\", \"dd\", \"de\", \"df\", \"e0\", \"e1\", \"e2\", \"e3\", \"e4\", \"e5\", \"e6\", \"e7\", \"e8\", \"e9\", \"ea\", \"eb\", \"ec\", \"ed\", \"ee\", \"ef\", \"f0\", \"f1\", \"f2\", \"f3\", \"f4\", \"f5\", \"f6\", \"f7\", \"f8\", \"f9\", \"fa\", \"fb\", \"fc\", \"fd\", \"fe\", \"ff\"];\nvar _seed = 1234567;\nvar DEG2RAD = Math.PI / 180;\nvar RAD2DEG = 180 / Math.PI;\nfunction generateUUID() {\n  const d0 = Math.random() * 4294967295 | 0;\n  const d1 = Math.random() * 4294967295 | 0;\n  const d2 = Math.random() * 4294967295 | 0;\n  const d3 = Math.random() * 4294967295 | 0;\n  const uuid = _lut[d0 & 255] + _lut[d0 >> 8 & 255] + _lut[d0 >> 16 & 255] + _lut[d0 >> 24 & 255] + \"-\" + _lut[d1 & 255] + _lut[d1 >> 8 & 255] + \"-\" + _lut[d1 >> 16 & 15 | 64] + _lut[d1 >> 24 & 255] + \"-\" + _lut[d2 & 63 | 128] + _lut[d2 >> 8 & 255] + \"-\" + _lut[d2 >> 16 & 255] + _lut[d2 >> 24 & 255] + _lut[d3 & 255] + _lut[d3 >> 8 & 255] + _lut[d3 >> 16 & 255] + _lut[d3 >> 24 & 255];\n  return uuid.toLowerCase();\n}\nfunction clamp(value, min, max) {\n  return Math.max(min, Math.min(max, value));\n}\nfunction euclideanModulo(n, m) {\n  return (n % m + m) % m;\n}\nfunction mapLinear(x, a1, a2, b1, b2) {\n  return b1 + (x - a1) * (b2 - b1) / (a2 - a1);\n}\nfunction inverseLerp(x, y, value) {\n  if (x !== y) {\n    return (value - x) / (y - x);\n  } else {\n    return 0;\n  }\n}\nfunction lerp(x, y, t) {\n  return (1 - t) * x + t * y;\n}\nfunction damp(x, y, lambda, dt) {\n  return lerp(x, y, 1 - Math.exp(-lambda * dt));\n}\nfunction pingpong(x, length = 1) {\n  return length - Math.abs(euclideanModulo(x, length * 2) - length);\n}\nfunction smoothstep(x, min, max) {\n  if (x <= min) return 0;\n  if (x >= max) return 1;\n  x = (x - min) / (max - min);\n  return x * x * (3 - 2 * x);\n}\nfunction smootherstep(x, min, max) {\n  if (x <= min) return 0;\n  if (x >= max) return 1;\n  x = (x - min) / (max - min);\n  return x * x * x * (x * (x * 6 - 15) + 10);\n}\nfunction randInt(low, high) {\n  return low + Math.floor(Math.random() * (high - low + 1));\n}\nfunction randFloat(low, high) {\n  return low + Math.random() * (high - low);\n}\nfunction randFloatSpread(range) {\n  return range * (0.5 - Math.random());\n}\nfunction seededRandom(s) {\n  if (s !== void 0) _seed = s;\n  let t = _seed += 1831565813;\n  t = Math.imul(t ^ t >>> 15, t | 1);\n  t ^= t + Math.imul(t ^ t >>> 7, t | 61);\n  return ((t ^ t >>> 14) >>> 0) / 4294967296;\n}\nfunction degToRad(degrees) {\n  return degrees * DEG2RAD;\n}\nfunction radToDeg(radians) {\n  return radians * RAD2DEG;\n}\nfunction isPowerOfTwo(value) {\n  return (value & value - 1) === 0 && value !== 0;\n}\nfunction ceilPowerOfTwo(value) {\n  return Math.pow(2, Math.ceil(Math.log(value) / Math.LN2));\n}\nfunction floorPowerOfTwo(value) {\n  return Math.pow(2, Math.floor(Math.log(value) / Math.LN2));\n}\nfunction setQuaternionFromProperEuler(q, a, b, c, order) {\n  const cos = Math.cos;\n  const sin = Math.sin;\n  const c2 = cos(b / 2);\n  const s2 = sin(b / 2);\n  const c13 = cos((a + c) / 2);\n  const s13 = sin((a + c) / 2);\n  const c1_3 = cos((a - c) / 2);\n  const s1_3 = sin((a - c) / 2);\n  const c3_1 = cos((c - a) / 2);\n  const s3_1 = sin((c - a) / 2);\n  switch (order) {\n    case \"XYX\":\n      q.set(c2 * s13, s2 * c1_3, s2 * s1_3, c2 * c13);\n      break;\n    case \"YZY\":\n      q.set(s2 * s1_3, c2 * s13, s2 * c1_3, c2 * c13);\n      break;\n    case \"ZXZ\":\n      q.set(s2 * c1_3, s2 * s1_3, c2 * s13, c2 * c13);\n      break;\n    case \"XZX\":\n      q.set(c2 * s13, s2 * s3_1, s2 * c3_1, c2 * c13);\n      break;\n    case \"YXY\":\n      q.set(s2 * c3_1, c2 * s13, s2 * s3_1, c2 * c13);\n      break;\n    case \"ZYZ\":\n      q.set(s2 * s3_1, s2 * c3_1, c2 * s13, c2 * c13);\n      break;\n    default:\n      console.warn(\"THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: \" + order);\n  }\n}\nfunction denormalize(value, array) {\n  switch (array.constructor) {\n    case Float32Array:\n      return value;\n    case Uint32Array:\n      return value / 4294967295;\n    case Uint16Array:\n      return value / 65535;\n    case Uint8Array:\n      return value / 255;\n    case Int32Array:\n      return Math.max(value / 2147483647, -1);\n    case Int16Array:\n      return Math.max(value / 32767, -1);\n    case Int8Array:\n      return Math.max(value / 127, -1);\n    default:\n      throw new Error(\"Invalid component type.\");\n  }\n}\nfunction normalize(value, array) {\n  switch (array.constructor) {\n    case Float32Array:\n      return value;\n    case Uint32Array:\n      return Math.round(value * 4294967295);\n    case Uint16Array:\n      return Math.round(value * 65535);\n    case Uint8Array:\n      return Math.round(value * 255);\n    case Int32Array:\n      return Math.round(value * 2147483647);\n    case Int16Array:\n      return Math.round(value * 32767);\n    case Int8Array:\n      return Math.round(value * 127);\n    default:\n      throw new Error(\"Invalid component type.\");\n  }\n}\nvar MathUtils = {\n  DEG2RAD,\n  RAD2DEG,\n  generateUUID,\n  clamp,\n  euclideanModulo,\n  mapLinear,\n  inverseLerp,\n  lerp,\n  damp,\n  pingpong,\n  smoothstep,\n  smootherstep,\n  randInt,\n  randFloat,\n  randFloatSpread,\n  seededRandom,\n  degToRad,\n  radToDeg,\n  isPowerOfTwo,\n  ceilPowerOfTwo,\n  floorPowerOfTwo,\n  setQuaternionFromProperEuler,\n  normalize,\n  denormalize\n};\nvar Vector2 = class _Vector2 {\n  constructor(x = 0, y = 0) {\n    _Vector2.prototype.isVector2 = true;\n    this.x = x;\n    this.y = y;\n  }\n  get width() {\n    return this.x;\n  }\n  set width(value) {\n    this.x = value;\n  }\n  get height() {\n    return this.y;\n  }\n  set height(value) {\n    this.y = value;\n  }\n  set(x, y) {\n    this.x = x;\n    this.y = y;\n    return this;\n  }\n  setScalar(scalar) {\n    this.x = scalar;\n    this.y = scalar;\n    return this;\n  }\n  setX(x) {\n    this.x = x;\n    return this;\n  }\n  setY(y) {\n    this.y = y;\n    return this;\n  }\n  setComponent(index, value) {\n    switch (index) {\n      case 0:\n        this.x = value;\n        break;\n      case 1:\n        this.y = value;\n        break;\n      default:\n        throw new Error(\"index is out of range: \" + index);\n    }\n    return this;\n  }\n  getComponent(index) {\n    switch (index) {\n      case 0:\n        return this.x;\n      case 1:\n        return this.y;\n      default:\n        throw new Error(\"index is out of range: \" + index);\n    }\n  }\n  clone() {\n    return new this.constructor(this.x, this.y);\n  }\n  copy(v) {\n    this.x = v.x;\n    this.y = v.y;\n    return this;\n  }\n  add(v) {\n    this.x += v.x;\n    this.y += v.y;\n    return this;\n  }\n  addScalar(s) {\n    this.x += s;\n    this.y += s;\n    return this;\n  }\n  addVectors(a, b) {\n    this.x = a.x + b.x;\n    this.y = a.y + b.y;\n    return this;\n  }\n  addScaledVector(v, s) {\n    this.x += v.x * s;\n    this.y += v.y * s;\n    return this;\n  }\n  sub(v) {\n    this.x -= v.x;\n    this.y -= v.y;\n    return this;\n  }\n  subScalar(s) {\n    this.x -= s;\n    this.y -= s;\n    return this;\n  }\n  subVectors(a, b) {\n    this.x = a.x - b.x;\n    this.y = a.y - b.y;\n    return this;\n  }\n  multiply(v) {\n    this.x *= v.x;\n    this.y *= v.y;\n    return this;\n  }\n  multiplyScalar(scalar) {\n    this.x *= scalar;\n    this.y *= scalar;\n    return this;\n  }\n  divide(v) {\n    this.x /= v.x;\n    this.y /= v.y;\n    return this;\n  }\n  divideScalar(scalar) {\n    return this.multiplyScalar(1 / scalar);\n  }\n  applyMatrix3(m) {\n    const x = this.x, y = this.y;\n    const e = m.elements;\n    this.x = e[0] * x + e[3] * y + e[6];\n    this.y = e[1] * x + e[4] * y + e[7];\n    return this;\n  }\n  min(v) {\n    this.x = Math.min(this.x, v.x);\n    this.y = Math.min(this.y, v.y);\n    return this;\n  }\n  max(v) {\n    this.x = Math.max(this.x, v.x);\n    this.y = Math.max(this.y, v.y);\n    return this;\n  }\n  clamp(min, max) {\n    this.x = Math.max(min.x, Math.min(max.x, this.x));\n    this.y = Math.max(min.y, Math.min(max.y, this.y));\n    return this;\n  }\n  clampScalar(minVal, maxVal) {\n    this.x = Math.max(minVal, Math.min(maxVal, this.x));\n    this.y = Math.max(minVal, Math.min(maxVal, this.y));\n    return this;\n  }\n  clampLength(min, max) {\n    const length = this.length();\n    return this.divideScalar(length || 1).multiplyScalar(Math.max(min, Math.min(max, length)));\n  }\n  floor() {\n    this.x = Math.floor(this.x);\n    this.y = Math.floor(this.y);\n    return this;\n  }\n  ceil() {\n    this.x = Math.ceil(this.x);\n    this.y = Math.ceil(this.y);\n    return this;\n  }\n  round() {\n    this.x = Math.round(this.x);\n    this.y = Math.round(this.y);\n    return this;\n  }\n  roundToZero() {\n    this.x = Math.trunc(this.x);\n    this.y = Math.trunc(this.y);\n    return this;\n  }\n  negate() {\n    this.x = -this.x;\n    this.y = -this.y;\n    return this;\n  }\n  dot(v) {\n    return this.x * v.x + this.y * v.y;\n  }\n  cross(v) {\n    return this.x * v.y - this.y * v.x;\n  }\n  lengthSq() {\n    return this.x * this.x + this.y * this.y;\n  }\n  length() {\n    return Math.sqrt(this.x * this.x + this.y * this.y);\n  }\n  manhattanLength() {\n    return Math.abs(this.x) + Math.abs(this.y);\n  }\n  normalize() {\n    return this.divideScalar(this.length() || 1);\n  }\n  angle() {\n    const angle = Math.atan2(-this.y, -this.x) + Math.PI;\n    return angle;\n  }\n  angleTo(v) {\n    const denominator = Math.sqrt(this.lengthSq() * v.lengthSq());\n    if (denominator === 0) return Math.PI / 2;\n    const theta = this.dot(v) / denominator;\n    return Math.acos(clamp(theta, -1, 1));\n  }\n  distanceTo(v) {\n    return Math.sqrt(this.distanceToSquared(v));\n  }\n  distanceToSquared(v) {\n    const dx = this.x - v.x, dy = this.y - v.y;\n    return dx * dx + dy * dy;\n  }\n  manhattanDistanceTo(v) {\n    return Math.abs(this.x - v.x) + Math.abs(this.y - v.y);\n  }\n  setLength(length) {\n    return this.normalize().multiplyScalar(length);\n  }\n  lerp(v, alpha) {\n    this.x += (v.x - this.x) * alpha;\n    this.y += (v.y - this.y) * alpha;\n    return this;\n  }\n  lerpVectors(v1, v2, alpha) {\n    this.x = v1.x + (v2.x - v1.x) * alpha;\n    this.y = v1.y + (v2.y - v1.y) * alpha;\n    return this;\n  }\n  equals(v) {\n    return v.x === this.x && v.y === this.y;\n  }\n  fromArray(array, offset = 0) {\n    this.x = array[offset];\n    this.y = array[offset + 1];\n    return this;\n  }\n  toArray(array = [], offset = 0) {\n    array[offset] = this.x;\n    array[offset + 1] = this.y;\n    return array;\n  }\n  fromBufferAttribute(attribute, index) {\n    this.x = attribute.getX(index);\n    this.y = attribute.getY(index);\n    return this;\n  }\n  rotateAround(center, angle) {\n    const c = Math.cos(angle), s = Math.sin(angle);\n    const x = this.x - center.x;\n    const y = this.y - center.y;\n    this.x = x * c - y * s + center.x;\n    this.y = x * s + y * c + center.y;\n    return this;\n  }\n  random() {\n    this.x = Math.random();\n    this.y = Math.random();\n    return this;\n  }\n  *[Symbol.iterator]() {\n    yield this.x;\n    yield this.y;\n  }\n};\nvar Matrix3 = class _Matrix3 {\n  constructor(n11, n12, n13, n21, n22, n23, n31, n32, n33) {\n    _Matrix3.prototype.isMatrix3 = true;\n    this.elements = [\n      1,\n      0,\n      0,\n      0,\n      1,\n      0,\n      0,\n      0,\n      1\n    ];\n    if (n11 !== void 0) {\n      this.set(n11, n12, n13, n21, n22, n23, n31, n32, n33);\n    }\n  }\n  set(n11, n12, n13, n21, n22, n23, n31, n32, n33) {\n    const te = this.elements;\n    te[0] = n11;\n    te[1] = n21;\n    te[2] = n31;\n    te[3] = n12;\n    te[4] = n22;\n    te[5] = n32;\n    te[6] = n13;\n    te[7] = n23;\n    te[8] = n33;\n    return this;\n  }\n  identity() {\n    this.set(\n      1,\n      0,\n      0,\n      0,\n      1,\n      0,\n      0,\n      0,\n      1\n    );\n    return this;\n  }\n  copy(m) {\n    const te = this.elements;\n    const me = m.elements;\n    te[0] = me[0];\n    te[1] = me[1];\n    te[2] = me[2];\n    te[3] = me[3];\n    te[4] = me[4];\n    te[5] = me[5];\n    te[6] = me[6];\n    te[7] = me[7];\n    te[8] = me[8];\n    return this;\n  }\n  extractBasis(xAxis, yAxis, zAxis) {\n    xAxis.setFromMatrix3Column(this, 0);\n    yAxis.setFromMatrix3Column(this, 1);\n    zAxis.setFromMatrix3Column(this, 2);\n    return this;\n  }\n  setFromMatrix4(m) {\n    const me = m.elements;\n    this.set(\n      me[0],\n      me[4],\n      me[8],\n      me[1],\n      me[5],\n      me[9],\n      me[2],\n      me[6],\n      me[10]\n    );\n    return this;\n  }\n  multiply(m) {\n    return this.multiplyMatrices(this, m);\n  }\n  premultiply(m) {\n    return this.multiplyMatrices(m, this);\n  }\n  multiplyMatrices(a, b) {\n    const ae = a.elements;\n    const be = b.elements;\n    const te = this.elements;\n    const a11 = ae[0], a12 = ae[3], a13 = ae[6];\n    const a21 = ae[1], a22 = ae[4], a23 = ae[7];\n    const a31 = ae[2], a32 = ae[5], a33 = ae[8];\n    const b11 = be[0], b12 = be[3], b13 = be[6];\n    const b21 = be[1], b22 = be[4], b23 = be[7];\n    const b31 = be[2], b32 = be[5], b33 = be[8];\n    te[0] = a11 * b11 + a12 * b21 + a13 * b31;\n    te[3] = a11 * b12 + a12 * b22 + a13 * b32;\n    te[6] = a11 * b13 + a12 * b23 + a13 * b33;\n    te[1] = a21 * b11 + a22 * b21 + a23 * b31;\n    te[4] = a21 * b12 + a22 * b22 + a23 * b32;\n    te[7] = a21 * b13 + a22 * b23 + a23 * b33;\n    te[2] = a31 * b11 + a32 * b21 + a33 * b31;\n    te[5] = a31 * b12 + a32 * b22 + a33 * b32;\n    te[8] = a31 * b13 + a32 * b23 + a33 * b33;\n    return this;\n  }\n  multiplyScalar(s) {\n    const te = this.elements;\n    te[0] *= s;\n    te[3] *= s;\n    te[6] *= s;\n    te[1] *= s;\n    te[4] *= s;\n    te[7] *= s;\n    te[2] *= s;\n    te[5] *= s;\n    te[8] *= s;\n    return this;\n  }\n  determinant() {\n    const te = this.elements;\n    const a = te[0], b = te[1], c = te[2], d = te[3], e = te[4], f = te[5], g = te[6], h = te[7], i = te[8];\n    return a * e * i - a * f * h - b * d * i + b * f * g + c * d * h - c * e * g;\n  }\n  invert() {\n    const te = this.elements, n11 = te[0], n21 = te[1], n31 = te[2], n12 = te[3], n22 = te[4], n32 = te[5], n13 = te[6], n23 = te[7], n33 = te[8], t11 = n33 * n22 - n32 * n23, t12 = n32 * n13 - n33 * n12, t13 = n23 * n12 - n22 * n13, det = n11 * t11 + n21 * t12 + n31 * t13;\n    if (det === 0) return this.set(0, 0, 0, 0, 0, 0, 0, 0, 0);\n    const detInv = 1 / det;\n    te[0] = t11 * detInv;\n    te[1] = (n31 * n23 - n33 * n21) * detInv;\n    te[2] = (n32 * n21 - n31 * n22) * detInv;\n    te[3] = t12 * detInv;\n    te[4] = (n33 * n11 - n31 * n13) * detInv;\n    te[5] = (n31 * n12 - n32 * n11) * detInv;\n    te[6] = t13 * detInv;\n    te[7] = (n21 * n13 - n23 * n11) * detInv;\n    te[8] = (n22 * n11 - n21 * n12) * detInv;\n    return this;\n  }\n  transpose() {\n    let tmp2;\n    const m = this.elements;\n    tmp2 = m[1];\n    m[1] = m[3];\n    m[3] = tmp2;\n    tmp2 = m[2];\n    m[2] = m[6];\n    m[6] = tmp2;\n    tmp2 = m[5];\n    m[5] = m[7];\n    m[7] = tmp2;\n    return this;\n  }\n  getNormalMatrix(matrix4) {\n    return this.setFromMatrix4(matrix4).invert().transpose();\n  }\n  transposeIntoArray(r) {\n    const m = this.elements;\n    r[0] = m[0];\n    r[1] = m[3];\n    r[2] = m[6];\n    r[3] = m[1];\n    r[4] = m[4];\n    r[5] = m[7];\n    r[6] = m[2];\n    r[7] = m[5];\n    r[8] = m[8];\n    return this;\n  }\n  setUvTransform(tx, ty, sx, sy, rotation, cx, cy) {\n    const c = Math.cos(rotation);\n    const s = Math.sin(rotation);\n    this.set(\n      sx * c,\n      sx * s,\n      -sx * (c * cx + s * cy) + cx + tx,\n      -sy * s,\n      sy * c,\n      -sy * (-s * cx + c * cy) + cy + ty,\n      0,\n      0,\n      1\n    );\n    return this;\n  }\n  //\n  scale(sx, sy) {\n    this.premultiply(_m3.makeScale(sx, sy));\n    return this;\n  }\n  rotate(theta) {\n    this.premultiply(_m3.makeRotation(-theta));\n    return this;\n  }\n  translate(tx, ty) {\n    this.premultiply(_m3.makeTranslation(tx, ty));\n    return this;\n  }\n  // for 2D Transforms\n  makeTranslation(x, y) {\n    if (x.isVector2) {\n      this.set(\n        1,\n        0,\n        x.x,\n        0,\n        1,\n        x.y,\n        0,\n        0,\n        1\n      );\n    } else {\n      this.set(\n        1,\n        0,\n        x,\n        0,\n        1,\n        y,\n        0,\n        0,\n        1\n      );\n    }\n    return this;\n  }\n  makeRotation(theta) {\n    const c = Math.cos(theta);\n    const s = Math.sin(theta);\n    this.set(\n      c,\n      -s,\n      0,\n      s,\n      c,\n      0,\n      0,\n      0,\n      1\n    );\n    return this;\n  }\n  makeScale(x, y) {\n    this.set(\n      x,\n      0,\n      0,\n      0,\n      y,\n      0,\n      0,\n      0,\n      1\n    );\n    return this;\n  }\n  //\n  equals(matrix) {\n    const te = this.elements;\n    const me = matrix.elements;\n    for (let i = 0; i < 9; i++) {\n      if (te[i] !== me[i]) return false;\n    }\n    return true;\n  }\n  fromArray(array, offset = 0) {\n    for (let i = 0; i < 9; i++) {\n      this.elements[i] = array[i + offset];\n    }\n    return this;\n  }\n  toArray(array = [], offset = 0) {\n    const te = this.elements;\n    array[offset] = te[0];\n    array[offset + 1] = te[1];\n    array[offset + 2] = te[2];\n    array[offset + 3] = te[3];\n    array[offset + 4] = te[4];\n    array[offset + 5] = te[5];\n    array[offset + 6] = te[6];\n    array[offset + 7] = te[7];\n    array[offset + 8] = te[8];\n    return array;\n  }\n  clone() {\n    return new this.constructor().fromArray(this.elements);\n  }\n};\nvar _m3 = /* @__PURE__ */ new Matrix3();\nfunction arrayNeedsUint32(array) {\n  for (let i = array.length - 1; i >= 0; --i) {\n    if (array[i] >= 65535) return true;\n  }\n  return false;\n}\nvar TYPED_ARRAYS = {\n  Int8Array,\n  Uint8Array,\n  Uint8ClampedArray,\n  Int16Array,\n  Uint16Array,\n  Int32Array,\n  Uint32Array,\n  Float32Array,\n  Float64Array\n};\nfunction getTypedArray(type, buffer) {\n  return new TYPED_ARRAYS[type](buffer);\n}\nfunction createElementNS(name) {\n  return document.createElementNS(\"http://www.w3.org/1999/xhtml\", name);\n}\nfunction createCanvasElement() {\n  const canvas = createElementNS(\"canvas\");\n  canvas.style.display = \"block\";\n  return canvas;\n}\nvar _cache = {};\nfunction warnOnce(message) {\n  if (message in _cache) return;\n  _cache[message] = true;\n  console.warn(message);\n}\nfunction probeAsync(gl, sync, interval) {\n  return new Promise(function(resolve, reject) {\n    function probe() {\n      switch (gl.clientWaitSync(sync, gl.SYNC_FLUSH_COMMANDS_BIT, 0)) {\n        case gl.WAIT_FAILED:\n          reject();\n          break;\n        case gl.TIMEOUT_EXPIRED:\n          setTimeout(probe, interval);\n          break;\n        default:\n          resolve();\n      }\n    }\n    setTimeout(probe, interval);\n  });\n}\nfunction toNormalizedProjectionMatrix(projectionMatrix) {\n  const m = projectionMatrix.elements;\n  m[2] = 0.5 * m[2] + 0.5 * m[3];\n  m[6] = 0.5 * m[6] + 0.5 * m[7];\n  m[10] = 0.5 * m[10] + 0.5 * m[11];\n  m[14] = 0.5 * m[14] + 0.5 * m[15];\n}\nfunction toReversedProjectionMatrix(projectionMatrix) {\n  const m = projectionMatrix.elements;\n  const isPerspectiveMatrix = m[11] === -1;\n  if (isPerspectiveMatrix) {\n    m[10] = -m[10] - 1;\n    m[14] = -m[14];\n  } else {\n    m[10] = -m[10];\n    m[14] = -m[14] + 1;\n  }\n}\nvar LINEAR_SRGB_TO_LINEAR_DISPLAY_P3 = /* @__PURE__ */ new Matrix3().set(\n  0.8224621,\n  0.177538,\n  0,\n  0.0331941,\n  0.9668058,\n  0,\n  0.0170827,\n  0.0723974,\n  0.9105199\n);\nvar LINEAR_DISPLAY_P3_TO_LINEAR_SRGB = /* @__PURE__ */ new Matrix3().set(\n  1.2249401,\n  -0.2249404,\n  0,\n  -0.0420569,\n  1.0420571,\n  0,\n  -0.0196376,\n  -0.0786361,\n  1.0982735\n);\nvar COLOR_SPACES = {\n  [LinearSRGBColorSpace]: {\n    transfer: LinearTransfer,\n    primaries: Rec709Primaries,\n    luminanceCoefficients: [0.2126, 0.7152, 0.0722],\n    toReference: (color) => color,\n    fromReference: (color) => color\n  },\n  [SRGBColorSpace]: {\n    transfer: SRGBTransfer,\n    primaries: Rec709Primaries,\n    luminanceCoefficients: [0.2126, 0.7152, 0.0722],\n    toReference: (color) => color.convertSRGBToLinear(),\n    fromReference: (color) => color.convertLinearToSRGB()\n  },\n  [LinearDisplayP3ColorSpace]: {\n    transfer: LinearTransfer,\n    primaries: P3Primaries,\n    luminanceCoefficients: [0.2289, 0.6917, 0.0793],\n    toReference: (color) => color.applyMatrix3(LINEAR_DISPLAY_P3_TO_LINEAR_SRGB),\n    fromReference: (color) => color.applyMatrix3(LINEAR_SRGB_TO_LINEAR_DISPLAY_P3)\n  },\n  [DisplayP3ColorSpace]: {\n    transfer: SRGBTransfer,\n    primaries: P3Primaries,\n    luminanceCoefficients: [0.2289, 0.6917, 0.0793],\n    toReference: (color) => color.convertSRGBToLinear().applyMatrix3(LINEAR_DISPLAY_P3_TO_LINEAR_SRGB),\n    fromReference: (color) => color.applyMatrix3(LINEAR_SRGB_TO_LINEAR_DISPLAY_P3).convertLinearToSRGB()\n  }\n};\nvar SUPPORTED_WORKING_COLOR_SPACES = /* @__PURE__ */ new Set([LinearSRGBColorSpace, LinearDisplayP3ColorSpace]);\nvar ColorManagement = {\n  enabled: true,\n  _workingColorSpace: LinearSRGBColorSpace,\n  get workingColorSpace() {\n    return this._workingColorSpace;\n  },\n  set workingColorSpace(colorSpace) {\n    if (!SUPPORTED_WORKING_COLOR_SPACES.has(colorSpace)) {\n      throw new Error(`Unsupported working color space, \"${colorSpace}\".`);\n    }\n    this._workingColorSpace = colorSpace;\n  },\n  convert: function(color, sourceColorSpace, targetColorSpace) {\n    if (this.enabled === false || sourceColorSpace === targetColorSpace || !sourceColorSpace || !targetColorSpace) {\n      return color;\n    }\n    const sourceToReference = COLOR_SPACES[sourceColorSpace].toReference;\n    const targetFromReference = COLOR_SPACES[targetColorSpace].fromReference;\n    return targetFromReference(sourceToReference(color));\n  },\n  fromWorkingColorSpace: function(color, targetColorSpace) {\n    return this.convert(color, this._workingColorSpace, targetColorSpace);\n  },\n  toWorkingColorSpace: function(color, sourceColorSpace) {\n    return this.convert(color, sourceColorSpace, this._workingColorSpace);\n  },\n  getPrimaries: function(colorSpace) {\n    return COLOR_SPACES[colorSpace].primaries;\n  },\n  getTransfer: function(colorSpace) {\n    if (colorSpace === NoColorSpace) return LinearTransfer;\n    return COLOR_SPACES[colorSpace].transfer;\n  },\n  getLuminanceCoefficients: function(target, colorSpace = this._workingColorSpace) {\n    return target.fromArray(COLOR_SPACES[colorSpace].luminanceCoefficients);\n  }\n};\nfunction SRGBToLinear(c) {\n  return c < 0.04045 ? c * 0.0773993808 : Math.pow(c * 0.9478672986 + 0.0521327014, 2.4);\n}\nfunction LinearToSRGB(c) {\n  return c < 31308e-7 ? c * 12.92 : 1.055 * Math.pow(c, 0.41666) - 0.055;\n}\nvar _canvas;\nvar ImageUtils = class {\n  static getDataURL(image) {\n    if (/^data:/i.test(image.src)) {\n      return image.src;\n    }\n    if (typeof HTMLCanvasElement === \"undefined\") {\n      return image.src;\n    }\n    let canvas;\n    if (image instanceof HTMLCanvasElement) {\n      canvas = image;\n    } else {\n      if (_canvas === void 0) _canvas = createElementNS(\"canvas\");\n      _canvas.width = image.width;\n      _canvas.height = image.height;\n      const context = _canvas.getContext(\"2d\");\n      if (image instanceof ImageData) {\n        context.putImageData(image, 0, 0);\n      } else {\n        context.drawImage(image, 0, 0, image.width, image.height);\n      }\n      canvas = _canvas;\n    }\n    if (canvas.width > 2048 || canvas.height > 2048) {\n      console.warn(\"THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons\", image);\n      return canvas.toDataURL(\"image/jpeg\", 0.6);\n    } else {\n      return canvas.toDataURL(\"image/png\");\n    }\n  }\n  static sRGBToLinear(image) {\n    if (typeof HTMLImageElement !== \"undefined\" && image instanceof HTMLImageElement || typeof HTMLCanvasElement !== \"undefined\" && image instanceof HTMLCanvasElement || typeof ImageBitmap !== \"undefined\" && image instanceof ImageBitmap) {\n      const canvas = createElementNS(\"canvas\");\n      canvas.width = image.width;\n      canvas.height = image.height;\n      const context = canvas.getContext(\"2d\");\n      context.drawImage(image, 0, 0, image.width, image.height);\n      const imageData = context.getImageData(0, 0, image.width, image.height);\n      const data = imageData.data;\n      for (let i = 0; i < data.length; i++) {\n        data[i] = SRGBToLinear(data[i] / 255) * 255;\n      }\n      context.putImageData(imageData, 0, 0);\n      return canvas;\n    } else if (image.data) {\n      const data = image.data.slice(0);\n      for (let i = 0; i < data.length; i++) {\n        if (data instanceof Uint8Array || data instanceof Uint8ClampedArray) {\n          data[i] = Math.floor(SRGBToLinear(data[i] / 255) * 255);\n        } else {\n          data[i] = SRGBToLinear(data[i]);\n        }\n      }\n      return {\n        data,\n        width: image.width,\n        height: image.height\n      };\n    } else {\n      console.warn(\"THREE.ImageUtils.sRGBToLinear(): Unsupported image type. No color space conversion applied.\");\n      return image;\n    }\n  }\n};\nvar _sourceId = 0;\nvar Source = class {\n  constructor(data = null) {\n    this.isSource = true;\n    Object.defineProperty(this, \"id\", { value: _sourceId++ });\n    this.uuid = generateUUID();\n    this.data = data;\n    this.dataReady = true;\n    this.version = 0;\n  }\n  set needsUpdate(value) {\n    if (value === true) this.version++;\n  }\n  toJSON(meta) {\n    const isRootObject = meta === void 0 || typeof meta === \"string\";\n    if (!isRootObject && meta.images[this.uuid] !== void 0) {\n      return meta.images[this.uuid];\n    }\n    const output = {\n      uuid: this.uuid,\n      url: \"\"\n    };\n    const data = this.data;\n    if (data !== null) {\n      let url;\n      if (Array.isArray(data)) {\n        url = [];\n        for (let i = 0, l = data.length; i < l; i++) {\n          if (data[i].isDataTexture) {\n            url.push(serializeImage(data[i].image));\n          } else {\n            url.push(serializeImage(data[i]));\n          }\n        }\n      } else {\n        url = serializeImage(data);\n      }\n      output.url = url;\n    }\n    if (!isRootObject) {\n      meta.images[this.uuid] = output;\n    }\n    return output;\n  }\n};\nfunction serializeImage(image) {\n  if (typeof HTMLImageElement !== \"undefined\" && image instanceof HTMLImageElement || typeof HTMLCanvasElement !== \"undefined\" && image instanceof HTMLCanvasElement || typeof ImageBitmap !== \"undefined\" && image instanceof ImageBitmap) {\n    return ImageUtils.getDataURL(image);\n  } else {\n    if (image.data) {\n      return {\n        data: Array.from(image.data),\n        width: image.width,\n        height: image.height,\n        type: image.data.constructor.name\n      };\n    } else {\n      console.warn(\"THREE.Texture: Unable to serialize Texture.\");\n      return {};\n    }\n  }\n}\nvar _textureId = 0;\nvar Texture = class _Texture extends EventDispatcher {\n  constructor(image = _Texture.DEFAULT_IMAGE, mapping = _Texture.DEFAULT_MAPPING, wrapS = ClampToEdgeWrapping, wrapT = ClampToEdgeWrapping, magFilter = LinearFilter, minFilter = LinearMipmapLinearFilter, format = RGBAFormat, type = UnsignedByteType, anisotropy = _Texture.DEFAULT_ANISOTROPY, colorSpace = NoColorSpace) {\n    super();\n    this.isTexture = true;\n    Object.defineProperty(this, \"id\", { value: _textureId++ });\n    this.uuid = generateUUID();\n    this.name = \"\";\n    this.source = new Source(image);\n    this.mipmaps = [];\n    this.mapping = mapping;\n    this.channel = 0;\n    this.wrapS = wrapS;\n    this.wrapT = wrapT;\n    this.magFilter = magFilter;\n    this.minFilter = minFilter;\n    this.anisotropy = anisotropy;\n    this.format = format;\n    this.internalFormat = null;\n    this.type = type;\n    this.offset = new Vector2(0, 0);\n    this.repeat = new Vector2(1, 1);\n    this.center = new Vector2(0, 0);\n    this.rotation = 0;\n    this.matrixAutoUpdate = true;\n    this.matrix = new Matrix3();\n    this.generateMipmaps = true;\n    this.premultiplyAlpha = false;\n    this.flipY = true;\n    this.unpackAlignment = 4;\n    this.colorSpace = colorSpace;\n    this.userData = {};\n    this.version = 0;\n    this.onUpdate = null;\n    this.isRenderTargetTexture = false;\n    this.pmremVersion = 0;\n  }\n  get image() {\n    return this.source.data;\n  }\n  set image(value = null) {\n    this.source.data = value;\n  }\n  updateMatrix() {\n    this.matrix.setUvTransform(this.offset.x, this.offset.y, this.repeat.x, this.repeat.y, this.rotation, this.center.x, this.center.y);\n  }\n  clone() {\n    return new this.constructor().copy(this);\n  }\n  copy(source) {\n    this.name = source.name;\n    this.source = source.source;\n    this.mipmaps = source.mipmaps.slice(0);\n    this.mapping = source.mapping;\n    this.channel = source.channel;\n    this.wrapS = source.wrapS;\n    this.wrapT = source.wrapT;\n    this.magFilter = source.magFilter;\n    this.minFilter = source.minFilter;\n    this.anisotropy = source.anisotropy;\n    this.format = source.format;\n    this.internalFormat = source.internalFormat;\n    this.type = source.type;\n    this.offset.copy(source.offset);\n    this.repeat.copy(source.repeat);\n    this.center.copy(source.center);\n    this.rotation = source.rotation;\n    this.matrixAutoUpdate = source.matrixAutoUpdate;\n    this.matrix.copy(source.matrix);\n    this.generateMipmaps = source.generateMipmaps;\n    this.premultiplyAlpha = source.premultiplyAlpha;\n    this.flipY = source.flipY;\n    this.unpackAlignment = source.unpackAlignment;\n    this.colorSpace = source.colorSpace;\n    this.userData = JSON.parse(JSON.stringify(source.userData));\n    this.needsUpdate = true;\n    return this;\n  }\n  toJSON(meta) {\n    const isRootObject = meta === void 0 || typeof meta === \"string\";\n    if (!isRootObject && meta.textures[this.uuid] !== void 0) {\n      return meta.textures[this.uuid];\n    }\n    const output = {\n      metadata: {\n        version: 4.6,\n        type: \"Texture\",\n        generator: \"Texture.toJSON\"\n      },\n      uuid: this.uuid,\n      name: this.name,\n      image: this.source.toJSON(meta).uuid,\n      mapping: this.mapping,\n      channel: this.channel,\n      repeat: [this.repeat.x, this.repeat.y],\n      offset: [this.offset.x, this.offset.y],\n      center: [this.center.x, this.center.y],\n      rotation: this.rotation,\n      wrap: [this.wrapS, this.wrapT],\n      format: this.format,\n      internalFormat: this.internalFormat,\n      type: this.type,\n      colorSpace: this.colorSpace,\n      minFilter: this.minFilter,\n      magFilter: this.magFilter,\n      anisotropy: this.anisotropy,\n      flipY: this.flipY,\n      generateMipmaps: this.generateMipmaps,\n      premultiplyAlpha: this.premultiplyAlpha,\n      unpackAlignment: this.unpackAlignment\n    };\n    if (Object.keys(this.userData).length > 0) output.userData = this.userData;\n    if (!isRootObject) {\n      meta.textures[this.uuid] = output;\n    }\n    return output;\n  }\n  dispose() {\n    this.dispatchEvent({ type: \"dispose\" });\n  }\n  transformUv(uv) {\n    if (this.mapping !== UVMapping) return uv;\n    uv.applyMatrix3(this.matrix);\n    if (uv.x < 0 || uv.x > 1) {\n      switch (this.wrapS) {\n        case RepeatWrapping:\n          uv.x = uv.x - Math.floor(uv.x);\n          break;\n        case ClampToEdgeWrapping:\n          uv.x = uv.x < 0 ? 0 : 1;\n          break;\n        case MirroredRepeatWrapping:\n          if (Math.abs(Math.floor(uv.x) % 2) === 1) {\n            uv.x = Math.ceil(uv.x) - uv.x;\n          } else {\n            uv.x = uv.x - Math.floor(uv.x);\n          }\n          break;\n      }\n    }\n    if (uv.y < 0 || uv.y > 1) {\n      switch (this.wrapT) {\n        case RepeatWrapping:\n          uv.y = uv.y - Math.floor(uv.y);\n          break;\n        case ClampToEdgeWrapping:\n          uv.y = uv.y < 0 ? 0 : 1;\n          break;\n        case MirroredRepeatWrapping:\n          if (Math.abs(Math.floor(uv.y) % 2) === 1) {\n            uv.y = Math.ceil(uv.y) - uv.y;\n          } else {\n            uv.y = uv.y - Math.floor(uv.y);\n          }\n          break;\n      }\n    }\n    if (this.flipY) {\n      uv.y = 1 - uv.y;\n    }\n    return uv;\n  }\n  set needsUpdate(value) {\n    if (value === true) {\n      this.version++;\n      this.source.needsUpdate = true;\n    }\n  }\n  set needsPMREMUpdate(value) {\n    if (value === true) {\n      this.pmremVersion++;\n    }\n  }\n};\nTexture.DEFAULT_IMAGE = null;\nTexture.DEFAULT_MAPPING = UVMapping;\nTexture.DEFAULT_ANISOTROPY = 1;\nvar Vector4 = class _Vector4 {\n  constructor(x = 0, y = 0, z = 0, w = 1) {\n    _Vector4.prototype.isVector4 = true;\n    this.x = x;\n    this.y = y;\n    this.z = z;\n    this.w = w;\n  }\n  get width() {\n    return this.z;\n  }\n  set width(value) {\n    this.z = value;\n  }\n  get height() {\n    return this.w;\n  }\n  set height(value) {\n    this.w = value;\n  }\n  set(x, y, z, w) {\n    this.x = x;\n    this.y = y;\n    this.z = z;\n    this.w = w;\n    return this;\n  }\n  setScalar(scalar) {\n    this.x = scalar;\n    this.y = scalar;\n    this.z = scalar;\n    this.w = scalar;\n    return this;\n  }\n  setX(x) {\n    this.x = x;\n    return this;\n  }\n  setY(y) {\n    this.y = y;\n    return this;\n  }\n  setZ(z) {\n    this.z = z;\n    return this;\n  }\n  setW(w) {\n    this.w = w;\n    return this;\n  }\n  setComponent(index, value) {\n    switch (index) {\n      case 0:\n        this.x = value;\n        break;\n      case 1:\n        this.y = value;\n        break;\n      case 2:\n        this.z = value;\n        break;\n      case 3:\n        this.w = value;\n        break;\n      default:\n        throw new Error(\"index is out of range: \" + index);\n    }\n    return this;\n  }\n  getComponent(index) {\n    switch (index) {\n      case 0:\n        return this.x;\n      case 1:\n        return this.y;\n      case 2:\n        return this.z;\n      case 3:\n        return this.w;\n      default:\n        throw new Error(\"index is out of range: \" + index);\n    }\n  }\n  clone() {\n    return new this.constructor(this.x, this.y, this.z, this.w);\n  }\n  copy(v) {\n    this.x = v.x;\n    this.y = v.y;\n    this.z = v.z;\n    this.w = v.w !== void 0 ? v.w : 1;\n    return this;\n  }\n  add(v) {\n    this.x += v.x;\n    this.y += v.y;\n    this.z += v.z;\n    this.w += v.w;\n    return this;\n  }\n  addScalar(s) {\n    this.x += s;\n    this.y += s;\n    this.z += s;\n    this.w += s;\n    return this;\n  }\n  addVectors(a, b) {\n    this.x = a.x + b.x;\n    this.y = a.y + b.y;\n    this.z = a.z + b.z;\n    this.w = a.w + b.w;\n    return this;\n  }\n  addScaledVector(v, s) {\n    this.x += v.x * s;\n    this.y += v.y * s;\n    this.z += v.z * s;\n    this.w += v.w * s;\n    return this;\n  }\n  sub(v) {\n    this.x -= v.x;\n    this.y -= v.y;\n    this.z -= v.z;\n    this.w -= v.w;\n    return this;\n  }\n  subScalar(s) {\n    this.x -= s;\n    this.y -= s;\n    this.z -= s;\n    this.w -= s;\n    return this;\n  }\n  subVectors(a, b) {\n    this.x = a.x - b.x;\n    this.y = a.y - b.y;\n    this.z = a.z - b.z;\n    this.w = a.w - b.w;\n    return this;\n  }\n  multiply(v) {\n    this.x *= v.x;\n    this.y *= v.y;\n    this.z *= v.z;\n    this.w *= v.w;\n    return this;\n  }\n  multiplyScalar(scalar) {\n    this.x *= scalar;\n    this.y *= scalar;\n    this.z *= scalar;\n    this.w *= scalar;\n    return this;\n  }\n  applyMatrix4(m) {\n    const x = this.x, y = this.y, z = this.z, w = this.w;\n    const e = m.elements;\n    this.x = e[0] * x + e[4] * y + e[8] * z + e[12] * w;\n    this.y = e[1] * x + e[5] * y + e[9] * z + e[13] * w;\n    this.z = e[2] * x + e[6] * y + e[10] * z + e[14] * w;\n    this.w = e[3] * x + e[7] * y + e[11] * z + e[15] * w;\n    return this;\n  }\n  divideScalar(scalar) {\n    return this.multiplyScalar(1 / scalar);\n  }\n  setAxisAngleFromQuaternion(q) {\n    this.w = 2 * Math.acos(q.w);\n    const s = Math.sqrt(1 - q.w * q.w);\n    if (s < 1e-4) {\n      this.x = 1;\n      this.y = 0;\n      this.z = 0;\n    } else {\n      this.x = q.x / s;\n      this.y = q.y / s;\n      this.z = q.z / s;\n    }\n    return this;\n  }\n  setAxisAngleFromRotationMatrix(m) {\n    let angle, x, y, z;\n    const epsilon = 0.01, epsilon2 = 0.1, te = m.elements, m11 = te[0], m12 = te[4], m13 = te[8], m21 = te[1], m22 = te[5], m23 = te[9], m31 = te[2], m32 = te[6], m33 = te[10];\n    if (Math.abs(m12 - m21) < epsilon && Math.abs(m13 - m31) < epsilon && Math.abs(m23 - m32) < epsilon) {\n      if (Math.abs(m12 + m21) < epsilon2 && Math.abs(m13 + m31) < epsilon2 && Math.abs(m23 + m32) < epsilon2 && Math.abs(m11 + m22 + m33 - 3) < epsilon2) {\n        this.set(1, 0, 0, 0);\n        return this;\n      }\n      angle = Math.PI;\n      const xx = (m11 + 1) / 2;\n      const yy = (m22 + 1) / 2;\n      const zz = (m33 + 1) / 2;\n      const xy = (m12 + m21) / 4;\n      const xz = (m13 + m31) / 4;\n      const yz = (m23 + m32) / 4;\n      if (xx > yy && xx > zz) {\n        if (xx < epsilon) {\n          x = 0;\n          y = 0.707106781;\n          z = 0.707106781;\n        } else {\n          x = Math.sqrt(xx);\n          y = xy / x;\n          z = xz / x;\n        }\n      } else if (yy > zz) {\n        if (yy < epsilon) {\n          x = 0.707106781;\n          y = 0;\n          z = 0.707106781;\n        } else {\n          y = Math.sqrt(yy);\n          x = xy / y;\n          z = yz / y;\n        }\n      } else {\n        if (zz < epsilon) {\n          x = 0.707106781;\n          y = 0.707106781;\n          z = 0;\n        } else {\n          z = Math.sqrt(zz);\n          x = xz / z;\n          y = yz / z;\n        }\n      }\n      this.set(x, y, z, angle);\n      return this;\n    }\n    let s = Math.sqrt((m32 - m23) * (m32 - m23) + (m13 - m31) * (m13 - m31) + (m21 - m12) * (m21 - m12));\n    if (Math.abs(s) < 1e-3) s = 1;\n    this.x = (m32 - m23) / s;\n    this.y = (m13 - m31) / s;\n    this.z = (m21 - m12) / s;\n    this.w = Math.acos((m11 + m22 + m33 - 1) / 2);\n    return this;\n  }\n  setFromMatrixPosition(m) {\n    const e = m.elements;\n    this.x = e[12];\n    this.y = e[13];\n    this.z = e[14];\n    this.w = e[15];\n    return this;\n  }\n  min(v) {\n    this.x = Math.min(this.x, v.x);\n    this.y = Math.min(this.y, v.y);\n    this.z = Math.min(this.z, v.z);\n    this.w = Math.min(this.w, v.w);\n    return this;\n  }\n  max(v) {\n    this.x = Math.max(this.x, v.x);\n    this.y = Math.max(this.y, v.y);\n    this.z = Math.max(this.z, v.z);\n    this.w = Math.max(this.w, v.w);\n    return this;\n  }\n  clamp(min, max) {\n    this.x = Math.max(min.x, Math.min(max.x, this.x));\n    this.y = Math.max(min.y, Math.min(max.y, this.y));\n    this.z = Math.max(min.z, Math.min(max.z, this.z));\n    this.w = Math.max(min.w, Math.min(max.w, this.w));\n    return this;\n  }\n  clampScalar(minVal, maxVal) {\n    this.x = Math.max(minVal, Math.min(maxVal, this.x));\n    this.y = Math.max(minVal, Math.min(maxVal, this.y));\n    this.z = Math.max(minVal, Math.min(maxVal, this.z));\n    this.w = Math.max(minVal, Math.min(maxVal, this.w));\n    return this;\n  }\n  clampLength(min, max) {\n    const length = this.length();\n    return this.divideScalar(length || 1).multiplyScalar(Math.max(min, Math.min(max, length)));\n  }\n  floor() {\n    this.x = Math.floor(this.x);\n    this.y = Math.floor(this.y);\n    this.z = Math.floor(this.z);\n    this.w = Math.floor(this.w);\n    return this;\n  }\n  ceil() {\n    this.x = Math.ceil(this.x);\n    this.y = Math.ceil(this.y);\n    this.z = Math.ceil(this.z);\n    this.w = Math.ceil(this.w);\n    return this;\n  }\n  round() {\n    this.x = Math.round(this.x);\n    this.y = Math.round(this.y);\n    this.z = Math.round(this.z);\n    this.w = Math.round(this.w);\n    return this;\n  }\n  roundToZero() {\n    this.x = Math.trunc(this.x);\n    this.y = Math.trunc(this.y);\n    this.z = Math.trunc(this.z);\n    this.w = Math.trunc(this.w);\n    return this;\n  }\n  negate() {\n    this.x = -this.x;\n    this.y = -this.y;\n    this.z = -this.z;\n    this.w = -this.w;\n    return this;\n  }\n  dot(v) {\n    return this.x * v.x + this.y * v.y + this.z * v.z + this.w * v.w;\n  }\n  lengthSq() {\n    return this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w;\n  }\n  length() {\n    return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w);\n  }\n  manhattanLength() {\n    return Math.abs(this.x) + Math.abs(this.y) + Math.abs(this.z) + Math.abs(this.w);\n  }\n  normalize() {\n    return this.divideScalar(this.length() || 1);\n  }\n  setLength(length) {\n    return this.normalize().multiplyScalar(length);\n  }\n  lerp(v, alpha) {\n    this.x += (v.x - this.x) * alpha;\n    this.y += (v.y - this.y) * alpha;\n    this.z += (v.z - this.z) * alpha;\n    this.w += (v.w - this.w) * alpha;\n    return this;\n  }\n  lerpVectors(v1, v2, alpha) {\n    this.x = v1.x + (v2.x - v1.x) * alpha;\n    this.y = v1.y + (v2.y - v1.y) * alpha;\n    this.z = v1.z + (v2.z - v1.z) * alpha;\n    this.w = v1.w + (v2.w - v1.w) * alpha;\n    return this;\n  }\n  equals(v) {\n    return v.x === this.x && v.y === this.y && v.z === this.z && v.w === this.w;\n  }\n  fromArray(array, offset = 0) {\n    this.x = array[offset];\n    this.y = array[offset + 1];\n    this.z = array[offset + 2];\n    this.w = array[offset + 3];\n    return this;\n  }\n  toArray(array = [], offset = 0) {\n    array[offset] = this.x;\n    array[offset + 1] = this.y;\n    array[offset + 2] = this.z;\n    array[offset + 3] = this.w;\n    return array;\n  }\n  fromBufferAttribute(attribute, index) {\n    this.x = attribute.getX(index);\n    this.y = attribute.getY(index);\n    this.z = attribute.getZ(index);\n    this.w = attribute.getW(index);\n    return this;\n  }\n  random() {\n    this.x = Math.random();\n    this.y = Math.random();\n    this.z = Math.random();\n    this.w = Math.random();\n    return this;\n  }\n  *[Symbol.iterator]() {\n    yield this.x;\n    yield this.y;\n    yield this.z;\n    yield this.w;\n  }\n};\nvar RenderTarget = class extends EventDispatcher {\n  constructor(width = 1, height = 1, options = {}) {\n    super();\n    this.isRenderTarget = true;\n    this.width = width;\n    this.height = height;\n    this.depth = 1;\n    this.scissor = new Vector4(0, 0, width, height);\n    this.scissorTest = false;\n    this.viewport = new Vector4(0, 0, width, height);\n    const image = { width, height, depth: 1 };\n    options = Object.assign({\n      generateMipmaps: false,\n      internalFormat: null,\n      minFilter: LinearFilter,\n      depthBuffer: true,\n      stencilBuffer: false,\n      resolveDepthBuffer: true,\n      resolveStencilBuffer: true,\n      depthTexture: null,\n      samples: 0,\n      count: 1\n    }, options);\n    const texture = new Texture(image, options.mapping, options.wrapS, options.wrapT, options.magFilter, options.minFilter, options.format, options.type, options.anisotropy, options.colorSpace);\n    texture.flipY = false;\n    texture.generateMipmaps = options.generateMipmaps;\n    texture.internalFormat = options.internalFormat;\n    this.textures = [];\n    const count = options.count;\n    for (let i = 0; i < count; i++) {\n      this.textures[i] = texture.clone();\n      this.textures[i].isRenderTargetTexture = true;\n    }\n    this.depthBuffer = options.depthBuffer;\n    this.stencilBuffer = options.stencilBuffer;\n    this.resolveDepthBuffer = options.resolveDepthBuffer;\n    this.resolveStencilBuffer = options.resolveStencilBuffer;\n    this.depthTexture = options.depthTexture;\n    this.samples = options.samples;\n  }\n  get texture() {\n    return this.textures[0];\n  }\n  set texture(value) {\n    this.textures[0] = value;\n  }\n  setSize(width, height, depth = 1) {\n    if (this.width !== width || this.height !== height || this.depth !== depth) {\n      this.width = width;\n      this.height = height;\n      this.depth = depth;\n      for (let i = 0, il = this.textures.length; i < il; i++) {\n        this.textures[i].image.width = width;\n        this.textures[i].image.height = height;\n        this.textures[i].image.depth = depth;\n      }\n      this.dispose();\n    }\n    this.viewport.set(0, 0, width, height);\n    this.scissor.set(0, 0, width, height);\n  }\n  clone() {\n    return new this.constructor().copy(this);\n  }\n  copy(source) {\n    this.width = source.width;\n    this.height = source.height;\n    this.depth = source.depth;\n    this.scissor.copy(source.scissor);\n    this.scissorTest = source.scissorTest;\n    this.viewport.copy(source.viewport);\n    this.textures.length = 0;\n    for (let i = 0, il = source.textures.length; i < il; i++) {\n      this.textures[i] = source.textures[i].clone();\n      this.textures[i].isRenderTargetTexture = true;\n    }\n    const image = Object.assign({}, source.texture.image);\n    this.texture.source = new Source(image);\n    this.depthBuffer = source.depthBuffer;\n    this.stencilBuffer = source.stencilBuffer;\n    this.resolveDepthBuffer = source.resolveDepthBuffer;\n    this.resolveStencilBuffer = source.resolveStencilBuffer;\n    if (source.depthTexture !== null) this.depthTexture = source.depthTexture.clone();\n    this.samples = source.samples;\n    return this;\n  }\n  dispose() {\n    this.dispatchEvent({ type: \"dispose\" });\n  }\n};\nvar WebGLRenderTarget = class extends RenderTarget {\n  constructor(width = 1, height = 1, options = {}) {\n    super(width, height, options);\n    this.isWebGLRenderTarget = true;\n  }\n};\nvar DataArrayTexture = class extends Texture {\n  constructor(data = null, width = 1, height = 1, depth = 1) {\n    super(null);\n    this.isDataArrayTexture = true;\n    this.image = { data, width, height, depth };\n    this.magFilter = NearestFilter;\n    this.minFilter = NearestFilter;\n    this.wrapR = ClampToEdgeWrapping;\n    this.generateMipmaps = false;\n    this.flipY = false;\n    this.unpackAlignment = 1;\n    this.layerUpdates = /* @__PURE__ */ new Set();\n  }\n  addLayerUpdate(layerIndex) {\n    this.layerUpdates.add(layerIndex);\n  }\n  clearLayerUpdates() {\n    this.layerUpdates.clear();\n  }\n};\nvar WebGLArrayRenderTarget = class extends WebGLRenderTarget {\n  constructor(width = 1, height = 1, depth = 1, options = {}) {\n    super(width, height, options);\n    this.isWebGLArrayRenderTarget = true;\n    this.depth = depth;\n    this.texture = new DataArrayTexture(null, width, height, depth);\n    this.texture.isRenderTargetTexture = true;\n  }\n};\nvar Data3DTexture = class extends Texture {\n  constructor(data = null, width = 1, height = 1, depth = 1) {\n    super(null);\n    this.isData3DTexture = true;\n    this.image = { data, width, height, depth };\n    this.magFilter = NearestFilter;\n    this.minFilter = NearestFilter;\n    this.wrapR = ClampToEdgeWrapping;\n    this.generateMipmaps = false;\n    this.flipY = false;\n    this.unpackAlignment = 1;\n  }\n};\nvar WebGL3DRenderTarget = class extends WebGLRenderTarget {\n  constructor(width = 1, height = 1, depth = 1, options = {}) {\n    super(width, height, options);\n    this.isWebGL3DRenderTarget = true;\n    this.depth = depth;\n    this.texture = new Data3DTexture(null, width, height, depth);\n    this.texture.isRenderTargetTexture = true;\n  }\n};\nvar Quaternion = class {\n  constructor(x = 0, y = 0, z = 0, w = 1) {\n    this.isQuaternion = true;\n    this._x = x;\n    this._y = y;\n    this._z = z;\n    this._w = w;\n  }\n  static slerpFlat(dst, dstOffset, src0, srcOffset0, src1, srcOffset1, t) {\n    let x0 = src0[srcOffset0 + 0], y0 = src0[srcOffset0 + 1], z0 = src0[srcOffset0 + 2], w0 = src0[srcOffset0 + 3];\n    const x1 = src1[srcOffset1 + 0], y1 = src1[srcOffset1 + 1], z1 = src1[srcOffset1 + 2], w1 = src1[srcOffset1 + 3];\n    if (t === 0) {\n      dst[dstOffset + 0] = x0;\n      dst[dstOffset + 1] = y0;\n      dst[dstOffset + 2] = z0;\n      dst[dstOffset + 3] = w0;\n      return;\n    }\n    if (t === 1) {\n      dst[dstOffset + 0] = x1;\n      dst[dstOffset + 1] = y1;\n      dst[dstOffset + 2] = z1;\n      dst[dstOffset + 3] = w1;\n      return;\n    }\n    if (w0 !== w1 || x0 !== x1 || y0 !== y1 || z0 !== z1) {\n      let s = 1 - t;\n      const cos = x0 * x1 + y0 * y1 + z0 * z1 + w0 * w1, dir = cos >= 0 ? 1 : -1, sqrSin = 1 - cos * cos;\n      if (sqrSin > Number.EPSILON) {\n        const sin = Math.sqrt(sqrSin), len = Math.atan2(sin, cos * dir);\n        s = Math.sin(s * len) / sin;\n        t = Math.sin(t * len) / sin;\n      }\n      const tDir = t * dir;\n      x0 = x0 * s + x1 * tDir;\n      y0 = y0 * s + y1 * tDir;\n      z0 = z0 * s + z1 * tDir;\n      w0 = w0 * s + w1 * tDir;\n      if (s === 1 - t) {\n        const f = 1 / Math.sqrt(x0 * x0 + y0 * y0 + z0 * z0 + w0 * w0);\n        x0 *= f;\n        y0 *= f;\n        z0 *= f;\n        w0 *= f;\n      }\n    }\n    dst[dstOffset] = x0;\n    dst[dstOffset + 1] = y0;\n    dst[dstOffset + 2] = z0;\n    dst[dstOffset + 3] = w0;\n  }\n  static multiplyQuaternionsFlat(dst, dstOffset, src0, srcOffset0, src1, srcOffset1) {\n    const x0 = src0[srcOffset0];\n    const y0 = src0[srcOffset0 + 1];\n    const z0 = src0[srcOffset0 + 2];\n    const w0 = src0[srcOffset0 + 3];\n    const x1 = src1[srcOffset1];\n    const y1 = src1[srcOffset1 + 1];\n    const z1 = src1[srcOffset1 + 2];\n    const w1 = src1[srcOffset1 + 3];\n    dst[dstOffset] = x0 * w1 + w0 * x1 + y0 * z1 - z0 * y1;\n    dst[dstOffset + 1] = y0 * w1 + w0 * y1 + z0 * x1 - x0 * z1;\n    dst[dstOffset + 2] = z0 * w1 + w0 * z1 + x0 * y1 - y0 * x1;\n    dst[dstOffset + 3] = w0 * w1 - x0 * x1 - y0 * y1 - z0 * z1;\n    return dst;\n  }\n  get x() {\n    return this._x;\n  }\n  set x(value) {\n    this._x = value;\n    this._onChangeCallback();\n  }\n  get y() {\n    return this._y;\n  }\n  set y(value) {\n    this._y = value;\n    this._onChangeCallback();\n  }\n  get z() {\n    return this._z;\n  }\n  set z(value) {\n    this._z = value;\n    this._onChangeCallback();\n  }\n  get w() {\n    return this._w;\n  }\n  set w(value) {\n    this._w = value;\n    this._onChangeCallback();\n  }\n  set(x, y, z, w) {\n    this._x = x;\n    this._y = y;\n    this._z = z;\n    this._w = w;\n    this._onChangeCallback();\n    return this;\n  }\n  clone() {\n    return new this.constructor(this._x, this._y, this._z, this._w);\n  }\n  copy(quaternion) {\n    this._x = quaternion.x;\n    this._y = quaternion.y;\n    this._z = quaternion.z;\n    this._w = quaternion.w;\n    this._onChangeCallback();\n    return this;\n  }\n  setFromEuler(euler, update = true) {\n    const x = euler._x, y = euler._y, z = euler._z, order = euler._order;\n    const cos = Math.cos;\n    const sin = Math.sin;\n    const c1 = cos(x / 2);\n    const c2 = cos(y / 2);\n    const c3 = cos(z / 2);\n    const s1 = sin(x / 2);\n    const s2 = sin(y / 2);\n    const s3 = sin(z / 2);\n    switch (order) {\n      case \"XYZ\":\n        this._x = s1 * c2 * c3 + c1 * s2 * s3;\n        this._y = c1 * s2 * c3 - s1 * c2 * s3;\n        this._z = c1 * c2 * s3 + s1 * s2 * c3;\n        this._w = c1 * c2 * c3 - s1 * s2 * s3;\n        break;\n      case \"YXZ\":\n        this._x = s1 * c2 * c3 + c1 * s2 * s3;\n        this._y = c1 * s2 * c3 - s1 * c2 * s3;\n        this._z = c1 * c2 * s3 - s1 * s2 * c3;\n        this._w = c1 * c2 * c3 + s1 * s2 * s3;\n        break;\n      case \"ZXY\":\n        this._x = s1 * c2 * c3 - c1 * s2 * s3;\n        this._y = c1 * s2 * c3 + s1 * c2 * s3;\n        this._z = c1 * c2 * s3 + s1 * s2 * c3;\n        this._w = c1 * c2 * c3 - s1 * s2 * s3;\n        break;\n      case \"ZYX\":\n        this._x = s1 * c2 * c3 - c1 * s2 * s3;\n        this._y = c1 * s2 * c3 + s1 * c2 * s3;\n        this._z = c1 * c2 * s3 - s1 * s2 * c3;\n        this._w = c1 * c2 * c3 + s1 * s2 * s3;\n        break;\n      case \"YZX\":\n        this._x = s1 * c2 * c3 + c1 * s2 * s3;\n        this._y = c1 * s2 * c3 + s1 * c2 * s3;\n        this._z = c1 * c2 * s3 - s1 * s2 * c3;\n        this._w = c1 * c2 * c3 - s1 * s2 * s3;\n        break;\n      case \"XZY\":\n        this._x = s1 * c2 * c3 - c1 * s2 * s3;\n        this._y = c1 * s2 * c3 - s1 * c2 * s3;\n        this._z = c1 * c2 * s3 + s1 * s2 * c3;\n        this._w = c1 * c2 * c3 + s1 * s2 * s3;\n        break;\n      default:\n        console.warn(\"THREE.Quaternion: .setFromEuler() encountered an unknown order: \" + order);\n    }\n    if (update === true) this._onChangeCallback();\n    return this;\n  }\n  setFromAxisAngle(axis, angle) {\n    const halfAngle = angle / 2, s = Math.sin(halfAngle);\n    this._x = axis.x * s;\n    this._y = axis.y * s;\n    this._z = axis.z * s;\n    this._w = Math.cos(halfAngle);\n    this._onChangeCallback();\n    return this;\n  }\n  setFromRotationMatrix(m) {\n    const te = m.elements, m11 = te[0], m12 = te[4], m13 = te[8], m21 = te[1], m22 = te[5], m23 = te[9], m31 = te[2], m32 = te[6], m33 = te[10], trace = m11 + m22 + m33;\n    if (trace > 0) {\n      const s = 0.5 / Math.sqrt(trace + 1);\n      this._w = 0.25 / s;\n      this._x = (m32 - m23) * s;\n      this._y = (m13 - m31) * s;\n      this._z = (m21 - m12) * s;\n    } else if (m11 > m22 && m11 > m33) {\n      const s = 2 * Math.sqrt(1 + m11 - m22 - m33);\n      this._w = (m32 - m23) / s;\n      this._x = 0.25 * s;\n      this._y = (m12 + m21) / s;\n      this._z = (m13 + m31) / s;\n    } else if (m22 > m33) {\n      const s = 2 * Math.sqrt(1 + m22 - m11 - m33);\n      this._w = (m13 - m31) / s;\n      this._x = (m12 + m21) / s;\n      this._y = 0.25 * s;\n      this._z = (m23 + m32) / s;\n    } else {\n      const s = 2 * Math.sqrt(1 + m33 - m11 - m22);\n      this._w = (m21 - m12) / s;\n      this._x = (m13 + m31) / s;\n      this._y = (m23 + m32) / s;\n      this._z = 0.25 * s;\n    }\n    this._onChangeCallback();\n    return this;\n  }\n  setFromUnitVectors(vFrom, vTo) {\n    let r = vFrom.dot(vTo) + 1;\n    if (r < Number.EPSILON) {\n      r = 0;\n      if (Math.abs(vFrom.x) > Math.abs(vFrom.z)) {\n        this._x = -vFrom.y;\n        this._y = vFrom.x;\n        this._z = 0;\n        this._w = r;\n      } else {\n        this._x = 0;\n        this._y = -vFrom.z;\n        this._z = vFrom.y;\n        this._w = r;\n      }\n    } else {\n      this._x = vFrom.y * vTo.z - vFrom.z * vTo.y;\n      this._y = vFrom.z * vTo.x - vFrom.x * vTo.z;\n      this._z = vFrom.x * vTo.y - vFrom.y * vTo.x;\n      this._w = r;\n    }\n    return this.normalize();\n  }\n  angleTo(q) {\n    return 2 * Math.acos(Math.abs(clamp(this.dot(q), -1, 1)));\n  }\n  rotateTowards(q, step) {\n    const angle = this.angleTo(q);\n    if (angle === 0) return this;\n    const t = Math.min(1, step / angle);\n    this.slerp(q, t);\n    return this;\n  }\n  identity() {\n    return this.set(0, 0, 0, 1);\n  }\n  invert() {\n    return this.conjugate();\n  }\n  conjugate() {\n    this._x *= -1;\n    this._y *= -1;\n    this._z *= -1;\n    this._onChangeCallback();\n    return this;\n  }\n  dot(v) {\n    return this._x * v._x + this._y * v._y + this._z * v._z + this._w * v._w;\n  }\n  lengthSq() {\n    return this._x * this._x + this._y * this._y + this._z * this._z + this._w * this._w;\n  }\n  length() {\n    return Math.sqrt(this._x * this._x + this._y * this._y + this._z * this._z + this._w * this._w);\n  }\n  normalize() {\n    let l = this.length();\n    if (l === 0) {\n      this._x = 0;\n      this._y = 0;\n      this._z = 0;\n      this._w = 1;\n    } else {\n      l = 1 / l;\n      this._x = this._x * l;\n      this._y = this._y * l;\n      this._z = this._z * l;\n      this._w = this._w * l;\n    }\n    this._onChangeCallback();\n    return this;\n  }\n  multiply(q) {\n    return this.multiplyQuaternions(this, q);\n  }\n  premultiply(q) {\n    return this.multiplyQuaternions(q, this);\n  }\n  multiplyQuaternions(a, b) {\n    const qax = a._x, qay = a._y, qaz = a._z, qaw = a._w;\n    const qbx = b._x, qby = b._y, qbz = b._z, qbw = b._w;\n    this._x = qax * qbw + qaw * qbx + qay * qbz - qaz * qby;\n    this._y = qay * qbw + qaw * qby + qaz * qbx - qax * qbz;\n    this._z = qaz * qbw + qaw * qbz + qax * qby - qay * qbx;\n    this._w = qaw * qbw - qax * qbx - qay * qby - qaz * qbz;\n    this._onChangeCallback();\n    return this;\n  }\n  slerp(qb, t) {\n    if (t === 0) return this;\n    if (t === 1) return this.copy(qb);\n    const x = this._x, y = this._y, z = this._z, w = this._w;\n    let cosHalfTheta = w * qb._w + x * qb._x + y * qb._y + z * qb._z;\n    if (cosHalfTheta < 0) {\n      this._w = -qb._w;\n      this._x = -qb._x;\n      this._y = -qb._y;\n      this._z = -qb._z;\n      cosHalfTheta = -cosHalfTheta;\n    } else {\n      this.copy(qb);\n    }\n    if (cosHalfTheta >= 1) {\n      this._w = w;\n      this._x = x;\n      this._y = y;\n      this._z = z;\n      return this;\n    }\n    const sqrSinHalfTheta = 1 - cosHalfTheta * cosHalfTheta;\n    if (sqrSinHalfTheta <= Number.EPSILON) {\n      const s = 1 - t;\n      this._w = s * w + t * this._w;\n      this._x = s * x + t * this._x;\n      this._y = s * y + t * this._y;\n      this._z = s * z + t * this._z;\n      this.normalize();\n      return this;\n    }\n    const sinHalfTheta = Math.sqrt(sqrSinHalfTheta);\n    const halfTheta = Math.atan2(sinHalfTheta, cosHalfTheta);\n    const ratioA = Math.sin((1 - t) * halfTheta) / sinHalfTheta, ratioB = Math.sin(t * halfTheta) / sinHalfTheta;\n    this._w = w * ratioA + this._w * ratioB;\n    this._x = x * ratioA + this._x * ratioB;\n    this._y = y * ratioA + this._y * ratioB;\n    this._z = z * ratioA + this._z * ratioB;\n    this._onChangeCallback();\n    return this;\n  }\n  slerpQuaternions(qa, qb, t) {\n    return this.copy(qa).slerp(qb, t);\n  }\n  random() {\n    const theta1 = 2 * Math.PI * Math.random();\n    const theta2 = 2 * Math.PI * Math.random();\n    const x0 = Math.random();\n    const r1 = Math.sqrt(1 - x0);\n    const r2 = Math.sqrt(x0);\n    return this.set(\n      r1 * Math.sin(theta1),\n      r1 * Math.cos(theta1),\n      r2 * Math.sin(theta2),\n      r2 * Math.cos(theta2)\n    );\n  }\n  equals(quaternion) {\n    return quaternion._x === this._x && quaternion._y === this._y && quaternion._z === this._z && quaternion._w === this._w;\n  }\n  fromArray(array, offset = 0) {\n    this._x = array[offset];\n    this._y = array[offset + 1];\n    this._z = array[offset + 2];\n    this._w = array[offset + 3];\n    this._onChangeCallback();\n    return this;\n  }\n  toArray(array = [], offset = 0) {\n    array[offset] = this._x;\n    array[offset + 1] = this._y;\n    array[offset + 2] = this._z;\n    array[offset + 3] = this._w;\n    return array;\n  }\n  fromBufferAttribute(attribute, index) {\n    this._x = attribute.getX(index);\n    this._y = attribute.getY(index);\n    this._z = attribute.getZ(index);\n    this._w = attribute.getW(index);\n    this._onChangeCallback();\n    return this;\n  }\n  toJSON() {\n    return this.toArray();\n  }\n  _onChange(callback) {\n    this._onChangeCallback = callback;\n    return this;\n  }\n  _onChangeCallback() {\n  }\n  *[Symbol.iterator]() {\n    yield this._x;\n    yield this._y;\n    yield this._z;\n    yield this._w;\n  }\n};\nvar Vector3 = class _Vector3 {\n  constructor(x = 0, y = 0, z = 0) {\n    _Vector3.prototype.isVector3 = true;\n    this.x = x;\n    this.y = y;\n    this.z = z;\n  }\n  set(x, y, z) {\n    if (z === void 0) z = this.z;\n    this.x = x;\n    this.y = y;\n    this.z = z;\n    return this;\n  }\n  setScalar(scalar) {\n    this.x = scalar;\n    this.y = scalar;\n    this.z = scalar;\n    return this;\n  }\n  setX(x) {\n    this.x = x;\n    return this;\n  }\n  setY(y) {\n    this.y = y;\n    return this;\n  }\n  setZ(z) {\n    this.z = z;\n    return this;\n  }\n  setComponent(index, value) {\n    switch (index) {\n      case 0:\n        this.x = value;\n        break;\n      case 1:\n        this.y = value;\n        break;\n      case 2:\n        this.z = value;\n        break;\n      default:\n        throw new Error(\"index is out of range: \" + index);\n    }\n    return this;\n  }\n  getComponent(index) {\n    switch (index) {\n      case 0:\n        return this.x;\n      case 1:\n        return this.y;\n      case 2:\n        return this.z;\n      default:\n        throw new Error(\"index is out of range: \" + index);\n    }\n  }\n  clone() {\n    return new this.constructor(this.x, this.y, this.z);\n  }\n  copy(v) {\n    this.x = v.x;\n    this.y = v.y;\n    this.z = v.z;\n    return this;\n  }\n  add(v) {\n    this.x += v.x;\n    this.y += v.y;\n    this.z += v.z;\n    return this;\n  }\n  addScalar(s) {\n    this.x += s;\n    this.y += s;\n    this.z += s;\n    return this;\n  }\n  addVectors(a, b) {\n    this.x = a.x + b.x;\n    this.y = a.y + b.y;\n    this.z = a.z + b.z;\n    return this;\n  }\n  addScaledVector(v, s) {\n    this.x += v.x * s;\n    this.y += v.y * s;\n    this.z += v.z * s;\n    return this;\n  }\n  sub(v) {\n    this.x -= v.x;\n    this.y -= v.y;\n    this.z -= v.z;\n    return this;\n  }\n  subScalar(s) {\n    this.x -= s;\n    this.y -= s;\n    this.z -= s;\n    return this;\n  }\n  subVectors(a, b) {\n    this.x = a.x - b.x;\n    this.y = a.y - b.y;\n    this.z = a.z - b.z;\n    return this;\n  }\n  multiply(v) {\n    this.x *= v.x;\n    this.y *= v.y;\n    this.z *= v.z;\n    return this;\n  }\n  multiplyScalar(scalar) {\n    this.x *= scalar;\n    this.y *= scalar;\n    this.z *= scalar;\n    return this;\n  }\n  multiplyVectors(a, b) {\n    this.x = a.x * b.x;\n    this.y = a.y * b.y;\n    this.z = a.z * b.z;\n    return this;\n  }\n  applyEuler(euler) {\n    return this.applyQuaternion(_quaternion$4.setFromEuler(euler));\n  }\n  applyAxisAngle(axis, angle) {\n    return this.applyQuaternion(_quaternion$4.setFromAxisAngle(axis, angle));\n  }\n  applyMatrix3(m) {\n    const x = this.x, y = this.y, z = this.z;\n    const e = m.elements;\n    this.x = e[0] * x + e[3] * y + e[6] * z;\n    this.y = e[1] * x + e[4] * y + e[7] * z;\n    this.z = e[2] * x + e[5] * y + e[8] * z;\n    return this;\n  }\n  applyNormalMatrix(m) {\n    return this.applyMatrix3(m).normalize();\n  }\n  applyMatrix4(m) {\n    const x = this.x, y = this.y, z = this.z;\n    const e = m.elements;\n    const w = 1 / (e[3] * x + e[7] * y + e[11] * z + e[15]);\n    this.x = (e[0] * x + e[4] * y + e[8] * z + e[12]) * w;\n    this.y = (e[1] * x + e[5] * y + e[9] * z + e[13]) * w;\n    this.z = (e[2] * x + e[6] * y + e[10] * z + e[14]) * w;\n    return this;\n  }\n  applyQuaternion(q) {\n    const vx = this.x, vy = this.y, vz = this.z;\n    const qx = q.x, qy = q.y, qz = q.z, qw = q.w;\n    const tx = 2 * (qy * vz - qz * vy);\n    const ty = 2 * (qz * vx - qx * vz);\n    const tz = 2 * (qx * vy - qy * vx);\n    this.x = vx + qw * tx + qy * tz - qz * ty;\n    this.y = vy + qw * ty + qz * tx - qx * tz;\n    this.z = vz + qw * tz + qx * ty - qy * tx;\n    return this;\n  }\n  project(camera) {\n    return this.applyMatrix4(camera.matrixWorldInverse).applyMatrix4(camera.projectionMatrix);\n  }\n  unproject(camera) {\n    return this.applyMatrix4(camera.projectionMatrixInverse).applyMatrix4(camera.matrixWorld);\n  }\n  transformDirection(m) {\n    const x = this.x, y = this.y, z = this.z;\n    const e = m.elements;\n    this.x = e[0] * x + e[4] * y + e[8] * z;\n    this.y = e[1] * x + e[5] * y + e[9] * z;\n    this.z = e[2] * x + e[6] * y + e[10] * z;\n    return this.normalize();\n  }\n  divide(v) {\n    this.x /= v.x;\n    this.y /= v.y;\n    this.z /= v.z;\n    return this;\n  }\n  divideScalar(scalar) {\n    return this.multiplyScalar(1 / scalar);\n  }\n  min(v) {\n    this.x = Math.min(this.x, v.x);\n    this.y = Math.min(this.y, v.y);\n    this.z = Math.min(this.z, v.z);\n    return this;\n  }\n  max(v) {\n    this.x = Math.max(this.x, v.x);\n    this.y = Math.max(this.y, v.y);\n    this.z = Math.max(this.z, v.z);\n    return this;\n  }\n  clamp(min, max) {\n    this.x = Math.max(min.x, Math.min(max.x, this.x));\n    this.y = Math.max(min.y, Math.min(max.y, this.y));\n    this.z = Math.max(min.z, Math.min(max.z, this.z));\n    return this;\n  }\n  clampScalar(minVal, maxVal) {\n    this.x = Math.max(minVal, Math.min(maxVal, this.x));\n    this.y = Math.max(minVal, Math.min(maxVal, this.y));\n    this.z = Math.max(minVal, Math.min(maxVal, this.z));\n    return this;\n  }\n  clampLength(min, max) {\n    const length = this.length();\n    return this.divideScalar(length || 1).multiplyScalar(Math.max(min, Math.min(max, length)));\n  }\n  floor() {\n    this.x = Math.floor(this.x);\n    this.y = Math.floor(this.y);\n    this.z = Math.floor(this.z);\n    return this;\n  }\n  ceil() {\n    this.x = Math.ceil(this.x);\n    this.y = Math.ceil(this.y);\n    this.z = Math.ceil(this.z);\n    return this;\n  }\n  round() {\n    this.x = Math.round(this.x);\n    this.y = Math.round(this.y);\n    this.z = Math.round(this.z);\n    return this;\n  }\n  roundToZero() {\n    this.x = Math.trunc(this.x);\n    this.y = Math.trunc(this.y);\n    this.z = Math.trunc(this.z);\n    return this;\n  }\n  negate() {\n    this.x = -this.x;\n    this.y = -this.y;\n    this.z = -this.z;\n    return this;\n  }\n  dot(v) {\n    return this.x * v.x + this.y * v.y + this.z * v.z;\n  }\n  // TODO lengthSquared?\n  lengthSq() {\n    return this.x * this.x + this.y * this.y + this.z * this.z;\n  }\n  length() {\n    return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z);\n  }\n  manhattanLength() {\n    return Math.abs(this.x) + Math.abs(this.y) + Math.abs(this.z);\n  }\n  normalize() {\n    return this.divideScalar(this.length() || 1);\n  }\n  setLength(length) {\n    return this.normalize().multiplyScalar(length);\n  }\n  lerp(v, alpha) {\n    this.x += (v.x - this.x) * alpha;\n    this.y += (v.y - this.y) * alpha;\n    this.z += (v.z - this.z) * alpha;\n    return this;\n  }\n  lerpVectors(v1, v2, alpha) {\n    this.x = v1.x + (v2.x - v1.x) * alpha;\n    this.y = v1.y + (v2.y - v1.y) * alpha;\n    this.z = v1.z + (v2.z - v1.z) * alpha;\n    return this;\n  }\n  cross(v) {\n    return this.crossVectors(this, v);\n  }\n  crossVectors(a, b) {\n    const ax = a.x, ay = a.y, az = a.z;\n    const bx = b.x, by = b.y, bz = b.z;\n    this.x = ay * bz - az * by;\n    this.y = az * bx - ax * bz;\n    this.z = ax * by - ay * bx;\n    return this;\n  }\n  projectOnVector(v) {\n    const denominator = v.lengthSq();\n    if (denominator === 0) return this.set(0, 0, 0);\n    const scalar = v.dot(this) / denominator;\n    return this.copy(v).multiplyScalar(scalar);\n  }\n  projectOnPlane(planeNormal) {\n    _vector$c.copy(this).projectOnVector(planeNormal);\n    return this.sub(_vector$c);\n  }\n  reflect(normal) {\n    return this.sub(_vector$c.copy(normal).multiplyScalar(2 * this.dot(normal)));\n  }\n  angleTo(v) {\n    const denominator = Math.sqrt(this.lengthSq() * v.lengthSq());\n    if (denominator === 0) return Math.PI / 2;\n    const theta = this.dot(v) / denominator;\n    return Math.acos(clamp(theta, -1, 1));\n  }\n  distanceTo(v) {\n    return Math.sqrt(this.distanceToSquared(v));\n  }\n  distanceToSquared(v) {\n    const dx = this.x - v.x, dy = this.y - v.y, dz = this.z - v.z;\n    return dx * dx + dy * dy + dz * dz;\n  }\n  manhattanDistanceTo(v) {\n    return Math.abs(this.x - v.x) + Math.abs(this.y - v.y) + Math.abs(this.z - v.z);\n  }\n  setFromSpherical(s) {\n    return this.setFromSphericalCoords(s.radius, s.phi, s.theta);\n  }\n  setFromSphericalCoords(radius, phi, theta) {\n    const sinPhiRadius = Math.sin(phi) * radius;\n    this.x = sinPhiRadius * Math.sin(theta);\n    this.y = Math.cos(phi) * radius;\n    this.z = sinPhiRadius * Math.cos(theta);\n    return this;\n  }\n  setFromCylindrical(c) {\n    return this.setFromCylindricalCoords(c.radius, c.theta, c.y);\n  }\n  setFromCylindricalCoords(radius, theta, y) {\n    this.x = radius * Math.sin(theta);\n    this.y = y;\n    this.z = radius * Math.cos(theta);\n    return this;\n  }\n  setFromMatrixPosition(m) {\n    const e = m.elements;\n    this.x = e[12];\n    this.y = e[13];\n    this.z = e[14];\n    return this;\n  }\n  setFromMatrixScale(m) {\n    const sx = this.setFromMatrixColumn(m, 0).length();\n    const sy = this.setFromMatrixColumn(m, 1).length();\n    const sz = this.setFromMatrixColumn(m, 2).length();\n    this.x = sx;\n    this.y = sy;\n    this.z = sz;\n    return this;\n  }\n  setFromMatrixColumn(m, index) {\n    return this.fromArray(m.elements, index * 4);\n  }\n  setFromMatrix3Column(m, index) {\n    return this.fromArray(m.elements, index * 3);\n  }\n  setFromEuler(e) {\n    this.x = e._x;\n    this.y = e._y;\n    this.z = e._z;\n    return this;\n  }\n  setFromColor(c) {\n    this.x = c.r;\n    this.y = c.g;\n    this.z = c.b;\n    return this;\n  }\n  equals(v) {\n    return v.x === this.x && v.y === this.y && v.z === this.z;\n  }\n  fromArray(array, offset = 0) {\n    this.x = array[offset];\n    this.y = array[offset + 1];\n    this.z = array[offset + 2];\n    return this;\n  }\n  toArray(array = [], offset = 0) {\n    array[offset] = this.x;\n    array[offset + 1] = this.y;\n    array[offset + 2] = this.z;\n    return array;\n  }\n  fromBufferAttribute(attribute, index) {\n    this.x = attribute.getX(index);\n    this.y = attribute.getY(index);\n    this.z = attribute.getZ(index);\n    return this;\n  }\n  random() {\n    this.x = Math.random();\n    this.y = Math.random();\n    this.z = Math.random();\n    return this;\n  }\n  randomDirection() {\n    const theta = Math.random() * Math.PI * 2;\n    const u = Math.random() * 2 - 1;\n    const c = Math.sqrt(1 - u * u);\n    this.x = c * Math.cos(theta);\n    this.y = u;\n    this.z = c * Math.sin(theta);\n    return this;\n  }\n  *[Symbol.iterator]() {\n    yield this.x;\n    yield this.y;\n    yield this.z;\n  }\n};\nvar _vector$c = /* @__PURE__ */ new Vector3();\nvar _quaternion$4 = /* @__PURE__ */ new Quaternion();\nvar Box3 = class {\n  constructor(min = new Vector3(Infinity, Infinity, Infinity), max = new Vector3(-Infinity, -Infinity, -Infinity)) {\n    this.isBox3 = true;\n    this.min = min;\n    this.max = max;\n  }\n  set(min, max) {\n    this.min.copy(min);\n    this.max.copy(max);\n    return this;\n  }\n  setFromArray(array) {\n    this.makeEmpty();\n    for (let i = 0, il = array.length; i < il; i += 3) {\n      this.expandByPoint(_vector$b.fromArray(array, i));\n    }\n    return this;\n  }\n  setFromBufferAttribute(attribute) {\n    this.makeEmpty();\n    for (let i = 0, il = attribute.count; i < il; i++) {\n      this.expandByPoint(_vector$b.fromBufferAttribute(attribute, i));\n    }\n    return this;\n  }\n  setFromPoints(points) {\n    this.makeEmpty();\n    for (let i = 0, il = points.length; i < il; i++) {\n      this.expandByPoint(points[i]);\n    }\n    return this;\n  }\n  setFromCenterAndSize(center, size) {\n    const halfSize = _vector$b.copy(size).multiplyScalar(0.5);\n    this.min.copy(center).sub(halfSize);\n    this.max.copy(center).add(halfSize);\n    return this;\n  }\n  setFromObject(object, precise = false) {\n    this.makeEmpty();\n    return this.expandByObject(object, precise);\n  }\n  clone() {\n    return new this.constructor().copy(this);\n  }\n  copy(box) {\n    this.min.copy(box.min);\n    this.max.copy(box.max);\n    return this;\n  }\n  makeEmpty() {\n    this.min.x = this.min.y = this.min.z = Infinity;\n    this.max.x = this.max.y = this.max.z = -Infinity;\n    return this;\n  }\n  isEmpty() {\n    return this.max.x < this.min.x || this.max.y < this.min.y || this.max.z < this.min.z;\n  }\n  getCenter(target) {\n    return this.isEmpty() ? target.set(0, 0, 0) : target.addVectors(this.min, this.max).multiplyScalar(0.5);\n  }\n  getSize(target) {\n    return this.isEmpty() ? target.set(0, 0, 0) : target.subVectors(this.max, this.min);\n  }\n  expandByPoint(point) {\n    this.min.min(point);\n    this.max.max(point);\n    return this;\n  }\n  expandByVector(vector) {\n    this.min.sub(vector);\n    this.max.add(vector);\n    return this;\n  }\n  expandByScalar(scalar) {\n    this.min.addScalar(-scalar);\n    this.max.addScalar(scalar);\n    return this;\n  }\n  expandByObject(object, precise = false) {\n    object.updateWorldMatrix(false, false);\n    const geometry = object.geometry;\n    if (geometry !== void 0) {\n      const positionAttribute = geometry.getAttribute(\"position\");\n      if (precise === true && positionAttribute !== void 0 && object.isInstancedMesh !== true) {\n        for (let i = 0, l = positionAttribute.count; i < l; i++) {\n          if (object.isMesh === true) {\n            object.getVertexPosition(i, _vector$b);\n          } else {\n            _vector$b.fromBufferAttribute(positionAttribute, i);\n          }\n          _vector$b.applyMatrix4(object.matrixWorld);\n          this.expandByPoint(_vector$b);\n        }\n      } else {\n        if (object.boundingBox !== void 0) {\n          if (object.boundingBox === null) {\n            object.computeBoundingBox();\n          }\n          _box$4.copy(object.boundingBox);\n        } else {\n          if (geometry.boundingBox === null) {\n            geometry.computeBoundingBox();\n          }\n          _box$4.copy(geometry.boundingBox);\n        }\n        _box$4.applyMatrix4(object.matrixWorld);\n        this.union(_box$4);\n      }\n    }\n    const children = object.children;\n    for (let i = 0, l = children.length; i < l; i++) {\n      this.expandByObject(children[i], precise);\n    }\n    return this;\n  }\n  containsPoint(point) {\n    return point.x >= this.min.x && point.x <= this.max.x && point.y >= this.min.y && point.y <= this.max.y && point.z >= this.min.z && point.z <= this.max.z;\n  }\n  containsBox(box) {\n    return this.min.x <= box.min.x && box.max.x <= this.max.x && this.min.y <= box.min.y && box.max.y <= this.max.y && this.min.z <= box.min.z && box.max.z <= this.max.z;\n  }\n  getParameter(point, target) {\n    return target.set(\n      (point.x - this.min.x) / (this.max.x - this.min.x),\n      (point.y - this.min.y) / (this.max.y - this.min.y),\n      (point.z - this.min.z) / (this.max.z - this.min.z)\n    );\n  }\n  intersectsBox(box) {\n    return box.max.x >= this.min.x && box.min.x <= this.max.x && box.max.y >= this.min.y && box.min.y <= this.max.y && box.max.z >= this.min.z && box.min.z <= this.max.z;\n  }\n  intersectsSphere(sphere) {\n    this.clampPoint(sphere.center, _vector$b);\n    return _vector$b.distanceToSquared(sphere.center) <= sphere.radius * sphere.radius;\n  }\n  intersectsPlane(plane) {\n    let min, max;\n    if (plane.normal.x > 0) {\n      min = plane.normal.x * this.min.x;\n      max = plane.normal.x * this.max.x;\n    } else {\n      min = plane.normal.x * this.max.x;\n      max = plane.normal.x * this.min.x;\n    }\n    if (plane.normal.y > 0) {\n      min += plane.normal.y * this.min.y;\n      max += plane.normal.y * this.max.y;\n    } else {\n      min += plane.normal.y * this.max.y;\n      max += plane.normal.y * this.min.y;\n    }\n    if (plane.normal.z > 0) {\n      min += plane.normal.z * this.min.z;\n      max += plane.normal.z * this.max.z;\n    } else {\n      min += plane.normal.z * this.max.z;\n      max += plane.normal.z * this.min.z;\n    }\n    return min <= -plane.constant && max >= -plane.constant;\n  }\n  intersectsTriangle(triangle) {\n    if (this.isEmpty()) {\n      return false;\n    }\n    this.getCenter(_center);\n    _extents.subVectors(this.max, _center);\n    _v0$3.subVectors(triangle.a, _center);\n    _v1$7.subVectors(triangle.b, _center);\n    _v2$4.subVectors(triangle.c, _center);\n    _f0.subVectors(_v1$7, _v0$3);\n    _f1.subVectors(_v2$4, _v1$7);\n    _f2.subVectors(_v0$3, _v2$4);\n    let axes = [\n      0,\n      -_f0.z,\n      _f0.y,\n      0,\n      -_f1.z,\n      _f1.y,\n      0,\n      -_f2.z,\n      _f2.y,\n      _f0.z,\n      0,\n      -_f0.x,\n      _f1.z,\n      0,\n      -_f1.x,\n      _f2.z,\n      0,\n      -_f2.x,\n      -_f0.y,\n      _f0.x,\n      0,\n      -_f1.y,\n      _f1.x,\n      0,\n      -_f2.y,\n      _f2.x,\n      0\n    ];\n    if (!satForAxes(axes, _v0$3, _v1$7, _v2$4, _extents)) {\n      return false;\n    }\n    axes = [1, 0, 0, 0, 1, 0, 0, 0, 1];\n    if (!satForAxes(axes, _v0$3, _v1$7, _v2$4, _extents)) {\n      return false;\n    }\n    _triangleNormal.crossVectors(_f0, _f1);\n    axes = [_triangleNormal.x, _triangleNormal.y, _triangleNormal.z];\n    return satForAxes(axes, _v0$3, _v1$7, _v2$4, _extents);\n  }\n  clampPoint(point, target) {\n    return target.copy(point).clamp(this.min, this.max);\n  }\n  distanceToPoint(point) {\n    return this.clampPoint(point, _vector$b).distanceTo(point);\n  }\n  getBoundingSphere(target) {\n    if (this.isEmpty()) {\n      target.makeEmpty();\n    } else {\n      this.getCenter(target.center);\n      target.radius = this.getSize(_vector$b).length() * 0.5;\n    }\n    return target;\n  }\n  intersect(box) {\n    this.min.max(box.min);\n    this.max.min(box.max);\n    if (this.isEmpty()) this.makeEmpty();\n    return this;\n  }\n  union(box) {\n    this.min.min(box.min);\n    this.max.max(box.max);\n    return this;\n  }\n  applyMatrix4(matrix) {\n    if (this.isEmpty()) return this;\n    _points[0].set(this.min.x, this.min.y, this.min.z).applyMatrix4(matrix);\n    _points[1].set(this.min.x, this.min.y, this.max.z).applyMatrix4(matrix);\n    _points[2].set(this.min.x, this.max.y, this.min.z).applyMatrix4(matrix);\n    _points[3].set(this.min.x, this.max.y, this.max.z).applyMatrix4(matrix);\n    _points[4].set(this.max.x, this.min.y, this.min.z).applyMatrix4(matrix);\n    _points[5].set(this.max.x, this.min.y, this.max.z).applyMatrix4(matrix);\n    _points[6].set(this.max.x, this.max.y, this.min.z).applyMatrix4(matrix);\n    _points[7].set(this.max.x, this.max.y, this.max.z).applyMatrix4(matrix);\n    this.setFromPoints(_points);\n    return this;\n  }\n  translate(offset) {\n    this.min.add(offset);\n    this.max.add(offset);\n    return this;\n  }\n  equals(box) {\n    return box.min.equals(this.min) && box.max.equals(this.max);\n  }\n};\nvar _points = [\n  /* @__PURE__ */ new Vector3(),\n  /* @__PURE__ */ new Vector3(),\n  /* @__PURE__ */ new Vector3(),\n  /* @__PURE__ */ new Vector3(),\n  /* @__PURE__ */ new Vector3(),\n  /* @__PURE__ */ new Vector3(),\n  /* @__PURE__ */ new Vector3(),\n  /* @__PURE__ */ new Vector3()\n];\nvar _vector$b = /* @__PURE__ */ new Vector3();\nvar _box$4 = /* @__PURE__ */ new Box3();\nvar _v0$3 = /* @__PURE__ */ new Vector3();\nvar _v1$7 = /* @__PURE__ */ new Vector3();\nvar _v2$4 = /* @__PURE__ */ new Vector3();\nvar _f0 = /* @__PURE__ */ new Vector3();\nvar _f1 = /* @__PURE__ */ new Vector3();\nvar _f2 = /* @__PURE__ */ new Vector3();\nvar _center = /* @__PURE__ */ new Vector3();\nvar _extents = /* @__PURE__ */ new Vector3();\nvar _triangleNormal = /* @__PURE__ */ new Vector3();\nvar _testAxis = /* @__PURE__ */ new Vector3();\nfunction satForAxes(axes, v0, v1, v2, extents) {\n  for (let i = 0, j = axes.length - 3; i <= j; i += 3) {\n    _testAxis.fromArray(axes, i);\n    const r = extents.x * Math.abs(_testAxis.x) + extents.y * Math.abs(_testAxis.y) + extents.z * Math.abs(_testAxis.z);\n    const p0 = v0.dot(_testAxis);\n    const p1 = v1.dot(_testAxis);\n    const p2 = v2.dot(_testAxis);\n    if (Math.max(-Math.max(p0, p1, p2), Math.min(p0, p1, p2)) > r) {\n      return false;\n    }\n  }\n  return true;\n}\nvar _box$3 = /* @__PURE__ */ new Box3();\nvar _v1$6 = /* @__PURE__ */ new Vector3();\nvar _v2$3 = /* @__PURE__ */ new Vector3();\nvar Sphere = class {\n  constructor(center = new Vector3(), radius = -1) {\n    this.isSphere = true;\n    this.center = center;\n    this.radius = radius;\n  }\n  set(center, radius) {\n    this.center.copy(center);\n    this.radius = radius;\n    return this;\n  }\n  setFromPoints(points, optionalCenter) {\n    const center = this.center;\n    if (optionalCenter !== void 0) {\n      center.copy(optionalCenter);\n    } else {\n      _box$3.setFromPoints(points).getCenter(center);\n    }\n    let maxRadiusSq = 0;\n    for (let i = 0, il = points.length; i < il; i++) {\n      maxRadiusSq = Math.max(maxRadiusSq, center.distanceToSquared(points[i]));\n    }\n    this.radius = Math.sqrt(maxRadiusSq);\n    return this;\n  }\n  copy(sphere) {\n    this.center.copy(sphere.center);\n    this.radius = sphere.radius;\n    return this;\n  }\n  isEmpty() {\n    return this.radius < 0;\n  }\n  makeEmpty() {\n    this.center.set(0, 0, 0);\n    this.radius = -1;\n    return this;\n  }\n  containsPoint(point) {\n    return point.distanceToSquared(this.center) <= this.radius * this.radius;\n  }\n  distanceToPoint(point) {\n    return point.distanceTo(this.center) - this.radius;\n  }\n  intersectsSphere(sphere) {\n    const radiusSum = this.radius + sphere.radius;\n    return sphere.center.distanceToSquared(this.center) <= radiusSum * radiusSum;\n  }\n  intersectsBox(box) {\n    return box.intersectsSphere(this);\n  }\n  intersectsPlane(plane) {\n    return Math.abs(plane.distanceToPoint(this.center)) <= this.radius;\n  }\n  clampPoint(point, target) {\n    const deltaLengthSq = this.center.distanceToSquared(point);\n    target.copy(point);\n    if (deltaLengthSq > this.radius * this.radius) {\n      target.sub(this.center).normalize();\n      target.multiplyScalar(this.radius).add(this.center);\n    }\n    return target;\n  }\n  getBoundingBox(target) {\n    if (this.isEmpty()) {\n      target.makeEmpty();\n      return target;\n    }\n    target.set(this.center, this.center);\n    target.expandByScalar(this.radius);\n    return target;\n  }\n  applyMatrix4(matrix) {\n    this.center.applyMatrix4(matrix);\n    this.radius = this.radius * matrix.getMaxScaleOnAxis();\n    return this;\n  }\n  translate(offset) {\n    this.center.add(offset);\n    return this;\n  }\n  expandByPoint(point) {\n    if (this.isEmpty()) {\n      this.center.copy(point);\n      this.radius = 0;\n      return this;\n    }\n    _v1$6.subVectors(point, this.center);\n    const lengthSq = _v1$6.lengthSq();\n    if (lengthSq > this.radius * this.radius) {\n      const length = Math.sqrt(lengthSq);\n      const delta = (length - this.radius) * 0.5;\n      this.center.addScaledVector(_v1$6, delta / length);\n      this.radius += delta;\n    }\n    return this;\n  }\n  union(sphere) {\n    if (sphere.isEmpty()) {\n      return this;\n    }\n    if (this.isEmpty()) {\n      this.copy(sphere);\n      return this;\n    }\n    if (this.center.equals(sphere.center) === true) {\n      this.radius = Math.max(this.radius, sphere.radius);\n    } else {\n      _v2$3.subVectors(sphere.center, this.center).setLength(sphere.radius);\n      this.expandByPoint(_v1$6.copy(sphere.center).add(_v2$3));\n      this.expandByPoint(_v1$6.copy(sphere.center).sub(_v2$3));\n    }\n    return this;\n  }\n  equals(sphere) {\n    return sphere.center.equals(this.center) && sphere.radius === this.radius;\n  }\n  clone() {\n    return new this.constructor().copy(this);\n  }\n};\nvar _vector$a = /* @__PURE__ */ new Vector3();\nvar _segCenter = /* @__PURE__ */ new Vector3();\nvar _segDir = /* @__PURE__ */ new Vector3();\nvar _diff = /* @__PURE__ */ new Vector3();\nvar _edge1 = /* @__PURE__ */ new Vector3();\nvar _edge2 = /* @__PURE__ */ new Vector3();\nvar _normal$1 = /* @__PURE__ */ new Vector3();\nvar Ray = class {\n  constructor(origin = new Vector3(), direction = new Vector3(0, 0, -1)) {\n    this.origin = origin;\n    this.direction = direction;\n  }\n  set(origin, direction) {\n    this.origin.copy(origin);\n    this.direction.copy(direction);\n    return this;\n  }\n  copy(ray) {\n    this.origin.copy(ray.origin);\n    this.direction.copy(ray.direction);\n    return this;\n  }\n  at(t, target) {\n    return target.copy(this.origin).addScaledVector(this.direction, t);\n  }\n  lookAt(v) {\n    this.direction.copy(v).sub(this.origin).normalize();\n    return this;\n  }\n  recast(t) {\n    this.origin.copy(this.at(t, _vector$a));\n    return this;\n  }\n  closestPointToPoint(point, target) {\n    target.subVectors(point, this.origin);\n    const directionDistance = target.dot(this.direction);\n    if (directionDistance < 0) {\n      return target.copy(this.origin);\n    }\n    return target.copy(this.origin).addScaledVector(this.direction, directionDistance);\n  }\n  distanceToPoint(point) {\n    return Math.sqrt(this.distanceSqToPoint(point));\n  }\n  distanceSqToPoint(point) {\n    const directionDistance = _vector$a.subVectors(point, this.origin).dot(this.direction);\n    if (directionDistance < 0) {\n      return this.origin.distanceToSquared(point);\n    }\n    _vector$a.copy(this.origin).addScaledVector(this.direction, directionDistance);\n    return _vector$a.distanceToSquared(point);\n  }\n  distanceSqToSegment(v0, v1, optionalPointOnRay, optionalPointOnSegment) {\n    _segCenter.copy(v0).add(v1).multiplyScalar(0.5);\n    _segDir.copy(v1).sub(v0).normalize();\n    _diff.copy(this.origin).sub(_segCenter);\n    const segExtent = v0.distanceTo(v1) * 0.5;\n    const a01 = -this.direction.dot(_segDir);\n    const b0 = _diff.dot(this.direction);\n    const b1 = -_diff.dot(_segDir);\n    const c = _diff.lengthSq();\n    const det = Math.abs(1 - a01 * a01);\n    let s0, s1, sqrDist, extDet;\n    if (det > 0) {\n      s0 = a01 * b1 - b0;\n      s1 = a01 * b0 - b1;\n      extDet = segExtent * det;\n      if (s0 >= 0) {\n        if (s1 >= -extDet) {\n          if (s1 <= extDet) {\n            const invDet = 1 / det;\n            s0 *= invDet;\n            s1 *= invDet;\n            sqrDist = s0 * (s0 + a01 * s1 + 2 * b0) + s1 * (a01 * s0 + s1 + 2 * b1) + c;\n          } else {\n            s1 = segExtent;\n            s0 = Math.max(0, -(a01 * s1 + b0));\n            sqrDist = -s0 * s0 + s1 * (s1 + 2 * b1) + c;\n          }\n        } else {\n          s1 = -segExtent;\n          s0 = Math.max(0, -(a01 * s1 + b0));\n          sqrDist = -s0 * s0 + s1 * (s1 + 2 * b1) + c;\n        }\n      } else {\n        if (s1 <= -extDet) {\n          s0 = Math.max(0, -(-a01 * segExtent + b0));\n          s1 = s0 > 0 ? -segExtent : Math.min(Math.max(-segExtent, -b1), segExtent);\n          sqrDist = -s0 * s0 + s1 * (s1 + 2 * b1) + c;\n        } else if (s1 <= extDet) {\n          s0 = 0;\n          s1 = Math.min(Math.max(-segExtent, -b1), segExtent);\n          sqrDist = s1 * (s1 + 2 * b1) + c;\n        } else {\n          s0 = Math.max(0, -(a01 * segExtent + b0));\n          s1 = s0 > 0 ? segExtent : Math.min(Math.max(-segExtent, -b1), segExtent);\n          sqrDist = -s0 * s0 + s1 * (s1 + 2 * b1) + c;\n        }\n      }\n    } else {\n      s1 = a01 > 0 ? -segExtent : segExtent;\n      s0 = Math.max(0, -(a01 * s1 + b0));\n      sqrDist = -s0 * s0 + s1 * (s1 + 2 * b1) + c;\n    }\n    if (optionalPointOnRay) {\n      optionalPointOnRay.copy(this.origin).addScaledVector(this.direction, s0);\n    }\n    if (optionalPointOnSegment) {\n      optionalPointOnSegment.copy(_segCenter).addScaledVector(_segDir, s1);\n    }\n    return sqrDist;\n  }\n  intersectSphere(sphere, target) {\n    _vector$a.subVectors(sphere.center, this.origin);\n    const tca = _vector$a.dot(this.direction);\n    const d2 = _vector$a.dot(_vector$a) - tca * tca;\n    const radius2 = sphere.radius * sphere.radius;\n    if (d2 > radius2) return null;\n    const thc = Math.sqrt(radius2 - d2);\n    const t0 = tca - thc;\n    const t1 = tca + thc;\n    if (t1 < 0) return null;\n    if (t0 < 0) return this.at(t1, target);\n    return this.at(t0, target);\n  }\n  intersectsSphere(sphere) {\n    return this.distanceSqToPoint(sphere.center) <= sphere.radius * sphere.radius;\n  }\n  distanceToPlane(plane) {\n    const denominator = plane.normal.dot(this.direction);\n    if (denominator === 0) {\n      if (plane.distanceToPoint(this.origin) === 0) {\n        return 0;\n      }\n      return null;\n    }\n    const t = -(this.origin.dot(plane.normal) + plane.constant) / denominator;\n    return t >= 0 ? t : null;\n  }\n  intersectPlane(plane, target) {\n    const t = this.distanceToPlane(plane);\n    if (t === null) {\n      return null;\n    }\n    return this.at(t, target);\n  }\n  intersectsPlane(plane) {\n    const distToPoint = plane.distanceToPoint(this.origin);\n    if (distToPoint === 0) {\n      return true;\n    }\n    const denominator = plane.normal.dot(this.direction);\n    if (denominator * distToPoint < 0) {\n      return true;\n    }\n    return false;\n  }\n  intersectBox(box, target) {\n    let tmin, tmax, tymin, tymax, tzmin, tzmax;\n    const invdirx = 1 / this.direction.x, invdiry = 1 / this.direction.y, invdirz = 1 / this.direction.z;\n    const origin = this.origin;\n    if (invdirx >= 0) {\n      tmin = (box.min.x - origin.x) * invdirx;\n      tmax = (box.max.x - origin.x) * invdirx;\n    } else {\n      tmin = (box.max.x - origin.x) * invdirx;\n      tmax = (box.min.x - origin.x) * invdirx;\n    }\n    if (invdiry >= 0) {\n      tymin = (box.min.y - origin.y) * invdiry;\n      tymax = (box.max.y - origin.y) * invdiry;\n    } else {\n      tymin = (box.max.y - origin.y) * invdiry;\n      tymax = (box.min.y - origin.y) * invdiry;\n    }\n    if (tmin > tymax || tymin > tmax) return null;\n    if (tymin > tmin || isNaN(tmin)) tmin = tymin;\n    if (tymax < tmax || isNaN(tmax)) tmax = tymax;\n    if (invdirz >= 0) {\n      tzmin = (box.min.z - origin.z) * invdirz;\n      tzmax = (box.max.z - origin.z) * invdirz;\n    } else {\n      tzmin = (box.max.z - origin.z) * invdirz;\n      tzmax = (box.min.z - origin.z) * invdirz;\n    }\n    if (tmin > tzmax || tzmin > tmax) return null;\n    if (tzmin > tmin || tmin !== tmin) tmin = tzmin;\n    if (tzmax < tmax || tmax !== tmax) tmax = tzmax;\n    if (tmax < 0) return null;\n    return this.at(tmin >= 0 ? tmin : tmax, target);\n  }\n  intersectsBox(box) {\n    return this.intersectBox(box, _vector$a) !== null;\n  }\n  intersectTriangle(a, b, c, backfaceCulling, target) {\n    _edge1.subVectors(b, a);\n    _edge2.subVectors(c, a);\n    _normal$1.crossVectors(_edge1, _edge2);\n    let DdN = this.direction.dot(_normal$1);\n    let sign2;\n    if (DdN > 0) {\n      if (backfaceCulling) return null;\n      sign2 = 1;\n    } else if (DdN < 0) {\n      sign2 = -1;\n      DdN = -DdN;\n    } else {\n      return null;\n    }\n    _diff.subVectors(this.origin, a);\n    const DdQxE2 = sign2 * this.direction.dot(_edge2.crossVectors(_diff, _edge2));\n    if (DdQxE2 < 0) {\n      return null;\n    }\n    const DdE1xQ = sign2 * this.direction.dot(_edge1.cross(_diff));\n    if (DdE1xQ < 0) {\n      return null;\n    }\n    if (DdQxE2 + DdE1xQ > DdN) {\n      return null;\n    }\n    const QdN = -sign2 * _diff.dot(_normal$1);\n    if (QdN < 0) {\n      return null;\n    }\n    return this.at(QdN / DdN, target);\n  }\n  applyMatrix4(matrix4) {\n    this.origin.applyMatrix4(matrix4);\n    this.direction.transformDirection(matrix4);\n    return this;\n  }\n  equals(ray) {\n    return ray.origin.equals(this.origin) && ray.direction.equals(this.direction);\n  }\n  clone() {\n    return new this.constructor().copy(this);\n  }\n};\nvar Matrix4 = class _Matrix4 {\n  constructor(n11, n12, n13, n14, n21, n22, n23, n24, n31, n32, n33, n34, n41, n42, n43, n44) {\n    _Matrix4.prototype.isMatrix4 = true;\n    this.elements = [\n      1,\n      0,\n      0,\n      0,\n      0,\n      1,\n      0,\n      0,\n      0,\n      0,\n      1,\n      0,\n      0,\n      0,\n      0,\n      1\n    ];\n    if (n11 !== void 0) {\n      this.set(n11, n12, n13, n14, n21, n22, n23, n24, n31, n32, n33, n34, n41, n42, n43, n44);\n    }\n  }\n  set(n11, n12, n13, n14, n21, n22, n23, n24, n31, n32, n33, n34, n41, n42, n43, n44) {\n    const te = this.elements;\n    te[0] = n11;\n    te[4] = n12;\n    te[8] = n13;\n    te[12] = n14;\n    te[1] = n21;\n    te[5] = n22;\n    te[9] = n23;\n    te[13] = n24;\n    te[2] = n31;\n    te[6] = n32;\n    te[10] = n33;\n    te[14] = n34;\n    te[3] = n41;\n    te[7] = n42;\n    te[11] = n43;\n    te[15] = n44;\n    return this;\n  }\n  identity() {\n    this.set(\n      1,\n      0,\n      0,\n      0,\n      0,\n      1,\n      0,\n      0,\n      0,\n      0,\n      1,\n      0,\n      0,\n      0,\n      0,\n      1\n    );\n    return this;\n  }\n  clone() {\n    return new _Matrix4().fromArray(this.elements);\n  }\n  copy(m) {\n    const te = this.elements;\n    const me = m.elements;\n    te[0] = me[0];\n    te[1] = me[1];\n    te[2] = me[2];\n    te[3] = me[3];\n    te[4] = me[4];\n    te[5] = me[5];\n    te[6] = me[6];\n    te[7] = me[7];\n    te[8] = me[8];\n    te[9] = me[9];\n    te[10] = me[10];\n    te[11] = me[11];\n    te[12] = me[12];\n    te[13] = me[13];\n    te[14] = me[14];\n    te[15] = me[15];\n    return this;\n  }\n  copyPosition(m) {\n    const te = this.elements, me = m.elements;\n    te[12] = me[12];\n    te[13] = me[13];\n    te[14] = me[14];\n    return this;\n  }\n  setFromMatrix3(m) {\n    const me = m.elements;\n    this.set(\n      me[0],\n      me[3],\n      me[6],\n      0,\n      me[1],\n      me[4],\n      me[7],\n      0,\n      me[2],\n      me[5],\n      me[8],\n      0,\n      0,\n      0,\n      0,\n      1\n    );\n    return this;\n  }\n  extractBasis(xAxis, yAxis, zAxis) {\n    xAxis.setFromMatrixColumn(this, 0);\n    yAxis.setFromMatrixColumn(this, 1);\n    zAxis.setFromMatrixColumn(this, 2);\n    return this;\n  }\n  makeBasis(xAxis, yAxis, zAxis) {\n    this.set(\n      xAxis.x,\n      yAxis.x,\n      zAxis.x,\n      0,\n      xAxis.y,\n      yAxis.y,\n      zAxis.y,\n      0,\n      xAxis.z,\n      yAxis.z,\n      zAxis.z,\n      0,\n      0,\n      0,\n      0,\n      1\n    );\n    return this;\n  }\n  extractRotation(m) {\n    const te = this.elements;\n    const me = m.elements;\n    const scaleX = 1 / _v1$5.setFromMatrixColumn(m, 0).length();\n    const scaleY = 1 / _v1$5.setFromMatrixColumn(m, 1).length();\n    const scaleZ = 1 / _v1$5.setFromMatrixColumn(m, 2).length();\n    te[0] = me[0] * scaleX;\n    te[1] = me[1] * scaleX;\n    te[2] = me[2] * scaleX;\n    te[3] = 0;\n    te[4] = me[4] * scaleY;\n    te[5] = me[5] * scaleY;\n    te[6] = me[6] * scaleY;\n    te[7] = 0;\n    te[8] = me[8] * scaleZ;\n    te[9] = me[9] * scaleZ;\n    te[10] = me[10] * scaleZ;\n    te[11] = 0;\n    te[12] = 0;\n    te[13] = 0;\n    te[14] = 0;\n    te[15] = 1;\n    return this;\n  }\n  makeRotationFromEuler(euler) {\n    const te = this.elements;\n    const x = euler.x, y = euler.y, z = euler.z;\n    const a = Math.cos(x), b = Math.sin(x);\n    const c = Math.cos(y), d = Math.sin(y);\n    const e = Math.cos(z), f = Math.sin(z);\n    if (euler.order === \"XYZ\") {\n      const ae = a * e, af = a * f, be = b * e, bf = b * f;\n      te[0] = c * e;\n      te[4] = -c * f;\n      te[8] = d;\n      te[1] = af + be * d;\n      te[5] = ae - bf * d;\n      te[9] = -b * c;\n      te[2] = bf - ae * d;\n      te[6] = be + af * d;\n      te[10] = a * c;\n    } else if (euler.order === \"YXZ\") {\n      const ce = c * e, cf = c * f, de = d * e, df = d * f;\n      te[0] = ce + df * b;\n      te[4] = de * b - cf;\n      te[8] = a * d;\n      te[1] = a * f;\n      te[5] = a * e;\n      te[9] = -b;\n      te[2] = cf * b - de;\n      te[6] = df + ce * b;\n      te[10] = a * c;\n    } else if (euler.order === \"ZXY\") {\n      const ce = c * e, cf = c * f, de = d * e, df = d * f;\n      te[0] = ce - df * b;\n      te[4] = -a * f;\n      te[8] = de + cf * b;\n      te[1] = cf + de * b;\n      te[5] = a * e;\n      te[9] = df - ce * b;\n      te[2] = -a * d;\n      te[6] = b;\n      te[10] = a * c;\n    } else if (euler.order === \"ZYX\") {\n      const ae = a * e, af = a * f, be = b * e, bf = b * f;\n      te[0] = c * e;\n      te[4] = be * d - af;\n      te[8] = ae * d + bf;\n      te[1] = c * f;\n      te[5] = bf * d + ae;\n      te[9] = af * d - be;\n      te[2] = -d;\n      te[6] = b * c;\n      te[10] = a * c;\n    } else if (euler.order === \"YZX\") {\n      const ac = a * c, ad = a * d, bc = b * c, bd = b * d;\n      te[0] = c * e;\n      te[4] = bd - ac * f;\n      te[8] = bc * f + ad;\n      te[1] = f;\n      te[5] = a * e;\n      te[9] = -b * e;\n      te[2] = -d * e;\n      te[6] = ad * f + bc;\n      te[10] = ac - bd * f;\n    } else if (euler.order === \"XZY\") {\n      const ac = a * c, ad = a * d, bc = b * c, bd = b * d;\n      te[0] = c * e;\n      te[4] = -f;\n      te[8] = d * e;\n      te[1] = ac * f + bd;\n      te[5] = a * e;\n      te[9] = ad * f - bc;\n      te[2] = bc * f - ad;\n      te[6] = b * e;\n      te[10] = bd * f + ac;\n    }\n    te[3] = 0;\n    te[7] = 0;\n    te[11] = 0;\n    te[12] = 0;\n    te[13] = 0;\n    te[14] = 0;\n    te[15] = 1;\n    return this;\n  }\n  makeRotationFromQuaternion(q) {\n    return this.compose(_zero, q, _one);\n  }\n  lookAt(eye, target, up) {\n    const te = this.elements;\n    _z.subVectors(eye, target);\n    if (_z.lengthSq() === 0) {\n      _z.z = 1;\n    }\n    _z.normalize();\n    _x.crossVectors(up, _z);\n    if (_x.lengthSq() === 0) {\n      if (Math.abs(up.z) === 1) {\n        _z.x += 1e-4;\n      } else {\n        _z.z += 1e-4;\n      }\n      _z.normalize();\n      _x.crossVectors(up, _z);\n    }\n    _x.normalize();\n    _y.crossVectors(_z, _x);\n    te[0] = _x.x;\n    te[4] = _y.x;\n    te[8] = _z.x;\n    te[1] = _x.y;\n    te[5] = _y.y;\n    te[9] = _z.y;\n    te[2] = _x.z;\n    te[6] = _y.z;\n    te[10] = _z.z;\n    return this;\n  }\n  multiply(m) {\n    return this.multiplyMatrices(this, m);\n  }\n  premultiply(m) {\n    return this.multiplyMatrices(m, this);\n  }\n  multiplyMatrices(a, b) {\n    const ae = a.elements;\n    const be = b.elements;\n    const te = this.elements;\n    const a11 = ae[0], a12 = ae[4], a13 = ae[8], a14 = ae[12];\n    const a21 = ae[1], a22 = ae[5], a23 = ae[9], a24 = ae[13];\n    const a31 = ae[2], a32 = ae[6], a33 = ae[10], a34 = ae[14];\n    const a41 = ae[3], a42 = ae[7], a43 = ae[11], a44 = ae[15];\n    const b11 = be[0], b12 = be[4], b13 = be[8], b14 = be[12];\n    const b21 = be[1], b22 = be[5], b23 = be[9], b24 = be[13];\n    const b31 = be[2], b32 = be[6], b33 = be[10], b34 = be[14];\n    const b41 = be[3], b42 = be[7], b43 = be[11], b44 = be[15];\n    te[0] = a11 * b11 + a12 * b21 + a13 * b31 + a14 * b41;\n    te[4] = a11 * b12 + a12 * b22 + a13 * b32 + a14 * b42;\n    te[8] = a11 * b13 + a12 * b23 + a13 * b33 + a14 * b43;\n    te[12] = a11 * b14 + a12 * b24 + a13 * b34 + a14 * b44;\n    te[1] = a21 * b11 + a22 * b21 + a23 * b31 + a24 * b41;\n    te[5] = a21 * b12 + a22 * b22 + a23 * b32 + a24 * b42;\n    te[9] = a21 * b13 + a22 * b23 + a23 * b33 + a24 * b43;\n    te[13] = a21 * b14 + a22 * b24 + a23 * b34 + a24 * b44;\n    te[2] = a31 * b11 + a32 * b21 + a33 * b31 + a34 * b41;\n    te[6] = a31 * b12 + a32 * b22 + a33 * b32 + a34 * b42;\n    te[10] = a31 * b13 + a32 * b23 + a33 * b33 + a34 * b43;\n    te[14] = a31 * b14 + a32 * b24 + a33 * b34 + a34 * b44;\n    te[3] = a41 * b11 + a42 * b21 + a43 * b31 + a44 * b41;\n    te[7] = a41 * b12 + a42 * b22 + a43 * b32 + a44 * b42;\n    te[11] = a41 * b13 + a42 * b23 + a43 * b33 + a44 * b43;\n    te[15] = a41 * b14 + a42 * b24 + a43 * b34 + a44 * b44;\n    return this;\n  }\n  multiplyScalar(s) {\n    const te = this.elements;\n    te[0] *= s;\n    te[4] *= s;\n    te[8] *= s;\n    te[12] *= s;\n    te[1] *= s;\n    te[5] *= s;\n    te[9] *= s;\n    te[13] *= s;\n    te[2] *= s;\n    te[6] *= s;\n    te[10] *= s;\n    te[14] *= s;\n    te[3] *= s;\n    te[7] *= s;\n    te[11] *= s;\n    te[15] *= s;\n    return this;\n  }\n  determinant() {\n    const te = this.elements;\n    const n11 = te[0], n12 = te[4], n13 = te[8], n14 = te[12];\n    const n21 = te[1], n22 = te[5], n23 = te[9], n24 = te[13];\n    const n31 = te[2], n32 = te[6], n33 = te[10], n34 = te[14];\n    const n41 = te[3], n42 = te[7], n43 = te[11], n44 = te[15];\n    return n41 * (+n14 * n23 * n32 - n13 * n24 * n32 - n14 * n22 * n33 + n12 * n24 * n33 + n13 * n22 * n34 - n12 * n23 * n34) + n42 * (+n11 * n23 * n34 - n11 * n24 * n33 + n14 * n21 * n33 - n13 * n21 * n34 + n13 * n24 * n31 - n14 * n23 * n31) + n43 * (+n11 * n24 * n32 - n11 * n22 * n34 - n14 * n21 * n32 + n12 * n21 * n34 + n14 * n22 * n31 - n12 * n24 * n31) + n44 * (-n13 * n22 * n31 - n11 * n23 * n32 + n11 * n22 * n33 + n13 * n21 * n32 - n12 * n21 * n33 + n12 * n23 * n31);\n  }\n  transpose() {\n    const te = this.elements;\n    let tmp2;\n    tmp2 = te[1];\n    te[1] = te[4];\n    te[4] = tmp2;\n    tmp2 = te[2];\n    te[2] = te[8];\n    te[8] = tmp2;\n    tmp2 = te[6];\n    te[6] = te[9];\n    te[9] = tmp2;\n    tmp2 = te[3];\n    te[3] = te[12];\n    te[12] = tmp2;\n    tmp2 = te[7];\n    te[7] = te[13];\n    te[13] = tmp2;\n    tmp2 = te[11];\n    te[11] = te[14];\n    te[14] = tmp2;\n    return this;\n  }\n  setPosition(x, y, z) {\n    const te = this.elements;\n    if (x.isVector3) {\n      te[12] = x.x;\n      te[13] = x.y;\n      te[14] = x.z;\n    } else {\n      te[12] = x;\n      te[13] = y;\n      te[14] = z;\n    }\n    return this;\n  }\n  invert() {\n    const te = this.elements, n11 = te[0], n21 = te[1], n31 = te[2], n41 = te[3], n12 = te[4], n22 = te[5], n32 = te[6], n42 = te[7], n13 = te[8], n23 = te[9], n33 = te[10], n43 = te[11], n14 = te[12], n24 = te[13], n34 = te[14], n44 = te[15], t11 = n23 * n34 * n42 - n24 * n33 * n42 + n24 * n32 * n43 - n22 * n34 * n43 - n23 * n32 * n44 + n22 * n33 * n44, t12 = n14 * n33 * n42 - n13 * n34 * n42 - n14 * n32 * n43 + n12 * n34 * n43 + n13 * n32 * n44 - n12 * n33 * n44, t13 = n13 * n24 * n42 - n14 * n23 * n42 + n14 * n22 * n43 - n12 * n24 * n43 - n13 * n22 * n44 + n12 * n23 * n44, t14 = n14 * n23 * n32 - n13 * n24 * n32 - n14 * n22 * n33 + n12 * n24 * n33 + n13 * n22 * n34 - n12 * n23 * n34;\n    const det = n11 * t11 + n21 * t12 + n31 * t13 + n41 * t14;\n    if (det === 0) return this.set(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);\n    const detInv = 1 / det;\n    te[0] = t11 * detInv;\n    te[1] = (n24 * n33 * n41 - n23 * n34 * n41 - n24 * n31 * n43 + n21 * n34 * n43 + n23 * n31 * n44 - n21 * n33 * n44) * detInv;\n    te[2] = (n22 * n34 * n41 - n24 * n32 * n41 + n24 * n31 * n42 - n21 * n34 * n42 - n22 * n31 * n44 + n21 * n32 * n44) * detInv;\n    te[3] = (n23 * n32 * n41 - n22 * n33 * n41 - n23 * n31 * n42 + n21 * n33 * n42 + n22 * n31 * n43 - n21 * n32 * n43) * detInv;\n    te[4] = t12 * detInv;\n    te[5] = (n13 * n34 * n41 - n14 * n33 * n41 + n14 * n31 * n43 - n11 * n34 * n43 - n13 * n31 * n44 + n11 * n33 * n44) * detInv;\n    te[6] = (n14 * n32 * n41 - n12 * n34 * n41 - n14 * n31 * n42 + n11 * n34 * n42 + n12 * n31 * n44 - n11 * n32 * n44) * detInv;\n    te[7] = (n12 * n33 * n41 - n13 * n32 * n41 + n13 * n31 * n42 - n11 * n33 * n42 - n12 * n31 * n43 + n11 * n32 * n43) * detInv;\n    te[8] = t13 * detInv;\n    te[9] = (n14 * n23 * n41 - n13 * n24 * n41 - n14 * n21 * n43 + n11 * n24 * n43 + n13 * n21 * n44 - n11 * n23 * n44) * detInv;\n    te[10] = (n12 * n24 * n41 - n14 * n22 * n41 + n14 * n21 * n42 - n11 * n24 * n42 - n12 * n21 * n44 + n11 * n22 * n44) * detInv;\n    te[11] = (n13 * n22 * n41 - n12 * n23 * n41 - n13 * n21 * n42 + n11 * n23 * n42 + n12 * n21 * n43 - n11 * n22 * n43) * detInv;\n    te[12] = t14 * detInv;\n    te[13] = (n13 * n24 * n31 - n14 * n23 * n31 + n14 * n21 * n33 - n11 * n24 * n33 - n13 * n21 * n34 + n11 * n23 * n34) * detInv;\n    te[14] = (n14 * n22 * n31 - n12 * n24 * n31 - n14 * n21 * n32 + n11 * n24 * n32 + n12 * n21 * n34 - n11 * n22 * n34) * detInv;\n    te[15] = (n12 * n23 * n31 - n13 * n22 * n31 + n13 * n21 * n32 - n11 * n23 * n32 - n12 * n21 * n33 + n11 * n22 * n33) * detInv;\n    return this;\n  }\n  scale(v) {\n    const te = this.elements;\n    const x = v.x, y = v.y, z = v.z;\n    te[0] *= x;\n    te[4] *= y;\n    te[8] *= z;\n    te[1] *= x;\n    te[5] *= y;\n    te[9] *= z;\n    te[2] *= x;\n    te[6] *= y;\n    te[10] *= z;\n    te[3] *= x;\n    te[7] *= y;\n    te[11] *= z;\n    return this;\n  }\n  getMaxScaleOnAxis() {\n    const te = this.elements;\n    const scaleXSq = te[0] * te[0] + te[1] * te[1] + te[2] * te[2];\n    const scaleYSq = te[4] * te[4] + te[5] * te[5] + te[6] * te[6];\n    const scaleZSq = te[8] * te[8] + te[9] * te[9] + te[10] * te[10];\n    return Math.sqrt(Math.max(scaleXSq, scaleYSq, scaleZSq));\n  }\n  makeTranslation(x, y, z) {\n    if (x.isVector3) {\n      this.set(\n        1,\n        0,\n        0,\n        x.x,\n        0,\n        1,\n        0,\n        x.y,\n        0,\n        0,\n        1,\n        x.z,\n        0,\n        0,\n        0,\n        1\n      );\n    } else {\n      this.set(\n        1,\n        0,\n        0,\n        x,\n        0,\n        1,\n        0,\n        y,\n        0,\n        0,\n        1,\n        z,\n        0,\n        0,\n        0,\n        1\n      );\n    }\n    return this;\n  }\n  makeRotationX(theta) {\n    const c = Math.cos(theta), s = Math.sin(theta);\n    this.set(\n      1,\n      0,\n      0,\n      0,\n      0,\n      c,\n      -s,\n      0,\n      0,\n      s,\n      c,\n      0,\n      0,\n      0,\n      0,\n      1\n    );\n    return this;\n  }\n  makeRotationY(theta) {\n    const c = Math.cos(theta), s = Math.sin(theta);\n    this.set(\n      c,\n      0,\n      s,\n      0,\n      0,\n      1,\n      0,\n      0,\n      -s,\n      0,\n      c,\n      0,\n      0,\n      0,\n      0,\n      1\n    );\n    return this;\n  }\n  makeRotationZ(theta) {\n    const c = Math.cos(theta), s = Math.sin(theta);\n    this.set(\n      c,\n      -s,\n      0,\n      0,\n      s,\n      c,\n      0,\n      0,\n      0,\n      0,\n      1,\n      0,\n      0,\n      0,\n      0,\n      1\n    );\n    return this;\n  }\n  makeRotationAxis(axis, angle) {\n    const c = Math.cos(angle);\n    const s = Math.sin(angle);\n    const t = 1 - c;\n    const x = axis.x, y = axis.y, z = axis.z;\n    const tx = t * x, ty = t * y;\n    this.set(\n      tx * x + c,\n      tx * y - s * z,\n      tx * z + s * y,\n      0,\n      tx * y + s * z,\n      ty * y + c,\n      ty * z - s * x,\n      0,\n      tx * z - s * y,\n      ty * z + s * x,\n      t * z * z + c,\n      0,\n      0,\n      0,\n      0,\n      1\n    );\n    return this;\n  }\n  makeScale(x, y, z) {\n    this.set(\n      x,\n      0,\n      0,\n      0,\n      0,\n      y,\n      0,\n      0,\n      0,\n      0,\n      z,\n      0,\n      0,\n      0,\n      0,\n      1\n    );\n    return this;\n  }\n  makeShear(xy, xz, yx, yz, zx, zy) {\n    this.set(\n      1,\n      yx,\n      zx,\n      0,\n      xy,\n      1,\n      zy,\n      0,\n      xz,\n      yz,\n      1,\n      0,\n      0,\n      0,\n      0,\n      1\n    );\n    return this;\n  }\n  compose(position, quaternion, scale) {\n    const te = this.elements;\n    const x = quaternion._x, y = quaternion._y, z = quaternion._z, w = quaternion._w;\n    const x2 = x + x, y2 = y + y, z2 = z + z;\n    const xx = x * x2, xy = x * y2, xz = x * z2;\n    const yy = y * y2, yz = y * z2, zz = z * z2;\n    const wx = w * x2, wy = w * y2, wz = w * z2;\n    const sx = scale.x, sy = scale.y, sz = scale.z;\n    te[0] = (1 - (yy + zz)) * sx;\n    te[1] = (xy + wz) * sx;\n    te[2] = (xz - wy) * sx;\n    te[3] = 0;\n    te[4] = (xy - wz) * sy;\n    te[5] = (1 - (xx + zz)) * sy;\n    te[6] = (yz + wx) * sy;\n    te[7] = 0;\n    te[8] = (xz + wy) * sz;\n    te[9] = (yz - wx) * sz;\n    te[10] = (1 - (xx + yy)) * sz;\n    te[11] = 0;\n    te[12] = position.x;\n    te[13] = position.y;\n    te[14] = position.z;\n    te[15] = 1;\n    return this;\n  }\n  decompose(position, quaternion, scale) {\n    const te = this.elements;\n    let sx = _v1$5.set(te[0], te[1], te[2]).length();\n    const sy = _v1$5.set(te[4], te[5], te[6]).length();\n    const sz = _v1$5.set(te[8], te[9], te[10]).length();\n    const det = this.determinant();\n    if (det < 0) sx = -sx;\n    position.x = te[12];\n    position.y = te[13];\n    position.z = te[14];\n    _m1$4.copy(this);\n    const invSX = 1 / sx;\n    const invSY = 1 / sy;\n    const invSZ = 1 / sz;\n    _m1$4.elements[0] *= invSX;\n    _m1$4.elements[1] *= invSX;\n    _m1$4.elements[2] *= invSX;\n    _m1$4.elements[4] *= invSY;\n    _m1$4.elements[5] *= invSY;\n    _m1$4.elements[6] *= invSY;\n    _m1$4.elements[8] *= invSZ;\n    _m1$4.elements[9] *= invSZ;\n    _m1$4.elements[10] *= invSZ;\n    quaternion.setFromRotationMatrix(_m1$4);\n    scale.x = sx;\n    scale.y = sy;\n    scale.z = sz;\n    return this;\n  }\n  makePerspective(left, right, top, bottom, near, far, coordinateSystem = WebGLCoordinateSystem) {\n    const te = this.elements;\n    const x = 2 * near / (right - left);\n    const y = 2 * near / (top - bottom);\n    const a = (right + left) / (right - left);\n    const b = (top + bottom) / (top - bottom);\n    let c, d;\n    if (coordinateSystem === WebGLCoordinateSystem) {\n      c = -(far + near) / (far - near);\n      d = -2 * far * near / (far - near);\n    } else if (coordinateSystem === WebGPUCoordinateSystem) {\n      c = -far / (far - near);\n      d = -far * near / (far - near);\n    } else {\n      throw new Error(\"THREE.Matrix4.makePerspective(): Invalid coordinate system: \" + coordinateSystem);\n    }\n    te[0] = x;\n    te[4] = 0;\n    te[8] = a;\n    te[12] = 0;\n    te[1] = 0;\n    te[5] = y;\n    te[9] = b;\n    te[13] = 0;\n    te[2] = 0;\n    te[6] = 0;\n    te[10] = c;\n    te[14] = d;\n    te[3] = 0;\n    te[7] = 0;\n    te[11] = -1;\n    te[15] = 0;\n    return this;\n  }\n  makeOrthographic(left, right, top, bottom, near, far, coordinateSystem = WebGLCoordinateSystem) {\n    const te = this.elements;\n    const w = 1 / (right - left);\n    const h = 1 / (top - bottom);\n    const p = 1 / (far - near);\n    const x = (right + left) * w;\n    const y = (top + bottom) * h;\n    let z, zInv;\n    if (coordinateSystem === WebGLCoordinateSystem) {\n      z = (far + near) * p;\n      zInv = -2 * p;\n    } else if (coordinateSystem === WebGPUCoordinateSystem) {\n      z = near * p;\n      zInv = -1 * p;\n    } else {\n      throw new Error(\"THREE.Matrix4.makeOrthographic(): Invalid coordinate system: \" + coordinateSystem);\n    }\n    te[0] = 2 * w;\n    te[4] = 0;\n    te[8] = 0;\n    te[12] = -x;\n    te[1] = 0;\n    te[5] = 2 * h;\n    te[9] = 0;\n    te[13] = -y;\n    te[2] = 0;\n    te[6] = 0;\n    te[10] = zInv;\n    te[14] = -z;\n    te[3] = 0;\n    te[7] = 0;\n    te[11] = 0;\n    te[15] = 1;\n    return this;\n  }\n  equals(matrix) {\n    const te = this.elements;\n    const me = matrix.elements;\n    for (let i = 0; i < 16; i++) {\n      if (te[i] !== me[i]) return false;\n    }\n    return true;\n  }\n  fromArray(array, offset = 0) {\n    for (let i = 0; i < 16; i++) {\n      this.elements[i] = array[i + offset];\n    }\n    return this;\n  }\n  toArray(array = [], offset = 0) {\n    const te = this.elements;\n    array[offset] = te[0];\n    array[offset + 1] = te[1];\n    array[offset + 2] = te[2];\n    array[offset + 3] = te[3];\n    array[offset + 4] = te[4];\n    array[offset + 5] = te[5];\n    array[offset + 6] = te[6];\n    array[offset + 7] = te[7];\n    array[offset + 8] = te[8];\n    array[offset + 9] = te[9];\n    array[offset + 10] = te[10];\n    array[offset + 11] = te[11];\n    array[offset + 12] = te[12];\n    array[offset + 13] = te[13];\n    array[offset + 14] = te[14];\n    array[offset + 15] = te[15];\n    return array;\n  }\n};\nvar _v1$5 = /* @__PURE__ */ new Vector3();\nvar _m1$4 = /* @__PURE__ */ new Matrix4();\nvar _zero = /* @__PURE__ */ new Vector3(0, 0, 0);\nvar _one = /* @__PURE__ */ new Vector3(1, 1, 1);\nvar _x = /* @__PURE__ */ new Vector3();\nvar _y = /* @__PURE__ */ new Vector3();\nvar _z = /* @__PURE__ */ new Vector3();\nvar _matrix$2 = /* @__PURE__ */ new Matrix4();\nvar _quaternion$3 = /* @__PURE__ */ new Quaternion();\nvar Euler = class _Euler {\n  constructor(x = 0, y = 0, z = 0, order = _Euler.DEFAULT_ORDER) {\n    this.isEuler = true;\n    this._x = x;\n    this._y = y;\n    this._z = z;\n    this._order = order;\n  }\n  get x() {\n    return this._x;\n  }\n  set x(value) {\n    this._x = value;\n    this._onChangeCallback();\n  }\n  get y() {\n    return this._y;\n  }\n  set y(value) {\n    this._y = value;\n    this._onChangeCallback();\n  }\n  get z() {\n    return this._z;\n  }\n  set z(value) {\n    this._z = value;\n    this._onChangeCallback();\n  }\n  get order() {\n    return this._order;\n  }\n  set order(value) {\n    this._order = value;\n    this._onChangeCallback();\n  }\n  set(x, y, z, order = this._order) {\n    this._x = x;\n    this._y = y;\n    this._z = z;\n    this._order = order;\n    this._onChangeCallback();\n    return this;\n  }\n  clone() {\n    return new this.constructor(this._x, this._y, this._z, this._order);\n  }\n  copy(euler) {\n    this._x = euler._x;\n    this._y = euler._y;\n    this._z = euler._z;\n    this._order = euler._order;\n    this._onChangeCallback();\n    return this;\n  }\n  setFromRotationMatrix(m, order = this._order, update = true) {\n    const te = m.elements;\n    const m11 = te[0], m12 = te[4], m13 = te[8];\n    const m21 = te[1], m22 = te[5], m23 = te[9];\n    const m31 = te[2], m32 = te[6], m33 = te[10];\n    switch (order) {\n      case \"XYZ\":\n        this._y = Math.asin(clamp(m13, -1, 1));\n        if (Math.abs(m13) < 0.9999999) {\n          this._x = Math.atan2(-m23, m33);\n          this._z = Math.atan2(-m12, m11);\n        } else {\n          this._x = Math.atan2(m32, m22);\n          this._z = 0;\n        }\n        break;\n      case \"YXZ\":\n        this._x = Math.asin(-clamp(m23, -1, 1));\n        if (Math.abs(m23) < 0.9999999) {\n          this._y = Math.atan2(m13, m33);\n          this._z = Math.atan2(m21, m22);\n        } else {\n          this._y = Math.atan2(-m31, m11);\n          this._z = 0;\n        }\n        break;\n      case \"ZXY\":\n        this._x = Math.asin(clamp(m32, -1, 1));\n        if (Math.abs(m32) < 0.9999999) {\n          this._y = Math.atan2(-m31, m33);\n          this._z = Math.atan2(-m12, m22);\n        } else {\n          this._y = 0;\n          this._z = Math.atan2(m21, m11);\n        }\n        break;\n      case \"ZYX\":\n        this._y = Math.asin(-clamp(m31, -1, 1));\n        if (Math.abs(m31) < 0.9999999) {\n          this._x = Math.atan2(m32, m33);\n          this._z = Math.atan2(m21, m11);\n        } else {\n          this._x = 0;\n          this._z = Math.atan2(-m12, m22);\n        }\n        break;\n      case \"YZX\":\n        this._z = Math.asin(clamp(m21, -1, 1));\n        if (Math.abs(m21) < 0.9999999) {\n          this._x = Math.atan2(-m23, m22);\n          this._y = Math.atan2(-m31, m11);\n        } else {\n          this._x = 0;\n          this._y = Math.atan2(m13, m33);\n        }\n        break;\n      case \"XZY\":\n        this._z = Math.asin(-clamp(m12, -1, 1));\n        if (Math.abs(m12) < 0.9999999) {\n          this._x = Math.atan2(m32, m22);\n          this._y = Math.atan2(m13, m11);\n        } else {\n          this._x = Math.atan2(-m23, m33);\n          this._y = 0;\n        }\n        break;\n      default:\n        console.warn(\"THREE.Euler: .setFromRotationMatrix() encountered an unknown order: \" + order);\n    }\n    this._order = order;\n    if (update === true) this._onChangeCallback();\n    return this;\n  }\n  setFromQuaternion(q, order, update) {\n    _matrix$2.makeRotationFromQuaternion(q);\n    return this.setFromRotationMatrix(_matrix$2, order, update);\n  }\n  setFromVector3(v, order = this._order) {\n    return this.set(v.x, v.y, v.z, order);\n  }\n  reorder(newOrder) {\n    _quaternion$3.setFromEuler(this);\n    return this.setFromQuaternion(_quaternion$3, newOrder);\n  }\n  equals(euler) {\n    return euler._x === this._x && euler._y === this._y && euler._z === this._z && euler._order === this._order;\n  }\n  fromArray(array) {\n    this._x = array[0];\n    this._y = array[1];\n    this._z = array[2];\n    if (array[3] !== void 0) this._order = array[3];\n    this._onChangeCallback();\n    return this;\n  }\n  toArray(array = [], offset = 0) {\n    array[offset] = this._x;\n    array[offset + 1] = this._y;\n    array[offset + 2] = this._z;\n    array[offset + 3] = this._order;\n    return array;\n  }\n  _onChange(callback) {\n    this._onChangeCallback = callback;\n    return this;\n  }\n  _onChangeCallback() {\n  }\n  *[Symbol.iterator]() {\n    yield this._x;\n    yield this._y;\n    yield this._z;\n    yield this._order;\n  }\n};\nEuler.DEFAULT_ORDER = \"XYZ\";\nvar Layers = class {\n  constructor() {\n    this.mask = 1 | 0;\n  }\n  set(channel) {\n    this.mask = (1 << channel | 0) >>> 0;\n  }\n  enable(channel) {\n    this.mask |= 1 << channel | 0;\n  }\n  enableAll() {\n    this.mask = 4294967295 | 0;\n  }\n  toggle(channel) {\n    this.mask ^= 1 << channel | 0;\n  }\n  disable(channel) {\n    this.mask &= ~(1 << channel | 0);\n  }\n  disableAll() {\n    this.mask = 0;\n  }\n  test(layers) {\n    return (this.mask & layers.mask) !== 0;\n  }\n  isEnabled(channel) {\n    return (this.mask & (1 << channel | 0)) !== 0;\n  }\n};\nvar _object3DId = 0;\nvar _v1$4 = /* @__PURE__ */ new Vector3();\nvar _q1 = /* @__PURE__ */ new Quaternion();\nvar _m1$3 = /* @__PURE__ */ new Matrix4();\nvar _target = /* @__PURE__ */ new Vector3();\nvar _position$3 = /* @__PURE__ */ new Vector3();\nvar _scale$2 = /* @__PURE__ */ new Vector3();\nvar _quaternion$2 = /* @__PURE__ */ new Quaternion();\nvar _xAxis = /* @__PURE__ */ new Vector3(1, 0, 0);\nvar _yAxis = /* @__PURE__ */ new Vector3(0, 1, 0);\nvar _zAxis = /* @__PURE__ */ new Vector3(0, 0, 1);\nvar _addedEvent = { type: \"added\" };\nvar _removedEvent = { type: \"removed\" };\nvar _childaddedEvent = { type: \"childadded\", child: null };\nvar _childremovedEvent = { type: \"childremoved\", child: null };\nvar Object3D = class _Object3D extends EventDispatcher {\n  constructor() {\n    super();\n    this.isObject3D = true;\n    Object.defineProperty(this, \"id\", { value: _object3DId++ });\n    this.uuid = generateUUID();\n    this.name = \"\";\n    this.type = \"Object3D\";\n    this.parent = null;\n    this.children = [];\n    this.up = _Object3D.DEFAULT_UP.clone();\n    const position = new Vector3();\n    const rotation = new Euler();\n    const quaternion = new Quaternion();\n    const scale = new Vector3(1, 1, 1);\n    function onRotationChange() {\n      quaternion.setFromEuler(rotation, false);\n    }\n    function onQuaternionChange() {\n      rotation.setFromQuaternion(quaternion, void 0, false);\n    }\n    rotation._onChange(onRotationChange);\n    quaternion._onChange(onQuaternionChange);\n    Object.defineProperties(this, {\n      position: {\n        configurable: true,\n        enumerable: true,\n        value: position\n      },\n      rotation: {\n        configurable: true,\n        enumerable: true,\n        value: rotation\n      },\n      quaternion: {\n        configurable: true,\n        enumerable: true,\n        value: quaternion\n      },\n      scale: {\n        configurable: true,\n        enumerable: true,\n        value: scale\n      },\n      modelViewMatrix: {\n        value: new Matrix4()\n      },\n      normalMatrix: {\n        value: new Matrix3()\n      }\n    });\n    this.matrix = new Matrix4();\n    this.matrixWorld = new Matrix4();\n    this.matrixAutoUpdate = _Object3D.DEFAULT_MATRIX_AUTO_UPDATE;\n    this.matrixWorldAutoUpdate = _Object3D.DEFAULT_MATRIX_WORLD_AUTO_UPDATE;\n    this.matrixWorldNeedsUpdate = false;\n    this.layers = new Layers();\n    this.visible = true;\n    this.castShadow = false;\n    this.receiveShadow = false;\n    this.frustumCulled = true;\n    this.renderOrder = 0;\n    this.animations = [];\n    this.userData = {};\n  }\n  onBeforeShadow() {\n  }\n  onAfterShadow() {\n  }\n  onBeforeRender() {\n  }\n  onAfterRender() {\n  }\n  applyMatrix4(matrix) {\n    if (this.matrixAutoUpdate) this.updateMatrix();\n    this.matrix.premultiply(matrix);\n    this.matrix.decompose(this.position, this.quaternion, this.scale);\n  }\n  applyQuaternion(q) {\n    this.quaternion.premultiply(q);\n    return this;\n  }\n  setRotationFromAxisAngle(axis, angle) {\n    this.quaternion.setFromAxisAngle(axis, angle);\n  }\n  setRotationFromEuler(euler) {\n    this.quaternion.setFromEuler(euler, true);\n  }\n  setRotationFromMatrix(m) {\n    this.quaternion.setFromRotationMatrix(m);\n  }\n  setRotationFromQuaternion(q) {\n    this.quaternion.copy(q);\n  }\n  rotateOnAxis(axis, angle) {\n    _q1.setFromAxisAngle(axis, angle);\n    this.quaternion.multiply(_q1);\n    return this;\n  }\n  rotateOnWorldAxis(axis, angle) {\n    _q1.setFromAxisAngle(axis, angle);\n    this.quaternion.premultiply(_q1);\n    return this;\n  }\n  rotateX(angle) {\n    return this.rotateOnAxis(_xAxis, angle);\n  }\n  rotateY(angle) {\n    return this.rotateOnAxis(_yAxis, angle);\n  }\n  rotateZ(angle) {\n    return this.rotateOnAxis(_zAxis, angle);\n  }\n  translateOnAxis(axis, distance) {\n    _v1$4.copy(axis).applyQuaternion(this.quaternion);\n    this.position.add(_v1$4.multiplyScalar(distance));\n    return this;\n  }\n  translateX(distance) {\n    return this.translateOnAxis(_xAxis, distance);\n  }\n  translateY(distance) {\n    return this.translateOnAxis(_yAxis, distance);\n  }\n  translateZ(distance) {\n    return this.translateOnAxis(_zAxis, distance);\n  }\n  localToWorld(vector) {\n    this.updateWorldMatrix(true, false);\n    return vector.applyMatrix4(this.matrixWorld);\n  }\n  worldToLocal(vector) {\n    this.updateWorldMatrix(true, false);\n    return vector.applyMatrix4(_m1$3.copy(this.matrixWorld).invert());\n  }\n  lookAt(x, y, z) {\n    if (x.isVector3) {\n      _target.copy(x);\n    } else {\n      _target.set(x, y, z);\n    }\n    const parent = this.parent;\n    this.updateWorldMatrix(true, false);\n    _position$3.setFromMatrixPosition(this.matrixWorld);\n    if (this.isCamera || this.isLight) {\n      _m1$3.lookAt(_position$3, _target, this.up);\n    } else {\n      _m1$3.lookAt(_target, _position$3, this.up);\n    }\n    this.quaternion.setFromRotationMatrix(_m1$3);\n    if (parent) {\n      _m1$3.extractRotation(parent.matrixWorld);\n      _q1.setFromRotationMatrix(_m1$3);\n      this.quaternion.premultiply(_q1.invert());\n    }\n  }\n  add(object) {\n    if (arguments.length > 1) {\n      for (let i = 0; i < arguments.length; i++) {\n        this.add(arguments[i]);\n      }\n      return this;\n    }\n    if (object === this) {\n      console.error(\"THREE.Object3D.add: object can't be added as a child of itself.\", object);\n      return this;\n    }\n    if (object && object.isObject3D) {\n      object.removeFromParent();\n      object.parent = this;\n      this.children.push(object);\n      object.dispatchEvent(_addedEvent);\n      _childaddedEvent.child = object;\n      this.dispatchEvent(_childaddedEvent);\n      _childaddedEvent.child = null;\n    } else {\n      console.error(\"THREE.Object3D.add: object not an instance of THREE.Object3D.\", object);\n    }\n    return this;\n  }\n  remove(object) {\n    if (arguments.length > 1) {\n      for (let i = 0; i < arguments.length; i++) {\n        this.remove(arguments[i]);\n      }\n      return this;\n    }\n    const index = this.children.indexOf(object);\n    if (index !== -1) {\n      object.parent = null;\n      this.children.splice(index, 1);\n      object.dispatchEvent(_removedEvent);\n      _childremovedEvent.child = object;\n      this.dispatchEvent(_childremovedEvent);\n      _childremovedEvent.child = null;\n    }\n    return this;\n  }\n  removeFromParent() {\n    const parent = this.parent;\n    if (parent !== null) {\n      parent.remove(this);\n    }\n    return this;\n  }\n  clear() {\n    return this.remove(...this.children);\n  }\n  attach(object) {\n    this.updateWorldMatrix(true, false);\n    _m1$3.copy(this.matrixWorld).invert();\n    if (object.parent !== null) {\n      object.parent.updateWorldMatrix(true, false);\n      _m1$3.multiply(object.parent.matrixWorld);\n    }\n    object.applyMatrix4(_m1$3);\n    object.removeFromParent();\n    object.parent = this;\n    this.children.push(object);\n    object.updateWorldMatrix(false, true);\n    object.dispatchEvent(_addedEvent);\n    _childaddedEvent.child = object;\n    this.dispatchEvent(_childaddedEvent);\n    _childaddedEvent.child = null;\n    return this;\n  }\n  getObjectById(id) {\n    return this.getObjectByProperty(\"id\", id);\n  }\n  getObjectByName(name) {\n    return this.getObjectByProperty(\"name\", name);\n  }\n  getObjectByProperty(name, value) {\n    if (this[name] === value) return this;\n    for (let i = 0, l = this.children.length; i < l; i++) {\n      const child = this.children[i];\n      const object = child.getObjectByProperty(name, value);\n      if (object !== void 0) {\n        return object;\n      }\n    }\n    return void 0;\n  }\n  getObjectsByProperty(name, value, result = []) {\n    if (this[name] === value) result.push(this);\n    const children = this.children;\n    for (let i = 0, l = children.length; i < l; i++) {\n      children[i].getObjectsByProperty(name, value, result);\n    }\n    return result;\n  }\n  getWorldPosition(target) {\n    this.updateWorldMatrix(true, false);\n    return target.setFromMatrixPosition(this.matrixWorld);\n  }\n  getWorldQuaternion(target) {\n    this.updateWorldMatrix(true, false);\n    this.matrixWorld.decompose(_position$3, target, _scale$2);\n    return target;\n  }\n  getWorldScale(target) {\n    this.updateWorldMatrix(true, false);\n    this.matrixWorld.decompose(_position$3, _quaternion$2, target);\n    return target;\n  }\n  getWorldDirection(target) {\n    this.updateWorldMatrix(true, false);\n    const e = this.matrixWorld.elements;\n    return target.set(e[8], e[9], e[10]).normalize();\n  }\n  raycast() {\n  }\n  traverse(callback) {\n    callback(this);\n    const children = this.children;\n    for (let i = 0, l = children.length; i < l; i++) {\n      children[i].traverse(callback);\n    }\n  }\n  traverseVisible(callback) {\n    if (this.visible === false) return;\n    callback(this);\n    const children = this.children;\n    for (let i = 0, l = children.length; i < l; i++) {\n      children[i].traverseVisible(callback);\n    }\n  }\n  traverseAncestors(callback) {\n    const parent = this.parent;\n    if (parent !== null) {\n      callback(parent);\n      parent.traverseAncestors(callback);\n    }\n  }\n  updateMatrix() {\n    this.matrix.compose(this.position, this.quaternion, this.scale);\n    this.matrixWorldNeedsUpdate = true;\n  }\n  updateMatrixWorld(force) {\n    if (this.matrixAutoUpdate) this.updateMatrix();\n    if (this.matrixWorldNeedsUpdate || force) {\n      if (this.matrixWorldAutoUpdate === true) {\n        if (this.parent === null) {\n          this.matrixWorld.copy(this.matrix);\n        } else {\n          this.matrixWorld.multiplyMatrices(this.parent.matrixWorld, this.matrix);\n        }\n      }\n      this.matrixWorldNeedsUpdate = false;\n      force = true;\n    }\n    const children = this.children;\n    for (let i = 0, l = children.length; i < l; i++) {\n      const child = children[i];\n      child.updateMatrixWorld(force);\n    }\n  }\n  updateWorldMatrix(updateParents, updateChildren) {\n    const parent = this.parent;\n    if (updateParents === true && parent !== null) {\n      parent.updateWorldMatrix(true, false);\n    }\n    if (this.matrixAutoUpdate) this.updateMatrix();\n    if (this.matrixWorldAutoUpdate === true) {\n      if (this.parent === null) {\n        this.matrixWorld.copy(this.matrix);\n      } else {\n        this.matrixWorld.multiplyMatrices(this.parent.matrixWorld, this.matrix);\n      }\n    }\n    if (updateChildren === true) {\n      const children = this.children;\n      for (let i = 0, l = children.length; i < l; i++) {\n        const child = children[i];\n        child.updateWorldMatrix(false, true);\n      }\n    }\n  }\n  toJSON(meta) {\n    const isRootObject = meta === void 0 || typeof meta === \"string\";\n    const output = {};\n    if (isRootObject) {\n      meta = {\n        geometries: {},\n        materials: {},\n        textures: {},\n        images: {},\n        shapes: {},\n        skeletons: {},\n        animations: {},\n        nodes: {}\n      };\n      output.metadata = {\n        version: 4.6,\n        type: \"Object\",\n        generator: \"Object3D.toJSON\"\n      };\n    }\n    const object = {};\n    object.uuid = this.uuid;\n    object.type = this.type;\n    if (this.name !== \"\") object.name = this.name;\n    if (this.castShadow === true) object.castShadow = true;\n    if (this.receiveShadow === true) object.receiveShadow = true;\n    if (this.visible === false) object.visible = false;\n    if (this.frustumCulled === false) object.frustumCulled = false;\n    if (this.renderOrder !== 0) object.renderOrder = this.renderOrder;\n    if (Object.keys(this.userData).length > 0) object.userData = this.userData;\n    object.layers = this.layers.mask;\n    object.matrix = this.matrix.toArray();\n    object.up = this.up.toArray();\n    if (this.matrixAutoUpdate === false) object.matrixAutoUpdate = false;\n    if (this.isInstancedMesh) {\n      object.type = \"InstancedMesh\";\n      object.count = this.count;\n      object.instanceMatrix = this.instanceMatrix.toJSON();\n      if (this.instanceColor !== null) object.instanceColor = this.instanceColor.toJSON();\n    }\n    if (this.isBatchedMesh) {\n      object.type = \"BatchedMesh\";\n      object.perObjectFrustumCulled = this.perObjectFrustumCulled;\n      object.sortObjects = this.sortObjects;\n      object.drawRanges = this._drawRanges;\n      object.reservedRanges = this._reservedRanges;\n      object.visibility = this._visibility;\n      object.active = this._active;\n      object.bounds = this._bounds.map((bound) => ({\n        boxInitialized: bound.boxInitialized,\n        boxMin: bound.box.min.toArray(),\n        boxMax: bound.box.max.toArray(),\n        sphereInitialized: bound.sphereInitialized,\n        sphereRadius: bound.sphere.radius,\n        sphereCenter: bound.sphere.center.toArray()\n      }));\n      object.maxInstanceCount = this._maxInstanceCount;\n      object.maxVertexCount = this._maxVertexCount;\n      object.maxIndexCount = this._maxIndexCount;\n      object.geometryInitialized = this._geometryInitialized;\n      object.geometryCount = this._geometryCount;\n      object.matricesTexture = this._matricesTexture.toJSON(meta);\n      if (this._colorsTexture !== null) object.colorsTexture = this._colorsTexture.toJSON(meta);\n      if (this.boundingSphere !== null) {\n        object.boundingSphere = {\n          center: object.boundingSphere.center.toArray(),\n          radius: object.boundingSphere.radius\n        };\n      }\n      if (this.boundingBox !== null) {\n        object.boundingBox = {\n          min: object.boundingBox.min.toArray(),\n          max: object.boundingBox.max.toArray()\n        };\n      }\n    }\n    function serialize(library, element) {\n      if (library[element.uuid] === void 0) {\n        library[element.uuid] = element.toJSON(meta);\n      }\n      return element.uuid;\n    }\n    if (this.isScene) {\n      if (this.background) {\n        if (this.background.isColor) {\n          object.background = this.background.toJSON();\n        } else if (this.background.isTexture) {\n          object.background = this.background.toJSON(meta).uuid;\n        }\n      }\n      if (this.environment && this.environment.isTexture && this.environment.isRenderTargetTexture !== true) {\n        object.environment = this.environment.toJSON(meta).uuid;\n      }\n    } else if (this.isMesh || this.isLine || this.isPoints) {\n      object.geometry = serialize(meta.geometries, this.geometry);\n      const parameters = this.geometry.parameters;\n      if (parameters !== void 0 && parameters.shapes !== void 0) {\n        const shapes = parameters.shapes;\n        if (Array.isArray(shapes)) {\n          for (let i = 0, l = shapes.length; i < l; i++) {\n            const shape = shapes[i];\n            serialize(meta.shapes, shape);\n          }\n        } else {\n          serialize(meta.shapes, shapes);\n        }\n      }\n    }\n    if (this.isSkinnedMesh) {\n      object.bindMode = this.bindMode;\n      object.bindMatrix = this.bindMatrix.toArray();\n      if (this.skeleton !== void 0) {\n        serialize(meta.skeletons, this.skeleton);\n        object.skeleton = this.skeleton.uuid;\n      }\n    }\n    if (this.material !== void 0) {\n      if (Array.isArray(this.material)) {\n        const uuids = [];\n        for (let i = 0, l = this.material.length; i < l; i++) {\n          uuids.push(serialize(meta.materials, this.material[i]));\n        }\n        object.material = uuids;\n      } else {\n        object.material = serialize(meta.materials, this.material);\n      }\n    }\n    if (this.children.length > 0) {\n      object.children = [];\n      for (let i = 0; i < this.children.length; i++) {\n        object.children.push(this.children[i].toJSON(meta).object);\n      }\n    }\n    if (this.animations.length > 0) {\n      object.animations = [];\n      for (let i = 0; i < this.animations.length; i++) {\n        const animation = this.animations[i];\n        object.animations.push(serialize(meta.animations, animation));\n      }\n    }\n    if (isRootObject) {\n      const geometries = extractFromCache(meta.geometries);\n      const materials = extractFromCache(meta.materials);\n      const textures = extractFromCache(meta.textures);\n      const images = extractFromCache(meta.images);\n      const shapes = extractFromCache(meta.shapes);\n      const skeletons = extractFromCache(meta.skeletons);\n      const animations = extractFromCache(meta.animations);\n      const nodes = extractFromCache(meta.nodes);\n      if (geometries.length > 0) output.geometries = geometries;\n      if (materials.length > 0) output.materials = materials;\n      if (textures.length > 0) output.textures = textures;\n      if (images.length > 0) output.images = images;\n      if (shapes.length > 0) output.shapes = shapes;\n      if (skeletons.length > 0) output.skeletons = skeletons;\n      if (animations.length > 0) output.animations = animations;\n      if (nodes.length > 0) output.nodes = nodes;\n    }\n    output.object = object;\n    return output;\n    function extractFromCache(cache) {\n      const values = [];\n      for (const key in cache) {\n        const data = cache[key];\n        delete data.metadata;\n        values.push(data);\n      }\n      return values;\n    }\n  }\n  clone(recursive) {\n    return new this.constructor().copy(this, recursive);\n  }\n  copy(source, recursive = true) {\n    this.name = source.name;\n    this.up.copy(source.up);\n    this.position.copy(source.position);\n    this.rotation.order = source.rotation.order;\n    this.quaternion.copy(source.quaternion);\n    this.scale.copy(source.scale);\n    this.matrix.copy(source.matrix);\n    this.matrixWorld.copy(source.matrixWorld);\n    this.matrixAutoUpdate = source.matrixAutoUpdate;\n    this.matrixWorldAutoUpdate = source.matrixWorldAutoUpdate;\n    this.matrixWorldNeedsUpdate = source.matrixWorldNeedsUpdate;\n    this.layers.mask = source.layers.mask;\n    this.visible = source.visible;\n    this.castShadow = source.castShadow;\n    this.receiveShadow = source.receiveShadow;\n    this.frustumCulled = source.frustumCulled;\n    this.renderOrder = source.renderOrder;\n    this.animations = source.animations.slice();\n    this.userData = JSON.parse(JSON.stringify(source.userData));\n    if (recursive === true) {\n      for (let i = 0; i < source.children.length; i++) {\n        const child = source.children[i];\n        this.add(child.clone());\n      }\n    }\n    return this;\n  }\n};\nObject3D.DEFAULT_UP = /* @__PURE__ */ new Vector3(0, 1, 0);\nObject3D.DEFAULT_MATRIX_AUTO_UPDATE = true;\nObject3D.DEFAULT_MATRIX_WORLD_AUTO_UPDATE = true;\nvar _v0$2 = /* @__PURE__ */ new Vector3();\nvar _v1$3 = /* @__PURE__ */ new Vector3();\nvar _v2$2 = /* @__PURE__ */ new Vector3();\nvar _v3$2 = /* @__PURE__ */ new Vector3();\nvar _vab = /* @__PURE__ */ new Vector3();\nvar _vac = /* @__PURE__ */ new Vector3();\nvar _vbc = /* @__PURE__ */ new Vector3();\nvar _vap = /* @__PURE__ */ new Vector3();\nvar _vbp = /* @__PURE__ */ new Vector3();\nvar _vcp = /* @__PURE__ */ new Vector3();\nvar _v40 = /* @__PURE__ */ new Vector4();\nvar _v41 = /* @__PURE__ */ new Vector4();\nvar _v42 = /* @__PURE__ */ new Vector4();\nvar Triangle = class _Triangle {\n  constructor(a = new Vector3(), b = new Vector3(), c = new Vector3()) {\n    this.a = a;\n    this.b = b;\n    this.c = c;\n  }\n  static getNormal(a, b, c, target) {\n    target.subVectors(c, b);\n    _v0$2.subVectors(a, b);\n    target.cross(_v0$2);\n    const targetLengthSq = target.lengthSq();\n    if (targetLengthSq > 0) {\n      return target.multiplyScalar(1 / Math.sqrt(targetLengthSq));\n    }\n    return target.set(0, 0, 0);\n  }\n  // static/instance method to calculate barycentric coordinates\n  // based on: http://www.blackpawn.com/texts/pointinpoly/default.html\n  static getBarycoord(point, a, b, c, target) {\n    _v0$2.subVectors(c, a);\n    _v1$3.subVectors(b, a);\n    _v2$2.subVectors(point, a);\n    const dot00 = _v0$2.dot(_v0$2);\n    const dot01 = _v0$2.dot(_v1$3);\n    const dot02 = _v0$2.dot(_v2$2);\n    const dot11 = _v1$3.dot(_v1$3);\n    const dot12 = _v1$3.dot(_v2$2);\n    const denom = dot00 * dot11 - dot01 * dot01;\n    if (denom === 0) {\n      target.set(0, 0, 0);\n      return null;\n    }\n    const invDenom = 1 / denom;\n    const u = (dot11 * dot02 - dot01 * dot12) * invDenom;\n    const v = (dot00 * dot12 - dot01 * dot02) * invDenom;\n    return target.set(1 - u - v, v, u);\n  }\n  static containsPoint(point, a, b, c) {\n    if (this.getBarycoord(point, a, b, c, _v3$2) === null) {\n      return false;\n    }\n    return _v3$2.x >= 0 && _v3$2.y >= 0 && _v3$2.x + _v3$2.y <= 1;\n  }\n  static getInterpolation(point, p1, p2, p3, v1, v2, v3, target) {\n    if (this.getBarycoord(point, p1, p2, p3, _v3$2) === null) {\n      target.x = 0;\n      target.y = 0;\n      if (\"z\" in target) target.z = 0;\n      if (\"w\" in target) target.w = 0;\n      return null;\n    }\n    target.setScalar(0);\n    target.addScaledVector(v1, _v3$2.x);\n    target.addScaledVector(v2, _v3$2.y);\n    target.addScaledVector(v3, _v3$2.z);\n    return target;\n  }\n  static getInterpolatedAttribute(attr, i1, i2, i3, barycoord, target) {\n    _v40.setScalar(0);\n    _v41.setScalar(0);\n    _v42.setScalar(0);\n    _v40.fromBufferAttribute(attr, i1);\n    _v41.fromBufferAttribute(attr, i2);\n    _v42.fromBufferAttribute(attr, i3);\n    target.setScalar(0);\n    target.addScaledVector(_v40, barycoord.x);\n    target.addScaledVector(_v41, barycoord.y);\n    target.addScaledVector(_v42, barycoord.z);\n    return target;\n  }\n  static isFrontFacing(a, b, c, direction) {\n    _v0$2.subVectors(c, b);\n    _v1$3.subVectors(a, b);\n    return _v0$2.cross(_v1$3).dot(direction) < 0 ? true : false;\n  }\n  set(a, b, c) {\n    this.a.copy(a);\n    this.b.copy(b);\n    this.c.copy(c);\n    return this;\n  }\n  setFromPointsAndIndices(points, i0, i1, i2) {\n    this.a.copy(points[i0]);\n    this.b.copy(points[i1]);\n    this.c.copy(points[i2]);\n    return this;\n  }\n  setFromAttributeAndIndices(attribute, i0, i1, i2) {\n    this.a.fromBufferAttribute(attribute, i0);\n    this.b.fromBufferAttribute(attribute, i1);\n    this.c.fromBufferAttribute(attribute, i2);\n    return this;\n  }\n  clone() {\n    return new this.constructor().copy(this);\n  }\n  copy(triangle) {\n    this.a.copy(triangle.a);\n    this.b.copy(triangle.b);\n    this.c.copy(triangle.c);\n    return this;\n  }\n  getArea() {\n    _v0$2.subVectors(this.c, this.b);\n    _v1$3.subVectors(this.a, this.b);\n    return _v0$2.cross(_v1$3).length() * 0.5;\n  }\n  getMidpoint(target) {\n    return target.addVectors(this.a, this.b).add(this.c).multiplyScalar(1 / 3);\n  }\n  getNormal(target) {\n    return _Triangle.getNormal(this.a, this.b, this.c, target);\n  }\n  getPlane(target) {\n    return target.setFromCoplanarPoints(this.a, this.b, this.c);\n  }\n  getBarycoord(point, target) {\n    return _Triangle.getBarycoord(point, this.a, this.b, this.c, target);\n  }\n  getInterpolation(point, v1, v2, v3, target) {\n    return _Triangle.getInterpolation(point, this.a, this.b, this.c, v1, v2, v3, target);\n  }\n  containsPoint(point) {\n    return _Triangle.containsPoint(point, this.a, this.b, this.c);\n  }\n  isFrontFacing(direction) {\n    return _Triangle.isFrontFacing(this.a, this.b, this.c, direction);\n  }\n  intersectsBox(box) {\n    return box.intersectsTriangle(this);\n  }\n  closestPointToPoint(p, target) {\n    const a = this.a, b = this.b, c = this.c;\n    let v, w;\n    _vab.subVectors(b, a);\n    _vac.subVectors(c, a);\n    _vap.subVectors(p, a);\n    const d1 = _vab.dot(_vap);\n    const d2 = _vac.dot(_vap);\n    if (d1 <= 0 && d2 <= 0) {\n      return target.copy(a);\n    }\n    _vbp.subVectors(p, b);\n    const d3 = _vab.dot(_vbp);\n    const d4 = _vac.dot(_vbp);\n    if (d3 >= 0 && d4 <= d3) {\n      return target.copy(b);\n    }\n    const vc = d1 * d4 - d3 * d2;\n    if (vc <= 0 && d1 >= 0 && d3 <= 0) {\n      v = d1 / (d1 - d3);\n      return target.copy(a).addScaledVector(_vab, v);\n    }\n    _vcp.subVectors(p, c);\n    const d5 = _vab.dot(_vcp);\n    const d6 = _vac.dot(_vcp);\n    if (d6 >= 0 && d5 <= d6) {\n      return target.copy(c);\n    }\n    const vb = d5 * d2 - d1 * d6;\n    if (vb <= 0 && d2 >= 0 && d6 <= 0) {\n      w = d2 / (d2 - d6);\n      return target.copy(a).addScaledVector(_vac, w);\n    }\n    const va = d3 * d6 - d5 * d4;\n    if (va <= 0 && d4 - d3 >= 0 && d5 - d6 >= 0) {\n      _vbc.subVectors(c, b);\n      w = (d4 - d3) / (d4 - d3 + (d5 - d6));\n      return target.copy(b).addScaledVector(_vbc, w);\n    }\n    const denom = 1 / (va + vb + vc);\n    v = vb * denom;\n    w = vc * denom;\n    return target.copy(a).addScaledVector(_vab, v).addScaledVector(_vac, w);\n  }\n  equals(triangle) {\n    return triangle.a.equals(this.a) && triangle.b.equals(this.b) && triangle.c.equals(this.c);\n  }\n};\nvar _colorKeywords = {\n  \"aliceblue\": 15792383,\n  \"antiquewhite\": 16444375,\n  \"aqua\": 65535,\n  \"aquamarine\": 8388564,\n  \"azure\": 15794175,\n  \"beige\": 16119260,\n  \"bisque\": 16770244,\n  \"black\": 0,\n  \"blanchedalmond\": 16772045,\n  \"blue\": 255,\n  \"blueviolet\": 9055202,\n  \"brown\": 10824234,\n  \"burlywood\": 14596231,\n  \"cadetblue\": 6266528,\n  \"chartreuse\": 8388352,\n  \"chocolate\": 13789470,\n  \"coral\": 16744272,\n  \"cornflowerblue\": 6591981,\n  \"cornsilk\": 16775388,\n  \"crimson\": 14423100,\n  \"cyan\": 65535,\n  \"darkblue\": 139,\n  \"darkcyan\": 35723,\n  \"darkgoldenrod\": 12092939,\n  \"darkgray\": 11119017,\n  \"darkgreen\": 25600,\n  \"darkgrey\": 11119017,\n  \"darkkhaki\": 12433259,\n  \"darkmagenta\": 9109643,\n  \"darkolivegreen\": 5597999,\n  \"darkorange\": 16747520,\n  \"darkorchid\": 10040012,\n  \"darkred\": 9109504,\n  \"darksalmon\": 15308410,\n  \"darkseagreen\": 9419919,\n  \"darkslateblue\": 4734347,\n  \"darkslategray\": 3100495,\n  \"darkslategrey\": 3100495,\n  \"darkturquoise\": 52945,\n  \"darkviolet\": 9699539,\n  \"deeppink\": 16716947,\n  \"deepskyblue\": 49151,\n  \"dimgray\": 6908265,\n  \"dimgrey\": 6908265,\n  \"dodgerblue\": 2003199,\n  \"firebrick\": 11674146,\n  \"floralwhite\": 16775920,\n  \"forestgreen\": 2263842,\n  \"fuchsia\": 16711935,\n  \"gainsboro\": 14474460,\n  \"ghostwhite\": 16316671,\n  \"gold\": 16766720,\n  \"goldenrod\": 14329120,\n  \"gray\": 8421504,\n  \"green\": 32768,\n  \"greenyellow\": 11403055,\n  \"grey\": 8421504,\n  \"honeydew\": 15794160,\n  \"hotpink\": 16738740,\n  \"indianred\": 13458524,\n  \"indigo\": 4915330,\n  \"ivory\": 16777200,\n  \"khaki\": 15787660,\n  \"lavender\": 15132410,\n  \"lavenderblush\": 16773365,\n  \"lawngreen\": 8190976,\n  \"lemonchiffon\": 16775885,\n  \"lightblue\": 11393254,\n  \"lightcoral\": 15761536,\n  \"lightcyan\": 14745599,\n  \"lightgoldenrodyellow\": 16448210,\n  \"lightgray\": 13882323,\n  \"lightgreen\": 9498256,\n  \"lightgrey\": 13882323,\n  \"lightpink\": 16758465,\n  \"lightsalmon\": 16752762,\n  \"lightseagreen\": 2142890,\n  \"lightskyblue\": 8900346,\n  \"lightslategray\": 7833753,\n  \"lightslategrey\": 7833753,\n  \"lightsteelblue\": 11584734,\n  \"lightyellow\": 16777184,\n  \"lime\": 65280,\n  \"limegreen\": 3329330,\n  \"linen\": 16445670,\n  \"magenta\": 16711935,\n  \"maroon\": 8388608,\n  \"mediumaquamarine\": 6737322,\n  \"mediumblue\": 205,\n  \"mediumorchid\": 12211667,\n  \"mediumpurple\": 9662683,\n  \"mediumseagreen\": 3978097,\n  \"mediumslateblue\": 8087790,\n  \"mediumspringgreen\": 64154,\n  \"mediumturquoise\": 4772300,\n  \"mediumvioletred\": 13047173,\n  \"midnightblue\": 1644912,\n  \"mintcream\": 16121850,\n  \"mistyrose\": 16770273,\n  \"moccasin\": 16770229,\n  \"navajowhite\": 16768685,\n  \"navy\": 128,\n  \"oldlace\": 16643558,\n  \"olive\": 8421376,\n  \"olivedrab\": 7048739,\n  \"orange\": 16753920,\n  \"orangered\": 16729344,\n  \"orchid\": 14315734,\n  \"palegoldenrod\": 15657130,\n  \"palegreen\": 10025880,\n  \"paleturquoise\": 11529966,\n  \"palevioletred\": 14381203,\n  \"papayawhip\": 16773077,\n  \"peachpuff\": 16767673,\n  \"peru\": 13468991,\n  \"pink\": 16761035,\n  \"plum\": 14524637,\n  \"powderblue\": 11591910,\n  \"purple\": 8388736,\n  \"rebeccapurple\": 6697881,\n  \"red\": 16711680,\n  \"rosybrown\": 12357519,\n  \"royalblue\": 4286945,\n  \"saddlebrown\": 9127187,\n  \"salmon\": 16416882,\n  \"sandybrown\": 16032864,\n  \"seagreen\": 3050327,\n  \"seashell\": 16774638,\n  \"sienna\": 10506797,\n  \"silver\": 12632256,\n  \"skyblue\": 8900331,\n  \"slateblue\": 6970061,\n  \"slategray\": 7372944,\n  \"slategrey\": 7372944,\n  \"snow\": 16775930,\n  \"springgreen\": 65407,\n  \"steelblue\": 4620980,\n  \"tan\": 13808780,\n  \"teal\": 32896,\n  \"thistle\": 14204888,\n  \"tomato\": 16737095,\n  \"turquoise\": 4251856,\n  \"violet\": 15631086,\n  \"wheat\": 16113331,\n  \"white\": 16777215,\n  \"whitesmoke\": 16119285,\n  \"yellow\": 16776960,\n  \"yellowgreen\": 10145074\n};\nvar _hslA = { h: 0, s: 0, l: 0 };\nvar _hslB = { h: 0, s: 0, l: 0 };\nfunction hue2rgb(p, q, t) {\n  if (t < 0) t += 1;\n  if (t > 1) t -= 1;\n  if (t < 1 / 6) return p + (q - p) * 6 * t;\n  if (t < 1 / 2) return q;\n  if (t < 2 / 3) return p + (q - p) * 6 * (2 / 3 - t);\n  return p;\n}\nvar Color = class {\n  constructor(r, g, b) {\n    this.isColor = true;\n    this.r = 1;\n    this.g = 1;\n    this.b = 1;\n    return this.set(r, g, b);\n  }\n  set(r, g, b) {\n    if (g === void 0 && b === void 0) {\n      const value = r;\n      if (value && value.isColor) {\n        this.copy(value);\n      } else if (typeof value === \"number\") {\n        this.setHex(value);\n      } else if (typeof value === \"string\") {\n        this.setStyle(value);\n      }\n    } else {\n      this.setRGB(r, g, b);\n    }\n    return this;\n  }\n  setScalar(scalar) {\n    this.r = scalar;\n    this.g = scalar;\n    this.b = scalar;\n    return this;\n  }\n  setHex(hex, colorSpace = SRGBColorSpace) {\n    hex = Math.floor(hex);\n    this.r = (hex >> 16 & 255) / 255;\n    this.g = (hex >> 8 & 255) / 255;\n    this.b = (hex & 255) / 255;\n    ColorManagement.toWorkingColorSpace(this, colorSpace);\n    return this;\n  }\n  setRGB(r, g, b, colorSpace = ColorManagement.workingColorSpace) {\n    this.r = r;\n    this.g = g;\n    this.b = b;\n    ColorManagement.toWorkingColorSpace(this, colorSpace);\n    return this;\n  }\n  setHSL(h, s, l, colorSpace = ColorManagement.workingColorSpace) {\n    h = euclideanModulo(h, 1);\n    s = clamp(s, 0, 1);\n    l = clamp(l, 0, 1);\n    if (s === 0) {\n      this.r = this.g = this.b = l;\n    } else {\n      const p = l <= 0.5 ? l * (1 + s) : l + s - l * s;\n      const q = 2 * l - p;\n      this.r = hue2rgb(q, p, h + 1 / 3);\n      this.g = hue2rgb(q, p, h);\n      this.b = hue2rgb(q, p, h - 1 / 3);\n    }\n    ColorManagement.toWorkingColorSpace(this, colorSpace);\n    return this;\n  }\n  setStyle(style, colorSpace = SRGBColorSpace) {\n    function handleAlpha(string) {\n      if (string === void 0) return;\n      if (parseFloat(string) < 1) {\n        console.warn(\"THREE.Color: Alpha component of \" + style + \" will be ignored.\");\n      }\n    }\n    let m;\n    if (m = /^(\\w+)\\(([^\\)]*)\\)/.exec(style)) {\n      let color;\n      const name = m[1];\n      const components = m[2];\n      switch (name) {\n        case \"rgb\":\n        case \"rgba\":\n          if (color = /^\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec(components)) {\n            handleAlpha(color[4]);\n            return this.setRGB(\n              Math.min(255, parseInt(color[1], 10)) / 255,\n              Math.min(255, parseInt(color[2], 10)) / 255,\n              Math.min(255, parseInt(color[3], 10)) / 255,\n              colorSpace\n            );\n          }\n          if (color = /^\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec(components)) {\n            handleAlpha(color[4]);\n            return this.setRGB(\n              Math.min(100, parseInt(color[1], 10)) / 100,\n              Math.min(100, parseInt(color[2], 10)) / 100,\n              Math.min(100, parseInt(color[3], 10)) / 100,\n              colorSpace\n            );\n          }\n          break;\n        case \"hsl\":\n        case \"hsla\":\n          if (color = /^\\s*(\\d*\\.?\\d+)\\s*,\\s*(\\d*\\.?\\d+)\\%\\s*,\\s*(\\d*\\.?\\d+)\\%\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec(components)) {\n            handleAlpha(color[4]);\n            return this.setHSL(\n              parseFloat(color[1]) / 360,\n              parseFloat(color[2]) / 100,\n              parseFloat(color[3]) / 100,\n              colorSpace\n            );\n          }\n          break;\n        default:\n          console.warn(\"THREE.Color: Unknown color model \" + style);\n      }\n    } else if (m = /^\\#([A-Fa-f\\d]+)$/.exec(style)) {\n      const hex = m[1];\n      const size = hex.length;\n      if (size === 3) {\n        return this.setRGB(\n          parseInt(hex.charAt(0), 16) / 15,\n          parseInt(hex.charAt(1), 16) / 15,\n          parseInt(hex.charAt(2), 16) / 15,\n          colorSpace\n        );\n      } else if (size === 6) {\n        return this.setHex(parseInt(hex, 16), colorSpace);\n      } else {\n        console.warn(\"THREE.Color: Invalid hex color \" + style);\n      }\n    } else if (style && style.length > 0) {\n      return this.setColorName(style, colorSpace);\n    }\n    return this;\n  }\n  setColorName(style, colorSpace = SRGBColorSpace) {\n    const hex = _colorKeywords[style.toLowerCase()];\n    if (hex !== void 0) {\n      this.setHex(hex, colorSpace);\n    } else {\n      console.warn(\"THREE.Color: Unknown color \" + style);\n    }\n    return this;\n  }\n  clone() {\n    return new this.constructor(this.r, this.g, this.b);\n  }\n  copy(color) {\n    this.r = color.r;\n    this.g = color.g;\n    this.b = color.b;\n    return this;\n  }\n  copySRGBToLinear(color) {\n    this.r = SRGBToLinear(color.r);\n    this.g = SRGBToLinear(color.g);\n    this.b = SRGBToLinear(color.b);\n    return this;\n  }\n  copyLinearToSRGB(color) {\n    this.r = LinearToSRGB(color.r);\n    this.g = LinearToSRGB(color.g);\n    this.b = LinearToSRGB(color.b);\n    return this;\n  }\n  convertSRGBToLinear() {\n    this.copySRGBToLinear(this);\n    return this;\n  }\n  convertLinearToSRGB() {\n    this.copyLinearToSRGB(this);\n    return this;\n  }\n  getHex(colorSpace = SRGBColorSpace) {\n    ColorManagement.fromWorkingColorSpace(_color.copy(this), colorSpace);\n    return Math.round(clamp(_color.r * 255, 0, 255)) * 65536 + Math.round(clamp(_color.g * 255, 0, 255)) * 256 + Math.round(clamp(_color.b * 255, 0, 255));\n  }\n  getHexString(colorSpace = SRGBColorSpace) {\n    return (\"000000\" + this.getHex(colorSpace).toString(16)).slice(-6);\n  }\n  getHSL(target, colorSpace = ColorManagement.workingColorSpace) {\n    ColorManagement.fromWorkingColorSpace(_color.copy(this), colorSpace);\n    const r = _color.r, g = _color.g, b = _color.b;\n    const max = Math.max(r, g, b);\n    const min = Math.min(r, g, b);\n    let hue, saturation;\n    const lightness = (min + max) / 2;\n    if (min === max) {\n      hue = 0;\n      saturation = 0;\n    } else {\n      const delta = max - min;\n      saturation = lightness <= 0.5 ? delta / (max + min) : delta / (2 - max - min);\n      switch (max) {\n        case r:\n          hue = (g - b) / delta + (g < b ? 6 : 0);\n          break;\n        case g:\n          hue = (b - r) / delta + 2;\n          break;\n        case b:\n          hue = (r - g) / delta + 4;\n          break;\n      }\n      hue /= 6;\n    }\n    target.h = hue;\n    target.s = saturation;\n    target.l = lightness;\n    return target;\n  }\n  getRGB(target, colorSpace = ColorManagement.workingColorSpace) {\n    ColorManagement.fromWorkingColorSpace(_color.copy(this), colorSpace);\n    target.r = _color.r;\n    target.g = _color.g;\n    target.b = _color.b;\n    return target;\n  }\n  getStyle(colorSpace = SRGBColorSpace) {\n    ColorManagement.fromWorkingColorSpace(_color.copy(this), colorSpace);\n    const r = _color.r, g = _color.g, b = _color.b;\n    if (colorSpace !== SRGBColorSpace) {\n      return `color(${colorSpace} ${r.toFixed(3)} ${g.toFixed(3)} ${b.toFixed(3)})`;\n    }\n    return `rgb(${Math.round(r * 255)},${Math.round(g * 255)},${Math.round(b * 255)})`;\n  }\n  offsetHSL(h, s, l) {\n    this.getHSL(_hslA);\n    return this.setHSL(_hslA.h + h, _hslA.s + s, _hslA.l + l);\n  }\n  add(color) {\n    this.r += color.r;\n    this.g += color.g;\n    this.b += color.b;\n    return this;\n  }\n  addColors(color1, color2) {\n    this.r = color1.r + color2.r;\n    this.g = color1.g + color2.g;\n    this.b = color1.b + color2.b;\n    return this;\n  }\n  addScalar(s) {\n    this.r += s;\n    this.g += s;\n    this.b += s;\n    return this;\n  }\n  sub(color) {\n    this.r = Math.max(0, this.r - color.r);\n    this.g = Math.max(0, this.g - color.g);\n    this.b = Math.max(0, this.b - color.b);\n    return this;\n  }\n  multiply(color) {\n    this.r *= color.r;\n    this.g *= color.g;\n    this.b *= color.b;\n    return this;\n  }\n  multiplyScalar(s) {\n    this.r *= s;\n    this.g *= s;\n    this.b *= s;\n    return this;\n  }\n  lerp(color, alpha) {\n    this.r += (color.r - this.r) * alpha;\n    this.g += (color.g - this.g) * alpha;\n    this.b += (color.b - this.b) * alpha;\n    return this;\n  }\n  lerpColors(color1, color2, alpha) {\n    this.r = color1.r + (color2.r - color1.r) * alpha;\n    this.g = color1.g + (color2.g - color1.g) * alpha;\n    this.b = color1.b + (color2.b - color1.b) * alpha;\n    return this;\n  }\n  lerpHSL(color, alpha) {\n    this.getHSL(_hslA);\n    color.getHSL(_hslB);\n    const h = lerp(_hslA.h, _hslB.h, alpha);\n    const s = lerp(_hslA.s, _hslB.s, alpha);\n    const l = lerp(_hslA.l, _hslB.l, alpha);\n    this.setHSL(h, s, l);\n    return this;\n  }\n  setFromVector3(v) {\n    this.r = v.x;\n    this.g = v.y;\n    this.b = v.z;\n    return this;\n  }\n  applyMatrix3(m) {\n    const r = this.r, g = this.g, b = this.b;\n    const e = m.elements;\n    this.r = e[0] * r + e[3] * g + e[6] * b;\n    this.g = e[1] * r + e[4] * g + e[7] * b;\n    this.b = e[2] * r + e[5] * g + e[8] * b;\n    return this;\n  }\n  equals(c) {\n    return c.r === this.r && c.g === this.g && c.b === this.b;\n  }\n  fromArray(array, offset = 0) {\n    this.r = array[offset];\n    this.g = array[offset + 1];\n    this.b = array[offset + 2];\n    return this;\n  }\n  toArray(array = [], offset = 0) {\n    array[offset] = this.r;\n    array[offset + 1] = this.g;\n    array[offset + 2] = this.b;\n    return array;\n  }\n  fromBufferAttribute(attribute, index) {\n    this.r = attribute.getX(index);\n    this.g = attribute.getY(index);\n    this.b = attribute.getZ(index);\n    return this;\n  }\n  toJSON() {\n    return this.getHex();\n  }\n  *[Symbol.iterator]() {\n    yield this.r;\n    yield this.g;\n    yield this.b;\n  }\n};\nvar _color = /* @__PURE__ */ new Color();\nColor.NAMES = _colorKeywords;\nvar _materialId = 0;\nvar Material = class extends EventDispatcher {\n  constructor() {\n    super();\n    this.isMaterial = true;\n    Object.defineProperty(this, \"id\", { value: _materialId++ });\n    this.uuid = generateUUID();\n    this.name = \"\";\n    this.type = \"Material\";\n    this.blending = NormalBlending;\n    this.side = FrontSide;\n    this.vertexColors = false;\n    this.opacity = 1;\n    this.transparent = false;\n    this.alphaHash = false;\n    this.blendSrc = SrcAlphaFactor;\n    this.blendDst = OneMinusSrcAlphaFactor;\n    this.blendEquation = AddEquation;\n    this.blendSrcAlpha = null;\n    this.blendDstAlpha = null;\n    this.blendEquationAlpha = null;\n    this.blendColor = new Color(0, 0, 0);\n    this.blendAlpha = 0;\n    this.depthFunc = LessEqualDepth;\n    this.depthTest = true;\n    this.depthWrite = true;\n    this.stencilWriteMask = 255;\n    this.stencilFunc = AlwaysStencilFunc;\n    this.stencilRef = 0;\n    this.stencilFuncMask = 255;\n    this.stencilFail = KeepStencilOp;\n    this.stencilZFail = KeepStencilOp;\n    this.stencilZPass = KeepStencilOp;\n    this.stencilWrite = false;\n    this.clippingPlanes = null;\n    this.clipIntersection = false;\n    this.clipShadows = false;\n    this.shadowSide = null;\n    this.colorWrite = true;\n    this.precision = null;\n    this.polygonOffset = false;\n    this.polygonOffsetFactor = 0;\n    this.polygonOffsetUnits = 0;\n    this.dithering = false;\n    this.alphaToCoverage = false;\n    this.premultipliedAlpha = false;\n    this.forceSinglePass = false;\n    this.visible = true;\n    this.toneMapped = true;\n    this.userData = {};\n    this.version = 0;\n    this._alphaTest = 0;\n  }\n  get alphaTest() {\n    return this._alphaTest;\n  }\n  set alphaTest(value) {\n    if (this._alphaTest > 0 !== value > 0) {\n      this.version++;\n    }\n    this._alphaTest = value;\n  }\n  // onBeforeRender and onBeforeCompile only supported in WebGLRenderer\n  onBeforeRender() {\n  }\n  onBeforeCompile() {\n  }\n  customProgramCacheKey() {\n    return this.onBeforeCompile.toString();\n  }\n  setValues(values) {\n    if (values === void 0) return;\n    for (const key in values) {\n      const newValue = values[key];\n      if (newValue === void 0) {\n        console.warn(`THREE.Material: parameter '${key}' has value of undefined.`);\n        continue;\n      }\n      const currentValue = this[key];\n      if (currentValue === void 0) {\n        console.warn(`THREE.Material: '${key}' is not a property of THREE.${this.type}.`);\n        continue;\n      }\n      if (currentValue && currentValue.isColor) {\n        currentValue.set(newValue);\n      } else if (currentValue && currentValue.isVector3 && (newValue && newValue.isVector3)) {\n        currentValue.copy(newValue);\n      } else {\n        this[key] = newValue;\n      }\n    }\n  }\n  toJSON(meta) {\n    const isRootObject = meta === void 0 || typeof meta === \"string\";\n    if (isRootObject) {\n      meta = {\n        textures: {},\n        images: {}\n      };\n    }\n    const data = {\n      metadata: {\n        version: 4.6,\n        type: \"Material\",\n        generator: \"Material.toJSON\"\n      }\n    };\n    data.uuid = this.uuid;\n    data.type = this.type;\n    if (this.name !== \"\") data.name = this.name;\n    if (this.color && this.color.isColor) data.color = this.color.getHex();\n    if (this.roughness !== void 0) data.roughness = this.roughness;\n    if (this.metalness !== void 0) data.metalness = this.metalness;\n    if (this.sheen !== void 0) data.sheen = this.sheen;\n    if (this.sheenColor && this.sheenColor.isColor) data.sheenColor = this.sheenColor.getHex();\n    if (this.sheenRoughness !== void 0) data.sheenRoughness = this.sheenRoughness;\n    if (this.emissive && this.emissive.isColor) data.emissive = this.emissive.getHex();\n    if (this.emissiveIntensity !== void 0 && this.emissiveIntensity !== 1) data.emissiveIntensity = this.emissiveIntensity;\n    if (this.specular && this.specular.isColor) data.specular = this.specular.getHex();\n    if (this.specularIntensity !== void 0) data.specularIntensity = this.specularIntensity;\n    if (this.specularColor && this.specularColor.isColor) data.specularColor = this.specularColor.getHex();\n    if (this.shininess !== void 0) data.shininess = this.shininess;\n    if (this.clearcoat !== void 0) data.clearcoat = this.clearcoat;\n    if (this.clearcoatRoughness !== void 0) data.clearcoatRoughness = this.clearcoatRoughness;\n    if (this.clearcoatMap && this.clearcoatMap.isTexture) {\n      data.clearcoatMap = this.clearcoatMap.toJSON(meta).uuid;\n    }\n    if (this.clearcoatRoughnessMap && this.clearcoatRoughnessMap.isTexture) {\n      data.clearcoatRoughnessMap = this.clearcoatRoughnessMap.toJSON(meta).uuid;\n    }\n    if (this.clearcoatNormalMap && this.clearcoatNormalMap.isTexture) {\n      data.clearcoatNormalMap = this.clearcoatNormalMap.toJSON(meta).uuid;\n      data.clearcoatNormalScale = this.clearcoatNormalScale.toArray();\n    }\n    if (this.dispersion !== void 0) data.dispersion = this.dispersion;\n    if (this.iridescence !== void 0) data.iridescence = this.iridescence;\n    if (this.iridescenceIOR !== void 0) data.iridescenceIOR = this.iridescenceIOR;\n    if (this.iridescenceThicknessRange !== void 0) data.iridescenceThicknessRange = this.iridescenceThicknessRange;\n    if (this.iridescenceMap && this.iridescenceMap.isTexture) {\n      data.iridescenceMap = this.iridescenceMap.toJSON(meta).uuid;\n    }\n    if (this.iridescenceThicknessMap && this.iridescenceThicknessMap.isTexture) {\n      data.iridescenceThicknessMap = this.iridescenceThicknessMap.toJSON(meta).uuid;\n    }\n    if (this.anisotropy !== void 0) data.anisotropy = this.anisotropy;\n    if (this.anisotropyRotation !== void 0) data.anisotropyRotation = this.anisotropyRotation;\n    if (this.anisotropyMap && this.anisotropyMap.isTexture) {\n      data.anisotropyMap = this.anisotropyMap.toJSON(meta).uuid;\n    }\n    if (this.map && this.map.isTexture) data.map = this.map.toJSON(meta).uuid;\n    if (this.matcap && this.matcap.isTexture) data.matcap = this.matcap.toJSON(meta).uuid;\n    if (this.alphaMap && this.alphaMap.isTexture) data.alphaMap = this.alphaMap.toJSON(meta).uuid;\n    if (this.lightMap && this.lightMap.isTexture) {\n      data.lightMap = this.lightMap.toJSON(meta).uuid;\n      data.lightMapIntensity = this.lightMapIntensity;\n    }\n    if (this.aoMap && this.aoMap.isTexture) {\n      data.aoMap = this.aoMap.toJSON(meta).uuid;\n      data.aoMapIntensity = this.aoMapIntensity;\n    }\n    if (this.bumpMap && this.bumpMap.isTexture) {\n      data.bumpMap = this.bumpMap.toJSON(meta).uuid;\n      data.bumpScale = this.bumpScale;\n    }\n    if (this.normalMap && this.normalMap.isTexture) {\n      data.normalMap = this.normalMap.toJSON(meta).uuid;\n      data.normalMapType = this.normalMapType;\n      data.normalScale = this.normalScale.toArray();\n    }\n    if (this.displacementMap && this.displacementMap.isTexture) {\n      data.displacementMap = this.displacementMap.toJSON(meta).uuid;\n      data.displacementScale = this.displacementScale;\n      data.displacementBias = this.displacementBias;\n    }\n    if (this.roughnessMap && this.roughnessMap.isTexture) data.roughnessMap = this.roughnessMap.toJSON(meta).uuid;\n    if (this.metalnessMap && this.metalnessMap.isTexture) data.metalnessMap = this.metalnessMap.toJSON(meta).uuid;\n    if (this.emissiveMap && this.emissiveMap.isTexture) data.emissiveMap = this.emissiveMap.toJSON(meta).uuid;\n    if (this.specularMap && this.specularMap.isTexture) data.specularMap = this.specularMap.toJSON(meta).uuid;\n    if (this.specularIntensityMap && this.specularIntensityMap.isTexture) data.specularIntensityMap = this.specularIntensityMap.toJSON(meta).uuid;\n    if (this.specularColorMap && this.specularColorMap.isTexture) data.specularColorMap = this.specularColorMap.toJSON(meta).uuid;\n    if (this.envMap && this.envMap.isTexture) {\n      data.envMap = this.envMap.toJSON(meta).uuid;\n      if (this.combine !== void 0) data.combine = this.combine;\n    }\n    if (this.envMapRotation !== void 0) data.envMapRotation = this.envMapRotation.toArray();\n    if (this.envMapIntensity !== void 0) data.envMapIntensity = this.envMapIntensity;\n    if (this.reflectivity !== void 0) data.reflectivity = this.reflectivity;\n    if (this.refractionRatio !== void 0) data.refractionRatio = this.refractionRatio;\n    if (this.gradientMap && this.gradientMap.isTexture) {\n      data.gradientMap = this.gradientMap.toJSON(meta).uuid;\n    }\n    if (this.transmission !== void 0) data.transmission = this.transmission;\n    if (this.transmissionMap && this.transmissionMap.isTexture) data.transmissionMap = this.transmissionMap.toJSON(meta).uuid;\n    if (this.thickness !== void 0) data.thickness = this.thickness;\n    if (this.thicknessMap && this.thicknessMap.isTexture) data.thicknessMap = this.thicknessMap.toJSON(meta).uuid;\n    if (this.attenuationDistance !== void 0 && this.attenuationDistance !== Infinity) data.attenuationDistance = this.attenuationDistance;\n    if (this.attenuationColor !== void 0) data.attenuationColor = this.attenuationColor.getHex();\n    if (this.size !== void 0) data.size = this.size;\n    if (this.shadowSide !== null) data.shadowSide = this.shadowSide;\n    if (this.sizeAttenuation !== void 0) data.sizeAttenuation = this.sizeAttenuation;\n    if (this.blending !== NormalBlending) data.blending = this.blending;\n    if (this.side !== FrontSide) data.side = this.side;\n    if (this.vertexColors === true) data.vertexColors = true;\n    if (this.opacity < 1) data.opacity = this.opacity;\n    if (this.transparent === true) data.transparent = true;\n    if (this.blendSrc !== SrcAlphaFactor) data.blendSrc = this.blendSrc;\n    if (this.blendDst !== OneMinusSrcAlphaFactor) data.blendDst = this.blendDst;\n    if (this.blendEquation !== AddEquation) data.blendEquation = this.blendEquation;\n    if (this.blendSrcAlpha !== null) data.blendSrcAlpha = this.blendSrcAlpha;\n    if (this.blendDstAlpha !== null) data.blendDstAlpha = this.blendDstAlpha;\n    if (this.blendEquationAlpha !== null) data.blendEquationAlpha = this.blendEquationAlpha;\n    if (this.blendColor && this.blendColor.isColor) data.blendColor = this.blendColor.getHex();\n    if (this.blendAlpha !== 0) data.blendAlpha = this.blendAlpha;\n    if (this.depthFunc !== LessEqualDepth) data.depthFunc = this.depthFunc;\n    if (this.depthTest === false) data.depthTest = this.depthTest;\n    if (this.depthWrite === false) data.depthWrite = this.depthWrite;\n    if (this.colorWrite === false) data.colorWrite = this.colorWrite;\n    if (this.stencilWriteMask !== 255) data.stencilWriteMask = this.stencilWriteMask;\n    if (this.stencilFunc !== AlwaysStencilFunc) data.stencilFunc = this.stencilFunc;\n    if (this.stencilRef !== 0) data.stencilRef = this.stencilRef;\n    if (this.stencilFuncMask !== 255) data.stencilFuncMask = this.stencilFuncMask;\n    if (this.stencilFail !== KeepStencilOp) data.stencilFail = this.stencilFail;\n    if (this.stencilZFail !== KeepStencilOp) data.stencilZFail = this.stencilZFail;\n    if (this.stencilZPass !== KeepStencilOp) data.stencilZPass = this.stencilZPass;\n    if (this.stencilWrite === true) data.stencilWrite = this.stencilWrite;\n    if (this.rotation !== void 0 && this.rotation !== 0) data.rotation = this.rotation;\n    if (this.polygonOffset === true) data.polygonOffset = true;\n    if (this.polygonOffsetFactor !== 0) data.polygonOffsetFactor = this.polygonOffsetFactor;\n    if (this.polygonOffsetUnits !== 0) data.polygonOffsetUnits = this.polygonOffsetUnits;\n    if (this.linewidth !== void 0 && this.linewidth !== 1) data.linewidth = this.linewidth;\n    if (this.dashSize !== void 0) data.dashSize = this.dashSize;\n    if (this.gapSize !== void 0) data.gapSize = this.gapSize;\n    if (this.scale !== void 0) data.scale = this.scale;\n    if (this.dithering === true) data.dithering = true;\n    if (this.alphaTest > 0) data.alphaTest = this.alphaTest;\n    if (this.alphaHash === true) data.alphaHash = true;\n    if (this.alphaToCoverage === true) data.alphaToCoverage = true;\n    if (this.premultipliedAlpha === true) data.premultipliedAlpha = true;\n    if (this.forceSinglePass === true) data.forceSinglePass = true;\n    if (this.wireframe === true) data.wireframe = true;\n    if (this.wireframeLinewidth > 1) data.wireframeLinewidth = this.wireframeLinewidth;\n    if (this.wireframeLinecap !== \"round\") data.wireframeLinecap = this.wireframeLinecap;\n    if (this.wireframeLinejoin !== \"round\") data.wireframeLinejoin = this.wireframeLinejoin;\n    if (this.flatShading === true) data.flatShading = true;\n    if (this.visible === false) data.visible = false;\n    if (this.toneMapped === false) data.toneMapped = false;\n    if (this.fog === false) data.fog = false;\n    if (Object.keys(this.userData).length > 0) data.userData = this.userData;\n    function extractFromCache(cache) {\n      const values = [];\n      for (const key in cache) {\n        const data2 = cache[key];\n        delete data2.metadata;\n        values.push(data2);\n      }\n      return values;\n    }\n    if (isRootObject) {\n      const textures = extractFromCache(meta.textures);\n      const images = extractFromCache(meta.images);\n      if (textures.length > 0) data.textures = textures;\n      if (images.length > 0) data.images = images;\n    }\n    return data;\n  }\n  clone() {\n    return new this.constructor().copy(this);\n  }\n  copy(source) {\n    this.name = source.name;\n    this.blending = source.blending;\n    this.side = source.side;\n    this.vertexColors = source.vertexColors;\n    this.opacity = source.opacity;\n    this.transparent = source.transparent;\n    this.blendSrc = source.blendSrc;\n    this.blendDst = source.blendDst;\n    this.blendEquation = source.blendEquation;\n    this.blendSrcAlpha = source.blendSrcAlpha;\n    this.blendDstAlpha = source.blendDstAlpha;\n    this.blendEquationAlpha = source.blendEquationAlpha;\n    this.blendColor.copy(source.blendColor);\n    this.blendAlpha = source.blendAlpha;\n    this.depthFunc = source.depthFunc;\n    this.depthTest = source.depthTest;\n    this.depthWrite = source.depthWrite;\n    this.stencilWriteMask = source.stencilWriteMask;\n    this.stencilFunc = source.stencilFunc;\n    this.stencilRef = source.stencilRef;\n    this.stencilFuncMask = source.stencilFuncMask;\n    this.stencilFail = source.stencilFail;\n    this.stencilZFail = source.stencilZFail;\n    this.stencilZPass = source.stencilZPass;\n    this.stencilWrite = source.stencilWrite;\n    const srcPlanes = source.clippingPlanes;\n    let dstPlanes = null;\n    if (srcPlanes !== null) {\n      const n = srcPlanes.length;\n      dstPlanes = new Array(n);\n      for (let i = 0; i !== n; ++i) {\n        dstPlanes[i] = srcPlanes[i].clone();\n      }\n    }\n    this.clippingPlanes = dstPlanes;\n    this.clipIntersection = source.clipIntersection;\n    this.clipShadows = source.clipShadows;\n    this.shadowSide = source.shadowSide;\n    this.colorWrite = source.colorWrite;\n    this.precision = source.precision;\n    this.polygonOffset = source.polygonOffset;\n    this.polygonOffsetFactor = source.polygonOffsetFactor;\n    this.polygonOffsetUnits = source.polygonOffsetUnits;\n    this.dithering = source.dithering;\n    this.alphaTest = source.alphaTest;\n    this.alphaHash = source.alphaHash;\n    this.alphaToCoverage = source.alphaToCoverage;\n    this.premultipliedAlpha = source.premultipliedAlpha;\n    this.forceSinglePass = source.forceSinglePass;\n    this.visible = source.visible;\n    this.toneMapped = source.toneMapped;\n    this.userData = JSON.parse(JSON.stringify(source.userData));\n    return this;\n  }\n  dispose() {\n    this.dispatchEvent({ type: \"dispose\" });\n  }\n  set needsUpdate(value) {\n    if (value === true) this.version++;\n  }\n  onBuild() {\n    console.warn(\"Material: onBuild() has been removed.\");\n  }\n};\nvar MeshBasicMaterial = class extends Material {\n  constructor(parameters) {\n    super();\n    this.isMeshBasicMaterial = true;\n    this.type = \"MeshBasicMaterial\";\n    this.color = new Color(16777215);\n    this.map = null;\n    this.lightMap = null;\n    this.lightMapIntensity = 1;\n    this.aoMap = null;\n    this.aoMapIntensity = 1;\n    this.specularMap = null;\n    this.alphaMap = null;\n    this.envMap = null;\n    this.envMapRotation = new Euler();\n    this.combine = MultiplyOperation;\n    this.reflectivity = 1;\n    this.refractionRatio = 0.98;\n    this.wireframe = false;\n    this.wireframeLinewidth = 1;\n    this.wireframeLinecap = \"round\";\n    this.wireframeLinejoin = \"round\";\n    this.fog = true;\n    this.setValues(parameters);\n  }\n  copy(source) {\n    super.copy(source);\n    this.color.copy(source.color);\n    this.map = source.map;\n    this.lightMap = source.lightMap;\n    this.lightMapIntensity = source.lightMapIntensity;\n    this.aoMap = source.aoMap;\n    this.aoMapIntensity = source.aoMapIntensity;\n    this.specularMap = source.specularMap;\n    this.alphaMap = source.alphaMap;\n    this.envMap = source.envMap;\n    this.envMapRotation.copy(source.envMapRotation);\n    this.combine = source.combine;\n    this.reflectivity = source.reflectivity;\n    this.refractionRatio = source.refractionRatio;\n    this.wireframe = source.wireframe;\n    this.wireframeLinewidth = source.wireframeLinewidth;\n    this.wireframeLinecap = source.wireframeLinecap;\n    this.wireframeLinejoin = source.wireframeLinejoin;\n    this.fog = source.fog;\n    return this;\n  }\n};\nvar _tables = /* @__PURE__ */ _generateTables();\nfunction _generateTables() {\n  const buffer = new ArrayBuffer(4);\n  const floatView = new Float32Array(buffer);\n  const uint32View = new Uint32Array(buffer);\n  const baseTable = new Uint32Array(512);\n  const shiftTable = new Uint32Array(512);\n  for (let i = 0; i < 256; ++i) {\n    const e = i - 127;\n    if (e < -27) {\n      baseTable[i] = 0;\n      baseTable[i | 256] = 32768;\n      shiftTable[i] = 24;\n      shiftTable[i | 256] = 24;\n    } else if (e < -14) {\n      baseTable[i] = 1024 >> -e - 14;\n      baseTable[i | 256] = 1024 >> -e - 14 | 32768;\n      shiftTable[i] = -e - 1;\n      shiftTable[i | 256] = -e - 1;\n    } else if (e <= 15) {\n      baseTable[i] = e + 15 << 10;\n      baseTable[i | 256] = e + 15 << 10 | 32768;\n      shiftTable[i] = 13;\n      shiftTable[i | 256] = 13;\n    } else if (e < 128) {\n      baseTable[i] = 31744;\n      baseTable[i | 256] = 64512;\n      shiftTable[i] = 24;\n      shiftTable[i | 256] = 24;\n    } else {\n      baseTable[i] = 31744;\n      baseTable[i | 256] = 64512;\n      shiftTable[i] = 13;\n      shiftTable[i | 256] = 13;\n    }\n  }\n  const mantissaTable = new Uint32Array(2048);\n  const exponentTable = new Uint32Array(64);\n  const offsetTable = new Uint32Array(64);\n  for (let i = 1; i < 1024; ++i) {\n    let m = i << 13;\n    let e = 0;\n    while ((m & 8388608) === 0) {\n      m <<= 1;\n      e -= 8388608;\n    }\n    m &= ~8388608;\n    e += 947912704;\n    mantissaTable[i] = m | e;\n  }\n  for (let i = 1024; i < 2048; ++i) {\n    mantissaTable[i] = 939524096 + (i - 1024 << 13);\n  }\n  for (let i = 1; i < 31; ++i) {\n    exponentTable[i] = i << 23;\n  }\n  exponentTable[31] = 1199570944;\n  exponentTable[32] = 2147483648;\n  for (let i = 33; i < 63; ++i) {\n    exponentTable[i] = 2147483648 + (i - 32 << 23);\n  }\n  exponentTable[63] = 3347054592;\n  for (let i = 1; i < 64; ++i) {\n    if (i !== 32) {\n      offsetTable[i] = 1024;\n    }\n  }\n  return {\n    floatView,\n    uint32View,\n    baseTable,\n    shiftTable,\n    mantissaTable,\n    exponentTable,\n    offsetTable\n  };\n}\nfunction toHalfFloat(val) {\n  if (Math.abs(val) > 65504) console.warn(\"THREE.DataUtils.toHalfFloat(): Value out of range.\");\n  val = clamp(val, -65504, 65504);\n  _tables.floatView[0] = val;\n  const f = _tables.uint32View[0];\n  const e = f >> 23 & 511;\n  return _tables.baseTable[e] + ((f & 8388607) >> _tables.shiftTable[e]);\n}\nfunction fromHalfFloat(val) {\n  const m = val >> 10;\n  _tables.uint32View[0] = _tables.mantissaTable[_tables.offsetTable[m] + (val & 1023)] + _tables.exponentTable[m];\n  return _tables.floatView[0];\n}\nvar DataUtils = {\n  toHalfFloat,\n  fromHalfFloat\n};\nvar _vector$9 = /* @__PURE__ */ new Vector3();\nvar _vector2$1 = /* @__PURE__ */ new Vector2();\nvar BufferAttribute = class {\n  constructor(array, itemSize, normalized = false) {\n    if (Array.isArray(array)) {\n      throw new TypeError(\"THREE.BufferAttribute: array should be a Typed Array.\");\n    }\n    this.isBufferAttribute = true;\n    this.name = \"\";\n    this.array = array;\n    this.itemSize = itemSize;\n    this.count = array !== void 0 ? array.length / itemSize : 0;\n    this.normalized = normalized;\n    this.usage = StaticDrawUsage;\n    this.updateRanges = [];\n    this.gpuType = FloatType;\n    this.version = 0;\n  }\n  onUploadCallback() {\n  }\n  set needsUpdate(value) {\n    if (value === true) this.version++;\n  }\n  setUsage(value) {\n    this.usage = value;\n    return this;\n  }\n  addUpdateRange(start, count) {\n    this.updateRanges.push({ start, count });\n  }\n  clearUpdateRanges() {\n    this.updateRanges.length = 0;\n  }\n  copy(source) {\n    this.name = source.name;\n    this.array = new source.array.constructor(source.array);\n    this.itemSize = source.itemSize;\n    this.count = source.count;\n    this.normalized = source.normalized;\n    this.usage = source.usage;\n    this.gpuType = source.gpuType;\n    return this;\n  }\n  copyAt(index1, attribute, index2) {\n    index1 *= this.itemSize;\n    index2 *= attribute.itemSize;\n    for (let i = 0, l = this.itemSize; i < l; i++) {\n      this.array[index1 + i] = attribute.array[index2 + i];\n    }\n    return this;\n  }\n  copyArray(array) {\n    this.array.set(array);\n    return this;\n  }\n  applyMatrix3(m) {\n    if (this.itemSize === 2) {\n      for (let i = 0, l = this.count; i < l; i++) {\n        _vector2$1.fromBufferAttribute(this, i);\n        _vector2$1.applyMatrix3(m);\n        this.setXY(i, _vector2$1.x, _vector2$1.y);\n      }\n    } else if (this.itemSize === 3) {\n      for (let i = 0, l = this.count; i < l; i++) {\n        _vector$9.fromBufferAttribute(this, i);\n        _vector$9.applyMatrix3(m);\n        this.setXYZ(i, _vector$9.x, _vector$9.y, _vector$9.z);\n      }\n    }\n    return this;\n  }\n  applyMatrix4(m) {\n    for (let i = 0, l = this.count; i < l; i++) {\n      _vector$9.fromBufferAttribute(this, i);\n      _vector$9.applyMatrix4(m);\n      this.setXYZ(i, _vector$9.x, _vector$9.y, _vector$9.z);\n    }\n    return this;\n  }\n  applyNormalMatrix(m) {\n    for (let i = 0, l = this.count; i < l; i++) {\n      _vector$9.fromBufferAttribute(this, i);\n      _vector$9.applyNormalMatrix(m);\n      this.setXYZ(i, _vector$9.x, _vector$9.y, _vector$9.z);\n    }\n    return this;\n  }\n  transformDirection(m) {\n    for (let i = 0, l = this.count; i < l; i++) {\n      _vector$9.fromBufferAttribute(this, i);\n      _vector$9.transformDirection(m);\n      this.setXYZ(i, _vector$9.x, _vector$9.y, _vector$9.z);\n    }\n    return this;\n  }\n  set(value, offset = 0) {\n    this.array.set(value, offset);\n    return this;\n  }\n  getComponent(index, component) {\n    let value = this.array[index * this.itemSize + component];\n    if (this.normalized) value = denormalize(value, this.array);\n    return value;\n  }\n  setComponent(index, component, value) {\n    if (this.normalized) value = normalize(value, this.array);\n    this.array[index * this.itemSize + component] = value;\n    return this;\n  }\n  getX(index) {\n    let x = this.array[index * this.itemSize];\n    if (this.normalized) x = denormalize(x, this.array);\n    return x;\n  }\n  setX(index, x) {\n    if (this.normalized) x = normalize(x, this.array);\n    this.array[index * this.itemSize] = x;\n    return this;\n  }\n  getY(index) {\n    let y = this.array[index * this.itemSize + 1];\n    if (this.normalized) y = denormalize(y, this.array);\n    return y;\n  }\n  setY(index, y) {\n    if (this.normalized) y = normalize(y, this.array);\n    this.array[index * this.itemSize + 1] = y;\n    return this;\n  }\n  getZ(index) {\n    let z = this.array[index * this.itemSize + 2];\n    if (this.normalized) z = denormalize(z, this.array);\n    return z;\n  }\n  setZ(index, z) {\n    if (this.normalized) z = normalize(z, this.array);\n    this.array[index * this.itemSize + 2] = z;\n    return this;\n  }\n  getW(index) {\n    let w = this.array[index * this.itemSize + 3];\n    if (this.normalized) w = denormalize(w, this.array);\n    return w;\n  }\n  setW(index, w) {\n    if (this.normalized) w = normalize(w, this.array);\n    this.array[index * this.itemSize + 3] = w;\n    return this;\n  }\n  setXY(index, x, y) {\n    index *= this.itemSize;\n    if (this.normalized) {\n      x = normalize(x, this.array);\n      y = normalize(y, this.array);\n    }\n    this.array[index + 0] = x;\n    this.array[index + 1] = y;\n    return this;\n  }\n  setXYZ(index, x, y, z) {\n    index *= this.itemSize;\n    if (this.normalized) {\n      x = normalize(x, this.array);\n      y = normalize(y, this.array);\n      z = normalize(z, this.array);\n    }\n    this.array[index + 0] = x;\n    this.array[index + 1] = y;\n    this.array[index + 2] = z;\n    return this;\n  }\n  setXYZW(index, x, y, z, w) {\n    index *= this.itemSize;\n    if (this.normalized) {\n      x = normalize(x, this.array);\n      y = normalize(y, this.array);\n      z = normalize(z, this.array);\n      w = normalize(w, this.array);\n    }\n    this.array[index + 0] = x;\n    this.array[index + 1] = y;\n    this.array[index + 2] = z;\n    this.array[index + 3] = w;\n    return this;\n  }\n  onUpload(callback) {\n    this.onUploadCallback = callback;\n    return this;\n  }\n  clone() {\n    return new this.constructor(this.array, this.itemSize).copy(this);\n  }\n  toJSON() {\n    const data = {\n      itemSize: this.itemSize,\n      type: this.array.constructor.name,\n      array: Array.from(this.array),\n      normalized: this.normalized\n    };\n    if (this.name !== \"\") data.name = this.name;\n    if (this.usage !== StaticDrawUsage) data.usage = this.usage;\n    return data;\n  }\n};\nvar Int8BufferAttribute = class extends BufferAttribute {\n  constructor(array, itemSize, normalized) {\n    super(new Int8Array(array), itemSize, normalized);\n  }\n};\nvar Uint8BufferAttribute = class extends BufferAttribute {\n  constructor(array, itemSize, normalized) {\n    super(new Uint8Array(array), itemSize, normalized);\n  }\n};\nvar Uint8ClampedBufferAttribute = class extends BufferAttribute {\n  constructor(array, itemSize, normalized) {\n    super(new Uint8ClampedArray(array), itemSize, normalized);\n  }\n};\nvar Int16BufferAttribute = class extends BufferAttribute {\n  constructor(array, itemSize, normalized) {\n    super(new Int16Array(array), itemSize, normalized);\n  }\n};\nvar Uint16BufferAttribute = class extends BufferAttribute {\n  constructor(array, itemSize, normalized) {\n    super(new Uint16Array(array), itemSize, normalized);\n  }\n};\nvar Int32BufferAttribute = class extends BufferAttribute {\n  constructor(array, itemSize, normalized) {\n    super(new Int32Array(array), itemSize, normalized);\n  }\n};\nvar Uint32BufferAttribute = class extends BufferAttribute {\n  constructor(array, itemSize, normalized) {\n    super(new Uint32Array(array), itemSize, normalized);\n  }\n};\nvar Float16BufferAttribute = class extends BufferAttribute {\n  constructor(array, itemSize, normalized) {\n    super(new Uint16Array(array), itemSize, normalized);\n    this.isFloat16BufferAttribute = true;\n  }\n  getX(index) {\n    let x = fromHalfFloat(this.array[index * this.itemSize]);\n    if (this.normalized) x = denormalize(x, this.array);\n    return x;\n  }\n  setX(index, x) {\n    if (this.normalized) x = normalize(x, this.array);\n    this.array[index * this.itemSize] = toHalfFloat(x);\n    return this;\n  }\n  getY(index) {\n    let y = fromHalfFloat(this.array[index * this.itemSize + 1]);\n    if (this.normalized) y = denormalize(y, this.array);\n    return y;\n  }\n  setY(index, y) {\n    if (this.normalized) y = normalize(y, this.array);\n    this.array[index * this.itemSize + 1] = toHalfFloat(y);\n    return this;\n  }\n  getZ(index) {\n    let z = fromHalfFloat(this.array[index * this.itemSize + 2]);\n    if (this.normalized) z = denormalize(z, this.array);\n    return z;\n  }\n  setZ(index, z) {\n    if (this.normalized) z = normalize(z, this.array);\n    this.array[index * this.itemSize + 2] = toHalfFloat(z);\n    return this;\n  }\n  getW(index) {\n    let w = fromHalfFloat(this.array[index * this.itemSize + 3]);\n    if (this.normalized) w = denormalize(w, this.array);\n    return w;\n  }\n  setW(index, w) {\n    if (this.normalized) w = normalize(w, this.array);\n    this.array[index * this.itemSize + 3] = toHalfFloat(w);\n    return this;\n  }\n  setXY(index, x, y) {\n    index *= this.itemSize;\n    if (this.normalized) {\n      x = normalize(x, this.array);\n      y = normalize(y, this.array);\n    }\n    this.array[index + 0] = toHalfFloat(x);\n    this.array[index + 1] = toHalfFloat(y);\n    return this;\n  }\n  setXYZ(index, x, y, z) {\n    index *= this.itemSize;\n    if (this.normalized) {\n      x = normalize(x, this.array);\n      y = normalize(y, this.array);\n      z = normalize(z, this.array);\n    }\n    this.array[index + 0] = toHalfFloat(x);\n    this.array[index + 1] = toHalfFloat(y);\n    this.array[index + 2] = toHalfFloat(z);\n    return this;\n  }\n  setXYZW(index, x, y, z, w) {\n    index *= this.itemSize;\n    if (this.normalized) {\n      x = normalize(x, this.array);\n      y = normalize(y, this.array);\n      z = normalize(z, this.array);\n      w = normalize(w, this.array);\n    }\n    this.array[index + 0] = toHalfFloat(x);\n    this.array[index + 1] = toHalfFloat(y);\n    this.array[index + 2] = toHalfFloat(z);\n    this.array[index + 3] = toHalfFloat(w);\n    return this;\n  }\n};\nvar Float32BufferAttribute = class extends BufferAttribute {\n  constructor(array, itemSize, normalized) {\n    super(new Float32Array(array), itemSize, normalized);\n  }\n};\nvar _id$2 = 0;\nvar _m1$2 = /* @__PURE__ */ new Matrix4();\nvar _obj = /* @__PURE__ */ new Object3D();\nvar _offset = /* @__PURE__ */ new Vector3();\nvar _box$2 = /* @__PURE__ */ new Box3();\nvar _boxMorphTargets = /* @__PURE__ */ new Box3();\nvar _vector$8 = /* @__PURE__ */ new Vector3();\nvar BufferGeometry = class _BufferGeometry extends EventDispatcher {\n  constructor() {\n    super();\n    this.isBufferGeometry = true;\n    Object.defineProperty(this, \"id\", { value: _id$2++ });\n    this.uuid = generateUUID();\n    this.name = \"\";\n    this.type = \"BufferGeometry\";\n    this.index = null;\n    this.attributes = {};\n    this.morphAttributes = {};\n    this.morphTargetsRelative = false;\n    this.groups = [];\n    this.boundingBox = null;\n    this.boundingSphere = null;\n    this.drawRange = { start: 0, count: Infinity };\n    this.userData = {};\n  }\n  getIndex() {\n    return this.index;\n  }\n  setIndex(index) {\n    if (Array.isArray(index)) {\n      this.index = new (arrayNeedsUint32(index) ? Uint32BufferAttribute : Uint16BufferAttribute)(index, 1);\n    } else {\n      this.index = index;\n    }\n    return this;\n  }\n  getAttribute(name) {\n    return this.attributes[name];\n  }\n  setAttribute(name, attribute) {\n    this.attributes[name] = attribute;\n    return this;\n  }\n  deleteAttribute(name) {\n    delete this.attributes[name];\n    return this;\n  }\n  hasAttribute(name) {\n    return this.attributes[name] !== void 0;\n  }\n  addGroup(start, count, materialIndex = 0) {\n    this.groups.push({\n      start,\n      count,\n      materialIndex\n    });\n  }\n  clearGroups() {\n    this.groups = [];\n  }\n  setDrawRange(start, count) {\n    this.drawRange.start = start;\n    this.drawRange.count = count;\n  }\n  applyMatrix4(matrix) {\n    const position = this.attributes.position;\n    if (position !== void 0) {\n      position.applyMatrix4(matrix);\n      position.needsUpdate = true;\n    }\n    const normal = this.attributes.normal;\n    if (normal !== void 0) {\n      const normalMatrix = new Matrix3().getNormalMatrix(matrix);\n      normal.applyNormalMatrix(normalMatrix);\n      normal.needsUpdate = true;\n    }\n    const tangent = this.attributes.tangent;\n    if (tangent !== void 0) {\n      tangent.transformDirection(matrix);\n      tangent.needsUpdate = true;\n    }\n    if (this.boundingBox !== null) {\n      this.computeBoundingBox();\n    }\n    if (this.boundingSphere !== null) {\n      this.computeBoundingSphere();\n    }\n    return this;\n  }\n  applyQuaternion(q) {\n    _m1$2.makeRotationFromQuaternion(q);\n    this.applyMatrix4(_m1$2);\n    return this;\n  }\n  rotateX(angle) {\n    _m1$2.makeRotationX(angle);\n    this.applyMatrix4(_m1$2);\n    return this;\n  }\n  rotateY(angle) {\n    _m1$2.makeRotationY(angle);\n    this.applyMatrix4(_m1$2);\n    return this;\n  }\n  rotateZ(angle) {\n    _m1$2.makeRotationZ(angle);\n    this.applyMatrix4(_m1$2);\n    return this;\n  }\n  translate(x, y, z) {\n    _m1$2.makeTranslation(x, y, z);\n    this.applyMatrix4(_m1$2);\n    return this;\n  }\n  scale(x, y, z) {\n    _m1$2.makeScale(x, y, z);\n    this.applyMatrix4(_m1$2);\n    return this;\n  }\n  lookAt(vector) {\n    _obj.lookAt(vector);\n    _obj.updateMatrix();\n    this.applyMatrix4(_obj.matrix);\n    return this;\n  }\n  center() {\n    this.computeBoundingBox();\n    this.boundingBox.getCenter(_offset).negate();\n    this.translate(_offset.x, _offset.y, _offset.z);\n    return this;\n  }\n  setFromPoints(points) {\n    const position = [];\n    for (let i = 0, l = points.length; i < l; i++) {\n      const point = points[i];\n      position.push(point.x, point.y, point.z || 0);\n    }\n    this.setAttribute(\"position\", new Float32BufferAttribute(position, 3));\n    return this;\n  }\n  computeBoundingBox() {\n    if (this.boundingBox === null) {\n      this.boundingBox = new Box3();\n    }\n    const position = this.attributes.position;\n    const morphAttributesPosition = this.morphAttributes.position;\n    if (position && position.isGLBufferAttribute) {\n      console.error(\"THREE.BufferGeometry.computeBoundingBox(): GLBufferAttribute requires a manual bounding box.\", this);\n      this.boundingBox.set(\n        new Vector3(-Infinity, -Infinity, -Infinity),\n        new Vector3(Infinity, Infinity, Infinity)\n      );\n      return;\n    }\n    if (position !== void 0) {\n      this.boundingBox.setFromBufferAttribute(position);\n      if (morphAttributesPosition) {\n        for (let i = 0, il = morphAttributesPosition.length; i < il; i++) {\n          const morphAttribute = morphAttributesPosition[i];\n          _box$2.setFromBufferAttribute(morphAttribute);\n          if (this.morphTargetsRelative) {\n            _vector$8.addVectors(this.boundingBox.min, _box$2.min);\n            this.boundingBox.expandByPoint(_vector$8);\n            _vector$8.addVectors(this.boundingBox.max, _box$2.max);\n            this.boundingBox.expandByPoint(_vector$8);\n          } else {\n            this.boundingBox.expandByPoint(_box$2.min);\n            this.boundingBox.expandByPoint(_box$2.max);\n          }\n        }\n      }\n    } else {\n      this.boundingBox.makeEmpty();\n    }\n    if (isNaN(this.boundingBox.min.x) || isNaN(this.boundingBox.min.y) || isNaN(this.boundingBox.min.z)) {\n      console.error('THREE.BufferGeometry.computeBoundingBox(): Computed min/max have NaN values. The \"position\" attribute is likely to have NaN values.', this);\n    }\n  }\n  computeBoundingSphere() {\n    if (this.boundingSphere === null) {\n      this.boundingSphere = new Sphere();\n    }\n    const position = this.attributes.position;\n    const morphAttributesPosition = this.morphAttributes.position;\n    if (position && position.isGLBufferAttribute) {\n      console.error(\"THREE.BufferGeometry.computeBoundingSphere(): GLBufferAttribute requires a manual bounding sphere.\", this);\n      this.boundingSphere.set(new Vector3(), Infinity);\n      return;\n    }\n    if (position) {\n      const center = this.boundingSphere.center;\n      _box$2.setFromBufferAttribute(position);\n      if (morphAttributesPosition) {\n        for (let i = 0, il = morphAttributesPosition.length; i < il; i++) {\n          const morphAttribute = morphAttributesPosition[i];\n          _boxMorphTargets.setFromBufferAttribute(morphAttribute);\n          if (this.morphTargetsRelative) {\n            _vector$8.addVectors(_box$2.min, _boxMorphTargets.min);\n            _box$2.expandByPoint(_vector$8);\n            _vector$8.addVectors(_box$2.max, _boxMorphTargets.max);\n            _box$2.expandByPoint(_vector$8);\n          } else {\n            _box$2.expandByPoint(_boxMorphTargets.min);\n            _box$2.expandByPoint(_boxMorphTargets.max);\n          }\n        }\n      }\n      _box$2.getCenter(center);\n      let maxRadiusSq = 0;\n      for (let i = 0, il = position.count; i < il; i++) {\n        _vector$8.fromBufferAttribute(position, i);\n        maxRadiusSq = Math.max(maxRadiusSq, center.distanceToSquared(_vector$8));\n      }\n      if (morphAttributesPosition) {\n        for (let i = 0, il = morphAttributesPosition.length; i < il; i++) {\n          const morphAttribute = morphAttributesPosition[i];\n          const morphTargetsRelative = this.morphTargetsRelative;\n          for (let j = 0, jl = morphAttribute.count; j < jl; j++) {\n            _vector$8.fromBufferAttribute(morphAttribute, j);\n            if (morphTargetsRelative) {\n              _offset.fromBufferAttribute(position, j);\n              _vector$8.add(_offset);\n            }\n            maxRadiusSq = Math.max(maxRadiusSq, center.distanceToSquared(_vector$8));\n          }\n        }\n      }\n      this.boundingSphere.radius = Math.sqrt(maxRadiusSq);\n      if (isNaN(this.boundingSphere.radius)) {\n        console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The \"position\" attribute is likely to have NaN values.', this);\n      }\n    }\n  }\n  computeTangents() {\n    const index = this.index;\n    const attributes = this.attributes;\n    if (index === null || attributes.position === void 0 || attributes.normal === void 0 || attributes.uv === void 0) {\n      console.error(\"THREE.BufferGeometry: .computeTangents() failed. Missing required attributes (index, position, normal or uv)\");\n      return;\n    }\n    const positionAttribute = attributes.position;\n    const normalAttribute = attributes.normal;\n    const uvAttribute = attributes.uv;\n    if (this.hasAttribute(\"tangent\") === false) {\n      this.setAttribute(\"tangent\", new BufferAttribute(new Float32Array(4 * positionAttribute.count), 4));\n    }\n    const tangentAttribute = this.getAttribute(\"tangent\");\n    const tan1 = [], tan2 = [];\n    for (let i = 0; i < positionAttribute.count; i++) {\n      tan1[i] = new Vector3();\n      tan2[i] = new Vector3();\n    }\n    const vA = new Vector3(), vB = new Vector3(), vC = new Vector3(), uvA = new Vector2(), uvB = new Vector2(), uvC = new Vector2(), sdir = new Vector3(), tdir = new Vector3();\n    function handleTriangle(a, b, c) {\n      vA.fromBufferAttribute(positionAttribute, a);\n      vB.fromBufferAttribute(positionAttribute, b);\n      vC.fromBufferAttribute(positionAttribute, c);\n      uvA.fromBufferAttribute(uvAttribute, a);\n      uvB.fromBufferAttribute(uvAttribute, b);\n      uvC.fromBufferAttribute(uvAttribute, c);\n      vB.sub(vA);\n      vC.sub(vA);\n      uvB.sub(uvA);\n      uvC.sub(uvA);\n      const r = 1 / (uvB.x * uvC.y - uvC.x * uvB.y);\n      if (!isFinite(r)) return;\n      sdir.copy(vB).multiplyScalar(uvC.y).addScaledVector(vC, -uvB.y).multiplyScalar(r);\n      tdir.copy(vC).multiplyScalar(uvB.x).addScaledVector(vB, -uvC.x).multiplyScalar(r);\n      tan1[a].add(sdir);\n      tan1[b].add(sdir);\n      tan1[c].add(sdir);\n      tan2[a].add(tdir);\n      tan2[b].add(tdir);\n      tan2[c].add(tdir);\n    }\n    let groups = this.groups;\n    if (groups.length === 0) {\n      groups = [{\n        start: 0,\n        count: index.count\n      }];\n    }\n    for (let i = 0, il = groups.length; i < il; ++i) {\n      const group = groups[i];\n      const start = group.start;\n      const count = group.count;\n      for (let j = start, jl = start + count; j < jl; j += 3) {\n        handleTriangle(\n          index.getX(j + 0),\n          index.getX(j + 1),\n          index.getX(j + 2)\n        );\n      }\n    }\n    const tmp2 = new Vector3(), tmp22 = new Vector3();\n    const n = new Vector3(), n2 = new Vector3();\n    function handleVertex(v) {\n      n.fromBufferAttribute(normalAttribute, v);\n      n2.copy(n);\n      const t = tan1[v];\n      tmp2.copy(t);\n      tmp2.sub(n.multiplyScalar(n.dot(t))).normalize();\n      tmp22.crossVectors(n2, t);\n      const test = tmp22.dot(tan2[v]);\n      const w = test < 0 ? -1 : 1;\n      tangentAttribute.setXYZW(v, tmp2.x, tmp2.y, tmp2.z, w);\n    }\n    for (let i = 0, il = groups.length; i < il; ++i) {\n      const group = groups[i];\n      const start = group.start;\n      const count = group.count;\n      for (let j = start, jl = start + count; j < jl; j += 3) {\n        handleVertex(index.getX(j + 0));\n        handleVertex(index.getX(j + 1));\n        handleVertex(index.getX(j + 2));\n      }\n    }\n  }\n  computeVertexNormals() {\n    const index = this.index;\n    const positionAttribute = this.getAttribute(\"position\");\n    if (positionAttribute !== void 0) {\n      let normalAttribute = this.getAttribute(\"normal\");\n      if (normalAttribute === void 0) {\n        normalAttribute = new BufferAttribute(new Float32Array(positionAttribute.count * 3), 3);\n        this.setAttribute(\"normal\", normalAttribute);\n      } else {\n        for (let i = 0, il = normalAttribute.count; i < il; i++) {\n          normalAttribute.setXYZ(i, 0, 0, 0);\n        }\n      }\n      const pA = new Vector3(), pB = new Vector3(), pC = new Vector3();\n      const nA = new Vector3(), nB = new Vector3(), nC = new Vector3();\n      const cb = new Vector3(), ab = new Vector3();\n      if (index) {\n        for (let i = 0, il = index.count; i < il; i += 3) {\n          const vA = index.getX(i + 0);\n          const vB = index.getX(i + 1);\n          const vC = index.getX(i + 2);\n          pA.fromBufferAttribute(positionAttribute, vA);\n          pB.fromBufferAttribute(positionAttribute, vB);\n          pC.fromBufferAttribute(positionAttribute, vC);\n          cb.subVectors(pC, pB);\n          ab.subVectors(pA, pB);\n          cb.cross(ab);\n          nA.fromBufferAttribute(normalAttribute, vA);\n          nB.fromBufferAttribute(normalAttribute, vB);\n          nC.fromBufferAttribute(normalAttribute, vC);\n          nA.add(cb);\n          nB.add(cb);\n          nC.add(cb);\n          normalAttribute.setXYZ(vA, nA.x, nA.y, nA.z);\n          normalAttribute.setXYZ(vB, nB.x, nB.y, nB.z);\n          normalAttribute.setXYZ(vC, nC.x, nC.y, nC.z);\n        }\n      } else {\n        for (let i = 0, il = positionAttribute.count; i < il; i += 3) {\n          pA.fromBufferAttribute(positionAttribute, i + 0);\n          pB.fromBufferAttribute(positionAttribute, i + 1);\n          pC.fromBufferAttribute(positionAttribute, i + 2);\n          cb.subVectors(pC, pB);\n          ab.subVectors(pA, pB);\n          cb.cross(ab);\n          normalAttribute.setXYZ(i + 0, cb.x, cb.y, cb.z);\n          normalAttribute.setXYZ(i + 1, cb.x, cb.y, cb.z);\n          normalAttribute.setXYZ(i + 2, cb.x, cb.y, cb.z);\n        }\n      }\n      this.normalizeNormals();\n      normalAttribute.needsUpdate = true;\n    }\n  }\n  normalizeNormals() {\n    const normals = this.attributes.normal;\n    for (let i = 0, il = normals.count; i < il; i++) {\n      _vector$8.fromBufferAttribute(normals, i);\n      _vector$8.normalize();\n      normals.setXYZ(i, _vector$8.x, _vector$8.y, _vector$8.z);\n    }\n  }\n  toNonIndexed() {\n    function convertBufferAttribute(attribute, indices2) {\n      const array = attribute.array;\n      const itemSize = attribute.itemSize;\n      const normalized = attribute.normalized;\n      const array2 = new array.constructor(indices2.length * itemSize);\n      let index = 0, index2 = 0;\n      for (let i = 0, l = indices2.length; i < l; i++) {\n        if (attribute.isInterleavedBufferAttribute) {\n          index = indices2[i] * attribute.data.stride + attribute.offset;\n        } else {\n          index = indices2[i] * itemSize;\n        }\n        for (let j = 0; j < itemSize; j++) {\n          array2[index2++] = array[index++];\n        }\n      }\n      return new BufferAttribute(array2, itemSize, normalized);\n    }\n    if (this.index === null) {\n      console.warn(\"THREE.BufferGeometry.toNonIndexed(): BufferGeometry is already non-indexed.\");\n      return this;\n    }\n    const geometry2 = new _BufferGeometry();\n    const indices = this.index.array;\n    const attributes = this.attributes;\n    for (const name in attributes) {\n      const attribute = attributes[name];\n      const newAttribute = convertBufferAttribute(attribute, indices);\n      geometry2.setAttribute(name, newAttribute);\n    }\n    const morphAttributes = this.morphAttributes;\n    for (const name in morphAttributes) {\n      const morphArray = [];\n      const morphAttribute = morphAttributes[name];\n      for (let i = 0, il = morphAttribute.length; i < il; i++) {\n        const attribute = morphAttribute[i];\n        const newAttribute = convertBufferAttribute(attribute, indices);\n        morphArray.push(newAttribute);\n      }\n      geometry2.morphAttributes[name] = morphArray;\n    }\n    geometry2.morphTargetsRelative = this.morphTargetsRelative;\n    const groups = this.groups;\n    for (let i = 0, l = groups.length; i < l; i++) {\n      const group = groups[i];\n      geometry2.addGroup(group.start, group.count, group.materialIndex);\n    }\n    return geometry2;\n  }\n  toJSON() {\n    const data = {\n      metadata: {\n        version: 4.6,\n        type: \"BufferGeometry\",\n        generator: \"BufferGeometry.toJSON\"\n      }\n    };\n    data.uuid = this.uuid;\n    data.type = this.type;\n    if (this.name !== \"\") data.name = this.name;\n    if (Object.keys(this.userData).length > 0) data.userData = this.userData;\n    if (this.parameters !== void 0) {\n      const parameters = this.parameters;\n      for (const key in parameters) {\n        if (parameters[key] !== void 0) data[key] = parameters[key];\n      }\n      return data;\n    }\n    data.data = { attributes: {} };\n    const index = this.index;\n    if (index !== null) {\n      data.data.index = {\n        type: index.array.constructor.name,\n        array: Array.prototype.slice.call(index.array)\n      };\n    }\n    const attributes = this.attributes;\n    for (const key in attributes) {\n      const attribute = attributes[key];\n      data.data.attributes[key] = attribute.toJSON(data.data);\n    }\n    const morphAttributes = {};\n    let hasMorphAttributes = false;\n    for (const key in this.morphAttributes) {\n      const attributeArray = this.morphAttributes[key];\n      const array = [];\n      for (let i = 0, il = attributeArray.length; i < il; i++) {\n        const attribute = attributeArray[i];\n        array.push(attribute.toJSON(data.data));\n      }\n      if (array.length > 0) {\n        morphAttributes[key] = array;\n        hasMorphAttributes = true;\n      }\n    }\n    if (hasMorphAttributes) {\n      data.data.morphAttributes = morphAttributes;\n      data.data.morphTargetsRelative = this.morphTargetsRelative;\n    }\n    const groups = this.groups;\n    if (groups.length > 0) {\n      data.data.groups = JSON.parse(JSON.stringify(groups));\n    }\n    const boundingSphere = this.boundingSphere;\n    if (boundingSphere !== null) {\n      data.data.boundingSphere = {\n        center: boundingSphere.center.toArray(),\n        radius: boundingSphere.radius\n      };\n    }\n    return data;\n  }\n  clone() {\n    return new this.constructor().copy(this);\n  }\n  copy(source) {\n    this.index = null;\n    this.attributes = {};\n    this.morphAttributes = {};\n    this.groups = [];\n    this.boundingBox = null;\n    this.boundingSphere = null;\n    const data = {};\n    this.name = source.name;\n    const index = source.index;\n    if (index !== null) {\n      this.setIndex(index.clone(data));\n    }\n    const attributes = source.attributes;\n    for (const name in attributes) {\n      const attribute = attributes[name];\n      this.setAttribute(name, attribute.clone(data));\n    }\n    const morphAttributes = source.morphAttributes;\n    for (const name in morphAttributes) {\n      const array = [];\n      const morphAttribute = morphAttributes[name];\n      for (let i = 0, l = morphAttribute.length; i < l; i++) {\n        array.push(morphAttribute[i].clone(data));\n      }\n      this.morphAttributes[name] = array;\n    }\n    this.morphTargetsRelative = source.morphTargetsRelative;\n    const groups = source.groups;\n    for (let i = 0, l = groups.length; i < l; i++) {\n      const group = groups[i];\n      this.addGroup(group.start, group.count, group.materialIndex);\n    }\n    const boundingBox = source.boundingBox;\n    if (boundingBox !== null) {\n      this.boundingBox = boundingBox.clone();\n    }\n    const boundingSphere = source.boundingSphere;\n    if (boundingSphere !== null) {\n      this.boundingSphere = boundingSphere.clone();\n    }\n    this.drawRange.start = source.drawRange.start;\n    this.drawRange.count = source.drawRange.count;\n    this.userData = source.userData;\n    return this;\n  }\n  dispose() {\n    this.dispatchEvent({ type: \"dispose\" });\n  }\n};\nvar _inverseMatrix$3 = /* @__PURE__ */ new Matrix4();\nvar _ray$3 = /* @__PURE__ */ new Ray();\nvar _sphere$6 = /* @__PURE__ */ new Sphere();\nvar _sphereHitAt = /* @__PURE__ */ new Vector3();\nvar _vA$1 = /* @__PURE__ */ new Vector3();\nvar _vB$1 = /* @__PURE__ */ new Vector3();\nvar _vC$1 = /* @__PURE__ */ new Vector3();\nvar _tempA = /* @__PURE__ */ new Vector3();\nvar _morphA = /* @__PURE__ */ new Vector3();\nvar _intersectionPoint = /* @__PURE__ */ new Vector3();\nvar _intersectionPointWorld = /* @__PURE__ */ new Vector3();\nvar Mesh = class extends Object3D {\n  constructor(geometry = new BufferGeometry(), material = new MeshBasicMaterial()) {\n    super();\n    this.isMesh = true;\n    this.type = \"Mesh\";\n    this.geometry = geometry;\n    this.material = material;\n    this.updateMorphTargets();\n  }\n  copy(source, recursive) {\n    super.copy(source, recursive);\n    if (source.morphTargetInfluences !== void 0) {\n      this.morphTargetInfluences = source.morphTargetInfluences.slice();\n    }\n    if (source.morphTargetDictionary !== void 0) {\n      this.morphTargetDictionary = Object.assign({}, source.morphTargetDictionary);\n    }\n    this.material = Array.isArray(source.material) ? source.material.slice() : source.material;\n    this.geometry = source.geometry;\n    return this;\n  }\n  updateMorphTargets() {\n    const geometry = this.geometry;\n    const morphAttributes = geometry.morphAttributes;\n    const keys = Object.keys(morphAttributes);\n    if (keys.length > 0) {\n      const morphAttribute = morphAttributes[keys[0]];\n      if (morphAttribute !== void 0) {\n        this.morphTargetInfluences = [];\n        this.morphTargetDictionary = {};\n        for (let m = 0, ml = morphAttribute.length; m < ml; m++) {\n          const name = morphAttribute[m].name || String(m);\n          this.morphTargetInfluences.push(0);\n          this.morphTargetDictionary[name] = m;\n        }\n      }\n    }\n  }\n  getVertexPosition(index, target) {\n    const geometry = this.geometry;\n    const position = geometry.attributes.position;\n    const morphPosition = geometry.morphAttributes.position;\n    const morphTargetsRelative = geometry.morphTargetsRelative;\n    target.fromBufferAttribute(position, index);\n    const morphInfluences = this.morphTargetInfluences;\n    if (morphPosition && morphInfluences) {\n      _morphA.set(0, 0, 0);\n      for (let i = 0, il = morphPosition.length; i < il; i++) {\n        const influence = morphInfluences[i];\n        const morphAttribute = morphPosition[i];\n        if (influence === 0) continue;\n        _tempA.fromBufferAttribute(morphAttribute, index);\n        if (morphTargetsRelative) {\n          _morphA.addScaledVector(_tempA, influence);\n        } else {\n          _morphA.addScaledVector(_tempA.sub(target), influence);\n        }\n      }\n      target.add(_morphA);\n    }\n    return target;\n  }\n  raycast(raycaster, intersects2) {\n    const geometry = this.geometry;\n    const material = this.material;\n    const matrixWorld = this.matrixWorld;\n    if (material === void 0) return;\n    if (geometry.boundingSphere === null) geometry.computeBoundingSphere();\n    _sphere$6.copy(geometry.boundingSphere);\n    _sphere$6.applyMatrix4(matrixWorld);\n    _ray$3.copy(raycaster.ray).recast(raycaster.near);\n    if (_sphere$6.containsPoint(_ray$3.origin) === false) {\n      if (_ray$3.intersectSphere(_sphere$6, _sphereHitAt) === null) return;\n      if (_ray$3.origin.distanceToSquared(_sphereHitAt) > __pow(raycaster.far - raycaster.near, 2)) return;\n    }\n    _inverseMatrix$3.copy(matrixWorld).invert();\n    _ray$3.copy(raycaster.ray).applyMatrix4(_inverseMatrix$3);\n    if (geometry.boundingBox !== null) {\n      if (_ray$3.intersectsBox(geometry.boundingBox) === false) return;\n    }\n    this._computeIntersections(raycaster, intersects2, _ray$3);\n  }\n  _computeIntersections(raycaster, intersects2, rayLocalSpace) {\n    let intersection;\n    const geometry = this.geometry;\n    const material = this.material;\n    const index = geometry.index;\n    const position = geometry.attributes.position;\n    const uv = geometry.attributes.uv;\n    const uv1 = geometry.attributes.uv1;\n    const normal = geometry.attributes.normal;\n    const groups = geometry.groups;\n    const drawRange = geometry.drawRange;\n    if (index !== null) {\n      if (Array.isArray(material)) {\n        for (let i = 0, il = groups.length; i < il; i++) {\n          const group = groups[i];\n          const groupMaterial = material[group.materialIndex];\n          const start = Math.max(group.start, drawRange.start);\n          const end = Math.min(index.count, Math.min(group.start + group.count, drawRange.start + drawRange.count));\n          for (let j = start, jl = end; j < jl; j += 3) {\n            const a = index.getX(j);\n            const b = index.getX(j + 1);\n            const c = index.getX(j + 2);\n            intersection = checkGeometryIntersection(this, groupMaterial, raycaster, rayLocalSpace, uv, uv1, normal, a, b, c);\n            if (intersection) {\n              intersection.faceIndex = Math.floor(j / 3);\n              intersection.face.materialIndex = group.materialIndex;\n              intersects2.push(intersection);\n            }\n          }\n        }\n      } else {\n        const start = Math.max(0, drawRange.start);\n        const end = Math.min(index.count, drawRange.start + drawRange.count);\n        for (let i = start, il = end; i < il; i += 3) {\n          const a = index.getX(i);\n          const b = index.getX(i + 1);\n          const c = index.getX(i + 2);\n          intersection = checkGeometryIntersection(this, material, raycaster, rayLocalSpace, uv, uv1, normal, a, b, c);\n          if (intersection) {\n            intersection.faceIndex = Math.floor(i / 3);\n            intersects2.push(intersection);\n          }\n        }\n      }\n    } else if (position !== void 0) {\n      if (Array.isArray(material)) {\n        for (let i = 0, il = groups.length; i < il; i++) {\n          const group = groups[i];\n          const groupMaterial = material[group.materialIndex];\n          const start = Math.max(group.start, drawRange.start);\n          const end = Math.min(position.count, Math.min(group.start + group.count, drawRange.start + drawRange.count));\n          for (let j = start, jl = end; j < jl; j += 3) {\n            const a = j;\n            const b = j + 1;\n            const c = j + 2;\n            intersection = checkGeometryIntersection(this, groupMaterial, raycaster, rayLocalSpace, uv, uv1, normal, a, b, c);\n            if (intersection) {\n              intersection.faceIndex = Math.floor(j / 3);\n              intersection.face.materialIndex = group.materialIndex;\n              intersects2.push(intersection);\n            }\n          }\n        }\n      } else {\n        const start = Math.max(0, drawRange.start);\n        const end = Math.min(position.count, drawRange.start + drawRange.count);\n        for (let i = start, il = end; i < il; i += 3) {\n          const a = i;\n          const b = i + 1;\n          const c = i + 2;\n          intersection = checkGeometryIntersection(this, material, raycaster, rayLocalSpace, uv, uv1, normal, a, b, c);\n          if (intersection) {\n            intersection.faceIndex = Math.floor(i / 3);\n            intersects2.push(intersection);\n          }\n        }\n      }\n    }\n  }\n};\nfunction checkIntersection$1(object, material, raycaster, ray, pA, pB, pC, point) {\n  let intersect2;\n  if (material.side === BackSide) {\n    intersect2 = ray.intersectTriangle(pC, pB, pA, true, point);\n  } else {\n    intersect2 = ray.intersectTriangle(pA, pB, pC, material.side === FrontSide, point);\n  }\n  if (intersect2 === null) return null;\n  _intersectionPointWorld.copy(point);\n  _intersectionPointWorld.applyMatrix4(object.matrixWorld);\n  const distance = raycaster.ray.origin.distanceTo(_intersectionPointWorld);\n  if (distance < raycaster.near || distance > raycaster.far) return null;\n  return {\n    distance,\n    point: _intersectionPointWorld.clone(),\n    object\n  };\n}\nfunction checkGeometryIntersection(object, material, raycaster, ray, uv, uv1, normal, a, b, c) {\n  object.getVertexPosition(a, _vA$1);\n  object.getVertexPosition(b, _vB$1);\n  object.getVertexPosition(c, _vC$1);\n  const intersection = checkIntersection$1(object, material, raycaster, ray, _vA$1, _vB$1, _vC$1, _intersectionPoint);\n  if (intersection) {\n    const barycoord = new Vector3();\n    Triangle.getBarycoord(_intersectionPoint, _vA$1, _vB$1, _vC$1, barycoord);\n    if (uv) {\n      intersection.uv = Triangle.getInterpolatedAttribute(uv, a, b, c, barycoord, new Vector2());\n    }\n    if (uv1) {\n      intersection.uv1 = Triangle.getInterpolatedAttribute(uv1, a, b, c, barycoord, new Vector2());\n    }\n    if (normal) {\n      intersection.normal = Triangle.getInterpolatedAttribute(normal, a, b, c, barycoord, new Vector3());\n      if (intersection.normal.dot(ray.direction) > 0) {\n        intersection.normal.multiplyScalar(-1);\n      }\n    }\n    const face = {\n      a,\n      b,\n      c,\n      normal: new Vector3(),\n      materialIndex: 0\n    };\n    Triangle.getNormal(_vA$1, _vB$1, _vC$1, face.normal);\n    intersection.face = face;\n    intersection.barycoord = barycoord;\n  }\n  return intersection;\n}\nvar BoxGeometry = class _BoxGeometry extends BufferGeometry {\n  constructor(width = 1, height = 1, depth = 1, widthSegments = 1, heightSegments = 1, depthSegments = 1) {\n    super();\n    this.type = \"BoxGeometry\";\n    this.parameters = {\n      width,\n      height,\n      depth,\n      widthSegments,\n      heightSegments,\n      depthSegments\n    };\n    const scope = this;\n    widthSegments = Math.floor(widthSegments);\n    heightSegments = Math.floor(heightSegments);\n    depthSegments = Math.floor(depthSegments);\n    const indices = [];\n    const vertices = [];\n    const normals = [];\n    const uvs = [];\n    let numberOfVertices = 0;\n    let groupStart = 0;\n    buildPlane(\"z\", \"y\", \"x\", -1, -1, depth, height, width, depthSegments, heightSegments, 0);\n    buildPlane(\"z\", \"y\", \"x\", 1, -1, depth, height, -width, depthSegments, heightSegments, 1);\n    buildPlane(\"x\", \"z\", \"y\", 1, 1, width, depth, height, widthSegments, depthSegments, 2);\n    buildPlane(\"x\", \"z\", \"y\", 1, -1, width, depth, -height, widthSegments, depthSegments, 3);\n    buildPlane(\"x\", \"y\", \"z\", 1, -1, width, height, depth, widthSegments, heightSegments, 4);\n    buildPlane(\"x\", \"y\", \"z\", -1, -1, width, height, -depth, widthSegments, heightSegments, 5);\n    this.setIndex(indices);\n    this.setAttribute(\"position\", new Float32BufferAttribute(vertices, 3));\n    this.setAttribute(\"normal\", new Float32BufferAttribute(normals, 3));\n    this.setAttribute(\"uv\", new Float32BufferAttribute(uvs, 2));\n    function buildPlane(u, v, w, udir, vdir, width2, height2, depth2, gridX, gridY, materialIndex) {\n      const segmentWidth = width2 / gridX;\n      const segmentHeight = height2 / gridY;\n      const widthHalf = width2 / 2;\n      const heightHalf = height2 / 2;\n      const depthHalf = depth2 / 2;\n      const gridX1 = gridX + 1;\n      const gridY1 = gridY + 1;\n      let vertexCounter = 0;\n      let groupCount = 0;\n      const vector = new Vector3();\n      for (let iy = 0; iy < gridY1; iy++) {\n        const y = iy * segmentHeight - heightHalf;\n        for (let ix = 0; ix < gridX1; ix++) {\n          const x = ix * segmentWidth - widthHalf;\n          vector[u] = x * udir;\n          vector[v] = y * vdir;\n          vector[w] = depthHalf;\n          vertices.push(vector.x, vector.y, vector.z);\n          vector[u] = 0;\n          vector[v] = 0;\n          vector[w] = depth2 > 0 ? 1 : -1;\n          normals.push(vector.x, vector.y, vector.z);\n          uvs.push(ix / gridX);\n          uvs.push(1 - iy / gridY);\n          vertexCounter += 1;\n        }\n      }\n      for (let iy = 0; iy < gridY; iy++) {\n        for (let ix = 0; ix < gridX; ix++) {\n          const a = numberOfVertices + ix + gridX1 * iy;\n          const b = numberOfVertices + ix + gridX1 * (iy + 1);\n          const c = numberOfVertices + (ix + 1) + gridX1 * (iy + 1);\n          const d = numberOfVertices + (ix + 1) + gridX1 * iy;\n          indices.push(a, b, d);\n          indices.push(b, c, d);\n          groupCount += 6;\n        }\n      }\n      scope.addGroup(groupStart, groupCount, materialIndex);\n      groupStart += groupCount;\n      numberOfVertices += vertexCounter;\n    }\n  }\n  copy(source) {\n    super.copy(source);\n    this.parameters = Object.assign({}, source.parameters);\n    return this;\n  }\n  static fromJSON(data) {\n    return new _BoxGeometry(data.width, data.height, data.depth, data.widthSegments, data.heightSegments, data.depthSegments);\n  }\n};\nfunction cloneUniforms(src) {\n  const dst = {};\n  for (const u in src) {\n    dst[u] = {};\n    for (const p in src[u]) {\n      const property = src[u][p];\n      if (property && (property.isColor || property.isMatrix3 || property.isMatrix4 || property.isVector2 || property.isVector3 || property.isVector4 || property.isTexture || property.isQuaternion)) {\n        if (property.isRenderTargetTexture) {\n          console.warn(\"UniformsUtils: Textures of render targets cannot be cloned via cloneUniforms() or mergeUniforms().\");\n          dst[u][p] = null;\n        } else {\n          dst[u][p] = property.clone();\n        }\n      } else if (Array.isArray(property)) {\n        dst[u][p] = property.slice();\n      } else {\n        dst[u][p] = property;\n      }\n    }\n  }\n  return dst;\n}\nfunction mergeUniforms(uniforms) {\n  const merged = {};\n  for (let u = 0; u < uniforms.length; u++) {\n    const tmp2 = cloneUniforms(uniforms[u]);\n    for (const p in tmp2) {\n      merged[p] = tmp2[p];\n    }\n  }\n  return merged;\n}\nfunction cloneUniformsGroups(src) {\n  const dst = [];\n  for (let u = 0; u < src.length; u++) {\n    dst.push(src[u].clone());\n  }\n  return dst;\n}\nfunction getUnlitUniformColorSpace(renderer) {\n  const currentRenderTarget = renderer.getRenderTarget();\n  if (currentRenderTarget === null) {\n    return renderer.outputColorSpace;\n  }\n  if (currentRenderTarget.isXRRenderTarget === true) {\n    return currentRenderTarget.texture.colorSpace;\n  }\n  return ColorManagement.workingColorSpace;\n}\nvar UniformsUtils = { clone: cloneUniforms, merge: mergeUniforms };\nvar default_vertex = \"void main() {\\n\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\\n}\";\nvar default_fragment = \"void main() {\\n\tgl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );\\n}\";\nvar ShaderMaterial = class extends Material {\n  constructor(parameters) {\n    super();\n    this.isShaderMaterial = true;\n    this.type = \"ShaderMaterial\";\n    this.defines = {};\n    this.uniforms = {};\n    this.uniformsGroups = [];\n    this.vertexShader = default_vertex;\n    this.fragmentShader = default_fragment;\n    this.linewidth = 1;\n    this.wireframe = false;\n    this.wireframeLinewidth = 1;\n    this.fog = false;\n    this.lights = false;\n    this.clipping = false;\n    this.forceSinglePass = true;\n    this.extensions = {\n      clipCullDistance: false,\n      // set to use vertex shader clipping\n      multiDraw: false\n      // set to use vertex shader multi_draw / enable gl_DrawID\n    };\n    this.defaultAttributeValues = {\n      \"color\": [1, 1, 1],\n      \"uv\": [0, 0],\n      \"uv1\": [0, 0]\n    };\n    this.index0AttributeName = void 0;\n    this.uniformsNeedUpdate = false;\n    this.glslVersion = null;\n    if (parameters !== void 0) {\n      this.setValues(parameters);\n    }\n  }\n  copy(source) {\n    super.copy(source);\n    this.fragmentShader = source.fragmentShader;\n    this.vertexShader = source.vertexShader;\n    this.uniforms = cloneUniforms(source.uniforms);\n    this.uniformsGroups = cloneUniformsGroups(source.uniformsGroups);\n    this.defines = Object.assign({}, source.defines);\n    this.wireframe = source.wireframe;\n    this.wireframeLinewidth = source.wireframeLinewidth;\n    this.fog = source.fog;\n    this.lights = source.lights;\n    this.clipping = source.clipping;\n    this.extensions = Object.assign({}, source.extensions);\n    this.glslVersion = source.glslVersion;\n    return this;\n  }\n  toJSON(meta) {\n    const data = super.toJSON(meta);\n    data.glslVersion = this.glslVersion;\n    data.uniforms = {};\n    for (const name in this.uniforms) {\n      const uniform = this.uniforms[name];\n      const value = uniform.value;\n      if (value && value.isTexture) {\n        data.uniforms[name] = {\n          type: \"t\",\n          value: value.toJSON(meta).uuid\n        };\n      } else if (value && value.isColor) {\n        data.uniforms[name] = {\n          type: \"c\",\n          value: value.getHex()\n        };\n      } else if (value && value.isVector2) {\n        data.uniforms[name] = {\n          type: \"v2\",\n          value: value.toArray()\n        };\n      } else if (value && value.isVector3) {\n        data.uniforms[name] = {\n          type: \"v3\",\n          value: value.toArray()\n        };\n      } else if (value && value.isVector4) {\n        data.uniforms[name] = {\n          type: \"v4\",\n          value: value.toArray()\n        };\n      } else if (value && value.isMatrix3) {\n        data.uniforms[name] = {\n          type: \"m3\",\n          value: value.toArray()\n        };\n      } else if (value && value.isMatrix4) {\n        data.uniforms[name] = {\n          type: \"m4\",\n          value: value.toArray()\n        };\n      } else {\n        data.uniforms[name] = {\n          value\n        };\n      }\n    }\n    if (Object.keys(this.defines).length > 0) data.defines = this.defines;\n    data.vertexShader = this.vertexShader;\n    data.fragmentShader = this.fragmentShader;\n    data.lights = this.lights;\n    data.clipping = this.clipping;\n    const extensions = {};\n    for (const key in this.extensions) {\n      if (this.extensions[key] === true) extensions[key] = true;\n    }\n    if (Object.keys(extensions).length > 0) data.extensions = extensions;\n    return data;\n  }\n};\nvar Camera = class extends Object3D {\n  constructor() {\n    super();\n    this.isCamera = true;\n    this.type = \"Camera\";\n    this.matrixWorldInverse = new Matrix4();\n    this.projectionMatrix = new Matrix4();\n    this.projectionMatrixInverse = new Matrix4();\n    this.coordinateSystem = WebGLCoordinateSystem;\n  }\n  copy(source, recursive) {\n    super.copy(source, recursive);\n    this.matrixWorldInverse.copy(source.matrixWorldInverse);\n    this.projectionMatrix.copy(source.projectionMatrix);\n    this.projectionMatrixInverse.copy(source.projectionMatrixInverse);\n    this.coordinateSystem = source.coordinateSystem;\n    return this;\n  }\n  getWorldDirection(target) {\n    return super.getWorldDirection(target).negate();\n  }\n  updateMatrixWorld(force) {\n    super.updateMatrixWorld(force);\n    this.matrixWorldInverse.copy(this.matrixWorld).invert();\n  }\n  updateWorldMatrix(updateParents, updateChildren) {\n    super.updateWorldMatrix(updateParents, updateChildren);\n    this.matrixWorldInverse.copy(this.matrixWorld).invert();\n  }\n  clone() {\n    return new this.constructor().copy(this);\n  }\n};\nvar _v3$1 = /* @__PURE__ */ new Vector3();\nvar _minTarget = /* @__PURE__ */ new Vector2();\nvar _maxTarget = /* @__PURE__ */ new Vector2();\nvar PerspectiveCamera = class extends Camera {\n  constructor(fov2 = 50, aspect2 = 1, near = 0.1, far = 2e3) {\n    super();\n    this.isPerspectiveCamera = true;\n    this.type = \"PerspectiveCamera\";\n    this.fov = fov2;\n    this.zoom = 1;\n    this.near = near;\n    this.far = far;\n    this.focus = 10;\n    this.aspect = aspect2;\n    this.view = null;\n    this.filmGauge = 35;\n    this.filmOffset = 0;\n    this.updateProjectionMatrix();\n  }\n  copy(source, recursive) {\n    super.copy(source, recursive);\n    this.fov = source.fov;\n    this.zoom = source.zoom;\n    this.near = source.near;\n    this.far = source.far;\n    this.focus = source.focus;\n    this.aspect = source.aspect;\n    this.view = source.view === null ? null : Object.assign({}, source.view);\n    this.filmGauge = source.filmGauge;\n    this.filmOffset = source.filmOffset;\n    return this;\n  }\n  /**\n   * Sets the FOV by focal length in respect to the current .filmGauge.\n   *\n   * The default film gauge is 35, so that the focal length can be specified for\n   * a 35mm (full frame) camera.\n   *\n   * Values for focal length and film gauge must have the same unit.\n   */\n  setFocalLength(focalLength) {\n    const vExtentSlope = 0.5 * this.getFilmHeight() / focalLength;\n    this.fov = RAD2DEG * 2 * Math.atan(vExtentSlope);\n    this.updateProjectionMatrix();\n  }\n  /**\n   * Calculates the focal length from the current .fov and .filmGauge.\n   */\n  getFocalLength() {\n    const vExtentSlope = Math.tan(DEG2RAD * 0.5 * this.fov);\n    return 0.5 * this.getFilmHeight() / vExtentSlope;\n  }\n  getEffectiveFOV() {\n    return RAD2DEG * 2 * Math.atan(\n      Math.tan(DEG2RAD * 0.5 * this.fov) / this.zoom\n    );\n  }\n  getFilmWidth() {\n    return this.filmGauge * Math.min(this.aspect, 1);\n  }\n  getFilmHeight() {\n    return this.filmGauge / Math.max(this.aspect, 1);\n  }\n  /**\n   * Computes the 2D bounds of the camera's viewable rectangle at a given distance along the viewing direction.\n   * Sets minTarget and maxTarget to the coordinates of the lower-left and upper-right corners of the view rectangle.\n   */\n  getViewBounds(distance, minTarget, maxTarget) {\n    _v3$1.set(-1, -1, 0.5).applyMatrix4(this.projectionMatrixInverse);\n    minTarget.set(_v3$1.x, _v3$1.y).multiplyScalar(-distance / _v3$1.z);\n    _v3$1.set(1, 1, 0.5).applyMatrix4(this.projectionMatrixInverse);\n    maxTarget.set(_v3$1.x, _v3$1.y).multiplyScalar(-distance / _v3$1.z);\n  }\n  /**\n   * Computes the width and height of the camera's viewable rectangle at a given distance along the viewing direction.\n   * Copies the result into the target Vector2, where x is width and y is height.\n   */\n  getViewSize(distance, target) {\n    this.getViewBounds(distance, _minTarget, _maxTarget);\n    return target.subVectors(_maxTarget, _minTarget);\n  }\n  /**\n   * Sets an offset in a larger frustum. This is useful for multi-window or\n   * multi-monitor/multi-machine setups.\n   *\n   * For example, if you have 3x2 monitors and each monitor is 1920x1080 and\n   * the monitors are in grid like this\n   *\n   *   +---+---+---+\n   *   | A | B | C |\n   *   +---+---+---+\n   *   | D | E | F |\n   *   +---+---+---+\n   *\n   * then for each monitor you would call it like this\n   *\n   *   const w = 1920;\n   *   const h = 1080;\n   *   const fullWidth = w * 3;\n   *   const fullHeight = h * 2;\n   *\n   *   --A--\n   *   camera.setViewOffset( fullWidth, fullHeight, w * 0, h * 0, w, h );\n   *   --B--\n   *   camera.setViewOffset( fullWidth, fullHeight, w * 1, h * 0, w, h );\n   *   --C--\n   *   camera.setViewOffset( fullWidth, fullHeight, w * 2, h * 0, w, h );\n   *   --D--\n   *   camera.setViewOffset( fullWidth, fullHeight, w * 0, h * 1, w, h );\n   *   --E--\n   *   camera.setViewOffset( fullWidth, fullHeight, w * 1, h * 1, w, h );\n   *   --F--\n   *   camera.setViewOffset( fullWidth, fullHeight, w * 2, h * 1, w, h );\n   *\n   *   Note there is no reason monitors have to be the same size or in a grid.\n   */\n  setViewOffset(fullWidth, fullHeight, x, y, width, height) {\n    this.aspect = fullWidth / fullHeight;\n    if (this.view === null) {\n      this.view = {\n        enabled: true,\n        fullWidth: 1,\n        fullHeight: 1,\n        offsetX: 0,\n        offsetY: 0,\n        width: 1,\n        height: 1\n      };\n    }\n    this.view.enabled = true;\n    this.view.fullWidth = fullWidth;\n    this.view.fullHeight = fullHeight;\n    this.view.offsetX = x;\n    this.view.offsetY = y;\n    this.view.width = width;\n    this.view.height = height;\n    this.updateProjectionMatrix();\n  }\n  clearViewOffset() {\n    if (this.view !== null) {\n      this.view.enabled = false;\n    }\n    this.updateProjectionMatrix();\n  }\n  updateProjectionMatrix() {\n    const near = this.near;\n    let top = near * Math.tan(DEG2RAD * 0.5 * this.fov) / this.zoom;\n    let height = 2 * top;\n    let width = this.aspect * height;\n    let left = -0.5 * width;\n    const view = this.view;\n    if (this.view !== null && this.view.enabled) {\n      const fullWidth = view.fullWidth, fullHeight = view.fullHeight;\n      left += view.offsetX * width / fullWidth;\n      top -= view.offsetY * height / fullHeight;\n      width *= view.width / fullWidth;\n      height *= view.height / fullHeight;\n    }\n    const skew = this.filmOffset;\n    if (skew !== 0) left += near * skew / this.getFilmWidth();\n    this.projectionMatrix.makePerspective(left, left + width, top, top - height, near, this.far, this.coordinateSystem);\n    this.projectionMatrixInverse.copy(this.projectionMatrix).invert();\n  }\n  toJSON(meta) {\n    const data = super.toJSON(meta);\n    data.object.fov = this.fov;\n    data.object.zoom = this.zoom;\n    data.object.near = this.near;\n    data.object.far = this.far;\n    data.object.focus = this.focus;\n    data.object.aspect = this.aspect;\n    if (this.view !== null) data.object.view = Object.assign({}, this.view);\n    data.object.filmGauge = this.filmGauge;\n    data.object.filmOffset = this.filmOffset;\n    return data;\n  }\n};\nvar fov = -90;\nvar aspect = 1;\nvar CubeCamera = class extends Object3D {\n  constructor(near, far, renderTarget) {\n    super();\n    this.type = \"CubeCamera\";\n    this.renderTarget = renderTarget;\n    this.coordinateSystem = null;\n    this.activeMipmapLevel = 0;\n    const cameraPX = new PerspectiveCamera(fov, aspect, near, far);\n    cameraPX.layers = this.layers;\n    this.add(cameraPX);\n    const cameraNX = new PerspectiveCamera(fov, aspect, near, far);\n    cameraNX.layers = this.layers;\n    this.add(cameraNX);\n    const cameraPY = new PerspectiveCamera(fov, aspect, near, far);\n    cameraPY.layers = this.layers;\n    this.add(cameraPY);\n    const cameraNY = new PerspectiveCamera(fov, aspect, near, far);\n    cameraNY.layers = this.layers;\n    this.add(cameraNY);\n    const cameraPZ = new PerspectiveCamera(fov, aspect, near, far);\n    cameraPZ.layers = this.layers;\n    this.add(cameraPZ);\n    const cameraNZ = new PerspectiveCamera(fov, aspect, near, far);\n    cameraNZ.layers = this.layers;\n    this.add(cameraNZ);\n  }\n  updateCoordinateSystem() {\n    const coordinateSystem = this.coordinateSystem;\n    const cameras = this.children.concat();\n    const [cameraPX, cameraNX, cameraPY, cameraNY, cameraPZ, cameraNZ] = cameras;\n    for (const camera of cameras) this.remove(camera);\n    if (coordinateSystem === WebGLCoordinateSystem) {\n      cameraPX.up.set(0, 1, 0);\n      cameraPX.lookAt(1, 0, 0);\n      cameraNX.up.set(0, 1, 0);\n      cameraNX.lookAt(-1, 0, 0);\n      cameraPY.up.set(0, 0, -1);\n      cameraPY.lookAt(0, 1, 0);\n      cameraNY.up.set(0, 0, 1);\n      cameraNY.lookAt(0, -1, 0);\n      cameraPZ.up.set(0, 1, 0);\n      cameraPZ.lookAt(0, 0, 1);\n      cameraNZ.up.set(0, 1, 0);\n      cameraNZ.lookAt(0, 0, -1);\n    } else if (coordinateSystem === WebGPUCoordinateSystem) {\n      cameraPX.up.set(0, -1, 0);\n      cameraPX.lookAt(-1, 0, 0);\n      cameraNX.up.set(0, -1, 0);\n      cameraNX.lookAt(1, 0, 0);\n      cameraPY.up.set(0, 0, 1);\n      cameraPY.lookAt(0, 1, 0);\n      cameraNY.up.set(0, 0, -1);\n      cameraNY.lookAt(0, -1, 0);\n      cameraPZ.up.set(0, -1, 0);\n      cameraPZ.lookAt(0, 0, 1);\n      cameraNZ.up.set(0, -1, 0);\n      cameraNZ.lookAt(0, 0, -1);\n    } else {\n      throw new Error(\"THREE.CubeCamera.updateCoordinateSystem(): Invalid coordinate system: \" + coordinateSystem);\n    }\n    for (const camera of cameras) {\n      this.add(camera);\n      camera.updateMatrixWorld();\n    }\n  }\n  update(renderer, scene) {\n    if (this.parent === null) this.updateMatrixWorld();\n    const { renderTarget, activeMipmapLevel } = this;\n    if (this.coordinateSystem !== renderer.coordinateSystem) {\n      this.coordinateSystem = renderer.coordinateSystem;\n      this.updateCoordinateSystem();\n    }\n    const [cameraPX, cameraNX, cameraPY, cameraNY, cameraPZ, cameraNZ] = this.children;\n    const currentRenderTarget = renderer.getRenderTarget();\n    const currentActiveCubeFace = renderer.getActiveCubeFace();\n    const currentActiveMipmapLevel = renderer.getActiveMipmapLevel();\n    const currentXrEnabled = renderer.xr.enabled;\n    renderer.xr.enabled = false;\n    const generateMipmaps = renderTarget.texture.generateMipmaps;\n    renderTarget.texture.generateMipmaps = false;\n    renderer.setRenderTarget(renderTarget, 0, activeMipmapLevel);\n    renderer.render(scene, cameraPX);\n    renderer.setRenderTarget(renderTarget, 1, activeMipmapLevel);\n    renderer.render(scene, cameraNX);\n    renderer.setRenderTarget(renderTarget, 2, activeMipmapLevel);\n    renderer.render(scene, cameraPY);\n    renderer.setRenderTarget(renderTarget, 3, activeMipmapLevel);\n    renderer.render(scene, cameraNY);\n    renderer.setRenderTarget(renderTarget, 4, activeMipmapLevel);\n    renderer.render(scene, cameraPZ);\n    renderTarget.texture.generateMipmaps = generateMipmaps;\n    renderer.setRenderTarget(renderTarget, 5, activeMipmapLevel);\n    renderer.render(scene, cameraNZ);\n    renderer.setRenderTarget(currentRenderTarget, currentActiveCubeFace, currentActiveMipmapLevel);\n    renderer.xr.enabled = currentXrEnabled;\n    renderTarget.texture.needsPMREMUpdate = true;\n  }\n};\nvar CubeTexture = class extends Texture {\n  constructor(images, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, colorSpace) {\n    images = images !== void 0 ? images : [];\n    mapping = mapping !== void 0 ? mapping : CubeReflectionMapping;\n    super(images, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, colorSpace);\n    this.isCubeTexture = true;\n    this.flipY = false;\n  }\n  get images() {\n    return this.image;\n  }\n  set images(value) {\n    this.image = value;\n  }\n};\nvar WebGLCubeRenderTarget = class extends WebGLRenderTarget {\n  constructor(size = 1, options = {}) {\n    super(size, size, options);\n    this.isWebGLCubeRenderTarget = true;\n    const image = { width: size, height: size, depth: 1 };\n    const images = [image, image, image, image, image, image];\n    this.texture = new CubeTexture(images, options.mapping, options.wrapS, options.wrapT, options.magFilter, options.minFilter, options.format, options.type, options.anisotropy, options.colorSpace);\n    this.texture.isRenderTargetTexture = true;\n    this.texture.generateMipmaps = options.generateMipmaps !== void 0 ? options.generateMipmaps : false;\n    this.texture.minFilter = options.minFilter !== void 0 ? options.minFilter : LinearFilter;\n  }\n  fromEquirectangularTexture(renderer, texture) {\n    this.texture.type = texture.type;\n    this.texture.colorSpace = texture.colorSpace;\n    this.texture.generateMipmaps = texture.generateMipmaps;\n    this.texture.minFilter = texture.minFilter;\n    this.texture.magFilter = texture.magFilter;\n    const shader = {\n      uniforms: {\n        tEquirect: { value: null }\n      },\n      vertexShader: (\n        /* glsl */\n        `\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\tvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\n\t\t\t\t\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvWorldDirection = transformDirection( position, modelMatrix );\n\n\t\t\t\t\t#include <begin_vertex>\n\t\t\t\t\t#include <project_vertex>\n\n\t\t\t\t}\n\t\t\t`\n      ),\n      fragmentShader: (\n        /* glsl */\n        `\n\n\t\t\t\tuniform sampler2D tEquirect;\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\t#include <common>\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvec3 direction = normalize( vWorldDirection );\n\n\t\t\t\t\tvec2 sampleUV = equirectUv( direction );\n\n\t\t\t\t\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\n\t\t\t\t}\n\t\t\t`\n      )\n    };\n    const geometry = new BoxGeometry(5, 5, 5);\n    const material = new ShaderMaterial({\n      name: \"CubemapFromEquirect\",\n      uniforms: cloneUniforms(shader.uniforms),\n      vertexShader: shader.vertexShader,\n      fragmentShader: shader.fragmentShader,\n      side: BackSide,\n      blending: NoBlending\n    });\n    material.uniforms.tEquirect.value = texture;\n    const mesh = new Mesh(geometry, material);\n    const currentMinFilter = texture.minFilter;\n    if (texture.minFilter === LinearMipmapLinearFilter) texture.minFilter = LinearFilter;\n    const camera = new CubeCamera(1, 10, this);\n    camera.update(renderer, mesh);\n    texture.minFilter = currentMinFilter;\n    mesh.geometry.dispose();\n    mesh.material.dispose();\n    return this;\n  }\n  clear(renderer, color, depth, stencil) {\n    const currentRenderTarget = renderer.getRenderTarget();\n    for (let i = 0; i < 6; i++) {\n      renderer.setRenderTarget(this, i);\n      renderer.clear(color, depth, stencil);\n    }\n    renderer.setRenderTarget(currentRenderTarget);\n  }\n};\nvar _vector1 = /* @__PURE__ */ new Vector3();\nvar _vector2 = /* @__PURE__ */ new Vector3();\nvar _normalMatrix = /* @__PURE__ */ new Matrix3();\nvar Plane = class {\n  constructor(normal = new Vector3(1, 0, 0), constant = 0) {\n    this.isPlane = true;\n    this.normal = normal;\n    this.constant = constant;\n  }\n  set(normal, constant) {\n    this.normal.copy(normal);\n    this.constant = constant;\n    return this;\n  }\n  setComponents(x, y, z, w) {\n    this.normal.set(x, y, z);\n    this.constant = w;\n    return this;\n  }\n  setFromNormalAndCoplanarPoint(normal, point) {\n    this.normal.copy(normal);\n    this.constant = -point.dot(this.normal);\n    return this;\n  }\n  setFromCoplanarPoints(a, b, c) {\n    const normal = _vector1.subVectors(c, b).cross(_vector2.subVectors(a, b)).normalize();\n    this.setFromNormalAndCoplanarPoint(normal, a);\n    return this;\n  }\n  copy(plane) {\n    this.normal.copy(plane.normal);\n    this.constant = plane.constant;\n    return this;\n  }\n  normalize() {\n    const inverseNormalLength = 1 / this.normal.length();\n    this.normal.multiplyScalar(inverseNormalLength);\n    this.constant *= inverseNormalLength;\n    return this;\n  }\n  negate() {\n    this.constant *= -1;\n    this.normal.negate();\n    return this;\n  }\n  distanceToPoint(point) {\n    return this.normal.dot(point) + this.constant;\n  }\n  distanceToSphere(sphere) {\n    return this.distanceToPoint(sphere.center) - sphere.radius;\n  }\n  projectPoint(point, target) {\n    return target.copy(point).addScaledVector(this.normal, -this.distanceToPoint(point));\n  }\n  intersectLine(line, target) {\n    const direction = line.delta(_vector1);\n    const denominator = this.normal.dot(direction);\n    if (denominator === 0) {\n      if (this.distanceToPoint(line.start) === 0) {\n        return target.copy(line.start);\n      }\n      return null;\n    }\n    const t = -(line.start.dot(this.normal) + this.constant) / denominator;\n    if (t < 0 || t > 1) {\n      return null;\n    }\n    return target.copy(line.start).addScaledVector(direction, t);\n  }\n  intersectsLine(line) {\n    const startSign = this.distanceToPoint(line.start);\n    const endSign = this.distanceToPoint(line.end);\n    return startSign < 0 && endSign > 0 || endSign < 0 && startSign > 0;\n  }\n  intersectsBox(box) {\n    return box.intersectsPlane(this);\n  }\n  intersectsSphere(sphere) {\n    return sphere.intersectsPlane(this);\n  }\n  coplanarPoint(target) {\n    return target.copy(this.normal).multiplyScalar(-this.constant);\n  }\n  applyMatrix4(matrix, optionalNormalMatrix) {\n    const normalMatrix = optionalNormalMatrix || _normalMatrix.getNormalMatrix(matrix);\n    const referencePoint = this.coplanarPoint(_vector1).applyMatrix4(matrix);\n    const normal = this.normal.applyMatrix3(normalMatrix).normalize();\n    this.constant = -referencePoint.dot(normal);\n    return this;\n  }\n  translate(offset) {\n    this.constant -= offset.dot(this.normal);\n    return this;\n  }\n  equals(plane) {\n    return plane.normal.equals(this.normal) && plane.constant === this.constant;\n  }\n  clone() {\n    return new this.constructor().copy(this);\n  }\n};\nvar _sphere$5 = /* @__PURE__ */ new Sphere();\nvar _vector$7 = /* @__PURE__ */ new Vector3();\nvar Frustum = class {\n  constructor(p0 = new Plane(), p1 = new Plane(), p2 = new Plane(), p3 = new Plane(), p4 = new Plane(), p5 = new Plane()) {\n    this.planes = [p0, p1, p2, p3, p4, p5];\n  }\n  set(p0, p1, p2, p3, p4, p5) {\n    const planes = this.planes;\n    planes[0].copy(p0);\n    planes[1].copy(p1);\n    planes[2].copy(p2);\n    planes[3].copy(p3);\n    planes[4].copy(p4);\n    planes[5].copy(p5);\n    return this;\n  }\n  copy(frustum) {\n    const planes = this.planes;\n    for (let i = 0; i < 6; i++) {\n      planes[i].copy(frustum.planes[i]);\n    }\n    return this;\n  }\n  setFromProjectionMatrix(m, coordinateSystem = WebGLCoordinateSystem) {\n    const planes = this.planes;\n    const me = m.elements;\n    const me0 = me[0], me1 = me[1], me2 = me[2], me3 = me[3];\n    const me4 = me[4], me5 = me[5], me6 = me[6], me7 = me[7];\n    const me8 = me[8], me9 = me[9], me10 = me[10], me11 = me[11];\n    const me12 = me[12], me13 = me[13], me14 = me[14], me15 = me[15];\n    planes[0].setComponents(me3 - me0, me7 - me4, me11 - me8, me15 - me12).normalize();\n    planes[1].setComponents(me3 + me0, me7 + me4, me11 + me8, me15 + me12).normalize();\n    planes[2].setComponents(me3 + me1, me7 + me5, me11 + me9, me15 + me13).normalize();\n    planes[3].setComponents(me3 - me1, me7 - me5, me11 - me9, me15 - me13).normalize();\n    planes[4].setComponents(me3 - me2, me7 - me6, me11 - me10, me15 - me14).normalize();\n    if (coordinateSystem === WebGLCoordinateSystem) {\n      planes[5].setComponents(me3 + me2, me7 + me6, me11 + me10, me15 + me14).normalize();\n    } else if (coordinateSystem === WebGPUCoordinateSystem) {\n      planes[5].setComponents(me2, me6, me10, me14).normalize();\n    } else {\n      throw new Error(\"THREE.Frustum.setFromProjectionMatrix(): Invalid coordinate system: \" + coordinateSystem);\n    }\n    return this;\n  }\n  intersectsObject(object) {\n    if (object.boundingSphere !== void 0) {\n      if (object.boundingSphere === null) object.computeBoundingSphere();\n      _sphere$5.copy(object.boundingSphere).applyMatrix4(object.matrixWorld);\n    } else {\n      const geometry = object.geometry;\n      if (geometry.boundingSphere === null) geometry.computeBoundingSphere();\n      _sphere$5.copy(geometry.boundingSphere).applyMatrix4(object.matrixWorld);\n    }\n    return this.intersectsSphere(_sphere$5);\n  }\n  intersectsSprite(sprite) {\n    _sphere$5.center.set(0, 0, 0);\n    _sphere$5.radius = 0.7071067811865476;\n    _sphere$5.applyMatrix4(sprite.matrixWorld);\n    return this.intersectsSphere(_sphere$5);\n  }\n  intersectsSphere(sphere) {\n    const planes = this.planes;\n    const center = sphere.center;\n    const negRadius = -sphere.radius;\n    for (let i = 0; i < 6; i++) {\n      const distance = planes[i].distanceToPoint(center);\n      if (distance < negRadius) {\n        return false;\n      }\n    }\n    return true;\n  }\n  intersectsBox(box) {\n    const planes = this.planes;\n    for (let i = 0; i < 6; i++) {\n      const plane = planes[i];\n      _vector$7.x = plane.normal.x > 0 ? box.max.x : box.min.x;\n      _vector$7.y = plane.normal.y > 0 ? box.max.y : box.min.y;\n      _vector$7.z = plane.normal.z > 0 ? box.max.z : box.min.z;\n      if (plane.distanceToPoint(_vector$7) < 0) {\n        return false;\n      }\n    }\n    return true;\n  }\n  containsPoint(point) {\n    const planes = this.planes;\n    for (let i = 0; i < 6; i++) {\n      if (planes[i].distanceToPoint(point) < 0) {\n        return false;\n      }\n    }\n    return true;\n  }\n  clone() {\n    return new this.constructor().copy(this);\n  }\n};\nfunction WebGLAnimation() {\n  let context = null;\n  let isAnimating = false;\n  let animationLoop = null;\n  let requestId = null;\n  function onAnimationFrame(time, frame) {\n    animationLoop(time, frame);\n    requestId = context.requestAnimationFrame(onAnimationFrame);\n  }\n  return {\n    start: function() {\n      if (isAnimating === true) return;\n      if (animationLoop === null) return;\n      requestId = context.requestAnimationFrame(onAnimationFrame);\n      isAnimating = true;\n    },\n    stop: function() {\n      context.cancelAnimationFrame(requestId);\n      isAnimating = false;\n    },\n    setAnimationLoop: function(callback) {\n      animationLoop = callback;\n    },\n    setContext: function(value) {\n      context = value;\n    }\n  };\n}\nfunction WebGLAttributes(gl) {\n  const buffers = /* @__PURE__ */ new WeakMap();\n  function createBuffer(attribute, bufferType) {\n    const array = attribute.array;\n    const usage = attribute.usage;\n    const size = array.byteLength;\n    const buffer = gl.createBuffer();\n    gl.bindBuffer(bufferType, buffer);\n    gl.bufferData(bufferType, array, usage);\n    attribute.onUploadCallback();\n    let type;\n    if (array instanceof Float32Array) {\n      type = gl.FLOAT;\n    } else if (array instanceof Uint16Array) {\n      if (attribute.isFloat16BufferAttribute) {\n        type = gl.HALF_FLOAT;\n      } else {\n        type = gl.UNSIGNED_SHORT;\n      }\n    } else if (array instanceof Int16Array) {\n      type = gl.SHORT;\n    } else if (array instanceof Uint32Array) {\n      type = gl.UNSIGNED_INT;\n    } else if (array instanceof Int32Array) {\n      type = gl.INT;\n    } else if (array instanceof Int8Array) {\n      type = gl.BYTE;\n    } else if (array instanceof Uint8Array) {\n      type = gl.UNSIGNED_BYTE;\n    } else if (array instanceof Uint8ClampedArray) {\n      type = gl.UNSIGNED_BYTE;\n    } else {\n      throw new Error(\"THREE.WebGLAttributes: Unsupported buffer data format: \" + array);\n    }\n    return {\n      buffer,\n      type,\n      bytesPerElement: array.BYTES_PER_ELEMENT,\n      version: attribute.version,\n      size\n    };\n  }\n  function updateBuffer(buffer, attribute, bufferType) {\n    const array = attribute.array;\n    const updateRanges = attribute.updateRanges;\n    gl.bindBuffer(bufferType, buffer);\n    if (updateRanges.length === 0) {\n      gl.bufferSubData(bufferType, 0, array);\n    } else {\n      updateRanges.sort((a, b) => a.start - b.start);\n      let mergeIndex = 0;\n      for (let i = 1; i < updateRanges.length; i++) {\n        const previousRange = updateRanges[mergeIndex];\n        const range = updateRanges[i];\n        if (range.start <= previousRange.start + previousRange.count + 1) {\n          previousRange.count = Math.max(\n            previousRange.count,\n            range.start + range.count - previousRange.start\n          );\n        } else {\n          ++mergeIndex;\n          updateRanges[mergeIndex] = range;\n        }\n      }\n      updateRanges.length = mergeIndex + 1;\n      for (let i = 0, l = updateRanges.length; i < l; i++) {\n        const range = updateRanges[i];\n        gl.bufferSubData(\n          bufferType,\n          range.start * array.BYTES_PER_ELEMENT,\n          array,\n          range.start,\n          range.count\n        );\n      }\n      attribute.clearUpdateRanges();\n    }\n    attribute.onUploadCallback();\n  }\n  function get(attribute) {\n    if (attribute.isInterleavedBufferAttribute) attribute = attribute.data;\n    return buffers.get(attribute);\n  }\n  function remove(attribute) {\n    if (attribute.isInterleavedBufferAttribute) attribute = attribute.data;\n    const data = buffers.get(attribute);\n    if (data) {\n      gl.deleteBuffer(data.buffer);\n      buffers.delete(attribute);\n    }\n  }\n  function update(attribute, bufferType) {\n    if (attribute.isInterleavedBufferAttribute) attribute = attribute.data;\n    if (attribute.isGLBufferAttribute) {\n      const cached = buffers.get(attribute);\n      if (!cached || cached.version < attribute.version) {\n        buffers.set(attribute, {\n          buffer: attribute.buffer,\n          type: attribute.type,\n          bytesPerElement: attribute.elementSize,\n          version: attribute.version\n        });\n      }\n      return;\n    }\n    const data = buffers.get(attribute);\n    if (data === void 0) {\n      buffers.set(attribute, createBuffer(attribute, bufferType));\n    } else if (data.version < attribute.version) {\n      if (data.size !== attribute.array.byteLength) {\n        throw new Error(\"THREE.WebGLAttributes: The size of the buffer attribute's array buffer does not match the original size. Resizing buffer attributes is not supported.\");\n      }\n      updateBuffer(data.buffer, attribute, bufferType);\n      data.version = attribute.version;\n    }\n  }\n  return {\n    get,\n    remove,\n    update\n  };\n}\nvar PlaneGeometry = class _PlaneGeometry extends BufferGeometry {\n  constructor(width = 1, height = 1, widthSegments = 1, heightSegments = 1) {\n    super();\n    this.type = \"PlaneGeometry\";\n    this.parameters = {\n      width,\n      height,\n      widthSegments,\n      heightSegments\n    };\n    const width_half = width / 2;\n    const height_half = height / 2;\n    const gridX = Math.floor(widthSegments);\n    const gridY = Math.floor(heightSegments);\n    const gridX1 = gridX + 1;\n    const gridY1 = gridY + 1;\n    const segment_width = width / gridX;\n    const segment_height = height / gridY;\n    const indices = [];\n    const vertices = [];\n    const normals = [];\n    const uvs = [];\n    for (let iy = 0; iy < gridY1; iy++) {\n      const y = iy * segment_height - height_half;\n      for (let ix = 0; ix < gridX1; ix++) {\n        const x = ix * segment_width - width_half;\n        vertices.push(x, -y, 0);\n        normals.push(0, 0, 1);\n        uvs.push(ix / gridX);\n        uvs.push(1 - iy / gridY);\n      }\n    }\n    for (let iy = 0; iy < gridY; iy++) {\n      for (let ix = 0; ix < gridX; ix++) {\n        const a = ix + gridX1 * iy;\n        const b = ix + gridX1 * (iy + 1);\n        const c = ix + 1 + gridX1 * (iy + 1);\n        const d = ix + 1 + gridX1 * iy;\n        indices.push(a, b, d);\n        indices.push(b, c, d);\n      }\n    }\n    this.setIndex(indices);\n    this.setAttribute(\"position\", new Float32BufferAttribute(vertices, 3));\n    this.setAttribute(\"normal\", new Float32BufferAttribute(normals, 3));\n    this.setAttribute(\"uv\", new Float32BufferAttribute(uvs, 2));\n  }\n  copy(source) {\n    super.copy(source);\n    this.parameters = Object.assign({}, source.parameters);\n    return this;\n  }\n  static fromJSON(data) {\n    return new _PlaneGeometry(data.width, data.height, data.widthSegments, data.heightSegments);\n  }\n};\nvar alphahash_fragment = \"#ifdef USE_ALPHAHASH\\n\tif ( diffuseColor.a < getAlphaHashThreshold( vPosition ) ) discard;\\n#endif\";\nvar alphahash_pars_fragment = \"#ifdef USE_ALPHAHASH\\n\tconst float ALPHA_HASH_SCALE = 0.05;\\n\tfloat hash2D( vec2 value ) {\\n\t\treturn fract( 1.0e4 * sin( 17.0 * value.x + 0.1 * value.y ) * ( 0.1 + abs( sin( 13.0 * value.y + value.x ) ) ) );\\n\t}\\n\tfloat hash3D( vec3 value ) {\\n\t\treturn hash2D( vec2( hash2D( value.xy ), value.z ) );\\n\t}\\n\tfloat getAlphaHashThreshold( vec3 position ) {\\n\t\tfloat maxDeriv = max(\\n\t\t\tlength( dFdx( position.xyz ) ),\\n\t\t\tlength( dFdy( position.xyz ) )\\n\t\t);\\n\t\tfloat pixScale = 1.0 / ( ALPHA_HASH_SCALE * maxDeriv );\\n\t\tvec2 pixScales = vec2(\\n\t\t\texp2( floor( log2( pixScale ) ) ),\\n\t\t\texp2( ceil( log2( pixScale ) ) )\\n\t\t);\\n\t\tvec2 alpha = vec2(\\n\t\t\thash3D( floor( pixScales.x * position.xyz ) ),\\n\t\t\thash3D( floor( pixScales.y * position.xyz ) )\\n\t\t);\\n\t\tfloat lerpFactor = fract( log2( pixScale ) );\\n\t\tfloat x = ( 1.0 - lerpFactor ) * alpha.x + lerpFactor * alpha.y;\\n\t\tfloat a = min( lerpFactor, 1.0 - lerpFactor );\\n\t\tvec3 cases = vec3(\\n\t\t\tx * x / ( 2.0 * a * ( 1.0 - a ) ),\\n\t\t\t( x - 0.5 * a ) / ( 1.0 - a ),\\n\t\t\t1.0 - ( ( 1.0 - x ) * ( 1.0 - x ) / ( 2.0 * a * ( 1.0 - a ) ) )\\n\t\t);\\n\t\tfloat threshold = ( x < ( 1.0 - a ) )\\n\t\t\t? ( ( x < a ) ? cases.x : cases.y )\\n\t\t\t: cases.z;\\n\t\treturn clamp( threshold , 1.0e-6, 1.0 );\\n\t}\\n#endif\";\nvar alphamap_fragment = \"#ifdef USE_ALPHAMAP\\n\tdiffuseColor.a *= texture2D( alphaMap, vAlphaMapUv ).g;\\n#endif\";\nvar alphamap_pars_fragment = \"#ifdef USE_ALPHAMAP\\n\tuniform sampler2D alphaMap;\\n#endif\";\nvar alphatest_fragment = \"#ifdef USE_ALPHATEST\\n\t#ifdef ALPHA_TO_COVERAGE\\n\tdiffuseColor.a = smoothstep( alphaTest, alphaTest + fwidth( diffuseColor.a ), diffuseColor.a );\\n\tif ( diffuseColor.a == 0.0 ) discard;\\n\t#else\\n\tif ( diffuseColor.a < alphaTest ) discard;\\n\t#endif\\n#endif\";\nvar alphatest_pars_fragment = \"#ifdef USE_ALPHATEST\\n\tuniform float alphaTest;\\n#endif\";\nvar aomap_fragment = \"#ifdef USE_AOMAP\\n\tfloat ambientOcclusion = ( texture2D( aoMap, vAoMapUv ).r - 1.0 ) * aoMapIntensity + 1.0;\\n\treflectedLight.indirectDiffuse *= ambientOcclusion;\\n\t#if defined( USE_CLEARCOAT ) \\n\t\tclearcoatSpecularIndirect *= ambientOcclusion;\\n\t#endif\\n\t#if defined( USE_SHEEN ) \\n\t\tsheenSpecularIndirect *= ambientOcclusion;\\n\t#endif\\n\t#if defined( USE_ENVMAP ) && defined( STANDARD )\\n\t\tfloat dotNV = saturate( dot( geometryNormal, geometryViewDir ) );\\n\t\treflectedLight.indirectSpecular *= computeSpecularOcclusion( dotNV, ambientOcclusion, material.roughness );\\n\t#endif\\n#endif\";\nvar aomap_pars_fragment = \"#ifdef USE_AOMAP\\n\tuniform sampler2D aoMap;\\n\tuniform float aoMapIntensity;\\n#endif\";\nvar batching_pars_vertex = \"#ifdef USE_BATCHING\\n\t#if ! defined( GL_ANGLE_multi_draw )\\n\t#define gl_DrawID _gl_DrawID\\n\tuniform int _gl_DrawID;\\n\t#endif\\n\tuniform highp sampler2D batchingTexture;\\n\tuniform highp usampler2D batchingIdTexture;\\n\tmat4 getBatchingMatrix( const in float i ) {\\n\t\tint size = textureSize( batchingTexture, 0 ).x;\\n\t\tint j = int( i ) * 4;\\n\t\tint x = j % size;\\n\t\tint y = j / size;\\n\t\tvec4 v1 = texelFetch( batchingTexture, ivec2( x, y ), 0 );\\n\t\tvec4 v2 = texelFetch( batchingTexture, ivec2( x + 1, y ), 0 );\\n\t\tvec4 v3 = texelFetch( batchingTexture, ivec2( x + 2, y ), 0 );\\n\t\tvec4 v4 = texelFetch( batchingTexture, ivec2( x + 3, y ), 0 );\\n\t\treturn mat4( v1, v2, v3, v4 );\\n\t}\\n\tfloat getIndirectIndex( const in int i ) {\\n\t\tint size = textureSize( batchingIdTexture, 0 ).x;\\n\t\tint x = i % size;\\n\t\tint y = i / size;\\n\t\treturn float( texelFetch( batchingIdTexture, ivec2( x, y ), 0 ).r );\\n\t}\\n#endif\\n#ifdef USE_BATCHING_COLOR\\n\tuniform sampler2D batchingColorTexture;\\n\tvec3 getBatchingColor( const in float i ) {\\n\t\tint size = textureSize( batchingColorTexture, 0 ).x;\\n\t\tint j = int( i );\\n\t\tint x = j % size;\\n\t\tint y = j / size;\\n\t\treturn texelFetch( batchingColorTexture, ivec2( x, y ), 0 ).rgb;\\n\t}\\n#endif\";\nvar batching_vertex = \"#ifdef USE_BATCHING\\n\tmat4 batchingMatrix = getBatchingMatrix( getIndirectIndex( gl_DrawID ) );\\n#endif\";\nvar begin_vertex = \"vec3 transformed = vec3( position );\\n#ifdef USE_ALPHAHASH\\n\tvPosition = vec3( position );\\n#endif\";\nvar beginnormal_vertex = \"vec3 objectNormal = vec3( normal );\\n#ifdef USE_TANGENT\\n\tvec3 objectTangent = vec3( tangent.xyz );\\n#endif\";\nvar bsdfs = \"float G_BlinnPhong_Implicit( ) {\\n\treturn 0.25;\\n}\\nfloat D_BlinnPhong( const in float shininess, const in float dotNH ) {\\n\treturn RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess );\\n}\\nvec3 BRDF_BlinnPhong( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float shininess ) {\\n\tvec3 halfDir = normalize( lightDir + viewDir );\\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\\n\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\\n\tvec3 F = F_Schlick( specularColor, 1.0, dotVH );\\n\tfloat G = G_BlinnPhong_Implicit( );\\n\tfloat D = D_BlinnPhong( shininess, dotNH );\\n\treturn F * ( G * D );\\n} // validated\";\nvar iridescence_fragment = \"#ifdef USE_IRIDESCENCE\\n\tconst mat3 XYZ_TO_REC709 = mat3(\\n\t\t 3.2404542, -0.9692660,  0.0556434,\\n\t\t-1.5371385,  1.8760108, -0.2040259,\\n\t\t-0.4985314,  0.0415560,  1.0572252\\n\t);\\n\tvec3 Fresnel0ToIor( vec3 fresnel0 ) {\\n\t\tvec3 sqrtF0 = sqrt( fresnel0 );\\n\t\treturn ( vec3( 1.0 ) + sqrtF0 ) / ( vec3( 1.0 ) - sqrtF0 );\\n\t}\\n\tvec3 IorToFresnel0( vec3 transmittedIor, float incidentIor ) {\\n\t\treturn pow2( ( transmittedIor - vec3( incidentIor ) ) / ( transmittedIor + vec3( incidentIor ) ) );\\n\t}\\n\tfloat IorToFresnel0( float transmittedIor, float incidentIor ) {\\n\t\treturn pow2( ( transmittedIor - incidentIor ) / ( transmittedIor + incidentIor ));\\n\t}\\n\tvec3 evalSensitivity( float OPD, vec3 shift ) {\\n\t\tfloat phase = 2.0 * PI * OPD * 1.0e-9;\\n\t\tvec3 val = vec3( 5.4856e-13, 4.4201e-13, 5.2481e-13 );\\n\t\tvec3 pos = vec3( 1.6810e+06, 1.7953e+06, 2.2084e+06 );\\n\t\tvec3 var = vec3( 4.3278e+09, 9.3046e+09, 6.6121e+09 );\\n\t\tvec3 xyz = val * sqrt( 2.0 * PI * var ) * cos( pos * phase + shift ) * exp( - pow2( phase ) * var );\\n\t\txyz.x += 9.7470e-14 * sqrt( 2.0 * PI * 4.5282e+09 ) * cos( 2.2399e+06 * phase + shift[ 0 ] ) * exp( - 4.5282e+09 * pow2( phase ) );\\n\t\txyz /= 1.0685e-7;\\n\t\tvec3 rgb = XYZ_TO_REC709 * xyz;\\n\t\treturn rgb;\\n\t}\\n\tvec3 evalIridescence( float outsideIOR, float eta2, float cosTheta1, float thinFilmThickness, vec3 baseF0 ) {\\n\t\tvec3 I;\\n\t\tfloat iridescenceIOR = mix( outsideIOR, eta2, smoothstep( 0.0, 0.03, thinFilmThickness ) );\\n\t\tfloat sinTheta2Sq = pow2( outsideIOR / iridescenceIOR ) * ( 1.0 - pow2( cosTheta1 ) );\\n\t\tfloat cosTheta2Sq = 1.0 - sinTheta2Sq;\\n\t\tif ( cosTheta2Sq < 0.0 ) {\\n\t\t\treturn vec3( 1.0 );\\n\t\t}\\n\t\tfloat cosTheta2 = sqrt( cosTheta2Sq );\\n\t\tfloat R0 = IorToFresnel0( iridescenceIOR, outsideIOR );\\n\t\tfloat R12 = F_Schlick( R0, 1.0, cosTheta1 );\\n\t\tfloat T121 = 1.0 - R12;\\n\t\tfloat phi12 = 0.0;\\n\t\tif ( iridescenceIOR < outsideIOR ) phi12 = PI;\\n\t\tfloat phi21 = PI - phi12;\\n\t\tvec3 baseIOR = Fresnel0ToIor( clamp( baseF0, 0.0, 0.9999 ) );\t\tvec3 R1 = IorToFresnel0( baseIOR, iridescenceIOR );\\n\t\tvec3 R23 = F_Schlick( R1, 1.0, cosTheta2 );\\n\t\tvec3 phi23 = vec3( 0.0 );\\n\t\tif ( baseIOR[ 0 ] < iridescenceIOR ) phi23[ 0 ] = PI;\\n\t\tif ( baseIOR[ 1 ] < iridescenceIOR ) phi23[ 1 ] = PI;\\n\t\tif ( baseIOR[ 2 ] < iridescenceIOR ) phi23[ 2 ] = PI;\\n\t\tfloat OPD = 2.0 * iridescenceIOR * thinFilmThickness * cosTheta2;\\n\t\tvec3 phi = vec3( phi21 ) + phi23;\\n\t\tvec3 R123 = clamp( R12 * R23, 1e-5, 0.9999 );\\n\t\tvec3 r123 = sqrt( R123 );\\n\t\tvec3 Rs = pow2( T121 ) * R23 / ( vec3( 1.0 ) - R123 );\\n\t\tvec3 C0 = R12 + Rs;\\n\t\tI = C0;\\n\t\tvec3 Cm = Rs - T121;\\n\t\tfor ( int m = 1; m <= 2; ++ m ) {\\n\t\t\tCm *= r123;\\n\t\t\tvec3 Sm = 2.0 * evalSensitivity( float( m ) * OPD, float( m ) * phi );\\n\t\t\tI += Cm * Sm;\\n\t\t}\\n\t\treturn max( I, vec3( 0.0 ) );\\n\t}\\n#endif\";\nvar bumpmap_pars_fragment = \"#ifdef USE_BUMPMAP\\n\tuniform sampler2D bumpMap;\\n\tuniform float bumpScale;\\n\tvec2 dHdxy_fwd() {\\n\t\tvec2 dSTdx = dFdx( vBumpMapUv );\\n\t\tvec2 dSTdy = dFdy( vBumpMapUv );\\n\t\tfloat Hll = bumpScale * texture2D( bumpMap, vBumpMapUv ).x;\\n\t\tfloat dBx = bumpScale * texture2D( bumpMap, vBumpMapUv + dSTdx ).x - Hll;\\n\t\tfloat dBy = bumpScale * texture2D( bumpMap, vBumpMapUv + dSTdy ).x - Hll;\\n\t\treturn vec2( dBx, dBy );\\n\t}\\n\tvec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy, float faceDirection ) {\\n\t\tvec3 vSigmaX = normalize( dFdx( surf_pos.xyz ) );\\n\t\tvec3 vSigmaY = normalize( dFdy( surf_pos.xyz ) );\\n\t\tvec3 vN = surf_norm;\\n\t\tvec3 R1 = cross( vSigmaY, vN );\\n\t\tvec3 R2 = cross( vN, vSigmaX );\\n\t\tfloat fDet = dot( vSigmaX, R1 ) * faceDirection;\\n\t\tvec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );\\n\t\treturn normalize( abs( fDet ) * surf_norm - vGrad );\\n\t}\\n#endif\";\nvar clipping_planes_fragment = \"#if NUM_CLIPPING_PLANES > 0\\n\tvec4 plane;\\n\t#ifdef ALPHA_TO_COVERAGE\\n\t\tfloat distanceToPlane, distanceGradient;\\n\t\tfloat clipOpacity = 1.0;\\n\t\t#pragma unroll_loop_start\\n\t\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\\n\t\t\tplane = clippingPlanes[ i ];\\n\t\t\tdistanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w;\\n\t\t\tdistanceGradient = fwidth( distanceToPlane ) / 2.0;\\n\t\t\tclipOpacity *= smoothstep( - distanceGradient, distanceGradient, distanceToPlane );\\n\t\t\tif ( clipOpacity == 0.0 ) discard;\\n\t\t}\\n\t\t#pragma unroll_loop_end\\n\t\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\\n\t\t\tfloat unionClipOpacity = 1.0;\\n\t\t\t#pragma unroll_loop_start\\n\t\t\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\\n\t\t\t\tplane = clippingPlanes[ i ];\\n\t\t\t\tdistanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w;\\n\t\t\t\tdistanceGradient = fwidth( distanceToPlane ) / 2.0;\\n\t\t\t\tunionClipOpacity *= 1.0 - smoothstep( - distanceGradient, distanceGradient, distanceToPlane );\\n\t\t\t}\\n\t\t\t#pragma unroll_loop_end\\n\t\t\tclipOpacity *= 1.0 - unionClipOpacity;\\n\t\t#endif\\n\t\tdiffuseColor.a *= clipOpacity;\\n\t\tif ( diffuseColor.a == 0.0 ) discard;\\n\t#else\\n\t\t#pragma unroll_loop_start\\n\t\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\\n\t\t\tplane = clippingPlanes[ i ];\\n\t\t\tif ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;\\n\t\t}\\n\t\t#pragma unroll_loop_end\\n\t\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\\n\t\t\tbool clipped = true;\\n\t\t\t#pragma unroll_loop_start\\n\t\t\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\\n\t\t\t\tplane = clippingPlanes[ i ];\\n\t\t\t\tclipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;\\n\t\t\t}\\n\t\t\t#pragma unroll_loop_end\\n\t\t\tif ( clipped ) discard;\\n\t\t#endif\\n\t#endif\\n#endif\";\nvar clipping_planes_pars_fragment = \"#if NUM_CLIPPING_PLANES > 0\\n\tvarying vec3 vClipPosition;\\n\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\\n#endif\";\nvar clipping_planes_pars_vertex = \"#if NUM_CLIPPING_PLANES > 0\\n\tvarying vec3 vClipPosition;\\n#endif\";\nvar clipping_planes_vertex = \"#if NUM_CLIPPING_PLANES > 0\\n\tvClipPosition = - mvPosition.xyz;\\n#endif\";\nvar color_fragment = \"#if defined( USE_COLOR_ALPHA )\\n\tdiffuseColor *= vColor;\\n#elif defined( USE_COLOR )\\n\tdiffuseColor.rgb *= vColor;\\n#endif\";\nvar color_pars_fragment = \"#if defined( USE_COLOR_ALPHA )\\n\tvarying vec4 vColor;\\n#elif defined( USE_COLOR )\\n\tvarying vec3 vColor;\\n#endif\";\nvar color_pars_vertex = \"#if defined( USE_COLOR_ALPHA )\\n\tvarying vec4 vColor;\\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) || defined( USE_BATCHING_COLOR )\\n\tvarying vec3 vColor;\\n#endif\";\nvar color_vertex = \"#if defined( USE_COLOR_ALPHA )\\n\tvColor = vec4( 1.0 );\\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) || defined( USE_BATCHING_COLOR )\\n\tvColor = vec3( 1.0 );\\n#endif\\n#ifdef USE_COLOR\\n\tvColor *= color;\\n#endif\\n#ifdef USE_INSTANCING_COLOR\\n\tvColor.xyz *= instanceColor.xyz;\\n#endif\\n#ifdef USE_BATCHING_COLOR\\n\tvec3 batchingColor = getBatchingColor( getIndirectIndex( gl_DrawID ) );\\n\tvColor.xyz *= batchingColor.xyz;\\n#endif\";\nvar common = \"#define PI 3.141592653589793\\n#define PI2 6.283185307179586\\n#define PI_HALF 1.5707963267948966\\n#define RECIPROCAL_PI 0.3183098861837907\\n#define RECIPROCAL_PI2 0.15915494309189535\\n#define EPSILON 1e-6\\n#ifndef saturate\\n#define saturate( a ) clamp( a, 0.0, 1.0 )\\n#endif\\n#define whiteComplement( a ) ( 1.0 - saturate( a ) )\\nfloat pow2( const in float x ) { return x*x; }\\nvec3 pow2( const in vec3 x ) { return x*x; }\\nfloat pow3( const in float x ) { return x*x*x; }\\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\\nfloat max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); }\\nfloat average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); }\\nhighp float rand( const in vec2 uv ) {\\n\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\\n\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\\n\treturn fract( sin( sn ) * c );\\n}\\n#ifdef HIGH_PRECISION\\n\tfloat precisionSafeLength( vec3 v ) { return length( v ); }\\n#else\\n\tfloat precisionSafeLength( vec3 v ) {\\n\t\tfloat maxComponent = max3( abs( v ) );\\n\t\treturn length( v / maxComponent ) * maxComponent;\\n\t}\\n#endif\\nstruct IncidentLight {\\n\tvec3 color;\\n\tvec3 direction;\\n\tbool visible;\\n};\\nstruct ReflectedLight {\\n\tvec3 directDiffuse;\\n\tvec3 directSpecular;\\n\tvec3 indirectDiffuse;\\n\tvec3 indirectSpecular;\\n};\\n#ifdef USE_ALPHAHASH\\n\tvarying vec3 vPosition;\\n#endif\\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\\n\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\\n}\\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\\n\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\\n}\\nmat3 transposeMat3( const in mat3 m ) {\\n\tmat3 tmp;\\n\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\\n\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\\n\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\\n\treturn tmp;\\n}\\nbool isPerspectiveMatrix( mat4 m ) {\\n\treturn m[ 2 ][ 3 ] == - 1.0;\\n}\\nvec2 equirectUv( in vec3 dir ) {\\n\tfloat u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;\\n\tfloat v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\\n\treturn vec2( u, v );\\n}\\nvec3 BRDF_Lambert( const in vec3 diffuseColor ) {\\n\treturn RECIPROCAL_PI * diffuseColor;\\n}\\nvec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) {\\n\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\\n\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\\n}\\nfloat F_Schlick( const in float f0, const in float f90, const in float dotVH ) {\\n\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\\n\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\\n} // validated\";\nvar cube_uv_reflection_fragment = \"#ifdef ENVMAP_TYPE_CUBE_UV\\n\t#define cubeUV_minMipLevel 4.0\\n\t#define cubeUV_minTileSize 16.0\\n\tfloat getFace( vec3 direction ) {\\n\t\tvec3 absDirection = abs( direction );\\n\t\tfloat face = - 1.0;\\n\t\tif ( absDirection.x > absDirection.z ) {\\n\t\t\tif ( absDirection.x > absDirection.y )\\n\t\t\t\tface = direction.x > 0.0 ? 0.0 : 3.0;\\n\t\t\telse\\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\\n\t\t} else {\\n\t\t\tif ( absDirection.z > absDirection.y )\\n\t\t\t\tface = direction.z > 0.0 ? 2.0 : 5.0;\\n\t\t\telse\\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\\n\t\t}\\n\t\treturn face;\\n\t}\\n\tvec2 getUV( vec3 direction, float face ) {\\n\t\tvec2 uv;\\n\t\tif ( face == 0.0 ) {\\n\t\t\tuv = vec2( direction.z, direction.y ) / abs( direction.x );\\n\t\t} else if ( face == 1.0 ) {\\n\t\t\tuv = vec2( - direction.x, - direction.z ) / abs( direction.y );\\n\t\t} else if ( face == 2.0 ) {\\n\t\t\tuv = vec2( - direction.x, direction.y ) / abs( direction.z );\\n\t\t} else if ( face == 3.0 ) {\\n\t\t\tuv = vec2( - direction.z, direction.y ) / abs( direction.x );\\n\t\t} else if ( face == 4.0 ) {\\n\t\t\tuv = vec2( - direction.x, direction.z ) / abs( direction.y );\\n\t\t} else {\\n\t\t\tuv = vec2( direction.x, direction.y ) / abs( direction.z );\\n\t\t}\\n\t\treturn 0.5 * ( uv + 1.0 );\\n\t}\\n\tvec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) {\\n\t\tfloat face = getFace( direction );\\n\t\tfloat filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 );\\n\t\tmipInt = max( mipInt, cubeUV_minMipLevel );\\n\t\tfloat faceSize = exp2( mipInt );\\n\t\thighp vec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0;\\n\t\tif ( face > 2.0 ) {\\n\t\t\tuv.y += faceSize;\\n\t\t\tface -= 3.0;\\n\t\t}\\n\t\tuv.x += face * faceSize;\\n\t\tuv.x += filterInt * 3.0 * cubeUV_minTileSize;\\n\t\tuv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize );\\n\t\tuv.x *= CUBEUV_TEXEL_WIDTH;\\n\t\tuv.y *= CUBEUV_TEXEL_HEIGHT;\\n\t\t#ifdef texture2DGradEXT\\n\t\t\treturn texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb;\\n\t\t#else\\n\t\t\treturn texture2D( envMap, uv ).rgb;\\n\t\t#endif\\n\t}\\n\t#define cubeUV_r0 1.0\\n\t#define cubeUV_m0 - 2.0\\n\t#define cubeUV_r1 0.8\\n\t#define cubeUV_m1 - 1.0\\n\t#define cubeUV_r4 0.4\\n\t#define cubeUV_m4 2.0\\n\t#define cubeUV_r5 0.305\\n\t#define cubeUV_m5 3.0\\n\t#define cubeUV_r6 0.21\\n\t#define cubeUV_m6 4.0\\n\tfloat roughnessToMip( float roughness ) {\\n\t\tfloat mip = 0.0;\\n\t\tif ( roughness >= cubeUV_r1 ) {\\n\t\t\tmip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) / ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0;\\n\t\t} else if ( roughness >= cubeUV_r4 ) {\\n\t\t\tmip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) / ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1;\\n\t\t} else if ( roughness >= cubeUV_r5 ) {\\n\t\t\tmip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) / ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4;\\n\t\t} else if ( roughness >= cubeUV_r6 ) {\\n\t\t\tmip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) / ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_m5;\\n\t\t} else {\\n\t\t\tmip = - 2.0 * log2( 1.16 * roughness );\t\t}\\n\t\treturn mip;\\n\t}\\n\tvec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {\\n\t\tfloat mip = clamp( roughnessToMip( roughness ), cubeUV_m0, CUBEUV_MAX_MIP );\\n\t\tfloat mipF = fract( mip );\\n\t\tfloat mipInt = floor( mip );\\n\t\tvec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );\\n\t\tif ( mipF == 0.0 ) {\\n\t\t\treturn vec4( color0, 1.0 );\\n\t\t} else {\\n\t\t\tvec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 );\\n\t\t\treturn vec4( mix( color0, color1, mipF ), 1.0 );\\n\t\t}\\n\t}\\n#endif\";\nvar defaultnormal_vertex = \"vec3 transformedNormal = objectNormal;\\n#ifdef USE_TANGENT\\n\tvec3 transformedTangent = objectTangent;\\n#endif\\n#ifdef USE_BATCHING\\n\tmat3 bm = mat3( batchingMatrix );\\n\ttransformedNormal /= vec3( dot( bm[ 0 ], bm[ 0 ] ), dot( bm[ 1 ], bm[ 1 ] ), dot( bm[ 2 ], bm[ 2 ] ) );\\n\ttransformedNormal = bm * transformedNormal;\\n\t#ifdef USE_TANGENT\\n\t\ttransformedTangent = bm * transformedTangent;\\n\t#endif\\n#endif\\n#ifdef USE_INSTANCING\\n\tmat3 im = mat3( instanceMatrix );\\n\ttransformedNormal /= vec3( dot( im[ 0 ], im[ 0 ] ), dot( im[ 1 ], im[ 1 ] ), dot( im[ 2 ], im[ 2 ] ) );\\n\ttransformedNormal = im * transformedNormal;\\n\t#ifdef USE_TANGENT\\n\t\ttransformedTangent = im * transformedTangent;\\n\t#endif\\n#endif\\ntransformedNormal = normalMatrix * transformedNormal;\\n#ifdef FLIP_SIDED\\n\ttransformedNormal = - transformedNormal;\\n#endif\\n#ifdef USE_TANGENT\\n\ttransformedTangent = ( modelViewMatrix * vec4( transformedTangent, 0.0 ) ).xyz;\\n\t#ifdef FLIP_SIDED\\n\t\ttransformedTangent = - transformedTangent;\\n\t#endif\\n#endif\";\nvar displacementmap_pars_vertex = \"#ifdef USE_DISPLACEMENTMAP\\n\tuniform sampler2D displacementMap;\\n\tuniform float displacementScale;\\n\tuniform float displacementBias;\\n#endif\";\nvar displacementmap_vertex = \"#ifdef USE_DISPLACEMENTMAP\\n\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, vDisplacementMapUv ).x * displacementScale + displacementBias );\\n#endif\";\nvar emissivemap_fragment = \"#ifdef USE_EMISSIVEMAP\\n\tvec4 emissiveColor = texture2D( emissiveMap, vEmissiveMapUv );\\n\ttotalEmissiveRadiance *= emissiveColor.rgb;\\n#endif\";\nvar emissivemap_pars_fragment = \"#ifdef USE_EMISSIVEMAP\\n\tuniform sampler2D emissiveMap;\\n#endif\";\nvar colorspace_fragment = \"gl_FragColor = linearToOutputTexel( gl_FragColor );\";\nvar colorspace_pars_fragment = \"\\nconst mat3 LINEAR_SRGB_TO_LINEAR_DISPLAY_P3 = mat3(\\n\tvec3( 0.8224621, 0.177538, 0.0 ),\\n\tvec3( 0.0331941, 0.9668058, 0.0 ),\\n\tvec3( 0.0170827, 0.0723974, 0.9105199 )\\n);\\nconst mat3 LINEAR_DISPLAY_P3_TO_LINEAR_SRGB = mat3(\\n\tvec3( 1.2249401, - 0.2249404, 0.0 ),\\n\tvec3( - 0.0420569, 1.0420571, 0.0 ),\\n\tvec3( - 0.0196376, - 0.0786361, 1.0982735 )\\n);\\nvec4 LinearSRGBToLinearDisplayP3( in vec4 value ) {\\n\treturn vec4( value.rgb * LINEAR_SRGB_TO_LINEAR_DISPLAY_P3, value.a );\\n}\\nvec4 LinearDisplayP3ToLinearSRGB( in vec4 value ) {\\n\treturn vec4( value.rgb * LINEAR_DISPLAY_P3_TO_LINEAR_SRGB, value.a );\\n}\\nvec4 LinearTransferOETF( in vec4 value ) {\\n\treturn value;\\n}\\nvec4 sRGBTransferOETF( in vec4 value ) {\\n\treturn vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a );\\n}\";\nvar envmap_fragment = \"#ifdef USE_ENVMAP\\n\t#ifdef ENV_WORLDPOS\\n\t\tvec3 cameraToFrag;\\n\t\tif ( isOrthographic ) {\\n\t\t\tcameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\\n\t\t} else {\\n\t\t\tcameraToFrag = normalize( vWorldPosition - cameraPosition );\\n\t\t}\\n\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\\n\t\t#ifdef ENVMAP_MODE_REFLECTION\\n\t\t\tvec3 reflectVec = reflect( cameraToFrag, worldNormal );\\n\t\t#else\\n\t\t\tvec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );\\n\t\t#endif\\n\t#else\\n\t\tvec3 reflectVec = vReflect;\\n\t#endif\\n\t#ifdef ENVMAP_TYPE_CUBE\\n\t\tvec4 envColor = textureCube( envMap, envMapRotation * vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\\n\t#else\\n\t\tvec4 envColor = vec4( 0.0 );\\n\t#endif\\n\t#ifdef ENVMAP_BLENDING_MULTIPLY\\n\t\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\\n\t#elif defined( ENVMAP_BLENDING_MIX )\\n\t\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\\n\t#elif defined( ENVMAP_BLENDING_ADD )\\n\t\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\\n\t#endif\\n#endif\";\nvar envmap_common_pars_fragment = \"#ifdef USE_ENVMAP\\n\tuniform float envMapIntensity;\\n\tuniform float flipEnvMap;\\n\tuniform mat3 envMapRotation;\\n\t#ifdef ENVMAP_TYPE_CUBE\\n\t\tuniform samplerCube envMap;\\n\t#else\\n\t\tuniform sampler2D envMap;\\n\t#endif\\n\t\\n#endif\";\nvar envmap_pars_fragment = \"#ifdef USE_ENVMAP\\n\tuniform float reflectivity;\\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\\n\t\t#define ENV_WORLDPOS\\n\t#endif\\n\t#ifdef ENV_WORLDPOS\\n\t\tvarying vec3 vWorldPosition;\\n\t\tuniform float refractionRatio;\\n\t#else\\n\t\tvarying vec3 vReflect;\\n\t#endif\\n#endif\";\nvar envmap_pars_vertex = \"#ifdef USE_ENVMAP\\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\\n\t\t#define ENV_WORLDPOS\\n\t#endif\\n\t#ifdef ENV_WORLDPOS\\n\t\t\\n\t\tvarying vec3 vWorldPosition;\\n\t#else\\n\t\tvarying vec3 vReflect;\\n\t\tuniform float refractionRatio;\\n\t#endif\\n#endif\";\nvar envmap_vertex = \"#ifdef USE_ENVMAP\\n\t#ifdef ENV_WORLDPOS\\n\t\tvWorldPosition = worldPosition.xyz;\\n\t#else\\n\t\tvec3 cameraToVertex;\\n\t\tif ( isOrthographic ) {\\n\t\t\tcameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\\n\t\t} else {\\n\t\t\tcameraToVertex = normalize( worldPosition.xyz - cameraPosition );\\n\t\t}\\n\t\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\\n\t\t#ifdef ENVMAP_MODE_REFLECTION\\n\t\t\tvReflect = reflect( cameraToVertex, worldNormal );\\n\t\t#else\\n\t\t\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\\n\t\t#endif\\n\t#endif\\n#endif\";\nvar fog_vertex = \"#ifdef USE_FOG\\n\tvFogDepth = - mvPosition.z;\\n#endif\";\nvar fog_pars_vertex = \"#ifdef USE_FOG\\n\tvarying float vFogDepth;\\n#endif\";\nvar fog_fragment = \"#ifdef USE_FOG\\n\t#ifdef FOG_EXP2\\n\t\tfloat fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth );\\n\t#else\\n\t\tfloat fogFactor = smoothstep( fogNear, fogFar, vFogDepth );\\n\t#endif\\n\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\\n#endif\";\nvar fog_pars_fragment = \"#ifdef USE_FOG\\n\tuniform vec3 fogColor;\\n\tvarying float vFogDepth;\\n\t#ifdef FOG_EXP2\\n\t\tuniform float fogDensity;\\n\t#else\\n\t\tuniform float fogNear;\\n\t\tuniform float fogFar;\\n\t#endif\\n#endif\";\nvar gradientmap_pars_fragment = \"#ifdef USE_GRADIENTMAP\\n\tuniform sampler2D gradientMap;\\n#endif\\nvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\\n\tfloat dotNL = dot( normal, lightDirection );\\n\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\\n\t#ifdef USE_GRADIENTMAP\\n\t\treturn vec3( texture2D( gradientMap, coord ).r );\\n\t#else\\n\t\tvec2 fw = fwidth( coord ) * 0.5;\\n\t\treturn mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) );\\n\t#endif\\n}\";\nvar lightmap_pars_fragment = \"#ifdef USE_LIGHTMAP\\n\tuniform sampler2D lightMap;\\n\tuniform float lightMapIntensity;\\n#endif\";\nvar lights_lambert_fragment = \"LambertMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb;\\nmaterial.specularStrength = specularStrength;\";\nvar lights_lambert_pars_fragment = \"varying vec3 vViewPosition;\\nstruct LambertMaterial {\\n\tvec3 diffuseColor;\\n\tfloat specularStrength;\\n};\\nvoid RE_Direct_Lambert( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\\n\tfloat dotNL = saturate( dot( geometryNormal, directLight.direction ) );\\n\tvec3 irradiance = dotNL * directLight.color;\\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\nvoid RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\n#define RE_Direct\t\t\t\tRE_Direct_Lambert\\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Lambert\";\nvar lights_pars_begin = \"uniform bool receiveShadow;\\nuniform vec3 ambientLightColor;\\n#if defined( USE_LIGHT_PROBES )\\n\tuniform vec3 lightProbe[ 9 ];\\n#endif\\nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\\n\tfloat x = normal.x, y = normal.y, z = normal.z;\\n\tvec3 result = shCoefficients[ 0 ] * 0.886227;\\n\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\\n\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\\n\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\\n\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\\n\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\\n\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\\n\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\\n\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\\n\treturn result;\\n}\\nvec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) {\\n\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\\n\tvec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\\n\treturn irradiance;\\n}\\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\\n\tvec3 irradiance = ambientLightColor;\\n\treturn irradiance;\\n}\\nfloat getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\\n\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\\n\tif ( cutoffDistance > 0.0 ) {\\n\t\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\\n\t}\\n\treturn distanceFalloff;\\n}\\nfloat getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) {\\n\treturn smoothstep( coneCosine, penumbraCosine, angleCosine );\\n}\\n#if NUM_DIR_LIGHTS > 0\\n\tstruct DirectionalLight {\\n\t\tvec3 direction;\\n\t\tvec3 color;\\n\t};\\n\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\\n\tvoid getDirectionalLightInfo( const in DirectionalLight directionalLight, out IncidentLight light ) {\\n\t\tlight.color = directionalLight.color;\\n\t\tlight.direction = directionalLight.direction;\\n\t\tlight.visible = true;\\n\t}\\n#endif\\n#if NUM_POINT_LIGHTS > 0\\n\tstruct PointLight {\\n\t\tvec3 position;\\n\t\tvec3 color;\\n\t\tfloat distance;\\n\t\tfloat decay;\\n\t};\\n\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\\n\tvoid getPointLightInfo( const in PointLight pointLight, const in vec3 geometryPosition, out IncidentLight light ) {\\n\t\tvec3 lVector = pointLight.position - geometryPosition;\\n\t\tlight.direction = normalize( lVector );\\n\t\tfloat lightDistance = length( lVector );\\n\t\tlight.color = pointLight.color;\\n\t\tlight.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay );\\n\t\tlight.visible = ( light.color != vec3( 0.0 ) );\\n\t}\\n#endif\\n#if NUM_SPOT_LIGHTS > 0\\n\tstruct SpotLight {\\n\t\tvec3 position;\\n\t\tvec3 direction;\\n\t\tvec3 color;\\n\t\tfloat distance;\\n\t\tfloat decay;\\n\t\tfloat coneCos;\\n\t\tfloat penumbraCos;\\n\t};\\n\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\\n\tvoid getSpotLightInfo( const in SpotLight spotLight, const in vec3 geometryPosition, out IncidentLight light ) {\\n\t\tvec3 lVector = spotLight.position - geometryPosition;\\n\t\tlight.direction = normalize( lVector );\\n\t\tfloat angleCos = dot( light.direction, spotLight.direction );\\n\t\tfloat spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos );\\n\t\tif ( spotAttenuation > 0.0 ) {\\n\t\t\tfloat lightDistance = length( lVector );\\n\t\t\tlight.color = spotLight.color * spotAttenuation;\\n\t\t\tlight.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay );\\n\t\t\tlight.visible = ( light.color != vec3( 0.0 ) );\\n\t\t} else {\\n\t\t\tlight.color = vec3( 0.0 );\\n\t\t\tlight.visible = false;\\n\t\t}\\n\t}\\n#endif\\n#if NUM_RECT_AREA_LIGHTS > 0\\n\tstruct RectAreaLight {\\n\t\tvec3 color;\\n\t\tvec3 position;\\n\t\tvec3 halfWidth;\\n\t\tvec3 halfHeight;\\n\t};\\n\tuniform sampler2D ltc_1;\tuniform sampler2D ltc_2;\\n\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\\n#endif\\n#if NUM_HEMI_LIGHTS > 0\\n\tstruct HemisphereLight {\\n\t\tvec3 direction;\\n\t\tvec3 skyColor;\\n\t\tvec3 groundColor;\\n\t};\\n\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\\n\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) {\\n\t\tfloat dotNL = dot( normal, hemiLight.direction );\\n\t\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\\n\t\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\\n\t\treturn irradiance;\\n\t}\\n#endif\";\nvar envmap_physical_pars_fragment = \"#ifdef USE_ENVMAP\\n\tvec3 getIBLIrradiance( const in vec3 normal ) {\\n\t\t#ifdef ENVMAP_TYPE_CUBE_UV\\n\t\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, envMapRotation * worldNormal, 1.0 );\\n\t\t\treturn PI * envMapColor.rgb * envMapIntensity;\\n\t\t#else\\n\t\t\treturn vec3( 0.0 );\\n\t\t#endif\\n\t}\\n\tvec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {\\n\t\t#ifdef ENVMAP_TYPE_CUBE_UV\\n\t\t\tvec3 reflectVec = reflect( - viewDir, normal );\\n\t\t\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\\n\t\t\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, envMapRotation * reflectVec, roughness );\\n\t\t\treturn envMapColor.rgb * envMapIntensity;\\n\t\t#else\\n\t\t\treturn vec3( 0.0 );\\n\t\t#endif\\n\t}\\n\t#ifdef USE_ANISOTROPY\\n\t\tvec3 getIBLAnisotropyRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in vec3 bitangent, const in float anisotropy ) {\\n\t\t\t#ifdef ENVMAP_TYPE_CUBE_UV\\n\t\t\t\tvec3 bentNormal = cross( bitangent, viewDir );\\n\t\t\t\tbentNormal = normalize( cross( bentNormal, bitangent ) );\\n\t\t\t\tbentNormal = normalize( mix( bentNormal, normal, pow2( pow2( 1.0 - anisotropy * ( 1.0 - roughness ) ) ) ) );\\n\t\t\t\treturn getIBLRadiance( viewDir, bentNormal, roughness );\\n\t\t\t#else\\n\t\t\t\treturn vec3( 0.0 );\\n\t\t\t#endif\\n\t\t}\\n\t#endif\\n#endif\";\nvar lights_toon_fragment = \"ToonMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb;\";\nvar lights_toon_pars_fragment = \"varying vec3 vViewPosition;\\nstruct ToonMaterial {\\n\tvec3 diffuseColor;\\n};\\nvoid RE_Direct_Toon( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\\n\tvec3 irradiance = getGradientIrradiance( geometryNormal, directLight.direction ) * directLight.color;\\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\nvoid RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\n#define RE_Direct\t\t\t\tRE_Direct_Toon\\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Toon\";\nvar lights_phong_fragment = \"BlinnPhongMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb;\\nmaterial.specularColor = specular;\\nmaterial.specularShininess = shininess;\\nmaterial.specularStrength = specularStrength;\";\nvar lights_phong_pars_fragment = \"varying vec3 vViewPosition;\\nstruct BlinnPhongMaterial {\\n\tvec3 diffuseColor;\\n\tvec3 specularColor;\\n\tfloat specularShininess;\\n\tfloat specularStrength;\\n};\\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\\n\tfloat dotNL = saturate( dot( geometryNormal, directLight.direction ) );\\n\tvec3 irradiance = dotNL * directLight.color;\\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n\treflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometryViewDir, geometryNormal, material.specularColor, material.specularShininess ) * material.specularStrength;\\n}\\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\n#define RE_Direct\t\t\t\tRE_Direct_BlinnPhong\\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_BlinnPhong\";\nvar lights_physical_fragment = \"PhysicalMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\\nvec3 dxy = max( abs( dFdx( nonPerturbedNormal ) ), abs( dFdy( nonPerturbedNormal ) ) );\\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\\nmaterial.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness;\\nmaterial.roughness = min( material.roughness, 1.0 );\\n#ifdef IOR\\n\tmaterial.ior = ior;\\n\t#ifdef USE_SPECULAR\\n\t\tfloat specularIntensityFactor = specularIntensity;\\n\t\tvec3 specularColorFactor = specularColor;\\n\t\t#ifdef USE_SPECULAR_COLORMAP\\n\t\t\tspecularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb;\\n\t\t#endif\\n\t\t#ifdef USE_SPECULAR_INTENSITYMAP\\n\t\t\tspecularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a;\\n\t\t#endif\\n\t\tmaterial.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor );\\n\t#else\\n\t\tfloat specularIntensityFactor = 1.0;\\n\t\tvec3 specularColorFactor = vec3( 1.0 );\\n\t\tmaterial.specularF90 = 1.0;\\n\t#endif\\n\tmaterial.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor );\\n#else\\n\tmaterial.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor );\\n\tmaterial.specularF90 = 1.0;\\n#endif\\n#ifdef USE_CLEARCOAT\\n\tmaterial.clearcoat = clearcoat;\\n\tmaterial.clearcoatRoughness = clearcoatRoughness;\\n\tmaterial.clearcoatF0 = vec3( 0.04 );\\n\tmaterial.clearcoatF90 = 1.0;\\n\t#ifdef USE_CLEARCOATMAP\\n\t\tmaterial.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x;\\n\t#endif\\n\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\n\t\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y;\\n\t#endif\\n\tmaterial.clearcoat = saturate( material.clearcoat );\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\\n\tmaterial.clearcoatRoughness += geometryRoughness;\\n\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\\n#endif\\n#ifdef USE_DISPERSION\\n\tmaterial.dispersion = dispersion;\\n#endif\\n#ifdef USE_IRIDESCENCE\\n\tmaterial.iridescence = iridescence;\\n\tmaterial.iridescenceIOR = iridescenceIOR;\\n\t#ifdef USE_IRIDESCENCEMAP\\n\t\tmaterial.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r;\\n\t#endif\\n\t#ifdef USE_IRIDESCENCE_THICKNESSMAP\\n\t\tmaterial.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum;\\n\t#else\\n\t\tmaterial.iridescenceThickness = iridescenceThicknessMaximum;\\n\t#endif\\n#endif\\n#ifdef USE_SHEEN\\n\tmaterial.sheenColor = sheenColor;\\n\t#ifdef USE_SHEEN_COLORMAP\\n\t\tmaterial.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb;\\n\t#endif\\n\tmaterial.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );\\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\\n\t\tmaterial.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a;\\n\t#endif\\n#endif\\n#ifdef USE_ANISOTROPY\\n\t#ifdef USE_ANISOTROPYMAP\\n\t\tmat2 anisotropyMat = mat2( anisotropyVector.x, anisotropyVector.y, - anisotropyVector.y, anisotropyVector.x );\\n\t\tvec3 anisotropyPolar = texture2D( anisotropyMap, vAnisotropyMapUv ).rgb;\\n\t\tvec2 anisotropyV = anisotropyMat * normalize( 2.0 * anisotropyPolar.rg - vec2( 1.0 ) ) * anisotropyPolar.b;\\n\t#else\\n\t\tvec2 anisotropyV = anisotropyVector;\\n\t#endif\\n\tmaterial.anisotropy = length( anisotropyV );\\n\tif( material.anisotropy == 0.0 ) {\\n\t\tanisotropyV = vec2( 1.0, 0.0 );\\n\t} else {\\n\t\tanisotropyV /= material.anisotropy;\\n\t\tmaterial.anisotropy = saturate( material.anisotropy );\\n\t}\\n\tmaterial.alphaT = mix( pow2( material.roughness ), 1.0, pow2( material.anisotropy ) );\\n\tmaterial.anisotropyT = tbn[ 0 ] * anisotropyV.x + tbn[ 1 ] * anisotropyV.y;\\n\tmaterial.anisotropyB = tbn[ 1 ] * anisotropyV.x - tbn[ 0 ] * anisotropyV.y;\\n#endif\";\nvar lights_physical_pars_fragment = \"struct PhysicalMaterial {\\n\tvec3 diffuseColor;\\n\tfloat roughness;\\n\tvec3 specularColor;\\n\tfloat specularF90;\\n\tfloat dispersion;\\n\t#ifdef USE_CLEARCOAT\\n\t\tfloat clearcoat;\\n\t\tfloat clearcoatRoughness;\\n\t\tvec3 clearcoatF0;\\n\t\tfloat clearcoatF90;\\n\t#endif\\n\t#ifdef USE_IRIDESCENCE\\n\t\tfloat iridescence;\\n\t\tfloat iridescenceIOR;\\n\t\tfloat iridescenceThickness;\\n\t\tvec3 iridescenceFresnel;\\n\t\tvec3 iridescenceF0;\\n\t#endif\\n\t#ifdef USE_SHEEN\\n\t\tvec3 sheenColor;\\n\t\tfloat sheenRoughness;\\n\t#endif\\n\t#ifdef IOR\\n\t\tfloat ior;\\n\t#endif\\n\t#ifdef USE_TRANSMISSION\\n\t\tfloat transmission;\\n\t\tfloat transmissionAlpha;\\n\t\tfloat thickness;\\n\t\tfloat attenuationDistance;\\n\t\tvec3 attenuationColor;\\n\t#endif\\n\t#ifdef USE_ANISOTROPY\\n\t\tfloat anisotropy;\\n\t\tfloat alphaT;\\n\t\tvec3 anisotropyT;\\n\t\tvec3 anisotropyB;\\n\t#endif\\n};\\nvec3 clearcoatSpecularDirect = vec3( 0.0 );\\nvec3 clearcoatSpecularIndirect = vec3( 0.0 );\\nvec3 sheenSpecularDirect = vec3( 0.0 );\\nvec3 sheenSpecularIndirect = vec3(0.0 );\\nvec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) {\\n    float x = clamp( 1.0 - dotVH, 0.0, 1.0 );\\n    float x2 = x * x;\\n    float x5 = clamp( x * x2 * x2, 0.0, 0.9999 );\\n    return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 );\\n}\\nfloat V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\\n\tfloat a2 = pow2( alpha );\\n\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\\n\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\\n\treturn 0.5 / max( gv + gl, EPSILON );\\n}\\nfloat D_GGX( const in float alpha, const in float dotNH ) {\\n\tfloat a2 = pow2( alpha );\\n\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\\n\treturn RECIPROCAL_PI * a2 / pow2( denom );\\n}\\n#ifdef USE_ANISOTROPY\\n\tfloat V_GGX_SmithCorrelated_Anisotropic( const in float alphaT, const in float alphaB, const in float dotTV, const in float dotBV, const in float dotTL, const in float dotBL, const in float dotNV, const in float dotNL ) {\\n\t\tfloat gv = dotNL * length( vec3( alphaT * dotTV, alphaB * dotBV, dotNV ) );\\n\t\tfloat gl = dotNV * length( vec3( alphaT * dotTL, alphaB * dotBL, dotNL ) );\\n\t\tfloat v = 0.5 / ( gv + gl );\\n\t\treturn saturate(v);\\n\t}\\n\tfloat D_GGX_Anisotropic( const in float alphaT, const in float alphaB, const in float dotNH, const in float dotTH, const in float dotBH ) {\\n\t\tfloat a2 = alphaT * alphaB;\\n\t\thighp vec3 v = vec3( alphaB * dotTH, alphaT * dotBH, a2 * dotNH );\\n\t\thighp float v2 = dot( v, v );\\n\t\tfloat w2 = a2 / v2;\\n\t\treturn RECIPROCAL_PI * a2 * pow2 ( w2 );\\n\t}\\n#endif\\n#ifdef USE_CLEARCOAT\\n\tvec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) {\\n\t\tvec3 f0 = material.clearcoatF0;\\n\t\tfloat f90 = material.clearcoatF90;\\n\t\tfloat roughness = material.clearcoatRoughness;\\n\t\tfloat alpha = pow2( roughness );\\n\t\tvec3 halfDir = normalize( lightDir + viewDir );\\n\t\tfloat dotNL = saturate( dot( normal, lightDir ) );\\n\t\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\t\tfloat dotNH = saturate( dot( normal, halfDir ) );\\n\t\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\\n\t\tvec3 F = F_Schlick( f0, f90, dotVH );\\n\t\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\\n\t\tfloat D = D_GGX( alpha, dotNH );\\n\t\treturn F * ( V * D );\\n\t}\\n#endif\\nvec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) {\\n\tvec3 f0 = material.specularColor;\\n\tfloat f90 = material.specularF90;\\n\tfloat roughness = material.roughness;\\n\tfloat alpha = pow2( roughness );\\n\tvec3 halfDir = normalize( lightDir + viewDir );\\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\\n\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\\n\tvec3 F = F_Schlick( f0, f90, dotVH );\\n\t#ifdef USE_IRIDESCENCE\\n\t\tF = mix( F, material.iridescenceFresnel, material.iridescence );\\n\t#endif\\n\t#ifdef USE_ANISOTROPY\\n\t\tfloat dotTL = dot( material.anisotropyT, lightDir );\\n\t\tfloat dotTV = dot( material.anisotropyT, viewDir );\\n\t\tfloat dotTH = dot( material.anisotropyT, halfDir );\\n\t\tfloat dotBL = dot( material.anisotropyB, lightDir );\\n\t\tfloat dotBV = dot( material.anisotropyB, viewDir );\\n\t\tfloat dotBH = dot( material.anisotropyB, halfDir );\\n\t\tfloat V = V_GGX_SmithCorrelated_Anisotropic( material.alphaT, alpha, dotTV, dotBV, dotTL, dotBL, dotNV, dotNL );\\n\t\tfloat D = D_GGX_Anisotropic( material.alphaT, alpha, dotNH, dotTH, dotBH );\\n\t#else\\n\t\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\\n\t\tfloat D = D_GGX( alpha, dotNH );\\n\t#endif\\n\treturn F * ( V * D );\\n}\\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\\n\tconst float LUT_SIZE = 64.0;\\n\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\\n\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\\n\tfloat dotNV = saturate( dot( N, V ) );\\n\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\\n\tuv = uv * LUT_SCALE + LUT_BIAS;\\n\treturn uv;\\n}\\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\\n\tfloat l = length( f );\\n\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\\n}\\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\\n\tfloat x = dot( v1, v2 );\\n\tfloat y = abs( x );\\n\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\\n\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\\n\tfloat v = a / b;\\n\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\\n\treturn cross( v1, v2 ) * theta_sintheta;\\n}\\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\\n\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\\n\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\\n\tvec3 lightNormal = cross( v1, v2 );\\n\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\\n\tvec3 T1, T2;\\n\tT1 = normalize( V - N * dot( V, N ) );\\n\tT2 = - cross( N, T1 );\\n\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\\n\tvec3 coords[ 4 ];\\n\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\\n\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\\n\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\\n\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\\n\tcoords[ 0 ] = normalize( coords[ 0 ] );\\n\tcoords[ 1 ] = normalize( coords[ 1 ] );\\n\tcoords[ 2 ] = normalize( coords[ 2 ] );\\n\tcoords[ 3 ] = normalize( coords[ 3 ] );\\n\tvec3 vectorFormFactor = vec3( 0.0 );\\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\\n\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\\n\treturn vec3( result );\\n}\\n#if defined( USE_SHEEN )\\nfloat D_Charlie( float roughness, float dotNH ) {\\n\tfloat alpha = pow2( roughness );\\n\tfloat invAlpha = 1.0 / alpha;\\n\tfloat cos2h = dotNH * dotNH;\\n\tfloat sin2h = max( 1.0 - cos2h, 0.0078125 );\\n\treturn ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI );\\n}\\nfloat V_Neubelt( float dotNV, float dotNL ) {\\n\treturn saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) );\\n}\\nvec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) {\\n\tvec3 halfDir = normalize( lightDir + viewDir );\\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\\n\tfloat D = D_Charlie( sheenRoughness, dotNH );\\n\tfloat V = V_Neubelt( dotNV, dotNL );\\n\treturn sheenColor * ( D * V );\\n}\\n#endif\\nfloat IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\tfloat r2 = roughness * roughness;\\n\tfloat a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95;\\n\tfloat b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72;\\n\tfloat DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) );\\n\treturn saturate( DG * RECIPROCAL_PI );\\n}\\nvec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\\n\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\\n\tvec4 r = roughness * c0 + c1;\\n\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\\n\tvec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw;\\n\treturn fab;\\n}\\nvec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) {\\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\\n\treturn specularColor * fab.x + specularF90 * fab.y;\\n}\\n#ifdef USE_IRIDESCENCE\\nvoid computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\\n#else\\nvoid computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\\n#endif\\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\\n\t#ifdef USE_IRIDESCENCE\\n\t\tvec3 Fr = mix( specularColor, iridescenceF0, iridescence );\\n\t#else\\n\t\tvec3 Fr = specularColor;\\n\t#endif\\n\tvec3 FssEss = Fr * fab.x + specularF90 * fab.y;\\n\tfloat Ess = fab.x + fab.y;\\n\tfloat Ems = 1.0 - Ess;\\n\tvec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619;\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\\n\tsingleScatter += FssEss;\\n\tmultiScatter += Fms * Ems;\\n}\\n#if NUM_RECT_AREA_LIGHTS > 0\\n\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\t\tvec3 normal = geometryNormal;\\n\t\tvec3 viewDir = geometryViewDir;\\n\t\tvec3 position = geometryPosition;\\n\t\tvec3 lightPos = rectAreaLight.position;\\n\t\tvec3 halfWidth = rectAreaLight.halfWidth;\\n\t\tvec3 halfHeight = rectAreaLight.halfHeight;\\n\t\tvec3 lightColor = rectAreaLight.color;\\n\t\tfloat roughness = material.roughness;\\n\t\tvec3 rectCoords[ 4 ];\\n\t\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight;\t\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\\n\t\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\\n\t\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\\n\t\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\\n\t\tvec4 t1 = texture2D( ltc_1, uv );\\n\t\tvec4 t2 = texture2D( ltc_2, uv );\\n\t\tmat3 mInv = mat3(\\n\t\t\tvec3( t1.x, 0, t1.y ),\\n\t\t\tvec3(    0, 1,    0 ),\\n\t\t\tvec3( t1.z, 0, t1.w )\\n\t\t);\\n\t\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\\n\t\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\\n\t\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\\n\t}\\n#endif\\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\tfloat dotNL = saturate( dot( geometryNormal, directLight.direction ) );\\n\tvec3 irradiance = dotNL * directLight.color;\\n\t#ifdef USE_CLEARCOAT\\n\t\tfloat dotNLcc = saturate( dot( geometryClearcoatNormal, directLight.direction ) );\\n\t\tvec3 ccIrradiance = dotNLcc * directLight.color;\\n\t\tclearcoatSpecularDirect += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometryViewDir, geometryClearcoatNormal, material );\\n\t#endif\\n\t#ifdef USE_SHEEN\\n\t\tsheenSpecularDirect += irradiance * BRDF_Sheen( directLight.direction, geometryViewDir, geometryNormal, material.sheenColor, material.sheenRoughness );\\n\t#endif\\n\treflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometryViewDir, geometryNormal, material );\\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\\n\t#ifdef USE_CLEARCOAT\\n\t\tclearcoatSpecularIndirect += clearcoatRadiance * EnvironmentBRDF( geometryClearcoatNormal, geometryViewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\\n\t#endif\\n\t#ifdef USE_SHEEN\\n\t\tsheenSpecularIndirect += irradiance * material.sheenColor * IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness );\\n\t#endif\\n\tvec3 singleScattering = vec3( 0.0 );\\n\tvec3 multiScattering = vec3( 0.0 );\\n\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\\n\t#ifdef USE_IRIDESCENCE\\n\t\tcomputeMultiscatteringIridescence( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering );\\n\t#else\\n\t\tcomputeMultiscattering( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering );\\n\t#endif\\n\tvec3 totalScattering = singleScattering + multiScattering;\\n\tvec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) );\\n\treflectedLight.indirectSpecular += radiance * singleScattering;\\n\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\\n\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\\n}\\n#define RE_Direct\t\t\t\tRE_Direct_Physical\\n#define RE_Direct_RectArea\t\tRE_Direct_RectArea_Physical\\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Physical\\n#define RE_IndirectSpecular\t\tRE_IndirectSpecular_Physical\\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\\n\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\\n}\";\nvar lights_fragment_begin = \"\\nvec3 geometryPosition = - vViewPosition;\\nvec3 geometryNormal = normal;\\nvec3 geometryViewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\\nvec3 geometryClearcoatNormal = vec3( 0.0 );\\n#ifdef USE_CLEARCOAT\\n\tgeometryClearcoatNormal = clearcoatNormal;\\n#endif\\n#ifdef USE_IRIDESCENCE\\n\tfloat dotNVi = saturate( dot( normal, geometryViewDir ) );\\n\tif ( material.iridescenceThickness == 0.0 ) {\\n\t\tmaterial.iridescence = 0.0;\\n\t} else {\\n\t\tmaterial.iridescence = saturate( material.iridescence );\\n\t}\\n\tif ( material.iridescence > 0.0 ) {\\n\t\tmaterial.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor );\\n\t\tmaterial.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi );\\n\t}\\n#endif\\nIncidentLight directLight;\\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\\n\tPointLight pointLight;\\n\t#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\\n\tPointLightShadow pointLightShadow;\\n\t#endif\\n\t#pragma unroll_loop_start\\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\\n\t\tpointLight = pointLights[ i ];\\n\t\tgetPointLightInfo( pointLight, geometryPosition, directLight );\\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\\n\t\tpointLightShadow = pointLightShadows[ i ];\\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowIntensity, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\\n\t\t#endif\\n\t\tRE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\\n\t}\\n\t#pragma unroll_loop_end\\n#endif\\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\\n\tSpotLight spotLight;\\n\tvec4 spotColor;\\n\tvec3 spotLightCoord;\\n\tbool inSpotLightMap;\\n\t#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\\n\tSpotLightShadow spotLightShadow;\\n\t#endif\\n\t#pragma unroll_loop_start\\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\\n\t\tspotLight = spotLights[ i ];\\n\t\tgetSpotLightInfo( spotLight, geometryPosition, directLight );\\n\t\t#if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\\n\t\t#define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX\\n\t\t#elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\\n\t\t#define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS\\n\t\t#else\\n\t\t#define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\\n\t\t#endif\\n\t\t#if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS )\\n\t\t\tspotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w;\\n\t\t\tinSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) );\\n\t\t\tspotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy );\\n\t\t\tdirectLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color;\\n\t\t#endif\\n\t\t#undef SPOT_LIGHT_MAP_INDEX\\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\\n\t\tspotLightShadow = spotLightShadows[ i ];\\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowIntensity, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\\n\t\t#endif\\n\t\tRE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\\n\t}\\n\t#pragma unroll_loop_end\\n#endif\\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\\n\tDirectionalLight directionalLight;\\n\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\\n\tDirectionalLightShadow directionalLightShadow;\\n\t#endif\\n\t#pragma unroll_loop_start\\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\\n\t\tdirectionalLight = directionalLights[ i ];\\n\t\tgetDirectionalLightInfo( directionalLight, directLight );\\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\\n\t\tdirectionalLightShadow = directionalLightShadows[ i ];\\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowIntensity, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\\n\t\t#endif\\n\t\tRE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\\n\t}\\n\t#pragma unroll_loop_end\\n#endif\\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\\n\tRectAreaLight rectAreaLight;\\n\t#pragma unroll_loop_start\\n\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\\n\t\trectAreaLight = rectAreaLights[ i ];\\n\t\tRE_Direct_RectArea( rectAreaLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\\n\t}\\n\t#pragma unroll_loop_end\\n#endif\\n#if defined( RE_IndirectDiffuse )\\n\tvec3 iblIrradiance = vec3( 0.0 );\\n\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\\n\t#if defined( USE_LIGHT_PROBES )\\n\t\tirradiance += getLightProbeIrradiance( lightProbe, geometryNormal );\\n\t#endif\\n\t#if ( NUM_HEMI_LIGHTS > 0 )\\n\t\t#pragma unroll_loop_start\\n\t\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\\n\t\t\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometryNormal );\\n\t\t}\\n\t\t#pragma unroll_loop_end\\n\t#endif\\n#endif\\n#if defined( RE_IndirectSpecular )\\n\tvec3 radiance = vec3( 0.0 );\\n\tvec3 clearcoatRadiance = vec3( 0.0 );\\n#endif\";\nvar lights_fragment_maps = \"#if defined( RE_IndirectDiffuse )\\n\t#ifdef USE_LIGHTMAP\\n\t\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\\n\t\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\\n\t\tirradiance += lightMapIrradiance;\\n\t#endif\\n\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\\n\t\tiblIrradiance += getIBLIrradiance( geometryNormal );\\n\t#endif\\n#endif\\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\\n\t#ifdef USE_ANISOTROPY\\n\t\tradiance += getIBLAnisotropyRadiance( geometryViewDir, geometryNormal, material.roughness, material.anisotropyB, material.anisotropy );\\n\t#else\\n\t\tradiance += getIBLRadiance( geometryViewDir, geometryNormal, material.roughness );\\n\t#endif\\n\t#ifdef USE_CLEARCOAT\\n\t\tclearcoatRadiance += getIBLRadiance( geometryViewDir, geometryClearcoatNormal, material.clearcoatRoughness );\\n\t#endif\\n#endif\";\nvar lights_fragment_end = \"#if defined( RE_IndirectDiffuse )\\n\tRE_IndirectDiffuse( irradiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\\n#endif\\n#if defined( RE_IndirectSpecular )\\n\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\\n#endif\";\nvar logdepthbuf_fragment = \"#if defined( USE_LOGDEPTHBUF )\\n\tgl_FragDepth = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\\n#endif\";\nvar logdepthbuf_pars_fragment = \"#if defined( USE_LOGDEPTHBUF )\\n\tuniform float logDepthBufFC;\\n\tvarying float vFragDepth;\\n\tvarying float vIsPerspective;\\n#endif\";\nvar logdepthbuf_pars_vertex = \"#ifdef USE_LOGDEPTHBUF\\n\tvarying float vFragDepth;\\n\tvarying float vIsPerspective;\\n#endif\";\nvar logdepthbuf_vertex = \"#ifdef USE_LOGDEPTHBUF\\n\tvFragDepth = 1.0 + gl_Position.w;\\n\tvIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );\\n#endif\";\nvar map_fragment = \"#ifdef USE_MAP\\n\tvec4 sampledDiffuseColor = texture2D( map, vMapUv );\\n\t#ifdef DECODE_VIDEO_TEXTURE\\n\t\tsampledDiffuseColor = vec4( mix( pow( sampledDiffuseColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), sampledDiffuseColor.rgb * 0.0773993808, vec3( lessThanEqual( sampledDiffuseColor.rgb, vec3( 0.04045 ) ) ) ), sampledDiffuseColor.w );\\n\t\\n\t#endif\\n\tdiffuseColor *= sampledDiffuseColor;\\n#endif\";\nvar map_pars_fragment = \"#ifdef USE_MAP\\n\tuniform sampler2D map;\\n#endif\";\nvar map_particle_fragment = \"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\\n\t#if defined( USE_POINTS_UV )\\n\t\tvec2 uv = vUv;\\n\t#else\\n\t\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\\n\t#endif\\n#endif\\n#ifdef USE_MAP\\n\tdiffuseColor *= texture2D( map, uv );\\n#endif\\n#ifdef USE_ALPHAMAP\\n\tdiffuseColor.a *= texture2D( alphaMap, uv ).g;\\n#endif\";\nvar map_particle_pars_fragment = \"#if defined( USE_POINTS_UV )\\n\tvarying vec2 vUv;\\n#else\\n\t#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\\n\t\tuniform mat3 uvTransform;\\n\t#endif\\n#endif\\n#ifdef USE_MAP\\n\tuniform sampler2D map;\\n#endif\\n#ifdef USE_ALPHAMAP\\n\tuniform sampler2D alphaMap;\\n#endif\";\nvar metalnessmap_fragment = \"float metalnessFactor = metalness;\\n#ifdef USE_METALNESSMAP\\n\tvec4 texelMetalness = texture2D( metalnessMap, vMetalnessMapUv );\\n\tmetalnessFactor *= texelMetalness.b;\\n#endif\";\nvar metalnessmap_pars_fragment = \"#ifdef USE_METALNESSMAP\\n\tuniform sampler2D metalnessMap;\\n#endif\";\nvar morphinstance_vertex = \"#ifdef USE_INSTANCING_MORPH\\n\tfloat morphTargetInfluences[ MORPHTARGETS_COUNT ];\\n\tfloat morphTargetBaseInfluence = texelFetch( morphTexture, ivec2( 0, gl_InstanceID ), 0 ).r;\\n\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\\n\t\tmorphTargetInfluences[i] =  texelFetch( morphTexture, ivec2( i + 1, gl_InstanceID ), 0 ).r;\\n\t}\\n#endif\";\nvar morphcolor_vertex = \"#if defined( USE_MORPHCOLORS )\\n\tvColor *= morphTargetBaseInfluence;\\n\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\\n\t\t#if defined( USE_COLOR_ALPHA )\\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ];\\n\t\t#elif defined( USE_COLOR )\\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ];\\n\t\t#endif\\n\t}\\n#endif\";\nvar morphnormal_vertex = \"#ifdef USE_MORPHNORMALS\\n\tobjectNormal *= morphTargetBaseInfluence;\\n\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\\n\t\tif ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ];\\n\t}\\n#endif\";\nvar morphtarget_pars_vertex = \"#ifdef USE_MORPHTARGETS\\n\t#ifndef USE_INSTANCING_MORPH\\n\t\tuniform float morphTargetBaseInfluence;\\n\t\tuniform float morphTargetInfluences[ MORPHTARGETS_COUNT ];\\n\t#endif\\n\tuniform sampler2DArray morphTargetsTexture;\\n\tuniform ivec2 morphTargetsTextureSize;\\n\tvec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) {\\n\t\tint texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset;\\n\t\tint y = texelIndex / morphTargetsTextureSize.x;\\n\t\tint x = texelIndex - y * morphTargetsTextureSize.x;\\n\t\tivec3 morphUV = ivec3( x, y, morphTargetIndex );\\n\t\treturn texelFetch( morphTargetsTexture, morphUV, 0 );\\n\t}\\n#endif\";\nvar morphtarget_vertex = \"#ifdef USE_MORPHTARGETS\\n\ttransformed *= morphTargetBaseInfluence;\\n\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\\n\t\tif ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ];\\n\t}\\n#endif\";\nvar normal_fragment_begin = \"float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;\\n#ifdef FLAT_SHADED\\n\tvec3 fdx = dFdx( vViewPosition );\\n\tvec3 fdy = dFdy( vViewPosition );\\n\tvec3 normal = normalize( cross( fdx, fdy ) );\\n#else\\n\tvec3 normal = normalize( vNormal );\\n\t#ifdef DOUBLE_SIDED\\n\t\tnormal *= faceDirection;\\n\t#endif\\n#endif\\n#if defined( USE_NORMALMAP_TANGENTSPACE ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY )\\n\t#ifdef USE_TANGENT\\n\t\tmat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\\n\t#else\\n\t\tmat3 tbn = getTangentFrame( - vViewPosition, normal,\\n\t\t#if defined( USE_NORMALMAP )\\n\t\t\tvNormalMapUv\\n\t\t#elif defined( USE_CLEARCOAT_NORMALMAP )\\n\t\t\tvClearcoatNormalMapUv\\n\t\t#else\\n\t\t\tvUv\\n\t\t#endif\\n\t\t);\\n\t#endif\\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\\n\t\ttbn[0] *= faceDirection;\\n\t\ttbn[1] *= faceDirection;\\n\t#endif\\n#endif\\n#ifdef USE_CLEARCOAT_NORMALMAP\\n\t#ifdef USE_TANGENT\\n\t\tmat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\\n\t#else\\n\t\tmat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv );\\n\t#endif\\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\\n\t\ttbn2[0] *= faceDirection;\\n\t\ttbn2[1] *= faceDirection;\\n\t#endif\\n#endif\\nvec3 nonPerturbedNormal = normal;\";\nvar normal_fragment_maps = \"#ifdef USE_NORMALMAP_OBJECTSPACE\\n\tnormal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\\n\t#ifdef FLIP_SIDED\\n\t\tnormal = - normal;\\n\t#endif\\n\t#ifdef DOUBLE_SIDED\\n\t\tnormal = normal * faceDirection;\\n\t#endif\\n\tnormal = normalize( normalMatrix * normal );\\n#elif defined( USE_NORMALMAP_TANGENTSPACE )\\n\tvec3 mapN = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\\n\tmapN.xy *= normalScale;\\n\tnormal = normalize( tbn * mapN );\\n#elif defined( USE_BUMPMAP )\\n\tnormal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection );\\n#endif\";\nvar normal_pars_fragment = \"#ifndef FLAT_SHADED\\n\tvarying vec3 vNormal;\\n\t#ifdef USE_TANGENT\\n\t\tvarying vec3 vTangent;\\n\t\tvarying vec3 vBitangent;\\n\t#endif\\n#endif\";\nvar normal_pars_vertex = \"#ifndef FLAT_SHADED\\n\tvarying vec3 vNormal;\\n\t#ifdef USE_TANGENT\\n\t\tvarying vec3 vTangent;\\n\t\tvarying vec3 vBitangent;\\n\t#endif\\n#endif\";\nvar normal_vertex = \"#ifndef FLAT_SHADED\\n\tvNormal = normalize( transformedNormal );\\n\t#ifdef USE_TANGENT\\n\t\tvTangent = normalize( transformedTangent );\\n\t\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\\n\t#endif\\n#endif\";\nvar normalmap_pars_fragment = \"#ifdef USE_NORMALMAP\\n\tuniform sampler2D normalMap;\\n\tuniform vec2 normalScale;\\n#endif\\n#ifdef USE_NORMALMAP_OBJECTSPACE\\n\tuniform mat3 normalMatrix;\\n#endif\\n#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) )\\n\tmat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {\\n\t\tvec3 q0 = dFdx( eye_pos.xyz );\\n\t\tvec3 q1 = dFdy( eye_pos.xyz );\\n\t\tvec2 st0 = dFdx( uv.st );\\n\t\tvec2 st1 = dFdy( uv.st );\\n\t\tvec3 N = surf_norm;\\n\t\tvec3 q1perp = cross( q1, N );\\n\t\tvec3 q0perp = cross( N, q0 );\\n\t\tvec3 T = q1perp * st0.x + q0perp * st1.x;\\n\t\tvec3 B = q1perp * st0.y + q0perp * st1.y;\\n\t\tfloat det = max( dot( T, T ), dot( B, B ) );\\n\t\tfloat scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det );\\n\t\treturn mat3( T * scale, B * scale, N );\\n\t}\\n#endif\";\nvar clearcoat_normal_fragment_begin = \"#ifdef USE_CLEARCOAT\\n\tvec3 clearcoatNormal = nonPerturbedNormal;\\n#endif\";\nvar clearcoat_normal_fragment_maps = \"#ifdef USE_CLEARCOAT_NORMALMAP\\n\tvec3 clearcoatMapN = texture2D( clearcoatNormalMap, vClearcoatNormalMapUv ).xyz * 2.0 - 1.0;\\n\tclearcoatMapN.xy *= clearcoatNormalScale;\\n\tclearcoatNormal = normalize( tbn2 * clearcoatMapN );\\n#endif\";\nvar clearcoat_pars_fragment = \"#ifdef USE_CLEARCOATMAP\\n\tuniform sampler2D clearcoatMap;\\n#endif\\n#ifdef USE_CLEARCOAT_NORMALMAP\\n\tuniform sampler2D clearcoatNormalMap;\\n\tuniform vec2 clearcoatNormalScale;\\n#endif\\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\n\tuniform sampler2D clearcoatRoughnessMap;\\n#endif\";\nvar iridescence_pars_fragment = \"#ifdef USE_IRIDESCENCEMAP\\n\tuniform sampler2D iridescenceMap;\\n#endif\\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\\n\tuniform sampler2D iridescenceThicknessMap;\\n#endif\";\nvar opaque_fragment = \"#ifdef OPAQUE\\ndiffuseColor.a = 1.0;\\n#endif\\n#ifdef USE_TRANSMISSION\\ndiffuseColor.a *= material.transmissionAlpha;\\n#endif\\ngl_FragColor = vec4( outgoingLight, diffuseColor.a );\";\nvar packing = \"vec3 packNormalToRGB( const in vec3 normal ) {\\n\treturn normalize( normal ) * 0.5 + 0.5;\\n}\\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\\n\treturn 2.0 * rgb.xyz - 1.0;\\n}\\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;const float ShiftRight8 = 1. / 256.;\\nconst float Inv255 = 1. / 255.;\\nconst vec4 PackFactors = vec4( 1.0, 256.0, 256.0 * 256.0, 256.0 * 256.0 * 256.0 );\\nconst vec2 UnpackFactors2 = vec2( UnpackDownscale, 1.0 / PackFactors.g );\\nconst vec3 UnpackFactors3 = vec3( UnpackDownscale / PackFactors.rg, 1.0 / PackFactors.b );\\nconst vec4 UnpackFactors4 = vec4( UnpackDownscale / PackFactors.rgb, 1.0 / PackFactors.a );\\nvec4 packDepthToRGBA( const in float v ) {\\n\tif( v <= 0.0 )\\n\t\treturn vec4( 0., 0., 0., 0. );\\n\tif( v >= 1.0 )\\n\t\treturn vec4( 1., 1., 1., 1. );\\n\tfloat vuf;\\n\tfloat af = modf( v * PackFactors.a, vuf );\\n\tfloat bf = modf( vuf * ShiftRight8, vuf );\\n\tfloat gf = modf( vuf * ShiftRight8, vuf );\\n\treturn vec4( vuf * Inv255, gf * PackUpscale, bf * PackUpscale, af );\\n}\\nvec3 packDepthToRGB( const in float v ) {\\n\tif( v <= 0.0 )\\n\t\treturn vec3( 0., 0., 0. );\\n\tif( v >= 1.0 )\\n\t\treturn vec3( 1., 1., 1. );\\n\tfloat vuf;\\n\tfloat bf = modf( v * PackFactors.b, vuf );\\n\tfloat gf = modf( vuf * ShiftRight8, vuf );\\n\treturn vec3( vuf * Inv255, gf * PackUpscale, bf );\\n}\\nvec2 packDepthToRG( const in float v ) {\\n\tif( v <= 0.0 )\\n\t\treturn vec2( 0., 0. );\\n\tif( v >= 1.0 )\\n\t\treturn vec2( 1., 1. );\\n\tfloat vuf;\\n\tfloat gf = modf( v * 256., vuf );\\n\treturn vec2( vuf * Inv255, gf );\\n}\\nfloat unpackRGBAToDepth( const in vec4 v ) {\\n\treturn dot( v, UnpackFactors4 );\\n}\\nfloat unpackRGBToDepth( const in vec3 v ) {\\n\treturn dot( v, UnpackFactors3 );\\n}\\nfloat unpackRGToDepth( const in vec2 v ) {\\n\treturn v.r * UnpackFactors2.r + v.g * UnpackFactors2.g;\\n}\\nvec4 pack2HalfToRGBA( const in vec2 v ) {\\n\tvec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) );\\n\treturn vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w );\\n}\\nvec2 unpackRGBATo2Half( const in vec4 v ) {\\n\treturn vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );\\n}\\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\\n\treturn ( viewZ + near ) / ( near - far );\\n}\\nfloat orthographicDepthToViewZ( const in float depth, const in float near, const in float far ) {\\n\treturn depth * ( near - far ) - near;\\n}\\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\\n\treturn ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ );\\n}\\nfloat perspectiveDepthToViewZ( const in float depth, const in float near, const in float far ) {\\n\treturn ( near * far ) / ( ( far - near ) * depth - far );\\n}\";\nvar premultiplied_alpha_fragment = \"#ifdef PREMULTIPLIED_ALPHA\\n\tgl_FragColor.rgb *= gl_FragColor.a;\\n#endif\";\nvar project_vertex = \"vec4 mvPosition = vec4( transformed, 1.0 );\\n#ifdef USE_BATCHING\\n\tmvPosition = batchingMatrix * mvPosition;\\n#endif\\n#ifdef USE_INSTANCING\\n\tmvPosition = instanceMatrix * mvPosition;\\n#endif\\nmvPosition = modelViewMatrix * mvPosition;\\ngl_Position = projectionMatrix * mvPosition;\";\nvar dithering_fragment = \"#ifdef DITHERING\\n\tgl_FragColor.rgb = dithering( gl_FragColor.rgb );\\n#endif\";\nvar dithering_pars_fragment = \"#ifdef DITHERING\\n\tvec3 dithering( vec3 color ) {\\n\t\tfloat grid_position = rand( gl_FragCoord.xy );\\n\t\tvec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\\n\t\tdither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\\n\t\treturn color + dither_shift_RGB;\\n\t}\\n#endif\";\nvar roughnessmap_fragment = \"float roughnessFactor = roughness;\\n#ifdef USE_ROUGHNESSMAP\\n\tvec4 texelRoughness = texture2D( roughnessMap, vRoughnessMapUv );\\n\troughnessFactor *= texelRoughness.g;\\n#endif\";\nvar roughnessmap_pars_fragment = \"#ifdef USE_ROUGHNESSMAP\\n\tuniform sampler2D roughnessMap;\\n#endif\";\nvar shadowmap_pars_fragment = \"#if NUM_SPOT_LIGHT_COORDS > 0\\n\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\\n#endif\\n#if NUM_SPOT_LIGHT_MAPS > 0\\n\tuniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ];\\n#endif\\n#ifdef USE_SHADOWMAP\\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\t\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];\\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\\n\t\tstruct DirectionalLightShadow {\\n\t\t\tfloat shadowIntensity;\\n\t\t\tfloat shadowBias;\\n\t\t\tfloat shadowNormalBias;\\n\t\t\tfloat shadowRadius;\\n\t\t\tvec2 shadowMapSize;\\n\t\t};\\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\\n\t#endif\\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\n\t\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];\\n\t\tstruct SpotLightShadow {\\n\t\t\tfloat shadowIntensity;\\n\t\t\tfloat shadowBias;\\n\t\t\tfloat shadowNormalBias;\\n\t\t\tfloat shadowRadius;\\n\t\t\tvec2 shadowMapSize;\\n\t\t};\\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\\n\t#endif\\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\t\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];\\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\\n\t\tstruct PointLightShadow {\\n\t\t\tfloat shadowIntensity;\\n\t\t\tfloat shadowBias;\\n\t\t\tfloat shadowNormalBias;\\n\t\t\tfloat shadowRadius;\\n\t\t\tvec2 shadowMapSize;\\n\t\t\tfloat shadowCameraNear;\\n\t\t\tfloat shadowCameraFar;\\n\t\t};\\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\\n\t#endif\\n\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\\n\t\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\\n\t}\\n\tvec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {\\n\t\treturn unpackRGBATo2Half( texture2D( shadow, uv ) );\\n\t}\\n\tfloat VSMShadow (sampler2D shadow, vec2 uv, float compare ){\\n\t\tfloat occlusion = 1.0;\\n\t\tvec2 distribution = texture2DDistribution( shadow, uv );\\n\t\tfloat hard_shadow = step( compare , distribution.x );\\n\t\tif (hard_shadow != 1.0 ) {\\n\t\t\tfloat distance = compare - distribution.x ;\\n\t\t\tfloat variance = max( 0.00000, distribution.y * distribution.y );\\n\t\t\tfloat softness_probability = variance / (variance + distance * distance );\t\t\tsoftness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 );\t\t\tocclusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );\\n\t\t}\\n\t\treturn occlusion;\\n\t}\\n\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\\n\t\tfloat shadow = 1.0;\\n\t\tshadowCoord.xyz /= shadowCoord.w;\\n\t\tshadowCoord.z += shadowBias;\\n\t\tbool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0;\\n\t\tbool frustumTest = inFrustum && shadowCoord.z <= 1.0;\\n\t\tif ( frustumTest ) {\\n\t\t#if defined( SHADOWMAP_TYPE_PCF )\\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\\n\t\t\tfloat dx0 = - texelSize.x * shadowRadius;\\n\t\t\tfloat dy0 = - texelSize.y * shadowRadius;\\n\t\t\tfloat dx1 = + texelSize.x * shadowRadius;\\n\t\t\tfloat dy1 = + texelSize.y * shadowRadius;\\n\t\t\tfloat dx2 = dx0 / 2.0;\\n\t\t\tfloat dy2 = dy0 / 2.0;\\n\t\t\tfloat dx3 = dx1 / 2.0;\\n\t\t\tfloat dy3 = dy1 / 2.0;\\n\t\t\tshadow = (\\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +\\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +\\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +\\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +\\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +\\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +\\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +\\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +\\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\\n\t\t\t) * ( 1.0 / 17.0 );\\n\t\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\\n\t\t\tfloat dx = texelSize.x;\\n\t\t\tfloat dy = texelSize.y;\\n\t\t\tvec2 uv = shadowCoord.xy;\\n\t\t\tvec2 f = fract( uv * shadowMapSize + 0.5 );\\n\t\t\tuv -= f * texelSize;\\n\t\t\tshadow = (\\n\t\t\t\ttexture2DCompare( shadowMap, uv, shadowCoord.z ) +\\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +\\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +\\n\t\t\t\ttexture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +\\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ),\\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),\\n\t\t\t\t\t f.x ) +\\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ),\\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),\\n\t\t\t\t\t f.x ) +\\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ),\\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),\\n\t\t\t\t\t f.y ) +\\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ),\\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),\\n\t\t\t\t\t f.y ) +\\n\t\t\t\tmix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ),\\n\t\t\t\t\t\t  texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),\\n\t\t\t\t\t\t  f.x ),\\n\t\t\t\t\t mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ),\\n\t\t\t\t\t\t  texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),\\n\t\t\t\t\t\t  f.x ),\\n\t\t\t\t\t f.y )\\n\t\t\t) * ( 1.0 / 9.0 );\\n\t\t#elif defined( SHADOWMAP_TYPE_VSM )\\n\t\t\tshadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );\\n\t\t#else\\n\t\t\tshadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\\n\t\t#endif\\n\t\t}\\n\t\treturn mix( 1.0, shadow, shadowIntensity );\\n\t}\\n\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\\n\t\tvec3 absV = abs( v );\\n\t\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\\n\t\tabsV *= scaleToCube;\\n\t\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\\n\t\tvec2 planar = v.xy;\\n\t\tfloat almostATexel = 1.5 * texelSizeY;\\n\t\tfloat almostOne = 1.0 - almostATexel;\\n\t\tif ( absV.z >= almostOne ) {\\n\t\t\tif ( v.z > 0.0 )\\n\t\t\t\tplanar.x = 4.0 - v.x;\\n\t\t} else if ( absV.x >= almostOne ) {\\n\t\t\tfloat signX = sign( v.x );\\n\t\t\tplanar.x = v.z * signX + 2.0 * signX;\\n\t\t} else if ( absV.y >= almostOne ) {\\n\t\t\tfloat signY = sign( v.y );\\n\t\t\tplanar.x = v.x + 2.0 * signY + 2.0;\\n\t\t\tplanar.y = v.z * signY - 2.0;\\n\t\t}\\n\t\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\\n\t}\\n\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\\n\t\tfloat shadow = 1.0;\\n\t\tvec3 lightToPosition = shadowCoord.xyz;\\n\t\t\\n\t\tfloat lightToPositionLength = length( lightToPosition );\\n\t\tif ( lightToPositionLength - shadowCameraFar <= 0.0 && lightToPositionLength - shadowCameraNear >= 0.0 ) {\\n\t\t\tfloat dp = ( lightToPositionLength - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );\t\t\tdp += shadowBias;\\n\t\t\tvec3 bd3D = normalize( lightToPosition );\\n\t\t\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\\n\t\t\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )\\n\t\t\t\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\\n\t\t\t\tshadow = (\\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\\n\t\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\\n\t\t\t\t) * ( 1.0 / 9.0 );\\n\t\t\t#else\\n\t\t\t\tshadow = texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\\n\t\t\t#endif\\n\t\t}\\n\t\treturn mix( 1.0, shadow, shadowIntensity );\\n\t}\\n#endif\";\nvar shadowmap_pars_vertex = \"#if NUM_SPOT_LIGHT_COORDS > 0\\n\tuniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ];\\n\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\\n#endif\\n#ifdef USE_SHADOWMAP\\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\t\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];\\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\\n\t\tstruct DirectionalLightShadow {\\n\t\t\tfloat shadowIntensity;\\n\t\t\tfloat shadowBias;\\n\t\t\tfloat shadowNormalBias;\\n\t\t\tfloat shadowRadius;\\n\t\t\tvec2 shadowMapSize;\\n\t\t};\\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\\n\t#endif\\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\n\t\tstruct SpotLightShadow {\\n\t\t\tfloat shadowIntensity;\\n\t\t\tfloat shadowBias;\\n\t\t\tfloat shadowNormalBias;\\n\t\t\tfloat shadowRadius;\\n\t\t\tvec2 shadowMapSize;\\n\t\t};\\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\\n\t#endif\\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\t\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];\\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\\n\t\tstruct PointLightShadow {\\n\t\t\tfloat shadowIntensity;\\n\t\t\tfloat shadowBias;\\n\t\t\tfloat shadowNormalBias;\\n\t\t\tfloat shadowRadius;\\n\t\t\tvec2 shadowMapSize;\\n\t\t\tfloat shadowCameraNear;\\n\t\t\tfloat shadowCameraFar;\\n\t\t};\\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\\n\t#endif\\n#endif\";\nvar shadowmap_vertex = \"#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 )\\n\tvec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\\n\tvec4 shadowWorldPosition;\\n#endif\\n#if defined( USE_SHADOWMAP )\\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\t\t#pragma unroll_loop_start\\n\t\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\\n\t\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );\\n\t\t\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;\\n\t\t}\\n\t\t#pragma unroll_loop_end\\n\t#endif\\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\t\t#pragma unroll_loop_start\\n\t\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\\n\t\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );\\n\t\t\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;\\n\t\t}\\n\t\t#pragma unroll_loop_end\\n\t#endif\\n#endif\\n#if NUM_SPOT_LIGHT_COORDS > 0\\n\t#pragma unroll_loop_start\\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) {\\n\t\tshadowWorldPosition = worldPosition;\\n\t\t#if ( defined( USE_SHADOWMAP ) && UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\\n\t\t\tshadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias;\\n\t\t#endif\\n\t\tvSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition;\\n\t}\\n\t#pragma unroll_loop_end\\n#endif\";\nvar shadowmask_pars_fragment = \"float getShadowMask() {\\n\tfloat shadow = 1.0;\\n\t#ifdef USE_SHADOWMAP\\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\tDirectionalLightShadow directionalLight;\\n\t#pragma unroll_loop_start\\n\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\\n\t\tdirectionalLight = directionalLightShadows[ i ];\\n\t\tshadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowIntensity, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\\n\t}\\n\t#pragma unroll_loop_end\\n\t#endif\\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\n\tSpotLightShadow spotLight;\\n\t#pragma unroll_loop_start\\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\\n\t\tspotLight = spotLightShadows[ i ];\\n\t\tshadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowIntensity, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\\n\t}\\n\t#pragma unroll_loop_end\\n\t#endif\\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\tPointLightShadow pointLight;\\n\t#pragma unroll_loop_start\\n\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\\n\t\tpointLight = pointLightShadows[ i ];\\n\t\tshadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowIntensity, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\\n\t}\\n\t#pragma unroll_loop_end\\n\t#endif\\n\t#endif\\n\treturn shadow;\\n}\";\nvar skinbase_vertex = \"#ifdef USE_SKINNING\\n\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\\n\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\\n\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\\n\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\\n#endif\";\nvar skinning_pars_vertex = \"#ifdef USE_SKINNING\\n\tuniform mat4 bindMatrix;\\n\tuniform mat4 bindMatrixInverse;\\n\tuniform highp sampler2D boneTexture;\\n\tmat4 getBoneMatrix( const in float i ) {\\n\t\tint size = textureSize( boneTexture, 0 ).x;\\n\t\tint j = int( i ) * 4;\\n\t\tint x = j % size;\\n\t\tint y = j / size;\\n\t\tvec4 v1 = texelFetch( boneTexture, ivec2( x, y ), 0 );\\n\t\tvec4 v2 = texelFetch( boneTexture, ivec2( x + 1, y ), 0 );\\n\t\tvec4 v3 = texelFetch( boneTexture, ivec2( x + 2, y ), 0 );\\n\t\tvec4 v4 = texelFetch( boneTexture, ivec2( x + 3, y ), 0 );\\n\t\treturn mat4( v1, v2, v3, v4 );\\n\t}\\n#endif\";\nvar skinning_vertex = \"#ifdef USE_SKINNING\\n\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\\n\tvec4 skinned = vec4( 0.0 );\\n\tskinned += boneMatX * skinVertex * skinWeight.x;\\n\tskinned += boneMatY * skinVertex * skinWeight.y;\\n\tskinned += boneMatZ * skinVertex * skinWeight.z;\\n\tskinned += boneMatW * skinVertex * skinWeight.w;\\n\ttransformed = ( bindMatrixInverse * skinned ).xyz;\\n#endif\";\nvar skinnormal_vertex = \"#ifdef USE_SKINNING\\n\tmat4 skinMatrix = mat4( 0.0 );\\n\tskinMatrix += skinWeight.x * boneMatX;\\n\tskinMatrix += skinWeight.y * boneMatY;\\n\tskinMatrix += skinWeight.z * boneMatZ;\\n\tskinMatrix += skinWeight.w * boneMatW;\\n\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\\n\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\\n\t#ifdef USE_TANGENT\\n\t\tobjectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;\\n\t#endif\\n#endif\";\nvar specularmap_fragment = \"float specularStrength;\\n#ifdef USE_SPECULARMAP\\n\tvec4 texelSpecular = texture2D( specularMap, vSpecularMapUv );\\n\tspecularStrength = texelSpecular.r;\\n#else\\n\tspecularStrength = 1.0;\\n#endif\";\nvar specularmap_pars_fragment = \"#ifdef USE_SPECULARMAP\\n\tuniform sampler2D specularMap;\\n#endif\";\nvar tonemapping_fragment = \"#if defined( TONE_MAPPING )\\n\tgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\\n#endif\";\nvar tonemapping_pars_fragment = \"#ifndef saturate\\n#define saturate( a ) clamp( a, 0.0, 1.0 )\\n#endif\\nuniform float toneMappingExposure;\\nvec3 LinearToneMapping( vec3 color ) {\\n\treturn saturate( toneMappingExposure * color );\\n}\\nvec3 ReinhardToneMapping( vec3 color ) {\\n\tcolor *= toneMappingExposure;\\n\treturn saturate( color / ( vec3( 1.0 ) + color ) );\\n}\\nvec3 CineonToneMapping( vec3 color ) {\\n\tcolor *= toneMappingExposure;\\n\tcolor = max( vec3( 0.0 ), color - 0.004 );\\n\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\\n}\\nvec3 RRTAndODTFit( vec3 v ) {\\n\tvec3 a = v * ( v + 0.0245786 ) - 0.000090537;\\n\tvec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;\\n\treturn a / b;\\n}\\nvec3 ACESFilmicToneMapping( vec3 color ) {\\n\tconst mat3 ACESInputMat = mat3(\\n\t\tvec3( 0.59719, 0.07600, 0.02840 ),\t\tvec3( 0.35458, 0.90834, 0.13383 ),\\n\t\tvec3( 0.04823, 0.01566, 0.83777 )\\n\t);\\n\tconst mat3 ACESOutputMat = mat3(\\n\t\tvec3(  1.60475, -0.10208, -0.00327 ),\t\tvec3( -0.53108,  1.10813, -0.07276 ),\\n\t\tvec3( -0.07367, -0.00605,  1.07602 )\\n\t);\\n\tcolor *= toneMappingExposure / 0.6;\\n\tcolor = ACESInputMat * color;\\n\tcolor = RRTAndODTFit( color );\\n\tcolor = ACESOutputMat * color;\\n\treturn saturate( color );\\n}\\nconst mat3 LINEAR_REC2020_TO_LINEAR_SRGB = mat3(\\n\tvec3( 1.6605, - 0.1246, - 0.0182 ),\\n\tvec3( - 0.5876, 1.1329, - 0.1006 ),\\n\tvec3( - 0.0728, - 0.0083, 1.1187 )\\n);\\nconst mat3 LINEAR_SRGB_TO_LINEAR_REC2020 = mat3(\\n\tvec3( 0.6274, 0.0691, 0.0164 ),\\n\tvec3( 0.3293, 0.9195, 0.0880 ),\\n\tvec3( 0.0433, 0.0113, 0.8956 )\\n);\\nvec3 agxDefaultContrastApprox( vec3 x ) {\\n\tvec3 x2 = x * x;\\n\tvec3 x4 = x2 * x2;\\n\treturn + 15.5 * x4 * x2\\n\t\t- 40.14 * x4 * x\\n\t\t+ 31.96 * x4\\n\t\t- 6.868 * x2 * x\\n\t\t+ 0.4298 * x2\\n\t\t+ 0.1191 * x\\n\t\t- 0.00232;\\n}\\nvec3 AgXToneMapping( vec3 color ) {\\n\tconst mat3 AgXInsetMatrix = mat3(\\n\t\tvec3( 0.856627153315983, 0.137318972929847, 0.11189821299995 ),\\n\t\tvec3( 0.0951212405381588, 0.761241990602591, 0.0767994186031903 ),\\n\t\tvec3( 0.0482516061458583, 0.101439036467562, 0.811302368396859 )\\n\t);\\n\tconst mat3 AgXOutsetMatrix = mat3(\\n\t\tvec3( 1.1271005818144368, - 0.1413297634984383, - 0.14132976349843826 ),\\n\t\tvec3( - 0.11060664309660323, 1.157823702216272, - 0.11060664309660294 ),\\n\t\tvec3( - 0.016493938717834573, - 0.016493938717834257, 1.2519364065950405 )\\n\t);\\n\tconst float AgxMinEv = - 12.47393;\tconst float AgxMaxEv = 4.026069;\\n\tcolor *= toneMappingExposure;\\n\tcolor = LINEAR_SRGB_TO_LINEAR_REC2020 * color;\\n\tcolor = AgXInsetMatrix * color;\\n\tcolor = max( color, 1e-10 );\tcolor = log2( color );\\n\tcolor = ( color - AgxMinEv ) / ( AgxMaxEv - AgxMinEv );\\n\tcolor = clamp( color, 0.0, 1.0 );\\n\tcolor = agxDefaultContrastApprox( color );\\n\tcolor = AgXOutsetMatrix * color;\\n\tcolor = pow( max( vec3( 0.0 ), color ), vec3( 2.2 ) );\\n\tcolor = LINEAR_REC2020_TO_LINEAR_SRGB * color;\\n\tcolor = clamp( color, 0.0, 1.0 );\\n\treturn color;\\n}\\nvec3 NeutralToneMapping( vec3 color ) {\\n\tconst float StartCompression = 0.8 - 0.04;\\n\tconst float Desaturation = 0.15;\\n\tcolor *= toneMappingExposure;\\n\tfloat x = min( color.r, min( color.g, color.b ) );\\n\tfloat offset = x < 0.08 ? x - 6.25 * x * x : 0.04;\\n\tcolor -= offset;\\n\tfloat peak = max( color.r, max( color.g, color.b ) );\\n\tif ( peak < StartCompression ) return color;\\n\tfloat d = 1. - StartCompression;\\n\tfloat newPeak = 1. - d * d / ( peak + d - StartCompression );\\n\tcolor *= newPeak / peak;\\n\tfloat g = 1. - 1. / ( Desaturation * ( peak - newPeak ) + 1. );\\n\treturn mix( color, vec3( newPeak ), g );\\n}\\nvec3 CustomToneMapping( vec3 color ) { return color; }\";\nvar transmission_fragment = \"#ifdef USE_TRANSMISSION\\n\tmaterial.transmission = transmission;\\n\tmaterial.transmissionAlpha = 1.0;\\n\tmaterial.thickness = thickness;\\n\tmaterial.attenuationDistance = attenuationDistance;\\n\tmaterial.attenuationColor = attenuationColor;\\n\t#ifdef USE_TRANSMISSIONMAP\\n\t\tmaterial.transmission *= texture2D( transmissionMap, vTransmissionMapUv ).r;\\n\t#endif\\n\t#ifdef USE_THICKNESSMAP\\n\t\tmaterial.thickness *= texture2D( thicknessMap, vThicknessMapUv ).g;\\n\t#endif\\n\tvec3 pos = vWorldPosition;\\n\tvec3 v = normalize( cameraPosition - pos );\\n\tvec3 n = inverseTransformDirection( normal, viewMatrix );\\n\tvec4 transmitted = getIBLVolumeRefraction(\\n\t\tn, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90,\\n\t\tpos, modelMatrix, viewMatrix, projectionMatrix, material.dispersion, material.ior, material.thickness,\\n\t\tmaterial.attenuationColor, material.attenuationDistance );\\n\tmaterial.transmissionAlpha = mix( material.transmissionAlpha, transmitted.a, material.transmission );\\n\ttotalDiffuse = mix( totalDiffuse, transmitted.rgb, material.transmission );\\n#endif\";\nvar transmission_pars_fragment = \"#ifdef USE_TRANSMISSION\\n\tuniform float transmission;\\n\tuniform float thickness;\\n\tuniform float attenuationDistance;\\n\tuniform vec3 attenuationColor;\\n\t#ifdef USE_TRANSMISSIONMAP\\n\t\tuniform sampler2D transmissionMap;\\n\t#endif\\n\t#ifdef USE_THICKNESSMAP\\n\t\tuniform sampler2D thicknessMap;\\n\t#endif\\n\tuniform vec2 transmissionSamplerSize;\\n\tuniform sampler2D transmissionSamplerMap;\\n\tuniform mat4 modelMatrix;\\n\tuniform mat4 projectionMatrix;\\n\tvarying vec3 vWorldPosition;\\n\tfloat w0( float a ) {\\n\t\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 );\\n\t}\\n\tfloat w1( float a ) {\\n\t\treturn ( 1.0 / 6.0 ) * ( a *  a * ( 3.0 * a - 6.0 ) + 4.0 );\\n\t}\\n\tfloat w2( float a ){\\n\t\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 );\\n\t}\\n\tfloat w3( float a ) {\\n\t\treturn ( 1.0 / 6.0 ) * ( a * a * a );\\n\t}\\n\tfloat g0( float a ) {\\n\t\treturn w0( a ) + w1( a );\\n\t}\\n\tfloat g1( float a ) {\\n\t\treturn w2( a ) + w3( a );\\n\t}\\n\tfloat h0( float a ) {\\n\t\treturn - 1.0 + w1( a ) / ( w0( a ) + w1( a ) );\\n\t}\\n\tfloat h1( float a ) {\\n\t\treturn 1.0 + w3( a ) / ( w2( a ) + w3( a ) );\\n\t}\\n\tvec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, float lod ) {\\n\t\tuv = uv * texelSize.zw + 0.5;\\n\t\tvec2 iuv = floor( uv );\\n\t\tvec2 fuv = fract( uv );\\n\t\tfloat g0x = g0( fuv.x );\\n\t\tfloat g1x = g1( fuv.x );\\n\t\tfloat h0x = h0( fuv.x );\\n\t\tfloat h1x = h1( fuv.x );\\n\t\tfloat h0y = h0( fuv.y );\\n\t\tfloat h1y = h1( fuv.y );\\n\t\tvec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\\n\t\tvec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\\n\t\tvec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\\n\t\tvec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\\n\t\treturn g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) +\\n\t\t\tg1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) );\\n\t}\\n\tvec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) {\\n\t\tvec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) );\\n\t\tvec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) );\\n\t\tvec2 fLodSizeInv = 1.0 / fLodSize;\\n\t\tvec2 cLodSizeInv = 1.0 / cLodSize;\\n\t\tvec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), floor( lod ) );\\n\t\tvec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), ceil( lod ) );\\n\t\treturn mix( fSample, cSample, fract( lod ) );\\n\t}\\n\tvec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) {\\n\t\tvec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior );\\n\t\tvec3 modelScale;\\n\t\tmodelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) );\\n\t\tmodelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) );\\n\t\tmodelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );\\n\t\treturn normalize( refractionVector ) * thickness * modelScale;\\n\t}\\n\tfloat applyIorToRoughness( const in float roughness, const in float ior ) {\\n\t\treturn roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );\\n\t}\\n\tvec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) {\\n\t\tfloat lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );\\n\t\treturn textureBicubic( transmissionSamplerMap, fragCoord.xy, lod );\\n\t}\\n\tvec3 volumeAttenuation( const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) {\\n\t\tif ( isinf( attenuationDistance ) ) {\\n\t\t\treturn vec3( 1.0 );\\n\t\t} else {\\n\t\t\tvec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;\\n\t\t\tvec3 transmittance = exp( - attenuationCoefficient * transmissionDistance );\t\t\treturn transmittance;\\n\t\t}\\n\t}\\n\tvec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor,\\n\t\tconst in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix,\\n\t\tconst in mat4 viewMatrix, const in mat4 projMatrix, const in float dispersion, const in float ior, const in float thickness,\\n\t\tconst in vec3 attenuationColor, const in float attenuationDistance ) {\\n\t\tvec4 transmittedLight;\\n\t\tvec3 transmittance;\\n\t\t#ifdef USE_DISPERSION\\n\t\t\tfloat halfSpread = ( ior - 1.0 ) * 0.025 * dispersion;\\n\t\t\tvec3 iors = vec3( ior - halfSpread, ior, ior + halfSpread );\\n\t\t\tfor ( int i = 0; i < 3; i ++ ) {\\n\t\t\t\tvec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, iors[ i ], modelMatrix );\\n\t\t\t\tvec3 refractedRayExit = position + transmissionRay;\\n\t\t\\n\t\t\t\tvec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\\n\t\t\t\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\\n\t\t\t\trefractionCoords += 1.0;\\n\t\t\t\trefractionCoords /= 2.0;\\n\t\t\\n\t\t\t\tvec4 transmissionSample = getTransmissionSample( refractionCoords, roughness, iors[ i ] );\\n\t\t\t\ttransmittedLight[ i ] = transmissionSample[ i ];\\n\t\t\t\ttransmittedLight.a += transmissionSample.a;\\n\t\t\t\ttransmittance[ i ] = diffuseColor[ i ] * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance )[ i ];\\n\t\t\t}\\n\t\t\ttransmittedLight.a /= 3.0;\\n\t\t\\n\t\t#else\\n\t\t\\n\t\t\tvec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );\\n\t\t\tvec3 refractedRayExit = position + transmissionRay;\\n\t\t\tvec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\\n\t\t\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\\n\t\t\trefractionCoords += 1.0;\\n\t\t\trefractionCoords /= 2.0;\\n\t\t\ttransmittedLight = getTransmissionSample( refractionCoords, roughness, ior );\\n\t\t\ttransmittance = diffuseColor * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance );\\n\t\t\\n\t\t#endif\\n\t\tvec3 attenuatedColor = transmittance * transmittedLight.rgb;\\n\t\tvec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );\\n\t\tfloat transmittanceFactor = ( transmittance.r + transmittance.g + transmittance.b ) / 3.0;\\n\t\treturn vec4( ( 1.0 - F ) * attenuatedColor, 1.0 - ( 1.0 - transmittedLight.a ) * transmittanceFactor );\\n\t}\\n#endif\";\nvar uv_pars_fragment = \"#if defined( USE_UV ) || defined( USE_ANISOTROPY )\\n\tvarying vec2 vUv;\\n#endif\\n#ifdef USE_MAP\\n\tvarying vec2 vMapUv;\\n#endif\\n#ifdef USE_ALPHAMAP\\n\tvarying vec2 vAlphaMapUv;\\n#endif\\n#ifdef USE_LIGHTMAP\\n\tvarying vec2 vLightMapUv;\\n#endif\\n#ifdef USE_AOMAP\\n\tvarying vec2 vAoMapUv;\\n#endif\\n#ifdef USE_BUMPMAP\\n\tvarying vec2 vBumpMapUv;\\n#endif\\n#ifdef USE_NORMALMAP\\n\tvarying vec2 vNormalMapUv;\\n#endif\\n#ifdef USE_EMISSIVEMAP\\n\tvarying vec2 vEmissiveMapUv;\\n#endif\\n#ifdef USE_METALNESSMAP\\n\tvarying vec2 vMetalnessMapUv;\\n#endif\\n#ifdef USE_ROUGHNESSMAP\\n\tvarying vec2 vRoughnessMapUv;\\n#endif\\n#ifdef USE_ANISOTROPYMAP\\n\tvarying vec2 vAnisotropyMapUv;\\n#endif\\n#ifdef USE_CLEARCOATMAP\\n\tvarying vec2 vClearcoatMapUv;\\n#endif\\n#ifdef USE_CLEARCOAT_NORMALMAP\\n\tvarying vec2 vClearcoatNormalMapUv;\\n#endif\\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\n\tvarying vec2 vClearcoatRoughnessMapUv;\\n#endif\\n#ifdef USE_IRIDESCENCEMAP\\n\tvarying vec2 vIridescenceMapUv;\\n#endif\\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\\n\tvarying vec2 vIridescenceThicknessMapUv;\\n#endif\\n#ifdef USE_SHEEN_COLORMAP\\n\tvarying vec2 vSheenColorMapUv;\\n#endif\\n#ifdef USE_SHEEN_ROUGHNESSMAP\\n\tvarying vec2 vSheenRoughnessMapUv;\\n#endif\\n#ifdef USE_SPECULARMAP\\n\tvarying vec2 vSpecularMapUv;\\n#endif\\n#ifdef USE_SPECULAR_COLORMAP\\n\tvarying vec2 vSpecularColorMapUv;\\n#endif\\n#ifdef USE_SPECULAR_INTENSITYMAP\\n\tvarying vec2 vSpecularIntensityMapUv;\\n#endif\\n#ifdef USE_TRANSMISSIONMAP\\n\tuniform mat3 transmissionMapTransform;\\n\tvarying vec2 vTransmissionMapUv;\\n#endif\\n#ifdef USE_THICKNESSMAP\\n\tuniform mat3 thicknessMapTransform;\\n\tvarying vec2 vThicknessMapUv;\\n#endif\";\nvar uv_pars_vertex = \"#if defined( USE_UV ) || defined( USE_ANISOTROPY )\\n\tvarying vec2 vUv;\\n#endif\\n#ifdef USE_MAP\\n\tuniform mat3 mapTransform;\\n\tvarying vec2 vMapUv;\\n#endif\\n#ifdef USE_ALPHAMAP\\n\tuniform mat3 alphaMapTransform;\\n\tvarying vec2 vAlphaMapUv;\\n#endif\\n#ifdef USE_LIGHTMAP\\n\tuniform mat3 lightMapTransform;\\n\tvarying vec2 vLightMapUv;\\n#endif\\n#ifdef USE_AOMAP\\n\tuniform mat3 aoMapTransform;\\n\tvarying vec2 vAoMapUv;\\n#endif\\n#ifdef USE_BUMPMAP\\n\tuniform mat3 bumpMapTransform;\\n\tvarying vec2 vBumpMapUv;\\n#endif\\n#ifdef USE_NORMALMAP\\n\tuniform mat3 normalMapTransform;\\n\tvarying vec2 vNormalMapUv;\\n#endif\\n#ifdef USE_DISPLACEMENTMAP\\n\tuniform mat3 displacementMapTransform;\\n\tvarying vec2 vDisplacementMapUv;\\n#endif\\n#ifdef USE_EMISSIVEMAP\\n\tuniform mat3 emissiveMapTransform;\\n\tvarying vec2 vEmissiveMapUv;\\n#endif\\n#ifdef USE_METALNESSMAP\\n\tuniform mat3 metalnessMapTransform;\\n\tvarying vec2 vMetalnessMapUv;\\n#endif\\n#ifdef USE_ROUGHNESSMAP\\n\tuniform mat3 roughnessMapTransform;\\n\tvarying vec2 vRoughnessMapUv;\\n#endif\\n#ifdef USE_ANISOTROPYMAP\\n\tuniform mat3 anisotropyMapTransform;\\n\tvarying vec2 vAnisotropyMapUv;\\n#endif\\n#ifdef USE_CLEARCOATMAP\\n\tuniform mat3 clearcoatMapTransform;\\n\tvarying vec2 vClearcoatMapUv;\\n#endif\\n#ifdef USE_CLEARCOAT_NORMALMAP\\n\tuniform mat3 clearcoatNormalMapTransform;\\n\tvarying vec2 vClearcoatNormalMapUv;\\n#endif\\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\n\tuniform mat3 clearcoatRoughnessMapTransform;\\n\tvarying vec2 vClearcoatRoughnessMapUv;\\n#endif\\n#ifdef USE_SHEEN_COLORMAP\\n\tuniform mat3 sheenColorMapTransform;\\n\tvarying vec2 vSheenColorMapUv;\\n#endif\\n#ifdef USE_SHEEN_ROUGHNESSMAP\\n\tuniform mat3 sheenRoughnessMapTransform;\\n\tvarying vec2 vSheenRoughnessMapUv;\\n#endif\\n#ifdef USE_IRIDESCENCEMAP\\n\tuniform mat3 iridescenceMapTransform;\\n\tvarying vec2 vIridescenceMapUv;\\n#endif\\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\\n\tuniform mat3 iridescenceThicknessMapTransform;\\n\tvarying vec2 vIridescenceThicknessMapUv;\\n#endif\\n#ifdef USE_SPECULARMAP\\n\tuniform mat3 specularMapTransform;\\n\tvarying vec2 vSpecularMapUv;\\n#endif\\n#ifdef USE_SPECULAR_COLORMAP\\n\tuniform mat3 specularColorMapTransform;\\n\tvarying vec2 vSpecularColorMapUv;\\n#endif\\n#ifdef USE_SPECULAR_INTENSITYMAP\\n\tuniform mat3 specularIntensityMapTransform;\\n\tvarying vec2 vSpecularIntensityMapUv;\\n#endif\\n#ifdef USE_TRANSMISSIONMAP\\n\tuniform mat3 transmissionMapTransform;\\n\tvarying vec2 vTransmissionMapUv;\\n#endif\\n#ifdef USE_THICKNESSMAP\\n\tuniform mat3 thicknessMapTransform;\\n\tvarying vec2 vThicknessMapUv;\\n#endif\";\nvar uv_vertex = \"#if defined( USE_UV ) || defined( USE_ANISOTROPY )\\n\tvUv = vec3( uv, 1 ).xy;\\n#endif\\n#ifdef USE_MAP\\n\tvMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_ALPHAMAP\\n\tvAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_LIGHTMAP\\n\tvLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_AOMAP\\n\tvAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_BUMPMAP\\n\tvBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_NORMALMAP\\n\tvNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_DISPLACEMENTMAP\\n\tvDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_EMISSIVEMAP\\n\tvEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_METALNESSMAP\\n\tvMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_ROUGHNESSMAP\\n\tvRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_ANISOTROPYMAP\\n\tvAnisotropyMapUv = ( anisotropyMapTransform * vec3( ANISOTROPYMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_CLEARCOATMAP\\n\tvClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_CLEARCOAT_NORMALMAP\\n\tvClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\n\tvClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_IRIDESCENCEMAP\\n\tvIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\\n\tvIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_SHEEN_COLORMAP\\n\tvSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_SHEEN_ROUGHNESSMAP\\n\tvSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_SPECULARMAP\\n\tvSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_SPECULAR_COLORMAP\\n\tvSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_SPECULAR_INTENSITYMAP\\n\tvSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_TRANSMISSIONMAP\\n\tvTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_THICKNESSMAP\\n\tvThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy;\\n#endif\";\nvar worldpos_vertex = \"#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0\\n\tvec4 worldPosition = vec4( transformed, 1.0 );\\n\t#ifdef USE_BATCHING\\n\t\tworldPosition = batchingMatrix * worldPosition;\\n\t#endif\\n\t#ifdef USE_INSTANCING\\n\t\tworldPosition = instanceMatrix * worldPosition;\\n\t#endif\\n\tworldPosition = modelMatrix * worldPosition;\\n#endif\";\nvar vertex$h = \"varying vec2 vUv;\\nuniform mat3 uvTransform;\\nvoid main() {\\n\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\\n\tgl_Position = vec4( position.xy, 1.0, 1.0 );\\n}\";\nvar fragment$h = \"uniform sampler2D t2D;\\nuniform float backgroundIntensity;\\nvarying vec2 vUv;\\nvoid main() {\\n\tvec4 texColor = texture2D( t2D, vUv );\\n\t#ifdef DECODE_VIDEO_TEXTURE\\n\t\ttexColor = vec4( mix( pow( texColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), texColor.rgb * 0.0773993808, vec3( lessThanEqual( texColor.rgb, vec3( 0.04045 ) ) ) ), texColor.w );\\n\t#endif\\n\ttexColor.rgb *= backgroundIntensity;\\n\tgl_FragColor = texColor;\\n\t#include <tonemapping_fragment>\\n\t#include <colorspace_fragment>\\n}\";\nvar vertex$g = \"varying vec3 vWorldDirection;\\n#include <common>\\nvoid main() {\\n\tvWorldDirection = transformDirection( position, modelMatrix );\\n\t#include <begin_vertex>\\n\t#include <project_vertex>\\n\tgl_Position.z = gl_Position.w;\\n}\";\nvar fragment$g = \"#ifdef ENVMAP_TYPE_CUBE\\n\tuniform samplerCube envMap;\\n#elif defined( ENVMAP_TYPE_CUBE_UV )\\n\tuniform sampler2D envMap;\\n#endif\\nuniform float flipEnvMap;\\nuniform float backgroundBlurriness;\\nuniform float backgroundIntensity;\\nuniform mat3 backgroundRotation;\\nvarying vec3 vWorldDirection;\\n#include <cube_uv_reflection_fragment>\\nvoid main() {\\n\t#ifdef ENVMAP_TYPE_CUBE\\n\t\tvec4 texColor = textureCube( envMap, backgroundRotation * vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) );\\n\t#elif defined( ENVMAP_TYPE_CUBE_UV )\\n\t\tvec4 texColor = textureCubeUV( envMap, backgroundRotation * vWorldDirection, backgroundBlurriness );\\n\t#else\\n\t\tvec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 );\\n\t#endif\\n\ttexColor.rgb *= backgroundIntensity;\\n\tgl_FragColor = texColor;\\n\t#include <tonemapping_fragment>\\n\t#include <colorspace_fragment>\\n}\";\nvar vertex$f = \"varying vec3 vWorldDirection;\\n#include <common>\\nvoid main() {\\n\tvWorldDirection = transformDirection( position, modelMatrix );\\n\t#include <begin_vertex>\\n\t#include <project_vertex>\\n\tgl_Position.z = gl_Position.w;\\n}\";\nvar fragment$f = \"uniform samplerCube tCube;\\nuniform float tFlip;\\nuniform float opacity;\\nvarying vec3 vWorldDirection;\\nvoid main() {\\n\tvec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) );\\n\tgl_FragColor = texColor;\\n\tgl_FragColor.a *= opacity;\\n\t#include <tonemapping_fragment>\\n\t#include <colorspace_fragment>\\n}\";\nvar vertex$e = \"#include <common>\\n#include <batching_pars_vertex>\\n#include <uv_pars_vertex>\\n#include <displacementmap_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvarying vec2 vHighPrecisionZW;\\nvoid main() {\\n\t#include <uv_vertex>\\n\t#include <batching_vertex>\\n\t#include <skinbase_vertex>\\n\t#include <morphinstance_vertex>\\n\t#ifdef USE_DISPLACEMENTMAP\\n\t\t#include <beginnormal_vertex>\\n\t\t#include <morphnormal_vertex>\\n\t\t#include <skinnormal_vertex>\\n\t#endif\\n\t#include <begin_vertex>\\n\t#include <morphtarget_vertex>\\n\t#include <skinning_vertex>\\n\t#include <displacementmap_vertex>\\n\t#include <project_vertex>\\n\t#include <logdepthbuf_vertex>\\n\t#include <clipping_planes_vertex>\\n\tvHighPrecisionZW = gl_Position.zw;\\n}\";\nvar fragment$e = \"#if DEPTH_PACKING == 3200\\n\tuniform float opacity;\\n#endif\\n#include <common>\\n#include <packing>\\n#include <uv_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <alphatest_pars_fragment>\\n#include <alphahash_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvarying vec2 vHighPrecisionZW;\\nvoid main() {\\n\tvec4 diffuseColor = vec4( 1.0 );\\n\t#include <clipping_planes_fragment>\\n\t#if DEPTH_PACKING == 3200\\n\t\tdiffuseColor.a = opacity;\\n\t#endif\\n\t#include <map_fragment>\\n\t#include <alphamap_fragment>\\n\t#include <alphatest_fragment>\\n\t#include <alphahash_fragment>\\n\t#include <logdepthbuf_fragment>\\n\tfloat fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;\\n\t#if DEPTH_PACKING == 3200\\n\t\tgl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );\\n\t#elif DEPTH_PACKING == 3201\\n\t\tgl_FragColor = packDepthToRGBA( fragCoordZ );\\n\t#elif DEPTH_PACKING == 3202\\n\t\tgl_FragColor = vec4( packDepthToRGB( fragCoordZ ), 1.0 );\\n\t#elif DEPTH_PACKING == 3203\\n\t\tgl_FragColor = vec4( packDepthToRG( fragCoordZ ), 0.0, 1.0 );\\n\t#endif\\n}\";\nvar vertex$d = \"#define DISTANCE\\nvarying vec3 vWorldPosition;\\n#include <common>\\n#include <batching_pars_vertex>\\n#include <uv_pars_vertex>\\n#include <displacementmap_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\t#include <uv_vertex>\\n\t#include <batching_vertex>\\n\t#include <skinbase_vertex>\\n\t#include <morphinstance_vertex>\\n\t#ifdef USE_DISPLACEMENTMAP\\n\t\t#include <beginnormal_vertex>\\n\t\t#include <morphnormal_vertex>\\n\t\t#include <skinnormal_vertex>\\n\t#endif\\n\t#include <begin_vertex>\\n\t#include <morphtarget_vertex>\\n\t#include <skinning_vertex>\\n\t#include <displacementmap_vertex>\\n\t#include <project_vertex>\\n\t#include <worldpos_vertex>\\n\t#include <clipping_planes_vertex>\\n\tvWorldPosition = worldPosition.xyz;\\n}\";\nvar fragment$d = \"#define DISTANCE\\nuniform vec3 referencePosition;\\nuniform float nearDistance;\\nuniform float farDistance;\\nvarying vec3 vWorldPosition;\\n#include <common>\\n#include <packing>\\n#include <uv_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <alphatest_pars_fragment>\\n#include <alphahash_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main () {\\n\tvec4 diffuseColor = vec4( 1.0 );\\n\t#include <clipping_planes_fragment>\\n\t#include <map_fragment>\\n\t#include <alphamap_fragment>\\n\t#include <alphatest_fragment>\\n\t#include <alphahash_fragment>\\n\tfloat dist = length( vWorldPosition - referencePosition );\\n\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\\n\tdist = saturate( dist );\\n\tgl_FragColor = packDepthToRGBA( dist );\\n}\";\nvar vertex$c = \"varying vec3 vWorldDirection;\\n#include <common>\\nvoid main() {\\n\tvWorldDirection = transformDirection( position, modelMatrix );\\n\t#include <begin_vertex>\\n\t#include <project_vertex>\\n}\";\nvar fragment$c = \"uniform sampler2D tEquirect;\\nvarying vec3 vWorldDirection;\\n#include <common>\\nvoid main() {\\n\tvec3 direction = normalize( vWorldDirection );\\n\tvec2 sampleUV = equirectUv( direction );\\n\tgl_FragColor = texture2D( tEquirect, sampleUV );\\n\t#include <tonemapping_fragment>\\n\t#include <colorspace_fragment>\\n}\";\nvar vertex$b = \"uniform float scale;\\nattribute float lineDistance;\\nvarying float vLineDistance;\\n#include <common>\\n#include <uv_pars_vertex>\\n#include <color_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\tvLineDistance = scale * lineDistance;\\n\t#include <uv_vertex>\\n\t#include <color_vertex>\\n\t#include <morphinstance_vertex>\\n\t#include <morphcolor_vertex>\\n\t#include <begin_vertex>\\n\t#include <morphtarget_vertex>\\n\t#include <project_vertex>\\n\t#include <logdepthbuf_vertex>\\n\t#include <clipping_planes_vertex>\\n\t#include <fog_vertex>\\n}\";\nvar fragment$b = \"uniform vec3 diffuse;\\nuniform float opacity;\\nuniform float dashSize;\\nuniform float totalSize;\\nvarying float vLineDistance;\\n#include <common>\\n#include <color_pars_fragment>\\n#include <uv_pars_fragment>\\n#include <map_pars_fragment>\\n#include <fog_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\t#include <clipping_planes_fragment>\\n\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\\n\t\tdiscard;\\n\t}\\n\tvec3 outgoingLight = vec3( 0.0 );\\n\t#include <logdepthbuf_fragment>\\n\t#include <map_fragment>\\n\t#include <color_fragment>\\n\toutgoingLight = diffuseColor.rgb;\\n\t#include <opaque_fragment>\\n\t#include <tonemapping_fragment>\\n\t#include <colorspace_fragment>\\n\t#include <fog_fragment>\\n\t#include <premultiplied_alpha_fragment>\\n}\";\nvar vertex$a = \"#include <common>\\n#include <batching_pars_vertex>\\n#include <uv_pars_vertex>\\n#include <envmap_pars_vertex>\\n#include <color_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\t#include <uv_vertex>\\n\t#include <color_vertex>\\n\t#include <morphinstance_vertex>\\n\t#include <morphcolor_vertex>\\n\t#include <batching_vertex>\\n\t#if defined ( USE_ENVMAP ) || defined ( USE_SKINNING )\\n\t\t#include <beginnormal_vertex>\\n\t\t#include <morphnormal_vertex>\\n\t\t#include <skinbase_vertex>\\n\t\t#include <skinnormal_vertex>\\n\t\t#include <defaultnormal_vertex>\\n\t#endif\\n\t#include <begin_vertex>\\n\t#include <morphtarget_vertex>\\n\t#include <skinning_vertex>\\n\t#include <project_vertex>\\n\t#include <logdepthbuf_vertex>\\n\t#include <clipping_planes_vertex>\\n\t#include <worldpos_vertex>\\n\t#include <envmap_vertex>\\n\t#include <fog_vertex>\\n}\";\nvar fragment$a = \"uniform vec3 diffuse;\\nuniform float opacity;\\n#ifndef FLAT_SHADED\\n\tvarying vec3 vNormal;\\n#endif\\n#include <common>\\n#include <dithering_pars_fragment>\\n#include <color_pars_fragment>\\n#include <uv_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <alphatest_pars_fragment>\\n#include <alphahash_pars_fragment>\\n#include <aomap_pars_fragment>\\n#include <lightmap_pars_fragment>\\n#include <envmap_common_pars_fragment>\\n#include <envmap_pars_fragment>\\n#include <fog_pars_fragment>\\n#include <specularmap_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\t#include <clipping_planes_fragment>\\n\t#include <logdepthbuf_fragment>\\n\t#include <map_fragment>\\n\t#include <color_fragment>\\n\t#include <alphamap_fragment>\\n\t#include <alphatest_fragment>\\n\t#include <alphahash_fragment>\\n\t#include <specularmap_fragment>\\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\t#ifdef USE_LIGHTMAP\\n\t\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\\n\t\treflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI;\\n\t#else\\n\t\treflectedLight.indirectDiffuse += vec3( 1.0 );\\n\t#endif\\n\t#include <aomap_fragment>\\n\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\\n\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\\n\t#include <envmap_fragment>\\n\t#include <opaque_fragment>\\n\t#include <tonemapping_fragment>\\n\t#include <colorspace_fragment>\\n\t#include <fog_fragment>\\n\t#include <premultiplied_alpha_fragment>\\n\t#include <dithering_fragment>\\n}\";\nvar vertex$9 = \"#define LAMBERT\\nvarying vec3 vViewPosition;\\n#include <common>\\n#include <batching_pars_vertex>\\n#include <uv_pars_vertex>\\n#include <displacementmap_pars_vertex>\\n#include <envmap_pars_vertex>\\n#include <color_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <normal_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <shadowmap_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\t#include <uv_vertex>\\n\t#include <color_vertex>\\n\t#include <morphinstance_vertex>\\n\t#include <morphcolor_vertex>\\n\t#include <batching_vertex>\\n\t#include <beginnormal_vertex>\\n\t#include <morphnormal_vertex>\\n\t#include <skinbase_vertex>\\n\t#include <skinnormal_vertex>\\n\t#include <defaultnormal_vertex>\\n\t#include <normal_vertex>\\n\t#include <begin_vertex>\\n\t#include <morphtarget_vertex>\\n\t#include <skinning_vertex>\\n\t#include <displacementmap_vertex>\\n\t#include <project_vertex>\\n\t#include <logdepthbuf_vertex>\\n\t#include <clipping_planes_vertex>\\n\tvViewPosition = - mvPosition.xyz;\\n\t#include <worldpos_vertex>\\n\t#include <envmap_vertex>\\n\t#include <shadowmap_vertex>\\n\t#include <fog_vertex>\\n}\";\nvar fragment$9 = \"#define LAMBERT\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform float opacity;\\n#include <common>\\n#include <packing>\\n#include <dithering_pars_fragment>\\n#include <color_pars_fragment>\\n#include <uv_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <alphatest_pars_fragment>\\n#include <alphahash_pars_fragment>\\n#include <aomap_pars_fragment>\\n#include <lightmap_pars_fragment>\\n#include <emissivemap_pars_fragment>\\n#include <envmap_common_pars_fragment>\\n#include <envmap_pars_fragment>\\n#include <fog_pars_fragment>\\n#include <bsdfs>\\n#include <lights_pars_begin>\\n#include <normal_pars_fragment>\\n#include <lights_lambert_pars_fragment>\\n#include <shadowmap_pars_fragment>\\n#include <bumpmap_pars_fragment>\\n#include <normalmap_pars_fragment>\\n#include <specularmap_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\t#include <clipping_planes_fragment>\\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\tvec3 totalEmissiveRadiance = emissive;\\n\t#include <logdepthbuf_fragment>\\n\t#include <map_fragment>\\n\t#include <color_fragment>\\n\t#include <alphamap_fragment>\\n\t#include <alphatest_fragment>\\n\t#include <alphahash_fragment>\\n\t#include <specularmap_fragment>\\n\t#include <normal_fragment_begin>\\n\t#include <normal_fragment_maps>\\n\t#include <emissivemap_fragment>\\n\t#include <lights_lambert_fragment>\\n\t#include <lights_fragment_begin>\\n\t#include <lights_fragment_maps>\\n\t#include <lights_fragment_end>\\n\t#include <aomap_fragment>\\n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\\n\t#include <envmap_fragment>\\n\t#include <opaque_fragment>\\n\t#include <tonemapping_fragment>\\n\t#include <colorspace_fragment>\\n\t#include <fog_fragment>\\n\t#include <premultiplied_alpha_fragment>\\n\t#include <dithering_fragment>\\n}\";\nvar vertex$8 = \"#define MATCAP\\nvarying vec3 vViewPosition;\\n#include <common>\\n#include <batching_pars_vertex>\\n#include <uv_pars_vertex>\\n#include <color_pars_vertex>\\n#include <displacementmap_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <normal_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\t#include <uv_vertex>\\n\t#include <color_vertex>\\n\t#include <morphinstance_vertex>\\n\t#include <morphcolor_vertex>\\n\t#include <batching_vertex>\\n\t#include <beginnormal_vertex>\\n\t#include <morphnormal_vertex>\\n\t#include <skinbase_vertex>\\n\t#include <skinnormal_vertex>\\n\t#include <defaultnormal_vertex>\\n\t#include <normal_vertex>\\n\t#include <begin_vertex>\\n\t#include <morphtarget_vertex>\\n\t#include <skinning_vertex>\\n\t#include <displacementmap_vertex>\\n\t#include <project_vertex>\\n\t#include <logdepthbuf_vertex>\\n\t#include <clipping_planes_vertex>\\n\t#include <fog_vertex>\\n\tvViewPosition = - mvPosition.xyz;\\n}\";\nvar fragment$8 = \"#define MATCAP\\nuniform vec3 diffuse;\\nuniform float opacity;\\nuniform sampler2D matcap;\\nvarying vec3 vViewPosition;\\n#include <common>\\n#include <dithering_pars_fragment>\\n#include <color_pars_fragment>\\n#include <uv_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <alphatest_pars_fragment>\\n#include <alphahash_pars_fragment>\\n#include <fog_pars_fragment>\\n#include <normal_pars_fragment>\\n#include <bumpmap_pars_fragment>\\n#include <normalmap_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\t#include <clipping_planes_fragment>\\n\t#include <logdepthbuf_fragment>\\n\t#include <map_fragment>\\n\t#include <color_fragment>\\n\t#include <alphamap_fragment>\\n\t#include <alphatest_fragment>\\n\t#include <alphahash_fragment>\\n\t#include <normal_fragment_begin>\\n\t#include <normal_fragment_maps>\\n\tvec3 viewDir = normalize( vViewPosition );\\n\tvec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );\\n\tvec3 y = cross( viewDir, x );\\n\tvec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;\\n\t#ifdef USE_MATCAP\\n\t\tvec4 matcapColor = texture2D( matcap, uv );\\n\t#else\\n\t\tvec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 );\\n\t#endif\\n\tvec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;\\n\t#include <opaque_fragment>\\n\t#include <tonemapping_fragment>\\n\t#include <colorspace_fragment>\\n\t#include <fog_fragment>\\n\t#include <premultiplied_alpha_fragment>\\n\t#include <dithering_fragment>\\n}\";\nvar vertex$7 = \"#define NORMAL\\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\\n\tvarying vec3 vViewPosition;\\n#endif\\n#include <common>\\n#include <batching_pars_vertex>\\n#include <uv_pars_vertex>\\n#include <displacementmap_pars_vertex>\\n#include <normal_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\t#include <uv_vertex>\\n\t#include <batching_vertex>\\n\t#include <beginnormal_vertex>\\n\t#include <morphinstance_vertex>\\n\t#include <morphnormal_vertex>\\n\t#include <skinbase_vertex>\\n\t#include <skinnormal_vertex>\\n\t#include <defaultnormal_vertex>\\n\t#include <normal_vertex>\\n\t#include <begin_vertex>\\n\t#include <morphtarget_vertex>\\n\t#include <skinning_vertex>\\n\t#include <displacementmap_vertex>\\n\t#include <project_vertex>\\n\t#include <logdepthbuf_vertex>\\n\t#include <clipping_planes_vertex>\\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\\n\tvViewPosition = - mvPosition.xyz;\\n#endif\\n}\";\nvar fragment$7 = \"#define NORMAL\\nuniform float opacity;\\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\\n\tvarying vec3 vViewPosition;\\n#endif\\n#include <packing>\\n#include <uv_pars_fragment>\\n#include <normal_pars_fragment>\\n#include <bumpmap_pars_fragment>\\n#include <normalmap_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\tvec4 diffuseColor = vec4( 0.0, 0.0, 0.0, opacity );\\n\t#include <clipping_planes_fragment>\\n\t#include <logdepthbuf_fragment>\\n\t#include <normal_fragment_begin>\\n\t#include <normal_fragment_maps>\\n\tgl_FragColor = vec4( packNormalToRGB( normal ), diffuseColor.a );\\n\t#ifdef OPAQUE\\n\t\tgl_FragColor.a = 1.0;\\n\t#endif\\n}\";\nvar vertex$6 = \"#define PHONG\\nvarying vec3 vViewPosition;\\n#include <common>\\n#include <batching_pars_vertex>\\n#include <uv_pars_vertex>\\n#include <displacementmap_pars_vertex>\\n#include <envmap_pars_vertex>\\n#include <color_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <normal_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <shadowmap_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\t#include <uv_vertex>\\n\t#include <color_vertex>\\n\t#include <morphcolor_vertex>\\n\t#include <batching_vertex>\\n\t#include <beginnormal_vertex>\\n\t#include <morphinstance_vertex>\\n\t#include <morphnormal_vertex>\\n\t#include <skinbase_vertex>\\n\t#include <skinnormal_vertex>\\n\t#include <defaultnormal_vertex>\\n\t#include <normal_vertex>\\n\t#include <begin_vertex>\\n\t#include <morphtarget_vertex>\\n\t#include <skinning_vertex>\\n\t#include <displacementmap_vertex>\\n\t#include <project_vertex>\\n\t#include <logdepthbuf_vertex>\\n\t#include <clipping_planes_vertex>\\n\tvViewPosition = - mvPosition.xyz;\\n\t#include <worldpos_vertex>\\n\t#include <envmap_vertex>\\n\t#include <shadowmap_vertex>\\n\t#include <fog_vertex>\\n}\";\nvar fragment$6 = \"#define PHONG\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform vec3 specular;\\nuniform float shininess;\\nuniform float opacity;\\n#include <common>\\n#include <packing>\\n#include <dithering_pars_fragment>\\n#include <color_pars_fragment>\\n#include <uv_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <alphatest_pars_fragment>\\n#include <alphahash_pars_fragment>\\n#include <aomap_pars_fragment>\\n#include <lightmap_pars_fragment>\\n#include <emissivemap_pars_fragment>\\n#include <envmap_common_pars_fragment>\\n#include <envmap_pars_fragment>\\n#include <fog_pars_fragment>\\n#include <bsdfs>\\n#include <lights_pars_begin>\\n#include <normal_pars_fragment>\\n#include <lights_phong_pars_fragment>\\n#include <shadowmap_pars_fragment>\\n#include <bumpmap_pars_fragment>\\n#include <normalmap_pars_fragment>\\n#include <specularmap_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\t#include <clipping_planes_fragment>\\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\tvec3 totalEmissiveRadiance = emissive;\\n\t#include <logdepthbuf_fragment>\\n\t#include <map_fragment>\\n\t#include <color_fragment>\\n\t#include <alphamap_fragment>\\n\t#include <alphatest_fragment>\\n\t#include <alphahash_fragment>\\n\t#include <specularmap_fragment>\\n\t#include <normal_fragment_begin>\\n\t#include <normal_fragment_maps>\\n\t#include <emissivemap_fragment>\\n\t#include <lights_phong_fragment>\\n\t#include <lights_fragment_begin>\\n\t#include <lights_fragment_maps>\\n\t#include <lights_fragment_end>\\n\t#include <aomap_fragment>\\n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\\n\t#include <envmap_fragment>\\n\t#include <opaque_fragment>\\n\t#include <tonemapping_fragment>\\n\t#include <colorspace_fragment>\\n\t#include <fog_fragment>\\n\t#include <premultiplied_alpha_fragment>\\n\t#include <dithering_fragment>\\n}\";\nvar vertex$5 = \"#define STANDARD\\nvarying vec3 vViewPosition;\\n#ifdef USE_TRANSMISSION\\n\tvarying vec3 vWorldPosition;\\n#endif\\n#include <common>\\n#include <batching_pars_vertex>\\n#include <uv_pars_vertex>\\n#include <displacementmap_pars_vertex>\\n#include <color_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <normal_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <shadowmap_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\t#include <uv_vertex>\\n\t#include <color_vertex>\\n\t#include <morphinstance_vertex>\\n\t#include <morphcolor_vertex>\\n\t#include <batching_vertex>\\n\t#include <beginnormal_vertex>\\n\t#include <morphnormal_vertex>\\n\t#include <skinbase_vertex>\\n\t#include <skinnormal_vertex>\\n\t#include <defaultnormal_vertex>\\n\t#include <normal_vertex>\\n\t#include <begin_vertex>\\n\t#include <morphtarget_vertex>\\n\t#include <skinning_vertex>\\n\t#include <displacementmap_vertex>\\n\t#include <project_vertex>\\n\t#include <logdepthbuf_vertex>\\n\t#include <clipping_planes_vertex>\\n\tvViewPosition = - mvPosition.xyz;\\n\t#include <worldpos_vertex>\\n\t#include <shadowmap_vertex>\\n\t#include <fog_vertex>\\n#ifdef USE_TRANSMISSION\\n\tvWorldPosition = worldPosition.xyz;\\n#endif\\n}\";\nvar fragment$5 = \"#define STANDARD\\n#ifdef PHYSICAL\\n\t#define IOR\\n\t#define USE_SPECULAR\\n#endif\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform float roughness;\\nuniform float metalness;\\nuniform float opacity;\\n#ifdef IOR\\n\tuniform float ior;\\n#endif\\n#ifdef USE_SPECULAR\\n\tuniform float specularIntensity;\\n\tuniform vec3 specularColor;\\n\t#ifdef USE_SPECULAR_COLORMAP\\n\t\tuniform sampler2D specularColorMap;\\n\t#endif\\n\t#ifdef USE_SPECULAR_INTENSITYMAP\\n\t\tuniform sampler2D specularIntensityMap;\\n\t#endif\\n#endif\\n#ifdef USE_CLEARCOAT\\n\tuniform float clearcoat;\\n\tuniform float clearcoatRoughness;\\n#endif\\n#ifdef USE_DISPERSION\\n\tuniform float dispersion;\\n#endif\\n#ifdef USE_IRIDESCENCE\\n\tuniform float iridescence;\\n\tuniform float iridescenceIOR;\\n\tuniform float iridescenceThicknessMinimum;\\n\tuniform float iridescenceThicknessMaximum;\\n#endif\\n#ifdef USE_SHEEN\\n\tuniform vec3 sheenColor;\\n\tuniform float sheenRoughness;\\n\t#ifdef USE_SHEEN_COLORMAP\\n\t\tuniform sampler2D sheenColorMap;\\n\t#endif\\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\\n\t\tuniform sampler2D sheenRoughnessMap;\\n\t#endif\\n#endif\\n#ifdef USE_ANISOTROPY\\n\tuniform vec2 anisotropyVector;\\n\t#ifdef USE_ANISOTROPYMAP\\n\t\tuniform sampler2D anisotropyMap;\\n\t#endif\\n#endif\\nvarying vec3 vViewPosition;\\n#include <common>\\n#include <packing>\\n#include <dithering_pars_fragment>\\n#include <color_pars_fragment>\\n#include <uv_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <alphatest_pars_fragment>\\n#include <alphahash_pars_fragment>\\n#include <aomap_pars_fragment>\\n#include <lightmap_pars_fragment>\\n#include <emissivemap_pars_fragment>\\n#include <iridescence_fragment>\\n#include <cube_uv_reflection_fragment>\\n#include <envmap_common_pars_fragment>\\n#include <envmap_physical_pars_fragment>\\n#include <fog_pars_fragment>\\n#include <lights_pars_begin>\\n#include <normal_pars_fragment>\\n#include <lights_physical_pars_fragment>\\n#include <transmission_pars_fragment>\\n#include <shadowmap_pars_fragment>\\n#include <bumpmap_pars_fragment>\\n#include <normalmap_pars_fragment>\\n#include <clearcoat_pars_fragment>\\n#include <iridescence_pars_fragment>\\n#include <roughnessmap_pars_fragment>\\n#include <metalnessmap_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\t#include <clipping_planes_fragment>\\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\tvec3 totalEmissiveRadiance = emissive;\\n\t#include <logdepthbuf_fragment>\\n\t#include <map_fragment>\\n\t#include <color_fragment>\\n\t#include <alphamap_fragment>\\n\t#include <alphatest_fragment>\\n\t#include <alphahash_fragment>\\n\t#include <roughnessmap_fragment>\\n\t#include <metalnessmap_fragment>\\n\t#include <normal_fragment_begin>\\n\t#include <normal_fragment_maps>\\n\t#include <clearcoat_normal_fragment_begin>\\n\t#include <clearcoat_normal_fragment_maps>\\n\t#include <emissivemap_fragment>\\n\t#include <lights_physical_fragment>\\n\t#include <lights_fragment_begin>\\n\t#include <lights_fragment_maps>\\n\t#include <lights_fragment_end>\\n\t#include <aomap_fragment>\\n\tvec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\\n\tvec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\\n\t#include <transmission_fragment>\\n\tvec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\\n\t#ifdef USE_SHEEN\\n\t\tfloat sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );\\n\t\toutgoingLight = outgoingLight * sheenEnergyComp + sheenSpecularDirect + sheenSpecularIndirect;\\n\t#endif\\n\t#ifdef USE_CLEARCOAT\\n\t\tfloat dotNVcc = saturate( dot( geometryClearcoatNormal, geometryViewDir ) );\\n\t\tvec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\\n\t\toutgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + ( clearcoatSpecularDirect + clearcoatSpecularIndirect ) * material.clearcoat;\\n\t#endif\\n\t#include <opaque_fragment>\\n\t#include <tonemapping_fragment>\\n\t#include <colorspace_fragment>\\n\t#include <fog_fragment>\\n\t#include <premultiplied_alpha_fragment>\\n\t#include <dithering_fragment>\\n}\";\nvar vertex$4 = \"#define TOON\\nvarying vec3 vViewPosition;\\n#include <common>\\n#include <batching_pars_vertex>\\n#include <uv_pars_vertex>\\n#include <displacementmap_pars_vertex>\\n#include <color_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <normal_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <shadowmap_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\t#include <uv_vertex>\\n\t#include <color_vertex>\\n\t#include <morphinstance_vertex>\\n\t#include <morphcolor_vertex>\\n\t#include <batching_vertex>\\n\t#include <beginnormal_vertex>\\n\t#include <morphnormal_vertex>\\n\t#include <skinbase_vertex>\\n\t#include <skinnormal_vertex>\\n\t#include <defaultnormal_vertex>\\n\t#include <normal_vertex>\\n\t#include <begin_vertex>\\n\t#include <morphtarget_vertex>\\n\t#include <skinning_vertex>\\n\t#include <displacementmap_vertex>\\n\t#include <project_vertex>\\n\t#include <logdepthbuf_vertex>\\n\t#include <clipping_planes_vertex>\\n\tvViewPosition = - mvPosition.xyz;\\n\t#include <worldpos_vertex>\\n\t#include <shadowmap_vertex>\\n\t#include <fog_vertex>\\n}\";\nvar fragment$4 = \"#define TOON\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform float opacity;\\n#include <common>\\n#include <packing>\\n#include <dithering_pars_fragment>\\n#include <color_pars_fragment>\\n#include <uv_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <alphatest_pars_fragment>\\n#include <alphahash_pars_fragment>\\n#include <aomap_pars_fragment>\\n#include <lightmap_pars_fragment>\\n#include <emissivemap_pars_fragment>\\n#include <gradientmap_pars_fragment>\\n#include <fog_pars_fragment>\\n#include <bsdfs>\\n#include <lights_pars_begin>\\n#include <normal_pars_fragment>\\n#include <lights_toon_pars_fragment>\\n#include <shadowmap_pars_fragment>\\n#include <bumpmap_pars_fragment>\\n#include <normalmap_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\t#include <clipping_planes_fragment>\\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\tvec3 totalEmissiveRadiance = emissive;\\n\t#include <logdepthbuf_fragment>\\n\t#include <map_fragment>\\n\t#include <color_fragment>\\n\t#include <alphamap_fragment>\\n\t#include <alphatest_fragment>\\n\t#include <alphahash_fragment>\\n\t#include <normal_fragment_begin>\\n\t#include <normal_fragment_maps>\\n\t#include <emissivemap_fragment>\\n\t#include <lights_toon_fragment>\\n\t#include <lights_fragment_begin>\\n\t#include <lights_fragment_maps>\\n\t#include <lights_fragment_end>\\n\t#include <aomap_fragment>\\n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\\n\t#include <opaque_fragment>\\n\t#include <tonemapping_fragment>\\n\t#include <colorspace_fragment>\\n\t#include <fog_fragment>\\n\t#include <premultiplied_alpha_fragment>\\n\t#include <dithering_fragment>\\n}\";\nvar vertex$3 = \"uniform float size;\\nuniform float scale;\\n#include <common>\\n#include <color_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\n#ifdef USE_POINTS_UV\\n\tvarying vec2 vUv;\\n\tuniform mat3 uvTransform;\\n#endif\\nvoid main() {\\n\t#ifdef USE_POINTS_UV\\n\t\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\\n\t#endif\\n\t#include <color_vertex>\\n\t#include <morphinstance_vertex>\\n\t#include <morphcolor_vertex>\\n\t#include <begin_vertex>\\n\t#include <morphtarget_vertex>\\n\t#include <project_vertex>\\n\tgl_PointSize = size;\\n\t#ifdef USE_SIZEATTENUATION\\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\\n\t\tif ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );\\n\t#endif\\n\t#include <logdepthbuf_vertex>\\n\t#include <clipping_planes_vertex>\\n\t#include <worldpos_vertex>\\n\t#include <fog_vertex>\\n}\";\nvar fragment$3 = \"uniform vec3 diffuse;\\nuniform float opacity;\\n#include <common>\\n#include <color_pars_fragment>\\n#include <map_particle_pars_fragment>\\n#include <alphatest_pars_fragment>\\n#include <alphahash_pars_fragment>\\n#include <fog_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\t#include <clipping_planes_fragment>\\n\tvec3 outgoingLight = vec3( 0.0 );\\n\t#include <logdepthbuf_fragment>\\n\t#include <map_particle_fragment>\\n\t#include <color_fragment>\\n\t#include <alphatest_fragment>\\n\t#include <alphahash_fragment>\\n\toutgoingLight = diffuseColor.rgb;\\n\t#include <opaque_fragment>\\n\t#include <tonemapping_fragment>\\n\t#include <colorspace_fragment>\\n\t#include <fog_fragment>\\n\t#include <premultiplied_alpha_fragment>\\n}\";\nvar vertex$2 = \"#include <common>\\n#include <batching_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <shadowmap_pars_vertex>\\nvoid main() {\\n\t#include <batching_vertex>\\n\t#include <beginnormal_vertex>\\n\t#include <morphinstance_vertex>\\n\t#include <morphnormal_vertex>\\n\t#include <skinbase_vertex>\\n\t#include <skinnormal_vertex>\\n\t#include <defaultnormal_vertex>\\n\t#include <begin_vertex>\\n\t#include <morphtarget_vertex>\\n\t#include <skinning_vertex>\\n\t#include <project_vertex>\\n\t#include <logdepthbuf_vertex>\\n\t#include <worldpos_vertex>\\n\t#include <shadowmap_vertex>\\n\t#include <fog_vertex>\\n}\";\nvar fragment$2 = \"uniform vec3 color;\\nuniform float opacity;\\n#include <common>\\n#include <packing>\\n#include <fog_pars_fragment>\\n#include <bsdfs>\\n#include <lights_pars_begin>\\n#include <logdepthbuf_pars_fragment>\\n#include <shadowmap_pars_fragment>\\n#include <shadowmask_pars_fragment>\\nvoid main() {\\n\t#include <logdepthbuf_fragment>\\n\tgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\\n\t#include <tonemapping_fragment>\\n\t#include <colorspace_fragment>\\n\t#include <fog_fragment>\\n}\";\nvar vertex$1 = \"uniform float rotation;\\nuniform vec2 center;\\n#include <common>\\n#include <uv_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <clipping_planes_pars_vertex>\\nvoid main() {\\n\t#include <uv_vertex>\\n\tvec4 mvPosition = modelViewMatrix[ 3 ];\\n\tvec2 scale = vec2( length( modelMatrix[ 0 ].xyz ), length( modelMatrix[ 1 ].xyz ) );\\n\t#ifndef USE_SIZEATTENUATION\\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\\n\t\tif ( isPerspective ) scale *= - mvPosition.z;\\n\t#endif\\n\tvec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;\\n\tvec2 rotatedPosition;\\n\trotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\\n\trotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\\n\tmvPosition.xy += rotatedPosition;\\n\tgl_Position = projectionMatrix * mvPosition;\\n\t#include <logdepthbuf_vertex>\\n\t#include <clipping_planes_vertex>\\n\t#include <fog_vertex>\\n}\";\nvar fragment$1 = \"uniform vec3 diffuse;\\nuniform float opacity;\\n#include <common>\\n#include <uv_pars_fragment>\\n#include <map_pars_fragment>\\n#include <alphamap_pars_fragment>\\n#include <alphatest_pars_fragment>\\n#include <alphahash_pars_fragment>\\n#include <fog_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\nvoid main() {\\n\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\t#include <clipping_planes_fragment>\\n\tvec3 outgoingLight = vec3( 0.0 );\\n\t#include <logdepthbuf_fragment>\\n\t#include <map_fragment>\\n\t#include <alphamap_fragment>\\n\t#include <alphatest_fragment>\\n\t#include <alphahash_fragment>\\n\toutgoingLight = diffuseColor.rgb;\\n\t#include <opaque_fragment>\\n\t#include <tonemapping_fragment>\\n\t#include <colorspace_fragment>\\n\t#include <fog_fragment>\\n}\";\nvar ShaderChunk = {\n  alphahash_fragment,\n  alphahash_pars_fragment,\n  alphamap_fragment,\n  alphamap_pars_fragment,\n  alphatest_fragment,\n  alphatest_pars_fragment,\n  aomap_fragment,\n  aomap_pars_fragment,\n  batching_pars_vertex,\n  batching_vertex,\n  begin_vertex,\n  beginnormal_vertex,\n  bsdfs,\n  iridescence_fragment,\n  bumpmap_pars_fragment,\n  clipping_planes_fragment,\n  clipping_planes_pars_fragment,\n  clipping_planes_pars_vertex,\n  clipping_planes_vertex,\n  color_fragment,\n  color_pars_fragment,\n  color_pars_vertex,\n  color_vertex,\n  common,\n  cube_uv_reflection_fragment,\n  defaultnormal_vertex,\n  displacementmap_pars_vertex,\n  displacementmap_vertex,\n  emissivemap_fragment,\n  emissivemap_pars_fragment,\n  colorspace_fragment,\n  colorspace_pars_fragment,\n  envmap_fragment,\n  envmap_common_pars_fragment,\n  envmap_pars_fragment,\n  envmap_pars_vertex,\n  envmap_physical_pars_fragment,\n  envmap_vertex,\n  fog_vertex,\n  fog_pars_vertex,\n  fog_fragment,\n  fog_pars_fragment,\n  gradientmap_pars_fragment,\n  lightmap_pars_fragment,\n  lights_lambert_fragment,\n  lights_lambert_pars_fragment,\n  lights_pars_begin,\n  lights_toon_fragment,\n  lights_toon_pars_fragment,\n  lights_phong_fragment,\n  lights_phong_pars_fragment,\n  lights_physical_fragment,\n  lights_physical_pars_fragment,\n  lights_fragment_begin,\n  lights_fragment_maps,\n  lights_fragment_end,\n  logdepthbuf_fragment,\n  logdepthbuf_pars_fragment,\n  logdepthbuf_pars_vertex,\n  logdepthbuf_vertex,\n  map_fragment,\n  map_pars_fragment,\n  map_particle_fragment,\n  map_particle_pars_fragment,\n  metalnessmap_fragment,\n  metalnessmap_pars_fragment,\n  morphinstance_vertex,\n  morphcolor_vertex,\n  morphnormal_vertex,\n  morphtarget_pars_vertex,\n  morphtarget_vertex,\n  normal_fragment_begin,\n  normal_fragment_maps,\n  normal_pars_fragment,\n  normal_pars_vertex,\n  normal_vertex,\n  normalmap_pars_fragment,\n  clearcoat_normal_fragment_begin,\n  clearcoat_normal_fragment_maps,\n  clearcoat_pars_fragment,\n  iridescence_pars_fragment,\n  opaque_fragment,\n  packing,\n  premultiplied_alpha_fragment,\n  project_vertex,\n  dithering_fragment,\n  dithering_pars_fragment,\n  roughnessmap_fragment,\n  roughnessmap_pars_fragment,\n  shadowmap_pars_fragment,\n  shadowmap_pars_vertex,\n  shadowmap_vertex,\n  shadowmask_pars_fragment,\n  skinbase_vertex,\n  skinning_pars_vertex,\n  skinning_vertex,\n  skinnormal_vertex,\n  specularmap_fragment,\n  specularmap_pars_fragment,\n  tonemapping_fragment,\n  tonemapping_pars_fragment,\n  transmission_fragment,\n  transmission_pars_fragment,\n  uv_pars_fragment,\n  uv_pars_vertex,\n  uv_vertex,\n  worldpos_vertex,\n  background_vert: vertex$h,\n  background_frag: fragment$h,\n  backgroundCube_vert: vertex$g,\n  backgroundCube_frag: fragment$g,\n  cube_vert: vertex$f,\n  cube_frag: fragment$f,\n  depth_vert: vertex$e,\n  depth_frag: fragment$e,\n  distanceRGBA_vert: vertex$d,\n  distanceRGBA_frag: fragment$d,\n  equirect_vert: vertex$c,\n  equirect_frag: fragment$c,\n  linedashed_vert: vertex$b,\n  linedashed_frag: fragment$b,\n  meshbasic_vert: vertex$a,\n  meshbasic_frag: fragment$a,\n  meshlambert_vert: vertex$9,\n  meshlambert_frag: fragment$9,\n  meshmatcap_vert: vertex$8,\n  meshmatcap_frag: fragment$8,\n  meshnormal_vert: vertex$7,\n  meshnormal_frag: fragment$7,\n  meshphong_vert: vertex$6,\n  meshphong_frag: fragment$6,\n  meshphysical_vert: vertex$5,\n  meshphysical_frag: fragment$5,\n  meshtoon_vert: vertex$4,\n  meshtoon_frag: fragment$4,\n  points_vert: vertex$3,\n  points_frag: fragment$3,\n  shadow_vert: vertex$2,\n  shadow_frag: fragment$2,\n  sprite_vert: vertex$1,\n  sprite_frag: fragment$1\n};\nvar UniformsLib = {\n  common: {\n    diffuse: { value: /* @__PURE__ */ new Color(16777215) },\n    opacity: { value: 1 },\n    map: { value: null },\n    mapTransform: { value: /* @__PURE__ */ new Matrix3() },\n    alphaMap: { value: null },\n    alphaMapTransform: { value: /* @__PURE__ */ new Matrix3() },\n    alphaTest: { value: 0 }\n  },\n  specularmap: {\n    specularMap: { value: null },\n    specularMapTransform: { value: /* @__PURE__ */ new Matrix3() }\n  },\n  envmap: {\n    envMap: { value: null },\n    envMapRotation: { value: /* @__PURE__ */ new Matrix3() },\n    flipEnvMap: { value: -1 },\n    reflectivity: { value: 1 },\n    // basic, lambert, phong\n    ior: { value: 1.5 },\n    // physical\n    refractionRatio: { value: 0.98 }\n    // basic, lambert, phong\n  },\n  aomap: {\n    aoMap: { value: null },\n    aoMapIntensity: { value: 1 },\n    aoMapTransform: { value: /* @__PURE__ */ new Matrix3() }\n  },\n  lightmap: {\n    lightMap: { value: null },\n    lightMapIntensity: { value: 1 },\n    lightMapTransform: { value: /* @__PURE__ */ new Matrix3() }\n  },\n  bumpmap: {\n    bumpMap: { value: null },\n    bumpMapTransform: { value: /* @__PURE__ */ new Matrix3() },\n    bumpScale: { value: 1 }\n  },\n  normalmap: {\n    normalMap: { value: null },\n    normalMapTransform: { value: /* @__PURE__ */ new Matrix3() },\n    normalScale: { value: /* @__PURE__ */ new Vector2(1, 1) }\n  },\n  displacementmap: {\n    displacementMap: { value: null },\n    displacementMapTransform: { value: /* @__PURE__ */ new Matrix3() },\n    displacementScale: { value: 1 },\n    displacementBias: { value: 0 }\n  },\n  emissivemap: {\n    emissiveMap: { value: null },\n    emissiveMapTransform: { value: /* @__PURE__ */ new Matrix3() }\n  },\n  metalnessmap: {\n    metalnessMap: { value: null },\n    metalnessMapTransform: { value: /* @__PURE__ */ new Matrix3() }\n  },\n  roughnessmap: {\n    roughnessMap: { value: null },\n    roughnessMapTransform: { value: /* @__PURE__ */ new Matrix3() }\n  },\n  gradientmap: {\n    gradientMap: { value: null }\n  },\n  fog: {\n    fogDensity: { value: 25e-5 },\n    fogNear: { value: 1 },\n    fogFar: { value: 2e3 },\n    fogColor: { value: /* @__PURE__ */ new Color(16777215) }\n  },\n  lights: {\n    ambientLightColor: { value: [] },\n    lightProbe: { value: [] },\n    directionalLights: { value: [], properties: {\n      direction: {},\n      color: {}\n    } },\n    directionalLightShadows: { value: [], properties: {\n      shadowIntensity: 1,\n      shadowBias: {},\n      shadowNormalBias: {},\n      shadowRadius: {},\n      shadowMapSize: {}\n    } },\n    directionalShadowMap: { value: [] },\n    directionalShadowMatrix: { value: [] },\n    spotLights: { value: [], properties: {\n      color: {},\n      position: {},\n      direction: {},\n      distance: {},\n      coneCos: {},\n      penumbraCos: {},\n      decay: {}\n    } },\n    spotLightShadows: { value: [], properties: {\n      shadowIntensity: 1,\n      shadowBias: {},\n      shadowNormalBias: {},\n      shadowRadius: {},\n      shadowMapSize: {}\n    } },\n    spotLightMap: { value: [] },\n    spotShadowMap: { value: [] },\n    spotLightMatrix: { value: [] },\n    pointLights: { value: [], properties: {\n      color: {},\n      position: {},\n      decay: {},\n      distance: {}\n    } },\n    pointLightShadows: { value: [], properties: {\n      shadowIntensity: 1,\n      shadowBias: {},\n      shadowNormalBias: {},\n      shadowRadius: {},\n      shadowMapSize: {},\n      shadowCameraNear: {},\n      shadowCameraFar: {}\n    } },\n    pointShadowMap: { value: [] },\n    pointShadowMatrix: { value: [] },\n    hemisphereLights: { value: [], properties: {\n      direction: {},\n      skyColor: {},\n      groundColor: {}\n    } },\n    // TODO (abelnation): RectAreaLight BRDF data needs to be moved from example to main src\n    rectAreaLights: { value: [], properties: {\n      color: {},\n      position: {},\n      width: {},\n      height: {}\n    } },\n    ltc_1: { value: null },\n    ltc_2: { value: null }\n  },\n  points: {\n    diffuse: { value: /* @__PURE__ */ new Color(16777215) },\n    opacity: { value: 1 },\n    size: { value: 1 },\n    scale: { value: 1 },\n    map: { value: null },\n    alphaMap: { value: null },\n    alphaMapTransform: { value: /* @__PURE__ */ new Matrix3() },\n    alphaTest: { value: 0 },\n    uvTransform: { value: /* @__PURE__ */ new Matrix3() }\n  },\n  sprite: {\n    diffuse: { value: /* @__PURE__ */ new Color(16777215) },\n    opacity: { value: 1 },\n    center: { value: /* @__PURE__ */ new Vector2(0.5, 0.5) },\n    rotation: { value: 0 },\n    map: { value: null },\n    mapTransform: { value: /* @__PURE__ */ new Matrix3() },\n    alphaMap: { value: null },\n    alphaMapTransform: { value: /* @__PURE__ */ new Matrix3() },\n    alphaTest: { value: 0 }\n  }\n};\nvar ShaderLib = {\n  basic: {\n    uniforms: /* @__PURE__ */ mergeUniforms([\n      UniformsLib.common,\n      UniformsLib.specularmap,\n      UniformsLib.envmap,\n      UniformsLib.aomap,\n      UniformsLib.lightmap,\n      UniformsLib.fog\n    ]),\n    vertexShader: ShaderChunk.meshbasic_vert,\n    fragmentShader: ShaderChunk.meshbasic_frag\n  },\n  lambert: {\n    uniforms: /* @__PURE__ */ mergeUniforms([\n      UniformsLib.common,\n      UniformsLib.specularmap,\n      UniformsLib.envmap,\n      UniformsLib.aomap,\n      UniformsLib.lightmap,\n      UniformsLib.emissivemap,\n      UniformsLib.bumpmap,\n      UniformsLib.normalmap,\n      UniformsLib.displacementmap,\n      UniformsLib.fog,\n      UniformsLib.lights,\n      {\n        emissive: { value: /* @__PURE__ */ new Color(0) }\n      }\n    ]),\n    vertexShader: ShaderChunk.meshlambert_vert,\n    fragmentShader: ShaderChunk.meshlambert_frag\n  },\n  phong: {\n    uniforms: /* @__PURE__ */ mergeUniforms([\n      UniformsLib.common,\n      UniformsLib.specularmap,\n      UniformsLib.envmap,\n      UniformsLib.aomap,\n      UniformsLib.lightmap,\n      UniformsLib.emissivemap,\n      UniformsLib.bumpmap,\n      UniformsLib.normalmap,\n      UniformsLib.displacementmap,\n      UniformsLib.fog,\n      UniformsLib.lights,\n      {\n        emissive: { value: /* @__PURE__ */ new Color(0) },\n        specular: { value: /* @__PURE__ */ new Color(1118481) },\n        shininess: { value: 30 }\n      }\n    ]),\n    vertexShader: ShaderChunk.meshphong_vert,\n    fragmentShader: ShaderChunk.meshphong_frag\n  },\n  standard: {\n    uniforms: /* @__PURE__ */ mergeUniforms([\n      UniformsLib.common,\n      UniformsLib.envmap,\n      UniformsLib.aomap,\n      UniformsLib.lightmap,\n      UniformsLib.emissivemap,\n      UniformsLib.bumpmap,\n      UniformsLib.normalmap,\n      UniformsLib.displacementmap,\n      UniformsLib.roughnessmap,\n      UniformsLib.metalnessmap,\n      UniformsLib.fog,\n      UniformsLib.lights,\n      {\n        emissive: { value: /* @__PURE__ */ new Color(0) },\n        roughness: { value: 1 },\n        metalness: { value: 0 },\n        envMapIntensity: { value: 1 }\n      }\n    ]),\n    vertexShader: ShaderChunk.meshphysical_vert,\n    fragmentShader: ShaderChunk.meshphysical_frag\n  },\n  toon: {\n    uniforms: /* @__PURE__ */ mergeUniforms([\n      UniformsLib.common,\n      UniformsLib.aomap,\n      UniformsLib.lightmap,\n      UniformsLib.emissivemap,\n      UniformsLib.bumpmap,\n      UniformsLib.normalmap,\n      UniformsLib.displacementmap,\n      UniformsLib.gradientmap,\n      UniformsLib.fog,\n      UniformsLib.lights,\n      {\n        emissive: { value: /* @__PURE__ */ new Color(0) }\n      }\n    ]),\n    vertexShader: ShaderChunk.meshtoon_vert,\n    fragmentShader: ShaderChunk.meshtoon_frag\n  },\n  matcap: {\n    uniforms: /* @__PURE__ */ mergeUniforms([\n      UniformsLib.common,\n      UniformsLib.bumpmap,\n      UniformsLib.normalmap,\n      UniformsLib.displacementmap,\n      UniformsLib.fog,\n      {\n        matcap: { value: null }\n      }\n    ]),\n    vertexShader: ShaderChunk.meshmatcap_vert,\n    fragmentShader: ShaderChunk.meshmatcap_frag\n  },\n  points: {\n    uniforms: /* @__PURE__ */ mergeUniforms([\n      UniformsLib.points,\n      UniformsLib.fog\n    ]),\n    vertexShader: ShaderChunk.points_vert,\n    fragmentShader: ShaderChunk.points_frag\n  },\n  dashed: {\n    uniforms: /* @__PURE__ */ mergeUniforms([\n      UniformsLib.common,\n      UniformsLib.fog,\n      {\n        scale: { value: 1 },\n        dashSize: { value: 1 },\n        totalSize: { value: 2 }\n      }\n    ]),\n    vertexShader: ShaderChunk.linedashed_vert,\n    fragmentShader: ShaderChunk.linedashed_frag\n  },\n  depth: {\n    uniforms: /* @__PURE__ */ mergeUniforms([\n      UniformsLib.common,\n      UniformsLib.displacementmap\n    ]),\n    vertexShader: ShaderChunk.depth_vert,\n    fragmentShader: ShaderChunk.depth_frag\n  },\n  normal: {\n    uniforms: /* @__PURE__ */ mergeUniforms([\n      UniformsLib.common,\n      UniformsLib.bumpmap,\n      UniformsLib.normalmap,\n      UniformsLib.displacementmap,\n      {\n        opacity: { value: 1 }\n      }\n    ]),\n    vertexShader: ShaderChunk.meshnormal_vert,\n    fragmentShader: ShaderChunk.meshnormal_frag\n  },\n  sprite: {\n    uniforms: /* @__PURE__ */ mergeUniforms([\n      UniformsLib.sprite,\n      UniformsLib.fog\n    ]),\n    vertexShader: ShaderChunk.sprite_vert,\n    fragmentShader: ShaderChunk.sprite_frag\n  },\n  background: {\n    uniforms: {\n      uvTransform: { value: /* @__PURE__ */ new Matrix3() },\n      t2D: { value: null },\n      backgroundIntensity: { value: 1 }\n    },\n    vertexShader: ShaderChunk.background_vert,\n    fragmentShader: ShaderChunk.background_frag\n  },\n  backgroundCube: {\n    uniforms: {\n      envMap: { value: null },\n      flipEnvMap: { value: -1 },\n      backgroundBlurriness: { value: 0 },\n      backgroundIntensity: { value: 1 },\n      backgroundRotation: { value: /* @__PURE__ */ new Matrix3() }\n    },\n    vertexShader: ShaderChunk.backgroundCube_vert,\n    fragmentShader: ShaderChunk.backgroundCube_frag\n  },\n  cube: {\n    uniforms: {\n      tCube: { value: null },\n      tFlip: { value: -1 },\n      opacity: { value: 1 }\n    },\n    vertexShader: ShaderChunk.cube_vert,\n    fragmentShader: ShaderChunk.cube_frag\n  },\n  equirect: {\n    uniforms: {\n      tEquirect: { value: null }\n    },\n    vertexShader: ShaderChunk.equirect_vert,\n    fragmentShader: ShaderChunk.equirect_frag\n  },\n  distanceRGBA: {\n    uniforms: /* @__PURE__ */ mergeUniforms([\n      UniformsLib.common,\n      UniformsLib.displacementmap,\n      {\n        referencePosition: { value: /* @__PURE__ */ new Vector3() },\n        nearDistance: { value: 1 },\n        farDistance: { value: 1e3 }\n      }\n    ]),\n    vertexShader: ShaderChunk.distanceRGBA_vert,\n    fragmentShader: ShaderChunk.distanceRGBA_frag\n  },\n  shadow: {\n    uniforms: /* @__PURE__ */ mergeUniforms([\n      UniformsLib.lights,\n      UniformsLib.fog,\n      {\n        color: { value: /* @__PURE__ */ new Color(0) },\n        opacity: { value: 1 }\n      }\n    ]),\n    vertexShader: ShaderChunk.shadow_vert,\n    fragmentShader: ShaderChunk.shadow_frag\n  }\n};\nShaderLib.physical = {\n  uniforms: /* @__PURE__ */ mergeUniforms([\n    ShaderLib.standard.uniforms,\n    {\n      clearcoat: { value: 0 },\n      clearcoatMap: { value: null },\n      clearcoatMapTransform: { value: /* @__PURE__ */ new Matrix3() },\n      clearcoatNormalMap: { value: null },\n      clearcoatNormalMapTransform: { value: /* @__PURE__ */ new Matrix3() },\n      clearcoatNormalScale: { value: /* @__PURE__ */ new Vector2(1, 1) },\n      clearcoatRoughness: { value: 0 },\n      clearcoatRoughnessMap: { value: null },\n      clearcoatRoughnessMapTransform: { value: /* @__PURE__ */ new Matrix3() },\n      dispersion: { value: 0 },\n      iridescence: { value: 0 },\n      iridescenceMap: { value: null },\n      iridescenceMapTransform: { value: /* @__PURE__ */ new Matrix3() },\n      iridescenceIOR: { value: 1.3 },\n      iridescenceThicknessMinimum: { value: 100 },\n      iridescenceThicknessMaximum: { value: 400 },\n      iridescenceThicknessMap: { value: null },\n      iridescenceThicknessMapTransform: { value: /* @__PURE__ */ new Matrix3() },\n      sheen: { value: 0 },\n      sheenColor: { value: /* @__PURE__ */ new Color(0) },\n      sheenColorMap: { value: null },\n      sheenColorMapTransform: { value: /* @__PURE__ */ new Matrix3() },\n      sheenRoughness: { value: 1 },\n      sheenRoughnessMap: { value: null },\n      sheenRoughnessMapTransform: { value: /* @__PURE__ */ new Matrix3() },\n      transmission: { value: 0 },\n      transmissionMap: { value: null },\n      transmissionMapTransform: { value: /* @__PURE__ */ new Matrix3() },\n      transmissionSamplerSize: { value: /* @__PURE__ */ new Vector2() },\n      transmissionSamplerMap: { value: null },\n      thickness: { value: 0 },\n      thicknessMap: { value: null },\n      thicknessMapTransform: { value: /* @__PURE__ */ new Matrix3() },\n      attenuationDistance: { value: 0 },\n      attenuationColor: { value: /* @__PURE__ */ new Color(0) },\n      specularColor: { value: /* @__PURE__ */ new Color(1, 1, 1) },\n      specularColorMap: { value: null },\n      specularColorMapTransform: { value: /* @__PURE__ */ new Matrix3() },\n      specularIntensity: { value: 1 },\n      specularIntensityMap: { value: null },\n      specularIntensityMapTransform: { value: /* @__PURE__ */ new Matrix3() },\n      anisotropyVector: { value: /* @__PURE__ */ new Vector2() },\n      anisotropyMap: { value: null },\n      anisotropyMapTransform: { value: /* @__PURE__ */ new Matrix3() }\n    }\n  ]),\n  vertexShader: ShaderChunk.meshphysical_vert,\n  fragmentShader: ShaderChunk.meshphysical_frag\n};\nvar _rgb = { r: 0, b: 0, g: 0 };\nvar _e1$1 = /* @__PURE__ */ new Euler();\nvar _m1$1 = /* @__PURE__ */ new Matrix4();\nfunction WebGLBackground(renderer, cubemaps, cubeuvmaps, state, objects, alpha, premultipliedAlpha) {\n  const clearColor = new Color(0);\n  let clearAlpha = alpha === true ? 0 : 1;\n  let planeMesh;\n  let boxMesh;\n  let currentBackground = null;\n  let currentBackgroundVersion = 0;\n  let currentTonemapping = null;\n  function getBackground(scene) {\n    let background = scene.isScene === true ? scene.background : null;\n    if (background && background.isTexture) {\n      const usePMREM = scene.backgroundBlurriness > 0;\n      background = (usePMREM ? cubeuvmaps : cubemaps).get(background);\n    }\n    return background;\n  }\n  function render(scene) {\n    let forceClear = false;\n    const background = getBackground(scene);\n    if (background === null) {\n      setClear(clearColor, clearAlpha);\n    } else if (background && background.isColor) {\n      setClear(background, 1);\n      forceClear = true;\n    }\n    const environmentBlendMode = renderer.xr.getEnvironmentBlendMode();\n    if (environmentBlendMode === \"additive\") {\n      state.buffers.color.setClear(0, 0, 0, 1, premultipliedAlpha);\n    } else if (environmentBlendMode === \"alpha-blend\") {\n      state.buffers.color.setClear(0, 0, 0, 0, premultipliedAlpha);\n    }\n    if (renderer.autoClear || forceClear) {\n      state.buffers.depth.setTest(true);\n      state.buffers.depth.setMask(true);\n      state.buffers.color.setMask(true);\n      renderer.clear(renderer.autoClearColor, renderer.autoClearDepth, renderer.autoClearStencil);\n    }\n  }\n  function addToRenderList(renderList, scene) {\n    const background = getBackground(scene);\n    if (background && (background.isCubeTexture || background.mapping === CubeUVReflectionMapping)) {\n      if (boxMesh === void 0) {\n        boxMesh = new Mesh(\n          new BoxGeometry(1, 1, 1),\n          new ShaderMaterial({\n            name: \"BackgroundCubeMaterial\",\n            uniforms: cloneUniforms(ShaderLib.backgroundCube.uniforms),\n            vertexShader: ShaderLib.backgroundCube.vertexShader,\n            fragmentShader: ShaderLib.backgroundCube.fragmentShader,\n            side: BackSide,\n            depthTest: false,\n            depthWrite: false,\n            fog: false\n          })\n        );\n        boxMesh.geometry.deleteAttribute(\"normal\");\n        boxMesh.geometry.deleteAttribute(\"uv\");\n        boxMesh.onBeforeRender = function(renderer2, scene2, camera) {\n          this.matrixWorld.copyPosition(camera.matrixWorld);\n        };\n        Object.defineProperty(boxMesh.material, \"envMap\", {\n          get: function() {\n            return this.uniforms.envMap.value;\n          }\n        });\n        objects.update(boxMesh);\n      }\n      _e1$1.copy(scene.backgroundRotation);\n      _e1$1.x *= -1;\n      _e1$1.y *= -1;\n      _e1$1.z *= -1;\n      if (background.isCubeTexture && background.isRenderTargetTexture === false) {\n        _e1$1.y *= -1;\n        _e1$1.z *= -1;\n      }\n      boxMesh.material.uniforms.envMap.value = background;\n      boxMesh.material.uniforms.flipEnvMap.value = background.isCubeTexture && background.isRenderTargetTexture === false ? -1 : 1;\n      boxMesh.material.uniforms.backgroundBlurriness.value = scene.backgroundBlurriness;\n      boxMesh.material.uniforms.backgroundIntensity.value = scene.backgroundIntensity;\n      boxMesh.material.uniforms.backgroundRotation.value.setFromMatrix4(_m1$1.makeRotationFromEuler(_e1$1));\n      boxMesh.material.toneMapped = ColorManagement.getTransfer(background.colorSpace) !== SRGBTransfer;\n      if (currentBackground !== background || currentBackgroundVersion !== background.version || currentTonemapping !== renderer.toneMapping) {\n        boxMesh.material.needsUpdate = true;\n        currentBackground = background;\n        currentBackgroundVersion = background.version;\n        currentTonemapping = renderer.toneMapping;\n      }\n      boxMesh.layers.enableAll();\n      renderList.unshift(boxMesh, boxMesh.geometry, boxMesh.material, 0, 0, null);\n    } else if (background && background.isTexture) {\n      if (planeMesh === void 0) {\n        planeMesh = new Mesh(\n          new PlaneGeometry(2, 2),\n          new ShaderMaterial({\n            name: \"BackgroundMaterial\",\n            uniforms: cloneUniforms(ShaderLib.background.uniforms),\n            vertexShader: ShaderLib.background.vertexShader,\n            fragmentShader: ShaderLib.background.fragmentShader,\n            side: FrontSide,\n            depthTest: false,\n            depthWrite: false,\n            fog: false\n          })\n        );\n        planeMesh.geometry.deleteAttribute(\"normal\");\n        Object.defineProperty(planeMesh.material, \"map\", {\n          get: function() {\n            return this.uniforms.t2D.value;\n          }\n        });\n        objects.update(planeMesh);\n      }\n      planeMesh.material.uniforms.t2D.value = background;\n      planeMesh.material.uniforms.backgroundIntensity.value = scene.backgroundIntensity;\n      planeMesh.material.toneMapped = ColorManagement.getTransfer(background.colorSpace) !== SRGBTransfer;\n      if (background.matrixAutoUpdate === true) {\n        background.updateMatrix();\n      }\n      planeMesh.material.uniforms.uvTransform.value.copy(background.matrix);\n      if (currentBackground !== background || currentBackgroundVersion !== background.version || currentTonemapping !== renderer.toneMapping) {\n        planeMesh.material.needsUpdate = true;\n        currentBackground = background;\n        currentBackgroundVersion = background.version;\n        currentTonemapping = renderer.toneMapping;\n      }\n      planeMesh.layers.enableAll();\n      renderList.unshift(planeMesh, planeMesh.geometry, planeMesh.material, 0, 0, null);\n    }\n  }\n  function setClear(color, alpha2) {\n    color.getRGB(_rgb, getUnlitUniformColorSpace(renderer));\n    state.buffers.color.setClear(_rgb.r, _rgb.g, _rgb.b, alpha2, premultipliedAlpha);\n  }\n  return {\n    getClearColor: function() {\n      return clearColor;\n    },\n    setClearColor: function(color, alpha2 = 1) {\n      clearColor.set(color);\n      clearAlpha = alpha2;\n      setClear(clearColor, clearAlpha);\n    },\n    getClearAlpha: function() {\n      return clearAlpha;\n    },\n    setClearAlpha: function(alpha2) {\n      clearAlpha = alpha2;\n      setClear(clearColor, clearAlpha);\n    },\n    render,\n    addToRenderList\n  };\n}\nfunction WebGLBindingStates(gl, attributes) {\n  const maxVertexAttributes = gl.getParameter(gl.MAX_VERTEX_ATTRIBS);\n  const bindingStates = {};\n  const defaultState = createBindingState(null);\n  let currentState = defaultState;\n  let forceUpdate = false;\n  function setup(object, material, program, geometry, index) {\n    let updateBuffers = false;\n    const state = getBindingState(geometry, program, material);\n    if (currentState !== state) {\n      currentState = state;\n      bindVertexArrayObject(currentState.object);\n    }\n    updateBuffers = needsUpdate(object, geometry, program, index);\n    if (updateBuffers) saveCache(object, geometry, program, index);\n    if (index !== null) {\n      attributes.update(index, gl.ELEMENT_ARRAY_BUFFER);\n    }\n    if (updateBuffers || forceUpdate) {\n      forceUpdate = false;\n      setupVertexAttributes(object, material, program, geometry);\n      if (index !== null) {\n        gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, attributes.get(index).buffer);\n      }\n    }\n  }\n  function createVertexArrayObject() {\n    return gl.createVertexArray();\n  }\n  function bindVertexArrayObject(vao) {\n    return gl.bindVertexArray(vao);\n  }\n  function deleteVertexArrayObject(vao) {\n    return gl.deleteVertexArray(vao);\n  }\n  function getBindingState(geometry, program, material) {\n    const wireframe = material.wireframe === true;\n    let programMap = bindingStates[geometry.id];\n    if (programMap === void 0) {\n      programMap = {};\n      bindingStates[geometry.id] = programMap;\n    }\n    let stateMap = programMap[program.id];\n    if (stateMap === void 0) {\n      stateMap = {};\n      programMap[program.id] = stateMap;\n    }\n    let state = stateMap[wireframe];\n    if (state === void 0) {\n      state = createBindingState(createVertexArrayObject());\n      stateMap[wireframe] = state;\n    }\n    return state;\n  }\n  function createBindingState(vao) {\n    const newAttributes = [];\n    const enabledAttributes = [];\n    const attributeDivisors = [];\n    for (let i = 0; i < maxVertexAttributes; i++) {\n      newAttributes[i] = 0;\n      enabledAttributes[i] = 0;\n      attributeDivisors[i] = 0;\n    }\n    return {\n      // for backward compatibility on non-VAO support browser\n      geometry: null,\n      program: null,\n      wireframe: false,\n      newAttributes,\n      enabledAttributes,\n      attributeDivisors,\n      object: vao,\n      attributes: {},\n      index: null\n    };\n  }\n  function needsUpdate(object, geometry, program, index) {\n    const cachedAttributes = currentState.attributes;\n    const geometryAttributes = geometry.attributes;\n    let attributesNum = 0;\n    const programAttributes = program.getAttributes();\n    for (const name in programAttributes) {\n      const programAttribute = programAttributes[name];\n      if (programAttribute.location >= 0) {\n        const cachedAttribute = cachedAttributes[name];\n        let geometryAttribute = geometryAttributes[name];\n        if (geometryAttribute === void 0) {\n          if (name === \"instanceMatrix\" && object.instanceMatrix) geometryAttribute = object.instanceMatrix;\n          if (name === \"instanceColor\" && object.instanceColor) geometryAttribute = object.instanceColor;\n        }\n        if (cachedAttribute === void 0) return true;\n        if (cachedAttribute.attribute !== geometryAttribute) return true;\n        if (geometryAttribute && cachedAttribute.data !== geometryAttribute.data) return true;\n        attributesNum++;\n      }\n    }\n    if (currentState.attributesNum !== attributesNum) return true;\n    if (currentState.index !== index) return true;\n    return false;\n  }\n  function saveCache(object, geometry, program, index) {\n    const cache = {};\n    const attributes2 = geometry.attributes;\n    let attributesNum = 0;\n    const programAttributes = program.getAttributes();\n    for (const name in programAttributes) {\n      const programAttribute = programAttributes[name];\n      if (programAttribute.location >= 0) {\n        let attribute = attributes2[name];\n        if (attribute === void 0) {\n          if (name === \"instanceMatrix\" && object.instanceMatrix) attribute = object.instanceMatrix;\n          if (name === \"instanceColor\" && object.instanceColor) attribute = object.instanceColor;\n        }\n        const data = {};\n        data.attribute = attribute;\n        if (attribute && attribute.data) {\n          data.data = attribute.data;\n        }\n        cache[name] = data;\n        attributesNum++;\n      }\n    }\n    currentState.attributes = cache;\n    currentState.attributesNum = attributesNum;\n    currentState.index = index;\n  }\n  function initAttributes() {\n    const newAttributes = currentState.newAttributes;\n    for (let i = 0, il = newAttributes.length; i < il; i++) {\n      newAttributes[i] = 0;\n    }\n  }\n  function enableAttribute(attribute) {\n    enableAttributeAndDivisor(attribute, 0);\n  }\n  function enableAttributeAndDivisor(attribute, meshPerAttribute) {\n    const newAttributes = currentState.newAttributes;\n    const enabledAttributes = currentState.enabledAttributes;\n    const attributeDivisors = currentState.attributeDivisors;\n    newAttributes[attribute] = 1;\n    if (enabledAttributes[attribute] === 0) {\n      gl.enableVertexAttribArray(attribute);\n      enabledAttributes[attribute] = 1;\n    }\n    if (attributeDivisors[attribute] !== meshPerAttribute) {\n      gl.vertexAttribDivisor(attribute, meshPerAttribute);\n      attributeDivisors[attribute] = meshPerAttribute;\n    }\n  }\n  function disableUnusedAttributes() {\n    const newAttributes = currentState.newAttributes;\n    const enabledAttributes = currentState.enabledAttributes;\n    for (let i = 0, il = enabledAttributes.length; i < il; i++) {\n      if (enabledAttributes[i] !== newAttributes[i]) {\n        gl.disableVertexAttribArray(i);\n        enabledAttributes[i] = 0;\n      }\n    }\n  }\n  function vertexAttribPointer(index, size, type, normalized, stride, offset, integer) {\n    if (integer === true) {\n      gl.vertexAttribIPointer(index, size, type, stride, offset);\n    } else {\n      gl.vertexAttribPointer(index, size, type, normalized, stride, offset);\n    }\n  }\n  function setupVertexAttributes(object, material, program, geometry) {\n    initAttributes();\n    const geometryAttributes = geometry.attributes;\n    const programAttributes = program.getAttributes();\n    const materialDefaultAttributeValues = material.defaultAttributeValues;\n    for (const name in programAttributes) {\n      const programAttribute = programAttributes[name];\n      if (programAttribute.location >= 0) {\n        let geometryAttribute = geometryAttributes[name];\n        if (geometryAttribute === void 0) {\n          if (name === \"instanceMatrix\" && object.instanceMatrix) geometryAttribute = object.instanceMatrix;\n          if (name === \"instanceColor\" && object.instanceColor) geometryAttribute = object.instanceColor;\n        }\n        if (geometryAttribute !== void 0) {\n          const normalized = geometryAttribute.normalized;\n          const size = geometryAttribute.itemSize;\n          const attribute = attributes.get(geometryAttribute);\n          if (attribute === void 0) continue;\n          const buffer = attribute.buffer;\n          const type = attribute.type;\n          const bytesPerElement = attribute.bytesPerElement;\n          const integer = type === gl.INT || type === gl.UNSIGNED_INT || geometryAttribute.gpuType === IntType;\n          if (geometryAttribute.isInterleavedBufferAttribute) {\n            const data = geometryAttribute.data;\n            const stride = data.stride;\n            const offset = geometryAttribute.offset;\n            if (data.isInstancedInterleavedBuffer) {\n              for (let i = 0; i < programAttribute.locationSize; i++) {\n                enableAttributeAndDivisor(programAttribute.location + i, data.meshPerAttribute);\n              }\n              if (object.isInstancedMesh !== true && geometry._maxInstanceCount === void 0) {\n                geometry._maxInstanceCount = data.meshPerAttribute * data.count;\n              }\n            } else {\n              for (let i = 0; i < programAttribute.locationSize; i++) {\n                enableAttribute(programAttribute.location + i);\n              }\n            }\n            gl.bindBuffer(gl.ARRAY_BUFFER, buffer);\n            for (let i = 0; i < programAttribute.locationSize; i++) {\n              vertexAttribPointer(\n                programAttribute.location + i,\n                size / programAttribute.locationSize,\n                type,\n                normalized,\n                stride * bytesPerElement,\n                (offset + size / programAttribute.locationSize * i) * bytesPerElement,\n                integer\n              );\n            }\n          } else {\n            if (geometryAttribute.isInstancedBufferAttribute) {\n              for (let i = 0; i < programAttribute.locationSize; i++) {\n                enableAttributeAndDivisor(programAttribute.location + i, geometryAttribute.meshPerAttribute);\n              }\n              if (object.isInstancedMesh !== true && geometry._maxInstanceCount === void 0) {\n                geometry._maxInstanceCount = geometryAttribute.meshPerAttribute * geometryAttribute.count;\n              }\n            } else {\n              for (let i = 0; i < programAttribute.locationSize; i++) {\n                enableAttribute(programAttribute.location + i);\n              }\n            }\n            gl.bindBuffer(gl.ARRAY_BUFFER, buffer);\n            for (let i = 0; i < programAttribute.locationSize; i++) {\n              vertexAttribPointer(\n                programAttribute.location + i,\n                size / programAttribute.locationSize,\n                type,\n                normalized,\n                size * bytesPerElement,\n                size / programAttribute.locationSize * i * bytesPerElement,\n                integer\n              );\n            }\n          }\n        } else if (materialDefaultAttributeValues !== void 0) {\n          const value = materialDefaultAttributeValues[name];\n          if (value !== void 0) {\n            switch (value.length) {\n              case 2:\n                gl.vertexAttrib2fv(programAttribute.location, value);\n                break;\n              case 3:\n                gl.vertexAttrib3fv(programAttribute.location, value);\n                break;\n              case 4:\n                gl.vertexAttrib4fv(programAttribute.location, value);\n                break;\n              default:\n                gl.vertexAttrib1fv(programAttribute.location, value);\n            }\n          }\n        }\n      }\n    }\n    disableUnusedAttributes();\n  }\n  function dispose() {\n    reset();\n    for (const geometryId in bindingStates) {\n      const programMap = bindingStates[geometryId];\n      for (const programId in programMap) {\n        const stateMap = programMap[programId];\n        for (const wireframe in stateMap) {\n          deleteVertexArrayObject(stateMap[wireframe].object);\n          delete stateMap[wireframe];\n        }\n        delete programMap[programId];\n      }\n      delete bindingStates[geometryId];\n    }\n  }\n  function releaseStatesOfGeometry(geometry) {\n    if (bindingStates[geometry.id] === void 0) return;\n    const programMap = bindingStates[geometry.id];\n    for (const programId in programMap) {\n      const stateMap = programMap[programId];\n      for (const wireframe in stateMap) {\n        deleteVertexArrayObject(stateMap[wireframe].object);\n        delete stateMap[wireframe];\n      }\n      delete programMap[programId];\n    }\n    delete bindingStates[geometry.id];\n  }\n  function releaseStatesOfProgram(program) {\n    for (const geometryId in bindingStates) {\n      const programMap = bindingStates[geometryId];\n      if (programMap[program.id] === void 0) continue;\n      const stateMap = programMap[program.id];\n      for (const wireframe in stateMap) {\n        deleteVertexArrayObject(stateMap[wireframe].object);\n        delete stateMap[wireframe];\n      }\n      delete programMap[program.id];\n    }\n  }\n  function reset() {\n    resetDefaultState();\n    forceUpdate = true;\n    if (currentState === defaultState) return;\n    currentState = defaultState;\n    bindVertexArrayObject(currentState.object);\n  }\n  function resetDefaultState() {\n    defaultState.geometry = null;\n    defaultState.program = null;\n    defaultState.wireframe = false;\n  }\n  return {\n    setup,\n    reset,\n    resetDefaultState,\n    dispose,\n    releaseStatesOfGeometry,\n    releaseStatesOfProgram,\n    initAttributes,\n    enableAttribute,\n    disableUnusedAttributes\n  };\n}\nfunction WebGLBufferRenderer(gl, extensions, info) {\n  let mode;\n  function setMode(value) {\n    mode = value;\n  }\n  function render(start, count) {\n    gl.drawArrays(mode, start, count);\n    info.update(count, mode, 1);\n  }\n  function renderInstances(start, count, primcount) {\n    if (primcount === 0) return;\n    gl.drawArraysInstanced(mode, start, count, primcount);\n    info.update(count, mode, primcount);\n  }\n  function renderMultiDraw(starts, counts, drawCount) {\n    if (drawCount === 0) return;\n    const extension = extensions.get(\"WEBGL_multi_draw\");\n    extension.multiDrawArraysWEBGL(mode, starts, 0, counts, 0, drawCount);\n    let elementCount = 0;\n    for (let i = 0; i < drawCount; i++) {\n      elementCount += counts[i];\n    }\n    info.update(elementCount, mode, 1);\n  }\n  function renderMultiDrawInstances(starts, counts, drawCount, primcount) {\n    if (drawCount === 0) return;\n    const extension = extensions.get(\"WEBGL_multi_draw\");\n    if (extension === null) {\n      for (let i = 0; i < starts.length; i++) {\n        renderInstances(starts[i], counts[i], primcount[i]);\n      }\n    } else {\n      extension.multiDrawArraysInstancedWEBGL(mode, starts, 0, counts, 0, primcount, 0, drawCount);\n      let elementCount = 0;\n      for (let i = 0; i < drawCount; i++) {\n        elementCount += counts[i];\n      }\n      for (let i = 0; i < primcount.length; i++) {\n        info.update(elementCount, mode, primcount[i]);\n      }\n    }\n  }\n  this.setMode = setMode;\n  this.render = render;\n  this.renderInstances = renderInstances;\n  this.renderMultiDraw = renderMultiDraw;\n  this.renderMultiDrawInstances = renderMultiDrawInstances;\n}\nfunction WebGLCapabilities(gl, extensions, parameters, utils) {\n  let maxAnisotropy;\n  function getMaxAnisotropy() {\n    if (maxAnisotropy !== void 0) return maxAnisotropy;\n    if (extensions.has(\"EXT_texture_filter_anisotropic\") === true) {\n      const extension = extensions.get(\"EXT_texture_filter_anisotropic\");\n      maxAnisotropy = gl.getParameter(extension.MAX_TEXTURE_MAX_ANISOTROPY_EXT);\n    } else {\n      maxAnisotropy = 0;\n    }\n    return maxAnisotropy;\n  }\n  function textureFormatReadable(textureFormat) {\n    if (textureFormat !== RGBAFormat && utils.convert(textureFormat) !== gl.getParameter(gl.IMPLEMENTATION_COLOR_READ_FORMAT)) {\n      return false;\n    }\n    return true;\n  }\n  function textureTypeReadable(textureType) {\n    const halfFloatSupportedByExt = textureType === HalfFloatType && (extensions.has(\"EXT_color_buffer_half_float\") || extensions.has(\"EXT_color_buffer_float\"));\n    if (textureType !== UnsignedByteType && utils.convert(textureType) !== gl.getParameter(gl.IMPLEMENTATION_COLOR_READ_TYPE) && // Edge and Chrome Mac < 52 (#9513)\n    textureType !== FloatType && !halfFloatSupportedByExt) {\n      return false;\n    }\n    return true;\n  }\n  function getMaxPrecision(precision2) {\n    if (precision2 === \"highp\") {\n      if (gl.getShaderPrecisionFormat(gl.VERTEX_SHADER, gl.HIGH_FLOAT).precision > 0 && gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.HIGH_FLOAT).precision > 0) {\n        return \"highp\";\n      }\n      precision2 = \"mediump\";\n    }\n    if (precision2 === \"mediump\") {\n      if (gl.getShaderPrecisionFormat(gl.VERTEX_SHADER, gl.MEDIUM_FLOAT).precision > 0 && gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.MEDIUM_FLOAT).precision > 0) {\n        return \"mediump\";\n      }\n    }\n    return \"lowp\";\n  }\n  let precision = parameters.precision !== void 0 ? parameters.precision : \"highp\";\n  const maxPrecision = getMaxPrecision(precision);\n  if (maxPrecision !== precision) {\n    console.warn(\"THREE.WebGLRenderer:\", precision, \"not supported, using\", maxPrecision, \"instead.\");\n    precision = maxPrecision;\n  }\n  const logarithmicDepthBuffer = parameters.logarithmicDepthBuffer === true;\n  const reverseDepthBuffer = parameters.reverseDepthBuffer === true && extensions.has(\"EXT_clip_control\");\n  if (reverseDepthBuffer === true) {\n    const ext = extensions.get(\"EXT_clip_control\");\n    ext.clipControlEXT(ext.LOWER_LEFT_EXT, ext.ZERO_TO_ONE_EXT);\n  }\n  const maxTextures = gl.getParameter(gl.MAX_TEXTURE_IMAGE_UNITS);\n  const maxVertexTextures = gl.getParameter(gl.MAX_VERTEX_TEXTURE_IMAGE_UNITS);\n  const maxTextureSize = gl.getParameter(gl.MAX_TEXTURE_SIZE);\n  const maxCubemapSize = gl.getParameter(gl.MAX_CUBE_MAP_TEXTURE_SIZE);\n  const maxAttributes = gl.getParameter(gl.MAX_VERTEX_ATTRIBS);\n  const maxVertexUniforms = gl.getParameter(gl.MAX_VERTEX_UNIFORM_VECTORS);\n  const maxVaryings = gl.getParameter(gl.MAX_VARYING_VECTORS);\n  const maxFragmentUniforms = gl.getParameter(gl.MAX_FRAGMENT_UNIFORM_VECTORS);\n  const vertexTextures = maxVertexTextures > 0;\n  const maxSamples = gl.getParameter(gl.MAX_SAMPLES);\n  return {\n    isWebGL2: true,\n    // keeping this for backwards compatibility\n    getMaxAnisotropy,\n    getMaxPrecision,\n    textureFormatReadable,\n    textureTypeReadable,\n    precision,\n    logarithmicDepthBuffer,\n    reverseDepthBuffer,\n    maxTextures,\n    maxVertexTextures,\n    maxTextureSize,\n    maxCubemapSize,\n    maxAttributes,\n    maxVertexUniforms,\n    maxVaryings,\n    maxFragmentUniforms,\n    vertexTextures,\n    maxSamples\n  };\n}\nfunction WebGLClipping(properties) {\n  const scope = this;\n  let globalState = null, numGlobalPlanes = 0, localClippingEnabled = false, renderingShadows = false;\n  const plane = new Plane(), viewNormalMatrix = new Matrix3(), uniform = { value: null, needsUpdate: false };\n  this.uniform = uniform;\n  this.numPlanes = 0;\n  this.numIntersection = 0;\n  this.init = function(planes, enableLocalClipping) {\n    const enabled = planes.length !== 0 || enableLocalClipping || // enable state of previous frame - the clipping code has to\n    // run another frame in order to reset the state:\n    numGlobalPlanes !== 0 || localClippingEnabled;\n    localClippingEnabled = enableLocalClipping;\n    numGlobalPlanes = planes.length;\n    return enabled;\n  };\n  this.beginShadows = function() {\n    renderingShadows = true;\n    projectPlanes(null);\n  };\n  this.endShadows = function() {\n    renderingShadows = false;\n  };\n  this.setGlobalState = function(planes, camera) {\n    globalState = projectPlanes(planes, camera, 0);\n  };\n  this.setState = function(material, camera, useCache) {\n    const planes = material.clippingPlanes, clipIntersection = material.clipIntersection, clipShadows = material.clipShadows;\n    const materialProperties = properties.get(material);\n    if (!localClippingEnabled || planes === null || planes.length === 0 || renderingShadows && !clipShadows) {\n      if (renderingShadows) {\n        projectPlanes(null);\n      } else {\n        resetGlobalState();\n      }\n    } else {\n      const nGlobal = renderingShadows ? 0 : numGlobalPlanes, lGlobal = nGlobal * 4;\n      let dstArray = materialProperties.clippingState || null;\n      uniform.value = dstArray;\n      dstArray = projectPlanes(planes, camera, lGlobal, useCache);\n      for (let i = 0; i !== lGlobal; ++i) {\n        dstArray[i] = globalState[i];\n      }\n      materialProperties.clippingState = dstArray;\n      this.numIntersection = clipIntersection ? this.numPlanes : 0;\n      this.numPlanes += nGlobal;\n    }\n  };\n  function resetGlobalState() {\n    if (uniform.value !== globalState) {\n      uniform.value = globalState;\n      uniform.needsUpdate = numGlobalPlanes > 0;\n    }\n    scope.numPlanes = numGlobalPlanes;\n    scope.numIntersection = 0;\n  }\n  function projectPlanes(planes, camera, dstOffset, skipTransform) {\n    const nPlanes = planes !== null ? planes.length : 0;\n    let dstArray = null;\n    if (nPlanes !== 0) {\n      dstArray = uniform.value;\n      if (skipTransform !== true || dstArray === null) {\n        const flatSize = dstOffset + nPlanes * 4, viewMatrix = camera.matrixWorldInverse;\n        viewNormalMatrix.getNormalMatrix(viewMatrix);\n        if (dstArray === null || dstArray.length < flatSize) {\n          dstArray = new Float32Array(flatSize);\n        }\n        for (let i = 0, i4 = dstOffset; i !== nPlanes; ++i, i4 += 4) {\n          plane.copy(planes[i]).applyMatrix4(viewMatrix, viewNormalMatrix);\n          plane.normal.toArray(dstArray, i4);\n          dstArray[i4 + 3] = plane.constant;\n        }\n      }\n      uniform.value = dstArray;\n      uniform.needsUpdate = true;\n    }\n    scope.numPlanes = nPlanes;\n    scope.numIntersection = 0;\n    return dstArray;\n  }\n}\nfunction WebGLCubeMaps(renderer) {\n  let cubemaps = /* @__PURE__ */ new WeakMap();\n  function mapTextureMapping(texture, mapping) {\n    if (mapping === EquirectangularReflectionMapping) {\n      texture.mapping = CubeReflectionMapping;\n    } else if (mapping === EquirectangularRefractionMapping) {\n      texture.mapping = CubeRefractionMapping;\n    }\n    return texture;\n  }\n  function get(texture) {\n    if (texture && texture.isTexture) {\n      const mapping = texture.mapping;\n      if (mapping === EquirectangularReflectionMapping || mapping === EquirectangularRefractionMapping) {\n        if (cubemaps.has(texture)) {\n          const cubemap = cubemaps.get(texture).texture;\n          return mapTextureMapping(cubemap, texture.mapping);\n        } else {\n          const image = texture.image;\n          if (image && image.height > 0) {\n            const renderTarget = new WebGLCubeRenderTarget(image.height);\n            renderTarget.fromEquirectangularTexture(renderer, texture);\n            cubemaps.set(texture, renderTarget);\n            texture.addEventListener(\"dispose\", onTextureDispose);\n            return mapTextureMapping(renderTarget.texture, texture.mapping);\n          } else {\n            return null;\n          }\n        }\n      }\n    }\n    return texture;\n  }\n  function onTextureDispose(event) {\n    const texture = event.target;\n    texture.removeEventListener(\"dispose\", onTextureDispose);\n    const cubemap = cubemaps.get(texture);\n    if (cubemap !== void 0) {\n      cubemaps.delete(texture);\n      cubemap.dispose();\n    }\n  }\n  function dispose() {\n    cubemaps = /* @__PURE__ */ new WeakMap();\n  }\n  return {\n    get,\n    dispose\n  };\n}\nvar OrthographicCamera = class extends Camera {\n  constructor(left = -1, right = 1, top = 1, bottom = -1, near = 0.1, far = 2e3) {\n    super();\n    this.isOrthographicCamera = true;\n    this.type = \"OrthographicCamera\";\n    this.zoom = 1;\n    this.view = null;\n    this.left = left;\n    this.right = right;\n    this.top = top;\n    this.bottom = bottom;\n    this.near = near;\n    this.far = far;\n    this.updateProjectionMatrix();\n  }\n  copy(source, recursive) {\n    super.copy(source, recursive);\n    this.left = source.left;\n    this.right = source.right;\n    this.top = source.top;\n    this.bottom = source.bottom;\n    this.near = source.near;\n    this.far = source.far;\n    this.zoom = source.zoom;\n    this.view = source.view === null ? null : Object.assign({}, source.view);\n    return this;\n  }\n  setViewOffset(fullWidth, fullHeight, x, y, width, height) {\n    if (this.view === null) {\n      this.view = {\n        enabled: true,\n        fullWidth: 1,\n        fullHeight: 1,\n        offsetX: 0,\n        offsetY: 0,\n        width: 1,\n        height: 1\n      };\n    }\n    this.view.enabled = true;\n    this.view.fullWidth = fullWidth;\n    this.view.fullHeight = fullHeight;\n    this.view.offsetX = x;\n    this.view.offsetY = y;\n    this.view.width = width;\n    this.view.height = height;\n    this.updateProjectionMatrix();\n  }\n  clearViewOffset() {\n    if (this.view !== null) {\n      this.view.enabled = false;\n    }\n    this.updateProjectionMatrix();\n  }\n  updateProjectionMatrix() {\n    const dx = (this.right - this.left) / (2 * this.zoom);\n    const dy = (this.top - this.bottom) / (2 * this.zoom);\n    const cx = (this.right + this.left) / 2;\n    const cy = (this.top + this.bottom) / 2;\n    let left = cx - dx;\n    let right = cx + dx;\n    let top = cy + dy;\n    let bottom = cy - dy;\n    if (this.view !== null && this.view.enabled) {\n      const scaleW = (this.right - this.left) / this.view.fullWidth / this.zoom;\n      const scaleH = (this.top - this.bottom) / this.view.fullHeight / this.zoom;\n      left += scaleW * this.view.offsetX;\n      right = left + scaleW * this.view.width;\n      top -= scaleH * this.view.offsetY;\n      bottom = top - scaleH * this.view.height;\n    }\n    this.projectionMatrix.makeOrthographic(left, right, top, bottom, this.near, this.far, this.coordinateSystem);\n    this.projectionMatrixInverse.copy(this.projectionMatrix).invert();\n  }\n  toJSON(meta) {\n    const data = super.toJSON(meta);\n    data.object.zoom = this.zoom;\n    data.object.left = this.left;\n    data.object.right = this.right;\n    data.object.top = this.top;\n    data.object.bottom = this.bottom;\n    data.object.near = this.near;\n    data.object.far = this.far;\n    if (this.view !== null) data.object.view = Object.assign({}, this.view);\n    return data;\n  }\n};\nvar LOD_MIN = 4;\nvar EXTRA_LOD_SIGMA = [0.125, 0.215, 0.35, 0.446, 0.526, 0.582];\nvar MAX_SAMPLES = 20;\nvar _flatCamera = /* @__PURE__ */ new OrthographicCamera();\nvar _clearColor = /* @__PURE__ */ new Color();\nvar _oldTarget = null;\nvar _oldActiveCubeFace = 0;\nvar _oldActiveMipmapLevel = 0;\nvar _oldXrEnabled = false;\nvar PHI = (1 + Math.sqrt(5)) / 2;\nvar INV_PHI = 1 / PHI;\nvar _axisDirections = [\n  /* @__PURE__ */ new Vector3(-PHI, INV_PHI, 0),\n  /* @__PURE__ */ new Vector3(PHI, INV_PHI, 0),\n  /* @__PURE__ */ new Vector3(-INV_PHI, 0, PHI),\n  /* @__PURE__ */ new Vector3(INV_PHI, 0, PHI),\n  /* @__PURE__ */ new Vector3(0, PHI, -INV_PHI),\n  /* @__PURE__ */ new Vector3(0, PHI, INV_PHI),\n  /* @__PURE__ */ new Vector3(-1, 1, -1),\n  /* @__PURE__ */ new Vector3(1, 1, -1),\n  /* @__PURE__ */ new Vector3(-1, 1, 1),\n  /* @__PURE__ */ new Vector3(1, 1, 1)\n];\nvar PMREMGenerator = class {\n  constructor(renderer) {\n    this._renderer = renderer;\n    this._pingPongRenderTarget = null;\n    this._lodMax = 0;\n    this._cubeSize = 0;\n    this._lodPlanes = [];\n    this._sizeLods = [];\n    this._sigmas = [];\n    this._blurMaterial = null;\n    this._cubemapMaterial = null;\n    this._equirectMaterial = null;\n    this._compileMaterial(this._blurMaterial);\n  }\n  /**\n   * Generates a PMREM from a supplied Scene, which can be faster than using an\n   * image if networking bandwidth is low. Optional sigma specifies a blur radius\n   * in radians to be applied to the scene before PMREM generation. Optional near\n   * and far planes ensure the scene is rendered in its entirety (the cubeCamera\n   * is placed at the origin).\n   */\n  fromScene(scene, sigma = 0, near = 0.1, far = 100) {\n    _oldTarget = this._renderer.getRenderTarget();\n    _oldActiveCubeFace = this._renderer.getActiveCubeFace();\n    _oldActiveMipmapLevel = this._renderer.getActiveMipmapLevel();\n    _oldXrEnabled = this._renderer.xr.enabled;\n    this._renderer.xr.enabled = false;\n    this._setSize(256);\n    const cubeUVRenderTarget = this._allocateTargets();\n    cubeUVRenderTarget.depthBuffer = true;\n    this._sceneToCubeUV(scene, near, far, cubeUVRenderTarget);\n    if (sigma > 0) {\n      this._blur(cubeUVRenderTarget, 0, 0, sigma);\n    }\n    this._applyPMREM(cubeUVRenderTarget);\n    this._cleanup(cubeUVRenderTarget);\n    return cubeUVRenderTarget;\n  }\n  /**\n   * Generates a PMREM from an equirectangular texture, which can be either LDR\n   * or HDR. The ideal input image size is 1k (1024 x 512),\n   * as this matches best with the 256 x 256 cubemap output.\n   * The smallest supported equirectangular image size is 64 x 32.\n   */\n  fromEquirectangular(equirectangular, renderTarget = null) {\n    return this._fromTexture(equirectangular, renderTarget);\n  }\n  /**\n   * Generates a PMREM from an cubemap texture, which can be either LDR\n   * or HDR. The ideal input cube size is 256 x 256,\n   * as this matches best with the 256 x 256 cubemap output.\n   * The smallest supported cube size is 16 x 16.\n   */\n  fromCubemap(cubemap, renderTarget = null) {\n    return this._fromTexture(cubemap, renderTarget);\n  }\n  /**\n   * Pre-compiles the cubemap shader. You can get faster start-up by invoking this method during\n   * your texture's network fetch for increased concurrency.\n   */\n  compileCubemapShader() {\n    if (this._cubemapMaterial === null) {\n      this._cubemapMaterial = _getCubemapMaterial();\n      this._compileMaterial(this._cubemapMaterial);\n    }\n  }\n  /**\n   * Pre-compiles the equirectangular shader. You can get faster start-up by invoking this method during\n   * your texture's network fetch for increased concurrency.\n   */\n  compileEquirectangularShader() {\n    if (this._equirectMaterial === null) {\n      this._equirectMaterial = _getEquirectMaterial();\n      this._compileMaterial(this._equirectMaterial);\n    }\n  }\n  /**\n   * Disposes of the PMREMGenerator's internal memory. Note that PMREMGenerator is a static class,\n   * so you should not need more than one PMREMGenerator object. If you do, calling dispose() on\n   * one of them will cause any others to also become unusable.\n   */\n  dispose() {\n    this._dispose();\n    if (this._cubemapMaterial !== null) this._cubemapMaterial.dispose();\n    if (this._equirectMaterial !== null) this._equirectMaterial.dispose();\n  }\n  // private interface\n  _setSize(cubeSize) {\n    this._lodMax = Math.floor(Math.log2(cubeSize));\n    this._cubeSize = Math.pow(2, this._lodMax);\n  }\n  _dispose() {\n    if (this._blurMaterial !== null) this._blurMaterial.dispose();\n    if (this._pingPongRenderTarget !== null) this._pingPongRenderTarget.dispose();\n    for (let i = 0; i < this._lodPlanes.length; i++) {\n      this._lodPlanes[i].dispose();\n    }\n  }\n  _cleanup(outputTarget) {\n    this._renderer.setRenderTarget(_oldTarget, _oldActiveCubeFace, _oldActiveMipmapLevel);\n    this._renderer.xr.enabled = _oldXrEnabled;\n    outputTarget.scissorTest = false;\n    _setViewport(outputTarget, 0, 0, outputTarget.width, outputTarget.height);\n  }\n  _fromTexture(texture, renderTarget) {\n    if (texture.mapping === CubeReflectionMapping || texture.mapping === CubeRefractionMapping) {\n      this._setSize(texture.image.length === 0 ? 16 : texture.image[0].width || texture.image[0].image.width);\n    } else {\n      this._setSize(texture.image.width / 4);\n    }\n    _oldTarget = this._renderer.getRenderTarget();\n    _oldActiveCubeFace = this._renderer.getActiveCubeFace();\n    _oldActiveMipmapLevel = this._renderer.getActiveMipmapLevel();\n    _oldXrEnabled = this._renderer.xr.enabled;\n    this._renderer.xr.enabled = false;\n    const cubeUVRenderTarget = renderTarget || this._allocateTargets();\n    this._textureToCubeUV(texture, cubeUVRenderTarget);\n    this._applyPMREM(cubeUVRenderTarget);\n    this._cleanup(cubeUVRenderTarget);\n    return cubeUVRenderTarget;\n  }\n  _allocateTargets() {\n    const width = 3 * Math.max(this._cubeSize, 16 * 7);\n    const height = 4 * this._cubeSize;\n    const params = {\n      magFilter: LinearFilter,\n      minFilter: LinearFilter,\n      generateMipmaps: false,\n      type: HalfFloatType,\n      format: RGBAFormat,\n      colorSpace: LinearSRGBColorSpace,\n      depthBuffer: false\n    };\n    const cubeUVRenderTarget = _createRenderTarget(width, height, params);\n    if (this._pingPongRenderTarget === null || this._pingPongRenderTarget.width !== width || this._pingPongRenderTarget.height !== height) {\n      if (this._pingPongRenderTarget !== null) {\n        this._dispose();\n      }\n      this._pingPongRenderTarget = _createRenderTarget(width, height, params);\n      const { _lodMax } = this;\n      ({ sizeLods: this._sizeLods, lodPlanes: this._lodPlanes, sigmas: this._sigmas } = _createPlanes(_lodMax));\n      this._blurMaterial = _getBlurShader(_lodMax, width, height);\n    }\n    return cubeUVRenderTarget;\n  }\n  _compileMaterial(material) {\n    const tmpMesh = new Mesh(this._lodPlanes[0], material);\n    this._renderer.compile(tmpMesh, _flatCamera);\n  }\n  _sceneToCubeUV(scene, near, far, cubeUVRenderTarget) {\n    const fov2 = 90;\n    const aspect2 = 1;\n    const cubeCamera = new PerspectiveCamera(fov2, aspect2, near, far);\n    const upSign = [1, -1, 1, 1, 1, 1];\n    const forwardSign = [1, 1, 1, -1, -1, -1];\n    const renderer = this._renderer;\n    const originalAutoClear = renderer.autoClear;\n    const toneMapping = renderer.toneMapping;\n    renderer.getClearColor(_clearColor);\n    renderer.toneMapping = NoToneMapping;\n    renderer.autoClear = false;\n    const backgroundMaterial = new MeshBasicMaterial({\n      name: \"PMREM.Background\",\n      side: BackSide,\n      depthWrite: false,\n      depthTest: false\n    });\n    const backgroundBox = new Mesh(new BoxGeometry(), backgroundMaterial);\n    let useSolidColor = false;\n    const background = scene.background;\n    if (background) {\n      if (background.isColor) {\n        backgroundMaterial.color.copy(background);\n        scene.background = null;\n        useSolidColor = true;\n      }\n    } else {\n      backgroundMaterial.color.copy(_clearColor);\n      useSolidColor = true;\n    }\n    for (let i = 0; i < 6; i++) {\n      const col = i % 3;\n      if (col === 0) {\n        cubeCamera.up.set(0, upSign[i], 0);\n        cubeCamera.lookAt(forwardSign[i], 0, 0);\n      } else if (col === 1) {\n        cubeCamera.up.set(0, 0, upSign[i]);\n        cubeCamera.lookAt(0, forwardSign[i], 0);\n      } else {\n        cubeCamera.up.set(0, upSign[i], 0);\n        cubeCamera.lookAt(0, 0, forwardSign[i]);\n      }\n      const size = this._cubeSize;\n      _setViewport(cubeUVRenderTarget, col * size, i > 2 ? size : 0, size, size);\n      renderer.setRenderTarget(cubeUVRenderTarget);\n      if (useSolidColor) {\n        renderer.render(backgroundBox, cubeCamera);\n      }\n      renderer.render(scene, cubeCamera);\n    }\n    backgroundBox.geometry.dispose();\n    backgroundBox.material.dispose();\n    renderer.toneMapping = toneMapping;\n    renderer.autoClear = originalAutoClear;\n    scene.background = background;\n  }\n  _textureToCubeUV(texture, cubeUVRenderTarget) {\n    const renderer = this._renderer;\n    const isCubeTexture = texture.mapping === CubeReflectionMapping || texture.mapping === CubeRefractionMapping;\n    if (isCubeTexture) {\n      if (this._cubemapMaterial === null) {\n        this._cubemapMaterial = _getCubemapMaterial();\n      }\n      this._cubemapMaterial.uniforms.flipEnvMap.value = texture.isRenderTargetTexture === false ? -1 : 1;\n    } else {\n      if (this._equirectMaterial === null) {\n        this._equirectMaterial = _getEquirectMaterial();\n      }\n    }\n    const material = isCubeTexture ? this._cubemapMaterial : this._equirectMaterial;\n    const mesh = new Mesh(this._lodPlanes[0], material);\n    const uniforms = material.uniforms;\n    uniforms[\"envMap\"].value = texture;\n    const size = this._cubeSize;\n    _setViewport(cubeUVRenderTarget, 0, 0, 3 * size, 2 * size);\n    renderer.setRenderTarget(cubeUVRenderTarget);\n    renderer.render(mesh, _flatCamera);\n  }\n  _applyPMREM(cubeUVRenderTarget) {\n    const renderer = this._renderer;\n    const autoClear = renderer.autoClear;\n    renderer.autoClear = false;\n    const n = this._lodPlanes.length;\n    for (let i = 1; i < n; i++) {\n      const sigma = Math.sqrt(this._sigmas[i] * this._sigmas[i] - this._sigmas[i - 1] * this._sigmas[i - 1]);\n      const poleAxis = _axisDirections[(n - i - 1) % _axisDirections.length];\n      this._blur(cubeUVRenderTarget, i - 1, i, sigma, poleAxis);\n    }\n    renderer.autoClear = autoClear;\n  }\n  /**\n   * This is a two-pass Gaussian blur for a cubemap. Normally this is done\n   * vertically and horizontally, but this breaks down on a cube. Here we apply\n   * the blur latitudinally (around the poles), and then longitudinally (towards\n   * the poles) to approximate the orthogonally-separable blur. It is least\n   * accurate at the poles, but still does a decent job.\n   */\n  _blur(cubeUVRenderTarget, lodIn, lodOut, sigma, poleAxis) {\n    const pingPongRenderTarget = this._pingPongRenderTarget;\n    this._halfBlur(\n      cubeUVRenderTarget,\n      pingPongRenderTarget,\n      lodIn,\n      lodOut,\n      sigma,\n      \"latitudinal\",\n      poleAxis\n    );\n    this._halfBlur(\n      pingPongRenderTarget,\n      cubeUVRenderTarget,\n      lodOut,\n      lodOut,\n      sigma,\n      \"longitudinal\",\n      poleAxis\n    );\n  }\n  _halfBlur(targetIn, targetOut, lodIn, lodOut, sigmaRadians, direction, poleAxis) {\n    const renderer = this._renderer;\n    const blurMaterial = this._blurMaterial;\n    if (direction !== \"latitudinal\" && direction !== \"longitudinal\") {\n      console.error(\n        \"blur direction must be either latitudinal or longitudinal!\"\n      );\n    }\n    const STANDARD_DEVIATIONS = 3;\n    const blurMesh = new Mesh(this._lodPlanes[lodOut], blurMaterial);\n    const blurUniforms = blurMaterial.uniforms;\n    const pixels = this._sizeLods[lodIn] - 1;\n    const radiansPerPixel = isFinite(sigmaRadians) ? Math.PI / (2 * pixels) : 2 * Math.PI / (2 * MAX_SAMPLES - 1);\n    const sigmaPixels = sigmaRadians / radiansPerPixel;\n    const samples = isFinite(sigmaRadians) ? 1 + Math.floor(STANDARD_DEVIATIONS * sigmaPixels) : MAX_SAMPLES;\n    if (samples > MAX_SAMPLES) {\n      console.warn(`sigmaRadians, ${sigmaRadians}, is too large and will clip, as it requested ${samples} samples when the maximum is set to ${MAX_SAMPLES}`);\n    }\n    const weights = [];\n    let sum = 0;\n    for (let i = 0; i < MAX_SAMPLES; ++i) {\n      const x2 = i / sigmaPixels;\n      const weight = Math.exp(-x2 * x2 / 2);\n      weights.push(weight);\n      if (i === 0) {\n        sum += weight;\n      } else if (i < samples) {\n        sum += 2 * weight;\n      }\n    }\n    for (let i = 0; i < weights.length; i++) {\n      weights[i] = weights[i] / sum;\n    }\n    blurUniforms[\"envMap\"].value = targetIn.texture;\n    blurUniforms[\"samples\"].value = samples;\n    blurUniforms[\"weights\"].value = weights;\n    blurUniforms[\"latitudinal\"].value = direction === \"latitudinal\";\n    if (poleAxis) {\n      blurUniforms[\"poleAxis\"].value = poleAxis;\n    }\n    const { _lodMax } = this;\n    blurUniforms[\"dTheta\"].value = radiansPerPixel;\n    blurUniforms[\"mipInt\"].value = _lodMax - lodIn;\n    const outputSize = this._sizeLods[lodOut];\n    const x = 3 * outputSize * (lodOut > _lodMax - LOD_MIN ? lodOut - _lodMax + LOD_MIN : 0);\n    const y = 4 * (this._cubeSize - outputSize);\n    _setViewport(targetOut, x, y, 3 * outputSize, 2 * outputSize);\n    renderer.setRenderTarget(targetOut);\n    renderer.render(blurMesh, _flatCamera);\n  }\n};\nfunction _createPlanes(lodMax) {\n  const lodPlanes = [];\n  const sizeLods = [];\n  const sigmas = [];\n  let lod = lodMax;\n  const totalLods = lodMax - LOD_MIN + 1 + EXTRA_LOD_SIGMA.length;\n  for (let i = 0; i < totalLods; i++) {\n    const sizeLod = Math.pow(2, lod);\n    sizeLods.push(sizeLod);\n    let sigma = 1 / sizeLod;\n    if (i > lodMax - LOD_MIN) {\n      sigma = EXTRA_LOD_SIGMA[i - lodMax + LOD_MIN - 1];\n    } else if (i === 0) {\n      sigma = 0;\n    }\n    sigmas.push(sigma);\n    const texelSize = 1 / (sizeLod - 2);\n    const min = -texelSize;\n    const max = 1 + texelSize;\n    const uv1 = [min, min, max, min, max, max, min, min, max, max, min, max];\n    const cubeFaces = 6;\n    const vertices = 6;\n    const positionSize = 3;\n    const uvSize = 2;\n    const faceIndexSize = 1;\n    const position = new Float32Array(positionSize * vertices * cubeFaces);\n    const uv = new Float32Array(uvSize * vertices * cubeFaces);\n    const faceIndex = new Float32Array(faceIndexSize * vertices * cubeFaces);\n    for (let face = 0; face < cubeFaces; face++) {\n      const x = face % 3 * 2 / 3 - 1;\n      const y = face > 2 ? 0 : -1;\n      const coordinates = [\n        x,\n        y,\n        0,\n        x + 2 / 3,\n        y,\n        0,\n        x + 2 / 3,\n        y + 1,\n        0,\n        x,\n        y,\n        0,\n        x + 2 / 3,\n        y + 1,\n        0,\n        x,\n        y + 1,\n        0\n      ];\n      position.set(coordinates, positionSize * vertices * face);\n      uv.set(uv1, uvSize * vertices * face);\n      const fill2 = [face, face, face, face, face, face];\n      faceIndex.set(fill2, faceIndexSize * vertices * face);\n    }\n    const planes = new BufferGeometry();\n    planes.setAttribute(\"position\", new BufferAttribute(position, positionSize));\n    planes.setAttribute(\"uv\", new BufferAttribute(uv, uvSize));\n    planes.setAttribute(\"faceIndex\", new BufferAttribute(faceIndex, faceIndexSize));\n    lodPlanes.push(planes);\n    if (lod > LOD_MIN) {\n      lod--;\n    }\n  }\n  return { lodPlanes, sizeLods, sigmas };\n}\nfunction _createRenderTarget(width, height, params) {\n  const cubeUVRenderTarget = new WebGLRenderTarget(width, height, params);\n  cubeUVRenderTarget.texture.mapping = CubeUVReflectionMapping;\n  cubeUVRenderTarget.texture.name = \"PMREM.cubeUv\";\n  cubeUVRenderTarget.scissorTest = true;\n  return cubeUVRenderTarget;\n}\nfunction _setViewport(target, x, y, width, height) {\n  target.viewport.set(x, y, width, height);\n  target.scissor.set(x, y, width, height);\n}\nfunction _getBlurShader(lodMax, width, height) {\n  const weights = new Float32Array(MAX_SAMPLES);\n  const poleAxis = new Vector3(0, 1, 0);\n  const shaderMaterial = new ShaderMaterial({\n    name: \"SphericalGaussianBlur\",\n    defines: {\n      \"n\": MAX_SAMPLES,\n      \"CUBEUV_TEXEL_WIDTH\": 1 / width,\n      \"CUBEUV_TEXEL_HEIGHT\": 1 / height,\n      \"CUBEUV_MAX_MIP\": `${lodMax}.0`\n    },\n    uniforms: {\n      \"envMap\": { value: null },\n      \"samples\": { value: 1 },\n      \"weights\": { value: weights },\n      \"latitudinal\": { value: false },\n      \"dTheta\": { value: 0 },\n      \"mipInt\": { value: 0 },\n      \"poleAxis\": { value: poleAxis }\n    },\n    vertexShader: _getCommonVertexShader(),\n    fragmentShader: (\n      /* glsl */\n      `\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\t\t\tuniform int samples;\n\t\t\tuniform float weights[ n ];\n\t\t\tuniform bool latitudinal;\n\t\t\tuniform float dTheta;\n\t\t\tuniform float mipInt;\n\t\t\tuniform vec3 poleAxis;\n\n\t\t\t#define ENVMAP_TYPE_CUBE_UV\n\t\t\t#include <cube_uv_reflection_fragment>\n\n\t\t\tvec3 getSample( float theta, vec3 axis ) {\n\n\t\t\t\tfloat cosTheta = cos( theta );\n\t\t\t\t// Rodrigues' axis-angle rotation\n\t\t\t\tvec3 sampleDirection = vOutputDirection * cosTheta\n\t\t\t\t\t+ cross( axis, vOutputDirection ) * sin( theta )\n\t\t\t\t\t+ axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta );\n\n\t\t\t\treturn bilinearCubeUV( envMap, sampleDirection, mipInt );\n\n\t\t\t}\n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection );\n\n\t\t\t\tif ( all( equal( axis, vec3( 0.0 ) ) ) ) {\n\n\t\t\t\t\taxis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x );\n\n\t\t\t\t}\n\n\t\t\t\taxis = normalize( axis );\n\n\t\t\t\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t\t\t\tgl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis );\n\n\t\t\t\tfor ( int i = 1; i < n; i++ ) {\n\n\t\t\t\t\tif ( i >= samples ) {\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfloat theta = dTheta * float( i );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( theta, axis );\n\n\t\t\t\t}\n\n\t\t\t}\n\t\t`\n    ),\n    blending: NoBlending,\n    depthTest: false,\n    depthWrite: false\n  });\n  return shaderMaterial;\n}\nfunction _getEquirectMaterial() {\n  return new ShaderMaterial({\n    name: \"EquirectangularToCubeUV\",\n    uniforms: {\n      \"envMap\": { value: null }\n    },\n    vertexShader: _getCommonVertexShader(),\n    fragmentShader: (\n      /* glsl */\n      `\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\n\t\t\t#include <common>\n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 outputDirection = normalize( vOutputDirection );\n\t\t\t\tvec2 uv = equirectUv( outputDirection );\n\n\t\t\t\tgl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 );\n\n\t\t\t}\n\t\t`\n    ),\n    blending: NoBlending,\n    depthTest: false,\n    depthWrite: false\n  });\n}\nfunction _getCubemapMaterial() {\n  return new ShaderMaterial({\n    name: \"CubemapToCubeUV\",\n    uniforms: {\n      \"envMap\": { value: null },\n      \"flipEnvMap\": { value: -1 }\n    },\n    vertexShader: _getCommonVertexShader(),\n    fragmentShader: (\n      /* glsl */\n      `\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tuniform float flipEnvMap;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform samplerCube envMap;\n\n\t\t\tvoid main() {\n\n\t\t\t\tgl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) );\n\n\t\t\t}\n\t\t`\n    ),\n    blending: NoBlending,\n    depthTest: false,\n    depthWrite: false\n  });\n}\nfunction _getCommonVertexShader() {\n  return (\n    /* glsl */\n    `\n\n\t\tprecision mediump float;\n\t\tprecision mediump int;\n\n\t\tattribute float faceIndex;\n\n\t\tvarying vec3 vOutputDirection;\n\n\t\t// RH coordinate system; PMREM face-indexing convention\n\t\tvec3 getDirection( vec2 uv, float face ) {\n\n\t\t\tuv = 2.0 * uv - 1.0;\n\n\t\t\tvec3 direction = vec3( uv, 1.0 );\n\n\t\t\tif ( face == 0.0 ) {\n\n\t\t\t\tdirection = direction.zyx; // ( 1, v, u ) pos x\n\n\t\t\t} else if ( face == 1.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xz *= -1.0; // ( -u, 1, -v ) pos y\n\n\t\t\t} else if ( face == 2.0 ) {\n\n\t\t\t\tdirection.x *= -1.0; // ( -u, v, 1 ) pos z\n\n\t\t\t} else if ( face == 3.0 ) {\n\n\t\t\t\tdirection = direction.zyx;\n\t\t\t\tdirection.xz *= -1.0; // ( -1, v, -u ) neg x\n\n\t\t\t} else if ( face == 4.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xy *= -1.0; // ( -u, -1, v ) neg y\n\n\t\t\t} else if ( face == 5.0 ) {\n\n\t\t\t\tdirection.z *= -1.0; // ( u, v, -1 ) neg z\n\n\t\t\t}\n\n\t\t\treturn direction;\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\tvOutputDirection = getDirection( uv, faceIndex );\n\t\t\tgl_Position = vec4( position, 1.0 );\n\n\t\t}\n\t`\n  );\n}\nfunction WebGLCubeUVMaps(renderer) {\n  let cubeUVmaps = /* @__PURE__ */ new WeakMap();\n  let pmremGenerator = null;\n  function get(texture) {\n    if (texture && texture.isTexture) {\n      const mapping = texture.mapping;\n      const isEquirectMap = mapping === EquirectangularReflectionMapping || mapping === EquirectangularRefractionMapping;\n      const isCubeMap = mapping === CubeReflectionMapping || mapping === CubeRefractionMapping;\n      if (isEquirectMap || isCubeMap) {\n        let renderTarget = cubeUVmaps.get(texture);\n        const currentPMREMVersion = renderTarget !== void 0 ? renderTarget.texture.pmremVersion : 0;\n        if (texture.isRenderTargetTexture && texture.pmremVersion !== currentPMREMVersion) {\n          if (pmremGenerator === null) pmremGenerator = new PMREMGenerator(renderer);\n          renderTarget = isEquirectMap ? pmremGenerator.fromEquirectangular(texture, renderTarget) : pmremGenerator.fromCubemap(texture, renderTarget);\n          renderTarget.texture.pmremVersion = texture.pmremVersion;\n          cubeUVmaps.set(texture, renderTarget);\n          return renderTarget.texture;\n        } else {\n          if (renderTarget !== void 0) {\n            return renderTarget.texture;\n          } else {\n            const image = texture.image;\n            if (isEquirectMap && image && image.height > 0 || isCubeMap && image && isCubeTextureComplete(image)) {\n              if (pmremGenerator === null) pmremGenerator = new PMREMGenerator(renderer);\n              renderTarget = isEquirectMap ? pmremGenerator.fromEquirectangular(texture) : pmremGenerator.fromCubemap(texture);\n              renderTarget.texture.pmremVersion = texture.pmremVersion;\n              cubeUVmaps.set(texture, renderTarget);\n              texture.addEventListener(\"dispose\", onTextureDispose);\n              return renderTarget.texture;\n            } else {\n              return null;\n            }\n          }\n        }\n      }\n    }\n    return texture;\n  }\n  function isCubeTextureComplete(image) {\n    let count = 0;\n    const length = 6;\n    for (let i = 0; i < length; i++) {\n      if (image[i] !== void 0) count++;\n    }\n    return count === length;\n  }\n  function onTextureDispose(event) {\n    const texture = event.target;\n    texture.removeEventListener(\"dispose\", onTextureDispose);\n    const cubemapUV = cubeUVmaps.get(texture);\n    if (cubemapUV !== void 0) {\n      cubeUVmaps.delete(texture);\n      cubemapUV.dispose();\n    }\n  }\n  function dispose() {\n    cubeUVmaps = /* @__PURE__ */ new WeakMap();\n    if (pmremGenerator !== null) {\n      pmremGenerator.dispose();\n      pmremGenerator = null;\n    }\n  }\n  return {\n    get,\n    dispose\n  };\n}\nfunction WebGLExtensions(gl) {\n  const extensions = {};\n  function getExtension(name) {\n    if (extensions[name] !== void 0) {\n      return extensions[name];\n    }\n    let extension;\n    switch (name) {\n      case \"WEBGL_depth_texture\":\n        extension = gl.getExtension(\"WEBGL_depth_texture\") || gl.getExtension(\"MOZ_WEBGL_depth_texture\") || gl.getExtension(\"WEBKIT_WEBGL_depth_texture\");\n        break;\n      case \"EXT_texture_filter_anisotropic\":\n        extension = gl.getExtension(\"EXT_texture_filter_anisotropic\") || gl.getExtension(\"MOZ_EXT_texture_filter_anisotropic\") || gl.getExtension(\"WEBKIT_EXT_texture_filter_anisotropic\");\n        break;\n      case \"WEBGL_compressed_texture_s3tc\":\n        extension = gl.getExtension(\"WEBGL_compressed_texture_s3tc\") || gl.getExtension(\"MOZ_WEBGL_compressed_texture_s3tc\") || gl.getExtension(\"WEBKIT_WEBGL_compressed_texture_s3tc\");\n        break;\n      case \"WEBGL_compressed_texture_pvrtc\":\n        extension = gl.getExtension(\"WEBGL_compressed_texture_pvrtc\") || gl.getExtension(\"WEBKIT_WEBGL_compressed_texture_pvrtc\");\n        break;\n      default:\n        extension = gl.getExtension(name);\n    }\n    extensions[name] = extension;\n    return extension;\n  }\n  return {\n    has: function(name) {\n      return getExtension(name) !== null;\n    },\n    init: function() {\n      getExtension(\"EXT_color_buffer_float\");\n      getExtension(\"WEBGL_clip_cull_distance\");\n      getExtension(\"OES_texture_float_linear\");\n      getExtension(\"EXT_color_buffer_half_float\");\n      getExtension(\"WEBGL_multisampled_render_to_texture\");\n      getExtension(\"WEBGL_render_shared_exponent\");\n    },\n    get: function(name) {\n      const extension = getExtension(name);\n      if (extension === null) {\n        warnOnce(\"THREE.WebGLRenderer: \" + name + \" extension not supported.\");\n      }\n      return extension;\n    }\n  };\n}\nfunction WebGLGeometries(gl, attributes, info, bindingStates) {\n  const geometries = {};\n  const wireframeAttributes = /* @__PURE__ */ new WeakMap();\n  function onGeometryDispose(event) {\n    const geometry = event.target;\n    if (geometry.index !== null) {\n      attributes.remove(geometry.index);\n    }\n    for (const name in geometry.attributes) {\n      attributes.remove(geometry.attributes[name]);\n    }\n    for (const name in geometry.morphAttributes) {\n      const array = geometry.morphAttributes[name];\n      for (let i = 0, l = array.length; i < l; i++) {\n        attributes.remove(array[i]);\n      }\n    }\n    geometry.removeEventListener(\"dispose\", onGeometryDispose);\n    delete geometries[geometry.id];\n    const attribute = wireframeAttributes.get(geometry);\n    if (attribute) {\n      attributes.remove(attribute);\n      wireframeAttributes.delete(geometry);\n    }\n    bindingStates.releaseStatesOfGeometry(geometry);\n    if (geometry.isInstancedBufferGeometry === true) {\n      delete geometry._maxInstanceCount;\n    }\n    info.memory.geometries--;\n  }\n  function get(object, geometry) {\n    if (geometries[geometry.id] === true) return geometry;\n    geometry.addEventListener(\"dispose\", onGeometryDispose);\n    geometries[geometry.id] = true;\n    info.memory.geometries++;\n    return geometry;\n  }\n  function update(geometry) {\n    const geometryAttributes = geometry.attributes;\n    for (const name in geometryAttributes) {\n      attributes.update(geometryAttributes[name], gl.ARRAY_BUFFER);\n    }\n    const morphAttributes = geometry.morphAttributes;\n    for (const name in morphAttributes) {\n      const array = morphAttributes[name];\n      for (let i = 0, l = array.length; i < l; i++) {\n        attributes.update(array[i], gl.ARRAY_BUFFER);\n      }\n    }\n  }\n  function updateWireframeAttribute(geometry) {\n    const indices = [];\n    const geometryIndex = geometry.index;\n    const geometryPosition = geometry.attributes.position;\n    let version = 0;\n    if (geometryIndex !== null) {\n      const array = geometryIndex.array;\n      version = geometryIndex.version;\n      for (let i = 0, l = array.length; i < l; i += 3) {\n        const a = array[i + 0];\n        const b = array[i + 1];\n        const c = array[i + 2];\n        indices.push(a, b, b, c, c, a);\n      }\n    } else if (geometryPosition !== void 0) {\n      const array = geometryPosition.array;\n      version = geometryPosition.version;\n      for (let i = 0, l = array.length / 3 - 1; i < l; i += 3) {\n        const a = i + 0;\n        const b = i + 1;\n        const c = i + 2;\n        indices.push(a, b, b, c, c, a);\n      }\n    } else {\n      return;\n    }\n    const attribute = new (arrayNeedsUint32(indices) ? Uint32BufferAttribute : Uint16BufferAttribute)(indices, 1);\n    attribute.version = version;\n    const previousAttribute = wireframeAttributes.get(geometry);\n    if (previousAttribute) attributes.remove(previousAttribute);\n    wireframeAttributes.set(geometry, attribute);\n  }\n  function getWireframeAttribute(geometry) {\n    const currentAttribute = wireframeAttributes.get(geometry);\n    if (currentAttribute) {\n      const geometryIndex = geometry.index;\n      if (geometryIndex !== null) {\n        if (currentAttribute.version < geometryIndex.version) {\n          updateWireframeAttribute(geometry);\n        }\n      }\n    } else {\n      updateWireframeAttribute(geometry);\n    }\n    return wireframeAttributes.get(geometry);\n  }\n  return {\n    get,\n    update,\n    getWireframeAttribute\n  };\n}\nfunction WebGLIndexedBufferRenderer(gl, extensions, info) {\n  let mode;\n  function setMode(value) {\n    mode = value;\n  }\n  let type, bytesPerElement;\n  function setIndex(value) {\n    type = value.type;\n    bytesPerElement = value.bytesPerElement;\n  }\n  function render(start, count) {\n    gl.drawElements(mode, count, type, start * bytesPerElement);\n    info.update(count, mode, 1);\n  }\n  function renderInstances(start, count, primcount) {\n    if (primcount === 0) return;\n    gl.drawElementsInstanced(mode, count, type, start * bytesPerElement, primcount);\n    info.update(count, mode, primcount);\n  }\n  function renderMultiDraw(starts, counts, drawCount) {\n    if (drawCount === 0) return;\n    const extension = extensions.get(\"WEBGL_multi_draw\");\n    extension.multiDrawElementsWEBGL(mode, counts, 0, type, starts, 0, drawCount);\n    let elementCount = 0;\n    for (let i = 0; i < drawCount; i++) {\n      elementCount += counts[i];\n    }\n    info.update(elementCount, mode, 1);\n  }\n  function renderMultiDrawInstances(starts, counts, drawCount, primcount) {\n    if (drawCount === 0) return;\n    const extension = extensions.get(\"WEBGL_multi_draw\");\n    if (extension === null) {\n      for (let i = 0; i < starts.length; i++) {\n        renderInstances(starts[i] / bytesPerElement, counts[i], primcount[i]);\n      }\n    } else {\n      extension.multiDrawElementsInstancedWEBGL(mode, counts, 0, type, starts, 0, primcount, 0, drawCount);\n      let elementCount = 0;\n      for (let i = 0; i < drawCount; i++) {\n        elementCount += counts[i];\n      }\n      for (let i = 0; i < primcount.length; i++) {\n        info.update(elementCount, mode, primcount[i]);\n      }\n    }\n  }\n  this.setMode = setMode;\n  this.setIndex = setIndex;\n  this.render = render;\n  this.renderInstances = renderInstances;\n  this.renderMultiDraw = renderMultiDraw;\n  this.renderMultiDrawInstances = renderMultiDrawInstances;\n}\nfunction WebGLInfo(gl) {\n  const memory = {\n    geometries: 0,\n    textures: 0\n  };\n  const render = {\n    frame: 0,\n    calls: 0,\n    triangles: 0,\n    points: 0,\n    lines: 0\n  };\n  function update(count, mode, instanceCount) {\n    render.calls++;\n    switch (mode) {\n      case gl.TRIANGLES:\n        render.triangles += instanceCount * (count / 3);\n        break;\n      case gl.LINES:\n        render.lines += instanceCount * (count / 2);\n        break;\n      case gl.LINE_STRIP:\n        render.lines += instanceCount * (count - 1);\n        break;\n      case gl.LINE_LOOP:\n        render.lines += instanceCount * count;\n        break;\n      case gl.POINTS:\n        render.points += instanceCount * count;\n        break;\n      default:\n        console.error(\"THREE.WebGLInfo: Unknown draw mode:\", mode);\n        break;\n    }\n  }\n  function reset() {\n    render.calls = 0;\n    render.triangles = 0;\n    render.points = 0;\n    render.lines = 0;\n  }\n  return {\n    memory,\n    render,\n    programs: null,\n    autoReset: true,\n    reset,\n    update\n  };\n}\nfunction WebGLMorphtargets(gl, capabilities, textures) {\n  const morphTextures = /* @__PURE__ */ new WeakMap();\n  const morph = new Vector4();\n  function update(object, geometry, program) {\n    const objectInfluences = object.morphTargetInfluences;\n    const morphAttribute = geometry.morphAttributes.position || geometry.morphAttributes.normal || geometry.morphAttributes.color;\n    const morphTargetsCount = morphAttribute !== void 0 ? morphAttribute.length : 0;\n    let entry = morphTextures.get(geometry);\n    if (entry === void 0 || entry.count !== morphTargetsCount) {\n      let disposeTexture = function() {\n        texture.dispose();\n        morphTextures.delete(geometry);\n        geometry.removeEventListener(\"dispose\", disposeTexture);\n      };\n      if (entry !== void 0) entry.texture.dispose();\n      const hasMorphPosition = geometry.morphAttributes.position !== void 0;\n      const hasMorphNormals = geometry.morphAttributes.normal !== void 0;\n      const hasMorphColors = geometry.morphAttributes.color !== void 0;\n      const morphTargets = geometry.morphAttributes.position || [];\n      const morphNormals = geometry.morphAttributes.normal || [];\n      const morphColors = geometry.morphAttributes.color || [];\n      let vertexDataCount = 0;\n      if (hasMorphPosition === true) vertexDataCount = 1;\n      if (hasMorphNormals === true) vertexDataCount = 2;\n      if (hasMorphColors === true) vertexDataCount = 3;\n      let width = geometry.attributes.position.count * vertexDataCount;\n      let height = 1;\n      if (width > capabilities.maxTextureSize) {\n        height = Math.ceil(width / capabilities.maxTextureSize);\n        width = capabilities.maxTextureSize;\n      }\n      const buffer = new Float32Array(width * height * 4 * morphTargetsCount);\n      const texture = new DataArrayTexture(buffer, width, height, morphTargetsCount);\n      texture.type = FloatType;\n      texture.needsUpdate = true;\n      const vertexDataStride = vertexDataCount * 4;\n      for (let i = 0; i < morphTargetsCount; i++) {\n        const morphTarget = morphTargets[i];\n        const morphNormal = morphNormals[i];\n        const morphColor = morphColors[i];\n        const offset = width * height * 4 * i;\n        for (let j = 0; j < morphTarget.count; j++) {\n          const stride = j * vertexDataStride;\n          if (hasMorphPosition === true) {\n            morph.fromBufferAttribute(morphTarget, j);\n            buffer[offset + stride + 0] = morph.x;\n            buffer[offset + stride + 1] = morph.y;\n            buffer[offset + stride + 2] = morph.z;\n            buffer[offset + stride + 3] = 0;\n          }\n          if (hasMorphNormals === true) {\n            morph.fromBufferAttribute(morphNormal, j);\n            buffer[offset + stride + 4] = morph.x;\n            buffer[offset + stride + 5] = morph.y;\n            buffer[offset + stride + 6] = morph.z;\n            buffer[offset + stride + 7] = 0;\n          }\n          if (hasMorphColors === true) {\n            morph.fromBufferAttribute(morphColor, j);\n            buffer[offset + stride + 8] = morph.x;\n            buffer[offset + stride + 9] = morph.y;\n            buffer[offset + stride + 10] = morph.z;\n            buffer[offset + stride + 11] = morphColor.itemSize === 4 ? morph.w : 1;\n          }\n        }\n      }\n      entry = {\n        count: morphTargetsCount,\n        texture,\n        size: new Vector2(width, height)\n      };\n      morphTextures.set(geometry, entry);\n      geometry.addEventListener(\"dispose\", disposeTexture);\n    }\n    if (object.isInstancedMesh === true && object.morphTexture !== null) {\n      program.getUniforms().setValue(gl, \"morphTexture\", object.morphTexture, textures);\n    } else {\n      let morphInfluencesSum = 0;\n      for (let i = 0; i < objectInfluences.length; i++) {\n        morphInfluencesSum += objectInfluences[i];\n      }\n      const morphBaseInfluence = geometry.morphTargetsRelative ? 1 : 1 - morphInfluencesSum;\n      program.getUniforms().setValue(gl, \"morphTargetBaseInfluence\", morphBaseInfluence);\n      program.getUniforms().setValue(gl, \"morphTargetInfluences\", objectInfluences);\n    }\n    program.getUniforms().setValue(gl, \"morphTargetsTexture\", entry.texture, textures);\n    program.getUniforms().setValue(gl, \"morphTargetsTextureSize\", entry.size);\n  }\n  return {\n    update\n  };\n}\nfunction WebGLObjects(gl, geometries, attributes, info) {\n  let updateMap = /* @__PURE__ */ new WeakMap();\n  function update(object) {\n    const frame = info.render.frame;\n    const geometry = object.geometry;\n    const buffergeometry = geometries.get(object, geometry);\n    if (updateMap.get(buffergeometry) !== frame) {\n      geometries.update(buffergeometry);\n      updateMap.set(buffergeometry, frame);\n    }\n    if (object.isInstancedMesh) {\n      if (object.hasEventListener(\"dispose\", onInstancedMeshDispose) === false) {\n        object.addEventListener(\"dispose\", onInstancedMeshDispose);\n      }\n      if (updateMap.get(object) !== frame) {\n        attributes.update(object.instanceMatrix, gl.ARRAY_BUFFER);\n        if (object.instanceColor !== null) {\n          attributes.update(object.instanceColor, gl.ARRAY_BUFFER);\n        }\n        updateMap.set(object, frame);\n      }\n    }\n    if (object.isSkinnedMesh) {\n      const skeleton = object.skeleton;\n      if (updateMap.get(skeleton) !== frame) {\n        skeleton.update();\n        updateMap.set(skeleton, frame);\n      }\n    }\n    return buffergeometry;\n  }\n  function dispose() {\n    updateMap = /* @__PURE__ */ new WeakMap();\n  }\n  function onInstancedMeshDispose(event) {\n    const instancedMesh = event.target;\n    instancedMesh.removeEventListener(\"dispose\", onInstancedMeshDispose);\n    attributes.remove(instancedMesh.instanceMatrix);\n    if (instancedMesh.instanceColor !== null) attributes.remove(instancedMesh.instanceColor);\n  }\n  return {\n    update,\n    dispose\n  };\n}\nvar DepthTexture = class extends Texture {\n  constructor(width, height, type, mapping, wrapS, wrapT, magFilter, minFilter, anisotropy, format = DepthFormat) {\n    if (format !== DepthFormat && format !== DepthStencilFormat) {\n      throw new Error(\"DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat\");\n    }\n    if (type === void 0 && format === DepthFormat) type = UnsignedIntType;\n    if (type === void 0 && format === DepthStencilFormat) type = UnsignedInt248Type;\n    super(null, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy);\n    this.isDepthTexture = true;\n    this.image = { width, height };\n    this.magFilter = magFilter !== void 0 ? magFilter : NearestFilter;\n    this.minFilter = minFilter !== void 0 ? minFilter : NearestFilter;\n    this.flipY = false;\n    this.generateMipmaps = false;\n    this.compareFunction = null;\n  }\n  copy(source) {\n    super.copy(source);\n    this.compareFunction = source.compareFunction;\n    return this;\n  }\n  toJSON(meta) {\n    const data = super.toJSON(meta);\n    if (this.compareFunction !== null) data.compareFunction = this.compareFunction;\n    return data;\n  }\n};\nvar emptyTexture = /* @__PURE__ */ new Texture();\nvar emptyShadowTexture = /* @__PURE__ */ new DepthTexture(1, 1);\nvar emptyArrayTexture = /* @__PURE__ */ new DataArrayTexture();\nvar empty3dTexture = /* @__PURE__ */ new Data3DTexture();\nvar emptyCubeTexture = /* @__PURE__ */ new CubeTexture();\nvar arrayCacheF32 = [];\nvar arrayCacheI32 = [];\nvar mat4array = new Float32Array(16);\nvar mat3array = new Float32Array(9);\nvar mat2array = new Float32Array(4);\nfunction flatten(array, nBlocks, blockSize) {\n  const firstElem = array[0];\n  if (firstElem <= 0 || firstElem > 0) return array;\n  const n = nBlocks * blockSize;\n  let r = arrayCacheF32[n];\n  if (r === void 0) {\n    r = new Float32Array(n);\n    arrayCacheF32[n] = r;\n  }\n  if (nBlocks !== 0) {\n    firstElem.toArray(r, 0);\n    for (let i = 1, offset = 0; i !== nBlocks; ++i) {\n      offset += blockSize;\n      array[i].toArray(r, offset);\n    }\n  }\n  return r;\n}\nfunction arraysEqual(a, b) {\n  if (a.length !== b.length) return false;\n  for (let i = 0, l = a.length; i < l; i++) {\n    if (a[i] !== b[i]) return false;\n  }\n  return true;\n}\nfunction copyArray(a, b) {\n  for (let i = 0, l = b.length; i < l; i++) {\n    a[i] = b[i];\n  }\n}\nfunction allocTexUnits(textures, n) {\n  let r = arrayCacheI32[n];\n  if (r === void 0) {\n    r = new Int32Array(n);\n    arrayCacheI32[n] = r;\n  }\n  for (let i = 0; i !== n; ++i) {\n    r[i] = textures.allocateTextureUnit();\n  }\n  return r;\n}\nfunction setValueV1f(gl, v) {\n  const cache = this.cache;\n  if (cache[0] === v) return;\n  gl.uniform1f(this.addr, v);\n  cache[0] = v;\n}\nfunction setValueV2f(gl, v) {\n  const cache = this.cache;\n  if (v.x !== void 0) {\n    if (cache[0] !== v.x || cache[1] !== v.y) {\n      gl.uniform2f(this.addr, v.x, v.y);\n      cache[0] = v.x;\n      cache[1] = v.y;\n    }\n  } else {\n    if (arraysEqual(cache, v)) return;\n    gl.uniform2fv(this.addr, v);\n    copyArray(cache, v);\n  }\n}\nfunction setValueV3f(gl, v) {\n  const cache = this.cache;\n  if (v.x !== void 0) {\n    if (cache[0] !== v.x || cache[1] !== v.y || cache[2] !== v.z) {\n      gl.uniform3f(this.addr, v.x, v.y, v.z);\n      cache[0] = v.x;\n      cache[1] = v.y;\n      cache[2] = v.z;\n    }\n  } else if (v.r !== void 0) {\n    if (cache[0] !== v.r || cache[1] !== v.g || cache[2] !== v.b) {\n      gl.uniform3f(this.addr, v.r, v.g, v.b);\n      cache[0] = v.r;\n      cache[1] = v.g;\n      cache[2] = v.b;\n    }\n  } else {\n    if (arraysEqual(cache, v)) return;\n    gl.uniform3fv(this.addr, v);\n    copyArray(cache, v);\n  }\n}\nfunction setValueV4f(gl, v) {\n  const cache = this.cache;\n  if (v.x !== void 0) {\n    if (cache[0] !== v.x || cache[1] !== v.y || cache[2] !== v.z || cache[3] !== v.w) {\n      gl.uniform4f(this.addr, v.x, v.y, v.z, v.w);\n      cache[0] = v.x;\n      cache[1] = v.y;\n      cache[2] = v.z;\n      cache[3] = v.w;\n    }\n  } else {\n    if (arraysEqual(cache, v)) return;\n    gl.uniform4fv(this.addr, v);\n    copyArray(cache, v);\n  }\n}\nfunction setValueM2(gl, v) {\n  const cache = this.cache;\n  const elements = v.elements;\n  if (elements === void 0) {\n    if (arraysEqual(cache, v)) return;\n    gl.uniformMatrix2fv(this.addr, false, v);\n    copyArray(cache, v);\n  } else {\n    if (arraysEqual(cache, elements)) return;\n    mat2array.set(elements);\n    gl.uniformMatrix2fv(this.addr, false, mat2array);\n    copyArray(cache, elements);\n  }\n}\nfunction setValueM3(gl, v) {\n  const cache = this.cache;\n  const elements = v.elements;\n  if (elements === void 0) {\n    if (arraysEqual(cache, v)) return;\n    gl.uniformMatrix3fv(this.addr, false, v);\n    copyArray(cache, v);\n  } else {\n    if (arraysEqual(cache, elements)) return;\n    mat3array.set(elements);\n    gl.uniformMatrix3fv(this.addr, false, mat3array);\n    copyArray(cache, elements);\n  }\n}\nfunction setValueM4(gl, v) {\n  const cache = this.cache;\n  const elements = v.elements;\n  if (elements === void 0) {\n    if (arraysEqual(cache, v)) return;\n    gl.uniformMatrix4fv(this.addr, false, v);\n    copyArray(cache, v);\n  } else {\n    if (arraysEqual(cache, elements)) return;\n    mat4array.set(elements);\n    gl.uniformMatrix4fv(this.addr, false, mat4array);\n    copyArray(cache, elements);\n  }\n}\nfunction setValueV1i(gl, v) {\n  const cache = this.cache;\n  if (cache[0] === v) return;\n  gl.uniform1i(this.addr, v);\n  cache[0] = v;\n}\nfunction setValueV2i(gl, v) {\n  const cache = this.cache;\n  if (v.x !== void 0) {\n    if (cache[0] !== v.x || cache[1] !== v.y) {\n      gl.uniform2i(this.addr, v.x, v.y);\n      cache[0] = v.x;\n      cache[1] = v.y;\n    }\n  } else {\n    if (arraysEqual(cache, v)) return;\n    gl.uniform2iv(this.addr, v);\n    copyArray(cache, v);\n  }\n}\nfunction setValueV3i(gl, v) {\n  const cache = this.cache;\n  if (v.x !== void 0) {\n    if (cache[0] !== v.x || cache[1] !== v.y || cache[2] !== v.z) {\n      gl.uniform3i(this.addr, v.x, v.y, v.z);\n      cache[0] = v.x;\n      cache[1] = v.y;\n      cache[2] = v.z;\n    }\n  } else {\n    if (arraysEqual(cache, v)) return;\n    gl.uniform3iv(this.addr, v);\n    copyArray(cache, v);\n  }\n}\nfunction setValueV4i(gl, v) {\n  const cache = this.cache;\n  if (v.x !== void 0) {\n    if (cache[0] !== v.x || cache[1] !== v.y || cache[2] !== v.z || cache[3] !== v.w) {\n      gl.uniform4i(this.addr, v.x, v.y, v.z, v.w);\n      cache[0] = v.x;\n      cache[1] = v.y;\n      cache[2] = v.z;\n      cache[3] = v.w;\n    }\n  } else {\n    if (arraysEqual(cache, v)) return;\n    gl.uniform4iv(this.addr, v);\n    copyArray(cache, v);\n  }\n}\nfunction setValueV1ui(gl, v) {\n  const cache = this.cache;\n  if (cache[0] === v) return;\n  gl.uniform1ui(this.addr, v);\n  cache[0] = v;\n}\nfunction setValueV2ui(gl, v) {\n  const cache = this.cache;\n  if (v.x !== void 0) {\n    if (cache[0] !== v.x || cache[1] !== v.y) {\n      gl.uniform2ui(this.addr, v.x, v.y);\n      cache[0] = v.x;\n      cache[1] = v.y;\n    }\n  } else {\n    if (arraysEqual(cache, v)) return;\n    gl.uniform2uiv(this.addr, v);\n    copyArray(cache, v);\n  }\n}\nfunction setValueV3ui(gl, v) {\n  const cache = this.cache;\n  if (v.x !== void 0) {\n    if (cache[0] !== v.x || cache[1] !== v.y || cache[2] !== v.z) {\n      gl.uniform3ui(this.addr, v.x, v.y, v.z);\n      cache[0] = v.x;\n      cache[1] = v.y;\n      cache[2] = v.z;\n    }\n  } else {\n    if (arraysEqual(cache, v)) return;\n    gl.uniform3uiv(this.addr, v);\n    copyArray(cache, v);\n  }\n}\nfunction setValueV4ui(gl, v) {\n  const cache = this.cache;\n  if (v.x !== void 0) {\n    if (cache[0] !== v.x || cache[1] !== v.y || cache[2] !== v.z || cache[3] !== v.w) {\n      gl.uniform4ui(this.addr, v.x, v.y, v.z, v.w);\n      cache[0] = v.x;\n      cache[1] = v.y;\n      cache[2] = v.z;\n      cache[3] = v.w;\n    }\n  } else {\n    if (arraysEqual(cache, v)) return;\n    gl.uniform4uiv(this.addr, v);\n    copyArray(cache, v);\n  }\n}\nfunction setValueT1(gl, v, textures) {\n  const cache = this.cache;\n  const unit = textures.allocateTextureUnit();\n  if (cache[0] !== unit) {\n    gl.uniform1i(this.addr, unit);\n    cache[0] = unit;\n  }\n  let emptyTexture2D;\n  if (this.type === gl.SAMPLER_2D_SHADOW) {\n    emptyShadowTexture.compareFunction = LessEqualCompare;\n    emptyTexture2D = emptyShadowTexture;\n  } else {\n    emptyTexture2D = emptyTexture;\n  }\n  textures.setTexture2D(v || emptyTexture2D, unit);\n}\nfunction setValueT3D1(gl, v, textures) {\n  const cache = this.cache;\n  const unit = textures.allocateTextureUnit();\n  if (cache[0] !== unit) {\n    gl.uniform1i(this.addr, unit);\n    cache[0] = unit;\n  }\n  textures.setTexture3D(v || empty3dTexture, unit);\n}\nfunction setValueT6(gl, v, textures) {\n  const cache = this.cache;\n  const unit = textures.allocateTextureUnit();\n  if (cache[0] !== unit) {\n    gl.uniform1i(this.addr, unit);\n    cache[0] = unit;\n  }\n  textures.setTextureCube(v || emptyCubeTexture, unit);\n}\nfunction setValueT2DArray1(gl, v, textures) {\n  const cache = this.cache;\n  const unit = textures.allocateTextureUnit();\n  if (cache[0] !== unit) {\n    gl.uniform1i(this.addr, unit);\n    cache[0] = unit;\n  }\n  textures.setTexture2DArray(v || emptyArrayTexture, unit);\n}\nfunction getSingularSetter(type) {\n  switch (type) {\n    case 5126:\n      return setValueV1f;\n    // FLOAT\n    case 35664:\n      return setValueV2f;\n    // _VEC2\n    case 35665:\n      return setValueV3f;\n    // _VEC3\n    case 35666:\n      return setValueV4f;\n    // _VEC4\n    case 35674:\n      return setValueM2;\n    // _MAT2\n    case 35675:\n      return setValueM3;\n    // _MAT3\n    case 35676:\n      return setValueM4;\n    // _MAT4\n    case 5124:\n    case 35670:\n      return setValueV1i;\n    // INT, BOOL\n    case 35667:\n    case 35671:\n      return setValueV2i;\n    // _VEC2\n    case 35668:\n    case 35672:\n      return setValueV3i;\n    // _VEC3\n    case 35669:\n    case 35673:\n      return setValueV4i;\n    // _VEC4\n    case 5125:\n      return setValueV1ui;\n    // UINT\n    case 36294:\n      return setValueV2ui;\n    // _VEC2\n    case 36295:\n      return setValueV3ui;\n    // _VEC3\n    case 36296:\n      return setValueV4ui;\n    // _VEC4\n    case 35678:\n    // SAMPLER_2D\n    case 36198:\n    // SAMPLER_EXTERNAL_OES\n    case 36298:\n    // INT_SAMPLER_2D\n    case 36306:\n    // UNSIGNED_INT_SAMPLER_2D\n    case 35682:\n      return setValueT1;\n    case 35679:\n    // SAMPLER_3D\n    case 36299:\n    // INT_SAMPLER_3D\n    case 36307:\n      return setValueT3D1;\n    case 35680:\n    // SAMPLER_CUBE\n    case 36300:\n    // INT_SAMPLER_CUBE\n    case 36308:\n    // UNSIGNED_INT_SAMPLER_CUBE\n    case 36293:\n      return setValueT6;\n    case 36289:\n    // SAMPLER_2D_ARRAY\n    case 36303:\n    // INT_SAMPLER_2D_ARRAY\n    case 36311:\n    // UNSIGNED_INT_SAMPLER_2D_ARRAY\n    case 36292:\n      return setValueT2DArray1;\n  }\n}\nfunction setValueV1fArray(gl, v) {\n  gl.uniform1fv(this.addr, v);\n}\nfunction setValueV2fArray(gl, v) {\n  const data = flatten(v, this.size, 2);\n  gl.uniform2fv(this.addr, data);\n}\nfunction setValueV3fArray(gl, v) {\n  const data = flatten(v, this.size, 3);\n  gl.uniform3fv(this.addr, data);\n}\nfunction setValueV4fArray(gl, v) {\n  const data = flatten(v, this.size, 4);\n  gl.uniform4fv(this.addr, data);\n}\nfunction setValueM2Array(gl, v) {\n  const data = flatten(v, this.size, 4);\n  gl.uniformMatrix2fv(this.addr, false, data);\n}\nfunction setValueM3Array(gl, v) {\n  const data = flatten(v, this.size, 9);\n  gl.uniformMatrix3fv(this.addr, false, data);\n}\nfunction setValueM4Array(gl, v) {\n  const data = flatten(v, this.size, 16);\n  gl.uniformMatrix4fv(this.addr, false, data);\n}\nfunction setValueV1iArray(gl, v) {\n  gl.uniform1iv(this.addr, v);\n}\nfunction setValueV2iArray(gl, v) {\n  gl.uniform2iv(this.addr, v);\n}\nfunction setValueV3iArray(gl, v) {\n  gl.uniform3iv(this.addr, v);\n}\nfunction setValueV4iArray(gl, v) {\n  gl.uniform4iv(this.addr, v);\n}\nfunction setValueV1uiArray(gl, v) {\n  gl.uniform1uiv(this.addr, v);\n}\nfunction setValueV2uiArray(gl, v) {\n  gl.uniform2uiv(this.addr, v);\n}\nfunction setValueV3uiArray(gl, v) {\n  gl.uniform3uiv(this.addr, v);\n}\nfunction setValueV4uiArray(gl, v) {\n  gl.uniform4uiv(this.addr, v);\n}\nfunction setValueT1Array(gl, v, textures) {\n  const cache = this.cache;\n  const n = v.length;\n  const units = allocTexUnits(textures, n);\n  if (!arraysEqual(cache, units)) {\n    gl.uniform1iv(this.addr, units);\n    copyArray(cache, units);\n  }\n  for (let i = 0; i !== n; ++i) {\n    textures.setTexture2D(v[i] || emptyTexture, units[i]);\n  }\n}\nfunction setValueT3DArray(gl, v, textures) {\n  const cache = this.cache;\n  const n = v.length;\n  const units = allocTexUnits(textures, n);\n  if (!arraysEqual(cache, units)) {\n    gl.uniform1iv(this.addr, units);\n    copyArray(cache, units);\n  }\n  for (let i = 0; i !== n; ++i) {\n    textures.setTexture3D(v[i] || empty3dTexture, units[i]);\n  }\n}\nfunction setValueT6Array(gl, v, textures) {\n  const cache = this.cache;\n  const n = v.length;\n  const units = allocTexUnits(textures, n);\n  if (!arraysEqual(cache, units)) {\n    gl.uniform1iv(this.addr, units);\n    copyArray(cache, units);\n  }\n  for (let i = 0; i !== n; ++i) {\n    textures.setTextureCube(v[i] || emptyCubeTexture, units[i]);\n  }\n}\nfunction setValueT2DArrayArray(gl, v, textures) {\n  const cache = this.cache;\n  const n = v.length;\n  const units = allocTexUnits(textures, n);\n  if (!arraysEqual(cache, units)) {\n    gl.uniform1iv(this.addr, units);\n    copyArray(cache, units);\n  }\n  for (let i = 0; i !== n; ++i) {\n    textures.setTexture2DArray(v[i] || emptyArrayTexture, units[i]);\n  }\n}\nfunction getPureArraySetter(type) {\n  switch (type) {\n    case 5126:\n      return setValueV1fArray;\n    // FLOAT\n    case 35664:\n      return setValueV2fArray;\n    // _VEC2\n    case 35665:\n      return setValueV3fArray;\n    // _VEC3\n    case 35666:\n      return setValueV4fArray;\n    // _VEC4\n    case 35674:\n      return setValueM2Array;\n    // _MAT2\n    case 35675:\n      return setValueM3Array;\n    // _MAT3\n    case 35676:\n      return setValueM4Array;\n    // _MAT4\n    case 5124:\n    case 35670:\n      return setValueV1iArray;\n    // INT, BOOL\n    case 35667:\n    case 35671:\n      return setValueV2iArray;\n    // _VEC2\n    case 35668:\n    case 35672:\n      return setValueV3iArray;\n    // _VEC3\n    case 35669:\n    case 35673:\n      return setValueV4iArray;\n    // _VEC4\n    case 5125:\n      return setValueV1uiArray;\n    // UINT\n    case 36294:\n      return setValueV2uiArray;\n    // _VEC2\n    case 36295:\n      return setValueV3uiArray;\n    // _VEC3\n    case 36296:\n      return setValueV4uiArray;\n    // _VEC4\n    case 35678:\n    // SAMPLER_2D\n    case 36198:\n    // SAMPLER_EXTERNAL_OES\n    case 36298:\n    // INT_SAMPLER_2D\n    case 36306:\n    // UNSIGNED_INT_SAMPLER_2D\n    case 35682:\n      return setValueT1Array;\n    case 35679:\n    // SAMPLER_3D\n    case 36299:\n    // INT_SAMPLER_3D\n    case 36307:\n      return setValueT3DArray;\n    case 35680:\n    // SAMPLER_CUBE\n    case 36300:\n    // INT_SAMPLER_CUBE\n    case 36308:\n    // UNSIGNED_INT_SAMPLER_CUBE\n    case 36293:\n      return setValueT6Array;\n    case 36289:\n    // SAMPLER_2D_ARRAY\n    case 36303:\n    // INT_SAMPLER_2D_ARRAY\n    case 36311:\n    // UNSIGNED_INT_SAMPLER_2D_ARRAY\n    case 36292:\n      return setValueT2DArrayArray;\n  }\n}\nvar SingleUniform = class {\n  constructor(id, activeInfo, addr) {\n    this.id = id;\n    this.addr = addr;\n    this.cache = [];\n    this.type = activeInfo.type;\n    this.setValue = getSingularSetter(activeInfo.type);\n  }\n};\nvar PureArrayUniform = class {\n  constructor(id, activeInfo, addr) {\n    this.id = id;\n    this.addr = addr;\n    this.cache = [];\n    this.type = activeInfo.type;\n    this.size = activeInfo.size;\n    this.setValue = getPureArraySetter(activeInfo.type);\n  }\n};\nvar StructuredUniform = class {\n  constructor(id) {\n    this.id = id;\n    this.seq = [];\n    this.map = {};\n  }\n  setValue(gl, value, textures) {\n    const seq = this.seq;\n    for (let i = 0, n = seq.length; i !== n; ++i) {\n      const u = seq[i];\n      u.setValue(gl, value[u.id], textures);\n    }\n  }\n};\nvar RePathPart = /(\\w+)(\\])?(\\[|\\.)?/g;\nfunction addUniform(container, uniformObject) {\n  container.seq.push(uniformObject);\n  container.map[uniformObject.id] = uniformObject;\n}\nfunction parseUniform(activeInfo, addr, container) {\n  const path = activeInfo.name, pathLength = path.length;\n  RePathPart.lastIndex = 0;\n  while (true) {\n    const match = RePathPart.exec(path), matchEnd = RePathPart.lastIndex;\n    let id = match[1];\n    const idIsIndex = match[2] === \"]\", subscript = match[3];\n    if (idIsIndex) id = id | 0;\n    if (subscript === void 0 || subscript === \"[\" && matchEnd + 2 === pathLength) {\n      addUniform(container, subscript === void 0 ? new SingleUniform(id, activeInfo, addr) : new PureArrayUniform(id, activeInfo, addr));\n      break;\n    } else {\n      const map = container.map;\n      let next = map[id];\n      if (next === void 0) {\n        next = new StructuredUniform(id);\n        addUniform(container, next);\n      }\n      container = next;\n    }\n  }\n}\nvar WebGLUniforms = class {\n  constructor(gl, program) {\n    this.seq = [];\n    this.map = {};\n    const n = gl.getProgramParameter(program, gl.ACTIVE_UNIFORMS);\n    for (let i = 0; i < n; ++i) {\n      const info = gl.getActiveUniform(program, i), addr = gl.getUniformLocation(program, info.name);\n      parseUniform(info, addr, this);\n    }\n  }\n  setValue(gl, name, value, textures) {\n    const u = this.map[name];\n    if (u !== void 0) u.setValue(gl, value, textures);\n  }\n  setOptional(gl, object, name) {\n    const v = object[name];\n    if (v !== void 0) this.setValue(gl, name, v);\n  }\n  static upload(gl, seq, values, textures) {\n    for (let i = 0, n = seq.length; i !== n; ++i) {\n      const u = seq[i], v = values[u.id];\n      if (v.needsUpdate !== false) {\n        u.setValue(gl, v.value, textures);\n      }\n    }\n  }\n  static seqWithValue(seq, values) {\n    const r = [];\n    for (let i = 0, n = seq.length; i !== n; ++i) {\n      const u = seq[i];\n      if (u.id in values) r.push(u);\n    }\n    return r;\n  }\n};\nfunction WebGLShader(gl, type, string) {\n  const shader = gl.createShader(type);\n  gl.shaderSource(shader, string);\n  gl.compileShader(shader);\n  return shader;\n}\nvar COMPLETION_STATUS_KHR = 37297;\nvar programIdCount = 0;\nfunction handleSource(string, errorLine) {\n  const lines = string.split(\"\\n\");\n  const lines2 = [];\n  const from = Math.max(errorLine - 6, 0);\n  const to = Math.min(errorLine + 6, lines.length);\n  for (let i = from; i < to; i++) {\n    const line = i + 1;\n    lines2.push(`${line === errorLine ? \">\" : \" \"} ${line}: ${lines[i]}`);\n  }\n  return lines2.join(\"\\n\");\n}\nfunction getEncodingComponents(colorSpace) {\n  const workingPrimaries = ColorManagement.getPrimaries(ColorManagement.workingColorSpace);\n  const encodingPrimaries = ColorManagement.getPrimaries(colorSpace);\n  let gamutMapping;\n  if (workingPrimaries === encodingPrimaries) {\n    gamutMapping = \"\";\n  } else if (workingPrimaries === P3Primaries && encodingPrimaries === Rec709Primaries) {\n    gamutMapping = \"LinearDisplayP3ToLinearSRGB\";\n  } else if (workingPrimaries === Rec709Primaries && encodingPrimaries === P3Primaries) {\n    gamutMapping = \"LinearSRGBToLinearDisplayP3\";\n  }\n  switch (colorSpace) {\n    case LinearSRGBColorSpace:\n    case LinearDisplayP3ColorSpace:\n      return [gamutMapping, \"LinearTransferOETF\"];\n    case SRGBColorSpace:\n    case DisplayP3ColorSpace:\n      return [gamutMapping, \"sRGBTransferOETF\"];\n    default:\n      console.warn(\"THREE.WebGLProgram: Unsupported color space:\", colorSpace);\n      return [gamutMapping, \"LinearTransferOETF\"];\n  }\n}\nfunction getShaderErrors(gl, shader, type) {\n  const status = gl.getShaderParameter(shader, gl.COMPILE_STATUS);\n  const errors = gl.getShaderInfoLog(shader).trim();\n  if (status && errors === \"\") return \"\";\n  const errorMatches = /ERROR: 0:(\\d+)/.exec(errors);\n  if (errorMatches) {\n    const errorLine = parseInt(errorMatches[1]);\n    return type.toUpperCase() + \"\\n\\n\" + errors + \"\\n\\n\" + handleSource(gl.getShaderSource(shader), errorLine);\n  } else {\n    return errors;\n  }\n}\nfunction getTexelEncodingFunction(functionName, colorSpace) {\n  const components = getEncodingComponents(colorSpace);\n  return `vec4 ${functionName}( vec4 value ) { return ${components[0]}( ${components[1]}( value ) ); }`;\n}\nfunction getToneMappingFunction(functionName, toneMapping) {\n  let toneMappingName;\n  switch (toneMapping) {\n    case LinearToneMapping:\n      toneMappingName = \"Linear\";\n      break;\n    case ReinhardToneMapping:\n      toneMappingName = \"Reinhard\";\n      break;\n    case CineonToneMapping:\n      toneMappingName = \"Cineon\";\n      break;\n    case ACESFilmicToneMapping:\n      toneMappingName = \"ACESFilmic\";\n      break;\n    case AgXToneMapping:\n      toneMappingName = \"AgX\";\n      break;\n    case NeutralToneMapping:\n      toneMappingName = \"Neutral\";\n      break;\n    case CustomToneMapping:\n      toneMappingName = \"Custom\";\n      break;\n    default:\n      console.warn(\"THREE.WebGLProgram: Unsupported toneMapping:\", toneMapping);\n      toneMappingName = \"Linear\";\n  }\n  return \"vec3 \" + functionName + \"( vec3 color ) { return \" + toneMappingName + \"ToneMapping( color ); }\";\n}\nvar _v0$1 = /* @__PURE__ */ new Vector3();\nfunction getLuminanceFunction() {\n  ColorManagement.getLuminanceCoefficients(_v0$1);\n  const r = _v0$1.x.toFixed(4);\n  const g = _v0$1.y.toFixed(4);\n  const b = _v0$1.z.toFixed(4);\n  return [\n    \"float luminance( const in vec3 rgb ) {\",\n    `\tconst vec3 weights = vec3( ${r}, ${g}, ${b} );`,\n    \"\treturn dot( weights, rgb );\",\n    \"}\"\n  ].join(\"\\n\");\n}\nfunction generateVertexExtensions(parameters) {\n  const chunks = [\n    parameters.extensionClipCullDistance ? \"#extension GL_ANGLE_clip_cull_distance : require\" : \"\",\n    parameters.extensionMultiDraw ? \"#extension GL_ANGLE_multi_draw : require\" : \"\"\n  ];\n  return chunks.filter(filterEmptyLine).join(\"\\n\");\n}\nfunction generateDefines(defines) {\n  const chunks = [];\n  for (const name in defines) {\n    const value = defines[name];\n    if (value === false) continue;\n    chunks.push(\"#define \" + name + \" \" + value);\n  }\n  return chunks.join(\"\\n\");\n}\nfunction fetchAttributeLocations(gl, program) {\n  const attributes = {};\n  const n = gl.getProgramParameter(program, gl.ACTIVE_ATTRIBUTES);\n  for (let i = 0; i < n; i++) {\n    const info = gl.getActiveAttrib(program, i);\n    const name = info.name;\n    let locationSize = 1;\n    if (info.type === gl.FLOAT_MAT2) locationSize = 2;\n    if (info.type === gl.FLOAT_MAT3) locationSize = 3;\n    if (info.type === gl.FLOAT_MAT4) locationSize = 4;\n    attributes[name] = {\n      type: info.type,\n      location: gl.getAttribLocation(program, name),\n      locationSize\n    };\n  }\n  return attributes;\n}\nfunction filterEmptyLine(string) {\n  return string !== \"\";\n}\nfunction replaceLightNums(string, parameters) {\n  const numSpotLightCoords = parameters.numSpotLightShadows + parameters.numSpotLightMaps - parameters.numSpotLightShadowsWithMaps;\n  return string.replace(/NUM_DIR_LIGHTS/g, parameters.numDirLights).replace(/NUM_SPOT_LIGHTS/g, parameters.numSpotLights).replace(/NUM_SPOT_LIGHT_MAPS/g, parameters.numSpotLightMaps).replace(/NUM_SPOT_LIGHT_COORDS/g, numSpotLightCoords).replace(/NUM_RECT_AREA_LIGHTS/g, parameters.numRectAreaLights).replace(/NUM_POINT_LIGHTS/g, parameters.numPointLights).replace(/NUM_HEMI_LIGHTS/g, parameters.numHemiLights).replace(/NUM_DIR_LIGHT_SHADOWS/g, parameters.numDirLightShadows).replace(/NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS/g, parameters.numSpotLightShadowsWithMaps).replace(/NUM_SPOT_LIGHT_SHADOWS/g, parameters.numSpotLightShadows).replace(/NUM_POINT_LIGHT_SHADOWS/g, parameters.numPointLightShadows);\n}\nfunction replaceClippingPlaneNums(string, parameters) {\n  return string.replace(/NUM_CLIPPING_PLANES/g, parameters.numClippingPlanes).replace(/UNION_CLIPPING_PLANES/g, parameters.numClippingPlanes - parameters.numClipIntersection);\n}\nvar includePattern = /^[ \\t]*#include +<([\\w\\d./]+)>/gm;\nfunction resolveIncludes(string) {\n  return string.replace(includePattern, includeReplacer);\n}\nvar shaderChunkMap = /* @__PURE__ */ new Map();\nfunction includeReplacer(match, include) {\n  let string = ShaderChunk[include];\n  if (string === void 0) {\n    const newInclude = shaderChunkMap.get(include);\n    if (newInclude !== void 0) {\n      string = ShaderChunk[newInclude];\n      console.warn('THREE.WebGLRenderer: Shader chunk \"%s\" has been deprecated. Use \"%s\" instead.', include, newInclude);\n    } else {\n      throw new Error(\"Can not resolve #include <\" + include + \">\");\n    }\n  }\n  return resolveIncludes(string);\n}\nvar unrollLoopPattern = /#pragma unroll_loop_start\\s+for\\s*\\(\\s*int\\s+i\\s*=\\s*(\\d+)\\s*;\\s*i\\s*<\\s*(\\d+)\\s*;\\s*i\\s*\\+\\+\\s*\\)\\s*{([\\s\\S]+?)}\\s+#pragma unroll_loop_end/g;\nfunction unrollLoops(string) {\n  return string.replace(unrollLoopPattern, loopReplacer);\n}\nfunction loopReplacer(match, start, end, snippet) {\n  let string = \"\";\n  for (let i = parseInt(start); i < parseInt(end); i++) {\n    string += snippet.replace(/\\[\\s*i\\s*\\]/g, \"[ \" + i + \" ]\").replace(/UNROLLED_LOOP_INDEX/g, i);\n  }\n  return string;\n}\nfunction generatePrecision(parameters) {\n  let precisionstring = `precision ${parameters.precision} float;\n\tprecision ${parameters.precision} int;\n\tprecision ${parameters.precision} sampler2D;\n\tprecision ${parameters.precision} samplerCube;\n\tprecision ${parameters.precision} sampler3D;\n\tprecision ${parameters.precision} sampler2DArray;\n\tprecision ${parameters.precision} sampler2DShadow;\n\tprecision ${parameters.precision} samplerCubeShadow;\n\tprecision ${parameters.precision} sampler2DArrayShadow;\n\tprecision ${parameters.precision} isampler2D;\n\tprecision ${parameters.precision} isampler3D;\n\tprecision ${parameters.precision} isamplerCube;\n\tprecision ${parameters.precision} isampler2DArray;\n\tprecision ${parameters.precision} usampler2D;\n\tprecision ${parameters.precision} usampler3D;\n\tprecision ${parameters.precision} usamplerCube;\n\tprecision ${parameters.precision} usampler2DArray;\n\t`;\n  if (parameters.precision === \"highp\") {\n    precisionstring += \"\\n#define HIGH_PRECISION\";\n  } else if (parameters.precision === \"mediump\") {\n    precisionstring += \"\\n#define MEDIUM_PRECISION\";\n  } else if (parameters.precision === \"lowp\") {\n    precisionstring += \"\\n#define LOW_PRECISION\";\n  }\n  return precisionstring;\n}\nfunction generateShadowMapTypeDefine(parameters) {\n  let shadowMapTypeDefine = \"SHADOWMAP_TYPE_BASIC\";\n  if (parameters.shadowMapType === PCFShadowMap) {\n    shadowMapTypeDefine = \"SHADOWMAP_TYPE_PCF\";\n  } else if (parameters.shadowMapType === PCFSoftShadowMap) {\n    shadowMapTypeDefine = \"SHADOWMAP_TYPE_PCF_SOFT\";\n  } else if (parameters.shadowMapType === VSMShadowMap) {\n    shadowMapTypeDefine = \"SHADOWMAP_TYPE_VSM\";\n  }\n  return shadowMapTypeDefine;\n}\nfunction generateEnvMapTypeDefine(parameters) {\n  let envMapTypeDefine = \"ENVMAP_TYPE_CUBE\";\n  if (parameters.envMap) {\n    switch (parameters.envMapMode) {\n      case CubeReflectionMapping:\n      case CubeRefractionMapping:\n        envMapTypeDefine = \"ENVMAP_TYPE_CUBE\";\n        break;\n      case CubeUVReflectionMapping:\n        envMapTypeDefine = \"ENVMAP_TYPE_CUBE_UV\";\n        break;\n    }\n  }\n  return envMapTypeDefine;\n}\nfunction generateEnvMapModeDefine(parameters) {\n  let envMapModeDefine = \"ENVMAP_MODE_REFLECTION\";\n  if (parameters.envMap) {\n    switch (parameters.envMapMode) {\n      case CubeRefractionMapping:\n        envMapModeDefine = \"ENVMAP_MODE_REFRACTION\";\n        break;\n    }\n  }\n  return envMapModeDefine;\n}\nfunction generateEnvMapBlendingDefine(parameters) {\n  let envMapBlendingDefine = \"ENVMAP_BLENDING_NONE\";\n  if (parameters.envMap) {\n    switch (parameters.combine) {\n      case MultiplyOperation:\n        envMapBlendingDefine = \"ENVMAP_BLENDING_MULTIPLY\";\n        break;\n      case MixOperation:\n        envMapBlendingDefine = \"ENVMAP_BLENDING_MIX\";\n        break;\n      case AddOperation:\n        envMapBlendingDefine = \"ENVMAP_BLENDING_ADD\";\n        break;\n    }\n  }\n  return envMapBlendingDefine;\n}\nfunction generateCubeUVSize(parameters) {\n  const imageHeight = parameters.envMapCubeUVHeight;\n  if (imageHeight === null) return null;\n  const maxMip = Math.log2(imageHeight) - 2;\n  const texelHeight = 1 / imageHeight;\n  const texelWidth = 1 / (3 * Math.max(Math.pow(2, maxMip), 7 * 16));\n  return { texelWidth, texelHeight, maxMip };\n}\nfunction WebGLProgram(renderer, cacheKey, parameters, bindingStates) {\n  const gl = renderer.getContext();\n  const defines = parameters.defines;\n  let vertexShader = parameters.vertexShader;\n  let fragmentShader = parameters.fragmentShader;\n  const shadowMapTypeDefine = generateShadowMapTypeDefine(parameters);\n  const envMapTypeDefine = generateEnvMapTypeDefine(parameters);\n  const envMapModeDefine = generateEnvMapModeDefine(parameters);\n  const envMapBlendingDefine = generateEnvMapBlendingDefine(parameters);\n  const envMapCubeUVSize = generateCubeUVSize(parameters);\n  const customVertexExtensions = generateVertexExtensions(parameters);\n  const customDefines = generateDefines(defines);\n  const program = gl.createProgram();\n  let prefixVertex, prefixFragment;\n  let versionString = parameters.glslVersion ? \"#version \" + parameters.glslVersion + \"\\n\" : \"\";\n  if (parameters.isRawShaderMaterial) {\n    prefixVertex = [\n      \"#define SHADER_TYPE \" + parameters.shaderType,\n      \"#define SHADER_NAME \" + parameters.shaderName,\n      customDefines\n    ].filter(filterEmptyLine).join(\"\\n\");\n    if (prefixVertex.length > 0) {\n      prefixVertex += \"\\n\";\n    }\n    prefixFragment = [\n      \"#define SHADER_TYPE \" + parameters.shaderType,\n      \"#define SHADER_NAME \" + parameters.shaderName,\n      customDefines\n    ].filter(filterEmptyLine).join(\"\\n\");\n    if (prefixFragment.length > 0) {\n      prefixFragment += \"\\n\";\n    }\n  } else {\n    prefixVertex = [\n      generatePrecision(parameters),\n      \"#define SHADER_TYPE \" + parameters.shaderType,\n      \"#define SHADER_NAME \" + parameters.shaderName,\n      customDefines,\n      parameters.extensionClipCullDistance ? \"#define USE_CLIP_DISTANCE\" : \"\",\n      parameters.batching ? \"#define USE_BATCHING\" : \"\",\n      parameters.batchingColor ? \"#define USE_BATCHING_COLOR\" : \"\",\n      parameters.instancing ? \"#define USE_INSTANCING\" : \"\",\n      parameters.instancingColor ? \"#define USE_INSTANCING_COLOR\" : \"\",\n      parameters.instancingMorph ? \"#define USE_INSTANCING_MORPH\" : \"\",\n      parameters.useFog && parameters.fog ? \"#define USE_FOG\" : \"\",\n      parameters.useFog && parameters.fogExp2 ? \"#define FOG_EXP2\" : \"\",\n      parameters.map ? \"#define USE_MAP\" : \"\",\n      parameters.envMap ? \"#define USE_ENVMAP\" : \"\",\n      parameters.envMap ? \"#define \" + envMapModeDefine : \"\",\n      parameters.lightMap ? \"#define USE_LIGHTMAP\" : \"\",\n      parameters.aoMap ? \"#define USE_AOMAP\" : \"\",\n      parameters.bumpMap ? \"#define USE_BUMPMAP\" : \"\",\n      parameters.normalMap ? \"#define USE_NORMALMAP\" : \"\",\n      parameters.normalMapObjectSpace ? \"#define USE_NORMALMAP_OBJECTSPACE\" : \"\",\n      parameters.normalMapTangentSpace ? \"#define USE_NORMALMAP_TANGENTSPACE\" : \"\",\n      parameters.displacementMap ? \"#define USE_DISPLACEMENTMAP\" : \"\",\n      parameters.emissiveMap ? \"#define USE_EMISSIVEMAP\" : \"\",\n      parameters.anisotropy ? \"#define USE_ANISOTROPY\" : \"\",\n      parameters.anisotropyMap ? \"#define USE_ANISOTROPYMAP\" : \"\",\n      parameters.clearcoatMap ? \"#define USE_CLEARCOATMAP\" : \"\",\n      parameters.clearcoatRoughnessMap ? \"#define USE_CLEARCOAT_ROUGHNESSMAP\" : \"\",\n      parameters.clearcoatNormalMap ? \"#define USE_CLEARCOAT_NORMALMAP\" : \"\",\n      parameters.iridescenceMap ? \"#define USE_IRIDESCENCEMAP\" : \"\",\n      parameters.iridescenceThicknessMap ? \"#define USE_IRIDESCENCE_THICKNESSMAP\" : \"\",\n      parameters.specularMap ? \"#define USE_SPECULARMAP\" : \"\",\n      parameters.specularColorMap ? \"#define USE_SPECULAR_COLORMAP\" : \"\",\n      parameters.specularIntensityMap ? \"#define USE_SPECULAR_INTENSITYMAP\" : \"\",\n      parameters.roughnessMap ? \"#define USE_ROUGHNESSMAP\" : \"\",\n      parameters.metalnessMap ? \"#define USE_METALNESSMAP\" : \"\",\n      parameters.alphaMap ? \"#define USE_ALPHAMAP\" : \"\",\n      parameters.alphaHash ? \"#define USE_ALPHAHASH\" : \"\",\n      parameters.transmission ? \"#define USE_TRANSMISSION\" : \"\",\n      parameters.transmissionMap ? \"#define USE_TRANSMISSIONMAP\" : \"\",\n      parameters.thicknessMap ? \"#define USE_THICKNESSMAP\" : \"\",\n      parameters.sheenColorMap ? \"#define USE_SHEEN_COLORMAP\" : \"\",\n      parameters.sheenRoughnessMap ? \"#define USE_SHEEN_ROUGHNESSMAP\" : \"\",\n      //\n      parameters.mapUv ? \"#define MAP_UV \" + parameters.mapUv : \"\",\n      parameters.alphaMapUv ? \"#define ALPHAMAP_UV \" + parameters.alphaMapUv : \"\",\n      parameters.lightMapUv ? \"#define LIGHTMAP_UV \" + parameters.lightMapUv : \"\",\n      parameters.aoMapUv ? \"#define AOMAP_UV \" + parameters.aoMapUv : \"\",\n      parameters.emissiveMapUv ? \"#define EMISSIVEMAP_UV \" + parameters.emissiveMapUv : \"\",\n      parameters.bumpMapUv ? \"#define BUMPMAP_UV \" + parameters.bumpMapUv : \"\",\n      parameters.normalMapUv ? \"#define NORMALMAP_UV \" + parameters.normalMapUv : \"\",\n      parameters.displacementMapUv ? \"#define DISPLACEMENTMAP_UV \" + parameters.displacementMapUv : \"\",\n      parameters.metalnessMapUv ? \"#define METALNESSMAP_UV \" + parameters.metalnessMapUv : \"\",\n      parameters.roughnessMapUv ? \"#define ROUGHNESSMAP_UV \" + parameters.roughnessMapUv : \"\",\n      parameters.anisotropyMapUv ? \"#define ANISOTROPYMAP_UV \" + parameters.anisotropyMapUv : \"\",\n      parameters.clearcoatMapUv ? \"#define CLEARCOATMAP_UV \" + parameters.clearcoatMapUv : \"\",\n      parameters.clearcoatNormalMapUv ? \"#define CLEARCOAT_NORMALMAP_UV \" + parameters.clearcoatNormalMapUv : \"\",\n      parameters.clearcoatRoughnessMapUv ? \"#define CLEARCOAT_ROUGHNESSMAP_UV \" + parameters.clearcoatRoughnessMapUv : \"\",\n      parameters.iridescenceMapUv ? \"#define IRIDESCENCEMAP_UV \" + parameters.iridescenceMapUv : \"\",\n      parameters.iridescenceThicknessMapUv ? \"#define IRIDESCENCE_THICKNESSMAP_UV \" + parameters.iridescenceThicknessMapUv : \"\",\n      parameters.sheenColorMapUv ? \"#define SHEEN_COLORMAP_UV \" + parameters.sheenColorMapUv : \"\",\n      parameters.sheenRoughnessMapUv ? \"#define SHEEN_ROUGHNESSMAP_UV \" + parameters.sheenRoughnessMapUv : \"\",\n      parameters.specularMapUv ? \"#define SPECULARMAP_UV \" + parameters.specularMapUv : \"\",\n      parameters.specularColorMapUv ? \"#define SPECULAR_COLORMAP_UV \" + parameters.specularColorMapUv : \"\",\n      parameters.specularIntensityMapUv ? \"#define SPECULAR_INTENSITYMAP_UV \" + parameters.specularIntensityMapUv : \"\",\n      parameters.transmissionMapUv ? \"#define TRANSMISSIONMAP_UV \" + parameters.transmissionMapUv : \"\",\n      parameters.thicknessMapUv ? \"#define THICKNESSMAP_UV \" + parameters.thicknessMapUv : \"\",\n      //\n      parameters.vertexTangents && parameters.flatShading === false ? \"#define USE_TANGENT\" : \"\",\n      parameters.vertexColors ? \"#define USE_COLOR\" : \"\",\n      parameters.vertexAlphas ? \"#define USE_COLOR_ALPHA\" : \"\",\n      parameters.vertexUv1s ? \"#define USE_UV1\" : \"\",\n      parameters.vertexUv2s ? \"#define USE_UV2\" : \"\",\n      parameters.vertexUv3s ? \"#define USE_UV3\" : \"\",\n      parameters.pointsUvs ? \"#define USE_POINTS_UV\" : \"\",\n      parameters.flatShading ? \"#define FLAT_SHADED\" : \"\",\n      parameters.skinning ? \"#define USE_SKINNING\" : \"\",\n      parameters.morphTargets ? \"#define USE_MORPHTARGETS\" : \"\",\n      parameters.morphNormals && parameters.flatShading === false ? \"#define USE_MORPHNORMALS\" : \"\",\n      parameters.morphColors ? \"#define USE_MORPHCOLORS\" : \"\",\n      parameters.morphTargetsCount > 0 ? \"#define MORPHTARGETS_TEXTURE_STRIDE \" + parameters.morphTextureStride : \"\",\n      parameters.morphTargetsCount > 0 ? \"#define MORPHTARGETS_COUNT \" + parameters.morphTargetsCount : \"\",\n      parameters.doubleSided ? \"#define DOUBLE_SIDED\" : \"\",\n      parameters.flipSided ? \"#define FLIP_SIDED\" : \"\",\n      parameters.shadowMapEnabled ? \"#define USE_SHADOWMAP\" : \"\",\n      parameters.shadowMapEnabled ? \"#define \" + shadowMapTypeDefine : \"\",\n      parameters.sizeAttenuation ? \"#define USE_SIZEATTENUATION\" : \"\",\n      parameters.numLightProbes > 0 ? \"#define USE_LIGHT_PROBES\" : \"\",\n      parameters.logarithmicDepthBuffer ? \"#define USE_LOGDEPTHBUF\" : \"\",\n      parameters.reverseDepthBuffer ? \"#define USE_REVERSEDEPTHBUF\" : \"\",\n      \"uniform mat4 modelMatrix;\",\n      \"uniform mat4 modelViewMatrix;\",\n      \"uniform mat4 projectionMatrix;\",\n      \"uniform mat4 viewMatrix;\",\n      \"uniform mat3 normalMatrix;\",\n      \"uniform vec3 cameraPosition;\",\n      \"uniform bool isOrthographic;\",\n      \"#ifdef USE_INSTANCING\",\n      \"\tattribute mat4 instanceMatrix;\",\n      \"#endif\",\n      \"#ifdef USE_INSTANCING_COLOR\",\n      \"\tattribute vec3 instanceColor;\",\n      \"#endif\",\n      \"#ifdef USE_INSTANCING_MORPH\",\n      \"\tuniform sampler2D morphTexture;\",\n      \"#endif\",\n      \"attribute vec3 position;\",\n      \"attribute vec3 normal;\",\n      \"attribute vec2 uv;\",\n      \"#ifdef USE_UV1\",\n      \"\tattribute vec2 uv1;\",\n      \"#endif\",\n      \"#ifdef USE_UV2\",\n      \"\tattribute vec2 uv2;\",\n      \"#endif\",\n      \"#ifdef USE_UV3\",\n      \"\tattribute vec2 uv3;\",\n      \"#endif\",\n      \"#ifdef USE_TANGENT\",\n      \"\tattribute vec4 tangent;\",\n      \"#endif\",\n      \"#if defined( USE_COLOR_ALPHA )\",\n      \"\tattribute vec4 color;\",\n      \"#elif defined( USE_COLOR )\",\n      \"\tattribute vec3 color;\",\n      \"#endif\",\n      \"#ifdef USE_SKINNING\",\n      \"\tattribute vec4 skinIndex;\",\n      \"\tattribute vec4 skinWeight;\",\n      \"#endif\",\n      \"\\n\"\n    ].filter(filterEmptyLine).join(\"\\n\");\n    prefixFragment = [\n      generatePrecision(parameters),\n      \"#define SHADER_TYPE \" + parameters.shaderType,\n      \"#define SHADER_NAME \" + parameters.shaderName,\n      customDefines,\n      parameters.useFog && parameters.fog ? \"#define USE_FOG\" : \"\",\n      parameters.useFog && parameters.fogExp2 ? \"#define FOG_EXP2\" : \"\",\n      parameters.alphaToCoverage ? \"#define ALPHA_TO_COVERAGE\" : \"\",\n      parameters.map ? \"#define USE_MAP\" : \"\",\n      parameters.matcap ? \"#define USE_MATCAP\" : \"\",\n      parameters.envMap ? \"#define USE_ENVMAP\" : \"\",\n      parameters.envMap ? \"#define \" + envMapTypeDefine : \"\",\n      parameters.envMap ? \"#define \" + envMapModeDefine : \"\",\n      parameters.envMap ? \"#define \" + envMapBlendingDefine : \"\",\n      envMapCubeUVSize ? \"#define CUBEUV_TEXEL_WIDTH \" + envMapCubeUVSize.texelWidth : \"\",\n      envMapCubeUVSize ? \"#define CUBEUV_TEXEL_HEIGHT \" + envMapCubeUVSize.texelHeight : \"\",\n      envMapCubeUVSize ? \"#define CUBEUV_MAX_MIP \" + envMapCubeUVSize.maxMip + \".0\" : \"\",\n      parameters.lightMap ? \"#define USE_LIGHTMAP\" : \"\",\n      parameters.aoMap ? \"#define USE_AOMAP\" : \"\",\n      parameters.bumpMap ? \"#define USE_BUMPMAP\" : \"\",\n      parameters.normalMap ? \"#define USE_NORMALMAP\" : \"\",\n      parameters.normalMapObjectSpace ? \"#define USE_NORMALMAP_OBJECTSPACE\" : \"\",\n      parameters.normalMapTangentSpace ? \"#define USE_NORMALMAP_TANGENTSPACE\" : \"\",\n      parameters.emissiveMap ? \"#define USE_EMISSIVEMAP\" : \"\",\n      parameters.anisotropy ? \"#define USE_ANISOTROPY\" : \"\",\n      parameters.anisotropyMap ? \"#define USE_ANISOTROPYMAP\" : \"\",\n      parameters.clearcoat ? \"#define USE_CLEARCOAT\" : \"\",\n      parameters.clearcoatMap ? \"#define USE_CLEARCOATMAP\" : \"\",\n      parameters.clearcoatRoughnessMap ? \"#define USE_CLEARCOAT_ROUGHNESSMAP\" : \"\",\n      parameters.clearcoatNormalMap ? \"#define USE_CLEARCOAT_NORMALMAP\" : \"\",\n      parameters.dispersion ? \"#define USE_DISPERSION\" : \"\",\n      parameters.iridescence ? \"#define USE_IRIDESCENCE\" : \"\",\n      parameters.iridescenceMap ? \"#define USE_IRIDESCENCEMAP\" : \"\",\n      parameters.iridescenceThicknessMap ? \"#define USE_IRIDESCENCE_THICKNESSMAP\" : \"\",\n      parameters.specularMap ? \"#define USE_SPECULARMAP\" : \"\",\n      parameters.specularColorMap ? \"#define USE_SPECULAR_COLORMAP\" : \"\",\n      parameters.specularIntensityMap ? \"#define USE_SPECULAR_INTENSITYMAP\" : \"\",\n      parameters.roughnessMap ? \"#define USE_ROUGHNESSMAP\" : \"\",\n      parameters.metalnessMap ? \"#define USE_METALNESSMAP\" : \"\",\n      parameters.alphaMap ? \"#define USE_ALPHAMAP\" : \"\",\n      parameters.alphaTest ? \"#define USE_ALPHATEST\" : \"\",\n      parameters.alphaHash ? \"#define USE_ALPHAHASH\" : \"\",\n      parameters.sheen ? \"#define USE_SHEEN\" : \"\",\n      parameters.sheenColorMap ? \"#define USE_SHEEN_COLORMAP\" : \"\",\n      parameters.sheenRoughnessMap ? \"#define USE_SHEEN_ROUGHNESSMAP\" : \"\",\n      parameters.transmission ? \"#define USE_TRANSMISSION\" : \"\",\n      parameters.transmissionMap ? \"#define USE_TRANSMISSIONMAP\" : \"\",\n      parameters.thicknessMap ? \"#define USE_THICKNESSMAP\" : \"\",\n      parameters.vertexTangents && parameters.flatShading === false ? \"#define USE_TANGENT\" : \"\",\n      parameters.vertexColors || parameters.instancingColor || parameters.batchingColor ? \"#define USE_COLOR\" : \"\",\n      parameters.vertexAlphas ? \"#define USE_COLOR_ALPHA\" : \"\",\n      parameters.vertexUv1s ? \"#define USE_UV1\" : \"\",\n      parameters.vertexUv2s ? \"#define USE_UV2\" : \"\",\n      parameters.vertexUv3s ? \"#define USE_UV3\" : \"\",\n      parameters.pointsUvs ? \"#define USE_POINTS_UV\" : \"\",\n      parameters.gradientMap ? \"#define USE_GRADIENTMAP\" : \"\",\n      parameters.flatShading ? \"#define FLAT_SHADED\" : \"\",\n      parameters.doubleSided ? \"#define DOUBLE_SIDED\" : \"\",\n      parameters.flipSided ? \"#define FLIP_SIDED\" : \"\",\n      parameters.shadowMapEnabled ? \"#define USE_SHADOWMAP\" : \"\",\n      parameters.shadowMapEnabled ? \"#define \" + shadowMapTypeDefine : \"\",\n      parameters.premultipliedAlpha ? \"#define PREMULTIPLIED_ALPHA\" : \"\",\n      parameters.numLightProbes > 0 ? \"#define USE_LIGHT_PROBES\" : \"\",\n      parameters.decodeVideoTexture ? \"#define DECODE_VIDEO_TEXTURE\" : \"\",\n      parameters.logarithmicDepthBuffer ? \"#define USE_LOGDEPTHBUF\" : \"\",\n      parameters.reverseDepthBuffer ? \"#define USE_REVERSEDEPTHBUF\" : \"\",\n      \"uniform mat4 viewMatrix;\",\n      \"uniform vec3 cameraPosition;\",\n      \"uniform bool isOrthographic;\",\n      parameters.toneMapping !== NoToneMapping ? \"#define TONE_MAPPING\" : \"\",\n      parameters.toneMapping !== NoToneMapping ? ShaderChunk[\"tonemapping_pars_fragment\"] : \"\",\n      // this code is required here because it is used by the toneMapping() function defined below\n      parameters.toneMapping !== NoToneMapping ? getToneMappingFunction(\"toneMapping\", parameters.toneMapping) : \"\",\n      parameters.dithering ? \"#define DITHERING\" : \"\",\n      parameters.opaque ? \"#define OPAQUE\" : \"\",\n      ShaderChunk[\"colorspace_pars_fragment\"],\n      // this code is required here because it is used by the various encoding/decoding function defined below\n      getTexelEncodingFunction(\"linearToOutputTexel\", parameters.outputColorSpace),\n      getLuminanceFunction(),\n      parameters.useDepthPacking ? \"#define DEPTH_PACKING \" + parameters.depthPacking : \"\",\n      \"\\n\"\n    ].filter(filterEmptyLine).join(\"\\n\");\n  }\n  vertexShader = resolveIncludes(vertexShader);\n  vertexShader = replaceLightNums(vertexShader, parameters);\n  vertexShader = replaceClippingPlaneNums(vertexShader, parameters);\n  fragmentShader = resolveIncludes(fragmentShader);\n  fragmentShader = replaceLightNums(fragmentShader, parameters);\n  fragmentShader = replaceClippingPlaneNums(fragmentShader, parameters);\n  vertexShader = unrollLoops(vertexShader);\n  fragmentShader = unrollLoops(fragmentShader);\n  if (parameters.isRawShaderMaterial !== true) {\n    versionString = \"#version 300 es\\n\";\n    prefixVertex = [\n      customVertexExtensions,\n      \"#define attribute in\",\n      \"#define varying out\",\n      \"#define texture2D texture\"\n    ].join(\"\\n\") + \"\\n\" + prefixVertex;\n    prefixFragment = [\n      \"#define varying in\",\n      parameters.glslVersion === GLSL3 ? \"\" : \"layout(location = 0) out highp vec4 pc_fragColor;\",\n      parameters.glslVersion === GLSL3 ? \"\" : \"#define gl_FragColor pc_fragColor\",\n      \"#define gl_FragDepthEXT gl_FragDepth\",\n      \"#define texture2D texture\",\n      \"#define textureCube texture\",\n      \"#define texture2DProj textureProj\",\n      \"#define texture2DLodEXT textureLod\",\n      \"#define texture2DProjLodEXT textureProjLod\",\n      \"#define textureCubeLodEXT textureLod\",\n      \"#define texture2DGradEXT textureGrad\",\n      \"#define texture2DProjGradEXT textureProjGrad\",\n      \"#define textureCubeGradEXT textureGrad\"\n    ].join(\"\\n\") + \"\\n\" + prefixFragment;\n  }\n  const vertexGlsl = versionString + prefixVertex + vertexShader;\n  const fragmentGlsl = versionString + prefixFragment + fragmentShader;\n  const glVertexShader = WebGLShader(gl, gl.VERTEX_SHADER, vertexGlsl);\n  const glFragmentShader = WebGLShader(gl, gl.FRAGMENT_SHADER, fragmentGlsl);\n  gl.attachShader(program, glVertexShader);\n  gl.attachShader(program, glFragmentShader);\n  if (parameters.index0AttributeName !== void 0) {\n    gl.bindAttribLocation(program, 0, parameters.index0AttributeName);\n  } else if (parameters.morphTargets === true) {\n    gl.bindAttribLocation(program, 0, \"position\");\n  }\n  gl.linkProgram(program);\n  function onFirstUse(self2) {\n    if (renderer.debug.checkShaderErrors) {\n      const programLog = gl.getProgramInfoLog(program).trim();\n      const vertexLog = gl.getShaderInfoLog(glVertexShader).trim();\n      const fragmentLog = gl.getShaderInfoLog(glFragmentShader).trim();\n      let runnable = true;\n      let haveDiagnostics = true;\n      if (gl.getProgramParameter(program, gl.LINK_STATUS) === false) {\n        runnable = false;\n        if (typeof renderer.debug.onShaderError === \"function\") {\n          renderer.debug.onShaderError(gl, program, glVertexShader, glFragmentShader);\n        } else {\n          const vertexErrors = getShaderErrors(gl, glVertexShader, \"vertex\");\n          const fragmentErrors = getShaderErrors(gl, glFragmentShader, \"fragment\");\n          console.error(\n            \"THREE.WebGLProgram: Shader Error \" + gl.getError() + \" - VALIDATE_STATUS \" + gl.getProgramParameter(program, gl.VALIDATE_STATUS) + \"\\n\\nMaterial Name: \" + self2.name + \"\\nMaterial Type: \" + self2.type + \"\\n\\nProgram Info Log: \" + programLog + \"\\n\" + vertexErrors + \"\\n\" + fragmentErrors\n          );\n        }\n      } else if (programLog !== \"\") {\n        console.warn(\"THREE.WebGLProgram: Program Info Log:\", programLog);\n      } else if (vertexLog === \"\" || fragmentLog === \"\") {\n        haveDiagnostics = false;\n      }\n      if (haveDiagnostics) {\n        self2.diagnostics = {\n          runnable,\n          programLog,\n          vertexShader: {\n            log: vertexLog,\n            prefix: prefixVertex\n          },\n          fragmentShader: {\n            log: fragmentLog,\n            prefix: prefixFragment\n          }\n        };\n      }\n    }\n    gl.deleteShader(glVertexShader);\n    gl.deleteShader(glFragmentShader);\n    cachedUniforms = new WebGLUniforms(gl, program);\n    cachedAttributes = fetchAttributeLocations(gl, program);\n  }\n  let cachedUniforms;\n  this.getUniforms = function() {\n    if (cachedUniforms === void 0) {\n      onFirstUse(this);\n    }\n    return cachedUniforms;\n  };\n  let cachedAttributes;\n  this.getAttributes = function() {\n    if (cachedAttributes === void 0) {\n      onFirstUse(this);\n    }\n    return cachedAttributes;\n  };\n  let programReady = parameters.rendererExtensionParallelShaderCompile === false;\n  this.isReady = function() {\n    if (programReady === false) {\n      programReady = gl.getProgramParameter(program, COMPLETION_STATUS_KHR);\n    }\n    return programReady;\n  };\n  this.destroy = function() {\n    bindingStates.releaseStatesOfProgram(this);\n    gl.deleteProgram(program);\n    this.program = void 0;\n  };\n  this.type = parameters.shaderType;\n  this.name = parameters.shaderName;\n  this.id = programIdCount++;\n  this.cacheKey = cacheKey;\n  this.usedTimes = 1;\n  this.program = program;\n  this.vertexShader = glVertexShader;\n  this.fragmentShader = glFragmentShader;\n  return this;\n}\nvar _id$1 = 0;\nvar WebGLShaderCache = class {\n  constructor() {\n    this.shaderCache = /* @__PURE__ */ new Map();\n    this.materialCache = /* @__PURE__ */ new Map();\n  }\n  update(material) {\n    const vertexShader = material.vertexShader;\n    const fragmentShader = material.fragmentShader;\n    const vertexShaderStage = this._getShaderStage(vertexShader);\n    const fragmentShaderStage = this._getShaderStage(fragmentShader);\n    const materialShaders = this._getShaderCacheForMaterial(material);\n    if (materialShaders.has(vertexShaderStage) === false) {\n      materialShaders.add(vertexShaderStage);\n      vertexShaderStage.usedTimes++;\n    }\n    if (materialShaders.has(fragmentShaderStage) === false) {\n      materialShaders.add(fragmentShaderStage);\n      fragmentShaderStage.usedTimes++;\n    }\n    return this;\n  }\n  remove(material) {\n    const materialShaders = this.materialCache.get(material);\n    for (const shaderStage of materialShaders) {\n      shaderStage.usedTimes--;\n      if (shaderStage.usedTimes === 0) this.shaderCache.delete(shaderStage.code);\n    }\n    this.materialCache.delete(material);\n    return this;\n  }\n  getVertexShaderID(material) {\n    return this._getShaderStage(material.vertexShader).id;\n  }\n  getFragmentShaderID(material) {\n    return this._getShaderStage(material.fragmentShader).id;\n  }\n  dispose() {\n    this.shaderCache.clear();\n    this.materialCache.clear();\n  }\n  _getShaderCacheForMaterial(material) {\n    const cache = this.materialCache;\n    let set = cache.get(material);\n    if (set === void 0) {\n      set = /* @__PURE__ */ new Set();\n      cache.set(material, set);\n    }\n    return set;\n  }\n  _getShaderStage(code) {\n    const cache = this.shaderCache;\n    let stage = cache.get(code);\n    if (stage === void 0) {\n      stage = new WebGLShaderStage(code);\n      cache.set(code, stage);\n    }\n    return stage;\n  }\n};\nvar WebGLShaderStage = class {\n  constructor(code) {\n    this.id = _id$1++;\n    this.code = code;\n    this.usedTimes = 0;\n  }\n};\nfunction WebGLPrograms(renderer, cubemaps, cubeuvmaps, extensions, capabilities, bindingStates, clipping) {\n  const _programLayers = new Layers();\n  const _customShaders = new WebGLShaderCache();\n  const _activeChannels = /* @__PURE__ */ new Set();\n  const programs = [];\n  const logarithmicDepthBuffer = capabilities.logarithmicDepthBuffer;\n  const reverseDepthBuffer = capabilities.reverseDepthBuffer;\n  const SUPPORTS_VERTEX_TEXTURES = capabilities.vertexTextures;\n  let precision = capabilities.precision;\n  const shaderIDs = {\n    MeshDepthMaterial: \"depth\",\n    MeshDistanceMaterial: \"distanceRGBA\",\n    MeshNormalMaterial: \"normal\",\n    MeshBasicMaterial: \"basic\",\n    MeshLambertMaterial: \"lambert\",\n    MeshPhongMaterial: \"phong\",\n    MeshToonMaterial: \"toon\",\n    MeshStandardMaterial: \"physical\",\n    MeshPhysicalMaterial: \"physical\",\n    MeshMatcapMaterial: \"matcap\",\n    LineBasicMaterial: \"basic\",\n    LineDashedMaterial: \"dashed\",\n    PointsMaterial: \"points\",\n    ShadowMaterial: \"shadow\",\n    SpriteMaterial: \"sprite\"\n  };\n  function getChannel(value) {\n    _activeChannels.add(value);\n    if (value === 0) return \"uv\";\n    return `uv${value}`;\n  }\n  function getParameters(material, lights, shadows, scene, object) {\n    const fog = scene.fog;\n    const geometry = object.geometry;\n    const environment = material.isMeshStandardMaterial ? scene.environment : null;\n    const envMap = (material.isMeshStandardMaterial ? cubeuvmaps : cubemaps).get(material.envMap || environment);\n    const envMapCubeUVHeight = !!envMap && envMap.mapping === CubeUVReflectionMapping ? envMap.image.height : null;\n    const shaderID = shaderIDs[material.type];\n    if (material.precision !== null) {\n      precision = capabilities.getMaxPrecision(material.precision);\n      if (precision !== material.precision) {\n        console.warn(\"THREE.WebGLProgram.getParameters:\", material.precision, \"not supported, using\", precision, \"instead.\");\n      }\n    }\n    const morphAttribute = geometry.morphAttributes.position || geometry.morphAttributes.normal || geometry.morphAttributes.color;\n    const morphTargetsCount = morphAttribute !== void 0 ? morphAttribute.length : 0;\n    let morphTextureStride = 0;\n    if (geometry.morphAttributes.position !== void 0) morphTextureStride = 1;\n    if (geometry.morphAttributes.normal !== void 0) morphTextureStride = 2;\n    if (geometry.morphAttributes.color !== void 0) morphTextureStride = 3;\n    let vertexShader, fragmentShader;\n    let customVertexShaderID, customFragmentShaderID;\n    if (shaderID) {\n      const shader = ShaderLib[shaderID];\n      vertexShader = shader.vertexShader;\n      fragmentShader = shader.fragmentShader;\n    } else {\n      vertexShader = material.vertexShader;\n      fragmentShader = material.fragmentShader;\n      _customShaders.update(material);\n      customVertexShaderID = _customShaders.getVertexShaderID(material);\n      customFragmentShaderID = _customShaders.getFragmentShaderID(material);\n    }\n    const currentRenderTarget = renderer.getRenderTarget();\n    const IS_INSTANCEDMESH = object.isInstancedMesh === true;\n    const IS_BATCHEDMESH = object.isBatchedMesh === true;\n    const HAS_MAP = !!material.map;\n    const HAS_MATCAP = !!material.matcap;\n    const HAS_ENVMAP = !!envMap;\n    const HAS_AOMAP = !!material.aoMap;\n    const HAS_LIGHTMAP = !!material.lightMap;\n    const HAS_BUMPMAP = !!material.bumpMap;\n    const HAS_NORMALMAP = !!material.normalMap;\n    const HAS_DISPLACEMENTMAP = !!material.displacementMap;\n    const HAS_EMISSIVEMAP = !!material.emissiveMap;\n    const HAS_METALNESSMAP = !!material.metalnessMap;\n    const HAS_ROUGHNESSMAP = !!material.roughnessMap;\n    const HAS_ANISOTROPY = material.anisotropy > 0;\n    const HAS_CLEARCOAT = material.clearcoat > 0;\n    const HAS_DISPERSION = material.dispersion > 0;\n    const HAS_IRIDESCENCE = material.iridescence > 0;\n    const HAS_SHEEN = material.sheen > 0;\n    const HAS_TRANSMISSION = material.transmission > 0;\n    const HAS_ANISOTROPYMAP = HAS_ANISOTROPY && !!material.anisotropyMap;\n    const HAS_CLEARCOATMAP = HAS_CLEARCOAT && !!material.clearcoatMap;\n    const HAS_CLEARCOAT_NORMALMAP = HAS_CLEARCOAT && !!material.clearcoatNormalMap;\n    const HAS_CLEARCOAT_ROUGHNESSMAP = HAS_CLEARCOAT && !!material.clearcoatRoughnessMap;\n    const HAS_IRIDESCENCEMAP = HAS_IRIDESCENCE && !!material.iridescenceMap;\n    const HAS_IRIDESCENCE_THICKNESSMAP = HAS_IRIDESCENCE && !!material.iridescenceThicknessMap;\n    const HAS_SHEEN_COLORMAP = HAS_SHEEN && !!material.sheenColorMap;\n    const HAS_SHEEN_ROUGHNESSMAP = HAS_SHEEN && !!material.sheenRoughnessMap;\n    const HAS_SPECULARMAP = !!material.specularMap;\n    const HAS_SPECULAR_COLORMAP = !!material.specularColorMap;\n    const HAS_SPECULAR_INTENSITYMAP = !!material.specularIntensityMap;\n    const HAS_TRANSMISSIONMAP = HAS_TRANSMISSION && !!material.transmissionMap;\n    const HAS_THICKNESSMAP = HAS_TRANSMISSION && !!material.thicknessMap;\n    const HAS_GRADIENTMAP = !!material.gradientMap;\n    const HAS_ALPHAMAP = !!material.alphaMap;\n    const HAS_ALPHATEST = material.alphaTest > 0;\n    const HAS_ALPHAHASH = !!material.alphaHash;\n    const HAS_EXTENSIONS = !!material.extensions;\n    let toneMapping = NoToneMapping;\n    if (material.toneMapped) {\n      if (currentRenderTarget === null || currentRenderTarget.isXRRenderTarget === true) {\n        toneMapping = renderer.toneMapping;\n      }\n    }\n    const parameters = {\n      shaderID,\n      shaderType: material.type,\n      shaderName: material.name,\n      vertexShader,\n      fragmentShader,\n      defines: material.defines,\n      customVertexShaderID,\n      customFragmentShaderID,\n      isRawShaderMaterial: material.isRawShaderMaterial === true,\n      glslVersion: material.glslVersion,\n      precision,\n      batching: IS_BATCHEDMESH,\n      batchingColor: IS_BATCHEDMESH && object._colorsTexture !== null,\n      instancing: IS_INSTANCEDMESH,\n      instancingColor: IS_INSTANCEDMESH && object.instanceColor !== null,\n      instancingMorph: IS_INSTANCEDMESH && object.morphTexture !== null,\n      supportsVertexTextures: SUPPORTS_VERTEX_TEXTURES,\n      outputColorSpace: currentRenderTarget === null ? renderer.outputColorSpace : currentRenderTarget.isXRRenderTarget === true ? currentRenderTarget.texture.colorSpace : LinearSRGBColorSpace,\n      alphaToCoverage: !!material.alphaToCoverage,\n      map: HAS_MAP,\n      matcap: HAS_MATCAP,\n      envMap: HAS_ENVMAP,\n      envMapMode: HAS_ENVMAP && envMap.mapping,\n      envMapCubeUVHeight,\n      aoMap: HAS_AOMAP,\n      lightMap: HAS_LIGHTMAP,\n      bumpMap: HAS_BUMPMAP,\n      normalMap: HAS_NORMALMAP,\n      displacementMap: SUPPORTS_VERTEX_TEXTURES && HAS_DISPLACEMENTMAP,\n      emissiveMap: HAS_EMISSIVEMAP,\n      normalMapObjectSpace: HAS_NORMALMAP && material.normalMapType === ObjectSpaceNormalMap,\n      normalMapTangentSpace: HAS_NORMALMAP && material.normalMapType === TangentSpaceNormalMap,\n      metalnessMap: HAS_METALNESSMAP,\n      roughnessMap: HAS_ROUGHNESSMAP,\n      anisotropy: HAS_ANISOTROPY,\n      anisotropyMap: HAS_ANISOTROPYMAP,\n      clearcoat: HAS_CLEARCOAT,\n      clearcoatMap: HAS_CLEARCOATMAP,\n      clearcoatNormalMap: HAS_CLEARCOAT_NORMALMAP,\n      clearcoatRoughnessMap: HAS_CLEARCOAT_ROUGHNESSMAP,\n      dispersion: HAS_DISPERSION,\n      iridescence: HAS_IRIDESCENCE,\n      iridescenceMap: HAS_IRIDESCENCEMAP,\n      iridescenceThicknessMap: HAS_IRIDESCENCE_THICKNESSMAP,\n      sheen: HAS_SHEEN,\n      sheenColorMap: HAS_SHEEN_COLORMAP,\n      sheenRoughnessMap: HAS_SHEEN_ROUGHNESSMAP,\n      specularMap: HAS_SPECULARMAP,\n      specularColorMap: HAS_SPECULAR_COLORMAP,\n      specularIntensityMap: HAS_SPECULAR_INTENSITYMAP,\n      transmission: HAS_TRANSMISSION,\n      transmissionMap: HAS_TRANSMISSIONMAP,\n      thicknessMap: HAS_THICKNESSMAP,\n      gradientMap: HAS_GRADIENTMAP,\n      opaque: material.transparent === false && material.blending === NormalBlending && material.alphaToCoverage === false,\n      alphaMap: HAS_ALPHAMAP,\n      alphaTest: HAS_ALPHATEST,\n      alphaHash: HAS_ALPHAHASH,\n      combine: material.combine,\n      //\n      mapUv: HAS_MAP && getChannel(material.map.channel),\n      aoMapUv: HAS_AOMAP && getChannel(material.aoMap.channel),\n      lightMapUv: HAS_LIGHTMAP && getChannel(material.lightMap.channel),\n      bumpMapUv: HAS_BUMPMAP && getChannel(material.bumpMap.channel),\n      normalMapUv: HAS_NORMALMAP && getChannel(material.normalMap.channel),\n      displacementMapUv: HAS_DISPLACEMENTMAP && getChannel(material.displacementMap.channel),\n      emissiveMapUv: HAS_EMISSIVEMAP && getChannel(material.emissiveMap.channel),\n      metalnessMapUv: HAS_METALNESSMAP && getChannel(material.metalnessMap.channel),\n      roughnessMapUv: HAS_ROUGHNESSMAP && getChannel(material.roughnessMap.channel),\n      anisotropyMapUv: HAS_ANISOTROPYMAP && getChannel(material.anisotropyMap.channel),\n      clearcoatMapUv: HAS_CLEARCOATMAP && getChannel(material.clearcoatMap.channel),\n      clearcoatNormalMapUv: HAS_CLEARCOAT_NORMALMAP && getChannel(material.clearcoatNormalMap.channel),\n      clearcoatRoughnessMapUv: HAS_CLEARCOAT_ROUGHNESSMAP && getChannel(material.clearcoatRoughnessMap.channel),\n      iridescenceMapUv: HAS_IRIDESCENCEMAP && getChannel(material.iridescenceMap.channel),\n      iridescenceThicknessMapUv: HAS_IRIDESCENCE_THICKNESSMAP && getChannel(material.iridescenceThicknessMap.channel),\n      sheenColorMapUv: HAS_SHEEN_COLORMAP && getChannel(material.sheenColorMap.channel),\n      sheenRoughnessMapUv: HAS_SHEEN_ROUGHNESSMAP && getChannel(material.sheenRoughnessMap.channel),\n      specularMapUv: HAS_SPECULARMAP && getChannel(material.specularMap.channel),\n      specularColorMapUv: HAS_SPECULAR_COLORMAP && getChannel(material.specularColorMap.channel),\n      specularIntensityMapUv: HAS_SPECULAR_INTENSITYMAP && getChannel(material.specularIntensityMap.channel),\n      transmissionMapUv: HAS_TRANSMISSIONMAP && getChannel(material.transmissionMap.channel),\n      thicknessMapUv: HAS_THICKNESSMAP && getChannel(material.thicknessMap.channel),\n      alphaMapUv: HAS_ALPHAMAP && getChannel(material.alphaMap.channel),\n      //\n      vertexTangents: !!geometry.attributes.tangent && (HAS_NORMALMAP || HAS_ANISOTROPY),\n      vertexColors: material.vertexColors,\n      vertexAlphas: material.vertexColors === true && !!geometry.attributes.color && geometry.attributes.color.itemSize === 4,\n      pointsUvs: object.isPoints === true && !!geometry.attributes.uv && (HAS_MAP || HAS_ALPHAMAP),\n      fog: !!fog,\n      useFog: material.fog === true,\n      fogExp2: !!fog && fog.isFogExp2,\n      flatShading: material.flatShading === true,\n      sizeAttenuation: material.sizeAttenuation === true,\n      logarithmicDepthBuffer,\n      reverseDepthBuffer,\n      skinning: object.isSkinnedMesh === true,\n      morphTargets: geometry.morphAttributes.position !== void 0,\n      morphNormals: geometry.morphAttributes.normal !== void 0,\n      morphColors: geometry.morphAttributes.color !== void 0,\n      morphTargetsCount,\n      morphTextureStride,\n      numDirLights: lights.directional.length,\n      numPointLights: lights.point.length,\n      numSpotLights: lights.spot.length,\n      numSpotLightMaps: lights.spotLightMap.length,\n      numRectAreaLights: lights.rectArea.length,\n      numHemiLights: lights.hemi.length,\n      numDirLightShadows: lights.directionalShadowMap.length,\n      numPointLightShadows: lights.pointShadowMap.length,\n      numSpotLightShadows: lights.spotShadowMap.length,\n      numSpotLightShadowsWithMaps: lights.numSpotLightShadowsWithMaps,\n      numLightProbes: lights.numLightProbes,\n      numClippingPlanes: clipping.numPlanes,\n      numClipIntersection: clipping.numIntersection,\n      dithering: material.dithering,\n      shadowMapEnabled: renderer.shadowMap.enabled && shadows.length > 0,\n      shadowMapType: renderer.shadowMap.type,\n      toneMapping,\n      decodeVideoTexture: HAS_MAP && material.map.isVideoTexture === true && ColorManagement.getTransfer(material.map.colorSpace) === SRGBTransfer,\n      premultipliedAlpha: material.premultipliedAlpha,\n      doubleSided: material.side === DoubleSide,\n      flipSided: material.side === BackSide,\n      useDepthPacking: material.depthPacking >= 0,\n      depthPacking: material.depthPacking || 0,\n      index0AttributeName: material.index0AttributeName,\n      extensionClipCullDistance: HAS_EXTENSIONS && material.extensions.clipCullDistance === true && extensions.has(\"WEBGL_clip_cull_distance\"),\n      extensionMultiDraw: (HAS_EXTENSIONS && material.extensions.multiDraw === true || IS_BATCHEDMESH) && extensions.has(\"WEBGL_multi_draw\"),\n      rendererExtensionParallelShaderCompile: extensions.has(\"KHR_parallel_shader_compile\"),\n      customProgramCacheKey: material.customProgramCacheKey()\n    };\n    parameters.vertexUv1s = _activeChannels.has(1);\n    parameters.vertexUv2s = _activeChannels.has(2);\n    parameters.vertexUv3s = _activeChannels.has(3);\n    _activeChannels.clear();\n    return parameters;\n  }\n  function getProgramCacheKey(parameters) {\n    const array = [];\n    if (parameters.shaderID) {\n      array.push(parameters.shaderID);\n    } else {\n      array.push(parameters.customVertexShaderID);\n      array.push(parameters.customFragmentShaderID);\n    }\n    if (parameters.defines !== void 0) {\n      for (const name in parameters.defines) {\n        array.push(name);\n        array.push(parameters.defines[name]);\n      }\n    }\n    if (parameters.isRawShaderMaterial === false) {\n      getProgramCacheKeyParameters(array, parameters);\n      getProgramCacheKeyBooleans(array, parameters);\n      array.push(renderer.outputColorSpace);\n    }\n    array.push(parameters.customProgramCacheKey);\n    return array.join();\n  }\n  function getProgramCacheKeyParameters(array, parameters) {\n    array.push(parameters.precision);\n    array.push(parameters.outputColorSpace);\n    array.push(parameters.envMapMode);\n    array.push(parameters.envMapCubeUVHeight);\n    array.push(parameters.mapUv);\n    array.push(parameters.alphaMapUv);\n    array.push(parameters.lightMapUv);\n    array.push(parameters.aoMapUv);\n    array.push(parameters.bumpMapUv);\n    array.push(parameters.normalMapUv);\n    array.push(parameters.displacementMapUv);\n    array.push(parameters.emissiveMapUv);\n    array.push(parameters.metalnessMapUv);\n    array.push(parameters.roughnessMapUv);\n    array.push(parameters.anisotropyMapUv);\n    array.push(parameters.clearcoatMapUv);\n    array.push(parameters.clearcoatNormalMapUv);\n    array.push(parameters.clearcoatRoughnessMapUv);\n    array.push(parameters.iridescenceMapUv);\n    array.push(parameters.iridescenceThicknessMapUv);\n    array.push(parameters.sheenColorMapUv);\n    array.push(parameters.sheenRoughnessMapUv);\n    array.push(parameters.specularMapUv);\n    array.push(parameters.specularColorMapUv);\n    array.push(parameters.specularIntensityMapUv);\n    array.push(parameters.transmissionMapUv);\n    array.push(parameters.thicknessMapUv);\n    array.push(parameters.combine);\n    array.push(parameters.fogExp2);\n    array.push(parameters.sizeAttenuation);\n    array.push(parameters.morphTargetsCount);\n    array.push(parameters.morphAttributeCount);\n    array.push(parameters.numDirLights);\n    array.push(parameters.numPointLights);\n    array.push(parameters.numSpotLights);\n    array.push(parameters.numSpotLightMaps);\n    array.push(parameters.numHemiLights);\n    array.push(parameters.numRectAreaLights);\n    array.push(parameters.numDirLightShadows);\n    array.push(parameters.numPointLightShadows);\n    array.push(parameters.numSpotLightShadows);\n    array.push(parameters.numSpotLightShadowsWithMaps);\n    array.push(parameters.numLightProbes);\n    array.push(parameters.shadowMapType);\n    array.push(parameters.toneMapping);\n    array.push(parameters.numClippingPlanes);\n    array.push(parameters.numClipIntersection);\n    array.push(parameters.depthPacking);\n  }\n  function getProgramCacheKeyBooleans(array, parameters) {\n    _programLayers.disableAll();\n    if (parameters.supportsVertexTextures)\n      _programLayers.enable(0);\n    if (parameters.instancing)\n      _programLayers.enable(1);\n    if (parameters.instancingColor)\n      _programLayers.enable(2);\n    if (parameters.instancingMorph)\n      _programLayers.enable(3);\n    if (parameters.matcap)\n      _programLayers.enable(4);\n    if (parameters.envMap)\n      _programLayers.enable(5);\n    if (parameters.normalMapObjectSpace)\n      _programLayers.enable(6);\n    if (parameters.normalMapTangentSpace)\n      _programLayers.enable(7);\n    if (parameters.clearcoat)\n      _programLayers.enable(8);\n    if (parameters.iridescence)\n      _programLayers.enable(9);\n    if (parameters.alphaTest)\n      _programLayers.enable(10);\n    if (parameters.vertexColors)\n      _programLayers.enable(11);\n    if (parameters.vertexAlphas)\n      _programLayers.enable(12);\n    if (parameters.vertexUv1s)\n      _programLayers.enable(13);\n    if (parameters.vertexUv2s)\n      _programLayers.enable(14);\n    if (parameters.vertexUv3s)\n      _programLayers.enable(15);\n    if (parameters.vertexTangents)\n      _programLayers.enable(16);\n    if (parameters.anisotropy)\n      _programLayers.enable(17);\n    if (parameters.alphaHash)\n      _programLayers.enable(18);\n    if (parameters.batching)\n      _programLayers.enable(19);\n    if (parameters.dispersion)\n      _programLayers.enable(20);\n    if (parameters.batchingColor)\n      _programLayers.enable(21);\n    array.push(_programLayers.mask);\n    _programLayers.disableAll();\n    if (parameters.fog)\n      _programLayers.enable(0);\n    if (parameters.useFog)\n      _programLayers.enable(1);\n    if (parameters.flatShading)\n      _programLayers.enable(2);\n    if (parameters.logarithmicDepthBuffer)\n      _programLayers.enable(3);\n    if (parameters.reverseDepthBuffer)\n      _programLayers.enable(4);\n    if (parameters.skinning)\n      _programLayers.enable(5);\n    if (parameters.morphTargets)\n      _programLayers.enable(6);\n    if (parameters.morphNormals)\n      _programLayers.enable(7);\n    if (parameters.morphColors)\n      _programLayers.enable(8);\n    if (parameters.premultipliedAlpha)\n      _programLayers.enable(9);\n    if (parameters.shadowMapEnabled)\n      _programLayers.enable(10);\n    if (parameters.doubleSided)\n      _programLayers.enable(11);\n    if (parameters.flipSided)\n      _programLayers.enable(12);\n    if (parameters.useDepthPacking)\n      _programLayers.enable(13);\n    if (parameters.dithering)\n      _programLayers.enable(14);\n    if (parameters.transmission)\n      _programLayers.enable(15);\n    if (parameters.sheen)\n      _programLayers.enable(16);\n    if (parameters.opaque)\n      _programLayers.enable(17);\n    if (parameters.pointsUvs)\n      _programLayers.enable(18);\n    if (parameters.decodeVideoTexture)\n      _programLayers.enable(19);\n    if (parameters.alphaToCoverage)\n      _programLayers.enable(20);\n    array.push(_programLayers.mask);\n  }\n  function getUniforms(material) {\n    const shaderID = shaderIDs[material.type];\n    let uniforms;\n    if (shaderID) {\n      const shader = ShaderLib[shaderID];\n      uniforms = UniformsUtils.clone(shader.uniforms);\n    } else {\n      uniforms = material.uniforms;\n    }\n    return uniforms;\n  }\n  function acquireProgram(parameters, cacheKey) {\n    let program;\n    for (let p = 0, pl = programs.length; p < pl; p++) {\n      const preexistingProgram = programs[p];\n      if (preexistingProgram.cacheKey === cacheKey) {\n        program = preexistingProgram;\n        ++program.usedTimes;\n        break;\n      }\n    }\n    if (program === void 0) {\n      program = new WebGLProgram(renderer, cacheKey, parameters, bindingStates);\n      programs.push(program);\n    }\n    return program;\n  }\n  function releaseProgram(program) {\n    if (--program.usedTimes === 0) {\n      const i = programs.indexOf(program);\n      programs[i] = programs[programs.length - 1];\n      programs.pop();\n      program.destroy();\n    }\n  }\n  function releaseShaderCache(material) {\n    _customShaders.remove(material);\n  }\n  function dispose() {\n    _customShaders.dispose();\n  }\n  return {\n    getParameters,\n    getProgramCacheKey,\n    getUniforms,\n    acquireProgram,\n    releaseProgram,\n    releaseShaderCache,\n    // Exposed for resource monitoring & error feedback via renderer.info:\n    programs,\n    dispose\n  };\n}\nfunction WebGLProperties() {\n  let properties = /* @__PURE__ */ new WeakMap();\n  function has(object) {\n    return properties.has(object);\n  }\n  function get(object) {\n    let map = properties.get(object);\n    if (map === void 0) {\n      map = {};\n      properties.set(object, map);\n    }\n    return map;\n  }\n  function remove(object) {\n    properties.delete(object);\n  }\n  function update(object, key, value) {\n    properties.get(object)[key] = value;\n  }\n  function dispose() {\n    properties = /* @__PURE__ */ new WeakMap();\n  }\n  return {\n    has,\n    get,\n    remove,\n    update,\n    dispose\n  };\n}\nfunction painterSortStable(a, b) {\n  if (a.groupOrder !== b.groupOrder) {\n    return a.groupOrder - b.groupOrder;\n  } else if (a.renderOrder !== b.renderOrder) {\n    return a.renderOrder - b.renderOrder;\n  } else if (a.material.id !== b.material.id) {\n    return a.material.id - b.material.id;\n  } else if (a.z !== b.z) {\n    return a.z - b.z;\n  } else {\n    return a.id - b.id;\n  }\n}\nfunction reversePainterSortStable(a, b) {\n  if (a.groupOrder !== b.groupOrder) {\n    return a.groupOrder - b.groupOrder;\n  } else if (a.renderOrder !== b.renderOrder) {\n    return a.renderOrder - b.renderOrder;\n  } else if (a.z !== b.z) {\n    return b.z - a.z;\n  } else {\n    return a.id - b.id;\n  }\n}\nfunction WebGLRenderList() {\n  const renderItems = [];\n  let renderItemsIndex = 0;\n  const opaque = [];\n  const transmissive = [];\n  const transparent = [];\n  function init() {\n    renderItemsIndex = 0;\n    opaque.length = 0;\n    transmissive.length = 0;\n    transparent.length = 0;\n  }\n  function getNextRenderItem(object, geometry, material, groupOrder, z, group) {\n    let renderItem = renderItems[renderItemsIndex];\n    if (renderItem === void 0) {\n      renderItem = {\n        id: object.id,\n        object,\n        geometry,\n        material,\n        groupOrder,\n        renderOrder: object.renderOrder,\n        z,\n        group\n      };\n      renderItems[renderItemsIndex] = renderItem;\n    } else {\n      renderItem.id = object.id;\n      renderItem.object = object;\n      renderItem.geometry = geometry;\n      renderItem.material = material;\n      renderItem.groupOrder = groupOrder;\n      renderItem.renderOrder = object.renderOrder;\n      renderItem.z = z;\n      renderItem.group = group;\n    }\n    renderItemsIndex++;\n    return renderItem;\n  }\n  function push(object, geometry, material, groupOrder, z, group) {\n    const renderItem = getNextRenderItem(object, geometry, material, groupOrder, z, group);\n    if (material.transmission > 0) {\n      transmissive.push(renderItem);\n    } else if (material.transparent === true) {\n      transparent.push(renderItem);\n    } else {\n      opaque.push(renderItem);\n    }\n  }\n  function unshift(object, geometry, material, groupOrder, z, group) {\n    const renderItem = getNextRenderItem(object, geometry, material, groupOrder, z, group);\n    if (material.transmission > 0) {\n      transmissive.unshift(renderItem);\n    } else if (material.transparent === true) {\n      transparent.unshift(renderItem);\n    } else {\n      opaque.unshift(renderItem);\n    }\n  }\n  function sort(customOpaqueSort, customTransparentSort) {\n    if (opaque.length > 1) opaque.sort(customOpaqueSort || painterSortStable);\n    if (transmissive.length > 1) transmissive.sort(customTransparentSort || reversePainterSortStable);\n    if (transparent.length > 1) transparent.sort(customTransparentSort || reversePainterSortStable);\n  }\n  function finish() {\n    for (let i = renderItemsIndex, il = renderItems.length; i < il; i++) {\n      const renderItem = renderItems[i];\n      if (renderItem.id === null) break;\n      renderItem.id = null;\n      renderItem.object = null;\n      renderItem.geometry = null;\n      renderItem.material = null;\n      renderItem.group = null;\n    }\n  }\n  return {\n    opaque,\n    transmissive,\n    transparent,\n    init,\n    push,\n    unshift,\n    finish,\n    sort\n  };\n}\nfunction WebGLRenderLists() {\n  let lists = /* @__PURE__ */ new WeakMap();\n  function get(scene, renderCallDepth) {\n    const listArray = lists.get(scene);\n    let list;\n    if (listArray === void 0) {\n      list = new WebGLRenderList();\n      lists.set(scene, [list]);\n    } else {\n      if (renderCallDepth >= listArray.length) {\n        list = new WebGLRenderList();\n        listArray.push(list);\n      } else {\n        list = listArray[renderCallDepth];\n      }\n    }\n    return list;\n  }\n  function dispose() {\n    lists = /* @__PURE__ */ new WeakMap();\n  }\n  return {\n    get,\n    dispose\n  };\n}\nfunction UniformsCache() {\n  const lights = {};\n  return {\n    get: function(light) {\n      if (lights[light.id] !== void 0) {\n        return lights[light.id];\n      }\n      let uniforms;\n      switch (light.type) {\n        case \"DirectionalLight\":\n          uniforms = {\n            direction: new Vector3(),\n            color: new Color()\n          };\n          break;\n        case \"SpotLight\":\n          uniforms = {\n            position: new Vector3(),\n            direction: new Vector3(),\n            color: new Color(),\n            distance: 0,\n            coneCos: 0,\n            penumbraCos: 0,\n            decay: 0\n          };\n          break;\n        case \"PointLight\":\n          uniforms = {\n            position: new Vector3(),\n            color: new Color(),\n            distance: 0,\n            decay: 0\n          };\n          break;\n        case \"HemisphereLight\":\n          uniforms = {\n            direction: new Vector3(),\n            skyColor: new Color(),\n            groundColor: new Color()\n          };\n          break;\n        case \"RectAreaLight\":\n          uniforms = {\n            color: new Color(),\n            position: new Vector3(),\n            halfWidth: new Vector3(),\n            halfHeight: new Vector3()\n          };\n          break;\n      }\n      lights[light.id] = uniforms;\n      return uniforms;\n    }\n  };\n}\nfunction ShadowUniformsCache() {\n  const lights = {};\n  return {\n    get: function(light) {\n      if (lights[light.id] !== void 0) {\n        return lights[light.id];\n      }\n      let uniforms;\n      switch (light.type) {\n        case \"DirectionalLight\":\n          uniforms = {\n            shadowIntensity: 1,\n            shadowBias: 0,\n            shadowNormalBias: 0,\n            shadowRadius: 1,\n            shadowMapSize: new Vector2()\n          };\n          break;\n        case \"SpotLight\":\n          uniforms = {\n            shadowIntensity: 1,\n            shadowBias: 0,\n            shadowNormalBias: 0,\n            shadowRadius: 1,\n            shadowMapSize: new Vector2()\n          };\n          break;\n        case \"PointLight\":\n          uniforms = {\n            shadowIntensity: 1,\n            shadowBias: 0,\n            shadowNormalBias: 0,\n            shadowRadius: 1,\n            shadowMapSize: new Vector2(),\n            shadowCameraNear: 1,\n            shadowCameraFar: 1e3\n          };\n          break;\n      }\n      lights[light.id] = uniforms;\n      return uniforms;\n    }\n  };\n}\nvar nextVersion = 0;\nfunction shadowCastingAndTexturingLightsFirst(lightA, lightB) {\n  return (lightB.castShadow ? 2 : 0) - (lightA.castShadow ? 2 : 0) + (lightB.map ? 1 : 0) - (lightA.map ? 1 : 0);\n}\nfunction WebGLLights(extensions) {\n  const cache = new UniformsCache();\n  const shadowCache = ShadowUniformsCache();\n  const state = {\n    version: 0,\n    hash: {\n      directionalLength: -1,\n      pointLength: -1,\n      spotLength: -1,\n      rectAreaLength: -1,\n      hemiLength: -1,\n      numDirectionalShadows: -1,\n      numPointShadows: -1,\n      numSpotShadows: -1,\n      numSpotMaps: -1,\n      numLightProbes: -1\n    },\n    ambient: [0, 0, 0],\n    probe: [],\n    directional: [],\n    directionalShadow: [],\n    directionalShadowMap: [],\n    directionalShadowMatrix: [],\n    spot: [],\n    spotLightMap: [],\n    spotShadow: [],\n    spotShadowMap: [],\n    spotLightMatrix: [],\n    rectArea: [],\n    rectAreaLTC1: null,\n    rectAreaLTC2: null,\n    point: [],\n    pointShadow: [],\n    pointShadowMap: [],\n    pointShadowMatrix: [],\n    hemi: [],\n    numSpotLightShadowsWithMaps: 0,\n    numLightProbes: 0\n  };\n  for (let i = 0; i < 9; i++) state.probe.push(new Vector3());\n  const vector3 = new Vector3();\n  const matrix4 = new Matrix4();\n  const matrix42 = new Matrix4();\n  function setup(lights) {\n    let r = 0, g = 0, b = 0;\n    for (let i = 0; i < 9; i++) state.probe[i].set(0, 0, 0);\n    let directionalLength = 0;\n    let pointLength = 0;\n    let spotLength = 0;\n    let rectAreaLength = 0;\n    let hemiLength = 0;\n    let numDirectionalShadows = 0;\n    let numPointShadows = 0;\n    let numSpotShadows = 0;\n    let numSpotMaps = 0;\n    let numSpotShadowsWithMaps = 0;\n    let numLightProbes = 0;\n    lights.sort(shadowCastingAndTexturingLightsFirst);\n    for (let i = 0, l = lights.length; i < l; i++) {\n      const light = lights[i];\n      const color = light.color;\n      const intensity = light.intensity;\n      const distance = light.distance;\n      const shadowMap = light.shadow && light.shadow.map ? light.shadow.map.texture : null;\n      if (light.isAmbientLight) {\n        r += color.r * intensity;\n        g += color.g * intensity;\n        b += color.b * intensity;\n      } else if (light.isLightProbe) {\n        for (let j = 0; j < 9; j++) {\n          state.probe[j].addScaledVector(light.sh.coefficients[j], intensity);\n        }\n        numLightProbes++;\n      } else if (light.isDirectionalLight) {\n        const uniforms = cache.get(light);\n        uniforms.color.copy(light.color).multiplyScalar(light.intensity);\n        if (light.castShadow) {\n          const shadow = light.shadow;\n          const shadowUniforms = shadowCache.get(light);\n          shadowUniforms.shadowIntensity = shadow.intensity;\n          shadowUniforms.shadowBias = shadow.bias;\n          shadowUniforms.shadowNormalBias = shadow.normalBias;\n          shadowUniforms.shadowRadius = shadow.radius;\n          shadowUniforms.shadowMapSize = shadow.mapSize;\n          state.directionalShadow[directionalLength] = shadowUniforms;\n          state.directionalShadowMap[directionalLength] = shadowMap;\n          state.directionalShadowMatrix[directionalLength] = light.shadow.matrix;\n          numDirectionalShadows++;\n        }\n        state.directional[directionalLength] = uniforms;\n        directionalLength++;\n      } else if (light.isSpotLight) {\n        const uniforms = cache.get(light);\n        uniforms.position.setFromMatrixPosition(light.matrixWorld);\n        uniforms.color.copy(color).multiplyScalar(intensity);\n        uniforms.distance = distance;\n        uniforms.coneCos = Math.cos(light.angle);\n        uniforms.penumbraCos = Math.cos(light.angle * (1 - light.penumbra));\n        uniforms.decay = light.decay;\n        state.spot[spotLength] = uniforms;\n        const shadow = light.shadow;\n        if (light.map) {\n          state.spotLightMap[numSpotMaps] = light.map;\n          numSpotMaps++;\n          shadow.updateMatrices(light);\n          if (light.castShadow) numSpotShadowsWithMaps++;\n        }\n        state.spotLightMatrix[spotLength] = shadow.matrix;\n        if (light.castShadow) {\n          const shadowUniforms = shadowCache.get(light);\n          shadowUniforms.shadowIntensity = shadow.intensity;\n          shadowUniforms.shadowBias = shadow.bias;\n          shadowUniforms.shadowNormalBias = shadow.normalBias;\n          shadowUniforms.shadowRadius = shadow.radius;\n          shadowUniforms.shadowMapSize = shadow.mapSize;\n          state.spotShadow[spotLength] = shadowUniforms;\n          state.spotShadowMap[spotLength] = shadowMap;\n          numSpotShadows++;\n        }\n        spotLength++;\n      } else if (light.isRectAreaLight) {\n        const uniforms = cache.get(light);\n        uniforms.color.copy(color).multiplyScalar(intensity);\n        uniforms.halfWidth.set(light.width * 0.5, 0, 0);\n        uniforms.halfHeight.set(0, light.height * 0.5, 0);\n        state.rectArea[rectAreaLength] = uniforms;\n        rectAreaLength++;\n      } else if (light.isPointLight) {\n        const uniforms = cache.get(light);\n        uniforms.color.copy(light.color).multiplyScalar(light.intensity);\n        uniforms.distance = light.distance;\n        uniforms.decay = light.decay;\n        if (light.castShadow) {\n          const shadow = light.shadow;\n          const shadowUniforms = shadowCache.get(light);\n          shadowUniforms.shadowIntensity = shadow.intensity;\n          shadowUniforms.shadowBias = shadow.bias;\n          shadowUniforms.shadowNormalBias = shadow.normalBias;\n          shadowUniforms.shadowRadius = shadow.radius;\n          shadowUniforms.shadowMapSize = shadow.mapSize;\n          shadowUniforms.shadowCameraNear = shadow.camera.near;\n          shadowUniforms.shadowCameraFar = shadow.camera.far;\n          state.pointShadow[pointLength] = shadowUniforms;\n          state.pointShadowMap[pointLength] = shadowMap;\n          state.pointShadowMatrix[pointLength] = light.shadow.matrix;\n          numPointShadows++;\n        }\n        state.point[pointLength] = uniforms;\n        pointLength++;\n      } else if (light.isHemisphereLight) {\n        const uniforms = cache.get(light);\n        uniforms.skyColor.copy(light.color).multiplyScalar(intensity);\n        uniforms.groundColor.copy(light.groundColor).multiplyScalar(intensity);\n        state.hemi[hemiLength] = uniforms;\n        hemiLength++;\n      }\n    }\n    if (rectAreaLength > 0) {\n      if (extensions.has(\"OES_texture_float_linear\") === true) {\n        state.rectAreaLTC1 = UniformsLib.LTC_FLOAT_1;\n        state.rectAreaLTC2 = UniformsLib.LTC_FLOAT_2;\n      } else {\n        state.rectAreaLTC1 = UniformsLib.LTC_HALF_1;\n        state.rectAreaLTC2 = UniformsLib.LTC_HALF_2;\n      }\n    }\n    state.ambient[0] = r;\n    state.ambient[1] = g;\n    state.ambient[2] = b;\n    const hash = state.hash;\n    if (hash.directionalLength !== directionalLength || hash.pointLength !== pointLength || hash.spotLength !== spotLength || hash.rectAreaLength !== rectAreaLength || hash.hemiLength !== hemiLength || hash.numDirectionalShadows !== numDirectionalShadows || hash.numPointShadows !== numPointShadows || hash.numSpotShadows !== numSpotShadows || hash.numSpotMaps !== numSpotMaps || hash.numLightProbes !== numLightProbes) {\n      state.directional.length = directionalLength;\n      state.spot.length = spotLength;\n      state.rectArea.length = rectAreaLength;\n      state.point.length = pointLength;\n      state.hemi.length = hemiLength;\n      state.directionalShadow.length = numDirectionalShadows;\n      state.directionalShadowMap.length = numDirectionalShadows;\n      state.pointShadow.length = numPointShadows;\n      state.pointShadowMap.length = numPointShadows;\n      state.spotShadow.length = numSpotShadows;\n      state.spotShadowMap.length = numSpotShadows;\n      state.directionalShadowMatrix.length = numDirectionalShadows;\n      state.pointShadowMatrix.length = numPointShadows;\n      state.spotLightMatrix.length = numSpotShadows + numSpotMaps - numSpotShadowsWithMaps;\n      state.spotLightMap.length = numSpotMaps;\n      state.numSpotLightShadowsWithMaps = numSpotShadowsWithMaps;\n      state.numLightProbes = numLightProbes;\n      hash.directionalLength = directionalLength;\n      hash.pointLength = pointLength;\n      hash.spotLength = spotLength;\n      hash.rectAreaLength = rectAreaLength;\n      hash.hemiLength = hemiLength;\n      hash.numDirectionalShadows = numDirectionalShadows;\n      hash.numPointShadows = numPointShadows;\n      hash.numSpotShadows = numSpotShadows;\n      hash.numSpotMaps = numSpotMaps;\n      hash.numLightProbes = numLightProbes;\n      state.version = nextVersion++;\n    }\n  }\n  function setupView(lights, camera) {\n    let directionalLength = 0;\n    let pointLength = 0;\n    let spotLength = 0;\n    let rectAreaLength = 0;\n    let hemiLength = 0;\n    const viewMatrix = camera.matrixWorldInverse;\n    for (let i = 0, l = lights.length; i < l; i++) {\n      const light = lights[i];\n      if (light.isDirectionalLight) {\n        const uniforms = state.directional[directionalLength];\n        uniforms.direction.setFromMatrixPosition(light.matrixWorld);\n        vector3.setFromMatrixPosition(light.target.matrixWorld);\n        uniforms.direction.sub(vector3);\n        uniforms.direction.transformDirection(viewMatrix);\n        directionalLength++;\n      } else if (light.isSpotLight) {\n        const uniforms = state.spot[spotLength];\n        uniforms.position.setFromMatrixPosition(light.matrixWorld);\n        uniforms.position.applyMatrix4(viewMatrix);\n        uniforms.direction.setFromMatrixPosition(light.matrixWorld);\n        vector3.setFromMatrixPosition(light.target.matrixWorld);\n        uniforms.direction.sub(vector3);\n        uniforms.direction.transformDirection(viewMatrix);\n        spotLength++;\n      } else if (light.isRectAreaLight) {\n        const uniforms = state.rectArea[rectAreaLength];\n        uniforms.position.setFromMatrixPosition(light.matrixWorld);\n        uniforms.position.applyMatrix4(viewMatrix);\n        matrix42.identity();\n        matrix4.copy(light.matrixWorld);\n        matrix4.premultiply(viewMatrix);\n        matrix42.extractRotation(matrix4);\n        uniforms.halfWidth.set(light.width * 0.5, 0, 0);\n        uniforms.halfHeight.set(0, light.height * 0.5, 0);\n        uniforms.halfWidth.applyMatrix4(matrix42);\n        uniforms.halfHeight.applyMatrix4(matrix42);\n        rectAreaLength++;\n      } else if (light.isPointLight) {\n        const uniforms = state.point[pointLength];\n        uniforms.position.setFromMatrixPosition(light.matrixWorld);\n        uniforms.position.applyMatrix4(viewMatrix);\n        pointLength++;\n      } else if (light.isHemisphereLight) {\n        const uniforms = state.hemi[hemiLength];\n        uniforms.direction.setFromMatrixPosition(light.matrixWorld);\n        uniforms.direction.transformDirection(viewMatrix);\n        hemiLength++;\n      }\n    }\n  }\n  return {\n    setup,\n    setupView,\n    state\n  };\n}\nfunction WebGLRenderState(extensions) {\n  const lights = new WebGLLights(extensions);\n  const lightsArray = [];\n  const shadowsArray = [];\n  function init(camera) {\n    state.camera = camera;\n    lightsArray.length = 0;\n    shadowsArray.length = 0;\n  }\n  function pushLight(light) {\n    lightsArray.push(light);\n  }\n  function pushShadow(shadowLight) {\n    shadowsArray.push(shadowLight);\n  }\n  function setupLights() {\n    lights.setup(lightsArray);\n  }\n  function setupLightsView(camera) {\n    lights.setupView(lightsArray, camera);\n  }\n  const state = {\n    lightsArray,\n    shadowsArray,\n    camera: null,\n    lights,\n    transmissionRenderTarget: {}\n  };\n  return {\n    init,\n    state,\n    setupLights,\n    setupLightsView,\n    pushLight,\n    pushShadow\n  };\n}\nfunction WebGLRenderStates(extensions) {\n  let renderStates = /* @__PURE__ */ new WeakMap();\n  function get(scene, renderCallDepth = 0) {\n    const renderStateArray = renderStates.get(scene);\n    let renderState;\n    if (renderStateArray === void 0) {\n      renderState = new WebGLRenderState(extensions);\n      renderStates.set(scene, [renderState]);\n    } else {\n      if (renderCallDepth >= renderStateArray.length) {\n        renderState = new WebGLRenderState(extensions);\n        renderStateArray.push(renderState);\n      } else {\n        renderState = renderStateArray[renderCallDepth];\n      }\n    }\n    return renderState;\n  }\n  function dispose() {\n    renderStates = /* @__PURE__ */ new WeakMap();\n  }\n  return {\n    get,\n    dispose\n  };\n}\nvar MeshDepthMaterial = class extends Material {\n  constructor(parameters) {\n    super();\n    this.isMeshDepthMaterial = true;\n    this.type = \"MeshDepthMaterial\";\n    this.depthPacking = BasicDepthPacking;\n    this.map = null;\n    this.alphaMap = null;\n    this.displacementMap = null;\n    this.displacementScale = 1;\n    this.displacementBias = 0;\n    this.wireframe = false;\n    this.wireframeLinewidth = 1;\n    this.setValues(parameters);\n  }\n  copy(source) {\n    super.copy(source);\n    this.depthPacking = source.depthPacking;\n    this.map = source.map;\n    this.alphaMap = source.alphaMap;\n    this.displacementMap = source.displacementMap;\n    this.displacementScale = source.displacementScale;\n    this.displacementBias = source.displacementBias;\n    this.wireframe = source.wireframe;\n    this.wireframeLinewidth = source.wireframeLinewidth;\n    return this;\n  }\n};\nvar MeshDistanceMaterial = class extends Material {\n  constructor(parameters) {\n    super();\n    this.isMeshDistanceMaterial = true;\n    this.type = \"MeshDistanceMaterial\";\n    this.map = null;\n    this.alphaMap = null;\n    this.displacementMap = null;\n    this.displacementScale = 1;\n    this.displacementBias = 0;\n    this.setValues(parameters);\n  }\n  copy(source) {\n    super.copy(source);\n    this.map = source.map;\n    this.alphaMap = source.alphaMap;\n    this.displacementMap = source.displacementMap;\n    this.displacementScale = source.displacementScale;\n    this.displacementBias = source.displacementBias;\n    return this;\n  }\n};\nvar vertex = \"void main() {\\n\tgl_Position = vec4( position, 1.0 );\\n}\";\nvar fragment = \"uniform sampler2D shadow_pass;\\nuniform vec2 resolution;\\nuniform float radius;\\n#include <packing>\\nvoid main() {\\n\tconst float samples = float( VSM_SAMPLES );\\n\tfloat mean = 0.0;\\n\tfloat squared_mean = 0.0;\\n\tfloat uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 );\\n\tfloat uvStart = samples <= 1.0 ? 0.0 : - 1.0;\\n\tfor ( float i = 0.0; i < samples; i ++ ) {\\n\t\tfloat uvOffset = uvStart + i * uvStride;\\n\t\t#ifdef HORIZONTAL_PASS\\n\t\t\tvec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) );\\n\t\t\tmean += distribution.x;\\n\t\t\tsquared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\\n\t\t#else\\n\t\t\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) );\\n\t\t\tmean += depth;\\n\t\t\tsquared_mean += depth * depth;\\n\t\t#endif\\n\t}\\n\tmean = mean / samples;\\n\tsquared_mean = squared_mean / samples;\\n\tfloat std_dev = sqrt( squared_mean - mean * mean );\\n\tgl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\\n}\";\nfunction WebGLShadowMap(renderer, objects, capabilities) {\n  let _frustum2 = new Frustum();\n  const _shadowMapSize = new Vector2(), _viewportSize = new Vector2(), _viewport = new Vector4(), _depthMaterial = new MeshDepthMaterial({ depthPacking: RGBADepthPacking }), _distanceMaterial = new MeshDistanceMaterial(), _materialCache = {}, _maxTextureSize = capabilities.maxTextureSize;\n  const shadowSide = { [FrontSide]: BackSide, [BackSide]: FrontSide, [DoubleSide]: DoubleSide };\n  const shadowMaterialVertical = new ShaderMaterial({\n    defines: {\n      VSM_SAMPLES: 8\n    },\n    uniforms: {\n      shadow_pass: { value: null },\n      resolution: { value: new Vector2() },\n      radius: { value: 4 }\n    },\n    vertexShader: vertex,\n    fragmentShader: fragment\n  });\n  const shadowMaterialHorizontal = shadowMaterialVertical.clone();\n  shadowMaterialHorizontal.defines.HORIZONTAL_PASS = 1;\n  const fullScreenTri = new BufferGeometry();\n  fullScreenTri.setAttribute(\n    \"position\",\n    new BufferAttribute(\n      new Float32Array([-1, -1, 0.5, 3, -1, 0.5, -1, 3, 0.5]),\n      3\n    )\n  );\n  const fullScreenMesh = new Mesh(fullScreenTri, shadowMaterialVertical);\n  const scope = this;\n  this.enabled = false;\n  this.autoUpdate = true;\n  this.needsUpdate = false;\n  this.type = PCFShadowMap;\n  let _previousType = this.type;\n  this.render = function(lights, scene, camera) {\n    if (scope.enabled === false) return;\n    if (scope.autoUpdate === false && scope.needsUpdate === false) return;\n    if (lights.length === 0) return;\n    const currentRenderTarget = renderer.getRenderTarget();\n    const activeCubeFace = renderer.getActiveCubeFace();\n    const activeMipmapLevel = renderer.getActiveMipmapLevel();\n    const _state = renderer.state;\n    _state.setBlending(NoBlending);\n    _state.buffers.color.setClear(1, 1, 1, 1);\n    _state.buffers.depth.setTest(true);\n    _state.setScissorTest(false);\n    const toVSM = _previousType !== VSMShadowMap && this.type === VSMShadowMap;\n    const fromVSM = _previousType === VSMShadowMap && this.type !== VSMShadowMap;\n    for (let i = 0, il = lights.length; i < il; i++) {\n      const light = lights[i];\n      const shadow = light.shadow;\n      if (shadow === void 0) {\n        console.warn(\"THREE.WebGLShadowMap:\", light, \"has no shadow.\");\n        continue;\n      }\n      if (shadow.autoUpdate === false && shadow.needsUpdate === false) continue;\n      _shadowMapSize.copy(shadow.mapSize);\n      const shadowFrameExtents = shadow.getFrameExtents();\n      _shadowMapSize.multiply(shadowFrameExtents);\n      _viewportSize.copy(shadow.mapSize);\n      if (_shadowMapSize.x > _maxTextureSize || _shadowMapSize.y > _maxTextureSize) {\n        if (_shadowMapSize.x > _maxTextureSize) {\n          _viewportSize.x = Math.floor(_maxTextureSize / shadowFrameExtents.x);\n          _shadowMapSize.x = _viewportSize.x * shadowFrameExtents.x;\n          shadow.mapSize.x = _viewportSize.x;\n        }\n        if (_shadowMapSize.y > _maxTextureSize) {\n          _viewportSize.y = Math.floor(_maxTextureSize / shadowFrameExtents.y);\n          _shadowMapSize.y = _viewportSize.y * shadowFrameExtents.y;\n          shadow.mapSize.y = _viewportSize.y;\n        }\n      }\n      if (shadow.map === null || toVSM === true || fromVSM === true) {\n        const pars = this.type !== VSMShadowMap ? { minFilter: NearestFilter, magFilter: NearestFilter } : {};\n        if (shadow.map !== null) {\n          shadow.map.dispose();\n        }\n        shadow.map = new WebGLRenderTarget(_shadowMapSize.x, _shadowMapSize.y, pars);\n        shadow.map.texture.name = light.name + \".shadowMap\";\n        shadow.camera.updateProjectionMatrix();\n      }\n      renderer.setRenderTarget(shadow.map);\n      renderer.clear();\n      const viewportCount = shadow.getViewportCount();\n      for (let vp = 0; vp < viewportCount; vp++) {\n        const viewport = shadow.getViewport(vp);\n        _viewport.set(\n          _viewportSize.x * viewport.x,\n          _viewportSize.y * viewport.y,\n          _viewportSize.x * viewport.z,\n          _viewportSize.y * viewport.w\n        );\n        _state.viewport(_viewport);\n        shadow.updateMatrices(light, vp);\n        _frustum2 = shadow.getFrustum();\n        renderObject(scene, camera, shadow.camera, light, this.type);\n      }\n      if (shadow.isPointLightShadow !== true && this.type === VSMShadowMap) {\n        VSMPass(shadow, camera);\n      }\n      shadow.needsUpdate = false;\n    }\n    _previousType = this.type;\n    scope.needsUpdate = false;\n    renderer.setRenderTarget(currentRenderTarget, activeCubeFace, activeMipmapLevel);\n  };\n  function VSMPass(shadow, camera) {\n    const geometry = objects.update(fullScreenMesh);\n    if (shadowMaterialVertical.defines.VSM_SAMPLES !== shadow.blurSamples) {\n      shadowMaterialVertical.defines.VSM_SAMPLES = shadow.blurSamples;\n      shadowMaterialHorizontal.defines.VSM_SAMPLES = shadow.blurSamples;\n      shadowMaterialVertical.needsUpdate = true;\n      shadowMaterialHorizontal.needsUpdate = true;\n    }\n    if (shadow.mapPass === null) {\n      shadow.mapPass = new WebGLRenderTarget(_shadowMapSize.x, _shadowMapSize.y);\n    }\n    shadowMaterialVertical.uniforms.shadow_pass.value = shadow.map.texture;\n    shadowMaterialVertical.uniforms.resolution.value = shadow.mapSize;\n    shadowMaterialVertical.uniforms.radius.value = shadow.radius;\n    renderer.setRenderTarget(shadow.mapPass);\n    renderer.clear();\n    renderer.renderBufferDirect(camera, null, geometry, shadowMaterialVertical, fullScreenMesh, null);\n    shadowMaterialHorizontal.uniforms.shadow_pass.value = shadow.mapPass.texture;\n    shadowMaterialHorizontal.uniforms.resolution.value = shadow.mapSize;\n    shadowMaterialHorizontal.uniforms.radius.value = shadow.radius;\n    renderer.setRenderTarget(shadow.map);\n    renderer.clear();\n    renderer.renderBufferDirect(camera, null, geometry, shadowMaterialHorizontal, fullScreenMesh, null);\n  }\n  function getDepthMaterial(object, material, light, type) {\n    let result = null;\n    const customMaterial = light.isPointLight === true ? object.customDistanceMaterial : object.customDepthMaterial;\n    if (customMaterial !== void 0) {\n      result = customMaterial;\n    } else {\n      result = light.isPointLight === true ? _distanceMaterial : _depthMaterial;\n      if (renderer.localClippingEnabled && material.clipShadows === true && Array.isArray(material.clippingPlanes) && material.clippingPlanes.length !== 0 || material.displacementMap && material.displacementScale !== 0 || material.alphaMap && material.alphaTest > 0 || material.map && material.alphaTest > 0) {\n        const keyA = result.uuid, keyB = material.uuid;\n        let materialsForVariant = _materialCache[keyA];\n        if (materialsForVariant === void 0) {\n          materialsForVariant = {};\n          _materialCache[keyA] = materialsForVariant;\n        }\n        let cachedMaterial = materialsForVariant[keyB];\n        if (cachedMaterial === void 0) {\n          cachedMaterial = result.clone();\n          materialsForVariant[keyB] = cachedMaterial;\n          material.addEventListener(\"dispose\", onMaterialDispose);\n        }\n        result = cachedMaterial;\n      }\n    }\n    result.visible = material.visible;\n    result.wireframe = material.wireframe;\n    if (type === VSMShadowMap) {\n      result.side = material.shadowSide !== null ? material.shadowSide : material.side;\n    } else {\n      result.side = material.shadowSide !== null ? material.shadowSide : shadowSide[material.side];\n    }\n    result.alphaMap = material.alphaMap;\n    result.alphaTest = material.alphaTest;\n    result.map = material.map;\n    result.clipShadows = material.clipShadows;\n    result.clippingPlanes = material.clippingPlanes;\n    result.clipIntersection = material.clipIntersection;\n    result.displacementMap = material.displacementMap;\n    result.displacementScale = material.displacementScale;\n    result.displacementBias = material.displacementBias;\n    result.wireframeLinewidth = material.wireframeLinewidth;\n    result.linewidth = material.linewidth;\n    if (light.isPointLight === true && result.isMeshDistanceMaterial === true) {\n      const materialProperties = renderer.properties.get(result);\n      materialProperties.light = light;\n    }\n    return result;\n  }\n  function renderObject(object, camera, shadowCamera, light, type) {\n    if (object.visible === false) return;\n    const visible = object.layers.test(camera.layers);\n    if (visible && (object.isMesh || object.isLine || object.isPoints)) {\n      if ((object.castShadow || object.receiveShadow && type === VSMShadowMap) && (!object.frustumCulled || _frustum2.intersectsObject(object))) {\n        object.modelViewMatrix.multiplyMatrices(shadowCamera.matrixWorldInverse, object.matrixWorld);\n        const geometry = objects.update(object);\n        const material = object.material;\n        if (Array.isArray(material)) {\n          const groups = geometry.groups;\n          for (let k = 0, kl = groups.length; k < kl; k++) {\n            const group = groups[k];\n            const groupMaterial = material[group.materialIndex];\n            if (groupMaterial && groupMaterial.visible) {\n              const depthMaterial = getDepthMaterial(object, groupMaterial, light, type);\n              object.onBeforeShadow(renderer, object, camera, shadowCamera, geometry, depthMaterial, group);\n              renderer.renderBufferDirect(shadowCamera, null, geometry, depthMaterial, object, group);\n              object.onAfterShadow(renderer, object, camera, shadowCamera, geometry, depthMaterial, group);\n            }\n          }\n        } else if (material.visible) {\n          const depthMaterial = getDepthMaterial(object, material, light, type);\n          object.onBeforeShadow(renderer, object, camera, shadowCamera, geometry, depthMaterial, null);\n          renderer.renderBufferDirect(shadowCamera, null, geometry, depthMaterial, object, null);\n          object.onAfterShadow(renderer, object, camera, shadowCamera, geometry, depthMaterial, null);\n        }\n      }\n    }\n    const children = object.children;\n    for (let i = 0, l = children.length; i < l; i++) {\n      renderObject(children[i], camera, shadowCamera, light, type);\n    }\n  }\n  function onMaterialDispose(event) {\n    const material = event.target;\n    material.removeEventListener(\"dispose\", onMaterialDispose);\n    for (const id in _materialCache) {\n      const cache = _materialCache[id];\n      const uuid = event.target.uuid;\n      if (uuid in cache) {\n        const shadowMaterial = cache[uuid];\n        shadowMaterial.dispose();\n        delete cache[uuid];\n      }\n    }\n  }\n}\nvar reversedFuncs = {\n  [NeverDepth]: AlwaysDepth,\n  [LessDepth]: GreaterDepth,\n  [EqualDepth]: NotEqualDepth,\n  [LessEqualDepth]: GreaterEqualDepth,\n  [AlwaysDepth]: NeverDepth,\n  [GreaterDepth]: LessDepth,\n  [NotEqualDepth]: EqualDepth,\n  [GreaterEqualDepth]: LessEqualDepth\n};\nfunction WebGLState(gl) {\n  function ColorBuffer() {\n    let locked = false;\n    const color = new Vector4();\n    let currentColorMask = null;\n    const currentColorClear = new Vector4(0, 0, 0, 0);\n    return {\n      setMask: function(colorMask) {\n        if (currentColorMask !== colorMask && !locked) {\n          gl.colorMask(colorMask, colorMask, colorMask, colorMask);\n          currentColorMask = colorMask;\n        }\n      },\n      setLocked: function(lock) {\n        locked = lock;\n      },\n      setClear: function(r, g, b, a, premultipliedAlpha) {\n        if (premultipliedAlpha === true) {\n          r *= a;\n          g *= a;\n          b *= a;\n        }\n        color.set(r, g, b, a);\n        if (currentColorClear.equals(color) === false) {\n          gl.clearColor(r, g, b, a);\n          currentColorClear.copy(color);\n        }\n      },\n      reset: function() {\n        locked = false;\n        currentColorMask = null;\n        currentColorClear.set(-1, 0, 0, 0);\n      }\n    };\n  }\n  function DepthBuffer() {\n    let locked = false;\n    let reversed = false;\n    let currentDepthMask = null;\n    let currentDepthFunc = null;\n    let currentDepthClear = null;\n    return {\n      setReversed: function(value) {\n        reversed = value;\n      },\n      setTest: function(depthTest) {\n        if (depthTest) {\n          enable(gl.DEPTH_TEST);\n        } else {\n          disable(gl.DEPTH_TEST);\n        }\n      },\n      setMask: function(depthMask) {\n        if (currentDepthMask !== depthMask && !locked) {\n          gl.depthMask(depthMask);\n          currentDepthMask = depthMask;\n        }\n      },\n      setFunc: function(depthFunc) {\n        if (reversed) depthFunc = reversedFuncs[depthFunc];\n        if (currentDepthFunc !== depthFunc) {\n          switch (depthFunc) {\n            case NeverDepth:\n              gl.depthFunc(gl.NEVER);\n              break;\n            case AlwaysDepth:\n              gl.depthFunc(gl.ALWAYS);\n              break;\n            case LessDepth:\n              gl.depthFunc(gl.LESS);\n              break;\n            case LessEqualDepth:\n              gl.depthFunc(gl.LEQUAL);\n              break;\n            case EqualDepth:\n              gl.depthFunc(gl.EQUAL);\n              break;\n            case GreaterEqualDepth:\n              gl.depthFunc(gl.GEQUAL);\n              break;\n            case GreaterDepth:\n              gl.depthFunc(gl.GREATER);\n              break;\n            case NotEqualDepth:\n              gl.depthFunc(gl.NOTEQUAL);\n              break;\n            default:\n              gl.depthFunc(gl.LEQUAL);\n          }\n          currentDepthFunc = depthFunc;\n        }\n      },\n      setLocked: function(lock) {\n        locked = lock;\n      },\n      setClear: function(depth) {\n        if (currentDepthClear !== depth) {\n          gl.clearDepth(depth);\n          currentDepthClear = depth;\n        }\n      },\n      reset: function() {\n        locked = false;\n        currentDepthMask = null;\n        currentDepthFunc = null;\n        currentDepthClear = null;\n      }\n    };\n  }\n  function StencilBuffer() {\n    let locked = false;\n    let currentStencilMask = null;\n    let currentStencilFunc = null;\n    let currentStencilRef = null;\n    let currentStencilFuncMask = null;\n    let currentStencilFail = null;\n    let currentStencilZFail = null;\n    let currentStencilZPass = null;\n    let currentStencilClear = null;\n    return {\n      setTest: function(stencilTest) {\n        if (!locked) {\n          if (stencilTest) {\n            enable(gl.STENCIL_TEST);\n          } else {\n            disable(gl.STENCIL_TEST);\n          }\n        }\n      },\n      setMask: function(stencilMask) {\n        if (currentStencilMask !== stencilMask && !locked) {\n          gl.stencilMask(stencilMask);\n          currentStencilMask = stencilMask;\n        }\n      },\n      setFunc: function(stencilFunc, stencilRef, stencilMask) {\n        if (currentStencilFunc !== stencilFunc || currentStencilRef !== stencilRef || currentStencilFuncMask !== stencilMask) {\n          gl.stencilFunc(stencilFunc, stencilRef, stencilMask);\n          currentStencilFunc = stencilFunc;\n          currentStencilRef = stencilRef;\n          currentStencilFuncMask = stencilMask;\n        }\n      },\n      setOp: function(stencilFail, stencilZFail, stencilZPass) {\n        if (currentStencilFail !== stencilFail || currentStencilZFail !== stencilZFail || currentStencilZPass !== stencilZPass) {\n          gl.stencilOp(stencilFail, stencilZFail, stencilZPass);\n          currentStencilFail = stencilFail;\n          currentStencilZFail = stencilZFail;\n          currentStencilZPass = stencilZPass;\n        }\n      },\n      setLocked: function(lock) {\n        locked = lock;\n      },\n      setClear: function(stencil) {\n        if (currentStencilClear !== stencil) {\n          gl.clearStencil(stencil);\n          currentStencilClear = stencil;\n        }\n      },\n      reset: function() {\n        locked = false;\n        currentStencilMask = null;\n        currentStencilFunc = null;\n        currentStencilRef = null;\n        currentStencilFuncMask = null;\n        currentStencilFail = null;\n        currentStencilZFail = null;\n        currentStencilZPass = null;\n        currentStencilClear = null;\n      }\n    };\n  }\n  const colorBuffer = new ColorBuffer();\n  const depthBuffer = new DepthBuffer();\n  const stencilBuffer = new StencilBuffer();\n  const uboBindings = /* @__PURE__ */ new WeakMap();\n  const uboProgramMap = /* @__PURE__ */ new WeakMap();\n  let enabledCapabilities = {};\n  let currentBoundFramebuffers = {};\n  let currentDrawbuffers = /* @__PURE__ */ new WeakMap();\n  let defaultDrawbuffers = [];\n  let currentProgram = null;\n  let currentBlendingEnabled = false;\n  let currentBlending = null;\n  let currentBlendEquation = null;\n  let currentBlendSrc = null;\n  let currentBlendDst = null;\n  let currentBlendEquationAlpha = null;\n  let currentBlendSrcAlpha = null;\n  let currentBlendDstAlpha = null;\n  let currentBlendColor = new Color(0, 0, 0);\n  let currentBlendAlpha = 0;\n  let currentPremultipledAlpha = false;\n  let currentFlipSided = null;\n  let currentCullFace = null;\n  let currentLineWidth = null;\n  let currentPolygonOffsetFactor = null;\n  let currentPolygonOffsetUnits = null;\n  const maxTextures = gl.getParameter(gl.MAX_COMBINED_TEXTURE_IMAGE_UNITS);\n  let lineWidthAvailable = false;\n  let version = 0;\n  const glVersion = gl.getParameter(gl.VERSION);\n  if (glVersion.indexOf(\"WebGL\") !== -1) {\n    version = parseFloat(/^WebGL (\\d)/.exec(glVersion)[1]);\n    lineWidthAvailable = version >= 1;\n  } else if (glVersion.indexOf(\"OpenGL ES\") !== -1) {\n    version = parseFloat(/^OpenGL ES (\\d)/.exec(glVersion)[1]);\n    lineWidthAvailable = version >= 2;\n  }\n  let currentTextureSlot = null;\n  let currentBoundTextures = {};\n  const scissorParam = gl.getParameter(gl.SCISSOR_BOX);\n  const viewportParam = gl.getParameter(gl.VIEWPORT);\n  const currentScissor = new Vector4().fromArray(scissorParam);\n  const currentViewport = new Vector4().fromArray(viewportParam);\n  function createTexture(type, target, count, dimensions) {\n    const data = new Uint8Array(4);\n    const texture = gl.createTexture();\n    gl.bindTexture(type, texture);\n    gl.texParameteri(type, gl.TEXTURE_MIN_FILTER, gl.NEAREST);\n    gl.texParameteri(type, gl.TEXTURE_MAG_FILTER, gl.NEAREST);\n    for (let i = 0; i < count; i++) {\n      if (type === gl.TEXTURE_3D || type === gl.TEXTURE_2D_ARRAY) {\n        gl.texImage3D(target, 0, gl.RGBA, 1, 1, dimensions, 0, gl.RGBA, gl.UNSIGNED_BYTE, data);\n      } else {\n        gl.texImage2D(target + i, 0, gl.RGBA, 1, 1, 0, gl.RGBA, gl.UNSIGNED_BYTE, data);\n      }\n    }\n    return texture;\n  }\n  const emptyTextures = {};\n  emptyTextures[gl.TEXTURE_2D] = createTexture(gl.TEXTURE_2D, gl.TEXTURE_2D, 1);\n  emptyTextures[gl.TEXTURE_CUBE_MAP] = createTexture(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_CUBE_MAP_POSITIVE_X, 6);\n  emptyTextures[gl.TEXTURE_2D_ARRAY] = createTexture(gl.TEXTURE_2D_ARRAY, gl.TEXTURE_2D_ARRAY, 1, 1);\n  emptyTextures[gl.TEXTURE_3D] = createTexture(gl.TEXTURE_3D, gl.TEXTURE_3D, 1, 1);\n  colorBuffer.setClear(0, 0, 0, 1);\n  depthBuffer.setClear(1);\n  stencilBuffer.setClear(0);\n  enable(gl.DEPTH_TEST);\n  depthBuffer.setFunc(LessEqualDepth);\n  setFlipSided(false);\n  setCullFace(CullFaceBack);\n  enable(gl.CULL_FACE);\n  setBlending(NoBlending);\n  function enable(id) {\n    if (enabledCapabilities[id] !== true) {\n      gl.enable(id);\n      enabledCapabilities[id] = true;\n    }\n  }\n  function disable(id) {\n    if (enabledCapabilities[id] !== false) {\n      gl.disable(id);\n      enabledCapabilities[id] = false;\n    }\n  }\n  function bindFramebuffer(target, framebuffer) {\n    if (currentBoundFramebuffers[target] !== framebuffer) {\n      gl.bindFramebuffer(target, framebuffer);\n      currentBoundFramebuffers[target] = framebuffer;\n      if (target === gl.DRAW_FRAMEBUFFER) {\n        currentBoundFramebuffers[gl.FRAMEBUFFER] = framebuffer;\n      }\n      if (target === gl.FRAMEBUFFER) {\n        currentBoundFramebuffers[gl.DRAW_FRAMEBUFFER] = framebuffer;\n      }\n      return true;\n    }\n    return false;\n  }\n  function drawBuffers(renderTarget, framebuffer) {\n    let drawBuffers2 = defaultDrawbuffers;\n    let needsUpdate = false;\n    if (renderTarget) {\n      drawBuffers2 = currentDrawbuffers.get(framebuffer);\n      if (drawBuffers2 === void 0) {\n        drawBuffers2 = [];\n        currentDrawbuffers.set(framebuffer, drawBuffers2);\n      }\n      const textures = renderTarget.textures;\n      if (drawBuffers2.length !== textures.length || drawBuffers2[0] !== gl.COLOR_ATTACHMENT0) {\n        for (let i = 0, il = textures.length; i < il; i++) {\n          drawBuffers2[i] = gl.COLOR_ATTACHMENT0 + i;\n        }\n        drawBuffers2.length = textures.length;\n        needsUpdate = true;\n      }\n    } else {\n      if (drawBuffers2[0] !== gl.BACK) {\n        drawBuffers2[0] = gl.BACK;\n        needsUpdate = true;\n      }\n    }\n    if (needsUpdate) {\n      gl.drawBuffers(drawBuffers2);\n    }\n  }\n  function useProgram(program) {\n    if (currentProgram !== program) {\n      gl.useProgram(program);\n      currentProgram = program;\n      return true;\n    }\n    return false;\n  }\n  const equationToGL = {\n    [AddEquation]: gl.FUNC_ADD,\n    [SubtractEquation]: gl.FUNC_SUBTRACT,\n    [ReverseSubtractEquation]: gl.FUNC_REVERSE_SUBTRACT\n  };\n  equationToGL[MinEquation] = gl.MIN;\n  equationToGL[MaxEquation] = gl.MAX;\n  const factorToGL = {\n    [ZeroFactor]: gl.ZERO,\n    [OneFactor]: gl.ONE,\n    [SrcColorFactor]: gl.SRC_COLOR,\n    [SrcAlphaFactor]: gl.SRC_ALPHA,\n    [SrcAlphaSaturateFactor]: gl.SRC_ALPHA_SATURATE,\n    [DstColorFactor]: gl.DST_COLOR,\n    [DstAlphaFactor]: gl.DST_ALPHA,\n    [OneMinusSrcColorFactor]: gl.ONE_MINUS_SRC_COLOR,\n    [OneMinusSrcAlphaFactor]: gl.ONE_MINUS_SRC_ALPHA,\n    [OneMinusDstColorFactor]: gl.ONE_MINUS_DST_COLOR,\n    [OneMinusDstAlphaFactor]: gl.ONE_MINUS_DST_ALPHA,\n    [ConstantColorFactor]: gl.CONSTANT_COLOR,\n    [OneMinusConstantColorFactor]: gl.ONE_MINUS_CONSTANT_COLOR,\n    [ConstantAlphaFactor]: gl.CONSTANT_ALPHA,\n    [OneMinusConstantAlphaFactor]: gl.ONE_MINUS_CONSTANT_ALPHA\n  };\n  function setBlending(blending, blendEquation, blendSrc, blendDst, blendEquationAlpha, blendSrcAlpha, blendDstAlpha, blendColor, blendAlpha, premultipliedAlpha) {\n    if (blending === NoBlending) {\n      if (currentBlendingEnabled === true) {\n        disable(gl.BLEND);\n        currentBlendingEnabled = false;\n      }\n      return;\n    }\n    if (currentBlendingEnabled === false) {\n      enable(gl.BLEND);\n      currentBlendingEnabled = true;\n    }\n    if (blending !== CustomBlending) {\n      if (blending !== currentBlending || premultipliedAlpha !== currentPremultipledAlpha) {\n        if (currentBlendEquation !== AddEquation || currentBlendEquationAlpha !== AddEquation) {\n          gl.blendEquation(gl.FUNC_ADD);\n          currentBlendEquation = AddEquation;\n          currentBlendEquationAlpha = AddEquation;\n        }\n        if (premultipliedAlpha) {\n          switch (blending) {\n            case NormalBlending:\n              gl.blendFuncSeparate(gl.ONE, gl.ONE_MINUS_SRC_ALPHA, gl.ONE, gl.ONE_MINUS_SRC_ALPHA);\n              break;\n            case AdditiveBlending:\n              gl.blendFunc(gl.ONE, gl.ONE);\n              break;\n            case SubtractiveBlending:\n              gl.blendFuncSeparate(gl.ZERO, gl.ONE_MINUS_SRC_COLOR, gl.ZERO, gl.ONE);\n              break;\n            case MultiplyBlending:\n              gl.blendFuncSeparate(gl.ZERO, gl.SRC_COLOR, gl.ZERO, gl.SRC_ALPHA);\n              break;\n            default:\n              console.error(\"THREE.WebGLState: Invalid blending: \", blending);\n              break;\n          }\n        } else {\n          switch (blending) {\n            case NormalBlending:\n              gl.blendFuncSeparate(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA, gl.ONE, gl.ONE_MINUS_SRC_ALPHA);\n              break;\n            case AdditiveBlending:\n              gl.blendFunc(gl.SRC_ALPHA, gl.ONE);\n              break;\n            case SubtractiveBlending:\n              gl.blendFuncSeparate(gl.ZERO, gl.ONE_MINUS_SRC_COLOR, gl.ZERO, gl.ONE);\n              break;\n            case MultiplyBlending:\n              gl.blendFunc(gl.ZERO, gl.SRC_COLOR);\n              break;\n            default:\n              console.error(\"THREE.WebGLState: Invalid blending: \", blending);\n              break;\n          }\n        }\n        currentBlendSrc = null;\n        currentBlendDst = null;\n        currentBlendSrcAlpha = null;\n        currentBlendDstAlpha = null;\n        currentBlendColor.set(0, 0, 0);\n        currentBlendAlpha = 0;\n        currentBlending = blending;\n        currentPremultipledAlpha = premultipliedAlpha;\n      }\n      return;\n    }\n    blendEquationAlpha = blendEquationAlpha || blendEquation;\n    blendSrcAlpha = blendSrcAlpha || blendSrc;\n    blendDstAlpha = blendDstAlpha || blendDst;\n    if (blendEquation !== currentBlendEquation || blendEquationAlpha !== currentBlendEquationAlpha) {\n      gl.blendEquationSeparate(equationToGL[blendEquation], equationToGL[blendEquationAlpha]);\n      currentBlendEquation = blendEquation;\n      currentBlendEquationAlpha = blendEquationAlpha;\n    }\n    if (blendSrc !== currentBlendSrc || blendDst !== currentBlendDst || blendSrcAlpha !== currentBlendSrcAlpha || blendDstAlpha !== currentBlendDstAlpha) {\n      gl.blendFuncSeparate(factorToGL[blendSrc], factorToGL[blendDst], factorToGL[blendSrcAlpha], factorToGL[blendDstAlpha]);\n      currentBlendSrc = blendSrc;\n      currentBlendDst = blendDst;\n      currentBlendSrcAlpha = blendSrcAlpha;\n      currentBlendDstAlpha = blendDstAlpha;\n    }\n    if (blendColor.equals(currentBlendColor) === false || blendAlpha !== currentBlendAlpha) {\n      gl.blendColor(blendColor.r, blendColor.g, blendColor.b, blendAlpha);\n      currentBlendColor.copy(blendColor);\n      currentBlendAlpha = blendAlpha;\n    }\n    currentBlending = blending;\n    currentPremultipledAlpha = false;\n  }\n  function setMaterial(material, frontFaceCW) {\n    material.side === DoubleSide ? disable(gl.CULL_FACE) : enable(gl.CULL_FACE);\n    let flipSided = material.side === BackSide;\n    if (frontFaceCW) flipSided = !flipSided;\n    setFlipSided(flipSided);\n    material.blending === NormalBlending && material.transparent === false ? setBlending(NoBlending) : setBlending(material.blending, material.blendEquation, material.blendSrc, material.blendDst, material.blendEquationAlpha, material.blendSrcAlpha, material.blendDstAlpha, material.blendColor, material.blendAlpha, material.premultipliedAlpha);\n    depthBuffer.setFunc(material.depthFunc);\n    depthBuffer.setTest(material.depthTest);\n    depthBuffer.setMask(material.depthWrite);\n    colorBuffer.setMask(material.colorWrite);\n    const stencilWrite = material.stencilWrite;\n    stencilBuffer.setTest(stencilWrite);\n    if (stencilWrite) {\n      stencilBuffer.setMask(material.stencilWriteMask);\n      stencilBuffer.setFunc(material.stencilFunc, material.stencilRef, material.stencilFuncMask);\n      stencilBuffer.setOp(material.stencilFail, material.stencilZFail, material.stencilZPass);\n    }\n    setPolygonOffset(material.polygonOffset, material.polygonOffsetFactor, material.polygonOffsetUnits);\n    material.alphaToCoverage === true ? enable(gl.SAMPLE_ALPHA_TO_COVERAGE) : disable(gl.SAMPLE_ALPHA_TO_COVERAGE);\n  }\n  function setFlipSided(flipSided) {\n    if (currentFlipSided !== flipSided) {\n      if (flipSided) {\n        gl.frontFace(gl.CW);\n      } else {\n        gl.frontFace(gl.CCW);\n      }\n      currentFlipSided = flipSided;\n    }\n  }\n  function setCullFace(cullFace) {\n    if (cullFace !== CullFaceNone) {\n      enable(gl.CULL_FACE);\n      if (cullFace !== currentCullFace) {\n        if (cullFace === CullFaceBack) {\n          gl.cullFace(gl.BACK);\n        } else if (cullFace === CullFaceFront) {\n          gl.cullFace(gl.FRONT);\n        } else {\n          gl.cullFace(gl.FRONT_AND_BACK);\n        }\n      }\n    } else {\n      disable(gl.CULL_FACE);\n    }\n    currentCullFace = cullFace;\n  }\n  function setLineWidth(width) {\n    if (width !== currentLineWidth) {\n      if (lineWidthAvailable) gl.lineWidth(width);\n      currentLineWidth = width;\n    }\n  }\n  function setPolygonOffset(polygonOffset, factor, units) {\n    if (polygonOffset) {\n      enable(gl.POLYGON_OFFSET_FILL);\n      if (currentPolygonOffsetFactor !== factor || currentPolygonOffsetUnits !== units) {\n        gl.polygonOffset(factor, units);\n        currentPolygonOffsetFactor = factor;\n        currentPolygonOffsetUnits = units;\n      }\n    } else {\n      disable(gl.POLYGON_OFFSET_FILL);\n    }\n  }\n  function setScissorTest(scissorTest) {\n    if (scissorTest) {\n      enable(gl.SCISSOR_TEST);\n    } else {\n      disable(gl.SCISSOR_TEST);\n    }\n  }\n  function activeTexture(webglSlot) {\n    if (webglSlot === void 0) webglSlot = gl.TEXTURE0 + maxTextures - 1;\n    if (currentTextureSlot !== webglSlot) {\n      gl.activeTexture(webglSlot);\n      currentTextureSlot = webglSlot;\n    }\n  }\n  function bindTexture(webglType, webglTexture, webglSlot) {\n    if (webglSlot === void 0) {\n      if (currentTextureSlot === null) {\n        webglSlot = gl.TEXTURE0 + maxTextures - 1;\n      } else {\n        webglSlot = currentTextureSlot;\n      }\n    }\n    let boundTexture = currentBoundTextures[webglSlot];\n    if (boundTexture === void 0) {\n      boundTexture = { type: void 0, texture: void 0 };\n      currentBoundTextures[webglSlot] = boundTexture;\n    }\n    if (boundTexture.type !== webglType || boundTexture.texture !== webglTexture) {\n      if (currentTextureSlot !== webglSlot) {\n        gl.activeTexture(webglSlot);\n        currentTextureSlot = webglSlot;\n      }\n      gl.bindTexture(webglType, webglTexture || emptyTextures[webglType]);\n      boundTexture.type = webglType;\n      boundTexture.texture = webglTexture;\n    }\n  }\n  function unbindTexture() {\n    const boundTexture = currentBoundTextures[currentTextureSlot];\n    if (boundTexture !== void 0 && boundTexture.type !== void 0) {\n      gl.bindTexture(boundTexture.type, null);\n      boundTexture.type = void 0;\n      boundTexture.texture = void 0;\n    }\n  }\n  function compressedTexImage2D() {\n    try {\n      gl.compressedTexImage2D.apply(gl, arguments);\n    } catch (error) {\n      console.error(\"THREE.WebGLState:\", error);\n    }\n  }\n  function compressedTexImage3D() {\n    try {\n      gl.compressedTexImage3D.apply(gl, arguments);\n    } catch (error) {\n      console.error(\"THREE.WebGLState:\", error);\n    }\n  }\n  function texSubImage2D() {\n    try {\n      gl.texSubImage2D.apply(gl, arguments);\n    } catch (error) {\n      console.error(\"THREE.WebGLState:\", error);\n    }\n  }\n  function texSubImage3D() {\n    try {\n      gl.texSubImage3D.apply(gl, arguments);\n    } catch (error) {\n      console.error(\"THREE.WebGLState:\", error);\n    }\n  }\n  function compressedTexSubImage2D() {\n    try {\n      gl.compressedTexSubImage2D.apply(gl, arguments);\n    } catch (error) {\n      console.error(\"THREE.WebGLState:\", error);\n    }\n  }\n  function compressedTexSubImage3D() {\n    try {\n      gl.compressedTexSubImage3D.apply(gl, arguments);\n    } catch (error) {\n      console.error(\"THREE.WebGLState:\", error);\n    }\n  }\n  function texStorage2D() {\n    try {\n      gl.texStorage2D.apply(gl, arguments);\n    } catch (error) {\n      console.error(\"THREE.WebGLState:\", error);\n    }\n  }\n  function texStorage3D() {\n    try {\n      gl.texStorage3D.apply(gl, arguments);\n    } catch (error) {\n      console.error(\"THREE.WebGLState:\", error);\n    }\n  }\n  function texImage2D() {\n    try {\n      gl.texImage2D.apply(gl, arguments);\n    } catch (error) {\n      console.error(\"THREE.WebGLState:\", error);\n    }\n  }\n  function texImage3D() {\n    try {\n      gl.texImage3D.apply(gl, arguments);\n    } catch (error) {\n      console.error(\"THREE.WebGLState:\", error);\n    }\n  }\n  function scissor(scissor2) {\n    if (currentScissor.equals(scissor2) === false) {\n      gl.scissor(scissor2.x, scissor2.y, scissor2.z, scissor2.w);\n      currentScissor.copy(scissor2);\n    }\n  }\n  function viewport(viewport2) {\n    if (currentViewport.equals(viewport2) === false) {\n      gl.viewport(viewport2.x, viewport2.y, viewport2.z, viewport2.w);\n      currentViewport.copy(viewport2);\n    }\n  }\n  function updateUBOMapping(uniformsGroup, program) {\n    let mapping = uboProgramMap.get(program);\n    if (mapping === void 0) {\n      mapping = /* @__PURE__ */ new WeakMap();\n      uboProgramMap.set(program, mapping);\n    }\n    let blockIndex = mapping.get(uniformsGroup);\n    if (blockIndex === void 0) {\n      blockIndex = gl.getUniformBlockIndex(program, uniformsGroup.name);\n      mapping.set(uniformsGroup, blockIndex);\n    }\n  }\n  function uniformBlockBinding(uniformsGroup, program) {\n    const mapping = uboProgramMap.get(program);\n    const blockIndex = mapping.get(uniformsGroup);\n    if (uboBindings.get(program) !== blockIndex) {\n      gl.uniformBlockBinding(program, blockIndex, uniformsGroup.__bindingPointIndex);\n      uboBindings.set(program, blockIndex);\n    }\n  }\n  function reset() {\n    gl.disable(gl.BLEND);\n    gl.disable(gl.CULL_FACE);\n    gl.disable(gl.DEPTH_TEST);\n    gl.disable(gl.POLYGON_OFFSET_FILL);\n    gl.disable(gl.SCISSOR_TEST);\n    gl.disable(gl.STENCIL_TEST);\n    gl.disable(gl.SAMPLE_ALPHA_TO_COVERAGE);\n    gl.blendEquation(gl.FUNC_ADD);\n    gl.blendFunc(gl.ONE, gl.ZERO);\n    gl.blendFuncSeparate(gl.ONE, gl.ZERO, gl.ONE, gl.ZERO);\n    gl.blendColor(0, 0, 0, 0);\n    gl.colorMask(true, true, true, true);\n    gl.clearColor(0, 0, 0, 0);\n    gl.depthMask(true);\n    gl.depthFunc(gl.LESS);\n    gl.clearDepth(1);\n    gl.stencilMask(4294967295);\n    gl.stencilFunc(gl.ALWAYS, 0, 4294967295);\n    gl.stencilOp(gl.KEEP, gl.KEEP, gl.KEEP);\n    gl.clearStencil(0);\n    gl.cullFace(gl.BACK);\n    gl.frontFace(gl.CCW);\n    gl.polygonOffset(0, 0);\n    gl.activeTexture(gl.TEXTURE0);\n    gl.bindFramebuffer(gl.FRAMEBUFFER, null);\n    gl.bindFramebuffer(gl.DRAW_FRAMEBUFFER, null);\n    gl.bindFramebuffer(gl.READ_FRAMEBUFFER, null);\n    gl.useProgram(null);\n    gl.lineWidth(1);\n    gl.scissor(0, 0, gl.canvas.width, gl.canvas.height);\n    gl.viewport(0, 0, gl.canvas.width, gl.canvas.height);\n    enabledCapabilities = {};\n    currentTextureSlot = null;\n    currentBoundTextures = {};\n    currentBoundFramebuffers = {};\n    currentDrawbuffers = /* @__PURE__ */ new WeakMap();\n    defaultDrawbuffers = [];\n    currentProgram = null;\n    currentBlendingEnabled = false;\n    currentBlending = null;\n    currentBlendEquation = null;\n    currentBlendSrc = null;\n    currentBlendDst = null;\n    currentBlendEquationAlpha = null;\n    currentBlendSrcAlpha = null;\n    currentBlendDstAlpha = null;\n    currentBlendColor = new Color(0, 0, 0);\n    currentBlendAlpha = 0;\n    currentPremultipledAlpha = false;\n    currentFlipSided = null;\n    currentCullFace = null;\n    currentLineWidth = null;\n    currentPolygonOffsetFactor = null;\n    currentPolygonOffsetUnits = null;\n    currentScissor.set(0, 0, gl.canvas.width, gl.canvas.height);\n    currentViewport.set(0, 0, gl.canvas.width, gl.canvas.height);\n    colorBuffer.reset();\n    depthBuffer.reset();\n    stencilBuffer.reset();\n  }\n  return {\n    buffers: {\n      color: colorBuffer,\n      depth: depthBuffer,\n      stencil: stencilBuffer\n    },\n    enable,\n    disable,\n    bindFramebuffer,\n    drawBuffers,\n    useProgram,\n    setBlending,\n    setMaterial,\n    setFlipSided,\n    setCullFace,\n    setLineWidth,\n    setPolygonOffset,\n    setScissorTest,\n    activeTexture,\n    bindTexture,\n    unbindTexture,\n    compressedTexImage2D,\n    compressedTexImage3D,\n    texImage2D,\n    texImage3D,\n    updateUBOMapping,\n    uniformBlockBinding,\n    texStorage2D,\n    texStorage3D,\n    texSubImage2D,\n    texSubImage3D,\n    compressedTexSubImage2D,\n    compressedTexSubImage3D,\n    scissor,\n    viewport,\n    reset\n  };\n}\nfunction contain(texture, aspect2) {\n  const imageAspect = texture.image && texture.image.width ? texture.image.width / texture.image.height : 1;\n  if (imageAspect > aspect2) {\n    texture.repeat.x = 1;\n    texture.repeat.y = imageAspect / aspect2;\n    texture.offset.x = 0;\n    texture.offset.y = (1 - texture.repeat.y) / 2;\n  } else {\n    texture.repeat.x = aspect2 / imageAspect;\n    texture.repeat.y = 1;\n    texture.offset.x = (1 - texture.repeat.x) / 2;\n    texture.offset.y = 0;\n  }\n  return texture;\n}\nfunction cover(texture, aspect2) {\n  const imageAspect = texture.image && texture.image.width ? texture.image.width / texture.image.height : 1;\n  if (imageAspect > aspect2) {\n    texture.repeat.x = aspect2 / imageAspect;\n    texture.repeat.y = 1;\n    texture.offset.x = (1 - texture.repeat.x) / 2;\n    texture.offset.y = 0;\n  } else {\n    texture.repeat.x = 1;\n    texture.repeat.y = imageAspect / aspect2;\n    texture.offset.x = 0;\n    texture.offset.y = (1 - texture.repeat.y) / 2;\n  }\n  return texture;\n}\nfunction fill(texture) {\n  texture.repeat.x = 1;\n  texture.repeat.y = 1;\n  texture.offset.x = 0;\n  texture.offset.y = 0;\n  return texture;\n}\nfunction getByteLength(width, height, format, type) {\n  const typeByteLength = getTextureTypeByteLength(type);\n  switch (format) {\n    // https://registry.khronos.org/OpenGL-Refpages/es3.0/html/glTexImage2D.xhtml\n    case AlphaFormat:\n      return width * height;\n    case LuminanceFormat:\n      return width * height;\n    case LuminanceAlphaFormat:\n      return width * height * 2;\n    case RedFormat:\n      return width * height / typeByteLength.components * typeByteLength.byteLength;\n    case RedIntegerFormat:\n      return width * height / typeByteLength.components * typeByteLength.byteLength;\n    case RGFormat:\n      return width * height * 2 / typeByteLength.components * typeByteLength.byteLength;\n    case RGIntegerFormat:\n      return width * height * 2 / typeByteLength.components * typeByteLength.byteLength;\n    case RGBFormat:\n      return width * height * 3 / typeByteLength.components * typeByteLength.byteLength;\n    case RGBAFormat:\n      return width * height * 4 / typeByteLength.components * typeByteLength.byteLength;\n    case RGBAIntegerFormat:\n      return width * height * 4 / typeByteLength.components * typeByteLength.byteLength;\n    // https://registry.khronos.org/webgl/extensions/WEBGL_compressed_texture_s3tc_srgb/\n    case RGB_S3TC_DXT1_Format:\n    case RGBA_S3TC_DXT1_Format:\n      return Math.floor((width + 3) / 4) * Math.floor((height + 3) / 4) * 8;\n    case RGBA_S3TC_DXT3_Format:\n    case RGBA_S3TC_DXT5_Format:\n      return Math.floor((width + 3) / 4) * Math.floor((height + 3) / 4) * 16;\n    // https://registry.khronos.org/webgl/extensions/WEBGL_compressed_texture_pvrtc/\n    case RGB_PVRTC_2BPPV1_Format:\n    case RGBA_PVRTC_2BPPV1_Format:\n      return Math.max(width, 16) * Math.max(height, 8) / 4;\n    case RGB_PVRTC_4BPPV1_Format:\n    case RGBA_PVRTC_4BPPV1_Format:\n      return Math.max(width, 8) * Math.max(height, 8) / 2;\n    // https://registry.khronos.org/webgl/extensions/WEBGL_compressed_texture_etc/\n    case RGB_ETC1_Format:\n    case RGB_ETC2_Format:\n      return Math.floor((width + 3) / 4) * Math.floor((height + 3) / 4) * 8;\n    case RGBA_ETC2_EAC_Format:\n      return Math.floor((width + 3) / 4) * Math.floor((height + 3) / 4) * 16;\n    // https://registry.khronos.org/webgl/extensions/WEBGL_compressed_texture_astc/\n    case RGBA_ASTC_4x4_Format:\n      return Math.floor((width + 3) / 4) * Math.floor((height + 3) / 4) * 16;\n    case RGBA_ASTC_5x4_Format:\n      return Math.floor((width + 4) / 5) * Math.floor((height + 3) / 4) * 16;\n    case RGBA_ASTC_5x5_Format:\n      return Math.floor((width + 4) / 5) * Math.floor((height + 4) / 5) * 16;\n    case RGBA_ASTC_6x5_Format:\n      return Math.floor((width + 5) / 6) * Math.floor((height + 4) / 5) * 16;\n    case RGBA_ASTC_6x6_Format:\n      return Math.floor((width + 5) / 6) * Math.floor((height + 5) / 6) * 16;\n    case RGBA_ASTC_8x5_Format:\n      return Math.floor((width + 7) / 8) * Math.floor((height + 4) / 5) * 16;\n    case RGBA_ASTC_8x6_Format:\n      return Math.floor((width + 7) / 8) * Math.floor((height + 5) / 6) * 16;\n    case RGBA_ASTC_8x8_Format:\n      return Math.floor((width + 7) / 8) * Math.floor((height + 7) / 8) * 16;\n    case RGBA_ASTC_10x5_Format:\n      return Math.floor((width + 9) / 10) * Math.floor((height + 4) / 5) * 16;\n    case RGBA_ASTC_10x6_Format:\n      return Math.floor((width + 9) / 10) * Math.floor((height + 5) / 6) * 16;\n    case RGBA_ASTC_10x8_Format:\n      return Math.floor((width + 9) / 10) * Math.floor((height + 7) / 8) * 16;\n    case RGBA_ASTC_10x10_Format:\n      return Math.floor((width + 9) / 10) * Math.floor((height + 9) / 10) * 16;\n    case RGBA_ASTC_12x10_Format:\n      return Math.floor((width + 11) / 12) * Math.floor((height + 9) / 10) * 16;\n    case RGBA_ASTC_12x12_Format:\n      return Math.floor((width + 11) / 12) * Math.floor((height + 11) / 12) * 16;\n    // https://registry.khronos.org/webgl/extensions/EXT_texture_compression_bptc/\n    case RGBA_BPTC_Format:\n    case RGB_BPTC_SIGNED_Format:\n    case RGB_BPTC_UNSIGNED_Format:\n      return Math.ceil(width / 4) * Math.ceil(height / 4) * 16;\n    // https://registry.khronos.org/webgl/extensions/EXT_texture_compression_rgtc/\n    case RED_RGTC1_Format:\n    case SIGNED_RED_RGTC1_Format:\n      return Math.ceil(width / 4) * Math.ceil(height / 4) * 8;\n    case RED_GREEN_RGTC2_Format:\n    case SIGNED_RED_GREEN_RGTC2_Format:\n      return Math.ceil(width / 4) * Math.ceil(height / 4) * 16;\n  }\n  throw new Error(\n    `Unable to determine texture byte length for ${format} format.`\n  );\n}\nfunction getTextureTypeByteLength(type) {\n  switch (type) {\n    case UnsignedByteType:\n    case ByteType:\n      return { byteLength: 1, components: 1 };\n    case UnsignedShortType:\n    case ShortType:\n    case HalfFloatType:\n      return { byteLength: 2, components: 1 };\n    case UnsignedShort4444Type:\n    case UnsignedShort5551Type:\n      return { byteLength: 2, components: 4 };\n    case UnsignedIntType:\n    case IntType:\n    case FloatType:\n      return { byteLength: 4, components: 1 };\n    case UnsignedInt5999Type:\n      return { byteLength: 4, components: 3 };\n  }\n  throw new Error(`Unknown texture type ${type}.`);\n}\nvar TextureUtils = {\n  contain,\n  cover,\n  fill,\n  getByteLength\n};\nfunction WebGLTextures(_gl, extensions, state, properties, capabilities, utils, info) {\n  const multisampledRTTExt = extensions.has(\"WEBGL_multisampled_render_to_texture\") ? extensions.get(\"WEBGL_multisampled_render_to_texture\") : null;\n  const supportsInvalidateFramebuffer = typeof navigator === \"undefined\" ? false : /OculusBrowser/g.test(navigator.userAgent);\n  const _imageDimensions = new Vector2();\n  const _videoTextures = /* @__PURE__ */ new WeakMap();\n  let _canvas2;\n  const _sources = /* @__PURE__ */ new WeakMap();\n  let useOffscreenCanvas = false;\n  try {\n    useOffscreenCanvas = typeof OffscreenCanvas !== \"undefined\" && new OffscreenCanvas(1, 1).getContext(\"2d\") !== null;\n  } catch (err) {\n  }\n  function createCanvas(width, height) {\n    return useOffscreenCanvas ? (\n      // eslint-disable-next-line compat/compat\n      new OffscreenCanvas(width, height)\n    ) : createElementNS(\"canvas\");\n  }\n  function resizeImage(image, needsNewCanvas, maxSize) {\n    let scale = 1;\n    const dimensions = getDimensions(image);\n    if (dimensions.width > maxSize || dimensions.height > maxSize) {\n      scale = maxSize / Math.max(dimensions.width, dimensions.height);\n    }\n    if (scale < 1) {\n      if (typeof HTMLImageElement !== \"undefined\" && image instanceof HTMLImageElement || typeof HTMLCanvasElement !== \"undefined\" && image instanceof HTMLCanvasElement || typeof ImageBitmap !== \"undefined\" && image instanceof ImageBitmap || typeof VideoFrame !== \"undefined\" && image instanceof VideoFrame) {\n        const width = Math.floor(scale * dimensions.width);\n        const height = Math.floor(scale * dimensions.height);\n        if (_canvas2 === void 0) _canvas2 = createCanvas(width, height);\n        const canvas = needsNewCanvas ? createCanvas(width, height) : _canvas2;\n        canvas.width = width;\n        canvas.height = height;\n        const context = canvas.getContext(\"2d\");\n        context.drawImage(image, 0, 0, width, height);\n        console.warn(\"THREE.WebGLRenderer: Texture has been resized from (\" + dimensions.width + \"x\" + dimensions.height + \") to (\" + width + \"x\" + height + \").\");\n        return canvas;\n      } else {\n        if (\"data\" in image) {\n          console.warn(\"THREE.WebGLRenderer: Image in DataTexture is too big (\" + dimensions.width + \"x\" + dimensions.height + \").\");\n        }\n        return image;\n      }\n    }\n    return image;\n  }\n  function textureNeedsGenerateMipmaps(texture) {\n    return texture.generateMipmaps && texture.minFilter !== NearestFilter && texture.minFilter !== LinearFilter;\n  }\n  function generateMipmap(target) {\n    _gl.generateMipmap(target);\n  }\n  function getInternalFormat(internalFormatName, glFormat, glType, colorSpace, forceLinearTransfer = false) {\n    if (internalFormatName !== null) {\n      if (_gl[internalFormatName] !== void 0) return _gl[internalFormatName];\n      console.warn(\"THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '\" + internalFormatName + \"'\");\n    }\n    let internalFormat = glFormat;\n    if (glFormat === _gl.RED) {\n      if (glType === _gl.FLOAT) internalFormat = _gl.R32F;\n      if (glType === _gl.HALF_FLOAT) internalFormat = _gl.R16F;\n      if (glType === _gl.UNSIGNED_BYTE) internalFormat = _gl.R8;\n    }\n    if (glFormat === _gl.RED_INTEGER) {\n      if (glType === _gl.UNSIGNED_BYTE) internalFormat = _gl.R8UI;\n      if (glType === _gl.UNSIGNED_SHORT) internalFormat = _gl.R16UI;\n      if (glType === _gl.UNSIGNED_INT) internalFormat = _gl.R32UI;\n      if (glType === _gl.BYTE) internalFormat = _gl.R8I;\n      if (glType === _gl.SHORT) internalFormat = _gl.R16I;\n      if (glType === _gl.INT) internalFormat = _gl.R32I;\n    }\n    if (glFormat === _gl.RG) {\n      if (glType === _gl.FLOAT) internalFormat = _gl.RG32F;\n      if (glType === _gl.HALF_FLOAT) internalFormat = _gl.RG16F;\n      if (glType === _gl.UNSIGNED_BYTE) internalFormat = _gl.RG8;\n    }\n    if (glFormat === _gl.RG_INTEGER) {\n      if (glType === _gl.UNSIGNED_BYTE) internalFormat = _gl.RG8UI;\n      if (glType === _gl.UNSIGNED_SHORT) internalFormat = _gl.RG16UI;\n      if (glType === _gl.UNSIGNED_INT) internalFormat = _gl.RG32UI;\n      if (glType === _gl.BYTE) internalFormat = _gl.RG8I;\n      if (glType === _gl.SHORT) internalFormat = _gl.RG16I;\n      if (glType === _gl.INT) internalFormat = _gl.RG32I;\n    }\n    if (glFormat === _gl.RGB_INTEGER) {\n      if (glType === _gl.UNSIGNED_BYTE) internalFormat = _gl.RGB8UI;\n      if (glType === _gl.UNSIGNED_SHORT) internalFormat = _gl.RGB16UI;\n      if (glType === _gl.UNSIGNED_INT) internalFormat = _gl.RGB32UI;\n      if (glType === _gl.BYTE) internalFormat = _gl.RGB8I;\n      if (glType === _gl.SHORT) internalFormat = _gl.RGB16I;\n      if (glType === _gl.INT) internalFormat = _gl.RGB32I;\n    }\n    if (glFormat === _gl.RGBA_INTEGER) {\n      if (glType === _gl.UNSIGNED_BYTE) internalFormat = _gl.RGBA8UI;\n      if (glType === _gl.UNSIGNED_SHORT) internalFormat = _gl.RGBA16UI;\n      if (glType === _gl.UNSIGNED_INT) internalFormat = _gl.RGBA32UI;\n      if (glType === _gl.BYTE) internalFormat = _gl.RGBA8I;\n      if (glType === _gl.SHORT) internalFormat = _gl.RGBA16I;\n      if (glType === _gl.INT) internalFormat = _gl.RGBA32I;\n    }\n    if (glFormat === _gl.RGB) {\n      if (glType === _gl.UNSIGNED_INT_5_9_9_9_REV) internalFormat = _gl.RGB9_E5;\n    }\n    if (glFormat === _gl.RGBA) {\n      const transfer = forceLinearTransfer ? LinearTransfer : ColorManagement.getTransfer(colorSpace);\n      if (glType === _gl.FLOAT) internalFormat = _gl.RGBA32F;\n      if (glType === _gl.HALF_FLOAT) internalFormat = _gl.RGBA16F;\n      if (glType === _gl.UNSIGNED_BYTE) internalFormat = transfer === SRGBTransfer ? _gl.SRGB8_ALPHA8 : _gl.RGBA8;\n      if (glType === _gl.UNSIGNED_SHORT_4_4_4_4) internalFormat = _gl.RGBA4;\n      if (glType === _gl.UNSIGNED_SHORT_5_5_5_1) internalFormat = _gl.RGB5_A1;\n    }\n    if (internalFormat === _gl.R16F || internalFormat === _gl.R32F || internalFormat === _gl.RG16F || internalFormat === _gl.RG32F || internalFormat === _gl.RGBA16F || internalFormat === _gl.RGBA32F) {\n      extensions.get(\"EXT_color_buffer_float\");\n    }\n    return internalFormat;\n  }\n  function getInternalDepthFormat(useStencil, depthType) {\n    let glInternalFormat;\n    if (useStencil) {\n      if (depthType === null || depthType === UnsignedIntType || depthType === UnsignedInt248Type) {\n        glInternalFormat = _gl.DEPTH24_STENCIL8;\n      } else if (depthType === FloatType) {\n        glInternalFormat = _gl.DEPTH32F_STENCIL8;\n      } else if (depthType === UnsignedShortType) {\n        glInternalFormat = _gl.DEPTH24_STENCIL8;\n        console.warn(\"DepthTexture: 16 bit depth attachment is not supported with stencil. Using 24-bit attachment.\");\n      }\n    } else {\n      if (depthType === null || depthType === UnsignedIntType || depthType === UnsignedInt248Type) {\n        glInternalFormat = _gl.DEPTH_COMPONENT24;\n      } else if (depthType === FloatType) {\n        glInternalFormat = _gl.DEPTH_COMPONENT32F;\n      } else if (depthType === UnsignedShortType) {\n        glInternalFormat = _gl.DEPTH_COMPONENT16;\n      }\n    }\n    return glInternalFormat;\n  }\n  function getMipLevels(texture, image) {\n    if (textureNeedsGenerateMipmaps(texture) === true || texture.isFramebufferTexture && texture.minFilter !== NearestFilter && texture.minFilter !== LinearFilter) {\n      return Math.log2(Math.max(image.width, image.height)) + 1;\n    } else if (texture.mipmaps !== void 0 && texture.mipmaps.length > 0) {\n      return texture.mipmaps.length;\n    } else if (texture.isCompressedTexture && Array.isArray(texture.image)) {\n      return image.mipmaps.length;\n    } else {\n      return 1;\n    }\n  }\n  function onTextureDispose(event) {\n    const texture = event.target;\n    texture.removeEventListener(\"dispose\", onTextureDispose);\n    deallocateTexture(texture);\n    if (texture.isVideoTexture) {\n      _videoTextures.delete(texture);\n    }\n  }\n  function onRenderTargetDispose(event) {\n    const renderTarget = event.target;\n    renderTarget.removeEventListener(\"dispose\", onRenderTargetDispose);\n    deallocateRenderTarget(renderTarget);\n  }\n  function deallocateTexture(texture) {\n    const textureProperties = properties.get(texture);\n    if (textureProperties.__webglInit === void 0) return;\n    const source = texture.source;\n    const webglTextures = _sources.get(source);\n    if (webglTextures) {\n      const webglTexture = webglTextures[textureProperties.__cacheKey];\n      webglTexture.usedTimes--;\n      if (webglTexture.usedTimes === 0) {\n        deleteTexture(texture);\n      }\n      if (Object.keys(webglTextures).length === 0) {\n        _sources.delete(source);\n      }\n    }\n    properties.remove(texture);\n  }\n  function deleteTexture(texture) {\n    const textureProperties = properties.get(texture);\n    _gl.deleteTexture(textureProperties.__webglTexture);\n    const source = texture.source;\n    const webglTextures = _sources.get(source);\n    delete webglTextures[textureProperties.__cacheKey];\n    info.memory.textures--;\n  }\n  function deallocateRenderTarget(renderTarget) {\n    const renderTargetProperties = properties.get(renderTarget);\n    if (renderTarget.depthTexture) {\n      renderTarget.depthTexture.dispose();\n    }\n    if (renderTarget.isWebGLCubeRenderTarget) {\n      for (let i = 0; i < 6; i++) {\n        if (Array.isArray(renderTargetProperties.__webglFramebuffer[i])) {\n          for (let level = 0; level < renderTargetProperties.__webglFramebuffer[i].length; level++) _gl.deleteFramebuffer(renderTargetProperties.__webglFramebuffer[i][level]);\n        } else {\n          _gl.deleteFramebuffer(renderTargetProperties.__webglFramebuffer[i]);\n        }\n        if (renderTargetProperties.__webglDepthbuffer) _gl.deleteRenderbuffer(renderTargetProperties.__webglDepthbuffer[i]);\n      }\n    } else {\n      if (Array.isArray(renderTargetProperties.__webglFramebuffer)) {\n        for (let level = 0; level < renderTargetProperties.__webglFramebuffer.length; level++) _gl.deleteFramebuffer(renderTargetProperties.__webglFramebuffer[level]);\n      } else {\n        _gl.deleteFramebuffer(renderTargetProperties.__webglFramebuffer);\n      }\n      if (renderTargetProperties.__webglDepthbuffer) _gl.deleteRenderbuffer(renderTargetProperties.__webglDepthbuffer);\n      if (renderTargetProperties.__webglMultisampledFramebuffer) _gl.deleteFramebuffer(renderTargetProperties.__webglMultisampledFramebuffer);\n      if (renderTargetProperties.__webglColorRenderbuffer) {\n        for (let i = 0; i < renderTargetProperties.__webglColorRenderbuffer.length; i++) {\n          if (renderTargetProperties.__webglColorRenderbuffer[i]) _gl.deleteRenderbuffer(renderTargetProperties.__webglColorRenderbuffer[i]);\n        }\n      }\n      if (renderTargetProperties.__webglDepthRenderbuffer) _gl.deleteRenderbuffer(renderTargetProperties.__webglDepthRenderbuffer);\n    }\n    const textures = renderTarget.textures;\n    for (let i = 0, il = textures.length; i < il; i++) {\n      const attachmentProperties = properties.get(textures[i]);\n      if (attachmentProperties.__webglTexture) {\n        _gl.deleteTexture(attachmentProperties.__webglTexture);\n        info.memory.textures--;\n      }\n      properties.remove(textures[i]);\n    }\n    properties.remove(renderTarget);\n  }\n  let textureUnits = 0;\n  function resetTextureUnits() {\n    textureUnits = 0;\n  }\n  function allocateTextureUnit() {\n    const textureUnit = textureUnits;\n    if (textureUnit >= capabilities.maxTextures) {\n      console.warn(\"THREE.WebGLTextures: Trying to use \" + textureUnit + \" texture units while this GPU supports only \" + capabilities.maxTextures);\n    }\n    textureUnits += 1;\n    return textureUnit;\n  }\n  function getTextureCacheKey(texture) {\n    const array = [];\n    array.push(texture.wrapS);\n    array.push(texture.wrapT);\n    array.push(texture.wrapR || 0);\n    array.push(texture.magFilter);\n    array.push(texture.minFilter);\n    array.push(texture.anisotropy);\n    array.push(texture.internalFormat);\n    array.push(texture.format);\n    array.push(texture.type);\n    array.push(texture.generateMipmaps);\n    array.push(texture.premultiplyAlpha);\n    array.push(texture.flipY);\n    array.push(texture.unpackAlignment);\n    array.push(texture.colorSpace);\n    return array.join();\n  }\n  function setTexture2D(texture, slot) {\n    const textureProperties = properties.get(texture);\n    if (texture.isVideoTexture) updateVideoTexture(texture);\n    if (texture.isRenderTargetTexture === false && texture.version > 0 && textureProperties.__version !== texture.version) {\n      const image = texture.image;\n      if (image === null) {\n        console.warn(\"THREE.WebGLRenderer: Texture marked for update but no image data found.\");\n      } else if (image.complete === false) {\n        console.warn(\"THREE.WebGLRenderer: Texture marked for update but image is incomplete\");\n      } else {\n        uploadTexture(textureProperties, texture, slot);\n        return;\n      }\n    }\n    state.bindTexture(_gl.TEXTURE_2D, textureProperties.__webglTexture, _gl.TEXTURE0 + slot);\n  }\n  function setTexture2DArray(texture, slot) {\n    const textureProperties = properties.get(texture);\n    if (texture.version > 0 && textureProperties.__version !== texture.version) {\n      uploadTexture(textureProperties, texture, slot);\n      return;\n    }\n    state.bindTexture(_gl.TEXTURE_2D_ARRAY, textureProperties.__webglTexture, _gl.TEXTURE0 + slot);\n  }\n  function setTexture3D(texture, slot) {\n    const textureProperties = properties.get(texture);\n    if (texture.version > 0 && textureProperties.__version !== texture.version) {\n      uploadTexture(textureProperties, texture, slot);\n      return;\n    }\n    state.bindTexture(_gl.TEXTURE_3D, textureProperties.__webglTexture, _gl.TEXTURE0 + slot);\n  }\n  function setTextureCube(texture, slot) {\n    const textureProperties = properties.get(texture);\n    if (texture.version > 0 && textureProperties.__version !== texture.version) {\n      uploadCubeTexture(textureProperties, texture, slot);\n      return;\n    }\n    state.bindTexture(_gl.TEXTURE_CUBE_MAP, textureProperties.__webglTexture, _gl.TEXTURE0 + slot);\n  }\n  const wrappingToGL = {\n    [RepeatWrapping]: _gl.REPEAT,\n    [ClampToEdgeWrapping]: _gl.CLAMP_TO_EDGE,\n    [MirroredRepeatWrapping]: _gl.MIRRORED_REPEAT\n  };\n  const filterToGL = {\n    [NearestFilter]: _gl.NEAREST,\n    [NearestMipmapNearestFilter]: _gl.NEAREST_MIPMAP_NEAREST,\n    [NearestMipmapLinearFilter]: _gl.NEAREST_MIPMAP_LINEAR,\n    [LinearFilter]: _gl.LINEAR,\n    [LinearMipmapNearestFilter]: _gl.LINEAR_MIPMAP_NEAREST,\n    [LinearMipmapLinearFilter]: _gl.LINEAR_MIPMAP_LINEAR\n  };\n  const compareToGL = {\n    [NeverCompare]: _gl.NEVER,\n    [AlwaysCompare]: _gl.ALWAYS,\n    [LessCompare]: _gl.LESS,\n    [LessEqualCompare]: _gl.LEQUAL,\n    [EqualCompare]: _gl.EQUAL,\n    [GreaterEqualCompare]: _gl.GEQUAL,\n    [GreaterCompare]: _gl.GREATER,\n    [NotEqualCompare]: _gl.NOTEQUAL\n  };\n  function setTextureParameters(textureType, texture) {\n    if (texture.type === FloatType && extensions.has(\"OES_texture_float_linear\") === false && (texture.magFilter === LinearFilter || texture.magFilter === LinearMipmapNearestFilter || texture.magFilter === NearestMipmapLinearFilter || texture.magFilter === LinearMipmapLinearFilter || texture.minFilter === LinearFilter || texture.minFilter === LinearMipmapNearestFilter || texture.minFilter === NearestMipmapLinearFilter || texture.minFilter === LinearMipmapLinearFilter)) {\n      console.warn(\"THREE.WebGLRenderer: Unable to use linear filtering with floating point textures. OES_texture_float_linear not supported on this device.\");\n    }\n    _gl.texParameteri(textureType, _gl.TEXTURE_WRAP_S, wrappingToGL[texture.wrapS]);\n    _gl.texParameteri(textureType, _gl.TEXTURE_WRAP_T, wrappingToGL[texture.wrapT]);\n    if (textureType === _gl.TEXTURE_3D || textureType === _gl.TEXTURE_2D_ARRAY) {\n      _gl.texParameteri(textureType, _gl.TEXTURE_WRAP_R, wrappingToGL[texture.wrapR]);\n    }\n    _gl.texParameteri(textureType, _gl.TEXTURE_MAG_FILTER, filterToGL[texture.magFilter]);\n    _gl.texParameteri(textureType, _gl.TEXTURE_MIN_FILTER, filterToGL[texture.minFilter]);\n    if (texture.compareFunction) {\n      _gl.texParameteri(textureType, _gl.TEXTURE_COMPARE_MODE, _gl.COMPARE_REF_TO_TEXTURE);\n      _gl.texParameteri(textureType, _gl.TEXTURE_COMPARE_FUNC, compareToGL[texture.compareFunction]);\n    }\n    if (extensions.has(\"EXT_texture_filter_anisotropic\") === true) {\n      if (texture.magFilter === NearestFilter) return;\n      if (texture.minFilter !== NearestMipmapLinearFilter && texture.minFilter !== LinearMipmapLinearFilter) return;\n      if (texture.type === FloatType && extensions.has(\"OES_texture_float_linear\") === false) return;\n      if (texture.anisotropy > 1 || properties.get(texture).__currentAnisotropy) {\n        const extension = extensions.get(\"EXT_texture_filter_anisotropic\");\n        _gl.texParameterf(textureType, extension.TEXTURE_MAX_ANISOTROPY_EXT, Math.min(texture.anisotropy, capabilities.getMaxAnisotropy()));\n        properties.get(texture).__currentAnisotropy = texture.anisotropy;\n      }\n    }\n  }\n  function initTexture(textureProperties, texture) {\n    let forceUpload = false;\n    if (textureProperties.__webglInit === void 0) {\n      textureProperties.__webglInit = true;\n      texture.addEventListener(\"dispose\", onTextureDispose);\n    }\n    const source = texture.source;\n    let webglTextures = _sources.get(source);\n    if (webglTextures === void 0) {\n      webglTextures = {};\n      _sources.set(source, webglTextures);\n    }\n    const textureCacheKey = getTextureCacheKey(texture);\n    if (textureCacheKey !== textureProperties.__cacheKey) {\n      if (webglTextures[textureCacheKey] === void 0) {\n        webglTextures[textureCacheKey] = {\n          texture: _gl.createTexture(),\n          usedTimes: 0\n        };\n        info.memory.textures++;\n        forceUpload = true;\n      }\n      webglTextures[textureCacheKey].usedTimes++;\n      const webglTexture = webglTextures[textureProperties.__cacheKey];\n      if (webglTexture !== void 0) {\n        webglTextures[textureProperties.__cacheKey].usedTimes--;\n        if (webglTexture.usedTimes === 0) {\n          deleteTexture(texture);\n        }\n      }\n      textureProperties.__cacheKey = textureCacheKey;\n      textureProperties.__webglTexture = webglTextures[textureCacheKey].texture;\n    }\n    return forceUpload;\n  }\n  function uploadTexture(textureProperties, texture, slot) {\n    let textureType = _gl.TEXTURE_2D;\n    if (texture.isDataArrayTexture || texture.isCompressedArrayTexture) textureType = _gl.TEXTURE_2D_ARRAY;\n    if (texture.isData3DTexture) textureType = _gl.TEXTURE_3D;\n    const forceUpload = initTexture(textureProperties, texture);\n    const source = texture.source;\n    state.bindTexture(textureType, textureProperties.__webglTexture, _gl.TEXTURE0 + slot);\n    const sourceProperties = properties.get(source);\n    if (source.version !== sourceProperties.__version || forceUpload === true) {\n      state.activeTexture(_gl.TEXTURE0 + slot);\n      const workingPrimaries = ColorManagement.getPrimaries(ColorManagement.workingColorSpace);\n      const texturePrimaries = texture.colorSpace === NoColorSpace ? null : ColorManagement.getPrimaries(texture.colorSpace);\n      const unpackConversion = texture.colorSpace === NoColorSpace || workingPrimaries === texturePrimaries ? _gl.NONE : _gl.BROWSER_DEFAULT_WEBGL;\n      _gl.pixelStorei(_gl.UNPACK_FLIP_Y_WEBGL, texture.flipY);\n      _gl.pixelStorei(_gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, texture.premultiplyAlpha);\n      _gl.pixelStorei(_gl.UNPACK_ALIGNMENT, texture.unpackAlignment);\n      _gl.pixelStorei(_gl.UNPACK_COLORSPACE_CONVERSION_WEBGL, unpackConversion);\n      let image = resizeImage(texture.image, false, capabilities.maxTextureSize);\n      image = verifyColorSpace(texture, image);\n      const glFormat = utils.convert(texture.format, texture.colorSpace);\n      const glType = utils.convert(texture.type);\n      let glInternalFormat = getInternalFormat(texture.internalFormat, glFormat, glType, texture.colorSpace, texture.isVideoTexture);\n      setTextureParameters(textureType, texture);\n      let mipmap;\n      const mipmaps = texture.mipmaps;\n      const useTexStorage = texture.isVideoTexture !== true;\n      const allocateMemory = sourceProperties.__version === void 0 || forceUpload === true;\n      const dataReady = source.dataReady;\n      const levels = getMipLevels(texture, image);\n      if (texture.isDepthTexture) {\n        glInternalFormat = getInternalDepthFormat(texture.format === DepthStencilFormat, texture.type);\n        if (allocateMemory) {\n          if (useTexStorage) {\n            state.texStorage2D(_gl.TEXTURE_2D, 1, glInternalFormat, image.width, image.height);\n          } else {\n            state.texImage2D(_gl.TEXTURE_2D, 0, glInternalFormat, image.width, image.height, 0, glFormat, glType, null);\n          }\n        }\n      } else if (texture.isDataTexture) {\n        if (mipmaps.length > 0) {\n          if (useTexStorage && allocateMemory) {\n            state.texStorage2D(_gl.TEXTURE_2D, levels, glInternalFormat, mipmaps[0].width, mipmaps[0].height);\n          }\n          for (let i = 0, il = mipmaps.length; i < il; i++) {\n            mipmap = mipmaps[i];\n            if (useTexStorage) {\n              if (dataReady) {\n                state.texSubImage2D(_gl.TEXTURE_2D, i, 0, 0, mipmap.width, mipmap.height, glFormat, glType, mipmap.data);\n              }\n            } else {\n              state.texImage2D(_gl.TEXTURE_2D, i, glInternalFormat, mipmap.width, mipmap.height, 0, glFormat, glType, mipmap.data);\n            }\n          }\n          texture.generateMipmaps = false;\n        } else {\n          if (useTexStorage) {\n            if (allocateMemory) {\n              state.texStorage2D(_gl.TEXTURE_2D, levels, glInternalFormat, image.width, image.height);\n            }\n            if (dataReady) {\n              state.texSubImage2D(_gl.TEXTURE_2D, 0, 0, 0, image.width, image.height, glFormat, glType, image.data);\n            }\n          } else {\n            state.texImage2D(_gl.TEXTURE_2D, 0, glInternalFormat, image.width, image.height, 0, glFormat, glType, image.data);\n          }\n        }\n      } else if (texture.isCompressedTexture) {\n        if (texture.isCompressedArrayTexture) {\n          if (useTexStorage && allocateMemory) {\n            state.texStorage3D(_gl.TEXTURE_2D_ARRAY, levels, glInternalFormat, mipmaps[0].width, mipmaps[0].height, image.depth);\n          }\n          for (let i = 0, il = mipmaps.length; i < il; i++) {\n            mipmap = mipmaps[i];\n            if (texture.format !== RGBAFormat) {\n              if (glFormat !== null) {\n                if (useTexStorage) {\n                  if (dataReady) {\n                    if (texture.layerUpdates.size > 0) {\n                      const layerByteLength = getByteLength(mipmap.width, mipmap.height, texture.format, texture.type);\n                      for (const layerIndex of texture.layerUpdates) {\n                        const layerData = mipmap.data.subarray(\n                          layerIndex * layerByteLength / mipmap.data.BYTES_PER_ELEMENT,\n                          (layerIndex + 1) * layerByteLength / mipmap.data.BYTES_PER_ELEMENT\n                        );\n                        state.compressedTexSubImage3D(_gl.TEXTURE_2D_ARRAY, i, 0, 0, layerIndex, mipmap.width, mipmap.height, 1, glFormat, layerData, 0, 0);\n                      }\n                      texture.clearLayerUpdates();\n                    } else {\n                      state.compressedTexSubImage3D(_gl.TEXTURE_2D_ARRAY, i, 0, 0, 0, mipmap.width, mipmap.height, image.depth, glFormat, mipmap.data, 0, 0);\n                    }\n                  }\n                } else {\n                  state.compressedTexImage3D(_gl.TEXTURE_2D_ARRAY, i, glInternalFormat, mipmap.width, mipmap.height, image.depth, 0, mipmap.data, 0, 0);\n                }\n              } else {\n                console.warn(\"THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()\");\n              }\n            } else {\n              if (useTexStorage) {\n                if (dataReady) {\n                  state.texSubImage3D(_gl.TEXTURE_2D_ARRAY, i, 0, 0, 0, mipmap.width, mipmap.height, image.depth, glFormat, glType, mipmap.data);\n                }\n              } else {\n                state.texImage3D(_gl.TEXTURE_2D_ARRAY, i, glInternalFormat, mipmap.width, mipmap.height, image.depth, 0, glFormat, glType, mipmap.data);\n              }\n            }\n          }\n        } else {\n          if (useTexStorage && allocateMemory) {\n            state.texStorage2D(_gl.TEXTURE_2D, levels, glInternalFormat, mipmaps[0].width, mipmaps[0].height);\n          }\n          for (let i = 0, il = mipmaps.length; i < il; i++) {\n            mipmap = mipmaps[i];\n            if (texture.format !== RGBAFormat) {\n              if (glFormat !== null) {\n                if (useTexStorage) {\n                  if (dataReady) {\n                    state.compressedTexSubImage2D(_gl.TEXTURE_2D, i, 0, 0, mipmap.width, mipmap.height, glFormat, mipmap.data);\n                  }\n                } else {\n                  state.compressedTexImage2D(_gl.TEXTURE_2D, i, glInternalFormat, mipmap.width, mipmap.height, 0, mipmap.data);\n                }\n              } else {\n                console.warn(\"THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()\");\n              }\n            } else {\n              if (useTexStorage) {\n                if (dataReady) {\n                  state.texSubImage2D(_gl.TEXTURE_2D, i, 0, 0, mipmap.width, mipmap.height, glFormat, glType, mipmap.data);\n                }\n              } else {\n                state.texImage2D(_gl.TEXTURE_2D, i, glInternalFormat, mipmap.width, mipmap.height, 0, glFormat, glType, mipmap.data);\n              }\n            }\n          }\n        }\n      } else if (texture.isDataArrayTexture) {\n        if (useTexStorage) {\n          if (allocateMemory) {\n            state.texStorage3D(_gl.TEXTURE_2D_ARRAY, levels, glInternalFormat, image.width, image.height, image.depth);\n          }\n          if (dataReady) {\n            if (texture.layerUpdates.size > 0) {\n              const layerByteLength = getByteLength(image.width, image.height, texture.format, texture.type);\n              for (const layerIndex of texture.layerUpdates) {\n                const layerData = image.data.subarray(\n                  layerIndex * layerByteLength / image.data.BYTES_PER_ELEMENT,\n                  (layerIndex + 1) * layerByteLength / image.data.BYTES_PER_ELEMENT\n                );\n                state.texSubImage3D(_gl.TEXTURE_2D_ARRAY, 0, 0, 0, layerIndex, image.width, image.height, 1, glFormat, glType, layerData);\n              }\n              texture.clearLayerUpdates();\n            } else {\n              state.texSubImage3D(_gl.TEXTURE_2D_ARRAY, 0, 0, 0, 0, image.width, image.height, image.depth, glFormat, glType, image.data);\n            }\n          }\n        } else {\n          state.texImage3D(_gl.TEXTURE_2D_ARRAY, 0, glInternalFormat, image.width, image.height, image.depth, 0, glFormat, glType, image.data);\n        }\n      } else if (texture.isData3DTexture) {\n        if (useTexStorage) {\n          if (allocateMemory) {\n            state.texStorage3D(_gl.TEXTURE_3D, levels, glInternalFormat, image.width, image.height, image.depth);\n          }\n          if (dataReady) {\n            state.texSubImage3D(_gl.TEXTURE_3D, 0, 0, 0, 0, image.width, image.height, image.depth, glFormat, glType, image.data);\n          }\n        } else {\n          state.texImage3D(_gl.TEXTURE_3D, 0, glInternalFormat, image.width, image.height, image.depth, 0, glFormat, glType, image.data);\n        }\n      } else if (texture.isFramebufferTexture) {\n        if (allocateMemory) {\n          if (useTexStorage) {\n            state.texStorage2D(_gl.TEXTURE_2D, levels, glInternalFormat, image.width, image.height);\n          } else {\n            let width = image.width, height = image.height;\n            for (let i = 0; i < levels; i++) {\n              state.texImage2D(_gl.TEXTURE_2D, i, glInternalFormat, width, height, 0, glFormat, glType, null);\n              width >>= 1;\n              height >>= 1;\n            }\n          }\n        }\n      } else {\n        if (mipmaps.length > 0) {\n          if (useTexStorage && allocateMemory) {\n            const dimensions = getDimensions(mipmaps[0]);\n            state.texStorage2D(_gl.TEXTURE_2D, levels, glInternalFormat, dimensions.width, dimensions.height);\n          }\n          for (let i = 0, il = mipmaps.length; i < il; i++) {\n            mipmap = mipmaps[i];\n            if (useTexStorage) {\n              if (dataReady) {\n                state.texSubImage2D(_gl.TEXTURE_2D, i, 0, 0, glFormat, glType, mipmap);\n              }\n            } else {\n              state.texImage2D(_gl.TEXTURE_2D, i, glInternalFormat, glFormat, glType, mipmap);\n            }\n          }\n          texture.generateMipmaps = false;\n        } else {\n          if (useTexStorage) {\n            if (allocateMemory) {\n              const dimensions = getDimensions(image);\n              state.texStorage2D(_gl.TEXTURE_2D, levels, glInternalFormat, dimensions.width, dimensions.height);\n            }\n            if (dataReady) {\n              state.texSubImage2D(_gl.TEXTURE_2D, 0, 0, 0, glFormat, glType, image);\n            }\n          } else {\n            state.texImage2D(_gl.TEXTURE_2D, 0, glInternalFormat, glFormat, glType, image);\n          }\n        }\n      }\n      if (textureNeedsGenerateMipmaps(texture)) {\n        generateMipmap(textureType);\n      }\n      sourceProperties.__version = source.version;\n      if (texture.onUpdate) texture.onUpdate(texture);\n    }\n    textureProperties.__version = texture.version;\n  }\n  function uploadCubeTexture(textureProperties, texture, slot) {\n    if (texture.image.length !== 6) return;\n    const forceUpload = initTexture(textureProperties, texture);\n    const source = texture.source;\n    state.bindTexture(_gl.TEXTURE_CUBE_MAP, textureProperties.__webglTexture, _gl.TEXTURE0 + slot);\n    const sourceProperties = properties.get(source);\n    if (source.version !== sourceProperties.__version || forceUpload === true) {\n      state.activeTexture(_gl.TEXTURE0 + slot);\n      const workingPrimaries = ColorManagement.getPrimaries(ColorManagement.workingColorSpace);\n      const texturePrimaries = texture.colorSpace === NoColorSpace ? null : ColorManagement.getPrimaries(texture.colorSpace);\n      const unpackConversion = texture.colorSpace === NoColorSpace || workingPrimaries === texturePrimaries ? _gl.NONE : _gl.BROWSER_DEFAULT_WEBGL;\n      _gl.pixelStorei(_gl.UNPACK_FLIP_Y_WEBGL, texture.flipY);\n      _gl.pixelStorei(_gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, texture.premultiplyAlpha);\n      _gl.pixelStorei(_gl.UNPACK_ALIGNMENT, texture.unpackAlignment);\n      _gl.pixelStorei(_gl.UNPACK_COLORSPACE_CONVERSION_WEBGL, unpackConversion);\n      const isCompressed = texture.isCompressedTexture || texture.image[0].isCompressedTexture;\n      const isDataTexture = texture.image[0] && texture.image[0].isDataTexture;\n      const cubeImage = [];\n      for (let i = 0; i < 6; i++) {\n        if (!isCompressed && !isDataTexture) {\n          cubeImage[i] = resizeImage(texture.image[i], true, capabilities.maxCubemapSize);\n        } else {\n          cubeImage[i] = isDataTexture ? texture.image[i].image : texture.image[i];\n        }\n        cubeImage[i] = verifyColorSpace(texture, cubeImage[i]);\n      }\n      const image = cubeImage[0], glFormat = utils.convert(texture.format, texture.colorSpace), glType = utils.convert(texture.type), glInternalFormat = getInternalFormat(texture.internalFormat, glFormat, glType, texture.colorSpace);\n      const useTexStorage = texture.isVideoTexture !== true;\n      const allocateMemory = sourceProperties.__version === void 0 || forceUpload === true;\n      const dataReady = source.dataReady;\n      let levels = getMipLevels(texture, image);\n      setTextureParameters(_gl.TEXTURE_CUBE_MAP, texture);\n      let mipmaps;\n      if (isCompressed) {\n        if (useTexStorage && allocateMemory) {\n          state.texStorage2D(_gl.TEXTURE_CUBE_MAP, levels, glInternalFormat, image.width, image.height);\n        }\n        for (let i = 0; i < 6; i++) {\n          mipmaps = cubeImage[i].mipmaps;\n          for (let j = 0; j < mipmaps.length; j++) {\n            const mipmap = mipmaps[j];\n            if (texture.format !== RGBAFormat) {\n              if (glFormat !== null) {\n                if (useTexStorage) {\n                  if (dataReady) {\n                    state.compressedTexSubImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, j, 0, 0, mipmap.width, mipmap.height, glFormat, mipmap.data);\n                  }\n                } else {\n                  state.compressedTexImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, j, glInternalFormat, mipmap.width, mipmap.height, 0, mipmap.data);\n                }\n              } else {\n                console.warn(\"THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()\");\n              }\n            } else {\n              if (useTexStorage) {\n                if (dataReady) {\n                  state.texSubImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, j, 0, 0, mipmap.width, mipmap.height, glFormat, glType, mipmap.data);\n                }\n              } else {\n                state.texImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, j, glInternalFormat, mipmap.width, mipmap.height, 0, glFormat, glType, mipmap.data);\n              }\n            }\n          }\n        }\n      } else {\n        mipmaps = texture.mipmaps;\n        if (useTexStorage && allocateMemory) {\n          if (mipmaps.length > 0) levels++;\n          const dimensions = getDimensions(cubeImage[0]);\n          state.texStorage2D(_gl.TEXTURE_CUBE_MAP, levels, glInternalFormat, dimensions.width, dimensions.height);\n        }\n        for (let i = 0; i < 6; i++) {\n          if (isDataTexture) {\n            if (useTexStorage) {\n              if (dataReady) {\n                state.texSubImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, 0, 0, cubeImage[i].width, cubeImage[i].height, glFormat, glType, cubeImage[i].data);\n              }\n            } else {\n              state.texImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, glInternalFormat, cubeImage[i].width, cubeImage[i].height, 0, glFormat, glType, cubeImage[i].data);\n            }\n            for (let j = 0; j < mipmaps.length; j++) {\n              const mipmap = mipmaps[j];\n              const mipmapImage = mipmap.image[i].image;\n              if (useTexStorage) {\n                if (dataReady) {\n                  state.texSubImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, j + 1, 0, 0, mipmapImage.width, mipmapImage.height, glFormat, glType, mipmapImage.data);\n                }\n              } else {\n                state.texImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, j + 1, glInternalFormat, mipmapImage.width, mipmapImage.height, 0, glFormat, glType, mipmapImage.data);\n              }\n            }\n          } else {\n            if (useTexStorage) {\n              if (dataReady) {\n                state.texSubImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, 0, 0, glFormat, glType, cubeImage[i]);\n              }\n            } else {\n              state.texImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, glInternalFormat, glFormat, glType, cubeImage[i]);\n            }\n            for (let j = 0; j < mipmaps.length; j++) {\n              const mipmap = mipmaps[j];\n              if (useTexStorage) {\n                if (dataReady) {\n                  state.texSubImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, j + 1, 0, 0, glFormat, glType, mipmap.image[i]);\n                }\n              } else {\n                state.texImage2D(_gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, j + 1, glInternalFormat, glFormat, glType, mipmap.image[i]);\n              }\n            }\n          }\n        }\n      }\n      if (textureNeedsGenerateMipmaps(texture)) {\n        generateMipmap(_gl.TEXTURE_CUBE_MAP);\n      }\n      sourceProperties.__version = source.version;\n      if (texture.onUpdate) texture.onUpdate(texture);\n    }\n    textureProperties.__version = texture.version;\n  }\n  function setupFrameBufferTexture(framebuffer, renderTarget, texture, attachment, textureTarget, level) {\n    const glFormat = utils.convert(texture.format, texture.colorSpace);\n    const glType = utils.convert(texture.type);\n    const glInternalFormat = getInternalFormat(texture.internalFormat, glFormat, glType, texture.colorSpace);\n    const renderTargetProperties = properties.get(renderTarget);\n    if (!renderTargetProperties.__hasExternalTextures) {\n      const width = Math.max(1, renderTarget.width >> level);\n      const height = Math.max(1, renderTarget.height >> level);\n      if (textureTarget === _gl.TEXTURE_3D || textureTarget === _gl.TEXTURE_2D_ARRAY) {\n        state.texImage3D(textureTarget, level, glInternalFormat, width, height, renderTarget.depth, 0, glFormat, glType, null);\n      } else {\n        state.texImage2D(textureTarget, level, glInternalFormat, width, height, 0, glFormat, glType, null);\n      }\n    }\n    state.bindFramebuffer(_gl.FRAMEBUFFER, framebuffer);\n    if (useMultisampledRTT(renderTarget)) {\n      multisampledRTTExt.framebufferTexture2DMultisampleEXT(_gl.FRAMEBUFFER, attachment, textureTarget, properties.get(texture).__webglTexture, 0, getRenderTargetSamples(renderTarget));\n    } else if (textureTarget === _gl.TEXTURE_2D || textureTarget >= _gl.TEXTURE_CUBE_MAP_POSITIVE_X && textureTarget <= _gl.TEXTURE_CUBE_MAP_NEGATIVE_Z) {\n      _gl.framebufferTexture2D(_gl.FRAMEBUFFER, attachment, textureTarget, properties.get(texture).__webglTexture, level);\n    }\n    state.bindFramebuffer(_gl.FRAMEBUFFER, null);\n  }\n  function setupRenderBufferStorage(renderbuffer, renderTarget, isMultisample) {\n    _gl.bindRenderbuffer(_gl.RENDERBUFFER, renderbuffer);\n    if (renderTarget.depthBuffer) {\n      const depthTexture = renderTarget.depthTexture;\n      const depthType = depthTexture && depthTexture.isDepthTexture ? depthTexture.type : null;\n      const glInternalFormat = getInternalDepthFormat(renderTarget.stencilBuffer, depthType);\n      const glAttachmentType = renderTarget.stencilBuffer ? _gl.DEPTH_STENCIL_ATTACHMENT : _gl.DEPTH_ATTACHMENT;\n      const samples = getRenderTargetSamples(renderTarget);\n      const isUseMultisampledRTT = useMultisampledRTT(renderTarget);\n      if (isUseMultisampledRTT) {\n        multisampledRTTExt.renderbufferStorageMultisampleEXT(_gl.RENDERBUFFER, samples, glInternalFormat, renderTarget.width, renderTarget.height);\n      } else if (isMultisample) {\n        _gl.renderbufferStorageMultisample(_gl.RENDERBUFFER, samples, glInternalFormat, renderTarget.width, renderTarget.height);\n      } else {\n        _gl.renderbufferStorage(_gl.RENDERBUFFER, glInternalFormat, renderTarget.width, renderTarget.height);\n      }\n      _gl.framebufferRenderbuffer(_gl.FRAMEBUFFER, glAttachmentType, _gl.RENDERBUFFER, renderbuffer);\n    } else {\n      const textures = renderTarget.textures;\n      for (let i = 0; i < textures.length; i++) {\n        const texture = textures[i];\n        const glFormat = utils.convert(texture.format, texture.colorSpace);\n        const glType = utils.convert(texture.type);\n        const glInternalFormat = getInternalFormat(texture.internalFormat, glFormat, glType, texture.colorSpace);\n        const samples = getRenderTargetSamples(renderTarget);\n        if (isMultisample && useMultisampledRTT(renderTarget) === false) {\n          _gl.renderbufferStorageMultisample(_gl.RENDERBUFFER, samples, glInternalFormat, renderTarget.width, renderTarget.height);\n        } else if (useMultisampledRTT(renderTarget)) {\n          multisampledRTTExt.renderbufferStorageMultisampleEXT(_gl.RENDERBUFFER, samples, glInternalFormat, renderTarget.width, renderTarget.height);\n        } else {\n          _gl.renderbufferStorage(_gl.RENDERBUFFER, glInternalFormat, renderTarget.width, renderTarget.height);\n        }\n      }\n    }\n    _gl.bindRenderbuffer(_gl.RENDERBUFFER, null);\n  }\n  function setupDepthTexture(framebuffer, renderTarget) {\n    const isCube = renderTarget && renderTarget.isWebGLCubeRenderTarget;\n    if (isCube) throw new Error(\"Depth Texture with cube render targets is not supported\");\n    state.bindFramebuffer(_gl.FRAMEBUFFER, framebuffer);\n    if (!(renderTarget.depthTexture && renderTarget.depthTexture.isDepthTexture)) {\n      throw new Error(\"renderTarget.depthTexture must be an instance of THREE.DepthTexture\");\n    }\n    if (!properties.get(renderTarget.depthTexture).__webglTexture || renderTarget.depthTexture.image.width !== renderTarget.width || renderTarget.depthTexture.image.height !== renderTarget.height) {\n      renderTarget.depthTexture.image.width = renderTarget.width;\n      renderTarget.depthTexture.image.height = renderTarget.height;\n      renderTarget.depthTexture.needsUpdate = true;\n    }\n    setTexture2D(renderTarget.depthTexture, 0);\n    const webglDepthTexture = properties.get(renderTarget.depthTexture).__webglTexture;\n    const samples = getRenderTargetSamples(renderTarget);\n    if (renderTarget.depthTexture.format === DepthFormat) {\n      if (useMultisampledRTT(renderTarget)) {\n        multisampledRTTExt.framebufferTexture2DMultisampleEXT(_gl.FRAMEBUFFER, _gl.DEPTH_ATTACHMENT, _gl.TEXTURE_2D, webglDepthTexture, 0, samples);\n      } else {\n        _gl.framebufferTexture2D(_gl.FRAMEBUFFER, _gl.DEPTH_ATTACHMENT, _gl.TEXTURE_2D, webglDepthTexture, 0);\n      }\n    } else if (renderTarget.depthTexture.format === DepthStencilFormat) {\n      if (useMultisampledRTT(renderTarget)) {\n        multisampledRTTExt.framebufferTexture2DMultisampleEXT(_gl.FRAMEBUFFER, _gl.DEPTH_STENCIL_ATTACHMENT, _gl.TEXTURE_2D, webglDepthTexture, 0, samples);\n      } else {\n        _gl.framebufferTexture2D(_gl.FRAMEBUFFER, _gl.DEPTH_STENCIL_ATTACHMENT, _gl.TEXTURE_2D, webglDepthTexture, 0);\n      }\n    } else {\n      throw new Error(\"Unknown depthTexture format\");\n    }\n  }\n  function setupDepthRenderbuffer(renderTarget) {\n    const renderTargetProperties = properties.get(renderTarget);\n    const isCube = renderTarget.isWebGLCubeRenderTarget === true;\n    if (renderTargetProperties.__boundDepthTexture !== renderTarget.depthTexture) {\n      const depthTexture = renderTarget.depthTexture;\n      if (renderTargetProperties.__depthDisposeCallback) {\n        renderTargetProperties.__depthDisposeCallback();\n      }\n      if (depthTexture) {\n        const disposeEvent = () => {\n          delete renderTargetProperties.__boundDepthTexture;\n          delete renderTargetProperties.__depthDisposeCallback;\n          depthTexture.removeEventListener(\"dispose\", disposeEvent);\n        };\n        depthTexture.addEventListener(\"dispose\", disposeEvent);\n        renderTargetProperties.__depthDisposeCallback = disposeEvent;\n      }\n      renderTargetProperties.__boundDepthTexture = depthTexture;\n    }\n    if (renderTarget.depthTexture && !renderTargetProperties.__autoAllocateDepthBuffer) {\n      if (isCube) throw new Error(\"target.depthTexture not supported in Cube render targets\");\n      setupDepthTexture(renderTargetProperties.__webglFramebuffer, renderTarget);\n    } else {\n      if (isCube) {\n        renderTargetProperties.__webglDepthbuffer = [];\n        for (let i = 0; i < 6; i++) {\n          state.bindFramebuffer(_gl.FRAMEBUFFER, renderTargetProperties.__webglFramebuffer[i]);\n          if (renderTargetProperties.__webglDepthbuffer[i] === void 0) {\n            renderTargetProperties.__webglDepthbuffer[i] = _gl.createRenderbuffer();\n            setupRenderBufferStorage(renderTargetProperties.__webglDepthbuffer[i], renderTarget, false);\n          } else {\n            const glAttachmentType = renderTarget.stencilBuffer ? _gl.DEPTH_STENCIL_ATTACHMENT : _gl.DEPTH_ATTACHMENT;\n            const renderbuffer = renderTargetProperties.__webglDepthbuffer[i];\n            _gl.bindRenderbuffer(_gl.RENDERBUFFER, renderbuffer);\n            _gl.framebufferRenderbuffer(_gl.FRAMEBUFFER, glAttachmentType, _gl.RENDERBUFFER, renderbuffer);\n          }\n        }\n      } else {\n        state.bindFramebuffer(_gl.FRAMEBUFFER, renderTargetProperties.__webglFramebuffer);\n        if (renderTargetProperties.__webglDepthbuffer === void 0) {\n          renderTargetProperties.__webglDepthbuffer = _gl.createRenderbuffer();\n          setupRenderBufferStorage(renderTargetProperties.__webglDepthbuffer, renderTarget, false);\n        } else {\n          const glAttachmentType = renderTarget.stencilBuffer ? _gl.DEPTH_STENCIL_ATTACHMENT : _gl.DEPTH_ATTACHMENT;\n          const renderbuffer = renderTargetProperties.__webglDepthbuffer;\n          _gl.bindRenderbuffer(_gl.RENDERBUFFER, renderbuffer);\n          _gl.framebufferRenderbuffer(_gl.FRAMEBUFFER, glAttachmentType, _gl.RENDERBUFFER, renderbuffer);\n        }\n      }\n    }\n    state.bindFramebuffer(_gl.FRAMEBUFFER, null);\n  }\n  function rebindTextures(renderTarget, colorTexture, depthTexture) {\n    const renderTargetProperties = properties.get(renderTarget);\n    if (colorTexture !== void 0) {\n      setupFrameBufferTexture(renderTargetProperties.__webglFramebuffer, renderTarget, renderTarget.texture, _gl.COLOR_ATTACHMENT0, _gl.TEXTURE_2D, 0);\n    }\n    if (depthTexture !== void 0) {\n      setupDepthRenderbuffer(renderTarget);\n    }\n  }\n  function setupRenderTarget(renderTarget) {\n    const texture = renderTarget.texture;\n    const renderTargetProperties = properties.get(renderTarget);\n    const textureProperties = properties.get(texture);\n    renderTarget.addEventListener(\"dispose\", onRenderTargetDispose);\n    const textures = renderTarget.textures;\n    const isCube = renderTarget.isWebGLCubeRenderTarget === true;\n    const isMultipleRenderTargets = textures.length > 1;\n    if (!isMultipleRenderTargets) {\n      if (textureProperties.__webglTexture === void 0) {\n        textureProperties.__webglTexture = _gl.createTexture();\n      }\n      textureProperties.__version = texture.version;\n      info.memory.textures++;\n    }\n    if (isCube) {\n      renderTargetProperties.__webglFramebuffer = [];\n      for (let i = 0; i < 6; i++) {\n        if (texture.mipmaps && texture.mipmaps.length > 0) {\n          renderTargetProperties.__webglFramebuffer[i] = [];\n          for (let level = 0; level < texture.mipmaps.length; level++) {\n            renderTargetProperties.__webglFramebuffer[i][level] = _gl.createFramebuffer();\n          }\n        } else {\n          renderTargetProperties.__webglFramebuffer[i] = _gl.createFramebuffer();\n        }\n      }\n    } else {\n      if (texture.mipmaps && texture.mipmaps.length > 0) {\n        renderTargetProperties.__webglFramebuffer = [];\n        for (let level = 0; level < texture.mipmaps.length; level++) {\n          renderTargetProperties.__webglFramebuffer[level] = _gl.createFramebuffer();\n        }\n      } else {\n        renderTargetProperties.__webglFramebuffer = _gl.createFramebuffer();\n      }\n      if (isMultipleRenderTargets) {\n        for (let i = 0, il = textures.length; i < il; i++) {\n          const attachmentProperties = properties.get(textures[i]);\n          if (attachmentProperties.__webglTexture === void 0) {\n            attachmentProperties.__webglTexture = _gl.createTexture();\n            info.memory.textures++;\n          }\n        }\n      }\n      if (renderTarget.samples > 0 && useMultisampledRTT(renderTarget) === false) {\n        renderTargetProperties.__webglMultisampledFramebuffer = _gl.createFramebuffer();\n        renderTargetProperties.__webglColorRenderbuffer = [];\n        state.bindFramebuffer(_gl.FRAMEBUFFER, renderTargetProperties.__webglMultisampledFramebuffer);\n        for (let i = 0; i < textures.length; i++) {\n          const texture2 = textures[i];\n          renderTargetProperties.__webglColorRenderbuffer[i] = _gl.createRenderbuffer();\n          _gl.bindRenderbuffer(_gl.RENDERBUFFER, renderTargetProperties.__webglColorRenderbuffer[i]);\n          const glFormat = utils.convert(texture2.format, texture2.colorSpace);\n          const glType = utils.convert(texture2.type);\n          const glInternalFormat = getInternalFormat(texture2.internalFormat, glFormat, glType, texture2.colorSpace, renderTarget.isXRRenderTarget === true);\n          const samples = getRenderTargetSamples(renderTarget);\n          _gl.renderbufferStorageMultisample(_gl.RENDERBUFFER, samples, glInternalFormat, renderTarget.width, renderTarget.height);\n          _gl.framebufferRenderbuffer(_gl.FRAMEBUFFER, _gl.COLOR_ATTACHMENT0 + i, _gl.RENDERBUFFER, renderTargetProperties.__webglColorRenderbuffer[i]);\n        }\n        _gl.bindRenderbuffer(_gl.RENDERBUFFER, null);\n        if (renderTarget.depthBuffer) {\n          renderTargetProperties.__webglDepthRenderbuffer = _gl.createRenderbuffer();\n          setupRenderBufferStorage(renderTargetProperties.__webglDepthRenderbuffer, renderTarget, true);\n        }\n        state.bindFramebuffer(_gl.FRAMEBUFFER, null);\n      }\n    }\n    if (isCube) {\n      state.bindTexture(_gl.TEXTURE_CUBE_MAP, textureProperties.__webglTexture);\n      setTextureParameters(_gl.TEXTURE_CUBE_MAP, texture);\n      for (let i = 0; i < 6; i++) {\n        if (texture.mipmaps && texture.mipmaps.length > 0) {\n          for (let level = 0; level < texture.mipmaps.length; level++) {\n            setupFrameBufferTexture(renderTargetProperties.__webglFramebuffer[i][level], renderTarget, texture, _gl.COLOR_ATTACHMENT0, _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, level);\n          }\n        } else {\n          setupFrameBufferTexture(renderTargetProperties.__webglFramebuffer[i], renderTarget, texture, _gl.COLOR_ATTACHMENT0, _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, 0);\n        }\n      }\n      if (textureNeedsGenerateMipmaps(texture)) {\n        generateMipmap(_gl.TEXTURE_CUBE_MAP);\n      }\n      state.unbindTexture();\n    } else if (isMultipleRenderTargets) {\n      for (let i = 0, il = textures.length; i < il; i++) {\n        const attachment = textures[i];\n        const attachmentProperties = properties.get(attachment);\n        state.bindTexture(_gl.TEXTURE_2D, attachmentProperties.__webglTexture);\n        setTextureParameters(_gl.TEXTURE_2D, attachment);\n        setupFrameBufferTexture(renderTargetProperties.__webglFramebuffer, renderTarget, attachment, _gl.COLOR_ATTACHMENT0 + i, _gl.TEXTURE_2D, 0);\n        if (textureNeedsGenerateMipmaps(attachment)) {\n          generateMipmap(_gl.TEXTURE_2D);\n        }\n      }\n      state.unbindTexture();\n    } else {\n      let glTextureType = _gl.TEXTURE_2D;\n      if (renderTarget.isWebGL3DRenderTarget || renderTarget.isWebGLArrayRenderTarget) {\n        glTextureType = renderTarget.isWebGL3DRenderTarget ? _gl.TEXTURE_3D : _gl.TEXTURE_2D_ARRAY;\n      }\n      state.bindTexture(glTextureType, textureProperties.__webglTexture);\n      setTextureParameters(glTextureType, texture);\n      if (texture.mipmaps && texture.mipmaps.length > 0) {\n        for (let level = 0; level < texture.mipmaps.length; level++) {\n          setupFrameBufferTexture(renderTargetProperties.__webglFramebuffer[level], renderTarget, texture, _gl.COLOR_ATTACHMENT0, glTextureType, level);\n        }\n      } else {\n        setupFrameBufferTexture(renderTargetProperties.__webglFramebuffer, renderTarget, texture, _gl.COLOR_ATTACHMENT0, glTextureType, 0);\n      }\n      if (textureNeedsGenerateMipmaps(texture)) {\n        generateMipmap(glTextureType);\n      }\n      state.unbindTexture();\n    }\n    if (renderTarget.depthBuffer) {\n      setupDepthRenderbuffer(renderTarget);\n    }\n  }\n  function updateRenderTargetMipmap(renderTarget) {\n    const textures = renderTarget.textures;\n    for (let i = 0, il = textures.length; i < il; i++) {\n      const texture = textures[i];\n      if (textureNeedsGenerateMipmaps(texture)) {\n        const target = renderTarget.isWebGLCubeRenderTarget ? _gl.TEXTURE_CUBE_MAP : _gl.TEXTURE_2D;\n        const webglTexture = properties.get(texture).__webglTexture;\n        state.bindTexture(target, webglTexture);\n        generateMipmap(target);\n        state.unbindTexture();\n      }\n    }\n  }\n  const invalidationArrayRead = [];\n  const invalidationArrayDraw = [];\n  function updateMultisampleRenderTarget(renderTarget) {\n    if (renderTarget.samples > 0) {\n      if (useMultisampledRTT(renderTarget) === false) {\n        const textures = renderTarget.textures;\n        const width = renderTarget.width;\n        const height = renderTarget.height;\n        let mask = _gl.COLOR_BUFFER_BIT;\n        const depthStyle = renderTarget.stencilBuffer ? _gl.DEPTH_STENCIL_ATTACHMENT : _gl.DEPTH_ATTACHMENT;\n        const renderTargetProperties = properties.get(renderTarget);\n        const isMultipleRenderTargets = textures.length > 1;\n        if (isMultipleRenderTargets) {\n          for (let i = 0; i < textures.length; i++) {\n            state.bindFramebuffer(_gl.FRAMEBUFFER, renderTargetProperties.__webglMultisampledFramebuffer);\n            _gl.framebufferRenderbuffer(_gl.FRAMEBUFFER, _gl.COLOR_ATTACHMENT0 + i, _gl.RENDERBUFFER, null);\n            state.bindFramebuffer(_gl.FRAMEBUFFER, renderTargetProperties.__webglFramebuffer);\n            _gl.framebufferTexture2D(_gl.DRAW_FRAMEBUFFER, _gl.COLOR_ATTACHMENT0 + i, _gl.TEXTURE_2D, null, 0);\n          }\n        }\n        state.bindFramebuffer(_gl.READ_FRAMEBUFFER, renderTargetProperties.__webglMultisampledFramebuffer);\n        state.bindFramebuffer(_gl.DRAW_FRAMEBUFFER, renderTargetProperties.__webglFramebuffer);\n        for (let i = 0; i < textures.length; i++) {\n          if (renderTarget.resolveDepthBuffer) {\n            if (renderTarget.depthBuffer) mask |= _gl.DEPTH_BUFFER_BIT;\n            if (renderTarget.stencilBuffer && renderTarget.resolveStencilBuffer) mask |= _gl.STENCIL_BUFFER_BIT;\n          }\n          if (isMultipleRenderTargets) {\n            _gl.framebufferRenderbuffer(_gl.READ_FRAMEBUFFER, _gl.COLOR_ATTACHMENT0, _gl.RENDERBUFFER, renderTargetProperties.__webglColorRenderbuffer[i]);\n            const webglTexture = properties.get(textures[i]).__webglTexture;\n            _gl.framebufferTexture2D(_gl.DRAW_FRAMEBUFFER, _gl.COLOR_ATTACHMENT0, _gl.TEXTURE_2D, webglTexture, 0);\n          }\n          _gl.blitFramebuffer(0, 0, width, height, 0, 0, width, height, mask, _gl.NEAREST);\n          if (supportsInvalidateFramebuffer === true) {\n            invalidationArrayRead.length = 0;\n            invalidationArrayDraw.length = 0;\n            invalidationArrayRead.push(_gl.COLOR_ATTACHMENT0 + i);\n            if (renderTarget.depthBuffer && renderTarget.resolveDepthBuffer === false) {\n              invalidationArrayRead.push(depthStyle);\n              invalidationArrayDraw.push(depthStyle);\n              _gl.invalidateFramebuffer(_gl.DRAW_FRAMEBUFFER, invalidationArrayDraw);\n            }\n            _gl.invalidateFramebuffer(_gl.READ_FRAMEBUFFER, invalidationArrayRead);\n          }\n        }\n        state.bindFramebuffer(_gl.READ_FRAMEBUFFER, null);\n        state.bindFramebuffer(_gl.DRAW_FRAMEBUFFER, null);\n        if (isMultipleRenderTargets) {\n          for (let i = 0; i < textures.length; i++) {\n            state.bindFramebuffer(_gl.FRAMEBUFFER, renderTargetProperties.__webglMultisampledFramebuffer);\n            _gl.framebufferRenderbuffer(_gl.FRAMEBUFFER, _gl.COLOR_ATTACHMENT0 + i, _gl.RENDERBUFFER, renderTargetProperties.__webglColorRenderbuffer[i]);\n            const webglTexture = properties.get(textures[i]).__webglTexture;\n            state.bindFramebuffer(_gl.FRAMEBUFFER, renderTargetProperties.__webglFramebuffer);\n            _gl.framebufferTexture2D(_gl.DRAW_FRAMEBUFFER, _gl.COLOR_ATTACHMENT0 + i, _gl.TEXTURE_2D, webglTexture, 0);\n          }\n        }\n        state.bindFramebuffer(_gl.DRAW_FRAMEBUFFER, renderTargetProperties.__webglMultisampledFramebuffer);\n      } else {\n        if (renderTarget.depthBuffer && renderTarget.resolveDepthBuffer === false && supportsInvalidateFramebuffer) {\n          const depthStyle = renderTarget.stencilBuffer ? _gl.DEPTH_STENCIL_ATTACHMENT : _gl.DEPTH_ATTACHMENT;\n          _gl.invalidateFramebuffer(_gl.DRAW_FRAMEBUFFER, [depthStyle]);\n        }\n      }\n    }\n  }\n  function getRenderTargetSamples(renderTarget) {\n    return Math.min(capabilities.maxSamples, renderTarget.samples);\n  }\n  function useMultisampledRTT(renderTarget) {\n    const renderTargetProperties = properties.get(renderTarget);\n    return renderTarget.samples > 0 && extensions.has(\"WEBGL_multisampled_render_to_texture\") === true && renderTargetProperties.__useRenderToTexture !== false;\n  }\n  function updateVideoTexture(texture) {\n    const frame = info.render.frame;\n    if (_videoTextures.get(texture) !== frame) {\n      _videoTextures.set(texture, frame);\n      texture.update();\n    }\n  }\n  function verifyColorSpace(texture, image) {\n    const colorSpace = texture.colorSpace;\n    const format = texture.format;\n    const type = texture.type;\n    if (texture.isCompressedTexture === true || texture.isVideoTexture === true) return image;\n    if (colorSpace !== LinearSRGBColorSpace && colorSpace !== NoColorSpace) {\n      if (ColorManagement.getTransfer(colorSpace) === SRGBTransfer) {\n        if (format !== RGBAFormat || type !== UnsignedByteType) {\n          console.warn(\"THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType.\");\n        }\n      } else {\n        console.error(\"THREE.WebGLTextures: Unsupported texture color space:\", colorSpace);\n      }\n    }\n    return image;\n  }\n  function getDimensions(image) {\n    if (typeof HTMLImageElement !== \"undefined\" && image instanceof HTMLImageElement) {\n      _imageDimensions.width = image.naturalWidth || image.width;\n      _imageDimensions.height = image.naturalHeight || image.height;\n    } else if (typeof VideoFrame !== \"undefined\" && image instanceof VideoFrame) {\n      _imageDimensions.width = image.displayWidth;\n      _imageDimensions.height = image.displayHeight;\n    } else {\n      _imageDimensions.width = image.width;\n      _imageDimensions.height = image.height;\n    }\n    return _imageDimensions;\n  }\n  this.allocateTextureUnit = allocateTextureUnit;\n  this.resetTextureUnits = resetTextureUnits;\n  this.setTexture2D = setTexture2D;\n  this.setTexture2DArray = setTexture2DArray;\n  this.setTexture3D = setTexture3D;\n  this.setTextureCube = setTextureCube;\n  this.rebindTextures = rebindTextures;\n  this.setupRenderTarget = setupRenderTarget;\n  this.updateRenderTargetMipmap = updateRenderTargetMipmap;\n  this.updateMultisampleRenderTarget = updateMultisampleRenderTarget;\n  this.setupDepthRenderbuffer = setupDepthRenderbuffer;\n  this.setupFrameBufferTexture = setupFrameBufferTexture;\n  this.useMultisampledRTT = useMultisampledRTT;\n}\nfunction WebGLUtils(gl, extensions) {\n  function convert(p, colorSpace = NoColorSpace) {\n    let extension;\n    const transfer = ColorManagement.getTransfer(colorSpace);\n    if (p === UnsignedByteType) return gl.UNSIGNED_BYTE;\n    if (p === UnsignedShort4444Type) return gl.UNSIGNED_SHORT_4_4_4_4;\n    if (p === UnsignedShort5551Type) return gl.UNSIGNED_SHORT_5_5_5_1;\n    if (p === UnsignedInt5999Type) return gl.UNSIGNED_INT_5_9_9_9_REV;\n    if (p === ByteType) return gl.BYTE;\n    if (p === ShortType) return gl.SHORT;\n    if (p === UnsignedShortType) return gl.UNSIGNED_SHORT;\n    if (p === IntType) return gl.INT;\n    if (p === UnsignedIntType) return gl.UNSIGNED_INT;\n    if (p === FloatType) return gl.FLOAT;\n    if (p === HalfFloatType) return gl.HALF_FLOAT;\n    if (p === AlphaFormat) return gl.ALPHA;\n    if (p === RGBFormat) return gl.RGB;\n    if (p === RGBAFormat) return gl.RGBA;\n    if (p === LuminanceFormat) return gl.LUMINANCE;\n    if (p === LuminanceAlphaFormat) return gl.LUMINANCE_ALPHA;\n    if (p === DepthFormat) return gl.DEPTH_COMPONENT;\n    if (p === DepthStencilFormat) return gl.DEPTH_STENCIL;\n    if (p === RedFormat) return gl.RED;\n    if (p === RedIntegerFormat) return gl.RED_INTEGER;\n    if (p === RGFormat) return gl.RG;\n    if (p === RGIntegerFormat) return gl.RG_INTEGER;\n    if (p === RGBAIntegerFormat) return gl.RGBA_INTEGER;\n    if (p === RGB_S3TC_DXT1_Format || p === RGBA_S3TC_DXT1_Format || p === RGBA_S3TC_DXT3_Format || p === RGBA_S3TC_DXT5_Format) {\n      if (transfer === SRGBTransfer) {\n        extension = extensions.get(\"WEBGL_compressed_texture_s3tc_srgb\");\n        if (extension !== null) {\n          if (p === RGB_S3TC_DXT1_Format) return extension.COMPRESSED_SRGB_S3TC_DXT1_EXT;\n          if (p === RGBA_S3TC_DXT1_Format) return extension.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;\n          if (p === RGBA_S3TC_DXT3_Format) return extension.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;\n          if (p === RGBA_S3TC_DXT5_Format) return extension.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT;\n        } else {\n          return null;\n        }\n      } else {\n        extension = extensions.get(\"WEBGL_compressed_texture_s3tc\");\n        if (extension !== null) {\n          if (p === RGB_S3TC_DXT1_Format) return extension.COMPRESSED_RGB_S3TC_DXT1_EXT;\n          if (p === RGBA_S3TC_DXT1_Format) return extension.COMPRESSED_RGBA_S3TC_DXT1_EXT;\n          if (p === RGBA_S3TC_DXT3_Format) return extension.COMPRESSED_RGBA_S3TC_DXT3_EXT;\n          if (p === RGBA_S3TC_DXT5_Format) return extension.COMPRESSED_RGBA_S3TC_DXT5_EXT;\n        } else {\n          return null;\n        }\n      }\n    }\n    if (p === RGB_PVRTC_4BPPV1_Format || p === RGB_PVRTC_2BPPV1_Format || p === RGBA_PVRTC_4BPPV1_Format || p === RGBA_PVRTC_2BPPV1_Format) {\n      extension = extensions.get(\"WEBGL_compressed_texture_pvrtc\");\n      if (extension !== null) {\n        if (p === RGB_PVRTC_4BPPV1_Format) return extension.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;\n        if (p === RGB_PVRTC_2BPPV1_Format) return extension.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;\n        if (p === RGBA_PVRTC_4BPPV1_Format) return extension.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;\n        if (p === RGBA_PVRTC_2BPPV1_Format) return extension.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG;\n      } else {\n        return null;\n      }\n    }\n    if (p === RGB_ETC1_Format || p === RGB_ETC2_Format || p === RGBA_ETC2_EAC_Format) {\n      extension = extensions.get(\"WEBGL_compressed_texture_etc\");\n      if (extension !== null) {\n        if (p === RGB_ETC1_Format || p === RGB_ETC2_Format) return transfer === SRGBTransfer ? extension.COMPRESSED_SRGB8_ETC2 : extension.COMPRESSED_RGB8_ETC2;\n        if (p === RGBA_ETC2_EAC_Format) return transfer === SRGBTransfer ? extension.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC : extension.COMPRESSED_RGBA8_ETC2_EAC;\n      } else {\n        return null;\n      }\n    }\n    if (p === RGBA_ASTC_4x4_Format || p === RGBA_ASTC_5x4_Format || p === RGBA_ASTC_5x5_Format || p === RGBA_ASTC_6x5_Format || p === RGBA_ASTC_6x6_Format || p === RGBA_ASTC_8x5_Format || p === RGBA_ASTC_8x6_Format || p === RGBA_ASTC_8x8_Format || p === RGBA_ASTC_10x5_Format || p === RGBA_ASTC_10x6_Format || p === RGBA_ASTC_10x8_Format || p === RGBA_ASTC_10x10_Format || p === RGBA_ASTC_12x10_Format || p === RGBA_ASTC_12x12_Format) {\n      extension = extensions.get(\"WEBGL_compressed_texture_astc\");\n      if (extension !== null) {\n        if (p === RGBA_ASTC_4x4_Format) return transfer === SRGBTransfer ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR : extension.COMPRESSED_RGBA_ASTC_4x4_KHR;\n        if (p === RGBA_ASTC_5x4_Format) return transfer === SRGBTransfer ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR : extension.COMPRESSED_RGBA_ASTC_5x4_KHR;\n        if (p === RGBA_ASTC_5x5_Format) return transfer === SRGBTransfer ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR : extension.COMPRESSED_RGBA_ASTC_5x5_KHR;\n        if (p === RGBA_ASTC_6x5_Format) return transfer === SRGBTransfer ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR : extension.COMPRESSED_RGBA_ASTC_6x5_KHR;\n        if (p === RGBA_ASTC_6x6_Format) return transfer === SRGBTransfer ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR : extension.COMPRESSED_RGBA_ASTC_6x6_KHR;\n        if (p === RGBA_ASTC_8x5_Format) return transfer === SRGBTransfer ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR : extension.COMPRESSED_RGBA_ASTC_8x5_KHR;\n        if (p === RGBA_ASTC_8x6_Format) return transfer === SRGBTransfer ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR : extension.COMPRESSED_RGBA_ASTC_8x6_KHR;\n        if (p === RGBA_ASTC_8x8_Format) return transfer === SRGBTransfer ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR : extension.COMPRESSED_RGBA_ASTC_8x8_KHR;\n        if (p === RGBA_ASTC_10x5_Format) return transfer === SRGBTransfer ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR : extension.COMPRESSED_RGBA_ASTC_10x5_KHR;\n        if (p === RGBA_ASTC_10x6_Format) return transfer === SRGBTransfer ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR : extension.COMPRESSED_RGBA_ASTC_10x6_KHR;\n        if (p === RGBA_ASTC_10x8_Format) return transfer === SRGBTransfer ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR : extension.COMPRESSED_RGBA_ASTC_10x8_KHR;\n        if (p === RGBA_ASTC_10x10_Format) return transfer === SRGBTransfer ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR : extension.COMPRESSED_RGBA_ASTC_10x10_KHR;\n        if (p === RGBA_ASTC_12x10_Format) return transfer === SRGBTransfer ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR : extension.COMPRESSED_RGBA_ASTC_12x10_KHR;\n        if (p === RGBA_ASTC_12x12_Format) return transfer === SRGBTransfer ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR : extension.COMPRESSED_RGBA_ASTC_12x12_KHR;\n      } else {\n        return null;\n      }\n    }\n    if (p === RGBA_BPTC_Format || p === RGB_BPTC_SIGNED_Format || p === RGB_BPTC_UNSIGNED_Format) {\n      extension = extensions.get(\"EXT_texture_compression_bptc\");\n      if (extension !== null) {\n        if (p === RGBA_BPTC_Format) return transfer === SRGBTransfer ? extension.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT : extension.COMPRESSED_RGBA_BPTC_UNORM_EXT;\n        if (p === RGB_BPTC_SIGNED_Format) return extension.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT;\n        if (p === RGB_BPTC_UNSIGNED_Format) return extension.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT;\n      } else {\n        return null;\n      }\n    }\n    if (p === RED_RGTC1_Format || p === SIGNED_RED_RGTC1_Format || p === RED_GREEN_RGTC2_Format || p === SIGNED_RED_GREEN_RGTC2_Format) {\n      extension = extensions.get(\"EXT_texture_compression_rgtc\");\n      if (extension !== null) {\n        if (p === RGBA_BPTC_Format) return extension.COMPRESSED_RED_RGTC1_EXT;\n        if (p === SIGNED_RED_RGTC1_Format) return extension.COMPRESSED_SIGNED_RED_RGTC1_EXT;\n        if (p === RED_GREEN_RGTC2_Format) return extension.COMPRESSED_RED_GREEN_RGTC2_EXT;\n        if (p === SIGNED_RED_GREEN_RGTC2_Format) return extension.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT;\n      } else {\n        return null;\n      }\n    }\n    if (p === UnsignedInt248Type) return gl.UNSIGNED_INT_24_8;\n    return gl[p] !== void 0 ? gl[p] : null;\n  }\n  return { convert };\n}\nvar ArrayCamera = class extends PerspectiveCamera {\n  constructor(array = []) {\n    super();\n    this.isArrayCamera = true;\n    this.cameras = array;\n  }\n};\nvar Group = class extends Object3D {\n  constructor() {\n    super();\n    this.isGroup = true;\n    this.type = \"Group\";\n  }\n};\nvar _moveEvent = { type: \"move\" };\nvar WebXRController = class {\n  constructor() {\n    this._targetRay = null;\n    this._grip = null;\n    this._hand = null;\n  }\n  getHandSpace() {\n    if (this._hand === null) {\n      this._hand = new Group();\n      this._hand.matrixAutoUpdate = false;\n      this._hand.visible = false;\n      this._hand.joints = {};\n      this._hand.inputState = { pinching: false };\n    }\n    return this._hand;\n  }\n  getTargetRaySpace() {\n    if (this._targetRay === null) {\n      this._targetRay = new Group();\n      this._targetRay.matrixAutoUpdate = false;\n      this._targetRay.visible = false;\n      this._targetRay.hasLinearVelocity = false;\n      this._targetRay.linearVelocity = new Vector3();\n      this._targetRay.hasAngularVelocity = false;\n      this._targetRay.angularVelocity = new Vector3();\n    }\n    return this._targetRay;\n  }\n  getGripSpace() {\n    if (this._grip === null) {\n      this._grip = new Group();\n      this._grip.matrixAutoUpdate = false;\n      this._grip.visible = false;\n      this._grip.hasLinearVelocity = false;\n      this._grip.linearVelocity = new Vector3();\n      this._grip.hasAngularVelocity = false;\n      this._grip.angularVelocity = new Vector3();\n    }\n    return this._grip;\n  }\n  dispatchEvent(event) {\n    if (this._targetRay !== null) {\n      this._targetRay.dispatchEvent(event);\n    }\n    if (this._grip !== null) {\n      this._grip.dispatchEvent(event);\n    }\n    if (this._hand !== null) {\n      this._hand.dispatchEvent(event);\n    }\n    return this;\n  }\n  connect(inputSource) {\n    if (inputSource && inputSource.hand) {\n      const hand = this._hand;\n      if (hand) {\n        for (const inputjoint of inputSource.hand.values()) {\n          this._getHandJoint(hand, inputjoint);\n        }\n      }\n    }\n    this.dispatchEvent({ type: \"connected\", data: inputSource });\n    return this;\n  }\n  disconnect(inputSource) {\n    this.dispatchEvent({ type: \"disconnected\", data: inputSource });\n    if (this._targetRay !== null) {\n      this._targetRay.visible = false;\n    }\n    if (this._grip !== null) {\n      this._grip.visible = false;\n    }\n    if (this._hand !== null) {\n      this._hand.visible = false;\n    }\n    return this;\n  }\n  update(inputSource, frame, referenceSpace) {\n    let inputPose = null;\n    let gripPose = null;\n    let handPose = null;\n    const targetRay = this._targetRay;\n    const grip = this._grip;\n    const hand = this._hand;\n    if (inputSource && frame.session.visibilityState !== \"visible-blurred\") {\n      if (hand && inputSource.hand) {\n        handPose = true;\n        for (const inputjoint of inputSource.hand.values()) {\n          const jointPose = frame.getJointPose(inputjoint, referenceSpace);\n          const joint = this._getHandJoint(hand, inputjoint);\n          if (jointPose !== null) {\n            joint.matrix.fromArray(jointPose.transform.matrix);\n            joint.matrix.decompose(joint.position, joint.rotation, joint.scale);\n            joint.matrixWorldNeedsUpdate = true;\n            joint.jointRadius = jointPose.radius;\n          }\n          joint.visible = jointPose !== null;\n        }\n        const indexTip = hand.joints[\"index-finger-tip\"];\n        const thumbTip = hand.joints[\"thumb-tip\"];\n        const distance = indexTip.position.distanceTo(thumbTip.position);\n        const distanceToPinch = 0.02;\n        const threshold = 5e-3;\n        if (hand.inputState.pinching && distance > distanceToPinch + threshold) {\n          hand.inputState.pinching = false;\n          this.dispatchEvent({\n            type: \"pinchend\",\n            handedness: inputSource.handedness,\n            target: this\n          });\n        } else if (!hand.inputState.pinching && distance <= distanceToPinch - threshold) {\n          hand.inputState.pinching = true;\n          this.dispatchEvent({\n            type: \"pinchstart\",\n            handedness: inputSource.handedness,\n            target: this\n          });\n        }\n      } else {\n        if (grip !== null && inputSource.gripSpace) {\n          gripPose = frame.getPose(inputSource.gripSpace, referenceSpace);\n          if (gripPose !== null) {\n            grip.matrix.fromArray(gripPose.transform.matrix);\n            grip.matrix.decompose(grip.position, grip.rotation, grip.scale);\n            grip.matrixWorldNeedsUpdate = true;\n            if (gripPose.linearVelocity) {\n              grip.hasLinearVelocity = true;\n              grip.linearVelocity.copy(gripPose.linearVelocity);\n            } else {\n              grip.hasLinearVelocity = false;\n            }\n            if (gripPose.angularVelocity) {\n              grip.hasAngularVelocity = true;\n              grip.angularVelocity.copy(gripPose.angularVelocity);\n            } else {\n              grip.hasAngularVelocity = false;\n            }\n          }\n        }\n      }\n      if (targetRay !== null) {\n        inputPose = frame.getPose(inputSource.targetRaySpace, referenceSpace);\n        if (inputPose === null && gripPose !== null) {\n          inputPose = gripPose;\n        }\n        if (inputPose !== null) {\n          targetRay.matrix.fromArray(inputPose.transform.matrix);\n          targetRay.matrix.decompose(targetRay.position, targetRay.rotation, targetRay.scale);\n          targetRay.matrixWorldNeedsUpdate = true;\n          if (inputPose.linearVelocity) {\n            targetRay.hasLinearVelocity = true;\n            targetRay.linearVelocity.copy(inputPose.linearVelocity);\n          } else {\n            targetRay.hasLinearVelocity = false;\n          }\n          if (inputPose.angularVelocity) {\n            targetRay.hasAngularVelocity = true;\n            targetRay.angularVelocity.copy(inputPose.angularVelocity);\n          } else {\n            targetRay.hasAngularVelocity = false;\n          }\n          this.dispatchEvent(_moveEvent);\n        }\n      }\n    }\n    if (targetRay !== null) {\n      targetRay.visible = inputPose !== null;\n    }\n    if (grip !== null) {\n      grip.visible = gripPose !== null;\n    }\n    if (hand !== null) {\n      hand.visible = handPose !== null;\n    }\n    return this;\n  }\n  // private method\n  _getHandJoint(hand, inputjoint) {\n    if (hand.joints[inputjoint.jointName] === void 0) {\n      const joint = new Group();\n      joint.matrixAutoUpdate = false;\n      joint.visible = false;\n      hand.joints[inputjoint.jointName] = joint;\n      hand.add(joint);\n    }\n    return hand.joints[inputjoint.jointName];\n  }\n};\nvar _occlusion_vertex = `\nvoid main() {\n\n\tgl_Position = vec4( position, 1.0 );\n\n}`;\nvar _occlusion_fragment = `\nuniform sampler2DArray depthColor;\nuniform float depthWidth;\nuniform float depthHeight;\n\nvoid main() {\n\n\tvec2 coord = vec2( gl_FragCoord.x / depthWidth, gl_FragCoord.y / depthHeight );\n\n\tif ( coord.x >= 1.0 ) {\n\n\t\tgl_FragDepth = texture( depthColor, vec3( coord.x - 1.0, coord.y, 1 ) ).r;\n\n\t} else {\n\n\t\tgl_FragDepth = texture( depthColor, vec3( coord.x, coord.y, 0 ) ).r;\n\n\t}\n\n}`;\nvar WebXRDepthSensing = class {\n  constructor() {\n    this.texture = null;\n    this.mesh = null;\n    this.depthNear = 0;\n    this.depthFar = 0;\n  }\n  init(renderer, depthData, renderState) {\n    if (this.texture === null) {\n      const texture = new Texture();\n      const texProps = renderer.properties.get(texture);\n      texProps.__webglTexture = depthData.texture;\n      if (depthData.depthNear != renderState.depthNear || depthData.depthFar != renderState.depthFar) {\n        this.depthNear = depthData.depthNear;\n        this.depthFar = depthData.depthFar;\n      }\n      this.texture = texture;\n    }\n  }\n  getMesh(cameraXR) {\n    if (this.texture !== null) {\n      if (this.mesh === null) {\n        const viewport = cameraXR.cameras[0].viewport;\n        const material = new ShaderMaterial({\n          vertexShader: _occlusion_vertex,\n          fragmentShader: _occlusion_fragment,\n          uniforms: {\n            depthColor: { value: this.texture },\n            depthWidth: { value: viewport.z },\n            depthHeight: { value: viewport.w }\n          }\n        });\n        this.mesh = new Mesh(new PlaneGeometry(20, 20), material);\n      }\n    }\n    return this.mesh;\n  }\n  reset() {\n    this.texture = null;\n    this.mesh = null;\n  }\n  getDepthTexture() {\n    return this.texture;\n  }\n};\nvar WebXRManager = class extends EventDispatcher {\n  constructor(renderer, gl) {\n    super();\n    const scope = this;\n    let session = null;\n    let framebufferScaleFactor = 1;\n    let referenceSpace = null;\n    let referenceSpaceType = \"local-floor\";\n    let foveation = 1;\n    let customReferenceSpace = null;\n    let pose = null;\n    let glBinding = null;\n    let glProjLayer = null;\n    let glBaseLayer = null;\n    let xrFrame = null;\n    const depthSensing = new WebXRDepthSensing();\n    const attributes = gl.getContextAttributes();\n    let initialRenderTarget = null;\n    let newRenderTarget = null;\n    const controllers = [];\n    const controllerInputSources = [];\n    const currentSize = new Vector2();\n    let currentPixelRatio = null;\n    const cameraL = new PerspectiveCamera();\n    cameraL.layers.enable(1);\n    cameraL.viewport = new Vector4();\n    const cameraR = new PerspectiveCamera();\n    cameraR.layers.enable(2);\n    cameraR.viewport = new Vector4();\n    const cameras = [cameraL, cameraR];\n    const cameraXR = new ArrayCamera();\n    cameraXR.layers.enable(1);\n    cameraXR.layers.enable(2);\n    let _currentDepthNear = null;\n    let _currentDepthFar = null;\n    this.cameraAutoUpdate = true;\n    this.enabled = false;\n    this.isPresenting = false;\n    this.getController = function(index) {\n      let controller = controllers[index];\n      if (controller === void 0) {\n        controller = new WebXRController();\n        controllers[index] = controller;\n      }\n      return controller.getTargetRaySpace();\n    };\n    this.getControllerGrip = function(index) {\n      let controller = controllers[index];\n      if (controller === void 0) {\n        controller = new WebXRController();\n        controllers[index] = controller;\n      }\n      return controller.getGripSpace();\n    };\n    this.getHand = function(index) {\n      let controller = controllers[index];\n      if (controller === void 0) {\n        controller = new WebXRController();\n        controllers[index] = controller;\n      }\n      return controller.getHandSpace();\n    };\n    function onSessionEvent(event) {\n      const controllerIndex = controllerInputSources.indexOf(event.inputSource);\n      if (controllerIndex === -1) {\n        return;\n      }\n      const controller = controllers[controllerIndex];\n      if (controller !== void 0) {\n        controller.update(event.inputSource, event.frame, customReferenceSpace || referenceSpace);\n        controller.dispatchEvent({ type: event.type, data: event.inputSource });\n      }\n    }\n    function onSessionEnd() {\n      session.removeEventListener(\"select\", onSessionEvent);\n      session.removeEventListener(\"selectstart\", onSessionEvent);\n      session.removeEventListener(\"selectend\", onSessionEvent);\n      session.removeEventListener(\"squeeze\", onSessionEvent);\n      session.removeEventListener(\"squeezestart\", onSessionEvent);\n      session.removeEventListener(\"squeezeend\", onSessionEvent);\n      session.removeEventListener(\"end\", onSessionEnd);\n      session.removeEventListener(\"inputsourceschange\", onInputSourcesChange);\n      for (let i = 0; i < controllers.length; i++) {\n        const inputSource = controllerInputSources[i];\n        if (inputSource === null) continue;\n        controllerInputSources[i] = null;\n        controllers[i].disconnect(inputSource);\n      }\n      _currentDepthNear = null;\n      _currentDepthFar = null;\n      depthSensing.reset();\n      renderer.setRenderTarget(initialRenderTarget);\n      glBaseLayer = null;\n      glProjLayer = null;\n      glBinding = null;\n      session = null;\n      newRenderTarget = null;\n      animation.stop();\n      scope.isPresenting = false;\n      renderer.setPixelRatio(currentPixelRatio);\n      renderer.setSize(currentSize.width, currentSize.height, false);\n      scope.dispatchEvent({ type: \"sessionend\" });\n    }\n    this.setFramebufferScaleFactor = function(value) {\n      framebufferScaleFactor = value;\n      if (scope.isPresenting === true) {\n        console.warn(\"THREE.WebXRManager: Cannot change framebuffer scale while presenting.\");\n      }\n    };\n    this.setReferenceSpaceType = function(value) {\n      referenceSpaceType = value;\n      if (scope.isPresenting === true) {\n        console.warn(\"THREE.WebXRManager: Cannot change reference space type while presenting.\");\n      }\n    };\n    this.getReferenceSpace = function() {\n      return customReferenceSpace || referenceSpace;\n    };\n    this.setReferenceSpace = function(space) {\n      customReferenceSpace = space;\n    };\n    this.getBaseLayer = function() {\n      return glProjLayer !== null ? glProjLayer : glBaseLayer;\n    };\n    this.getBinding = function() {\n      return glBinding;\n    };\n    this.getFrame = function() {\n      return xrFrame;\n    };\n    this.getSession = function() {\n      return session;\n    };\n    this.setSession = function(value) {\n      return __async(this, null, function* () {\n        session = value;\n        if (session !== null) {\n          initialRenderTarget = renderer.getRenderTarget();\n          session.addEventListener(\"select\", onSessionEvent);\n          session.addEventListener(\"selectstart\", onSessionEvent);\n          session.addEventListener(\"selectend\", onSessionEvent);\n          session.addEventListener(\"squeeze\", onSessionEvent);\n          session.addEventListener(\"squeezestart\", onSessionEvent);\n          session.addEventListener(\"squeezeend\", onSessionEvent);\n          session.addEventListener(\"end\", onSessionEnd);\n          session.addEventListener(\"inputsourceschange\", onInputSourcesChange);\n          if (attributes.xrCompatible !== true) {\n            yield gl.makeXRCompatible();\n          }\n          currentPixelRatio = renderer.getPixelRatio();\n          renderer.getSize(currentSize);\n          if (session.renderState.layers === void 0) {\n            const layerInit = {\n              antialias: attributes.antialias,\n              alpha: true,\n              depth: attributes.depth,\n              stencil: attributes.stencil,\n              framebufferScaleFactor\n            };\n            glBaseLayer = new XRWebGLLayer(session, gl, layerInit);\n            session.updateRenderState({ baseLayer: glBaseLayer });\n            renderer.setPixelRatio(1);\n            renderer.setSize(glBaseLayer.framebufferWidth, glBaseLayer.framebufferHeight, false);\n            newRenderTarget = new WebGLRenderTarget(\n              glBaseLayer.framebufferWidth,\n              glBaseLayer.framebufferHeight,\n              {\n                format: RGBAFormat,\n                type: UnsignedByteType,\n                colorSpace: renderer.outputColorSpace,\n                stencilBuffer: attributes.stencil\n              }\n            );\n          } else {\n            let depthFormat = null;\n            let depthType = null;\n            let glDepthFormat = null;\n            if (attributes.depth) {\n              glDepthFormat = attributes.stencil ? gl.DEPTH24_STENCIL8 : gl.DEPTH_COMPONENT24;\n              depthFormat = attributes.stencil ? DepthStencilFormat : DepthFormat;\n              depthType = attributes.stencil ? UnsignedInt248Type : UnsignedIntType;\n            }\n            const projectionlayerInit = {\n              colorFormat: gl.RGBA8,\n              depthFormat: glDepthFormat,\n              scaleFactor: framebufferScaleFactor\n            };\n            glBinding = new XRWebGLBinding(session, gl);\n            glProjLayer = glBinding.createProjectionLayer(projectionlayerInit);\n            session.updateRenderState({ layers: [glProjLayer] });\n            renderer.setPixelRatio(1);\n            renderer.setSize(glProjLayer.textureWidth, glProjLayer.textureHeight, false);\n            newRenderTarget = new WebGLRenderTarget(\n              glProjLayer.textureWidth,\n              glProjLayer.textureHeight,\n              {\n                format: RGBAFormat,\n                type: UnsignedByteType,\n                depthTexture: new DepthTexture(glProjLayer.textureWidth, glProjLayer.textureHeight, depthType, void 0, void 0, void 0, void 0, void 0, void 0, depthFormat),\n                stencilBuffer: attributes.stencil,\n                colorSpace: renderer.outputColorSpace,\n                samples: attributes.antialias ? 4 : 0,\n                resolveDepthBuffer: glProjLayer.ignoreDepthValues === false\n              }\n            );\n          }\n          newRenderTarget.isXRRenderTarget = true;\n          this.setFoveation(foveation);\n          customReferenceSpace = null;\n          referenceSpace = yield session.requestReferenceSpace(referenceSpaceType);\n          animation.setContext(session);\n          animation.start();\n          scope.isPresenting = true;\n          scope.dispatchEvent({ type: \"sessionstart\" });\n        }\n      });\n    };\n    this.getEnvironmentBlendMode = function() {\n      if (session !== null) {\n        return session.environmentBlendMode;\n      }\n    };\n    this.getDepthTexture = function() {\n      return depthSensing.getDepthTexture();\n    };\n    function onInputSourcesChange(event) {\n      for (let i = 0; i < event.removed.length; i++) {\n        const inputSource = event.removed[i];\n        const index = controllerInputSources.indexOf(inputSource);\n        if (index >= 0) {\n          controllerInputSources[index] = null;\n          controllers[index].disconnect(inputSource);\n        }\n      }\n      for (let i = 0; i < event.added.length; i++) {\n        const inputSource = event.added[i];\n        let controllerIndex = controllerInputSources.indexOf(inputSource);\n        if (controllerIndex === -1) {\n          for (let i2 = 0; i2 < controllers.length; i2++) {\n            if (i2 >= controllerInputSources.length) {\n              controllerInputSources.push(inputSource);\n              controllerIndex = i2;\n              break;\n            } else if (controllerInputSources[i2] === null) {\n              controllerInputSources[i2] = inputSource;\n              controllerIndex = i2;\n              break;\n            }\n          }\n          if (controllerIndex === -1) break;\n        }\n        const controller = controllers[controllerIndex];\n        if (controller) {\n          controller.connect(inputSource);\n        }\n      }\n    }\n    const cameraLPos = new Vector3();\n    const cameraRPos = new Vector3();\n    function setProjectionFromUnion(camera, cameraL2, cameraR2) {\n      cameraLPos.setFromMatrixPosition(cameraL2.matrixWorld);\n      cameraRPos.setFromMatrixPosition(cameraR2.matrixWorld);\n      const ipd = cameraLPos.distanceTo(cameraRPos);\n      const projL = cameraL2.projectionMatrix.elements;\n      const projR = cameraR2.projectionMatrix.elements;\n      const near = projL[14] / (projL[10] - 1);\n      const far = projL[14] / (projL[10] + 1);\n      const topFov = (projL[9] + 1) / projL[5];\n      const bottomFov = (projL[9] - 1) / projL[5];\n      const leftFov = (projL[8] - 1) / projL[0];\n      const rightFov = (projR[8] + 1) / projR[0];\n      const left = near * leftFov;\n      const right = near * rightFov;\n      const zOffset = ipd / (-leftFov + rightFov);\n      const xOffset = zOffset * -leftFov;\n      cameraL2.matrixWorld.decompose(camera.position, camera.quaternion, camera.scale);\n      camera.translateX(xOffset);\n      camera.translateZ(zOffset);\n      camera.matrixWorld.compose(camera.position, camera.quaternion, camera.scale);\n      camera.matrixWorldInverse.copy(camera.matrixWorld).invert();\n      if (projL[10] === -1) {\n        camera.projectionMatrix.copy(cameraL2.projectionMatrix);\n        camera.projectionMatrixInverse.copy(cameraL2.projectionMatrixInverse);\n      } else {\n        const near2 = near + zOffset;\n        const far2 = far + zOffset;\n        const left2 = left - xOffset;\n        const right2 = right + (ipd - xOffset);\n        const top2 = topFov * far / far2 * near2;\n        const bottom2 = bottomFov * far / far2 * near2;\n        camera.projectionMatrix.makePerspective(left2, right2, top2, bottom2, near2, far2);\n        camera.projectionMatrixInverse.copy(camera.projectionMatrix).invert();\n      }\n    }\n    function updateCamera(camera, parent) {\n      if (parent === null) {\n        camera.matrixWorld.copy(camera.matrix);\n      } else {\n        camera.matrixWorld.multiplyMatrices(parent.matrixWorld, camera.matrix);\n      }\n      camera.matrixWorldInverse.copy(camera.matrixWorld).invert();\n    }\n    this.updateCamera = function(camera) {\n      if (session === null) return;\n      let depthNear = camera.near;\n      let depthFar = camera.far;\n      if (depthSensing.texture !== null) {\n        if (depthSensing.depthNear > 0) depthNear = depthSensing.depthNear;\n        if (depthSensing.depthFar > 0) depthFar = depthSensing.depthFar;\n      }\n      cameraXR.near = cameraR.near = cameraL.near = depthNear;\n      cameraXR.far = cameraR.far = cameraL.far = depthFar;\n      if (_currentDepthNear !== cameraXR.near || _currentDepthFar !== cameraXR.far) {\n        session.updateRenderState({\n          depthNear: cameraXR.near,\n          depthFar: cameraXR.far\n        });\n        _currentDepthNear = cameraXR.near;\n        _currentDepthFar = cameraXR.far;\n      }\n      const parent = camera.parent;\n      const cameras2 = cameraXR.cameras;\n      updateCamera(cameraXR, parent);\n      for (let i = 0; i < cameras2.length; i++) {\n        updateCamera(cameras2[i], parent);\n      }\n      if (cameras2.length === 2) {\n        setProjectionFromUnion(cameraXR, cameraL, cameraR);\n      } else {\n        cameraXR.projectionMatrix.copy(cameraL.projectionMatrix);\n      }\n      updateUserCamera(camera, cameraXR, parent);\n    };\n    function updateUserCamera(camera, cameraXR2, parent) {\n      if (parent === null) {\n        camera.matrix.copy(cameraXR2.matrixWorld);\n      } else {\n        camera.matrix.copy(parent.matrixWorld);\n        camera.matrix.invert();\n        camera.matrix.multiply(cameraXR2.matrixWorld);\n      }\n      camera.matrix.decompose(camera.position, camera.quaternion, camera.scale);\n      camera.updateMatrixWorld(true);\n      camera.projectionMatrix.copy(cameraXR2.projectionMatrix);\n      camera.projectionMatrixInverse.copy(cameraXR2.projectionMatrixInverse);\n      if (camera.isPerspectiveCamera) {\n        camera.fov = RAD2DEG * 2 * Math.atan(1 / camera.projectionMatrix.elements[5]);\n        camera.zoom = 1;\n      }\n    }\n    this.getCamera = function() {\n      return cameraXR;\n    };\n    this.getFoveation = function() {\n      if (glProjLayer === null && glBaseLayer === null) {\n        return void 0;\n      }\n      return foveation;\n    };\n    this.setFoveation = function(value) {\n      foveation = value;\n      if (glProjLayer !== null) {\n        glProjLayer.fixedFoveation = value;\n      }\n      if (glBaseLayer !== null && glBaseLayer.fixedFoveation !== void 0) {\n        glBaseLayer.fixedFoveation = value;\n      }\n    };\n    this.hasDepthSensing = function() {\n      return depthSensing.texture !== null;\n    };\n    this.getDepthSensingMesh = function() {\n      return depthSensing.getMesh(cameraXR);\n    };\n    let onAnimationFrameCallback = null;\n    function onAnimationFrame(time, frame) {\n      pose = frame.getViewerPose(customReferenceSpace || referenceSpace);\n      xrFrame = frame;\n      if (pose !== null) {\n        const views = pose.views;\n        if (glBaseLayer !== null) {\n          renderer.setRenderTargetFramebuffer(newRenderTarget, glBaseLayer.framebuffer);\n          renderer.setRenderTarget(newRenderTarget);\n        }\n        let cameraXRNeedsUpdate = false;\n        if (views.length !== cameraXR.cameras.length) {\n          cameraXR.cameras.length = 0;\n          cameraXRNeedsUpdate = true;\n        }\n        for (let i = 0; i < views.length; i++) {\n          const view = views[i];\n          let viewport = null;\n          if (glBaseLayer !== null) {\n            viewport = glBaseLayer.getViewport(view);\n          } else {\n            const glSubImage = glBinding.getViewSubImage(glProjLayer, view);\n            viewport = glSubImage.viewport;\n            if (i === 0) {\n              renderer.setRenderTargetTextures(\n                newRenderTarget,\n                glSubImage.colorTexture,\n                glProjLayer.ignoreDepthValues ? void 0 : glSubImage.depthStencilTexture\n              );\n              renderer.setRenderTarget(newRenderTarget);\n            }\n          }\n          let camera = cameras[i];\n          if (camera === void 0) {\n            camera = new PerspectiveCamera();\n            camera.layers.enable(i);\n            camera.viewport = new Vector4();\n            cameras[i] = camera;\n          }\n          camera.matrix.fromArray(view.transform.matrix);\n          camera.matrix.decompose(camera.position, camera.quaternion, camera.scale);\n          camera.projectionMatrix.fromArray(view.projectionMatrix);\n          camera.projectionMatrixInverse.copy(camera.projectionMatrix).invert();\n          camera.viewport.set(viewport.x, viewport.y, viewport.width, viewport.height);\n          if (i === 0) {\n            cameraXR.matrix.copy(camera.matrix);\n            cameraXR.matrix.decompose(cameraXR.position, cameraXR.quaternion, cameraXR.scale);\n          }\n          if (cameraXRNeedsUpdate === true) {\n            cameraXR.cameras.push(camera);\n          }\n        }\n        const enabledFeatures = session.enabledFeatures;\n        if (enabledFeatures && enabledFeatures.includes(\"depth-sensing\")) {\n          const depthData = glBinding.getDepthInformation(views[0]);\n          if (depthData && depthData.isValid && depthData.texture) {\n            depthSensing.init(renderer, depthData, session.renderState);\n          }\n        }\n      }\n      for (let i = 0; i < controllers.length; i++) {\n        const inputSource = controllerInputSources[i];\n        const controller = controllers[i];\n        if (inputSource !== null && controller !== void 0) {\n          controller.update(inputSource, frame, customReferenceSpace || referenceSpace);\n        }\n      }\n      if (onAnimationFrameCallback) onAnimationFrameCallback(time, frame);\n      if (frame.detectedPlanes) {\n        scope.dispatchEvent({ type: \"planesdetected\", data: frame });\n      }\n      xrFrame = null;\n    }\n    const animation = new WebGLAnimation();\n    animation.setAnimationLoop(onAnimationFrame);\n    this.setAnimationLoop = function(callback) {\n      onAnimationFrameCallback = callback;\n    };\n    this.dispose = function() {\n    };\n  }\n};\nvar _e1 = /* @__PURE__ */ new Euler();\nvar _m1 = /* @__PURE__ */ new Matrix4();\nfunction WebGLMaterials(renderer, properties) {\n  function refreshTransformUniform(map, uniform) {\n    if (map.matrixAutoUpdate === true) {\n      map.updateMatrix();\n    }\n    uniform.value.copy(map.matrix);\n  }\n  function refreshFogUniforms(uniforms, fog) {\n    fog.color.getRGB(uniforms.fogColor.value, getUnlitUniformColorSpace(renderer));\n    if (fog.isFog) {\n      uniforms.fogNear.value = fog.near;\n      uniforms.fogFar.value = fog.far;\n    } else if (fog.isFogExp2) {\n      uniforms.fogDensity.value = fog.density;\n    }\n  }\n  function refreshMaterialUniforms(uniforms, material, pixelRatio, height, transmissionRenderTarget) {\n    if (material.isMeshBasicMaterial) {\n      refreshUniformsCommon(uniforms, material);\n    } else if (material.isMeshLambertMaterial) {\n      refreshUniformsCommon(uniforms, material);\n    } else if (material.isMeshToonMaterial) {\n      refreshUniformsCommon(uniforms, material);\n      refreshUniformsToon(uniforms, material);\n    } else if (material.isMeshPhongMaterial) {\n      refreshUniformsCommon(uniforms, material);\n      refreshUniformsPhong(uniforms, material);\n    } else if (material.isMeshStandardMaterial) {\n      refreshUniformsCommon(uniforms, material);\n      refreshUniformsStandard(uniforms, material);\n      if (material.isMeshPhysicalMaterial) {\n        refreshUniformsPhysical(uniforms, material, transmissionRenderTarget);\n      }\n    } else if (material.isMeshMatcapMaterial) {\n      refreshUniformsCommon(uniforms, material);\n      refreshUniformsMatcap(uniforms, material);\n    } else if (material.isMeshDepthMaterial) {\n      refreshUniformsCommon(uniforms, material);\n    } else if (material.isMeshDistanceMaterial) {\n      refreshUniformsCommon(uniforms, material);\n      refreshUniformsDistance(uniforms, material);\n    } else if (material.isMeshNormalMaterial) {\n      refreshUniformsCommon(uniforms, material);\n    } else if (material.isLineBasicMaterial) {\n      refreshUniformsLine(uniforms, material);\n      if (material.isLineDashedMaterial) {\n        refreshUniformsDash(uniforms, material);\n      }\n    } else if (material.isPointsMaterial) {\n      refreshUniformsPoints(uniforms, material, pixelRatio, height);\n    } else if (material.isSpriteMaterial) {\n      refreshUniformsSprites(uniforms, material);\n    } else if (material.isShadowMaterial) {\n      uniforms.color.value.copy(material.color);\n      uniforms.opacity.value = material.opacity;\n    } else if (material.isShaderMaterial) {\n      material.uniformsNeedUpdate = false;\n    }\n  }\n  function refreshUniformsCommon(uniforms, material) {\n    uniforms.opacity.value = material.opacity;\n    if (material.color) {\n      uniforms.diffuse.value.copy(material.color);\n    }\n    if (material.emissive) {\n      uniforms.emissive.value.copy(material.emissive).multiplyScalar(material.emissiveIntensity);\n    }\n    if (material.map) {\n      uniforms.map.value = material.map;\n      refreshTransformUniform(material.map, uniforms.mapTransform);\n    }\n    if (material.alphaMap) {\n      uniforms.alphaMap.value = material.alphaMap;\n      refreshTransformUniform(material.alphaMap, uniforms.alphaMapTransform);\n    }\n    if (material.bumpMap) {\n      uniforms.bumpMap.value = material.bumpMap;\n      refreshTransformUniform(material.bumpMap, uniforms.bumpMapTransform);\n      uniforms.bumpScale.value = material.bumpScale;\n      if (material.side === BackSide) {\n        uniforms.bumpScale.value *= -1;\n      }\n    }\n    if (material.normalMap) {\n      uniforms.normalMap.value = material.normalMap;\n      refreshTransformUniform(material.normalMap, uniforms.normalMapTransform);\n      uniforms.normalScale.value.copy(material.normalScale);\n      if (material.side === BackSide) {\n        uniforms.normalScale.value.negate();\n      }\n    }\n    if (material.displacementMap) {\n      uniforms.displacementMap.value = material.displacementMap;\n      refreshTransformUniform(material.displacementMap, uniforms.displacementMapTransform);\n      uniforms.displacementScale.value = material.displacementScale;\n      uniforms.displacementBias.value = material.displacementBias;\n    }\n    if (material.emissiveMap) {\n      uniforms.emissiveMap.value = material.emissiveMap;\n      refreshTransformUniform(material.emissiveMap, uniforms.emissiveMapTransform);\n    }\n    if (material.specularMap) {\n      uniforms.specularMap.value = material.specularMap;\n      refreshTransformUniform(material.specularMap, uniforms.specularMapTransform);\n    }\n    if (material.alphaTest > 0) {\n      uniforms.alphaTest.value = material.alphaTest;\n    }\n    const materialProperties = properties.get(material);\n    const envMap = materialProperties.envMap;\n    const envMapRotation = materialProperties.envMapRotation;\n    if (envMap) {\n      uniforms.envMap.value = envMap;\n      _e1.copy(envMapRotation);\n      _e1.x *= -1;\n      _e1.y *= -1;\n      _e1.z *= -1;\n      if (envMap.isCubeTexture && envMap.isRenderTargetTexture === false) {\n        _e1.y *= -1;\n        _e1.z *= -1;\n      }\n      uniforms.envMapRotation.value.setFromMatrix4(_m1.makeRotationFromEuler(_e1));\n      uniforms.flipEnvMap.value = envMap.isCubeTexture && envMap.isRenderTargetTexture === false ? -1 : 1;\n      uniforms.reflectivity.value = material.reflectivity;\n      uniforms.ior.value = material.ior;\n      uniforms.refractionRatio.value = material.refractionRatio;\n    }\n    if (material.lightMap) {\n      uniforms.lightMap.value = material.lightMap;\n      uniforms.lightMapIntensity.value = material.lightMapIntensity;\n      refreshTransformUniform(material.lightMap, uniforms.lightMapTransform);\n    }\n    if (material.aoMap) {\n      uniforms.aoMap.value = material.aoMap;\n      uniforms.aoMapIntensity.value = material.aoMapIntensity;\n      refreshTransformUniform(material.aoMap, uniforms.aoMapTransform);\n    }\n  }\n  function refreshUniformsLine(uniforms, material) {\n    uniforms.diffuse.value.copy(material.color);\n    uniforms.opacity.value = material.opacity;\n    if (material.map) {\n      uniforms.map.value = material.map;\n      refreshTransformUniform(material.map, uniforms.mapTransform);\n    }\n  }\n  function refreshUniformsDash(uniforms, material) {\n    uniforms.dashSize.value = material.dashSize;\n    uniforms.totalSize.value = material.dashSize + material.gapSize;\n    uniforms.scale.value = material.scale;\n  }\n  function refreshUniformsPoints(uniforms, material, pixelRatio, height) {\n    uniforms.diffuse.value.copy(material.color);\n    uniforms.opacity.value = material.opacity;\n    uniforms.size.value = material.size * pixelRatio;\n    uniforms.scale.value = height * 0.5;\n    if (material.map) {\n      uniforms.map.value = material.map;\n      refreshTransformUniform(material.map, uniforms.uvTransform);\n    }\n    if (material.alphaMap) {\n      uniforms.alphaMap.value = material.alphaMap;\n      refreshTransformUniform(material.alphaMap, uniforms.alphaMapTransform);\n    }\n    if (material.alphaTest > 0) {\n      uniforms.alphaTest.value = material.alphaTest;\n    }\n  }\n  function refreshUniformsSprites(uniforms, material) {\n    uniforms.diffuse.value.copy(material.color);\n    uniforms.opacity.value = material.opacity;\n    uniforms.rotation.value = material.rotation;\n    if (material.map) {\n      uniforms.map.value = material.map;\n      refreshTransformUniform(material.map, uniforms.mapTransform);\n    }\n    if (material.alphaMap) {\n      uniforms.alphaMap.value = material.alphaMap;\n      refreshTransformUniform(material.alphaMap, uniforms.alphaMapTransform);\n    }\n    if (material.alphaTest > 0) {\n      uniforms.alphaTest.value = material.alphaTest;\n    }\n  }\n  function refreshUniformsPhong(uniforms, material) {\n    uniforms.specular.value.copy(material.specular);\n    uniforms.shininess.value = Math.max(material.shininess, 1e-4);\n  }\n  function refreshUniformsToon(uniforms, material) {\n    if (material.gradientMap) {\n      uniforms.gradientMap.value = material.gradientMap;\n    }\n  }\n  function refreshUniformsStandard(uniforms, material) {\n    uniforms.metalness.value = material.metalness;\n    if (material.metalnessMap) {\n      uniforms.metalnessMap.value = material.metalnessMap;\n      refreshTransformUniform(material.metalnessMap, uniforms.metalnessMapTransform);\n    }\n    uniforms.roughness.value = material.roughness;\n    if (material.roughnessMap) {\n      uniforms.roughnessMap.value = material.roughnessMap;\n      refreshTransformUniform(material.roughnessMap, uniforms.roughnessMapTransform);\n    }\n    if (material.envMap) {\n      uniforms.envMapIntensity.value = material.envMapIntensity;\n    }\n  }\n  function refreshUniformsPhysical(uniforms, material, transmissionRenderTarget) {\n    uniforms.ior.value = material.ior;\n    if (material.sheen > 0) {\n      uniforms.sheenColor.value.copy(material.sheenColor).multiplyScalar(material.sheen);\n      uniforms.sheenRoughness.value = material.sheenRoughness;\n      if (material.sheenColorMap) {\n        uniforms.sheenColorMap.value = material.sheenColorMap;\n        refreshTransformUniform(material.sheenColorMap, uniforms.sheenColorMapTransform);\n      }\n      if (material.sheenRoughnessMap) {\n        uniforms.sheenRoughnessMap.value = material.sheenRoughnessMap;\n        refreshTransformUniform(material.sheenRoughnessMap, uniforms.sheenRoughnessMapTransform);\n      }\n    }\n    if (material.clearcoat > 0) {\n      uniforms.clearcoat.value = material.clearcoat;\n      uniforms.clearcoatRoughness.value = material.clearcoatRoughness;\n      if (material.clearcoatMap) {\n        uniforms.clearcoatMap.value = material.clearcoatMap;\n        refreshTransformUniform(material.clearcoatMap, uniforms.clearcoatMapTransform);\n      }\n      if (material.clearcoatRoughnessMap) {\n        uniforms.clearcoatRoughnessMap.value = material.clearcoatRoughnessMap;\n        refreshTransformUniform(material.clearcoatRoughnessMap, uniforms.clearcoatRoughnessMapTransform);\n      }\n      if (material.clearcoatNormalMap) {\n        uniforms.clearcoatNormalMap.value = material.clearcoatNormalMap;\n        refreshTransformUniform(material.clearcoatNormalMap, uniforms.clearcoatNormalMapTransform);\n        uniforms.clearcoatNormalScale.value.copy(material.clearcoatNormalScale);\n        if (material.side === BackSide) {\n          uniforms.clearcoatNormalScale.value.negate();\n        }\n      }\n    }\n    if (material.dispersion > 0) {\n      uniforms.dispersion.value = material.dispersion;\n    }\n    if (material.iridescence > 0) {\n      uniforms.iridescence.value = material.iridescence;\n      uniforms.iridescenceIOR.value = material.iridescenceIOR;\n      uniforms.iridescenceThicknessMinimum.value = material.iridescenceThicknessRange[0];\n      uniforms.iridescenceThicknessMaximum.value = material.iridescenceThicknessRange[1];\n      if (material.iridescenceMap) {\n        uniforms.iridescenceMap.value = material.iridescenceMap;\n        refreshTransformUniform(material.iridescenceMap, uniforms.iridescenceMapTransform);\n      }\n      if (material.iridescenceThicknessMap) {\n        uniforms.iridescenceThicknessMap.value = material.iridescenceThicknessMap;\n        refreshTransformUniform(material.iridescenceThicknessMap, uniforms.iridescenceThicknessMapTransform);\n      }\n    }\n    if (material.transmission > 0) {\n      uniforms.transmission.value = material.transmission;\n      uniforms.transmissionSamplerMap.value = transmissionRenderTarget.texture;\n      uniforms.transmissionSamplerSize.value.set(transmissionRenderTarget.width, transmissionRenderTarget.height);\n      if (material.transmissionMap) {\n        uniforms.transmissionMap.value = material.transmissionMap;\n        refreshTransformUniform(material.transmissionMap, uniforms.transmissionMapTransform);\n      }\n      uniforms.thickness.value = material.thickness;\n      if (material.thicknessMap) {\n        uniforms.thicknessMap.value = material.thicknessMap;\n        refreshTransformUniform(material.thicknessMap, uniforms.thicknessMapTransform);\n      }\n      uniforms.attenuationDistance.value = material.attenuationDistance;\n      uniforms.attenuationColor.value.copy(material.attenuationColor);\n    }\n    if (material.anisotropy > 0) {\n      uniforms.anisotropyVector.value.set(material.anisotropy * Math.cos(material.anisotropyRotation), material.anisotropy * Math.sin(material.anisotropyRotation));\n      if (material.anisotropyMap) {\n        uniforms.anisotropyMap.value = material.anisotropyMap;\n        refreshTransformUniform(material.anisotropyMap, uniforms.anisotropyMapTransform);\n      }\n    }\n    uniforms.specularIntensity.value = material.specularIntensity;\n    uniforms.specularColor.value.copy(material.specularColor);\n    if (material.specularColorMap) {\n      uniforms.specularColorMap.value = material.specularColorMap;\n      refreshTransformUniform(material.specularColorMap, uniforms.specularColorMapTransform);\n    }\n    if (material.specularIntensityMap) {\n      uniforms.specularIntensityMap.value = material.specularIntensityMap;\n      refreshTransformUniform(material.specularIntensityMap, uniforms.specularIntensityMapTransform);\n    }\n  }\n  function refreshUniformsMatcap(uniforms, material) {\n    if (material.matcap) {\n      uniforms.matcap.value = material.matcap;\n    }\n  }\n  function refreshUniformsDistance(uniforms, material) {\n    const light = properties.get(material).light;\n    uniforms.referencePosition.value.setFromMatrixPosition(light.matrixWorld);\n    uniforms.nearDistance.value = light.shadow.camera.near;\n    uniforms.farDistance.value = light.shadow.camera.far;\n  }\n  return {\n    refreshFogUniforms,\n    refreshMaterialUniforms\n  };\n}\nfunction WebGLUniformsGroups(gl, info, capabilities, state) {\n  let buffers = {};\n  let updateList = {};\n  let allocatedBindingPoints = [];\n  const maxBindingPoints = gl.getParameter(gl.MAX_UNIFORM_BUFFER_BINDINGS);\n  function bind(uniformsGroup, program) {\n    const webglProgram = program.program;\n    state.uniformBlockBinding(uniformsGroup, webglProgram);\n  }\n  function update(uniformsGroup, program) {\n    let buffer = buffers[uniformsGroup.id];\n    if (buffer === void 0) {\n      prepareUniformsGroup(uniformsGroup);\n      buffer = createBuffer(uniformsGroup);\n      buffers[uniformsGroup.id] = buffer;\n      uniformsGroup.addEventListener(\"dispose\", onUniformsGroupsDispose);\n    }\n    const webglProgram = program.program;\n    state.updateUBOMapping(uniformsGroup, webglProgram);\n    const frame = info.render.frame;\n    if (updateList[uniformsGroup.id] !== frame) {\n      updateBufferData(uniformsGroup);\n      updateList[uniformsGroup.id] = frame;\n    }\n  }\n  function createBuffer(uniformsGroup) {\n    const bindingPointIndex = allocateBindingPointIndex();\n    uniformsGroup.__bindingPointIndex = bindingPointIndex;\n    const buffer = gl.createBuffer();\n    const size = uniformsGroup.__size;\n    const usage = uniformsGroup.usage;\n    gl.bindBuffer(gl.UNIFORM_BUFFER, buffer);\n    gl.bufferData(gl.UNIFORM_BUFFER, size, usage);\n    gl.bindBuffer(gl.UNIFORM_BUFFER, null);\n    gl.bindBufferBase(gl.UNIFORM_BUFFER, bindingPointIndex, buffer);\n    return buffer;\n  }\n  function allocateBindingPointIndex() {\n    for (let i = 0; i < maxBindingPoints; i++) {\n      if (allocatedBindingPoints.indexOf(i) === -1) {\n        allocatedBindingPoints.push(i);\n        return i;\n      }\n    }\n    console.error(\"THREE.WebGLRenderer: Maximum number of simultaneously usable uniforms groups reached.\");\n    return 0;\n  }\n  function updateBufferData(uniformsGroup) {\n    const buffer = buffers[uniformsGroup.id];\n    const uniforms = uniformsGroup.uniforms;\n    const cache = uniformsGroup.__cache;\n    gl.bindBuffer(gl.UNIFORM_BUFFER, buffer);\n    for (let i = 0, il = uniforms.length; i < il; i++) {\n      const uniformArray = Array.isArray(uniforms[i]) ? uniforms[i] : [uniforms[i]];\n      for (let j = 0, jl = uniformArray.length; j < jl; j++) {\n        const uniform = uniformArray[j];\n        if (hasUniformChanged(uniform, i, j, cache) === true) {\n          const offset = uniform.__offset;\n          const values = Array.isArray(uniform.value) ? uniform.value : [uniform.value];\n          let arrayOffset = 0;\n          for (let k = 0; k < values.length; k++) {\n            const value = values[k];\n            const info2 = getUniformSize(value);\n            if (typeof value === \"number\" || typeof value === \"boolean\") {\n              uniform.__data[0] = value;\n              gl.bufferSubData(gl.UNIFORM_BUFFER, offset + arrayOffset, uniform.__data);\n            } else if (value.isMatrix3) {\n              uniform.__data[0] = value.elements[0];\n              uniform.__data[1] = value.elements[1];\n              uniform.__data[2] = value.elements[2];\n              uniform.__data[3] = 0;\n              uniform.__data[4] = value.elements[3];\n              uniform.__data[5] = value.elements[4];\n              uniform.__data[6] = value.elements[5];\n              uniform.__data[7] = 0;\n              uniform.__data[8] = value.elements[6];\n              uniform.__data[9] = value.elements[7];\n              uniform.__data[10] = value.elements[8];\n              uniform.__data[11] = 0;\n            } else {\n              value.toArray(uniform.__data, arrayOffset);\n              arrayOffset += info2.storage / Float32Array.BYTES_PER_ELEMENT;\n            }\n          }\n          gl.bufferSubData(gl.UNIFORM_BUFFER, offset, uniform.__data);\n        }\n      }\n    }\n    gl.bindBuffer(gl.UNIFORM_BUFFER, null);\n  }\n  function hasUniformChanged(uniform, index, indexArray, cache) {\n    const value = uniform.value;\n    const indexString = index + \"_\" + indexArray;\n    if (cache[indexString] === void 0) {\n      if (typeof value === \"number\" || typeof value === \"boolean\") {\n        cache[indexString] = value;\n      } else {\n        cache[indexString] = value.clone();\n      }\n      return true;\n    } else {\n      const cachedObject = cache[indexString];\n      if (typeof value === \"number\" || typeof value === \"boolean\") {\n        if (cachedObject !== value) {\n          cache[indexString] = value;\n          return true;\n        }\n      } else {\n        if (cachedObject.equals(value) === false) {\n          cachedObject.copy(value);\n          return true;\n        }\n      }\n    }\n    return false;\n  }\n  function prepareUniformsGroup(uniformsGroup) {\n    const uniforms = uniformsGroup.uniforms;\n    let offset = 0;\n    const chunkSize = 16;\n    for (let i = 0, l = uniforms.length; i < l; i++) {\n      const uniformArray = Array.isArray(uniforms[i]) ? uniforms[i] : [uniforms[i]];\n      for (let j = 0, jl = uniformArray.length; j < jl; j++) {\n        const uniform = uniformArray[j];\n        const values = Array.isArray(uniform.value) ? uniform.value : [uniform.value];\n        for (let k = 0, kl = values.length; k < kl; k++) {\n          const value = values[k];\n          const info2 = getUniformSize(value);\n          const chunkOffset2 = offset % chunkSize;\n          const chunkPadding = chunkOffset2 % info2.boundary;\n          const chunkStart = chunkOffset2 + chunkPadding;\n          offset += chunkPadding;\n          if (chunkStart !== 0 && chunkSize - chunkStart < info2.storage) {\n            offset += chunkSize - chunkStart;\n          }\n          uniform.__data = new Float32Array(info2.storage / Float32Array.BYTES_PER_ELEMENT);\n          uniform.__offset = offset;\n          offset += info2.storage;\n        }\n      }\n    }\n    const chunkOffset = offset % chunkSize;\n    if (chunkOffset > 0) offset += chunkSize - chunkOffset;\n    uniformsGroup.__size = offset;\n    uniformsGroup.__cache = {};\n    return this;\n  }\n  function getUniformSize(value) {\n    const info2 = {\n      boundary: 0,\n      // bytes\n      storage: 0\n      // bytes\n    };\n    if (typeof value === \"number\" || typeof value === \"boolean\") {\n      info2.boundary = 4;\n      info2.storage = 4;\n    } else if (value.isVector2) {\n      info2.boundary = 8;\n      info2.storage = 8;\n    } else if (value.isVector3 || value.isColor) {\n      info2.boundary = 16;\n      info2.storage = 12;\n    } else if (value.isVector4) {\n      info2.boundary = 16;\n      info2.storage = 16;\n    } else if (value.isMatrix3) {\n      info2.boundary = 48;\n      info2.storage = 48;\n    } else if (value.isMatrix4) {\n      info2.boundary = 64;\n      info2.storage = 64;\n    } else if (value.isTexture) {\n      console.warn(\"THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group.\");\n    } else {\n      console.warn(\"THREE.WebGLRenderer: Unsupported uniform value type.\", value);\n    }\n    return info2;\n  }\n  function onUniformsGroupsDispose(event) {\n    const uniformsGroup = event.target;\n    uniformsGroup.removeEventListener(\"dispose\", onUniformsGroupsDispose);\n    const index = allocatedBindingPoints.indexOf(uniformsGroup.__bindingPointIndex);\n    allocatedBindingPoints.splice(index, 1);\n    gl.deleteBuffer(buffers[uniformsGroup.id]);\n    delete buffers[uniformsGroup.id];\n    delete updateList[uniformsGroup.id];\n  }\n  function dispose() {\n    for (const id in buffers) {\n      gl.deleteBuffer(buffers[id]);\n    }\n    allocatedBindingPoints = [];\n    buffers = {};\n    updateList = {};\n  }\n  return {\n    bind,\n    update,\n    dispose\n  };\n}\nvar WebGLRenderer = class {\n  constructor(parameters = {}) {\n    const {\n      canvas = createCanvasElement(),\n      context = null,\n      depth = true,\n      stencil = false,\n      alpha = false,\n      antialias = false,\n      premultipliedAlpha = true,\n      preserveDrawingBuffer = false,\n      powerPreference = \"default\",\n      failIfMajorPerformanceCaveat = false\n    } = parameters;\n    this.isWebGLRenderer = true;\n    let _alpha;\n    if (context !== null) {\n      if (typeof WebGLRenderingContext !== \"undefined\" && context instanceof WebGLRenderingContext) {\n        throw new Error(\"THREE.WebGLRenderer: WebGL 1 is not supported since r163.\");\n      }\n      _alpha = context.getContextAttributes().alpha;\n    } else {\n      _alpha = alpha;\n    }\n    const uintClearColor = new Uint32Array(4);\n    const intClearColor = new Int32Array(4);\n    let currentRenderList = null;\n    let currentRenderState = null;\n    const renderListStack = [];\n    const renderStateStack = [];\n    this.domElement = canvas;\n    this.debug = {\n      /**\n       * Enables error checking and reporting when shader programs are being compiled\n       * @type {boolean}\n       */\n      checkShaderErrors: true,\n      /**\n       * Callback for custom error reporting.\n       * @type {?Function}\n       */\n      onShaderError: null\n    };\n    this.autoClear = true;\n    this.autoClearColor = true;\n    this.autoClearDepth = true;\n    this.autoClearStencil = true;\n    this.sortObjects = true;\n    this.clippingPlanes = [];\n    this.localClippingEnabled = false;\n    this._outputColorSpace = SRGBColorSpace;\n    this.toneMapping = NoToneMapping;\n    this.toneMappingExposure = 1;\n    const _this = this;\n    let _isContextLost = false;\n    let _currentActiveCubeFace = 0;\n    let _currentActiveMipmapLevel = 0;\n    let _currentRenderTarget = null;\n    let _currentMaterialId = -1;\n    let _currentCamera = null;\n    const _currentViewport = new Vector4();\n    const _currentScissor = new Vector4();\n    let _currentScissorTest = null;\n    const _currentClearColor = new Color(0);\n    let _currentClearAlpha = 0;\n    let _width = canvas.width;\n    let _height = canvas.height;\n    let _pixelRatio = 1;\n    let _opaqueSort = null;\n    let _transparentSort = null;\n    const _viewport = new Vector4(0, 0, _width, _height);\n    const _scissor = new Vector4(0, 0, _width, _height);\n    let _scissorTest = false;\n    const _frustum2 = new Frustum();\n    let _clippingEnabled = false;\n    let _localClippingEnabled = false;\n    const _currentProjectionMatrix = new Matrix4();\n    const _projScreenMatrix2 = new Matrix4();\n    const _vector32 = new Vector3();\n    const _vector4 = new Vector4();\n    const _emptyScene = { background: null, fog: null, environment: null, overrideMaterial: null, isScene: true };\n    let _renderBackground = false;\n    function getTargetPixelRatio() {\n      return _currentRenderTarget === null ? _pixelRatio : 1;\n    }\n    let _gl = context;\n    function getContext(contextName, contextAttributes) {\n      return canvas.getContext(contextName, contextAttributes);\n    }\n    try {\n      const contextAttributes = {\n        alpha: true,\n        depth,\n        stencil,\n        antialias,\n        premultipliedAlpha,\n        preserveDrawingBuffer,\n        powerPreference,\n        failIfMajorPerformanceCaveat\n      };\n      if (\"setAttribute\" in canvas) canvas.setAttribute(\"data-engine\", `three.js r${REVISION}`);\n      canvas.addEventListener(\"webglcontextlost\", onContextLost, false);\n      canvas.addEventListener(\"webglcontextrestored\", onContextRestore, false);\n      canvas.addEventListener(\"webglcontextcreationerror\", onContextCreationError, false);\n      if (_gl === null) {\n        const contextName = \"webgl2\";\n        _gl = getContext(contextName, contextAttributes);\n        if (_gl === null) {\n          if (getContext(contextName)) {\n            throw new Error(\"Error creating WebGL context with your selected attributes.\");\n          } else {\n            throw new Error(\"Error creating WebGL context.\");\n          }\n        }\n      }\n    } catch (error) {\n      console.error(\"THREE.WebGLRenderer: \" + error.message);\n      throw error;\n    }\n    let extensions, capabilities, state, info;\n    let properties, textures, cubemaps, cubeuvmaps, attributes, geometries, objects;\n    let programCache, materials, renderLists, renderStates, clipping, shadowMap;\n    let background, morphtargets, bufferRenderer, indexedBufferRenderer;\n    let utils, bindingStates, uniformsGroups;\n    function initGLContext() {\n      extensions = new WebGLExtensions(_gl);\n      extensions.init();\n      utils = new WebGLUtils(_gl, extensions);\n      capabilities = new WebGLCapabilities(_gl, extensions, parameters, utils);\n      state = new WebGLState(_gl);\n      if (capabilities.reverseDepthBuffer) state.buffers.depth.setReversed(true);\n      info = new WebGLInfo(_gl);\n      properties = new WebGLProperties();\n      textures = new WebGLTextures(_gl, extensions, state, properties, capabilities, utils, info);\n      cubemaps = new WebGLCubeMaps(_this);\n      cubeuvmaps = new WebGLCubeUVMaps(_this);\n      attributes = new WebGLAttributes(_gl);\n      bindingStates = new WebGLBindingStates(_gl, attributes);\n      geometries = new WebGLGeometries(_gl, attributes, info, bindingStates);\n      objects = new WebGLObjects(_gl, geometries, attributes, info);\n      morphtargets = new WebGLMorphtargets(_gl, capabilities, textures);\n      clipping = new WebGLClipping(properties);\n      programCache = new WebGLPrograms(_this, cubemaps, cubeuvmaps, extensions, capabilities, bindingStates, clipping);\n      materials = new WebGLMaterials(_this, properties);\n      renderLists = new WebGLRenderLists();\n      renderStates = new WebGLRenderStates(extensions);\n      background = new WebGLBackground(_this, cubemaps, cubeuvmaps, state, objects, _alpha, premultipliedAlpha);\n      shadowMap = new WebGLShadowMap(_this, objects, capabilities);\n      uniformsGroups = new WebGLUniformsGroups(_gl, info, capabilities, state);\n      bufferRenderer = new WebGLBufferRenderer(_gl, extensions, info);\n      indexedBufferRenderer = new WebGLIndexedBufferRenderer(_gl, extensions, info);\n      info.programs = programCache.programs;\n      _this.capabilities = capabilities;\n      _this.extensions = extensions;\n      _this.properties = properties;\n      _this.renderLists = renderLists;\n      _this.shadowMap = shadowMap;\n      _this.state = state;\n      _this.info = info;\n    }\n    initGLContext();\n    const xr = new WebXRManager(_this, _gl);\n    this.xr = xr;\n    this.getContext = function() {\n      return _gl;\n    };\n    this.getContextAttributes = function() {\n      return _gl.getContextAttributes();\n    };\n    this.forceContextLoss = function() {\n      const extension = extensions.get(\"WEBGL_lose_context\");\n      if (extension) extension.loseContext();\n    };\n    this.forceContextRestore = function() {\n      const extension = extensions.get(\"WEBGL_lose_context\");\n      if (extension) extension.restoreContext();\n    };\n    this.getPixelRatio = function() {\n      return _pixelRatio;\n    };\n    this.setPixelRatio = function(value) {\n      if (value === void 0) return;\n      _pixelRatio = value;\n      this.setSize(_width, _height, false);\n    };\n    this.getSize = function(target) {\n      return target.set(_width, _height);\n    };\n    this.setSize = function(width, height, updateStyle = true) {\n      if (xr.isPresenting) {\n        console.warn(\"THREE.WebGLRenderer: Can't change size while VR device is presenting.\");\n        return;\n      }\n      _width = width;\n      _height = height;\n      canvas.width = Math.floor(width * _pixelRatio);\n      canvas.height = Math.floor(height * _pixelRatio);\n      if (updateStyle === true) {\n        canvas.style.width = width + \"px\";\n        canvas.style.height = height + \"px\";\n      }\n      this.setViewport(0, 0, width, height);\n    };\n    this.getDrawingBufferSize = function(target) {\n      return target.set(_width * _pixelRatio, _height * _pixelRatio).floor();\n    };\n    this.setDrawingBufferSize = function(width, height, pixelRatio) {\n      _width = width;\n      _height = height;\n      _pixelRatio = pixelRatio;\n      canvas.width = Math.floor(width * pixelRatio);\n      canvas.height = Math.floor(height * pixelRatio);\n      this.setViewport(0, 0, width, height);\n    };\n    this.getCurrentViewport = function(target) {\n      return target.copy(_currentViewport);\n    };\n    this.getViewport = function(target) {\n      return target.copy(_viewport);\n    };\n    this.setViewport = function(x, y, width, height) {\n      if (x.isVector4) {\n        _viewport.set(x.x, x.y, x.z, x.w);\n      } else {\n        _viewport.set(x, y, width, height);\n      }\n      state.viewport(_currentViewport.copy(_viewport).multiplyScalar(_pixelRatio).round());\n    };\n    this.getScissor = function(target) {\n      return target.copy(_scissor);\n    };\n    this.setScissor = function(x, y, width, height) {\n      if (x.isVector4) {\n        _scissor.set(x.x, x.y, x.z, x.w);\n      } else {\n        _scissor.set(x, y, width, height);\n      }\n      state.scissor(_currentScissor.copy(_scissor).multiplyScalar(_pixelRatio).round());\n    };\n    this.getScissorTest = function() {\n      return _scissorTest;\n    };\n    this.setScissorTest = function(boolean) {\n      state.setScissorTest(_scissorTest = boolean);\n    };\n    this.setOpaqueSort = function(method) {\n      _opaqueSort = method;\n    };\n    this.setTransparentSort = function(method) {\n      _transparentSort = method;\n    };\n    this.getClearColor = function(target) {\n      return target.copy(background.getClearColor());\n    };\n    this.setClearColor = function() {\n      background.setClearColor.apply(background, arguments);\n    };\n    this.getClearAlpha = function() {\n      return background.getClearAlpha();\n    };\n    this.setClearAlpha = function() {\n      background.setClearAlpha.apply(background, arguments);\n    };\n    this.clear = function(color = true, depth2 = true, stencil2 = true) {\n      let bits = 0;\n      if (color) {\n        let isIntegerFormat = false;\n        if (_currentRenderTarget !== null) {\n          const targetFormat = _currentRenderTarget.texture.format;\n          isIntegerFormat = targetFormat === RGBAIntegerFormat || targetFormat === RGIntegerFormat || targetFormat === RedIntegerFormat;\n        }\n        if (isIntegerFormat) {\n          const targetType = _currentRenderTarget.texture.type;\n          const isUnsignedType = targetType === UnsignedByteType || targetType === UnsignedIntType || targetType === UnsignedShortType || targetType === UnsignedInt248Type || targetType === UnsignedShort4444Type || targetType === UnsignedShort5551Type;\n          const clearColor = background.getClearColor();\n          const a = background.getClearAlpha();\n          const r = clearColor.r;\n          const g = clearColor.g;\n          const b = clearColor.b;\n          if (isUnsignedType) {\n            uintClearColor[0] = r;\n            uintClearColor[1] = g;\n            uintClearColor[2] = b;\n            uintClearColor[3] = a;\n            _gl.clearBufferuiv(_gl.COLOR, 0, uintClearColor);\n          } else {\n            intClearColor[0] = r;\n            intClearColor[1] = g;\n            intClearColor[2] = b;\n            intClearColor[3] = a;\n            _gl.clearBufferiv(_gl.COLOR, 0, intClearColor);\n          }\n        } else {\n          bits |= _gl.COLOR_BUFFER_BIT;\n        }\n      }\n      if (depth2) {\n        bits |= _gl.DEPTH_BUFFER_BIT;\n        _gl.clearDepth(this.capabilities.reverseDepthBuffer ? 0 : 1);\n      }\n      if (stencil2) {\n        bits |= _gl.STENCIL_BUFFER_BIT;\n        this.state.buffers.stencil.setMask(4294967295);\n      }\n      _gl.clear(bits);\n    };\n    this.clearColor = function() {\n      this.clear(true, false, false);\n    };\n    this.clearDepth = function() {\n      this.clear(false, true, false);\n    };\n    this.clearStencil = function() {\n      this.clear(false, false, true);\n    };\n    this.dispose = function() {\n      canvas.removeEventListener(\"webglcontextlost\", onContextLost, false);\n      canvas.removeEventListener(\"webglcontextrestored\", onContextRestore, false);\n      canvas.removeEventListener(\"webglcontextcreationerror\", onContextCreationError, false);\n      renderLists.dispose();\n      renderStates.dispose();\n      properties.dispose();\n      cubemaps.dispose();\n      cubeuvmaps.dispose();\n      objects.dispose();\n      bindingStates.dispose();\n      uniformsGroups.dispose();\n      programCache.dispose();\n      xr.dispose();\n      xr.removeEventListener(\"sessionstart\", onXRSessionStart);\n      xr.removeEventListener(\"sessionend\", onXRSessionEnd);\n      animation.stop();\n    };\n    function onContextLost(event) {\n      event.preventDefault();\n      console.log(\"THREE.WebGLRenderer: Context Lost.\");\n      _isContextLost = true;\n    }\n    function onContextRestore() {\n      console.log(\"THREE.WebGLRenderer: Context Restored.\");\n      _isContextLost = false;\n      const infoAutoReset = info.autoReset;\n      const shadowMapEnabled = shadowMap.enabled;\n      const shadowMapAutoUpdate = shadowMap.autoUpdate;\n      const shadowMapNeedsUpdate = shadowMap.needsUpdate;\n      const shadowMapType = shadowMap.type;\n      initGLContext();\n      info.autoReset = infoAutoReset;\n      shadowMap.enabled = shadowMapEnabled;\n      shadowMap.autoUpdate = shadowMapAutoUpdate;\n      shadowMap.needsUpdate = shadowMapNeedsUpdate;\n      shadowMap.type = shadowMapType;\n    }\n    function onContextCreationError(event) {\n      console.error(\"THREE.WebGLRenderer: A WebGL context could not be created. Reason: \", event.statusMessage);\n    }\n    function onMaterialDispose(event) {\n      const material = event.target;\n      material.removeEventListener(\"dispose\", onMaterialDispose);\n      deallocateMaterial(material);\n    }\n    function deallocateMaterial(material) {\n      releaseMaterialProgramReferences(material);\n      properties.remove(material);\n    }\n    function releaseMaterialProgramReferences(material) {\n      const programs = properties.get(material).programs;\n      if (programs !== void 0) {\n        programs.forEach(function(program) {\n          programCache.releaseProgram(program);\n        });\n        if (material.isShaderMaterial) {\n          programCache.releaseShaderCache(material);\n        }\n      }\n    }\n    this.renderBufferDirect = function(camera, scene, geometry, material, object, group) {\n      if (scene === null) scene = _emptyScene;\n      const frontFaceCW = object.isMesh && object.matrixWorld.determinant() < 0;\n      const program = setProgram(camera, scene, geometry, material, object);\n      state.setMaterial(material, frontFaceCW);\n      let index = geometry.index;\n      let rangeFactor = 1;\n      if (material.wireframe === true) {\n        index = geometries.getWireframeAttribute(geometry);\n        if (index === void 0) return;\n        rangeFactor = 2;\n      }\n      const drawRange = geometry.drawRange;\n      const position = geometry.attributes.position;\n      let drawStart = drawRange.start * rangeFactor;\n      let drawEnd = (drawRange.start + drawRange.count) * rangeFactor;\n      if (group !== null) {\n        drawStart = Math.max(drawStart, group.start * rangeFactor);\n        drawEnd = Math.min(drawEnd, (group.start + group.count) * rangeFactor);\n      }\n      if (index !== null) {\n        drawStart = Math.max(drawStart, 0);\n        drawEnd = Math.min(drawEnd, index.count);\n      } else if (position !== void 0 && position !== null) {\n        drawStart = Math.max(drawStart, 0);\n        drawEnd = Math.min(drawEnd, position.count);\n      }\n      const drawCount = drawEnd - drawStart;\n      if (drawCount < 0 || drawCount === Infinity) return;\n      bindingStates.setup(object, material, program, geometry, index);\n      let attribute;\n      let renderer = bufferRenderer;\n      if (index !== null) {\n        attribute = attributes.get(index);\n        renderer = indexedBufferRenderer;\n        renderer.setIndex(attribute);\n      }\n      if (object.isMesh) {\n        if (material.wireframe === true) {\n          state.setLineWidth(material.wireframeLinewidth * getTargetPixelRatio());\n          renderer.setMode(_gl.LINES);\n        } else {\n          renderer.setMode(_gl.TRIANGLES);\n        }\n      } else if (object.isLine) {\n        let lineWidth = material.linewidth;\n        if (lineWidth === void 0) lineWidth = 1;\n        state.setLineWidth(lineWidth * getTargetPixelRatio());\n        if (object.isLineSegments) {\n          renderer.setMode(_gl.LINES);\n        } else if (object.isLineLoop) {\n          renderer.setMode(_gl.LINE_LOOP);\n        } else {\n          renderer.setMode(_gl.LINE_STRIP);\n        }\n      } else if (object.isPoints) {\n        renderer.setMode(_gl.POINTS);\n      } else if (object.isSprite) {\n        renderer.setMode(_gl.TRIANGLES);\n      }\n      if (object.isBatchedMesh) {\n        if (object._multiDrawInstances !== null) {\n          renderer.renderMultiDrawInstances(object._multiDrawStarts, object._multiDrawCounts, object._multiDrawCount, object._multiDrawInstances);\n        } else {\n          if (!extensions.get(\"WEBGL_multi_draw\")) {\n            const starts = object._multiDrawStarts;\n            const counts = object._multiDrawCounts;\n            const drawCount2 = object._multiDrawCount;\n            const bytesPerElement = index ? attributes.get(index).bytesPerElement : 1;\n            const uniforms = properties.get(material).currentProgram.getUniforms();\n            for (let i = 0; i < drawCount2; i++) {\n              uniforms.setValue(_gl, \"_gl_DrawID\", i);\n              renderer.render(starts[i] / bytesPerElement, counts[i]);\n            }\n          } else {\n            renderer.renderMultiDraw(object._multiDrawStarts, object._multiDrawCounts, object._multiDrawCount);\n          }\n        }\n      } else if (object.isInstancedMesh) {\n        renderer.renderInstances(drawStart, drawCount, object.count);\n      } else if (geometry.isInstancedBufferGeometry) {\n        const maxInstanceCount = geometry._maxInstanceCount !== void 0 ? geometry._maxInstanceCount : Infinity;\n        const instanceCount = Math.min(geometry.instanceCount, maxInstanceCount);\n        renderer.renderInstances(drawStart, drawCount, instanceCount);\n      } else {\n        renderer.render(drawStart, drawCount);\n      }\n    };\n    function prepareMaterial(material, scene, object) {\n      if (material.transparent === true && material.side === DoubleSide && material.forceSinglePass === false) {\n        material.side = BackSide;\n        material.needsUpdate = true;\n        getProgram(material, scene, object);\n        material.side = FrontSide;\n        material.needsUpdate = true;\n        getProgram(material, scene, object);\n        material.side = DoubleSide;\n      } else {\n        getProgram(material, scene, object);\n      }\n    }\n    this.compile = function(scene, camera, targetScene = null) {\n      if (targetScene === null) targetScene = scene;\n      currentRenderState = renderStates.get(targetScene);\n      currentRenderState.init(camera);\n      renderStateStack.push(currentRenderState);\n      targetScene.traverseVisible(function(object) {\n        if (object.isLight && object.layers.test(camera.layers)) {\n          currentRenderState.pushLight(object);\n          if (object.castShadow) {\n            currentRenderState.pushShadow(object);\n          }\n        }\n      });\n      if (scene !== targetScene) {\n        scene.traverseVisible(function(object) {\n          if (object.isLight && object.layers.test(camera.layers)) {\n            currentRenderState.pushLight(object);\n            if (object.castShadow) {\n              currentRenderState.pushShadow(object);\n            }\n          }\n        });\n      }\n      currentRenderState.setupLights();\n      const materials2 = /* @__PURE__ */ new Set();\n      scene.traverse(function(object) {\n        if (!(object.isMesh || object.isPoints || object.isLine || object.isSprite)) {\n          return;\n        }\n        const material = object.material;\n        if (material) {\n          if (Array.isArray(material)) {\n            for (let i = 0; i < material.length; i++) {\n              const material2 = material[i];\n              prepareMaterial(material2, targetScene, object);\n              materials2.add(material2);\n            }\n          } else {\n            prepareMaterial(material, targetScene, object);\n            materials2.add(material);\n          }\n        }\n      });\n      renderStateStack.pop();\n      currentRenderState = null;\n      return materials2;\n    };\n    this.compileAsync = function(scene, camera, targetScene = null) {\n      const materials2 = this.compile(scene, camera, targetScene);\n      return new Promise((resolve) => {\n        function checkMaterialsReady() {\n          materials2.forEach(function(material) {\n            const materialProperties = properties.get(material);\n            const program = materialProperties.currentProgram;\n            if (program.isReady()) {\n              materials2.delete(material);\n            }\n          });\n          if (materials2.size === 0) {\n            resolve(scene);\n            return;\n          }\n          setTimeout(checkMaterialsReady, 10);\n        }\n        if (extensions.get(\"KHR_parallel_shader_compile\") !== null) {\n          checkMaterialsReady();\n        } else {\n          setTimeout(checkMaterialsReady, 10);\n        }\n      });\n    };\n    let onAnimationFrameCallback = null;\n    function onAnimationFrame(time) {\n      if (onAnimationFrameCallback) onAnimationFrameCallback(time);\n    }\n    function onXRSessionStart() {\n      animation.stop();\n    }\n    function onXRSessionEnd() {\n      animation.start();\n    }\n    const animation = new WebGLAnimation();\n    animation.setAnimationLoop(onAnimationFrame);\n    if (typeof self !== \"undefined\") animation.setContext(self);\n    this.setAnimationLoop = function(callback) {\n      onAnimationFrameCallback = callback;\n      xr.setAnimationLoop(callback);\n      callback === null ? animation.stop() : animation.start();\n    };\n    xr.addEventListener(\"sessionstart\", onXRSessionStart);\n    xr.addEventListener(\"sessionend\", onXRSessionEnd);\n    this.render = function(scene, camera) {\n      if (camera !== void 0 && camera.isCamera !== true) {\n        console.error(\"THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.\");\n        return;\n      }\n      if (_isContextLost === true) return;\n      if (scene.matrixWorldAutoUpdate === true) scene.updateMatrixWorld();\n      if (camera.parent === null && camera.matrixWorldAutoUpdate === true) camera.updateMatrixWorld();\n      if (xr.enabled === true && xr.isPresenting === true) {\n        if (xr.cameraAutoUpdate === true) xr.updateCamera(camera);\n        camera = xr.getCamera();\n      }\n      if (scene.isScene === true) scene.onBeforeRender(_this, scene, camera, _currentRenderTarget);\n      currentRenderState = renderStates.get(scene, renderStateStack.length);\n      currentRenderState.init(camera);\n      renderStateStack.push(currentRenderState);\n      _projScreenMatrix2.multiplyMatrices(camera.projectionMatrix, camera.matrixWorldInverse);\n      _frustum2.setFromProjectionMatrix(_projScreenMatrix2);\n      _localClippingEnabled = this.localClippingEnabled;\n      _clippingEnabled = clipping.init(this.clippingPlanes, _localClippingEnabled);\n      currentRenderList = renderLists.get(scene, renderListStack.length);\n      currentRenderList.init();\n      renderListStack.push(currentRenderList);\n      if (xr.enabled === true && xr.isPresenting === true) {\n        const depthSensingMesh = _this.xr.getDepthSensingMesh();\n        if (depthSensingMesh !== null) {\n          projectObject(depthSensingMesh, camera, -Infinity, _this.sortObjects);\n        }\n      }\n      projectObject(scene, camera, 0, _this.sortObjects);\n      currentRenderList.finish();\n      if (_this.sortObjects === true) {\n        currentRenderList.sort(_opaqueSort, _transparentSort);\n      }\n      _renderBackground = xr.enabled === false || xr.isPresenting === false || xr.hasDepthSensing() === false;\n      if (_renderBackground) {\n        background.addToRenderList(currentRenderList, scene);\n      }\n      this.info.render.frame++;\n      if (_clippingEnabled === true) clipping.beginShadows();\n      const shadowsArray = currentRenderState.state.shadowsArray;\n      shadowMap.render(shadowsArray, scene, camera);\n      if (_clippingEnabled === true) clipping.endShadows();\n      if (this.info.autoReset === true) this.info.reset();\n      const opaqueObjects = currentRenderList.opaque;\n      const transmissiveObjects = currentRenderList.transmissive;\n      currentRenderState.setupLights();\n      if (camera.isArrayCamera) {\n        const cameras = camera.cameras;\n        if (transmissiveObjects.length > 0) {\n          for (let i = 0, l = cameras.length; i < l; i++) {\n            const camera2 = cameras[i];\n            renderTransmissionPass(opaqueObjects, transmissiveObjects, scene, camera2);\n          }\n        }\n        if (_renderBackground) background.render(scene);\n        for (let i = 0, l = cameras.length; i < l; i++) {\n          const camera2 = cameras[i];\n          renderScene(currentRenderList, scene, camera2, camera2.viewport);\n        }\n      } else {\n        if (transmissiveObjects.length > 0) renderTransmissionPass(opaqueObjects, transmissiveObjects, scene, camera);\n        if (_renderBackground) background.render(scene);\n        renderScene(currentRenderList, scene, camera);\n      }\n      if (_currentRenderTarget !== null) {\n        textures.updateMultisampleRenderTarget(_currentRenderTarget);\n        textures.updateRenderTargetMipmap(_currentRenderTarget);\n      }\n      if (scene.isScene === true) scene.onAfterRender(_this, scene, camera);\n      bindingStates.resetDefaultState();\n      _currentMaterialId = -1;\n      _currentCamera = null;\n      renderStateStack.pop();\n      if (renderStateStack.length > 0) {\n        currentRenderState = renderStateStack[renderStateStack.length - 1];\n        if (_clippingEnabled === true) clipping.setGlobalState(_this.clippingPlanes, currentRenderState.state.camera);\n      } else {\n        currentRenderState = null;\n      }\n      renderListStack.pop();\n      if (renderListStack.length > 0) {\n        currentRenderList = renderListStack[renderListStack.length - 1];\n      } else {\n        currentRenderList = null;\n      }\n    };\n    function projectObject(object, camera, groupOrder, sortObjects) {\n      if (object.visible === false) return;\n      const visible = object.layers.test(camera.layers);\n      if (visible) {\n        if (object.isGroup) {\n          groupOrder = object.renderOrder;\n        } else if (object.isLOD) {\n          if (object.autoUpdate === true) object.update(camera);\n        } else if (object.isLight) {\n          currentRenderState.pushLight(object);\n          if (object.castShadow) {\n            currentRenderState.pushShadow(object);\n          }\n        } else if (object.isSprite) {\n          if (!object.frustumCulled || _frustum2.intersectsSprite(object)) {\n            if (sortObjects) {\n              _vector4.setFromMatrixPosition(object.matrixWorld).applyMatrix4(_projScreenMatrix2);\n            }\n            const geometry = objects.update(object);\n            const material = object.material;\n            if (material.visible) {\n              currentRenderList.push(object, geometry, material, groupOrder, _vector4.z, null);\n            }\n          }\n        } else if (object.isMesh || object.isLine || object.isPoints) {\n          if (!object.frustumCulled || _frustum2.intersectsObject(object)) {\n            const geometry = objects.update(object);\n            const material = object.material;\n            if (sortObjects) {\n              if (object.boundingSphere !== void 0) {\n                if (object.boundingSphere === null) object.computeBoundingSphere();\n                _vector4.copy(object.boundingSphere.center);\n              } else {\n                if (geometry.boundingSphere === null) geometry.computeBoundingSphere();\n                _vector4.copy(geometry.boundingSphere.center);\n              }\n              _vector4.applyMatrix4(object.matrixWorld).applyMatrix4(_projScreenMatrix2);\n            }\n            if (Array.isArray(material)) {\n              const groups = geometry.groups;\n              for (let i = 0, l = groups.length; i < l; i++) {\n                const group = groups[i];\n                const groupMaterial = material[group.materialIndex];\n                if (groupMaterial && groupMaterial.visible) {\n                  currentRenderList.push(object, geometry, groupMaterial, groupOrder, _vector4.z, group);\n                }\n              }\n            } else if (material.visible) {\n              currentRenderList.push(object, geometry, material, groupOrder, _vector4.z, null);\n            }\n          }\n        }\n      }\n      const children = object.children;\n      for (let i = 0, l = children.length; i < l; i++) {\n        projectObject(children[i], camera, groupOrder, sortObjects);\n      }\n    }\n    function renderScene(currentRenderList2, scene, camera, viewport) {\n      const opaqueObjects = currentRenderList2.opaque;\n      const transmissiveObjects = currentRenderList2.transmissive;\n      const transparentObjects = currentRenderList2.transparent;\n      currentRenderState.setupLightsView(camera);\n      if (_clippingEnabled === true) clipping.setGlobalState(_this.clippingPlanes, camera);\n      if (viewport) state.viewport(_currentViewport.copy(viewport));\n      if (opaqueObjects.length > 0) renderObjects(opaqueObjects, scene, camera);\n      if (transmissiveObjects.length > 0) renderObjects(transmissiveObjects, scene, camera);\n      if (transparentObjects.length > 0) renderObjects(transparentObjects, scene, camera);\n      state.buffers.depth.setTest(true);\n      state.buffers.depth.setMask(true);\n      state.buffers.color.setMask(true);\n      state.setPolygonOffset(false);\n    }\n    function renderTransmissionPass(opaqueObjects, transmissiveObjects, scene, camera) {\n      const overrideMaterial = scene.isScene === true ? scene.overrideMaterial : null;\n      if (overrideMaterial !== null) {\n        return;\n      }\n      if (currentRenderState.state.transmissionRenderTarget[camera.id] === void 0) {\n        currentRenderState.state.transmissionRenderTarget[camera.id] = new WebGLRenderTarget(1, 1, {\n          generateMipmaps: true,\n          type: extensions.has(\"EXT_color_buffer_half_float\") || extensions.has(\"EXT_color_buffer_float\") ? HalfFloatType : UnsignedByteType,\n          minFilter: LinearMipmapLinearFilter,\n          samples: 4,\n          stencilBuffer: stencil,\n          resolveDepthBuffer: false,\n          resolveStencilBuffer: false,\n          colorSpace: ColorManagement.workingColorSpace\n        });\n      }\n      const transmissionRenderTarget = currentRenderState.state.transmissionRenderTarget[camera.id];\n      const activeViewport = camera.viewport || _currentViewport;\n      transmissionRenderTarget.setSize(activeViewport.z, activeViewport.w);\n      const currentRenderTarget = _this.getRenderTarget();\n      _this.setRenderTarget(transmissionRenderTarget);\n      _this.getClearColor(_currentClearColor);\n      _currentClearAlpha = _this.getClearAlpha();\n      if (_currentClearAlpha < 1) _this.setClearColor(16777215, 0.5);\n      _this.clear();\n      if (_renderBackground) background.render(scene);\n      const currentToneMapping = _this.toneMapping;\n      _this.toneMapping = NoToneMapping;\n      const currentCameraViewport = camera.viewport;\n      if (camera.viewport !== void 0) camera.viewport = void 0;\n      currentRenderState.setupLightsView(camera);\n      if (_clippingEnabled === true) clipping.setGlobalState(_this.clippingPlanes, camera);\n      renderObjects(opaqueObjects, scene, camera);\n      textures.updateMultisampleRenderTarget(transmissionRenderTarget);\n      textures.updateRenderTargetMipmap(transmissionRenderTarget);\n      if (extensions.has(\"WEBGL_multisampled_render_to_texture\") === false) {\n        let renderTargetNeedsUpdate = false;\n        for (let i = 0, l = transmissiveObjects.length; i < l; i++) {\n          const renderItem = transmissiveObjects[i];\n          const object = renderItem.object;\n          const geometry = renderItem.geometry;\n          const material = renderItem.material;\n          const group = renderItem.group;\n          if (material.side === DoubleSide && object.layers.test(camera.layers)) {\n            const currentSide = material.side;\n            material.side = BackSide;\n            material.needsUpdate = true;\n            renderObject(object, scene, camera, geometry, material, group);\n            material.side = currentSide;\n            material.needsUpdate = true;\n            renderTargetNeedsUpdate = true;\n          }\n        }\n        if (renderTargetNeedsUpdate === true) {\n          textures.updateMultisampleRenderTarget(transmissionRenderTarget);\n          textures.updateRenderTargetMipmap(transmissionRenderTarget);\n        }\n      }\n      _this.setRenderTarget(currentRenderTarget);\n      _this.setClearColor(_currentClearColor, _currentClearAlpha);\n      if (currentCameraViewport !== void 0) camera.viewport = currentCameraViewport;\n      _this.toneMapping = currentToneMapping;\n    }\n    function renderObjects(renderList, scene, camera) {\n      const overrideMaterial = scene.isScene === true ? scene.overrideMaterial : null;\n      for (let i = 0, l = renderList.length; i < l; i++) {\n        const renderItem = renderList[i];\n        const object = renderItem.object;\n        const geometry = renderItem.geometry;\n        const material = overrideMaterial === null ? renderItem.material : overrideMaterial;\n        const group = renderItem.group;\n        if (object.layers.test(camera.layers)) {\n          renderObject(object, scene, camera, geometry, material, group);\n        }\n      }\n    }\n    function renderObject(object, scene, camera, geometry, material, group) {\n      object.onBeforeRender(_this, scene, camera, geometry, material, group);\n      object.modelViewMatrix.multiplyMatrices(camera.matrixWorldInverse, object.matrixWorld);\n      object.normalMatrix.getNormalMatrix(object.modelViewMatrix);\n      material.onBeforeRender(_this, scene, camera, geometry, object, group);\n      if (material.transparent === true && material.side === DoubleSide && material.forceSinglePass === false) {\n        material.side = BackSide;\n        material.needsUpdate = true;\n        _this.renderBufferDirect(camera, scene, geometry, material, object, group);\n        material.side = FrontSide;\n        material.needsUpdate = true;\n        _this.renderBufferDirect(camera, scene, geometry, material, object, group);\n        material.side = DoubleSide;\n      } else {\n        _this.renderBufferDirect(camera, scene, geometry, material, object, group);\n      }\n      object.onAfterRender(_this, scene, camera, geometry, material, group);\n    }\n    function getProgram(material, scene, object) {\n      if (scene.isScene !== true) scene = _emptyScene;\n      const materialProperties = properties.get(material);\n      const lights = currentRenderState.state.lights;\n      const shadowsArray = currentRenderState.state.shadowsArray;\n      const lightsStateVersion = lights.state.version;\n      const parameters2 = programCache.getParameters(material, lights.state, shadowsArray, scene, object);\n      const programCacheKey = programCache.getProgramCacheKey(parameters2);\n      let programs = materialProperties.programs;\n      materialProperties.environment = material.isMeshStandardMaterial ? scene.environment : null;\n      materialProperties.fog = scene.fog;\n      materialProperties.envMap = (material.isMeshStandardMaterial ? cubeuvmaps : cubemaps).get(material.envMap || materialProperties.environment);\n      materialProperties.envMapRotation = materialProperties.environment !== null && material.envMap === null ? scene.environmentRotation : material.envMapRotation;\n      if (programs === void 0) {\n        material.addEventListener(\"dispose\", onMaterialDispose);\n        programs = /* @__PURE__ */ new Map();\n        materialProperties.programs = programs;\n      }\n      let program = programs.get(programCacheKey);\n      if (program !== void 0) {\n        if (materialProperties.currentProgram === program && materialProperties.lightsStateVersion === lightsStateVersion) {\n          updateCommonMaterialProperties(material, parameters2);\n          return program;\n        }\n      } else {\n        parameters2.uniforms = programCache.getUniforms(material);\n        material.onBeforeCompile(parameters2, _this);\n        program = programCache.acquireProgram(parameters2, programCacheKey);\n        programs.set(programCacheKey, program);\n        materialProperties.uniforms = parameters2.uniforms;\n      }\n      const uniforms = materialProperties.uniforms;\n      if (!material.isShaderMaterial && !material.isRawShaderMaterial || material.clipping === true) {\n        uniforms.clippingPlanes = clipping.uniform;\n      }\n      updateCommonMaterialProperties(material, parameters2);\n      materialProperties.needsLights = materialNeedsLights(material);\n      materialProperties.lightsStateVersion = lightsStateVersion;\n      if (materialProperties.needsLights) {\n        uniforms.ambientLightColor.value = lights.state.ambient;\n        uniforms.lightProbe.value = lights.state.probe;\n        uniforms.directionalLights.value = lights.state.directional;\n        uniforms.directionalLightShadows.value = lights.state.directionalShadow;\n        uniforms.spotLights.value = lights.state.spot;\n        uniforms.spotLightShadows.value = lights.state.spotShadow;\n        uniforms.rectAreaLights.value = lights.state.rectArea;\n        uniforms.ltc_1.value = lights.state.rectAreaLTC1;\n        uniforms.ltc_2.value = lights.state.rectAreaLTC2;\n        uniforms.pointLights.value = lights.state.point;\n        uniforms.pointLightShadows.value = lights.state.pointShadow;\n        uniforms.hemisphereLights.value = lights.state.hemi;\n        uniforms.directionalShadowMap.value = lights.state.directionalShadowMap;\n        uniforms.directionalShadowMatrix.value = lights.state.directionalShadowMatrix;\n        uniforms.spotShadowMap.value = lights.state.spotShadowMap;\n        uniforms.spotLightMatrix.value = lights.state.spotLightMatrix;\n        uniforms.spotLightMap.value = lights.state.spotLightMap;\n        uniforms.pointShadowMap.value = lights.state.pointShadowMap;\n        uniforms.pointShadowMatrix.value = lights.state.pointShadowMatrix;\n      }\n      materialProperties.currentProgram = program;\n      materialProperties.uniformsList = null;\n      return program;\n    }\n    function getUniformList(materialProperties) {\n      if (materialProperties.uniformsList === null) {\n        const progUniforms = materialProperties.currentProgram.getUniforms();\n        materialProperties.uniformsList = WebGLUniforms.seqWithValue(progUniforms.seq, materialProperties.uniforms);\n      }\n      return materialProperties.uniformsList;\n    }\n    function updateCommonMaterialProperties(material, parameters2) {\n      const materialProperties = properties.get(material);\n      materialProperties.outputColorSpace = parameters2.outputColorSpace;\n      materialProperties.batching = parameters2.batching;\n      materialProperties.batchingColor = parameters2.batchingColor;\n      materialProperties.instancing = parameters2.instancing;\n      materialProperties.instancingColor = parameters2.instancingColor;\n      materialProperties.instancingMorph = parameters2.instancingMorph;\n      materialProperties.skinning = parameters2.skinning;\n      materialProperties.morphTargets = parameters2.morphTargets;\n      materialProperties.morphNormals = parameters2.morphNormals;\n      materialProperties.morphColors = parameters2.morphColors;\n      materialProperties.morphTargetsCount = parameters2.morphTargetsCount;\n      materialProperties.numClippingPlanes = parameters2.numClippingPlanes;\n      materialProperties.numIntersection = parameters2.numClipIntersection;\n      materialProperties.vertexAlphas = parameters2.vertexAlphas;\n      materialProperties.vertexTangents = parameters2.vertexTangents;\n      materialProperties.toneMapping = parameters2.toneMapping;\n    }\n    function setProgram(camera, scene, geometry, material, object) {\n      if (scene.isScene !== true) scene = _emptyScene;\n      textures.resetTextureUnits();\n      const fog = scene.fog;\n      const environment = material.isMeshStandardMaterial ? scene.environment : null;\n      const colorSpace = _currentRenderTarget === null ? _this.outputColorSpace : _currentRenderTarget.isXRRenderTarget === true ? _currentRenderTarget.texture.colorSpace : LinearSRGBColorSpace;\n      const envMap = (material.isMeshStandardMaterial ? cubeuvmaps : cubemaps).get(material.envMap || environment);\n      const vertexAlphas = material.vertexColors === true && !!geometry.attributes.color && geometry.attributes.color.itemSize === 4;\n      const vertexTangents = !!geometry.attributes.tangent && (!!material.normalMap || material.anisotropy > 0);\n      const morphTargets = !!geometry.morphAttributes.position;\n      const morphNormals = !!geometry.morphAttributes.normal;\n      const morphColors = !!geometry.morphAttributes.color;\n      let toneMapping = NoToneMapping;\n      if (material.toneMapped) {\n        if (_currentRenderTarget === null || _currentRenderTarget.isXRRenderTarget === true) {\n          toneMapping = _this.toneMapping;\n        }\n      }\n      const morphAttribute = geometry.morphAttributes.position || geometry.morphAttributes.normal || geometry.morphAttributes.color;\n      const morphTargetsCount = morphAttribute !== void 0 ? morphAttribute.length : 0;\n      const materialProperties = properties.get(material);\n      const lights = currentRenderState.state.lights;\n      if (_clippingEnabled === true) {\n        if (_localClippingEnabled === true || camera !== _currentCamera) {\n          const useCache = camera === _currentCamera && material.id === _currentMaterialId;\n          clipping.setState(material, camera, useCache);\n        }\n      }\n      let needsProgramChange = false;\n      if (material.version === materialProperties.__version) {\n        if (materialProperties.needsLights && materialProperties.lightsStateVersion !== lights.state.version) {\n          needsProgramChange = true;\n        } else if (materialProperties.outputColorSpace !== colorSpace) {\n          needsProgramChange = true;\n        } else if (object.isBatchedMesh && materialProperties.batching === false) {\n          needsProgramChange = true;\n        } else if (!object.isBatchedMesh && materialProperties.batching === true) {\n          needsProgramChange = true;\n        } else if (object.isBatchedMesh && materialProperties.batchingColor === true && object.colorTexture === null) {\n          needsProgramChange = true;\n        } else if (object.isBatchedMesh && materialProperties.batchingColor === false && object.colorTexture !== null) {\n          needsProgramChange = true;\n        } else if (object.isInstancedMesh && materialProperties.instancing === false) {\n          needsProgramChange = true;\n        } else if (!object.isInstancedMesh && materialProperties.instancing === true) {\n          needsProgramChange = true;\n        } else if (object.isSkinnedMesh && materialProperties.skinning === false) {\n          needsProgramChange = true;\n        } else if (!object.isSkinnedMesh && materialProperties.skinning === true) {\n          needsProgramChange = true;\n        } else if (object.isInstancedMesh && materialProperties.instancingColor === true && object.instanceColor === null) {\n          needsProgramChange = true;\n        } else if (object.isInstancedMesh && materialProperties.instancingColor === false && object.instanceColor !== null) {\n          needsProgramChange = true;\n        } else if (object.isInstancedMesh && materialProperties.instancingMorph === true && object.morphTexture === null) {\n          needsProgramChange = true;\n        } else if (object.isInstancedMesh && materialProperties.instancingMorph === false && object.morphTexture !== null) {\n          needsProgramChange = true;\n        } else if (materialProperties.envMap !== envMap) {\n          needsProgramChange = true;\n        } else if (material.fog === true && materialProperties.fog !== fog) {\n          needsProgramChange = true;\n        } else if (materialProperties.numClippingPlanes !== void 0 && (materialProperties.numClippingPlanes !== clipping.numPlanes || materialProperties.numIntersection !== clipping.numIntersection)) {\n          needsProgramChange = true;\n        } else if (materialProperties.vertexAlphas !== vertexAlphas) {\n          needsProgramChange = true;\n        } else if (materialProperties.vertexTangents !== vertexTangents) {\n          needsProgramChange = true;\n        } else if (materialProperties.morphTargets !== morphTargets) {\n          needsProgramChange = true;\n        } else if (materialProperties.morphNormals !== morphNormals) {\n          needsProgramChange = true;\n        } else if (materialProperties.morphColors !== morphColors) {\n          needsProgramChange = true;\n        } else if (materialProperties.toneMapping !== toneMapping) {\n          needsProgramChange = true;\n        } else if (materialProperties.morphTargetsCount !== morphTargetsCount) {\n          needsProgramChange = true;\n        }\n      } else {\n        needsProgramChange = true;\n        materialProperties.__version = material.version;\n      }\n      let program = materialProperties.currentProgram;\n      if (needsProgramChange === true) {\n        program = getProgram(material, scene, object);\n      }\n      let refreshProgram = false;\n      let refreshMaterial = false;\n      let refreshLights = false;\n      const p_uniforms = program.getUniforms(), m_uniforms = materialProperties.uniforms;\n      if (state.useProgram(program.program)) {\n        refreshProgram = true;\n        refreshMaterial = true;\n        refreshLights = true;\n      }\n      if (material.id !== _currentMaterialId) {\n        _currentMaterialId = material.id;\n        refreshMaterial = true;\n      }\n      if (refreshProgram || _currentCamera !== camera) {\n        if (capabilities.reverseDepthBuffer) {\n          _currentProjectionMatrix.copy(camera.projectionMatrix);\n          toNormalizedProjectionMatrix(_currentProjectionMatrix);\n          toReversedProjectionMatrix(_currentProjectionMatrix);\n          p_uniforms.setValue(_gl, \"projectionMatrix\", _currentProjectionMatrix);\n        } else {\n          p_uniforms.setValue(_gl, \"projectionMatrix\", camera.projectionMatrix);\n        }\n        p_uniforms.setValue(_gl, \"viewMatrix\", camera.matrixWorldInverse);\n        const uCamPos = p_uniforms.map.cameraPosition;\n        if (uCamPos !== void 0) {\n          uCamPos.setValue(_gl, _vector32.setFromMatrixPosition(camera.matrixWorld));\n        }\n        if (capabilities.logarithmicDepthBuffer) {\n          p_uniforms.setValue(\n            _gl,\n            \"logDepthBufFC\",\n            2 / (Math.log(camera.far + 1) / Math.LN2)\n          );\n        }\n        if (material.isMeshPhongMaterial || material.isMeshToonMaterial || material.isMeshLambertMaterial || material.isMeshBasicMaterial || material.isMeshStandardMaterial || material.isShaderMaterial) {\n          p_uniforms.setValue(_gl, \"isOrthographic\", camera.isOrthographicCamera === true);\n        }\n        if (_currentCamera !== camera) {\n          _currentCamera = camera;\n          refreshMaterial = true;\n          refreshLights = true;\n        }\n      }\n      if (object.isSkinnedMesh) {\n        p_uniforms.setOptional(_gl, object, \"bindMatrix\");\n        p_uniforms.setOptional(_gl, object, \"bindMatrixInverse\");\n        const skeleton = object.skeleton;\n        if (skeleton) {\n          if (skeleton.boneTexture === null) skeleton.computeBoneTexture();\n          p_uniforms.setValue(_gl, \"boneTexture\", skeleton.boneTexture, textures);\n        }\n      }\n      if (object.isBatchedMesh) {\n        p_uniforms.setOptional(_gl, object, \"batchingTexture\");\n        p_uniforms.setValue(_gl, \"batchingTexture\", object._matricesTexture, textures);\n        p_uniforms.setOptional(_gl, object, \"batchingIdTexture\");\n        p_uniforms.setValue(_gl, \"batchingIdTexture\", object._indirectTexture, textures);\n        p_uniforms.setOptional(_gl, object, \"batchingColorTexture\");\n        if (object._colorsTexture !== null) {\n          p_uniforms.setValue(_gl, \"batchingColorTexture\", object._colorsTexture, textures);\n        }\n      }\n      const morphAttributes = geometry.morphAttributes;\n      if (morphAttributes.position !== void 0 || morphAttributes.normal !== void 0 || morphAttributes.color !== void 0) {\n        morphtargets.update(object, geometry, program);\n      }\n      if (refreshMaterial || materialProperties.receiveShadow !== object.receiveShadow) {\n        materialProperties.receiveShadow = object.receiveShadow;\n        p_uniforms.setValue(_gl, \"receiveShadow\", object.receiveShadow);\n      }\n      if (material.isMeshGouraudMaterial && material.envMap !== null) {\n        m_uniforms.envMap.value = envMap;\n        m_uniforms.flipEnvMap.value = envMap.isCubeTexture && envMap.isRenderTargetTexture === false ? -1 : 1;\n      }\n      if (material.isMeshStandardMaterial && material.envMap === null && scene.environment !== null) {\n        m_uniforms.envMapIntensity.value = scene.environmentIntensity;\n      }\n      if (refreshMaterial) {\n        p_uniforms.setValue(_gl, \"toneMappingExposure\", _this.toneMappingExposure);\n        if (materialProperties.needsLights) {\n          markUniformsLightsNeedsUpdate(m_uniforms, refreshLights);\n        }\n        if (fog && material.fog === true) {\n          materials.refreshFogUniforms(m_uniforms, fog);\n        }\n        materials.refreshMaterialUniforms(m_uniforms, material, _pixelRatio, _height, currentRenderState.state.transmissionRenderTarget[camera.id]);\n        WebGLUniforms.upload(_gl, getUniformList(materialProperties), m_uniforms, textures);\n      }\n      if (material.isShaderMaterial && material.uniformsNeedUpdate === true) {\n        WebGLUniforms.upload(_gl, getUniformList(materialProperties), m_uniforms, textures);\n        material.uniformsNeedUpdate = false;\n      }\n      if (material.isSpriteMaterial) {\n        p_uniforms.setValue(_gl, \"center\", object.center);\n      }\n      p_uniforms.setValue(_gl, \"modelViewMatrix\", object.modelViewMatrix);\n      p_uniforms.setValue(_gl, \"normalMatrix\", object.normalMatrix);\n      p_uniforms.setValue(_gl, \"modelMatrix\", object.matrixWorld);\n      if (material.isShaderMaterial || material.isRawShaderMaterial) {\n        const groups = material.uniformsGroups;\n        for (let i = 0, l = groups.length; i < l; i++) {\n          const group = groups[i];\n          uniformsGroups.update(group, program);\n          uniformsGroups.bind(group, program);\n        }\n      }\n      return program;\n    }\n    function markUniformsLightsNeedsUpdate(uniforms, value) {\n      uniforms.ambientLightColor.needsUpdate = value;\n      uniforms.lightProbe.needsUpdate = value;\n      uniforms.directionalLights.needsUpdate = value;\n      uniforms.directionalLightShadows.needsUpdate = value;\n      uniforms.pointLights.needsUpdate = value;\n      uniforms.pointLightShadows.needsUpdate = value;\n      uniforms.spotLights.needsUpdate = value;\n      uniforms.spotLightShadows.needsUpdate = value;\n      uniforms.rectAreaLights.needsUpdate = value;\n      uniforms.hemisphereLights.needsUpdate = value;\n    }\n    function materialNeedsLights(material) {\n      return material.isMeshLambertMaterial || material.isMeshToonMaterial || material.isMeshPhongMaterial || material.isMeshStandardMaterial || material.isShadowMaterial || material.isShaderMaterial && material.lights === true;\n    }\n    this.getActiveCubeFace = function() {\n      return _currentActiveCubeFace;\n    };\n    this.getActiveMipmapLevel = function() {\n      return _currentActiveMipmapLevel;\n    };\n    this.getRenderTarget = function() {\n      return _currentRenderTarget;\n    };\n    this.setRenderTargetTextures = function(renderTarget, colorTexture, depthTexture) {\n      properties.get(renderTarget.texture).__webglTexture = colorTexture;\n      properties.get(renderTarget.depthTexture).__webglTexture = depthTexture;\n      const renderTargetProperties = properties.get(renderTarget);\n      renderTargetProperties.__hasExternalTextures = true;\n      renderTargetProperties.__autoAllocateDepthBuffer = depthTexture === void 0;\n      if (!renderTargetProperties.__autoAllocateDepthBuffer) {\n        if (extensions.has(\"WEBGL_multisampled_render_to_texture\") === true) {\n          console.warn(\"THREE.WebGLRenderer: Render-to-texture extension was disabled because an external texture was provided\");\n          renderTargetProperties.__useRenderToTexture = false;\n        }\n      }\n    };\n    this.setRenderTargetFramebuffer = function(renderTarget, defaultFramebuffer) {\n      const renderTargetProperties = properties.get(renderTarget);\n      renderTargetProperties.__webglFramebuffer = defaultFramebuffer;\n      renderTargetProperties.__useDefaultFramebuffer = defaultFramebuffer === void 0;\n    };\n    this.setRenderTarget = function(renderTarget, activeCubeFace = 0, activeMipmapLevel = 0) {\n      _currentRenderTarget = renderTarget;\n      _currentActiveCubeFace = activeCubeFace;\n      _currentActiveMipmapLevel = activeMipmapLevel;\n      let useDefaultFramebuffer = true;\n      let framebuffer = null;\n      let isCube = false;\n      let isRenderTarget3D = false;\n      if (renderTarget) {\n        const renderTargetProperties = properties.get(renderTarget);\n        if (renderTargetProperties.__useDefaultFramebuffer !== void 0) {\n          state.bindFramebuffer(_gl.FRAMEBUFFER, null);\n          useDefaultFramebuffer = false;\n        } else if (renderTargetProperties.__webglFramebuffer === void 0) {\n          textures.setupRenderTarget(renderTarget);\n        } else if (renderTargetProperties.__hasExternalTextures) {\n          textures.rebindTextures(renderTarget, properties.get(renderTarget.texture).__webglTexture, properties.get(renderTarget.depthTexture).__webglTexture);\n        } else if (renderTarget.depthBuffer) {\n          const depthTexture = renderTarget.depthTexture;\n          if (renderTargetProperties.__boundDepthTexture !== depthTexture) {\n            if (depthTexture !== null && properties.has(depthTexture) && (renderTarget.width !== depthTexture.image.width || renderTarget.height !== depthTexture.image.height)) {\n              throw new Error(\"WebGLRenderTarget: Attached DepthTexture is initialized to the incorrect size.\");\n            }\n            textures.setupDepthRenderbuffer(renderTarget);\n          }\n        }\n        const texture = renderTarget.texture;\n        if (texture.isData3DTexture || texture.isDataArrayTexture || texture.isCompressedArrayTexture) {\n          isRenderTarget3D = true;\n        }\n        const __webglFramebuffer = properties.get(renderTarget).__webglFramebuffer;\n        if (renderTarget.isWebGLCubeRenderTarget) {\n          if (Array.isArray(__webglFramebuffer[activeCubeFace])) {\n            framebuffer = __webglFramebuffer[activeCubeFace][activeMipmapLevel];\n          } else {\n            framebuffer = __webglFramebuffer[activeCubeFace];\n          }\n          isCube = true;\n        } else if (renderTarget.samples > 0 && textures.useMultisampledRTT(renderTarget) === false) {\n          framebuffer = properties.get(renderTarget).__webglMultisampledFramebuffer;\n        } else {\n          if (Array.isArray(__webglFramebuffer)) {\n            framebuffer = __webglFramebuffer[activeMipmapLevel];\n          } else {\n            framebuffer = __webglFramebuffer;\n          }\n        }\n        _currentViewport.copy(renderTarget.viewport);\n        _currentScissor.copy(renderTarget.scissor);\n        _currentScissorTest = renderTarget.scissorTest;\n      } else {\n        _currentViewport.copy(_viewport).multiplyScalar(_pixelRatio).floor();\n        _currentScissor.copy(_scissor).multiplyScalar(_pixelRatio).floor();\n        _currentScissorTest = _scissorTest;\n      }\n      const framebufferBound = state.bindFramebuffer(_gl.FRAMEBUFFER, framebuffer);\n      if (framebufferBound && useDefaultFramebuffer) {\n        state.drawBuffers(renderTarget, framebuffer);\n      }\n      state.viewport(_currentViewport);\n      state.scissor(_currentScissor);\n      state.setScissorTest(_currentScissorTest);\n      if (isCube) {\n        const textureProperties = properties.get(renderTarget.texture);\n        _gl.framebufferTexture2D(_gl.FRAMEBUFFER, _gl.COLOR_ATTACHMENT0, _gl.TEXTURE_CUBE_MAP_POSITIVE_X + activeCubeFace, textureProperties.__webglTexture, activeMipmapLevel);\n      } else if (isRenderTarget3D) {\n        const textureProperties = properties.get(renderTarget.texture);\n        const layer = activeCubeFace || 0;\n        _gl.framebufferTextureLayer(_gl.FRAMEBUFFER, _gl.COLOR_ATTACHMENT0, textureProperties.__webglTexture, activeMipmapLevel || 0, layer);\n      }\n      _currentMaterialId = -1;\n    };\n    this.readRenderTargetPixels = function(renderTarget, x, y, width, height, buffer, activeCubeFaceIndex) {\n      if (!(renderTarget && renderTarget.isWebGLRenderTarget)) {\n        console.error(\"THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.\");\n        return;\n      }\n      let framebuffer = properties.get(renderTarget).__webglFramebuffer;\n      if (renderTarget.isWebGLCubeRenderTarget && activeCubeFaceIndex !== void 0) {\n        framebuffer = framebuffer[activeCubeFaceIndex];\n      }\n      if (framebuffer) {\n        state.bindFramebuffer(_gl.FRAMEBUFFER, framebuffer);\n        try {\n          const texture = renderTarget.texture;\n          const textureFormat = texture.format;\n          const textureType = texture.type;\n          if (!capabilities.textureFormatReadable(textureFormat)) {\n            console.error(\"THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.\");\n            return;\n          }\n          if (!capabilities.textureTypeReadable(textureType)) {\n            console.error(\"THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.\");\n            return;\n          }\n          if (x >= 0 && x <= renderTarget.width - width && (y >= 0 && y <= renderTarget.height - height)) {\n            _gl.readPixels(x, y, width, height, utils.convert(textureFormat), utils.convert(textureType), buffer);\n          }\n        } finally {\n          const framebuffer2 = _currentRenderTarget !== null ? properties.get(_currentRenderTarget).__webglFramebuffer : null;\n          state.bindFramebuffer(_gl.FRAMEBUFFER, framebuffer2);\n        }\n      }\n    };\n    this.readRenderTargetPixelsAsync = function(renderTarget, x, y, width, height, buffer, activeCubeFaceIndex) {\n      return __async(this, null, function* () {\n        if (!(renderTarget && renderTarget.isWebGLRenderTarget)) {\n          throw new Error(\"THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.\");\n        }\n        let framebuffer = properties.get(renderTarget).__webglFramebuffer;\n        if (renderTarget.isWebGLCubeRenderTarget && activeCubeFaceIndex !== void 0) {\n          framebuffer = framebuffer[activeCubeFaceIndex];\n        }\n        if (framebuffer) {\n          const texture = renderTarget.texture;\n          const textureFormat = texture.format;\n          const textureType = texture.type;\n          if (!capabilities.textureFormatReadable(textureFormat)) {\n            throw new Error(\"THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in RGBA or implementation defined format.\");\n          }\n          if (!capabilities.textureTypeReadable(textureType)) {\n            throw new Error(\"THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in UnsignedByteType or implementation defined type.\");\n          }\n          if (x >= 0 && x <= renderTarget.width - width && (y >= 0 && y <= renderTarget.height - height)) {\n            state.bindFramebuffer(_gl.FRAMEBUFFER, framebuffer);\n            const glBuffer = _gl.createBuffer();\n            _gl.bindBuffer(_gl.PIXEL_PACK_BUFFER, glBuffer);\n            _gl.bufferData(_gl.PIXEL_PACK_BUFFER, buffer.byteLength, _gl.STREAM_READ);\n            _gl.readPixels(x, y, width, height, utils.convert(textureFormat), utils.convert(textureType), 0);\n            const currFramebuffer = _currentRenderTarget !== null ? properties.get(_currentRenderTarget).__webglFramebuffer : null;\n            state.bindFramebuffer(_gl.FRAMEBUFFER, currFramebuffer);\n            const sync = _gl.fenceSync(_gl.SYNC_GPU_COMMANDS_COMPLETE, 0);\n            _gl.flush();\n            yield probeAsync(_gl, sync, 4);\n            _gl.bindBuffer(_gl.PIXEL_PACK_BUFFER, glBuffer);\n            _gl.getBufferSubData(_gl.PIXEL_PACK_BUFFER, 0, buffer);\n            _gl.deleteBuffer(glBuffer);\n            _gl.deleteSync(sync);\n            return buffer;\n          } else {\n            throw new Error(\"THREE.WebGLRenderer.readRenderTargetPixelsAsync: requested read bounds are out of range.\");\n          }\n        }\n      });\n    };\n    this.copyFramebufferToTexture = function(texture, position = null, level = 0) {\n      if (texture.isTexture !== true) {\n        warnOnce(\"WebGLRenderer: copyFramebufferToTexture function signature has changed.\");\n        position = arguments[0] || null;\n        texture = arguments[1];\n      }\n      const levelScale = Math.pow(2, -level);\n      const width = Math.floor(texture.image.width * levelScale);\n      const height = Math.floor(texture.image.height * levelScale);\n      const x = position !== null ? position.x : 0;\n      const y = position !== null ? position.y : 0;\n      textures.setTexture2D(texture, 0);\n      _gl.copyTexSubImage2D(_gl.TEXTURE_2D, level, 0, 0, x, y, width, height);\n      state.unbindTexture();\n    };\n    this.copyTextureToTexture = function(srcTexture, dstTexture, srcRegion = null, dstPosition = null, level = 0) {\n      if (srcTexture.isTexture !== true) {\n        warnOnce(\"WebGLRenderer: copyTextureToTexture function signature has changed.\");\n        dstPosition = arguments[0] || null;\n        srcTexture = arguments[1];\n        dstTexture = arguments[2];\n        level = arguments[3] || 0;\n        srcRegion = null;\n      }\n      let width, height, minX, minY;\n      let dstX, dstY;\n      if (srcRegion !== null) {\n        width = srcRegion.max.x - srcRegion.min.x;\n        height = srcRegion.max.y - srcRegion.min.y;\n        minX = srcRegion.min.x;\n        minY = srcRegion.min.y;\n      } else {\n        width = srcTexture.image.width;\n        height = srcTexture.image.height;\n        minX = 0;\n        minY = 0;\n      }\n      if (dstPosition !== null) {\n        dstX = dstPosition.x;\n        dstY = dstPosition.y;\n      } else {\n        dstX = 0;\n        dstY = 0;\n      }\n      const glFormat = utils.convert(dstTexture.format);\n      const glType = utils.convert(dstTexture.type);\n      textures.setTexture2D(dstTexture, 0);\n      _gl.pixelStorei(_gl.UNPACK_FLIP_Y_WEBGL, dstTexture.flipY);\n      _gl.pixelStorei(_gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, dstTexture.premultiplyAlpha);\n      _gl.pixelStorei(_gl.UNPACK_ALIGNMENT, dstTexture.unpackAlignment);\n      const currentUnpackRowLen = _gl.getParameter(_gl.UNPACK_ROW_LENGTH);\n      const currentUnpackImageHeight = _gl.getParameter(_gl.UNPACK_IMAGE_HEIGHT);\n      const currentUnpackSkipPixels = _gl.getParameter(_gl.UNPACK_SKIP_PIXELS);\n      const currentUnpackSkipRows = _gl.getParameter(_gl.UNPACK_SKIP_ROWS);\n      const currentUnpackSkipImages = _gl.getParameter(_gl.UNPACK_SKIP_IMAGES);\n      const image = srcTexture.isCompressedTexture ? srcTexture.mipmaps[level] : srcTexture.image;\n      _gl.pixelStorei(_gl.UNPACK_ROW_LENGTH, image.width);\n      _gl.pixelStorei(_gl.UNPACK_IMAGE_HEIGHT, image.height);\n      _gl.pixelStorei(_gl.UNPACK_SKIP_PIXELS, minX);\n      _gl.pixelStorei(_gl.UNPACK_SKIP_ROWS, minY);\n      if (srcTexture.isDataTexture) {\n        _gl.texSubImage2D(_gl.TEXTURE_2D, level, dstX, dstY, width, height, glFormat, glType, image.data);\n      } else {\n        if (srcTexture.isCompressedTexture) {\n          _gl.compressedTexSubImage2D(_gl.TEXTURE_2D, level, dstX, dstY, image.width, image.height, glFormat, image.data);\n        } else {\n          _gl.texSubImage2D(_gl.TEXTURE_2D, level, dstX, dstY, width, height, glFormat, glType, image);\n        }\n      }\n      _gl.pixelStorei(_gl.UNPACK_ROW_LENGTH, currentUnpackRowLen);\n      _gl.pixelStorei(_gl.UNPACK_IMAGE_HEIGHT, currentUnpackImageHeight);\n      _gl.pixelStorei(_gl.UNPACK_SKIP_PIXELS, currentUnpackSkipPixels);\n      _gl.pixelStorei(_gl.UNPACK_SKIP_ROWS, currentUnpackSkipRows);\n      _gl.pixelStorei(_gl.UNPACK_SKIP_IMAGES, currentUnpackSkipImages);\n      if (level === 0 && dstTexture.generateMipmaps) _gl.generateMipmap(_gl.TEXTURE_2D);\n      state.unbindTexture();\n    };\n    this.copyTextureToTexture3D = function(srcTexture, dstTexture, srcRegion = null, dstPosition = null, level = 0) {\n      if (srcTexture.isTexture !== true) {\n        warnOnce(\"WebGLRenderer: copyTextureToTexture3D function signature has changed.\");\n        srcRegion = arguments[0] || null;\n        dstPosition = arguments[1] || null;\n        srcTexture = arguments[2];\n        dstTexture = arguments[3];\n        level = arguments[4] || 0;\n      }\n      let width, height, depth2, minX, minY, minZ;\n      let dstX, dstY, dstZ;\n      const image = srcTexture.isCompressedTexture ? srcTexture.mipmaps[level] : srcTexture.image;\n      if (srcRegion !== null) {\n        width = srcRegion.max.x - srcRegion.min.x;\n        height = srcRegion.max.y - srcRegion.min.y;\n        depth2 = srcRegion.max.z - srcRegion.min.z;\n        minX = srcRegion.min.x;\n        minY = srcRegion.min.y;\n        minZ = srcRegion.min.z;\n      } else {\n        width = image.width;\n        height = image.height;\n        depth2 = image.depth;\n        minX = 0;\n        minY = 0;\n        minZ = 0;\n      }\n      if (dstPosition !== null) {\n        dstX = dstPosition.x;\n        dstY = dstPosition.y;\n        dstZ = dstPosition.z;\n      } else {\n        dstX = 0;\n        dstY = 0;\n        dstZ = 0;\n      }\n      const glFormat = utils.convert(dstTexture.format);\n      const glType = utils.convert(dstTexture.type);\n      let glTarget;\n      if (dstTexture.isData3DTexture) {\n        textures.setTexture3D(dstTexture, 0);\n        glTarget = _gl.TEXTURE_3D;\n      } else if (dstTexture.isDataArrayTexture || dstTexture.isCompressedArrayTexture) {\n        textures.setTexture2DArray(dstTexture, 0);\n        glTarget = _gl.TEXTURE_2D_ARRAY;\n      } else {\n        console.warn(\"THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.\");\n        return;\n      }\n      _gl.pixelStorei(_gl.UNPACK_FLIP_Y_WEBGL, dstTexture.flipY);\n      _gl.pixelStorei(_gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, dstTexture.premultiplyAlpha);\n      _gl.pixelStorei(_gl.UNPACK_ALIGNMENT, dstTexture.unpackAlignment);\n      const currentUnpackRowLen = _gl.getParameter(_gl.UNPACK_ROW_LENGTH);\n      const currentUnpackImageHeight = _gl.getParameter(_gl.UNPACK_IMAGE_HEIGHT);\n      const currentUnpackSkipPixels = _gl.getParameter(_gl.UNPACK_SKIP_PIXELS);\n      const currentUnpackSkipRows = _gl.getParameter(_gl.UNPACK_SKIP_ROWS);\n      const currentUnpackSkipImages = _gl.getParameter(_gl.UNPACK_SKIP_IMAGES);\n      _gl.pixelStorei(_gl.UNPACK_ROW_LENGTH, image.width);\n      _gl.pixelStorei(_gl.UNPACK_IMAGE_HEIGHT, image.height);\n      _gl.pixelStorei(_gl.UNPACK_SKIP_PIXELS, minX);\n      _gl.pixelStorei(_gl.UNPACK_SKIP_ROWS, minY);\n      _gl.pixelStorei(_gl.UNPACK_SKIP_IMAGES, minZ);\n      if (srcTexture.isDataTexture || srcTexture.isData3DTexture) {\n        _gl.texSubImage3D(glTarget, level, dstX, dstY, dstZ, width, height, depth2, glFormat, glType, image.data);\n      } else {\n        if (dstTexture.isCompressedArrayTexture) {\n          _gl.compressedTexSubImage3D(glTarget, level, dstX, dstY, dstZ, width, height, depth2, glFormat, image.data);\n        } else {\n          _gl.texSubImage3D(glTarget, level, dstX, dstY, dstZ, width, height, depth2, glFormat, glType, image);\n        }\n      }\n      _gl.pixelStorei(_gl.UNPACK_ROW_LENGTH, currentUnpackRowLen);\n      _gl.pixelStorei(_gl.UNPACK_IMAGE_HEIGHT, currentUnpackImageHeight);\n      _gl.pixelStorei(_gl.UNPACK_SKIP_PIXELS, currentUnpackSkipPixels);\n      _gl.pixelStorei(_gl.UNPACK_SKIP_ROWS, currentUnpackSkipRows);\n      _gl.pixelStorei(_gl.UNPACK_SKIP_IMAGES, currentUnpackSkipImages);\n      if (level === 0 && dstTexture.generateMipmaps) _gl.generateMipmap(glTarget);\n      state.unbindTexture();\n    };\n    this.initRenderTarget = function(target) {\n      if (properties.get(target).__webglFramebuffer === void 0) {\n        textures.setupRenderTarget(target);\n      }\n    };\n    this.initTexture = function(texture) {\n      if (texture.isCubeTexture) {\n        textures.setTextureCube(texture, 0);\n      } else if (texture.isData3DTexture) {\n        textures.setTexture3D(texture, 0);\n      } else if (texture.isDataArrayTexture || texture.isCompressedArrayTexture) {\n        textures.setTexture2DArray(texture, 0);\n      } else {\n        textures.setTexture2D(texture, 0);\n      }\n      state.unbindTexture();\n    };\n    this.resetState = function() {\n      _currentActiveCubeFace = 0;\n      _currentActiveMipmapLevel = 0;\n      _currentRenderTarget = null;\n      state.reset();\n      bindingStates.reset();\n    };\n    if (typeof __THREE_DEVTOOLS__ !== \"undefined\") {\n      __THREE_DEVTOOLS__.dispatchEvent(new CustomEvent(\"observe\", { detail: this }));\n    }\n  }\n  get coordinateSystem() {\n    return WebGLCoordinateSystem;\n  }\n  get outputColorSpace() {\n    return this._outputColorSpace;\n  }\n  set outputColorSpace(colorSpace) {\n    this._outputColorSpace = colorSpace;\n    const gl = this.getContext();\n    gl.drawingBufferColorSpace = colorSpace === DisplayP3ColorSpace ? \"display-p3\" : \"srgb\";\n    gl.unpackColorSpace = ColorManagement.workingColorSpace === LinearDisplayP3ColorSpace ? \"display-p3\" : \"srgb\";\n  }\n};\nvar FogExp2 = class _FogExp2 {\n  constructor(color, density = 25e-5) {\n    this.isFogExp2 = true;\n    this.name = \"\";\n    this.color = new Color(color);\n    this.density = density;\n  }\n  clone() {\n    return new _FogExp2(this.color, this.density);\n  }\n  toJSON() {\n    return {\n      type: \"FogExp2\",\n      name: this.name,\n      color: this.color.getHex(),\n      density: this.density\n    };\n  }\n};\nvar Fog = class _Fog {\n  constructor(color, near = 1, far = 1e3) {\n    this.isFog = true;\n    this.name = \"\";\n    this.color = new Color(color);\n    this.near = near;\n    this.far = far;\n  }\n  clone() {\n    return new _Fog(this.color, this.near, this.far);\n  }\n  toJSON() {\n    return {\n      type: \"Fog\",\n      name: this.name,\n      color: this.color.getHex(),\n      near: this.near,\n      far: this.far\n    };\n  }\n};\nvar Scene = class extends Object3D {\n  constructor() {\n    super();\n    this.isScene = true;\n    this.type = \"Scene\";\n    this.background = null;\n    this.environment = null;\n    this.fog = null;\n    this.backgroundBlurriness = 0;\n    this.backgroundIntensity = 1;\n    this.backgroundRotation = new Euler();\n    this.environmentIntensity = 1;\n    this.environmentRotation = new Euler();\n    this.overrideMaterial = null;\n    if (typeof __THREE_DEVTOOLS__ !== \"undefined\") {\n      __THREE_DEVTOOLS__.dispatchEvent(new CustomEvent(\"observe\", { detail: this }));\n    }\n  }\n  copy(source, recursive) {\n    super.copy(source, recursive);\n    if (source.background !== null) this.background = source.background.clone();\n    if (source.environment !== null) this.environment = source.environment.clone();\n    if (source.fog !== null) this.fog = source.fog.clone();\n    this.backgroundBlurriness = source.backgroundBlurriness;\n    this.backgroundIntensity = source.backgroundIntensity;\n    this.backgroundRotation.copy(source.backgroundRotation);\n    this.environmentIntensity = source.environmentIntensity;\n    this.environmentRotation.copy(source.environmentRotation);\n    if (source.overrideMaterial !== null) this.overrideMaterial = source.overrideMaterial.clone();\n    this.matrixAutoUpdate = source.matrixAutoUpdate;\n    return this;\n  }\n  toJSON(meta) {\n    const data = super.toJSON(meta);\n    if (this.fog !== null) data.object.fog = this.fog.toJSON();\n    if (this.backgroundBlurriness > 0) data.object.backgroundBlurriness = this.backgroundBlurriness;\n    if (this.backgroundIntensity !== 1) data.object.backgroundIntensity = this.backgroundIntensity;\n    data.object.backgroundRotation = this.backgroundRotation.toArray();\n    if (this.environmentIntensity !== 1) data.object.environmentIntensity = this.environmentIntensity;\n    data.object.environmentRotation = this.environmentRotation.toArray();\n    return data;\n  }\n};\nvar InterleavedBuffer = class {\n  constructor(array, stride) {\n    this.isInterleavedBuffer = true;\n    this.array = array;\n    this.stride = stride;\n    this.count = array !== void 0 ? array.length / stride : 0;\n    this.usage = StaticDrawUsage;\n    this.updateRanges = [];\n    this.version = 0;\n    this.uuid = generateUUID();\n  }\n  onUploadCallback() {\n  }\n  set needsUpdate(value) {\n    if (value === true) this.version++;\n  }\n  setUsage(value) {\n    this.usage = value;\n    return this;\n  }\n  addUpdateRange(start, count) {\n    this.updateRanges.push({ start, count });\n  }\n  clearUpdateRanges() {\n    this.updateRanges.length = 0;\n  }\n  copy(source) {\n    this.array = new source.array.constructor(source.array);\n    this.count = source.count;\n    this.stride = source.stride;\n    this.usage = source.usage;\n    return this;\n  }\n  copyAt(index1, attribute, index2) {\n    index1 *= this.stride;\n    index2 *= attribute.stride;\n    for (let i = 0, l = this.stride; i < l; i++) {\n      this.array[index1 + i] = attribute.array[index2 + i];\n    }\n    return this;\n  }\n  set(value, offset = 0) {\n    this.array.set(value, offset);\n    return this;\n  }\n  clone(data) {\n    if (data.arrayBuffers === void 0) {\n      data.arrayBuffers = {};\n    }\n    if (this.array.buffer._uuid === void 0) {\n      this.array.buffer._uuid = generateUUID();\n    }\n    if (data.arrayBuffers[this.array.buffer._uuid] === void 0) {\n      data.arrayBuffers[this.array.buffer._uuid] = this.array.slice(0).buffer;\n    }\n    const array = new this.array.constructor(data.arrayBuffers[this.array.buffer._uuid]);\n    const ib = new this.constructor(array, this.stride);\n    ib.setUsage(this.usage);\n    return ib;\n  }\n  onUpload(callback) {\n    this.onUploadCallback = callback;\n    return this;\n  }\n  toJSON(data) {\n    if (data.arrayBuffers === void 0) {\n      data.arrayBuffers = {};\n    }\n    if (this.array.buffer._uuid === void 0) {\n      this.array.buffer._uuid = generateUUID();\n    }\n    if (data.arrayBuffers[this.array.buffer._uuid] === void 0) {\n      data.arrayBuffers[this.array.buffer._uuid] = Array.from(new Uint32Array(this.array.buffer));\n    }\n    return {\n      uuid: this.uuid,\n      buffer: this.array.buffer._uuid,\n      type: this.array.constructor.name,\n      stride: this.stride\n    };\n  }\n};\nvar _vector$6 = /* @__PURE__ */ new Vector3();\nvar InterleavedBufferAttribute = class _InterleavedBufferAttribute {\n  constructor(interleavedBuffer, itemSize, offset, normalized = false) {\n    this.isInterleavedBufferAttribute = true;\n    this.name = \"\";\n    this.data = interleavedBuffer;\n    this.itemSize = itemSize;\n    this.offset = offset;\n    this.normalized = normalized;\n  }\n  get count() {\n    return this.data.count;\n  }\n  get array() {\n    return this.data.array;\n  }\n  set needsUpdate(value) {\n    this.data.needsUpdate = value;\n  }\n  applyMatrix4(m) {\n    for (let i = 0, l = this.data.count; i < l; i++) {\n      _vector$6.fromBufferAttribute(this, i);\n      _vector$6.applyMatrix4(m);\n      this.setXYZ(i, _vector$6.x, _vector$6.y, _vector$6.z);\n    }\n    return this;\n  }\n  applyNormalMatrix(m) {\n    for (let i = 0, l = this.count; i < l; i++) {\n      _vector$6.fromBufferAttribute(this, i);\n      _vector$6.applyNormalMatrix(m);\n      this.setXYZ(i, _vector$6.x, _vector$6.y, _vector$6.z);\n    }\n    return this;\n  }\n  transformDirection(m) {\n    for (let i = 0, l = this.count; i < l; i++) {\n      _vector$6.fromBufferAttribute(this, i);\n      _vector$6.transformDirection(m);\n      this.setXYZ(i, _vector$6.x, _vector$6.y, _vector$6.z);\n    }\n    return this;\n  }\n  getComponent(index, component) {\n    let value = this.array[index * this.data.stride + this.offset + component];\n    if (this.normalized) value = denormalize(value, this.array);\n    return value;\n  }\n  setComponent(index, component, value) {\n    if (this.normalized) value = normalize(value, this.array);\n    this.data.array[index * this.data.stride + this.offset + component] = value;\n    return this;\n  }\n  setX(index, x) {\n    if (this.normalized) x = normalize(x, this.array);\n    this.data.array[index * this.data.stride + this.offset] = x;\n    return this;\n  }\n  setY(index, y) {\n    if (this.normalized) y = normalize(y, this.array);\n    this.data.array[index * this.data.stride + this.offset + 1] = y;\n    return this;\n  }\n  setZ(index, z) {\n    if (this.normalized) z = normalize(z, this.array);\n    this.data.array[index * this.data.stride + this.offset + 2] = z;\n    return this;\n  }\n  setW(index, w) {\n    if (this.normalized) w = normalize(w, this.array);\n    this.data.array[index * this.data.stride + this.offset + 3] = w;\n    return this;\n  }\n  getX(index) {\n    let x = this.data.array[index * this.data.stride + this.offset];\n    if (this.normalized) x = denormalize(x, this.array);\n    return x;\n  }\n  getY(index) {\n    let y = this.data.array[index * this.data.stride + this.offset + 1];\n    if (this.normalized) y = denormalize(y, this.array);\n    return y;\n  }\n  getZ(index) {\n    let z = this.data.array[index * this.data.stride + this.offset + 2];\n    if (this.normalized) z = denormalize(z, this.array);\n    return z;\n  }\n  getW(index) {\n    let w = this.data.array[index * this.data.stride + this.offset + 3];\n    if (this.normalized) w = denormalize(w, this.array);\n    return w;\n  }\n  setXY(index, x, y) {\n    index = index * this.data.stride + this.offset;\n    if (this.normalized) {\n      x = normalize(x, this.array);\n      y = normalize(y, this.array);\n    }\n    this.data.array[index + 0] = x;\n    this.data.array[index + 1] = y;\n    return this;\n  }\n  setXYZ(index, x, y, z) {\n    index = index * this.data.stride + this.offset;\n    if (this.normalized) {\n      x = normalize(x, this.array);\n      y = normalize(y, this.array);\n      z = normalize(z, this.array);\n    }\n    this.data.array[index + 0] = x;\n    this.data.array[index + 1] = y;\n    this.data.array[index + 2] = z;\n    return this;\n  }\n  setXYZW(index, x, y, z, w) {\n    index = index * this.data.stride + this.offset;\n    if (this.normalized) {\n      x = normalize(x, this.array);\n      y = normalize(y, this.array);\n      z = normalize(z, this.array);\n      w = normalize(w, this.array);\n    }\n    this.data.array[index + 0] = x;\n    this.data.array[index + 1] = y;\n    this.data.array[index + 2] = z;\n    this.data.array[index + 3] = w;\n    return this;\n  }\n  clone(data) {\n    if (data === void 0) {\n      console.log(\"THREE.InterleavedBufferAttribute.clone(): Cloning an interleaved buffer attribute will de-interleave buffer data.\");\n      const array = [];\n      for (let i = 0; i < this.count; i++) {\n        const index = i * this.data.stride + this.offset;\n        for (let j = 0; j < this.itemSize; j++) {\n          array.push(this.data.array[index + j]);\n        }\n      }\n      return new BufferAttribute(new this.array.constructor(array), this.itemSize, this.normalized);\n    } else {\n      if (data.interleavedBuffers === void 0) {\n        data.interleavedBuffers = {};\n      }\n      if (data.interleavedBuffers[this.data.uuid] === void 0) {\n        data.interleavedBuffers[this.data.uuid] = this.data.clone(data);\n      }\n      return new _InterleavedBufferAttribute(data.interleavedBuffers[this.data.uuid], this.itemSize, this.offset, this.normalized);\n    }\n  }\n  toJSON(data) {\n    if (data === void 0) {\n      console.log(\"THREE.InterleavedBufferAttribute.toJSON(): Serializing an interleaved buffer attribute will de-interleave buffer data.\");\n      const array = [];\n      for (let i = 0; i < this.count; i++) {\n        const index = i * this.data.stride + this.offset;\n        for (let j = 0; j < this.itemSize; j++) {\n          array.push(this.data.array[index + j]);\n        }\n      }\n      return {\n        itemSize: this.itemSize,\n        type: this.array.constructor.name,\n        array,\n        normalized: this.normalized\n      };\n    } else {\n      if (data.interleavedBuffers === void 0) {\n        data.interleavedBuffers = {};\n      }\n      if (data.interleavedBuffers[this.data.uuid] === void 0) {\n        data.interleavedBuffers[this.data.uuid] = this.data.toJSON(data);\n      }\n      return {\n        isInterleavedBufferAttribute: true,\n        itemSize: this.itemSize,\n        data: this.data.uuid,\n        offset: this.offset,\n        normalized: this.normalized\n      };\n    }\n  }\n};\nvar SpriteMaterial = class extends Material {\n  constructor(parameters) {\n    super();\n    this.isSpriteMaterial = true;\n    this.type = \"SpriteMaterial\";\n    this.color = new Color(16777215);\n    this.map = null;\n    this.alphaMap = null;\n    this.rotation = 0;\n    this.sizeAttenuation = true;\n    this.transparent = true;\n    this.fog = true;\n    this.setValues(parameters);\n  }\n  copy(source) {\n    super.copy(source);\n    this.color.copy(source.color);\n    this.map = source.map;\n    this.alphaMap = source.alphaMap;\n    this.rotation = source.rotation;\n    this.sizeAttenuation = source.sizeAttenuation;\n    this.fog = source.fog;\n    return this;\n  }\n};\nvar _geometry;\nvar _intersectPoint = /* @__PURE__ */ new Vector3();\nvar _worldScale = /* @__PURE__ */ new Vector3();\nvar _mvPosition = /* @__PURE__ */ new Vector3();\nvar _alignedPosition = /* @__PURE__ */ new Vector2();\nvar _rotatedPosition = /* @__PURE__ */ new Vector2();\nvar _viewWorldMatrix = /* @__PURE__ */ new Matrix4();\nvar _vA = /* @__PURE__ */ new Vector3();\nvar _vB = /* @__PURE__ */ new Vector3();\nvar _vC = /* @__PURE__ */ new Vector3();\nvar _uvA = /* @__PURE__ */ new Vector2();\nvar _uvB = /* @__PURE__ */ new Vector2();\nvar _uvC = /* @__PURE__ */ new Vector2();\nvar Sprite = class extends Object3D {\n  constructor(material = new SpriteMaterial()) {\n    super();\n    this.isSprite = true;\n    this.type = \"Sprite\";\n    if (_geometry === void 0) {\n      _geometry = new BufferGeometry();\n      const float32Array = new Float32Array([\n        -0.5,\n        -0.5,\n        0,\n        0,\n        0,\n        0.5,\n        -0.5,\n        0,\n        1,\n        0,\n        0.5,\n        0.5,\n        0,\n        1,\n        1,\n        -0.5,\n        0.5,\n        0,\n        0,\n        1\n      ]);\n      const interleavedBuffer = new InterleavedBuffer(float32Array, 5);\n      _geometry.setIndex([0, 1, 2, 0, 2, 3]);\n      _geometry.setAttribute(\"position\", new InterleavedBufferAttribute(interleavedBuffer, 3, 0, false));\n      _geometry.setAttribute(\"uv\", new InterleavedBufferAttribute(interleavedBuffer, 2, 3, false));\n    }\n    this.geometry = _geometry;\n    this.material = material;\n    this.center = new Vector2(0.5, 0.5);\n  }\n  raycast(raycaster, intersects2) {\n    if (raycaster.camera === null) {\n      console.error('THREE.Sprite: \"Raycaster.camera\" needs to be set in order to raycast against sprites.');\n    }\n    _worldScale.setFromMatrixScale(this.matrixWorld);\n    _viewWorldMatrix.copy(raycaster.camera.matrixWorld);\n    this.modelViewMatrix.multiplyMatrices(raycaster.camera.matrixWorldInverse, this.matrixWorld);\n    _mvPosition.setFromMatrixPosition(this.modelViewMatrix);\n    if (raycaster.camera.isPerspectiveCamera && this.material.sizeAttenuation === false) {\n      _worldScale.multiplyScalar(-_mvPosition.z);\n    }\n    const rotation = this.material.rotation;\n    let sin, cos;\n    if (rotation !== 0) {\n      cos = Math.cos(rotation);\n      sin = Math.sin(rotation);\n    }\n    const center = this.center;\n    transformVertex(_vA.set(-0.5, -0.5, 0), _mvPosition, center, _worldScale, sin, cos);\n    transformVertex(_vB.set(0.5, -0.5, 0), _mvPosition, center, _worldScale, sin, cos);\n    transformVertex(_vC.set(0.5, 0.5, 0), _mvPosition, center, _worldScale, sin, cos);\n    _uvA.set(0, 0);\n    _uvB.set(1, 0);\n    _uvC.set(1, 1);\n    let intersect2 = raycaster.ray.intersectTriangle(_vA, _vB, _vC, false, _intersectPoint);\n    if (intersect2 === null) {\n      transformVertex(_vB.set(-0.5, 0.5, 0), _mvPosition, center, _worldScale, sin, cos);\n      _uvB.set(0, 1);\n      intersect2 = raycaster.ray.intersectTriangle(_vA, _vC, _vB, false, _intersectPoint);\n      if (intersect2 === null) {\n        return;\n      }\n    }\n    const distance = raycaster.ray.origin.distanceTo(_intersectPoint);\n    if (distance < raycaster.near || distance > raycaster.far) return;\n    intersects2.push({\n      distance,\n      point: _intersectPoint.clone(),\n      uv: Triangle.getInterpolation(_intersectPoint, _vA, _vB, _vC, _uvA, _uvB, _uvC, new Vector2()),\n      face: null,\n      object: this\n    });\n  }\n  copy(source, recursive) {\n    super.copy(source, recursive);\n    if (source.center !== void 0) this.center.copy(source.center);\n    this.material = source.material;\n    return this;\n  }\n};\nfunction transformVertex(vertexPosition, mvPosition, center, scale, sin, cos) {\n  _alignedPosition.subVectors(vertexPosition, center).addScalar(0.5).multiply(scale);\n  if (sin !== void 0) {\n    _rotatedPosition.x = cos * _alignedPosition.x - sin * _alignedPosition.y;\n    _rotatedPosition.y = sin * _alignedPosition.x + cos * _alignedPosition.y;\n  } else {\n    _rotatedPosition.copy(_alignedPosition);\n  }\n  vertexPosition.copy(mvPosition);\n  vertexPosition.x += _rotatedPosition.x;\n  vertexPosition.y += _rotatedPosition.y;\n  vertexPosition.applyMatrix4(_viewWorldMatrix);\n}\nvar _v1$2 = /* @__PURE__ */ new Vector3();\nvar _v2$1 = /* @__PURE__ */ new Vector3();\nvar LOD = class extends Object3D {\n  constructor() {\n    super();\n    this._currentLevel = 0;\n    this.type = \"LOD\";\n    Object.defineProperties(this, {\n      levels: {\n        enumerable: true,\n        value: []\n      },\n      isLOD: {\n        value: true\n      }\n    });\n    this.autoUpdate = true;\n  }\n  copy(source) {\n    super.copy(source, false);\n    const levels = source.levels;\n    for (let i = 0, l = levels.length; i < l; i++) {\n      const level = levels[i];\n      this.addLevel(level.object.clone(), level.distance, level.hysteresis);\n    }\n    this.autoUpdate = source.autoUpdate;\n    return this;\n  }\n  addLevel(object, distance = 0, hysteresis = 0) {\n    distance = Math.abs(distance);\n    const levels = this.levels;\n    let l;\n    for (l = 0; l < levels.length; l++) {\n      if (distance < levels[l].distance) {\n        break;\n      }\n    }\n    levels.splice(l, 0, { distance, hysteresis, object });\n    this.add(object);\n    return this;\n  }\n  removeLevel(distance) {\n    const levels = this.levels;\n    for (let i = 0; i < levels.length; i++) {\n      if (levels[i].distance === distance) {\n        const removedElements = levels.splice(i, 1);\n        this.remove(removedElements[0].object);\n        return true;\n      }\n    }\n    return false;\n  }\n  getCurrentLevel() {\n    return this._currentLevel;\n  }\n  getObjectForDistance(distance) {\n    const levels = this.levels;\n    if (levels.length > 0) {\n      let i, l;\n      for (i = 1, l = levels.length; i < l; i++) {\n        let levelDistance = levels[i].distance;\n        if (levels[i].object.visible) {\n          levelDistance -= levelDistance * levels[i].hysteresis;\n        }\n        if (distance < levelDistance) {\n          break;\n        }\n      }\n      return levels[i - 1].object;\n    }\n    return null;\n  }\n  raycast(raycaster, intersects2) {\n    const levels = this.levels;\n    if (levels.length > 0) {\n      _v1$2.setFromMatrixPosition(this.matrixWorld);\n      const distance = raycaster.ray.origin.distanceTo(_v1$2);\n      this.getObjectForDistance(distance).raycast(raycaster, intersects2);\n    }\n  }\n  update(camera) {\n    const levels = this.levels;\n    if (levels.length > 1) {\n      _v1$2.setFromMatrixPosition(camera.matrixWorld);\n      _v2$1.setFromMatrixPosition(this.matrixWorld);\n      const distance = _v1$2.distanceTo(_v2$1) / camera.zoom;\n      levels[0].object.visible = true;\n      let i, l;\n      for (i = 1, l = levels.length; i < l; i++) {\n        let levelDistance = levels[i].distance;\n        if (levels[i].object.visible) {\n          levelDistance -= levelDistance * levels[i].hysteresis;\n        }\n        if (distance >= levelDistance) {\n          levels[i - 1].object.visible = false;\n          levels[i].object.visible = true;\n        } else {\n          break;\n        }\n      }\n      this._currentLevel = i - 1;\n      for (; i < l; i++) {\n        levels[i].object.visible = false;\n      }\n    }\n  }\n  toJSON(meta) {\n    const data = super.toJSON(meta);\n    if (this.autoUpdate === false) data.object.autoUpdate = false;\n    data.object.levels = [];\n    const levels = this.levels;\n    for (let i = 0, l = levels.length; i < l; i++) {\n      const level = levels[i];\n      data.object.levels.push({\n        object: level.object.uuid,\n        distance: level.distance,\n        hysteresis: level.hysteresis\n      });\n    }\n    return data;\n  }\n};\nvar _basePosition = /* @__PURE__ */ new Vector3();\nvar _skinIndex = /* @__PURE__ */ new Vector4();\nvar _skinWeight = /* @__PURE__ */ new Vector4();\nvar _vector3 = /* @__PURE__ */ new Vector3();\nvar _matrix4 = /* @__PURE__ */ new Matrix4();\nvar _vertex = /* @__PURE__ */ new Vector3();\nvar _sphere$4 = /* @__PURE__ */ new Sphere();\nvar _inverseMatrix$2 = /* @__PURE__ */ new Matrix4();\nvar _ray$2 = /* @__PURE__ */ new Ray();\nvar SkinnedMesh = class extends Mesh {\n  constructor(geometry, material) {\n    super(geometry, material);\n    this.isSkinnedMesh = true;\n    this.type = \"SkinnedMesh\";\n    this.bindMode = AttachedBindMode;\n    this.bindMatrix = new Matrix4();\n    this.bindMatrixInverse = new Matrix4();\n    this.boundingBox = null;\n    this.boundingSphere = null;\n  }\n  computeBoundingBox() {\n    const geometry = this.geometry;\n    if (this.boundingBox === null) {\n      this.boundingBox = new Box3();\n    }\n    this.boundingBox.makeEmpty();\n    const positionAttribute = geometry.getAttribute(\"position\");\n    for (let i = 0; i < positionAttribute.count; i++) {\n      this.getVertexPosition(i, _vertex);\n      this.boundingBox.expandByPoint(_vertex);\n    }\n  }\n  computeBoundingSphere() {\n    const geometry = this.geometry;\n    if (this.boundingSphere === null) {\n      this.boundingSphere = new Sphere();\n    }\n    this.boundingSphere.makeEmpty();\n    const positionAttribute = geometry.getAttribute(\"position\");\n    for (let i = 0; i < positionAttribute.count; i++) {\n      this.getVertexPosition(i, _vertex);\n      this.boundingSphere.expandByPoint(_vertex);\n    }\n  }\n  copy(source, recursive) {\n    super.copy(source, recursive);\n    this.bindMode = source.bindMode;\n    this.bindMatrix.copy(source.bindMatrix);\n    this.bindMatrixInverse.copy(source.bindMatrixInverse);\n    this.skeleton = source.skeleton;\n    if (source.boundingBox !== null) this.boundingBox = source.boundingBox.clone();\n    if (source.boundingSphere !== null) this.boundingSphere = source.boundingSphere.clone();\n    return this;\n  }\n  raycast(raycaster, intersects2) {\n    const material = this.material;\n    const matrixWorld = this.matrixWorld;\n    if (material === void 0) return;\n    if (this.boundingSphere === null) this.computeBoundingSphere();\n    _sphere$4.copy(this.boundingSphere);\n    _sphere$4.applyMatrix4(matrixWorld);\n    if (raycaster.ray.intersectsSphere(_sphere$4) === false) return;\n    _inverseMatrix$2.copy(matrixWorld).invert();\n    _ray$2.copy(raycaster.ray).applyMatrix4(_inverseMatrix$2);\n    if (this.boundingBox !== null) {\n      if (_ray$2.intersectsBox(this.boundingBox) === false) return;\n    }\n    this._computeIntersections(raycaster, intersects2, _ray$2);\n  }\n  getVertexPosition(index, target) {\n    super.getVertexPosition(index, target);\n    this.applyBoneTransform(index, target);\n    return target;\n  }\n  bind(skeleton, bindMatrix) {\n    this.skeleton = skeleton;\n    if (bindMatrix === void 0) {\n      this.updateMatrixWorld(true);\n      this.skeleton.calculateInverses();\n      bindMatrix = this.matrixWorld;\n    }\n    this.bindMatrix.copy(bindMatrix);\n    this.bindMatrixInverse.copy(bindMatrix).invert();\n  }\n  pose() {\n    this.skeleton.pose();\n  }\n  normalizeSkinWeights() {\n    const vector = new Vector4();\n    const skinWeight = this.geometry.attributes.skinWeight;\n    for (let i = 0, l = skinWeight.count; i < l; i++) {\n      vector.fromBufferAttribute(skinWeight, i);\n      const scale = 1 / vector.manhattanLength();\n      if (scale !== Infinity) {\n        vector.multiplyScalar(scale);\n      } else {\n        vector.set(1, 0, 0, 0);\n      }\n      skinWeight.setXYZW(i, vector.x, vector.y, vector.z, vector.w);\n    }\n  }\n  updateMatrixWorld(force) {\n    super.updateMatrixWorld(force);\n    if (this.bindMode === AttachedBindMode) {\n      this.bindMatrixInverse.copy(this.matrixWorld).invert();\n    } else if (this.bindMode === DetachedBindMode) {\n      this.bindMatrixInverse.copy(this.bindMatrix).invert();\n    } else {\n      console.warn(\"THREE.SkinnedMesh: Unrecognized bindMode: \" + this.bindMode);\n    }\n  }\n  applyBoneTransform(index, vector) {\n    const skeleton = this.skeleton;\n    const geometry = this.geometry;\n    _skinIndex.fromBufferAttribute(geometry.attributes.skinIndex, index);\n    _skinWeight.fromBufferAttribute(geometry.attributes.skinWeight, index);\n    _basePosition.copy(vector).applyMatrix4(this.bindMatrix);\n    vector.set(0, 0, 0);\n    for (let i = 0; i < 4; i++) {\n      const weight = _skinWeight.getComponent(i);\n      if (weight !== 0) {\n        const boneIndex = _skinIndex.getComponent(i);\n        _matrix4.multiplyMatrices(skeleton.bones[boneIndex].matrixWorld, skeleton.boneInverses[boneIndex]);\n        vector.addScaledVector(_vector3.copy(_basePosition).applyMatrix4(_matrix4), weight);\n      }\n    }\n    return vector.applyMatrix4(this.bindMatrixInverse);\n  }\n};\nvar Bone = class extends Object3D {\n  constructor() {\n    super();\n    this.isBone = true;\n    this.type = \"Bone\";\n  }\n};\nvar DataTexture = class extends Texture {\n  constructor(data = null, width = 1, height = 1, format, type, mapping, wrapS, wrapT, magFilter = NearestFilter, minFilter = NearestFilter, anisotropy, colorSpace) {\n    super(null, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, colorSpace);\n    this.isDataTexture = true;\n    this.image = { data, width, height };\n    this.generateMipmaps = false;\n    this.flipY = false;\n    this.unpackAlignment = 1;\n  }\n};\nvar _offsetMatrix = /* @__PURE__ */ new Matrix4();\nvar _identityMatrix$1 = /* @__PURE__ */ new Matrix4();\nvar Skeleton = class _Skeleton {\n  constructor(bones = [], boneInverses = []) {\n    this.uuid = generateUUID();\n    this.bones = bones.slice(0);\n    this.boneInverses = boneInverses;\n    this.boneMatrices = null;\n    this.boneTexture = null;\n    this.init();\n  }\n  init() {\n    const bones = this.bones;\n    const boneInverses = this.boneInverses;\n    this.boneMatrices = new Float32Array(bones.length * 16);\n    if (boneInverses.length === 0) {\n      this.calculateInverses();\n    } else {\n      if (bones.length !== boneInverses.length) {\n        console.warn(\"THREE.Skeleton: Number of inverse bone matrices does not match amount of bones.\");\n        this.boneInverses = [];\n        for (let i = 0, il = this.bones.length; i < il; i++) {\n          this.boneInverses.push(new Matrix4());\n        }\n      }\n    }\n  }\n  calculateInverses() {\n    this.boneInverses.length = 0;\n    for (let i = 0, il = this.bones.length; i < il; i++) {\n      const inverse = new Matrix4();\n      if (this.bones[i]) {\n        inverse.copy(this.bones[i].matrixWorld).invert();\n      }\n      this.boneInverses.push(inverse);\n    }\n  }\n  pose() {\n    for (let i = 0, il = this.bones.length; i < il; i++) {\n      const bone = this.bones[i];\n      if (bone) {\n        bone.matrixWorld.copy(this.boneInverses[i]).invert();\n      }\n    }\n    for (let i = 0, il = this.bones.length; i < il; i++) {\n      const bone = this.bones[i];\n      if (bone) {\n        if (bone.parent && bone.parent.isBone) {\n          bone.matrix.copy(bone.parent.matrixWorld).invert();\n          bone.matrix.multiply(bone.matrixWorld);\n        } else {\n          bone.matrix.copy(bone.matrixWorld);\n        }\n        bone.matrix.decompose(bone.position, bone.quaternion, bone.scale);\n      }\n    }\n  }\n  update() {\n    const bones = this.bones;\n    const boneInverses = this.boneInverses;\n    const boneMatrices = this.boneMatrices;\n    const boneTexture = this.boneTexture;\n    for (let i = 0, il = bones.length; i < il; i++) {\n      const matrix = bones[i] ? bones[i].matrixWorld : _identityMatrix$1;\n      _offsetMatrix.multiplyMatrices(matrix, boneInverses[i]);\n      _offsetMatrix.toArray(boneMatrices, i * 16);\n    }\n    if (boneTexture !== null) {\n      boneTexture.needsUpdate = true;\n    }\n  }\n  clone() {\n    return new _Skeleton(this.bones, this.boneInverses);\n  }\n  computeBoneTexture() {\n    let size = Math.sqrt(this.bones.length * 4);\n    size = Math.ceil(size / 4) * 4;\n    size = Math.max(size, 4);\n    const boneMatrices = new Float32Array(size * size * 4);\n    boneMatrices.set(this.boneMatrices);\n    const boneTexture = new DataTexture(boneMatrices, size, size, RGBAFormat, FloatType);\n    boneTexture.needsUpdate = true;\n    this.boneMatrices = boneMatrices;\n    this.boneTexture = boneTexture;\n    return this;\n  }\n  getBoneByName(name) {\n    for (let i = 0, il = this.bones.length; i < il; i++) {\n      const bone = this.bones[i];\n      if (bone.name === name) {\n        return bone;\n      }\n    }\n    return void 0;\n  }\n  dispose() {\n    if (this.boneTexture !== null) {\n      this.boneTexture.dispose();\n      this.boneTexture = null;\n    }\n  }\n  fromJSON(json, bones) {\n    this.uuid = json.uuid;\n    for (let i = 0, l = json.bones.length; i < l; i++) {\n      const uuid = json.bones[i];\n      let bone = bones[uuid];\n      if (bone === void 0) {\n        console.warn(\"THREE.Skeleton: No bone found with UUID:\", uuid);\n        bone = new Bone();\n      }\n      this.bones.push(bone);\n      this.boneInverses.push(new Matrix4().fromArray(json.boneInverses[i]));\n    }\n    this.init();\n    return this;\n  }\n  toJSON() {\n    const data = {\n      metadata: {\n        version: 4.6,\n        type: \"Skeleton\",\n        generator: \"Skeleton.toJSON\"\n      },\n      bones: [],\n      boneInverses: []\n    };\n    data.uuid = this.uuid;\n    const bones = this.bones;\n    const boneInverses = this.boneInverses;\n    for (let i = 0, l = bones.length; i < l; i++) {\n      const bone = bones[i];\n      data.bones.push(bone.uuid);\n      const boneInverse = boneInverses[i];\n      data.boneInverses.push(boneInverse.toArray());\n    }\n    return data;\n  }\n};\nvar InstancedBufferAttribute = class extends BufferAttribute {\n  constructor(array, itemSize, normalized, meshPerAttribute = 1) {\n    super(array, itemSize, normalized);\n    this.isInstancedBufferAttribute = true;\n    this.meshPerAttribute = meshPerAttribute;\n  }\n  copy(source) {\n    super.copy(source);\n    this.meshPerAttribute = source.meshPerAttribute;\n    return this;\n  }\n  toJSON() {\n    const data = super.toJSON();\n    data.meshPerAttribute = this.meshPerAttribute;\n    data.isInstancedBufferAttribute = true;\n    return data;\n  }\n};\nvar _instanceLocalMatrix = /* @__PURE__ */ new Matrix4();\nvar _instanceWorldMatrix = /* @__PURE__ */ new Matrix4();\nvar _instanceIntersects = [];\nvar _box3 = /* @__PURE__ */ new Box3();\nvar _identity = /* @__PURE__ */ new Matrix4();\nvar _mesh$1 = /* @__PURE__ */ new Mesh();\nvar _sphere$3 = /* @__PURE__ */ new Sphere();\nvar InstancedMesh = class extends Mesh {\n  constructor(geometry, material, count) {\n    super(geometry, material);\n    this.isInstancedMesh = true;\n    this.instanceMatrix = new InstancedBufferAttribute(new Float32Array(count * 16), 16);\n    this.instanceColor = null;\n    this.morphTexture = null;\n    this.count = count;\n    this.boundingBox = null;\n    this.boundingSphere = null;\n    for (let i = 0; i < count; i++) {\n      this.setMatrixAt(i, _identity);\n    }\n  }\n  computeBoundingBox() {\n    const geometry = this.geometry;\n    const count = this.count;\n    if (this.boundingBox === null) {\n      this.boundingBox = new Box3();\n    }\n    if (geometry.boundingBox === null) {\n      geometry.computeBoundingBox();\n    }\n    this.boundingBox.makeEmpty();\n    for (let i = 0; i < count; i++) {\n      this.getMatrixAt(i, _instanceLocalMatrix);\n      _box3.copy(geometry.boundingBox).applyMatrix4(_instanceLocalMatrix);\n      this.boundingBox.union(_box3);\n    }\n  }\n  computeBoundingSphere() {\n    const geometry = this.geometry;\n    const count = this.count;\n    if (this.boundingSphere === null) {\n      this.boundingSphere = new Sphere();\n    }\n    if (geometry.boundingSphere === null) {\n      geometry.computeBoundingSphere();\n    }\n    this.boundingSphere.makeEmpty();\n    for (let i = 0; i < count; i++) {\n      this.getMatrixAt(i, _instanceLocalMatrix);\n      _sphere$3.copy(geometry.boundingSphere).applyMatrix4(_instanceLocalMatrix);\n      this.boundingSphere.union(_sphere$3);\n    }\n  }\n  copy(source, recursive) {\n    super.copy(source, recursive);\n    this.instanceMatrix.copy(source.instanceMatrix);\n    if (source.morphTexture !== null) this.morphTexture = source.morphTexture.clone();\n    if (source.instanceColor !== null) this.instanceColor = source.instanceColor.clone();\n    this.count = source.count;\n    if (source.boundingBox !== null) this.boundingBox = source.boundingBox.clone();\n    if (source.boundingSphere !== null) this.boundingSphere = source.boundingSphere.clone();\n    return this;\n  }\n  getColorAt(index, color) {\n    color.fromArray(this.instanceColor.array, index * 3);\n  }\n  getMatrixAt(index, matrix) {\n    matrix.fromArray(this.instanceMatrix.array, index * 16);\n  }\n  getMorphAt(index, object) {\n    const objectInfluences = object.morphTargetInfluences;\n    const array = this.morphTexture.source.data.data;\n    const len = objectInfluences.length + 1;\n    const dataIndex = index * len + 1;\n    for (let i = 0; i < objectInfluences.length; i++) {\n      objectInfluences[i] = array[dataIndex + i];\n    }\n  }\n  raycast(raycaster, intersects2) {\n    const matrixWorld = this.matrixWorld;\n    const raycastTimes = this.count;\n    _mesh$1.geometry = this.geometry;\n    _mesh$1.material = this.material;\n    if (_mesh$1.material === void 0) return;\n    if (this.boundingSphere === null) this.computeBoundingSphere();\n    _sphere$3.copy(this.boundingSphere);\n    _sphere$3.applyMatrix4(matrixWorld);\n    if (raycaster.ray.intersectsSphere(_sphere$3) === false) return;\n    for (let instanceId = 0; instanceId < raycastTimes; instanceId++) {\n      this.getMatrixAt(instanceId, _instanceLocalMatrix);\n      _instanceWorldMatrix.multiplyMatrices(matrixWorld, _instanceLocalMatrix);\n      _mesh$1.matrixWorld = _instanceWorldMatrix;\n      _mesh$1.raycast(raycaster, _instanceIntersects);\n      for (let i = 0, l = _instanceIntersects.length; i < l; i++) {\n        const intersect2 = _instanceIntersects[i];\n        intersect2.instanceId = instanceId;\n        intersect2.object = this;\n        intersects2.push(intersect2);\n      }\n      _instanceIntersects.length = 0;\n    }\n  }\n  setColorAt(index, color) {\n    if (this.instanceColor === null) {\n      this.instanceColor = new InstancedBufferAttribute(new Float32Array(this.instanceMatrix.count * 3).fill(1), 3);\n    }\n    color.toArray(this.instanceColor.array, index * 3);\n  }\n  setMatrixAt(index, matrix) {\n    matrix.toArray(this.instanceMatrix.array, index * 16);\n  }\n  setMorphAt(index, object) {\n    const objectInfluences = object.morphTargetInfluences;\n    const len = objectInfluences.length + 1;\n    if (this.morphTexture === null) {\n      this.morphTexture = new DataTexture(new Float32Array(len * this.count), len, this.count, RedFormat, FloatType);\n    }\n    const array = this.morphTexture.source.data.data;\n    let morphInfluencesSum = 0;\n    for (let i = 0; i < objectInfluences.length; i++) {\n      morphInfluencesSum += objectInfluences[i];\n    }\n    const morphBaseInfluence = this.geometry.morphTargetsRelative ? 1 : 1 - morphInfluencesSum;\n    const dataIndex = len * index;\n    array[dataIndex] = morphBaseInfluence;\n    array.set(objectInfluences, dataIndex + 1);\n  }\n  updateMorphTargets() {\n  }\n  dispose() {\n    this.dispatchEvent({ type: \"dispose\" });\n    if (this.morphTexture !== null) {\n      this.morphTexture.dispose();\n      this.morphTexture = null;\n    }\n    return this;\n  }\n};\nfunction sortOpaque(a, b) {\n  return a.z - b.z;\n}\nfunction sortTransparent(a, b) {\n  return b.z - a.z;\n}\nvar MultiDrawRenderList = class {\n  constructor() {\n    this.index = 0;\n    this.pool = [];\n    this.list = [];\n  }\n  push(drawRange, z, index) {\n    const pool = this.pool;\n    const list = this.list;\n    if (this.index >= pool.length) {\n      pool.push({\n        start: -1,\n        count: -1,\n        z: -1,\n        index: -1\n      });\n    }\n    const item = pool[this.index];\n    list.push(item);\n    this.index++;\n    item.start = drawRange.start;\n    item.count = drawRange.count;\n    item.z = z;\n    item.index = index;\n  }\n  reset() {\n    this.list.length = 0;\n    this.index = 0;\n  }\n};\nvar _matrix$1 = /* @__PURE__ */ new Matrix4();\nvar _invMatrixWorld = /* @__PURE__ */ new Matrix4();\nvar _identityMatrix = /* @__PURE__ */ new Matrix4();\nvar _whiteColor = /* @__PURE__ */ new Color(1, 1, 1);\nvar _projScreenMatrix$2 = /* @__PURE__ */ new Matrix4();\nvar _frustum = /* @__PURE__ */ new Frustum();\nvar _box$1 = /* @__PURE__ */ new Box3();\nvar _sphere$2 = /* @__PURE__ */ new Sphere();\nvar _vector$5 = /* @__PURE__ */ new Vector3();\nvar _forward = /* @__PURE__ */ new Vector3();\nvar _temp = /* @__PURE__ */ new Vector3();\nvar _renderList = /* @__PURE__ */ new MultiDrawRenderList();\nvar _mesh = /* @__PURE__ */ new Mesh();\nvar _batchIntersects = [];\nfunction copyAttributeData(src, target, targetOffset = 0) {\n  const itemSize = target.itemSize;\n  if (src.isInterleavedBufferAttribute || src.array.constructor !== target.array.constructor) {\n    const vertexCount = src.count;\n    for (let i = 0; i < vertexCount; i++) {\n      for (let c = 0; c < itemSize; c++) {\n        target.setComponent(i + targetOffset, c, src.getComponent(i, c));\n      }\n    }\n  } else {\n    target.array.set(src.array, targetOffset * itemSize);\n  }\n  target.needsUpdate = true;\n}\nvar BatchedMesh = class extends Mesh {\n  get maxInstanceCount() {\n    return this._maxInstanceCount;\n  }\n  constructor(maxInstanceCount, maxVertexCount, maxIndexCount = maxVertexCount * 2, material) {\n    super(new BufferGeometry(), material);\n    this.isBatchedMesh = true;\n    this.perObjectFrustumCulled = true;\n    this.sortObjects = true;\n    this.boundingBox = null;\n    this.boundingSphere = null;\n    this.customSort = null;\n    this._drawInfo = [];\n    this._availableInstanceIds = [];\n    this._drawRanges = [];\n    this._reservedRanges = [];\n    this._bounds = [];\n    this._maxInstanceCount = maxInstanceCount;\n    this._maxVertexCount = maxVertexCount;\n    this._maxIndexCount = maxIndexCount;\n    this._geometryInitialized = false;\n    this._geometryCount = 0;\n    this._multiDrawCounts = new Int32Array(maxInstanceCount);\n    this._multiDrawStarts = new Int32Array(maxInstanceCount);\n    this._multiDrawCount = 0;\n    this._multiDrawInstances = null;\n    this._visibilityChanged = true;\n    this._matricesTexture = null;\n    this._indirectTexture = null;\n    this._colorsTexture = null;\n    this._initMatricesTexture();\n    this._initIndirectTexture();\n  }\n  _initMatricesTexture() {\n    let size = Math.sqrt(this._maxInstanceCount * 4);\n    size = Math.ceil(size / 4) * 4;\n    size = Math.max(size, 4);\n    const matricesArray = new Float32Array(size * size * 4);\n    const matricesTexture = new DataTexture(matricesArray, size, size, RGBAFormat, FloatType);\n    this._matricesTexture = matricesTexture;\n  }\n  _initIndirectTexture() {\n    let size = Math.sqrt(this._maxInstanceCount);\n    size = Math.ceil(size);\n    const indirectArray = new Uint32Array(size * size);\n    const indirectTexture = new DataTexture(indirectArray, size, size, RedIntegerFormat, UnsignedIntType);\n    this._indirectTexture = indirectTexture;\n  }\n  _initColorsTexture() {\n    let size = Math.sqrt(this._maxInstanceCount);\n    size = Math.ceil(size);\n    const colorsArray = new Float32Array(size * size * 4).fill(1);\n    const colorsTexture = new DataTexture(colorsArray, size, size, RGBAFormat, FloatType);\n    colorsTexture.colorSpace = ColorManagement.workingColorSpace;\n    this._colorsTexture = colorsTexture;\n  }\n  _initializeGeometry(reference) {\n    const geometry = this.geometry;\n    const maxVertexCount = this._maxVertexCount;\n    const maxIndexCount = this._maxIndexCount;\n    if (this._geometryInitialized === false) {\n      for (const attributeName in reference.attributes) {\n        const srcAttribute = reference.getAttribute(attributeName);\n        const { array, itemSize, normalized } = srcAttribute;\n        const dstArray = new array.constructor(maxVertexCount * itemSize);\n        const dstAttribute = new BufferAttribute(dstArray, itemSize, normalized);\n        geometry.setAttribute(attributeName, dstAttribute);\n      }\n      if (reference.getIndex() !== null) {\n        const indexArray = maxVertexCount > 65535 ? new Uint32Array(maxIndexCount) : new Uint16Array(maxIndexCount);\n        geometry.setIndex(new BufferAttribute(indexArray, 1));\n      }\n      this._geometryInitialized = true;\n    }\n  }\n  // Make sure the geometry is compatible with the existing combined geometry attributes\n  _validateGeometry(geometry) {\n    const batchGeometry = this.geometry;\n    if (Boolean(geometry.getIndex()) !== Boolean(batchGeometry.getIndex())) {\n      throw new Error('BatchedMesh: All geometries must consistently have \"index\".');\n    }\n    for (const attributeName in batchGeometry.attributes) {\n      if (!geometry.hasAttribute(attributeName)) {\n        throw new Error(`BatchedMesh: Added geometry missing \"${attributeName}\". All geometries must have consistent attributes.`);\n      }\n      const srcAttribute = geometry.getAttribute(attributeName);\n      const dstAttribute = batchGeometry.getAttribute(attributeName);\n      if (srcAttribute.itemSize !== dstAttribute.itemSize || srcAttribute.normalized !== dstAttribute.normalized) {\n        throw new Error(\"BatchedMesh: All attributes must have a consistent itemSize and normalized value.\");\n      }\n    }\n  }\n  setCustomSort(func) {\n    this.customSort = func;\n    return this;\n  }\n  computeBoundingBox() {\n    if (this.boundingBox === null) {\n      this.boundingBox = new Box3();\n    }\n    const boundingBox = this.boundingBox;\n    const drawInfo = this._drawInfo;\n    boundingBox.makeEmpty();\n    for (let i = 0, l = drawInfo.length; i < l; i++) {\n      if (drawInfo[i].active === false) continue;\n      const geometryId = drawInfo[i].geometryIndex;\n      this.getMatrixAt(i, _matrix$1);\n      this.getBoundingBoxAt(geometryId, _box$1).applyMatrix4(_matrix$1);\n      boundingBox.union(_box$1);\n    }\n  }\n  computeBoundingSphere() {\n    if (this.boundingSphere === null) {\n      this.boundingSphere = new Sphere();\n    }\n    const boundingSphere = this.boundingSphere;\n    const drawInfo = this._drawInfo;\n    boundingSphere.makeEmpty();\n    for (let i = 0, l = drawInfo.length; i < l; i++) {\n      if (drawInfo[i].active === false) continue;\n      const geometryId = drawInfo[i].geometryIndex;\n      this.getMatrixAt(i, _matrix$1);\n      this.getBoundingSphereAt(geometryId, _sphere$2).applyMatrix4(_matrix$1);\n      boundingSphere.union(_sphere$2);\n    }\n  }\n  addInstance(geometryId) {\n    const atCapacity = this._drawInfo.length >= this.maxInstanceCount;\n    if (atCapacity && this._availableInstanceIds.length === 0) {\n      throw new Error(\"BatchedMesh: Maximum item count reached.\");\n    }\n    const instanceDrawInfo = {\n      visible: true,\n      active: true,\n      geometryIndex: geometryId\n    };\n    let drawId = null;\n    if (this._availableInstanceIds.length > 0) {\n      drawId = this._availableInstanceIds.pop();\n      this._drawInfo[drawId] = instanceDrawInfo;\n    } else {\n      drawId = this._drawInfo.length;\n      this._drawInfo.push(instanceDrawInfo);\n    }\n    const matricesTexture = this._matricesTexture;\n    const matricesArray = matricesTexture.image.data;\n    _identityMatrix.toArray(matricesArray, drawId * 16);\n    matricesTexture.needsUpdate = true;\n    const colorsTexture = this._colorsTexture;\n    if (colorsTexture) {\n      _whiteColor.toArray(colorsTexture.image.data, drawId * 4);\n      colorsTexture.needsUpdate = true;\n    }\n    return drawId;\n  }\n  addGeometry(geometry, vertexCount = -1, indexCount = -1) {\n    this._initializeGeometry(geometry);\n    this._validateGeometry(geometry);\n    if (this._drawInfo.length >= this._maxInstanceCount) {\n      throw new Error(\"BatchedMesh: Maximum item count reached.\");\n    }\n    const reservedRange = {\n      vertexStart: -1,\n      vertexCount: -1,\n      indexStart: -1,\n      indexCount: -1\n    };\n    let lastRange = null;\n    const reservedRanges = this._reservedRanges;\n    const drawRanges = this._drawRanges;\n    const bounds = this._bounds;\n    if (this._geometryCount !== 0) {\n      lastRange = reservedRanges[reservedRanges.length - 1];\n    }\n    if (vertexCount === -1) {\n      reservedRange.vertexCount = geometry.getAttribute(\"position\").count;\n    } else {\n      reservedRange.vertexCount = vertexCount;\n    }\n    if (lastRange === null) {\n      reservedRange.vertexStart = 0;\n    } else {\n      reservedRange.vertexStart = lastRange.vertexStart + lastRange.vertexCount;\n    }\n    const index = geometry.getIndex();\n    const hasIndex = index !== null;\n    if (hasIndex) {\n      if (indexCount === -1) {\n        reservedRange.indexCount = index.count;\n      } else {\n        reservedRange.indexCount = indexCount;\n      }\n      if (lastRange === null) {\n        reservedRange.indexStart = 0;\n      } else {\n        reservedRange.indexStart = lastRange.indexStart + lastRange.indexCount;\n      }\n    }\n    if (reservedRange.indexStart !== -1 && reservedRange.indexStart + reservedRange.indexCount > this._maxIndexCount || reservedRange.vertexStart + reservedRange.vertexCount > this._maxVertexCount) {\n      throw new Error(\"BatchedMesh: Reserved space request exceeds the maximum buffer size.\");\n    }\n    const geometryId = this._geometryCount;\n    this._geometryCount++;\n    reservedRanges.push(reservedRange);\n    drawRanges.push({\n      start: hasIndex ? reservedRange.indexStart : reservedRange.vertexStart,\n      count: -1\n    });\n    bounds.push({\n      boxInitialized: false,\n      box: new Box3(),\n      sphereInitialized: false,\n      sphere: new Sphere()\n    });\n    this.setGeometryAt(geometryId, geometry);\n    return geometryId;\n  }\n  setGeometryAt(geometryId, geometry) {\n    if (geometryId >= this._geometryCount) {\n      throw new Error(\"BatchedMesh: Maximum geometry count reached.\");\n    }\n    this._validateGeometry(geometry);\n    const batchGeometry = this.geometry;\n    const hasIndex = batchGeometry.getIndex() !== null;\n    const dstIndex = batchGeometry.getIndex();\n    const srcIndex = geometry.getIndex();\n    const reservedRange = this._reservedRanges[geometryId];\n    if (hasIndex && srcIndex.count > reservedRange.indexCount || geometry.attributes.position.count > reservedRange.vertexCount) {\n      throw new Error(\"BatchedMesh: Reserved space not large enough for provided geometry.\");\n    }\n    const vertexStart = reservedRange.vertexStart;\n    const vertexCount = reservedRange.vertexCount;\n    for (const attributeName in batchGeometry.attributes) {\n      const srcAttribute = geometry.getAttribute(attributeName);\n      const dstAttribute = batchGeometry.getAttribute(attributeName);\n      copyAttributeData(srcAttribute, dstAttribute, vertexStart);\n      const itemSize = srcAttribute.itemSize;\n      for (let i = srcAttribute.count, l = vertexCount; i < l; i++) {\n        const index = vertexStart + i;\n        for (let c = 0; c < itemSize; c++) {\n          dstAttribute.setComponent(index, c, 0);\n        }\n      }\n      dstAttribute.needsUpdate = true;\n      dstAttribute.addUpdateRange(vertexStart * itemSize, vertexCount * itemSize);\n    }\n    if (hasIndex) {\n      const indexStart = reservedRange.indexStart;\n      for (let i = 0; i < srcIndex.count; i++) {\n        dstIndex.setX(indexStart + i, vertexStart + srcIndex.getX(i));\n      }\n      for (let i = srcIndex.count, l = reservedRange.indexCount; i < l; i++) {\n        dstIndex.setX(indexStart + i, vertexStart);\n      }\n      dstIndex.needsUpdate = true;\n      dstIndex.addUpdateRange(indexStart, reservedRange.indexCount);\n    }\n    const bound = this._bounds[geometryId];\n    if (geometry.boundingBox !== null) {\n      bound.box.copy(geometry.boundingBox);\n      bound.boxInitialized = true;\n    } else {\n      bound.boxInitialized = false;\n    }\n    if (geometry.boundingSphere !== null) {\n      bound.sphere.copy(geometry.boundingSphere);\n      bound.sphereInitialized = true;\n    } else {\n      bound.sphereInitialized = false;\n    }\n    const drawRange = this._drawRanges[geometryId];\n    const posAttr = geometry.getAttribute(\"position\");\n    drawRange.count = hasIndex ? srcIndex.count : posAttr.count;\n    this._visibilityChanged = true;\n    return geometryId;\n  }\n  /*\n  \tdeleteGeometry( geometryId ) {\n  \n  \t\t// TODO: delete geometry and associated instances\n  \n  \t}\n  \t*/\n  deleteInstance(instanceId) {\n    const drawInfo = this._drawInfo;\n    if (instanceId >= drawInfo.length || drawInfo[instanceId].active === false) {\n      return this;\n    }\n    drawInfo[instanceId].active = false;\n    this._availableInstanceIds.push(instanceId);\n    this._visibilityChanged = true;\n    return this;\n  }\n  // get bounding box and compute it if it doesn't exist\n  getBoundingBoxAt(geometryId, target) {\n    if (geometryId >= this._geometryCount) {\n      return null;\n    }\n    const bound = this._bounds[geometryId];\n    const box = bound.box;\n    const geometry = this.geometry;\n    if (bound.boxInitialized === false) {\n      box.makeEmpty();\n      const index = geometry.index;\n      const position = geometry.attributes.position;\n      const drawRange = this._drawRanges[geometryId];\n      for (let i = drawRange.start, l = drawRange.start + drawRange.count; i < l; i++) {\n        let iv = i;\n        if (index) {\n          iv = index.getX(iv);\n        }\n        box.expandByPoint(_vector$5.fromBufferAttribute(position, iv));\n      }\n      bound.boxInitialized = true;\n    }\n    target.copy(box);\n    return target;\n  }\n  // get bounding sphere and compute it if it doesn't exist\n  getBoundingSphereAt(geometryId, target) {\n    if (geometryId >= this._geometryCount) {\n      return null;\n    }\n    const bound = this._bounds[geometryId];\n    const sphere = bound.sphere;\n    const geometry = this.geometry;\n    if (bound.sphereInitialized === false) {\n      sphere.makeEmpty();\n      this.getBoundingBoxAt(geometryId, _box$1);\n      _box$1.getCenter(sphere.center);\n      const index = geometry.index;\n      const position = geometry.attributes.position;\n      const drawRange = this._drawRanges[geometryId];\n      let maxRadiusSq = 0;\n      for (let i = drawRange.start, l = drawRange.start + drawRange.count; i < l; i++) {\n        let iv = i;\n        if (index) {\n          iv = index.getX(iv);\n        }\n        _vector$5.fromBufferAttribute(position, iv);\n        maxRadiusSq = Math.max(maxRadiusSq, sphere.center.distanceToSquared(_vector$5));\n      }\n      sphere.radius = Math.sqrt(maxRadiusSq);\n      bound.sphereInitialized = true;\n    }\n    target.copy(sphere);\n    return target;\n  }\n  setMatrixAt(instanceId, matrix) {\n    const drawInfo = this._drawInfo;\n    const matricesTexture = this._matricesTexture;\n    const matricesArray = this._matricesTexture.image.data;\n    if (instanceId >= drawInfo.length || drawInfo[instanceId].active === false) {\n      return this;\n    }\n    matrix.toArray(matricesArray, instanceId * 16);\n    matricesTexture.needsUpdate = true;\n    return this;\n  }\n  getMatrixAt(instanceId, matrix) {\n    const drawInfo = this._drawInfo;\n    const matricesArray = this._matricesTexture.image.data;\n    if (instanceId >= drawInfo.length || drawInfo[instanceId].active === false) {\n      return null;\n    }\n    return matrix.fromArray(matricesArray, instanceId * 16);\n  }\n  setColorAt(instanceId, color) {\n    if (this._colorsTexture === null) {\n      this._initColorsTexture();\n    }\n    const colorsTexture = this._colorsTexture;\n    const colorsArray = this._colorsTexture.image.data;\n    const drawInfo = this._drawInfo;\n    if (instanceId >= drawInfo.length || drawInfo[instanceId].active === false) {\n      return this;\n    }\n    color.toArray(colorsArray, instanceId * 4);\n    colorsTexture.needsUpdate = true;\n    return this;\n  }\n  getColorAt(instanceId, color) {\n    const colorsArray = this._colorsTexture.image.data;\n    const drawInfo = this._drawInfo;\n    if (instanceId >= drawInfo.length || drawInfo[instanceId].active === false) {\n      return null;\n    }\n    return color.fromArray(colorsArray, instanceId * 4);\n  }\n  setVisibleAt(instanceId, value) {\n    const drawInfo = this._drawInfo;\n    if (instanceId >= drawInfo.length || drawInfo[instanceId].active === false || drawInfo[instanceId].visible === value) {\n      return this;\n    }\n    drawInfo[instanceId].visible = value;\n    this._visibilityChanged = true;\n    return this;\n  }\n  getVisibleAt(instanceId) {\n    const drawInfo = this._drawInfo;\n    if (instanceId >= drawInfo.length || drawInfo[instanceId].active === false) {\n      return false;\n    }\n    return drawInfo[instanceId].visible;\n  }\n  setGeometryIdAt(instanceId, geometryId) {\n    const drawInfo = this._drawInfo;\n    if (instanceId >= drawInfo.length || drawInfo[instanceId].active === false) {\n      return null;\n    }\n    if (geometryId < 0 || geometryId >= this._geometryCount) {\n      return null;\n    }\n    drawInfo[instanceId].geometryIndex = geometryId;\n    return this;\n  }\n  getGeometryIdAt(instanceId) {\n    const drawInfo = this._drawInfo;\n    if (instanceId >= drawInfo.length || drawInfo[instanceId].active === false) {\n      return -1;\n    }\n    return drawInfo[instanceId].geometryIndex;\n  }\n  getGeometryRangeAt(geometryId, target = {}) {\n    if (geometryId < 0 || geometryId >= this._geometryCount) {\n      return null;\n    }\n    const drawRange = this._drawRanges[geometryId];\n    target.start = drawRange.start;\n    target.count = drawRange.count;\n    return target;\n  }\n  raycast(raycaster, intersects2) {\n    const drawInfo = this._drawInfo;\n    const drawRanges = this._drawRanges;\n    const matrixWorld = this.matrixWorld;\n    const batchGeometry = this.geometry;\n    _mesh.material = this.material;\n    _mesh.geometry.index = batchGeometry.index;\n    _mesh.geometry.attributes = batchGeometry.attributes;\n    if (_mesh.geometry.boundingBox === null) {\n      _mesh.geometry.boundingBox = new Box3();\n    }\n    if (_mesh.geometry.boundingSphere === null) {\n      _mesh.geometry.boundingSphere = new Sphere();\n    }\n    for (let i = 0, l = drawInfo.length; i < l; i++) {\n      if (!drawInfo[i].visible || !drawInfo[i].active) {\n        continue;\n      }\n      const geometryId = drawInfo[i].geometryIndex;\n      const drawRange = drawRanges[geometryId];\n      _mesh.geometry.setDrawRange(drawRange.start, drawRange.count);\n      this.getMatrixAt(i, _mesh.matrixWorld).premultiply(matrixWorld);\n      this.getBoundingBoxAt(geometryId, _mesh.geometry.boundingBox);\n      this.getBoundingSphereAt(geometryId, _mesh.geometry.boundingSphere);\n      _mesh.raycast(raycaster, _batchIntersects);\n      for (let j = 0, l2 = _batchIntersects.length; j < l2; j++) {\n        const intersect2 = _batchIntersects[j];\n        intersect2.object = this;\n        intersect2.batchId = i;\n        intersects2.push(intersect2);\n      }\n      _batchIntersects.length = 0;\n    }\n    _mesh.material = null;\n    _mesh.geometry.index = null;\n    _mesh.geometry.attributes = {};\n    _mesh.geometry.setDrawRange(0, Infinity);\n  }\n  copy(source) {\n    super.copy(source);\n    this.geometry = source.geometry.clone();\n    this.perObjectFrustumCulled = source.perObjectFrustumCulled;\n    this.sortObjects = source.sortObjects;\n    this.boundingBox = source.boundingBox !== null ? source.boundingBox.clone() : null;\n    this.boundingSphere = source.boundingSphere !== null ? source.boundingSphere.clone() : null;\n    this._drawRanges = source._drawRanges.map((range) => __spreadValues({}, range));\n    this._reservedRanges = source._reservedRanges.map((range) => __spreadValues({}, range));\n    this._drawInfo = source._drawInfo.map((inf) => __spreadValues({}, inf));\n    this._bounds = source._bounds.map((bound) => ({\n      boxInitialized: bound.boxInitialized,\n      box: bound.box.clone(),\n      sphereInitialized: bound.sphereInitialized,\n      sphere: bound.sphere.clone()\n    }));\n    this._maxInstanceCount = source._maxInstanceCount;\n    this._maxVertexCount = source._maxVertexCount;\n    this._maxIndexCount = source._maxIndexCount;\n    this._geometryInitialized = source._geometryInitialized;\n    this._geometryCount = source._geometryCount;\n    this._multiDrawCounts = source._multiDrawCounts.slice();\n    this._multiDrawStarts = source._multiDrawStarts.slice();\n    this._matricesTexture = source._matricesTexture.clone();\n    this._matricesTexture.image.data = this._matricesTexture.image.data.slice();\n    if (this._colorsTexture !== null) {\n      this._colorsTexture = source._colorsTexture.clone();\n      this._colorsTexture.image.data = this._colorsTexture.image.data.slice();\n    }\n    return this;\n  }\n  dispose() {\n    this.geometry.dispose();\n    this._matricesTexture.dispose();\n    this._matricesTexture = null;\n    this._indirectTexture.dispose();\n    this._indirectTexture = null;\n    if (this._colorsTexture !== null) {\n      this._colorsTexture.dispose();\n      this._colorsTexture = null;\n    }\n    return this;\n  }\n  onBeforeRender(renderer, scene, camera, geometry, material) {\n    if (!this._visibilityChanged && !this.perObjectFrustumCulled && !this.sortObjects) {\n      return;\n    }\n    const index = geometry.getIndex();\n    const bytesPerElement = index === null ? 1 : index.array.BYTES_PER_ELEMENT;\n    const drawInfo = this._drawInfo;\n    const multiDrawStarts = this._multiDrawStarts;\n    const multiDrawCounts = this._multiDrawCounts;\n    const drawRanges = this._drawRanges;\n    const perObjectFrustumCulled = this.perObjectFrustumCulled;\n    const indirectTexture = this._indirectTexture;\n    const indirectArray = indirectTexture.image.data;\n    if (perObjectFrustumCulled) {\n      _projScreenMatrix$2.multiplyMatrices(camera.projectionMatrix, camera.matrixWorldInverse).multiply(this.matrixWorld);\n      _frustum.setFromProjectionMatrix(\n        _projScreenMatrix$2,\n        renderer.coordinateSystem\n      );\n    }\n    let count = 0;\n    if (this.sortObjects) {\n      _invMatrixWorld.copy(this.matrixWorld).invert();\n      _vector$5.setFromMatrixPosition(camera.matrixWorld).applyMatrix4(_invMatrixWorld);\n      _forward.set(0, 0, -1).transformDirection(camera.matrixWorld).transformDirection(_invMatrixWorld);\n      for (let i = 0, l = drawInfo.length; i < l; i++) {\n        if (drawInfo[i].visible && drawInfo[i].active) {\n          const geometryId = drawInfo[i].geometryIndex;\n          this.getMatrixAt(i, _matrix$1);\n          this.getBoundingSphereAt(geometryId, _sphere$2).applyMatrix4(_matrix$1);\n          let culled = false;\n          if (perObjectFrustumCulled) {\n            culled = !_frustum.intersectsSphere(_sphere$2);\n          }\n          if (!culled) {\n            const z = _temp.subVectors(_sphere$2.center, _vector$5).dot(_forward);\n            _renderList.push(drawRanges[geometryId], z, i);\n          }\n        }\n      }\n      const list = _renderList.list;\n      const customSort = this.customSort;\n      if (customSort === null) {\n        list.sort(material.transparent ? sortTransparent : sortOpaque);\n      } else {\n        customSort.call(this, list, camera);\n      }\n      for (let i = 0, l = list.length; i < l; i++) {\n        const item = list[i];\n        multiDrawStarts[count] = item.start * bytesPerElement;\n        multiDrawCounts[count] = item.count;\n        indirectArray[count] = item.index;\n        count++;\n      }\n      _renderList.reset();\n    } else {\n      for (let i = 0, l = drawInfo.length; i < l; i++) {\n        if (drawInfo[i].visible && drawInfo[i].active) {\n          const geometryId = drawInfo[i].geometryIndex;\n          let culled = false;\n          if (perObjectFrustumCulled) {\n            this.getMatrixAt(i, _matrix$1);\n            this.getBoundingSphereAt(geometryId, _sphere$2).applyMatrix4(_matrix$1);\n            culled = !_frustum.intersectsSphere(_sphere$2);\n          }\n          if (!culled) {\n            const range = drawRanges[geometryId];\n            multiDrawStarts[count] = range.start * bytesPerElement;\n            multiDrawCounts[count] = range.count;\n            indirectArray[count] = i;\n            count++;\n          }\n        }\n      }\n    }\n    indirectTexture.needsUpdate = true;\n    this._multiDrawCount = count;\n    this._visibilityChanged = false;\n  }\n  onBeforeShadow(renderer, object, camera, shadowCamera, geometry, depthMaterial) {\n    this.onBeforeRender(renderer, null, shadowCamera, geometry, depthMaterial);\n  }\n};\nvar LineBasicMaterial = class extends Material {\n  constructor(parameters) {\n    super();\n    this.isLineBasicMaterial = true;\n    this.type = \"LineBasicMaterial\";\n    this.color = new Color(16777215);\n    this.map = null;\n    this.linewidth = 1;\n    this.linecap = \"round\";\n    this.linejoin = \"round\";\n    this.fog = true;\n    this.setValues(parameters);\n  }\n  copy(source) {\n    super.copy(source);\n    this.color.copy(source.color);\n    this.map = source.map;\n    this.linewidth = source.linewidth;\n    this.linecap = source.linecap;\n    this.linejoin = source.linejoin;\n    this.fog = source.fog;\n    return this;\n  }\n};\nvar _vStart = /* @__PURE__ */ new Vector3();\nvar _vEnd = /* @__PURE__ */ new Vector3();\nvar _inverseMatrix$1 = /* @__PURE__ */ new Matrix4();\nvar _ray$1 = /* @__PURE__ */ new Ray();\nvar _sphere$1 = /* @__PURE__ */ new Sphere();\nvar _intersectPointOnRay = /* @__PURE__ */ new Vector3();\nvar _intersectPointOnSegment = /* @__PURE__ */ new Vector3();\nvar Line = class extends Object3D {\n  constructor(geometry = new BufferGeometry(), material = new LineBasicMaterial()) {\n    super();\n    this.isLine = true;\n    this.type = \"Line\";\n    this.geometry = geometry;\n    this.material = material;\n    this.updateMorphTargets();\n  }\n  copy(source, recursive) {\n    super.copy(source, recursive);\n    this.material = Array.isArray(source.material) ? source.material.slice() : source.material;\n    this.geometry = source.geometry;\n    return this;\n  }\n  computeLineDistances() {\n    const geometry = this.geometry;\n    if (geometry.index === null) {\n      const positionAttribute = geometry.attributes.position;\n      const lineDistances = [0];\n      for (let i = 1, l = positionAttribute.count; i < l; i++) {\n        _vStart.fromBufferAttribute(positionAttribute, i - 1);\n        _vEnd.fromBufferAttribute(positionAttribute, i);\n        lineDistances[i] = lineDistances[i - 1];\n        lineDistances[i] += _vStart.distanceTo(_vEnd);\n      }\n      geometry.setAttribute(\"lineDistance\", new Float32BufferAttribute(lineDistances, 1));\n    } else {\n      console.warn(\"THREE.Line.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.\");\n    }\n    return this;\n  }\n  raycast(raycaster, intersects2) {\n    const geometry = this.geometry;\n    const matrixWorld = this.matrixWorld;\n    const threshold = raycaster.params.Line.threshold;\n    const drawRange = geometry.drawRange;\n    if (geometry.boundingSphere === null) geometry.computeBoundingSphere();\n    _sphere$1.copy(geometry.boundingSphere);\n    _sphere$1.applyMatrix4(matrixWorld);\n    _sphere$1.radius += threshold;\n    if (raycaster.ray.intersectsSphere(_sphere$1) === false) return;\n    _inverseMatrix$1.copy(matrixWorld).invert();\n    _ray$1.copy(raycaster.ray).applyMatrix4(_inverseMatrix$1);\n    const localThreshold = threshold / ((this.scale.x + this.scale.y + this.scale.z) / 3);\n    const localThresholdSq = localThreshold * localThreshold;\n    const step = this.isLineSegments ? 2 : 1;\n    const index = geometry.index;\n    const attributes = geometry.attributes;\n    const positionAttribute = attributes.position;\n    if (index !== null) {\n      const start = Math.max(0, drawRange.start);\n      const end = Math.min(index.count, drawRange.start + drawRange.count);\n      for (let i = start, l = end - 1; i < l; i += step) {\n        const a = index.getX(i);\n        const b = index.getX(i + 1);\n        const intersect2 = checkIntersection(this, raycaster, _ray$1, localThresholdSq, a, b);\n        if (intersect2) {\n          intersects2.push(intersect2);\n        }\n      }\n      if (this.isLineLoop) {\n        const a = index.getX(end - 1);\n        const b = index.getX(start);\n        const intersect2 = checkIntersection(this, raycaster, _ray$1, localThresholdSq, a, b);\n        if (intersect2) {\n          intersects2.push(intersect2);\n        }\n      }\n    } else {\n      const start = Math.max(0, drawRange.start);\n      const end = Math.min(positionAttribute.count, drawRange.start + drawRange.count);\n      for (let i = start, l = end - 1; i < l; i += step) {\n        const intersect2 = checkIntersection(this, raycaster, _ray$1, localThresholdSq, i, i + 1);\n        if (intersect2) {\n          intersects2.push(intersect2);\n        }\n      }\n      if (this.isLineLoop) {\n        const intersect2 = checkIntersection(this, raycaster, _ray$1, localThresholdSq, end - 1, start);\n        if (intersect2) {\n          intersects2.push(intersect2);\n        }\n      }\n    }\n  }\n  updateMorphTargets() {\n    const geometry = this.geometry;\n    const morphAttributes = geometry.morphAttributes;\n    const keys = Object.keys(morphAttributes);\n    if (keys.length > 0) {\n      const morphAttribute = morphAttributes[keys[0]];\n      if (morphAttribute !== void 0) {\n        this.morphTargetInfluences = [];\n        this.morphTargetDictionary = {};\n        for (let m = 0, ml = morphAttribute.length; m < ml; m++) {\n          const name = morphAttribute[m].name || String(m);\n          this.morphTargetInfluences.push(0);\n          this.morphTargetDictionary[name] = m;\n        }\n      }\n    }\n  }\n};\nfunction checkIntersection(object, raycaster, ray, thresholdSq, a, b) {\n  const positionAttribute = object.geometry.attributes.position;\n  _vStart.fromBufferAttribute(positionAttribute, a);\n  _vEnd.fromBufferAttribute(positionAttribute, b);\n  const distSq = ray.distanceSqToSegment(_vStart, _vEnd, _intersectPointOnRay, _intersectPointOnSegment);\n  if (distSq > thresholdSq) return;\n  _intersectPointOnRay.applyMatrix4(object.matrixWorld);\n  const distance = raycaster.ray.origin.distanceTo(_intersectPointOnRay);\n  if (distance < raycaster.near || distance > raycaster.far) return;\n  return {\n    distance,\n    // What do we want? intersection point on the ray or on the segment??\n    // point: raycaster.ray.at( distance ),\n    point: _intersectPointOnSegment.clone().applyMatrix4(object.matrixWorld),\n    index: a,\n    face: null,\n    faceIndex: null,\n    barycoord: null,\n    object\n  };\n}\nvar _start = /* @__PURE__ */ new Vector3();\nvar _end = /* @__PURE__ */ new Vector3();\nvar LineSegments = class extends Line {\n  constructor(geometry, material) {\n    super(geometry, material);\n    this.isLineSegments = true;\n    this.type = \"LineSegments\";\n  }\n  computeLineDistances() {\n    const geometry = this.geometry;\n    if (geometry.index === null) {\n      const positionAttribute = geometry.attributes.position;\n      const lineDistances = [];\n      for (let i = 0, l = positionAttribute.count; i < l; i += 2) {\n        _start.fromBufferAttribute(positionAttribute, i);\n        _end.fromBufferAttribute(positionAttribute, i + 1);\n        lineDistances[i] = i === 0 ? 0 : lineDistances[i - 1];\n        lineDistances[i + 1] = lineDistances[i] + _start.distanceTo(_end);\n      }\n      geometry.setAttribute(\"lineDistance\", new Float32BufferAttribute(lineDistances, 1));\n    } else {\n      console.warn(\"THREE.LineSegments.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.\");\n    }\n    return this;\n  }\n};\nvar LineLoop = class extends Line {\n  constructor(geometry, material) {\n    super(geometry, material);\n    this.isLineLoop = true;\n    this.type = \"LineLoop\";\n  }\n};\nvar PointsMaterial = class extends Material {\n  constructor(parameters) {\n    super();\n    this.isPointsMaterial = true;\n    this.type = \"PointsMaterial\";\n    this.color = new Color(16777215);\n    this.map = null;\n    this.alphaMap = null;\n    this.size = 1;\n    this.sizeAttenuation = true;\n    this.fog = true;\n    this.setValues(parameters);\n  }\n  copy(source) {\n    super.copy(source);\n    this.color.copy(source.color);\n    this.map = source.map;\n    this.alphaMap = source.alphaMap;\n    this.size = source.size;\n    this.sizeAttenuation = source.sizeAttenuation;\n    this.fog = source.fog;\n    return this;\n  }\n};\nvar _inverseMatrix = /* @__PURE__ */ new Matrix4();\nvar _ray = /* @__PURE__ */ new Ray();\nvar _sphere = /* @__PURE__ */ new Sphere();\nvar _position$2 = /* @__PURE__ */ new Vector3();\nvar Points = class extends Object3D {\n  constructor(geometry = new BufferGeometry(), material = new PointsMaterial()) {\n    super();\n    this.isPoints = true;\n    this.type = \"Points\";\n    this.geometry = geometry;\n    this.material = material;\n    this.updateMorphTargets();\n  }\n  copy(source, recursive) {\n    super.copy(source, recursive);\n    this.material = Array.isArray(source.material) ? source.material.slice() : source.material;\n    this.geometry = source.geometry;\n    return this;\n  }\n  raycast(raycaster, intersects2) {\n    const geometry = this.geometry;\n    const matrixWorld = this.matrixWorld;\n    const threshold = raycaster.params.Points.threshold;\n    const drawRange = geometry.drawRange;\n    if (geometry.boundingSphere === null) geometry.computeBoundingSphere();\n    _sphere.copy(geometry.boundingSphere);\n    _sphere.applyMatrix4(matrixWorld);\n    _sphere.radius += threshold;\n    if (raycaster.ray.intersectsSphere(_sphere) === false) return;\n    _inverseMatrix.copy(matrixWorld).invert();\n    _ray.copy(raycaster.ray).applyMatrix4(_inverseMatrix);\n    const localThreshold = threshold / ((this.scale.x + this.scale.y + this.scale.z) / 3);\n    const localThresholdSq = localThreshold * localThreshold;\n    const index = geometry.index;\n    const attributes = geometry.attributes;\n    const positionAttribute = attributes.position;\n    if (index !== null) {\n      const start = Math.max(0, drawRange.start);\n      const end = Math.min(index.count, drawRange.start + drawRange.count);\n      for (let i = start, il = end; i < il; i++) {\n        const a = index.getX(i);\n        _position$2.fromBufferAttribute(positionAttribute, a);\n        testPoint(_position$2, a, localThresholdSq, matrixWorld, raycaster, intersects2, this);\n      }\n    } else {\n      const start = Math.max(0, drawRange.start);\n      const end = Math.min(positionAttribute.count, drawRange.start + drawRange.count);\n      for (let i = start, l = end; i < l; i++) {\n        _position$2.fromBufferAttribute(positionAttribute, i);\n        testPoint(_position$2, i, localThresholdSq, matrixWorld, raycaster, intersects2, this);\n      }\n    }\n  }\n  updateMorphTargets() {\n    const geometry = this.geometry;\n    const morphAttributes = geometry.morphAttributes;\n    const keys = Object.keys(morphAttributes);\n    if (keys.length > 0) {\n      const morphAttribute = morphAttributes[keys[0]];\n      if (morphAttribute !== void 0) {\n        this.morphTargetInfluences = [];\n        this.morphTargetDictionary = {};\n        for (let m = 0, ml = morphAttribute.length; m < ml; m++) {\n          const name = morphAttribute[m].name || String(m);\n          this.morphTargetInfluences.push(0);\n          this.morphTargetDictionary[name] = m;\n        }\n      }\n    }\n  }\n};\nfunction testPoint(point, index, localThresholdSq, matrixWorld, raycaster, intersects2, object) {\n  const rayPointDistanceSq = _ray.distanceSqToPoint(point);\n  if (rayPointDistanceSq < localThresholdSq) {\n    const intersectPoint = new Vector3();\n    _ray.closestPointToPoint(point, intersectPoint);\n    intersectPoint.applyMatrix4(matrixWorld);\n    const distance = raycaster.ray.origin.distanceTo(intersectPoint);\n    if (distance < raycaster.near || distance > raycaster.far) return;\n    intersects2.push({\n      distance,\n      distanceToRay: Math.sqrt(rayPointDistanceSq),\n      point: intersectPoint,\n      index,\n      face: null,\n      faceIndex: null,\n      barycoord: null,\n      object\n    });\n  }\n}\nvar VideoTexture = class extends Texture {\n  constructor(video, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy) {\n    super(video, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy);\n    this.isVideoTexture = true;\n    this.minFilter = minFilter !== void 0 ? minFilter : LinearFilter;\n    this.magFilter = magFilter !== void 0 ? magFilter : LinearFilter;\n    this.generateMipmaps = false;\n    const scope = this;\n    function updateVideo() {\n      scope.needsUpdate = true;\n      video.requestVideoFrameCallback(updateVideo);\n    }\n    if (\"requestVideoFrameCallback\" in video) {\n      video.requestVideoFrameCallback(updateVideo);\n    }\n  }\n  clone() {\n    return new this.constructor(this.image).copy(this);\n  }\n  update() {\n    const video = this.image;\n    const hasVideoFrameCallback = \"requestVideoFrameCallback\" in video;\n    if (hasVideoFrameCallback === false && video.readyState >= video.HAVE_CURRENT_DATA) {\n      this.needsUpdate = true;\n    }\n  }\n};\nvar FramebufferTexture = class extends Texture {\n  constructor(width, height) {\n    super({ width, height });\n    this.isFramebufferTexture = true;\n    this.magFilter = NearestFilter;\n    this.minFilter = NearestFilter;\n    this.generateMipmaps = false;\n    this.needsUpdate = true;\n  }\n};\nvar CompressedTexture = class extends Texture {\n  constructor(mipmaps, width, height, format, type, mapping, wrapS, wrapT, magFilter, minFilter, anisotropy, colorSpace) {\n    super(null, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, colorSpace);\n    this.isCompressedTexture = true;\n    this.image = { width, height };\n    this.mipmaps = mipmaps;\n    this.flipY = false;\n    this.generateMipmaps = false;\n  }\n};\nvar CompressedArrayTexture = class extends CompressedTexture {\n  constructor(mipmaps, width, height, depth, format, type) {\n    super(mipmaps, width, height, format, type);\n    this.isCompressedArrayTexture = true;\n    this.image.depth = depth;\n    this.wrapR = ClampToEdgeWrapping;\n    this.layerUpdates = /* @__PURE__ */ new Set();\n  }\n  addLayerUpdate(layerIndex) {\n    this.layerUpdates.add(layerIndex);\n  }\n  clearLayerUpdates() {\n    this.layerUpdates.clear();\n  }\n};\nvar CompressedCubeTexture = class extends CompressedTexture {\n  constructor(images, format, type) {\n    super(void 0, images[0].width, images[0].height, format, type, CubeReflectionMapping);\n    this.isCompressedCubeTexture = true;\n    this.isCubeTexture = true;\n    this.image = images;\n  }\n};\nvar CanvasTexture = class extends Texture {\n  constructor(canvas, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy) {\n    super(canvas, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy);\n    this.isCanvasTexture = true;\n    this.needsUpdate = true;\n  }\n};\nvar Curve = class {\n  constructor() {\n    this.type = \"Curve\";\n    this.arcLengthDivisions = 200;\n  }\n  // Virtual base class method to overwrite and implement in subclasses\n  //\t- t [0 .. 1]\n  getPoint() {\n    console.warn(\"THREE.Curve: .getPoint() not implemented.\");\n    return null;\n  }\n  // Get point at relative position in curve according to arc length\n  // - u [0 .. 1]\n  getPointAt(u, optionalTarget) {\n    const t = this.getUtoTmapping(u);\n    return this.getPoint(t, optionalTarget);\n  }\n  // Get sequence of points using getPoint( t )\n  getPoints(divisions = 5) {\n    const points = [];\n    for (let d = 0; d <= divisions; d++) {\n      points.push(this.getPoint(d / divisions));\n    }\n    return points;\n  }\n  // Get sequence of points using getPointAt( u )\n  getSpacedPoints(divisions = 5) {\n    const points = [];\n    for (let d = 0; d <= divisions; d++) {\n      points.push(this.getPointAt(d / divisions));\n    }\n    return points;\n  }\n  // Get total curve arc length\n  getLength() {\n    const lengths = this.getLengths();\n    return lengths[lengths.length - 1];\n  }\n  // Get list of cumulative segment lengths\n  getLengths(divisions = this.arcLengthDivisions) {\n    if (this.cacheArcLengths && this.cacheArcLengths.length === divisions + 1 && !this.needsUpdate) {\n      return this.cacheArcLengths;\n    }\n    this.needsUpdate = false;\n    const cache = [];\n    let current, last = this.getPoint(0);\n    let sum = 0;\n    cache.push(0);\n    for (let p = 1; p <= divisions; p++) {\n      current = this.getPoint(p / divisions);\n      sum += current.distanceTo(last);\n      cache.push(sum);\n      last = current;\n    }\n    this.cacheArcLengths = cache;\n    return cache;\n  }\n  updateArcLengths() {\n    this.needsUpdate = true;\n    this.getLengths();\n  }\n  // Given u ( 0 .. 1 ), get a t to find p. This gives you points which are equidistant\n  getUtoTmapping(u, distance) {\n    const arcLengths = this.getLengths();\n    let i = 0;\n    const il = arcLengths.length;\n    let targetArcLength;\n    if (distance) {\n      targetArcLength = distance;\n    } else {\n      targetArcLength = u * arcLengths[il - 1];\n    }\n    let low = 0, high = il - 1, comparison;\n    while (low <= high) {\n      i = Math.floor(low + (high - low) / 2);\n      comparison = arcLengths[i] - targetArcLength;\n      if (comparison < 0) {\n        low = i + 1;\n      } else if (comparison > 0) {\n        high = i - 1;\n      } else {\n        high = i;\n        break;\n      }\n    }\n    i = high;\n    if (arcLengths[i] === targetArcLength) {\n      return i / (il - 1);\n    }\n    const lengthBefore = arcLengths[i];\n    const lengthAfter = arcLengths[i + 1];\n    const segmentLength = lengthAfter - lengthBefore;\n    const segmentFraction = (targetArcLength - lengthBefore) / segmentLength;\n    const t = (i + segmentFraction) / (il - 1);\n    return t;\n  }\n  // Returns a unit vector tangent at t\n  // In case any sub curve does not implement its tangent derivation,\n  // 2 points a small delta apart will be used to find its gradient\n  // which seems to give a reasonable approximation\n  getTangent(t, optionalTarget) {\n    const delta = 1e-4;\n    let t1 = t - delta;\n    let t2 = t + delta;\n    if (t1 < 0) t1 = 0;\n    if (t2 > 1) t2 = 1;\n    const pt1 = this.getPoint(t1);\n    const pt2 = this.getPoint(t2);\n    const tangent = optionalTarget || (pt1.isVector2 ? new Vector2() : new Vector3());\n    tangent.copy(pt2).sub(pt1).normalize();\n    return tangent;\n  }\n  getTangentAt(u, optionalTarget) {\n    const t = this.getUtoTmapping(u);\n    return this.getTangent(t, optionalTarget);\n  }\n  computeFrenetFrames(segments, closed) {\n    const normal = new Vector3();\n    const tangents = [];\n    const normals = [];\n    const binormals = [];\n    const vec = new Vector3();\n    const mat = new Matrix4();\n    for (let i = 0; i <= segments; i++) {\n      const u = i / segments;\n      tangents[i] = this.getTangentAt(u, new Vector3());\n    }\n    normals[0] = new Vector3();\n    binormals[0] = new Vector3();\n    let min = Number.MAX_VALUE;\n    const tx = Math.abs(tangents[0].x);\n    const ty = Math.abs(tangents[0].y);\n    const tz = Math.abs(tangents[0].z);\n    if (tx <= min) {\n      min = tx;\n      normal.set(1, 0, 0);\n    }\n    if (ty <= min) {\n      min = ty;\n      normal.set(0, 1, 0);\n    }\n    if (tz <= min) {\n      normal.set(0, 0, 1);\n    }\n    vec.crossVectors(tangents[0], normal).normalize();\n    normals[0].crossVectors(tangents[0], vec);\n    binormals[0].crossVectors(tangents[0], normals[0]);\n    for (let i = 1; i <= segments; i++) {\n      normals[i] = normals[i - 1].clone();\n      binormals[i] = binormals[i - 1].clone();\n      vec.crossVectors(tangents[i - 1], tangents[i]);\n      if (vec.length() > Number.EPSILON) {\n        vec.normalize();\n        const theta = Math.acos(clamp(tangents[i - 1].dot(tangents[i]), -1, 1));\n        normals[i].applyMatrix4(mat.makeRotationAxis(vec, theta));\n      }\n      binormals[i].crossVectors(tangents[i], normals[i]);\n    }\n    if (closed === true) {\n      let theta = Math.acos(clamp(normals[0].dot(normals[segments]), -1, 1));\n      theta /= segments;\n      if (tangents[0].dot(vec.crossVectors(normals[0], normals[segments])) > 0) {\n        theta = -theta;\n      }\n      for (let i = 1; i <= segments; i++) {\n        normals[i].applyMatrix4(mat.makeRotationAxis(tangents[i], theta * i));\n        binormals[i].crossVectors(tangents[i], normals[i]);\n      }\n    }\n    return {\n      tangents,\n      normals,\n      binormals\n    };\n  }\n  clone() {\n    return new this.constructor().copy(this);\n  }\n  copy(source) {\n    this.arcLengthDivisions = source.arcLengthDivisions;\n    return this;\n  }\n  toJSON() {\n    const data = {\n      metadata: {\n        version: 4.6,\n        type: \"Curve\",\n        generator: \"Curve.toJSON\"\n      }\n    };\n    data.arcLengthDivisions = this.arcLengthDivisions;\n    data.type = this.type;\n    return data;\n  }\n  fromJSON(json) {\n    this.arcLengthDivisions = json.arcLengthDivisions;\n    return this;\n  }\n};\nvar EllipseCurve = class extends Curve {\n  constructor(aX = 0, aY = 0, xRadius = 1, yRadius = 1, aStartAngle = 0, aEndAngle = Math.PI * 2, aClockwise = false, aRotation = 0) {\n    super();\n    this.isEllipseCurve = true;\n    this.type = \"EllipseCurve\";\n    this.aX = aX;\n    this.aY = aY;\n    this.xRadius = xRadius;\n    this.yRadius = yRadius;\n    this.aStartAngle = aStartAngle;\n    this.aEndAngle = aEndAngle;\n    this.aClockwise = aClockwise;\n    this.aRotation = aRotation;\n  }\n  getPoint(t, optionalTarget = new Vector2()) {\n    const point = optionalTarget;\n    const twoPi = Math.PI * 2;\n    let deltaAngle = this.aEndAngle - this.aStartAngle;\n    const samePoints = Math.abs(deltaAngle) < Number.EPSILON;\n    while (deltaAngle < 0) deltaAngle += twoPi;\n    while (deltaAngle > twoPi) deltaAngle -= twoPi;\n    if (deltaAngle < Number.EPSILON) {\n      if (samePoints) {\n        deltaAngle = 0;\n      } else {\n        deltaAngle = twoPi;\n      }\n    }\n    if (this.aClockwise === true && !samePoints) {\n      if (deltaAngle === twoPi) {\n        deltaAngle = -twoPi;\n      } else {\n        deltaAngle = deltaAngle - twoPi;\n      }\n    }\n    const angle = this.aStartAngle + t * deltaAngle;\n    let x = this.aX + this.xRadius * Math.cos(angle);\n    let y = this.aY + this.yRadius * Math.sin(angle);\n    if (this.aRotation !== 0) {\n      const cos = Math.cos(this.aRotation);\n      const sin = Math.sin(this.aRotation);\n      const tx = x - this.aX;\n      const ty = y - this.aY;\n      x = tx * cos - ty * sin + this.aX;\n      y = tx * sin + ty * cos + this.aY;\n    }\n    return point.set(x, y);\n  }\n  copy(source) {\n    super.copy(source);\n    this.aX = source.aX;\n    this.aY = source.aY;\n    this.xRadius = source.xRadius;\n    this.yRadius = source.yRadius;\n    this.aStartAngle = source.aStartAngle;\n    this.aEndAngle = source.aEndAngle;\n    this.aClockwise = source.aClockwise;\n    this.aRotation = source.aRotation;\n    return this;\n  }\n  toJSON() {\n    const data = super.toJSON();\n    data.aX = this.aX;\n    data.aY = this.aY;\n    data.xRadius = this.xRadius;\n    data.yRadius = this.yRadius;\n    data.aStartAngle = this.aStartAngle;\n    data.aEndAngle = this.aEndAngle;\n    data.aClockwise = this.aClockwise;\n    data.aRotation = this.aRotation;\n    return data;\n  }\n  fromJSON(json) {\n    super.fromJSON(json);\n    this.aX = json.aX;\n    this.aY = json.aY;\n    this.xRadius = json.xRadius;\n    this.yRadius = json.yRadius;\n    this.aStartAngle = json.aStartAngle;\n    this.aEndAngle = json.aEndAngle;\n    this.aClockwise = json.aClockwise;\n    this.aRotation = json.aRotation;\n    return this;\n  }\n};\nvar ArcCurve = class extends EllipseCurve {\n  constructor(aX, aY, aRadius, aStartAngle, aEndAngle, aClockwise) {\n    super(aX, aY, aRadius, aRadius, aStartAngle, aEndAngle, aClockwise);\n    this.isArcCurve = true;\n    this.type = \"ArcCurve\";\n  }\n};\nfunction CubicPoly() {\n  let c0 = 0, c1 = 0, c2 = 0, c3 = 0;\n  function init(x0, x1, t0, t1) {\n    c0 = x0;\n    c1 = t0;\n    c2 = -3 * x0 + 3 * x1 - 2 * t0 - t1;\n    c3 = 2 * x0 - 2 * x1 + t0 + t1;\n  }\n  return {\n    initCatmullRom: function(x0, x1, x2, x3, tension) {\n      init(x1, x2, tension * (x2 - x0), tension * (x3 - x1));\n    },\n    initNonuniformCatmullRom: function(x0, x1, x2, x3, dt0, dt1, dt2) {\n      let t1 = (x1 - x0) / dt0 - (x2 - x0) / (dt0 + dt1) + (x2 - x1) / dt1;\n      let t2 = (x2 - x1) / dt1 - (x3 - x1) / (dt1 + dt2) + (x3 - x2) / dt2;\n      t1 *= dt1;\n      t2 *= dt1;\n      init(x1, x2, t1, t2);\n    },\n    calc: function(t) {\n      const t2 = t * t;\n      const t3 = t2 * t;\n      return c0 + c1 * t + c2 * t2 + c3 * t3;\n    }\n  };\n}\nvar tmp = /* @__PURE__ */ new Vector3();\nvar px = /* @__PURE__ */ new CubicPoly();\nvar py = /* @__PURE__ */ new CubicPoly();\nvar pz = /* @__PURE__ */ new CubicPoly();\nvar CatmullRomCurve3 = class extends Curve {\n  constructor(points = [], closed = false, curveType = \"centripetal\", tension = 0.5) {\n    super();\n    this.isCatmullRomCurve3 = true;\n    this.type = \"CatmullRomCurve3\";\n    this.points = points;\n    this.closed = closed;\n    this.curveType = curveType;\n    this.tension = tension;\n  }\n  getPoint(t, optionalTarget = new Vector3()) {\n    const point = optionalTarget;\n    const points = this.points;\n    const l = points.length;\n    const p = (l - (this.closed ? 0 : 1)) * t;\n    let intPoint = Math.floor(p);\n    let weight = p - intPoint;\n    if (this.closed) {\n      intPoint += intPoint > 0 ? 0 : (Math.floor(Math.abs(intPoint) / l) + 1) * l;\n    } else if (weight === 0 && intPoint === l - 1) {\n      intPoint = l - 2;\n      weight = 1;\n    }\n    let p0, p3;\n    if (this.closed || intPoint > 0) {\n      p0 = points[(intPoint - 1) % l];\n    } else {\n      tmp.subVectors(points[0], points[1]).add(points[0]);\n      p0 = tmp;\n    }\n    const p1 = points[intPoint % l];\n    const p2 = points[(intPoint + 1) % l];\n    if (this.closed || intPoint + 2 < l) {\n      p3 = points[(intPoint + 2) % l];\n    } else {\n      tmp.subVectors(points[l - 1], points[l - 2]).add(points[l - 1]);\n      p3 = tmp;\n    }\n    if (this.curveType === \"centripetal\" || this.curveType === \"chordal\") {\n      const pow = this.curveType === \"chordal\" ? 0.5 : 0.25;\n      let dt0 = Math.pow(p0.distanceToSquared(p1), pow);\n      let dt1 = Math.pow(p1.distanceToSquared(p2), pow);\n      let dt2 = Math.pow(p2.distanceToSquared(p3), pow);\n      if (dt1 < 1e-4) dt1 = 1;\n      if (dt0 < 1e-4) dt0 = dt1;\n      if (dt2 < 1e-4) dt2 = dt1;\n      px.initNonuniformCatmullRom(p0.x, p1.x, p2.x, p3.x, dt0, dt1, dt2);\n      py.initNonuniformCatmullRom(p0.y, p1.y, p2.y, p3.y, dt0, dt1, dt2);\n      pz.initNonuniformCatmullRom(p0.z, p1.z, p2.z, p3.z, dt0, dt1, dt2);\n    } else if (this.curveType === \"catmullrom\") {\n      px.initCatmullRom(p0.x, p1.x, p2.x, p3.x, this.tension);\n      py.initCatmullRom(p0.y, p1.y, p2.y, p3.y, this.tension);\n      pz.initCatmullRom(p0.z, p1.z, p2.z, p3.z, this.tension);\n    }\n    point.set(\n      px.calc(weight),\n      py.calc(weight),\n      pz.calc(weight)\n    );\n    return point;\n  }\n  copy(source) {\n    super.copy(source);\n    this.points = [];\n    for (let i = 0, l = source.points.length; i < l; i++) {\n      const point = source.points[i];\n      this.points.push(point.clone());\n    }\n    this.closed = source.closed;\n    this.curveType = source.curveType;\n    this.tension = source.tension;\n    return this;\n  }\n  toJSON() {\n    const data = super.toJSON();\n    data.points = [];\n    for (let i = 0, l = this.points.length; i < l; i++) {\n      const point = this.points[i];\n      data.points.push(point.toArray());\n    }\n    data.closed = this.closed;\n    data.curveType = this.curveType;\n    data.tension = this.tension;\n    return data;\n  }\n  fromJSON(json) {\n    super.fromJSON(json);\n    this.points = [];\n    for (let i = 0, l = json.points.length; i < l; i++) {\n      const point = json.points[i];\n      this.points.push(new Vector3().fromArray(point));\n    }\n    this.closed = json.closed;\n    this.curveType = json.curveType;\n    this.tension = json.tension;\n    return this;\n  }\n};\nfunction CatmullRom(t, p0, p1, p2, p3) {\n  const v0 = (p2 - p0) * 0.5;\n  const v1 = (p3 - p1) * 0.5;\n  const t2 = t * t;\n  const t3 = t * t2;\n  return (2 * p1 - 2 * p2 + v0 + v1) * t3 + (-3 * p1 + 3 * p2 - 2 * v0 - v1) * t2 + v0 * t + p1;\n}\nfunction QuadraticBezierP0(t, p) {\n  const k = 1 - t;\n  return k * k * p;\n}\nfunction QuadraticBezierP1(t, p) {\n  return 2 * (1 - t) * t * p;\n}\nfunction QuadraticBezierP2(t, p) {\n  return t * t * p;\n}\nfunction QuadraticBezier(t, p0, p1, p2) {\n  return QuadraticBezierP0(t, p0) + QuadraticBezierP1(t, p1) + QuadraticBezierP2(t, p2);\n}\nfunction CubicBezierP0(t, p) {\n  const k = 1 - t;\n  return k * k * k * p;\n}\nfunction CubicBezierP1(t, p) {\n  const k = 1 - t;\n  return 3 * k * k * t * p;\n}\nfunction CubicBezierP2(t, p) {\n  return 3 * (1 - t) * t * t * p;\n}\nfunction CubicBezierP3(t, p) {\n  return t * t * t * p;\n}\nfunction CubicBezier(t, p0, p1, p2, p3) {\n  return CubicBezierP0(t, p0) + CubicBezierP1(t, p1) + CubicBezierP2(t, p2) + CubicBezierP3(t, p3);\n}\nvar CubicBezierCurve = class extends Curve {\n  constructor(v0 = new Vector2(), v1 = new Vector2(), v2 = new Vector2(), v3 = new Vector2()) {\n    super();\n    this.isCubicBezierCurve = true;\n    this.type = \"CubicBezierCurve\";\n    this.v0 = v0;\n    this.v1 = v1;\n    this.v2 = v2;\n    this.v3 = v3;\n  }\n  getPoint(t, optionalTarget = new Vector2()) {\n    const point = optionalTarget;\n    const v0 = this.v0, v1 = this.v1, v2 = this.v2, v3 = this.v3;\n    point.set(\n      CubicBezier(t, v0.x, v1.x, v2.x, v3.x),\n      CubicBezier(t, v0.y, v1.y, v2.y, v3.y)\n    );\n    return point;\n  }\n  copy(source) {\n    super.copy(source);\n    this.v0.copy(source.v0);\n    this.v1.copy(source.v1);\n    this.v2.copy(source.v2);\n    this.v3.copy(source.v3);\n    return this;\n  }\n  toJSON() {\n    const data = super.toJSON();\n    data.v0 = this.v0.toArray();\n    data.v1 = this.v1.toArray();\n    data.v2 = this.v2.toArray();\n    data.v3 = this.v3.toArray();\n    return data;\n  }\n  fromJSON(json) {\n    super.fromJSON(json);\n    this.v0.fromArray(json.v0);\n    this.v1.fromArray(json.v1);\n    this.v2.fromArray(json.v2);\n    this.v3.fromArray(json.v3);\n    return this;\n  }\n};\nvar CubicBezierCurve3 = class extends Curve {\n  constructor(v0 = new Vector3(), v1 = new Vector3(), v2 = new Vector3(), v3 = new Vector3()) {\n    super();\n    this.isCubicBezierCurve3 = true;\n    this.type = \"CubicBezierCurve3\";\n    this.v0 = v0;\n    this.v1 = v1;\n    this.v2 = v2;\n    this.v3 = v3;\n  }\n  getPoint(t, optionalTarget = new Vector3()) {\n    const point = optionalTarget;\n    const v0 = this.v0, v1 = this.v1, v2 = this.v2, v3 = this.v3;\n    point.set(\n      CubicBezier(t, v0.x, v1.x, v2.x, v3.x),\n      CubicBezier(t, v0.y, v1.y, v2.y, v3.y),\n      CubicBezier(t, v0.z, v1.z, v2.z, v3.z)\n    );\n    return point;\n  }\n  copy(source) {\n    super.copy(source);\n    this.v0.copy(source.v0);\n    this.v1.copy(source.v1);\n    this.v2.copy(source.v2);\n    this.v3.copy(source.v3);\n    return this;\n  }\n  toJSON() {\n    const data = super.toJSON();\n    data.v0 = this.v0.toArray();\n    data.v1 = this.v1.toArray();\n    data.v2 = this.v2.toArray();\n    data.v3 = this.v3.toArray();\n    return data;\n  }\n  fromJSON(json) {\n    super.fromJSON(json);\n    this.v0.fromArray(json.v0);\n    this.v1.fromArray(json.v1);\n    this.v2.fromArray(json.v2);\n    this.v3.fromArray(json.v3);\n    return this;\n  }\n};\nvar LineCurve = class extends Curve {\n  constructor(v1 = new Vector2(), v2 = new Vector2()) {\n    super();\n    this.isLineCurve = true;\n    this.type = \"LineCurve\";\n    this.v1 = v1;\n    this.v2 = v2;\n  }\n  getPoint(t, optionalTarget = new Vector2()) {\n    const point = optionalTarget;\n    if (t === 1) {\n      point.copy(this.v2);\n    } else {\n      point.copy(this.v2).sub(this.v1);\n      point.multiplyScalar(t).add(this.v1);\n    }\n    return point;\n  }\n  // Line curve is linear, so we can overwrite default getPointAt\n  getPointAt(u, optionalTarget) {\n    return this.getPoint(u, optionalTarget);\n  }\n  getTangent(t, optionalTarget = new Vector2()) {\n    return optionalTarget.subVectors(this.v2, this.v1).normalize();\n  }\n  getTangentAt(u, optionalTarget) {\n    return this.getTangent(u, optionalTarget);\n  }\n  copy(source) {\n    super.copy(source);\n    this.v1.copy(source.v1);\n    this.v2.copy(source.v2);\n    return this;\n  }\n  toJSON() {\n    const data = super.toJSON();\n    data.v1 = this.v1.toArray();\n    data.v2 = this.v2.toArray();\n    return data;\n  }\n  fromJSON(json) {\n    super.fromJSON(json);\n    this.v1.fromArray(json.v1);\n    this.v2.fromArray(json.v2);\n    return this;\n  }\n};\nvar LineCurve3 = class extends Curve {\n  constructor(v1 = new Vector3(), v2 = new Vector3()) {\n    super();\n    this.isLineCurve3 = true;\n    this.type = \"LineCurve3\";\n    this.v1 = v1;\n    this.v2 = v2;\n  }\n  getPoint(t, optionalTarget = new Vector3()) {\n    const point = optionalTarget;\n    if (t === 1) {\n      point.copy(this.v2);\n    } else {\n      point.copy(this.v2).sub(this.v1);\n      point.multiplyScalar(t).add(this.v1);\n    }\n    return point;\n  }\n  // Line curve is linear, so we can overwrite default getPointAt\n  getPointAt(u, optionalTarget) {\n    return this.getPoint(u, optionalTarget);\n  }\n  getTangent(t, optionalTarget = new Vector3()) {\n    return optionalTarget.subVectors(this.v2, this.v1).normalize();\n  }\n  getTangentAt(u, optionalTarget) {\n    return this.getTangent(u, optionalTarget);\n  }\n  copy(source) {\n    super.copy(source);\n    this.v1.copy(source.v1);\n    this.v2.copy(source.v2);\n    return this;\n  }\n  toJSON() {\n    const data = super.toJSON();\n    data.v1 = this.v1.toArray();\n    data.v2 = this.v2.toArray();\n    return data;\n  }\n  fromJSON(json) {\n    super.fromJSON(json);\n    this.v1.fromArray(json.v1);\n    this.v2.fromArray(json.v2);\n    return this;\n  }\n};\nvar QuadraticBezierCurve = class extends Curve {\n  constructor(v0 = new Vector2(), v1 = new Vector2(), v2 = new Vector2()) {\n    super();\n    this.isQuadraticBezierCurve = true;\n    this.type = \"QuadraticBezierCurve\";\n    this.v0 = v0;\n    this.v1 = v1;\n    this.v2 = v2;\n  }\n  getPoint(t, optionalTarget = new Vector2()) {\n    const point = optionalTarget;\n    const v0 = this.v0, v1 = this.v1, v2 = this.v2;\n    point.set(\n      QuadraticBezier(t, v0.x, v1.x, v2.x),\n      QuadraticBezier(t, v0.y, v1.y, v2.y)\n    );\n    return point;\n  }\n  copy(source) {\n    super.copy(source);\n    this.v0.copy(source.v0);\n    this.v1.copy(source.v1);\n    this.v2.copy(source.v2);\n    return this;\n  }\n  toJSON() {\n    const data = super.toJSON();\n    data.v0 = this.v0.toArray();\n    data.v1 = this.v1.toArray();\n    data.v2 = this.v2.toArray();\n    return data;\n  }\n  fromJSON(json) {\n    super.fromJSON(json);\n    this.v0.fromArray(json.v0);\n    this.v1.fromArray(json.v1);\n    this.v2.fromArray(json.v2);\n    return this;\n  }\n};\nvar QuadraticBezierCurve3 = class extends Curve {\n  constructor(v0 = new Vector3(), v1 = new Vector3(), v2 = new Vector3()) {\n    super();\n    this.isQuadraticBezierCurve3 = true;\n    this.type = \"QuadraticBezierCurve3\";\n    this.v0 = v0;\n    this.v1 = v1;\n    this.v2 = v2;\n  }\n  getPoint(t, optionalTarget = new Vector3()) {\n    const point = optionalTarget;\n    const v0 = this.v0, v1 = this.v1, v2 = this.v2;\n    point.set(\n      QuadraticBezier(t, v0.x, v1.x, v2.x),\n      QuadraticBezier(t, v0.y, v1.y, v2.y),\n      QuadraticBezier(t, v0.z, v1.z, v2.z)\n    );\n    return point;\n  }\n  copy(source) {\n    super.copy(source);\n    this.v0.copy(source.v0);\n    this.v1.copy(source.v1);\n    this.v2.copy(source.v2);\n    return this;\n  }\n  toJSON() {\n    const data = super.toJSON();\n    data.v0 = this.v0.toArray();\n    data.v1 = this.v1.toArray();\n    data.v2 = this.v2.toArray();\n    return data;\n  }\n  fromJSON(json) {\n    super.fromJSON(json);\n    this.v0.fromArray(json.v0);\n    this.v1.fromArray(json.v1);\n    this.v2.fromArray(json.v2);\n    return this;\n  }\n};\nvar SplineCurve = class extends Curve {\n  constructor(points = []) {\n    super();\n    this.isSplineCurve = true;\n    this.type = \"SplineCurve\";\n    this.points = points;\n  }\n  getPoint(t, optionalTarget = new Vector2()) {\n    const point = optionalTarget;\n    const points = this.points;\n    const p = (points.length - 1) * t;\n    const intPoint = Math.floor(p);\n    const weight = p - intPoint;\n    const p0 = points[intPoint === 0 ? intPoint : intPoint - 1];\n    const p1 = points[intPoint];\n    const p2 = points[intPoint > points.length - 2 ? points.length - 1 : intPoint + 1];\n    const p3 = points[intPoint > points.length - 3 ? points.length - 1 : intPoint + 2];\n    point.set(\n      CatmullRom(weight, p0.x, p1.x, p2.x, p3.x),\n      CatmullRom(weight, p0.y, p1.y, p2.y, p3.y)\n    );\n    return point;\n  }\n  copy(source) {\n    super.copy(source);\n    this.points = [];\n    for (let i = 0, l = source.points.length; i < l; i++) {\n      const point = source.points[i];\n      this.points.push(point.clone());\n    }\n    return this;\n  }\n  toJSON() {\n    const data = super.toJSON();\n    data.points = [];\n    for (let i = 0, l = this.points.length; i < l; i++) {\n      const point = this.points[i];\n      data.points.push(point.toArray());\n    }\n    return data;\n  }\n  fromJSON(json) {\n    super.fromJSON(json);\n    this.points = [];\n    for (let i = 0, l = json.points.length; i < l; i++) {\n      const point = json.points[i];\n      this.points.push(new Vector2().fromArray(point));\n    }\n    return this;\n  }\n};\nvar Curves = /* @__PURE__ */ Object.freeze({\n  __proto__: null,\n  ArcCurve,\n  CatmullRomCurve3,\n  CubicBezierCurve,\n  CubicBezierCurve3,\n  EllipseCurve,\n  LineCurve,\n  LineCurve3,\n  QuadraticBezierCurve,\n  QuadraticBezierCurve3,\n  SplineCurve\n});\nvar CurvePath = class extends Curve {\n  constructor() {\n    super();\n    this.type = \"CurvePath\";\n    this.curves = [];\n    this.autoClose = false;\n  }\n  add(curve) {\n    this.curves.push(curve);\n  }\n  closePath() {\n    const startPoint = this.curves[0].getPoint(0);\n    const endPoint = this.curves[this.curves.length - 1].getPoint(1);\n    if (!startPoint.equals(endPoint)) {\n      const lineType = startPoint.isVector2 === true ? \"LineCurve\" : \"LineCurve3\";\n      this.curves.push(new Curves[lineType](endPoint, startPoint));\n    }\n    return this;\n  }\n  // To get accurate point with reference to\n  // entire path distance at time t,\n  // following has to be done:\n  // 1. Length of each sub path have to be known\n  // 2. Locate and identify type of curve\n  // 3. Get t for the curve\n  // 4. Return curve.getPointAt(t')\n  getPoint(t, optionalTarget) {\n    const d = t * this.getLength();\n    const curveLengths = this.getCurveLengths();\n    let i = 0;\n    while (i < curveLengths.length) {\n      if (curveLengths[i] >= d) {\n        const diff = curveLengths[i] - d;\n        const curve = this.curves[i];\n        const segmentLength = curve.getLength();\n        const u = segmentLength === 0 ? 0 : 1 - diff / segmentLength;\n        return curve.getPointAt(u, optionalTarget);\n      }\n      i++;\n    }\n    return null;\n  }\n  // We cannot use the default THREE.Curve getPoint() with getLength() because in\n  // THREE.Curve, getLength() depends on getPoint() but in THREE.CurvePath\n  // getPoint() depends on getLength\n  getLength() {\n    const lens = this.getCurveLengths();\n    return lens[lens.length - 1];\n  }\n  // cacheLengths must be recalculated.\n  updateArcLengths() {\n    this.needsUpdate = true;\n    this.cacheLengths = null;\n    this.getCurveLengths();\n  }\n  // Compute lengths and cache them\n  // We cannot overwrite getLengths() because UtoT mapping uses it.\n  getCurveLengths() {\n    if (this.cacheLengths && this.cacheLengths.length === this.curves.length) {\n      return this.cacheLengths;\n    }\n    const lengths = [];\n    let sums = 0;\n    for (let i = 0, l = this.curves.length; i < l; i++) {\n      sums += this.curves[i].getLength();\n      lengths.push(sums);\n    }\n    this.cacheLengths = lengths;\n    return lengths;\n  }\n  getSpacedPoints(divisions = 40) {\n    const points = [];\n    for (let i = 0; i <= divisions; i++) {\n      points.push(this.getPoint(i / divisions));\n    }\n    if (this.autoClose) {\n      points.push(points[0]);\n    }\n    return points;\n  }\n  getPoints(divisions = 12) {\n    const points = [];\n    let last;\n    for (let i = 0, curves = this.curves; i < curves.length; i++) {\n      const curve = curves[i];\n      const resolution = curve.isEllipseCurve ? divisions * 2 : curve.isLineCurve || curve.isLineCurve3 ? 1 : curve.isSplineCurve ? divisions * curve.points.length : divisions;\n      const pts = curve.getPoints(resolution);\n      for (let j = 0; j < pts.length; j++) {\n        const point = pts[j];\n        if (last && last.equals(point)) continue;\n        points.push(point);\n        last = point;\n      }\n    }\n    if (this.autoClose && points.length > 1 && !points[points.length - 1].equals(points[0])) {\n      points.push(points[0]);\n    }\n    return points;\n  }\n  copy(source) {\n    super.copy(source);\n    this.curves = [];\n    for (let i = 0, l = source.curves.length; i < l; i++) {\n      const curve = source.curves[i];\n      this.curves.push(curve.clone());\n    }\n    this.autoClose = source.autoClose;\n    return this;\n  }\n  toJSON() {\n    const data = super.toJSON();\n    data.autoClose = this.autoClose;\n    data.curves = [];\n    for (let i = 0, l = this.curves.length; i < l; i++) {\n      const curve = this.curves[i];\n      data.curves.push(curve.toJSON());\n    }\n    return data;\n  }\n  fromJSON(json) {\n    super.fromJSON(json);\n    this.autoClose = json.autoClose;\n    this.curves = [];\n    for (let i = 0, l = json.curves.length; i < l; i++) {\n      const curve = json.curves[i];\n      this.curves.push(new Curves[curve.type]().fromJSON(curve));\n    }\n    return this;\n  }\n};\nvar Path = class extends CurvePath {\n  constructor(points) {\n    super();\n    this.type = \"Path\";\n    this.currentPoint = new Vector2();\n    if (points) {\n      this.setFromPoints(points);\n    }\n  }\n  setFromPoints(points) {\n    this.moveTo(points[0].x, points[0].y);\n    for (let i = 1, l = points.length; i < l; i++) {\n      this.lineTo(points[i].x, points[i].y);\n    }\n    return this;\n  }\n  moveTo(x, y) {\n    this.currentPoint.set(x, y);\n    return this;\n  }\n  lineTo(x, y) {\n    const curve = new LineCurve(this.currentPoint.clone(), new Vector2(x, y));\n    this.curves.push(curve);\n    this.currentPoint.set(x, y);\n    return this;\n  }\n  quadraticCurveTo(aCPx, aCPy, aX, aY) {\n    const curve = new QuadraticBezierCurve(\n      this.currentPoint.clone(),\n      new Vector2(aCPx, aCPy),\n      new Vector2(aX, aY)\n    );\n    this.curves.push(curve);\n    this.currentPoint.set(aX, aY);\n    return this;\n  }\n  bezierCurveTo(aCP1x, aCP1y, aCP2x, aCP2y, aX, aY) {\n    const curve = new CubicBezierCurve(\n      this.currentPoint.clone(),\n      new Vector2(aCP1x, aCP1y),\n      new Vector2(aCP2x, aCP2y),\n      new Vector2(aX, aY)\n    );\n    this.curves.push(curve);\n    this.currentPoint.set(aX, aY);\n    return this;\n  }\n  splineThru(pts) {\n    const npts = [this.currentPoint.clone()].concat(pts);\n    const curve = new SplineCurve(npts);\n    this.curves.push(curve);\n    this.currentPoint.copy(pts[pts.length - 1]);\n    return this;\n  }\n  arc(aX, aY, aRadius, aStartAngle, aEndAngle, aClockwise) {\n    const x0 = this.currentPoint.x;\n    const y0 = this.currentPoint.y;\n    this.absarc(\n      aX + x0,\n      aY + y0,\n      aRadius,\n      aStartAngle,\n      aEndAngle,\n      aClockwise\n    );\n    return this;\n  }\n  absarc(aX, aY, aRadius, aStartAngle, aEndAngle, aClockwise) {\n    this.absellipse(aX, aY, aRadius, aRadius, aStartAngle, aEndAngle, aClockwise);\n    return this;\n  }\n  ellipse(aX, aY, xRadius, yRadius, aStartAngle, aEndAngle, aClockwise, aRotation) {\n    const x0 = this.currentPoint.x;\n    const y0 = this.currentPoint.y;\n    this.absellipse(aX + x0, aY + y0, xRadius, yRadius, aStartAngle, aEndAngle, aClockwise, aRotation);\n    return this;\n  }\n  absellipse(aX, aY, xRadius, yRadius, aStartAngle, aEndAngle, aClockwise, aRotation) {\n    const curve = new EllipseCurve(aX, aY, xRadius, yRadius, aStartAngle, aEndAngle, aClockwise, aRotation);\n    if (this.curves.length > 0) {\n      const firstPoint = curve.getPoint(0);\n      if (!firstPoint.equals(this.currentPoint)) {\n        this.lineTo(firstPoint.x, firstPoint.y);\n      }\n    }\n    this.curves.push(curve);\n    const lastPoint = curve.getPoint(1);\n    this.currentPoint.copy(lastPoint);\n    return this;\n  }\n  copy(source) {\n    super.copy(source);\n    this.currentPoint.copy(source.currentPoint);\n    return this;\n  }\n  toJSON() {\n    const data = super.toJSON();\n    data.currentPoint = this.currentPoint.toArray();\n    return data;\n  }\n  fromJSON(json) {\n    super.fromJSON(json);\n    this.currentPoint.fromArray(json.currentPoint);\n    return this;\n  }\n};\nvar LatheGeometry = class _LatheGeometry extends BufferGeometry {\n  constructor(points = [new Vector2(0, -0.5), new Vector2(0.5, 0), new Vector2(0, 0.5)], segments = 12, phiStart = 0, phiLength = Math.PI * 2) {\n    super();\n    this.type = \"LatheGeometry\";\n    this.parameters = {\n      points,\n      segments,\n      phiStart,\n      phiLength\n    };\n    segments = Math.floor(segments);\n    phiLength = clamp(phiLength, 0, Math.PI * 2);\n    const indices = [];\n    const vertices = [];\n    const uvs = [];\n    const initNormals = [];\n    const normals = [];\n    const inverseSegments = 1 / segments;\n    const vertex2 = new Vector3();\n    const uv = new Vector2();\n    const normal = new Vector3();\n    const curNormal = new Vector3();\n    const prevNormal = new Vector3();\n    let dx = 0;\n    let dy = 0;\n    for (let j = 0; j <= points.length - 1; j++) {\n      switch (j) {\n        case 0:\n          dx = points[j + 1].x - points[j].x;\n          dy = points[j + 1].y - points[j].y;\n          normal.x = dy * 1;\n          normal.y = -dx;\n          normal.z = dy * 0;\n          prevNormal.copy(normal);\n          normal.normalize();\n          initNormals.push(normal.x, normal.y, normal.z);\n          break;\n        case points.length - 1:\n          initNormals.push(prevNormal.x, prevNormal.y, prevNormal.z);\n          break;\n        default:\n          dx = points[j + 1].x - points[j].x;\n          dy = points[j + 1].y - points[j].y;\n          normal.x = dy * 1;\n          normal.y = -dx;\n          normal.z = dy * 0;\n          curNormal.copy(normal);\n          normal.x += prevNormal.x;\n          normal.y += prevNormal.y;\n          normal.z += prevNormal.z;\n          normal.normalize();\n          initNormals.push(normal.x, normal.y, normal.z);\n          prevNormal.copy(curNormal);\n      }\n    }\n    for (let i = 0; i <= segments; i++) {\n      const phi = phiStart + i * inverseSegments * phiLength;\n      const sin = Math.sin(phi);\n      const cos = Math.cos(phi);\n      for (let j = 0; j <= points.length - 1; j++) {\n        vertex2.x = points[j].x * sin;\n        vertex2.y = points[j].y;\n        vertex2.z = points[j].x * cos;\n        vertices.push(vertex2.x, vertex2.y, vertex2.z);\n        uv.x = i / segments;\n        uv.y = j / (points.length - 1);\n        uvs.push(uv.x, uv.y);\n        const x = initNormals[3 * j + 0] * sin;\n        const y = initNormals[3 * j + 1];\n        const z = initNormals[3 * j + 0] * cos;\n        normals.push(x, y, z);\n      }\n    }\n    for (let i = 0; i < segments; i++) {\n      for (let j = 0; j < points.length - 1; j++) {\n        const base = j + i * points.length;\n        const a = base;\n        const b = base + points.length;\n        const c = base + points.length + 1;\n        const d = base + 1;\n        indices.push(a, b, d);\n        indices.push(c, d, b);\n      }\n    }\n    this.setIndex(indices);\n    this.setAttribute(\"position\", new Float32BufferAttribute(vertices, 3));\n    this.setAttribute(\"uv\", new Float32BufferAttribute(uvs, 2));\n    this.setAttribute(\"normal\", new Float32BufferAttribute(normals, 3));\n  }\n  copy(source) {\n    super.copy(source);\n    this.parameters = Object.assign({}, source.parameters);\n    return this;\n  }\n  static fromJSON(data) {\n    return new _LatheGeometry(data.points, data.segments, data.phiStart, data.phiLength);\n  }\n};\nvar CapsuleGeometry = class _CapsuleGeometry extends LatheGeometry {\n  constructor(radius = 1, length = 1, capSegments = 4, radialSegments = 8) {\n    const path = new Path();\n    path.absarc(0, -length / 2, radius, Math.PI * 1.5, 0);\n    path.absarc(0, length / 2, radius, 0, Math.PI * 0.5);\n    super(path.getPoints(capSegments), radialSegments);\n    this.type = \"CapsuleGeometry\";\n    this.parameters = {\n      radius,\n      length,\n      capSegments,\n      radialSegments\n    };\n  }\n  static fromJSON(data) {\n    return new _CapsuleGeometry(data.radius, data.length, data.capSegments, data.radialSegments);\n  }\n};\nvar CircleGeometry = class _CircleGeometry extends BufferGeometry {\n  constructor(radius = 1, segments = 32, thetaStart = 0, thetaLength = Math.PI * 2) {\n    super();\n    this.type = \"CircleGeometry\";\n    this.parameters = {\n      radius,\n      segments,\n      thetaStart,\n      thetaLength\n    };\n    segments = Math.max(3, segments);\n    const indices = [];\n    const vertices = [];\n    const normals = [];\n    const uvs = [];\n    const vertex2 = new Vector3();\n    const uv = new Vector2();\n    vertices.push(0, 0, 0);\n    normals.push(0, 0, 1);\n    uvs.push(0.5, 0.5);\n    for (let s = 0, i = 3; s <= segments; s++, i += 3) {\n      const segment = thetaStart + s / segments * thetaLength;\n      vertex2.x = radius * Math.cos(segment);\n      vertex2.y = radius * Math.sin(segment);\n      vertices.push(vertex2.x, vertex2.y, vertex2.z);\n      normals.push(0, 0, 1);\n      uv.x = (vertices[i] / radius + 1) / 2;\n      uv.y = (vertices[i + 1] / radius + 1) / 2;\n      uvs.push(uv.x, uv.y);\n    }\n    for (let i = 1; i <= segments; i++) {\n      indices.push(i, i + 1, 0);\n    }\n    this.setIndex(indices);\n    this.setAttribute(\"position\", new Float32BufferAttribute(vertices, 3));\n    this.setAttribute(\"normal\", new Float32BufferAttribute(normals, 3));\n    this.setAttribute(\"uv\", new Float32BufferAttribute(uvs, 2));\n  }\n  copy(source) {\n    super.copy(source);\n    this.parameters = Object.assign({}, source.parameters);\n    return this;\n  }\n  static fromJSON(data) {\n    return new _CircleGeometry(data.radius, data.segments, data.thetaStart, data.thetaLength);\n  }\n};\nvar CylinderGeometry = class _CylinderGeometry extends BufferGeometry {\n  constructor(radiusTop = 1, radiusBottom = 1, height = 1, radialSegments = 32, heightSegments = 1, openEnded = false, thetaStart = 0, thetaLength = Math.PI * 2) {\n    super();\n    this.type = \"CylinderGeometry\";\n    this.parameters = {\n      radiusTop,\n      radiusBottom,\n      height,\n      radialSegments,\n      heightSegments,\n      openEnded,\n      thetaStart,\n      thetaLength\n    };\n    const scope = this;\n    radialSegments = Math.floor(radialSegments);\n    heightSegments = Math.floor(heightSegments);\n    const indices = [];\n    const vertices = [];\n    const normals = [];\n    const uvs = [];\n    let index = 0;\n    const indexArray = [];\n    const halfHeight = height / 2;\n    let groupStart = 0;\n    generateTorso();\n    if (openEnded === false) {\n      if (radiusTop > 0) generateCap(true);\n      if (radiusBottom > 0) generateCap(false);\n    }\n    this.setIndex(indices);\n    this.setAttribute(\"position\", new Float32BufferAttribute(vertices, 3));\n    this.setAttribute(\"normal\", new Float32BufferAttribute(normals, 3));\n    this.setAttribute(\"uv\", new Float32BufferAttribute(uvs, 2));\n    function generateTorso() {\n      const normal = new Vector3();\n      const vertex2 = new Vector3();\n      let groupCount = 0;\n      const slope = (radiusBottom - radiusTop) / height;\n      for (let y = 0; y <= heightSegments; y++) {\n        const indexRow = [];\n        const v = y / heightSegments;\n        const radius = v * (radiusBottom - radiusTop) + radiusTop;\n        for (let x = 0; x <= radialSegments; x++) {\n          const u = x / radialSegments;\n          const theta = u * thetaLength + thetaStart;\n          const sinTheta = Math.sin(theta);\n          const cosTheta = Math.cos(theta);\n          vertex2.x = radius * sinTheta;\n          vertex2.y = -v * height + halfHeight;\n          vertex2.z = radius * cosTheta;\n          vertices.push(vertex2.x, vertex2.y, vertex2.z);\n          normal.set(sinTheta, slope, cosTheta).normalize();\n          normals.push(normal.x, normal.y, normal.z);\n          uvs.push(u, 1 - v);\n          indexRow.push(index++);\n        }\n        indexArray.push(indexRow);\n      }\n      for (let x = 0; x < radialSegments; x++) {\n        for (let y = 0; y < heightSegments; y++) {\n          const a = indexArray[y][x];\n          const b = indexArray[y + 1][x];\n          const c = indexArray[y + 1][x + 1];\n          const d = indexArray[y][x + 1];\n          if (radiusTop > 0) {\n            indices.push(a, b, d);\n            groupCount += 3;\n          }\n          if (radiusBottom > 0) {\n            indices.push(b, c, d);\n            groupCount += 3;\n          }\n        }\n      }\n      scope.addGroup(groupStart, groupCount, 0);\n      groupStart += groupCount;\n    }\n    function generateCap(top) {\n      const centerIndexStart = index;\n      const uv = new Vector2();\n      const vertex2 = new Vector3();\n      let groupCount = 0;\n      const radius = top === true ? radiusTop : radiusBottom;\n      const sign2 = top === true ? 1 : -1;\n      for (let x = 1; x <= radialSegments; x++) {\n        vertices.push(0, halfHeight * sign2, 0);\n        normals.push(0, sign2, 0);\n        uvs.push(0.5, 0.5);\n        index++;\n      }\n      const centerIndexEnd = index;\n      for (let x = 0; x <= radialSegments; x++) {\n        const u = x / radialSegments;\n        const theta = u * thetaLength + thetaStart;\n        const cosTheta = Math.cos(theta);\n        const sinTheta = Math.sin(theta);\n        vertex2.x = radius * sinTheta;\n        vertex2.y = halfHeight * sign2;\n        vertex2.z = radius * cosTheta;\n        vertices.push(vertex2.x, vertex2.y, vertex2.z);\n        normals.push(0, sign2, 0);\n        uv.x = cosTheta * 0.5 + 0.5;\n        uv.y = sinTheta * 0.5 * sign2 + 0.5;\n        uvs.push(uv.x, uv.y);\n        index++;\n      }\n      for (let x = 0; x < radialSegments; x++) {\n        const c = centerIndexStart + x;\n        const i = centerIndexEnd + x;\n        if (top === true) {\n          indices.push(i, i + 1, c);\n        } else {\n          indices.push(i + 1, i, c);\n        }\n        groupCount += 3;\n      }\n      scope.addGroup(groupStart, groupCount, top === true ? 1 : 2);\n      groupStart += groupCount;\n    }\n  }\n  copy(source) {\n    super.copy(source);\n    this.parameters = Object.assign({}, source.parameters);\n    return this;\n  }\n  static fromJSON(data) {\n    return new _CylinderGeometry(data.radiusTop, data.radiusBottom, data.height, data.radialSegments, data.heightSegments, data.openEnded, data.thetaStart, data.thetaLength);\n  }\n};\nvar ConeGeometry = class _ConeGeometry extends CylinderGeometry {\n  constructor(radius = 1, height = 1, radialSegments = 32, heightSegments = 1, openEnded = false, thetaStart = 0, thetaLength = Math.PI * 2) {\n    super(0, radius, height, radialSegments, heightSegments, openEnded, thetaStart, thetaLength);\n    this.type = \"ConeGeometry\";\n    this.parameters = {\n      radius,\n      height,\n      radialSegments,\n      heightSegments,\n      openEnded,\n      thetaStart,\n      thetaLength\n    };\n  }\n  static fromJSON(data) {\n    return new _ConeGeometry(data.radius, data.height, data.radialSegments, data.heightSegments, data.openEnded, data.thetaStart, data.thetaLength);\n  }\n};\nvar PolyhedronGeometry = class _PolyhedronGeometry extends BufferGeometry {\n  constructor(vertices = [], indices = [], radius = 1, detail = 0) {\n    super();\n    this.type = \"PolyhedronGeometry\";\n    this.parameters = {\n      vertices,\n      indices,\n      radius,\n      detail\n    };\n    const vertexBuffer = [];\n    const uvBuffer = [];\n    subdivide(detail);\n    applyRadius(radius);\n    generateUVs();\n    this.setAttribute(\"position\", new Float32BufferAttribute(vertexBuffer, 3));\n    this.setAttribute(\"normal\", new Float32BufferAttribute(vertexBuffer.slice(), 3));\n    this.setAttribute(\"uv\", new Float32BufferAttribute(uvBuffer, 2));\n    if (detail === 0) {\n      this.computeVertexNormals();\n    } else {\n      this.normalizeNormals();\n    }\n    function subdivide(detail2) {\n      const a = new Vector3();\n      const b = new Vector3();\n      const c = new Vector3();\n      for (let i = 0; i < indices.length; i += 3) {\n        getVertexByIndex(indices[i + 0], a);\n        getVertexByIndex(indices[i + 1], b);\n        getVertexByIndex(indices[i + 2], c);\n        subdivideFace(a, b, c, detail2);\n      }\n    }\n    function subdivideFace(a, b, c, detail2) {\n      const cols = detail2 + 1;\n      const v = [];\n      for (let i = 0; i <= cols; i++) {\n        v[i] = [];\n        const aj = a.clone().lerp(c, i / cols);\n        const bj = b.clone().lerp(c, i / cols);\n        const rows = cols - i;\n        for (let j = 0; j <= rows; j++) {\n          if (j === 0 && i === cols) {\n            v[i][j] = aj;\n          } else {\n            v[i][j] = aj.clone().lerp(bj, j / rows);\n          }\n        }\n      }\n      for (let i = 0; i < cols; i++) {\n        for (let j = 0; j < 2 * (cols - i) - 1; j++) {\n          const k = Math.floor(j / 2);\n          if (j % 2 === 0) {\n            pushVertex(v[i][k + 1]);\n            pushVertex(v[i + 1][k]);\n            pushVertex(v[i][k]);\n          } else {\n            pushVertex(v[i][k + 1]);\n            pushVertex(v[i + 1][k + 1]);\n            pushVertex(v[i + 1][k]);\n          }\n        }\n      }\n    }\n    function applyRadius(radius2) {\n      const vertex2 = new Vector3();\n      for (let i = 0; i < vertexBuffer.length; i += 3) {\n        vertex2.x = vertexBuffer[i + 0];\n        vertex2.y = vertexBuffer[i + 1];\n        vertex2.z = vertexBuffer[i + 2];\n        vertex2.normalize().multiplyScalar(radius2);\n        vertexBuffer[i + 0] = vertex2.x;\n        vertexBuffer[i + 1] = vertex2.y;\n        vertexBuffer[i + 2] = vertex2.z;\n      }\n    }\n    function generateUVs() {\n      const vertex2 = new Vector3();\n      for (let i = 0; i < vertexBuffer.length; i += 3) {\n        vertex2.x = vertexBuffer[i + 0];\n        vertex2.y = vertexBuffer[i + 1];\n        vertex2.z = vertexBuffer[i + 2];\n        const u = azimuth(vertex2) / 2 / Math.PI + 0.5;\n        const v = inclination(vertex2) / Math.PI + 0.5;\n        uvBuffer.push(u, 1 - v);\n      }\n      correctUVs();\n      correctSeam();\n    }\n    function correctSeam() {\n      for (let i = 0; i < uvBuffer.length; i += 6) {\n        const x0 = uvBuffer[i + 0];\n        const x1 = uvBuffer[i + 2];\n        const x2 = uvBuffer[i + 4];\n        const max = Math.max(x0, x1, x2);\n        const min = Math.min(x0, x1, x2);\n        if (max > 0.9 && min < 0.1) {\n          if (x0 < 0.2) uvBuffer[i + 0] += 1;\n          if (x1 < 0.2) uvBuffer[i + 2] += 1;\n          if (x2 < 0.2) uvBuffer[i + 4] += 1;\n        }\n      }\n    }\n    function pushVertex(vertex2) {\n      vertexBuffer.push(vertex2.x, vertex2.y, vertex2.z);\n    }\n    function getVertexByIndex(index, vertex2) {\n      const stride = index * 3;\n      vertex2.x = vertices[stride + 0];\n      vertex2.y = vertices[stride + 1];\n      vertex2.z = vertices[stride + 2];\n    }\n    function correctUVs() {\n      const a = new Vector3();\n      const b = new Vector3();\n      const c = new Vector3();\n      const centroid = new Vector3();\n      const uvA = new Vector2();\n      const uvB = new Vector2();\n      const uvC = new Vector2();\n      for (let i = 0, j = 0; i < vertexBuffer.length; i += 9, j += 6) {\n        a.set(vertexBuffer[i + 0], vertexBuffer[i + 1], vertexBuffer[i + 2]);\n        b.set(vertexBuffer[i + 3], vertexBuffer[i + 4], vertexBuffer[i + 5]);\n        c.set(vertexBuffer[i + 6], vertexBuffer[i + 7], vertexBuffer[i + 8]);\n        uvA.set(uvBuffer[j + 0], uvBuffer[j + 1]);\n        uvB.set(uvBuffer[j + 2], uvBuffer[j + 3]);\n        uvC.set(uvBuffer[j + 4], uvBuffer[j + 5]);\n        centroid.copy(a).add(b).add(c).divideScalar(3);\n        const azi = azimuth(centroid);\n        correctUV(uvA, j + 0, a, azi);\n        correctUV(uvB, j + 2, b, azi);\n        correctUV(uvC, j + 4, c, azi);\n      }\n    }\n    function correctUV(uv, stride, vector, azimuth2) {\n      if (azimuth2 < 0 && uv.x === 1) {\n        uvBuffer[stride] = uv.x - 1;\n      }\n      if (vector.x === 0 && vector.z === 0) {\n        uvBuffer[stride] = azimuth2 / 2 / Math.PI + 0.5;\n      }\n    }\n    function azimuth(vector) {\n      return Math.atan2(vector.z, -vector.x);\n    }\n    function inclination(vector) {\n      return Math.atan2(-vector.y, Math.sqrt(vector.x * vector.x + vector.z * vector.z));\n    }\n  }\n  copy(source) {\n    super.copy(source);\n    this.parameters = Object.assign({}, source.parameters);\n    return this;\n  }\n  static fromJSON(data) {\n    return new _PolyhedronGeometry(data.vertices, data.indices, data.radius, data.details);\n  }\n};\nvar DodecahedronGeometry = class _DodecahedronGeometry extends PolyhedronGeometry {\n  constructor(radius = 1, detail = 0) {\n    const t = (1 + Math.sqrt(5)) / 2;\n    const r = 1 / t;\n    const vertices = [\n      // (±1, ±1, ±1)\n      -1,\n      -1,\n      -1,\n      -1,\n      -1,\n      1,\n      -1,\n      1,\n      -1,\n      -1,\n      1,\n      1,\n      1,\n      -1,\n      -1,\n      1,\n      -1,\n      1,\n      1,\n      1,\n      -1,\n      1,\n      1,\n      1,\n      // (0, ±1/φ, ±φ)\n      0,\n      -r,\n      -t,\n      0,\n      -r,\n      t,\n      0,\n      r,\n      -t,\n      0,\n      r,\n      t,\n      // (±1/φ, ±φ, 0)\n      -r,\n      -t,\n      0,\n      -r,\n      t,\n      0,\n      r,\n      -t,\n      0,\n      r,\n      t,\n      0,\n      // (±φ, 0, ±1/φ)\n      -t,\n      0,\n      -r,\n      t,\n      0,\n      -r,\n      -t,\n      0,\n      r,\n      t,\n      0,\n      r\n    ];\n    const indices = [\n      3,\n      11,\n      7,\n      3,\n      7,\n      15,\n      3,\n      15,\n      13,\n      7,\n      19,\n      17,\n      7,\n      17,\n      6,\n      7,\n      6,\n      15,\n      17,\n      4,\n      8,\n      17,\n      8,\n      10,\n      17,\n      10,\n      6,\n      8,\n      0,\n      16,\n      8,\n      16,\n      2,\n      8,\n      2,\n      10,\n      0,\n      12,\n      1,\n      0,\n      1,\n      18,\n      0,\n      18,\n      16,\n      6,\n      10,\n      2,\n      6,\n      2,\n      13,\n      6,\n      13,\n      15,\n      2,\n      16,\n      18,\n      2,\n      18,\n      3,\n      2,\n      3,\n      13,\n      18,\n      1,\n      9,\n      18,\n      9,\n      11,\n      18,\n      11,\n      3,\n      4,\n      14,\n      12,\n      4,\n      12,\n      0,\n      4,\n      0,\n      8,\n      11,\n      9,\n      5,\n      11,\n      5,\n      19,\n      11,\n      19,\n      7,\n      19,\n      5,\n      14,\n      19,\n      14,\n      4,\n      19,\n      4,\n      17,\n      1,\n      12,\n      14,\n      1,\n      14,\n      5,\n      1,\n      5,\n      9\n    ];\n    super(vertices, indices, radius, detail);\n    this.type = \"DodecahedronGeometry\";\n    this.parameters = {\n      radius,\n      detail\n    };\n  }\n  static fromJSON(data) {\n    return new _DodecahedronGeometry(data.radius, data.detail);\n  }\n};\nvar _v0 = /* @__PURE__ */ new Vector3();\nvar _v1$1 = /* @__PURE__ */ new Vector3();\nvar _normal = /* @__PURE__ */ new Vector3();\nvar _triangle = /* @__PURE__ */ new Triangle();\nvar EdgesGeometry = class extends BufferGeometry {\n  constructor(geometry = null, thresholdAngle = 1) {\n    super();\n    this.type = \"EdgesGeometry\";\n    this.parameters = {\n      geometry,\n      thresholdAngle\n    };\n    if (geometry !== null) {\n      const precisionPoints = 4;\n      const precision = Math.pow(10, precisionPoints);\n      const thresholdDot = Math.cos(DEG2RAD * thresholdAngle);\n      const indexAttr = geometry.getIndex();\n      const positionAttr = geometry.getAttribute(\"position\");\n      const indexCount = indexAttr ? indexAttr.count : positionAttr.count;\n      const indexArr = [0, 0, 0];\n      const vertKeys = [\"a\", \"b\", \"c\"];\n      const hashes = new Array(3);\n      const edgeData = {};\n      const vertices = [];\n      for (let i = 0; i < indexCount; i += 3) {\n        if (indexAttr) {\n          indexArr[0] = indexAttr.getX(i);\n          indexArr[1] = indexAttr.getX(i + 1);\n          indexArr[2] = indexAttr.getX(i + 2);\n        } else {\n          indexArr[0] = i;\n          indexArr[1] = i + 1;\n          indexArr[2] = i + 2;\n        }\n        const { a, b, c } = _triangle;\n        a.fromBufferAttribute(positionAttr, indexArr[0]);\n        b.fromBufferAttribute(positionAttr, indexArr[1]);\n        c.fromBufferAttribute(positionAttr, indexArr[2]);\n        _triangle.getNormal(_normal);\n        hashes[0] = `${Math.round(a.x * precision)},${Math.round(a.y * precision)},${Math.round(a.z * precision)}`;\n        hashes[1] = `${Math.round(b.x * precision)},${Math.round(b.y * precision)},${Math.round(b.z * precision)}`;\n        hashes[2] = `${Math.round(c.x * precision)},${Math.round(c.y * precision)},${Math.round(c.z * precision)}`;\n        if (hashes[0] === hashes[1] || hashes[1] === hashes[2] || hashes[2] === hashes[0]) {\n          continue;\n        }\n        for (let j = 0; j < 3; j++) {\n          const jNext = (j + 1) % 3;\n          const vecHash0 = hashes[j];\n          const vecHash1 = hashes[jNext];\n          const v0 = _triangle[vertKeys[j]];\n          const v1 = _triangle[vertKeys[jNext]];\n          const hash = `${vecHash0}_${vecHash1}`;\n          const reverseHash = `${vecHash1}_${vecHash0}`;\n          if (reverseHash in edgeData && edgeData[reverseHash]) {\n            if (_normal.dot(edgeData[reverseHash].normal) <= thresholdDot) {\n              vertices.push(v0.x, v0.y, v0.z);\n              vertices.push(v1.x, v1.y, v1.z);\n            }\n            edgeData[reverseHash] = null;\n          } else if (!(hash in edgeData)) {\n            edgeData[hash] = {\n              index0: indexArr[j],\n              index1: indexArr[jNext],\n              normal: _normal.clone()\n            };\n          }\n        }\n      }\n      for (const key in edgeData) {\n        if (edgeData[key]) {\n          const { index0, index1 } = edgeData[key];\n          _v0.fromBufferAttribute(positionAttr, index0);\n          _v1$1.fromBufferAttribute(positionAttr, index1);\n          vertices.push(_v0.x, _v0.y, _v0.z);\n          vertices.push(_v1$1.x, _v1$1.y, _v1$1.z);\n        }\n      }\n      this.setAttribute(\"position\", new Float32BufferAttribute(vertices, 3));\n    }\n  }\n  copy(source) {\n    super.copy(source);\n    this.parameters = Object.assign({}, source.parameters);\n    return this;\n  }\n};\nvar Shape = class extends Path {\n  constructor(points) {\n    super(points);\n    this.uuid = generateUUID();\n    this.type = \"Shape\";\n    this.holes = [];\n  }\n  getPointsHoles(divisions) {\n    const holesPts = [];\n    for (let i = 0, l = this.holes.length; i < l; i++) {\n      holesPts[i] = this.holes[i].getPoints(divisions);\n    }\n    return holesPts;\n  }\n  // get points of shape and holes (keypoints based on segments parameter)\n  extractPoints(divisions) {\n    return {\n      shape: this.getPoints(divisions),\n      holes: this.getPointsHoles(divisions)\n    };\n  }\n  copy(source) {\n    super.copy(source);\n    this.holes = [];\n    for (let i = 0, l = source.holes.length; i < l; i++) {\n      const hole = source.holes[i];\n      this.holes.push(hole.clone());\n    }\n    return this;\n  }\n  toJSON() {\n    const data = super.toJSON();\n    data.uuid = this.uuid;\n    data.holes = [];\n    for (let i = 0, l = this.holes.length; i < l; i++) {\n      const hole = this.holes[i];\n      data.holes.push(hole.toJSON());\n    }\n    return data;\n  }\n  fromJSON(json) {\n    super.fromJSON(json);\n    this.uuid = json.uuid;\n    this.holes = [];\n    for (let i = 0, l = json.holes.length; i < l; i++) {\n      const hole = json.holes[i];\n      this.holes.push(new Path().fromJSON(hole));\n    }\n    return this;\n  }\n};\nvar Earcut = {\n  triangulate: function(data, holeIndices, dim = 2) {\n    const hasHoles = holeIndices && holeIndices.length;\n    const outerLen = hasHoles ? holeIndices[0] * dim : data.length;\n    let outerNode = linkedList(data, 0, outerLen, dim, true);\n    const triangles = [];\n    if (!outerNode || outerNode.next === outerNode.prev) return triangles;\n    let minX, minY, maxX, maxY, x, y, invSize;\n    if (hasHoles) outerNode = eliminateHoles(data, holeIndices, outerNode, dim);\n    if (data.length > 80 * dim) {\n      minX = maxX = data[0];\n      minY = maxY = data[1];\n      for (let i = dim; i < outerLen; i += dim) {\n        x = data[i];\n        y = data[i + 1];\n        if (x < minX) minX = x;\n        if (y < minY) minY = y;\n        if (x > maxX) maxX = x;\n        if (y > maxY) maxY = y;\n      }\n      invSize = Math.max(maxX - minX, maxY - minY);\n      invSize = invSize !== 0 ? 32767 / invSize : 0;\n    }\n    earcutLinked(outerNode, triangles, dim, minX, minY, invSize, 0);\n    return triangles;\n  }\n};\nfunction linkedList(data, start, end, dim, clockwise) {\n  let i, last;\n  if (clockwise === signedArea(data, start, end, dim) > 0) {\n    for (i = start; i < end; i += dim) last = insertNode(i, data[i], data[i + 1], last);\n  } else {\n    for (i = end - dim; i >= start; i -= dim) last = insertNode(i, data[i], data[i + 1], last);\n  }\n  if (last && equals(last, last.next)) {\n    removeNode(last);\n    last = last.next;\n  }\n  return last;\n}\nfunction filterPoints(start, end) {\n  if (!start) return start;\n  if (!end) end = start;\n  let p = start, again;\n  do {\n    again = false;\n    if (!p.steiner && (equals(p, p.next) || area(p.prev, p, p.next) === 0)) {\n      removeNode(p);\n      p = end = p.prev;\n      if (p === p.next) break;\n      again = true;\n    } else {\n      p = p.next;\n    }\n  } while (again || p !== end);\n  return end;\n}\nfunction earcutLinked(ear, triangles, dim, minX, minY, invSize, pass) {\n  if (!ear) return;\n  if (!pass && invSize) indexCurve(ear, minX, minY, invSize);\n  let stop = ear, prev, next;\n  while (ear.prev !== ear.next) {\n    prev = ear.prev;\n    next = ear.next;\n    if (invSize ? isEarHashed(ear, minX, minY, invSize) : isEar(ear)) {\n      triangles.push(prev.i / dim | 0);\n      triangles.push(ear.i / dim | 0);\n      triangles.push(next.i / dim | 0);\n      removeNode(ear);\n      ear = next.next;\n      stop = next.next;\n      continue;\n    }\n    ear = next;\n    if (ear === stop) {\n      if (!pass) {\n        earcutLinked(filterPoints(ear), triangles, dim, minX, minY, invSize, 1);\n      } else if (pass === 1) {\n        ear = cureLocalIntersections(filterPoints(ear), triangles, dim);\n        earcutLinked(ear, triangles, dim, minX, minY, invSize, 2);\n      } else if (pass === 2) {\n        splitEarcut(ear, triangles, dim, minX, minY, invSize);\n      }\n      break;\n    }\n  }\n}\nfunction isEar(ear) {\n  const a = ear.prev, b = ear, c = ear.next;\n  if (area(a, b, c) >= 0) return false;\n  const ax = a.x, bx = b.x, cx = c.x, ay = a.y, by = b.y, cy = c.y;\n  const x0 = ax < bx ? ax < cx ? ax : cx : bx < cx ? bx : cx, y0 = ay < by ? ay < cy ? ay : cy : by < cy ? by : cy, x1 = ax > bx ? ax > cx ? ax : cx : bx > cx ? bx : cx, y1 = ay > by ? ay > cy ? ay : cy : by > cy ? by : cy;\n  let p = c.next;\n  while (p !== a) {\n    if (p.x >= x0 && p.x <= x1 && p.y >= y0 && p.y <= y1 && pointInTriangle(ax, ay, bx, by, cx, cy, p.x, p.y) && area(p.prev, p, p.next) >= 0) return false;\n    p = p.next;\n  }\n  return true;\n}\nfunction isEarHashed(ear, minX, minY, invSize) {\n  const a = ear.prev, b = ear, c = ear.next;\n  if (area(a, b, c) >= 0) return false;\n  const ax = a.x, bx = b.x, cx = c.x, ay = a.y, by = b.y, cy = c.y;\n  const x0 = ax < bx ? ax < cx ? ax : cx : bx < cx ? bx : cx, y0 = ay < by ? ay < cy ? ay : cy : by < cy ? by : cy, x1 = ax > bx ? ax > cx ? ax : cx : bx > cx ? bx : cx, y1 = ay > by ? ay > cy ? ay : cy : by > cy ? by : cy;\n  const minZ = zOrder(x0, y0, minX, minY, invSize), maxZ = zOrder(x1, y1, minX, minY, invSize);\n  let p = ear.prevZ, n = ear.nextZ;\n  while (p && p.z >= minZ && n && n.z <= maxZ) {\n    if (p.x >= x0 && p.x <= x1 && p.y >= y0 && p.y <= y1 && p !== a && p !== c && pointInTriangle(ax, ay, bx, by, cx, cy, p.x, p.y) && area(p.prev, p, p.next) >= 0) return false;\n    p = p.prevZ;\n    if (n.x >= x0 && n.x <= x1 && n.y >= y0 && n.y <= y1 && n !== a && n !== c && pointInTriangle(ax, ay, bx, by, cx, cy, n.x, n.y) && area(n.prev, n, n.next) >= 0) return false;\n    n = n.nextZ;\n  }\n  while (p && p.z >= minZ) {\n    if (p.x >= x0 && p.x <= x1 && p.y >= y0 && p.y <= y1 && p !== a && p !== c && pointInTriangle(ax, ay, bx, by, cx, cy, p.x, p.y) && area(p.prev, p, p.next) >= 0) return false;\n    p = p.prevZ;\n  }\n  while (n && n.z <= maxZ) {\n    if (n.x >= x0 && n.x <= x1 && n.y >= y0 && n.y <= y1 && n !== a && n !== c && pointInTriangle(ax, ay, bx, by, cx, cy, n.x, n.y) && area(n.prev, n, n.next) >= 0) return false;\n    n = n.nextZ;\n  }\n  return true;\n}\nfunction cureLocalIntersections(start, triangles, dim) {\n  let p = start;\n  do {\n    const a = p.prev, b = p.next.next;\n    if (!equals(a, b) && intersects(a, p, p.next, b) && locallyInside(a, b) && locallyInside(b, a)) {\n      triangles.push(a.i / dim | 0);\n      triangles.push(p.i / dim | 0);\n      triangles.push(b.i / dim | 0);\n      removeNode(p);\n      removeNode(p.next);\n      p = start = b;\n    }\n    p = p.next;\n  } while (p !== start);\n  return filterPoints(p);\n}\nfunction splitEarcut(start, triangles, dim, minX, minY, invSize) {\n  let a = start;\n  do {\n    let b = a.next.next;\n    while (b !== a.prev) {\n      if (a.i !== b.i && isValidDiagonal(a, b)) {\n        let c = splitPolygon(a, b);\n        a = filterPoints(a, a.next);\n        c = filterPoints(c, c.next);\n        earcutLinked(a, triangles, dim, minX, minY, invSize, 0);\n        earcutLinked(c, triangles, dim, minX, minY, invSize, 0);\n        return;\n      }\n      b = b.next;\n    }\n    a = a.next;\n  } while (a !== start);\n}\nfunction eliminateHoles(data, holeIndices, outerNode, dim) {\n  const queue = [];\n  let i, len, start, end, list;\n  for (i = 0, len = holeIndices.length; i < len; i++) {\n    start = holeIndices[i] * dim;\n    end = i < len - 1 ? holeIndices[i + 1] * dim : data.length;\n    list = linkedList(data, start, end, dim, false);\n    if (list === list.next) list.steiner = true;\n    queue.push(getLeftmost(list));\n  }\n  queue.sort(compareX);\n  for (i = 0; i < queue.length; i++) {\n    outerNode = eliminateHole(queue[i], outerNode);\n  }\n  return outerNode;\n}\nfunction compareX(a, b) {\n  return a.x - b.x;\n}\nfunction eliminateHole(hole, outerNode) {\n  const bridge = findHoleBridge(hole, outerNode);\n  if (!bridge) {\n    return outerNode;\n  }\n  const bridgeReverse = splitPolygon(bridge, hole);\n  filterPoints(bridgeReverse, bridgeReverse.next);\n  return filterPoints(bridge, bridge.next);\n}\nfunction findHoleBridge(hole, outerNode) {\n  let p = outerNode, qx = -Infinity, m;\n  const hx = hole.x, hy = hole.y;\n  do {\n    if (hy <= p.y && hy >= p.next.y && p.next.y !== p.y) {\n      const x = p.x + (hy - p.y) * (p.next.x - p.x) / (p.next.y - p.y);\n      if (x <= hx && x > qx) {\n        qx = x;\n        m = p.x < p.next.x ? p : p.next;\n        if (x === hx) return m;\n      }\n    }\n    p = p.next;\n  } while (p !== outerNode);\n  if (!m) return null;\n  const stop = m, mx = m.x, my = m.y;\n  let tanMin = Infinity, tan;\n  p = m;\n  do {\n    if (hx >= p.x && p.x >= mx && hx !== p.x && pointInTriangle(hy < my ? hx : qx, hy, mx, my, hy < my ? qx : hx, hy, p.x, p.y)) {\n      tan = Math.abs(hy - p.y) / (hx - p.x);\n      if (locallyInside(p, hole) && (tan < tanMin || tan === tanMin && (p.x > m.x || p.x === m.x && sectorContainsSector(m, p)))) {\n        m = p;\n        tanMin = tan;\n      }\n    }\n    p = p.next;\n  } while (p !== stop);\n  return m;\n}\nfunction sectorContainsSector(m, p) {\n  return area(m.prev, m, p.prev) < 0 && area(p.next, m, m.next) < 0;\n}\nfunction indexCurve(start, minX, minY, invSize) {\n  let p = start;\n  do {\n    if (p.z === 0) p.z = zOrder(p.x, p.y, minX, minY, invSize);\n    p.prevZ = p.prev;\n    p.nextZ = p.next;\n    p = p.next;\n  } while (p !== start);\n  p.prevZ.nextZ = null;\n  p.prevZ = null;\n  sortLinked(p);\n}\nfunction sortLinked(list) {\n  let i, p, q, e, tail, numMerges, pSize, qSize, inSize = 1;\n  do {\n    p = list;\n    list = null;\n    tail = null;\n    numMerges = 0;\n    while (p) {\n      numMerges++;\n      q = p;\n      pSize = 0;\n      for (i = 0; i < inSize; i++) {\n        pSize++;\n        q = q.nextZ;\n        if (!q) break;\n      }\n      qSize = inSize;\n      while (pSize > 0 || qSize > 0 && q) {\n        if (pSize !== 0 && (qSize === 0 || !q || p.z <= q.z)) {\n          e = p;\n          p = p.nextZ;\n          pSize--;\n        } else {\n          e = q;\n          q = q.nextZ;\n          qSize--;\n        }\n        if (tail) tail.nextZ = e;\n        else list = e;\n        e.prevZ = tail;\n        tail = e;\n      }\n      p = q;\n    }\n    tail.nextZ = null;\n    inSize *= 2;\n  } while (numMerges > 1);\n  return list;\n}\nfunction zOrder(x, y, minX, minY, invSize) {\n  x = (x - minX) * invSize | 0;\n  y = (y - minY) * invSize | 0;\n  x = (x | x << 8) & 16711935;\n  x = (x | x << 4) & 252645135;\n  x = (x | x << 2) & 858993459;\n  x = (x | x << 1) & 1431655765;\n  y = (y | y << 8) & 16711935;\n  y = (y | y << 4) & 252645135;\n  y = (y | y << 2) & 858993459;\n  y = (y | y << 1) & 1431655765;\n  return x | y << 1;\n}\nfunction getLeftmost(start) {\n  let p = start, leftmost = start;\n  do {\n    if (p.x < leftmost.x || p.x === leftmost.x && p.y < leftmost.y) leftmost = p;\n    p = p.next;\n  } while (p !== start);\n  return leftmost;\n}\nfunction pointInTriangle(ax, ay, bx, by, cx, cy, px2, py2) {\n  return (cx - px2) * (ay - py2) >= (ax - px2) * (cy - py2) && (ax - px2) * (by - py2) >= (bx - px2) * (ay - py2) && (bx - px2) * (cy - py2) >= (cx - px2) * (by - py2);\n}\nfunction isValidDiagonal(a, b) {\n  return a.next.i !== b.i && a.prev.i !== b.i && !intersectsPolygon(a, b) && // dones't intersect other edges\n  (locallyInside(a, b) && locallyInside(b, a) && middleInside(a, b) && // locally visible\n  (area(a.prev, a, b.prev) || area(a, b.prev, b)) || // does not create opposite-facing sectors\n  equals(a, b) && area(a.prev, a, a.next) > 0 && area(b.prev, b, b.next) > 0);\n}\nfunction area(p, q, r) {\n  return (q.y - p.y) * (r.x - q.x) - (q.x - p.x) * (r.y - q.y);\n}\nfunction equals(p1, p2) {\n  return p1.x === p2.x && p1.y === p2.y;\n}\nfunction intersects(p1, q1, p2, q2) {\n  const o1 = sign(area(p1, q1, p2));\n  const o2 = sign(area(p1, q1, q2));\n  const o3 = sign(area(p2, q2, p1));\n  const o4 = sign(area(p2, q2, q1));\n  if (o1 !== o2 && o3 !== o4) return true;\n  if (o1 === 0 && onSegment(p1, p2, q1)) return true;\n  if (o2 === 0 && onSegment(p1, q2, q1)) return true;\n  if (o3 === 0 && onSegment(p2, p1, q2)) return true;\n  if (o4 === 0 && onSegment(p2, q1, q2)) return true;\n  return false;\n}\nfunction onSegment(p, q, r) {\n  return q.x <= Math.max(p.x, r.x) && q.x >= Math.min(p.x, r.x) && q.y <= Math.max(p.y, r.y) && q.y >= Math.min(p.y, r.y);\n}\nfunction sign(num) {\n  return num > 0 ? 1 : num < 0 ? -1 : 0;\n}\nfunction intersectsPolygon(a, b) {\n  let p = a;\n  do {\n    if (p.i !== a.i && p.next.i !== a.i && p.i !== b.i && p.next.i !== b.i && intersects(p, p.next, a, b)) return true;\n    p = p.next;\n  } while (p !== a);\n  return false;\n}\nfunction locallyInside(a, b) {\n  return area(a.prev, a, a.next) < 0 ? area(a, b, a.next) >= 0 && area(a, a.prev, b) >= 0 : area(a, b, a.prev) < 0 || area(a, a.next, b) < 0;\n}\nfunction middleInside(a, b) {\n  let p = a, inside = false;\n  const px2 = (a.x + b.x) / 2, py2 = (a.y + b.y) / 2;\n  do {\n    if (p.y > py2 !== p.next.y > py2 && p.next.y !== p.y && px2 < (p.next.x - p.x) * (py2 - p.y) / (p.next.y - p.y) + p.x)\n      inside = !inside;\n    p = p.next;\n  } while (p !== a);\n  return inside;\n}\nfunction splitPolygon(a, b) {\n  const a2 = new Node(a.i, a.x, a.y), b2 = new Node(b.i, b.x, b.y), an = a.next, bp = b.prev;\n  a.next = b;\n  b.prev = a;\n  a2.next = an;\n  an.prev = a2;\n  b2.next = a2;\n  a2.prev = b2;\n  bp.next = b2;\n  b2.prev = bp;\n  return b2;\n}\nfunction insertNode(i, x, y, last) {\n  const p = new Node(i, x, y);\n  if (!last) {\n    p.prev = p;\n    p.next = p;\n  } else {\n    p.next = last.next;\n    p.prev = last;\n    last.next.prev = p;\n    last.next = p;\n  }\n  return p;\n}\nfunction removeNode(p) {\n  p.next.prev = p.prev;\n  p.prev.next = p.next;\n  if (p.prevZ) p.prevZ.nextZ = p.nextZ;\n  if (p.nextZ) p.nextZ.prevZ = p.prevZ;\n}\nfunction Node(i, x, y) {\n  this.i = i;\n  this.x = x;\n  this.y = y;\n  this.prev = null;\n  this.next = null;\n  this.z = 0;\n  this.prevZ = null;\n  this.nextZ = null;\n  this.steiner = false;\n}\nfunction signedArea(data, start, end, dim) {\n  let sum = 0;\n  for (let i = start, j = end - dim; i < end; i += dim) {\n    sum += (data[j] - data[i]) * (data[i + 1] + data[j + 1]);\n    j = i;\n  }\n  return sum;\n}\nvar ShapeUtils = class _ShapeUtils {\n  // calculate area of the contour polygon\n  static area(contour) {\n    const n = contour.length;\n    let a = 0;\n    for (let p = n - 1, q = 0; q < n; p = q++) {\n      a += contour[p].x * contour[q].y - contour[q].x * contour[p].y;\n    }\n    return a * 0.5;\n  }\n  static isClockWise(pts) {\n    return _ShapeUtils.area(pts) < 0;\n  }\n  static triangulateShape(contour, holes) {\n    const vertices = [];\n    const holeIndices = [];\n    const faces = [];\n    removeDupEndPts(contour);\n    addContour(vertices, contour);\n    let holeIndex = contour.length;\n    holes.forEach(removeDupEndPts);\n    for (let i = 0; i < holes.length; i++) {\n      holeIndices.push(holeIndex);\n      holeIndex += holes[i].length;\n      addContour(vertices, holes[i]);\n    }\n    const triangles = Earcut.triangulate(vertices, holeIndices);\n    for (let i = 0; i < triangles.length; i += 3) {\n      faces.push(triangles.slice(i, i + 3));\n    }\n    return faces;\n  }\n};\nfunction removeDupEndPts(points) {\n  const l = points.length;\n  if (l > 2 && points[l - 1].equals(points[0])) {\n    points.pop();\n  }\n}\nfunction addContour(vertices, contour) {\n  for (let i = 0; i < contour.length; i++) {\n    vertices.push(contour[i].x);\n    vertices.push(contour[i].y);\n  }\n}\nvar ExtrudeGeometry = class _ExtrudeGeometry extends BufferGeometry {\n  constructor(shapes = new Shape([new Vector2(0.5, 0.5), new Vector2(-0.5, 0.5), new Vector2(-0.5, -0.5), new Vector2(0.5, -0.5)]), options = {}) {\n    super();\n    this.type = \"ExtrudeGeometry\";\n    this.parameters = {\n      shapes,\n      options\n    };\n    shapes = Array.isArray(shapes) ? shapes : [shapes];\n    const scope = this;\n    const verticesArray = [];\n    const uvArray = [];\n    for (let i = 0, l = shapes.length; i < l; i++) {\n      const shape = shapes[i];\n      addShape(shape);\n    }\n    this.setAttribute(\"position\", new Float32BufferAttribute(verticesArray, 3));\n    this.setAttribute(\"uv\", new Float32BufferAttribute(uvArray, 2));\n    this.computeVertexNormals();\n    function addShape(shape) {\n      const placeholder = [];\n      const curveSegments = options.curveSegments !== void 0 ? options.curveSegments : 12;\n      const steps = options.steps !== void 0 ? options.steps : 1;\n      const depth = options.depth !== void 0 ? options.depth : 1;\n      let bevelEnabled = options.bevelEnabled !== void 0 ? options.bevelEnabled : true;\n      let bevelThickness = options.bevelThickness !== void 0 ? options.bevelThickness : 0.2;\n      let bevelSize = options.bevelSize !== void 0 ? options.bevelSize : bevelThickness - 0.1;\n      let bevelOffset = options.bevelOffset !== void 0 ? options.bevelOffset : 0;\n      let bevelSegments = options.bevelSegments !== void 0 ? options.bevelSegments : 3;\n      const extrudePath = options.extrudePath;\n      const uvgen = options.UVGenerator !== void 0 ? options.UVGenerator : WorldUVGenerator;\n      let extrudePts, extrudeByPath = false;\n      let splineTube, binormal, normal, position2;\n      if (extrudePath) {\n        extrudePts = extrudePath.getSpacedPoints(steps);\n        extrudeByPath = true;\n        bevelEnabled = false;\n        splineTube = extrudePath.computeFrenetFrames(steps, false);\n        binormal = new Vector3();\n        normal = new Vector3();\n        position2 = new Vector3();\n      }\n      if (!bevelEnabled) {\n        bevelSegments = 0;\n        bevelThickness = 0;\n        bevelSize = 0;\n        bevelOffset = 0;\n      }\n      const shapePoints = shape.extractPoints(curveSegments);\n      let vertices = shapePoints.shape;\n      const holes = shapePoints.holes;\n      const reverse = !ShapeUtils.isClockWise(vertices);\n      if (reverse) {\n        vertices = vertices.reverse();\n        for (let h = 0, hl = holes.length; h < hl; h++) {\n          const ahole = holes[h];\n          if (ShapeUtils.isClockWise(ahole)) {\n            holes[h] = ahole.reverse();\n          }\n        }\n      }\n      const faces = ShapeUtils.triangulateShape(vertices, holes);\n      const contour = vertices;\n      for (let h = 0, hl = holes.length; h < hl; h++) {\n        const ahole = holes[h];\n        vertices = vertices.concat(ahole);\n      }\n      function scalePt2(pt, vec, size) {\n        if (!vec) console.error(\"THREE.ExtrudeGeometry: vec does not exist\");\n        return pt.clone().addScaledVector(vec, size);\n      }\n      const vlen = vertices.length, flen = faces.length;\n      function getBevelVec(inPt, inPrev, inNext) {\n        let v_trans_x, v_trans_y, shrink_by;\n        const v_prev_x = inPt.x - inPrev.x, v_prev_y = inPt.y - inPrev.y;\n        const v_next_x = inNext.x - inPt.x, v_next_y = inNext.y - inPt.y;\n        const v_prev_lensq = v_prev_x * v_prev_x + v_prev_y * v_prev_y;\n        const collinear0 = v_prev_x * v_next_y - v_prev_y * v_next_x;\n        if (Math.abs(collinear0) > Number.EPSILON) {\n          const v_prev_len = Math.sqrt(v_prev_lensq);\n          const v_next_len = Math.sqrt(v_next_x * v_next_x + v_next_y * v_next_y);\n          const ptPrevShift_x = inPrev.x - v_prev_y / v_prev_len;\n          const ptPrevShift_y = inPrev.y + v_prev_x / v_prev_len;\n          const ptNextShift_x = inNext.x - v_next_y / v_next_len;\n          const ptNextShift_y = inNext.y + v_next_x / v_next_len;\n          const sf = ((ptNextShift_x - ptPrevShift_x) * v_next_y - (ptNextShift_y - ptPrevShift_y) * v_next_x) / (v_prev_x * v_next_y - v_prev_y * v_next_x);\n          v_trans_x = ptPrevShift_x + v_prev_x * sf - inPt.x;\n          v_trans_y = ptPrevShift_y + v_prev_y * sf - inPt.y;\n          const v_trans_lensq = v_trans_x * v_trans_x + v_trans_y * v_trans_y;\n          if (v_trans_lensq <= 2) {\n            return new Vector2(v_trans_x, v_trans_y);\n          } else {\n            shrink_by = Math.sqrt(v_trans_lensq / 2);\n          }\n        } else {\n          let direction_eq = false;\n          if (v_prev_x > Number.EPSILON) {\n            if (v_next_x > Number.EPSILON) {\n              direction_eq = true;\n            }\n          } else {\n            if (v_prev_x < -Number.EPSILON) {\n              if (v_next_x < -Number.EPSILON) {\n                direction_eq = true;\n              }\n            } else {\n              if (Math.sign(v_prev_y) === Math.sign(v_next_y)) {\n                direction_eq = true;\n              }\n            }\n          }\n          if (direction_eq) {\n            v_trans_x = -v_prev_y;\n            v_trans_y = v_prev_x;\n            shrink_by = Math.sqrt(v_prev_lensq);\n          } else {\n            v_trans_x = v_prev_x;\n            v_trans_y = v_prev_y;\n            shrink_by = Math.sqrt(v_prev_lensq / 2);\n          }\n        }\n        return new Vector2(v_trans_x / shrink_by, v_trans_y / shrink_by);\n      }\n      const contourMovements = [];\n      for (let i = 0, il = contour.length, j = il - 1, k = i + 1; i < il; i++, j++, k++) {\n        if (j === il) j = 0;\n        if (k === il) k = 0;\n        contourMovements[i] = getBevelVec(contour[i], contour[j], contour[k]);\n      }\n      const holesMovements = [];\n      let oneHoleMovements, verticesMovements = contourMovements.concat();\n      for (let h = 0, hl = holes.length; h < hl; h++) {\n        const ahole = holes[h];\n        oneHoleMovements = [];\n        for (let i = 0, il = ahole.length, j = il - 1, k = i + 1; i < il; i++, j++, k++) {\n          if (j === il) j = 0;\n          if (k === il) k = 0;\n          oneHoleMovements[i] = getBevelVec(ahole[i], ahole[j], ahole[k]);\n        }\n        holesMovements.push(oneHoleMovements);\n        verticesMovements = verticesMovements.concat(oneHoleMovements);\n      }\n      for (let b = 0; b < bevelSegments; b++) {\n        const t = b / bevelSegments;\n        const z = bevelThickness * Math.cos(t * Math.PI / 2);\n        const bs2 = bevelSize * Math.sin(t * Math.PI / 2) + bevelOffset;\n        for (let i = 0, il = contour.length; i < il; i++) {\n          const vert = scalePt2(contour[i], contourMovements[i], bs2);\n          v(vert.x, vert.y, -z);\n        }\n        for (let h = 0, hl = holes.length; h < hl; h++) {\n          const ahole = holes[h];\n          oneHoleMovements = holesMovements[h];\n          for (let i = 0, il = ahole.length; i < il; i++) {\n            const vert = scalePt2(ahole[i], oneHoleMovements[i], bs2);\n            v(vert.x, vert.y, -z);\n          }\n        }\n      }\n      const bs = bevelSize + bevelOffset;\n      for (let i = 0; i < vlen; i++) {\n        const vert = bevelEnabled ? scalePt2(vertices[i], verticesMovements[i], bs) : vertices[i];\n        if (!extrudeByPath) {\n          v(vert.x, vert.y, 0);\n        } else {\n          normal.copy(splineTube.normals[0]).multiplyScalar(vert.x);\n          binormal.copy(splineTube.binormals[0]).multiplyScalar(vert.y);\n          position2.copy(extrudePts[0]).add(normal).add(binormal);\n          v(position2.x, position2.y, position2.z);\n        }\n      }\n      for (let s = 1; s <= steps; s++) {\n        for (let i = 0; i < vlen; i++) {\n          const vert = bevelEnabled ? scalePt2(vertices[i], verticesMovements[i], bs) : vertices[i];\n          if (!extrudeByPath) {\n            v(vert.x, vert.y, depth / steps * s);\n          } else {\n            normal.copy(splineTube.normals[s]).multiplyScalar(vert.x);\n            binormal.copy(splineTube.binormals[s]).multiplyScalar(vert.y);\n            position2.copy(extrudePts[s]).add(normal).add(binormal);\n            v(position2.x, position2.y, position2.z);\n          }\n        }\n      }\n      for (let b = bevelSegments - 1; b >= 0; b--) {\n        const t = b / bevelSegments;\n        const z = bevelThickness * Math.cos(t * Math.PI / 2);\n        const bs2 = bevelSize * Math.sin(t * Math.PI / 2) + bevelOffset;\n        for (let i = 0, il = contour.length; i < il; i++) {\n          const vert = scalePt2(contour[i], contourMovements[i], bs2);\n          v(vert.x, vert.y, depth + z);\n        }\n        for (let h = 0, hl = holes.length; h < hl; h++) {\n          const ahole = holes[h];\n          oneHoleMovements = holesMovements[h];\n          for (let i = 0, il = ahole.length; i < il; i++) {\n            const vert = scalePt2(ahole[i], oneHoleMovements[i], bs2);\n            if (!extrudeByPath) {\n              v(vert.x, vert.y, depth + z);\n            } else {\n              v(vert.x, vert.y + extrudePts[steps - 1].y, extrudePts[steps - 1].x + z);\n            }\n          }\n        }\n      }\n      buildLidFaces();\n      buildSideFaces();\n      function buildLidFaces() {\n        const start = verticesArray.length / 3;\n        if (bevelEnabled) {\n          let layer = 0;\n          let offset = vlen * layer;\n          for (let i = 0; i < flen; i++) {\n            const face = faces[i];\n            f3(face[2] + offset, face[1] + offset, face[0] + offset);\n          }\n          layer = steps + bevelSegments * 2;\n          offset = vlen * layer;\n          for (let i = 0; i < flen; i++) {\n            const face = faces[i];\n            f3(face[0] + offset, face[1] + offset, face[2] + offset);\n          }\n        } else {\n          for (let i = 0; i < flen; i++) {\n            const face = faces[i];\n            f3(face[2], face[1], face[0]);\n          }\n          for (let i = 0; i < flen; i++) {\n            const face = faces[i];\n            f3(face[0] + vlen * steps, face[1] + vlen * steps, face[2] + vlen * steps);\n          }\n        }\n        scope.addGroup(start, verticesArray.length / 3 - start, 0);\n      }\n      function buildSideFaces() {\n        const start = verticesArray.length / 3;\n        let layeroffset = 0;\n        sidewalls(contour, layeroffset);\n        layeroffset += contour.length;\n        for (let h = 0, hl = holes.length; h < hl; h++) {\n          const ahole = holes[h];\n          sidewalls(ahole, layeroffset);\n          layeroffset += ahole.length;\n        }\n        scope.addGroup(start, verticesArray.length / 3 - start, 1);\n      }\n      function sidewalls(contour2, layeroffset) {\n        let i = contour2.length;\n        while (--i >= 0) {\n          const j = i;\n          let k = i - 1;\n          if (k < 0) k = contour2.length - 1;\n          for (let s = 0, sl = steps + bevelSegments * 2; s < sl; s++) {\n            const slen1 = vlen * s;\n            const slen2 = vlen * (s + 1);\n            const a = layeroffset + j + slen1, b = layeroffset + k + slen1, c = layeroffset + k + slen2, d = layeroffset + j + slen2;\n            f4(a, b, c, d);\n          }\n        }\n      }\n      function v(x, y, z) {\n        placeholder.push(x);\n        placeholder.push(y);\n        placeholder.push(z);\n      }\n      function f3(a, b, c) {\n        addVertex(a);\n        addVertex(b);\n        addVertex(c);\n        const nextIndex = verticesArray.length / 3;\n        const uvs = uvgen.generateTopUV(scope, verticesArray, nextIndex - 3, nextIndex - 2, nextIndex - 1);\n        addUV(uvs[0]);\n        addUV(uvs[1]);\n        addUV(uvs[2]);\n      }\n      function f4(a, b, c, d) {\n        addVertex(a);\n        addVertex(b);\n        addVertex(d);\n        addVertex(b);\n        addVertex(c);\n        addVertex(d);\n        const nextIndex = verticesArray.length / 3;\n        const uvs = uvgen.generateSideWallUV(scope, verticesArray, nextIndex - 6, nextIndex - 3, nextIndex - 2, nextIndex - 1);\n        addUV(uvs[0]);\n        addUV(uvs[1]);\n        addUV(uvs[3]);\n        addUV(uvs[1]);\n        addUV(uvs[2]);\n        addUV(uvs[3]);\n      }\n      function addVertex(index) {\n        verticesArray.push(placeholder[index * 3 + 0]);\n        verticesArray.push(placeholder[index * 3 + 1]);\n        verticesArray.push(placeholder[index * 3 + 2]);\n      }\n      function addUV(vector2) {\n        uvArray.push(vector2.x);\n        uvArray.push(vector2.y);\n      }\n    }\n  }\n  copy(source) {\n    super.copy(source);\n    this.parameters = Object.assign({}, source.parameters);\n    return this;\n  }\n  toJSON() {\n    const data = super.toJSON();\n    const shapes = this.parameters.shapes;\n    const options = this.parameters.options;\n    return toJSON$1(shapes, options, data);\n  }\n  static fromJSON(data, shapes) {\n    const geometryShapes = [];\n    for (let j = 0, jl = data.shapes.length; j < jl; j++) {\n      const shape = shapes[data.shapes[j]];\n      geometryShapes.push(shape);\n    }\n    const extrudePath = data.options.extrudePath;\n    if (extrudePath !== void 0) {\n      data.options.extrudePath = new Curves[extrudePath.type]().fromJSON(extrudePath);\n    }\n    return new _ExtrudeGeometry(geometryShapes, data.options);\n  }\n};\nvar WorldUVGenerator = {\n  generateTopUV: function(geometry, vertices, indexA, indexB, indexC) {\n    const a_x = vertices[indexA * 3];\n    const a_y = vertices[indexA * 3 + 1];\n    const b_x = vertices[indexB * 3];\n    const b_y = vertices[indexB * 3 + 1];\n    const c_x = vertices[indexC * 3];\n    const c_y = vertices[indexC * 3 + 1];\n    return [\n      new Vector2(a_x, a_y),\n      new Vector2(b_x, b_y),\n      new Vector2(c_x, c_y)\n    ];\n  },\n  generateSideWallUV: function(geometry, vertices, indexA, indexB, indexC, indexD) {\n    const a_x = vertices[indexA * 3];\n    const a_y = vertices[indexA * 3 + 1];\n    const a_z = vertices[indexA * 3 + 2];\n    const b_x = vertices[indexB * 3];\n    const b_y = vertices[indexB * 3 + 1];\n    const b_z = vertices[indexB * 3 + 2];\n    const c_x = vertices[indexC * 3];\n    const c_y = vertices[indexC * 3 + 1];\n    const c_z = vertices[indexC * 3 + 2];\n    const d_x = vertices[indexD * 3];\n    const d_y = vertices[indexD * 3 + 1];\n    const d_z = vertices[indexD * 3 + 2];\n    if (Math.abs(a_y - b_y) < Math.abs(a_x - b_x)) {\n      return [\n        new Vector2(a_x, 1 - a_z),\n        new Vector2(b_x, 1 - b_z),\n        new Vector2(c_x, 1 - c_z),\n        new Vector2(d_x, 1 - d_z)\n      ];\n    } else {\n      return [\n        new Vector2(a_y, 1 - a_z),\n        new Vector2(b_y, 1 - b_z),\n        new Vector2(c_y, 1 - c_z),\n        new Vector2(d_y, 1 - d_z)\n      ];\n    }\n  }\n};\nfunction toJSON$1(shapes, options, data) {\n  data.shapes = [];\n  if (Array.isArray(shapes)) {\n    for (let i = 0, l = shapes.length; i < l; i++) {\n      const shape = shapes[i];\n      data.shapes.push(shape.uuid);\n    }\n  } else {\n    data.shapes.push(shapes.uuid);\n  }\n  data.options = Object.assign({}, options);\n  if (options.extrudePath !== void 0) data.options.extrudePath = options.extrudePath.toJSON();\n  return data;\n}\nvar IcosahedronGeometry = class _IcosahedronGeometry extends PolyhedronGeometry {\n  constructor(radius = 1, detail = 0) {\n    const t = (1 + Math.sqrt(5)) / 2;\n    const vertices = [\n      -1,\n      t,\n      0,\n      1,\n      t,\n      0,\n      -1,\n      -t,\n      0,\n      1,\n      -t,\n      0,\n      0,\n      -1,\n      t,\n      0,\n      1,\n      t,\n      0,\n      -1,\n      -t,\n      0,\n      1,\n      -t,\n      t,\n      0,\n      -1,\n      t,\n      0,\n      1,\n      -t,\n      0,\n      -1,\n      -t,\n      0,\n      1\n    ];\n    const indices = [\n      0,\n      11,\n      5,\n      0,\n      5,\n      1,\n      0,\n      1,\n      7,\n      0,\n      7,\n      10,\n      0,\n      10,\n      11,\n      1,\n      5,\n      9,\n      5,\n      11,\n      4,\n      11,\n      10,\n      2,\n      10,\n      7,\n      6,\n      7,\n      1,\n      8,\n      3,\n      9,\n      4,\n      3,\n      4,\n      2,\n      3,\n      2,\n      6,\n      3,\n      6,\n      8,\n      3,\n      8,\n      9,\n      4,\n      9,\n      5,\n      2,\n      4,\n      11,\n      6,\n      2,\n      10,\n      8,\n      6,\n      7,\n      9,\n      8,\n      1\n    ];\n    super(vertices, indices, radius, detail);\n    this.type = \"IcosahedronGeometry\";\n    this.parameters = {\n      radius,\n      detail\n    };\n  }\n  static fromJSON(data) {\n    return new _IcosahedronGeometry(data.radius, data.detail);\n  }\n};\nvar OctahedronGeometry = class _OctahedronGeometry extends PolyhedronGeometry {\n  constructor(radius = 1, detail = 0) {\n    const vertices = [\n      1,\n      0,\n      0,\n      -1,\n      0,\n      0,\n      0,\n      1,\n      0,\n      0,\n      -1,\n      0,\n      0,\n      0,\n      1,\n      0,\n      0,\n      -1\n    ];\n    const indices = [\n      0,\n      2,\n      4,\n      0,\n      4,\n      3,\n      0,\n      3,\n      5,\n      0,\n      5,\n      2,\n      1,\n      2,\n      5,\n      1,\n      5,\n      3,\n      1,\n      3,\n      4,\n      1,\n      4,\n      2\n    ];\n    super(vertices, indices, radius, detail);\n    this.type = \"OctahedronGeometry\";\n    this.parameters = {\n      radius,\n      detail\n    };\n  }\n  static fromJSON(data) {\n    return new _OctahedronGeometry(data.radius, data.detail);\n  }\n};\nvar RingGeometry = class _RingGeometry extends BufferGeometry {\n  constructor(innerRadius = 0.5, outerRadius = 1, thetaSegments = 32, phiSegments = 1, thetaStart = 0, thetaLength = Math.PI * 2) {\n    super();\n    this.type = \"RingGeometry\";\n    this.parameters = {\n      innerRadius,\n      outerRadius,\n      thetaSegments,\n      phiSegments,\n      thetaStart,\n      thetaLength\n    };\n    thetaSegments = Math.max(3, thetaSegments);\n    phiSegments = Math.max(1, phiSegments);\n    const indices = [];\n    const vertices = [];\n    const normals = [];\n    const uvs = [];\n    let radius = innerRadius;\n    const radiusStep = (outerRadius - innerRadius) / phiSegments;\n    const vertex2 = new Vector3();\n    const uv = new Vector2();\n    for (let j = 0; j <= phiSegments; j++) {\n      for (let i = 0; i <= thetaSegments; i++) {\n        const segment = thetaStart + i / thetaSegments * thetaLength;\n        vertex2.x = radius * Math.cos(segment);\n        vertex2.y = radius * Math.sin(segment);\n        vertices.push(vertex2.x, vertex2.y, vertex2.z);\n        normals.push(0, 0, 1);\n        uv.x = (vertex2.x / outerRadius + 1) / 2;\n        uv.y = (vertex2.y / outerRadius + 1) / 2;\n        uvs.push(uv.x, uv.y);\n      }\n      radius += radiusStep;\n    }\n    for (let j = 0; j < phiSegments; j++) {\n      const thetaSegmentLevel = j * (thetaSegments + 1);\n      for (let i = 0; i < thetaSegments; i++) {\n        const segment = i + thetaSegmentLevel;\n        const a = segment;\n        const b = segment + thetaSegments + 1;\n        const c = segment + thetaSegments + 2;\n        const d = segment + 1;\n        indices.push(a, b, d);\n        indices.push(b, c, d);\n      }\n    }\n    this.setIndex(indices);\n    this.setAttribute(\"position\", new Float32BufferAttribute(vertices, 3));\n    this.setAttribute(\"normal\", new Float32BufferAttribute(normals, 3));\n    this.setAttribute(\"uv\", new Float32BufferAttribute(uvs, 2));\n  }\n  copy(source) {\n    super.copy(source);\n    this.parameters = Object.assign({}, source.parameters);\n    return this;\n  }\n  static fromJSON(data) {\n    return new _RingGeometry(data.innerRadius, data.outerRadius, data.thetaSegments, data.phiSegments, data.thetaStart, data.thetaLength);\n  }\n};\nvar ShapeGeometry = class _ShapeGeometry extends BufferGeometry {\n  constructor(shapes = new Shape([new Vector2(0, 0.5), new Vector2(-0.5, -0.5), new Vector2(0.5, -0.5)]), curveSegments = 12) {\n    super();\n    this.type = \"ShapeGeometry\";\n    this.parameters = {\n      shapes,\n      curveSegments\n    };\n    const indices = [];\n    const vertices = [];\n    const normals = [];\n    const uvs = [];\n    let groupStart = 0;\n    let groupCount = 0;\n    if (Array.isArray(shapes) === false) {\n      addShape(shapes);\n    } else {\n      for (let i = 0; i < shapes.length; i++) {\n        addShape(shapes[i]);\n        this.addGroup(groupStart, groupCount, i);\n        groupStart += groupCount;\n        groupCount = 0;\n      }\n    }\n    this.setIndex(indices);\n    this.setAttribute(\"position\", new Float32BufferAttribute(vertices, 3));\n    this.setAttribute(\"normal\", new Float32BufferAttribute(normals, 3));\n    this.setAttribute(\"uv\", new Float32BufferAttribute(uvs, 2));\n    function addShape(shape) {\n      const indexOffset = vertices.length / 3;\n      const points = shape.extractPoints(curveSegments);\n      let shapeVertices = points.shape;\n      const shapeHoles = points.holes;\n      if (ShapeUtils.isClockWise(shapeVertices) === false) {\n        shapeVertices = shapeVertices.reverse();\n      }\n      for (let i = 0, l = shapeHoles.length; i < l; i++) {\n        const shapeHole = shapeHoles[i];\n        if (ShapeUtils.isClockWise(shapeHole) === true) {\n          shapeHoles[i] = shapeHole.reverse();\n        }\n      }\n      const faces = ShapeUtils.triangulateShape(shapeVertices, shapeHoles);\n      for (let i = 0, l = shapeHoles.length; i < l; i++) {\n        const shapeHole = shapeHoles[i];\n        shapeVertices = shapeVertices.concat(shapeHole);\n      }\n      for (let i = 0, l = shapeVertices.length; i < l; i++) {\n        const vertex2 = shapeVertices[i];\n        vertices.push(vertex2.x, vertex2.y, 0);\n        normals.push(0, 0, 1);\n        uvs.push(vertex2.x, vertex2.y);\n      }\n      for (let i = 0, l = faces.length; i < l; i++) {\n        const face = faces[i];\n        const a = face[0] + indexOffset;\n        const b = face[1] + indexOffset;\n        const c = face[2] + indexOffset;\n        indices.push(a, b, c);\n        groupCount += 3;\n      }\n    }\n  }\n  copy(source) {\n    super.copy(source);\n    this.parameters = Object.assign({}, source.parameters);\n    return this;\n  }\n  toJSON() {\n    const data = super.toJSON();\n    const shapes = this.parameters.shapes;\n    return toJSON(shapes, data);\n  }\n  static fromJSON(data, shapes) {\n    const geometryShapes = [];\n    for (let j = 0, jl = data.shapes.length; j < jl; j++) {\n      const shape = shapes[data.shapes[j]];\n      geometryShapes.push(shape);\n    }\n    return new _ShapeGeometry(geometryShapes, data.curveSegments);\n  }\n};\nfunction toJSON(shapes, data) {\n  data.shapes = [];\n  if (Array.isArray(shapes)) {\n    for (let i = 0, l = shapes.length; i < l; i++) {\n      const shape = shapes[i];\n      data.shapes.push(shape.uuid);\n    }\n  } else {\n    data.shapes.push(shapes.uuid);\n  }\n  return data;\n}\nvar SphereGeometry = class _SphereGeometry extends BufferGeometry {\n  constructor(radius = 1, widthSegments = 32, heightSegments = 16, phiStart = 0, phiLength = Math.PI * 2, thetaStart = 0, thetaLength = Math.PI) {\n    super();\n    this.type = \"SphereGeometry\";\n    this.parameters = {\n      radius,\n      widthSegments,\n      heightSegments,\n      phiStart,\n      phiLength,\n      thetaStart,\n      thetaLength\n    };\n    widthSegments = Math.max(3, Math.floor(widthSegments));\n    heightSegments = Math.max(2, Math.floor(heightSegments));\n    const thetaEnd = Math.min(thetaStart + thetaLength, Math.PI);\n    let index = 0;\n    const grid = [];\n    const vertex2 = new Vector3();\n    const normal = new Vector3();\n    const indices = [];\n    const vertices = [];\n    const normals = [];\n    const uvs = [];\n    for (let iy = 0; iy <= heightSegments; iy++) {\n      const verticesRow = [];\n      const v = iy / heightSegments;\n      let uOffset = 0;\n      if (iy === 0 && thetaStart === 0) {\n        uOffset = 0.5 / widthSegments;\n      } else if (iy === heightSegments && thetaEnd === Math.PI) {\n        uOffset = -0.5 / widthSegments;\n      }\n      for (let ix = 0; ix <= widthSegments; ix++) {\n        const u = ix / widthSegments;\n        vertex2.x = -radius * Math.cos(phiStart + u * phiLength) * Math.sin(thetaStart + v * thetaLength);\n        vertex2.y = radius * Math.cos(thetaStart + v * thetaLength);\n        vertex2.z = radius * Math.sin(phiStart + u * phiLength) * Math.sin(thetaStart + v * thetaLength);\n        vertices.push(vertex2.x, vertex2.y, vertex2.z);\n        normal.copy(vertex2).normalize();\n        normals.push(normal.x, normal.y, normal.z);\n        uvs.push(u + uOffset, 1 - v);\n        verticesRow.push(index++);\n      }\n      grid.push(verticesRow);\n    }\n    for (let iy = 0; iy < heightSegments; iy++) {\n      for (let ix = 0; ix < widthSegments; ix++) {\n        const a = grid[iy][ix + 1];\n        const b = grid[iy][ix];\n        const c = grid[iy + 1][ix];\n        const d = grid[iy + 1][ix + 1];\n        if (iy !== 0 || thetaStart > 0) indices.push(a, b, d);\n        if (iy !== heightSegments - 1 || thetaEnd < Math.PI) indices.push(b, c, d);\n      }\n    }\n    this.setIndex(indices);\n    this.setAttribute(\"position\", new Float32BufferAttribute(vertices, 3));\n    this.setAttribute(\"normal\", new Float32BufferAttribute(normals, 3));\n    this.setAttribute(\"uv\", new Float32BufferAttribute(uvs, 2));\n  }\n  copy(source) {\n    super.copy(source);\n    this.parameters = Object.assign({}, source.parameters);\n    return this;\n  }\n  static fromJSON(data) {\n    return new _SphereGeometry(data.radius, data.widthSegments, data.heightSegments, data.phiStart, data.phiLength, data.thetaStart, data.thetaLength);\n  }\n};\nvar TetrahedronGeometry = class _TetrahedronGeometry extends PolyhedronGeometry {\n  constructor(radius = 1, detail = 0) {\n    const vertices = [\n      1,\n      1,\n      1,\n      -1,\n      -1,\n      1,\n      -1,\n      1,\n      -1,\n      1,\n      -1,\n      -1\n    ];\n    const indices = [\n      2,\n      1,\n      0,\n      0,\n      3,\n      2,\n      1,\n      3,\n      0,\n      2,\n      3,\n      1\n    ];\n    super(vertices, indices, radius, detail);\n    this.type = \"TetrahedronGeometry\";\n    this.parameters = {\n      radius,\n      detail\n    };\n  }\n  static fromJSON(data) {\n    return new _TetrahedronGeometry(data.radius, data.detail);\n  }\n};\nvar TorusGeometry = class _TorusGeometry extends BufferGeometry {\n  constructor(radius = 1, tube = 0.4, radialSegments = 12, tubularSegments = 48, arc = Math.PI * 2) {\n    super();\n    this.type = \"TorusGeometry\";\n    this.parameters = {\n      radius,\n      tube,\n      radialSegments,\n      tubularSegments,\n      arc\n    };\n    radialSegments = Math.floor(radialSegments);\n    tubularSegments = Math.floor(tubularSegments);\n    const indices = [];\n    const vertices = [];\n    const normals = [];\n    const uvs = [];\n    const center = new Vector3();\n    const vertex2 = new Vector3();\n    const normal = new Vector3();\n    for (let j = 0; j <= radialSegments; j++) {\n      for (let i = 0; i <= tubularSegments; i++) {\n        const u = i / tubularSegments * arc;\n        const v = j / radialSegments * Math.PI * 2;\n        vertex2.x = (radius + tube * Math.cos(v)) * Math.cos(u);\n        vertex2.y = (radius + tube * Math.cos(v)) * Math.sin(u);\n        vertex2.z = tube * Math.sin(v);\n        vertices.push(vertex2.x, vertex2.y, vertex2.z);\n        center.x = radius * Math.cos(u);\n        center.y = radius * Math.sin(u);\n        normal.subVectors(vertex2, center).normalize();\n        normals.push(normal.x, normal.y, normal.z);\n        uvs.push(i / tubularSegments);\n        uvs.push(j / radialSegments);\n      }\n    }\n    for (let j = 1; j <= radialSegments; j++) {\n      for (let i = 1; i <= tubularSegments; i++) {\n        const a = (tubularSegments + 1) * j + i - 1;\n        const b = (tubularSegments + 1) * (j - 1) + i - 1;\n        const c = (tubularSegments + 1) * (j - 1) + i;\n        const d = (tubularSegments + 1) * j + i;\n        indices.push(a, b, d);\n        indices.push(b, c, d);\n      }\n    }\n    this.setIndex(indices);\n    this.setAttribute(\"position\", new Float32BufferAttribute(vertices, 3));\n    this.setAttribute(\"normal\", new Float32BufferAttribute(normals, 3));\n    this.setAttribute(\"uv\", new Float32BufferAttribute(uvs, 2));\n  }\n  copy(source) {\n    super.copy(source);\n    this.parameters = Object.assign({}, source.parameters);\n    return this;\n  }\n  static fromJSON(data) {\n    return new _TorusGeometry(data.radius, data.tube, data.radialSegments, data.tubularSegments, data.arc);\n  }\n};\nvar TorusKnotGeometry = class _TorusKnotGeometry extends BufferGeometry {\n  constructor(radius = 1, tube = 0.4, tubularSegments = 64, radialSegments = 8, p = 2, q = 3) {\n    super();\n    this.type = \"TorusKnotGeometry\";\n    this.parameters = {\n      radius,\n      tube,\n      tubularSegments,\n      radialSegments,\n      p,\n      q\n    };\n    tubularSegments = Math.floor(tubularSegments);\n    radialSegments = Math.floor(radialSegments);\n    const indices = [];\n    const vertices = [];\n    const normals = [];\n    const uvs = [];\n    const vertex2 = new Vector3();\n    const normal = new Vector3();\n    const P1 = new Vector3();\n    const P2 = new Vector3();\n    const B = new Vector3();\n    const T = new Vector3();\n    const N = new Vector3();\n    for (let i = 0; i <= tubularSegments; ++i) {\n      const u = i / tubularSegments * p * Math.PI * 2;\n      calculatePositionOnCurve(u, p, q, radius, P1);\n      calculatePositionOnCurve(u + 0.01, p, q, radius, P2);\n      T.subVectors(P2, P1);\n      N.addVectors(P2, P1);\n      B.crossVectors(T, N);\n      N.crossVectors(B, T);\n      B.normalize();\n      N.normalize();\n      for (let j = 0; j <= radialSegments; ++j) {\n        const v = j / radialSegments * Math.PI * 2;\n        const cx = -tube * Math.cos(v);\n        const cy = tube * Math.sin(v);\n        vertex2.x = P1.x + (cx * N.x + cy * B.x);\n        vertex2.y = P1.y + (cx * N.y + cy * B.y);\n        vertex2.z = P1.z + (cx * N.z + cy * B.z);\n        vertices.push(vertex2.x, vertex2.y, vertex2.z);\n        normal.subVectors(vertex2, P1).normalize();\n        normals.push(normal.x, normal.y, normal.z);\n        uvs.push(i / tubularSegments);\n        uvs.push(j / radialSegments);\n      }\n    }\n    for (let j = 1; j <= tubularSegments; j++) {\n      for (let i = 1; i <= radialSegments; i++) {\n        const a = (radialSegments + 1) * (j - 1) + (i - 1);\n        const b = (radialSegments + 1) * j + (i - 1);\n        const c = (radialSegments + 1) * j + i;\n        const d = (radialSegments + 1) * (j - 1) + i;\n        indices.push(a, b, d);\n        indices.push(b, c, d);\n      }\n    }\n    this.setIndex(indices);\n    this.setAttribute(\"position\", new Float32BufferAttribute(vertices, 3));\n    this.setAttribute(\"normal\", new Float32BufferAttribute(normals, 3));\n    this.setAttribute(\"uv\", new Float32BufferAttribute(uvs, 2));\n    function calculatePositionOnCurve(u, p2, q2, radius2, position) {\n      const cu = Math.cos(u);\n      const su = Math.sin(u);\n      const quOverP = q2 / p2 * u;\n      const cs = Math.cos(quOverP);\n      position.x = radius2 * (2 + cs) * 0.5 * cu;\n      position.y = radius2 * (2 + cs) * su * 0.5;\n      position.z = radius2 * Math.sin(quOverP) * 0.5;\n    }\n  }\n  copy(source) {\n    super.copy(source);\n    this.parameters = Object.assign({}, source.parameters);\n    return this;\n  }\n  static fromJSON(data) {\n    return new _TorusKnotGeometry(data.radius, data.tube, data.tubularSegments, data.radialSegments, data.p, data.q);\n  }\n};\nvar TubeGeometry = class _TubeGeometry extends BufferGeometry {\n  constructor(path = new QuadraticBezierCurve3(new Vector3(-1, -1, 0), new Vector3(-1, 1, 0), new Vector3(1, 1, 0)), tubularSegments = 64, radius = 1, radialSegments = 8, closed = false) {\n    super();\n    this.type = \"TubeGeometry\";\n    this.parameters = {\n      path,\n      tubularSegments,\n      radius,\n      radialSegments,\n      closed\n    };\n    const frames = path.computeFrenetFrames(tubularSegments, closed);\n    this.tangents = frames.tangents;\n    this.normals = frames.normals;\n    this.binormals = frames.binormals;\n    const vertex2 = new Vector3();\n    const normal = new Vector3();\n    const uv = new Vector2();\n    let P = new Vector3();\n    const vertices = [];\n    const normals = [];\n    const uvs = [];\n    const indices = [];\n    generateBufferData();\n    this.setIndex(indices);\n    this.setAttribute(\"position\", new Float32BufferAttribute(vertices, 3));\n    this.setAttribute(\"normal\", new Float32BufferAttribute(normals, 3));\n    this.setAttribute(\"uv\", new Float32BufferAttribute(uvs, 2));\n    function generateBufferData() {\n      for (let i = 0; i < tubularSegments; i++) {\n        generateSegment(i);\n      }\n      generateSegment(closed === false ? tubularSegments : 0);\n      generateUVs();\n      generateIndices();\n    }\n    function generateSegment(i) {\n      P = path.getPointAt(i / tubularSegments, P);\n      const N = frames.normals[i];\n      const B = frames.binormals[i];\n      for (let j = 0; j <= radialSegments; j++) {\n        const v = j / radialSegments * Math.PI * 2;\n        const sin = Math.sin(v);\n        const cos = -Math.cos(v);\n        normal.x = cos * N.x + sin * B.x;\n        normal.y = cos * N.y + sin * B.y;\n        normal.z = cos * N.z + sin * B.z;\n        normal.normalize();\n        normals.push(normal.x, normal.y, normal.z);\n        vertex2.x = P.x + radius * normal.x;\n        vertex2.y = P.y + radius * normal.y;\n        vertex2.z = P.z + radius * normal.z;\n        vertices.push(vertex2.x, vertex2.y, vertex2.z);\n      }\n    }\n    function generateIndices() {\n      for (let j = 1; j <= tubularSegments; j++) {\n        for (let i = 1; i <= radialSegments; i++) {\n          const a = (radialSegments + 1) * (j - 1) + (i - 1);\n          const b = (radialSegments + 1) * j + (i - 1);\n          const c = (radialSegments + 1) * j + i;\n          const d = (radialSegments + 1) * (j - 1) + i;\n          indices.push(a, b, d);\n          indices.push(b, c, d);\n        }\n      }\n    }\n    function generateUVs() {\n      for (let i = 0; i <= tubularSegments; i++) {\n        for (let j = 0; j <= radialSegments; j++) {\n          uv.x = i / tubularSegments;\n          uv.y = j / radialSegments;\n          uvs.push(uv.x, uv.y);\n        }\n      }\n    }\n  }\n  copy(source) {\n    super.copy(source);\n    this.parameters = Object.assign({}, source.parameters);\n    return this;\n  }\n  toJSON() {\n    const data = super.toJSON();\n    data.path = this.parameters.path.toJSON();\n    return data;\n  }\n  static fromJSON(data) {\n    return new _TubeGeometry(\n      new Curves[data.path.type]().fromJSON(data.path),\n      data.tubularSegments,\n      data.radius,\n      data.radialSegments,\n      data.closed\n    );\n  }\n};\nvar WireframeGeometry = class extends BufferGeometry {\n  constructor(geometry = null) {\n    super();\n    this.type = \"WireframeGeometry\";\n    this.parameters = {\n      geometry\n    };\n    if (geometry !== null) {\n      const vertices = [];\n      const edges = /* @__PURE__ */ new Set();\n      const start = new Vector3();\n      const end = new Vector3();\n      if (geometry.index !== null) {\n        const position = geometry.attributes.position;\n        const indices = geometry.index;\n        let groups = geometry.groups;\n        if (groups.length === 0) {\n          groups = [{ start: 0, count: indices.count, materialIndex: 0 }];\n        }\n        for (let o = 0, ol = groups.length; o < ol; ++o) {\n          const group = groups[o];\n          const groupStart = group.start;\n          const groupCount = group.count;\n          for (let i = groupStart, l = groupStart + groupCount; i < l; i += 3) {\n            for (let j = 0; j < 3; j++) {\n              const index1 = indices.getX(i + j);\n              const index2 = indices.getX(i + (j + 1) % 3);\n              start.fromBufferAttribute(position, index1);\n              end.fromBufferAttribute(position, index2);\n              if (isUniqueEdge(start, end, edges) === true) {\n                vertices.push(start.x, start.y, start.z);\n                vertices.push(end.x, end.y, end.z);\n              }\n            }\n          }\n        }\n      } else {\n        const position = geometry.attributes.position;\n        for (let i = 0, l = position.count / 3; i < l; i++) {\n          for (let j = 0; j < 3; j++) {\n            const index1 = 3 * i + j;\n            const index2 = 3 * i + (j + 1) % 3;\n            start.fromBufferAttribute(position, index1);\n            end.fromBufferAttribute(position, index2);\n            if (isUniqueEdge(start, end, edges) === true) {\n              vertices.push(start.x, start.y, start.z);\n              vertices.push(end.x, end.y, end.z);\n            }\n          }\n        }\n      }\n      this.setAttribute(\"position\", new Float32BufferAttribute(vertices, 3));\n    }\n  }\n  copy(source) {\n    super.copy(source);\n    this.parameters = Object.assign({}, source.parameters);\n    return this;\n  }\n};\nfunction isUniqueEdge(start, end, edges) {\n  const hash1 = `${start.x},${start.y},${start.z}-${end.x},${end.y},${end.z}`;\n  const hash2 = `${end.x},${end.y},${end.z}-${start.x},${start.y},${start.z}`;\n  if (edges.has(hash1) === true || edges.has(hash2) === true) {\n    return false;\n  } else {\n    edges.add(hash1);\n    edges.add(hash2);\n    return true;\n  }\n}\nvar Geometries = /* @__PURE__ */ Object.freeze({\n  __proto__: null,\n  BoxGeometry,\n  CapsuleGeometry,\n  CircleGeometry,\n  ConeGeometry,\n  CylinderGeometry,\n  DodecahedronGeometry,\n  EdgesGeometry,\n  ExtrudeGeometry,\n  IcosahedronGeometry,\n  LatheGeometry,\n  OctahedronGeometry,\n  PlaneGeometry,\n  PolyhedronGeometry,\n  RingGeometry,\n  ShapeGeometry,\n  SphereGeometry,\n  TetrahedronGeometry,\n  TorusGeometry,\n  TorusKnotGeometry,\n  TubeGeometry,\n  WireframeGeometry\n});\nvar ShadowMaterial = class extends Material {\n  constructor(parameters) {\n    super();\n    this.isShadowMaterial = true;\n    this.type = \"ShadowMaterial\";\n    this.color = new Color(0);\n    this.transparent = true;\n    this.fog = true;\n    this.setValues(parameters);\n  }\n  copy(source) {\n    super.copy(source);\n    this.color.copy(source.color);\n    this.fog = source.fog;\n    return this;\n  }\n};\nvar RawShaderMaterial = class extends ShaderMaterial {\n  constructor(parameters) {\n    super(parameters);\n    this.isRawShaderMaterial = true;\n    this.type = \"RawShaderMaterial\";\n  }\n};\nvar MeshStandardMaterial = class extends Material {\n  constructor(parameters) {\n    super();\n    this.isMeshStandardMaterial = true;\n    this.defines = { \"STANDARD\": \"\" };\n    this.type = \"MeshStandardMaterial\";\n    this.color = new Color(16777215);\n    this.roughness = 1;\n    this.metalness = 0;\n    this.map = null;\n    this.lightMap = null;\n    this.lightMapIntensity = 1;\n    this.aoMap = null;\n    this.aoMapIntensity = 1;\n    this.emissive = new Color(0);\n    this.emissiveIntensity = 1;\n    this.emissiveMap = null;\n    this.bumpMap = null;\n    this.bumpScale = 1;\n    this.normalMap = null;\n    this.normalMapType = TangentSpaceNormalMap;\n    this.normalScale = new Vector2(1, 1);\n    this.displacementMap = null;\n    this.displacementScale = 1;\n    this.displacementBias = 0;\n    this.roughnessMap = null;\n    this.metalnessMap = null;\n    this.alphaMap = null;\n    this.envMap = null;\n    this.envMapRotation = new Euler();\n    this.envMapIntensity = 1;\n    this.wireframe = false;\n    this.wireframeLinewidth = 1;\n    this.wireframeLinecap = \"round\";\n    this.wireframeLinejoin = \"round\";\n    this.flatShading = false;\n    this.fog = true;\n    this.setValues(parameters);\n  }\n  copy(source) {\n    super.copy(source);\n    this.defines = { \"STANDARD\": \"\" };\n    this.color.copy(source.color);\n    this.roughness = source.roughness;\n    this.metalness = source.metalness;\n    this.map = source.map;\n    this.lightMap = source.lightMap;\n    this.lightMapIntensity = source.lightMapIntensity;\n    this.aoMap = source.aoMap;\n    this.aoMapIntensity = source.aoMapIntensity;\n    this.emissive.copy(source.emissive);\n    this.emissiveMap = source.emissiveMap;\n    this.emissiveIntensity = source.emissiveIntensity;\n    this.bumpMap = source.bumpMap;\n    this.bumpScale = source.bumpScale;\n    this.normalMap = source.normalMap;\n    this.normalMapType = source.normalMapType;\n    this.normalScale.copy(source.normalScale);\n    this.displacementMap = source.displacementMap;\n    this.displacementScale = source.displacementScale;\n    this.displacementBias = source.displacementBias;\n    this.roughnessMap = source.roughnessMap;\n    this.metalnessMap = source.metalnessMap;\n    this.alphaMap = source.alphaMap;\n    this.envMap = source.envMap;\n    this.envMapRotation.copy(source.envMapRotation);\n    this.envMapIntensity = source.envMapIntensity;\n    this.wireframe = source.wireframe;\n    this.wireframeLinewidth = source.wireframeLinewidth;\n    this.wireframeLinecap = source.wireframeLinecap;\n    this.wireframeLinejoin = source.wireframeLinejoin;\n    this.flatShading = source.flatShading;\n    this.fog = source.fog;\n    return this;\n  }\n};\nvar MeshPhysicalMaterial = class extends MeshStandardMaterial {\n  constructor(parameters) {\n    super();\n    this.isMeshPhysicalMaterial = true;\n    this.defines = {\n      \"STANDARD\": \"\",\n      \"PHYSICAL\": \"\"\n    };\n    this.type = \"MeshPhysicalMaterial\";\n    this.anisotropyRotation = 0;\n    this.anisotropyMap = null;\n    this.clearcoatMap = null;\n    this.clearcoatRoughness = 0;\n    this.clearcoatRoughnessMap = null;\n    this.clearcoatNormalScale = new Vector2(1, 1);\n    this.clearcoatNormalMap = null;\n    this.ior = 1.5;\n    Object.defineProperty(this, \"reflectivity\", {\n      get: function() {\n        return clamp(2.5 * (this.ior - 1) / (this.ior + 1), 0, 1);\n      },\n      set: function(reflectivity) {\n        this.ior = (1 + 0.4 * reflectivity) / (1 - 0.4 * reflectivity);\n      }\n    });\n    this.iridescenceMap = null;\n    this.iridescenceIOR = 1.3;\n    this.iridescenceThicknessRange = [100, 400];\n    this.iridescenceThicknessMap = null;\n    this.sheenColor = new Color(0);\n    this.sheenColorMap = null;\n    this.sheenRoughness = 1;\n    this.sheenRoughnessMap = null;\n    this.transmissionMap = null;\n    this.thickness = 0;\n    this.thicknessMap = null;\n    this.attenuationDistance = Infinity;\n    this.attenuationColor = new Color(1, 1, 1);\n    this.specularIntensity = 1;\n    this.specularIntensityMap = null;\n    this.specularColor = new Color(1, 1, 1);\n    this.specularColorMap = null;\n    this._anisotropy = 0;\n    this._clearcoat = 0;\n    this._dispersion = 0;\n    this._iridescence = 0;\n    this._sheen = 0;\n    this._transmission = 0;\n    this.setValues(parameters);\n  }\n  get anisotropy() {\n    return this._anisotropy;\n  }\n  set anisotropy(value) {\n    if (this._anisotropy > 0 !== value > 0) {\n      this.version++;\n    }\n    this._anisotropy = value;\n  }\n  get clearcoat() {\n    return this._clearcoat;\n  }\n  set clearcoat(value) {\n    if (this._clearcoat > 0 !== value > 0) {\n      this.version++;\n    }\n    this._clearcoat = value;\n  }\n  get iridescence() {\n    return this._iridescence;\n  }\n  set iridescence(value) {\n    if (this._iridescence > 0 !== value > 0) {\n      this.version++;\n    }\n    this._iridescence = value;\n  }\n  get dispersion() {\n    return this._dispersion;\n  }\n  set dispersion(value) {\n    if (this._dispersion > 0 !== value > 0) {\n      this.version++;\n    }\n    this._dispersion = value;\n  }\n  get sheen() {\n    return this._sheen;\n  }\n  set sheen(value) {\n    if (this._sheen > 0 !== value > 0) {\n      this.version++;\n    }\n    this._sheen = value;\n  }\n  get transmission() {\n    return this._transmission;\n  }\n  set transmission(value) {\n    if (this._transmission > 0 !== value > 0) {\n      this.version++;\n    }\n    this._transmission = value;\n  }\n  copy(source) {\n    super.copy(source);\n    this.defines = {\n      \"STANDARD\": \"\",\n      \"PHYSICAL\": \"\"\n    };\n    this.anisotropy = source.anisotropy;\n    this.anisotropyRotation = source.anisotropyRotation;\n    this.anisotropyMap = source.anisotropyMap;\n    this.clearcoat = source.clearcoat;\n    this.clearcoatMap = source.clearcoatMap;\n    this.clearcoatRoughness = source.clearcoatRoughness;\n    this.clearcoatRoughnessMap = source.clearcoatRoughnessMap;\n    this.clearcoatNormalMap = source.clearcoatNormalMap;\n    this.clearcoatNormalScale.copy(source.clearcoatNormalScale);\n    this.dispersion = source.dispersion;\n    this.ior = source.ior;\n    this.iridescence = source.iridescence;\n    this.iridescenceMap = source.iridescenceMap;\n    this.iridescenceIOR = source.iridescenceIOR;\n    this.iridescenceThicknessRange = [...source.iridescenceThicknessRange];\n    this.iridescenceThicknessMap = source.iridescenceThicknessMap;\n    this.sheen = source.sheen;\n    this.sheenColor.copy(source.sheenColor);\n    this.sheenColorMap = source.sheenColorMap;\n    this.sheenRoughness = source.sheenRoughness;\n    this.sheenRoughnessMap = source.sheenRoughnessMap;\n    this.transmission = source.transmission;\n    this.transmissionMap = source.transmissionMap;\n    this.thickness = source.thickness;\n    this.thicknessMap = source.thicknessMap;\n    this.attenuationDistance = source.attenuationDistance;\n    this.attenuationColor.copy(source.attenuationColor);\n    this.specularIntensity = source.specularIntensity;\n    this.specularIntensityMap = source.specularIntensityMap;\n    this.specularColor.copy(source.specularColor);\n    this.specularColorMap = source.specularColorMap;\n    return this;\n  }\n};\nvar MeshPhongMaterial = class extends Material {\n  constructor(parameters) {\n    super();\n    this.isMeshPhongMaterial = true;\n    this.type = \"MeshPhongMaterial\";\n    this.color = new Color(16777215);\n    this.specular = new Color(1118481);\n    this.shininess = 30;\n    this.map = null;\n    this.lightMap = null;\n    this.lightMapIntensity = 1;\n    this.aoMap = null;\n    this.aoMapIntensity = 1;\n    this.emissive = new Color(0);\n    this.emissiveIntensity = 1;\n    this.emissiveMap = null;\n    this.bumpMap = null;\n    this.bumpScale = 1;\n    this.normalMap = null;\n    this.normalMapType = TangentSpaceNormalMap;\n    this.normalScale = new Vector2(1, 1);\n    this.displacementMap = null;\n    this.displacementScale = 1;\n    this.displacementBias = 0;\n    this.specularMap = null;\n    this.alphaMap = null;\n    this.envMap = null;\n    this.envMapRotation = new Euler();\n    this.combine = MultiplyOperation;\n    this.reflectivity = 1;\n    this.refractionRatio = 0.98;\n    this.wireframe = false;\n    this.wireframeLinewidth = 1;\n    this.wireframeLinecap = \"round\";\n    this.wireframeLinejoin = \"round\";\n    this.flatShading = false;\n    this.fog = true;\n    this.setValues(parameters);\n  }\n  copy(source) {\n    super.copy(source);\n    this.color.copy(source.color);\n    this.specular.copy(source.specular);\n    this.shininess = source.shininess;\n    this.map = source.map;\n    this.lightMap = source.lightMap;\n    this.lightMapIntensity = source.lightMapIntensity;\n    this.aoMap = source.aoMap;\n    this.aoMapIntensity = source.aoMapIntensity;\n    this.emissive.copy(source.emissive);\n    this.emissiveMap = source.emissiveMap;\n    this.emissiveIntensity = source.emissiveIntensity;\n    this.bumpMap = source.bumpMap;\n    this.bumpScale = source.bumpScale;\n    this.normalMap = source.normalMap;\n    this.normalMapType = source.normalMapType;\n    this.normalScale.copy(source.normalScale);\n    this.displacementMap = source.displacementMap;\n    this.displacementScale = source.displacementScale;\n    this.displacementBias = source.displacementBias;\n    this.specularMap = source.specularMap;\n    this.alphaMap = source.alphaMap;\n    this.envMap = source.envMap;\n    this.envMapRotation.copy(source.envMapRotation);\n    this.combine = source.combine;\n    this.reflectivity = source.reflectivity;\n    this.refractionRatio = source.refractionRatio;\n    this.wireframe = source.wireframe;\n    this.wireframeLinewidth = source.wireframeLinewidth;\n    this.wireframeLinecap = source.wireframeLinecap;\n    this.wireframeLinejoin = source.wireframeLinejoin;\n    this.flatShading = source.flatShading;\n    this.fog = source.fog;\n    return this;\n  }\n};\nvar MeshToonMaterial = class extends Material {\n  constructor(parameters) {\n    super();\n    this.isMeshToonMaterial = true;\n    this.defines = { \"TOON\": \"\" };\n    this.type = \"MeshToonMaterial\";\n    this.color = new Color(16777215);\n    this.map = null;\n    this.gradientMap = null;\n    this.lightMap = null;\n    this.lightMapIntensity = 1;\n    this.aoMap = null;\n    this.aoMapIntensity = 1;\n    this.emissive = new Color(0);\n    this.emissiveIntensity = 1;\n    this.emissiveMap = null;\n    this.bumpMap = null;\n    this.bumpScale = 1;\n    this.normalMap = null;\n    this.normalMapType = TangentSpaceNormalMap;\n    this.normalScale = new Vector2(1, 1);\n    this.displacementMap = null;\n    this.displacementScale = 1;\n    this.displacementBias = 0;\n    this.alphaMap = null;\n    this.wireframe = false;\n    this.wireframeLinewidth = 1;\n    this.wireframeLinecap = \"round\";\n    this.wireframeLinejoin = \"round\";\n    this.fog = true;\n    this.setValues(parameters);\n  }\n  copy(source) {\n    super.copy(source);\n    this.color.copy(source.color);\n    this.map = source.map;\n    this.gradientMap = source.gradientMap;\n    this.lightMap = source.lightMap;\n    this.lightMapIntensity = source.lightMapIntensity;\n    this.aoMap = source.aoMap;\n    this.aoMapIntensity = source.aoMapIntensity;\n    this.emissive.copy(source.emissive);\n    this.emissiveMap = source.emissiveMap;\n    this.emissiveIntensity = source.emissiveIntensity;\n    this.bumpMap = source.bumpMap;\n    this.bumpScale = source.bumpScale;\n    this.normalMap = source.normalMap;\n    this.normalMapType = source.normalMapType;\n    this.normalScale.copy(source.normalScale);\n    this.displacementMap = source.displacementMap;\n    this.displacementScale = source.displacementScale;\n    this.displacementBias = source.displacementBias;\n    this.alphaMap = source.alphaMap;\n    this.wireframe = source.wireframe;\n    this.wireframeLinewidth = source.wireframeLinewidth;\n    this.wireframeLinecap = source.wireframeLinecap;\n    this.wireframeLinejoin = source.wireframeLinejoin;\n    this.fog = source.fog;\n    return this;\n  }\n};\nvar MeshNormalMaterial = class extends Material {\n  constructor(parameters) {\n    super();\n    this.isMeshNormalMaterial = true;\n    this.type = \"MeshNormalMaterial\";\n    this.bumpMap = null;\n    this.bumpScale = 1;\n    this.normalMap = null;\n    this.normalMapType = TangentSpaceNormalMap;\n    this.normalScale = new Vector2(1, 1);\n    this.displacementMap = null;\n    this.displacementScale = 1;\n    this.displacementBias = 0;\n    this.wireframe = false;\n    this.wireframeLinewidth = 1;\n    this.flatShading = false;\n    this.setValues(parameters);\n  }\n  copy(source) {\n    super.copy(source);\n    this.bumpMap = source.bumpMap;\n    this.bumpScale = source.bumpScale;\n    this.normalMap = source.normalMap;\n    this.normalMapType = source.normalMapType;\n    this.normalScale.copy(source.normalScale);\n    this.displacementMap = source.displacementMap;\n    this.displacementScale = source.displacementScale;\n    this.displacementBias = source.displacementBias;\n    this.wireframe = source.wireframe;\n    this.wireframeLinewidth = source.wireframeLinewidth;\n    this.flatShading = source.flatShading;\n    return this;\n  }\n};\nvar MeshLambertMaterial = class extends Material {\n  constructor(parameters) {\n    super();\n    this.isMeshLambertMaterial = true;\n    this.type = \"MeshLambertMaterial\";\n    this.color = new Color(16777215);\n    this.map = null;\n    this.lightMap = null;\n    this.lightMapIntensity = 1;\n    this.aoMap = null;\n    this.aoMapIntensity = 1;\n    this.emissive = new Color(0);\n    this.emissiveIntensity = 1;\n    this.emissiveMap = null;\n    this.bumpMap = null;\n    this.bumpScale = 1;\n    this.normalMap = null;\n    this.normalMapType = TangentSpaceNormalMap;\n    this.normalScale = new Vector2(1, 1);\n    this.displacementMap = null;\n    this.displacementScale = 1;\n    this.displacementBias = 0;\n    this.specularMap = null;\n    this.alphaMap = null;\n    this.envMap = null;\n    this.envMapRotation = new Euler();\n    this.combine = MultiplyOperation;\n    this.reflectivity = 1;\n    this.refractionRatio = 0.98;\n    this.wireframe = false;\n    this.wireframeLinewidth = 1;\n    this.wireframeLinecap = \"round\";\n    this.wireframeLinejoin = \"round\";\n    this.flatShading = false;\n    this.fog = true;\n    this.setValues(parameters);\n  }\n  copy(source) {\n    super.copy(source);\n    this.color.copy(source.color);\n    this.map = source.map;\n    this.lightMap = source.lightMap;\n    this.lightMapIntensity = source.lightMapIntensity;\n    this.aoMap = source.aoMap;\n    this.aoMapIntensity = source.aoMapIntensity;\n    this.emissive.copy(source.emissive);\n    this.emissiveMap = source.emissiveMap;\n    this.emissiveIntensity = source.emissiveIntensity;\n    this.bumpMap = source.bumpMap;\n    this.bumpScale = source.bumpScale;\n    this.normalMap = source.normalMap;\n    this.normalMapType = source.normalMapType;\n    this.normalScale.copy(source.normalScale);\n    this.displacementMap = source.displacementMap;\n    this.displacementScale = source.displacementScale;\n    this.displacementBias = source.displacementBias;\n    this.specularMap = source.specularMap;\n    this.alphaMap = source.alphaMap;\n    this.envMap = source.envMap;\n    this.envMapRotation.copy(source.envMapRotation);\n    this.combine = source.combine;\n    this.reflectivity = source.reflectivity;\n    this.refractionRatio = source.refractionRatio;\n    this.wireframe = source.wireframe;\n    this.wireframeLinewidth = source.wireframeLinewidth;\n    this.wireframeLinecap = source.wireframeLinecap;\n    this.wireframeLinejoin = source.wireframeLinejoin;\n    this.flatShading = source.flatShading;\n    this.fog = source.fog;\n    return this;\n  }\n};\nvar MeshMatcapMaterial = class extends Material {\n  constructor(parameters) {\n    super();\n    this.isMeshMatcapMaterial = true;\n    this.defines = { \"MATCAP\": \"\" };\n    this.type = \"MeshMatcapMaterial\";\n    this.color = new Color(16777215);\n    this.matcap = null;\n    this.map = null;\n    this.bumpMap = null;\n    this.bumpScale = 1;\n    this.normalMap = null;\n    this.normalMapType = TangentSpaceNormalMap;\n    this.normalScale = new Vector2(1, 1);\n    this.displacementMap = null;\n    this.displacementScale = 1;\n    this.displacementBias = 0;\n    this.alphaMap = null;\n    this.flatShading = false;\n    this.fog = true;\n    this.setValues(parameters);\n  }\n  copy(source) {\n    super.copy(source);\n    this.defines = { \"MATCAP\": \"\" };\n    this.color.copy(source.color);\n    this.matcap = source.matcap;\n    this.map = source.map;\n    this.bumpMap = source.bumpMap;\n    this.bumpScale = source.bumpScale;\n    this.normalMap = source.normalMap;\n    this.normalMapType = source.normalMapType;\n    this.normalScale.copy(source.normalScale);\n    this.displacementMap = source.displacementMap;\n    this.displacementScale = source.displacementScale;\n    this.displacementBias = source.displacementBias;\n    this.alphaMap = source.alphaMap;\n    this.flatShading = source.flatShading;\n    this.fog = source.fog;\n    return this;\n  }\n};\nvar LineDashedMaterial = class extends LineBasicMaterial {\n  constructor(parameters) {\n    super();\n    this.isLineDashedMaterial = true;\n    this.type = \"LineDashedMaterial\";\n    this.scale = 1;\n    this.dashSize = 3;\n    this.gapSize = 1;\n    this.setValues(parameters);\n  }\n  copy(source) {\n    super.copy(source);\n    this.scale = source.scale;\n    this.dashSize = source.dashSize;\n    this.gapSize = source.gapSize;\n    return this;\n  }\n};\nfunction convertArray(array, type, forceClone) {\n  if (!array || // let 'undefined' and 'null' pass\n  !forceClone && array.constructor === type) return array;\n  if (typeof type.BYTES_PER_ELEMENT === \"number\") {\n    return new type(array);\n  }\n  return Array.prototype.slice.call(array);\n}\nfunction isTypedArray(object) {\n  return ArrayBuffer.isView(object) && !(object instanceof DataView);\n}\nfunction getKeyframeOrder(times) {\n  function compareTime(i, j) {\n    return times[i] - times[j];\n  }\n  const n = times.length;\n  const result = new Array(n);\n  for (let i = 0; i !== n; ++i) result[i] = i;\n  result.sort(compareTime);\n  return result;\n}\nfunction sortedArray(values, stride, order) {\n  const nValues = values.length;\n  const result = new values.constructor(nValues);\n  for (let i = 0, dstOffset = 0; dstOffset !== nValues; ++i) {\n    const srcOffset = order[i] * stride;\n    for (let j = 0; j !== stride; ++j) {\n      result[dstOffset++] = values[srcOffset + j];\n    }\n  }\n  return result;\n}\nfunction flattenJSON(jsonKeys, times, values, valuePropertyName) {\n  let i = 1, key = jsonKeys[0];\n  while (key !== void 0 && key[valuePropertyName] === void 0) {\n    key = jsonKeys[i++];\n  }\n  if (key === void 0) return;\n  let value = key[valuePropertyName];\n  if (value === void 0) return;\n  if (Array.isArray(value)) {\n    do {\n      value = key[valuePropertyName];\n      if (value !== void 0) {\n        times.push(key.time);\n        values.push.apply(values, value);\n      }\n      key = jsonKeys[i++];\n    } while (key !== void 0);\n  } else if (value.toArray !== void 0) {\n    do {\n      value = key[valuePropertyName];\n      if (value !== void 0) {\n        times.push(key.time);\n        value.toArray(values, values.length);\n      }\n      key = jsonKeys[i++];\n    } while (key !== void 0);\n  } else {\n    do {\n      value = key[valuePropertyName];\n      if (value !== void 0) {\n        times.push(key.time);\n        values.push(value);\n      }\n      key = jsonKeys[i++];\n    } while (key !== void 0);\n  }\n}\nfunction subclip(sourceClip, name, startFrame, endFrame, fps = 30) {\n  const clip = sourceClip.clone();\n  clip.name = name;\n  const tracks = [];\n  for (let i = 0; i < clip.tracks.length; ++i) {\n    const track = clip.tracks[i];\n    const valueSize = track.getValueSize();\n    const times = [];\n    const values = [];\n    for (let j = 0; j < track.times.length; ++j) {\n      const frame = track.times[j] * fps;\n      if (frame < startFrame || frame >= endFrame) continue;\n      times.push(track.times[j]);\n      for (let k = 0; k < valueSize; ++k) {\n        values.push(track.values[j * valueSize + k]);\n      }\n    }\n    if (times.length === 0) continue;\n    track.times = convertArray(times, track.times.constructor);\n    track.values = convertArray(values, track.values.constructor);\n    tracks.push(track);\n  }\n  clip.tracks = tracks;\n  let minStartTime = Infinity;\n  for (let i = 0; i < clip.tracks.length; ++i) {\n    if (minStartTime > clip.tracks[i].times[0]) {\n      minStartTime = clip.tracks[i].times[0];\n    }\n  }\n  for (let i = 0; i < clip.tracks.length; ++i) {\n    clip.tracks[i].shift(-1 * minStartTime);\n  }\n  clip.resetDuration();\n  return clip;\n}\nfunction makeClipAdditive(targetClip, referenceFrame = 0, referenceClip = targetClip, fps = 30) {\n  if (fps <= 0) fps = 30;\n  const numTracks = referenceClip.tracks.length;\n  const referenceTime = referenceFrame / fps;\n  for (let i = 0; i < numTracks; ++i) {\n    const referenceTrack = referenceClip.tracks[i];\n    const referenceTrackType = referenceTrack.ValueTypeName;\n    if (referenceTrackType === \"bool\" || referenceTrackType === \"string\") continue;\n    const targetTrack = targetClip.tracks.find(function(track) {\n      return track.name === referenceTrack.name && track.ValueTypeName === referenceTrackType;\n    });\n    if (targetTrack === void 0) continue;\n    let referenceOffset = 0;\n    const referenceValueSize = referenceTrack.getValueSize();\n    if (referenceTrack.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline) {\n      referenceOffset = referenceValueSize / 3;\n    }\n    let targetOffset = 0;\n    const targetValueSize = targetTrack.getValueSize();\n    if (targetTrack.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline) {\n      targetOffset = targetValueSize / 3;\n    }\n    const lastIndex = referenceTrack.times.length - 1;\n    let referenceValue;\n    if (referenceTime <= referenceTrack.times[0]) {\n      const startIndex = referenceOffset;\n      const endIndex = referenceValueSize - referenceOffset;\n      referenceValue = referenceTrack.values.slice(startIndex, endIndex);\n    } else if (referenceTime >= referenceTrack.times[lastIndex]) {\n      const startIndex = lastIndex * referenceValueSize + referenceOffset;\n      const endIndex = startIndex + referenceValueSize - referenceOffset;\n      referenceValue = referenceTrack.values.slice(startIndex, endIndex);\n    } else {\n      const interpolant = referenceTrack.createInterpolant();\n      const startIndex = referenceOffset;\n      const endIndex = referenceValueSize - referenceOffset;\n      interpolant.evaluate(referenceTime);\n      referenceValue = interpolant.resultBuffer.slice(startIndex, endIndex);\n    }\n    if (referenceTrackType === \"quaternion\") {\n      const referenceQuat = new Quaternion().fromArray(referenceValue).normalize().conjugate();\n      referenceQuat.toArray(referenceValue);\n    }\n    const numTimes = targetTrack.times.length;\n    for (let j = 0; j < numTimes; ++j) {\n      const valueStart = j * targetValueSize + targetOffset;\n      if (referenceTrackType === \"quaternion\") {\n        Quaternion.multiplyQuaternionsFlat(\n          targetTrack.values,\n          valueStart,\n          referenceValue,\n          0,\n          targetTrack.values,\n          valueStart\n        );\n      } else {\n        const valueEnd = targetValueSize - targetOffset * 2;\n        for (let k = 0; k < valueEnd; ++k) {\n          targetTrack.values[valueStart + k] -= referenceValue[k];\n        }\n      }\n    }\n  }\n  targetClip.blendMode = AdditiveAnimationBlendMode;\n  return targetClip;\n}\nvar AnimationUtils = {\n  convertArray,\n  isTypedArray,\n  getKeyframeOrder,\n  sortedArray,\n  flattenJSON,\n  subclip,\n  makeClipAdditive\n};\nvar Interpolant = class {\n  constructor(parameterPositions, sampleValues, sampleSize, resultBuffer) {\n    this.parameterPositions = parameterPositions;\n    this._cachedIndex = 0;\n    this.resultBuffer = resultBuffer !== void 0 ? resultBuffer : new sampleValues.constructor(sampleSize);\n    this.sampleValues = sampleValues;\n    this.valueSize = sampleSize;\n    this.settings = null;\n    this.DefaultSettings_ = {};\n  }\n  evaluate(t) {\n    const pp = this.parameterPositions;\n    let i1 = this._cachedIndex, t1 = pp[i1], t0 = pp[i1 - 1];\n    validate_interval: {\n      seek: {\n        let right;\n        linear_scan: {\n          forward_scan: if (!(t < t1)) {\n            for (let giveUpAt = i1 + 2; ; ) {\n              if (t1 === void 0) {\n                if (t < t0) break forward_scan;\n                i1 = pp.length;\n                this._cachedIndex = i1;\n                return this.copySampleValue_(i1 - 1);\n              }\n              if (i1 === giveUpAt) break;\n              t0 = t1;\n              t1 = pp[++i1];\n              if (t < t1) {\n                break seek;\n              }\n            }\n            right = pp.length;\n            break linear_scan;\n          }\n          if (!(t >= t0)) {\n            const t1global = pp[1];\n            if (t < t1global) {\n              i1 = 2;\n              t0 = t1global;\n            }\n            for (let giveUpAt = i1 - 2; ; ) {\n              if (t0 === void 0) {\n                this._cachedIndex = 0;\n                return this.copySampleValue_(0);\n              }\n              if (i1 === giveUpAt) break;\n              t1 = t0;\n              t0 = pp[--i1 - 1];\n              if (t >= t0) {\n                break seek;\n              }\n            }\n            right = i1;\n            i1 = 0;\n            break linear_scan;\n          }\n          break validate_interval;\n        }\n        while (i1 < right) {\n          const mid = i1 + right >>> 1;\n          if (t < pp[mid]) {\n            right = mid;\n          } else {\n            i1 = mid + 1;\n          }\n        }\n        t1 = pp[i1];\n        t0 = pp[i1 - 1];\n        if (t0 === void 0) {\n          this._cachedIndex = 0;\n          return this.copySampleValue_(0);\n        }\n        if (t1 === void 0) {\n          i1 = pp.length;\n          this._cachedIndex = i1;\n          return this.copySampleValue_(i1 - 1);\n        }\n      }\n      this._cachedIndex = i1;\n      this.intervalChanged_(i1, t0, t1);\n    }\n    return this.interpolate_(i1, t0, t, t1);\n  }\n  getSettings_() {\n    return this.settings || this.DefaultSettings_;\n  }\n  copySampleValue_(index) {\n    const result = this.resultBuffer, values = this.sampleValues, stride = this.valueSize, offset = index * stride;\n    for (let i = 0; i !== stride; ++i) {\n      result[i] = values[offset + i];\n    }\n    return result;\n  }\n  // Template methods for derived classes:\n  interpolate_() {\n    throw new Error(\"call to abstract method\");\n  }\n  intervalChanged_() {\n  }\n};\nvar CubicInterpolant = class extends Interpolant {\n  constructor(parameterPositions, sampleValues, sampleSize, resultBuffer) {\n    super(parameterPositions, sampleValues, sampleSize, resultBuffer);\n    this._weightPrev = -0;\n    this._offsetPrev = -0;\n    this._weightNext = -0;\n    this._offsetNext = -0;\n    this.DefaultSettings_ = {\n      endingStart: ZeroCurvatureEnding,\n      endingEnd: ZeroCurvatureEnding\n    };\n  }\n  intervalChanged_(i1, t0, t1) {\n    const pp = this.parameterPositions;\n    let iPrev = i1 - 2, iNext = i1 + 1, tPrev = pp[iPrev], tNext = pp[iNext];\n    if (tPrev === void 0) {\n      switch (this.getSettings_().endingStart) {\n        case ZeroSlopeEnding:\n          iPrev = i1;\n          tPrev = 2 * t0 - t1;\n          break;\n        case WrapAroundEnding:\n          iPrev = pp.length - 2;\n          tPrev = t0 + pp[iPrev] - pp[iPrev + 1];\n          break;\n        default:\n          iPrev = i1;\n          tPrev = t1;\n      }\n    }\n    if (tNext === void 0) {\n      switch (this.getSettings_().endingEnd) {\n        case ZeroSlopeEnding:\n          iNext = i1;\n          tNext = 2 * t1 - t0;\n          break;\n        case WrapAroundEnding:\n          iNext = 1;\n          tNext = t1 + pp[1] - pp[0];\n          break;\n        default:\n          iNext = i1 - 1;\n          tNext = t0;\n      }\n    }\n    const halfDt = (t1 - t0) * 0.5, stride = this.valueSize;\n    this._weightPrev = halfDt / (t0 - tPrev);\n    this._weightNext = halfDt / (tNext - t1);\n    this._offsetPrev = iPrev * stride;\n    this._offsetNext = iNext * stride;\n  }\n  interpolate_(i1, t0, t, t1) {\n    const result = this.resultBuffer, values = this.sampleValues, stride = this.valueSize, o1 = i1 * stride, o0 = o1 - stride, oP = this._offsetPrev, oN = this._offsetNext, wP = this._weightPrev, wN = this._weightNext, p = (t - t0) / (t1 - t0), pp = p * p, ppp = pp * p;\n    const sP = -wP * ppp + 2 * wP * pp - wP * p;\n    const s0 = (1 + wP) * ppp + (-1.5 - 2 * wP) * pp + (-0.5 + wP) * p + 1;\n    const s1 = (-1 - wN) * ppp + (1.5 + wN) * pp + 0.5 * p;\n    const sN = wN * ppp - wN * pp;\n    for (let i = 0; i !== stride; ++i) {\n      result[i] = sP * values[oP + i] + s0 * values[o0 + i] + s1 * values[o1 + i] + sN * values[oN + i];\n    }\n    return result;\n  }\n};\nvar LinearInterpolant = class extends Interpolant {\n  constructor(parameterPositions, sampleValues, sampleSize, resultBuffer) {\n    super(parameterPositions, sampleValues, sampleSize, resultBuffer);\n  }\n  interpolate_(i1, t0, t, t1) {\n    const result = this.resultBuffer, values = this.sampleValues, stride = this.valueSize, offset1 = i1 * stride, offset0 = offset1 - stride, weight1 = (t - t0) / (t1 - t0), weight0 = 1 - weight1;\n    for (let i = 0; i !== stride; ++i) {\n      result[i] = values[offset0 + i] * weight0 + values[offset1 + i] * weight1;\n    }\n    return result;\n  }\n};\nvar DiscreteInterpolant = class extends Interpolant {\n  constructor(parameterPositions, sampleValues, sampleSize, resultBuffer) {\n    super(parameterPositions, sampleValues, sampleSize, resultBuffer);\n  }\n  interpolate_(i1) {\n    return this.copySampleValue_(i1 - 1);\n  }\n};\nvar KeyframeTrack = class {\n  constructor(name, times, values, interpolation) {\n    if (name === void 0) throw new Error(\"THREE.KeyframeTrack: track name is undefined\");\n    if (times === void 0 || times.length === 0) throw new Error(\"THREE.KeyframeTrack: no keyframes in track named \" + name);\n    this.name = name;\n    this.times = convertArray(times, this.TimeBufferType);\n    this.values = convertArray(values, this.ValueBufferType);\n    this.setInterpolation(interpolation || this.DefaultInterpolation);\n  }\n  // Serialization (in static context, because of constructor invocation\n  // and automatic invocation of .toJSON):\n  static toJSON(track) {\n    const trackType = track.constructor;\n    let json;\n    if (trackType.toJSON !== this.toJSON) {\n      json = trackType.toJSON(track);\n    } else {\n      json = {\n        \"name\": track.name,\n        \"times\": convertArray(track.times, Array),\n        \"values\": convertArray(track.values, Array)\n      };\n      const interpolation = track.getInterpolation();\n      if (interpolation !== track.DefaultInterpolation) {\n        json.interpolation = interpolation;\n      }\n    }\n    json.type = track.ValueTypeName;\n    return json;\n  }\n  InterpolantFactoryMethodDiscrete(result) {\n    return new DiscreteInterpolant(this.times, this.values, this.getValueSize(), result);\n  }\n  InterpolantFactoryMethodLinear(result) {\n    return new LinearInterpolant(this.times, this.values, this.getValueSize(), result);\n  }\n  InterpolantFactoryMethodSmooth(result) {\n    return new CubicInterpolant(this.times, this.values, this.getValueSize(), result);\n  }\n  setInterpolation(interpolation) {\n    let factoryMethod;\n    switch (interpolation) {\n      case InterpolateDiscrete:\n        factoryMethod = this.InterpolantFactoryMethodDiscrete;\n        break;\n      case InterpolateLinear:\n        factoryMethod = this.InterpolantFactoryMethodLinear;\n        break;\n      case InterpolateSmooth:\n        factoryMethod = this.InterpolantFactoryMethodSmooth;\n        break;\n    }\n    if (factoryMethod === void 0) {\n      const message = \"unsupported interpolation for \" + this.ValueTypeName + \" keyframe track named \" + this.name;\n      if (this.createInterpolant === void 0) {\n        if (interpolation !== this.DefaultInterpolation) {\n          this.setInterpolation(this.DefaultInterpolation);\n        } else {\n          throw new Error(message);\n        }\n      }\n      console.warn(\"THREE.KeyframeTrack:\", message);\n      return this;\n    }\n    this.createInterpolant = factoryMethod;\n    return this;\n  }\n  getInterpolation() {\n    switch (this.createInterpolant) {\n      case this.InterpolantFactoryMethodDiscrete:\n        return InterpolateDiscrete;\n      case this.InterpolantFactoryMethodLinear:\n        return InterpolateLinear;\n      case this.InterpolantFactoryMethodSmooth:\n        return InterpolateSmooth;\n    }\n  }\n  getValueSize() {\n    return this.values.length / this.times.length;\n  }\n  // move all keyframes either forwards or backwards in time\n  shift(timeOffset) {\n    if (timeOffset !== 0) {\n      const times = this.times;\n      for (let i = 0, n = times.length; i !== n; ++i) {\n        times[i] += timeOffset;\n      }\n    }\n    return this;\n  }\n  // scale all keyframe times by a factor (useful for frame <-> seconds conversions)\n  scale(timeScale) {\n    if (timeScale !== 1) {\n      const times = this.times;\n      for (let i = 0, n = times.length; i !== n; ++i) {\n        times[i] *= timeScale;\n      }\n    }\n    return this;\n  }\n  // removes keyframes before and after animation without changing any values within the range [startTime, endTime].\n  // IMPORTANT: We do not shift around keys to the start of the track time, because for interpolated keys this will change their values\n  trim(startTime, endTime) {\n    const times = this.times, nKeys = times.length;\n    let from = 0, to = nKeys - 1;\n    while (from !== nKeys && times[from] < startTime) {\n      ++from;\n    }\n    while (to !== -1 && times[to] > endTime) {\n      --to;\n    }\n    ++to;\n    if (from !== 0 || to !== nKeys) {\n      if (from >= to) {\n        to = Math.max(to, 1);\n        from = to - 1;\n      }\n      const stride = this.getValueSize();\n      this.times = times.slice(from, to);\n      this.values = this.values.slice(from * stride, to * stride);\n    }\n    return this;\n  }\n  // ensure we do not get a GarbageInGarbageOut situation, make sure tracks are at least minimally viable\n  validate() {\n    let valid = true;\n    const valueSize = this.getValueSize();\n    if (valueSize - Math.floor(valueSize) !== 0) {\n      console.error(\"THREE.KeyframeTrack: Invalid value size in track.\", this);\n      valid = false;\n    }\n    const times = this.times, values = this.values, nKeys = times.length;\n    if (nKeys === 0) {\n      console.error(\"THREE.KeyframeTrack: Track is empty.\", this);\n      valid = false;\n    }\n    let prevTime = null;\n    for (let i = 0; i !== nKeys; i++) {\n      const currTime = times[i];\n      if (typeof currTime === \"number\" && isNaN(currTime)) {\n        console.error(\"THREE.KeyframeTrack: Time is not a valid number.\", this, i, currTime);\n        valid = false;\n        break;\n      }\n      if (prevTime !== null && prevTime > currTime) {\n        console.error(\"THREE.KeyframeTrack: Out of order keys.\", this, i, currTime, prevTime);\n        valid = false;\n        break;\n      }\n      prevTime = currTime;\n    }\n    if (values !== void 0) {\n      if (isTypedArray(values)) {\n        for (let i = 0, n = values.length; i !== n; ++i) {\n          const value = values[i];\n          if (isNaN(value)) {\n            console.error(\"THREE.KeyframeTrack: Value is not a valid number.\", this, i, value);\n            valid = false;\n            break;\n          }\n        }\n      }\n    }\n    return valid;\n  }\n  // removes equivalent sequential keys as common in morph target sequences\n  // (0,0,0,0,1,1,1,0,0,0,0,0,0,0) --> (0,0,1,1,0,0)\n  optimize() {\n    const times = this.times.slice(), values = this.values.slice(), stride = this.getValueSize(), smoothInterpolation = this.getInterpolation() === InterpolateSmooth, lastIndex = times.length - 1;\n    let writeIndex = 1;\n    for (let i = 1; i < lastIndex; ++i) {\n      let keep = false;\n      const time = times[i];\n      const timeNext = times[i + 1];\n      if (time !== timeNext && (i !== 1 || time !== times[0])) {\n        if (!smoothInterpolation) {\n          const offset = i * stride, offsetP = offset - stride, offsetN = offset + stride;\n          for (let j = 0; j !== stride; ++j) {\n            const value = values[offset + j];\n            if (value !== values[offsetP + j] || value !== values[offsetN + j]) {\n              keep = true;\n              break;\n            }\n          }\n        } else {\n          keep = true;\n        }\n      }\n      if (keep) {\n        if (i !== writeIndex) {\n          times[writeIndex] = times[i];\n          const readOffset = i * stride, writeOffset = writeIndex * stride;\n          for (let j = 0; j !== stride; ++j) {\n            values[writeOffset + j] = values[readOffset + j];\n          }\n        }\n        ++writeIndex;\n      }\n    }\n    if (lastIndex > 0) {\n      times[writeIndex] = times[lastIndex];\n      for (let readOffset = lastIndex * stride, writeOffset = writeIndex * stride, j = 0; j !== stride; ++j) {\n        values[writeOffset + j] = values[readOffset + j];\n      }\n      ++writeIndex;\n    }\n    if (writeIndex !== times.length) {\n      this.times = times.slice(0, writeIndex);\n      this.values = values.slice(0, writeIndex * stride);\n    } else {\n      this.times = times;\n      this.values = values;\n    }\n    return this;\n  }\n  clone() {\n    const times = this.times.slice();\n    const values = this.values.slice();\n    const TypedKeyframeTrack = this.constructor;\n    const track = new TypedKeyframeTrack(this.name, times, values);\n    track.createInterpolant = this.createInterpolant;\n    return track;\n  }\n};\nKeyframeTrack.prototype.TimeBufferType = Float32Array;\nKeyframeTrack.prototype.ValueBufferType = Float32Array;\nKeyframeTrack.prototype.DefaultInterpolation = InterpolateLinear;\nvar BooleanKeyframeTrack = class extends KeyframeTrack {\n  // No interpolation parameter because only InterpolateDiscrete is valid.\n  constructor(name, times, values) {\n    super(name, times, values);\n  }\n};\nBooleanKeyframeTrack.prototype.ValueTypeName = \"bool\";\nBooleanKeyframeTrack.prototype.ValueBufferType = Array;\nBooleanKeyframeTrack.prototype.DefaultInterpolation = InterpolateDiscrete;\nBooleanKeyframeTrack.prototype.InterpolantFactoryMethodLinear = void 0;\nBooleanKeyframeTrack.prototype.InterpolantFactoryMethodSmooth = void 0;\nvar ColorKeyframeTrack = class extends KeyframeTrack {\n};\nColorKeyframeTrack.prototype.ValueTypeName = \"color\";\nvar NumberKeyframeTrack = class extends KeyframeTrack {\n};\nNumberKeyframeTrack.prototype.ValueTypeName = \"number\";\nvar QuaternionLinearInterpolant = class extends Interpolant {\n  constructor(parameterPositions, sampleValues, sampleSize, resultBuffer) {\n    super(parameterPositions, sampleValues, sampleSize, resultBuffer);\n  }\n  interpolate_(i1, t0, t, t1) {\n    const result = this.resultBuffer, values = this.sampleValues, stride = this.valueSize, alpha = (t - t0) / (t1 - t0);\n    let offset = i1 * stride;\n    for (let end = offset + stride; offset !== end; offset += 4) {\n      Quaternion.slerpFlat(result, 0, values, offset - stride, values, offset, alpha);\n    }\n    return result;\n  }\n};\nvar QuaternionKeyframeTrack = class extends KeyframeTrack {\n  InterpolantFactoryMethodLinear(result) {\n    return new QuaternionLinearInterpolant(this.times, this.values, this.getValueSize(), result);\n  }\n};\nQuaternionKeyframeTrack.prototype.ValueTypeName = \"quaternion\";\nQuaternionKeyframeTrack.prototype.InterpolantFactoryMethodSmooth = void 0;\nvar StringKeyframeTrack = class extends KeyframeTrack {\n  // No interpolation parameter because only InterpolateDiscrete is valid.\n  constructor(name, times, values) {\n    super(name, times, values);\n  }\n};\nStringKeyframeTrack.prototype.ValueTypeName = \"string\";\nStringKeyframeTrack.prototype.ValueBufferType = Array;\nStringKeyframeTrack.prototype.DefaultInterpolation = InterpolateDiscrete;\nStringKeyframeTrack.prototype.InterpolantFactoryMethodLinear = void 0;\nStringKeyframeTrack.prototype.InterpolantFactoryMethodSmooth = void 0;\nvar VectorKeyframeTrack = class extends KeyframeTrack {\n};\nVectorKeyframeTrack.prototype.ValueTypeName = \"vector\";\nvar AnimationClip = class {\n  constructor(name = \"\", duration = -1, tracks = [], blendMode = NormalAnimationBlendMode) {\n    this.name = name;\n    this.tracks = tracks;\n    this.duration = duration;\n    this.blendMode = blendMode;\n    this.uuid = generateUUID();\n    if (this.duration < 0) {\n      this.resetDuration();\n    }\n  }\n  static parse(json) {\n    const tracks = [], jsonTracks = json.tracks, frameTime = 1 / (json.fps || 1);\n    for (let i = 0, n = jsonTracks.length; i !== n; ++i) {\n      tracks.push(parseKeyframeTrack(jsonTracks[i]).scale(frameTime));\n    }\n    const clip = new this(json.name, json.duration, tracks, json.blendMode);\n    clip.uuid = json.uuid;\n    return clip;\n  }\n  static toJSON(clip) {\n    const tracks = [], clipTracks = clip.tracks;\n    const json = {\n      \"name\": clip.name,\n      \"duration\": clip.duration,\n      \"tracks\": tracks,\n      \"uuid\": clip.uuid,\n      \"blendMode\": clip.blendMode\n    };\n    for (let i = 0, n = clipTracks.length; i !== n; ++i) {\n      tracks.push(KeyframeTrack.toJSON(clipTracks[i]));\n    }\n    return json;\n  }\n  static CreateFromMorphTargetSequence(name, morphTargetSequence, fps, noLoop) {\n    const numMorphTargets = morphTargetSequence.length;\n    const tracks = [];\n    for (let i = 0; i < numMorphTargets; i++) {\n      let times = [];\n      let values = [];\n      times.push(\n        (i + numMorphTargets - 1) % numMorphTargets,\n        i,\n        (i + 1) % numMorphTargets\n      );\n      values.push(0, 1, 0);\n      const order = getKeyframeOrder(times);\n      times = sortedArray(times, 1, order);\n      values = sortedArray(values, 1, order);\n      if (!noLoop && times[0] === 0) {\n        times.push(numMorphTargets);\n        values.push(values[0]);\n      }\n      tracks.push(\n        new NumberKeyframeTrack(\n          \".morphTargetInfluences[\" + morphTargetSequence[i].name + \"]\",\n          times,\n          values\n        ).scale(1 / fps)\n      );\n    }\n    return new this(name, -1, tracks);\n  }\n  static findByName(objectOrClipArray, name) {\n    let clipArray = objectOrClipArray;\n    if (!Array.isArray(objectOrClipArray)) {\n      const o = objectOrClipArray;\n      clipArray = o.geometry && o.geometry.animations || o.animations;\n    }\n    for (let i = 0; i < clipArray.length; i++) {\n      if (clipArray[i].name === name) {\n        return clipArray[i];\n      }\n    }\n    return null;\n  }\n  static CreateClipsFromMorphTargetSequences(morphTargets, fps, noLoop) {\n    const animationToMorphTargets = {};\n    const pattern = /^([\\w-]*?)([\\d]+)$/;\n    for (let i = 0, il = morphTargets.length; i < il; i++) {\n      const morphTarget = morphTargets[i];\n      const parts = morphTarget.name.match(pattern);\n      if (parts && parts.length > 1) {\n        const name = parts[1];\n        let animationMorphTargets = animationToMorphTargets[name];\n        if (!animationMorphTargets) {\n          animationToMorphTargets[name] = animationMorphTargets = [];\n        }\n        animationMorphTargets.push(morphTarget);\n      }\n    }\n    const clips = [];\n    for (const name in animationToMorphTargets) {\n      clips.push(this.CreateFromMorphTargetSequence(name, animationToMorphTargets[name], fps, noLoop));\n    }\n    return clips;\n  }\n  // parse the animation.hierarchy format\n  static parseAnimation(animation, bones) {\n    if (!animation) {\n      console.error(\"THREE.AnimationClip: No animation in JSONLoader data.\");\n      return null;\n    }\n    const addNonemptyTrack = function(trackType, trackName, animationKeys, propertyName, destTracks) {\n      if (animationKeys.length !== 0) {\n        const times = [];\n        const values = [];\n        flattenJSON(animationKeys, times, values, propertyName);\n        if (times.length !== 0) {\n          destTracks.push(new trackType(trackName, times, values));\n        }\n      }\n    };\n    const tracks = [];\n    const clipName = animation.name || \"default\";\n    const fps = animation.fps || 30;\n    const blendMode = animation.blendMode;\n    let duration = animation.length || -1;\n    const hierarchyTracks = animation.hierarchy || [];\n    for (let h = 0; h < hierarchyTracks.length; h++) {\n      const animationKeys = hierarchyTracks[h].keys;\n      if (!animationKeys || animationKeys.length === 0) continue;\n      if (animationKeys[0].morphTargets) {\n        const morphTargetNames = {};\n        let k;\n        for (k = 0; k < animationKeys.length; k++) {\n          if (animationKeys[k].morphTargets) {\n            for (let m = 0; m < animationKeys[k].morphTargets.length; m++) {\n              morphTargetNames[animationKeys[k].morphTargets[m]] = -1;\n            }\n          }\n        }\n        for (const morphTargetName in morphTargetNames) {\n          const times = [];\n          const values = [];\n          for (let m = 0; m !== animationKeys[k].morphTargets.length; ++m) {\n            const animationKey = animationKeys[k];\n            times.push(animationKey.time);\n            values.push(animationKey.morphTarget === morphTargetName ? 1 : 0);\n          }\n          tracks.push(new NumberKeyframeTrack(\".morphTargetInfluence[\" + morphTargetName + \"]\", times, values));\n        }\n        duration = morphTargetNames.length * fps;\n      } else {\n        const boneName = \".bones[\" + bones[h].name + \"]\";\n        addNonemptyTrack(\n          VectorKeyframeTrack,\n          boneName + \".position\",\n          animationKeys,\n          \"pos\",\n          tracks\n        );\n        addNonemptyTrack(\n          QuaternionKeyframeTrack,\n          boneName + \".quaternion\",\n          animationKeys,\n          \"rot\",\n          tracks\n        );\n        addNonemptyTrack(\n          VectorKeyframeTrack,\n          boneName + \".scale\",\n          animationKeys,\n          \"scl\",\n          tracks\n        );\n      }\n    }\n    if (tracks.length === 0) {\n      return null;\n    }\n    const clip = new this(clipName, duration, tracks, blendMode);\n    return clip;\n  }\n  resetDuration() {\n    const tracks = this.tracks;\n    let duration = 0;\n    for (let i = 0, n = tracks.length; i !== n; ++i) {\n      const track = this.tracks[i];\n      duration = Math.max(duration, track.times[track.times.length - 1]);\n    }\n    this.duration = duration;\n    return this;\n  }\n  trim() {\n    for (let i = 0; i < this.tracks.length; i++) {\n      this.tracks[i].trim(0, this.duration);\n    }\n    return this;\n  }\n  validate() {\n    let valid = true;\n    for (let i = 0; i < this.tracks.length; i++) {\n      valid = valid && this.tracks[i].validate();\n    }\n    return valid;\n  }\n  optimize() {\n    for (let i = 0; i < this.tracks.length; i++) {\n      this.tracks[i].optimize();\n    }\n    return this;\n  }\n  clone() {\n    const tracks = [];\n    for (let i = 0; i < this.tracks.length; i++) {\n      tracks.push(this.tracks[i].clone());\n    }\n    return new this.constructor(this.name, this.duration, tracks, this.blendMode);\n  }\n  toJSON() {\n    return this.constructor.toJSON(this);\n  }\n};\nfunction getTrackTypeForValueTypeName(typeName) {\n  switch (typeName.toLowerCase()) {\n    case \"scalar\":\n    case \"double\":\n    case \"float\":\n    case \"number\":\n    case \"integer\":\n      return NumberKeyframeTrack;\n    case \"vector\":\n    case \"vector2\":\n    case \"vector3\":\n    case \"vector4\":\n      return VectorKeyframeTrack;\n    case \"color\":\n      return ColorKeyframeTrack;\n    case \"quaternion\":\n      return QuaternionKeyframeTrack;\n    case \"bool\":\n    case \"boolean\":\n      return BooleanKeyframeTrack;\n    case \"string\":\n      return StringKeyframeTrack;\n  }\n  throw new Error(\"THREE.KeyframeTrack: Unsupported typeName: \" + typeName);\n}\nfunction parseKeyframeTrack(json) {\n  if (json.type === void 0) {\n    throw new Error(\"THREE.KeyframeTrack: track type undefined, can not parse\");\n  }\n  const trackType = getTrackTypeForValueTypeName(json.type);\n  if (json.times === void 0) {\n    const times = [], values = [];\n    flattenJSON(json.keys, times, values, \"value\");\n    json.times = times;\n    json.values = values;\n  }\n  if (trackType.parse !== void 0) {\n    return trackType.parse(json);\n  } else {\n    return new trackType(json.name, json.times, json.values, json.interpolation);\n  }\n}\nvar Cache = {\n  enabled: false,\n  files: {},\n  add: function(key, file) {\n    if (this.enabled === false) return;\n    this.files[key] = file;\n  },\n  get: function(key) {\n    if (this.enabled === false) return;\n    return this.files[key];\n  },\n  remove: function(key) {\n    delete this.files[key];\n  },\n  clear: function() {\n    this.files = {};\n  }\n};\nvar LoadingManager = class {\n  constructor(onLoad, onProgress, onError) {\n    const scope = this;\n    let isLoading = false;\n    let itemsLoaded = 0;\n    let itemsTotal = 0;\n    let urlModifier = void 0;\n    const handlers = [];\n    this.onStart = void 0;\n    this.onLoad = onLoad;\n    this.onProgress = onProgress;\n    this.onError = onError;\n    this.itemStart = function(url) {\n      itemsTotal++;\n      if (isLoading === false) {\n        if (scope.onStart !== void 0) {\n          scope.onStart(url, itemsLoaded, itemsTotal);\n        }\n      }\n      isLoading = true;\n    };\n    this.itemEnd = function(url) {\n      itemsLoaded++;\n      if (scope.onProgress !== void 0) {\n        scope.onProgress(url, itemsLoaded, itemsTotal);\n      }\n      if (itemsLoaded === itemsTotal) {\n        isLoading = false;\n        if (scope.onLoad !== void 0) {\n          scope.onLoad();\n        }\n      }\n    };\n    this.itemError = function(url) {\n      if (scope.onError !== void 0) {\n        scope.onError(url);\n      }\n    };\n    this.resolveURL = function(url) {\n      if (urlModifier) {\n        return urlModifier(url);\n      }\n      return url;\n    };\n    this.setURLModifier = function(transform) {\n      urlModifier = transform;\n      return this;\n    };\n    this.addHandler = function(regex, loader) {\n      handlers.push(regex, loader);\n      return this;\n    };\n    this.removeHandler = function(regex) {\n      const index = handlers.indexOf(regex);\n      if (index !== -1) {\n        handlers.splice(index, 2);\n      }\n      return this;\n    };\n    this.getHandler = function(file) {\n      for (let i = 0, l = handlers.length; i < l; i += 2) {\n        const regex = handlers[i];\n        const loader = handlers[i + 1];\n        if (regex.global) regex.lastIndex = 0;\n        if (regex.test(file)) {\n          return loader;\n        }\n      }\n      return null;\n    };\n  }\n};\nvar DefaultLoadingManager = /* @__PURE__ */ new LoadingManager();\nvar Loader = class {\n  constructor(manager) {\n    this.manager = manager !== void 0 ? manager : DefaultLoadingManager;\n    this.crossOrigin = \"anonymous\";\n    this.withCredentials = false;\n    this.path = \"\";\n    this.resourcePath = \"\";\n    this.requestHeader = {};\n  }\n  load() {\n  }\n  loadAsync(url, onProgress) {\n    const scope = this;\n    return new Promise(function(resolve, reject) {\n      scope.load(url, resolve, onProgress, reject);\n    });\n  }\n  parse() {\n  }\n  setCrossOrigin(crossOrigin) {\n    this.crossOrigin = crossOrigin;\n    return this;\n  }\n  setWithCredentials(value) {\n    this.withCredentials = value;\n    return this;\n  }\n  setPath(path) {\n    this.path = path;\n    return this;\n  }\n  setResourcePath(resourcePath) {\n    this.resourcePath = resourcePath;\n    return this;\n  }\n  setRequestHeader(requestHeader) {\n    this.requestHeader = requestHeader;\n    return this;\n  }\n};\nLoader.DEFAULT_MATERIAL_NAME = \"__DEFAULT\";\nvar loading = {};\nvar HttpError = class extends Error {\n  constructor(message, response) {\n    super(message);\n    this.response = response;\n  }\n};\nvar FileLoader = class extends Loader {\n  constructor(manager) {\n    super(manager);\n  }\n  load(url, onLoad, onProgress, onError) {\n    if (url === void 0) url = \"\";\n    if (this.path !== void 0) url = this.path + url;\n    url = this.manager.resolveURL(url);\n    const cached = Cache.get(url);\n    if (cached !== void 0) {\n      this.manager.itemStart(url);\n      setTimeout(() => {\n        if (onLoad) onLoad(cached);\n        this.manager.itemEnd(url);\n      }, 0);\n      return cached;\n    }\n    if (loading[url] !== void 0) {\n      loading[url].push({\n        onLoad,\n        onProgress,\n        onError\n      });\n      return;\n    }\n    loading[url] = [];\n    loading[url].push({\n      onLoad,\n      onProgress,\n      onError\n    });\n    const req = new Request(url, {\n      headers: new Headers(this.requestHeader),\n      credentials: this.withCredentials ? \"include\" : \"same-origin\"\n      // An abort controller could be added within a future PR\n    });\n    const mimeType = this.mimeType;\n    const responseType = this.responseType;\n    fetch(req).then((response) => {\n      if (response.status === 200 || response.status === 0) {\n        if (response.status === 0) {\n          console.warn(\"THREE.FileLoader: HTTP Status 0 received.\");\n        }\n        if (typeof ReadableStream === \"undefined\" || response.body === void 0 || response.body.getReader === void 0) {\n          return response;\n        }\n        const callbacks = loading[url];\n        const reader = response.body.getReader();\n        const contentLength = response.headers.get(\"X-File-Size\") || response.headers.get(\"Content-Length\");\n        const total = contentLength ? parseInt(contentLength) : 0;\n        const lengthComputable = total !== 0;\n        let loaded = 0;\n        const stream = new ReadableStream({\n          start(controller) {\n            readData();\n            function readData() {\n              reader.read().then(({ done, value }) => {\n                if (done) {\n                  controller.close();\n                } else {\n                  loaded += value.byteLength;\n                  const event = new ProgressEvent(\"progress\", { lengthComputable, loaded, total });\n                  for (let i = 0, il = callbacks.length; i < il; i++) {\n                    const callback = callbacks[i];\n                    if (callback.onProgress) callback.onProgress(event);\n                  }\n                  controller.enqueue(value);\n                  readData();\n                }\n              }, (e) => {\n                controller.error(e);\n              });\n            }\n          }\n        });\n        return new Response(stream);\n      } else {\n        throw new HttpError(`fetch for \"${response.url}\" responded with ${response.status}: ${response.statusText}`, response);\n      }\n    }).then((response) => {\n      switch (responseType) {\n        case \"arraybuffer\":\n          return response.arrayBuffer();\n        case \"blob\":\n          return response.blob();\n        case \"document\":\n          return response.text().then((text) => {\n            const parser = new DOMParser();\n            return parser.parseFromString(text, mimeType);\n          });\n        case \"json\":\n          return response.json();\n        default:\n          if (mimeType === void 0) {\n            return response.text();\n          } else {\n            const re = /charset=\"?([^;\"\\s]*)\"?/i;\n            const exec = re.exec(mimeType);\n            const label = exec && exec[1] ? exec[1].toLowerCase() : void 0;\n            const decoder = new TextDecoder(label);\n            return response.arrayBuffer().then((ab) => decoder.decode(ab));\n          }\n      }\n    }).then((data) => {\n      Cache.add(url, data);\n      const callbacks = loading[url];\n      delete loading[url];\n      for (let i = 0, il = callbacks.length; i < il; i++) {\n        const callback = callbacks[i];\n        if (callback.onLoad) callback.onLoad(data);\n      }\n    }).catch((err) => {\n      const callbacks = loading[url];\n      if (callbacks === void 0) {\n        this.manager.itemError(url);\n        throw err;\n      }\n      delete loading[url];\n      for (let i = 0, il = callbacks.length; i < il; i++) {\n        const callback = callbacks[i];\n        if (callback.onError) callback.onError(err);\n      }\n      this.manager.itemError(url);\n    }).finally(() => {\n      this.manager.itemEnd(url);\n    });\n    this.manager.itemStart(url);\n  }\n  setResponseType(value) {\n    this.responseType = value;\n    return this;\n  }\n  setMimeType(value) {\n    this.mimeType = value;\n    return this;\n  }\n};\nvar AnimationLoader = class extends Loader {\n  constructor(manager) {\n    super(manager);\n  }\n  load(url, onLoad, onProgress, onError) {\n    const scope = this;\n    const loader = new FileLoader(this.manager);\n    loader.setPath(this.path);\n    loader.setRequestHeader(this.requestHeader);\n    loader.setWithCredentials(this.withCredentials);\n    loader.load(url, function(text) {\n      try {\n        onLoad(scope.parse(JSON.parse(text)));\n      } catch (e) {\n        if (onError) {\n          onError(e);\n        } else {\n          console.error(e);\n        }\n        scope.manager.itemError(url);\n      }\n    }, onProgress, onError);\n  }\n  parse(json) {\n    const animations = [];\n    for (let i = 0; i < json.length; i++) {\n      const clip = AnimationClip.parse(json[i]);\n      animations.push(clip);\n    }\n    return animations;\n  }\n};\nvar CompressedTextureLoader = class extends Loader {\n  constructor(manager) {\n    super(manager);\n  }\n  load(url, onLoad, onProgress, onError) {\n    const scope = this;\n    const images = [];\n    const texture = new CompressedTexture();\n    const loader = new FileLoader(this.manager);\n    loader.setPath(this.path);\n    loader.setResponseType(\"arraybuffer\");\n    loader.setRequestHeader(this.requestHeader);\n    loader.setWithCredentials(scope.withCredentials);\n    let loaded = 0;\n    function loadTexture(i) {\n      loader.load(url[i], function(buffer) {\n        const texDatas = scope.parse(buffer, true);\n        images[i] = {\n          width: texDatas.width,\n          height: texDatas.height,\n          format: texDatas.format,\n          mipmaps: texDatas.mipmaps\n        };\n        loaded += 1;\n        if (loaded === 6) {\n          if (texDatas.mipmapCount === 1) texture.minFilter = LinearFilter;\n          texture.image = images;\n          texture.format = texDatas.format;\n          texture.needsUpdate = true;\n          if (onLoad) onLoad(texture);\n        }\n      }, onProgress, onError);\n    }\n    if (Array.isArray(url)) {\n      for (let i = 0, il = url.length; i < il; ++i) {\n        loadTexture(i);\n      }\n    } else {\n      loader.load(url, function(buffer) {\n        const texDatas = scope.parse(buffer, true);\n        if (texDatas.isCubemap) {\n          const faces = texDatas.mipmaps.length / texDatas.mipmapCount;\n          for (let f = 0; f < faces; f++) {\n            images[f] = { mipmaps: [] };\n            for (let i = 0; i < texDatas.mipmapCount; i++) {\n              images[f].mipmaps.push(texDatas.mipmaps[f * texDatas.mipmapCount + i]);\n              images[f].format = texDatas.format;\n              images[f].width = texDatas.width;\n              images[f].height = texDatas.height;\n            }\n          }\n          texture.image = images;\n        } else {\n          texture.image.width = texDatas.width;\n          texture.image.height = texDatas.height;\n          texture.mipmaps = texDatas.mipmaps;\n        }\n        if (texDatas.mipmapCount === 1) {\n          texture.minFilter = LinearFilter;\n        }\n        texture.format = texDatas.format;\n        texture.needsUpdate = true;\n        if (onLoad) onLoad(texture);\n      }, onProgress, onError);\n    }\n    return texture;\n  }\n};\nvar ImageLoader = class extends Loader {\n  constructor(manager) {\n    super(manager);\n  }\n  load(url, onLoad, onProgress, onError) {\n    if (this.path !== void 0) url = this.path + url;\n    url = this.manager.resolveURL(url);\n    const scope = this;\n    const cached = Cache.get(url);\n    if (cached !== void 0) {\n      scope.manager.itemStart(url);\n      setTimeout(function() {\n        if (onLoad) onLoad(cached);\n        scope.manager.itemEnd(url);\n      }, 0);\n      return cached;\n    }\n    const image = createElementNS(\"img\");\n    function onImageLoad() {\n      removeEventListeners();\n      Cache.add(url, this);\n      if (onLoad) onLoad(this);\n      scope.manager.itemEnd(url);\n    }\n    function onImageError(event) {\n      removeEventListeners();\n      if (onError) onError(event);\n      scope.manager.itemError(url);\n      scope.manager.itemEnd(url);\n    }\n    function removeEventListeners() {\n      image.removeEventListener(\"load\", onImageLoad, false);\n      image.removeEventListener(\"error\", onImageError, false);\n    }\n    image.addEventListener(\"load\", onImageLoad, false);\n    image.addEventListener(\"error\", onImageError, false);\n    if (url.slice(0, 5) !== \"data:\") {\n      if (this.crossOrigin !== void 0) image.crossOrigin = this.crossOrigin;\n    }\n    scope.manager.itemStart(url);\n    image.src = url;\n    return image;\n  }\n};\nvar CubeTextureLoader = class extends Loader {\n  constructor(manager) {\n    super(manager);\n  }\n  load(urls, onLoad, onProgress, onError) {\n    const texture = new CubeTexture();\n    texture.colorSpace = SRGBColorSpace;\n    const loader = new ImageLoader(this.manager);\n    loader.setCrossOrigin(this.crossOrigin);\n    loader.setPath(this.path);\n    let loaded = 0;\n    function loadTexture(i) {\n      loader.load(urls[i], function(image) {\n        texture.images[i] = image;\n        loaded++;\n        if (loaded === 6) {\n          texture.needsUpdate = true;\n          if (onLoad) onLoad(texture);\n        }\n      }, void 0, onError);\n    }\n    for (let i = 0; i < urls.length; ++i) {\n      loadTexture(i);\n    }\n    return texture;\n  }\n};\nvar DataTextureLoader = class extends Loader {\n  constructor(manager) {\n    super(manager);\n  }\n  load(url, onLoad, onProgress, onError) {\n    const scope = this;\n    const texture = new DataTexture();\n    const loader = new FileLoader(this.manager);\n    loader.setResponseType(\"arraybuffer\");\n    loader.setRequestHeader(this.requestHeader);\n    loader.setPath(this.path);\n    loader.setWithCredentials(scope.withCredentials);\n    loader.load(url, function(buffer) {\n      let texData;\n      try {\n        texData = scope.parse(buffer);\n      } catch (error) {\n        if (onError !== void 0) {\n          onError(error);\n        } else {\n          console.error(error);\n          return;\n        }\n      }\n      if (texData.image !== void 0) {\n        texture.image = texData.image;\n      } else if (texData.data !== void 0) {\n        texture.image.width = texData.width;\n        texture.image.height = texData.height;\n        texture.image.data = texData.data;\n      }\n      texture.wrapS = texData.wrapS !== void 0 ? texData.wrapS : ClampToEdgeWrapping;\n      texture.wrapT = texData.wrapT !== void 0 ? texData.wrapT : ClampToEdgeWrapping;\n      texture.magFilter = texData.magFilter !== void 0 ? texData.magFilter : LinearFilter;\n      texture.minFilter = texData.minFilter !== void 0 ? texData.minFilter : LinearFilter;\n      texture.anisotropy = texData.anisotropy !== void 0 ? texData.anisotropy : 1;\n      if (texData.colorSpace !== void 0) {\n        texture.colorSpace = texData.colorSpace;\n      }\n      if (texData.flipY !== void 0) {\n        texture.flipY = texData.flipY;\n      }\n      if (texData.format !== void 0) {\n        texture.format = texData.format;\n      }\n      if (texData.type !== void 0) {\n        texture.type = texData.type;\n      }\n      if (texData.mipmaps !== void 0) {\n        texture.mipmaps = texData.mipmaps;\n        texture.minFilter = LinearMipmapLinearFilter;\n      }\n      if (texData.mipmapCount === 1) {\n        texture.minFilter = LinearFilter;\n      }\n      if (texData.generateMipmaps !== void 0) {\n        texture.generateMipmaps = texData.generateMipmaps;\n      }\n      texture.needsUpdate = true;\n      if (onLoad) onLoad(texture, texData);\n    }, onProgress, onError);\n    return texture;\n  }\n};\nvar TextureLoader = class extends Loader {\n  constructor(manager) {\n    super(manager);\n  }\n  load(url, onLoad, onProgress, onError) {\n    const texture = new Texture();\n    const loader = new ImageLoader(this.manager);\n    loader.setCrossOrigin(this.crossOrigin);\n    loader.setPath(this.path);\n    loader.load(url, function(image) {\n      texture.image = image;\n      texture.needsUpdate = true;\n      if (onLoad !== void 0) {\n        onLoad(texture);\n      }\n    }, onProgress, onError);\n    return texture;\n  }\n};\nvar Light = class extends Object3D {\n  constructor(color, intensity = 1) {\n    super();\n    this.isLight = true;\n    this.type = \"Light\";\n    this.color = new Color(color);\n    this.intensity = intensity;\n  }\n  dispose() {\n  }\n  copy(source, recursive) {\n    super.copy(source, recursive);\n    this.color.copy(source.color);\n    this.intensity = source.intensity;\n    return this;\n  }\n  toJSON(meta) {\n    const data = super.toJSON(meta);\n    data.object.color = this.color.getHex();\n    data.object.intensity = this.intensity;\n    if (this.groundColor !== void 0) data.object.groundColor = this.groundColor.getHex();\n    if (this.distance !== void 0) data.object.distance = this.distance;\n    if (this.angle !== void 0) data.object.angle = this.angle;\n    if (this.decay !== void 0) data.object.decay = this.decay;\n    if (this.penumbra !== void 0) data.object.penumbra = this.penumbra;\n    if (this.shadow !== void 0) data.object.shadow = this.shadow.toJSON();\n    if (this.target !== void 0) data.object.target = this.target.uuid;\n    return data;\n  }\n};\nvar HemisphereLight = class extends Light {\n  constructor(skyColor, groundColor, intensity) {\n    super(skyColor, intensity);\n    this.isHemisphereLight = true;\n    this.type = \"HemisphereLight\";\n    this.position.copy(Object3D.DEFAULT_UP);\n    this.updateMatrix();\n    this.groundColor = new Color(groundColor);\n  }\n  copy(source, recursive) {\n    super.copy(source, recursive);\n    this.groundColor.copy(source.groundColor);\n    return this;\n  }\n};\nvar _projScreenMatrix$1 = /* @__PURE__ */ new Matrix4();\nvar _lightPositionWorld$1 = /* @__PURE__ */ new Vector3();\nvar _lookTarget$1 = /* @__PURE__ */ new Vector3();\nvar LightShadow = class {\n  constructor(camera) {\n    this.camera = camera;\n    this.intensity = 1;\n    this.bias = 0;\n    this.normalBias = 0;\n    this.radius = 1;\n    this.blurSamples = 8;\n    this.mapSize = new Vector2(512, 512);\n    this.map = null;\n    this.mapPass = null;\n    this.matrix = new Matrix4();\n    this.autoUpdate = true;\n    this.needsUpdate = false;\n    this._frustum = new Frustum();\n    this._frameExtents = new Vector2(1, 1);\n    this._viewportCount = 1;\n    this._viewports = [\n      new Vector4(0, 0, 1, 1)\n    ];\n  }\n  getViewportCount() {\n    return this._viewportCount;\n  }\n  getFrustum() {\n    return this._frustum;\n  }\n  updateMatrices(light) {\n    const shadowCamera = this.camera;\n    const shadowMatrix = this.matrix;\n    _lightPositionWorld$1.setFromMatrixPosition(light.matrixWorld);\n    shadowCamera.position.copy(_lightPositionWorld$1);\n    _lookTarget$1.setFromMatrixPosition(light.target.matrixWorld);\n    shadowCamera.lookAt(_lookTarget$1);\n    shadowCamera.updateMatrixWorld();\n    _projScreenMatrix$1.multiplyMatrices(shadowCamera.projectionMatrix, shadowCamera.matrixWorldInverse);\n    this._frustum.setFromProjectionMatrix(_projScreenMatrix$1);\n    shadowMatrix.set(\n      0.5,\n      0,\n      0,\n      0.5,\n      0,\n      0.5,\n      0,\n      0.5,\n      0,\n      0,\n      0.5,\n      0.5,\n      0,\n      0,\n      0,\n      1\n    );\n    shadowMatrix.multiply(_projScreenMatrix$1);\n  }\n  getViewport(viewportIndex) {\n    return this._viewports[viewportIndex];\n  }\n  getFrameExtents() {\n    return this._frameExtents;\n  }\n  dispose() {\n    if (this.map) {\n      this.map.dispose();\n    }\n    if (this.mapPass) {\n      this.mapPass.dispose();\n    }\n  }\n  copy(source) {\n    this.camera = source.camera.clone();\n    this.intensity = source.intensity;\n    this.bias = source.bias;\n    this.radius = source.radius;\n    this.mapSize.copy(source.mapSize);\n    return this;\n  }\n  clone() {\n    return new this.constructor().copy(this);\n  }\n  toJSON() {\n    const object = {};\n    if (this.intensity !== 1) object.intensity = this.intensity;\n    if (this.bias !== 0) object.bias = this.bias;\n    if (this.normalBias !== 0) object.normalBias = this.normalBias;\n    if (this.radius !== 1) object.radius = this.radius;\n    if (this.mapSize.x !== 512 || this.mapSize.y !== 512) object.mapSize = this.mapSize.toArray();\n    object.camera = this.camera.toJSON(false).object;\n    delete object.camera.matrix;\n    return object;\n  }\n};\nvar SpotLightShadow = class extends LightShadow {\n  constructor() {\n    super(new PerspectiveCamera(50, 1, 0.5, 500));\n    this.isSpotLightShadow = true;\n    this.focus = 1;\n  }\n  updateMatrices(light) {\n    const camera = this.camera;\n    const fov2 = RAD2DEG * 2 * light.angle * this.focus;\n    const aspect2 = this.mapSize.width / this.mapSize.height;\n    const far = light.distance || camera.far;\n    if (fov2 !== camera.fov || aspect2 !== camera.aspect || far !== camera.far) {\n      camera.fov = fov2;\n      camera.aspect = aspect2;\n      camera.far = far;\n      camera.updateProjectionMatrix();\n    }\n    super.updateMatrices(light);\n  }\n  copy(source) {\n    super.copy(source);\n    this.focus = source.focus;\n    return this;\n  }\n};\nvar SpotLight = class extends Light {\n  constructor(color, intensity, distance = 0, angle = Math.PI / 3, penumbra = 0, decay = 2) {\n    super(color, intensity);\n    this.isSpotLight = true;\n    this.type = \"SpotLight\";\n    this.position.copy(Object3D.DEFAULT_UP);\n    this.updateMatrix();\n    this.target = new Object3D();\n    this.distance = distance;\n    this.angle = angle;\n    this.penumbra = penumbra;\n    this.decay = decay;\n    this.map = null;\n    this.shadow = new SpotLightShadow();\n  }\n  get power() {\n    return this.intensity * Math.PI;\n  }\n  set power(power) {\n    this.intensity = power / Math.PI;\n  }\n  dispose() {\n    this.shadow.dispose();\n  }\n  copy(source, recursive) {\n    super.copy(source, recursive);\n    this.distance = source.distance;\n    this.angle = source.angle;\n    this.penumbra = source.penumbra;\n    this.decay = source.decay;\n    this.target = source.target.clone();\n    this.shadow = source.shadow.clone();\n    return this;\n  }\n};\nvar _projScreenMatrix = /* @__PURE__ */ new Matrix4();\nvar _lightPositionWorld = /* @__PURE__ */ new Vector3();\nvar _lookTarget = /* @__PURE__ */ new Vector3();\nvar PointLightShadow = class extends LightShadow {\n  constructor() {\n    super(new PerspectiveCamera(90, 1, 0.5, 500));\n    this.isPointLightShadow = true;\n    this._frameExtents = new Vector2(4, 2);\n    this._viewportCount = 6;\n    this._viewports = [\n      // These viewports map a cube-map onto a 2D texture with the\n      // following orientation:\n      //\n      //  xzXZ\n      //   y Y\n      //\n      // X - Positive x direction\n      // x - Negative x direction\n      // Y - Positive y direction\n      // y - Negative y direction\n      // Z - Positive z direction\n      // z - Negative z direction\n      // positive X\n      new Vector4(2, 1, 1, 1),\n      // negative X\n      new Vector4(0, 1, 1, 1),\n      // positive Z\n      new Vector4(3, 1, 1, 1),\n      // negative Z\n      new Vector4(1, 1, 1, 1),\n      // positive Y\n      new Vector4(3, 0, 1, 1),\n      // negative Y\n      new Vector4(1, 0, 1, 1)\n    ];\n    this._cubeDirections = [\n      new Vector3(1, 0, 0),\n      new Vector3(-1, 0, 0),\n      new Vector3(0, 0, 1),\n      new Vector3(0, 0, -1),\n      new Vector3(0, 1, 0),\n      new Vector3(0, -1, 0)\n    ];\n    this._cubeUps = [\n      new Vector3(0, 1, 0),\n      new Vector3(0, 1, 0),\n      new Vector3(0, 1, 0),\n      new Vector3(0, 1, 0),\n      new Vector3(0, 0, 1),\n      new Vector3(0, 0, -1)\n    ];\n  }\n  updateMatrices(light, viewportIndex = 0) {\n    const camera = this.camera;\n    const shadowMatrix = this.matrix;\n    const far = light.distance || camera.far;\n    if (far !== camera.far) {\n      camera.far = far;\n      camera.updateProjectionMatrix();\n    }\n    _lightPositionWorld.setFromMatrixPosition(light.matrixWorld);\n    camera.position.copy(_lightPositionWorld);\n    _lookTarget.copy(camera.position);\n    _lookTarget.add(this._cubeDirections[viewportIndex]);\n    camera.up.copy(this._cubeUps[viewportIndex]);\n    camera.lookAt(_lookTarget);\n    camera.updateMatrixWorld();\n    shadowMatrix.makeTranslation(-_lightPositionWorld.x, -_lightPositionWorld.y, -_lightPositionWorld.z);\n    _projScreenMatrix.multiplyMatrices(camera.projectionMatrix, camera.matrixWorldInverse);\n    this._frustum.setFromProjectionMatrix(_projScreenMatrix);\n  }\n};\nvar PointLight = class extends Light {\n  constructor(color, intensity, distance = 0, decay = 2) {\n    super(color, intensity);\n    this.isPointLight = true;\n    this.type = \"PointLight\";\n    this.distance = distance;\n    this.decay = decay;\n    this.shadow = new PointLightShadow();\n  }\n  get power() {\n    return this.intensity * 4 * Math.PI;\n  }\n  set power(power) {\n    this.intensity = power / (4 * Math.PI);\n  }\n  dispose() {\n    this.shadow.dispose();\n  }\n  copy(source, recursive) {\n    super.copy(source, recursive);\n    this.distance = source.distance;\n    this.decay = source.decay;\n    this.shadow = source.shadow.clone();\n    return this;\n  }\n};\nvar DirectionalLightShadow = class extends LightShadow {\n  constructor() {\n    super(new OrthographicCamera(-5, 5, 5, -5, 0.5, 500));\n    this.isDirectionalLightShadow = true;\n  }\n};\nvar DirectionalLight = class extends Light {\n  constructor(color, intensity) {\n    super(color, intensity);\n    this.isDirectionalLight = true;\n    this.type = \"DirectionalLight\";\n    this.position.copy(Object3D.DEFAULT_UP);\n    this.updateMatrix();\n    this.target = new Object3D();\n    this.shadow = new DirectionalLightShadow();\n  }\n  dispose() {\n    this.shadow.dispose();\n  }\n  copy(source) {\n    super.copy(source);\n    this.target = source.target.clone();\n    this.shadow = source.shadow.clone();\n    return this;\n  }\n};\nvar AmbientLight = class extends Light {\n  constructor(color, intensity) {\n    super(color, intensity);\n    this.isAmbientLight = true;\n    this.type = \"AmbientLight\";\n  }\n};\nvar RectAreaLight = class extends Light {\n  constructor(color, intensity, width = 10, height = 10) {\n    super(color, intensity);\n    this.isRectAreaLight = true;\n    this.type = \"RectAreaLight\";\n    this.width = width;\n    this.height = height;\n  }\n  get power() {\n    return this.intensity * this.width * this.height * Math.PI;\n  }\n  set power(power) {\n    this.intensity = power / (this.width * this.height * Math.PI);\n  }\n  copy(source) {\n    super.copy(source);\n    this.width = source.width;\n    this.height = source.height;\n    return this;\n  }\n  toJSON(meta) {\n    const data = super.toJSON(meta);\n    data.object.width = this.width;\n    data.object.height = this.height;\n    return data;\n  }\n};\nvar SphericalHarmonics3 = class {\n  constructor() {\n    this.isSphericalHarmonics3 = true;\n    this.coefficients = [];\n    for (let i = 0; i < 9; i++) {\n      this.coefficients.push(new Vector3());\n    }\n  }\n  set(coefficients) {\n    for (let i = 0; i < 9; i++) {\n      this.coefficients[i].copy(coefficients[i]);\n    }\n    return this;\n  }\n  zero() {\n    for (let i = 0; i < 9; i++) {\n      this.coefficients[i].set(0, 0, 0);\n    }\n    return this;\n  }\n  // get the radiance in the direction of the normal\n  // target is a Vector3\n  getAt(normal, target) {\n    const x = normal.x, y = normal.y, z = normal.z;\n    const coeff = this.coefficients;\n    target.copy(coeff[0]).multiplyScalar(0.282095);\n    target.addScaledVector(coeff[1], 0.488603 * y);\n    target.addScaledVector(coeff[2], 0.488603 * z);\n    target.addScaledVector(coeff[3], 0.488603 * x);\n    target.addScaledVector(coeff[4], 1.092548 * (x * y));\n    target.addScaledVector(coeff[5], 1.092548 * (y * z));\n    target.addScaledVector(coeff[6], 0.315392 * (3 * z * z - 1));\n    target.addScaledVector(coeff[7], 1.092548 * (x * z));\n    target.addScaledVector(coeff[8], 0.546274 * (x * x - y * y));\n    return target;\n  }\n  // get the irradiance (radiance convolved with cosine lobe) in the direction of the normal\n  // target is a Vector3\n  // https://graphics.stanford.edu/papers/envmap/envmap.pdf\n  getIrradianceAt(normal, target) {\n    const x = normal.x, y = normal.y, z = normal.z;\n    const coeff = this.coefficients;\n    target.copy(coeff[0]).multiplyScalar(0.886227);\n    target.addScaledVector(coeff[1], 2 * 0.511664 * y);\n    target.addScaledVector(coeff[2], 2 * 0.511664 * z);\n    target.addScaledVector(coeff[3], 2 * 0.511664 * x);\n    target.addScaledVector(coeff[4], 2 * 0.429043 * x * y);\n    target.addScaledVector(coeff[5], 2 * 0.429043 * y * z);\n    target.addScaledVector(coeff[6], 0.743125 * z * z - 0.247708);\n    target.addScaledVector(coeff[7], 2 * 0.429043 * x * z);\n    target.addScaledVector(coeff[8], 0.429043 * (x * x - y * y));\n    return target;\n  }\n  add(sh) {\n    for (let i = 0; i < 9; i++) {\n      this.coefficients[i].add(sh.coefficients[i]);\n    }\n    return this;\n  }\n  addScaledSH(sh, s) {\n    for (let i = 0; i < 9; i++) {\n      this.coefficients[i].addScaledVector(sh.coefficients[i], s);\n    }\n    return this;\n  }\n  scale(s) {\n    for (let i = 0; i < 9; i++) {\n      this.coefficients[i].multiplyScalar(s);\n    }\n    return this;\n  }\n  lerp(sh, alpha) {\n    for (let i = 0; i < 9; i++) {\n      this.coefficients[i].lerp(sh.coefficients[i], alpha);\n    }\n    return this;\n  }\n  equals(sh) {\n    for (let i = 0; i < 9; i++) {\n      if (!this.coefficients[i].equals(sh.coefficients[i])) {\n        return false;\n      }\n    }\n    return true;\n  }\n  copy(sh) {\n    return this.set(sh.coefficients);\n  }\n  clone() {\n    return new this.constructor().copy(this);\n  }\n  fromArray(array, offset = 0) {\n    const coefficients = this.coefficients;\n    for (let i = 0; i < 9; i++) {\n      coefficients[i].fromArray(array, offset + i * 3);\n    }\n    return this;\n  }\n  toArray(array = [], offset = 0) {\n    const coefficients = this.coefficients;\n    for (let i = 0; i < 9; i++) {\n      coefficients[i].toArray(array, offset + i * 3);\n    }\n    return array;\n  }\n  // evaluate the basis functions\n  // shBasis is an Array[ 9 ]\n  static getBasisAt(normal, shBasis) {\n    const x = normal.x, y = normal.y, z = normal.z;\n    shBasis[0] = 0.282095;\n    shBasis[1] = 0.488603 * y;\n    shBasis[2] = 0.488603 * z;\n    shBasis[3] = 0.488603 * x;\n    shBasis[4] = 1.092548 * x * y;\n    shBasis[5] = 1.092548 * y * z;\n    shBasis[6] = 0.315392 * (3 * z * z - 1);\n    shBasis[7] = 1.092548 * x * z;\n    shBasis[8] = 0.546274 * (x * x - y * y);\n  }\n};\nvar LightProbe = class extends Light {\n  constructor(sh = new SphericalHarmonics3(), intensity = 1) {\n    super(void 0, intensity);\n    this.isLightProbe = true;\n    this.sh = sh;\n  }\n  copy(source) {\n    super.copy(source);\n    this.sh.copy(source.sh);\n    return this;\n  }\n  fromJSON(json) {\n    this.intensity = json.intensity;\n    this.sh.fromArray(json.sh);\n    return this;\n  }\n  toJSON(meta) {\n    const data = super.toJSON(meta);\n    data.object.sh = this.sh.toArray();\n    return data;\n  }\n};\nvar MaterialLoader = class _MaterialLoader extends Loader {\n  constructor(manager) {\n    super(manager);\n    this.textures = {};\n  }\n  load(url, onLoad, onProgress, onError) {\n    const scope = this;\n    const loader = new FileLoader(scope.manager);\n    loader.setPath(scope.path);\n    loader.setRequestHeader(scope.requestHeader);\n    loader.setWithCredentials(scope.withCredentials);\n    loader.load(url, function(text) {\n      try {\n        onLoad(scope.parse(JSON.parse(text)));\n      } catch (e) {\n        if (onError) {\n          onError(e);\n        } else {\n          console.error(e);\n        }\n        scope.manager.itemError(url);\n      }\n    }, onProgress, onError);\n  }\n  parse(json) {\n    const textures = this.textures;\n    function getTexture(name) {\n      if (textures[name] === void 0) {\n        console.warn(\"THREE.MaterialLoader: Undefined texture\", name);\n      }\n      return textures[name];\n    }\n    const material = this.createMaterialFromType(json.type);\n    if (json.uuid !== void 0) material.uuid = json.uuid;\n    if (json.name !== void 0) material.name = json.name;\n    if (json.color !== void 0 && material.color !== void 0) material.color.setHex(json.color);\n    if (json.roughness !== void 0) material.roughness = json.roughness;\n    if (json.metalness !== void 0) material.metalness = json.metalness;\n    if (json.sheen !== void 0) material.sheen = json.sheen;\n    if (json.sheenColor !== void 0) material.sheenColor = new Color().setHex(json.sheenColor);\n    if (json.sheenRoughness !== void 0) material.sheenRoughness = json.sheenRoughness;\n    if (json.emissive !== void 0 && material.emissive !== void 0) material.emissive.setHex(json.emissive);\n    if (json.specular !== void 0 && material.specular !== void 0) material.specular.setHex(json.specular);\n    if (json.specularIntensity !== void 0) material.specularIntensity = json.specularIntensity;\n    if (json.specularColor !== void 0 && material.specularColor !== void 0) material.specularColor.setHex(json.specularColor);\n    if (json.shininess !== void 0) material.shininess = json.shininess;\n    if (json.clearcoat !== void 0) material.clearcoat = json.clearcoat;\n    if (json.clearcoatRoughness !== void 0) material.clearcoatRoughness = json.clearcoatRoughness;\n    if (json.dispersion !== void 0) material.dispersion = json.dispersion;\n    if (json.iridescence !== void 0) material.iridescence = json.iridescence;\n    if (json.iridescenceIOR !== void 0) material.iridescenceIOR = json.iridescenceIOR;\n    if (json.iridescenceThicknessRange !== void 0) material.iridescenceThicknessRange = json.iridescenceThicknessRange;\n    if (json.transmission !== void 0) material.transmission = json.transmission;\n    if (json.thickness !== void 0) material.thickness = json.thickness;\n    if (json.attenuationDistance !== void 0) material.attenuationDistance = json.attenuationDistance;\n    if (json.attenuationColor !== void 0 && material.attenuationColor !== void 0) material.attenuationColor.setHex(json.attenuationColor);\n    if (json.anisotropy !== void 0) material.anisotropy = json.anisotropy;\n    if (json.anisotropyRotation !== void 0) material.anisotropyRotation = json.anisotropyRotation;\n    if (json.fog !== void 0) material.fog = json.fog;\n    if (json.flatShading !== void 0) material.flatShading = json.flatShading;\n    if (json.blending !== void 0) material.blending = json.blending;\n    if (json.combine !== void 0) material.combine = json.combine;\n    if (json.side !== void 0) material.side = json.side;\n    if (json.shadowSide !== void 0) material.shadowSide = json.shadowSide;\n    if (json.opacity !== void 0) material.opacity = json.opacity;\n    if (json.transparent !== void 0) material.transparent = json.transparent;\n    if (json.alphaTest !== void 0) material.alphaTest = json.alphaTest;\n    if (json.alphaHash !== void 0) material.alphaHash = json.alphaHash;\n    if (json.depthFunc !== void 0) material.depthFunc = json.depthFunc;\n    if (json.depthTest !== void 0) material.depthTest = json.depthTest;\n    if (json.depthWrite !== void 0) material.depthWrite = json.depthWrite;\n    if (json.colorWrite !== void 0) material.colorWrite = json.colorWrite;\n    if (json.blendSrc !== void 0) material.blendSrc = json.blendSrc;\n    if (json.blendDst !== void 0) material.blendDst = json.blendDst;\n    if (json.blendEquation !== void 0) material.blendEquation = json.blendEquation;\n    if (json.blendSrcAlpha !== void 0) material.blendSrcAlpha = json.blendSrcAlpha;\n    if (json.blendDstAlpha !== void 0) material.blendDstAlpha = json.blendDstAlpha;\n    if (json.blendEquationAlpha !== void 0) material.blendEquationAlpha = json.blendEquationAlpha;\n    if (json.blendColor !== void 0 && material.blendColor !== void 0) material.blendColor.setHex(json.blendColor);\n    if (json.blendAlpha !== void 0) material.blendAlpha = json.blendAlpha;\n    if (json.stencilWriteMask !== void 0) material.stencilWriteMask = json.stencilWriteMask;\n    if (json.stencilFunc !== void 0) material.stencilFunc = json.stencilFunc;\n    if (json.stencilRef !== void 0) material.stencilRef = json.stencilRef;\n    if (json.stencilFuncMask !== void 0) material.stencilFuncMask = json.stencilFuncMask;\n    if (json.stencilFail !== void 0) material.stencilFail = json.stencilFail;\n    if (json.stencilZFail !== void 0) material.stencilZFail = json.stencilZFail;\n    if (json.stencilZPass !== void 0) material.stencilZPass = json.stencilZPass;\n    if (json.stencilWrite !== void 0) material.stencilWrite = json.stencilWrite;\n    if (json.wireframe !== void 0) material.wireframe = json.wireframe;\n    if (json.wireframeLinewidth !== void 0) material.wireframeLinewidth = json.wireframeLinewidth;\n    if (json.wireframeLinecap !== void 0) material.wireframeLinecap = json.wireframeLinecap;\n    if (json.wireframeLinejoin !== void 0) material.wireframeLinejoin = json.wireframeLinejoin;\n    if (json.rotation !== void 0) material.rotation = json.rotation;\n    if (json.linewidth !== void 0) material.linewidth = json.linewidth;\n    if (json.dashSize !== void 0) material.dashSize = json.dashSize;\n    if (json.gapSize !== void 0) material.gapSize = json.gapSize;\n    if (json.scale !== void 0) material.scale = json.scale;\n    if (json.polygonOffset !== void 0) material.polygonOffset = json.polygonOffset;\n    if (json.polygonOffsetFactor !== void 0) material.polygonOffsetFactor = json.polygonOffsetFactor;\n    if (json.polygonOffsetUnits !== void 0) material.polygonOffsetUnits = json.polygonOffsetUnits;\n    if (json.dithering !== void 0) material.dithering = json.dithering;\n    if (json.alphaToCoverage !== void 0) material.alphaToCoverage = json.alphaToCoverage;\n    if (json.premultipliedAlpha !== void 0) material.premultipliedAlpha = json.premultipliedAlpha;\n    if (json.forceSinglePass !== void 0) material.forceSinglePass = json.forceSinglePass;\n    if (json.visible !== void 0) material.visible = json.visible;\n    if (json.toneMapped !== void 0) material.toneMapped = json.toneMapped;\n    if (json.userData !== void 0) material.userData = json.userData;\n    if (json.vertexColors !== void 0) {\n      if (typeof json.vertexColors === \"number\") {\n        material.vertexColors = json.vertexColors > 0 ? true : false;\n      } else {\n        material.vertexColors = json.vertexColors;\n      }\n    }\n    if (json.uniforms !== void 0) {\n      for (const name in json.uniforms) {\n        const uniform = json.uniforms[name];\n        material.uniforms[name] = {};\n        switch (uniform.type) {\n          case \"t\":\n            material.uniforms[name].value = getTexture(uniform.value);\n            break;\n          case \"c\":\n            material.uniforms[name].value = new Color().setHex(uniform.value);\n            break;\n          case \"v2\":\n            material.uniforms[name].value = new Vector2().fromArray(uniform.value);\n            break;\n          case \"v3\":\n            material.uniforms[name].value = new Vector3().fromArray(uniform.value);\n            break;\n          case \"v4\":\n            material.uniforms[name].value = new Vector4().fromArray(uniform.value);\n            break;\n          case \"m3\":\n            material.uniforms[name].value = new Matrix3().fromArray(uniform.value);\n            break;\n          case \"m4\":\n            material.uniforms[name].value = new Matrix4().fromArray(uniform.value);\n            break;\n          default:\n            material.uniforms[name].value = uniform.value;\n        }\n      }\n    }\n    if (json.defines !== void 0) material.defines = json.defines;\n    if (json.vertexShader !== void 0) material.vertexShader = json.vertexShader;\n    if (json.fragmentShader !== void 0) material.fragmentShader = json.fragmentShader;\n    if (json.glslVersion !== void 0) material.glslVersion = json.glslVersion;\n    if (json.extensions !== void 0) {\n      for (const key in json.extensions) {\n        material.extensions[key] = json.extensions[key];\n      }\n    }\n    if (json.lights !== void 0) material.lights = json.lights;\n    if (json.clipping !== void 0) material.clipping = json.clipping;\n    if (json.size !== void 0) material.size = json.size;\n    if (json.sizeAttenuation !== void 0) material.sizeAttenuation = json.sizeAttenuation;\n    if (json.map !== void 0) material.map = getTexture(json.map);\n    if (json.matcap !== void 0) material.matcap = getTexture(json.matcap);\n    if (json.alphaMap !== void 0) material.alphaMap = getTexture(json.alphaMap);\n    if (json.bumpMap !== void 0) material.bumpMap = getTexture(json.bumpMap);\n    if (json.bumpScale !== void 0) material.bumpScale = json.bumpScale;\n    if (json.normalMap !== void 0) material.normalMap = getTexture(json.normalMap);\n    if (json.normalMapType !== void 0) material.normalMapType = json.normalMapType;\n    if (json.normalScale !== void 0) {\n      let normalScale = json.normalScale;\n      if (Array.isArray(normalScale) === false) {\n        normalScale = [normalScale, normalScale];\n      }\n      material.normalScale = new Vector2().fromArray(normalScale);\n    }\n    if (json.displacementMap !== void 0) material.displacementMap = getTexture(json.displacementMap);\n    if (json.displacementScale !== void 0) material.displacementScale = json.displacementScale;\n    if (json.displacementBias !== void 0) material.displacementBias = json.displacementBias;\n    if (json.roughnessMap !== void 0) material.roughnessMap = getTexture(json.roughnessMap);\n    if (json.metalnessMap !== void 0) material.metalnessMap = getTexture(json.metalnessMap);\n    if (json.emissiveMap !== void 0) material.emissiveMap = getTexture(json.emissiveMap);\n    if (json.emissiveIntensity !== void 0) material.emissiveIntensity = json.emissiveIntensity;\n    if (json.specularMap !== void 0) material.specularMap = getTexture(json.specularMap);\n    if (json.specularIntensityMap !== void 0) material.specularIntensityMap = getTexture(json.specularIntensityMap);\n    if (json.specularColorMap !== void 0) material.specularColorMap = getTexture(json.specularColorMap);\n    if (json.envMap !== void 0) material.envMap = getTexture(json.envMap);\n    if (json.envMapRotation !== void 0) material.envMapRotation.fromArray(json.envMapRotation);\n    if (json.envMapIntensity !== void 0) material.envMapIntensity = json.envMapIntensity;\n    if (json.reflectivity !== void 0) material.reflectivity = json.reflectivity;\n    if (json.refractionRatio !== void 0) material.refractionRatio = json.refractionRatio;\n    if (json.lightMap !== void 0) material.lightMap = getTexture(json.lightMap);\n    if (json.lightMapIntensity !== void 0) material.lightMapIntensity = json.lightMapIntensity;\n    if (json.aoMap !== void 0) material.aoMap = getTexture(json.aoMap);\n    if (json.aoMapIntensity !== void 0) material.aoMapIntensity = json.aoMapIntensity;\n    if (json.gradientMap !== void 0) material.gradientMap = getTexture(json.gradientMap);\n    if (json.clearcoatMap !== void 0) material.clearcoatMap = getTexture(json.clearcoatMap);\n    if (json.clearcoatRoughnessMap !== void 0) material.clearcoatRoughnessMap = getTexture(json.clearcoatRoughnessMap);\n    if (json.clearcoatNormalMap !== void 0) material.clearcoatNormalMap = getTexture(json.clearcoatNormalMap);\n    if (json.clearcoatNormalScale !== void 0) material.clearcoatNormalScale = new Vector2().fromArray(json.clearcoatNormalScale);\n    if (json.iridescenceMap !== void 0) material.iridescenceMap = getTexture(json.iridescenceMap);\n    if (json.iridescenceThicknessMap !== void 0) material.iridescenceThicknessMap = getTexture(json.iridescenceThicknessMap);\n    if (json.transmissionMap !== void 0) material.transmissionMap = getTexture(json.transmissionMap);\n    if (json.thicknessMap !== void 0) material.thicknessMap = getTexture(json.thicknessMap);\n    if (json.anisotropyMap !== void 0) material.anisotropyMap = getTexture(json.anisotropyMap);\n    if (json.sheenColorMap !== void 0) material.sheenColorMap = getTexture(json.sheenColorMap);\n    if (json.sheenRoughnessMap !== void 0) material.sheenRoughnessMap = getTexture(json.sheenRoughnessMap);\n    return material;\n  }\n  setTextures(value) {\n    this.textures = value;\n    return this;\n  }\n  createMaterialFromType(type) {\n    return _MaterialLoader.createMaterialFromType(type);\n  }\n  static createMaterialFromType(type) {\n    const materialLib = {\n      ShadowMaterial,\n      SpriteMaterial,\n      RawShaderMaterial,\n      ShaderMaterial,\n      PointsMaterial,\n      MeshPhysicalMaterial,\n      MeshStandardMaterial,\n      MeshPhongMaterial,\n      MeshToonMaterial,\n      MeshNormalMaterial,\n      MeshLambertMaterial,\n      MeshDepthMaterial,\n      MeshDistanceMaterial,\n      MeshBasicMaterial,\n      MeshMatcapMaterial,\n      LineDashedMaterial,\n      LineBasicMaterial,\n      Material\n    };\n    return new materialLib[type]();\n  }\n};\nvar LoaderUtils = class {\n  static decodeText(array) {\n    console.warn(\"THREE.LoaderUtils: decodeText() has been deprecated with r165 and will be removed with r175. Use TextDecoder instead.\");\n    if (typeof TextDecoder !== \"undefined\") {\n      return new TextDecoder().decode(array);\n    }\n    let s = \"\";\n    for (let i = 0, il = array.length; i < il; i++) {\n      s += String.fromCharCode(array[i]);\n    }\n    try {\n      return decodeURIComponent(escape(s));\n    } catch (e) {\n      return s;\n    }\n  }\n  static extractUrlBase(url) {\n    const index = url.lastIndexOf(\"/\");\n    if (index === -1) return \"./\";\n    return url.slice(0, index + 1);\n  }\n  static resolveURL(url, path) {\n    if (typeof url !== \"string\" || url === \"\") return \"\";\n    if (/^https?:\\/\\//i.test(path) && /^\\//.test(url)) {\n      path = path.replace(/(^https?:\\/\\/[^\\/]+).*/i, \"$1\");\n    }\n    if (/^(https?:)?\\/\\//i.test(url)) return url;\n    if (/^data:.*,.*$/i.test(url)) return url;\n    if (/^blob:.*$/i.test(url)) return url;\n    return path + url;\n  }\n};\nvar InstancedBufferGeometry = class extends BufferGeometry {\n  constructor() {\n    super();\n    this.isInstancedBufferGeometry = true;\n    this.type = \"InstancedBufferGeometry\";\n    this.instanceCount = Infinity;\n  }\n  copy(source) {\n    super.copy(source);\n    this.instanceCount = source.instanceCount;\n    return this;\n  }\n  toJSON() {\n    const data = super.toJSON();\n    data.instanceCount = this.instanceCount;\n    data.isInstancedBufferGeometry = true;\n    return data;\n  }\n};\nvar BufferGeometryLoader = class extends Loader {\n  constructor(manager) {\n    super(manager);\n  }\n  load(url, onLoad, onProgress, onError) {\n    const scope = this;\n    const loader = new FileLoader(scope.manager);\n    loader.setPath(scope.path);\n    loader.setRequestHeader(scope.requestHeader);\n    loader.setWithCredentials(scope.withCredentials);\n    loader.load(url, function(text) {\n      try {\n        onLoad(scope.parse(JSON.parse(text)));\n      } catch (e) {\n        if (onError) {\n          onError(e);\n        } else {\n          console.error(e);\n        }\n        scope.manager.itemError(url);\n      }\n    }, onProgress, onError);\n  }\n  parse(json) {\n    const interleavedBufferMap = {};\n    const arrayBufferMap = {};\n    function getInterleavedBuffer(json2, uuid) {\n      if (interleavedBufferMap[uuid] !== void 0) return interleavedBufferMap[uuid];\n      const interleavedBuffers = json2.interleavedBuffers;\n      const interleavedBuffer = interleavedBuffers[uuid];\n      const buffer = getArrayBuffer(json2, interleavedBuffer.buffer);\n      const array = getTypedArray(interleavedBuffer.type, buffer);\n      const ib = new InterleavedBuffer(array, interleavedBuffer.stride);\n      ib.uuid = interleavedBuffer.uuid;\n      interleavedBufferMap[uuid] = ib;\n      return ib;\n    }\n    function getArrayBuffer(json2, uuid) {\n      if (arrayBufferMap[uuid] !== void 0) return arrayBufferMap[uuid];\n      const arrayBuffers = json2.arrayBuffers;\n      const arrayBuffer = arrayBuffers[uuid];\n      const ab = new Uint32Array(arrayBuffer).buffer;\n      arrayBufferMap[uuid] = ab;\n      return ab;\n    }\n    const geometry = json.isInstancedBufferGeometry ? new InstancedBufferGeometry() : new BufferGeometry();\n    const index = json.data.index;\n    if (index !== void 0) {\n      const typedArray = getTypedArray(index.type, index.array);\n      geometry.setIndex(new BufferAttribute(typedArray, 1));\n    }\n    const attributes = json.data.attributes;\n    for (const key in attributes) {\n      const attribute = attributes[key];\n      let bufferAttribute;\n      if (attribute.isInterleavedBufferAttribute) {\n        const interleavedBuffer = getInterleavedBuffer(json.data, attribute.data);\n        bufferAttribute = new InterleavedBufferAttribute(interleavedBuffer, attribute.itemSize, attribute.offset, attribute.normalized);\n      } else {\n        const typedArray = getTypedArray(attribute.type, attribute.array);\n        const bufferAttributeConstr = attribute.isInstancedBufferAttribute ? InstancedBufferAttribute : BufferAttribute;\n        bufferAttribute = new bufferAttributeConstr(typedArray, attribute.itemSize, attribute.normalized);\n      }\n      if (attribute.name !== void 0) bufferAttribute.name = attribute.name;\n      if (attribute.usage !== void 0) bufferAttribute.setUsage(attribute.usage);\n      geometry.setAttribute(key, bufferAttribute);\n    }\n    const morphAttributes = json.data.morphAttributes;\n    if (morphAttributes) {\n      for (const key in morphAttributes) {\n        const attributeArray = morphAttributes[key];\n        const array = [];\n        for (let i = 0, il = attributeArray.length; i < il; i++) {\n          const attribute = attributeArray[i];\n          let bufferAttribute;\n          if (attribute.isInterleavedBufferAttribute) {\n            const interleavedBuffer = getInterleavedBuffer(json.data, attribute.data);\n            bufferAttribute = new InterleavedBufferAttribute(interleavedBuffer, attribute.itemSize, attribute.offset, attribute.normalized);\n          } else {\n            const typedArray = getTypedArray(attribute.type, attribute.array);\n            bufferAttribute = new BufferAttribute(typedArray, attribute.itemSize, attribute.normalized);\n          }\n          if (attribute.name !== void 0) bufferAttribute.name = attribute.name;\n          array.push(bufferAttribute);\n        }\n        geometry.morphAttributes[key] = array;\n      }\n    }\n    const morphTargetsRelative = json.data.morphTargetsRelative;\n    if (morphTargetsRelative) {\n      geometry.morphTargetsRelative = true;\n    }\n    const groups = json.data.groups || json.data.drawcalls || json.data.offsets;\n    if (groups !== void 0) {\n      for (let i = 0, n = groups.length; i !== n; ++i) {\n        const group = groups[i];\n        geometry.addGroup(group.start, group.count, group.materialIndex);\n      }\n    }\n    const boundingSphere = json.data.boundingSphere;\n    if (boundingSphere !== void 0) {\n      const center = new Vector3();\n      if (boundingSphere.center !== void 0) {\n        center.fromArray(boundingSphere.center);\n      }\n      geometry.boundingSphere = new Sphere(center, boundingSphere.radius);\n    }\n    if (json.name) geometry.name = json.name;\n    if (json.userData) geometry.userData = json.userData;\n    return geometry;\n  }\n};\nvar ObjectLoader = class extends Loader {\n  constructor(manager) {\n    super(manager);\n  }\n  load(url, onLoad, onProgress, onError) {\n    const scope = this;\n    const path = this.path === \"\" ? LoaderUtils.extractUrlBase(url) : this.path;\n    this.resourcePath = this.resourcePath || path;\n    const loader = new FileLoader(this.manager);\n    loader.setPath(this.path);\n    loader.setRequestHeader(this.requestHeader);\n    loader.setWithCredentials(this.withCredentials);\n    loader.load(url, function(text) {\n      let json = null;\n      try {\n        json = JSON.parse(text);\n      } catch (error) {\n        if (onError !== void 0) onError(error);\n        console.error(\"THREE:ObjectLoader: Can't parse \" + url + \".\", error.message);\n        return;\n      }\n      const metadata = json.metadata;\n      if (metadata === void 0 || metadata.type === void 0 || metadata.type.toLowerCase() === \"geometry\") {\n        if (onError !== void 0) onError(new Error(\"THREE.ObjectLoader: Can't load \" + url));\n        console.error(\"THREE.ObjectLoader: Can't load \" + url);\n        return;\n      }\n      scope.parse(json, onLoad);\n    }, onProgress, onError);\n  }\n  loadAsync(url, onProgress) {\n    return __async(this, null, function* () {\n      const scope = this;\n      const path = this.path === \"\" ? LoaderUtils.extractUrlBase(url) : this.path;\n      this.resourcePath = this.resourcePath || path;\n      const loader = new FileLoader(this.manager);\n      loader.setPath(this.path);\n      loader.setRequestHeader(this.requestHeader);\n      loader.setWithCredentials(this.withCredentials);\n      const text = yield loader.loadAsync(url, onProgress);\n      const json = JSON.parse(text);\n      const metadata = json.metadata;\n      if (metadata === void 0 || metadata.type === void 0 || metadata.type.toLowerCase() === \"geometry\") {\n        throw new Error(\"THREE.ObjectLoader: Can't load \" + url);\n      }\n      return yield scope.parseAsync(json);\n    });\n  }\n  parse(json, onLoad) {\n    const animations = this.parseAnimations(json.animations);\n    const shapes = this.parseShapes(json.shapes);\n    const geometries = this.parseGeometries(json.geometries, shapes);\n    const images = this.parseImages(json.images, function() {\n      if (onLoad !== void 0) onLoad(object);\n    });\n    const textures = this.parseTextures(json.textures, images);\n    const materials = this.parseMaterials(json.materials, textures);\n    const object = this.parseObject(json.object, geometries, materials, textures, animations);\n    const skeletons = this.parseSkeletons(json.skeletons, object);\n    this.bindSkeletons(object, skeletons);\n    this.bindLightTargets(object);\n    if (onLoad !== void 0) {\n      let hasImages = false;\n      for (const uuid in images) {\n        if (images[uuid].data instanceof HTMLImageElement) {\n          hasImages = true;\n          break;\n        }\n      }\n      if (hasImages === false) onLoad(object);\n    }\n    return object;\n  }\n  parseAsync(json) {\n    return __async(this, null, function* () {\n      const animations = this.parseAnimations(json.animations);\n      const shapes = this.parseShapes(json.shapes);\n      const geometries = this.parseGeometries(json.geometries, shapes);\n      const images = yield this.parseImagesAsync(json.images);\n      const textures = this.parseTextures(json.textures, images);\n      const materials = this.parseMaterials(json.materials, textures);\n      const object = this.parseObject(json.object, geometries, materials, textures, animations);\n      const skeletons = this.parseSkeletons(json.skeletons, object);\n      this.bindSkeletons(object, skeletons);\n      this.bindLightTargets(object);\n      return object;\n    });\n  }\n  parseShapes(json) {\n    const shapes = {};\n    if (json !== void 0) {\n      for (let i = 0, l = json.length; i < l; i++) {\n        const shape = new Shape().fromJSON(json[i]);\n        shapes[shape.uuid] = shape;\n      }\n    }\n    return shapes;\n  }\n  parseSkeletons(json, object) {\n    const skeletons = {};\n    const bones = {};\n    object.traverse(function(child) {\n      if (child.isBone) bones[child.uuid] = child;\n    });\n    if (json !== void 0) {\n      for (let i = 0, l = json.length; i < l; i++) {\n        const skeleton = new Skeleton().fromJSON(json[i], bones);\n        skeletons[skeleton.uuid] = skeleton;\n      }\n    }\n    return skeletons;\n  }\n  parseGeometries(json, shapes) {\n    const geometries = {};\n    if (json !== void 0) {\n      const bufferGeometryLoader = new BufferGeometryLoader();\n      for (let i = 0, l = json.length; i < l; i++) {\n        let geometry;\n        const data = json[i];\n        switch (data.type) {\n          case \"BufferGeometry\":\n          case \"InstancedBufferGeometry\":\n            geometry = bufferGeometryLoader.parse(data);\n            break;\n          default:\n            if (data.type in Geometries) {\n              geometry = Geometries[data.type].fromJSON(data, shapes);\n            } else {\n              console.warn(`THREE.ObjectLoader: Unsupported geometry type \"${data.type}\"`);\n            }\n        }\n        geometry.uuid = data.uuid;\n        if (data.name !== void 0) geometry.name = data.name;\n        if (data.userData !== void 0) geometry.userData = data.userData;\n        geometries[data.uuid] = geometry;\n      }\n    }\n    return geometries;\n  }\n  parseMaterials(json, textures) {\n    const cache = {};\n    const materials = {};\n    if (json !== void 0) {\n      const loader = new MaterialLoader();\n      loader.setTextures(textures);\n      for (let i = 0, l = json.length; i < l; i++) {\n        const data = json[i];\n        if (cache[data.uuid] === void 0) {\n          cache[data.uuid] = loader.parse(data);\n        }\n        materials[data.uuid] = cache[data.uuid];\n      }\n    }\n    return materials;\n  }\n  parseAnimations(json) {\n    const animations = {};\n    if (json !== void 0) {\n      for (let i = 0; i < json.length; i++) {\n        const data = json[i];\n        const clip = AnimationClip.parse(data);\n        animations[clip.uuid] = clip;\n      }\n    }\n    return animations;\n  }\n  parseImages(json, onLoad) {\n    const scope = this;\n    const images = {};\n    let loader;\n    function loadImage(url) {\n      scope.manager.itemStart(url);\n      return loader.load(url, function() {\n        scope.manager.itemEnd(url);\n      }, void 0, function() {\n        scope.manager.itemError(url);\n        scope.manager.itemEnd(url);\n      });\n    }\n    function deserializeImage(image) {\n      if (typeof image === \"string\") {\n        const url = image;\n        const path = /^(\\/\\/)|([a-z]+:(\\/\\/)?)/i.test(url) ? url : scope.resourcePath + url;\n        return loadImage(path);\n      } else {\n        if (image.data) {\n          return {\n            data: getTypedArray(image.type, image.data),\n            width: image.width,\n            height: image.height\n          };\n        } else {\n          return null;\n        }\n      }\n    }\n    if (json !== void 0 && json.length > 0) {\n      const manager = new LoadingManager(onLoad);\n      loader = new ImageLoader(manager);\n      loader.setCrossOrigin(this.crossOrigin);\n      for (let i = 0, il = json.length; i < il; i++) {\n        const image = json[i];\n        const url = image.url;\n        if (Array.isArray(url)) {\n          const imageArray = [];\n          for (let j = 0, jl = url.length; j < jl; j++) {\n            const currentUrl = url[j];\n            const deserializedImage = deserializeImage(currentUrl);\n            if (deserializedImage !== null) {\n              if (deserializedImage instanceof HTMLImageElement) {\n                imageArray.push(deserializedImage);\n              } else {\n                imageArray.push(new DataTexture(deserializedImage.data, deserializedImage.width, deserializedImage.height));\n              }\n            }\n          }\n          images[image.uuid] = new Source(imageArray);\n        } else {\n          const deserializedImage = deserializeImage(image.url);\n          images[image.uuid] = new Source(deserializedImage);\n        }\n      }\n    }\n    return images;\n  }\n  parseImagesAsync(json) {\n    return __async(this, null, function* () {\n      const scope = this;\n      const images = {};\n      let loader;\n      function deserializeImage(image) {\n        return __async(this, null, function* () {\n          if (typeof image === \"string\") {\n            const url = image;\n            const path = /^(\\/\\/)|([a-z]+:(\\/\\/)?)/i.test(url) ? url : scope.resourcePath + url;\n            return yield loader.loadAsync(path);\n          } else {\n            if (image.data) {\n              return {\n                data: getTypedArray(image.type, image.data),\n                width: image.width,\n                height: image.height\n              };\n            } else {\n              return null;\n            }\n          }\n        });\n      }\n      if (json !== void 0 && json.length > 0) {\n        loader = new ImageLoader(this.manager);\n        loader.setCrossOrigin(this.crossOrigin);\n        for (let i = 0, il = json.length; i < il; i++) {\n          const image = json[i];\n          const url = image.url;\n          if (Array.isArray(url)) {\n            const imageArray = [];\n            for (let j = 0, jl = url.length; j < jl; j++) {\n              const currentUrl = url[j];\n              const deserializedImage = yield deserializeImage(currentUrl);\n              if (deserializedImage !== null) {\n                if (deserializedImage instanceof HTMLImageElement) {\n                  imageArray.push(deserializedImage);\n                } else {\n                  imageArray.push(new DataTexture(deserializedImage.data, deserializedImage.width, deserializedImage.height));\n                }\n              }\n            }\n            images[image.uuid] = new Source(imageArray);\n          } else {\n            const deserializedImage = yield deserializeImage(image.url);\n            images[image.uuid] = new Source(deserializedImage);\n          }\n        }\n      }\n      return images;\n    });\n  }\n  parseTextures(json, images) {\n    function parseConstant(value, type) {\n      if (typeof value === \"number\") return value;\n      console.warn(\"THREE.ObjectLoader.parseTexture: Constant should be in numeric form.\", value);\n      return type[value];\n    }\n    const textures = {};\n    if (json !== void 0) {\n      for (let i = 0, l = json.length; i < l; i++) {\n        const data = json[i];\n        if (data.image === void 0) {\n          console.warn('THREE.ObjectLoader: No \"image\" specified for', data.uuid);\n        }\n        if (images[data.image] === void 0) {\n          console.warn(\"THREE.ObjectLoader: Undefined image\", data.image);\n        }\n        const source = images[data.image];\n        const image = source.data;\n        let texture;\n        if (Array.isArray(image)) {\n          texture = new CubeTexture();\n          if (image.length === 6) texture.needsUpdate = true;\n        } else {\n          if (image && image.data) {\n            texture = new DataTexture();\n          } else {\n            texture = new Texture();\n          }\n          if (image) texture.needsUpdate = true;\n        }\n        texture.source = source;\n        texture.uuid = data.uuid;\n        if (data.name !== void 0) texture.name = data.name;\n        if (data.mapping !== void 0) texture.mapping = parseConstant(data.mapping, TEXTURE_MAPPING);\n        if (data.channel !== void 0) texture.channel = data.channel;\n        if (data.offset !== void 0) texture.offset.fromArray(data.offset);\n        if (data.repeat !== void 0) texture.repeat.fromArray(data.repeat);\n        if (data.center !== void 0) texture.center.fromArray(data.center);\n        if (data.rotation !== void 0) texture.rotation = data.rotation;\n        if (data.wrap !== void 0) {\n          texture.wrapS = parseConstant(data.wrap[0], TEXTURE_WRAPPING);\n          texture.wrapT = parseConstant(data.wrap[1], TEXTURE_WRAPPING);\n        }\n        if (data.format !== void 0) texture.format = data.format;\n        if (data.internalFormat !== void 0) texture.internalFormat = data.internalFormat;\n        if (data.type !== void 0) texture.type = data.type;\n        if (data.colorSpace !== void 0) texture.colorSpace = data.colorSpace;\n        if (data.minFilter !== void 0) texture.minFilter = parseConstant(data.minFilter, TEXTURE_FILTER);\n        if (data.magFilter !== void 0) texture.magFilter = parseConstant(data.magFilter, TEXTURE_FILTER);\n        if (data.anisotropy !== void 0) texture.anisotropy = data.anisotropy;\n        if (data.flipY !== void 0) texture.flipY = data.flipY;\n        if (data.generateMipmaps !== void 0) texture.generateMipmaps = data.generateMipmaps;\n        if (data.premultiplyAlpha !== void 0) texture.premultiplyAlpha = data.premultiplyAlpha;\n        if (data.unpackAlignment !== void 0) texture.unpackAlignment = data.unpackAlignment;\n        if (data.compareFunction !== void 0) texture.compareFunction = data.compareFunction;\n        if (data.userData !== void 0) texture.userData = data.userData;\n        textures[data.uuid] = texture;\n      }\n    }\n    return textures;\n  }\n  parseObject(data, geometries, materials, textures, animations) {\n    let object;\n    function getGeometry(name) {\n      if (geometries[name] === void 0) {\n        console.warn(\"THREE.ObjectLoader: Undefined geometry\", name);\n      }\n      return geometries[name];\n    }\n    function getMaterial(name) {\n      if (name === void 0) return void 0;\n      if (Array.isArray(name)) {\n        const array = [];\n        for (let i = 0, l = name.length; i < l; i++) {\n          const uuid = name[i];\n          if (materials[uuid] === void 0) {\n            console.warn(\"THREE.ObjectLoader: Undefined material\", uuid);\n          }\n          array.push(materials[uuid]);\n        }\n        return array;\n      }\n      if (materials[name] === void 0) {\n        console.warn(\"THREE.ObjectLoader: Undefined material\", name);\n      }\n      return materials[name];\n    }\n    function getTexture(uuid) {\n      if (textures[uuid] === void 0) {\n        console.warn(\"THREE.ObjectLoader: Undefined texture\", uuid);\n      }\n      return textures[uuid];\n    }\n    let geometry, material;\n    switch (data.type) {\n      case \"Scene\":\n        object = new Scene();\n        if (data.background !== void 0) {\n          if (Number.isInteger(data.background)) {\n            object.background = new Color(data.background);\n          } else {\n            object.background = getTexture(data.background);\n          }\n        }\n        if (data.environment !== void 0) {\n          object.environment = getTexture(data.environment);\n        }\n        if (data.fog !== void 0) {\n          if (data.fog.type === \"Fog\") {\n            object.fog = new Fog(data.fog.color, data.fog.near, data.fog.far);\n          } else if (data.fog.type === \"FogExp2\") {\n            object.fog = new FogExp2(data.fog.color, data.fog.density);\n          }\n          if (data.fog.name !== \"\") {\n            object.fog.name = data.fog.name;\n          }\n        }\n        if (data.backgroundBlurriness !== void 0) object.backgroundBlurriness = data.backgroundBlurriness;\n        if (data.backgroundIntensity !== void 0) object.backgroundIntensity = data.backgroundIntensity;\n        if (data.backgroundRotation !== void 0) object.backgroundRotation.fromArray(data.backgroundRotation);\n        if (data.environmentIntensity !== void 0) object.environmentIntensity = data.environmentIntensity;\n        if (data.environmentRotation !== void 0) object.environmentRotation.fromArray(data.environmentRotation);\n        break;\n      case \"PerspectiveCamera\":\n        object = new PerspectiveCamera(data.fov, data.aspect, data.near, data.far);\n        if (data.focus !== void 0) object.focus = data.focus;\n        if (data.zoom !== void 0) object.zoom = data.zoom;\n        if (data.filmGauge !== void 0) object.filmGauge = data.filmGauge;\n        if (data.filmOffset !== void 0) object.filmOffset = data.filmOffset;\n        if (data.view !== void 0) object.view = Object.assign({}, data.view);\n        break;\n      case \"OrthographicCamera\":\n        object = new OrthographicCamera(data.left, data.right, data.top, data.bottom, data.near, data.far);\n        if (data.zoom !== void 0) object.zoom = data.zoom;\n        if (data.view !== void 0) object.view = Object.assign({}, data.view);\n        break;\n      case \"AmbientLight\":\n        object = new AmbientLight(data.color, data.intensity);\n        break;\n      case \"DirectionalLight\":\n        object = new DirectionalLight(data.color, data.intensity);\n        object.target = data.target || \"\";\n        break;\n      case \"PointLight\":\n        object = new PointLight(data.color, data.intensity, data.distance, data.decay);\n        break;\n      case \"RectAreaLight\":\n        object = new RectAreaLight(data.color, data.intensity, data.width, data.height);\n        break;\n      case \"SpotLight\":\n        object = new SpotLight(data.color, data.intensity, data.distance, data.angle, data.penumbra, data.decay);\n        object.target = data.target || \"\";\n        break;\n      case \"HemisphereLight\":\n        object = new HemisphereLight(data.color, data.groundColor, data.intensity);\n        break;\n      case \"LightProbe\":\n        object = new LightProbe().fromJSON(data);\n        break;\n      case \"SkinnedMesh\":\n        geometry = getGeometry(data.geometry);\n        material = getMaterial(data.material);\n        object = new SkinnedMesh(geometry, material);\n        if (data.bindMode !== void 0) object.bindMode = data.bindMode;\n        if (data.bindMatrix !== void 0) object.bindMatrix.fromArray(data.bindMatrix);\n        if (data.skeleton !== void 0) object.skeleton = data.skeleton;\n        break;\n      case \"Mesh\":\n        geometry = getGeometry(data.geometry);\n        material = getMaterial(data.material);\n        object = new Mesh(geometry, material);\n        break;\n      case \"InstancedMesh\":\n        geometry = getGeometry(data.geometry);\n        material = getMaterial(data.material);\n        const count = data.count;\n        const instanceMatrix = data.instanceMatrix;\n        const instanceColor = data.instanceColor;\n        object = new InstancedMesh(geometry, material, count);\n        object.instanceMatrix = new InstancedBufferAttribute(new Float32Array(instanceMatrix.array), 16);\n        if (instanceColor !== void 0) object.instanceColor = new InstancedBufferAttribute(new Float32Array(instanceColor.array), instanceColor.itemSize);\n        break;\n      case \"BatchedMesh\":\n        geometry = getGeometry(data.geometry);\n        material = getMaterial(data.material);\n        object = new BatchedMesh(data.maxInstanceCount, data.maxVertexCount, data.maxIndexCount, material);\n        object.geometry = geometry;\n        object.perObjectFrustumCulled = data.perObjectFrustumCulled;\n        object.sortObjects = data.sortObjects;\n        object._drawRanges = data.drawRanges;\n        object._reservedRanges = data.reservedRanges;\n        object._visibility = data.visibility;\n        object._active = data.active;\n        object._bounds = data.bounds.map((bound) => {\n          const box = new Box3();\n          box.min.fromArray(bound.boxMin);\n          box.max.fromArray(bound.boxMax);\n          const sphere = new Sphere();\n          sphere.radius = bound.sphereRadius;\n          sphere.center.fromArray(bound.sphereCenter);\n          return {\n            boxInitialized: bound.boxInitialized,\n            box,\n            sphereInitialized: bound.sphereInitialized,\n            sphere\n          };\n        });\n        object._maxInstanceCount = data.maxInstanceCount;\n        object._maxVertexCount = data.maxVertexCount;\n        object._maxIndexCount = data.maxIndexCount;\n        object._geometryInitialized = data.geometryInitialized;\n        object._geometryCount = data.geometryCount;\n        object._matricesTexture = getTexture(data.matricesTexture.uuid);\n        if (data.colorsTexture !== void 0) object._colorsTexture = getTexture(data.colorsTexture.uuid);\n        break;\n      case \"LOD\":\n        object = new LOD();\n        break;\n      case \"Line\":\n        object = new Line(getGeometry(data.geometry), getMaterial(data.material));\n        break;\n      case \"LineLoop\":\n        object = new LineLoop(getGeometry(data.geometry), getMaterial(data.material));\n        break;\n      case \"LineSegments\":\n        object = new LineSegments(getGeometry(data.geometry), getMaterial(data.material));\n        break;\n      case \"PointCloud\":\n      case \"Points\":\n        object = new Points(getGeometry(data.geometry), getMaterial(data.material));\n        break;\n      case \"Sprite\":\n        object = new Sprite(getMaterial(data.material));\n        break;\n      case \"Group\":\n        object = new Group();\n        break;\n      case \"Bone\":\n        object = new Bone();\n        break;\n      default:\n        object = new Object3D();\n    }\n    object.uuid = data.uuid;\n    if (data.name !== void 0) object.name = data.name;\n    if (data.matrix !== void 0) {\n      object.matrix.fromArray(data.matrix);\n      if (data.matrixAutoUpdate !== void 0) object.matrixAutoUpdate = data.matrixAutoUpdate;\n      if (object.matrixAutoUpdate) object.matrix.decompose(object.position, object.quaternion, object.scale);\n    } else {\n      if (data.position !== void 0) object.position.fromArray(data.position);\n      if (data.rotation !== void 0) object.rotation.fromArray(data.rotation);\n      if (data.quaternion !== void 0) object.quaternion.fromArray(data.quaternion);\n      if (data.scale !== void 0) object.scale.fromArray(data.scale);\n    }\n    if (data.up !== void 0) object.up.fromArray(data.up);\n    if (data.castShadow !== void 0) object.castShadow = data.castShadow;\n    if (data.receiveShadow !== void 0) object.receiveShadow = data.receiveShadow;\n    if (data.shadow) {\n      if (data.shadow.intensity !== void 0) object.shadow.intensity = data.shadow.intensity;\n      if (data.shadow.bias !== void 0) object.shadow.bias = data.shadow.bias;\n      if (data.shadow.normalBias !== void 0) object.shadow.normalBias = data.shadow.normalBias;\n      if (data.shadow.radius !== void 0) object.shadow.radius = data.shadow.radius;\n      if (data.shadow.mapSize !== void 0) object.shadow.mapSize.fromArray(data.shadow.mapSize);\n      if (data.shadow.camera !== void 0) object.shadow.camera = this.parseObject(data.shadow.camera);\n    }\n    if (data.visible !== void 0) object.visible = data.visible;\n    if (data.frustumCulled !== void 0) object.frustumCulled = data.frustumCulled;\n    if (data.renderOrder !== void 0) object.renderOrder = data.renderOrder;\n    if (data.userData !== void 0) object.userData = data.userData;\n    if (data.layers !== void 0) object.layers.mask = data.layers;\n    if (data.children !== void 0) {\n      const children = data.children;\n      for (let i = 0; i < children.length; i++) {\n        object.add(this.parseObject(children[i], geometries, materials, textures, animations));\n      }\n    }\n    if (data.animations !== void 0) {\n      const objectAnimations = data.animations;\n      for (let i = 0; i < objectAnimations.length; i++) {\n        const uuid = objectAnimations[i];\n        object.animations.push(animations[uuid]);\n      }\n    }\n    if (data.type === \"LOD\") {\n      if (data.autoUpdate !== void 0) object.autoUpdate = data.autoUpdate;\n      const levels = data.levels;\n      for (let l = 0; l < levels.length; l++) {\n        const level = levels[l];\n        const child = object.getObjectByProperty(\"uuid\", level.object);\n        if (child !== void 0) {\n          object.addLevel(child, level.distance, level.hysteresis);\n        }\n      }\n    }\n    return object;\n  }\n  bindSkeletons(object, skeletons) {\n    if (Object.keys(skeletons).length === 0) return;\n    object.traverse(function(child) {\n      if (child.isSkinnedMesh === true && child.skeleton !== void 0) {\n        const skeleton = skeletons[child.skeleton];\n        if (skeleton === void 0) {\n          console.warn(\"THREE.ObjectLoader: No skeleton found with UUID:\", child.skeleton);\n        } else {\n          child.bind(skeleton, child.bindMatrix);\n        }\n      }\n    });\n  }\n  bindLightTargets(object) {\n    object.traverse(function(child) {\n      if (child.isDirectionalLight || child.isSpotLight) {\n        const uuid = child.target;\n        const target = object.getObjectByProperty(\"uuid\", uuid);\n        if (target !== void 0) {\n          child.target = target;\n        } else {\n          child.target = new Object3D();\n        }\n      }\n    });\n  }\n};\nvar TEXTURE_MAPPING = {\n  UVMapping,\n  CubeReflectionMapping,\n  CubeRefractionMapping,\n  EquirectangularReflectionMapping,\n  EquirectangularRefractionMapping,\n  CubeUVReflectionMapping\n};\nvar TEXTURE_WRAPPING = {\n  RepeatWrapping,\n  ClampToEdgeWrapping,\n  MirroredRepeatWrapping\n};\nvar TEXTURE_FILTER = {\n  NearestFilter,\n  NearestMipmapNearestFilter,\n  NearestMipmapLinearFilter,\n  LinearFilter,\n  LinearMipmapNearestFilter,\n  LinearMipmapLinearFilter\n};\nvar ImageBitmapLoader = class extends Loader {\n  constructor(manager) {\n    super(manager);\n    this.isImageBitmapLoader = true;\n    if (typeof createImageBitmap === \"undefined\") {\n      console.warn(\"THREE.ImageBitmapLoader: createImageBitmap() not supported.\");\n    }\n    if (typeof fetch === \"undefined\") {\n      console.warn(\"THREE.ImageBitmapLoader: fetch() not supported.\");\n    }\n    this.options = { premultiplyAlpha: \"none\" };\n  }\n  setOptions(options) {\n    this.options = options;\n    return this;\n  }\n  load(url, onLoad, onProgress, onError) {\n    if (url === void 0) url = \"\";\n    if (this.path !== void 0) url = this.path + url;\n    url = this.manager.resolveURL(url);\n    const scope = this;\n    const cached = Cache.get(url);\n    if (cached !== void 0) {\n      scope.manager.itemStart(url);\n      if (cached.then) {\n        cached.then((imageBitmap) => {\n          if (onLoad) onLoad(imageBitmap);\n          scope.manager.itemEnd(url);\n        }).catch((e) => {\n          if (onError) onError(e);\n        });\n        return;\n      }\n      setTimeout(function() {\n        if (onLoad) onLoad(cached);\n        scope.manager.itemEnd(url);\n      }, 0);\n      return cached;\n    }\n    const fetchOptions = {};\n    fetchOptions.credentials = this.crossOrigin === \"anonymous\" ? \"same-origin\" : \"include\";\n    fetchOptions.headers = this.requestHeader;\n    const promise = fetch(url, fetchOptions).then(function(res) {\n      return res.blob();\n    }).then(function(blob) {\n      return createImageBitmap(blob, Object.assign(scope.options, { colorSpaceConversion: \"none\" }));\n    }).then(function(imageBitmap) {\n      Cache.add(url, imageBitmap);\n      if (onLoad) onLoad(imageBitmap);\n      scope.manager.itemEnd(url);\n      return imageBitmap;\n    }).catch(function(e) {\n      if (onError) onError(e);\n      Cache.remove(url);\n      scope.manager.itemError(url);\n      scope.manager.itemEnd(url);\n    });\n    Cache.add(url, promise);\n    scope.manager.itemStart(url);\n  }\n};\nvar _context;\nvar AudioContext = class {\n  static getContext() {\n    if (_context === void 0) {\n      _context = new (window.AudioContext || window.webkitAudioContext)();\n    }\n    return _context;\n  }\n  static setContext(value) {\n    _context = value;\n  }\n};\nvar AudioLoader = class extends Loader {\n  constructor(manager) {\n    super(manager);\n  }\n  load(url, onLoad, onProgress, onError) {\n    const scope = this;\n    const loader = new FileLoader(this.manager);\n    loader.setResponseType(\"arraybuffer\");\n    loader.setPath(this.path);\n    loader.setRequestHeader(this.requestHeader);\n    loader.setWithCredentials(this.withCredentials);\n    loader.load(url, function(buffer) {\n      try {\n        const bufferCopy = buffer.slice(0);\n        const context = AudioContext.getContext();\n        context.decodeAudioData(bufferCopy, function(audioBuffer) {\n          onLoad(audioBuffer);\n        }).catch(handleError);\n      } catch (e) {\n        handleError(e);\n      }\n    }, onProgress, onError);\n    function handleError(e) {\n      if (onError) {\n        onError(e);\n      } else {\n        console.error(e);\n      }\n      scope.manager.itemError(url);\n    }\n  }\n};\nvar _eyeRight = /* @__PURE__ */ new Matrix4();\nvar _eyeLeft = /* @__PURE__ */ new Matrix4();\nvar _projectionMatrix = /* @__PURE__ */ new Matrix4();\nvar StereoCamera = class {\n  constructor() {\n    this.type = \"StereoCamera\";\n    this.aspect = 1;\n    this.eyeSep = 0.064;\n    this.cameraL = new PerspectiveCamera();\n    this.cameraL.layers.enable(1);\n    this.cameraL.matrixAutoUpdate = false;\n    this.cameraR = new PerspectiveCamera();\n    this.cameraR.layers.enable(2);\n    this.cameraR.matrixAutoUpdate = false;\n    this._cache = {\n      focus: null,\n      fov: null,\n      aspect: null,\n      near: null,\n      far: null,\n      zoom: null,\n      eyeSep: null\n    };\n  }\n  update(camera) {\n    const cache = this._cache;\n    const needsUpdate = cache.focus !== camera.focus || cache.fov !== camera.fov || cache.aspect !== camera.aspect * this.aspect || cache.near !== camera.near || cache.far !== camera.far || cache.zoom !== camera.zoom || cache.eyeSep !== this.eyeSep;\n    if (needsUpdate) {\n      cache.focus = camera.focus;\n      cache.fov = camera.fov;\n      cache.aspect = camera.aspect * this.aspect;\n      cache.near = camera.near;\n      cache.far = camera.far;\n      cache.zoom = camera.zoom;\n      cache.eyeSep = this.eyeSep;\n      _projectionMatrix.copy(camera.projectionMatrix);\n      const eyeSepHalf = cache.eyeSep / 2;\n      const eyeSepOnProjection = eyeSepHalf * cache.near / cache.focus;\n      const ymax = cache.near * Math.tan(DEG2RAD * cache.fov * 0.5) / cache.zoom;\n      let xmin, xmax;\n      _eyeLeft.elements[12] = -eyeSepHalf;\n      _eyeRight.elements[12] = eyeSepHalf;\n      xmin = -ymax * cache.aspect + eyeSepOnProjection;\n      xmax = ymax * cache.aspect + eyeSepOnProjection;\n      _projectionMatrix.elements[0] = 2 * cache.near / (xmax - xmin);\n      _projectionMatrix.elements[8] = (xmax + xmin) / (xmax - xmin);\n      this.cameraL.projectionMatrix.copy(_projectionMatrix);\n      xmin = -ymax * cache.aspect - eyeSepOnProjection;\n      xmax = ymax * cache.aspect - eyeSepOnProjection;\n      _projectionMatrix.elements[0] = 2 * cache.near / (xmax - xmin);\n      _projectionMatrix.elements[8] = (xmax + xmin) / (xmax - xmin);\n      this.cameraR.projectionMatrix.copy(_projectionMatrix);\n    }\n    this.cameraL.matrixWorld.copy(camera.matrixWorld).multiply(_eyeLeft);\n    this.cameraR.matrixWorld.copy(camera.matrixWorld).multiply(_eyeRight);\n  }\n};\nvar Clock = class {\n  constructor(autoStart = true) {\n    this.autoStart = autoStart;\n    this.startTime = 0;\n    this.oldTime = 0;\n    this.elapsedTime = 0;\n    this.running = false;\n  }\n  start() {\n    this.startTime = now();\n    this.oldTime = this.startTime;\n    this.elapsedTime = 0;\n    this.running = true;\n  }\n  stop() {\n    this.getElapsedTime();\n    this.running = false;\n    this.autoStart = false;\n  }\n  getElapsedTime() {\n    this.getDelta();\n    return this.elapsedTime;\n  }\n  getDelta() {\n    let diff = 0;\n    if (this.autoStart && !this.running) {\n      this.start();\n      return 0;\n    }\n    if (this.running) {\n      const newTime = now();\n      diff = (newTime - this.oldTime) / 1e3;\n      this.oldTime = newTime;\n      this.elapsedTime += diff;\n    }\n    return diff;\n  }\n};\nfunction now() {\n  return performance.now();\n}\nvar _position$1 = /* @__PURE__ */ new Vector3();\nvar _quaternion$1 = /* @__PURE__ */ new Quaternion();\nvar _scale$1 = /* @__PURE__ */ new Vector3();\nvar _orientation$1 = /* @__PURE__ */ new Vector3();\nvar AudioListener = class extends Object3D {\n  constructor() {\n    super();\n    this.type = \"AudioListener\";\n    this.context = AudioContext.getContext();\n    this.gain = this.context.createGain();\n    this.gain.connect(this.context.destination);\n    this.filter = null;\n    this.timeDelta = 0;\n    this._clock = new Clock();\n  }\n  getInput() {\n    return this.gain;\n  }\n  removeFilter() {\n    if (this.filter !== null) {\n      this.gain.disconnect(this.filter);\n      this.filter.disconnect(this.context.destination);\n      this.gain.connect(this.context.destination);\n      this.filter = null;\n    }\n    return this;\n  }\n  getFilter() {\n    return this.filter;\n  }\n  setFilter(value) {\n    if (this.filter !== null) {\n      this.gain.disconnect(this.filter);\n      this.filter.disconnect(this.context.destination);\n    } else {\n      this.gain.disconnect(this.context.destination);\n    }\n    this.filter = value;\n    this.gain.connect(this.filter);\n    this.filter.connect(this.context.destination);\n    return this;\n  }\n  getMasterVolume() {\n    return this.gain.gain.value;\n  }\n  setMasterVolume(value) {\n    this.gain.gain.setTargetAtTime(value, this.context.currentTime, 0.01);\n    return this;\n  }\n  updateMatrixWorld(force) {\n    super.updateMatrixWorld(force);\n    const listener = this.context.listener;\n    const up = this.up;\n    this.timeDelta = this._clock.getDelta();\n    this.matrixWorld.decompose(_position$1, _quaternion$1, _scale$1);\n    _orientation$1.set(0, 0, -1).applyQuaternion(_quaternion$1);\n    if (listener.positionX) {\n      const endTime = this.context.currentTime + this.timeDelta;\n      listener.positionX.linearRampToValueAtTime(_position$1.x, endTime);\n      listener.positionY.linearRampToValueAtTime(_position$1.y, endTime);\n      listener.positionZ.linearRampToValueAtTime(_position$1.z, endTime);\n      listener.forwardX.linearRampToValueAtTime(_orientation$1.x, endTime);\n      listener.forwardY.linearRampToValueAtTime(_orientation$1.y, endTime);\n      listener.forwardZ.linearRampToValueAtTime(_orientation$1.z, endTime);\n      listener.upX.linearRampToValueAtTime(up.x, endTime);\n      listener.upY.linearRampToValueAtTime(up.y, endTime);\n      listener.upZ.linearRampToValueAtTime(up.z, endTime);\n    } else {\n      listener.setPosition(_position$1.x, _position$1.y, _position$1.z);\n      listener.setOrientation(_orientation$1.x, _orientation$1.y, _orientation$1.z, up.x, up.y, up.z);\n    }\n  }\n};\nvar Audio = class extends Object3D {\n  constructor(listener) {\n    super();\n    this.type = \"Audio\";\n    this.listener = listener;\n    this.context = listener.context;\n    this.gain = this.context.createGain();\n    this.gain.connect(listener.getInput());\n    this.autoplay = false;\n    this.buffer = null;\n    this.detune = 0;\n    this.loop = false;\n    this.loopStart = 0;\n    this.loopEnd = 0;\n    this.offset = 0;\n    this.duration = void 0;\n    this.playbackRate = 1;\n    this.isPlaying = false;\n    this.hasPlaybackControl = true;\n    this.source = null;\n    this.sourceType = \"empty\";\n    this._startedAt = 0;\n    this._progress = 0;\n    this._connected = false;\n    this.filters = [];\n  }\n  getOutput() {\n    return this.gain;\n  }\n  setNodeSource(audioNode) {\n    this.hasPlaybackControl = false;\n    this.sourceType = \"audioNode\";\n    this.source = audioNode;\n    this.connect();\n    return this;\n  }\n  setMediaElementSource(mediaElement) {\n    this.hasPlaybackControl = false;\n    this.sourceType = \"mediaNode\";\n    this.source = this.context.createMediaElementSource(mediaElement);\n    this.connect();\n    return this;\n  }\n  setMediaStreamSource(mediaStream) {\n    this.hasPlaybackControl = false;\n    this.sourceType = \"mediaStreamNode\";\n    this.source = this.context.createMediaStreamSource(mediaStream);\n    this.connect();\n    return this;\n  }\n  setBuffer(audioBuffer) {\n    this.buffer = audioBuffer;\n    this.sourceType = \"buffer\";\n    if (this.autoplay) this.play();\n    return this;\n  }\n  play(delay = 0) {\n    if (this.isPlaying === true) {\n      console.warn(\"THREE.Audio: Audio is already playing.\");\n      return;\n    }\n    if (this.hasPlaybackControl === false) {\n      console.warn(\"THREE.Audio: this Audio has no playback control.\");\n      return;\n    }\n    this._startedAt = this.context.currentTime + delay;\n    const source = this.context.createBufferSource();\n    source.buffer = this.buffer;\n    source.loop = this.loop;\n    source.loopStart = this.loopStart;\n    source.loopEnd = this.loopEnd;\n    source.onended = this.onEnded.bind(this);\n    source.start(this._startedAt, this._progress + this.offset, this.duration);\n    this.isPlaying = true;\n    this.source = source;\n    this.setDetune(this.detune);\n    this.setPlaybackRate(this.playbackRate);\n    return this.connect();\n  }\n  pause() {\n    if (this.hasPlaybackControl === false) {\n      console.warn(\"THREE.Audio: this Audio has no playback control.\");\n      return;\n    }\n    if (this.isPlaying === true) {\n      this._progress += Math.max(this.context.currentTime - this._startedAt, 0) * this.playbackRate;\n      if (this.loop === true) {\n        this._progress = this._progress % (this.duration || this.buffer.duration);\n      }\n      this.source.stop();\n      this.source.onended = null;\n      this.isPlaying = false;\n    }\n    return this;\n  }\n  stop(delay = 0) {\n    if (this.hasPlaybackControl === false) {\n      console.warn(\"THREE.Audio: this Audio has no playback control.\");\n      return;\n    }\n    this._progress = 0;\n    if (this.source !== null) {\n      this.source.stop(this.context.currentTime + delay);\n      this.source.onended = null;\n    }\n    this.isPlaying = false;\n    return this;\n  }\n  connect() {\n    if (this.filters.length > 0) {\n      this.source.connect(this.filters[0]);\n      for (let i = 1, l = this.filters.length; i < l; i++) {\n        this.filters[i - 1].connect(this.filters[i]);\n      }\n      this.filters[this.filters.length - 1].connect(this.getOutput());\n    } else {\n      this.source.connect(this.getOutput());\n    }\n    this._connected = true;\n    return this;\n  }\n  disconnect() {\n    if (this._connected === false) {\n      return;\n    }\n    if (this.filters.length > 0) {\n      this.source.disconnect(this.filters[0]);\n      for (let i = 1, l = this.filters.length; i < l; i++) {\n        this.filters[i - 1].disconnect(this.filters[i]);\n      }\n      this.filters[this.filters.length - 1].disconnect(this.getOutput());\n    } else {\n      this.source.disconnect(this.getOutput());\n    }\n    this._connected = false;\n    return this;\n  }\n  getFilters() {\n    return this.filters;\n  }\n  setFilters(value) {\n    if (!value) value = [];\n    if (this._connected === true) {\n      this.disconnect();\n      this.filters = value.slice();\n      this.connect();\n    } else {\n      this.filters = value.slice();\n    }\n    return this;\n  }\n  setDetune(value) {\n    this.detune = value;\n    if (this.isPlaying === true && this.source.detune !== void 0) {\n      this.source.detune.setTargetAtTime(this.detune, this.context.currentTime, 0.01);\n    }\n    return this;\n  }\n  getDetune() {\n    return this.detune;\n  }\n  getFilter() {\n    return this.getFilters()[0];\n  }\n  setFilter(filter) {\n    return this.setFilters(filter ? [filter] : []);\n  }\n  setPlaybackRate(value) {\n    if (this.hasPlaybackControl === false) {\n      console.warn(\"THREE.Audio: this Audio has no playback control.\");\n      return;\n    }\n    this.playbackRate = value;\n    if (this.isPlaying === true) {\n      this.source.playbackRate.setTargetAtTime(this.playbackRate, this.context.currentTime, 0.01);\n    }\n    return this;\n  }\n  getPlaybackRate() {\n    return this.playbackRate;\n  }\n  onEnded() {\n    this.isPlaying = false;\n  }\n  getLoop() {\n    if (this.hasPlaybackControl === false) {\n      console.warn(\"THREE.Audio: this Audio has no playback control.\");\n      return false;\n    }\n    return this.loop;\n  }\n  setLoop(value) {\n    if (this.hasPlaybackControl === false) {\n      console.warn(\"THREE.Audio: this Audio has no playback control.\");\n      return;\n    }\n    this.loop = value;\n    if (this.isPlaying === true) {\n      this.source.loop = this.loop;\n    }\n    return this;\n  }\n  setLoopStart(value) {\n    this.loopStart = value;\n    return this;\n  }\n  setLoopEnd(value) {\n    this.loopEnd = value;\n    return this;\n  }\n  getVolume() {\n    return this.gain.gain.value;\n  }\n  setVolume(value) {\n    this.gain.gain.setTargetAtTime(value, this.context.currentTime, 0.01);\n    return this;\n  }\n};\nvar _position = /* @__PURE__ */ new Vector3();\nvar _quaternion = /* @__PURE__ */ new Quaternion();\nvar _scale = /* @__PURE__ */ new Vector3();\nvar _orientation = /* @__PURE__ */ new Vector3();\nvar PositionalAudio = class extends Audio {\n  constructor(listener) {\n    super(listener);\n    this.panner = this.context.createPanner();\n    this.panner.panningModel = \"HRTF\";\n    this.panner.connect(this.gain);\n  }\n  connect() {\n    super.connect();\n    this.panner.connect(this.gain);\n  }\n  disconnect() {\n    super.disconnect();\n    this.panner.disconnect(this.gain);\n  }\n  getOutput() {\n    return this.panner;\n  }\n  getRefDistance() {\n    return this.panner.refDistance;\n  }\n  setRefDistance(value) {\n    this.panner.refDistance = value;\n    return this;\n  }\n  getRolloffFactor() {\n    return this.panner.rolloffFactor;\n  }\n  setRolloffFactor(value) {\n    this.panner.rolloffFactor = value;\n    return this;\n  }\n  getDistanceModel() {\n    return this.panner.distanceModel;\n  }\n  setDistanceModel(value) {\n    this.panner.distanceModel = value;\n    return this;\n  }\n  getMaxDistance() {\n    return this.panner.maxDistance;\n  }\n  setMaxDistance(value) {\n    this.panner.maxDistance = value;\n    return this;\n  }\n  setDirectionalCone(coneInnerAngle, coneOuterAngle, coneOuterGain) {\n    this.panner.coneInnerAngle = coneInnerAngle;\n    this.panner.coneOuterAngle = coneOuterAngle;\n    this.panner.coneOuterGain = coneOuterGain;\n    return this;\n  }\n  updateMatrixWorld(force) {\n    super.updateMatrixWorld(force);\n    if (this.hasPlaybackControl === true && this.isPlaying === false) return;\n    this.matrixWorld.decompose(_position, _quaternion, _scale);\n    _orientation.set(0, 0, 1).applyQuaternion(_quaternion);\n    const panner = this.panner;\n    if (panner.positionX) {\n      const endTime = this.context.currentTime + this.listener.timeDelta;\n      panner.positionX.linearRampToValueAtTime(_position.x, endTime);\n      panner.positionY.linearRampToValueAtTime(_position.y, endTime);\n      panner.positionZ.linearRampToValueAtTime(_position.z, endTime);\n      panner.orientationX.linearRampToValueAtTime(_orientation.x, endTime);\n      panner.orientationY.linearRampToValueAtTime(_orientation.y, endTime);\n      panner.orientationZ.linearRampToValueAtTime(_orientation.z, endTime);\n    } else {\n      panner.setPosition(_position.x, _position.y, _position.z);\n      panner.setOrientation(_orientation.x, _orientation.y, _orientation.z);\n    }\n  }\n};\nvar AudioAnalyser = class {\n  constructor(audio, fftSize = 2048) {\n    this.analyser = audio.context.createAnalyser();\n    this.analyser.fftSize = fftSize;\n    this.data = new Uint8Array(this.analyser.frequencyBinCount);\n    audio.getOutput().connect(this.analyser);\n  }\n  getFrequencyData() {\n    this.analyser.getByteFrequencyData(this.data);\n    return this.data;\n  }\n  getAverageFrequency() {\n    let value = 0;\n    const data = this.getFrequencyData();\n    for (let i = 0; i < data.length; i++) {\n      value += data[i];\n    }\n    return value / data.length;\n  }\n};\nvar PropertyMixer = class {\n  constructor(binding, typeName, valueSize) {\n    this.binding = binding;\n    this.valueSize = valueSize;\n    let mixFunction, mixFunctionAdditive, setIdentity;\n    switch (typeName) {\n      case \"quaternion\":\n        mixFunction = this._slerp;\n        mixFunctionAdditive = this._slerpAdditive;\n        setIdentity = this._setAdditiveIdentityQuaternion;\n        this.buffer = new Float64Array(valueSize * 6);\n        this._workIndex = 5;\n        break;\n      case \"string\":\n      case \"bool\":\n        mixFunction = this._select;\n        mixFunctionAdditive = this._select;\n        setIdentity = this._setAdditiveIdentityOther;\n        this.buffer = new Array(valueSize * 5);\n        break;\n      default:\n        mixFunction = this._lerp;\n        mixFunctionAdditive = this._lerpAdditive;\n        setIdentity = this._setAdditiveIdentityNumeric;\n        this.buffer = new Float64Array(valueSize * 5);\n    }\n    this._mixBufferRegion = mixFunction;\n    this._mixBufferRegionAdditive = mixFunctionAdditive;\n    this._setIdentity = setIdentity;\n    this._origIndex = 3;\n    this._addIndex = 4;\n    this.cumulativeWeight = 0;\n    this.cumulativeWeightAdditive = 0;\n    this.useCount = 0;\n    this.referenceCount = 0;\n  }\n  // accumulate data in the 'incoming' region into 'accu<i>'\n  accumulate(accuIndex, weight) {\n    const buffer = this.buffer, stride = this.valueSize, offset = accuIndex * stride + stride;\n    let currentWeight = this.cumulativeWeight;\n    if (currentWeight === 0) {\n      for (let i = 0; i !== stride; ++i) {\n        buffer[offset + i] = buffer[i];\n      }\n      currentWeight = weight;\n    } else {\n      currentWeight += weight;\n      const mix = weight / currentWeight;\n      this._mixBufferRegion(buffer, offset, 0, mix, stride);\n    }\n    this.cumulativeWeight = currentWeight;\n  }\n  // accumulate data in the 'incoming' region into 'add'\n  accumulateAdditive(weight) {\n    const buffer = this.buffer, stride = this.valueSize, offset = stride * this._addIndex;\n    if (this.cumulativeWeightAdditive === 0) {\n      this._setIdentity();\n    }\n    this._mixBufferRegionAdditive(buffer, offset, 0, weight, stride);\n    this.cumulativeWeightAdditive += weight;\n  }\n  // apply the state of 'accu<i>' to the binding when accus differ\n  apply(accuIndex) {\n    const stride = this.valueSize, buffer = this.buffer, offset = accuIndex * stride + stride, weight = this.cumulativeWeight, weightAdditive = this.cumulativeWeightAdditive, binding = this.binding;\n    this.cumulativeWeight = 0;\n    this.cumulativeWeightAdditive = 0;\n    if (weight < 1) {\n      const originalValueOffset = stride * this._origIndex;\n      this._mixBufferRegion(\n        buffer,\n        offset,\n        originalValueOffset,\n        1 - weight,\n        stride\n      );\n    }\n    if (weightAdditive > 0) {\n      this._mixBufferRegionAdditive(buffer, offset, this._addIndex * stride, 1, stride);\n    }\n    for (let i = stride, e = stride + stride; i !== e; ++i) {\n      if (buffer[i] !== buffer[i + stride]) {\n        binding.setValue(buffer, offset);\n        break;\n      }\n    }\n  }\n  // remember the state of the bound property and copy it to both accus\n  saveOriginalState() {\n    const binding = this.binding;\n    const buffer = this.buffer, stride = this.valueSize, originalValueOffset = stride * this._origIndex;\n    binding.getValue(buffer, originalValueOffset);\n    for (let i = stride, e = originalValueOffset; i !== e; ++i) {\n      buffer[i] = buffer[originalValueOffset + i % stride];\n    }\n    this._setIdentity();\n    this.cumulativeWeight = 0;\n    this.cumulativeWeightAdditive = 0;\n  }\n  // apply the state previously taken via 'saveOriginalState' to the binding\n  restoreOriginalState() {\n    const originalValueOffset = this.valueSize * 3;\n    this.binding.setValue(this.buffer, originalValueOffset);\n  }\n  _setAdditiveIdentityNumeric() {\n    const startIndex = this._addIndex * this.valueSize;\n    const endIndex = startIndex + this.valueSize;\n    for (let i = startIndex; i < endIndex; i++) {\n      this.buffer[i] = 0;\n    }\n  }\n  _setAdditiveIdentityQuaternion() {\n    this._setAdditiveIdentityNumeric();\n    this.buffer[this._addIndex * this.valueSize + 3] = 1;\n  }\n  _setAdditiveIdentityOther() {\n    const startIndex = this._origIndex * this.valueSize;\n    const targetIndex = this._addIndex * this.valueSize;\n    for (let i = 0; i < this.valueSize; i++) {\n      this.buffer[targetIndex + i] = this.buffer[startIndex + i];\n    }\n  }\n  // mix functions\n  _select(buffer, dstOffset, srcOffset, t, stride) {\n    if (t >= 0.5) {\n      for (let i = 0; i !== stride; ++i) {\n        buffer[dstOffset + i] = buffer[srcOffset + i];\n      }\n    }\n  }\n  _slerp(buffer, dstOffset, srcOffset, t) {\n    Quaternion.slerpFlat(buffer, dstOffset, buffer, dstOffset, buffer, srcOffset, t);\n  }\n  _slerpAdditive(buffer, dstOffset, srcOffset, t, stride) {\n    const workOffset = this._workIndex * stride;\n    Quaternion.multiplyQuaternionsFlat(buffer, workOffset, buffer, dstOffset, buffer, srcOffset);\n    Quaternion.slerpFlat(buffer, dstOffset, buffer, dstOffset, buffer, workOffset, t);\n  }\n  _lerp(buffer, dstOffset, srcOffset, t, stride) {\n    const s = 1 - t;\n    for (let i = 0; i !== stride; ++i) {\n      const j = dstOffset + i;\n      buffer[j] = buffer[j] * s + buffer[srcOffset + i] * t;\n    }\n  }\n  _lerpAdditive(buffer, dstOffset, srcOffset, t, stride) {\n    for (let i = 0; i !== stride; ++i) {\n      const j = dstOffset + i;\n      buffer[j] = buffer[j] + buffer[srcOffset + i] * t;\n    }\n  }\n};\nvar _RESERVED_CHARS_RE = \"\\\\[\\\\]\\\\.:\\\\/\";\nvar _reservedRe = new RegExp(\"[\" + _RESERVED_CHARS_RE + \"]\", \"g\");\nvar _wordChar = \"[^\" + _RESERVED_CHARS_RE + \"]\";\nvar _wordCharOrDot = \"[^\" + _RESERVED_CHARS_RE.replace(\"\\\\.\", \"\") + \"]\";\nvar _directoryRe = /* @__PURE__ */ /((?:WC+[\\/:])*)/.source.replace(\"WC\", _wordChar);\nvar _nodeRe = /* @__PURE__ */ /(WCOD+)?/.source.replace(\"WCOD\", _wordCharOrDot);\nvar _objectRe = /* @__PURE__ */ /(?:\\.(WC+)(?:\\[(.+)\\])?)?/.source.replace(\"WC\", _wordChar);\nvar _propertyRe = /* @__PURE__ */ /\\.(WC+)(?:\\[(.+)\\])?/.source.replace(\"WC\", _wordChar);\nvar _trackRe = new RegExp(\n  \"^\" + _directoryRe + _nodeRe + _objectRe + _propertyRe + \"$\"\n);\nvar _supportedObjectNames = [\"material\", \"materials\", \"bones\", \"map\"];\nvar Composite = class {\n  constructor(targetGroup, path, optionalParsedPath) {\n    const parsedPath = optionalParsedPath || PropertyBinding.parseTrackName(path);\n    this._targetGroup = targetGroup;\n    this._bindings = targetGroup.subscribe_(path, parsedPath);\n  }\n  getValue(array, offset) {\n    this.bind();\n    const firstValidIndex = this._targetGroup.nCachedObjects_, binding = this._bindings[firstValidIndex];\n    if (binding !== void 0) binding.getValue(array, offset);\n  }\n  setValue(array, offset) {\n    const bindings = this._bindings;\n    for (let i = this._targetGroup.nCachedObjects_, n = bindings.length; i !== n; ++i) {\n      bindings[i].setValue(array, offset);\n    }\n  }\n  bind() {\n    const bindings = this._bindings;\n    for (let i = this._targetGroup.nCachedObjects_, n = bindings.length; i !== n; ++i) {\n      bindings[i].bind();\n    }\n  }\n  unbind() {\n    const bindings = this._bindings;\n    for (let i = this._targetGroup.nCachedObjects_, n = bindings.length; i !== n; ++i) {\n      bindings[i].unbind();\n    }\n  }\n};\nvar PropertyBinding = class _PropertyBinding {\n  constructor(rootNode, path, parsedPath) {\n    this.path = path;\n    this.parsedPath = parsedPath || _PropertyBinding.parseTrackName(path);\n    this.node = _PropertyBinding.findNode(rootNode, this.parsedPath.nodeName);\n    this.rootNode = rootNode;\n    this.getValue = this._getValue_unbound;\n    this.setValue = this._setValue_unbound;\n  }\n  static create(root, path, parsedPath) {\n    if (!(root && root.isAnimationObjectGroup)) {\n      return new _PropertyBinding(root, path, parsedPath);\n    } else {\n      return new _PropertyBinding.Composite(root, path, parsedPath);\n    }\n  }\n  /**\n   * Replaces spaces with underscores and removes unsupported characters from\n   * node names, to ensure compatibility with parseTrackName().\n   *\n   * @param {string} name Node name to be sanitized.\n   * @return {string}\n   */\n  static sanitizeNodeName(name) {\n    return name.replace(/\\s/g, \"_\").replace(_reservedRe, \"\");\n  }\n  static parseTrackName(trackName) {\n    const matches = _trackRe.exec(trackName);\n    if (matches === null) {\n      throw new Error(\"PropertyBinding: Cannot parse trackName: \" + trackName);\n    }\n    const results = {\n      // directoryName: matches[ 1 ], // (tschw) currently unused\n      nodeName: matches[2],\n      objectName: matches[3],\n      objectIndex: matches[4],\n      propertyName: matches[5],\n      // required\n      propertyIndex: matches[6]\n    };\n    const lastDot = results.nodeName && results.nodeName.lastIndexOf(\".\");\n    if (lastDot !== void 0 && lastDot !== -1) {\n      const objectName = results.nodeName.substring(lastDot + 1);\n      if (_supportedObjectNames.indexOf(objectName) !== -1) {\n        results.nodeName = results.nodeName.substring(0, lastDot);\n        results.objectName = objectName;\n      }\n    }\n    if (results.propertyName === null || results.propertyName.length === 0) {\n      throw new Error(\"PropertyBinding: can not parse propertyName from trackName: \" + trackName);\n    }\n    return results;\n  }\n  static findNode(root, nodeName) {\n    if (nodeName === void 0 || nodeName === \"\" || nodeName === \".\" || nodeName === -1 || nodeName === root.name || nodeName === root.uuid) {\n      return root;\n    }\n    if (root.skeleton) {\n      const bone = root.skeleton.getBoneByName(nodeName);\n      if (bone !== void 0) {\n        return bone;\n      }\n    }\n    if (root.children) {\n      const searchNodeSubtree = function(children) {\n        for (let i = 0; i < children.length; i++) {\n          const childNode = children[i];\n          if (childNode.name === nodeName || childNode.uuid === nodeName) {\n            return childNode;\n          }\n          const result = searchNodeSubtree(childNode.children);\n          if (result) return result;\n        }\n        return null;\n      };\n      const subTreeNode = searchNodeSubtree(root.children);\n      if (subTreeNode) {\n        return subTreeNode;\n      }\n    }\n    return null;\n  }\n  // these are used to \"bind\" a nonexistent property\n  _getValue_unavailable() {\n  }\n  _setValue_unavailable() {\n  }\n  // Getters\n  _getValue_direct(buffer, offset) {\n    buffer[offset] = this.targetObject[this.propertyName];\n  }\n  _getValue_array(buffer, offset) {\n    const source = this.resolvedProperty;\n    for (let i = 0, n = source.length; i !== n; ++i) {\n      buffer[offset++] = source[i];\n    }\n  }\n  _getValue_arrayElement(buffer, offset) {\n    buffer[offset] = this.resolvedProperty[this.propertyIndex];\n  }\n  _getValue_toArray(buffer, offset) {\n    this.resolvedProperty.toArray(buffer, offset);\n  }\n  // Direct\n  _setValue_direct(buffer, offset) {\n    this.targetObject[this.propertyName] = buffer[offset];\n  }\n  _setValue_direct_setNeedsUpdate(buffer, offset) {\n    this.targetObject[this.propertyName] = buffer[offset];\n    this.targetObject.needsUpdate = true;\n  }\n  _setValue_direct_setMatrixWorldNeedsUpdate(buffer, offset) {\n    this.targetObject[this.propertyName] = buffer[offset];\n    this.targetObject.matrixWorldNeedsUpdate = true;\n  }\n  // EntireArray\n  _setValue_array(buffer, offset) {\n    const dest = this.resolvedProperty;\n    for (let i = 0, n = dest.length; i !== n; ++i) {\n      dest[i] = buffer[offset++];\n    }\n  }\n  _setValue_array_setNeedsUpdate(buffer, offset) {\n    const dest = this.resolvedProperty;\n    for (let i = 0, n = dest.length; i !== n; ++i) {\n      dest[i] = buffer[offset++];\n    }\n    this.targetObject.needsUpdate = true;\n  }\n  _setValue_array_setMatrixWorldNeedsUpdate(buffer, offset) {\n    const dest = this.resolvedProperty;\n    for (let i = 0, n = dest.length; i !== n; ++i) {\n      dest[i] = buffer[offset++];\n    }\n    this.targetObject.matrixWorldNeedsUpdate = true;\n  }\n  // ArrayElement\n  _setValue_arrayElement(buffer, offset) {\n    this.resolvedProperty[this.propertyIndex] = buffer[offset];\n  }\n  _setValue_arrayElement_setNeedsUpdate(buffer, offset) {\n    this.resolvedProperty[this.propertyIndex] = buffer[offset];\n    this.targetObject.needsUpdate = true;\n  }\n  _setValue_arrayElement_setMatrixWorldNeedsUpdate(buffer, offset) {\n    this.resolvedProperty[this.propertyIndex] = buffer[offset];\n    this.targetObject.matrixWorldNeedsUpdate = true;\n  }\n  // HasToFromArray\n  _setValue_fromArray(buffer, offset) {\n    this.resolvedProperty.fromArray(buffer, offset);\n  }\n  _setValue_fromArray_setNeedsUpdate(buffer, offset) {\n    this.resolvedProperty.fromArray(buffer, offset);\n    this.targetObject.needsUpdate = true;\n  }\n  _setValue_fromArray_setMatrixWorldNeedsUpdate(buffer, offset) {\n    this.resolvedProperty.fromArray(buffer, offset);\n    this.targetObject.matrixWorldNeedsUpdate = true;\n  }\n  _getValue_unbound(targetArray, offset) {\n    this.bind();\n    this.getValue(targetArray, offset);\n  }\n  _setValue_unbound(sourceArray, offset) {\n    this.bind();\n    this.setValue(sourceArray, offset);\n  }\n  // create getter / setter pair for a property in the scene graph\n  bind() {\n    let targetObject = this.node;\n    const parsedPath = this.parsedPath;\n    const objectName = parsedPath.objectName;\n    const propertyName = parsedPath.propertyName;\n    let propertyIndex = parsedPath.propertyIndex;\n    if (!targetObject) {\n      targetObject = _PropertyBinding.findNode(this.rootNode, parsedPath.nodeName);\n      this.node = targetObject;\n    }\n    this.getValue = this._getValue_unavailable;\n    this.setValue = this._setValue_unavailable;\n    if (!targetObject) {\n      console.warn(\"THREE.PropertyBinding: No target node found for track: \" + this.path + \".\");\n      return;\n    }\n    if (objectName) {\n      let objectIndex = parsedPath.objectIndex;\n      switch (objectName) {\n        case \"materials\":\n          if (!targetObject.material) {\n            console.error(\"THREE.PropertyBinding: Can not bind to material as node does not have a material.\", this);\n            return;\n          }\n          if (!targetObject.material.materials) {\n            console.error(\"THREE.PropertyBinding: Can not bind to material.materials as node.material does not have a materials array.\", this);\n            return;\n          }\n          targetObject = targetObject.material.materials;\n          break;\n        case \"bones\":\n          if (!targetObject.skeleton) {\n            console.error(\"THREE.PropertyBinding: Can not bind to bones as node does not have a skeleton.\", this);\n            return;\n          }\n          targetObject = targetObject.skeleton.bones;\n          for (let i = 0; i < targetObject.length; i++) {\n            if (targetObject[i].name === objectIndex) {\n              objectIndex = i;\n              break;\n            }\n          }\n          break;\n        case \"map\":\n          if (\"map\" in targetObject) {\n            targetObject = targetObject.map;\n            break;\n          }\n          if (!targetObject.material) {\n            console.error(\"THREE.PropertyBinding: Can not bind to material as node does not have a material.\", this);\n            return;\n          }\n          if (!targetObject.material.map) {\n            console.error(\"THREE.PropertyBinding: Can not bind to material.map as node.material does not have a map.\", this);\n            return;\n          }\n          targetObject = targetObject.material.map;\n          break;\n        default:\n          if (targetObject[objectName] === void 0) {\n            console.error(\"THREE.PropertyBinding: Can not bind to objectName of node undefined.\", this);\n            return;\n          }\n          targetObject = targetObject[objectName];\n      }\n      if (objectIndex !== void 0) {\n        if (targetObject[objectIndex] === void 0) {\n          console.error(\"THREE.PropertyBinding: Trying to bind to objectIndex of objectName, but is undefined.\", this, targetObject);\n          return;\n        }\n        targetObject = targetObject[objectIndex];\n      }\n    }\n    const nodeProperty = targetObject[propertyName];\n    if (nodeProperty === void 0) {\n      const nodeName = parsedPath.nodeName;\n      console.error(\"THREE.PropertyBinding: Trying to update property for track: \" + nodeName + \".\" + propertyName + \" but it wasn't found.\", targetObject);\n      return;\n    }\n    let versioning = this.Versioning.None;\n    this.targetObject = targetObject;\n    if (targetObject.needsUpdate !== void 0) {\n      versioning = this.Versioning.NeedsUpdate;\n    } else if (targetObject.matrixWorldNeedsUpdate !== void 0) {\n      versioning = this.Versioning.MatrixWorldNeedsUpdate;\n    }\n    let bindingType = this.BindingType.Direct;\n    if (propertyIndex !== void 0) {\n      if (propertyName === \"morphTargetInfluences\") {\n        if (!targetObject.geometry) {\n          console.error(\"THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.\", this);\n          return;\n        }\n        if (!targetObject.geometry.morphAttributes) {\n          console.error(\"THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.morphAttributes.\", this);\n          return;\n        }\n        if (targetObject.morphTargetDictionary[propertyIndex] !== void 0) {\n          propertyIndex = targetObject.morphTargetDictionary[propertyIndex];\n        }\n      }\n      bindingType = this.BindingType.ArrayElement;\n      this.resolvedProperty = nodeProperty;\n      this.propertyIndex = propertyIndex;\n    } else if (nodeProperty.fromArray !== void 0 && nodeProperty.toArray !== void 0) {\n      bindingType = this.BindingType.HasFromToArray;\n      this.resolvedProperty = nodeProperty;\n    } else if (Array.isArray(nodeProperty)) {\n      bindingType = this.BindingType.EntireArray;\n      this.resolvedProperty = nodeProperty;\n    } else {\n      this.propertyName = propertyName;\n    }\n    this.getValue = this.GetterByBindingType[bindingType];\n    this.setValue = this.SetterByBindingTypeAndVersioning[bindingType][versioning];\n  }\n  unbind() {\n    this.node = null;\n    this.getValue = this._getValue_unbound;\n    this.setValue = this._setValue_unbound;\n  }\n};\nPropertyBinding.Composite = Composite;\nPropertyBinding.prototype.BindingType = {\n  Direct: 0,\n  EntireArray: 1,\n  ArrayElement: 2,\n  HasFromToArray: 3\n};\nPropertyBinding.prototype.Versioning = {\n  None: 0,\n  NeedsUpdate: 1,\n  MatrixWorldNeedsUpdate: 2\n};\nPropertyBinding.prototype.GetterByBindingType = [\n  PropertyBinding.prototype._getValue_direct,\n  PropertyBinding.prototype._getValue_array,\n  PropertyBinding.prototype._getValue_arrayElement,\n  PropertyBinding.prototype._getValue_toArray\n];\nPropertyBinding.prototype.SetterByBindingTypeAndVersioning = [\n  [\n    // Direct\n    PropertyBinding.prototype._setValue_direct,\n    PropertyBinding.prototype._setValue_direct_setNeedsUpdate,\n    PropertyBinding.prototype._setValue_direct_setMatrixWorldNeedsUpdate\n  ],\n  [\n    // EntireArray\n    PropertyBinding.prototype._setValue_array,\n    PropertyBinding.prototype._setValue_array_setNeedsUpdate,\n    PropertyBinding.prototype._setValue_array_setMatrixWorldNeedsUpdate\n  ],\n  [\n    // ArrayElement\n    PropertyBinding.prototype._setValue_arrayElement,\n    PropertyBinding.prototype._setValue_arrayElement_setNeedsUpdate,\n    PropertyBinding.prototype._setValue_arrayElement_setMatrixWorldNeedsUpdate\n  ],\n  [\n    // HasToFromArray\n    PropertyBinding.prototype._setValue_fromArray,\n    PropertyBinding.prototype._setValue_fromArray_setNeedsUpdate,\n    PropertyBinding.prototype._setValue_fromArray_setMatrixWorldNeedsUpdate\n  ]\n];\nvar AnimationObjectGroup = class {\n  constructor() {\n    this.isAnimationObjectGroup = true;\n    this.uuid = generateUUID();\n    this._objects = Array.prototype.slice.call(arguments);\n    this.nCachedObjects_ = 0;\n    const indices = {};\n    this._indicesByUUID = indices;\n    for (let i = 0, n = arguments.length; i !== n; ++i) {\n      indices[arguments[i].uuid] = i;\n    }\n    this._paths = [];\n    this._parsedPaths = [];\n    this._bindings = [];\n    this._bindingsIndicesByPath = {};\n    const scope = this;\n    this.stats = {\n      objects: {\n        get total() {\n          return scope._objects.length;\n        },\n        get inUse() {\n          return this.total - scope.nCachedObjects_;\n        }\n      },\n      get bindingsPerObject() {\n        return scope._bindings.length;\n      }\n    };\n  }\n  add() {\n    const objects = this._objects, indicesByUUID = this._indicesByUUID, paths = this._paths, parsedPaths = this._parsedPaths, bindings = this._bindings, nBindings = bindings.length;\n    let knownObject = void 0, nObjects = objects.length, nCachedObjects = this.nCachedObjects_;\n    for (let i = 0, n = arguments.length; i !== n; ++i) {\n      const object = arguments[i], uuid = object.uuid;\n      let index = indicesByUUID[uuid];\n      if (index === void 0) {\n        index = nObjects++;\n        indicesByUUID[uuid] = index;\n        objects.push(object);\n        for (let j = 0, m = nBindings; j !== m; ++j) {\n          bindings[j].push(new PropertyBinding(object, paths[j], parsedPaths[j]));\n        }\n      } else if (index < nCachedObjects) {\n        knownObject = objects[index];\n        const firstActiveIndex = --nCachedObjects, lastCachedObject = objects[firstActiveIndex];\n        indicesByUUID[lastCachedObject.uuid] = index;\n        objects[index] = lastCachedObject;\n        indicesByUUID[uuid] = firstActiveIndex;\n        objects[firstActiveIndex] = object;\n        for (let j = 0, m = nBindings; j !== m; ++j) {\n          const bindingsForPath = bindings[j], lastCached = bindingsForPath[firstActiveIndex];\n          let binding = bindingsForPath[index];\n          bindingsForPath[index] = lastCached;\n          if (binding === void 0) {\n            binding = new PropertyBinding(object, paths[j], parsedPaths[j]);\n          }\n          bindingsForPath[firstActiveIndex] = binding;\n        }\n      } else if (objects[index] !== knownObject) {\n        console.error(\"THREE.AnimationObjectGroup: Different objects with the same UUID detected. Clean the caches or recreate your infrastructure when reloading scenes.\");\n      }\n    }\n    this.nCachedObjects_ = nCachedObjects;\n  }\n  remove() {\n    const objects = this._objects, indicesByUUID = this._indicesByUUID, bindings = this._bindings, nBindings = bindings.length;\n    let nCachedObjects = this.nCachedObjects_;\n    for (let i = 0, n = arguments.length; i !== n; ++i) {\n      const object = arguments[i], uuid = object.uuid, index = indicesByUUID[uuid];\n      if (index !== void 0 && index >= nCachedObjects) {\n        const lastCachedIndex = nCachedObjects++, firstActiveObject = objects[lastCachedIndex];\n        indicesByUUID[firstActiveObject.uuid] = index;\n        objects[index] = firstActiveObject;\n        indicesByUUID[uuid] = lastCachedIndex;\n        objects[lastCachedIndex] = object;\n        for (let j = 0, m = nBindings; j !== m; ++j) {\n          const bindingsForPath = bindings[j], firstActive = bindingsForPath[lastCachedIndex], binding = bindingsForPath[index];\n          bindingsForPath[index] = firstActive;\n          bindingsForPath[lastCachedIndex] = binding;\n        }\n      }\n    }\n    this.nCachedObjects_ = nCachedObjects;\n  }\n  // remove & forget\n  uncache() {\n    const objects = this._objects, indicesByUUID = this._indicesByUUID, bindings = this._bindings, nBindings = bindings.length;\n    let nCachedObjects = this.nCachedObjects_, nObjects = objects.length;\n    for (let i = 0, n = arguments.length; i !== n; ++i) {\n      const object = arguments[i], uuid = object.uuid, index = indicesByUUID[uuid];\n      if (index !== void 0) {\n        delete indicesByUUID[uuid];\n        if (index < nCachedObjects) {\n          const firstActiveIndex = --nCachedObjects, lastCachedObject = objects[firstActiveIndex], lastIndex = --nObjects, lastObject = objects[lastIndex];\n          indicesByUUID[lastCachedObject.uuid] = index;\n          objects[index] = lastCachedObject;\n          indicesByUUID[lastObject.uuid] = firstActiveIndex;\n          objects[firstActiveIndex] = lastObject;\n          objects.pop();\n          for (let j = 0, m = nBindings; j !== m; ++j) {\n            const bindingsForPath = bindings[j], lastCached = bindingsForPath[firstActiveIndex], last = bindingsForPath[lastIndex];\n            bindingsForPath[index] = lastCached;\n            bindingsForPath[firstActiveIndex] = last;\n            bindingsForPath.pop();\n          }\n        } else {\n          const lastIndex = --nObjects, lastObject = objects[lastIndex];\n          if (lastIndex > 0) {\n            indicesByUUID[lastObject.uuid] = index;\n          }\n          objects[index] = lastObject;\n          objects.pop();\n          for (let j = 0, m = nBindings; j !== m; ++j) {\n            const bindingsForPath = bindings[j];\n            bindingsForPath[index] = bindingsForPath[lastIndex];\n            bindingsForPath.pop();\n          }\n        }\n      }\n    }\n    this.nCachedObjects_ = nCachedObjects;\n  }\n  // Internal interface used by befriended PropertyBinding.Composite:\n  subscribe_(path, parsedPath) {\n    const indicesByPath = this._bindingsIndicesByPath;\n    let index = indicesByPath[path];\n    const bindings = this._bindings;\n    if (index !== void 0) return bindings[index];\n    const paths = this._paths, parsedPaths = this._parsedPaths, objects = this._objects, nObjects = objects.length, nCachedObjects = this.nCachedObjects_, bindingsForPath = new Array(nObjects);\n    index = bindings.length;\n    indicesByPath[path] = index;\n    paths.push(path);\n    parsedPaths.push(parsedPath);\n    bindings.push(bindingsForPath);\n    for (let i = nCachedObjects, n = objects.length; i !== n; ++i) {\n      const object = objects[i];\n      bindingsForPath[i] = new PropertyBinding(object, path, parsedPath);\n    }\n    return bindingsForPath;\n  }\n  unsubscribe_(path) {\n    const indicesByPath = this._bindingsIndicesByPath, index = indicesByPath[path];\n    if (index !== void 0) {\n      const paths = this._paths, parsedPaths = this._parsedPaths, bindings = this._bindings, lastBindingsIndex = bindings.length - 1, lastBindings = bindings[lastBindingsIndex], lastBindingsPath = path[lastBindingsIndex];\n      indicesByPath[lastBindingsPath] = index;\n      bindings[index] = lastBindings;\n      bindings.pop();\n      parsedPaths[index] = parsedPaths[lastBindingsIndex];\n      parsedPaths.pop();\n      paths[index] = paths[lastBindingsIndex];\n      paths.pop();\n    }\n  }\n};\nvar AnimationAction = class {\n  constructor(mixer, clip, localRoot = null, blendMode = clip.blendMode) {\n    this._mixer = mixer;\n    this._clip = clip;\n    this._localRoot = localRoot;\n    this.blendMode = blendMode;\n    const tracks = clip.tracks, nTracks = tracks.length, interpolants = new Array(nTracks);\n    const interpolantSettings = {\n      endingStart: ZeroCurvatureEnding,\n      endingEnd: ZeroCurvatureEnding\n    };\n    for (let i = 0; i !== nTracks; ++i) {\n      const interpolant = tracks[i].createInterpolant(null);\n      interpolants[i] = interpolant;\n      interpolant.settings = interpolantSettings;\n    }\n    this._interpolantSettings = interpolantSettings;\n    this._interpolants = interpolants;\n    this._propertyBindings = new Array(nTracks);\n    this._cacheIndex = null;\n    this._byClipCacheIndex = null;\n    this._timeScaleInterpolant = null;\n    this._weightInterpolant = null;\n    this.loop = LoopRepeat;\n    this._loopCount = -1;\n    this._startTime = null;\n    this.time = 0;\n    this.timeScale = 1;\n    this._effectiveTimeScale = 1;\n    this.weight = 1;\n    this._effectiveWeight = 1;\n    this.repetitions = Infinity;\n    this.paused = false;\n    this.enabled = true;\n    this.clampWhenFinished = false;\n    this.zeroSlopeAtStart = true;\n    this.zeroSlopeAtEnd = true;\n  }\n  // State & Scheduling\n  play() {\n    this._mixer._activateAction(this);\n    return this;\n  }\n  stop() {\n    this._mixer._deactivateAction(this);\n    return this.reset();\n  }\n  reset() {\n    this.paused = false;\n    this.enabled = true;\n    this.time = 0;\n    this._loopCount = -1;\n    this._startTime = null;\n    return this.stopFading().stopWarping();\n  }\n  isRunning() {\n    return this.enabled && !this.paused && this.timeScale !== 0 && this._startTime === null && this._mixer._isActiveAction(this);\n  }\n  // return true when play has been called\n  isScheduled() {\n    return this._mixer._isActiveAction(this);\n  }\n  startAt(time) {\n    this._startTime = time;\n    return this;\n  }\n  setLoop(mode, repetitions) {\n    this.loop = mode;\n    this.repetitions = repetitions;\n    return this;\n  }\n  // Weight\n  // set the weight stopping any scheduled fading\n  // although .enabled = false yields an effective weight of zero, this\n  // method does *not* change .enabled, because it would be confusing\n  setEffectiveWeight(weight) {\n    this.weight = weight;\n    this._effectiveWeight = this.enabled ? weight : 0;\n    return this.stopFading();\n  }\n  // return the weight considering fading and .enabled\n  getEffectiveWeight() {\n    return this._effectiveWeight;\n  }\n  fadeIn(duration) {\n    return this._scheduleFading(duration, 0, 1);\n  }\n  fadeOut(duration) {\n    return this._scheduleFading(duration, 1, 0);\n  }\n  crossFadeFrom(fadeOutAction, duration, warp) {\n    fadeOutAction.fadeOut(duration);\n    this.fadeIn(duration);\n    if (warp) {\n      const fadeInDuration = this._clip.duration, fadeOutDuration = fadeOutAction._clip.duration, startEndRatio = fadeOutDuration / fadeInDuration, endStartRatio = fadeInDuration / fadeOutDuration;\n      fadeOutAction.warp(1, startEndRatio, duration);\n      this.warp(endStartRatio, 1, duration);\n    }\n    return this;\n  }\n  crossFadeTo(fadeInAction, duration, warp) {\n    return fadeInAction.crossFadeFrom(this, duration, warp);\n  }\n  stopFading() {\n    const weightInterpolant = this._weightInterpolant;\n    if (weightInterpolant !== null) {\n      this._weightInterpolant = null;\n      this._mixer._takeBackControlInterpolant(weightInterpolant);\n    }\n    return this;\n  }\n  // Time Scale Control\n  // set the time scale stopping any scheduled warping\n  // although .paused = true yields an effective time scale of zero, this\n  // method does *not* change .paused, because it would be confusing\n  setEffectiveTimeScale(timeScale) {\n    this.timeScale = timeScale;\n    this._effectiveTimeScale = this.paused ? 0 : timeScale;\n    return this.stopWarping();\n  }\n  // return the time scale considering warping and .paused\n  getEffectiveTimeScale() {\n    return this._effectiveTimeScale;\n  }\n  setDuration(duration) {\n    this.timeScale = this._clip.duration / duration;\n    return this.stopWarping();\n  }\n  syncWith(action) {\n    this.time = action.time;\n    this.timeScale = action.timeScale;\n    return this.stopWarping();\n  }\n  halt(duration) {\n    return this.warp(this._effectiveTimeScale, 0, duration);\n  }\n  warp(startTimeScale, endTimeScale, duration) {\n    const mixer = this._mixer, now2 = mixer.time, timeScale = this.timeScale;\n    let interpolant = this._timeScaleInterpolant;\n    if (interpolant === null) {\n      interpolant = mixer._lendControlInterpolant();\n      this._timeScaleInterpolant = interpolant;\n    }\n    const times = interpolant.parameterPositions, values = interpolant.sampleValues;\n    times[0] = now2;\n    times[1] = now2 + duration;\n    values[0] = startTimeScale / timeScale;\n    values[1] = endTimeScale / timeScale;\n    return this;\n  }\n  stopWarping() {\n    const timeScaleInterpolant = this._timeScaleInterpolant;\n    if (timeScaleInterpolant !== null) {\n      this._timeScaleInterpolant = null;\n      this._mixer._takeBackControlInterpolant(timeScaleInterpolant);\n    }\n    return this;\n  }\n  // Object Accessors\n  getMixer() {\n    return this._mixer;\n  }\n  getClip() {\n    return this._clip;\n  }\n  getRoot() {\n    return this._localRoot || this._mixer._root;\n  }\n  // Interna\n  _update(time, deltaTime, timeDirection, accuIndex) {\n    if (!this.enabled) {\n      this._updateWeight(time);\n      return;\n    }\n    const startTime = this._startTime;\n    if (startTime !== null) {\n      const timeRunning = (time - startTime) * timeDirection;\n      if (timeRunning < 0 || timeDirection === 0) {\n        deltaTime = 0;\n      } else {\n        this._startTime = null;\n        deltaTime = timeDirection * timeRunning;\n      }\n    }\n    deltaTime *= this._updateTimeScale(time);\n    const clipTime = this._updateTime(deltaTime);\n    const weight = this._updateWeight(time);\n    if (weight > 0) {\n      const interpolants = this._interpolants;\n      const propertyMixers = this._propertyBindings;\n      switch (this.blendMode) {\n        case AdditiveAnimationBlendMode:\n          for (let j = 0, m = interpolants.length; j !== m; ++j) {\n            interpolants[j].evaluate(clipTime);\n            propertyMixers[j].accumulateAdditive(weight);\n          }\n          break;\n        case NormalAnimationBlendMode:\n        default:\n          for (let j = 0, m = interpolants.length; j !== m; ++j) {\n            interpolants[j].evaluate(clipTime);\n            propertyMixers[j].accumulate(accuIndex, weight);\n          }\n      }\n    }\n  }\n  _updateWeight(time) {\n    let weight = 0;\n    if (this.enabled) {\n      weight = this.weight;\n      const interpolant = this._weightInterpolant;\n      if (interpolant !== null) {\n        const interpolantValue = interpolant.evaluate(time)[0];\n        weight *= interpolantValue;\n        if (time > interpolant.parameterPositions[1]) {\n          this.stopFading();\n          if (interpolantValue === 0) {\n            this.enabled = false;\n          }\n        }\n      }\n    }\n    this._effectiveWeight = weight;\n    return weight;\n  }\n  _updateTimeScale(time) {\n    let timeScale = 0;\n    if (!this.paused) {\n      timeScale = this.timeScale;\n      const interpolant = this._timeScaleInterpolant;\n      if (interpolant !== null) {\n        const interpolantValue = interpolant.evaluate(time)[0];\n        timeScale *= interpolantValue;\n        if (time > interpolant.parameterPositions[1]) {\n          this.stopWarping();\n          if (timeScale === 0) {\n            this.paused = true;\n          } else {\n            this.timeScale = timeScale;\n          }\n        }\n      }\n    }\n    this._effectiveTimeScale = timeScale;\n    return timeScale;\n  }\n  _updateTime(deltaTime) {\n    const duration = this._clip.duration;\n    const loop = this.loop;\n    let time = this.time + deltaTime;\n    let loopCount = this._loopCount;\n    const pingPong = loop === LoopPingPong;\n    if (deltaTime === 0) {\n      if (loopCount === -1) return time;\n      return pingPong && (loopCount & 1) === 1 ? duration - time : time;\n    }\n    if (loop === LoopOnce) {\n      if (loopCount === -1) {\n        this._loopCount = 0;\n        this._setEndings(true, true, false);\n      }\n      handle_stop: {\n        if (time >= duration) {\n          time = duration;\n        } else if (time < 0) {\n          time = 0;\n        } else {\n          this.time = time;\n          break handle_stop;\n        }\n        if (this.clampWhenFinished) this.paused = true;\n        else this.enabled = false;\n        this.time = time;\n        this._mixer.dispatchEvent({\n          type: \"finished\",\n          action: this,\n          direction: deltaTime < 0 ? -1 : 1\n        });\n      }\n    } else {\n      if (loopCount === -1) {\n        if (deltaTime >= 0) {\n          loopCount = 0;\n          this._setEndings(true, this.repetitions === 0, pingPong);\n        } else {\n          this._setEndings(this.repetitions === 0, true, pingPong);\n        }\n      }\n      if (time >= duration || time < 0) {\n        const loopDelta = Math.floor(time / duration);\n        time -= duration * loopDelta;\n        loopCount += Math.abs(loopDelta);\n        const pending = this.repetitions - loopCount;\n        if (pending <= 0) {\n          if (this.clampWhenFinished) this.paused = true;\n          else this.enabled = false;\n          time = deltaTime > 0 ? duration : 0;\n          this.time = time;\n          this._mixer.dispatchEvent({\n            type: \"finished\",\n            action: this,\n            direction: deltaTime > 0 ? 1 : -1\n          });\n        } else {\n          if (pending === 1) {\n            const atStart = deltaTime < 0;\n            this._setEndings(atStart, !atStart, pingPong);\n          } else {\n            this._setEndings(false, false, pingPong);\n          }\n          this._loopCount = loopCount;\n          this.time = time;\n          this._mixer.dispatchEvent({\n            type: \"loop\",\n            action: this,\n            loopDelta\n          });\n        }\n      } else {\n        this.time = time;\n      }\n      if (pingPong && (loopCount & 1) === 1) {\n        return duration - time;\n      }\n    }\n    return time;\n  }\n  _setEndings(atStart, atEnd, pingPong) {\n    const settings = this._interpolantSettings;\n    if (pingPong) {\n      settings.endingStart = ZeroSlopeEnding;\n      settings.endingEnd = ZeroSlopeEnding;\n    } else {\n      if (atStart) {\n        settings.endingStart = this.zeroSlopeAtStart ? ZeroSlopeEnding : ZeroCurvatureEnding;\n      } else {\n        settings.endingStart = WrapAroundEnding;\n      }\n      if (atEnd) {\n        settings.endingEnd = this.zeroSlopeAtEnd ? ZeroSlopeEnding : ZeroCurvatureEnding;\n      } else {\n        settings.endingEnd = WrapAroundEnding;\n      }\n    }\n  }\n  _scheduleFading(duration, weightNow, weightThen) {\n    const mixer = this._mixer, now2 = mixer.time;\n    let interpolant = this._weightInterpolant;\n    if (interpolant === null) {\n      interpolant = mixer._lendControlInterpolant();\n      this._weightInterpolant = interpolant;\n    }\n    const times = interpolant.parameterPositions, values = interpolant.sampleValues;\n    times[0] = now2;\n    values[0] = weightNow;\n    times[1] = now2 + duration;\n    values[1] = weightThen;\n    return this;\n  }\n};\nvar _controlInterpolantsResultBuffer = new Float32Array(1);\nvar AnimationMixer = class extends EventDispatcher {\n  constructor(root) {\n    super();\n    this._root = root;\n    this._initMemoryManager();\n    this._accuIndex = 0;\n    this.time = 0;\n    this.timeScale = 1;\n  }\n  _bindAction(action, prototypeAction) {\n    const root = action._localRoot || this._root, tracks = action._clip.tracks, nTracks = tracks.length, bindings = action._propertyBindings, interpolants = action._interpolants, rootUuid = root.uuid, bindingsByRoot = this._bindingsByRootAndName;\n    let bindingsByName = bindingsByRoot[rootUuid];\n    if (bindingsByName === void 0) {\n      bindingsByName = {};\n      bindingsByRoot[rootUuid] = bindingsByName;\n    }\n    for (let i = 0; i !== nTracks; ++i) {\n      const track = tracks[i], trackName = track.name;\n      let binding = bindingsByName[trackName];\n      if (binding !== void 0) {\n        ++binding.referenceCount;\n        bindings[i] = binding;\n      } else {\n        binding = bindings[i];\n        if (binding !== void 0) {\n          if (binding._cacheIndex === null) {\n            ++binding.referenceCount;\n            this._addInactiveBinding(binding, rootUuid, trackName);\n          }\n          continue;\n        }\n        const path = prototypeAction && prototypeAction._propertyBindings[i].binding.parsedPath;\n        binding = new PropertyMixer(\n          PropertyBinding.create(root, trackName, path),\n          track.ValueTypeName,\n          track.getValueSize()\n        );\n        ++binding.referenceCount;\n        this._addInactiveBinding(binding, rootUuid, trackName);\n        bindings[i] = binding;\n      }\n      interpolants[i].resultBuffer = binding.buffer;\n    }\n  }\n  _activateAction(action) {\n    if (!this._isActiveAction(action)) {\n      if (action._cacheIndex === null) {\n        const rootUuid = (action._localRoot || this._root).uuid, clipUuid = action._clip.uuid, actionsForClip = this._actionsByClip[clipUuid];\n        this._bindAction(\n          action,\n          actionsForClip && actionsForClip.knownActions[0]\n        );\n        this._addInactiveAction(action, clipUuid, rootUuid);\n      }\n      const bindings = action._propertyBindings;\n      for (let i = 0, n = bindings.length; i !== n; ++i) {\n        const binding = bindings[i];\n        if (binding.useCount++ === 0) {\n          this._lendBinding(binding);\n          binding.saveOriginalState();\n        }\n      }\n      this._lendAction(action);\n    }\n  }\n  _deactivateAction(action) {\n    if (this._isActiveAction(action)) {\n      const bindings = action._propertyBindings;\n      for (let i = 0, n = bindings.length; i !== n; ++i) {\n        const binding = bindings[i];\n        if (--binding.useCount === 0) {\n          binding.restoreOriginalState();\n          this._takeBackBinding(binding);\n        }\n      }\n      this._takeBackAction(action);\n    }\n  }\n  // Memory manager\n  _initMemoryManager() {\n    this._actions = [];\n    this._nActiveActions = 0;\n    this._actionsByClip = {};\n    this._bindings = [];\n    this._nActiveBindings = 0;\n    this._bindingsByRootAndName = {};\n    this._controlInterpolants = [];\n    this._nActiveControlInterpolants = 0;\n    const scope = this;\n    this.stats = {\n      actions: {\n        get total() {\n          return scope._actions.length;\n        },\n        get inUse() {\n          return scope._nActiveActions;\n        }\n      },\n      bindings: {\n        get total() {\n          return scope._bindings.length;\n        },\n        get inUse() {\n          return scope._nActiveBindings;\n        }\n      },\n      controlInterpolants: {\n        get total() {\n          return scope._controlInterpolants.length;\n        },\n        get inUse() {\n          return scope._nActiveControlInterpolants;\n        }\n      }\n    };\n  }\n  // Memory management for AnimationAction objects\n  _isActiveAction(action) {\n    const index = action._cacheIndex;\n    return index !== null && index < this._nActiveActions;\n  }\n  _addInactiveAction(action, clipUuid, rootUuid) {\n    const actions = this._actions, actionsByClip = this._actionsByClip;\n    let actionsForClip = actionsByClip[clipUuid];\n    if (actionsForClip === void 0) {\n      actionsForClip = {\n        knownActions: [action],\n        actionByRoot: {}\n      };\n      action._byClipCacheIndex = 0;\n      actionsByClip[clipUuid] = actionsForClip;\n    } else {\n      const knownActions = actionsForClip.knownActions;\n      action._byClipCacheIndex = knownActions.length;\n      knownActions.push(action);\n    }\n    action._cacheIndex = actions.length;\n    actions.push(action);\n    actionsForClip.actionByRoot[rootUuid] = action;\n  }\n  _removeInactiveAction(action) {\n    const actions = this._actions, lastInactiveAction = actions[actions.length - 1], cacheIndex = action._cacheIndex;\n    lastInactiveAction._cacheIndex = cacheIndex;\n    actions[cacheIndex] = lastInactiveAction;\n    actions.pop();\n    action._cacheIndex = null;\n    const clipUuid = action._clip.uuid, actionsByClip = this._actionsByClip, actionsForClip = actionsByClip[clipUuid], knownActionsForClip = actionsForClip.knownActions, lastKnownAction = knownActionsForClip[knownActionsForClip.length - 1], byClipCacheIndex = action._byClipCacheIndex;\n    lastKnownAction._byClipCacheIndex = byClipCacheIndex;\n    knownActionsForClip[byClipCacheIndex] = lastKnownAction;\n    knownActionsForClip.pop();\n    action._byClipCacheIndex = null;\n    const actionByRoot = actionsForClip.actionByRoot, rootUuid = (action._localRoot || this._root).uuid;\n    delete actionByRoot[rootUuid];\n    if (knownActionsForClip.length === 0) {\n      delete actionsByClip[clipUuid];\n    }\n    this._removeInactiveBindingsForAction(action);\n  }\n  _removeInactiveBindingsForAction(action) {\n    const bindings = action._propertyBindings;\n    for (let i = 0, n = bindings.length; i !== n; ++i) {\n      const binding = bindings[i];\n      if (--binding.referenceCount === 0) {\n        this._removeInactiveBinding(binding);\n      }\n    }\n  }\n  _lendAction(action) {\n    const actions = this._actions, prevIndex = action._cacheIndex, lastActiveIndex = this._nActiveActions++, firstInactiveAction = actions[lastActiveIndex];\n    action._cacheIndex = lastActiveIndex;\n    actions[lastActiveIndex] = action;\n    firstInactiveAction._cacheIndex = prevIndex;\n    actions[prevIndex] = firstInactiveAction;\n  }\n  _takeBackAction(action) {\n    const actions = this._actions, prevIndex = action._cacheIndex, firstInactiveIndex = --this._nActiveActions, lastActiveAction = actions[firstInactiveIndex];\n    action._cacheIndex = firstInactiveIndex;\n    actions[firstInactiveIndex] = action;\n    lastActiveAction._cacheIndex = prevIndex;\n    actions[prevIndex] = lastActiveAction;\n  }\n  // Memory management for PropertyMixer objects\n  _addInactiveBinding(binding, rootUuid, trackName) {\n    const bindingsByRoot = this._bindingsByRootAndName, bindings = this._bindings;\n    let bindingByName = bindingsByRoot[rootUuid];\n    if (bindingByName === void 0) {\n      bindingByName = {};\n      bindingsByRoot[rootUuid] = bindingByName;\n    }\n    bindingByName[trackName] = binding;\n    binding._cacheIndex = bindings.length;\n    bindings.push(binding);\n  }\n  _removeInactiveBinding(binding) {\n    const bindings = this._bindings, propBinding = binding.binding, rootUuid = propBinding.rootNode.uuid, trackName = propBinding.path, bindingsByRoot = this._bindingsByRootAndName, bindingByName = bindingsByRoot[rootUuid], lastInactiveBinding = bindings[bindings.length - 1], cacheIndex = binding._cacheIndex;\n    lastInactiveBinding._cacheIndex = cacheIndex;\n    bindings[cacheIndex] = lastInactiveBinding;\n    bindings.pop();\n    delete bindingByName[trackName];\n    if (Object.keys(bindingByName).length === 0) {\n      delete bindingsByRoot[rootUuid];\n    }\n  }\n  _lendBinding(binding) {\n    const bindings = this._bindings, prevIndex = binding._cacheIndex, lastActiveIndex = this._nActiveBindings++, firstInactiveBinding = bindings[lastActiveIndex];\n    binding._cacheIndex = lastActiveIndex;\n    bindings[lastActiveIndex] = binding;\n    firstInactiveBinding._cacheIndex = prevIndex;\n    bindings[prevIndex] = firstInactiveBinding;\n  }\n  _takeBackBinding(binding) {\n    const bindings = this._bindings, prevIndex = binding._cacheIndex, firstInactiveIndex = --this._nActiveBindings, lastActiveBinding = bindings[firstInactiveIndex];\n    binding._cacheIndex = firstInactiveIndex;\n    bindings[firstInactiveIndex] = binding;\n    lastActiveBinding._cacheIndex = prevIndex;\n    bindings[prevIndex] = lastActiveBinding;\n  }\n  // Memory management of Interpolants for weight and time scale\n  _lendControlInterpolant() {\n    const interpolants = this._controlInterpolants, lastActiveIndex = this._nActiveControlInterpolants++;\n    let interpolant = interpolants[lastActiveIndex];\n    if (interpolant === void 0) {\n      interpolant = new LinearInterpolant(\n        new Float32Array(2),\n        new Float32Array(2),\n        1,\n        _controlInterpolantsResultBuffer\n      );\n      interpolant.__cacheIndex = lastActiveIndex;\n      interpolants[lastActiveIndex] = interpolant;\n    }\n    return interpolant;\n  }\n  _takeBackControlInterpolant(interpolant) {\n    const interpolants = this._controlInterpolants, prevIndex = interpolant.__cacheIndex, firstInactiveIndex = --this._nActiveControlInterpolants, lastActiveInterpolant = interpolants[firstInactiveIndex];\n    interpolant.__cacheIndex = firstInactiveIndex;\n    interpolants[firstInactiveIndex] = interpolant;\n    lastActiveInterpolant.__cacheIndex = prevIndex;\n    interpolants[prevIndex] = lastActiveInterpolant;\n  }\n  // return an action for a clip optionally using a custom root target\n  // object (this method allocates a lot of dynamic memory in case a\n  // previously unknown clip/root combination is specified)\n  clipAction(clip, optionalRoot, blendMode) {\n    const root = optionalRoot || this._root, rootUuid = root.uuid;\n    let clipObject = typeof clip === \"string\" ? AnimationClip.findByName(root, clip) : clip;\n    const clipUuid = clipObject !== null ? clipObject.uuid : clip;\n    const actionsForClip = this._actionsByClip[clipUuid];\n    let prototypeAction = null;\n    if (blendMode === void 0) {\n      if (clipObject !== null) {\n        blendMode = clipObject.blendMode;\n      } else {\n        blendMode = NormalAnimationBlendMode;\n      }\n    }\n    if (actionsForClip !== void 0) {\n      const existingAction = actionsForClip.actionByRoot[rootUuid];\n      if (existingAction !== void 0 && existingAction.blendMode === blendMode) {\n        return existingAction;\n      }\n      prototypeAction = actionsForClip.knownActions[0];\n      if (clipObject === null)\n        clipObject = prototypeAction._clip;\n    }\n    if (clipObject === null) return null;\n    const newAction = new AnimationAction(this, clipObject, optionalRoot, blendMode);\n    this._bindAction(newAction, prototypeAction);\n    this._addInactiveAction(newAction, clipUuid, rootUuid);\n    return newAction;\n  }\n  // get an existing action\n  existingAction(clip, optionalRoot) {\n    const root = optionalRoot || this._root, rootUuid = root.uuid, clipObject = typeof clip === \"string\" ? AnimationClip.findByName(root, clip) : clip, clipUuid = clipObject ? clipObject.uuid : clip, actionsForClip = this._actionsByClip[clipUuid];\n    if (actionsForClip !== void 0) {\n      return actionsForClip.actionByRoot[rootUuid] || null;\n    }\n    return null;\n  }\n  // deactivates all previously scheduled actions\n  stopAllAction() {\n    const actions = this._actions, nActions = this._nActiveActions;\n    for (let i = nActions - 1; i >= 0; --i) {\n      actions[i].stop();\n    }\n    return this;\n  }\n  // advance the time and update apply the animation\n  update(deltaTime) {\n    deltaTime *= this.timeScale;\n    const actions = this._actions, nActions = this._nActiveActions, time = this.time += deltaTime, timeDirection = Math.sign(deltaTime), accuIndex = this._accuIndex ^= 1;\n    for (let i = 0; i !== nActions; ++i) {\n      const action = actions[i];\n      action._update(time, deltaTime, timeDirection, accuIndex);\n    }\n    const bindings = this._bindings, nBindings = this._nActiveBindings;\n    for (let i = 0; i !== nBindings; ++i) {\n      bindings[i].apply(accuIndex);\n    }\n    return this;\n  }\n  // Allows you to seek to a specific time in an animation.\n  setTime(timeInSeconds) {\n    this.time = 0;\n    for (let i = 0; i < this._actions.length; i++) {\n      this._actions[i].time = 0;\n    }\n    return this.update(timeInSeconds);\n  }\n  // return this mixer's root target object\n  getRoot() {\n    return this._root;\n  }\n  // free all resources specific to a particular clip\n  uncacheClip(clip) {\n    const actions = this._actions, clipUuid = clip.uuid, actionsByClip = this._actionsByClip, actionsForClip = actionsByClip[clipUuid];\n    if (actionsForClip !== void 0) {\n      const actionsToRemove = actionsForClip.knownActions;\n      for (let i = 0, n = actionsToRemove.length; i !== n; ++i) {\n        const action = actionsToRemove[i];\n        this._deactivateAction(action);\n        const cacheIndex = action._cacheIndex, lastInactiveAction = actions[actions.length - 1];\n        action._cacheIndex = null;\n        action._byClipCacheIndex = null;\n        lastInactiveAction._cacheIndex = cacheIndex;\n        actions[cacheIndex] = lastInactiveAction;\n        actions.pop();\n        this._removeInactiveBindingsForAction(action);\n      }\n      delete actionsByClip[clipUuid];\n    }\n  }\n  // free all resources specific to a particular root target object\n  uncacheRoot(root) {\n    const rootUuid = root.uuid, actionsByClip = this._actionsByClip;\n    for (const clipUuid in actionsByClip) {\n      const actionByRoot = actionsByClip[clipUuid].actionByRoot, action = actionByRoot[rootUuid];\n      if (action !== void 0) {\n        this._deactivateAction(action);\n        this._removeInactiveAction(action);\n      }\n    }\n    const bindingsByRoot = this._bindingsByRootAndName, bindingByName = bindingsByRoot[rootUuid];\n    if (bindingByName !== void 0) {\n      for (const trackName in bindingByName) {\n        const binding = bindingByName[trackName];\n        binding.restoreOriginalState();\n        this._removeInactiveBinding(binding);\n      }\n    }\n  }\n  // remove a targeted clip from the cache\n  uncacheAction(clip, optionalRoot) {\n    const action = this.existingAction(clip, optionalRoot);\n    if (action !== null) {\n      this._deactivateAction(action);\n      this._removeInactiveAction(action);\n    }\n  }\n};\nvar Uniform = class _Uniform {\n  constructor(value) {\n    this.value = value;\n  }\n  clone() {\n    return new _Uniform(this.value.clone === void 0 ? this.value : this.value.clone());\n  }\n};\nvar _id = 0;\nvar UniformsGroup = class extends EventDispatcher {\n  constructor() {\n    super();\n    this.isUniformsGroup = true;\n    Object.defineProperty(this, \"id\", { value: _id++ });\n    this.name = \"\";\n    this.usage = StaticDrawUsage;\n    this.uniforms = [];\n  }\n  add(uniform) {\n    this.uniforms.push(uniform);\n    return this;\n  }\n  remove(uniform) {\n    const index = this.uniforms.indexOf(uniform);\n    if (index !== -1) this.uniforms.splice(index, 1);\n    return this;\n  }\n  setName(name) {\n    this.name = name;\n    return this;\n  }\n  setUsage(value) {\n    this.usage = value;\n    return this;\n  }\n  dispose() {\n    this.dispatchEvent({ type: \"dispose\" });\n    return this;\n  }\n  copy(source) {\n    this.name = source.name;\n    this.usage = source.usage;\n    const uniformsSource = source.uniforms;\n    this.uniforms.length = 0;\n    for (let i = 0, l = uniformsSource.length; i < l; i++) {\n      const uniforms = Array.isArray(uniformsSource[i]) ? uniformsSource[i] : [uniformsSource[i]];\n      for (let j = 0; j < uniforms.length; j++) {\n        this.uniforms.push(uniforms[j].clone());\n      }\n    }\n    return this;\n  }\n  clone() {\n    return new this.constructor().copy(this);\n  }\n};\nvar InstancedInterleavedBuffer = class extends InterleavedBuffer {\n  constructor(array, stride, meshPerAttribute = 1) {\n    super(array, stride);\n    this.isInstancedInterleavedBuffer = true;\n    this.meshPerAttribute = meshPerAttribute;\n  }\n  copy(source) {\n    super.copy(source);\n    this.meshPerAttribute = source.meshPerAttribute;\n    return this;\n  }\n  clone(data) {\n    const ib = super.clone(data);\n    ib.meshPerAttribute = this.meshPerAttribute;\n    return ib;\n  }\n  toJSON(data) {\n    const json = super.toJSON(data);\n    json.isInstancedInterleavedBuffer = true;\n    json.meshPerAttribute = this.meshPerAttribute;\n    return json;\n  }\n};\nvar GLBufferAttribute = class {\n  constructor(buffer, type, itemSize, elementSize, count) {\n    this.isGLBufferAttribute = true;\n    this.name = \"\";\n    this.buffer = buffer;\n    this.type = type;\n    this.itemSize = itemSize;\n    this.elementSize = elementSize;\n    this.count = count;\n    this.version = 0;\n  }\n  set needsUpdate(value) {\n    if (value === true) this.version++;\n  }\n  setBuffer(buffer) {\n    this.buffer = buffer;\n    return this;\n  }\n  setType(type, elementSize) {\n    this.type = type;\n    this.elementSize = elementSize;\n    return this;\n  }\n  setItemSize(itemSize) {\n    this.itemSize = itemSize;\n    return this;\n  }\n  setCount(count) {\n    this.count = count;\n    return this;\n  }\n};\nvar _matrix = /* @__PURE__ */ new Matrix4();\nvar Raycaster = class {\n  constructor(origin, direction, near = 0, far = Infinity) {\n    this.ray = new Ray(origin, direction);\n    this.near = near;\n    this.far = far;\n    this.camera = null;\n    this.layers = new Layers();\n    this.params = {\n      Mesh: {},\n      Line: { threshold: 1 },\n      LOD: {},\n      Points: { threshold: 1 },\n      Sprite: {}\n    };\n  }\n  set(origin, direction) {\n    this.ray.set(origin, direction);\n  }\n  setFromCamera(coords, camera) {\n    if (camera.isPerspectiveCamera) {\n      this.ray.origin.setFromMatrixPosition(camera.matrixWorld);\n      this.ray.direction.set(coords.x, coords.y, 0.5).unproject(camera).sub(this.ray.origin).normalize();\n      this.camera = camera;\n    } else if (camera.isOrthographicCamera) {\n      this.ray.origin.set(coords.x, coords.y, (camera.near + camera.far) / (camera.near - camera.far)).unproject(camera);\n      this.ray.direction.set(0, 0, -1).transformDirection(camera.matrixWorld);\n      this.camera = camera;\n    } else {\n      console.error(\"THREE.Raycaster: Unsupported camera type: \" + camera.type);\n    }\n  }\n  setFromXRController(controller) {\n    _matrix.identity().extractRotation(controller.matrixWorld);\n    this.ray.origin.setFromMatrixPosition(controller.matrixWorld);\n    this.ray.direction.set(0, 0, -1).applyMatrix4(_matrix);\n    return this;\n  }\n  intersectObject(object, recursive = true, intersects2 = []) {\n    intersect(object, this, intersects2, recursive);\n    intersects2.sort(ascSort);\n    return intersects2;\n  }\n  intersectObjects(objects, recursive = true, intersects2 = []) {\n    for (let i = 0, l = objects.length; i < l; i++) {\n      intersect(objects[i], this, intersects2, recursive);\n    }\n    intersects2.sort(ascSort);\n    return intersects2;\n  }\n};\nfunction ascSort(a, b) {\n  return a.distance - b.distance;\n}\nfunction intersect(object, raycaster, intersects2, recursive) {\n  let propagate = true;\n  if (object.layers.test(raycaster.layers)) {\n    const result = object.raycast(raycaster, intersects2);\n    if (result === false) propagate = false;\n  }\n  if (propagate === true && recursive === true) {\n    const children = object.children;\n    for (let i = 0, l = children.length; i < l; i++) {\n      intersect(children[i], raycaster, intersects2, true);\n    }\n  }\n}\nvar Spherical = class {\n  constructor(radius = 1, phi = 0, theta = 0) {\n    this.radius = radius;\n    this.phi = phi;\n    this.theta = theta;\n    return this;\n  }\n  set(radius, phi, theta) {\n    this.radius = radius;\n    this.phi = phi;\n    this.theta = theta;\n    return this;\n  }\n  copy(other) {\n    this.radius = other.radius;\n    this.phi = other.phi;\n    this.theta = other.theta;\n    return this;\n  }\n  // restrict phi to be between EPS and PI-EPS\n  makeSafe() {\n    const EPS = 1e-6;\n    this.phi = Math.max(EPS, Math.min(Math.PI - EPS, this.phi));\n    return this;\n  }\n  setFromVector3(v) {\n    return this.setFromCartesianCoords(v.x, v.y, v.z);\n  }\n  setFromCartesianCoords(x, y, z) {\n    this.radius = Math.sqrt(x * x + y * y + z * z);\n    if (this.radius === 0) {\n      this.theta = 0;\n      this.phi = 0;\n    } else {\n      this.theta = Math.atan2(x, z);\n      this.phi = Math.acos(clamp(y / this.radius, -1, 1));\n    }\n    return this;\n  }\n  clone() {\n    return new this.constructor().copy(this);\n  }\n};\nvar Cylindrical = class {\n  constructor(radius = 1, theta = 0, y = 0) {\n    this.radius = radius;\n    this.theta = theta;\n    this.y = y;\n    return this;\n  }\n  set(radius, theta, y) {\n    this.radius = radius;\n    this.theta = theta;\n    this.y = y;\n    return this;\n  }\n  copy(other) {\n    this.radius = other.radius;\n    this.theta = other.theta;\n    this.y = other.y;\n    return this;\n  }\n  setFromVector3(v) {\n    return this.setFromCartesianCoords(v.x, v.y, v.z);\n  }\n  setFromCartesianCoords(x, y, z) {\n    this.radius = Math.sqrt(x * x + z * z);\n    this.theta = Math.atan2(x, z);\n    this.y = y;\n    return this;\n  }\n  clone() {\n    return new this.constructor().copy(this);\n  }\n};\nvar Matrix2 = class _Matrix2 {\n  constructor(n11, n12, n21, n22) {\n    _Matrix2.prototype.isMatrix2 = true;\n    this.elements = [\n      1,\n      0,\n      0,\n      1\n    ];\n    if (n11 !== void 0) {\n      this.set(n11, n12, n21, n22);\n    }\n  }\n  identity() {\n    this.set(\n      1,\n      0,\n      0,\n      1\n    );\n    return this;\n  }\n  fromArray(array, offset = 0) {\n    for (let i = 0; i < 4; i++) {\n      this.elements[i] = array[i + offset];\n    }\n    return this;\n  }\n  set(n11, n12, n21, n22) {\n    const te = this.elements;\n    te[0] = n11;\n    te[2] = n12;\n    te[1] = n21;\n    te[3] = n22;\n    return this;\n  }\n};\nvar _vector$4 = /* @__PURE__ */ new Vector2();\nvar Box2 = class {\n  constructor(min = new Vector2(Infinity, Infinity), max = new Vector2(-Infinity, -Infinity)) {\n    this.isBox2 = true;\n    this.min = min;\n    this.max = max;\n  }\n  set(min, max) {\n    this.min.copy(min);\n    this.max.copy(max);\n    return this;\n  }\n  setFromPoints(points) {\n    this.makeEmpty();\n    for (let i = 0, il = points.length; i < il; i++) {\n      this.expandByPoint(points[i]);\n    }\n    return this;\n  }\n  setFromCenterAndSize(center, size) {\n    const halfSize = _vector$4.copy(size).multiplyScalar(0.5);\n    this.min.copy(center).sub(halfSize);\n    this.max.copy(center).add(halfSize);\n    return this;\n  }\n  clone() {\n    return new this.constructor().copy(this);\n  }\n  copy(box) {\n    this.min.copy(box.min);\n    this.max.copy(box.max);\n    return this;\n  }\n  makeEmpty() {\n    this.min.x = this.min.y = Infinity;\n    this.max.x = this.max.y = -Infinity;\n    return this;\n  }\n  isEmpty() {\n    return this.max.x < this.min.x || this.max.y < this.min.y;\n  }\n  getCenter(target) {\n    return this.isEmpty() ? target.set(0, 0) : target.addVectors(this.min, this.max).multiplyScalar(0.5);\n  }\n  getSize(target) {\n    return this.isEmpty() ? target.set(0, 0) : target.subVectors(this.max, this.min);\n  }\n  expandByPoint(point) {\n    this.min.min(point);\n    this.max.max(point);\n    return this;\n  }\n  expandByVector(vector) {\n    this.min.sub(vector);\n    this.max.add(vector);\n    return this;\n  }\n  expandByScalar(scalar) {\n    this.min.addScalar(-scalar);\n    this.max.addScalar(scalar);\n    return this;\n  }\n  containsPoint(point) {\n    return point.x >= this.min.x && point.x <= this.max.x && point.y >= this.min.y && point.y <= this.max.y;\n  }\n  containsBox(box) {\n    return this.min.x <= box.min.x && box.max.x <= this.max.x && this.min.y <= box.min.y && box.max.y <= this.max.y;\n  }\n  getParameter(point, target) {\n    return target.set(\n      (point.x - this.min.x) / (this.max.x - this.min.x),\n      (point.y - this.min.y) / (this.max.y - this.min.y)\n    );\n  }\n  intersectsBox(box) {\n    return box.max.x >= this.min.x && box.min.x <= this.max.x && box.max.y >= this.min.y && box.min.y <= this.max.y;\n  }\n  clampPoint(point, target) {\n    return target.copy(point).clamp(this.min, this.max);\n  }\n  distanceToPoint(point) {\n    return this.clampPoint(point, _vector$4).distanceTo(point);\n  }\n  intersect(box) {\n    this.min.max(box.min);\n    this.max.min(box.max);\n    if (this.isEmpty()) this.makeEmpty();\n    return this;\n  }\n  union(box) {\n    this.min.min(box.min);\n    this.max.max(box.max);\n    return this;\n  }\n  translate(offset) {\n    this.min.add(offset);\n    this.max.add(offset);\n    return this;\n  }\n  equals(box) {\n    return box.min.equals(this.min) && box.max.equals(this.max);\n  }\n};\nvar _startP = /* @__PURE__ */ new Vector3();\nvar _startEnd = /* @__PURE__ */ new Vector3();\nvar Line3 = class {\n  constructor(start = new Vector3(), end = new Vector3()) {\n    this.start = start;\n    this.end = end;\n  }\n  set(start, end) {\n    this.start.copy(start);\n    this.end.copy(end);\n    return this;\n  }\n  copy(line) {\n    this.start.copy(line.start);\n    this.end.copy(line.end);\n    return this;\n  }\n  getCenter(target) {\n    return target.addVectors(this.start, this.end).multiplyScalar(0.5);\n  }\n  delta(target) {\n    return target.subVectors(this.end, this.start);\n  }\n  distanceSq() {\n    return this.start.distanceToSquared(this.end);\n  }\n  distance() {\n    return this.start.distanceTo(this.end);\n  }\n  at(t, target) {\n    return this.delta(target).multiplyScalar(t).add(this.start);\n  }\n  closestPointToPointParameter(point, clampToLine) {\n    _startP.subVectors(point, this.start);\n    _startEnd.subVectors(this.end, this.start);\n    const startEnd2 = _startEnd.dot(_startEnd);\n    const startEnd_startP = _startEnd.dot(_startP);\n    let t = startEnd_startP / startEnd2;\n    if (clampToLine) {\n      t = clamp(t, 0, 1);\n    }\n    return t;\n  }\n  closestPointToPoint(point, clampToLine, target) {\n    const t = this.closestPointToPointParameter(point, clampToLine);\n    return this.delta(target).multiplyScalar(t).add(this.start);\n  }\n  applyMatrix4(matrix) {\n    this.start.applyMatrix4(matrix);\n    this.end.applyMatrix4(matrix);\n    return this;\n  }\n  equals(line) {\n    return line.start.equals(this.start) && line.end.equals(this.end);\n  }\n  clone() {\n    return new this.constructor().copy(this);\n  }\n};\nvar _vector$3 = /* @__PURE__ */ new Vector3();\nvar SpotLightHelper = class extends Object3D {\n  constructor(light, color) {\n    super();\n    this.light = light;\n    this.matrixAutoUpdate = false;\n    this.color = color;\n    this.type = \"SpotLightHelper\";\n    const geometry = new BufferGeometry();\n    const positions = [\n      0,\n      0,\n      0,\n      0,\n      0,\n      1,\n      0,\n      0,\n      0,\n      1,\n      0,\n      1,\n      0,\n      0,\n      0,\n      -1,\n      0,\n      1,\n      0,\n      0,\n      0,\n      0,\n      1,\n      1,\n      0,\n      0,\n      0,\n      0,\n      -1,\n      1\n    ];\n    for (let i = 0, j = 1, l = 32; i < l; i++, j++) {\n      const p1 = i / l * Math.PI * 2;\n      const p2 = j / l * Math.PI * 2;\n      positions.push(\n        Math.cos(p1),\n        Math.sin(p1),\n        1,\n        Math.cos(p2),\n        Math.sin(p2),\n        1\n      );\n    }\n    geometry.setAttribute(\"position\", new Float32BufferAttribute(positions, 3));\n    const material = new LineBasicMaterial({ fog: false, toneMapped: false });\n    this.cone = new LineSegments(geometry, material);\n    this.add(this.cone);\n    this.update();\n  }\n  dispose() {\n    this.cone.geometry.dispose();\n    this.cone.material.dispose();\n  }\n  update() {\n    this.light.updateWorldMatrix(true, false);\n    this.light.target.updateWorldMatrix(true, false);\n    if (this.parent) {\n      this.parent.updateWorldMatrix(true);\n      this.matrix.copy(this.parent.matrixWorld).invert().multiply(this.light.matrixWorld);\n    } else {\n      this.matrix.copy(this.light.matrixWorld);\n    }\n    this.matrixWorld.copy(this.light.matrixWorld);\n    const coneLength = this.light.distance ? this.light.distance : 1e3;\n    const coneWidth = coneLength * Math.tan(this.light.angle);\n    this.cone.scale.set(coneWidth, coneWidth, coneLength);\n    _vector$3.setFromMatrixPosition(this.light.target.matrixWorld);\n    this.cone.lookAt(_vector$3);\n    if (this.color !== void 0) {\n      this.cone.material.color.set(this.color);\n    } else {\n      this.cone.material.color.copy(this.light.color);\n    }\n  }\n};\nvar _vector$2 = /* @__PURE__ */ new Vector3();\nvar _boneMatrix = /* @__PURE__ */ new Matrix4();\nvar _matrixWorldInv = /* @__PURE__ */ new Matrix4();\nvar SkeletonHelper = class extends LineSegments {\n  constructor(object) {\n    const bones = getBoneList(object);\n    const geometry = new BufferGeometry();\n    const vertices = [];\n    const colors = [];\n    const color1 = new Color(0, 0, 1);\n    const color2 = new Color(0, 1, 0);\n    for (let i = 0; i < bones.length; i++) {\n      const bone = bones[i];\n      if (bone.parent && bone.parent.isBone) {\n        vertices.push(0, 0, 0);\n        vertices.push(0, 0, 0);\n        colors.push(color1.r, color1.g, color1.b);\n        colors.push(color2.r, color2.g, color2.b);\n      }\n    }\n    geometry.setAttribute(\"position\", new Float32BufferAttribute(vertices, 3));\n    geometry.setAttribute(\"color\", new Float32BufferAttribute(colors, 3));\n    const material = new LineBasicMaterial({ vertexColors: true, depthTest: false, depthWrite: false, toneMapped: false, transparent: true });\n    super(geometry, material);\n    this.isSkeletonHelper = true;\n    this.type = \"SkeletonHelper\";\n    this.root = object;\n    this.bones = bones;\n    this.matrix = object.matrixWorld;\n    this.matrixAutoUpdate = false;\n  }\n  updateMatrixWorld(force) {\n    const bones = this.bones;\n    const geometry = this.geometry;\n    const position = geometry.getAttribute(\"position\");\n    _matrixWorldInv.copy(this.root.matrixWorld).invert();\n    for (let i = 0, j = 0; i < bones.length; i++) {\n      const bone = bones[i];\n      if (bone.parent && bone.parent.isBone) {\n        _boneMatrix.multiplyMatrices(_matrixWorldInv, bone.matrixWorld);\n        _vector$2.setFromMatrixPosition(_boneMatrix);\n        position.setXYZ(j, _vector$2.x, _vector$2.y, _vector$2.z);\n        _boneMatrix.multiplyMatrices(_matrixWorldInv, bone.parent.matrixWorld);\n        _vector$2.setFromMatrixPosition(_boneMatrix);\n        position.setXYZ(j + 1, _vector$2.x, _vector$2.y, _vector$2.z);\n        j += 2;\n      }\n    }\n    geometry.getAttribute(\"position\").needsUpdate = true;\n    super.updateMatrixWorld(force);\n  }\n  dispose() {\n    this.geometry.dispose();\n    this.material.dispose();\n  }\n};\nfunction getBoneList(object) {\n  const boneList = [];\n  if (object.isBone === true) {\n    boneList.push(object);\n  }\n  for (let i = 0; i < object.children.length; i++) {\n    boneList.push.apply(boneList, getBoneList(object.children[i]));\n  }\n  return boneList;\n}\nvar PointLightHelper = class extends Mesh {\n  constructor(light, sphereSize, color) {\n    const geometry = new SphereGeometry(sphereSize, 4, 2);\n    const material = new MeshBasicMaterial({ wireframe: true, fog: false, toneMapped: false });\n    super(geometry, material);\n    this.light = light;\n    this.color = color;\n    this.type = \"PointLightHelper\";\n    this.matrix = this.light.matrixWorld;\n    this.matrixAutoUpdate = false;\n    this.update();\n  }\n  dispose() {\n    this.geometry.dispose();\n    this.material.dispose();\n  }\n  update() {\n    this.light.updateWorldMatrix(true, false);\n    if (this.color !== void 0) {\n      this.material.color.set(this.color);\n    } else {\n      this.material.color.copy(this.light.color);\n    }\n  }\n};\nvar _vector$1 = /* @__PURE__ */ new Vector3();\nvar _color1 = /* @__PURE__ */ new Color();\nvar _color2 = /* @__PURE__ */ new Color();\nvar HemisphereLightHelper = class extends Object3D {\n  constructor(light, size, color) {\n    super();\n    this.light = light;\n    this.matrix = light.matrixWorld;\n    this.matrixAutoUpdate = false;\n    this.color = color;\n    this.type = \"HemisphereLightHelper\";\n    const geometry = new OctahedronGeometry(size);\n    geometry.rotateY(Math.PI * 0.5);\n    this.material = new MeshBasicMaterial({ wireframe: true, fog: false, toneMapped: false });\n    if (this.color === void 0) this.material.vertexColors = true;\n    const position = geometry.getAttribute(\"position\");\n    const colors = new Float32Array(position.count * 3);\n    geometry.setAttribute(\"color\", new BufferAttribute(colors, 3));\n    this.add(new Mesh(geometry, this.material));\n    this.update();\n  }\n  dispose() {\n    this.children[0].geometry.dispose();\n    this.children[0].material.dispose();\n  }\n  update() {\n    const mesh = this.children[0];\n    if (this.color !== void 0) {\n      this.material.color.set(this.color);\n    } else {\n      const colors = mesh.geometry.getAttribute(\"color\");\n      _color1.copy(this.light.color);\n      _color2.copy(this.light.groundColor);\n      for (let i = 0, l = colors.count; i < l; i++) {\n        const color = i < l / 2 ? _color1 : _color2;\n        colors.setXYZ(i, color.r, color.g, color.b);\n      }\n      colors.needsUpdate = true;\n    }\n    this.light.updateWorldMatrix(true, false);\n    mesh.lookAt(_vector$1.setFromMatrixPosition(this.light.matrixWorld).negate());\n  }\n};\nvar GridHelper = class extends LineSegments {\n  constructor(size = 10, divisions = 10, color1 = 4473924, color2 = 8947848) {\n    color1 = new Color(color1);\n    color2 = new Color(color2);\n    const center = divisions / 2;\n    const step = size / divisions;\n    const halfSize = size / 2;\n    const vertices = [], colors = [];\n    for (let i = 0, j = 0, k = -halfSize; i <= divisions; i++, k += step) {\n      vertices.push(-halfSize, 0, k, halfSize, 0, k);\n      vertices.push(k, 0, -halfSize, k, 0, halfSize);\n      const color = i === center ? color1 : color2;\n      color.toArray(colors, j);\n      j += 3;\n      color.toArray(colors, j);\n      j += 3;\n      color.toArray(colors, j);\n      j += 3;\n      color.toArray(colors, j);\n      j += 3;\n    }\n    const geometry = new BufferGeometry();\n    geometry.setAttribute(\"position\", new Float32BufferAttribute(vertices, 3));\n    geometry.setAttribute(\"color\", new Float32BufferAttribute(colors, 3));\n    const material = new LineBasicMaterial({ vertexColors: true, toneMapped: false });\n    super(geometry, material);\n    this.type = \"GridHelper\";\n  }\n  dispose() {\n    this.geometry.dispose();\n    this.material.dispose();\n  }\n};\nvar PolarGridHelper = class extends LineSegments {\n  constructor(radius = 10, sectors = 16, rings = 8, divisions = 64, color1 = 4473924, color2 = 8947848) {\n    color1 = new Color(color1);\n    color2 = new Color(color2);\n    const vertices = [];\n    const colors = [];\n    if (sectors > 1) {\n      for (let i = 0; i < sectors; i++) {\n        const v = i / sectors * (Math.PI * 2);\n        const x = Math.sin(v) * radius;\n        const z = Math.cos(v) * radius;\n        vertices.push(0, 0, 0);\n        vertices.push(x, 0, z);\n        const color = i & 1 ? color1 : color2;\n        colors.push(color.r, color.g, color.b);\n        colors.push(color.r, color.g, color.b);\n      }\n    }\n    for (let i = 0; i < rings; i++) {\n      const color = i & 1 ? color1 : color2;\n      const r = radius - radius / rings * i;\n      for (let j = 0; j < divisions; j++) {\n        let v = j / divisions * (Math.PI * 2);\n        let x = Math.sin(v) * r;\n        let z = Math.cos(v) * r;\n        vertices.push(x, 0, z);\n        colors.push(color.r, color.g, color.b);\n        v = (j + 1) / divisions * (Math.PI * 2);\n        x = Math.sin(v) * r;\n        z = Math.cos(v) * r;\n        vertices.push(x, 0, z);\n        colors.push(color.r, color.g, color.b);\n      }\n    }\n    const geometry = new BufferGeometry();\n    geometry.setAttribute(\"position\", new Float32BufferAttribute(vertices, 3));\n    geometry.setAttribute(\"color\", new Float32BufferAttribute(colors, 3));\n    const material = new LineBasicMaterial({ vertexColors: true, toneMapped: false });\n    super(geometry, material);\n    this.type = \"PolarGridHelper\";\n  }\n  dispose() {\n    this.geometry.dispose();\n    this.material.dispose();\n  }\n};\nvar _v1 = /* @__PURE__ */ new Vector3();\nvar _v2 = /* @__PURE__ */ new Vector3();\nvar _v3 = /* @__PURE__ */ new Vector3();\nvar DirectionalLightHelper = class extends Object3D {\n  constructor(light, size, color) {\n    super();\n    this.light = light;\n    this.matrix = light.matrixWorld;\n    this.matrixAutoUpdate = false;\n    this.color = color;\n    this.type = \"DirectionalLightHelper\";\n    if (size === void 0) size = 1;\n    let geometry = new BufferGeometry();\n    geometry.setAttribute(\"position\", new Float32BufferAttribute([\n      -size,\n      size,\n      0,\n      size,\n      size,\n      0,\n      size,\n      -size,\n      0,\n      -size,\n      -size,\n      0,\n      -size,\n      size,\n      0\n    ], 3));\n    const material = new LineBasicMaterial({ fog: false, toneMapped: false });\n    this.lightPlane = new Line(geometry, material);\n    this.add(this.lightPlane);\n    geometry = new BufferGeometry();\n    geometry.setAttribute(\"position\", new Float32BufferAttribute([0, 0, 0, 0, 0, 1], 3));\n    this.targetLine = new Line(geometry, material);\n    this.add(this.targetLine);\n    this.update();\n  }\n  dispose() {\n    this.lightPlane.geometry.dispose();\n    this.lightPlane.material.dispose();\n    this.targetLine.geometry.dispose();\n    this.targetLine.material.dispose();\n  }\n  update() {\n    this.light.updateWorldMatrix(true, false);\n    this.light.target.updateWorldMatrix(true, false);\n    _v1.setFromMatrixPosition(this.light.matrixWorld);\n    _v2.setFromMatrixPosition(this.light.target.matrixWorld);\n    _v3.subVectors(_v2, _v1);\n    this.lightPlane.lookAt(_v2);\n    if (this.color !== void 0) {\n      this.lightPlane.material.color.set(this.color);\n      this.targetLine.material.color.set(this.color);\n    } else {\n      this.lightPlane.material.color.copy(this.light.color);\n      this.targetLine.material.color.copy(this.light.color);\n    }\n    this.targetLine.lookAt(_v2);\n    this.targetLine.scale.z = _v3.length();\n  }\n};\nvar _vector = /* @__PURE__ */ new Vector3();\nvar _camera = /* @__PURE__ */ new Camera();\nvar CameraHelper = class extends LineSegments {\n  constructor(camera) {\n    const geometry = new BufferGeometry();\n    const material = new LineBasicMaterial({ color: 16777215, vertexColors: true, toneMapped: false });\n    const vertices = [];\n    const colors = [];\n    const pointMap = {};\n    addLine(\"n1\", \"n2\");\n    addLine(\"n2\", \"n4\");\n    addLine(\"n4\", \"n3\");\n    addLine(\"n3\", \"n1\");\n    addLine(\"f1\", \"f2\");\n    addLine(\"f2\", \"f4\");\n    addLine(\"f4\", \"f3\");\n    addLine(\"f3\", \"f1\");\n    addLine(\"n1\", \"f1\");\n    addLine(\"n2\", \"f2\");\n    addLine(\"n3\", \"f3\");\n    addLine(\"n4\", \"f4\");\n    addLine(\"p\", \"n1\");\n    addLine(\"p\", \"n2\");\n    addLine(\"p\", \"n3\");\n    addLine(\"p\", \"n4\");\n    addLine(\"u1\", \"u2\");\n    addLine(\"u2\", \"u3\");\n    addLine(\"u3\", \"u1\");\n    addLine(\"c\", \"t\");\n    addLine(\"p\", \"c\");\n    addLine(\"cn1\", \"cn2\");\n    addLine(\"cn3\", \"cn4\");\n    addLine(\"cf1\", \"cf2\");\n    addLine(\"cf3\", \"cf4\");\n    function addLine(a, b) {\n      addPoint(a);\n      addPoint(b);\n    }\n    function addPoint(id) {\n      vertices.push(0, 0, 0);\n      colors.push(0, 0, 0);\n      if (pointMap[id] === void 0) {\n        pointMap[id] = [];\n      }\n      pointMap[id].push(vertices.length / 3 - 1);\n    }\n    geometry.setAttribute(\"position\", new Float32BufferAttribute(vertices, 3));\n    geometry.setAttribute(\"color\", new Float32BufferAttribute(colors, 3));\n    super(geometry, material);\n    this.type = \"CameraHelper\";\n    this.camera = camera;\n    if (this.camera.updateProjectionMatrix) this.camera.updateProjectionMatrix();\n    this.matrix = camera.matrixWorld;\n    this.matrixAutoUpdate = false;\n    this.pointMap = pointMap;\n    this.update();\n    const colorFrustum = new Color(16755200);\n    const colorCone = new Color(16711680);\n    const colorUp = new Color(43775);\n    const colorTarget = new Color(16777215);\n    const colorCross = new Color(3355443);\n    this.setColors(colorFrustum, colorCone, colorUp, colorTarget, colorCross);\n  }\n  setColors(frustum, cone, up, target, cross) {\n    const geometry = this.geometry;\n    const colorAttribute = geometry.getAttribute(\"color\");\n    colorAttribute.setXYZ(0, frustum.r, frustum.g, frustum.b);\n    colorAttribute.setXYZ(1, frustum.r, frustum.g, frustum.b);\n    colorAttribute.setXYZ(2, frustum.r, frustum.g, frustum.b);\n    colorAttribute.setXYZ(3, frustum.r, frustum.g, frustum.b);\n    colorAttribute.setXYZ(4, frustum.r, frustum.g, frustum.b);\n    colorAttribute.setXYZ(5, frustum.r, frustum.g, frustum.b);\n    colorAttribute.setXYZ(6, frustum.r, frustum.g, frustum.b);\n    colorAttribute.setXYZ(7, frustum.r, frustum.g, frustum.b);\n    colorAttribute.setXYZ(8, frustum.r, frustum.g, frustum.b);\n    colorAttribute.setXYZ(9, frustum.r, frustum.g, frustum.b);\n    colorAttribute.setXYZ(10, frustum.r, frustum.g, frustum.b);\n    colorAttribute.setXYZ(11, frustum.r, frustum.g, frustum.b);\n    colorAttribute.setXYZ(12, frustum.r, frustum.g, frustum.b);\n    colorAttribute.setXYZ(13, frustum.r, frustum.g, frustum.b);\n    colorAttribute.setXYZ(14, frustum.r, frustum.g, frustum.b);\n    colorAttribute.setXYZ(15, frustum.r, frustum.g, frustum.b);\n    colorAttribute.setXYZ(16, frustum.r, frustum.g, frustum.b);\n    colorAttribute.setXYZ(17, frustum.r, frustum.g, frustum.b);\n    colorAttribute.setXYZ(18, frustum.r, frustum.g, frustum.b);\n    colorAttribute.setXYZ(19, frustum.r, frustum.g, frustum.b);\n    colorAttribute.setXYZ(20, frustum.r, frustum.g, frustum.b);\n    colorAttribute.setXYZ(21, frustum.r, frustum.g, frustum.b);\n    colorAttribute.setXYZ(22, frustum.r, frustum.g, frustum.b);\n    colorAttribute.setXYZ(23, frustum.r, frustum.g, frustum.b);\n    colorAttribute.setXYZ(24, cone.r, cone.g, cone.b);\n    colorAttribute.setXYZ(25, cone.r, cone.g, cone.b);\n    colorAttribute.setXYZ(26, cone.r, cone.g, cone.b);\n    colorAttribute.setXYZ(27, cone.r, cone.g, cone.b);\n    colorAttribute.setXYZ(28, cone.r, cone.g, cone.b);\n    colorAttribute.setXYZ(29, cone.r, cone.g, cone.b);\n    colorAttribute.setXYZ(30, cone.r, cone.g, cone.b);\n    colorAttribute.setXYZ(31, cone.r, cone.g, cone.b);\n    colorAttribute.setXYZ(32, up.r, up.g, up.b);\n    colorAttribute.setXYZ(33, up.r, up.g, up.b);\n    colorAttribute.setXYZ(34, up.r, up.g, up.b);\n    colorAttribute.setXYZ(35, up.r, up.g, up.b);\n    colorAttribute.setXYZ(36, up.r, up.g, up.b);\n    colorAttribute.setXYZ(37, up.r, up.g, up.b);\n    colorAttribute.setXYZ(38, target.r, target.g, target.b);\n    colorAttribute.setXYZ(39, target.r, target.g, target.b);\n    colorAttribute.setXYZ(40, cross.r, cross.g, cross.b);\n    colorAttribute.setXYZ(41, cross.r, cross.g, cross.b);\n    colorAttribute.setXYZ(42, cross.r, cross.g, cross.b);\n    colorAttribute.setXYZ(43, cross.r, cross.g, cross.b);\n    colorAttribute.setXYZ(44, cross.r, cross.g, cross.b);\n    colorAttribute.setXYZ(45, cross.r, cross.g, cross.b);\n    colorAttribute.setXYZ(46, cross.r, cross.g, cross.b);\n    colorAttribute.setXYZ(47, cross.r, cross.g, cross.b);\n    colorAttribute.setXYZ(48, cross.r, cross.g, cross.b);\n    colorAttribute.setXYZ(49, cross.r, cross.g, cross.b);\n    colorAttribute.needsUpdate = true;\n  }\n  update() {\n    const geometry = this.geometry;\n    const pointMap = this.pointMap;\n    const w = 1, h = 1;\n    _camera.projectionMatrixInverse.copy(this.camera.projectionMatrixInverse);\n    setPoint(\"c\", pointMap, geometry, _camera, 0, 0, -1);\n    setPoint(\"t\", pointMap, geometry, _camera, 0, 0, 1);\n    setPoint(\"n1\", pointMap, geometry, _camera, -w, -h, -1);\n    setPoint(\"n2\", pointMap, geometry, _camera, w, -h, -1);\n    setPoint(\"n3\", pointMap, geometry, _camera, -w, h, -1);\n    setPoint(\"n4\", pointMap, geometry, _camera, w, h, -1);\n    setPoint(\"f1\", pointMap, geometry, _camera, -w, -h, 1);\n    setPoint(\"f2\", pointMap, geometry, _camera, w, -h, 1);\n    setPoint(\"f3\", pointMap, geometry, _camera, -w, h, 1);\n    setPoint(\"f4\", pointMap, geometry, _camera, w, h, 1);\n    setPoint(\"u1\", pointMap, geometry, _camera, w * 0.7, h * 1.1, -1);\n    setPoint(\"u2\", pointMap, geometry, _camera, -w * 0.7, h * 1.1, -1);\n    setPoint(\"u3\", pointMap, geometry, _camera, 0, h * 2, -1);\n    setPoint(\"cf1\", pointMap, geometry, _camera, -w, 0, 1);\n    setPoint(\"cf2\", pointMap, geometry, _camera, w, 0, 1);\n    setPoint(\"cf3\", pointMap, geometry, _camera, 0, -h, 1);\n    setPoint(\"cf4\", pointMap, geometry, _camera, 0, h, 1);\n    setPoint(\"cn1\", pointMap, geometry, _camera, -w, 0, -1);\n    setPoint(\"cn2\", pointMap, geometry, _camera, w, 0, -1);\n    setPoint(\"cn3\", pointMap, geometry, _camera, 0, -h, -1);\n    setPoint(\"cn4\", pointMap, geometry, _camera, 0, h, -1);\n    geometry.getAttribute(\"position\").needsUpdate = true;\n  }\n  dispose() {\n    this.geometry.dispose();\n    this.material.dispose();\n  }\n};\nfunction setPoint(point, pointMap, geometry, camera, x, y, z) {\n  _vector.set(x, y, z).unproject(camera);\n  const points = pointMap[point];\n  if (points !== void 0) {\n    const position = geometry.getAttribute(\"position\");\n    for (let i = 0, l = points.length; i < l; i++) {\n      position.setXYZ(points[i], _vector.x, _vector.y, _vector.z);\n    }\n  }\n}\nvar _box = /* @__PURE__ */ new Box3();\nvar BoxHelper = class extends LineSegments {\n  constructor(object, color = 16776960) {\n    const indices = new Uint16Array([0, 1, 1, 2, 2, 3, 3, 0, 4, 5, 5, 6, 6, 7, 7, 4, 0, 4, 1, 5, 2, 6, 3, 7]);\n    const positions = new Float32Array(8 * 3);\n    const geometry = new BufferGeometry();\n    geometry.setIndex(new BufferAttribute(indices, 1));\n    geometry.setAttribute(\"position\", new BufferAttribute(positions, 3));\n    super(geometry, new LineBasicMaterial({ color, toneMapped: false }));\n    this.object = object;\n    this.type = \"BoxHelper\";\n    this.matrixAutoUpdate = false;\n    this.update();\n  }\n  update(object) {\n    if (object !== void 0) {\n      console.warn(\"THREE.BoxHelper: .update() has no longer arguments.\");\n    }\n    if (this.object !== void 0) {\n      _box.setFromObject(this.object);\n    }\n    if (_box.isEmpty()) return;\n    const min = _box.min;\n    const max = _box.max;\n    const position = this.geometry.attributes.position;\n    const array = position.array;\n    array[0] = max.x;\n    array[1] = max.y;\n    array[2] = max.z;\n    array[3] = min.x;\n    array[4] = max.y;\n    array[5] = max.z;\n    array[6] = min.x;\n    array[7] = min.y;\n    array[8] = max.z;\n    array[9] = max.x;\n    array[10] = min.y;\n    array[11] = max.z;\n    array[12] = max.x;\n    array[13] = max.y;\n    array[14] = min.z;\n    array[15] = min.x;\n    array[16] = max.y;\n    array[17] = min.z;\n    array[18] = min.x;\n    array[19] = min.y;\n    array[20] = min.z;\n    array[21] = max.x;\n    array[22] = min.y;\n    array[23] = min.z;\n    position.needsUpdate = true;\n    this.geometry.computeBoundingSphere();\n  }\n  setFromObject(object) {\n    this.object = object;\n    this.update();\n    return this;\n  }\n  copy(source, recursive) {\n    super.copy(source, recursive);\n    this.object = source.object;\n    return this;\n  }\n  dispose() {\n    this.geometry.dispose();\n    this.material.dispose();\n  }\n};\nvar Box3Helper = class extends LineSegments {\n  constructor(box, color = 16776960) {\n    const indices = new Uint16Array([0, 1, 1, 2, 2, 3, 3, 0, 4, 5, 5, 6, 6, 7, 7, 4, 0, 4, 1, 5, 2, 6, 3, 7]);\n    const positions = [1, 1, 1, -1, 1, 1, -1, -1, 1, 1, -1, 1, 1, 1, -1, -1, 1, -1, -1, -1, -1, 1, -1, -1];\n    const geometry = new BufferGeometry();\n    geometry.setIndex(new BufferAttribute(indices, 1));\n    geometry.setAttribute(\"position\", new Float32BufferAttribute(positions, 3));\n    super(geometry, new LineBasicMaterial({ color, toneMapped: false }));\n    this.box = box;\n    this.type = \"Box3Helper\";\n    this.geometry.computeBoundingSphere();\n  }\n  updateMatrixWorld(force) {\n    const box = this.box;\n    if (box.isEmpty()) return;\n    box.getCenter(this.position);\n    box.getSize(this.scale);\n    this.scale.multiplyScalar(0.5);\n    super.updateMatrixWorld(force);\n  }\n  dispose() {\n    this.geometry.dispose();\n    this.material.dispose();\n  }\n};\nvar PlaneHelper = class extends Line {\n  constructor(plane, size = 1, hex = 16776960) {\n    const color = hex;\n    const positions = [1, -1, 0, -1, 1, 0, -1, -1, 0, 1, 1, 0, -1, 1, 0, -1, -1, 0, 1, -1, 0, 1, 1, 0];\n    const geometry = new BufferGeometry();\n    geometry.setAttribute(\"position\", new Float32BufferAttribute(positions, 3));\n    geometry.computeBoundingSphere();\n    super(geometry, new LineBasicMaterial({ color, toneMapped: false }));\n    this.type = \"PlaneHelper\";\n    this.plane = plane;\n    this.size = size;\n    const positions2 = [1, 1, 0, -1, 1, 0, -1, -1, 0, 1, 1, 0, -1, -1, 0, 1, -1, 0];\n    const geometry2 = new BufferGeometry();\n    geometry2.setAttribute(\"position\", new Float32BufferAttribute(positions2, 3));\n    geometry2.computeBoundingSphere();\n    this.add(new Mesh(geometry2, new MeshBasicMaterial({ color, opacity: 0.2, transparent: true, depthWrite: false, toneMapped: false })));\n  }\n  updateMatrixWorld(force) {\n    this.position.set(0, 0, 0);\n    this.scale.set(0.5 * this.size, 0.5 * this.size, 1);\n    this.lookAt(this.plane.normal);\n    this.translateZ(-this.plane.constant);\n    super.updateMatrixWorld(force);\n  }\n  dispose() {\n    this.geometry.dispose();\n    this.material.dispose();\n    this.children[0].geometry.dispose();\n    this.children[0].material.dispose();\n  }\n};\nvar _axis = /* @__PURE__ */ new Vector3();\nvar _lineGeometry;\nvar _coneGeometry;\nvar ArrowHelper = class extends Object3D {\n  // dir is assumed to be normalized\n  constructor(dir = new Vector3(0, 0, 1), origin = new Vector3(0, 0, 0), length = 1, color = 16776960, headLength = length * 0.2, headWidth = headLength * 0.2) {\n    super();\n    this.type = \"ArrowHelper\";\n    if (_lineGeometry === void 0) {\n      _lineGeometry = new BufferGeometry();\n      _lineGeometry.setAttribute(\"position\", new Float32BufferAttribute([0, 0, 0, 0, 1, 0], 3));\n      _coneGeometry = new CylinderGeometry(0, 0.5, 1, 5, 1);\n      _coneGeometry.translate(0, -0.5, 0);\n    }\n    this.position.copy(origin);\n    this.line = new Line(_lineGeometry, new LineBasicMaterial({ color, toneMapped: false }));\n    this.line.matrixAutoUpdate = false;\n    this.add(this.line);\n    this.cone = new Mesh(_coneGeometry, new MeshBasicMaterial({ color, toneMapped: false }));\n    this.cone.matrixAutoUpdate = false;\n    this.add(this.cone);\n    this.setDirection(dir);\n    this.setLength(length, headLength, headWidth);\n  }\n  setDirection(dir) {\n    if (dir.y > 0.99999) {\n      this.quaternion.set(0, 0, 0, 1);\n    } else if (dir.y < -0.99999) {\n      this.quaternion.set(1, 0, 0, 0);\n    } else {\n      _axis.set(dir.z, 0, -dir.x).normalize();\n      const radians = Math.acos(dir.y);\n      this.quaternion.setFromAxisAngle(_axis, radians);\n    }\n  }\n  setLength(length, headLength = length * 0.2, headWidth = headLength * 0.2) {\n    this.line.scale.set(1, Math.max(1e-4, length - headLength), 1);\n    this.line.updateMatrix();\n    this.cone.scale.set(headWidth, headLength, headWidth);\n    this.cone.position.y = length;\n    this.cone.updateMatrix();\n  }\n  setColor(color) {\n    this.line.material.color.set(color);\n    this.cone.material.color.set(color);\n  }\n  copy(source) {\n    super.copy(source, false);\n    this.line.copy(source.line);\n    this.cone.copy(source.cone);\n    return this;\n  }\n  dispose() {\n    this.line.geometry.dispose();\n    this.line.material.dispose();\n    this.cone.geometry.dispose();\n    this.cone.material.dispose();\n  }\n};\nvar AxesHelper = class extends LineSegments {\n  constructor(size = 1) {\n    const vertices = [\n      0,\n      0,\n      0,\n      size,\n      0,\n      0,\n      0,\n      0,\n      0,\n      0,\n      size,\n      0,\n      0,\n      0,\n      0,\n      0,\n      0,\n      size\n    ];\n    const colors = [\n      1,\n      0,\n      0,\n      1,\n      0.6,\n      0,\n      0,\n      1,\n      0,\n      0.6,\n      1,\n      0,\n      0,\n      0,\n      1,\n      0,\n      0.6,\n      1\n    ];\n    const geometry = new BufferGeometry();\n    geometry.setAttribute(\"position\", new Float32BufferAttribute(vertices, 3));\n    geometry.setAttribute(\"color\", new Float32BufferAttribute(colors, 3));\n    const material = new LineBasicMaterial({ vertexColors: true, toneMapped: false });\n    super(geometry, material);\n    this.type = \"AxesHelper\";\n  }\n  setColors(xAxisColor, yAxisColor, zAxisColor) {\n    const color = new Color();\n    const array = this.geometry.attributes.color.array;\n    color.set(xAxisColor);\n    color.toArray(array, 0);\n    color.toArray(array, 3);\n    color.set(yAxisColor);\n    color.toArray(array, 6);\n    color.toArray(array, 9);\n    color.set(zAxisColor);\n    color.toArray(array, 12);\n    color.toArray(array, 15);\n    this.geometry.attributes.color.needsUpdate = true;\n    return this;\n  }\n  dispose() {\n    this.geometry.dispose();\n    this.material.dispose();\n  }\n};\nvar ShapePath = class {\n  constructor() {\n    this.type = \"ShapePath\";\n    this.color = new Color();\n    this.subPaths = [];\n    this.currentPath = null;\n  }\n  moveTo(x, y) {\n    this.currentPath = new Path();\n    this.subPaths.push(this.currentPath);\n    this.currentPath.moveTo(x, y);\n    return this;\n  }\n  lineTo(x, y) {\n    this.currentPath.lineTo(x, y);\n    return this;\n  }\n  quadraticCurveTo(aCPx, aCPy, aX, aY) {\n    this.currentPath.quadraticCurveTo(aCPx, aCPy, aX, aY);\n    return this;\n  }\n  bezierCurveTo(aCP1x, aCP1y, aCP2x, aCP2y, aX, aY) {\n    this.currentPath.bezierCurveTo(aCP1x, aCP1y, aCP2x, aCP2y, aX, aY);\n    return this;\n  }\n  splineThru(pts) {\n    this.currentPath.splineThru(pts);\n    return this;\n  }\n  toShapes(isCCW) {\n    function toShapesNoHoles(inSubpaths) {\n      const shapes2 = [];\n      for (let i = 0, l = inSubpaths.length; i < l; i++) {\n        const tmpPath2 = inSubpaths[i];\n        const tmpShape2 = new Shape();\n        tmpShape2.curves = tmpPath2.curves;\n        shapes2.push(tmpShape2);\n      }\n      return shapes2;\n    }\n    function isPointInsidePolygon(inPt, inPolygon) {\n      const polyLen = inPolygon.length;\n      let inside = false;\n      for (let p = polyLen - 1, q = 0; q < polyLen; p = q++) {\n        let edgeLowPt = inPolygon[p];\n        let edgeHighPt = inPolygon[q];\n        let edgeDx = edgeHighPt.x - edgeLowPt.x;\n        let edgeDy = edgeHighPt.y - edgeLowPt.y;\n        if (Math.abs(edgeDy) > Number.EPSILON) {\n          if (edgeDy < 0) {\n            edgeLowPt = inPolygon[q];\n            edgeDx = -edgeDx;\n            edgeHighPt = inPolygon[p];\n            edgeDy = -edgeDy;\n          }\n          if (inPt.y < edgeLowPt.y || inPt.y > edgeHighPt.y) continue;\n          if (inPt.y === edgeLowPt.y) {\n            if (inPt.x === edgeLowPt.x) return true;\n          } else {\n            const perpEdge = edgeDy * (inPt.x - edgeLowPt.x) - edgeDx * (inPt.y - edgeLowPt.y);\n            if (perpEdge === 0) return true;\n            if (perpEdge < 0) continue;\n            inside = !inside;\n          }\n        } else {\n          if (inPt.y !== edgeLowPt.y) continue;\n          if (edgeHighPt.x <= inPt.x && inPt.x <= edgeLowPt.x || edgeLowPt.x <= inPt.x && inPt.x <= edgeHighPt.x) return true;\n        }\n      }\n      return inside;\n    }\n    const isClockWise = ShapeUtils.isClockWise;\n    const subPaths = this.subPaths;\n    if (subPaths.length === 0) return [];\n    let solid, tmpPath, tmpShape;\n    const shapes = [];\n    if (subPaths.length === 1) {\n      tmpPath = subPaths[0];\n      tmpShape = new Shape();\n      tmpShape.curves = tmpPath.curves;\n      shapes.push(tmpShape);\n      return shapes;\n    }\n    let holesFirst = !isClockWise(subPaths[0].getPoints());\n    holesFirst = isCCW ? !holesFirst : holesFirst;\n    const betterShapeHoles = [];\n    const newShapes = [];\n    let newShapeHoles = [];\n    let mainIdx = 0;\n    let tmpPoints;\n    newShapes[mainIdx] = void 0;\n    newShapeHoles[mainIdx] = [];\n    for (let i = 0, l = subPaths.length; i < l; i++) {\n      tmpPath = subPaths[i];\n      tmpPoints = tmpPath.getPoints();\n      solid = isClockWise(tmpPoints);\n      solid = isCCW ? !solid : solid;\n      if (solid) {\n        if (!holesFirst && newShapes[mainIdx]) mainIdx++;\n        newShapes[mainIdx] = { s: new Shape(), p: tmpPoints };\n        newShapes[mainIdx].s.curves = tmpPath.curves;\n        if (holesFirst) mainIdx++;\n        newShapeHoles[mainIdx] = [];\n      } else {\n        newShapeHoles[mainIdx].push({ h: tmpPath, p: tmpPoints[0] });\n      }\n    }\n    if (!newShapes[0]) return toShapesNoHoles(subPaths);\n    if (newShapes.length > 1) {\n      let ambiguous = false;\n      let toChange = 0;\n      for (let sIdx = 0, sLen = newShapes.length; sIdx < sLen; sIdx++) {\n        betterShapeHoles[sIdx] = [];\n      }\n      for (let sIdx = 0, sLen = newShapes.length; sIdx < sLen; sIdx++) {\n        const sho = newShapeHoles[sIdx];\n        for (let hIdx = 0; hIdx < sho.length; hIdx++) {\n          const ho = sho[hIdx];\n          let hole_unassigned = true;\n          for (let s2Idx = 0; s2Idx < newShapes.length; s2Idx++) {\n            if (isPointInsidePolygon(ho.p, newShapes[s2Idx].p)) {\n              if (sIdx !== s2Idx) toChange++;\n              if (hole_unassigned) {\n                hole_unassigned = false;\n                betterShapeHoles[s2Idx].push(ho);\n              } else {\n                ambiguous = true;\n              }\n            }\n          }\n          if (hole_unassigned) {\n            betterShapeHoles[sIdx].push(ho);\n          }\n        }\n      }\n      if (toChange > 0 && ambiguous === false) {\n        newShapeHoles = betterShapeHoles;\n      }\n    }\n    let tmpHoles;\n    for (let i = 0, il = newShapes.length; i < il; i++) {\n      tmpShape = newShapes[i].s;\n      shapes.push(tmpShape);\n      tmpHoles = newShapeHoles[i];\n      for (let j = 0, jl = tmpHoles.length; j < jl; j++) {\n        tmpShape.holes.push(tmpHoles[j].h);\n      }\n    }\n    return shapes;\n  }\n};\nvar Controls = class extends EventDispatcher {\n  constructor(object, domElement = null) {\n    super();\n    this.object = object;\n    this.domElement = domElement;\n    this.enabled = true;\n    this.state = -1;\n    this.keys = {};\n    this.mouseButtons = { LEFT: null, MIDDLE: null, RIGHT: null };\n    this.touches = { ONE: null, TWO: null };\n  }\n  connect() {\n  }\n  disconnect() {\n  }\n  dispose() {\n  }\n  update() {\n  }\n};\nvar WebGLMultipleRenderTargets = class extends WebGLRenderTarget {\n  // @deprecated, r162\n  constructor(width = 1, height = 1, count = 1, options = {}) {\n    console.warn('THREE.WebGLMultipleRenderTargets has been deprecated and will be removed in r172. Use THREE.WebGLRenderTarget and set the \"count\" parameter to enable MRT.');\n    super(width, height, __spreadProps(__spreadValues({}, options), { count }));\n    this.isWebGLMultipleRenderTargets = true;\n  }\n  get texture() {\n    return this.textures;\n  }\n};\nif (typeof __THREE_DEVTOOLS__ !== \"undefined\") {\n  __THREE_DEVTOOLS__.dispatchEvent(new CustomEvent(\"register\", { detail: {\n    revision: REVISION\n  } }));\n}\nif (typeof window !== \"undefined\") {\n  if (window.__THREE__) {\n    console.warn(\"WARNING: Multiple instances of Three.js being imported.\");\n  } else {\n    window.__THREE__ = REVISION;\n  }\n}\n\nexport {\n  BasicShadowMap,\n  PCFShadowMap,\n  PCFSoftShadowMap,\n  VSMShadowMap,\n  DoubleSide,\n  NoToneMapping,\n  ACESFilmicToneMapping,\n  EquirectangularReflectionMapping,\n  LinearFilter,\n  UnsignedByteType,\n  FloatType,\n  HalfFloatType,\n  RGBAFormat,\n  EventDispatcher,\n  Vector2,\n  WebGLRenderTarget,\n  Vector3,\n  Layers,\n  Color,\n  DataUtils,\n  Float32BufferAttribute,\n  BufferGeometry,\n  Mesh,\n  UniformsUtils,\n  ShaderMaterial,\n  Camera,\n  PerspectiveCamera,\n  ShaderChunk,\n  OrthographicCamera,\n  WebGLRenderer,\n  Scene,\n  MeshPhysicalMaterial,\n  DataTextureLoader,\n  Clock,\n  Uniform,\n  Raycaster,\n  three_module_exports\n};\n/*! Bundled license information:\n\nthree/build/three.module.js:\n  (**\n   * @license\n   * Copyright 2010-2024 Three.js Authors\n   * SPDX-License-Identifier: MIT\n   *)\n*/\n","var t={};t.ConcurrentRoot=1;t.ContinuousEventPriority=4;t.DefaultEventPriority=16;t.DiscreteEventPriority=1;t.IdleEventPriority=536870912;t.LegacyRoot=0;const o=t.ConcurrentRoot,r=t.ContinuousEventPriority,e=t.DefaultEventPriority,i=t.DiscreteEventPriority,n=t.IdleEventPriority,y=t.LegacyRoot;export{o as ConcurrentRoot,r as ContinuousEventPriority,e as DefaultEventPriority,i as DiscreteEventPriority,n as IdleEventPriority,y as LegacyRoot,t as default};\n//# sourceMappingURL=constants.js.map\n","import*as t from\"react\";import*as a from\"scheduler\";var u=t;try{\"default\"in t&&(u=t.default)}catch(t){}var i=a;try{\"default\"in a&&(i=a.default)}catch(t){}var o=typeof globalThis!==\"undefined\"?globalThis:typeof self!==\"undefined\"?self:global;var s={};\n/**\n * @license React\n * react-reconciler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */s=function $$$reconciler(t){var a={};\"use strict\";var s=u,y=i,S=Object.assign;function n(t){for(var a=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+t,u=1;u<arguments.length;u++)a+=\"&args[]=\"+encodeURIComponent(arguments[u]);return\"Minified React error #\"+t+\"; visit \"+a+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}var x=s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,z=Symbol.for(\"react.element\"),N=Symbol.for(\"react.portal\"),E=Symbol.for(\"react.fragment\"),C=Symbol.for(\"react.strict_mode\"),I=Symbol.for(\"react.profiler\"),_=Symbol.for(\"react.provider\"),L=Symbol.for(\"react.context\"),T=Symbol.for(\"react.forward_ref\"),R=Symbol.for(\"react.suspense\"),F=Symbol.for(\"react.suspense_list\"),D=Symbol.for(\"react.memo\"),H=Symbol.for(\"react.lazy\");Symbol.for(\"react.scope\");Symbol.for(\"react.debug_trace_mode\");var W=Symbol.for(\"react.offscreen\");Symbol.for(\"react.legacy_hidden\");Symbol.for(\"react.cache\");Symbol.for(\"react.tracing_marker\");var j=Symbol.iterator;function ta(t){if(null===t||\"object\"!==typeof t)return null;t=j&&t[j]||t[\"@@iterator\"];return\"function\"===typeof t?t:null}function ua(t){if(null==t)return null;if(\"function\"===typeof t)return t.displayName||t.name||null;if(\"string\"===typeof t)return t;switch(t){case E:return\"Fragment\";case N:return\"Portal\";case I:return\"Profiler\";case C:return\"StrictMode\";case R:return\"Suspense\";case F:return\"SuspenseList\"}if(\"object\"===typeof t)switch(t.$$typeof){case L:return(t.displayName||\"Context\")+\".Consumer\";case _:return(t._context.displayName||\"Context\")+\".Provider\";case T:var a=t.render;t=t.displayName;t||(t=a.displayName||a.name||\"\",t=\"\"!==t?\"ForwardRef(\"+t+\")\":\"ForwardRef\");return t;case D:return a=t.displayName||null,null!==a?a:ua(t.type)||\"Memo\";case H:a=t._payload;t=t._init;try{return ua(t(a))}catch(t){}}return null}function va(t){var a=t.type;switch(t.tag){case 24:return\"Cache\";case 9:return(a.displayName||\"Context\")+\".Consumer\";case 10:return(a._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return t=a.render,t=t.displayName||t.name||\"\",a.displayName||(\"\"!==t?\"ForwardRef(\"+t+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return a;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return ua(a);case 8:return a===C?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";case 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a}return null}function wa(t){var a=t,u=t;if(t.alternate)for(;a.return;)a=a.return;else{t=a;do{a=t,0!==(a.flags&4098)&&(u=a.return),t=a.return}while(t)}return 3===a.tag?u:null}function xa(t){if(wa(t)!==t)throw Error(n(188))}function za(t){var a=t.alternate;if(!a){a=wa(t);if(null===a)throw Error(n(188));return a!==t?null:t}for(var u=t,i=a;;){var o=u.return;if(null===o)break;var s=o.alternate;if(null===s){i=o.return;if(null!==i){u=i;continue}break}if(o.child===s.child){for(s=o.child;s;){if(s===u)return xa(o),t;if(s===i)return xa(o),a;s=s.sibling}throw Error(n(188))}if(u.return!==i.return)u=o,i=s;else{for(var y=!1,S=o.child;S;){if(S===u){y=!0;u=o;i=s;break}if(S===i){y=!0;i=o;u=s;break}S=S.sibling}if(!y){for(S=s.child;S;){if(S===u){y=!0;u=s;i=o;break}if(S===i){y=!0;i=s;u=o;break}S=S.sibling}if(!y)throw Error(n(189))}}if(u.alternate!==i)throw Error(n(190))}if(3!==u.tag)throw Error(n(188));return u.stateNode.current===u?t:a}function Aa(t){t=za(t);return null!==t?Ba(t):null}function Ba(t){if(5===t.tag||6===t.tag)return t;for(t=t.child;null!==t;){var a=Ba(t);if(null!==a)return a;t=t.sibling}return null}function Ca(t){if(5===t.tag||6===t.tag)return t;for(t=t.child;null!==t;){if(4!==t.tag){var a=Ca(t);if(null!==a)return a}t=t.sibling}return null}var $,V=Array.isArray,Z=t.getPublicInstance,J=t.getRootHostContext,K=t.getChildHostContext,G=t.prepareForCommit,X=t.resetAfterCommit,ne=t.createInstance,le=t.appendInitialChild,oe=t.finalizeInitialChildren,de=t.prepareUpdate,pe=t.shouldSetTextContent,xe=t.createTextInstance,ze=t.scheduleTimeout,Ee=t.cancelTimeout,Ce=t.noTimeout,Ie=t.isPrimaryRenderer,_e=t.supportsMutation,Le=t.supportsPersistence,Fe=t.supportsHydration,De=t.getInstanceFromNode,Be=t.preparePortalMount,Ae=t.getCurrentEventPriority,qe=t.detachDeletedInstance,Je=t.supportsMicrotasks,Ke=t.scheduleMicrotask,en=t.supportsTestSelectors,nn=t.findFiberRoot,tn=t.getBoundingRect,rn=t.getTextContent,ln=t.isHiddenSubtree,an=t.matchAccessibilityRole,un=t.setFocusIfFocusable,on=t.setupIntersectionObserver,sn=t.appendChild,cn=t.appendChildToContainer,fn=t.commitTextUpdate,dn=t.commitMount,hn=t.commitUpdate,gn=t.insertBefore,pn=t.insertInContainerBefore,mn=t.removeChild,vn=t.removeChildFromContainer,yn=t.resetTextContent,bn=t.hideInstance,Sn=t.hideTextInstance,kn=t.unhideInstance,xn=t.unhideTextInstance,wn=t.clearContainer,zn=t.cloneInstance,Nn=t.createContainerChildSet,Pn=t.appendChildToContainerChildSet,En=t.finalizeContainerChildren,Cn=t.replaceContainerChildren,In=t.cloneHiddenInstance,_n=t.cloneHiddenTextInstance,Un=t.canHydrateInstance,Ln=t.canHydrateTextInstance,Tn=t.canHydrateSuspenseInstance,Rn=t.isSuspenseInstancePending,Mn=t.isSuspenseInstanceFallback,Fn=t.getSuspenseInstanceFallbackErrorDetails,Qn=t.registerSuspenseInstanceRetry,Dn=t.getNextHydratableSibling,Hn=t.getFirstHydratableChild,Wn=t.getFirstHydratableChildWithinContainer,Bn=t.getFirstHydratableChildWithinSuspenseInstance,On=t.hydrateInstance,An=t.hydrateTextInstance,qn=t.hydrateSuspenseInstance,jn=t.getNextHydratableInstanceAfterSuspenseInstance,$n=t.commitHydratedContainer,Vn=t.commitHydratedSuspenseInstance,Zn=t.clearSuspenseBoundary,Yn=t.clearSuspenseBoundaryFromContainer,Jn=t.shouldDeleteUnhydratedTailInstances,Kn=t.didNotMatchHydratedContainerTextInstance,Gn=t.didNotMatchHydratedTextInstance;function cc(t){if(void 0===$)try{throw Error()}catch(t){var a=t.stack.trim().match(/\\n( *(at )?)/);$=a&&a[1]||\"\"}return\"\\n\"+$+t}var Xn=!1;function ec(t,a){if(!t||Xn)return\"\";Xn=!0;var u=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(a)if(a=function(){throw Error()},Object.defineProperty(a.prototype,\"props\",{set:function(){throw Error()}}),\"object\"===typeof Reflect&&Reflect.construct){try{Reflect.construct(a,[])}catch(t){var i=t}Reflect.construct(t,[],a)}else{try{a.call()}catch(t){i=t}t.call(a.prototype)}else{try{throw Error()}catch(t){i=t}t()}}catch(a){if(a&&i&&\"string\"===typeof a.stack){for(var o=a.stack.split(\"\\n\"),s=i.stack.split(\"\\n\"),y=o.length-1,S=s.length-1;1<=y&&0<=S&&o[y]!==s[S];)S--;for(;1<=y&&0<=S;y--,S--)if(o[y]!==s[S]){if(1!==y||1!==S)do{if(y--,S--,0>S||o[y]!==s[S]){var x=\"\\n\"+o[y].replace(\" at new \",\" at \");t.displayName&&x.includes(\"<anonymous>\")&&(x=x.replace(\"<anonymous>\",t.displayName));return x}}while(1<=y&&0<=S);break}}}finally{Xn=!1,Error.prepareStackTrace=u}return(t=t?t.displayName||t.name:\"\")?cc(t):\"\"}var et=Object.prototype.hasOwnProperty,nt=[],tt=-1;function ic(t){return{current:t}}function q(t){0>tt||(t.current=nt[tt],nt[tt]=null,tt--)}function v(t,a){tt++;nt[tt]=t.current;t.current=a}var rt={},lt=ic(rt),at=ic(!1),ut=rt;function mc(t,a){var u=t.type.contextTypes;if(!u)return rt;var i=t.stateNode;if(i&&i.__reactInternalMemoizedUnmaskedChildContext===a)return i.__reactInternalMemoizedMaskedChildContext;var o,s={};for(o in u)s[o]=a[o];i&&(t=t.stateNode,t.__reactInternalMemoizedUnmaskedChildContext=a,t.__reactInternalMemoizedMaskedChildContext=s);return s}function A(t){t=t.childContextTypes;return null!==t&&void 0!==t}function nc(){q(at);q(lt)}function oc(t,a,u){if(lt.current!==rt)throw Error(n(168));v(lt,a);v(at,u)}function pc(t,a,u){var i=t.stateNode;a=a.childContextTypes;if(\"function\"!==typeof i.getChildContext)return u;i=i.getChildContext();for(var o in i)if(!(o in a))throw Error(n(108,va(t)||\"Unknown\",o));return S({},u,i)}function qc(t){t=(t=t.stateNode)&&t.__reactInternalMemoizedMergedChildContext||rt;ut=lt.current;v(lt,t);v(at,at.current);return!0}function rc(t,a,u){var i=t.stateNode;if(!i)throw Error(n(169));u?(t=pc(t,a,ut),i.__reactInternalMemoizedMergedChildContext=t,q(at),q(lt),v(lt,t)):q(at);v(at,u)}var it=Math.clz32?Math.clz32:sc,ot=Math.log,st=Math.LN2;function sc(t){t>>>=0;return 0===t?32:31-(ot(t)/st|0)|0}var ct=64,ft=4194304;function yc(t){switch(t&-t){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return t&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return t}}function zc(t,a){var u=t.pendingLanes;if(0===u)return 0;var i=0,o=t.suspendedLanes,s=t.pingedLanes,y=u&268435455;if(0!==y){var S=y&~o;0!==S?i=yc(S):(s&=y,0!==s&&(i=yc(s)))}else y=u&~o,0!==y?i=yc(y):0!==s&&(i=yc(s));if(0===i)return 0;if(0!==a&&a!==i&&0===(a&o)&&(o=i&-i,s=a&-a,o>=s||16===o&&0!==(s&4194240)))return a;0!==(i&4)&&(i|=u&16);a=t.entangledLanes;if(0!==a)for(t=t.entanglements,a&=i;0<a;)u=31-it(a),o=1<<u,i|=t[u],a&=~o;return i}function Ac(t,a){switch(t){case 1:case 2:case 4:return a+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a+5e3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Bc(t,a){for(var u=t.suspendedLanes,i=t.pingedLanes,o=t.expirationTimes,s=t.pendingLanes;0<s;){var y=31-it(s),S=1<<y,x=o[y];-1===x?0!==(S&u)&&0===(S&i)||(o[y]=Ac(S,a)):x<=a&&(t.expiredLanes|=S);s&=~S}}function Cc(t){t=t.pendingLanes&-1073741825;return 0!==t?t:t&1073741824?1073741824:0}function Dc(){var t=ct;ct<<=1;0===(ct&4194240)&&(ct=64);return t}function Ec(t){for(var a=[],u=0;31>u;u++)a.push(t);return a}function Fc(t,a,u){t.pendingLanes|=a;536870912!==a&&(t.suspendedLanes=0,t.pingedLanes=0);t=t.eventTimes;a=31-it(a);t[a]=u}function Gc(t,a){var u=t.pendingLanes&~a;t.pendingLanes=a;t.suspendedLanes=0;t.pingedLanes=0;t.expiredLanes&=a;t.mutableReadLanes&=a;t.entangledLanes&=a;a=t.entanglements;var i=t.eventTimes;for(t=t.expirationTimes;0<u;){var o=31-it(u),s=1<<o;a[o]=0;i[o]=-1;t[o]=-1;u&=~s}}function Hc(t,a){var u=t.entangledLanes|=a;for(t=t.entanglements;u;){var i=31-it(u),o=1<<i;o&a|t[i]&a&&(t[i]|=a);u&=~o}}var dt=0;function Ic(t){t&=-t;return 1<t?4<t?0!==(t&268435455)?16:536870912:4:1}var ht=y.unstable_scheduleCallback,gt=y.unstable_cancelCallback,pt=y.unstable_shouldYield,mt=y.unstable_requestPaint,vt=y.unstable_now,yt=y.unstable_ImmediatePriority,bt=y.unstable_UserBlockingPriority,St=y.unstable_NormalPriority,kt=y.unstable_IdlePriority,xt=null,wt=null;function Tc(t){if(wt&&\"function\"===typeof wt.onCommitFiberRoot)try{wt.onCommitFiberRoot(xt,t,void 0,128===(t.current.flags&128))}catch(t){}}function Uc(t,a){return t===a&&(0!==t||1/t===1/a)||t!==t&&a!==a}var zt=\"function\"===typeof Object.is?Object.is:Uc,Nt=null,Pt=!1,Et=!1;function Zc(t){null===Nt?Nt=[t]:Nt.push(t)}function $c(t){Pt=!0;Zc(t)}function ad(){if(!Et&&null!==Nt){Et=!0;var t=0,a=dt;try{var u=Nt;for(dt=1;t<u.length;t++){var i=u[t];do{i=i(!0)}while(null!==i)}Nt=null;Pt=!1}catch(a){throw null!==Nt&&(Nt=Nt.slice(t+1)),ht(yt,ad),a}finally{dt=a,Et=!1}}return null}var Ct=[],It=0,_t=null,Ut=0,Lt=[],Tt=0,Rt=null,Mt=1,Ft=\"\";function kd(t,a){Ct[It++]=Ut;Ct[It++]=_t;_t=t;Ut=a}function ld(t,a,u){Lt[Tt++]=Mt;Lt[Tt++]=Ft;Lt[Tt++]=Rt;Rt=t;var i=Mt;t=Ft;var o=32-it(i)-1;i&=~(1<<o);u+=1;var s=32-it(a)+o;if(30<s){var y=o-o%5;s=(i&(1<<y)-1).toString(32);i>>=y;o-=y;Mt=1<<32-it(a)+o|u<<o|i;Ft=s+t}else Mt=1<<s|u<<o|i,Ft=t}function md(t){null!==t.return&&(kd(t,1),ld(t,1,0))}function nd(t){for(;t===_t;)_t=Ct[--It],Ct[It]=null,Ut=Ct[--It],Ct[It]=null;for(;t===Rt;)Rt=Lt[--Tt],Lt[Tt]=null,Ft=Lt[--Tt],Lt[Tt]=null,Mt=Lt[--Tt],Lt[Tt]=null}var Qt=null,Dt=null,Ht=!1,Wt=!1,Bt=null;function sd(t,a){var u=td(5,null,null,0);u.elementType=\"DELETED\";u.stateNode=a;u.return=t;a=t.deletions;null===a?(t.deletions=[u],t.flags|=16):a.push(u)}function ud(t,a){switch(t.tag){case 5:return a=Un(a,t.type,t.pendingProps),null!==a&&(t.stateNode=a,Qt=t,Dt=Hn(a),!0);case 6:return a=Ln(a,t.pendingProps),null!==a&&(t.stateNode=a,Qt=t,Dt=null,!0);case 13:a=Tn(a);if(null!==a){var u=null!==Rt?{id:Mt,overflow:Ft}:null;t.memoizedState={dehydrated:a,treeContext:u,retryLane:1073741824};u=td(18,null,null,0);u.stateNode=a;u.return=t;t.child=u;Qt=t;Dt=null;return!0}return!1;default:return!1}}function vd(t){return 0!==(t.mode&1)&&0===(t.flags&128)}function wd(t){if(Ht){var a=Dt;if(a){var u=a;if(!ud(t,a)){if(vd(t))throw Error(n(418));a=Dn(u);var i=Qt;a&&ud(t,a)?sd(i,u):(t.flags=t.flags&-4097|2,Ht=!1,Qt=t)}}else{if(vd(t))throw Error(n(418));t.flags=t.flags&-4097|2;Ht=!1;Qt=t}}}function xd(t){for(t=t.return;null!==t&&5!==t.tag&&3!==t.tag&&13!==t.tag;)t=t.return;Qt=t}function yd(t){if(!Fe||t!==Qt)return!1;if(!Ht)return xd(t),Ht=!0,!1;if(3!==t.tag&&(5!==t.tag||Jn(t.type)&&!pe(t.type,t.memoizedProps))){var a=Dt;if(a){if(vd(t))throw zd(),Error(n(418));for(;a;)sd(t,a),a=Dn(a)}}xd(t);if(13===t.tag){if(!Fe)throw Error(n(316));t=t.memoizedState;t=null!==t?t.dehydrated:null;if(!t)throw Error(n(317));Dt=jn(t)}else Dt=Qt?Dn(t.stateNode):null;return!0}function zd(){for(var t=Dt;t;)t=Dn(t)}function Ad(){Fe&&(Dt=Qt=null,Wt=Ht=!1)}function Bd(t){null===Bt?Bt=[t]:Bt.push(t)}var Ot=x.ReactCurrentBatchConfig;function Dd(t,a){if(zt(t,a))return!0;if(\"object\"!==typeof t||null===t||\"object\"!==typeof a||null===a)return!1;var u=Object.keys(t),i=Object.keys(a);if(u.length!==i.length)return!1;for(i=0;i<u.length;i++){var o=u[i];if(!et.call(a,o)||!zt(t[o],a[o]))return!1}return!0}function Ed(t){switch(t.tag){case 5:return cc(t.type);case 16:return cc(\"Lazy\");case 13:return cc(\"Suspense\");case 19:return cc(\"SuspenseList\");case 0:case 2:case 15:return t=ec(t.type,!1),t;case 11:return t=ec(t.type.render,!1),t;case 1:return t=ec(t.type,!0),t;default:return\"\"}}function Fd(t,a,u){t=u.ref;if(null!==t&&\"function\"!==typeof t&&\"object\"!==typeof t){if(u._owner){u=u._owner;if(u){if(1!==u.tag)throw Error(n(309));var i=u.stateNode}if(!i)throw Error(n(147,t));var o=i,s=\"\"+t;if(null!==a&&null!==a.ref&&\"function\"===typeof a.ref&&a.ref._stringRef===s)return a.ref;a=function(t){var a=o.refs;null===t?delete a[s]:a[s]=t};a._stringRef=s;return a}if(\"string\"!==typeof t)throw Error(n(284));if(!u._owner)throw Error(n(290,t))}return t}function Gd(t,a){t=Object.prototype.toString.call(a);throw Error(n(31,\"[object Object]\"===t?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":t))}function Hd(t){var a=t._init;return a(t._payload)}function Id(t){function b(a,u){if(t){var i=a.deletions;null===i?(a.deletions=[u],a.flags|=16):i.push(u)}}function c(a,u){if(!t)return null;for(;null!==u;)b(a,u),u=u.sibling;return null}function d(t,a){for(t=new Map;null!==a;)null!==a.key?t.set(a.key,a):t.set(a.index,a),a=a.sibling;return t}function e(t,a){t=Jd(t,a);t.index=0;t.sibling=null;return t}function f(a,u,i){a.index=i;if(!t)return a.flags|=1048576,u;i=a.alternate;if(null!==i)return i=i.index,i<u?(a.flags|=2,u):i;a.flags|=2;return u}function g(a){t&&null===a.alternate&&(a.flags|=2);return a}function h(t,a,u,i){if(null===a||6!==a.tag)return a=Kd(u,t.mode,i),a.return=t,a;a=e(a,u);a.return=t;return a}function k(t,a,u,i){var o=u.type;if(o===E)return m(t,a,u.props.children,i,u.key);if(null!==a&&(a.elementType===o||\"object\"===typeof o&&null!==o&&o.$$typeof===H&&Hd(o)===a.type))return i=e(a,u.props),i.ref=Fd(t,a,u),i.return=t,i;i=Ld(u.type,u.key,u.props,null,t.mode,i);i.ref=Fd(t,a,u);i.return=t;return i}function l(t,a,u,i){if(null===a||4!==a.tag||a.stateNode.containerInfo!==u.containerInfo||a.stateNode.implementation!==u.implementation)return a=Md(u,t.mode,i),a.return=t,a;a=e(a,u.children||[]);a.return=t;return a}function m(t,a,u,i,o){if(null===a||7!==a.tag)return a=Nd(u,t.mode,i,o),a.return=t,a;a=e(a,u);a.return=t;return a}function r(t,a,u){if(\"string\"===typeof a&&\"\"!==a||\"number\"===typeof a)return a=Kd(\"\"+a,t.mode,u),a.return=t,a;if(\"object\"===typeof a&&null!==a){switch(a.$$typeof){case z:return u=Ld(a.type,a.key,a.props,null,t.mode,u),u.ref=Fd(t,null,a),u.return=t,u;case N:return a=Md(a,t.mode,u),a.return=t,a;case H:var i=a._init;return r(t,i(a._payload),u)}if(V(a)||ta(a))return a=Nd(a,t.mode,u,null),a.return=t,a;Gd(t,a)}return null}function p(t,a,u,i){var o=null!==a?a.key:null;if(\"string\"===typeof u&&\"\"!==u||\"number\"===typeof u)return null!==o?null:h(t,a,\"\"+u,i);if(\"object\"===typeof u&&null!==u){switch(u.$$typeof){case z:return u.key===o?k(t,a,u,i):null;case N:return u.key===o?l(t,a,u,i):null;case H:return o=u._init,p(t,a,o(u._payload),i)}if(V(u)||ta(u))return null!==o?null:m(t,a,u,i,null);Gd(t,u)}return null}function B(t,a,u,i,o){if(\"string\"===typeof i&&\"\"!==i||\"number\"===typeof i)return t=t.get(u)||null,h(a,t,\"\"+i,o);if(\"object\"===typeof i&&null!==i){switch(i.$$typeof){case z:return t=t.get(null===i.key?u:i.key)||null,k(a,t,i,o);case N:return t=t.get(null===i.key?u:i.key)||null,l(a,t,i,o);case H:var s=i._init;return B(t,a,u,s(i._payload),o)}if(V(i)||ta(i))return t=t.get(u)||null,m(a,t,i,o,null);Gd(a,i)}return null}function w(a,u,i,o){for(var s=null,y=null,S=u,x=u=0,z=null;null!==S&&x<i.length;x++){S.index>x?(z=S,S=null):z=S.sibling;var N=p(a,S,i[x],o);if(null===N){null===S&&(S=z);break}t&&S&&null===N.alternate&&b(a,S);u=f(N,u,x);null===y?s=N:y.sibling=N;y=N;S=z}if(x===i.length)return c(a,S),Ht&&kd(a,x),s;if(null===S){for(;x<i.length;x++)S=r(a,i[x],o),null!==S&&(u=f(S,u,x),null===y?s=S:y.sibling=S,y=S);Ht&&kd(a,x);return s}for(S=d(a,S);x<i.length;x++)z=B(S,a,x,i[x],o),null!==z&&(t&&null!==z.alternate&&S.delete(null===z.key?x:z.key),u=f(z,u,x),null===y?s=z:y.sibling=z,y=z);t&&S.forEach((function(t){return b(a,t)}));Ht&&kd(a,x);return s}function Y(a,u,i,o){var s=ta(i);if(\"function\"!==typeof s)throw Error(n(150));i=s.call(i);if(null==i)throw Error(n(151));for(var y=s=null,S=u,x=u=0,z=null,N=i.next();null!==S&&!N.done;x++,N=i.next()){S.index>x?(z=S,S=null):z=S.sibling;var E=p(a,S,N.value,o);if(null===E){null===S&&(S=z);break}t&&S&&null===E.alternate&&b(a,S);u=f(E,u,x);null===y?s=E:y.sibling=E;y=E;S=z}if(N.done)return c(a,S),Ht&&kd(a,x),s;if(null===S){for(;!N.done;x++,N=i.next())N=r(a,N.value,o),null!==N&&(u=f(N,u,x),null===y?s=N:y.sibling=N,y=N);Ht&&kd(a,x);return s}for(S=d(a,S);!N.done;x++,N=i.next())N=B(S,a,x,N.value,o),null!==N&&(t&&null!==N.alternate&&S.delete(null===N.key?x:N.key),u=f(N,u,x),null===y?s=N:y.sibling=N,y=N);t&&S.forEach((function(t){return b(a,t)}));Ht&&kd(a,x);return s}function ya(t,a,u,i){\"object\"===typeof u&&null!==u&&u.type===E&&null===u.key&&(u=u.props.children);if(\"object\"===typeof u&&null!==u){switch(u.$$typeof){case z:e:{for(var o=u.key,s=a;null!==s;){if(s.key===o){o=u.type;if(o===E){if(7===s.tag){c(t,s.sibling);a=e(s,u.props.children);a.return=t;t=a;break e}}else if(s.elementType===o||\"object\"===typeof o&&null!==o&&o.$$typeof===H&&Hd(o)===s.type){c(t,s.sibling);a=e(s,u.props);a.ref=Fd(t,s,u);a.return=t;t=a;break e}c(t,s);break}b(t,s);s=s.sibling}u.type===E?(a=Nd(u.props.children,t.mode,i,u.key),a.return=t,t=a):(i=Ld(u.type,u.key,u.props,null,t.mode,i),i.ref=Fd(t,a,u),i.return=t,t=i)}return g(t);case N:e:{for(s=u.key;null!==a;){if(a.key===s){if(4===a.tag&&a.stateNode.containerInfo===u.containerInfo&&a.stateNode.implementation===u.implementation){c(t,a.sibling);a=e(a,u.children||[]);a.return=t;t=a;break e}c(t,a);break}b(t,a);a=a.sibling}a=Md(u,t.mode,i);a.return=t;t=a}return g(t);case H:return s=u._init,ya(t,a,s(u._payload),i)}if(V(u))return w(t,a,u,i);if(ta(u))return Y(t,a,u,i);Gd(t,u)}return\"string\"===typeof u&&\"\"!==u||\"number\"===typeof u?(u=\"\"+u,null!==a&&6===a.tag?(c(t,a.sibling),a=e(a,u),a.return=t,t=a):(c(t,a),a=Kd(u,t.mode,i),a.return=t,t=a),g(t)):c(t,a)}return ya}var At=Id(!0),qt=Id(!1),jt=ic(null),$t=null,Vt=null,Zt=null;function Ud(){Zt=Vt=$t=null}function Vd(t,a,u){Ie?(v(jt,a._currentValue),a._currentValue=u):(v(jt,a._currentValue2),a._currentValue2=u)}function Wd(t){var a=jt.current;q(jt);Ie?t._currentValue=a:t._currentValue2=a}function Xd(t,a,u){for(;null!==t;){var i=t.alternate;(t.childLanes&a)!==a?(t.childLanes|=a,null!==i&&(i.childLanes|=a)):null!==i&&(i.childLanes&a)!==a&&(i.childLanes|=a);if(t===u)break;t=t.return}}function Yd(t,a){$t=t;Zt=Vt=null;t=t.dependencies;null!==t&&null!==t.firstContext&&(0!==(t.lanes&a)&&(Sr=!0),t.firstContext=null)}function Zd(t){var a=Ie?t._currentValue:t._currentValue2;if(Zt!==t)if(t={context:t,memoizedValue:a,next:null},null===Vt){if(null===$t)throw Error(n(308));Vt=t;$t.dependencies={lanes:0,firstContext:t}}else Vt=Vt.next=t;return a}var Yt=null;function ae(t){null===Yt?Yt=[t]:Yt.push(t)}function be(t,a,u,i){var o=a.interleaved;null===o?(u.next=u,ae(a)):(u.next=o.next,o.next=u);a.interleaved=u;return ce(t,i)}function ce(t,a){t.lanes|=a;var u=t.alternate;null!==u&&(u.lanes|=a);u=t;for(t=t.return;null!==t;)t.childLanes|=a,u=t.alternate,null!==u&&(u.childLanes|=a),u=t,t=t.return;return 3===u.tag?u.stateNode:null}var Jt=!1;function ee(t){t.updateQueue={baseState:t.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function fe(t,a){t=t.updateQueue;a.updateQueue===t&&(a.updateQueue={baseState:t.baseState,firstBaseUpdate:t.firstBaseUpdate,lastBaseUpdate:t.lastBaseUpdate,shared:t.shared,effects:t.effects})}function ge(t,a){return{eventTime:t,lane:a,tag:0,payload:null,callback:null,next:null}}function he(t,a,u){var i=t.updateQueue;if(null===i)return null;i=i.shared;if(0!==(Ar&2)){var o=i.pending;null===o?a.next=a:(a.next=o.next,o.next=a);i.pending=a;return ce(t,u)}o=i.interleaved;null===o?(a.next=a,ae(i)):(a.next=o.next,o.next=a);i.interleaved=a;return ce(t,u)}function ie(t,a,u){a=a.updateQueue;if(null!==a&&(a=a.shared,0!==(u&4194240))){var i=a.lanes;i&=t.pendingLanes;u|=i;a.lanes=u;Hc(t,u)}}function je(t,a){var u=t.updateQueue,i=t.alternate;if(null===i||(i=i.updateQueue,u!==i)){t=u.lastBaseUpdate;null===t?u.firstBaseUpdate=a:t.next=a;u.lastBaseUpdate=a}else{var o=null,s=null;u=u.firstBaseUpdate;if(null!==u){do{var y={eventTime:u.eventTime,lane:u.lane,tag:u.tag,payload:u.payload,callback:u.callback,next:null};null===s?o=s=y:s=s.next=y;u=u.next}while(null!==u);null===s?o=s=a:s=s.next=a}else o=s=a;u={baseState:i.baseState,firstBaseUpdate:o,lastBaseUpdate:s,shared:i.shared,effects:i.effects};t.updateQueue=u}}function ke(t,a,u,i){var o=t.updateQueue;Jt=!1;var s=o.firstBaseUpdate,y=o.lastBaseUpdate,x=o.shared.pending;if(null!==x){o.shared.pending=null;var z=x,N=z.next;z.next=null;null===y?s=N:y.next=N;y=z;var E=t.alternate;null!==E&&(E=E.updateQueue,x=E.lastBaseUpdate,x!==y&&(null===x?E.firstBaseUpdate=N:x.next=N,E.lastBaseUpdate=z))}if(null!==s){var C=o.baseState;y=0;E=N=z=null;x=s;do{var I=x.lane,_=x.eventTime;if((i&I)===I){null!==E&&(E=E.next={eventTime:_,lane:0,tag:x.tag,payload:x.payload,callback:x.callback,next:null});e:{var L=t,T=x;I=a;_=u;switch(T.tag){case 1:L=T.payload;if(\"function\"===typeof L){C=L.call(_,C,I);break e}C=L;break e;case 3:L.flags=L.flags&-65537|128;case 0:L=T.payload;I=\"function\"===typeof L?L.call(_,C,I):L;if(null===I||void 0===I)break e;C=S({},C,I);break e;case 2:Jt=!0}}null!==x.callback&&0!==x.lane&&(t.flags|=64,I=o.effects,null===I?o.effects=[x]:I.push(x))}else _={eventTime:_,lane:I,tag:x.tag,payload:x.payload,callback:x.callback,next:null},null===E?(N=E=_,z=C):E=E.next=_,y|=I;x=x.next;if(null===x){if(x=o.shared.pending,null===x)break;I=x,x=I.next,I.next=null,o.lastBaseUpdate=I,o.shared.pending=null}}while(1);null===E&&(z=C);o.baseState=z;o.firstBaseUpdate=N;o.lastBaseUpdate=E;a=o.shared.interleaved;if(null!==a){o=a;do{y|=o.lane,o=o.next}while(o!==a)}else null===s&&(o.shared.lanes=0);Kr|=y;t.lanes=y;t.memoizedState=C}}function me(t,a,u){t=a.effects;a.effects=null;if(null!==t)for(a=0;a<t.length;a++){var i=t[a],o=i.callback;if(null!==o){i.callback=null;i=u;if(\"function\"!==typeof o)throw Error(n(191,o));o.call(i)}}}var Kt={},Gt=ic(Kt),Xt=ic(Kt),er=ic(Kt);function re(t){if(t===Kt)throw Error(n(174));return t}function se(t,a){v(er,a);v(Xt,t);v(Gt,Kt);t=J(a);q(Gt);v(Gt,t)}function te(){q(Gt);q(Xt);q(er)}function ue(t){var a=re(er.current),u=re(Gt.current);a=K(u,t.type,a);u!==a&&(v(Xt,t),v(Gt,a))}function ve(t){Xt.current===t&&(q(Gt),q(Xt))}var nr=ic(0);function we(t){for(var a=t;null!==a;){if(13===a.tag){var u=a.memoizedState;if(null!==u&&(u=u.dehydrated,null===u||Rn(u)||Mn(u)))return a}else if(19===a.tag&&void 0!==a.memoizedProps.revealOrder){if(0!==(a.flags&128))return a}else if(null!==a.child){a.child.return=a;a=a.child;continue}if(a===t)break;for(;null===a.sibling;){if(null===a.return||a.return===t)return null;a=a.return}a.sibling.return=a.return;a=a.sibling}return null}var tr=[];function ye(){for(var t=0;t<tr.length;t++){var a=tr[t];Ie?a._workInProgressVersionPrimary=null:a._workInProgressVersionSecondary=null}tr.length=0}var rr=x.ReactCurrentDispatcher,lr=x.ReactCurrentBatchConfig,ar=0,ur=null,ir=null,or=null,sr=!1,cr=!1,fr=0,dr=0;function M(){throw Error(n(321))}function Ge(t,a){if(null===a)return!1;for(var u=0;u<a.length&&u<t.length;u++)if(!zt(t[u],a[u]))return!1;return!0}function He(t,a,u,i,o,s){ar=s;ur=a;a.memoizedState=null;a.updateQueue=null;a.lanes=0;rr.current=null===t||null===t.memoizedState?gr:pr;t=u(i,o);if(cr){s=0;do{cr=!1;fr=0;if(25<=s)throw Error(n(301));s+=1;or=ir=null;a.updateQueue=null;rr.current=mr;t=u(i,o)}while(cr)}rr.current=hr;a=null!==ir&&null!==ir.next;ar=0;or=ir=ur=null;sr=!1;if(a)throw Error(n(300));return t}function Me(){var t=0!==fr;fr=0;return t}function Ne(){var t={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===or?ur.memoizedState=or=t:or=or.next=t;return or}function Oe(){if(null===ir){var t=ur.alternate;t=null!==t?t.memoizedState:null}else t=ir.next;var a=null===or?ur.memoizedState:or.next;if(null!==a)or=a,ir=t;else{if(null===t)throw Error(n(310));ir=t;t={memoizedState:ir.memoizedState,baseState:ir.baseState,baseQueue:ir.baseQueue,queue:ir.queue,next:null};null===or?ur.memoizedState=or=t:or=or.next=t}return or}function Pe(t,a){return\"function\"===typeof a?a(t):a}function Qe(t){var a=Oe(),u=a.queue;if(null===u)throw Error(n(311));u.lastRenderedReducer=t;var i=ir,o=i.baseQueue,s=u.pending;if(null!==s){if(null!==o){var y=o.next;o.next=s.next;s.next=y}i.baseQueue=o=s;u.pending=null}if(null!==o){s=o.next;i=i.baseState;var S=y=null,x=null,z=s;do{var N=z.lane;if((ar&N)===N)null!==x&&(x=x.next={lane:0,action:z.action,hasEagerState:z.hasEagerState,eagerState:z.eagerState,next:null}),i=z.hasEagerState?z.eagerState:t(i,z.action);else{var E={lane:N,action:z.action,hasEagerState:z.hasEagerState,eagerState:z.eagerState,next:null};null===x?(S=x=E,y=i):x=x.next=E;ur.lanes|=N;Kr|=N}z=z.next}while(null!==z&&z!==s);null===x?y=i:x.next=S;zt(i,a.memoizedState)||(Sr=!0);a.memoizedState=i;a.baseState=y;a.baseQueue=x;u.lastRenderedState=i}t=u.interleaved;if(null!==t){o=t;do{s=o.lane,ur.lanes|=s,Kr|=s,o=o.next}while(o!==t)}else null===o&&(u.lanes=0);return[a.memoizedState,u.dispatch]}function Re(t){var a=Oe(),u=a.queue;if(null===u)throw Error(n(311));u.lastRenderedReducer=t;var i=u.dispatch,o=u.pending,s=a.memoizedState;if(null!==o){u.pending=null;var y=o=o.next;do{s=t(s,y.action),y=y.next}while(y!==o);zt(s,a.memoizedState)||(Sr=!0);a.memoizedState=s;null===a.baseQueue&&(a.baseState=s);u.lastRenderedState=s}return[s,i]}function Se(){}function Te(t,a){var u=ur,i=Oe(),o=a(),s=!zt(i.memoizedState,o);s&&(i.memoizedState=o,Sr=!0);i=i.queue;Ue(Ve.bind(null,u,i,t),[t]);if(i.getSnapshot!==a||s||null!==or&&or.memoizedState.tag&1){u.flags|=2048;We(9,Xe.bind(null,u,i,o,a),void 0,null);if(null===qr)throw Error(n(349));0!==(ar&30)||Ye(u,a,o)}return o}function Ye(t,a,u){t.flags|=16384;t={getSnapshot:a,value:u};a=ur.updateQueue;null===a?(a={lastEffect:null,stores:null},ur.updateQueue=a,a.stores=[t]):(u=a.stores,null===u?a.stores=[t]:u.push(t))}function Xe(t,a,u,i){a.value=u;a.getSnapshot=i;Ze(a)&&$e(t)}function Ve(t,a,u){return u((function(){Ze(a)&&$e(t)}))}function Ze(t){var a=t.getSnapshot;t=t.value;try{var u=a();return!zt(t,u)}catch(t){return!0}}function $e(t){var a=ce(t,1);null!==a&&af(a,t,1,-1)}function bf(t){var a=Ne();\"function\"===typeof t&&(t=t());a.memoizedState=a.baseState=t;t={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:Pe,lastRenderedState:t};a.queue=t;t=t.dispatch=cf.bind(null,ur,t);return[a.memoizedState,t]}function We(t,a,u,i){t={tag:t,create:a,destroy:u,deps:i,next:null};a=ur.updateQueue;null===a?(a={lastEffect:null,stores:null},ur.updateQueue=a,a.lastEffect=t.next=t):(u=a.lastEffect,null===u?a.lastEffect=t.next=t:(i=u.next,u.next=t,t.next=i,a.lastEffect=t));return t}function df(){return Oe().memoizedState}function ef(t,a,u,i){var o=Ne();ur.flags|=t;o.memoizedState=We(1|a,u,void 0,void 0===i?null:i)}function ff(t,a,u,i){var o=Oe();i=void 0===i?null:i;var s=void 0;if(null!==ir){var y=ir.memoizedState;s=y.destroy;if(null!==i&&Ge(i,y.deps)){o.memoizedState=We(a,u,s,i);return}}ur.flags|=t;o.memoizedState=We(1|a,u,s,i)}function gf(t,a){return ef(8390656,8,t,a)}function Ue(t,a){return ff(2048,8,t,a)}function hf(t,a){return ff(4,2,t,a)}function jf(t,a){return ff(4,4,t,a)}function kf(t,a){return\"function\"===typeof a?(t=t(),a(t),function(){a(null)}):null!==a&&void 0!==a?(t=t(),a.current=t,function(){a.current=null}):void 0}function lf(t,a,u){u=null!==u&&void 0!==u?u.concat([t]):null;return ff(4,4,kf.bind(null,a,t),u)}function mf(){}function nf(t,a){var u=Oe();a=void 0===a?null:a;var i=u.memoizedState;if(null!==i&&null!==a&&Ge(a,i[1]))return i[0];u.memoizedState=[t,a];return t}function of(t,a){var u=Oe();a=void 0===a?null:a;var i=u.memoizedState;if(null!==i&&null!==a&&Ge(a,i[1]))return i[0];t=t();u.memoizedState=[t,a];return t}function pf(t,a,u){if(0===(ar&21))return t.baseState&&(t.baseState=!1,Sr=!0),t.memoizedState=u;zt(u,a)||(u=Dc(),ur.lanes|=u,Kr|=u,t.baseState=!0);return a}function qf(t,a){var u=dt;dt=0!==u&&4>u?u:4;t(!0);var i=lr.transition;lr.transition={};try{t(!1),a()}finally{dt=u,lr.transition=i}}function rf(){return Oe().memoizedState}function sf(t,a,u){var i=tf(t);u={lane:i,action:u,hasEagerState:!1,eagerState:null,next:null};if(uf(t))vf(a,u);else if(u=be(t,a,u,i),null!==u){var o=O();af(u,t,i,o);wf(u,a,i)}}function cf(t,a,u){var i=tf(t),o={lane:i,action:u,hasEagerState:!1,eagerState:null,next:null};if(uf(t))vf(a,o);else{var s=t.alternate;if(0===t.lanes&&(null===s||0===s.lanes)&&(s=a.lastRenderedReducer,null!==s))try{var y=a.lastRenderedState,S=s(y,u);o.hasEagerState=!0;o.eagerState=S;if(zt(S,y)){var x=a.interleaved;null===x?(o.next=o,ae(a)):(o.next=x.next,x.next=o);a.interleaved=o;return}}catch(t){}u=be(t,a,o,i);null!==u&&(o=O(),af(u,t,i,o),wf(u,a,i))}}function uf(t){var a=t.alternate;return t===ur||null!==a&&a===ur}function vf(t,a){cr=sr=!0;var u=t.pending;null===u?a.next=a:(a.next=u.next,u.next=a);t.pending=a}function wf(t,a,u){if(0!==(u&4194240)){var i=a.lanes;i&=t.pendingLanes;u|=i;a.lanes=u;Hc(t,u)}}var hr={readContext:Zd,useCallback:M,useContext:M,useEffect:M,useImperativeHandle:M,useInsertionEffect:M,useLayoutEffect:M,useMemo:M,useReducer:M,useRef:M,useState:M,useDebugValue:M,useDeferredValue:M,useTransition:M,useMutableSource:M,useSyncExternalStore:M,useId:M,unstable_isNewReconciler:!1},gr={readContext:Zd,useCallback:function(t,a){Ne().memoizedState=[t,void 0===a?null:a];return t},useContext:Zd,useEffect:gf,useImperativeHandle:function(t,a,u){u=null!==u&&void 0!==u?u.concat([t]):null;return ef(4194308,4,kf.bind(null,a,t),u)},useLayoutEffect:function(t,a){return ef(4194308,4,t,a)},useInsertionEffect:function(t,a){return ef(4,2,t,a)},useMemo:function(t,a){var u=Ne();a=void 0===a?null:a;t=t();u.memoizedState=[t,a];return t},useReducer:function(t,a,u){var i=Ne();a=void 0!==u?u(a):a;i.memoizedState=i.baseState=a;t={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:t,lastRenderedState:a};i.queue=t;t=t.dispatch=sf.bind(null,ur,t);return[i.memoizedState,t]},useRef:function(t){var a=Ne();t={current:t};return a.memoizedState=t},useState:bf,useDebugValue:mf,useDeferredValue:function(t){return Ne().memoizedState=t},useTransition:function(){var t=bf(!1),a=t[0];t=qf.bind(null,t[1]);Ne().memoizedState=t;return[a,t]},useMutableSource:function(){},useSyncExternalStore:function(t,a,u){var i=ur,o=Ne();if(Ht){if(void 0===u)throw Error(n(407));u=u()}else{u=a();if(null===qr)throw Error(n(349));0!==(ar&30)||Ye(i,a,u)}o.memoizedState=u;var s={value:u,getSnapshot:a};o.queue=s;gf(Ve.bind(null,i,s,t),[t]);i.flags|=2048;We(9,Xe.bind(null,i,s,u,a),void 0,null);return u},useId:function(){var t=Ne(),a=qr.identifierPrefix;if(Ht){var u=Ft;var i=Mt;u=(i&~(1<<32-it(i)-1)).toString(32)+u;a=\":\"+a+\"R\"+u;u=fr++;0<u&&(a+=\"H\"+u.toString(32));a+=\":\"}else u=dr++,a=\":\"+a+\"r\"+u.toString(32)+\":\";return t.memoizedState=a},unstable_isNewReconciler:!1},pr={readContext:Zd,useCallback:nf,useContext:Zd,useEffect:Ue,useImperativeHandle:lf,useInsertionEffect:hf,useLayoutEffect:jf,useMemo:of,useReducer:Qe,useRef:df,useState:function(){return Qe(Pe)},useDebugValue:mf,useDeferredValue:function(t){var a=Oe();return pf(a,ir.memoizedState,t)},useTransition:function(){var t=Qe(Pe)[0],a=Oe().memoizedState;return[t,a]},useMutableSource:Se,useSyncExternalStore:Te,useId:rf,unstable_isNewReconciler:!1},mr={readContext:Zd,useCallback:nf,useContext:Zd,useEffect:Ue,useImperativeHandle:lf,useInsertionEffect:hf,useLayoutEffect:jf,useMemo:of,useReducer:Re,useRef:df,useState:function(){return Re(Pe)},useDebugValue:mf,useDeferredValue:function(t){var a=Oe();return null===ir?a.memoizedState=t:pf(a,ir.memoizedState,t)},useTransition:function(){var t=Re(Pe)[0],a=Oe().memoizedState;return[t,a]},useMutableSource:Se,useSyncExternalStore:Te,useId:rf,unstable_isNewReconciler:!1};function xf(t,a){if(t&&t.defaultProps){a=S({},a);t=t.defaultProps;for(var u in t)void 0===a[u]&&(a[u]=t[u]);return a}return a}function yf(t,a,u,i){a=t.memoizedState;u=u(i,a);u=null===u||void 0===u?a:S({},a,u);t.memoizedState=u;0===t.lanes&&(t.updateQueue.baseState=u)}var vr={isMounted:function(t){return!!(t=t._reactInternals)&&wa(t)===t},enqueueSetState:function(t,a,u){t=t._reactInternals;var i=O(),o=tf(t),s=ge(i,o);s.payload=a;void 0!==u&&null!==u&&(s.callback=u);a=he(t,s,o);null!==a&&(af(a,t,o,i),ie(a,t,o))},enqueueReplaceState:function(t,a,u){t=t._reactInternals;var i=O(),o=tf(t),s=ge(i,o);s.tag=1;s.payload=a;void 0!==u&&null!==u&&(s.callback=u);a=he(t,s,o);null!==a&&(af(a,t,o,i),ie(a,t,o))},enqueueForceUpdate:function(t,a){t=t._reactInternals;var u=O(),i=tf(t),o=ge(u,i);o.tag=2;void 0!==a&&null!==a&&(o.callback=a);a=he(t,o,i);null!==a&&(af(a,t,i,u),ie(a,t,i))}};function Af(t,a,u,i,o,s,y){t=t.stateNode;return\"function\"===typeof t.shouldComponentUpdate?t.shouldComponentUpdate(i,s,y):!a.prototype||!a.prototype.isPureReactComponent||(!Dd(u,i)||!Dd(o,s))}function Bf(t,a,u){var i=!1,o=rt;var s=a.contextType;\"object\"===typeof s&&null!==s?s=Zd(s):(o=A(a)?ut:lt.current,i=a.contextTypes,s=(i=null!==i&&void 0!==i)?mc(t,o):rt);a=new a(u,s);t.memoizedState=null!==a.state&&void 0!==a.state?a.state:null;a.updater=vr;t.stateNode=a;a._reactInternals=t;i&&(t=t.stateNode,t.__reactInternalMemoizedUnmaskedChildContext=o,t.__reactInternalMemoizedMaskedChildContext=s);return a}function Cf(t,a,u,i){t=a.state;\"function\"===typeof a.componentWillReceiveProps&&a.componentWillReceiveProps(u,i);\"function\"===typeof a.UNSAFE_componentWillReceiveProps&&a.UNSAFE_componentWillReceiveProps(u,i);a.state!==t&&vr.enqueueReplaceState(a,a.state,null)}function Df(t,a,u,i){var o=t.stateNode;o.props=u;o.state=t.memoizedState;o.refs={};ee(t);var s=a.contextType;\"object\"===typeof s&&null!==s?o.context=Zd(s):(s=A(a)?ut:lt.current,o.context=mc(t,s));o.state=t.memoizedState;s=a.getDerivedStateFromProps;\"function\"===typeof s&&(yf(t,a,s,u),o.state=t.memoizedState);\"function\"===typeof a.getDerivedStateFromProps||\"function\"===typeof o.getSnapshotBeforeUpdate||\"function\"!==typeof o.UNSAFE_componentWillMount&&\"function\"!==typeof o.componentWillMount||(a=o.state,\"function\"===typeof o.componentWillMount&&o.componentWillMount(),\"function\"===typeof o.UNSAFE_componentWillMount&&o.UNSAFE_componentWillMount(),a!==o.state&&vr.enqueueReplaceState(o,o.state,null),ke(t,u,o,i),o.state=t.memoizedState);\"function\"===typeof o.componentDidMount&&(t.flags|=4194308)}function Ef(t,a){try{var u=\"\",i=a;do{u+=Ed(i),i=i.return}while(i);var o=u}catch(t){o=\"\\nError generating stack: \"+t.message+\"\\n\"+t.stack}return{value:t,source:a,stack:o,digest:null}}function Ff(t,a,u){return{value:t,source:null,stack:null!=u?u:null,digest:null!=a?a:null}}function Gf(t,a){try{console.error(a.value)}catch(t){setTimeout((function(){throw t}))}}var yr=\"function\"===typeof WeakMap?WeakMap:Map;function If(t,a,u){u=ge(-1,u);u.tag=3;u.payload={element:null};var i=a.value;u.callback=function(){al||(al=!0,ul=i);Gf(t,a)};return u}function Lf(t,a,u){u=ge(-1,u);u.tag=3;var i=t.type.getDerivedStateFromError;if(\"function\"===typeof i){var s=a.value;u.payload=function(){return i(s)};u.callback=function(){Gf(t,a)}}var y=t.stateNode;null!==y&&\"function\"===typeof y.componentDidCatch&&(u.callback=function(){Gf(t,a);\"function\"!==typeof i&&(null===il?il=new Set([this||o]):il.add(this||o));var u=a.stack;this.componentDidCatch(a.value,{componentStack:null!==u?u:\"\"})});return u}function Nf(t,a,u){var i=t.pingCache;if(null===i){i=t.pingCache=new yr;var o=new Set;i.set(a,o)}else o=i.get(a),void 0===o&&(o=new Set,i.set(a,o));o.has(u)||(o.add(u),t=Of.bind(null,t,a,u),a.then(t,t))}function Pf(t){do{var a;(a=13===t.tag)&&(a=t.memoizedState,a=null===a||null!==a.dehydrated);if(a)return t;t=t.return}while(null!==t);return null}function Qf(t,a,u,i,o){if(0===(t.mode&1))return t===a?t.flags|=65536:(t.flags|=128,u.flags|=131072,u.flags&=-52805,1===u.tag&&(null===u.alternate?u.tag=17:(a=ge(-1,1),a.tag=2,he(u,a,1))),u.lanes|=1),t;t.flags|=65536;t.lanes=o;return t}var br=x.ReactCurrentOwner,Sr=!1;function P(t,a,u,i){a.child=null===t?qt(a,null,u,i):At(a,t.child,u,i)}function Sf(t,a,u,i,o){u=u.render;var s=a.ref;Yd(a,o);i=He(t,a,u,i,s,o);u=Me();if(null!==t&&!Sr)return a.updateQueue=t.updateQueue,a.flags&=-2053,t.lanes&=~o,Tf(t,a,o);Ht&&u&&md(a);a.flags|=1;P(t,a,i,o);return a.child}function Uf(t,a,u,i,o){if(null===t){var s=u.type;if(\"function\"===typeof s&&!Vf(s)&&void 0===s.defaultProps&&null===u.compare&&void 0===u.defaultProps)return a.tag=15,a.type=s,Wf(t,a,s,i,o);t=Ld(u.type,null,i,a,a.mode,o);t.ref=a.ref;t.return=a;return a.child=t}s=t.child;if(0===(t.lanes&o)){var y=s.memoizedProps;u=u.compare;u=null!==u?u:Dd;if(u(y,i)&&t.ref===a.ref)return Tf(t,a,o)}a.flags|=1;t=Jd(s,i);t.ref=a.ref;t.return=a;return a.child=t}function Wf(t,a,u,i,o){if(null!==t){var s=t.memoizedProps;if(Dd(s,i)&&t.ref===a.ref){if(Sr=!1,a.pendingProps=i=s,0===(t.lanes&o))return a.lanes=t.lanes,Tf(t,a,o);0!==(t.flags&131072)&&(Sr=!0)}}return Xf(t,a,u,i,o)}function Yf(t,a,u){var i=a.pendingProps,o=i.children,s=null!==t?t.memoizedState:null;if(\"hidden\"===i.mode)if(0===(a.mode&1))a.memoizedState={baseLanes:0,cachePool:null,transitions:null},v(Zr,Vr),Vr|=u;else{if(0===(u&1073741824))return t=null!==s?s.baseLanes|u:u,a.lanes=a.childLanes=1073741824,a.memoizedState={baseLanes:t,cachePool:null,transitions:null},a.updateQueue=null,v(Zr,Vr),Vr|=t,null;a.memoizedState={baseLanes:0,cachePool:null,transitions:null};i=null!==s?s.baseLanes:u;v(Zr,Vr);Vr|=i}else null!==s?(i=s.baseLanes|u,a.memoizedState=null):i=u,v(Zr,Vr),Vr|=i;P(t,a,o,u);return a.child}function ag(t,a){var u=a.ref;(null===t&&null!==u||null!==t&&t.ref!==u)&&(a.flags|=512,a.flags|=2097152)}function Xf(t,a,u,i,o){var s=A(u)?ut:lt.current;s=mc(a,s);Yd(a,o);u=He(t,a,u,i,s,o);i=Me();if(null!==t&&!Sr)return a.updateQueue=t.updateQueue,a.flags&=-2053,t.lanes&=~o,Tf(t,a,o);Ht&&i&&md(a);a.flags|=1;P(t,a,u,o);return a.child}function bg(t,a,u,i,o){if(A(u)){var s=!0;qc(a)}else s=!1;Yd(a,o);if(null===a.stateNode)cg(t,a),Bf(a,u,i),Df(a,u,i,o),i=!0;else if(null===t){var y=a.stateNode,S=a.memoizedProps;y.props=S;var x=y.context,z=u.contextType;\"object\"===typeof z&&null!==z?z=Zd(z):(z=A(u)?ut:lt.current,z=mc(a,z));var N=u.getDerivedStateFromProps,E=\"function\"===typeof N||\"function\"===typeof y.getSnapshotBeforeUpdate;E||\"function\"!==typeof y.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof y.componentWillReceiveProps||(S!==i||x!==z)&&Cf(a,y,i,z);Jt=!1;var C=a.memoizedState;y.state=C;ke(a,i,y,o);x=a.memoizedState;S!==i||C!==x||at.current||Jt?(\"function\"===typeof N&&(yf(a,u,N,i),x=a.memoizedState),(S=Jt||Af(a,u,S,i,C,x,z))?(E||\"function\"!==typeof y.UNSAFE_componentWillMount&&\"function\"!==typeof y.componentWillMount||(\"function\"===typeof y.componentWillMount&&y.componentWillMount(),\"function\"===typeof y.UNSAFE_componentWillMount&&y.UNSAFE_componentWillMount()),\"function\"===typeof y.componentDidMount&&(a.flags|=4194308)):(\"function\"===typeof y.componentDidMount&&(a.flags|=4194308),a.memoizedProps=i,a.memoizedState=x),y.props=i,y.state=x,y.context=z,i=S):(\"function\"===typeof y.componentDidMount&&(a.flags|=4194308),i=!1)}else{y=a.stateNode;fe(t,a);S=a.memoizedProps;z=a.type===a.elementType?S:xf(a.type,S);y.props=z;E=a.pendingProps;C=y.context;x=u.contextType;\"object\"===typeof x&&null!==x?x=Zd(x):(x=A(u)?ut:lt.current,x=mc(a,x));var I=u.getDerivedStateFromProps;(N=\"function\"===typeof I||\"function\"===typeof y.getSnapshotBeforeUpdate)||\"function\"!==typeof y.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof y.componentWillReceiveProps||(S!==E||C!==x)&&Cf(a,y,i,x);Jt=!1;C=a.memoizedState;y.state=C;ke(a,i,y,o);var _=a.memoizedState;S!==E||C!==_||at.current||Jt?(\"function\"===typeof I&&(yf(a,u,I,i),_=a.memoizedState),(z=Jt||Af(a,u,z,i,C,_,x)||!1)?(N||\"function\"!==typeof y.UNSAFE_componentWillUpdate&&\"function\"!==typeof y.componentWillUpdate||(\"function\"===typeof y.componentWillUpdate&&y.componentWillUpdate(i,_,x),\"function\"===typeof y.UNSAFE_componentWillUpdate&&y.UNSAFE_componentWillUpdate(i,_,x)),\"function\"===typeof y.componentDidUpdate&&(a.flags|=4),\"function\"===typeof y.getSnapshotBeforeUpdate&&(a.flags|=1024)):(\"function\"!==typeof y.componentDidUpdate||S===t.memoizedProps&&C===t.memoizedState||(a.flags|=4),\"function\"!==typeof y.getSnapshotBeforeUpdate||S===t.memoizedProps&&C===t.memoizedState||(a.flags|=1024),a.memoizedProps=i,a.memoizedState=_),y.props=i,y.state=_,y.context=x,i=z):(\"function\"!==typeof y.componentDidUpdate||S===t.memoizedProps&&C===t.memoizedState||(a.flags|=4),\"function\"!==typeof y.getSnapshotBeforeUpdate||S===t.memoizedProps&&C===t.memoizedState||(a.flags|=1024),i=!1)}return dg(t,a,u,i,s,o)}function dg(t,a,u,i,o,s){ag(t,a);var y=0!==(a.flags&128);if(!i&&!y)return o&&rc(a,u,!1),Tf(t,a,s);i=a.stateNode;br.current=a;var S=y&&\"function\"!==typeof u.getDerivedStateFromError?null:i.render();a.flags|=1;null!==t&&y?(a.child=At(a,t.child,null,s),a.child=At(a,null,S,s)):P(t,a,S,s);a.memoizedState=i.state;o&&rc(a,u,!0);return a.child}function eg(t){var a=t.stateNode;a.pendingContext?oc(t,a.pendingContext,a.pendingContext!==a.context):a.context&&oc(t,a.context,!1);se(t,a.containerInfo)}function fg(t,a,u,i,o){Ad();Bd(o);a.flags|=256;P(t,a,u,i);return a.child}var kr={dehydrated:null,treeContext:null,retryLane:0};function hg(t){return{baseLanes:t,cachePool:null,transitions:null}}function ig(t,a,u){var i,o=a.pendingProps,s=nr.current,y=!1,S=0!==(a.flags&128);(i=S)||(i=(null===t||null!==t.memoizedState)&&0!==(s&2));i?(y=!0,a.flags&=-129):null!==t&&null===t.memoizedState||(s|=1);v(nr,s&1);if(null===t){wd(a);t=a.memoizedState;if(null!==t&&(t=t.dehydrated,null!==t))return 0===(a.mode&1)?a.lanes=1:Mn(t)?a.lanes=8:a.lanes=1073741824,null;S=o.children;t=o.fallback;return y?(o=a.mode,y=a.child,S={mode:\"hidden\",children:S},0===(o&1)&&null!==y?(y.childLanes=0,y.pendingProps=S):y=jg(S,o,0,null),t=Nd(t,o,u,null),y.return=a,t.return=a,y.sibling=t,a.child=y,a.child.memoizedState=hg(u),a.memoizedState=kr,t):kg(a,S)}s=t.memoizedState;if(null!==s&&(i=s.dehydrated,null!==i))return lg(t,a,S,o,i,s,u);if(y){y=o.fallback;S=a.mode;s=t.child;i=s.sibling;var x={mode:\"hidden\",children:o.children};0===(S&1)&&a.child!==s?(o=a.child,o.childLanes=0,o.pendingProps=x,a.deletions=null):(o=Jd(s,x),o.subtreeFlags=s.subtreeFlags&14680064);null!==i?y=Jd(i,y):(y=Nd(y,S,u,null),y.flags|=2);y.return=a;o.return=a;o.sibling=y;a.child=o;o=y;y=a.child;S=t.child.memoizedState;S=null===S?hg(u):{baseLanes:S.baseLanes|u,cachePool:null,transitions:S.transitions};y.memoizedState=S;y.childLanes=t.childLanes&~u;a.memoizedState=kr;return o}y=t.child;t=y.sibling;o=Jd(y,{mode:\"visible\",children:o.children});0===(a.mode&1)&&(o.lanes=u);o.return=a;o.sibling=null;null!==t&&(u=a.deletions,null===u?(a.deletions=[t],a.flags|=16):u.push(t));a.child=o;a.memoizedState=null;return o}function kg(t,a){a=jg({mode:\"visible\",children:a},t.mode,0,null);a.return=t;return t.child=a}function mg(t,a,u,i){null!==i&&Bd(i);At(a,t.child,null,u);t=kg(a,a.pendingProps.children);t.flags|=2;a.memoizedState=null;return t}function lg(t,a,u,i,o,s,y){if(u){if(a.flags&256)return a.flags&=-257,i=Ff(Error(n(422))),mg(t,a,y,i);if(null!==a.memoizedState)return a.child=t.child,a.flags|=128,null;s=i.fallback;o=a.mode;i=jg({mode:\"visible\",children:i.children},o,0,null);s=Nd(s,o,y,null);s.flags|=2;i.return=a;s.return=a;i.sibling=s;a.child=i;0!==(a.mode&1)&&At(a,t.child,null,y);a.child.memoizedState=hg(y);a.memoizedState=kr;return s}if(0===(a.mode&1))return mg(t,a,y,null);if(Mn(o))return i=Fn(o).digest,s=Error(n(419)),i=Ff(s,i,void 0),mg(t,a,y,i);u=0!==(y&t.childLanes);if(Sr||u){i=qr;if(null!==i){switch(y&-y){case 4:o=2;break;case 16:o=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:o=32;break;case 536870912:o=268435456;break;default:o=0}o=0!==(o&(i.suspendedLanes|y))?0:o;0!==o&&o!==s.retryLane&&(s.retryLane=o,ce(t,o),af(i,t,o,-1))}ng();i=Ff(Error(n(421)));return mg(t,a,y,i)}if(Rn(o))return a.flags|=128,a.child=t.child,a=og.bind(null,t),Qn(o,a),null;t=s.treeContext;Fe&&(Dt=Bn(o),Qt=a,Ht=!0,Bt=null,Wt=!1,null!==t&&(Lt[Tt++]=Mt,Lt[Tt++]=Ft,Lt[Tt++]=Rt,Mt=t.id,Ft=t.overflow,Rt=a));a=kg(a,i.children);a.flags|=4096;return a}function pg(t,a,u){t.lanes|=a;var i=t.alternate;null!==i&&(i.lanes|=a);Xd(t.return,a,u)}function qg(t,a,u,i,o){var s=t.memoizedState;null===s?t.memoizedState={isBackwards:a,rendering:null,renderingStartTime:0,last:i,tail:u,tailMode:o}:(s.isBackwards=a,s.rendering=null,s.renderingStartTime=0,s.last=i,s.tail=u,s.tailMode=o)}function rg(t,a,u){var i=a.pendingProps,o=i.revealOrder,s=i.tail;P(t,a,i.children,u);i=nr.current;if(0!==(i&2))i=i&1|2,a.flags|=128;else{if(null!==t&&0!==(t.flags&128))e:for(t=a.child;null!==t;){if(13===t.tag)null!==t.memoizedState&&pg(t,u,a);else if(19===t.tag)pg(t,u,a);else if(null!==t.child){t.child.return=t;t=t.child;continue}if(t===a)break e;for(;null===t.sibling;){if(null===t.return||t.return===a)break e;t=t.return}t.sibling.return=t.return;t=t.sibling}i&=1}v(nr,i);if(0===(a.mode&1))a.memoizedState=null;else switch(o){case\"forwards\":u=a.child;for(o=null;null!==u;)t=u.alternate,null!==t&&null===we(t)&&(o=u),u=u.sibling;u=o;null===u?(o=a.child,a.child=null):(o=u.sibling,u.sibling=null);qg(a,!1,o,u,s);break;case\"backwards\":u=null;o=a.child;for(a.child=null;null!==o;){t=o.alternate;if(null!==t&&null===we(t)){a.child=o;break}t=o.sibling;o.sibling=u;u=o;o=t}qg(a,!0,u,null,s);break;case\"together\":qg(a,!1,null,null,void 0);break;default:a.memoizedState=null}return a.child}function cg(t,a){0===(a.mode&1)&&null!==t&&(t.alternate=null,a.alternate=null,a.flags|=2)}function Tf(t,a,u){null!==t&&(a.dependencies=t.dependencies);Kr|=a.lanes;if(0===(u&a.childLanes))return null;if(null!==t&&a.child!==t.child)throw Error(n(153));if(null!==a.child){t=a.child;u=Jd(t,t.pendingProps);a.child=u;for(u.return=a;null!==t.sibling;)t=t.sibling,u=u.sibling=Jd(t,t.pendingProps),u.return=a;u.sibling=null}return a.child}function sg(t,a,u){switch(a.tag){case 3:eg(a);Ad();break;case 5:ue(a);break;case 1:A(a.type)&&qc(a);break;case 4:se(a,a.stateNode.containerInfo);break;case 10:Vd(a,a.type._context,a.memoizedProps.value);break;case 13:var i=a.memoizedState;if(null!==i){if(null!==i.dehydrated)return v(nr,nr.current&1),a.flags|=128,null;if(0!==(u&a.child.childLanes))return ig(t,a,u);v(nr,nr.current&1);t=Tf(t,a,u);return null!==t?t.sibling:null}v(nr,nr.current&1);break;case 19:i=0!==(u&a.childLanes);if(0!==(t.flags&128)){if(i)return rg(t,a,u);a.flags|=128}var o=a.memoizedState;null!==o&&(o.rendering=null,o.tail=null,o.lastEffect=null);v(nr,nr.current);if(i)break;return null;case 22:case 23:return a.lanes=0,Yf(t,a,u)}return Tf(t,a,u)}function tg(t){t.flags|=4}function ug(t,a){if(null!==t&&t.child===a.child)return!0;if(0!==(a.flags&16))return!1;for(t=a.child;null!==t;){if(0!==(t.flags&12854)||0!==(t.subtreeFlags&12854))return!1;t=t.sibling}return!0}var xr,wr,zr,Nr;if(_e)xr=function(t,a){for(var u=a.child;null!==u;){if(5===u.tag||6===u.tag)le(t,u.stateNode);else if(4!==u.tag&&null!==u.child){u.child.return=u;u=u.child;continue}if(u===a)break;for(;null===u.sibling;){if(null===u.return||u.return===a)return;u=u.return}u.sibling.return=u.return;u=u.sibling}},wr=function(){},zr=function(t,a,u,i,o){t=t.memoizedProps;if(t!==i){var s=a.stateNode,y=re(Gt.current);u=de(s,u,t,i,o,y);(a.updateQueue=u)&&tg(a)}},Nr=function(t,a,u,i){u!==i&&tg(a)};else if(Le){xr=function(t,a,u,i){for(var o=a.child;null!==o;){if(5===o.tag){var s=o.stateNode;u&&i&&(s=In(s,o.type,o.memoizedProps,o));le(t,s)}else if(6===o.tag)s=o.stateNode,u&&i&&(s=_n(s,o.memoizedProps,o)),le(t,s);else if(4!==o.tag)if(22===o.tag&&null!==o.memoizedState)s=o.child,null!==s&&(s.return=o),xr(t,o,!0,!0);else if(null!==o.child){o.child.return=o;o=o.child;continue}if(o===a)break;for(;null===o.sibling;){if(null===o.return||o.return===a)return;o=o.return}o.sibling.return=o.return;o=o.sibling}};var zg=function(t,a,u,i){for(var o=a.child;null!==o;){if(5===o.tag){var s=o.stateNode;u&&i&&(s=In(s,o.type,o.memoizedProps,o));Pn(t,s)}else if(6===o.tag)s=o.stateNode,u&&i&&(s=_n(s,o.memoizedProps,o)),Pn(t,s);else if(4!==o.tag)if(22===o.tag&&null!==o.memoizedState)s=o.child,null!==s&&(s.return=o),zg(t,o,!0,!0);else if(null!==o.child){o.child.return=o;o=o.child;continue}if(o===a)break;for(;null===o.sibling;){if(null===o.return||o.return===a)return;o=o.return}o.sibling.return=o.return;o=o.sibling}};wr=function(t,a){var u=a.stateNode;if(!ug(t,a)){t=u.containerInfo;var i=Nn(t);zg(i,a,!1,!1);u.pendingChildren=i;tg(a);En(t,i)}};zr=function(t,a,u,i,o){var s=t.stateNode,y=t.memoizedProps;if((t=ug(t,a))&&y===i)a.stateNode=s;else{var S=a.stateNode,x=re(Gt.current),z=null;y!==i&&(z=de(S,u,y,i,o,x));t&&null===z?a.stateNode=s:(s=zn(s,z,u,y,i,a,t,S),oe(s,u,i,o,x)&&tg(a),a.stateNode=s,t?tg(a):xr(s,a,!1,!1))}};Nr=function(t,a,u,i){u!==i?(t=re(er.current),u=re(Gt.current),a.stateNode=xe(i,t,u,a),tg(a)):a.stateNode=t.stateNode}}else wr=function(){},zr=function(){},Nr=function(){};function Ag(t,a){if(!Ht)switch(t.tailMode){case\"hidden\":a=t.tail;for(var u=null;null!==a;)null!==a.alternate&&(u=a),a=a.sibling;null===u?t.tail=null:u.sibling=null;break;case\"collapsed\":u=t.tail;for(var i=null;null!==u;)null!==u.alternate&&(i=u),u=u.sibling;null===i?a||null===t.tail?t.tail=null:t.tail.sibling=null:i.sibling=null}}function Q(t){var a=null!==t.alternate&&t.alternate.child===t.child,u=0,i=0;if(a)for(var o=t.child;null!==o;)u|=o.lanes|o.childLanes,i|=o.subtreeFlags&14680064,i|=o.flags&14680064,o.return=t,o=o.sibling;else for(o=t.child;null!==o;)u|=o.lanes|o.childLanes,i|=o.subtreeFlags,i|=o.flags,o.return=t,o=o.sibling;t.subtreeFlags|=i;t.childLanes=u;return a}function Bg(t,a,u){var i=a.pendingProps;nd(a);switch(a.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Q(a),null;case 1:return A(a.type)&&nc(),Q(a),null;case 3:u=a.stateNode;te();q(at);q(lt);ye();u.pendingContext&&(u.context=u.pendingContext,u.pendingContext=null);null!==t&&null!==t.child||(yd(a)?tg(a):null===t||t.memoizedState.isDehydrated&&0===(a.flags&256)||(a.flags|=1024,null!==Bt&&(Cg(Bt),Bt=null)));wr(t,a);Q(a);return null;case 5:ve(a);u=re(er.current);var o=a.type;if(null!==t&&null!=a.stateNode)zr(t,a,o,i,u),t.ref!==a.ref&&(a.flags|=512,a.flags|=2097152);else{if(!i){if(null===a.stateNode)throw Error(n(166));Q(a);return null}t=re(Gt.current);if(yd(a)){if(!Fe)throw Error(n(175));t=On(a.stateNode,a.type,a.memoizedProps,u,t,a,!Wt);a.updateQueue=t;null!==t&&tg(a)}else{var s=ne(o,i,u,t,a);xr(s,a,!1,!1);a.stateNode=s;oe(s,o,i,u,t)&&tg(a)}null!==a.ref&&(a.flags|=512,a.flags|=2097152)}Q(a);return null;case 6:if(t&&null!=a.stateNode)Nr(t,a,t.memoizedProps,i);else{if(\"string\"!==typeof i&&null===a.stateNode)throw Error(n(166));t=re(er.current);u=re(Gt.current);if(yd(a)){if(!Fe)throw Error(n(176));t=a.stateNode;u=a.memoizedProps;if((i=An(t,u,a,!Wt))&&(o=Qt,null!==o))switch(o.tag){case 3:Kn(o.stateNode.containerInfo,t,u,0!==(o.mode&1));break;case 5:Gn(o.type,o.memoizedProps,o.stateNode,t,u,0!==(o.mode&1))}i&&tg(a)}else a.stateNode=xe(i,t,u,a)}Q(a);return null;case 13:q(nr);i=a.memoizedState;if(null===t||null!==t.memoizedState&&null!==t.memoizedState.dehydrated){if(Ht&&null!==Dt&&0!==(a.mode&1)&&0===(a.flags&128))zd(),Ad(),a.flags|=98560,o=!1;else if(o=yd(a),null!==i&&null!==i.dehydrated){if(null===t){if(!o)throw Error(n(318));if(!Fe)throw Error(n(344));o=a.memoizedState;o=null!==o?o.dehydrated:null;if(!o)throw Error(n(317));qn(o,a)}else Ad(),0===(a.flags&128)&&(a.memoizedState=null),a.flags|=4;Q(a);o=!1}else null!==Bt&&(Cg(Bt),Bt=null),o=!0;if(!o)return a.flags&65536?a:null}if(0!==(a.flags&128))return a.lanes=u,a;u=null!==i;u!==(null!==t&&null!==t.memoizedState)&&u&&(a.child.flags|=8192,0!==(a.mode&1)&&(null===t||0!==(nr.current&1)?0===Yr&&(Yr=3):ng()));null!==a.updateQueue&&(a.flags|=4);Q(a);return null;case 4:return te(),wr(t,a),null===t&&Be(a.stateNode.containerInfo),Q(a),null;case 10:return Wd(a.type._context),Q(a),null;case 17:return A(a.type)&&nc(),Q(a),null;case 19:q(nr);o=a.memoizedState;if(null===o)return Q(a),null;i=0!==(a.flags&128);s=o.rendering;if(null===s)if(i)Ag(o,!1);else{if(0!==Yr||null!==t&&0!==(t.flags&128))for(t=a.child;null!==t;){s=we(t);if(null!==s){a.flags|=128;Ag(o,!1);t=s.updateQueue;null!==t&&(a.updateQueue=t,a.flags|=4);a.subtreeFlags=0;t=u;for(u=a.child;null!==u;)i=u,o=t,i.flags&=14680066,s=i.alternate,null===s?(i.childLanes=0,i.lanes=o,i.child=null,i.subtreeFlags=0,i.memoizedProps=null,i.memoizedState=null,i.updateQueue=null,i.dependencies=null,i.stateNode=null):(i.childLanes=s.childLanes,i.lanes=s.lanes,i.child=s.child,i.subtreeFlags=0,i.deletions=null,i.memoizedProps=s.memoizedProps,i.memoizedState=s.memoizedState,i.updateQueue=s.updateQueue,i.type=s.type,o=s.dependencies,i.dependencies=null===o?null:{lanes:o.lanes,firstContext:o.firstContext}),u=u.sibling;v(nr,nr.current&1|2);return a.child}t=t.sibling}null!==o.tail&&vt()>rl&&(a.flags|=128,i=!0,Ag(o,!1),a.lanes=4194304)}else{if(!i)if(t=we(s),null!==t){if(a.flags|=128,i=!0,t=t.updateQueue,null!==t&&(a.updateQueue=t,a.flags|=4),Ag(o,!0),null===o.tail&&\"hidden\"===o.tailMode&&!s.alternate&&!Ht)return Q(a),null}else 2*vt()-o.renderingStartTime>rl&&1073741824!==u&&(a.flags|=128,i=!0,Ag(o,!1),a.lanes=4194304);o.isBackwards?(s.sibling=a.child,a.child=s):(t=o.last,null!==t?t.sibling=s:a.child=s,o.last=s)}if(null!==o.tail)return a=o.tail,o.rendering=a,o.tail=a.sibling,o.renderingStartTime=vt(),a.sibling=null,t=nr.current,v(nr,i?t&1|2:t&1),a;Q(a);return null;case 22:case 23:return Eg(),u=null!==a.memoizedState,null!==t&&null!==t.memoizedState!==u&&(a.flags|=8192),u&&0!==(a.mode&1)?0!==(Vr&1073741824)&&(Q(a),_e&&a.subtreeFlags&6&&(a.flags|=8192)):Q(a),null;case 24:return null;case 25:return null}throw Error(n(156,a.tag))}function Fg(t,a){nd(a);switch(a.tag){case 1:return A(a.type)&&nc(),t=a.flags,t&65536?(a.flags=t&-65537|128,a):null;case 3:return te(),q(at),q(lt),ye(),t=a.flags,0!==(t&65536)&&0===(t&128)?(a.flags=t&-65537|128,a):null;case 5:return ve(a),null;case 13:q(nr);t=a.memoizedState;if(null!==t&&null!==t.dehydrated){if(null===a.alternate)throw Error(n(340));Ad()}t=a.flags;return t&65536?(a.flags=t&-65537|128,a):null;case 19:return q(nr),null;case 4:return te(),null;case 10:return Wd(a.type._context),null;case 22:case 23:return Eg(),null;case 24:return null;default:return null}}var Pr=!1,Er=!1,Cr=\"function\"===typeof WeakSet?WeakSet:Set,Ir=null;function Ig(t,a){var u=t.ref;if(null!==u)if(\"function\"===typeof u)try{u(null)}catch(u){U(t,a,u)}else u.current=null}function Jg(t,a,u){try{u()}catch(u){U(t,a,u)}}var _r=!1;function Lg(t,a){G(t.containerInfo);for(Ir=a;null!==Ir;)if(t=Ir,a=t.child,0!==(t.subtreeFlags&1028)&&null!==a)a.return=t,Ir=a;else for(;null!==Ir;){t=Ir;try{var u=t.alternate;if(0!==(t.flags&1024))switch(t.tag){case 0:case 11:case 15:break;case 1:if(null!==u){var i=u.memoizedProps,o=u.memoizedState,s=t.stateNode,y=s.getSnapshotBeforeUpdate(t.elementType===t.type?i:xf(t.type,i),o);s.__reactInternalSnapshotBeforeUpdate=y}break;case 3:_e&&wn(t.stateNode.containerInfo);break;case 5:case 6:case 4:case 17:break;default:throw Error(n(163))}}catch(a){U(t,t.return,a)}a=t.sibling;if(null!==a){a.return=t.return;Ir=a;break}Ir=t.return}u=_r;_r=!1;return u}function Mg(t,a,u){var i=a.updateQueue;i=null!==i?i.lastEffect:null;if(null!==i){var o=i=i.next;do{if((o.tag&t)===t){var s=o.destroy;o.destroy=void 0;void 0!==s&&Jg(a,u,s)}o=o.next}while(o!==i)}}function Ng(t,a){a=a.updateQueue;a=null!==a?a.lastEffect:null;if(null!==a){var u=a=a.next;do{if((u.tag&t)===t){var i=u.create;u.destroy=i()}u=u.next}while(u!==a)}}function Og(t){var a=t.ref;if(null!==a){var u=t.stateNode;switch(t.tag){case 5:t=Z(u);break;default:t=u}\"function\"===typeof a?a(t):a.current=t}}function Pg(t){var a=t.alternate;null!==a&&(t.alternate=null,Pg(a));t.child=null;t.deletions=null;t.sibling=null;5===t.tag&&(a=t.stateNode,null!==a&&qe(a));t.stateNode=null;t.return=null;t.dependencies=null;t.memoizedProps=null;t.memoizedState=null;t.pendingProps=null;t.stateNode=null;t.updateQueue=null}function Qg(t){return 5===t.tag||3===t.tag||4===t.tag}function Rg(t){e:for(;;){for(;null===t.sibling;){if(null===t.return||Qg(t.return))return null;t=t.return}t.sibling.return=t.return;for(t=t.sibling;5!==t.tag&&6!==t.tag&&18!==t.tag;){if(t.flags&2)continue e;if(null===t.child||4===t.tag)continue e;t.child.return=t,t=t.child}if(!(t.flags&2))return t.stateNode}}function Sg(t,a,u){var i=t.tag;if(5===i||6===i)t=t.stateNode,a?pn(u,t,a):cn(u,t);else if(4!==i&&(t=t.child,null!==t))for(Sg(t,a,u),t=t.sibling;null!==t;)Sg(t,a,u),t=t.sibling}function Tg(t,a,u){var i=t.tag;if(5===i||6===i)t=t.stateNode,a?gn(u,t,a):sn(u,t);else if(4!==i&&(t=t.child,null!==t))for(Tg(t,a,u),t=t.sibling;null!==t;)Tg(t,a,u),t=t.sibling}var Ur=null,Lr=!1;function Vg(t,a,u){for(u=u.child;null!==u;)Wg(t,a,u),u=u.sibling}function Wg(t,a,u){if(wt&&\"function\"===typeof wt.onCommitFiberUnmount)try{wt.onCommitFiberUnmount(xt,u)}catch(t){}switch(u.tag){case 5:Er||Ig(u,a);case 6:if(_e){var i=Ur,o=Lr;Ur=null;Vg(t,a,u);Ur=i;Lr=o;null!==Ur&&(Lr?vn(Ur,u.stateNode):mn(Ur,u.stateNode))}else Vg(t,a,u);break;case 18:_e&&null!==Ur&&(Lr?Yn(Ur,u.stateNode):Zn(Ur,u.stateNode));break;case 4:_e?(i=Ur,o=Lr,Ur=u.stateNode.containerInfo,Lr=!0,Vg(t,a,u),Ur=i,Lr=o):(Le&&(i=u.stateNode.containerInfo,o=Nn(i),Cn(i,o)),Vg(t,a,u));break;case 0:case 11:case 14:case 15:if(!Er&&(i=u.updateQueue,null!==i&&(i=i.lastEffect,null!==i))){o=i=i.next;do{var s=o,y=s.destroy;s=s.tag;void 0!==y&&(0!==(s&2)||0!==(s&4))&&Jg(u,a,y);o=o.next}while(o!==i)}Vg(t,a,u);break;case 1:if(!Er&&(Ig(u,a),i=u.stateNode,\"function\"===typeof i.componentWillUnmount))try{i.props=u.memoizedProps,i.state=u.memoizedState,i.componentWillUnmount()}catch(t){U(u,a,t)}Vg(t,a,u);break;case 21:Vg(t,a,u);break;case 22:u.mode&1?(Er=(i=Er)||null!==u.memoizedState,Vg(t,a,u),Er=i):Vg(t,a,u);break;default:Vg(t,a,u)}}function Xg(t){var a=t.updateQueue;if(null!==a){t.updateQueue=null;var u=t.stateNode;null===u&&(u=t.stateNode=new Cr);a.forEach((function(a){var i=Yg.bind(null,t,a);u.has(a)||(u.add(a),a.then(i,i))}))}}function Zg(t,a){var u=a.deletions;if(null!==u)for(var i=0;i<u.length;i++){var o=u[i];try{var s=t,y=a;if(_e){var S=y;e:for(;null!==S;){switch(S.tag){case 5:Ur=S.stateNode;Lr=!1;break e;case 3:Ur=S.stateNode.containerInfo;Lr=!0;break e;case 4:Ur=S.stateNode.containerInfo;Lr=!0;break e}S=S.return}if(null===Ur)throw Error(n(160));Wg(s,y,o);Ur=null;Lr=!1}else Wg(s,y,o);var x=o.alternate;null!==x&&(x.return=null);o.return=null}catch(t){U(o,a,t)}}if(a.subtreeFlags&12854)for(a=a.child;null!==a;)$g(a,t),a=a.sibling}function $g(t,a){var u=t.alternate,i=t.flags;switch(t.tag){case 0:case 11:case 14:case 15:Zg(a,t);ah(t);if(i&4){try{Mg(3,t,t.return),Ng(3,t)}catch(a){U(t,t.return,a)}try{Mg(5,t,t.return)}catch(a){U(t,t.return,a)}}break;case 1:Zg(a,t);ah(t);i&512&&null!==u&&Ig(u,u.return);break;case 5:Zg(a,t);ah(t);i&512&&null!==u&&Ig(u,u.return);if(_e){if(t.flags&32){var o=t.stateNode;try{yn(o)}catch(a){U(t,t.return,a)}}if(i&4&&(o=t.stateNode,null!=o)){var s=t.memoizedProps;u=null!==u?u.memoizedProps:s;i=t.type;a=t.updateQueue;t.updateQueue=null;if(null!==a)try{hn(o,a,i,u,s,t)}catch(a){U(t,t.return,a)}}}break;case 6:Zg(a,t);ah(t);if(i&4&&_e){if(null===t.stateNode)throw Error(n(162));o=t.stateNode;s=t.memoizedProps;u=null!==u?u.memoizedProps:s;try{fn(o,u,s)}catch(a){U(t,t.return,a)}}break;case 3:Zg(a,t);ah(t);if(i&4){if(_e&&Fe&&null!==u&&u.memoizedState.isDehydrated)try{$n(a.containerInfo)}catch(a){U(t,t.return,a)}if(Le){o=a.containerInfo;s=a.pendingChildren;try{Cn(o,s)}catch(a){U(t,t.return,a)}}}break;case 4:Zg(a,t);ah(t);if(i&4&&Le){s=t.stateNode;o=s.containerInfo;s=s.pendingChildren;try{Cn(o,s)}catch(a){U(t,t.return,a)}}break;case 13:Zg(a,t);ah(t);o=t.child;o.flags&8192&&(s=null!==o.memoizedState,o.stateNode.isHidden=s,!s||null!==o.alternate&&null!==o.alternate.memoizedState||(tl=vt()));i&4&&Xg(t);break;case 22:var y=null!==u&&null!==u.memoizedState;t.mode&1?(Er=(u=Er)||y,Zg(a,t),Er=u):Zg(a,t);ah(t);if(i&8192){u=null!==t.memoizedState;if((t.stateNode.isHidden=u)&&!y&&0!==(t.mode&1))for(Ir=t,i=t.child;null!==i;){for(a=Ir=i;null!==Ir;){y=Ir;var S=y.child;switch(y.tag){case 0:case 11:case 14:case 15:Mg(4,y,y.return);break;case 1:Ig(y,y.return);var x=y.stateNode;if(\"function\"===typeof x.componentWillUnmount){var z=y,N=y.return;try{var E=z;x.props=E.memoizedProps;x.state=E.memoizedState;x.componentWillUnmount()}catch(t){U(z,N,t)}}break;case 5:Ig(y,y.return);break;case 22:if(null!==y.memoizedState){ch(a);continue}}null!==S?(S.return=y,Ir=S):ch(a)}i=i.sibling}if(_e)e:if(i=null,_e)for(a=t;;){if(5===a.tag){if(null===i){i=a;try{o=a.stateNode,u?bn(o):kn(a.stateNode,a.memoizedProps)}catch(a){U(t,t.return,a)}}}else if(6===a.tag){if(null===i)try{s=a.stateNode,u?Sn(s):xn(s,a.memoizedProps)}catch(a){U(t,t.return,a)}}else if((22!==a.tag&&23!==a.tag||null===a.memoizedState||a===t)&&null!==a.child){a.child.return=a;a=a.child;continue}if(a===t)break e;for(;null===a.sibling;){if(null===a.return||a.return===t)break e;i===a&&(i=null);a=a.return}i===a&&(i=null);a.sibling.return=a.return;a=a.sibling}}break;case 19:Zg(a,t);ah(t);i&4&&Xg(t);break;case 21:break;default:Zg(a,t),ah(t)}}function ah(t){var a=t.flags;if(a&2){try{if(_e){e:{for(var u=t.return;null!==u;){if(Qg(u)){var i=u;break e}u=u.return}throw Error(n(160))}switch(i.tag){case 5:var o=i.stateNode;i.flags&32&&(yn(o),i.flags&=-33);var s=Rg(t);Tg(t,s,o);break;case 3:case 4:var y=i.stateNode.containerInfo,S=Rg(t);Sg(t,S,y);break;default:throw Error(n(161))}}}catch(a){U(t,t.return,a)}t.flags&=-3}a&4096&&(t.flags&=-4097)}function dh(t,a,u){Ir=t;eh(t,a,u)}function eh(t,a,u){for(var i=0!==(t.mode&1);null!==Ir;){var o=Ir,s=o.child;if(22===o.tag&&i){var y=null!==o.memoizedState||Pr;if(!y){var S=o.alternate,x=null!==S&&null!==S.memoizedState||Er;S=Pr;var z=Er;Pr=y;if((Er=x)&&!z)for(Ir=o;null!==Ir;)y=Ir,x=y.child,22===y.tag&&null!==y.memoizedState?fh(o):null!==x?(x.return=y,Ir=x):fh(o);for(;null!==s;)Ir=s,eh(s,a,u),s=s.sibling;Ir=o;Pr=S;Er=z}gh(t,a,u)}else 0!==(o.subtreeFlags&8772)&&null!==s?(s.return=o,Ir=s):gh(t,a,u)}}function gh(t){for(;null!==Ir;){var a=Ir;if(0!==(a.flags&8772)){var u=a.alternate;try{if(0!==(a.flags&8772))switch(a.tag){case 0:case 11:case 15:Er||Ng(5,a);break;case 1:var i=a.stateNode;if(a.flags&4&&!Er)if(null===u)i.componentDidMount();else{var o=a.elementType===a.type?u.memoizedProps:xf(a.type,u.memoizedProps);i.componentDidUpdate(o,u.memoizedState,i.__reactInternalSnapshotBeforeUpdate)}var s=a.updateQueue;null!==s&&me(a,s,i);break;case 3:var y=a.updateQueue;if(null!==y){u=null;if(null!==a.child)switch(a.child.tag){case 5:u=Z(a.child.stateNode);break;case 1:u=a.child.stateNode}me(a,y,u)}break;case 5:var S=a.stateNode;null===u&&a.flags&4&&dn(S,a.type,a.memoizedProps,a);break;case 6:break;case 4:break;case 12:break;case 13:if(Fe&&null===a.memoizedState){var x=a.alternate;if(null!==x){var z=x.memoizedState;if(null!==z){var N=z.dehydrated;null!==N&&Vn(N)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;default:throw Error(n(163))}Er||a.flags&512&&Og(a)}catch(t){U(a,a.return,t)}}if(a===t){Ir=null;break}u=a.sibling;if(null!==u){u.return=a.return;Ir=u;break}Ir=a.return}}function ch(t){for(;null!==Ir;){var a=Ir;if(a===t){Ir=null;break}var u=a.sibling;if(null!==u){u.return=a.return;Ir=u;break}Ir=a.return}}function fh(t){for(;null!==Ir;){var a=Ir;try{switch(a.tag){case 0:case 11:case 15:var u=a.return;try{Ng(4,a)}catch(t){U(a,u,t)}break;case 1:var i=a.stateNode;if(\"function\"===typeof i.componentDidMount){var o=a.return;try{i.componentDidMount()}catch(t){U(a,o,t)}}var s=a.return;try{Og(a)}catch(t){U(a,s,t)}break;case 5:var y=a.return;try{Og(a)}catch(t){U(a,y,t)}}}catch(t){U(a,a.return,t)}if(a===t){Ir=null;break}var S=a.sibling;if(null!==S){S.return=a.return;Ir=S;break}Ir=a.return}}var Tr=0,Rr=1,Mr=2,Fr=3,Qr=4;if(\"function\"===typeof Symbol&&Symbol.for){var Dr=Symbol.for;Tr=Dr(\"selector.component\");Rr=Dr(\"selector.has_pseudo_class\");Mr=Dr(\"selector.role\");Fr=Dr(\"selector.test_id\");Qr=Dr(\"selector.text\")}function nh(t){var a=De(t);if(null!=a){if(\"string\"!==typeof a.memoizedProps[\"data-testname\"])throw Error(n(364));return a}t=nn(t);if(null===t)throw Error(n(362));return t.stateNode.current}function oh(t,a){switch(a.$$typeof){case Tr:if(t.type===a.value)return!0;break;case Rr:e:{a=a.value;t=[t,0];for(var u=0;u<t.length;){var i=t[u++],o=t[u++],s=a[o];if(5!==i.tag||!ln(i)){for(;null!=s&&oh(i,s);)o++,s=a[o];if(o===a.length){a=!0;break e}for(i=i.child;null!==i;)t.push(i,o),i=i.sibling}}a=!1}return a;case Mr:if(5===t.tag&&an(t.stateNode,a.value))return!0;break;case Qr:if((5===t.tag||6===t.tag)&&(t=rn(t),null!==t&&0<=t.indexOf(a.value)))return!0;break;case Fr:if(5===t.tag&&(t=t.memoizedProps[\"data-testname\"],\"string\"===typeof t&&t.toLowerCase()===a.value.toLowerCase()))return!0;break;default:throw Error(n(365))}return!1}function ph(t){switch(t.$$typeof){case Tr:return\"<\"+(ua(t.value)||\"Unknown\")+\">\";case Rr:return\":has(\"+(ph(t)||\"\")+\")\";case Mr:return'[role=\"'+t.value+'\"]';case Qr:return'\"'+t.value+'\"';case Fr:return'[data-testname=\"'+t.value+'\"]';default:throw Error(n(365))}}function qh(t,a){var u=[];t=[t,0];for(var i=0;i<t.length;){var o=t[i++],s=t[i++],y=a[s];if(5!==o.tag||!ln(o)){for(;null!=y&&oh(o,y);)s++,y=a[s];if(s===a.length)u.push(o);else for(o=o.child;null!==o;)t.push(o,s),o=o.sibling}}return u}function rh(t,a){if(!en)throw Error(n(363));t=nh(t);t=qh(t,a);a=[];t=Array.from(t);for(var u=0;u<t.length;){var i=t[u++];if(5===i.tag)ln(i)||a.push(i.stateNode);else for(i=i.child;null!==i;)t.push(i),i=i.sibling}return a}var Hr=Math.ceil,Wr=x.ReactCurrentDispatcher,Br=x.ReactCurrentOwner,Or=x.ReactCurrentBatchConfig,Ar=0,qr=null,jr=null,$r=0,Vr=0,Zr=ic(0),Yr=0,Jr=null,Kr=0,Gr=0,Xr=0,el=null,nl=null,tl=0,rl=Infinity,ll=null;function Bh(){rl=vt()+500}var al=!1,ul=null,il=null,ol=!1,sl=null,cl=0,fl=0,dl=null,hl=-1,gl=0;function O(){return 0!==(Ar&6)?vt():-1!==hl?hl:hl=vt()}function tf(t){if(0===(t.mode&1))return 1;if(0!==(Ar&2)&&0!==$r)return $r&-$r;if(null!==Ot.transition)return 0===gl&&(gl=Dc()),gl;t=dt;return 0!==t?t:Ae()}function af(t,a,u,i){if(50<fl)throw fl=0,dl=null,Error(n(185));Fc(t,u,i);0!==(Ar&2)&&t===qr||(t===qr&&(0===(Ar&2)&&(Gr|=u),4===Yr&&Jh(t,$r)),Kh(t,i),1===u&&0===Ar&&0===(a.mode&1)&&(Bh(),Pt&&ad()))}function Kh(t,a){var u=t.callbackNode;Bc(t,a);var i=zc(t,t===qr?$r:0);if(0===i)null!==u&&gt(u),t.callbackNode=null,t.callbackPriority=0;else if(a=i&-i,t.callbackPriority!==a){null!=u&&gt(u);if(1===a)0===t.tag?$c(Lh.bind(null,t)):Zc(Lh.bind(null,t)),Je?Ke((function(){0===(Ar&6)&&ad()})):ht(yt,ad),u=null;else{switch(Ic(i)){case 1:u=yt;break;case 4:u=bt;break;case 16:u=St;break;case 536870912:u=kt;break;default:u=St}u=Mh(u,Nh.bind(null,t))}t.callbackPriority=a;t.callbackNode=u}}function Nh(t,a){hl=-1;gl=0;if(0!==(Ar&6))throw Error(n(327));var u=t.callbackNode;if(Oh()&&t.callbackNode!==u)return null;var i=zc(t,t===qr?$r:0);if(0===i)return null;if(0!==(i&30)||0!==(i&t.expiredLanes)||a)a=Ph(t,i);else{a=i;var o=Ar;Ar|=2;var s=Qh();qr===t&&$r===a||(ll=null,Bh(),Rh(t,a));do{try{Sh();break}catch(a){Th(t,a)}}while(1);Ud();Wr.current=s;Ar=o;null!==jr?a=0:(qr=null,$r=0,a=Yr)}if(0!==a){2===a&&(o=Cc(t),0!==o&&(i=o,a=Uh(t,o)));if(1===a)throw u=Jr,Rh(t,0),Jh(t,i),Kh(t,vt()),u;if(6===a)Jh(t,i);else{o=t.current.alternate;if(0===(i&30)&&!Vh(o)&&(a=Ph(t,i),2===a&&(s=Cc(t),0!==s&&(i=s,a=Uh(t,s))),1===a))throw u=Jr,Rh(t,0),Jh(t,i),Kh(t,vt()),u;t.finishedWork=o;t.finishedLanes=i;switch(a){case 0:case 1:throw Error(n(345));case 2:Wh(t,nl,ll);break;case 3:Jh(t,i);if((i&130023424)===i&&(a=tl+500-vt(),10<a)){if(0!==zc(t,0))break;o=t.suspendedLanes;if((o&i)!==i){O();t.pingedLanes|=t.suspendedLanes&o;break}t.timeoutHandle=ze(Wh.bind(null,t,nl,ll),a);break}Wh(t,nl,ll);break;case 4:Jh(t,i);if((i&4194240)===i)break;a=t.eventTimes;for(o=-1;0<i;){var y=31-it(i);s=1<<y;y=a[y];y>o&&(o=y);i&=~s}i=o;i=vt()-i;i=(120>i?120:480>i?480:1080>i?1080:1920>i?1920:3e3>i?3e3:4320>i?4320:1960*Hr(i/1960))-i;if(10<i){t.timeoutHandle=ze(Wh.bind(null,t,nl,ll),i);break}Wh(t,nl,ll);break;case 5:Wh(t,nl,ll);break;default:throw Error(n(329))}}}Kh(t,vt());return t.callbackNode===u?Nh.bind(null,t):null}function Uh(t,a){var u=el;t.current.memoizedState.isDehydrated&&(Rh(t,a).flags|=256);t=Ph(t,a);2!==t&&(a=nl,nl=u,null!==a&&Cg(a));return t}function Cg(t){null===nl?nl=t:nl.push.apply(nl,t)}function Vh(t){for(var a=t;;){if(a.flags&16384){var u=a.updateQueue;if(null!==u&&(u=u.stores,null!==u))for(var i=0;i<u.length;i++){var o=u[i],s=o.getSnapshot;o=o.value;try{if(!zt(s(),o))return!1}catch(t){return!1}}}u=a.child;if(a.subtreeFlags&16384&&null!==u)u.return=a,a=u;else{if(a===t)break;for(;null===a.sibling;){if(null===a.return||a.return===t)return!0;a=a.return}a.sibling.return=a.return;a=a.sibling}}return!0}function Jh(t,a){a&=~Xr;a&=~Gr;t.suspendedLanes|=a;t.pingedLanes&=~a;for(t=t.expirationTimes;0<a;){var u=31-it(a),i=1<<u;t[u]=-1;a&=~i}}function Lh(t){if(0!==(Ar&6))throw Error(n(327));Oh();var a=zc(t,0);if(0===(a&1))return Kh(t,vt()),null;var u=Ph(t,a);if(0!==t.tag&&2===u){var i=Cc(t);0!==i&&(a=i,u=Uh(t,i))}if(1===u)throw u=Jr,Rh(t,0),Jh(t,a),Kh(t,vt()),u;if(6===u)throw Error(n(345));t.finishedWork=t.current.alternate;t.finishedLanes=a;Wh(t,nl,ll);Kh(t,vt());return null}function Xh(t){null!==sl&&0===sl.tag&&0===(Ar&6)&&Oh();var a=Ar;Ar|=1;var u=Or.transition,i=dt;try{if(Or.transition=null,dt=1,t)return t()}finally{dt=i,Or.transition=u,Ar=a,0===(Ar&6)&&ad()}}function Eg(){Vr=Zr.current;q(Zr)}function Rh(t,a){t.finishedWork=null;t.finishedLanes=0;var u=t.timeoutHandle;u!==Ce&&(t.timeoutHandle=Ce,Ee(u));if(null!==jr)for(u=jr.return;null!==u;){var i=u;nd(i);switch(i.tag){case 1:i=i.type.childContextTypes;null!==i&&void 0!==i&&nc();break;case 3:te();q(at);q(lt);ye();break;case 5:ve(i);break;case 4:te();break;case 13:q(nr);break;case 19:q(nr);break;case 10:Wd(i.type._context);break;case 22:case 23:Eg()}u=u.return}qr=t;jr=t=Jd(t.current,null);$r=Vr=a;Yr=0;Jr=null;Xr=Gr=Kr=0;nl=el=null;if(null!==Yt){for(a=0;a<Yt.length;a++)if(u=Yt[a],i=u.interleaved,null!==i){u.interleaved=null;var o=i.next,s=u.pending;if(null!==s){var y=s.next;s.next=o;i.next=y}u.pending=i}Yt=null}return t}function Th(t,a){do{var u=jr;try{Ud();rr.current=hr;if(sr){for(var i=ur.memoizedState;null!==i;){var o=i.queue;null!==o&&(o.pending=null);i=i.next}sr=!1}ar=0;or=ir=ur=null;cr=!1;fr=0;Br.current=null;if(null===u||null===u.return){Yr=1;Jr=a;jr=null;break}e:{var s=t,y=u.return,S=u,x=a;a=$r;S.flags|=32768;if(null!==x&&\"object\"===typeof x&&\"function\"===typeof x.then){var z=x,N=S,E=N.tag;if(0===(N.mode&1)&&(0===E||11===E||15===E)){var C=N.alternate;C?(N.updateQueue=C.updateQueue,N.memoizedState=C.memoizedState,N.lanes=C.lanes):(N.updateQueue=null,N.memoizedState=null)}var I=Pf(y);if(null!==I){I.flags&=-257;Qf(I,y,S,s,a);I.mode&1&&Nf(s,z,a);a=I;x=z;var _=a.updateQueue;if(null===_){var L=new Set;L.add(x);a.updateQueue=L}else _.add(x);break e}if(0===(a&1)){Nf(s,z,a);ng();break e}x=Error(n(426))}else if(Ht&&S.mode&1){var T=Pf(y);if(null!==T){0===(T.flags&65536)&&(T.flags|=256);Qf(T,y,S,s,a);Bd(Ef(x,S));break e}}s=x=Ef(x,S);4!==Yr&&(Yr=2);null===el?el=[s]:el.push(s);s=y;do{switch(s.tag){case 3:s.flags|=65536;a&=-a;s.lanes|=a;var R=If(s,x,a);je(s,R);break e;case 1:S=x;var F=s.type,D=s.stateNode;if(0===(s.flags&128)&&(\"function\"===typeof F.getDerivedStateFromError||null!==D&&\"function\"===typeof D.componentDidCatch&&(null===il||!il.has(D)))){s.flags|=65536;a&=-a;s.lanes|=a;var H=Lf(s,S,a);je(s,H);break e}}s=s.return}while(null!==s)}Yh(u)}catch(t){a=t;jr===u&&null!==u&&(jr=u=u.return);continue}break}while(1)}function Qh(){var t=Wr.current;Wr.current=hr;return null===t?hr:t}function ng(){0!==Yr&&3!==Yr&&2!==Yr||(Yr=4);null===qr||0===(Kr&268435455)&&0===(Gr&268435455)||Jh(qr,$r)}function Ph(t,a){var u=Ar;Ar|=2;var i=Qh();qr===t&&$r===a||(ll=null,Rh(t,a));do{try{Zh();break}catch(a){Th(t,a)}}while(1);Ud();Ar=u;Wr.current=i;if(null!==jr)throw Error(n(261));qr=null;$r=0;return Yr}function Zh(){for(;null!==jr;)$h(jr)}function Sh(){for(;null!==jr&&!pt();)$h(jr)}function $h(t){var a=pl(t.alternate,t,Vr);t.memoizedProps=t.pendingProps;null===a?Yh(t):jr=a;Br.current=null}function Yh(t){var a=t;do{var u=a.alternate;t=a.return;if(0===(a.flags&32768)){if(u=Bg(u,a,Vr),null!==u){jr=u;return}}else{u=Fg(u,a);if(null!==u){u.flags&=32767;jr=u;return}if(null===t){Yr=6;jr=null;return}t.flags|=32768,t.subtreeFlags=0,t.deletions=null}a=a.sibling;if(null!==a){jr=a;return}jr=a=t}while(null!==a);0===Yr&&(Yr=5)}function Wh(t,a,u){var i=dt,o=Or.transition;try{Or.transition=null,dt=1,bi(t,a,u,i)}finally{Or.transition=o,dt=i}return null}function bi(t,a,u,i){do{Oh()}while(null!==sl);if(0!==(Ar&6))throw Error(n(327));u=t.finishedWork;var o=t.finishedLanes;if(null===u)return null;t.finishedWork=null;t.finishedLanes=0;if(u===t.current)throw Error(n(177));t.callbackNode=null;t.callbackPriority=0;var s=u.lanes|u.childLanes;Gc(t,s);t===qr&&(jr=qr=null,$r=0);0===(u.subtreeFlags&2064)&&0===(u.flags&2064)||ol||(ol=!0,Mh(St,(function(){Oh();return null})));s=0!==(u.flags&15990);if(0!==(u.subtreeFlags&15990)||s){s=Or.transition;Or.transition=null;var y=dt;dt=1;var S=Ar;Ar|=4;Br.current=null;Lg(t,u);$g(u,t);X(t.containerInfo);t.current=u;dh(u,t,o);mt();Ar=S;dt=y;Or.transition=s}else t.current=u;ol&&(ol=!1,sl=t,cl=o);s=t.pendingLanes;0===s&&(il=null);Tc(u.stateNode,i);Kh(t,vt());if(null!==a)for(i=t.onRecoverableError,u=0;u<a.length;u++)o=a[u],i(o.value,{componentStack:o.stack,digest:o.digest});if(al)throw al=!1,t=ul,ul=null,t;0!==(cl&1)&&0!==t.tag&&Oh();s=t.pendingLanes;0!==(s&1)?t===dl?fl++:(fl=0,dl=t):fl=0;ad();return null}function Oh(){if(null!==sl){var t=Ic(cl),a=Or.transition,u=dt;try{Or.transition=null;dt=16>t?16:t;if(null===sl)var i=!1;else{t=sl;sl=null;cl=0;if(0!==(Ar&6))throw Error(n(331));var o=Ar;Ar|=4;for(Ir=t.current;null!==Ir;){var s=Ir,y=s.child;if(0!==(Ir.flags&16)){var S=s.deletions;if(null!==S){for(var x=0;x<S.length;x++){var z=S[x];for(Ir=z;null!==Ir;){var N=Ir;switch(N.tag){case 0:case 11:case 15:Mg(8,N,s)}var E=N.child;if(null!==E)E.return=N,Ir=E;else for(;null!==Ir;){N=Ir;var C=N.sibling,I=N.return;Pg(N);if(N===z){Ir=null;break}if(null!==C){C.return=I;Ir=C;break}Ir=I}}}var _=s.alternate;if(null!==_){var L=_.child;if(null!==L){_.child=null;do{var T=L.sibling;L.sibling=null;L=T}while(null!==L)}}Ir=s}}if(0!==(s.subtreeFlags&2064)&&null!==y)y.return=s,Ir=y;else e:for(;null!==Ir;){s=Ir;if(0!==(s.flags&2048))switch(s.tag){case 0:case 11:case 15:Mg(9,s,s.return)}var R=s.sibling;if(null!==R){R.return=s.return;Ir=R;break e}Ir=s.return}}var F=t.current;for(Ir=F;null!==Ir;){y=Ir;var D=y.child;if(0!==(y.subtreeFlags&2064)&&null!==D)D.return=y,Ir=D;else e:for(y=F;null!==Ir;){S=Ir;if(0!==(S.flags&2048))try{switch(S.tag){case 0:case 11:case 15:Ng(9,S)}}catch(t){U(S,S.return,t)}if(S===y){Ir=null;break e}var H=S.sibling;if(null!==H){H.return=S.return;Ir=H;break e}Ir=S.return}}Ar=o;ad();if(wt&&\"function\"===typeof wt.onPostCommitFiberRoot)try{wt.onPostCommitFiberRoot(xt,t)}catch(t){}i=!0}return i}finally{dt=u,Or.transition=a}}return!1}function ci(t,a,u){a=Ef(u,a);a=If(t,a,1);t=he(t,a,1);a=O();null!==t&&(Fc(t,1,a),Kh(t,a))}function U(t,a,u){if(3===t.tag)ci(t,t,u);else for(;null!==a;){if(3===a.tag){ci(a,t,u);break}if(1===a.tag){var i=a.stateNode;if(\"function\"===typeof a.type.getDerivedStateFromError||\"function\"===typeof i.componentDidCatch&&(null===il||!il.has(i))){t=Ef(u,t);t=Lf(a,t,1);a=he(a,t,1);t=O();null!==a&&(Fc(a,1,t),Kh(a,t));break}}a=a.return}}function Of(t,a,u){var i=t.pingCache;null!==i&&i.delete(a);a=O();t.pingedLanes|=t.suspendedLanes&u;qr===t&&($r&u)===u&&(4===Yr||3===Yr&&($r&130023424)===$r&&500>vt()-tl?Rh(t,0):Xr|=u);Kh(t,a)}function di(t,a){0===a&&(0===(t.mode&1)?a=1:(a=ft,ft<<=1,0===(ft&130023424)&&(ft=4194304)));var u=O();t=ce(t,a);null!==t&&(Fc(t,a,u),Kh(t,u))}function og(t){var a=t.memoizedState,u=0;null!==a&&(u=a.retryLane);di(t,u)}function Yg(t,a){var u=0;switch(t.tag){case 13:var i=t.stateNode;var o=t.memoizedState;null!==o&&(u=o.retryLane);break;case 19:i=t.stateNode;break;default:throw Error(n(314))}null!==i&&i.delete(a);di(t,u)}var pl;pl=function(t,a,u){if(null!==t)if(t.memoizedProps!==a.pendingProps||at.current)Sr=!0;else{if(0===(t.lanes&u)&&0===(a.flags&128))return Sr=!1,sg(t,a,u);Sr=0!==(t.flags&131072)}else Sr=!1,Ht&&0!==(a.flags&1048576)&&ld(a,Ut,a.index);a.lanes=0;switch(a.tag){case 2:var i=a.type;cg(t,a);t=a.pendingProps;var o=mc(a,lt.current);Yd(a,u);o=He(null,a,i,t,o,u);var s=Me();a.flags|=1;\"object\"===typeof o&&null!==o&&\"function\"===typeof o.render&&void 0===o.$$typeof?(a.tag=1,a.memoizedState=null,a.updateQueue=null,A(i)?(s=!0,qc(a)):s=!1,a.memoizedState=null!==o.state&&void 0!==o.state?o.state:null,ee(a),o.updater=vr,a.stateNode=o,o._reactInternals=a,Df(a,i,t,u),a=dg(null,a,i,!0,s,u)):(a.tag=0,Ht&&s&&md(a),P(null,a,o,u),a=a.child);return a;case 16:i=a.elementType;e:{cg(t,a);t=a.pendingProps;o=i._init;i=o(i._payload);a.type=i;o=a.tag=ei(i);t=xf(i,t);switch(o){case 0:a=Xf(null,a,i,t,u);break e;case 1:a=bg(null,a,i,t,u);break e;case 11:a=Sf(null,a,i,t,u);break e;case 14:a=Uf(null,a,i,xf(i.type,t),u);break e}throw Error(n(306,i,\"\"))}return a;case 0:return i=a.type,o=a.pendingProps,o=a.elementType===i?o:xf(i,o),Xf(t,a,i,o,u);case 1:return i=a.type,o=a.pendingProps,o=a.elementType===i?o:xf(i,o),bg(t,a,i,o,u);case 3:e:{eg(a);if(null===t)throw Error(n(387));i=a.pendingProps;s=a.memoizedState;o=s.element;fe(t,a);ke(a,i,null,u);var y=a.memoizedState;i=y.element;if(Fe&&s.isDehydrated){if(s={element:i,isDehydrated:!1,cache:y.cache,pendingSuspenseBoundaries:y.pendingSuspenseBoundaries,transitions:y.transitions},a.updateQueue.baseState=s,a.memoizedState=s,a.flags&256){o=Ef(Error(n(423)),a);a=fg(t,a,i,u,o);break e}if(i!==o){o=Ef(Error(n(424)),a);a=fg(t,a,i,u,o);break e}for(Fe&&(Dt=Wn(a.stateNode.containerInfo),Qt=a,Ht=!0,Bt=null,Wt=!1),u=qt(a,null,i,u),a.child=u;u;)u.flags=u.flags&-3|4096,u=u.sibling}else{Ad();if(i===o){a=Tf(t,a,u);break e}P(t,a,i,u)}a=a.child}return a;case 5:return ue(a),null===t&&wd(a),i=a.type,o=a.pendingProps,s=null!==t?t.memoizedProps:null,y=o.children,pe(i,o)?y=null:null!==s&&pe(i,s)&&(a.flags|=32),ag(t,a),P(t,a,y,u),a.child;case 6:return null===t&&wd(a),null;case 13:return ig(t,a,u);case 4:return se(a,a.stateNode.containerInfo),i=a.pendingProps,null===t?a.child=At(a,null,i,u):P(t,a,i,u),a.child;case 11:return i=a.type,o=a.pendingProps,o=a.elementType===i?o:xf(i,o),Sf(t,a,i,o,u);case 7:return P(t,a,a.pendingProps,u),a.child;case 8:return P(t,a,a.pendingProps.children,u),a.child;case 12:return P(t,a,a.pendingProps.children,u),a.child;case 10:e:{i=a.type._context;o=a.pendingProps;s=a.memoizedProps;y=o.value;Vd(a,i,y);if(null!==s)if(zt(s.value,y)){if(s.children===o.children&&!at.current){a=Tf(t,a,u);break e}}else for(s=a.child,null!==s&&(s.return=a);null!==s;){var S=s.dependencies;if(null!==S){y=s.child;for(var x=S.firstContext;null!==x;){if(x.context===i){if(1===s.tag){x=ge(-1,u&-u);x.tag=2;var z=s.updateQueue;if(null!==z){z=z.shared;var N=z.pending;null===N?x.next=x:(x.next=N.next,N.next=x);z.pending=x}}s.lanes|=u;x=s.alternate;null!==x&&(x.lanes|=u);Xd(s.return,u,a);S.lanes|=u;break}x=x.next}}else if(10===s.tag)y=s.type===a.type?null:s.child;else if(18===s.tag){y=s.return;if(null===y)throw Error(n(341));y.lanes|=u;S=y.alternate;null!==S&&(S.lanes|=u);Xd(y,u,a);y=s.sibling}else y=s.child;if(null!==y)y.return=s;else for(y=s;null!==y;){if(y===a){y=null;break}s=y.sibling;if(null!==s){s.return=y.return;y=s;break}y=y.return}s=y}P(t,a,o.children,u);a=a.child}return a;case 9:return o=a.type,i=a.pendingProps.children,Yd(a,u),o=Zd(o),i=i(o),a.flags|=1,P(t,a,i,u),a.child;case 14:return i=a.type,o=xf(i,a.pendingProps),o=xf(i.type,o),Uf(t,a,i,o,u);case 15:return Wf(t,a,a.type,a.pendingProps,u);case 17:return i=a.type,o=a.pendingProps,o=a.elementType===i?o:xf(i,o),cg(t,a),a.tag=1,A(i)?(t=!0,qc(a)):t=!1,Yd(a,u),Bf(a,i,o),Df(a,i,o,u),dg(null,a,i,!0,t,u);case 19:return rg(t,a,u);case 22:return Yf(t,a,u)}throw Error(n(156,a.tag))};function Mh(t,a){return ht(t,a)}function fi(t,a,u,i){(this||o).tag=t;(this||o).key=u;(this||o).sibling=(this||o).child=(this||o).return=(this||o).stateNode=(this||o).type=(this||o).elementType=null;(this||o).index=0;(this||o).ref=null;(this||o).pendingProps=a;(this||o).dependencies=(this||o).memoizedState=(this||o).updateQueue=(this||o).memoizedProps=null;(this||o).mode=i;(this||o).subtreeFlags=(this||o).flags=0;(this||o).deletions=null;(this||o).childLanes=(this||o).lanes=0;(this||o).alternate=null}function td(t,a,u,i){return new fi(t,a,u,i)}function Vf(t){t=t.prototype;return!(!t||!t.isReactComponent)}function ei(t){if(\"function\"===typeof t)return Vf(t)?1:0;if(void 0!==t&&null!==t){t=t.$$typeof;if(t===T)return 11;if(t===D)return 14}return 2}function Jd(t,a){var u=t.alternate;null===u?(u=td(t.tag,a,t.key,t.mode),u.elementType=t.elementType,u.type=t.type,u.stateNode=t.stateNode,u.alternate=t,t.alternate=u):(u.pendingProps=a,u.type=t.type,u.flags=0,u.subtreeFlags=0,u.deletions=null);u.flags=t.flags&14680064;u.childLanes=t.childLanes;u.lanes=t.lanes;u.child=t.child;u.memoizedProps=t.memoizedProps;u.memoizedState=t.memoizedState;u.updateQueue=t.updateQueue;a=t.dependencies;u.dependencies=null===a?null:{lanes:a.lanes,firstContext:a.firstContext};u.sibling=t.sibling;u.index=t.index;u.ref=t.ref;return u}function Ld(t,a,u,i,o,s){var y=2;i=t;if(\"function\"===typeof t)Vf(t)&&(y=1);else if(\"string\"===typeof t)y=5;else e:switch(t){case E:return Nd(u.children,o,s,a);case C:y=8;o|=8;break;case I:return t=td(12,u,a,o|2),t.elementType=I,t.lanes=s,t;case R:return t=td(13,u,a,o),t.elementType=R,t.lanes=s,t;case F:return t=td(19,u,a,o),t.elementType=F,t.lanes=s,t;case W:return jg(u,o,s,a);default:if(\"object\"===typeof t&&null!==t)switch(t.$$typeof){case _:y=10;break e;case L:y=9;break e;case T:y=11;break e;case D:y=14;break e;case H:y=16;i=null;break e}throw Error(n(130,null==t?t:typeof t,\"\"))}a=td(y,u,a,o);a.elementType=t;a.type=i;a.lanes=s;return a}function Nd(t,a,u,i){t=td(7,t,i,a);t.lanes=u;return t}function jg(t,a,u,i){t=td(22,t,i,a);t.elementType=W;t.lanes=u;t.stateNode={isHidden:!1};return t}function Kd(t,a,u){t=td(6,t,null,a);t.lanes=u;return t}function Md(t,a,u){a=td(4,null!==t.children?t.children:[],t.key,a);a.lanes=u;a.stateNode={containerInfo:t.containerInfo,pendingChildren:null,implementation:t.implementation};return a}function gi(t,a,u,i,s){(this||o).tag=a;(this||o).containerInfo=t;(this||o).finishedWork=(this||o).pingCache=(this||o).current=(this||o).pendingChildren=null;(this||o).timeoutHandle=Ce;(this||o).callbackNode=(this||o).pendingContext=(this||o).context=null;(this||o).callbackPriority=0;(this||o).eventTimes=Ec(0);(this||o).expirationTimes=Ec(-1);(this||o).entangledLanes=(this||o).finishedLanes=(this||o).mutableReadLanes=(this||o).expiredLanes=(this||o).pingedLanes=(this||o).suspendedLanes=(this||o).pendingLanes=0;(this||o).entanglements=Ec(0);(this||o).identifierPrefix=i;(this||o).onRecoverableError=s;Fe&&((this||o).mutableSourceEagerHydrationData=null)}function hi(t,a,u,i,o,s,y,S,x){t=new gi(t,a,u,S,x);1===a?(a=1,!0===s&&(a|=8)):a=0;s=td(3,null,null,a);t.current=s;s.stateNode=t;s.memoizedState={element:i,isDehydrated:u,cache:null,transitions:null,pendingSuspenseBoundaries:null};ee(s);return t}function ii(t){if(!t)return rt;t=t._reactInternals;e:{if(wa(t)!==t||1!==t.tag)throw Error(n(170));var a=t;do{switch(a.tag){case 3:a=a.stateNode.context;break e;case 1:if(A(a.type)){a=a.stateNode.__reactInternalMemoizedMergedChildContext;break e}}a=a.return}while(null!==a);throw Error(n(171))}if(1===t.tag){var u=t.type;if(A(u))return pc(t,u,a)}return a}function ji(t){var a=t._reactInternals;if(void 0===a){if(\"function\"===typeof t.render)throw Error(n(188));t=Object.keys(t).join(\",\");throw Error(n(268,t))}t=Aa(a);return null===t?null:t.stateNode}function ki(t,a){t=t.memoizedState;if(null!==t&&null!==t.dehydrated){var u=t.retryLane;t.retryLane=0!==u&&u<a?u:a}}function li(t,a){ki(t,a);(t=t.alternate)&&ki(t,a)}function mi(t){t=Aa(t);return null===t?null:t.stateNode}function ni(){return null}a.attemptContinuousHydration=function(t){if(13===t.tag){var a=ce(t,134217728);if(null!==a){var u=O();af(a,t,134217728,u)}li(t,134217728)}};a.attemptDiscreteHydration=function(t){if(13===t.tag){var a=ce(t,1);if(null!==a){var u=O();af(a,t,1,u)}li(t,1)}};a.attemptHydrationAtCurrentPriority=function(t){if(13===t.tag){var a=tf(t),u=ce(t,a);if(null!==u){var i=O();af(u,t,a,i)}li(t,a)}};a.attemptSynchronousHydration=function(t){switch(t.tag){case 3:var a=t.stateNode;if(a.current.memoizedState.isDehydrated){var u=yc(a.pendingLanes);0!==u&&(Hc(a,u|1),Kh(a,vt()),0===(Ar&6)&&(Bh(),ad()))}break;case 13:Xh((function(){var a=ce(t,1);if(null!==a){var u=O();af(a,t,1,u)}})),li(t,1)}};a.batchedUpdates=function(t,a){var u=Ar;Ar|=1;try{return t(a)}finally{Ar=u,0===Ar&&(Bh(),Pt&&ad())}};a.createComponentSelector=function(t){return{$$typeof:Tr,value:t}};a.createContainer=function(t,a,u,i,o,s,y){return hi(t,a,!1,null,u,i,o,s,y)};a.createHasPseudoClassSelector=function(t){return{$$typeof:Rr,value:t}};a.createHydrationContainer=function(t,a,u,i,o,s,y,S,x){t=hi(u,i,!0,t,o,s,y,S,x);t.context=ii(null);u=t.current;i=O();o=tf(u);s=ge(i,o);s.callback=void 0!==a&&null!==a?a:null;he(u,s,o);t.current.lanes=o;Fc(t,o,i);Kh(t,i);return t};a.createPortal=function(t,a,u){var i=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:N,key:null==i?null:\"\"+i,children:t,containerInfo:a,implementation:u}};a.createRoleSelector=function(t){return{$$typeof:Mr,value:t}};a.createTestNameSelector=function(t){return{$$typeof:Fr,value:t}};a.createTextSelector=function(t){return{$$typeof:Qr,value:t}};a.deferredUpdates=function(t){var a=dt,u=Or.transition;try{return Or.transition=null,dt=16,t()}finally{dt=a,Or.transition=u}};a.discreteUpdates=function(t,a,u,i,o){var s=dt,y=Or.transition;try{return Or.transition=null,dt=1,t(a,u,i,o)}finally{dt=s,Or.transition=y,0===Ar&&Bh()}};a.findAllNodes=rh;a.findBoundingRects=function(t,a){if(!en)throw Error(n(363));a=rh(t,a);t=[];for(var u=0;u<a.length;u++)t.push(tn(a[u]));for(a=t.length-1;0<a;a--){u=t[a];for(var i=u.x,o=i+u.width,s=u.y,y=s+u.height,S=a-1;0<=S;S--)if(a!==S){var x=t[S],z=x.x,N=z+x.width,E=x.y,C=E+x.height;if(i>=z&&s>=E&&o<=N&&y<=C){t.splice(a,1);break}if(!(i!==z||u.width!==x.width||C<s||E>y)){E>s&&(x.height+=E-s,x.y=s);C<y&&(x.height=y-E);t.splice(a,1);break}if(!(s!==E||u.height!==x.height||N<i||z>o)){z>i&&(x.width+=z-i,x.x=i);N<o&&(x.width=o-z);t.splice(a,1);break}}}return t};a.findHostInstance=ji;a.findHostInstanceWithNoPortals=function(t){t=za(t);t=null!==t?Ca(t):null;return null===t?null:t.stateNode};a.findHostInstanceWithWarning=function(t){return ji(t)};a.flushControlled=function(t){var a=Ar;Ar|=1;var u=Or.transition,i=dt;try{Or.transition=null,dt=1,t()}finally{dt=i,Or.transition=u,Ar=a,0===Ar&&(Bh(),ad())}};a.flushPassiveEffects=Oh;a.flushSync=Xh;a.focusWithin=function(t,a){if(!en)throw Error(n(363));t=nh(t);a=qh(t,a);a=Array.from(a);for(t=0;t<a.length;){var u=a[t++];if(!ln(u)){if(5===u.tag&&un(u.stateNode))return!0;for(u=u.child;null!==u;)a.push(u),u=u.sibling}}return!1};a.getCurrentUpdatePriority=function(){return dt};a.getFindAllNodesFailureDescription=function(t,a){if(!en)throw Error(n(363));var u=0,i=[];t=[nh(t),0];for(var o=0;o<t.length;){var s=t[o++],y=t[o++],S=a[y];if((5!==s.tag||!ln(s))&&(oh(s,S)&&(i.push(ph(S)),y++,y>u&&(u=y)),y<a.length))for(s=s.child;null!==s;)t.push(s,y),s=s.sibling}if(u<a.length){for(t=[];u<a.length;u++)t.push(ph(a[u]));return\"findAllNodes was able to match part of the selector:\\n  \"+i.join(\" > \")+\"\\n\\nNo matching component was found for:\\n  \"+t.join(\" > \")}return null};a.getPublicRootInstance=function(t){t=t.current;if(!t.child)return null;switch(t.child.tag){case 5:return Z(t.child.stateNode);default:return t.child.stateNode}};a.injectIntoDevTools=function(t){t={bundleType:t.bundleType,version:t.version,rendererPackageName:t.rendererPackageName,rendererConfig:t.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:x.ReactCurrentDispatcher,findHostInstanceByFiber:mi,findFiberByHostInstance:t.findFiberByHostInstance||ni,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:\"18.3.1\"};if(\"undefined\"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__)t=!1;else{var a=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(a.isDisabled||!a.supportsFiber)t=!0;else{try{xt=a.inject(t),wt=a}catch(t){}t=!!a.checkDCE}}return t};a.isAlreadyRendering=function(){return!1};a.observeVisibleRects=function(t,a,u,i){if(!en)throw Error(n(363));t=rh(t,a);var o=on(t,u,i).disconnect;return{disconnect:function(){o()}}};a.registerMutableSourceForHydration=function(t,a){var u=a._getVersion;u=u(a._source);null==t.mutableSourceEagerHydrationData?t.mutableSourceEagerHydrationData=[a,u]:t.mutableSourceEagerHydrationData.push(a,u)};a.runWithPriority=function(t,a){var u=dt;try{return dt=t,a()}finally{dt=u}};a.shouldError=function(){return null};a.shouldSuspend=function(){return!1};a.updateContainer=function(t,a,u,i){var o=a.current,s=O(),y=tf(o);u=ii(u);null===a.context?a.context=u:a.pendingContext=u;a=ge(s,y);a.payload={element:t};i=void 0===i?null:i;null!==i&&(a.callback=i);t=he(o,a,y);null!==t&&(af(t,o,y,s),ie(t,o,y));return y};return a};var y=s;const S=s.attemptContinuousHydration,x=s.attemptDiscreteHydration,z=s.attemptHydrationAtCurrentPriority,N=s.attemptSynchronousHydration,E=s.batchedUpdates,C=s.createComponentSelector,I=s.createContainer,_=s.createHasPseudoClassSelector,L=s.createHydrationContainer,T=s.createPortal,R=s.createRoleSelector,F=s.createTestNameSelector,D=s.createTextSelector,H=s.deferredUpdates,W=s.discreteUpdates,j=s.findAllNodes,$=s.findBoundingRects,V=s.findHostInstance,Z=s.findHostInstanceWithNoPortals,J=s.findHostInstanceWithWarning,K=s.flushControlled,G=s.flushPassiveEffects,X=s.flushSync,ne=s.focusWithin,le=s.getCurrentUpdatePriority,oe=s.getFindAllNodesFailureDescription,de=s.getPublicRootInstance,pe=s.injectIntoDevTools,xe=s.isAlreadyRendering,ze=s.observeVisibleRects,Ee=s.registerMutableSourceForHydration,Ce=s.runWithPriority,Ie=s.shouldError,_e=s.shouldSuspend,Le=s.updateContainer;export{S as attemptContinuousHydration,x as attemptDiscreteHydration,z as attemptHydrationAtCurrentPriority,N as attemptSynchronousHydration,E as batchedUpdates,C as createComponentSelector,I as createContainer,_ as createHasPseudoClassSelector,L as createHydrationContainer,T as createPortal,R as createRoleSelector,F as createTestNameSelector,D as createTextSelector,y as default,H as deferredUpdates,W as discreteUpdates,j as findAllNodes,$ as findBoundingRects,V as findHostInstance,Z as findHostInstanceWithNoPortals,J as findHostInstanceWithWarning,K as flushControlled,G as flushPassiveEffects,X as flushSync,ne as focusWithin,le as getCurrentUpdatePriority,oe as getFindAllNodesFailureDescription,de as getPublicRootInstance,pe as injectIntoDevTools,xe as isAlreadyRendering,ze as observeVisibleRects,Ee as registerMutableSourceForHydration,Ce as runWithPriority,Ie as shouldError,_e as shouldSuspend,Le as updateContainer};\n//# sourceMappingURL=react-reconciler.production.min.js.map\n","import e from\"./cjs/react-reconciler.production.min.js\";import\"react\";import\"scheduler\";const t=e.attemptContinuousHydration,r=e.attemptDiscreteHydration,o=e.attemptHydrationAtCurrentPriority,n=e.attemptSynchronousHydration,i=e.batchedUpdates,a=e.createComponentSelector,s=e.createContainer,c=e.createHasPseudoClassSelector,d=e.createHydrationContainer,l=e.createPortal,u=e.createRoleSelector,p=e.createTestNameSelector,f=e.createTextSelector,h=e.deferredUpdates,y=e.discreteUpdates,m=e.findAllNodes,H=e.findBoundingRects,C=e.findHostInstance,S=e.findHostInstanceWithNoPortals,P=e.findHostInstanceWithWarning,g=e.flushControlled,b=e.flushPassiveEffects,I=e.flushSync,R=e.focusWithin,W=e.getCurrentUpdatePriority,A=e.getFindAllNodesFailureDescription,N=e.getPublicRootInstance,U=e.injectIntoDevTools,j=e.isAlreadyRendering,v=e.observeVisibleRects,D=e.registerMutableSourceForHydration,F=e.runWithPriority,T=e.shouldError,x=e.shouldSuspend,E=e.updateContainer;export{t as attemptContinuousHydration,r as attemptDiscreteHydration,o as attemptHydrationAtCurrentPriority,n as attemptSynchronousHydration,i as batchedUpdates,a as createComponentSelector,s as createContainer,c as createHasPseudoClassSelector,d as createHydrationContainer,l as createPortal,u as createRoleSelector,p as createTestNameSelector,f as createTextSelector,e as default,h as deferredUpdates,y as discreteUpdates,m as findAllNodes,H as findBoundingRects,C as findHostInstance,S as findHostInstanceWithNoPortals,P as findHostInstanceWithWarning,g as flushControlled,b as flushPassiveEffects,I as flushSync,R as focusWithin,W as getCurrentUpdatePriority,A as getFindAllNodesFailureDescription,N as getPublicRootInstance,U as injectIntoDevTools,j as isAlreadyRendering,v as observeVisibleRects,D as registerMutableSourceForHydration,F as runWithPriority,T as shouldError,x as shouldSuspend,E as updateContainer};\n//# sourceMappingURL=index.js.map\n","import {\n  ACESFilmicToneMapping,\n  BasicShadowMap,\n  Camera,\n  Clock,\n  Layers,\n  NoToneMapping,\n  OrthographicCamera,\n  PCFShadowMap,\n  PCFSoftShadowMap,\n  PerspectiveCamera,\n  RGBAFormat,\n  Raycaster,\n  Scene,\n  UnsignedByteType,\n  VSMShadowMap,\n  Vector2,\n  Vector3,\n  WebGLRenderer,\n  three_module_exports\n} from \"./chunk-Z4XR7UL5.mjs\";\nimport {\n  __export,\n  __objRest,\n  __spreadProps,\n  __spreadValues\n} from \"./chunk-5BEQP2BQ.mjs\";\n\n// ../../node_modules/.pnpm/@react-three+fiber@8.17.14_@types+react@18.3.18_react-dom@18.3.1_react@18.3.1__react@18.3.1_three@0.169.0/node_modules/@react-three/fiber/dist/events-776716bd.esm.js\nimport * as React from \"react\";\nimport { DefaultEventPriority, ContinuousEventPriority, DiscreteEventPriority, ConcurrentRoot } from \"react-reconciler/constants\";\n\n// ../../node_modules/.pnpm/zustand@3.7.2_react@18.3.1/node_modules/zustand/esm/index.js\nimport { useReducer, useRef, useDebugValue, useEffect, useLayoutEffect } from \"react\";\nfunction createStore(createState) {\n  let state;\n  const listeners = /* @__PURE__ */ new Set();\n  const setState = (partial, replace) => {\n    const nextState = typeof partial === \"function\" ? partial(state) : partial;\n    if (nextState !== state) {\n      const previousState = state;\n      state = replace ? nextState : Object.assign({}, state, nextState);\n      listeners.forEach((listener) => listener(state, previousState));\n    }\n  };\n  const getState = () => state;\n  const subscribeWithSelector = (listener, selector = getState, equalityFn = Object.is) => {\n    console.warn(\"[DEPRECATED] Please use `subscribeWithSelector` middleware\");\n    let currentSlice = selector(state);\n    function listenerToAdd() {\n      const nextSlice = selector(state);\n      if (!equalityFn(currentSlice, nextSlice)) {\n        const previousSlice = currentSlice;\n        listener(currentSlice = nextSlice, previousSlice);\n      }\n    }\n    listeners.add(listenerToAdd);\n    return () => listeners.delete(listenerToAdd);\n  };\n  const subscribe = (listener, selector, equalityFn) => {\n    if (selector || equalityFn) {\n      return subscribeWithSelector(listener, selector, equalityFn);\n    }\n    listeners.add(listener);\n    return () => listeners.delete(listener);\n  };\n  const destroy = () => listeners.clear();\n  const api = { setState, getState, subscribe, destroy };\n  state = createState(setState, getState, api);\n  return api;\n}\nvar isSSR = typeof window === \"undefined\" || !window.navigator || /ServerSideRendering|^Deno\\//.test(window.navigator.userAgent);\nvar useIsomorphicLayoutEffect = isSSR ? useEffect : useLayoutEffect;\nfunction create(createState) {\n  const api = typeof createState === \"function\" ? createStore(createState) : createState;\n  const useStore2 = (selector = api.getState, equalityFn = Object.is) => {\n    const [, forceUpdate] = useReducer((c) => c + 1, 0);\n    const state = api.getState();\n    const stateRef = useRef(state);\n    const selectorRef = useRef(selector);\n    const equalityFnRef = useRef(equalityFn);\n    const erroredRef = useRef(false);\n    const currentSliceRef = useRef();\n    if (currentSliceRef.current === void 0) {\n      currentSliceRef.current = selector(state);\n    }\n    let newStateSlice;\n    let hasNewStateSlice = false;\n    if (stateRef.current !== state || selectorRef.current !== selector || equalityFnRef.current !== equalityFn || erroredRef.current) {\n      newStateSlice = selector(state);\n      hasNewStateSlice = !equalityFn(currentSliceRef.current, newStateSlice);\n    }\n    useIsomorphicLayoutEffect(() => {\n      if (hasNewStateSlice) {\n        currentSliceRef.current = newStateSlice;\n      }\n      stateRef.current = state;\n      selectorRef.current = selector;\n      equalityFnRef.current = equalityFn;\n      erroredRef.current = false;\n    });\n    const stateBeforeSubscriptionRef = useRef(state);\n    useIsomorphicLayoutEffect(() => {\n      const listener = () => {\n        try {\n          const nextState = api.getState();\n          const nextStateSlice = selectorRef.current(nextState);\n          if (!equalityFnRef.current(currentSliceRef.current, nextStateSlice)) {\n            stateRef.current = nextState;\n            currentSliceRef.current = nextStateSlice;\n            forceUpdate();\n          }\n        } catch (error2) {\n          erroredRef.current = true;\n          forceUpdate();\n        }\n      };\n      const unsubscribe = api.subscribe(listener);\n      if (api.getState() !== stateBeforeSubscriptionRef.current) {\n        listener();\n      }\n      return unsubscribe;\n    }, []);\n    const sliceToReturn = hasNewStateSlice ? newStateSlice : currentSliceRef.current;\n    useDebugValue(sliceToReturn);\n    return sliceToReturn;\n  };\n  Object.assign(useStore2, api);\n  useStore2[Symbol.iterator] = function() {\n    console.warn(\"[useStore, api] = create() is deprecated and will be removed in v4\");\n    const items = [useStore2, api];\n    return {\n      next() {\n        const done = items.length <= 0;\n        return { value: items.shift(), done };\n      }\n    };\n  };\n  return useStore2;\n}\n\n// ../../node_modules/.pnpm/suspend-react@0.1.3_react@18.3.1/node_modules/suspend-react/index.js\nvar isPromise = (promise) => typeof promise === \"object\" && typeof promise.then === \"function\";\nvar globalCache = [];\nfunction shallowEqualArrays(arrA, arrB, equal = (a, b) => a === b) {\n  if (arrA === arrB) return true;\n  if (!arrA || !arrB) return false;\n  const len = arrA.length;\n  if (arrB.length !== len) return false;\n  for (let i2 = 0; i2 < len; i2++) if (!equal(arrA[i2], arrB[i2])) return false;\n  return true;\n}\nfunction query(fn, keys = null, preload2 = false, config = {}) {\n  if (keys === null) keys = [fn];\n  for (const entry2 of globalCache) {\n    if (shallowEqualArrays(keys, entry2.keys, entry2.equal)) {\n      if (preload2) return void 0;\n      if (Object.prototype.hasOwnProperty.call(entry2, \"error\")) throw entry2.error;\n      if (Object.prototype.hasOwnProperty.call(entry2, \"response\")) {\n        if (config.lifespan && config.lifespan > 0) {\n          if (entry2.timeout) clearTimeout(entry2.timeout);\n          entry2.timeout = setTimeout(entry2.remove, config.lifespan);\n        }\n        return entry2.response;\n      }\n      if (!preload2) throw entry2.promise;\n    }\n  }\n  const entry = {\n    keys,\n    equal: config.equal,\n    remove: () => {\n      const index = globalCache.indexOf(entry);\n      if (index !== -1) globalCache.splice(index, 1);\n    },\n    promise: (\n      // Execute the promise\n      (isPromise(fn) ? fn : fn(...keys)).then((response) => {\n        entry.response = response;\n        if (config.lifespan && config.lifespan > 0) {\n          entry.timeout = setTimeout(entry.remove, config.lifespan);\n        }\n      }).catch((error2) => entry.error = error2)\n    )\n  };\n  globalCache.push(entry);\n  if (!preload2) throw entry.promise;\n  return void 0;\n}\nvar suspend = (fn, keys, config) => query(fn, keys, false, config);\nvar preload = (fn, keys, config) => void query(fn, keys, true, config);\nvar clear = (keys) => {\n  if (keys === void 0 || keys.length === 0) globalCache.splice(0, globalCache.length);\n  else {\n    const entry = globalCache.find((entry2) => shallowEqualArrays(keys, entry2.keys, entry2.equal));\n    if (entry) entry.remove();\n  }\n};\n\n// ../../node_modules/.pnpm/@react-three+fiber@8.17.14_@types+react@18.3.18_react-dom@18.3.1_react@18.3.1__react@18.3.1_three@0.169.0/node_modules/@react-three/fiber/dist/events-776716bd.esm.js\nimport { jsx, Fragment } from \"react/jsx-runtime\";\nimport Reconciler from \"react-reconciler\";\n\n// ../../node_modules/.pnpm/scheduler@0.21.0/node_modules/scheduler/cjs/scheduler.development.js\nvar scheduler_development_exports = {};\n__export(scheduler_development_exports, {\n  default: () => scheduler_development_default,\n  unstable_IdlePriority: () => __export1,\n  unstable_ImmediatePriority: () => __export2,\n  unstable_LowPriority: () => __export3,\n  unstable_NormalPriority: () => __export4,\n  unstable_Profiling: () => __export5,\n  unstable_UserBlockingPriority: () => __export6,\n  unstable_cancelCallback: () => __export7,\n  unstable_continueExecution: () => __export8,\n  unstable_forceFrameRate: () => __export9,\n  unstable_getCurrentPriorityLevel: () => __export10,\n  unstable_getFirstCallbackNode: () => __export11,\n  unstable_next: () => __export12,\n  unstable_now: () => __export0,\n  unstable_pauseExecution: () => __export13,\n  unstable_requestPaint: () => __export14,\n  unstable_runWithPriority: () => __export15,\n  unstable_scheduleCallback: () => __export16,\n  unstable_shouldYield: () => __export17,\n  unstable_wrapCallback: () => __export18\n});\nvar exports = {};\nvar module = {\n  get exports() {\n    return exports;\n  },\n  set exports(value) {\n    exports = value;\n  }\n};\nif (true) {\n  (function() {\n    \"use strict\";\n    if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== \"undefined\" && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart === \"function\") {\n      __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error());\n    }\n    var enableSchedulerDebugging = false;\n    var enableProfiling = false;\n    var frameYieldMs = 5;\n    function push(heap, node) {\n      var index = heap.length;\n      heap.push(node);\n      siftUp(heap, node, index);\n    }\n    function peek(heap) {\n      return heap.length === 0 ? null : heap[0];\n    }\n    function pop(heap) {\n      if (heap.length === 0) {\n        return null;\n      }\n      var first = heap[0];\n      var last = heap.pop();\n      if (last !== first) {\n        heap[0] = last;\n        siftDown(heap, last, 0);\n      }\n      return first;\n    }\n    function siftUp(heap, node, i2) {\n      var index = i2;\n      while (index > 0) {\n        var parentIndex = index - 1 >>> 1;\n        var parent = heap[parentIndex];\n        if (compare(parent, node) > 0) {\n          heap[parentIndex] = node;\n          heap[index] = parent;\n          index = parentIndex;\n        } else {\n          return;\n        }\n      }\n    }\n    function siftDown(heap, node, i2) {\n      var index = i2;\n      var length = heap.length;\n      var halfLength = length >>> 1;\n      while (index < halfLength) {\n        var leftIndex = (index + 1) * 2 - 1;\n        var left = heap[leftIndex];\n        var rightIndex = leftIndex + 1;\n        var right = heap[rightIndex];\n        if (compare(left, node) < 0) {\n          if (rightIndex < length && compare(right, left) < 0) {\n            heap[index] = right;\n            heap[rightIndex] = node;\n            index = rightIndex;\n          } else {\n            heap[index] = left;\n            heap[leftIndex] = node;\n            index = leftIndex;\n          }\n        } else if (rightIndex < length && compare(right, node) < 0) {\n          heap[index] = right;\n          heap[rightIndex] = node;\n          index = rightIndex;\n        } else {\n          return;\n        }\n      }\n    }\n    function compare(a, b) {\n      var diff = a.sortIndex - b.sortIndex;\n      return diff !== 0 ? diff : a.id - b.id;\n    }\n    var ImmediatePriority = 1;\n    var UserBlockingPriority = 2;\n    var NormalPriority = 3;\n    var LowPriority = 4;\n    var IdlePriority = 5;\n    function markTaskErrored(task, ms) {\n    }\n    var hasPerformanceNow = typeof performance === \"object\" && typeof performance.now === \"function\";\n    if (hasPerformanceNow) {\n      var localPerformance = performance;\n      exports.unstable_now = function() {\n        return localPerformance.now();\n      };\n    } else {\n      var localDate = Date;\n      var initialTime = localDate.now();\n      exports.unstable_now = function() {\n        return localDate.now() - initialTime;\n      };\n    }\n    var maxSigned31BitInt = 1073741823;\n    var IMMEDIATE_PRIORITY_TIMEOUT = -1;\n    var USER_BLOCKING_PRIORITY_TIMEOUT = 250;\n    var NORMAL_PRIORITY_TIMEOUT = 5e3;\n    var LOW_PRIORITY_TIMEOUT = 1e4;\n    var IDLE_PRIORITY_TIMEOUT = maxSigned31BitInt;\n    var taskQueue = [];\n    var timerQueue = [];\n    var taskIdCounter = 1;\n    var currentTask = null;\n    var currentPriorityLevel = NormalPriority;\n    var isPerformingWork = false;\n    var isHostCallbackScheduled = false;\n    var isHostTimeoutScheduled = false;\n    var localSetTimeout = typeof setTimeout === \"function\" ? setTimeout : null;\n    var localClearTimeout = typeof clearTimeout === \"function\" ? clearTimeout : null;\n    var localSetImmediate = typeof setImmediate !== \"undefined\" ? setImmediate : null;\n    var isInputPending = typeof navigator !== \"undefined\" && navigator.scheduling !== void 0 && navigator.scheduling.isInputPending !== void 0 ? navigator.scheduling.isInputPending.bind(navigator.scheduling) : null;\n    function advanceTimers(currentTime) {\n      var timer = peek(timerQueue);\n      while (timer !== null) {\n        if (timer.callback === null) {\n          pop(timerQueue);\n        } else if (timer.startTime <= currentTime) {\n          pop(timerQueue);\n          timer.sortIndex = timer.expirationTime;\n          push(taskQueue, timer);\n        } else {\n          return;\n        }\n        timer = peek(timerQueue);\n      }\n    }\n    function handleTimeout(currentTime) {\n      isHostTimeoutScheduled = false;\n      advanceTimers(currentTime);\n      if (!isHostCallbackScheduled) {\n        if (peek(taskQueue) !== null) {\n          isHostCallbackScheduled = true;\n          requestHostCallback(flushWork);\n        } else {\n          var firstTimer = peek(timerQueue);\n          if (firstTimer !== null) {\n            requestHostTimeout(handleTimeout, firstTimer.startTime - currentTime);\n          }\n        }\n      }\n    }\n    function flushWork(hasTimeRemaining, initialTime2) {\n      isHostCallbackScheduled = false;\n      if (isHostTimeoutScheduled) {\n        isHostTimeoutScheduled = false;\n        cancelHostTimeout();\n      }\n      isPerformingWork = true;\n      var previousPriorityLevel = currentPriorityLevel;\n      try {\n        if (enableProfiling) {\n          try {\n            return workLoop(hasTimeRemaining, initialTime2);\n          } catch (error2) {\n            if (currentTask !== null) {\n              var currentTime = exports.unstable_now();\n              markTaskErrored(currentTask, currentTime);\n              currentTask.isQueued = false;\n            }\n            throw error2;\n          }\n        } else {\n          return workLoop(hasTimeRemaining, initialTime2);\n        }\n      } finally {\n        currentTask = null;\n        currentPriorityLevel = previousPriorityLevel;\n        isPerformingWork = false;\n      }\n    }\n    function workLoop(hasTimeRemaining, initialTime2) {\n      var currentTime = initialTime2;\n      advanceTimers(currentTime);\n      currentTask = peek(taskQueue);\n      while (currentTask !== null && !enableSchedulerDebugging) {\n        if (currentTask.expirationTime > currentTime && (!hasTimeRemaining || shouldYieldToHost())) {\n          break;\n        }\n        var callback = currentTask.callback;\n        if (typeof callback === \"function\") {\n          currentTask.callback = null;\n          currentPriorityLevel = currentTask.priorityLevel;\n          var didUserCallbackTimeout = currentTask.expirationTime <= currentTime;\n          var continuationCallback = callback(didUserCallbackTimeout);\n          currentTime = exports.unstable_now();\n          if (typeof continuationCallback === \"function\") {\n            currentTask.callback = continuationCallback;\n          } else {\n            if (currentTask === peek(taskQueue)) {\n              pop(taskQueue);\n            }\n          }\n          advanceTimers(currentTime);\n        } else {\n          pop(taskQueue);\n        }\n        currentTask = peek(taskQueue);\n      }\n      if (currentTask !== null) {\n        return true;\n      } else {\n        var firstTimer = peek(timerQueue);\n        if (firstTimer !== null) {\n          requestHostTimeout(handleTimeout, firstTimer.startTime - currentTime);\n        }\n        return false;\n      }\n    }\n    function unstable_runWithPriority(priorityLevel, eventHandler) {\n      switch (priorityLevel) {\n        case ImmediatePriority:\n        case UserBlockingPriority:\n        case NormalPriority:\n        case LowPriority:\n        case IdlePriority:\n          break;\n        default:\n          priorityLevel = NormalPriority;\n      }\n      var previousPriorityLevel = currentPriorityLevel;\n      currentPriorityLevel = priorityLevel;\n      try {\n        return eventHandler();\n      } finally {\n        currentPriorityLevel = previousPriorityLevel;\n      }\n    }\n    function unstable_next(eventHandler) {\n      var priorityLevel;\n      switch (currentPriorityLevel) {\n        case ImmediatePriority:\n        case UserBlockingPriority:\n        case NormalPriority:\n          priorityLevel = NormalPriority;\n          break;\n        default:\n          priorityLevel = currentPriorityLevel;\n          break;\n      }\n      var previousPriorityLevel = currentPriorityLevel;\n      currentPriorityLevel = priorityLevel;\n      try {\n        return eventHandler();\n      } finally {\n        currentPriorityLevel = previousPriorityLevel;\n      }\n    }\n    function unstable_wrapCallback(callback) {\n      var parentPriorityLevel = currentPriorityLevel;\n      return function() {\n        var previousPriorityLevel = currentPriorityLevel;\n        currentPriorityLevel = parentPriorityLevel;\n        try {\n          return callback.apply(this, arguments);\n        } finally {\n          currentPriorityLevel = previousPriorityLevel;\n        }\n      };\n    }\n    function unstable_scheduleCallback(priorityLevel, callback, options) {\n      var currentTime = exports.unstable_now();\n      var startTime2;\n      if (typeof options === \"object\" && options !== null) {\n        var delay = options.delay;\n        if (typeof delay === \"number\" && delay > 0) {\n          startTime2 = currentTime + delay;\n        } else {\n          startTime2 = currentTime;\n        }\n      } else {\n        startTime2 = currentTime;\n      }\n      var timeout;\n      switch (priorityLevel) {\n        case ImmediatePriority:\n          timeout = IMMEDIATE_PRIORITY_TIMEOUT;\n          break;\n        case UserBlockingPriority:\n          timeout = USER_BLOCKING_PRIORITY_TIMEOUT;\n          break;\n        case IdlePriority:\n          timeout = IDLE_PRIORITY_TIMEOUT;\n          break;\n        case LowPriority:\n          timeout = LOW_PRIORITY_TIMEOUT;\n          break;\n        case NormalPriority:\n        default:\n          timeout = NORMAL_PRIORITY_TIMEOUT;\n          break;\n      }\n      var expirationTime = startTime2 + timeout;\n      var newTask = {\n        id: taskIdCounter++,\n        callback,\n        priorityLevel,\n        startTime: startTime2,\n        expirationTime,\n        sortIndex: -1\n      };\n      if (startTime2 > currentTime) {\n        newTask.sortIndex = startTime2;\n        push(timerQueue, newTask);\n        if (peek(taskQueue) === null && newTask === peek(timerQueue)) {\n          if (isHostTimeoutScheduled) {\n            cancelHostTimeout();\n          } else {\n            isHostTimeoutScheduled = true;\n          }\n          requestHostTimeout(handleTimeout, startTime2 - currentTime);\n        }\n      } else {\n        newTask.sortIndex = expirationTime;\n        push(taskQueue, newTask);\n        if (!isHostCallbackScheduled && !isPerformingWork) {\n          isHostCallbackScheduled = true;\n          requestHostCallback(flushWork);\n        }\n      }\n      return newTask;\n    }\n    function unstable_pauseExecution() {\n    }\n    function unstable_continueExecution() {\n      if (!isHostCallbackScheduled && !isPerformingWork) {\n        isHostCallbackScheduled = true;\n        requestHostCallback(flushWork);\n      }\n    }\n    function unstable_getFirstCallbackNode() {\n      return peek(taskQueue);\n    }\n    function unstable_cancelCallback(task) {\n      task.callback = null;\n    }\n    function unstable_getCurrentPriorityLevel() {\n      return currentPriorityLevel;\n    }\n    var isMessageLoopRunning = false;\n    var scheduledHostCallback = null;\n    var taskTimeoutID = -1;\n    var frameInterval = frameYieldMs;\n    var startTime = -1;\n    function shouldYieldToHost() {\n      var timeElapsed = exports.unstable_now() - startTime;\n      if (timeElapsed < frameInterval) {\n        return false;\n      }\n      return true;\n    }\n    function requestPaint() {\n    }\n    function forceFrameRate(fps) {\n      if (fps < 0 || fps > 125) {\n        console[\"error\"](\"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\");\n        return;\n      }\n      if (fps > 0) {\n        frameInterval = Math.floor(1e3 / fps);\n      } else {\n        frameInterval = frameYieldMs;\n      }\n    }\n    var performWorkUntilDeadline = function() {\n      if (scheduledHostCallback !== null) {\n        var currentTime = exports.unstable_now();\n        startTime = currentTime;\n        var hasTimeRemaining = true;\n        var hasMoreWork = true;\n        try {\n          hasMoreWork = scheduledHostCallback(hasTimeRemaining, currentTime);\n        } finally {\n          if (hasMoreWork) {\n            schedulePerformWorkUntilDeadline();\n          } else {\n            isMessageLoopRunning = false;\n            scheduledHostCallback = null;\n          }\n        }\n      } else {\n        isMessageLoopRunning = false;\n      }\n    };\n    var schedulePerformWorkUntilDeadline;\n    if (typeof localSetImmediate === \"function\") {\n      schedulePerformWorkUntilDeadline = function() {\n        localSetImmediate(performWorkUntilDeadline);\n      };\n    } else if (typeof MessageChannel !== \"undefined\") {\n      var channel = new MessageChannel();\n      var port = channel.port2;\n      channel.port1.onmessage = performWorkUntilDeadline;\n      schedulePerformWorkUntilDeadline = function() {\n        port.postMessage(null);\n      };\n    } else {\n      schedulePerformWorkUntilDeadline = function() {\n        localSetTimeout(performWorkUntilDeadline, 0);\n      };\n    }\n    function requestHostCallback(callback) {\n      scheduledHostCallback = callback;\n      if (!isMessageLoopRunning) {\n        isMessageLoopRunning = true;\n        schedulePerformWorkUntilDeadline();\n      }\n    }\n    function requestHostTimeout(callback, ms) {\n      taskTimeoutID = localSetTimeout(function() {\n        callback(exports.unstable_now());\n      }, ms);\n    }\n    function cancelHostTimeout() {\n      localClearTimeout(taskTimeoutID);\n      taskTimeoutID = -1;\n    }\n    var unstable_requestPaint = requestPaint;\n    var unstable_Profiling = null;\n    exports.unstable_IdlePriority = IdlePriority;\n    exports.unstable_ImmediatePriority = ImmediatePriority;\n    exports.unstable_LowPriority = LowPriority;\n    exports.unstable_NormalPriority = NormalPriority;\n    exports.unstable_Profiling = unstable_Profiling;\n    exports.unstable_UserBlockingPriority = UserBlockingPriority;\n    exports.unstable_cancelCallback = unstable_cancelCallback;\n    exports.unstable_continueExecution = unstable_continueExecution;\n    exports.unstable_forceFrameRate = forceFrameRate;\n    exports.unstable_getCurrentPriorityLevel = unstable_getCurrentPriorityLevel;\n    exports.unstable_getFirstCallbackNode = unstable_getFirstCallbackNode;\n    exports.unstable_next = unstable_next;\n    exports.unstable_pauseExecution = unstable_pauseExecution;\n    exports.unstable_requestPaint = unstable_requestPaint;\n    exports.unstable_runWithPriority = unstable_runWithPriority;\n    exports.unstable_scheduleCallback = unstable_scheduleCallback;\n    exports.unstable_shouldYield = shouldYieldToHost;\n    exports.unstable_wrapCallback = unstable_wrapCallback;\n    if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== \"undefined\" && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop === \"function\") {\n      __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(new Error());\n    }\n  })();\n}\nvar __export0;\nvar __export1;\nvar __export2;\nvar __export3;\nvar __export4;\nvar __export5;\nvar __export6;\nvar __export7;\nvar __export8;\nvar __export9;\nvar __export10;\nvar __export11;\nvar __export12;\nvar __export13;\nvar __export14;\nvar __export15;\nvar __export16;\nvar __export17;\nvar __export18;\nif (Object.isExtensible(module.exports) && Object.keys(module.exports).length === 19) {\n  __export0 = module.exports[\"unstable_now\"];\n  __export1 = module.exports[\"unstable_IdlePriority\"];\n  __export2 = module.exports[\"unstable_ImmediatePriority\"];\n  __export3 = module.exports[\"unstable_LowPriority\"];\n  __export4 = module.exports[\"unstable_NormalPriority\"];\n  __export5 = module.exports[\"unstable_Profiling\"];\n  __export6 = module.exports[\"unstable_UserBlockingPriority\"];\n  __export7 = module.exports[\"unstable_cancelCallback\"];\n  __export8 = module.exports[\"unstable_continueExecution\"];\n  __export9 = module.exports[\"unstable_forceFrameRate\"];\n  __export10 = module.exports[\"unstable_getCurrentPriorityLevel\"];\n  __export11 = module.exports[\"unstable_getFirstCallbackNode\"];\n  __export12 = module.exports[\"unstable_next\"];\n  __export13 = module.exports[\"unstable_pauseExecution\"];\n  __export14 = module.exports[\"unstable_requestPaint\"];\n  __export15 = module.exports[\"unstable_runWithPriority\"];\n  __export16 = module.exports[\"unstable_scheduleCallback\"];\n  __export17 = module.exports[\"unstable_shouldYield\"];\n  __export18 = module.exports[\"unstable_wrapCallback\"];\n}\nvar scheduler_development_default = module.exports;\n\n// ../../node_modules/.pnpm/scheduler@0.21.0/node_modules/scheduler/cjs/scheduler.production.min.js\nvar exports2 = {};\nvar module2 = {\n  get exports() {\n    return exports2;\n  },\n  set exports(value) {\n    exports2 = value;\n  }\n};\nfunction f(a, b) {\n  var c = a.length;\n  a.push(b);\n  a: for (; 0 < c; ) {\n    var d = c - 1 >>> 1, e = a[d];\n    if (0 < g(e, b)) a[d] = b, a[c] = e, c = d;\n    else break a;\n  }\n}\nfunction h(a) {\n  return 0 === a.length ? null : a[0];\n}\nfunction k(a) {\n  if (0 === a.length) return null;\n  var b = a[0], c = a.pop();\n  if (c !== b) {\n    a[0] = c;\n    a: for (var d = 0, e = a.length, w = e >>> 1; d < w; ) {\n      var m = 2 * (d + 1) - 1, C = a[m], n = m + 1, x = a[n];\n      if (0 > g(C, c)) n < e && 0 > g(x, C) ? (a[d] = x, a[n] = c, d = n) : (a[d] = C, a[m] = c, d = m);\n      else if (n < e && 0 > g(x, c)) a[d] = x, a[n] = c, d = n;\n      else break a;\n    }\n  }\n  return b;\n}\nfunction g(a, b) {\n  var c = a.sortIndex - b.sortIndex;\n  return 0 !== c ? c : a.id - b.id;\n}\nif (\"object\" === typeof performance && \"function\" === typeof performance.now) {\n  l = performance;\n  exports2.unstable_now = function() {\n    return l.now();\n  };\n} else {\n  p2 = Date, q = p2.now();\n  exports2.unstable_now = function() {\n    return p2.now() - q;\n  };\n}\nvar l;\nvar p2;\nvar q;\nvar r = [];\nvar t = [];\nvar u = 1;\nvar v = null;\nvar y = 3;\nvar z = false;\nvar A = false;\nvar B = false;\nvar D = \"function\" === typeof setTimeout ? setTimeout : null;\nvar E = \"function\" === typeof clearTimeout ? clearTimeout : null;\nvar F = \"undefined\" !== typeof setImmediate ? setImmediate : null;\n\"undefined\" !== typeof navigator && void 0 !== navigator.scheduling && void 0 !== navigator.scheduling.isInputPending && navigator.scheduling.isInputPending.bind(navigator.scheduling);\nfunction G(a) {\n  for (var b = h(t); null !== b; ) {\n    if (null === b.callback) k(t);\n    else if (b.startTime <= a) k(t), b.sortIndex = b.expirationTime, f(r, b);\n    else break;\n    b = h(t);\n  }\n}\nfunction H(a) {\n  B = false;\n  G(a);\n  if (!A) if (null !== h(r)) A = true, I(J);\n  else {\n    var b = h(t);\n    null !== b && K(H, b.startTime - a);\n  }\n}\nfunction J(a, b) {\n  A = false;\n  B && (B = false, E(L), L = -1);\n  z = true;\n  var c = y;\n  try {\n    G(b);\n    for (v = h(r); null !== v && (!(v.expirationTime > b) || a && !M()); ) {\n      var d = v.callback;\n      if (\"function\" === typeof d) {\n        v.callback = null;\n        y = v.priorityLevel;\n        var e = d(v.expirationTime <= b);\n        b = exports2.unstable_now();\n        \"function\" === typeof e ? v.callback = e : v === h(r) && k(r);\n        G(b);\n      } else k(r);\n      v = h(r);\n    }\n    if (null !== v) var w = true;\n    else {\n      var m = h(t);\n      null !== m && K(H, m.startTime - b);\n      w = false;\n    }\n    return w;\n  } finally {\n    v = null, y = c, z = false;\n  }\n}\nvar N = false;\nvar O = null;\nvar L = -1;\nvar P = 5;\nvar Q = -1;\nfunction M() {\n  return exports2.unstable_now() - Q < P ? false : true;\n}\nfunction R() {\n  if (null !== O) {\n    var a = exports2.unstable_now();\n    Q = a;\n    var b = true;\n    try {\n      b = O(true, a);\n    } finally {\n      b ? S() : (N = false, O = null);\n    }\n  } else N = false;\n}\nvar S;\nif (\"function\" === typeof F) S = function() {\n  F(R);\n};\nelse if (\"undefined\" !== typeof MessageChannel) {\n  T2 = new MessageChannel(), U = T2.port2;\n  T2.port1.onmessage = R;\n  S = function() {\n    U.postMessage(null);\n  };\n} else S = function() {\n  D(R, 0);\n};\nvar T2;\nvar U;\nfunction I(a) {\n  O = a;\n  N || (N = true, S());\n}\nfunction K(a, b) {\n  L = D(function() {\n    a(exports2.unstable_now());\n  }, b);\n}\nexports2.unstable_IdlePriority = 5;\nexports2.unstable_ImmediatePriority = 1;\nexports2.unstable_LowPriority = 4;\nexports2.unstable_NormalPriority = 3;\nexports2.unstable_Profiling = null;\nexports2.unstable_UserBlockingPriority = 2;\nexports2.unstable_cancelCallback = function(a) {\n  a.callback = null;\n};\nexports2.unstable_continueExecution = function() {\n  A || z || (A = true, I(J));\n};\nexports2.unstable_forceFrameRate = function(a) {\n  0 > a || 125 < a ? console.error(\"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\") : P = 0 < a ? Math.floor(1e3 / a) : 5;\n};\nexports2.unstable_getCurrentPriorityLevel = function() {\n  return y;\n};\nexports2.unstable_getFirstCallbackNode = function() {\n  return h(r);\n};\nexports2.unstable_next = function(a) {\n  switch (y) {\n    case 1:\n    case 2:\n    case 3:\n      var b = 3;\n      break;\n    default:\n      b = y;\n  }\n  var c = y;\n  y = b;\n  try {\n    return a();\n  } finally {\n    y = c;\n  }\n};\nexports2.unstable_pauseExecution = function() {\n};\nexports2.unstable_requestPaint = function() {\n};\nexports2.unstable_runWithPriority = function(a, b) {\n  switch (a) {\n    case 1:\n    case 2:\n    case 3:\n    case 4:\n    case 5:\n      break;\n    default:\n      a = 3;\n  }\n  var c = y;\n  y = a;\n  try {\n    return b();\n  } finally {\n    y = c;\n  }\n};\nexports2.unstable_scheduleCallback = function(a, b, c) {\n  var d = exports2.unstable_now();\n  \"object\" === typeof c && null !== c ? (c = c.delay, c = \"number\" === typeof c && 0 < c ? d + c : d) : c = d;\n  switch (a) {\n    case 1:\n      var e = -1;\n      break;\n    case 2:\n      e = 250;\n      break;\n    case 5:\n      e = 1073741823;\n      break;\n    case 4:\n      e = 1e4;\n      break;\n    default:\n      e = 5e3;\n  }\n  e = c + e;\n  a = { id: u++, callback: b, priorityLevel: a, startTime: c, expirationTime: e, sortIndex: -1 };\n  c > d ? (a.sortIndex = c, f(t, a), null === h(r) && a === h(t) && (B ? (E(L), L = -1) : B = true, K(H, c - d))) : (a.sortIndex = e, f(r, a), A || z || (A = true, I(J)));\n  return a;\n};\nexports2.unstable_shouldYield = M;\nexports2.unstable_wrapCallback = function(a) {\n  var b = y;\n  return function() {\n    var c = y;\n    y = b;\n    try {\n      return a.apply(this, arguments);\n    } finally {\n      y = c;\n    }\n  };\n};\nvar __export02;\nvar __export19;\nvar __export22;\nvar __export32;\nvar __export42;\nvar __export52;\nvar __export62;\nvar __export72;\nvar __export82;\nvar __export92;\nvar __export102;\nvar __export112;\nvar __export122;\nvar __export132;\nvar __export142;\nvar __export152;\nvar __export162;\nvar __export172;\nvar __export182;\nif (Object.isExtensible(module2.exports) && Object.keys(module2.exports).length === 19) {\n  __export02 = module2.exports[\"unstable_now\"];\n  __export19 = module2.exports[\"unstable_IdlePriority\"];\n  __export22 = module2.exports[\"unstable_ImmediatePriority\"];\n  __export32 = module2.exports[\"unstable_LowPriority\"];\n  __export42 = module2.exports[\"unstable_NormalPriority\"];\n  __export52 = module2.exports[\"unstable_Profiling\"];\n  __export62 = module2.exports[\"unstable_UserBlockingPriority\"];\n  __export72 = module2.exports[\"unstable_cancelCallback\"];\n  __export82 = module2.exports[\"unstable_continueExecution\"];\n  __export92 = module2.exports[\"unstable_forceFrameRate\"];\n  __export102 = module2.exports[\"unstable_getCurrentPriorityLevel\"];\n  __export112 = module2.exports[\"unstable_getFirstCallbackNode\"];\n  __export122 = module2.exports[\"unstable_next\"];\n  __export132 = module2.exports[\"unstable_pauseExecution\"];\n  __export142 = module2.exports[\"unstable_requestPaint\"];\n  __export152 = module2.exports[\"unstable_runWithPriority\"];\n  __export162 = module2.exports[\"unstable_scheduleCallback\"];\n  __export172 = module2.exports[\"unstable_shouldYield\"];\n  __export182 = module2.exports[\"unstable_wrapCallback\"];\n}\nvar scheduler_production_min_default = module2.exports;\n\n// ../../node_modules/.pnpm/scheduler@0.21.0/node_modules/scheduler/index.js\nfunction __cjs_default__(requiredModule) {\n  var Object2 = (typeof window !== \"undefined\" && window || typeof self !== \"undefined\" && self || typeof global !== \"undefined\" && global || typeof globalThis !== \"undefined\" && globalThis || {}).Object;\n  var isEsModule = false;\n  var specifiers = Object2.create(null);\n  var hasNamedExports = false;\n  var hasDefaultExport = false;\n  Object2.defineProperty(specifiers, \"__esModule\", {\n    value: true,\n    enumerable: false,\n    configurable: true\n  });\n  if (requiredModule) {\n    var names = Object2.getOwnPropertyNames(requiredModule);\n    ;\n    names.forEach(function(k3) {\n      if (k3 === \"default\") {\n        hasDefaultExport = true;\n      } else if (!hasNamedExports && k3 != \"__esModule\") {\n        try {\n          hasNamedExports = requiredModule[k3] != null;\n        } catch (err) {\n        }\n      }\n      Object2.defineProperty(specifiers, k3, {\n        get: function() {\n          return requiredModule[k3];\n        },\n        enumerable: true,\n        configurable: false\n      });\n    });\n    if (Object2.getOwnPropertySymbols) {\n      var symbols = Object2.getOwnPropertySymbols(requiredModule);\n      symbols.forEach(function(k3) {\n        Object2.defineProperty(specifiers, k3, {\n          get: function() {\n            return requiredModule[k3];\n          },\n          enumerable: false,\n          configurable: false\n        });\n      });\n    }\n    Object2.preventExtensions(specifiers);\n    Object2.seal(specifiers);\n    if (Object2.freeze) {\n      Object2.freeze(specifiers);\n    }\n  }\n  if (hasNamedExports) {\n    return specifiers;\n  }\n  if (hasDefaultExport) {\n    if (Object2.isExtensible(specifiers.default) && !(\"default\" in specifiers.default)) {\n      Object2.defineProperty(specifiers.default, \"default\", {\n        value: specifiers.default,\n        configurable: false,\n        enumerable: false\n      });\n    }\n    return specifiers.default;\n  }\n  return specifiers;\n}\nvar global = typeof window !== \"undefined\" && window || typeof self !== \"undefined\" && self || typeof global !== \"undefined\" && global || typeof globalThis !== \"undefined\" && globalThis || {};\nvar exports3 = {};\nvar module3 = {\n  get exports() {\n    return exports3;\n  },\n  set exports(value) {\n    exports3 = value;\n  }\n};\nif (false) {\n  module3.exports = __cjs_default__(typeof scheduler_production_min_exports !== \"undefined\" ? scheduler_production_min_exports : {});\n} else {\n  module3.exports = __cjs_default__(typeof scheduler_development_exports !== \"undefined\" ? scheduler_development_exports : {});\n}\nvar scheduler_default = module3.exports;\n\n// ../../node_modules/.pnpm/@react-three+fiber@8.17.14_@types+react@18.3.18_react-dom@18.3.1_react@18.3.1__react@18.3.1_three@0.169.0/node_modules/@react-three/fiber/dist/events-776716bd.esm.js\nvar catalogue = {};\nvar extend = (objects) => void Object.assign(catalogue, objects);\nfunction createRenderer(_roots, _getEventPriority) {\n  function createInstance(type, _a2, root) {\n    var _b2 = _a2, {\n      args = [],\n      attach: attach2\n    } = _b2, props = __objRest(_b2, [\n      \"args\",\n      \"attach\"\n    ]);\n    let name = `${type[0].toUpperCase()}${type.slice(1)}`;\n    let instance;\n    if (type === \"primitive\") {\n      if (props.object === void 0) throw new Error(\"R3F: Primitives without 'object' are invalid!\");\n      const object = props.object;\n      instance = prepare(object, {\n        type,\n        root,\n        attach: attach2,\n        primitive: true\n      });\n    } else {\n      const target = catalogue[name];\n      if (!target) {\n        throw new Error(`R3F: ${name} is not part of the THREE namespace! Did you forget to extend? See: https://docs.pmnd.rs/react-three-fiber/api/objects#using-3rd-party-objects-declaratively`);\n      }\n      if (!Array.isArray(args)) throw new Error(\"R3F: The args prop must be an array!\");\n      instance = prepare(new target(...args), {\n        type,\n        root,\n        attach: attach2,\n        // Save args in case we need to reconstruct later for HMR\n        memoizedProps: {\n          args\n        }\n      });\n    }\n    if (instance.__r3f.attach === void 0) {\n      if (instance.isBufferGeometry) instance.__r3f.attach = \"geometry\";\n      else if (instance.isMaterial) instance.__r3f.attach = \"material\";\n    }\n    if (name !== \"inject\") applyProps$1(instance, props);\n    return instance;\n  }\n  function appendChild(parentInstance, child) {\n    let added = false;\n    if (child) {\n      var _child$__r3f, _parentInstance$__r3f;\n      if ((_child$__r3f = child.__r3f) != null && _child$__r3f.attach) {\n        attach(parentInstance, child, child.__r3f.attach);\n      } else if (child.isObject3D && parentInstance.isObject3D) {\n        parentInstance.add(child);\n        added = true;\n      }\n      if (!added) (_parentInstance$__r3f = parentInstance.__r3f) == null ? void 0 : _parentInstance$__r3f.objects.push(child);\n      if (!child.__r3f) prepare(child, {});\n      child.__r3f.parent = parentInstance;\n      updateInstance(child);\n      invalidateInstance(child);\n    }\n  }\n  function insertBefore(parentInstance, child, beforeChild) {\n    let added = false;\n    if (child) {\n      var _child$__r3f2, _parentInstance$__r3f2;\n      if ((_child$__r3f2 = child.__r3f) != null && _child$__r3f2.attach) {\n        attach(parentInstance, child, child.__r3f.attach);\n      } else if (child.isObject3D && parentInstance.isObject3D) {\n        child.parent = parentInstance;\n        child.dispatchEvent({\n          type: \"added\"\n        });\n        parentInstance.dispatchEvent({\n          type: \"childadded\",\n          child\n        });\n        const restSiblings = parentInstance.children.filter((sibling) => sibling !== child);\n        const index = restSiblings.indexOf(beforeChild);\n        parentInstance.children = [...restSiblings.slice(0, index), child, ...restSiblings.slice(index)];\n        added = true;\n      }\n      if (!added) (_parentInstance$__r3f2 = parentInstance.__r3f) == null ? void 0 : _parentInstance$__r3f2.objects.push(child);\n      if (!child.__r3f) prepare(child, {});\n      child.__r3f.parent = parentInstance;\n      updateInstance(child);\n      invalidateInstance(child);\n    }\n  }\n  function removeRecursive(array, parent, dispose2 = false) {\n    if (array) [...array].forEach((child) => removeChild(parent, child, dispose2));\n  }\n  function removeChild(parentInstance, child, dispose2) {\n    if (child) {\n      var _parentInstance$__r3f3, _child$__r3f3, _child$__r3f5;\n      if (child.__r3f) child.__r3f.parent = null;\n      if ((_parentInstance$__r3f3 = parentInstance.__r3f) != null && _parentInstance$__r3f3.objects) parentInstance.__r3f.objects = parentInstance.__r3f.objects.filter((x) => x !== child);\n      if ((_child$__r3f3 = child.__r3f) != null && _child$__r3f3.attach) {\n        detach(parentInstance, child, child.__r3f.attach);\n      } else if (child.isObject3D && parentInstance.isObject3D) {\n        var _child$__r3f4;\n        parentInstance.remove(child);\n        if ((_child$__r3f4 = child.__r3f) != null && _child$__r3f4.root) {\n          removeInteractivity(findInitialRoot(child), child);\n        }\n      }\n      const isPrimitive = (_child$__r3f5 = child.__r3f) == null ? void 0 : _child$__r3f5.primitive;\n      const shouldDispose = !isPrimitive && (dispose2 === void 0 ? child.dispose !== null : dispose2);\n      if (!isPrimitive) {\n        var _child$__r3f6;\n        removeRecursive((_child$__r3f6 = child.__r3f) == null ? void 0 : _child$__r3f6.objects, child, shouldDispose);\n        removeRecursive(child.children, child, shouldDispose);\n      }\n      delete child.__r3f;\n      if (shouldDispose && child.dispose && child.type !== \"Scene\") {\n        const callback = () => {\n          try {\n            child.dispose();\n          } catch (e) {\n          }\n        };\n        if (typeof IS_REACT_ACT_ENVIRONMENT === \"undefined\") {\n          __export16(__export1, callback);\n        } else {\n          callback();\n        }\n      }\n      invalidateInstance(parentInstance);\n    }\n  }\n  function switchInstance(instance, type, newProps, fiber) {\n    var _instance$__r3f;\n    const parent = (_instance$__r3f = instance.__r3f) == null ? void 0 : _instance$__r3f.parent;\n    if (!parent) return;\n    const newInstance = createInstance(type, newProps, instance.__r3f.root);\n    if (instance.children) {\n      for (const child of instance.children) {\n        if (child.__r3f) appendChild(newInstance, child);\n      }\n      instance.children = instance.children.filter((child) => !child.__r3f);\n    }\n    instance.__r3f.objects.forEach((child) => appendChild(newInstance, child));\n    instance.__r3f.objects = [];\n    if (!instance.__r3f.autoRemovedBeforeAppend) {\n      removeChild(parent, instance);\n    }\n    if (newInstance.parent) {\n      newInstance.__r3f.autoRemovedBeforeAppend = true;\n    }\n    appendChild(parent, newInstance);\n    if (newInstance.raycast && newInstance.__r3f.eventCount) {\n      const rootState = findInitialRoot(newInstance).getState();\n      rootState.internal.interaction.push(newInstance);\n    }\n    [fiber, fiber.alternate].forEach((fiber2) => {\n      if (fiber2 !== null) {\n        fiber2.stateNode = newInstance;\n        if (fiber2.ref) {\n          if (typeof fiber2.ref === \"function\") fiber2.ref(newInstance);\n          else fiber2.ref.current = newInstance;\n        }\n      }\n    });\n  }\n  const handleTextInstance = () => {\n  };\n  const reconciler2 = Reconciler({\n    createInstance,\n    removeChild,\n    appendChild,\n    appendInitialChild: appendChild,\n    insertBefore,\n    supportsMutation: true,\n    isPrimaryRenderer: false,\n    supportsPersistence: false,\n    supportsHydration: false,\n    noTimeout: -1,\n    appendChildToContainer: (container, child) => {\n      if (!child) return;\n      const scene = container.getState().scene;\n      if (!scene.__r3f) return;\n      scene.__r3f.root = container;\n      appendChild(scene, child);\n    },\n    removeChildFromContainer: (container, child) => {\n      if (!child) return;\n      removeChild(container.getState().scene, child);\n    },\n    insertInContainerBefore: (container, child, beforeChild) => {\n      if (!child || !beforeChild) return;\n      const scene = container.getState().scene;\n      if (!scene.__r3f) return;\n      insertBefore(scene, child, beforeChild);\n    },\n    getRootHostContext: () => null,\n    getChildHostContext: (parentHostContext) => parentHostContext,\n    finalizeInitialChildren(instance) {\n      var _instance$__r3f2;\n      const localState = (_instance$__r3f2 = instance == null ? void 0 : instance.__r3f) != null ? _instance$__r3f2 : {};\n      return Boolean(localState.handlers);\n    },\n    prepareUpdate(instance, _type, oldProps, newProps) {\n      var _instance$__r3f3;\n      const localState = (_instance$__r3f3 = instance == null ? void 0 : instance.__r3f) != null ? _instance$__r3f3 : {};\n      if (localState.primitive && newProps.object && newProps.object !== instance) {\n        return [true];\n      } else {\n        const _a2 = newProps, {\n          args: argsNew = [],\n          children: cN\n        } = _a2, restNew = __objRest(_a2, [\n          \"args\",\n          \"children\"\n        ]);\n        const _b2 = oldProps, {\n          args: argsOld = [],\n          children: cO\n        } = _b2, restOld = __objRest(_b2, [\n          \"args\",\n          \"children\"\n        ]);\n        if (!Array.isArray(argsNew)) throw new Error(\"R3F: the args prop must be an array!\");\n        if (argsNew.some((value, index) => value !== argsOld[index])) return [true];\n        const diff = diffProps(instance, restNew, restOld, true);\n        if (diff.changes.length) return [false, diff];\n        return null;\n      }\n    },\n    commitUpdate(instance, [reconstruct, diff], type, _oldProps, newProps, fiber) {\n      if (reconstruct) switchInstance(instance, type, newProps, fiber);\n      else applyProps$1(instance, diff);\n    },\n    commitMount(instance, _type, _props, _int) {\n      var _instance$__r3f4;\n      const localState = (_instance$__r3f4 = instance.__r3f) != null ? _instance$__r3f4 : {};\n      if (instance.raycast && localState.handlers && localState.eventCount) {\n        findInitialRoot(instance).getState().internal.interaction.push(instance);\n      }\n    },\n    getPublicInstance: (instance) => instance,\n    prepareForCommit: () => null,\n    preparePortalMount: (container) => prepare(container.getState().scene),\n    resetAfterCommit: () => {\n    },\n    shouldSetTextContent: () => false,\n    clearContainer: () => false,\n    hideInstance(instance) {\n      var _instance$__r3f5;\n      const {\n        attach: type,\n        parent\n      } = (_instance$__r3f5 = instance.__r3f) != null ? _instance$__r3f5 : {};\n      if (type && parent) detach(parent, instance, type);\n      if (instance.isObject3D) instance.visible = false;\n      invalidateInstance(instance);\n    },\n    unhideInstance(instance, props) {\n      var _instance$__r3f6;\n      const {\n        attach: type,\n        parent\n      } = (_instance$__r3f6 = instance.__r3f) != null ? _instance$__r3f6 : {};\n      if (type && parent) attach(parent, instance, type);\n      if (instance.isObject3D && props.visible == null || props.visible) instance.visible = true;\n      invalidateInstance(instance);\n    },\n    createTextInstance: handleTextInstance,\n    hideTextInstance: handleTextInstance,\n    unhideTextInstance: handleTextInstance,\n    // https://github.com/pmndrs/react-three-fiber/pull/2360#discussion_r916356874\n    // @ts-expect-error\n    getCurrentEventPriority: () => _getEventPriority ? _getEventPriority() : DefaultEventPriority,\n    beforeActiveInstanceBlur: () => {\n    },\n    afterActiveInstanceBlur: () => {\n    },\n    detachDeletedInstance: () => {\n    },\n    now: typeof performance !== \"undefined\" && is.fun(performance.now) ? performance.now : is.fun(Date.now) ? Date.now : () => 0,\n    // https://github.com/pmndrs/react-three-fiber/pull/2360#discussion_r920883503\n    scheduleTimeout: is.fun(setTimeout) ? setTimeout : void 0,\n    cancelTimeout: is.fun(clearTimeout) ? clearTimeout : void 0\n  });\n  return {\n    reconciler: reconciler2,\n    applyProps: applyProps$1\n  };\n}\nvar _window$document;\nvar _window$navigator;\nvar hasColorSpace = (object) => \"colorSpace\" in object || \"outputColorSpace\" in object;\nvar getColorManagement = () => {\n  var _ColorManagement;\n  return (_ColorManagement = catalogue.ColorManagement) != null ? _ColorManagement : null;\n};\nvar isOrthographicCamera = (def) => def && def.isOrthographicCamera;\nvar isRef = (obj) => obj && obj.hasOwnProperty(\"current\");\nvar useIsomorphicLayoutEffect2 = typeof window !== \"undefined\" && ((_window$document = window.document) != null && _window$document.createElement || ((_window$navigator = window.navigator) == null ? void 0 : _window$navigator.product) === \"ReactNative\") ? React.useLayoutEffect : React.useEffect;\nfunction useMutableCallback(fn) {\n  const ref = React.useRef(fn);\n  useIsomorphicLayoutEffect2(() => void (ref.current = fn), [fn]);\n  return ref;\n}\nfunction Block({\n  set\n}) {\n  useIsomorphicLayoutEffect2(() => {\n    set(new Promise(() => null));\n    return () => set(false);\n  }, [set]);\n  return null;\n}\nvar ErrorBoundary = class extends React.Component {\n  constructor(...args) {\n    super(...args);\n    this.state = {\n      error: false\n    };\n  }\n  componentDidCatch(err) {\n    this.props.set(err);\n  }\n  render() {\n    return this.state.error ? null : this.props.children;\n  }\n};\nErrorBoundary.getDerivedStateFromError = () => ({\n  error: true\n});\nvar DEFAULT = \"__default\";\nvar DEFAULTS = /* @__PURE__ */ new Map();\nvar isDiffSet = (def) => def && !!def.memoized && !!def.changes;\nfunction calculateDpr(dpr) {\n  var _window$devicePixelRa;\n  const target = typeof window !== \"undefined\" ? (_window$devicePixelRa = window.devicePixelRatio) != null ? _window$devicePixelRa : 2 : 1;\n  return Array.isArray(dpr) ? Math.min(Math.max(dpr[0], target), dpr[1]) : dpr;\n}\nvar getRootState = (obj) => {\n  var _r3f;\n  return (_r3f = obj.__r3f) == null ? void 0 : _r3f.root.getState();\n};\nfunction findInitialRoot(child) {\n  let root = child.__r3f.root;\n  while (root.getState().previousRoot) root = root.getState().previousRoot;\n  return root;\n}\nvar is = {\n  obj: (a) => a === Object(a) && !is.arr(a) && typeof a !== \"function\",\n  fun: (a) => typeof a === \"function\",\n  str: (a) => typeof a === \"string\",\n  num: (a) => typeof a === \"number\",\n  boo: (a) => typeof a === \"boolean\",\n  und: (a) => a === void 0,\n  arr: (a) => Array.isArray(a),\n  equ(a, b, {\n    arrays = \"shallow\",\n    objects = \"reference\",\n    strict = true\n  } = {}) {\n    if (typeof a !== typeof b || !!a !== !!b) return false;\n    if (is.str(a) || is.num(a) || is.boo(a)) return a === b;\n    const isObj = is.obj(a);\n    if (isObj && objects === \"reference\") return a === b;\n    const isArr = is.arr(a);\n    if (isArr && arrays === \"reference\") return a === b;\n    if ((isArr || isObj) && a === b) return true;\n    let i2;\n    for (i2 in a) if (!(i2 in b)) return false;\n    if (isObj && arrays === \"shallow\" && objects === \"shallow\") {\n      for (i2 in strict ? b : a) if (!is.equ(a[i2], b[i2], {\n        strict,\n        objects: \"reference\"\n      })) return false;\n    } else {\n      for (i2 in strict ? b : a) if (a[i2] !== b[i2]) return false;\n    }\n    if (is.und(i2)) {\n      if (isArr && a.length === 0 && b.length === 0) return true;\n      if (isObj && Object.keys(a).length === 0 && Object.keys(b).length === 0) return true;\n      if (a !== b) return false;\n    }\n    return true;\n  }\n};\nfunction buildGraph(object) {\n  const data = {\n    nodes: {},\n    materials: {}\n  };\n  if (object) {\n    object.traverse((obj) => {\n      if (obj.name) data.nodes[obj.name] = obj;\n      if (obj.material && !data.materials[obj.material.name]) data.materials[obj.material.name] = obj.material;\n    });\n  }\n  return data;\n}\nfunction dispose(obj) {\n  if (obj.dispose && obj.type !== \"Scene\") obj.dispose();\n  for (const p2 in obj) {\n    p2.dispose == null ? void 0 : p2.dispose();\n    delete obj[p2];\n  }\n}\nfunction prepare(object, state) {\n  const instance = object;\n  instance.__r3f = __spreadValues({\n    type: \"\",\n    root: null,\n    previousAttach: null,\n    memoizedProps: {},\n    eventCount: 0,\n    handlers: {},\n    objects: [],\n    parent: null\n  }, state);\n  return object;\n}\nfunction resolve(instance, key) {\n  let target = instance;\n  if (key.includes(\"-\")) {\n    const entries = key.split(\"-\");\n    const last = entries.pop();\n    target = entries.reduce((acc, key2) => acc[key2], instance);\n    return {\n      target,\n      key: last\n    };\n  } else return {\n    target,\n    key\n  };\n}\nvar INDEX_REGEX = /-\\d+$/;\nfunction attach(parent, child, type) {\n  if (is.str(type)) {\n    if (INDEX_REGEX.test(type)) {\n      const root = type.replace(INDEX_REGEX, \"\");\n      const {\n        target: target2,\n        key: key2\n      } = resolve(parent, root);\n      if (!Array.isArray(target2[key2])) target2[key2] = [];\n    }\n    const {\n      target,\n      key\n    } = resolve(parent, type);\n    child.__r3f.previousAttach = target[key];\n    target[key] = child;\n  } else child.__r3f.previousAttach = type(parent, child);\n}\nfunction detach(parent, child, type) {\n  var _child$__r3f, _child$__r3f2;\n  if (is.str(type)) {\n    const {\n      target,\n      key\n    } = resolve(parent, type);\n    const previous = child.__r3f.previousAttach;\n    if (previous === void 0) delete target[key];\n    else target[key] = previous;\n  } else (_child$__r3f = child.__r3f) == null ? void 0 : _child$__r3f.previousAttach == null ? void 0 : _child$__r3f.previousAttach(parent, child);\n  (_child$__r3f2 = child.__r3f) == null ? true : delete _child$__r3f2.previousAttach;\n}\nfunction diffProps(instance, _a2, _c = {}, remove = false) {\n  var _b2 = _a2, {\n    children: cN,\n    key: kN,\n    ref: rN\n  } = _b2, props = __objRest(_b2, [\n    \"children\",\n    \"key\",\n    \"ref\"\n  ]);\n  var _d = _c, {\n    children: cP,\n    key: kP,\n    ref: rP\n  } = _d, previous = __objRest(_d, [\n    \"children\",\n    \"key\",\n    \"ref\"\n  ]);\n  const localState = instance.__r3f;\n  const entries = Object.entries(props);\n  const changes = [];\n  if (remove) {\n    const previousKeys = Object.keys(previous);\n    for (let i2 = 0; i2 < previousKeys.length; i2++) {\n      if (!props.hasOwnProperty(previousKeys[i2])) entries.unshift([previousKeys[i2], DEFAULT + \"remove\"]);\n    }\n  }\n  entries.forEach(([key, value]) => {\n    var _instance$__r3f;\n    if ((_instance$__r3f = instance.__r3f) != null && _instance$__r3f.primitive && key === \"object\") return;\n    if (is.equ(value, previous[key])) return;\n    if (/^on(Pointer|Click|DoubleClick|ContextMenu|Wheel)/.test(key)) return changes.push([key, value, true, []]);\n    let entries2 = [];\n    if (key.includes(\"-\")) entries2 = key.split(\"-\");\n    changes.push([key, value, false, entries2]);\n    for (const prop in props) {\n      const value2 = props[prop];\n      if (prop.startsWith(`${key}-`)) changes.push([prop, value2, false, prop.split(\"-\")]);\n    }\n  });\n  const memoized = __spreadValues({}, props);\n  if (localState != null && localState.memoizedProps && localState != null && localState.memoizedProps.args) memoized.args = localState.memoizedProps.args;\n  if (localState != null && localState.memoizedProps && localState != null && localState.memoizedProps.attach) memoized.attach = localState.memoizedProps.attach;\n  return {\n    memoized,\n    changes\n  };\n}\nvar __DEV__ = typeof process !== \"undefined\" && true;\nfunction applyProps$1(instance, data) {\n  var _instance$__r3f2;\n  const localState = instance.__r3f;\n  const root = localState == null ? void 0 : localState.root;\n  const rootState = root == null ? void 0 : root.getState == null ? void 0 : root.getState();\n  const {\n    memoized,\n    changes\n  } = isDiffSet(data) ? data : diffProps(instance, data);\n  const prevHandlers = localState == null ? void 0 : localState.eventCount;\n  if (instance.__r3f) instance.__r3f.memoizedProps = memoized;\n  for (let i2 = 0; i2 < changes.length; i2++) {\n    let [key, value, isEvent, keys] = changes[i2];\n    if (hasColorSpace(instance)) {\n      const sRGBEncoding = 3001;\n      const SRGBColorSpace = \"srgb\";\n      const LinearSRGBColorSpace = \"srgb-linear\";\n      if (key === \"encoding\") {\n        key = \"colorSpace\";\n        value = value === sRGBEncoding ? SRGBColorSpace : LinearSRGBColorSpace;\n      } else if (key === \"outputEncoding\") {\n        key = \"outputColorSpace\";\n        value = value === sRGBEncoding ? SRGBColorSpace : LinearSRGBColorSpace;\n      }\n    }\n    let currentInstance = instance;\n    let targetProp = currentInstance[key];\n    if (keys.length) {\n      targetProp = keys.reduce((acc, key2) => acc[key2], instance);\n      if (!(targetProp && targetProp.set)) {\n        const [name, ...reverseEntries] = keys.reverse();\n        currentInstance = reverseEntries.reverse().reduce((acc, key2) => acc[key2], instance);\n        key = name;\n      }\n    }\n    if (value === DEFAULT + \"remove\") {\n      if (currentInstance.constructor) {\n        let ctor = DEFAULTS.get(currentInstance.constructor);\n        if (!ctor) {\n          ctor = new currentInstance.constructor();\n          DEFAULTS.set(currentInstance.constructor, ctor);\n        }\n        value = ctor[key];\n      } else {\n        value = 0;\n      }\n    }\n    if (isEvent && localState) {\n      if (value) localState.handlers[key] = value;\n      else delete localState.handlers[key];\n      localState.eventCount = Object.keys(localState.handlers).length;\n    } else if (targetProp && targetProp.set && (targetProp.copy || targetProp instanceof Layers)) {\n      if (Array.isArray(value)) {\n        if (targetProp.fromArray) targetProp.fromArray(value);\n        else targetProp.set(...value);\n      } else if (targetProp.copy && value && value.constructor && // Some environments may break strict identity checks by duplicating versions of three.js.\n      // Loosen to unminified names, ignoring descendents.\n      // https://github.com/pmndrs/react-three-fiber/issues/2856\n      // TODO: fix upstream and remove in v9\n      (__DEV__ ? targetProp.constructor.name === value.constructor.name : targetProp.constructor === value.constructor)) {\n        targetProp.copy(value);\n      } else if (value !== void 0) {\n        var _targetProp;\n        const isColor = (_targetProp = targetProp) == null ? void 0 : _targetProp.isColor;\n        if (!isColor && targetProp.setScalar) targetProp.setScalar(value);\n        else if (targetProp instanceof Layers && value instanceof Layers) targetProp.mask = value.mask;\n        else targetProp.set(value);\n        if (!getColorManagement() && rootState && !rootState.linear && isColor) targetProp.convertSRGBToLinear();\n      }\n    } else {\n      var _currentInstance$key;\n      currentInstance[key] = value;\n      if ((_currentInstance$key = currentInstance[key]) != null && _currentInstance$key.isTexture && // sRGB textures must be RGBA8 since r137 https://github.com/mrdoob/three.js/pull/23129\n      currentInstance[key].format === RGBAFormat && currentInstance[key].type === UnsignedByteType && rootState) {\n        const texture = currentInstance[key];\n        if (hasColorSpace(texture) && hasColorSpace(rootState.gl)) texture.colorSpace = rootState.gl.outputColorSpace;\n        else texture.encoding = rootState.gl.outputEncoding;\n      }\n    }\n    invalidateInstance(instance);\n  }\n  if (localState && localState.parent && instance.raycast && prevHandlers !== localState.eventCount) {\n    const internal = findInitialRoot(instance).getState().internal;\n    const index = internal.interaction.indexOf(instance);\n    if (index > -1) internal.interaction.splice(index, 1);\n    if (localState.eventCount) internal.interaction.push(instance);\n  }\n  const isCircular = changes.length === 1 && changes[0][0] === \"onUpdate\";\n  if (!isCircular && changes.length && (_instance$__r3f2 = instance.__r3f) != null && _instance$__r3f2.parent) updateInstance(instance);\n  return instance;\n}\nfunction invalidateInstance(instance) {\n  var _instance$__r3f3, _instance$__r3f3$root;\n  const state = (_instance$__r3f3 = instance.__r3f) == null ? void 0 : (_instance$__r3f3$root = _instance$__r3f3.root) == null ? void 0 : _instance$__r3f3$root.getState == null ? void 0 : _instance$__r3f3$root.getState();\n  if (state && state.internal.frames === 0) state.invalidate();\n}\nfunction updateInstance(instance) {\n  instance.onUpdate == null ? void 0 : instance.onUpdate(instance);\n}\nfunction updateCamera(camera, size) {\n  if (!camera.manual) {\n    if (isOrthographicCamera(camera)) {\n      camera.left = size.width / -2;\n      camera.right = size.width / 2;\n      camera.top = size.height / 2;\n      camera.bottom = size.height / -2;\n    } else {\n      camera.aspect = size.width / size.height;\n    }\n    camera.updateProjectionMatrix();\n    camera.updateMatrixWorld();\n  }\n}\nfunction makeId(event) {\n  return (event.eventObject || event.object).uuid + \"/\" + event.index + event.instanceId;\n}\nfunction getEventPriority() {\n  var _globalScope$event;\n  const globalScope = typeof self !== \"undefined\" && self || typeof window !== \"undefined\" && window;\n  if (!globalScope) return DefaultEventPriority;\n  const name = (_globalScope$event = globalScope.event) == null ? void 0 : _globalScope$event.type;\n  switch (name) {\n    case \"click\":\n    case \"contextmenu\":\n    case \"dblclick\":\n    case \"pointercancel\":\n    case \"pointerdown\":\n    case \"pointerup\":\n      return DiscreteEventPriority;\n    case \"pointermove\":\n    case \"pointerout\":\n    case \"pointerover\":\n    case \"pointerenter\":\n    case \"pointerleave\":\n    case \"wheel\":\n      return ContinuousEventPriority;\n    default:\n      return DefaultEventPriority;\n  }\n}\nfunction releaseInternalPointerCapture(capturedMap, obj, captures, pointerId) {\n  const captureData = captures.get(obj);\n  if (captureData) {\n    captures.delete(obj);\n    if (captures.size === 0) {\n      capturedMap.delete(pointerId);\n      captureData.target.releasePointerCapture(pointerId);\n    }\n  }\n}\nfunction removeInteractivity(store, object) {\n  const {\n    internal\n  } = store.getState();\n  internal.interaction = internal.interaction.filter((o) => o !== object);\n  internal.initialHits = internal.initialHits.filter((o) => o !== object);\n  internal.hovered.forEach((value, key) => {\n    if (value.eventObject === object || value.object === object) {\n      internal.hovered.delete(key);\n    }\n  });\n  internal.capturedMap.forEach((captures, pointerId) => {\n    releaseInternalPointerCapture(internal.capturedMap, object, captures, pointerId);\n  });\n}\nfunction createEvents(store) {\n  function calculateDistance(event) {\n    const {\n      internal\n    } = store.getState();\n    const dx = event.offsetX - internal.initialClick[0];\n    const dy = event.offsetY - internal.initialClick[1];\n    return Math.round(Math.sqrt(dx * dx + dy * dy));\n  }\n  function filterPointerEvents(objects) {\n    return objects.filter((obj) => [\"Move\", \"Over\", \"Enter\", \"Out\", \"Leave\"].some((name) => {\n      var _r3f;\n      return (_r3f = obj.__r3f) == null ? void 0 : _r3f.handlers[\"onPointer\" + name];\n    }));\n  }\n  function intersect(event, filter) {\n    const state = store.getState();\n    const duplicates = /* @__PURE__ */ new Set();\n    const intersections = [];\n    const eventsObjects = filter ? filter(state.internal.interaction) : state.internal.interaction;\n    for (let i2 = 0; i2 < eventsObjects.length; i2++) {\n      const state2 = getRootState(eventsObjects[i2]);\n      if (state2) {\n        state2.raycaster.camera = void 0;\n      }\n    }\n    if (!state.previousRoot) {\n      state.events.compute == null ? void 0 : state.events.compute(event, state);\n    }\n    function handleRaycast(obj) {\n      const state2 = getRootState(obj);\n      if (!state2 || !state2.events.enabled || state2.raycaster.camera === null) return [];\n      if (state2.raycaster.camera === void 0) {\n        var _state$previousRoot;\n        state2.events.compute == null ? void 0 : state2.events.compute(event, state2, (_state$previousRoot = state2.previousRoot) == null ? void 0 : _state$previousRoot.getState());\n        if (state2.raycaster.camera === void 0) state2.raycaster.camera = null;\n      }\n      return state2.raycaster.camera ? state2.raycaster.intersectObject(obj, true) : [];\n    }\n    let hits = eventsObjects.flatMap(handleRaycast).sort((a, b) => {\n      const aState = getRootState(a.object);\n      const bState = getRootState(b.object);\n      if (!aState || !bState) return a.distance - b.distance;\n      return bState.events.priority - aState.events.priority || a.distance - b.distance;\n    }).filter((item) => {\n      const id = makeId(item);\n      if (duplicates.has(id)) return false;\n      duplicates.add(id);\n      return true;\n    });\n    if (state.events.filter) hits = state.events.filter(hits, state);\n    for (const hit of hits) {\n      let eventObject = hit.object;\n      while (eventObject) {\n        var _r3f2;\n        if ((_r3f2 = eventObject.__r3f) != null && _r3f2.eventCount) intersections.push(__spreadProps(__spreadValues({}, hit), {\n          eventObject\n        }));\n        eventObject = eventObject.parent;\n      }\n    }\n    if (\"pointerId\" in event && state.internal.capturedMap.has(event.pointerId)) {\n      for (let captureData of state.internal.capturedMap.get(event.pointerId).values()) {\n        if (!duplicates.has(makeId(captureData.intersection))) intersections.push(captureData.intersection);\n      }\n    }\n    return intersections;\n  }\n  function handleIntersects(intersections, event, delta, callback) {\n    const rootState = store.getState();\n    if (intersections.length) {\n      const localState = {\n        stopped: false\n      };\n      for (const hit of intersections) {\n        const state = getRootState(hit.object) || rootState;\n        const {\n          raycaster,\n          pointer,\n          camera,\n          internal\n        } = state;\n        const unprojectedPoint = new Vector3(pointer.x, pointer.y, 0).unproject(camera);\n        const hasPointerCapture = (id) => {\n          var _internal$capturedMap, _internal$capturedMap2;\n          return (_internal$capturedMap = (_internal$capturedMap2 = internal.capturedMap.get(id)) == null ? void 0 : _internal$capturedMap2.has(hit.eventObject)) != null ? _internal$capturedMap : false;\n        };\n        const setPointerCapture = (id) => {\n          const captureData = {\n            intersection: hit,\n            target: event.target\n          };\n          if (internal.capturedMap.has(id)) {\n            internal.capturedMap.get(id).set(hit.eventObject, captureData);\n          } else {\n            internal.capturedMap.set(id, /* @__PURE__ */ new Map([[hit.eventObject, captureData]]));\n          }\n          event.target.setPointerCapture(id);\n        };\n        const releasePointerCapture = (id) => {\n          const captures = internal.capturedMap.get(id);\n          if (captures) {\n            releaseInternalPointerCapture(internal.capturedMap, hit.eventObject, captures, id);\n          }\n        };\n        let extractEventProps = {};\n        for (let prop in event) {\n          let property = event[prop];\n          if (typeof property !== \"function\") extractEventProps[prop] = property;\n        }\n        let raycastEvent = __spreadProps(__spreadValues(__spreadValues({}, hit), extractEventProps), {\n          pointer,\n          intersections,\n          stopped: localState.stopped,\n          delta,\n          unprojectedPoint,\n          ray: raycaster.ray,\n          camera,\n          // Hijack stopPropagation, which just sets a flag\n          stopPropagation() {\n            const capturesForPointer = \"pointerId\" in event && internal.capturedMap.get(event.pointerId);\n            if (\n              // ...if this pointer hasn't been captured\n              !capturesForPointer || // ... or if the hit object is capturing the pointer\n              capturesForPointer.has(hit.eventObject)\n            ) {\n              raycastEvent.stopped = localState.stopped = true;\n              if (internal.hovered.size && Array.from(internal.hovered.values()).find((i2) => i2.eventObject === hit.eventObject)) {\n                const higher = intersections.slice(0, intersections.indexOf(hit));\n                cancelPointer([...higher, hit]);\n              }\n            }\n          },\n          // there should be a distinction between target and currentTarget\n          target: {\n            hasPointerCapture,\n            setPointerCapture,\n            releasePointerCapture\n          },\n          currentTarget: {\n            hasPointerCapture,\n            setPointerCapture,\n            releasePointerCapture\n          },\n          nativeEvent: event\n        });\n        callback(raycastEvent);\n        if (localState.stopped === true) break;\n      }\n    }\n    return intersections;\n  }\n  function cancelPointer(intersections) {\n    const {\n      internal\n    } = store.getState();\n    for (const hoveredObj of internal.hovered.values()) {\n      if (!intersections.length || !intersections.find((hit) => hit.object === hoveredObj.object && hit.index === hoveredObj.index && hit.instanceId === hoveredObj.instanceId)) {\n        const eventObject = hoveredObj.eventObject;\n        const instance = eventObject.__r3f;\n        const handlers = instance == null ? void 0 : instance.handlers;\n        internal.hovered.delete(makeId(hoveredObj));\n        if (instance != null && instance.eventCount) {\n          const data = __spreadProps(__spreadValues({}, hoveredObj), {\n            intersections\n          });\n          handlers.onPointerOut == null ? void 0 : handlers.onPointerOut(data);\n          handlers.onPointerLeave == null ? void 0 : handlers.onPointerLeave(data);\n        }\n      }\n    }\n  }\n  function pointerMissed(event, objects) {\n    for (let i2 = 0; i2 < objects.length; i2++) {\n      const instance = objects[i2].__r3f;\n      instance == null ? void 0 : instance.handlers.onPointerMissed == null ? void 0 : instance.handlers.onPointerMissed(event);\n    }\n  }\n  function handlePointer(name) {\n    switch (name) {\n      case \"onPointerLeave\":\n      case \"onPointerCancel\":\n        return () => cancelPointer([]);\n      case \"onLostPointerCapture\":\n        return (event) => {\n          const {\n            internal\n          } = store.getState();\n          if (\"pointerId\" in event && internal.capturedMap.has(event.pointerId)) {\n            requestAnimationFrame(() => {\n              if (internal.capturedMap.has(event.pointerId)) {\n                internal.capturedMap.delete(event.pointerId);\n                cancelPointer([]);\n              }\n            });\n          }\n        };\n    }\n    return function handleEvent(event) {\n      const {\n        onPointerMissed,\n        internal\n      } = store.getState();\n      internal.lastEvent.current = event;\n      const isPointerMove = name === \"onPointerMove\";\n      const isClickEvent = name === \"onClick\" || name === \"onContextMenu\" || name === \"onDoubleClick\";\n      const filter = isPointerMove ? filterPointerEvents : void 0;\n      const hits = intersect(event, filter);\n      const delta = isClickEvent ? calculateDistance(event) : 0;\n      if (name === \"onPointerDown\") {\n        internal.initialClick = [event.offsetX, event.offsetY];\n        internal.initialHits = hits.map((hit) => hit.eventObject);\n      }\n      if (isClickEvent && !hits.length) {\n        if (delta <= 2) {\n          pointerMissed(event, internal.interaction);\n          if (onPointerMissed) onPointerMissed(event);\n        }\n      }\n      if (isPointerMove) cancelPointer(hits);\n      function onIntersect(data) {\n        const eventObject = data.eventObject;\n        const instance = eventObject.__r3f;\n        const handlers = instance == null ? void 0 : instance.handlers;\n        if (!(instance != null && instance.eventCount)) return;\n        if (isPointerMove) {\n          if (handlers.onPointerOver || handlers.onPointerEnter || handlers.onPointerOut || handlers.onPointerLeave) {\n            const id = makeId(data);\n            const hoveredItem = internal.hovered.get(id);\n            if (!hoveredItem) {\n              internal.hovered.set(id, data);\n              handlers.onPointerOver == null ? void 0 : handlers.onPointerOver(data);\n              handlers.onPointerEnter == null ? void 0 : handlers.onPointerEnter(data);\n            } else if (hoveredItem.stopped) {\n              data.stopPropagation();\n            }\n          }\n          handlers.onPointerMove == null ? void 0 : handlers.onPointerMove(data);\n        } else {\n          const handler = handlers[name];\n          if (handler) {\n            if (!isClickEvent || internal.initialHits.includes(eventObject)) {\n              pointerMissed(event, internal.interaction.filter((object) => !internal.initialHits.includes(object)));\n              handler(data);\n            }\n          } else {\n            if (isClickEvent && internal.initialHits.includes(eventObject)) {\n              pointerMissed(event, internal.interaction.filter((object) => !internal.initialHits.includes(object)));\n            }\n          }\n        }\n      }\n      handleIntersects(hits, event, delta, onIntersect);\n    };\n  }\n  return {\n    handlePointer\n  };\n}\nvar isRenderer = (def) => !!(def != null && def.render);\nvar context = /* @__PURE__ */ React.createContext(null);\nvar createStore2 = (invalidate2, advance2) => {\n  const rootState = create((set, get) => {\n    const position = new Vector3();\n    const defaultTarget = new Vector3();\n    const tempTarget = new Vector3();\n    function getCurrentViewport(camera = get().camera, target = defaultTarget, size = get().size) {\n      const {\n        width,\n        height,\n        top,\n        left\n      } = size;\n      const aspect = width / height;\n      if (target.isVector3) tempTarget.copy(target);\n      else tempTarget.set(...target);\n      const distance = camera.getWorldPosition(position).distanceTo(tempTarget);\n      if (isOrthographicCamera(camera)) {\n        return {\n          width: width / camera.zoom,\n          height: height / camera.zoom,\n          top,\n          left,\n          factor: 1,\n          distance,\n          aspect\n        };\n      } else {\n        const fov = camera.fov * Math.PI / 180;\n        const h2 = 2 * Math.tan(fov / 2) * distance;\n        const w = h2 * (width / height);\n        return {\n          width: w,\n          height: h2,\n          top,\n          left,\n          factor: width / w,\n          distance,\n          aspect\n        };\n      }\n    }\n    let performanceTimeout = void 0;\n    const setPerformanceCurrent = (current) => set((state2) => ({\n      performance: __spreadProps(__spreadValues({}, state2.performance), {\n        current\n      })\n    }));\n    const pointer = new Vector2();\n    const rootState2 = {\n      set,\n      get,\n      // Mock objects that have to be configured\n      gl: null,\n      camera: null,\n      raycaster: null,\n      events: {\n        priority: 1,\n        enabled: true,\n        connected: false\n      },\n      xr: null,\n      scene: null,\n      invalidate: (frames = 1) => invalidate2(get(), frames),\n      advance: (timestamp, runGlobalEffects) => advance2(timestamp, runGlobalEffects, get()),\n      legacy: false,\n      linear: false,\n      flat: false,\n      controls: null,\n      clock: new Clock(),\n      pointer,\n      mouse: pointer,\n      frameloop: \"always\",\n      onPointerMissed: void 0,\n      performance: {\n        current: 1,\n        min: 0.5,\n        max: 1,\n        debounce: 200,\n        regress: () => {\n          const state2 = get();\n          if (performanceTimeout) clearTimeout(performanceTimeout);\n          if (state2.performance.current !== state2.performance.min) setPerformanceCurrent(state2.performance.min);\n          performanceTimeout = setTimeout(() => setPerformanceCurrent(get().performance.max), state2.performance.debounce);\n        }\n      },\n      size: {\n        width: 0,\n        height: 0,\n        top: 0,\n        left: 0,\n        updateStyle: false\n      },\n      viewport: {\n        initialDpr: 0,\n        dpr: 0,\n        width: 0,\n        height: 0,\n        top: 0,\n        left: 0,\n        aspect: 0,\n        distance: 0,\n        factor: 0,\n        getCurrentViewport\n      },\n      setEvents: (events) => set((state2) => __spreadProps(__spreadValues({}, state2), {\n        events: __spreadValues(__spreadValues({}, state2.events), events)\n      })),\n      setSize: (width, height, updateStyle, top, left) => {\n        const camera = get().camera;\n        const size = {\n          width,\n          height,\n          top: top || 0,\n          left: left || 0,\n          updateStyle\n        };\n        set((state2) => ({\n          size,\n          viewport: __spreadValues(__spreadValues({}, state2.viewport), getCurrentViewport(camera, defaultTarget, size))\n        }));\n      },\n      setDpr: (dpr) => set((state2) => {\n        const resolved = calculateDpr(dpr);\n        return {\n          viewport: __spreadProps(__spreadValues({}, state2.viewport), {\n            dpr: resolved,\n            initialDpr: state2.viewport.initialDpr || resolved\n          })\n        };\n      }),\n      setFrameloop: (frameloop = \"always\") => {\n        const clock = get().clock;\n        clock.stop();\n        clock.elapsedTime = 0;\n        if (frameloop !== \"never\") {\n          clock.start();\n          clock.elapsedTime = 0;\n        }\n        set(() => ({\n          frameloop\n        }));\n      },\n      previousRoot: void 0,\n      internal: {\n        active: false,\n        priority: 0,\n        frames: 0,\n        lastEvent: /* @__PURE__ */ React.createRef(),\n        interaction: [],\n        hovered: /* @__PURE__ */ new Map(),\n        subscribers: [],\n        initialClick: [0, 0],\n        initialHits: [],\n        capturedMap: /* @__PURE__ */ new Map(),\n        subscribe: (ref, priority, store) => {\n          const internal = get().internal;\n          internal.priority = internal.priority + (priority > 0 ? 1 : 0);\n          internal.subscribers.push({\n            ref,\n            priority,\n            store\n          });\n          internal.subscribers = internal.subscribers.sort((a, b) => a.priority - b.priority);\n          return () => {\n            const internal2 = get().internal;\n            if (internal2 != null && internal2.subscribers) {\n              internal2.priority = internal2.priority - (priority > 0 ? 1 : 0);\n              internal2.subscribers = internal2.subscribers.filter((s) => s.ref !== ref);\n            }\n          };\n        }\n      }\n    };\n    return rootState2;\n  });\n  const state = rootState.getState();\n  let oldSize = state.size;\n  let oldDpr = state.viewport.dpr;\n  let oldCamera = state.camera;\n  rootState.subscribe(() => {\n    const {\n      camera,\n      size,\n      viewport,\n      gl,\n      set\n    } = rootState.getState();\n    if (size.width !== oldSize.width || size.height !== oldSize.height || viewport.dpr !== oldDpr) {\n      var _size$updateStyle;\n      oldSize = size;\n      oldDpr = viewport.dpr;\n      updateCamera(camera, size);\n      gl.setPixelRatio(viewport.dpr);\n      const updateStyle = (_size$updateStyle = size.updateStyle) != null ? _size$updateStyle : typeof HTMLCanvasElement !== \"undefined\" && gl.domElement instanceof HTMLCanvasElement;\n      gl.setSize(size.width, size.height, updateStyle);\n    }\n    if (camera !== oldCamera) {\n      oldCamera = camera;\n      set((state2) => ({\n        viewport: __spreadValues(__spreadValues({}, state2.viewport), state2.viewport.getCurrentViewport(camera))\n      }));\n    }\n  });\n  rootState.subscribe((state2) => invalidate2(state2));\n  return rootState;\n};\nvar i;\nvar globalEffects = /* @__PURE__ */ new Set();\nvar globalAfterEffects = /* @__PURE__ */ new Set();\nvar globalTailEffects = /* @__PURE__ */ new Set();\nfunction run(effects, timestamp) {\n  if (!effects.size) return;\n  for (const {\n    callback\n  } of effects.values()) {\n    callback(timestamp);\n  }\n}\nfunction flushGlobalEffects(type, timestamp) {\n  switch (type) {\n    case \"before\":\n      return run(globalEffects, timestamp);\n    case \"after\":\n      return run(globalAfterEffects, timestamp);\n    case \"tail\":\n      return run(globalTailEffects, timestamp);\n  }\n}\nvar subscribers;\nvar subscription;\nfunction render$1(timestamp, state, frame) {\n  let delta = state.clock.getDelta();\n  if (state.frameloop === \"never\" && typeof timestamp === \"number\") {\n    delta = timestamp - state.clock.elapsedTime;\n    state.clock.oldTime = state.clock.elapsedTime;\n    state.clock.elapsedTime = timestamp;\n  }\n  subscribers = state.internal.subscribers;\n  for (i = 0; i < subscribers.length; i++) {\n    subscription = subscribers[i];\n    subscription.ref.current(subscription.store.getState(), delta, frame);\n  }\n  if (!state.internal.priority && state.gl.render) state.gl.render(state.scene, state.camera);\n  state.internal.frames = Math.max(0, state.internal.frames - 1);\n  return state.frameloop === \"always\" ? 1 : state.internal.frames;\n}\nfunction createLoop(roots2) {\n  let running = false;\n  let useFrameInProgress = false;\n  let repeat;\n  let frame;\n  let state;\n  function loop(timestamp) {\n    frame = requestAnimationFrame(loop);\n    running = true;\n    repeat = 0;\n    flushGlobalEffects(\"before\", timestamp);\n    useFrameInProgress = true;\n    for (const root of roots2.values()) {\n      var _state$gl$xr;\n      state = root.store.getState();\n      if (state.internal.active && (state.frameloop === \"always\" || state.internal.frames > 0) && !((_state$gl$xr = state.gl.xr) != null && _state$gl$xr.isPresenting)) {\n        repeat += render$1(timestamp, state);\n      }\n    }\n    useFrameInProgress = false;\n    flushGlobalEffects(\"after\", timestamp);\n    if (repeat === 0) {\n      flushGlobalEffects(\"tail\", timestamp);\n      running = false;\n      return cancelAnimationFrame(frame);\n    }\n  }\n  function invalidate2(state2, frames = 1) {\n    var _state$gl$xr2;\n    if (!state2) return roots2.forEach((root) => invalidate2(root.store.getState(), frames));\n    if ((_state$gl$xr2 = state2.gl.xr) != null && _state$gl$xr2.isPresenting || !state2.internal.active || state2.frameloop === \"never\") return;\n    if (frames > 1) {\n      state2.internal.frames = Math.min(60, state2.internal.frames + frames);\n    } else {\n      if (useFrameInProgress) {\n        state2.internal.frames = 2;\n      } else {\n        state2.internal.frames = 1;\n      }\n    }\n    if (!running) {\n      running = true;\n      requestAnimationFrame(loop);\n    }\n  }\n  function advance2(timestamp, runGlobalEffects = true, state2, frame2) {\n    if (runGlobalEffects) flushGlobalEffects(\"before\", timestamp);\n    if (!state2) for (const root of roots2.values()) render$1(timestamp, root.store.getState());\n    else render$1(timestamp, state2, frame2);\n    if (runGlobalEffects) flushGlobalEffects(\"after\", timestamp);\n  }\n  return {\n    loop,\n    invalidate: invalidate2,\n    advance: advance2\n  };\n}\nfunction useStore() {\n  const store = React.useContext(context);\n  if (!store) throw new Error(\"R3F: Hooks can only be used within the Canvas component!\");\n  return store;\n}\nfunction useThree(selector = (state) => state, equalityFn) {\n  return useStore()(selector, equalityFn);\n}\nfunction useFrame(callback, renderPriority = 0) {\n  const store = useStore();\n  const subscribe = store.getState().internal.subscribe;\n  const ref = useMutableCallback(callback);\n  useIsomorphicLayoutEffect2(() => subscribe(ref, renderPriority, store), [renderPriority, subscribe, store]);\n  return null;\n}\nvar memoizedLoaders = /* @__PURE__ */ new WeakMap();\nfunction loadingFn(extensions, onProgress) {\n  return function(Proto, ...input) {\n    let loader = memoizedLoaders.get(Proto);\n    if (!loader) {\n      loader = new Proto();\n      memoizedLoaders.set(Proto, loader);\n    }\n    if (extensions) extensions(loader);\n    return Promise.all(input.map((input2) => new Promise((res, reject) => loader.load(input2, (data) => {\n      if (data.scene) Object.assign(data, buildGraph(data.scene));\n      res(data);\n    }, onProgress, (error2) => reject(new Error(`Could not load ${input2}: ${error2 == null ? void 0 : error2.message}`))))));\n  };\n}\nfunction useLoader(Proto, input, extensions, onProgress) {\n  const keys = Array.isArray(input) ? input : [input];\n  const results = suspend(loadingFn(extensions, onProgress), [Proto, ...keys], {\n    equal: is.equ\n  });\n  return Array.isArray(input) ? results : results[0];\n}\nuseLoader.preload = function(Proto, input, extensions) {\n  const keys = Array.isArray(input) ? input : [input];\n  return preload(loadingFn(extensions), [Proto, ...keys]);\n};\nuseLoader.clear = function(Proto, input) {\n  const keys = Array.isArray(input) ? input : [input];\n  return clear([Proto, ...keys]);\n};\nvar roots = /* @__PURE__ */ new Map();\nvar {\n  invalidate,\n  advance\n} = createLoop(roots);\nvar {\n  reconciler,\n  applyProps\n} = createRenderer(roots, getEventPriority);\nvar shallowLoose = {\n  objects: \"shallow\",\n  strict: false\n};\nvar createRendererInstance = (gl, canvas) => {\n  const customRenderer = typeof gl === \"function\" ? gl(canvas) : gl;\n  if (isRenderer(customRenderer)) return customRenderer;\n  else return new WebGLRenderer(__spreadValues({\n    powerPreference: \"high-performance\",\n    canvas,\n    antialias: true,\n    alpha: true\n  }, gl));\n};\nfunction computeInitialSize(canvas, defaultSize) {\n  const defaultStyle = typeof HTMLCanvasElement !== \"undefined\" && canvas instanceof HTMLCanvasElement;\n  if (defaultSize) {\n    const {\n      width,\n      height,\n      top,\n      left,\n      updateStyle = defaultStyle\n    } = defaultSize;\n    return {\n      width,\n      height,\n      top,\n      left,\n      updateStyle\n    };\n  } else if (typeof HTMLCanvasElement !== \"undefined\" && canvas instanceof HTMLCanvasElement && canvas.parentElement) {\n    const {\n      width,\n      height,\n      top,\n      left\n    } = canvas.parentElement.getBoundingClientRect();\n    return {\n      width,\n      height,\n      top,\n      left,\n      updateStyle: defaultStyle\n    };\n  } else if (typeof OffscreenCanvas !== \"undefined\" && canvas instanceof OffscreenCanvas) {\n    return {\n      width: canvas.width,\n      height: canvas.height,\n      top: 0,\n      left: 0,\n      updateStyle: defaultStyle\n    };\n  }\n  return {\n    width: 0,\n    height: 0,\n    top: 0,\n    left: 0\n  };\n}\nfunction createRoot(canvas) {\n  const prevRoot = roots.get(canvas);\n  const prevFiber = prevRoot == null ? void 0 : prevRoot.fiber;\n  const prevStore = prevRoot == null ? void 0 : prevRoot.store;\n  if (prevRoot) console.warn(\"R3F.createRoot should only be called once!\");\n  const logRecoverableError = typeof reportError === \"function\" ? (\n    // In modern browsers, reportError will dispatch an error event,\n    // emulating an uncaught JavaScript error.\n    reportError\n  ) : (\n    // In older browsers and test environments, fallback to console.error.\n    console.error\n  );\n  const store = prevStore || createStore2(invalidate, advance);\n  const fiber = prevFiber || reconciler.createContainer(store, ConcurrentRoot, null, false, null, \"\", logRecoverableError, null);\n  if (!prevRoot) roots.set(canvas, {\n    fiber,\n    store\n  });\n  let onCreated;\n  let configured = false;\n  let lastCamera;\n  return {\n    configure(props = {}) {\n      let {\n        gl: glConfig,\n        size: propsSize,\n        scene: sceneOptions,\n        events,\n        onCreated: onCreatedCallback,\n        shadows = false,\n        linear = false,\n        flat = false,\n        legacy = false,\n        orthographic = false,\n        frameloop = \"always\",\n        dpr = [1, 2],\n        performance: performance2,\n        raycaster: raycastOptions,\n        camera: cameraOptions,\n        onPointerMissed\n      } = props;\n      let state = store.getState();\n      let gl = state.gl;\n      if (!state.gl) state.set({\n        gl: gl = createRendererInstance(glConfig, canvas)\n      });\n      let raycaster = state.raycaster;\n      if (!raycaster) state.set({\n        raycaster: raycaster = new Raycaster()\n      });\n      const _a2 = raycastOptions || {}, {\n        params\n      } = _a2, options = __objRest(_a2, [\n        \"params\"\n      ]);\n      if (!is.equ(options, raycaster, shallowLoose)) applyProps(raycaster, __spreadValues({}, options));\n      if (!is.equ(params, raycaster.params, shallowLoose)) applyProps(raycaster, {\n        params: __spreadValues(__spreadValues({}, raycaster.params), params)\n      });\n      if (!state.camera || state.camera === lastCamera && !is.equ(lastCamera, cameraOptions, shallowLoose)) {\n        lastCamera = cameraOptions;\n        const isCamera = cameraOptions instanceof Camera;\n        const camera = isCamera ? cameraOptions : orthographic ? new OrthographicCamera(0, 0, 0, 0, 0.1, 1e3) : new PerspectiveCamera(75, 0, 0.1, 1e3);\n        if (!isCamera) {\n          camera.position.z = 5;\n          if (cameraOptions) {\n            applyProps(camera, cameraOptions);\n            if (\"aspect\" in cameraOptions || \"left\" in cameraOptions || \"right\" in cameraOptions || \"bottom\" in cameraOptions || \"top\" in cameraOptions) {\n              camera.manual = true;\n              camera.updateProjectionMatrix();\n            }\n          }\n          if (!state.camera && !(cameraOptions != null && cameraOptions.rotation)) camera.lookAt(0, 0, 0);\n        }\n        state.set({\n          camera\n        });\n        raycaster.camera = camera;\n      }\n      if (!state.scene) {\n        let scene;\n        if (sceneOptions != null && sceneOptions.isScene) {\n          scene = sceneOptions;\n        } else {\n          scene = new Scene();\n          if (sceneOptions) applyProps(scene, sceneOptions);\n        }\n        state.set({\n          scene: prepare(scene)\n        });\n      }\n      if (!state.xr) {\n        var _gl$xr;\n        const handleXRFrame = (timestamp, frame) => {\n          const state2 = store.getState();\n          if (state2.frameloop === \"never\") return;\n          advance(timestamp, true, state2, frame);\n        };\n        const handleSessionChange = () => {\n          const state2 = store.getState();\n          state2.gl.xr.enabled = state2.gl.xr.isPresenting;\n          state2.gl.xr.setAnimationLoop(state2.gl.xr.isPresenting ? handleXRFrame : null);\n          if (!state2.gl.xr.isPresenting) invalidate(state2);\n        };\n        const xr = {\n          connect() {\n            const gl2 = store.getState().gl;\n            gl2.xr.addEventListener(\"sessionstart\", handleSessionChange);\n            gl2.xr.addEventListener(\"sessionend\", handleSessionChange);\n          },\n          disconnect() {\n            const gl2 = store.getState().gl;\n            gl2.xr.removeEventListener(\"sessionstart\", handleSessionChange);\n            gl2.xr.removeEventListener(\"sessionend\", handleSessionChange);\n          }\n        };\n        if (typeof ((_gl$xr = gl.xr) == null ? void 0 : _gl$xr.addEventListener) === \"function\") xr.connect();\n        state.set({\n          xr\n        });\n      }\n      if (gl.shadowMap) {\n        const oldEnabled = gl.shadowMap.enabled;\n        const oldType = gl.shadowMap.type;\n        gl.shadowMap.enabled = !!shadows;\n        if (is.boo(shadows)) {\n          gl.shadowMap.type = PCFSoftShadowMap;\n        } else if (is.str(shadows)) {\n          var _types$shadows;\n          const types = {\n            basic: BasicShadowMap,\n            percentage: PCFShadowMap,\n            soft: PCFSoftShadowMap,\n            variance: VSMShadowMap\n          };\n          gl.shadowMap.type = (_types$shadows = types[shadows]) != null ? _types$shadows : PCFSoftShadowMap;\n        } else if (is.obj(shadows)) {\n          Object.assign(gl.shadowMap, shadows);\n        }\n        if (oldEnabled !== gl.shadowMap.enabled || oldType !== gl.shadowMap.type) gl.shadowMap.needsUpdate = true;\n      }\n      const ColorManagement = getColorManagement();\n      if (ColorManagement) {\n        if (\"enabled\" in ColorManagement) ColorManagement.enabled = !legacy;\n        else if (\"legacyMode\" in ColorManagement) ColorManagement.legacyMode = legacy;\n      }\n      if (!configured) {\n        const LinearEncoding = 3e3;\n        const sRGBEncoding = 3001;\n        applyProps(gl, {\n          outputEncoding: linear ? LinearEncoding : sRGBEncoding,\n          toneMapping: flat ? NoToneMapping : ACESFilmicToneMapping\n        });\n      }\n      if (state.legacy !== legacy) state.set(() => ({\n        legacy\n      }));\n      if (state.linear !== linear) state.set(() => ({\n        linear\n      }));\n      if (state.flat !== flat) state.set(() => ({\n        flat\n      }));\n      if (glConfig && !is.fun(glConfig) && !isRenderer(glConfig) && !is.equ(glConfig, gl, shallowLoose)) applyProps(gl, glConfig);\n      if (events && !state.events.handlers) state.set({\n        events: events(store)\n      });\n      const size = computeInitialSize(canvas, propsSize);\n      if (!is.equ(size, state.size, shallowLoose)) {\n        state.setSize(size.width, size.height, size.updateStyle, size.top, size.left);\n      }\n      if (dpr && state.viewport.dpr !== calculateDpr(dpr)) state.setDpr(dpr);\n      if (state.frameloop !== frameloop) state.setFrameloop(frameloop);\n      if (!state.onPointerMissed) state.set({\n        onPointerMissed\n      });\n      if (performance2 && !is.equ(performance2, state.performance, shallowLoose)) state.set((state2) => ({\n        performance: __spreadValues(__spreadValues({}, state2.performance), performance2)\n      }));\n      onCreated = onCreatedCallback;\n      configured = true;\n      return this;\n    },\n    render(children) {\n      if (!configured) this.configure();\n      reconciler.updateContainer(/* @__PURE__ */ jsx(Provider, {\n        store,\n        children,\n        onCreated,\n        rootElement: canvas\n      }), fiber, null, () => void 0);\n      return store;\n    },\n    unmount() {\n      unmountComponentAtNode(canvas);\n    }\n  };\n}\nfunction Provider({\n  store,\n  children,\n  onCreated,\n  rootElement\n}) {\n  useIsomorphicLayoutEffect2(() => {\n    const state = store.getState();\n    state.set((state2) => ({\n      internal: __spreadProps(__spreadValues({}, state2.internal), {\n        active: true\n      })\n    }));\n    if (onCreated) onCreated(state);\n    if (!store.getState().events.connected) state.events.connect == null ? void 0 : state.events.connect(rootElement);\n  }, []);\n  return /* @__PURE__ */ jsx(context.Provider, {\n    value: store,\n    children\n  });\n}\nfunction unmountComponentAtNode(canvas, callback) {\n  const root = roots.get(canvas);\n  const fiber = root == null ? void 0 : root.fiber;\n  if (fiber) {\n    const state = root == null ? void 0 : root.store.getState();\n    if (state) state.internal.active = false;\n    reconciler.updateContainer(null, fiber, null, () => {\n      if (state) {\n        setTimeout(() => {\n          try {\n            var _state$gl, _state$gl$renderLists, _state$gl2, _state$gl3;\n            state.events.disconnect == null ? void 0 : state.events.disconnect();\n            (_state$gl = state.gl) == null ? void 0 : (_state$gl$renderLists = _state$gl.renderLists) == null ? void 0 : _state$gl$renderLists.dispose == null ? void 0 : _state$gl$renderLists.dispose();\n            (_state$gl2 = state.gl) == null ? void 0 : _state$gl2.forceContextLoss == null ? void 0 : _state$gl2.forceContextLoss();\n            if ((_state$gl3 = state.gl) != null && _state$gl3.xr) state.xr.disconnect();\n            dispose(state);\n            roots.delete(canvas);\n            if (callback) callback(canvas);\n          } catch (e) {\n          }\n        }, 500);\n      }\n    });\n  }\n}\nreconciler.injectIntoDevTools({\n  bundleType: false ? 0 : 1,\n  rendererPackageName: \"@react-three/fiber\",\n  version: React.version\n});\nvar DOM_EVENTS = {\n  onClick: [\"click\", false],\n  onContextMenu: [\"contextmenu\", false],\n  onDoubleClick: [\"dblclick\", false],\n  onWheel: [\"wheel\", true],\n  onPointerDown: [\"pointerdown\", true],\n  onPointerUp: [\"pointerup\", true],\n  onPointerLeave: [\"pointerleave\", true],\n  onPointerMove: [\"pointermove\", true],\n  onPointerCancel: [\"pointercancel\", true],\n  onLostPointerCapture: [\"lostpointercapture\", true]\n};\nfunction createPointerEvents(store) {\n  const {\n    handlePointer\n  } = createEvents(store);\n  return {\n    priority: 1,\n    enabled: true,\n    compute(event, state, previous) {\n      state.pointer.set(event.offsetX / state.size.width * 2 - 1, -(event.offsetY / state.size.height) * 2 + 1);\n      state.raycaster.setFromCamera(state.pointer, state.camera);\n    },\n    connected: void 0,\n    handlers: Object.keys(DOM_EVENTS).reduce((acc, key) => __spreadProps(__spreadValues({}, acc), {\n      [key]: handlePointer(key)\n    }), {}),\n    update: () => {\n      var _internal$lastEvent;\n      const {\n        events,\n        internal\n      } = store.getState();\n      if ((_internal$lastEvent = internal.lastEvent) != null && _internal$lastEvent.current && events.handlers) events.handlers.onPointerMove(internal.lastEvent.current);\n    },\n    connect: (target) => {\n      var _events$handlers;\n      const {\n        set,\n        events\n      } = store.getState();\n      events.disconnect == null ? void 0 : events.disconnect();\n      set((state) => ({\n        events: __spreadProps(__spreadValues({}, state.events), {\n          connected: target\n        })\n      }));\n      Object.entries((_events$handlers = events.handlers) != null ? _events$handlers : []).forEach(([name, event]) => {\n        const [eventName, passive] = DOM_EVENTS[name];\n        target.addEventListener(eventName, event, {\n          passive\n        });\n      });\n    },\n    disconnect: () => {\n      const {\n        set,\n        events\n      } = store.getState();\n      if (events.connected) {\n        var _events$handlers2;\n        Object.entries((_events$handlers2 = events.handlers) != null ? _events$handlers2 : []).forEach(([name, event]) => {\n          if (events && events.connected instanceof HTMLElement) {\n            const [eventName] = DOM_EVENTS[name];\n            events.connected.removeEventListener(eventName, event);\n          }\n        });\n        set((state) => ({\n          events: __spreadProps(__spreadValues({}, state.events), {\n            connected: void 0\n          })\n        }));\n      }\n    }\n  };\n}\n\n// ../../node_modules/.pnpm/@react-three+fiber@8.17.14_@types+react@18.3.18_react-dom@18.3.1_react@18.3.1__react@18.3.1_three@0.169.0/node_modules/@react-three/fiber/dist/react-three-fiber.esm.js\nimport * as React3 from \"react\";\n\n// ../../node_modules/.pnpm/react-use-measure@2.1.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use-measure/dist/index.js\nimport { useState as T, useRef as p, useEffect as u2, useMemo as M2 } from \"react\";\nfunction g2(n, t2) {\n  let o;\n  return (...i2) => {\n    window.clearTimeout(o), o = window.setTimeout(() => n(...i2), t2);\n  };\n}\nfunction j({ debounce: n, scroll: t2, polyfill: o, offsetSize: i2 } = { debounce: 0, scroll: false, offsetSize: false }) {\n  const a = o || (typeof window == \"undefined\" ? class {\n  } : window.ResizeObserver);\n  if (!a) throw new Error(\"This browser does not support ResizeObserver out of the box. See: https://github.com/react-spring/react-use-measure/#resize-observer-polyfills\");\n  const [c, h2] = T({ left: 0, top: 0, width: 0, height: 0, bottom: 0, right: 0, x: 0, y: 0 }), e = p({ element: null, scrollContainers: null, resizeObserver: null, lastBounds: c, orientationHandler: null }), d = n ? typeof n == \"number\" ? n : n.scroll : null, f2 = n ? typeof n == \"number\" ? n : n.resize : null, w = p(false);\n  u2(() => (w.current = true, () => void (w.current = false)));\n  const [z2, m, s] = M2(() => {\n    const r2 = () => {\n      if (!e.current.element) return;\n      const { left: y2, top: C, width: H2, height: O2, bottom: S2, right: x, x: B2, y: R2 } = e.current.element.getBoundingClientRect(), l = { left: y2, top: C, width: H2, height: O2, bottom: S2, right: x, x: B2, y: R2 };\n      e.current.element instanceof HTMLElement && i2 && (l.height = e.current.element.offsetHeight, l.width = e.current.element.offsetWidth), Object.freeze(l), w.current && !D2(e.current.lastBounds, l) && h2(e.current.lastBounds = l);\n    };\n    return [r2, f2 ? g2(r2, f2) : r2, d ? g2(r2, d) : r2];\n  }, [h2, i2, d, f2]);\n  function v2() {\n    e.current.scrollContainers && (e.current.scrollContainers.forEach((r2) => r2.removeEventListener(\"scroll\", s, true)), e.current.scrollContainers = null), e.current.resizeObserver && (e.current.resizeObserver.disconnect(), e.current.resizeObserver = null), e.current.orientationHandler && (\"orientation\" in screen && \"removeEventListener\" in screen.orientation ? screen.orientation.removeEventListener(\"change\", e.current.orientationHandler) : \"onorientationchange\" in window && window.removeEventListener(\"orientationchange\", e.current.orientationHandler));\n  }\n  function b() {\n    e.current.element && (e.current.resizeObserver = new a(s), e.current.resizeObserver.observe(e.current.element), t2 && e.current.scrollContainers && e.current.scrollContainers.forEach((r2) => r2.addEventListener(\"scroll\", s, { capture: true, passive: true })), e.current.orientationHandler = () => {\n      s();\n    }, \"orientation\" in screen && \"addEventListener\" in screen.orientation ? screen.orientation.addEventListener(\"change\", e.current.orientationHandler) : \"onorientationchange\" in window && window.addEventListener(\"orientationchange\", e.current.orientationHandler));\n  }\n  const L2 = (r2) => {\n    !r2 || r2 === e.current.element || (v2(), e.current.element = r2, e.current.scrollContainers = E2(r2), b());\n  };\n  return X(s, !!t2), W(m), u2(() => {\n    v2(), b();\n  }, [t2, s, m]), u2(() => v2, []), [L2, c, z2];\n}\nfunction W(n) {\n  u2(() => {\n    const t2 = n;\n    return window.addEventListener(\"resize\", t2), () => void window.removeEventListener(\"resize\", t2);\n  }, [n]);\n}\nfunction X(n, t2) {\n  u2(() => {\n    if (t2) {\n      const o = n;\n      return window.addEventListener(\"scroll\", o, { capture: true, passive: true }), () => void window.removeEventListener(\"scroll\", o, true);\n    }\n  }, [n, t2]);\n}\nfunction E2(n) {\n  const t2 = [];\n  if (!n || n === document.body) return t2;\n  const { overflow: o, overflowX: i2, overflowY: a } = window.getComputedStyle(n);\n  return [o, i2, a].some((c) => c === \"auto\" || c === \"scroll\") && t2.push(n), [...t2, ...E2(n.parentElement)];\n}\nvar k2 = [\"x\", \"y\", \"top\", \"bottom\", \"left\", \"right\", \"width\", \"height\"];\nvar D2 = (n, t2) => k2.every((o) => n[o] === t2[o]);\n\n// ../../node_modules/.pnpm/its-fine@1.2.5_@types+react@18.3.18_react@18.3.1/node_modules/its-fine/dist/index.js\nimport * as React2 from \"react\";\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues2 = (a, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp.call(b, prop))\n      __defNormalProp(a, prop, b[prop]);\n  if (__getOwnPropSymbols)\n    for (var prop of __getOwnPropSymbols(b)) {\n      if (__propIsEnum.call(b, prop))\n        __defNormalProp(a, prop, b[prop]);\n    }\n  return a;\n};\nvar __spreadProps2 = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar _a;\nvar _b;\nvar useIsomorphicLayoutEffect3 = typeof window !== \"undefined\" && (((_a = window.document) == null ? void 0 : _a.createElement) || ((_b = window.navigator) == null ? void 0 : _b.product) === \"ReactNative\") ? React2.useLayoutEffect : React2.useEffect;\nfunction traverseFiber(fiber, ascending, selector) {\n  if (!fiber)\n    return;\n  if (selector(fiber) === true)\n    return fiber;\n  let child = ascending ? fiber.return : fiber.child;\n  while (child) {\n    const match = traverseFiber(child, ascending, selector);\n    if (match)\n      return match;\n    child = ascending ? null : child.sibling;\n  }\n}\nfunction wrapContext(context2) {\n  try {\n    return Object.defineProperties(context2, {\n      _currentRenderer: {\n        get() {\n          return null;\n        },\n        set() {\n        }\n      },\n      _currentRenderer2: {\n        get() {\n          return null;\n        },\n        set() {\n        }\n      }\n    });\n  } catch (_) {\n    return context2;\n  }\n}\nvar error = console.error;\nconsole.error = function() {\n  const message = [...arguments].join(\"\");\n  if ((message == null ? void 0 : message.startsWith(\"Warning:\")) && message.includes(\"useContext\")) {\n    console.error = error;\n    return;\n  }\n  return error.apply(this, arguments);\n};\nvar FiberContext = wrapContext(React2.createContext(null));\nvar FiberProvider = class extends React2.Component {\n  render() {\n    return /* @__PURE__ */ React2.createElement(FiberContext.Provider, {\n      value: this._reactInternals\n    }, this.props.children);\n  }\n};\nfunction useFiber() {\n  const root = React2.useContext(FiberContext);\n  if (root === null)\n    throw new Error(\"its-fine: useFiber must be called within a <FiberProvider />!\");\n  const id = React2.useId();\n  const fiber = React2.useMemo(() => {\n    for (const maybeFiber of [root, root == null ? void 0 : root.alternate]) {\n      if (!maybeFiber)\n        continue;\n      const fiber2 = traverseFiber(maybeFiber, false, (node) => {\n        let state = node.memoizedState;\n        while (state) {\n          if (state.memoizedState === id)\n            return true;\n          state = state.next;\n        }\n      });\n      if (fiber2)\n        return fiber2;\n    }\n  }, [root, id]);\n  return fiber;\n}\nfunction useContextMap() {\n  const fiber = useFiber();\n  const [contextMap] = React2.useState(() => /* @__PURE__ */ new Map());\n  contextMap.clear();\n  let node = fiber;\n  while (node) {\n    if (node.type && typeof node.type === \"object\") {\n      const enableRenderableContext = node.type._context === void 0 && node.type.Provider === node.type;\n      const context2 = enableRenderableContext ? node.type : node.type._context;\n      if (context2 && context2 !== FiberContext && !contextMap.has(context2)) {\n        contextMap.set(context2, React2.useContext(wrapContext(context2)));\n      }\n    }\n    node = node.return;\n  }\n  return contextMap;\n}\nfunction useContextBridge() {\n  const contextMap = useContextMap();\n  return React2.useMemo(\n    () => Array.from(contextMap.keys()).reduce(\n      (Prev, context2) => (props) => /* @__PURE__ */ React2.createElement(Prev, null, /* @__PURE__ */ React2.createElement(context2.Provider, __spreadProps2(__spreadValues2({}, props), {\n        value: contextMap.get(context2)\n      }))),\n      (props) => /* @__PURE__ */ React2.createElement(FiberProvider, __spreadValues2({}, props))\n    ),\n    [contextMap]\n  );\n}\n\n// ../../node_modules/.pnpm/@react-three+fiber@8.17.14_@types+react@18.3.18_react-dom@18.3.1_react@18.3.1__react@18.3.1_three@0.169.0/node_modules/@react-three/fiber/dist/react-three-fiber.esm.js\nimport { jsx as jsx2 } from \"react/jsx-runtime\";\nimport \"react-reconciler/constants\";\nimport \"react-reconciler\";\nvar CanvasImpl = /* @__PURE__ */ React3.forwardRef(function Canvas(_a2, forwardedRef) {\n  var _b2 = _a2, {\n    children,\n    fallback,\n    resize,\n    style,\n    gl,\n    events = createPointerEvents,\n    eventSource,\n    eventPrefix,\n    shadows,\n    linear,\n    flat,\n    legacy,\n    orthographic,\n    frameloop,\n    dpr,\n    performance: performance2,\n    raycaster,\n    camera,\n    scene,\n    onPointerMissed,\n    onCreated\n  } = _b2, props = __objRest(_b2, [\n    \"children\",\n    \"fallback\",\n    \"resize\",\n    \"style\",\n    \"gl\",\n    \"events\",\n    \"eventSource\",\n    \"eventPrefix\",\n    \"shadows\",\n    \"linear\",\n    \"flat\",\n    \"legacy\",\n    \"orthographic\",\n    \"frameloop\",\n    \"dpr\",\n    \"performance\",\n    \"raycaster\",\n    \"camera\",\n    \"scene\",\n    \"onPointerMissed\",\n    \"onCreated\"\n  ]);\n  React3.useMemo(() => extend(three_module_exports), []);\n  const Bridge = useContextBridge();\n  const [containerRef, containerRect] = j(__spreadValues({\n    scroll: true,\n    debounce: {\n      scroll: 50,\n      resize: 0\n    }\n  }, resize));\n  const canvasRef = React3.useRef(null);\n  const divRef = React3.useRef(null);\n  React3.useImperativeHandle(forwardedRef, () => canvasRef.current);\n  const handlePointerMissed = useMutableCallback(onPointerMissed);\n  const [block, setBlock] = React3.useState(false);\n  const [error2, setError] = React3.useState(false);\n  if (block) throw block;\n  if (error2) throw error2;\n  const root = React3.useRef(null);\n  useIsomorphicLayoutEffect2(() => {\n    const canvas = canvasRef.current;\n    if (containerRect.width > 0 && containerRect.height > 0 && canvas) {\n      if (!root.current) root.current = createRoot(canvas);\n      root.current.configure({\n        gl,\n        events,\n        shadows,\n        linear,\n        flat,\n        legacy,\n        orthographic,\n        frameloop,\n        dpr,\n        performance: performance2,\n        raycaster,\n        camera,\n        scene,\n        size: containerRect,\n        // Pass mutable reference to onPointerMissed so it's free to update\n        onPointerMissed: (...args) => handlePointerMissed.current == null ? void 0 : handlePointerMissed.current(...args),\n        onCreated: (state) => {\n          state.events.connect == null ? void 0 : state.events.connect(eventSource ? isRef(eventSource) ? eventSource.current : eventSource : divRef.current);\n          if (eventPrefix) {\n            state.setEvents({\n              compute: (event, state2) => {\n                const x = event[eventPrefix + \"X\"];\n                const y2 = event[eventPrefix + \"Y\"];\n                state2.pointer.set(x / state2.size.width * 2 - 1, -(y2 / state2.size.height) * 2 + 1);\n                state2.raycaster.setFromCamera(state2.pointer, state2.camera);\n              }\n            });\n          }\n          onCreated == null ? void 0 : onCreated(state);\n        }\n      });\n      root.current.render(/* @__PURE__ */ jsx2(Bridge, {\n        children: /* @__PURE__ */ jsx2(ErrorBoundary, {\n          set: setError,\n          children: /* @__PURE__ */ jsx2(React3.Suspense, {\n            fallback: /* @__PURE__ */ jsx2(Block, {\n              set: setBlock\n            }),\n            children\n          })\n        })\n      }));\n    }\n  });\n  React3.useEffect(() => {\n    const canvas = canvasRef.current;\n    if (canvas) return () => unmountComponentAtNode(canvas);\n  }, []);\n  const pointerEvents = eventSource ? \"none\" : \"auto\";\n  return /* @__PURE__ */ jsx2(\"div\", __spreadProps(__spreadValues({\n    ref: divRef,\n    style: __spreadValues({\n      position: \"relative\",\n      width: \"100%\",\n      height: \"100%\",\n      overflow: \"hidden\",\n      pointerEvents\n    }, style)\n  }, props), {\n    children: /* @__PURE__ */ jsx2(\"div\", {\n      ref: containerRef,\n      style: {\n        width: \"100%\",\n        height: \"100%\"\n      },\n      children: /* @__PURE__ */ jsx2(\"canvas\", {\n        ref: canvasRef,\n        style: {\n          display: \"block\"\n        },\n        children: fallback\n      })\n    })\n  }));\n});\nvar Canvas2 = /* @__PURE__ */ React3.forwardRef(function CanvasWrapper(props, ref) {\n  return /* @__PURE__ */ jsx2(FiberProvider, {\n    children: /* @__PURE__ */ jsx2(CanvasImpl, __spreadProps(__spreadValues({}, props), {\n      ref\n    }))\n  });\n});\n\nexport {\n  extend,\n  useThree,\n  useFrame,\n  useLoader,\n  Canvas2 as Canvas\n};\n/*! Bundled license information:\n\nscheduler/cjs/scheduler.development.js:\n  (**\n   * @license React\n   * scheduler.development.js\n   *\n   * Copyright (c) Facebook, Inc. and its affiliates.\n   *\n   * This source code is licensed under the MIT license found in the\n   * LICENSE file in the root directory of this source tree.\n   *)\n\nscheduler/cjs/scheduler.production.min.js:\n  (**\n   * @license React\n   * scheduler.production.min.js\n   *\n   * Copyright (c) Facebook, Inc. and its affiliates.\n   *\n   * This source code is licensed under the MIT license found in the\n   * LICENSE file in the root directory of this source tree.\n   *)\n*/\n","// src/consts.ts\nvar canvasProps = (pixelDensity, fov) => ({\n  dpr: pixelDensity,\n  //device pixel ratio - 1 default and fast, 2 detailed and slow\n  // mode: 'concurrent' as 'legacy' | 'blocking' | 'concurrent',\n  camera: { fov },\n  // could be replaced with zoom or distance?\n  linear: true,\n  //sRGBEncoding\n  flat: true,\n  //ACESFilmicToneMapping\n  gl: { preserveDrawingBuffer: true }\n  // to capture the canvas (Figma Plugin)\n});\nvar links = [\n  {\n    title: \"Figma  \\u2192\",\n    link: \"https://www.figma.com/community/plugin/958202093377483021/Mesh-Gradient\"\n  },\n  {\n    title: \"React  \\u2192\",\n    link: \"https://codesandbox.io/s/optimistic-benji-pw64i\"\n  },\n  {\n    title: \"Framer  \\u2192\",\n    link: \"https://framer.com/projects/ShaderGradient--7fmA9c0AApv3vyjCPpS3-emceg\"\n  }\n];\nvar defaultPlanesZoom = 1;\nvar defaultSphereDistance = 14;\nvar zoomOutPlanes = { zoom: 1, distance: 14 };\nvar zoomOutSphere = { zoom: 5, distance: 14 };\nvar aboutAngles = [190, 140];\nvar aboutPositions = [0, 10, 0];\nvar aboutRotations = [0, 10, 50];\nvar aboutMobilePositions = [0, 20, 0];\nvar hdrBase = \"https://ruucm.github.io/shadergradient/shadergradient@1.0.0\";\nvar mainLoading = {\n  // mesh animation\n  meshDelay: 0,\n  meshDur: 0,\n  // rotation animation\n  rotDelay: 1.7,\n  rotDur: 1,\n  // position animation\n  posDelay: 1.3,\n  posDur: 2.2,\n  logoTransition: 3.1,\n  // Timing for the logo\n  text: 2.5,\n  // Timing for the preset title appearing\n  // mesh\n  to: 1\n  // end factor (0 -> 1) for the mesh noisestrength\n};\nvar envBasePath = \"https://ruucm.github.io/shadergradient/shadergradient@1.0.0/hdr/\";\nvar STRIPE_BUY_YEARLY_URL = \"https://buy.stripe.com/00g5kV0g553QcjC9AB\";\nvar STRIPE_BUY_MONTHLY_URL = \"https://buy.stripe.com/fZe5kVd2R53QcjC7su\";\nvar STRIPE_BILLING_URL = \"https://billing.stripe.com/p/login/aEU8Audql6LagDe9AA\";\n\nexport {\n  canvasProps,\n  links,\n  defaultPlanesZoom,\n  defaultSphereDistance,\n  zoomOutPlanes,\n  zoomOutSphere,\n  aboutAngles,\n  aboutPositions,\n  aboutRotations,\n  aboutMobilePositions,\n  hdrBase,\n  mainLoading,\n  envBasePath,\n  STRIPE_BUY_YEARLY_URL,\n  STRIPE_BUY_MONTHLY_URL,\n  STRIPE_BILLING_URL\n};\n","import {\n  Canvas\n} from \"./chunk-WS7WB67W.mjs\";\nimport {\n  ShaderChunk\n} from \"./chunk-Z4XR7UL5.mjs\";\nimport {\n  canvasProps\n} from \"./chunk-SX7QUDKQ.mjs\";\nimport {\n  __spreadProps,\n  __spreadValues\n} from \"./chunk-5BEQP2BQ.mjs\";\n\n// src/ShaderGradientCanvas.tsx\nimport { useEffect } from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction ShaderGradientCanvas({\n  children,\n  style = {},\n  pixelDensity = 1,\n  fov = 45,\n  pointerEvents,\n  className\n}) {\n  useShaderChunkFix();\n  return /* @__PURE__ */ jsx(\n    Canvas,\n    __spreadProps(__spreadValues({\n      style: __spreadProps(__spreadValues({}, style), { pointerEvents }),\n      resize: { offsetSize: true },\n      className\n    }, canvasProps(pixelDensity, fov)), {\n      children\n    })\n  );\n}\nfunction useShaderChunkFix() {\n  useEffect(() => {\n    ShaderChunk[\"uv2_pars_vertex\"] = ``;\n    ShaderChunk[\"uv2_vertex\"] = ``;\n    ShaderChunk[\"uv2_pars_fragment\"] = ``;\n    ShaderChunk[\"encodings_fragment\"] = ``;\n  }, []);\n}\n\nexport {\n  ShaderGradientCanvas\n};\n","import {\n  BufferGeometry,\n  Float32BufferAttribute,\n  Mesh,\n  OrthographicCamera\n} from \"./chunk-Z4XR7UL5.mjs\";\n\n// src/ShaderGradient/PostProcessing/lib/pp/from-threejs/postprocessing/Pass.js\nvar Pass = class {\n  constructor() {\n    this.enabled = true;\n    this.needsSwap = true;\n    this.clear = false;\n    this.renderToScreen = false;\n  }\n  setSize() {\n  }\n  render() {\n    console.error(\"THREE.Pass: .render() must be implemented in derived pass.\");\n  }\n};\nvar _camera = new OrthographicCamera(-1, 1, 1, -1, 0, 1);\nvar _geometry = new BufferGeometry();\n_geometry.setAttribute(\n  \"position\",\n  new Float32BufferAttribute([-1, 3, 0, -1, -1, 0, 3, -1, 0], 3)\n);\n_geometry.setAttribute(\"uv\", new Float32BufferAttribute([0, 2, 0, 0, 2, 0], 2));\nvar FullScreenQuad = class {\n  constructor(material) {\n    this._mesh = new Mesh(_geometry, material);\n  }\n  dispose() {\n    this._mesh.geometry.dispose();\n  }\n  render(renderer) {\n    renderer.render(this._mesh, _camera);\n  }\n  get material() {\n    return this._mesh.material;\n  }\n  set material(value) {\n    this._mesh.material = value;\n  }\n};\n\nexport {\n  Pass,\n  FullScreenQuad\n};\n","import {\n  Pass\n} from \"./chunk-4Z3JUAHA.mjs\";\n\n// src/ShaderGradient/PostProcessing/lib/pp/from-threejs/postprocessing/MaskPass.js\nvar MaskPass = class extends Pass {\n  constructor(scene, camera) {\n    super();\n    this.scene = scene;\n    this.camera = camera;\n    this.clear = true;\n    this.needsSwap = false;\n    this.inverse = false;\n  }\n  render(renderer, writeBuffer, readBuffer) {\n    const context = renderer.getContext();\n    const state = renderer.state;\n    state.buffers.color.setMask(false);\n    state.buffers.depth.setMask(false);\n    state.buffers.color.setLocked(true);\n    state.buffers.depth.setLocked(true);\n    let writeValue, clearValue;\n    if (this.inverse) {\n      writeValue = 0;\n      clearValue = 1;\n    } else {\n      writeValue = 1;\n      clearValue = 0;\n    }\n    state.buffers.stencil.setTest(true);\n    state.buffers.stencil.setOp(\n      context.REPLACE,\n      context.REPLACE,\n      context.REPLACE\n    );\n    state.buffers.stencil.setFunc(context.ALWAYS, writeValue, 4294967295);\n    state.buffers.stencil.setClear(clearValue);\n    state.buffers.stencil.setLocked(true);\n    renderer.setRenderTarget(readBuffer);\n    if (this.clear) renderer.clear();\n    renderer.render(this.scene, this.camera);\n    renderer.setRenderTarget(writeBuffer);\n    if (this.clear) renderer.clear();\n    renderer.render(this.scene, this.camera);\n    state.buffers.color.setLocked(false);\n    state.buffers.depth.setLocked(false);\n    state.buffers.stencil.setLocked(false);\n    state.buffers.stencil.setFunc(context.EQUAL, 1, 4294967295);\n    state.buffers.stencil.setOp(context.KEEP, context.KEEP, context.KEEP);\n    state.buffers.stencil.setLocked(true);\n  }\n};\nvar ClearMaskPass = class extends Pass {\n  constructor() {\n    super();\n    this.needsSwap = false;\n  }\n  render(renderer) {\n    renderer.state.buffers.stencil.setLocked(false);\n    renderer.state.buffers.stencil.setTest(false);\n  }\n};\n\nexport {\n  MaskPass,\n  ClearMaskPass\n};\n","import {\n  FullScreenQuad,\n  Pass\n} from \"./chunk-4Z3JUAHA.mjs\";\nimport {\n  ShaderMaterial,\n  UniformsUtils\n} from \"./chunk-Z4XR7UL5.mjs\";\n\n// src/ShaderGradient/PostProcessing/lib/pp/from-threejs/postprocessing/ShaderPass.js\nvar ShaderPass = class extends Pass {\n  constructor(shader, textureID) {\n    super();\n    this.textureID = textureID !== void 0 ? textureID : \"tDiffuse\";\n    if (shader instanceof ShaderMaterial) {\n      this.uniforms = shader.uniforms;\n      this.material = shader;\n    } else if (shader) {\n      this.uniforms = UniformsUtils.clone(shader.uniforms);\n      this.material = new ShaderMaterial({\n        defines: Object.assign({}, shader.defines),\n        uniforms: this.uniforms,\n        vertexShader: shader.vertexShader,\n        fragmentShader: shader.fragmentShader\n      });\n    }\n    this.fsQuad = new FullScreenQuad(this.material);\n  }\n  render(renderer, writeBuffer, readBuffer) {\n    if (this.uniforms[this.textureID]) {\n      this.uniforms[this.textureID].value = readBuffer.texture;\n    }\n    this.fsQuad.material = this.material;\n    if (this.renderToScreen) {\n      renderer.setRenderTarget(null);\n      this.fsQuad.render(renderer);\n    } else {\n      renderer.setRenderTarget(writeBuffer);\n      if (this.clear)\n        renderer.clear(\n          renderer.autoClearColor,\n          renderer.autoClearDepth,\n          renderer.autoClearStencil\n        );\n      this.fsQuad.render(renderer);\n    }\n  }\n};\n\nexport {\n  ShaderPass\n};\n","// src/ShaderGradient/PostProcessing/lib/pp/from-threejs/shaders/CopyShader.js\nvar CopyShader = {\n  uniforms: {\n    tDiffuse: { value: null },\n    opacity: { value: 1 }\n  },\n  vertexShader: (\n    /* glsl */\n    `\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvUv = uv;\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t}`\n  ),\n  fragmentShader: (\n    /* glsl */\n    `\n\n\t\tuniform float opacity;\n\n\t\tuniform sampler2D tDiffuse;\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvec4 texel = texture2D( tDiffuse, vUv );\n\t\t\tgl_FragColor = opacity * texel;\n\n\t\t}`\n  )\n};\n\nexport {\n  CopyShader\n};\n","import {\n  ClearMaskPass,\n  MaskPass\n} from \"./chunk-FZIV7POA.mjs\";\nimport {\n  ShaderPass\n} from \"./chunk-YUIDVF63.mjs\";\nimport {\n  CopyShader\n} from \"./chunk-USQFKVUW.mjs\";\nimport {\n  BufferGeometry,\n  Clock,\n  Float32BufferAttribute,\n  LinearFilter,\n  Mesh,\n  OrthographicCamera,\n  RGBAFormat,\n  Vector2,\n  WebGLRenderTarget\n} from \"./chunk-Z4XR7UL5.mjs\";\n\n// src/ShaderGradient/PostProcessing/lib/pp/from-threejs/postprocessing/EffectComposer.js\nvar EffectComposer = class {\n  constructor(renderer, renderTarget) {\n    this.renderer = renderer;\n    if (renderTarget === void 0) {\n      const parameters = {\n        minFilter: LinearFilter,\n        magFilter: LinearFilter,\n        format: RGBAFormat\n      };\n      const size = renderer.getSize(new Vector2());\n      this._pixelRatio = renderer.getPixelRatio();\n      this._width = size.width;\n      this._height = size.height;\n      renderTarget = new WebGLRenderTarget(\n        this._width * this._pixelRatio,\n        this._height * this._pixelRatio,\n        parameters\n      );\n      renderTarget.texture.name = \"EffectComposer.rt1\";\n    } else {\n      this._pixelRatio = 1;\n      this._width = renderTarget.width;\n      this._height = renderTarget.height;\n    }\n    this.renderTarget1 = renderTarget;\n    this.renderTarget2 = renderTarget.clone();\n    this.renderTarget2.texture.name = \"EffectComposer.rt2\";\n    this.writeBuffer = this.renderTarget1;\n    this.readBuffer = this.renderTarget2;\n    this.renderToScreen = true;\n    this.passes = [];\n    if (CopyShader === void 0) {\n      console.error(\"THREE.EffectComposer relies on CopyShader\");\n    }\n    if (ShaderPass === void 0) {\n      console.error(\"THREE.EffectComposer relies on ShaderPass\");\n    }\n    this.copyPass = new ShaderPass(CopyShader);\n    this.clock = new Clock();\n  }\n  swapBuffers() {\n    const tmp = this.readBuffer;\n    this.readBuffer = this.writeBuffer;\n    this.writeBuffer = tmp;\n  }\n  addPass(pass) {\n    this.passes.push(pass);\n    pass.setSize(\n      this._width * this._pixelRatio,\n      this._height * this._pixelRatio\n    );\n  }\n  insertPass(pass, index) {\n    this.passes.splice(index, 0, pass);\n    pass.setSize(\n      this._width * this._pixelRatio,\n      this._height * this._pixelRatio\n    );\n  }\n  removePass(pass) {\n    const index = this.passes.indexOf(pass);\n    if (index !== -1) {\n      this.passes.splice(index, 1);\n    }\n  }\n  isLastEnabledPass(passIndex) {\n    for (let i = passIndex + 1; i < this.passes.length; i++) {\n      if (this.passes[i].enabled) {\n        return false;\n      }\n    }\n    return true;\n  }\n  render(deltaTime) {\n    if (deltaTime === void 0) {\n      deltaTime = this.clock.getDelta();\n    }\n    const currentRenderTarget = this.renderer.getRenderTarget();\n    let maskActive = false;\n    for (let i = 0, il = this.passes.length; i < il; i++) {\n      const pass = this.passes[i];\n      if (pass.enabled === false) continue;\n      pass.renderToScreen = this.renderToScreen && this.isLastEnabledPass(i);\n      pass.render(\n        this.renderer,\n        this.writeBuffer,\n        this.readBuffer,\n        deltaTime,\n        maskActive\n      );\n      if (pass.needsSwap) {\n        if (maskActive) {\n          const context = this.renderer.getContext();\n          const stencil = this.renderer.state.buffers.stencil;\n          stencil.setFunc(context.NOTEQUAL, 1, 4294967295);\n          this.copyPass.render(\n            this.renderer,\n            this.writeBuffer,\n            this.readBuffer,\n            deltaTime\n          );\n          stencil.setFunc(context.EQUAL, 1, 4294967295);\n        }\n        this.swapBuffers();\n      }\n      if (MaskPass !== void 0) {\n        if (pass instanceof MaskPass) {\n          maskActive = true;\n        } else if (pass instanceof ClearMaskPass) {\n          maskActive = false;\n        }\n      }\n    }\n    this.renderer.setRenderTarget(currentRenderTarget);\n  }\n  reset(renderTarget) {\n    if (renderTarget === void 0) {\n      const size = this.renderer.getSize(new Vector2());\n      this._pixelRatio = this.renderer.getPixelRatio();\n      this._width = size.width;\n      this._height = size.height;\n      renderTarget = this.renderTarget1.clone();\n      renderTarget.setSize(\n        this._width * this._pixelRatio,\n        this._height * this._pixelRatio\n      );\n    }\n    this.renderTarget1.dispose();\n    this.renderTarget2.dispose();\n    this.renderTarget1 = renderTarget;\n    this.renderTarget2 = renderTarget.clone();\n    this.writeBuffer = this.renderTarget1;\n    this.readBuffer = this.renderTarget2;\n  }\n  setSize(width, height) {\n    this._width = width;\n    this._height = height;\n    const effectiveWidth = this._width * this._pixelRatio;\n    const effectiveHeight = this._height * this._pixelRatio;\n    this.renderTarget1.setSize(effectiveWidth, effectiveHeight);\n    this.renderTarget2.setSize(effectiveWidth, effectiveHeight);\n    for (let i = 0; i < this.passes.length; i++) {\n      this.passes[i].setSize(effectiveWidth, effectiveHeight);\n    }\n  }\n  setPixelRatio(pixelRatio) {\n    this._pixelRatio = pixelRatio;\n    this.setSize(this._width, this._height);\n  }\n};\nvar Pass = class {\n  constructor() {\n    this.enabled = true;\n    this.needsSwap = true;\n    this.clear = false;\n    this.renderToScreen = false;\n  }\n  setSize() {\n  }\n  render() {\n    console.error(\"THREE.Pass: .render() must be implemented in derived pass.\");\n  }\n};\nvar _camera = new OrthographicCamera(-1, 1, 1, -1, 0, 1);\nvar _geometry = new BufferGeometry();\n_geometry.setAttribute(\n  \"position\",\n  new Float32BufferAttribute([-1, 3, 0, -1, -1, 0, 3, -1, 0], 3)\n);\n_geometry.setAttribute(\"uv\", new Float32BufferAttribute([0, 2, 0, 0, 2, 0], 2));\nvar FullScreenQuad = class {\n  constructor(material) {\n    this._mesh = new Mesh(_geometry, material);\n  }\n  dispose() {\n    this._mesh.geometry.dispose();\n  }\n  render(renderer) {\n    renderer.render(this._mesh, _camera);\n  }\n  get material() {\n    return this._mesh.material;\n  }\n  set material(value) {\n    this._mesh.material = value;\n  }\n};\n\nexport {\n  EffectComposer,\n  Pass,\n  FullScreenQuad\n};\n","import {\n  Pass\n} from \"./chunk-4Z3JUAHA.mjs\";\nimport {\n  Color\n} from \"./chunk-Z4XR7UL5.mjs\";\n\n// src/ShaderGradient/PostProcessing/lib/pp/from-threejs/postprocessing/RenderPass.js\nvar RenderPass = class extends Pass {\n  constructor(scene, camera, overrideMaterial, clearColor, clearAlpha) {\n    super();\n    this.scene = scene;\n    this.camera = camera;\n    this.overrideMaterial = overrideMaterial;\n    this.clearColor = clearColor;\n    this.clearAlpha = clearAlpha !== void 0 ? clearAlpha : 0;\n    this.clear = true;\n    this.clearDepth = false;\n    this.needsSwap = false;\n    this._oldClearColor = new Color();\n  }\n  render(renderer, writeBuffer, readBuffer) {\n    const oldAutoClear = renderer.autoClear;\n    renderer.autoClear = false;\n    let oldClearAlpha, oldOverrideMaterial;\n    if (this.overrideMaterial !== void 0) {\n      oldOverrideMaterial = this.scene.overrideMaterial;\n      this.scene.overrideMaterial = this.overrideMaterial;\n    }\n    if (this.clearColor) {\n      renderer.getClearColor(this._oldClearColor);\n      oldClearAlpha = renderer.getClearAlpha();\n      renderer.setClearColor(this.clearColor, this.clearAlpha);\n    }\n    if (this.clearDepth) {\n      renderer.clearDepth();\n    }\n    renderer.setRenderTarget(this.renderToScreen ? null : readBuffer);\n    if (this.clear)\n      renderer.clear(\n        renderer.autoClearColor,\n        renderer.autoClearDepth,\n        renderer.autoClearStencil\n      );\n    renderer.render(this.scene, this.camera);\n    if (this.clearColor) {\n      renderer.setClearColor(this._oldClearColor, oldClearAlpha);\n    }\n    if (this.overrideMaterial !== void 0) {\n      this.scene.overrideMaterial = oldOverrideMaterial;\n    }\n    renderer.autoClear = oldAutoClear;\n  }\n};\n\nexport {\n  RenderPass\n};\n","// src/ShaderGradient/PostProcessing/lib/pp/HalftoneShader.js\nvar HalftoneShader = {\n  uniforms: {\n    tDiffuse: { value: null },\n    shape: { value: 1 },\n    radius: { value: 2 },\n    rotateR: { value: Math.PI / 12 * 1 },\n    rotateG: { value: Math.PI / 12 * 2 },\n    rotateB: { value: Math.PI / 12 * 3 },\n    scatter: { value: 1 },\n    width: { value: 20 },\n    height: { value: 20 },\n    blending: { value: 1 },\n    blendingMode: { value: 1 },\n    greyscale: { value: false },\n    disable: { value: false }\n  },\n  vertexShader: (\n    /* glsl */\n    `\n\n\t\tvarying vec2 vUV;\n\t\tvarying vec3 vPosition;\n\n\t\tvoid main() {\n\n\t\t\tvUV = uv;\n\t\t\tvPosition = position;\n\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n\n\t\t}`\n  ),\n  fragmentShader: (\n    /* glsl */\n    `\n\n\t\t#define SQRT2_MINUS_ONE 0.41421356\n\t\t#define SQRT2_HALF_MINUS_ONE 0.20710678\n\t\t#define PI2 6.28318531\n\t\t#define SHAPE_DOT 1\n\t\t#define SHAPE_ELLIPSE 2\n\t\t#define SHAPE_LINE 3\n\t\t#define SHAPE_SQUARE 4\n\t\t#define BLENDING_LINEAR 1\n\t\t#define BLENDING_MULTIPLY 2\n\t\t#define BLENDING_ADD 3\n\t\t#define BLENDING_LIGHTER 4\n\t\t#define BLENDING_DARKER 5\n\t\tuniform sampler2D tDiffuse;\n\t\tuniform float radius;\n\t\tuniform float rotateR;\n\t\tuniform float rotateG;\n\t\tuniform float rotateB;\n\t\tuniform float scatter;\n\t\tuniform float width;\n\t\tuniform float height;\n\t\tuniform int shape;\n\t\tuniform bool disable;\n\t\tuniform float blending;\n\t\tuniform int blendingMode;\n\t\tvarying vec2 vUV;\n\t\tvarying vec3 vPosition;\n\t\tuniform bool greyscale;\n\t\tconst int samples = 8;\n\n\t\tfloat blend( float a, float b, float t ) {\n\n\t\t// linear blend\n\t\t\treturn a * ( 1.0 - t ) + b * t;\n\n\t\t}\n\n\t\tfloat hypot( float x, float y ) {\n\n\t\t// vector magnitude\n\t\t\treturn sqrt( x * x + y * y );\n\n\t\t}\n\n\t\tfloat rand( vec2 seed ){\n\n\t\t// get pseudo-random number\n\t\t\treturn fract( sin( dot( seed.xy, vec2( 12.9898, 78.233 ) ) ) * 43758.5453 );\n\n\t\t}\n\n\t\tfloat distanceToDotRadius( float channel, vec2 coord, vec2 normal, vec2 p, float angle, float rad_max ) {\n\n\t\t// apply shape-specific transforms\n\t\t\tfloat dist = hypot( coord.x - p.x, coord.y - p.y );\n\t\t\tfloat rad = channel;\n\n\t\t\tif ( shape == SHAPE_DOT ) {\n\n\t\t\t\trad = pow( abs( rad ), 1.125 ) * rad_max;\n\n\t\t\t} else if ( shape == SHAPE_ELLIPSE ) {\n\n\t\t\t\trad = pow( abs( rad ), 1.125 ) * rad_max;\n\n\t\t\t\tif ( dist != 0.0 ) {\n\t\t\t\t\tfloat dot_p = abs( ( p.x - coord.x ) / dist * normal.x + ( p.y - coord.y ) / dist * normal.y );\n\t\t\t\t\tdist = ( dist * ( 1.0 - SQRT2_HALF_MINUS_ONE ) ) + dot_p * dist * SQRT2_MINUS_ONE;\n\t\t\t\t}\n\n\t\t\t} else if ( shape == SHAPE_LINE ) {\n\n\t\t\t\trad = pow( abs( rad ), 1.5) * rad_max;\n\t\t\t\tfloat dot_p = ( p.x - coord.x ) * normal.x + ( p.y - coord.y ) * normal.y;\n\t\t\t\tdist = hypot( normal.x * dot_p, normal.y * dot_p );\n\n\t\t\t} else if ( shape == SHAPE_SQUARE ) {\n\n\t\t\t\tfloat theta = atan( p.y - coord.y, p.x - coord.x ) - angle;\n\t\t\t\tfloat sin_t = abs( sin( theta ) );\n\t\t\t\tfloat cos_t = abs( cos( theta ) );\n\t\t\t\trad = pow( abs( rad ), 1.4 );\n\t\t\t\trad = rad_max * ( rad + ( ( sin_t > cos_t ) ? rad - sin_t * rad : rad - cos_t * rad ) );\n\n\t\t\t}\n\n\t\t\treturn rad - dist;\n\n\t\t}\n\n\t\tstruct Cell {\n\n\t\t// grid sample positions\n\t\t\tvec2 normal;\n\t\t\tvec2 p1;\n\t\t\tvec2 p2;\n\t\t\tvec2 p3;\n\t\t\tvec2 p4;\n\t\t\tfloat samp2;\n\t\t\tfloat samp1;\n\t\t\tfloat samp3;\n\t\t\tfloat samp4;\n\n\t\t};\n\n\t\tvec4 getSample( vec2 point ) {\n\n\t\t// multi-sampled point\n\t\t\tvec4 tex = texture2D( tDiffuse, vec2( point.x / width, point.y / height ) );\n\t\t\tfloat base = rand( vec2( floor( point.x ), floor( point.y ) ) ) * PI2;\n\t\t\tfloat step = PI2 / float( samples );\n\t\t\t// float dist = radius * 0.66;\n\t\t\tfloat dist = radius * 0.0;\n\n\t\t\tfor ( int i = 0; i < samples; ++i ) {\n\n\t\t\t\tfloat r = base + step * float( i );\n\t\t\t\tvec2 coord = point + vec2( cos( r ) * dist, sin( r ) * dist );\n\t\t\t\ttex += texture2D( tDiffuse, vec2( coord.x / width, coord.y / height ) );\n\n\t\t\t}\n\n\t\t\ttex /= float( samples ) + 1.0;\n\t\t\treturn tex;\n\n\t\t}\n\n\t\tfloat getDotColour( Cell c, vec2 p, int channel, float angle, float aa ) {\n\n\t\t// get colour for given point\n\t\t\tfloat dist_c_1, dist_c_2, dist_c_3, dist_c_4, res;\n\n\t\t\tif ( channel == 0 ) {\n\n\t\t\t\tc.samp1 = getSample( c.p1 ).r;\n\t\t\t\tc.samp2 = getSample( c.p2 ).r;\n\t\t\t\tc.samp3 = getSample( c.p3 ).r;\n\t\t\t\tc.samp4 = getSample( c.p4 ).r;\n\n\t\t\t} else if (channel == 1) {\n\n\t\t\t\tc.samp1 = getSample( c.p1 ).g;\n\t\t\t\tc.samp2 = getSample( c.p2 ).g;\n\t\t\t\tc.samp3 = getSample( c.p3 ).g;\n\t\t\t\tc.samp4 = getSample( c.p4 ).g;\n\n\t\t\t} else {\n\n\t\t\t\tc.samp1 = getSample( c.p1 ).b;\n\t\t\t\tc.samp3 = getSample( c.p3 ).b;\n\t\t\t\tc.samp2 = getSample( c.p2 ).b;\n\t\t\t\tc.samp4 = getSample( c.p4 ).b;\n\n\t\t\t}\n\n\t\t\tdist_c_1 = distanceToDotRadius( c.samp1, c.p1, c.normal, p, angle, radius );\n\t\t\tdist_c_2 = distanceToDotRadius( c.samp2, c.p2, c.normal, p, angle, radius );\n\t\t\tdist_c_3 = distanceToDotRadius( c.samp3, c.p3, c.normal, p, angle, radius );\n\t\t\tdist_c_4 = distanceToDotRadius( c.samp4, c.p4, c.normal, p, angle, radius );\n\t\t\tres = ( dist_c_1 > 0.0 ) ? clamp( dist_c_1 / aa, 0.0, 1.0 ) : 0.0;\n\t\t\t// res = 0.0;\n\t\t\tres += ( dist_c_2 > 0.0 ) ? clamp( dist_c_2 / aa, 0.0, 1.0 ) : 0.0;\n\t\t\tres += ( dist_c_3 > 0.0 ) ? clamp( dist_c_3 / aa, 0.0, 1.0 ) : 0.0;\n\t\t\tres += ( dist_c_4 > 0.0 ) ? clamp( dist_c_4 / aa, 0.0, 1.0 ) : 0.0;\n\t\t\tres = clamp( res, 0.0, 1.0 );\n\n\t\t\treturn res;\n\t\t\t// return 2\n\n\t\t}\n\n\t\tCell getReferenceCell( vec2 p, vec2 origin, float grid_angle, float step ) {\n\n\t\t// get containing cell\n\t\t\tCell c;\n\n\t\t// calc grid\n\t\t\tvec2 n = vec2( cos( grid_angle ), sin( grid_angle ) );\n\t\t\tfloat threshold = step * 0.5;\n\t\t\tfloat dot_normal = n.x * ( p.x - origin.x ) + n.y * ( p.y - origin.y );\n\t\t\tfloat dot_line = -n.y * ( p.x - origin.x ) + n.x * ( p.y - origin.y );\n\t\t\tvec2 offset = vec2( n.x * dot_normal, n.y * dot_normal );\n\t\t\tfloat offset_normal = mod( hypot( offset.x, offset.y ), step );\n\t\t\tfloat normal_dir = ( dot_normal < 0.0 ) ? 1.0 : -1.0;\n\t\t\tfloat normal_scale = ( ( offset_normal < threshold ) ? -offset_normal : step - offset_normal ) * normal_dir;\n\t\t\tfloat offset_line = mod( hypot( ( p.x - offset.x ) - origin.x, ( p.y - offset.y ) - origin.y ), step );\n\t\t\tfloat line_dir = ( dot_line < 0.0 ) ? 1.0 : -1.0;\n\t\t\tfloat line_scale = ( ( offset_line < threshold ) ? -offset_line : step - offset_line ) * line_dir;\n\n\t\t// get closest corner\n\t\t\tc.normal = n;\n\t\t\tc.p1.x = p.x - n.x * normal_scale + n.y * line_scale;\n\t\t\tc.p1.y = p.y - n.y * normal_scale - n.x * line_scale;\n\n\t\t// scatter\n\t\t\tif ( scatter != 0.0 ) {\n\n\t\t\t\tfloat off_mag = scatter * threshold * 0.5;\n\t\t\t\tfloat off_angle = rand( vec2( floor( c.p1.x ), floor( c.p1.y ) ) ) * PI2;\n\t\t\t\tc.p1.x += cos( off_angle ) * off_mag;\n\t\t\t\tc.p1.y += sin( off_angle ) * off_mag;\n\n\t\t\t}\n\n\t\t// find corners\n\t\t\tfloat normal_step = normal_dir * ( ( offset_normal < threshold ) ? step : -step );\n\t\t\tfloat line_step = line_dir * ( ( offset_line < threshold ) ? step : -step );\n\t\t\tc.p2.x = c.p1.x - n.x * normal_step;\n\t\t\tc.p2.y = c.p1.y - n.y * normal_step;\n\t\t\tc.p3.x = c.p1.x + n.y * line_step;\n\t\t\tc.p3.y = c.p1.y - n.x * line_step;\n\t\t\tc.p4.x = c.p1.x - n.x * normal_step + n.y * line_step;\n\t\t\tc.p4.y = c.p1.y - n.y * normal_step - n.x * line_step;\n\n\t\t\treturn c;\n\n\t\t}\n\n\t\tfloat blendColour( float a, float b, float t ) {\n\n\t\t// blend colours\n\t\t\tif ( blendingMode == BLENDING_LINEAR ) {\n\t\t\t\treturn blend( a, b, 1.0 - t );\n\t\t\t} else if ( blendingMode == BLENDING_ADD ) {\n\t\t\t\treturn blend( a, min( 1.0, a + b ), t );\n\t\t\t} else if ( blendingMode == BLENDING_MULTIPLY ) {\n\t\t\t\treturn blend( a, max( 0.0, a * b ), t );\n\t\t\t} else if ( blendingMode == BLENDING_LIGHTER ) {\n\t\t\t\treturn blend( a, max( a, b ), t );\n\t\t\t} else if ( blendingMode == BLENDING_DARKER ) {\n\t\t\t\treturn blend( a, min( a, b ), t );\n\t\t\t} else {\n\t\t\t\treturn blend( a, b, 1.0 - t );\n\t\t\t}\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\tif ( ! disable ) {\n\n\t\t// setup\n\t\t\t\tvec2 p = vec2( vUV.x * width, vUV.y * height ) - vec2(vPosition.x, vPosition.y) * 3.0; // - position values to remove black borders.\n\t\t\t\tvec2 origin = vec2( 0, 0 );\n\t\t\t\tfloat aa = ( radius < 2.5 ) ? radius * 0.5 : 1.25;\n\t\t\t\t// float aa = 0.0;\n\n\t\t// get channel samples\n\t\t\t\tCell cell_r = getReferenceCell( p, origin, rotateR, radius );\n\t\t\t\tCell cell_g = getReferenceCell( p, origin, rotateG, radius );\n\t\t\t\tCell cell_b = getReferenceCell( p, origin, rotateB, radius );\n\t\t\t\tfloat r = getDotColour( cell_r, p, 0, rotateR, aa );\n\t\t\t\tfloat g = getDotColour( cell_g, p, 1, rotateG, aa );\n\t\t\t\tfloat b = getDotColour( cell_b, p, 2, rotateB, aa );\n\n\t\t// blend with original\n\t\t\t\tvec4 colour = texture2D( tDiffuse, vUV );\n\t\t\t\t\n\t\t\t\t// add masking before blendColour\n\t\t\t\tif (colour.r == 0.0) {\n\t\t\t\t\tr = 0.0;\n\t\t\t\t} else {\n\t\t\t\t\tr = blendColour( r, colour.r, blending );\n\t\t\t\t}\n\n\t\t\t\tif (colour.g == 0.0) {\n\t\t\t\t\tg = 0.0;\n\t\t\t\t} else {\n\t\t\t\t\tg = blendColour( g, colour.g, blending );\n\t\t\t\t}\n\n\t\t\t\tif (colour.b == 0.0) {\n\t\t\t\t\tb = 0.0;\n\t\t\t\t} else {\n\t\t\t\t\tb = blendColour( b, colour.b, blending );\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\n\t\t\t\tif ( greyscale ) {\n\t\t\t\t\tr = g = b = (r + b + g) / 3.0;\n\t\t\t\t}\n\n\t\t\t\t// add alpha channel to each r, g, b colors\n\t\t\t\tvec4 vR;\n\t\t\t\tvec4 vG;\n\t\t\t\tvec4 vB;\n\t\n\t\t\t\t// apply transparent to outside of mesh\n\t\t\t\tif (r == 0.0 && colour.r == 0.0) {\n\t\t\t\t\tvR = vec4( 0, 0, 0, 0 );\n\t\t\t\t} else {\n\t\t\t\t\tvR = vec4( r, 0, 0, 1 );\n\t\t\t\t}\n\t\n\t\t\t\tif (g == 0.0 && colour.g == 0.0) {\n\t\t\t\t\tvG = vec4( 0, 0, 0, 0 );\n\t\t\t\t} else {\n\t\t\t\t\tvG = vec4( 0, g, 0, 1 );\n\t\t\t\t}\n\t\n\t\t\t\tif (b == 0.0 && colour.b == 0.0) {\n\t\t\t\t\tvB = vec4( 0, 0, 0, 0 );\n\t\t\t\t} else {\n\t\t\t\t\tvB = vec4( 0, 0, b, 1 );\n\t\t\t\t}\n\n\t\t\t\t// gl_FragColor = vec4( r, g, b, 1.0 );\n\t\t\t\tgl_FragColor = vR + vG + vB;\n\n\t\t\t} else {\n\n\t\t\t\tgl_FragColor = texture2D( tDiffuse, vUV );\n\n\t\t\t}\n\n\t\t}`\n  )\n};\n\nexport {\n  HalftoneShader\n};\n","import {\n  BufferGeometry,\n  Float32BufferAttribute,\n  Mesh,\n  OrthographicCamera\n} from \"./chunk-Z4XR7UL5.mjs\";\n\n// src/ShaderGradient/PostProcessing/lib/pp/Pass.js\nvar Pass = class {\n  constructor() {\n    this.enabled = true;\n    this.needsSwap = true;\n    this.clear = false;\n    this.renderToScreen = false;\n  }\n  setSize() {\n  }\n  render() {\n    console.error(\"THREE.Pass: .render() must be implemented in derived pass.\");\n  }\n};\nvar _camera = new OrthographicCamera(-1, 1, 1, -1, 0, 1);\nvar _geometry = new BufferGeometry();\n_geometry.setAttribute(\n  \"position\",\n  new Float32BufferAttribute([-1, 3, 0, -1, -1, 0, 3, -1, 0], 3)\n);\n_geometry.setAttribute(\"uv\", new Float32BufferAttribute([0, 2, 0, 0, 2, 0], 2));\nvar FullScreenQuad = class {\n  constructor(material) {\n    this._mesh = new Mesh(_geometry, material);\n  }\n  dispose() {\n    this._mesh.geometry.dispose();\n  }\n  render(renderer) {\n    renderer.render(this._mesh, _camera);\n  }\n  get material() {\n    return this._mesh.material;\n  }\n  set material(value) {\n    this._mesh.material = value;\n  }\n};\n\nexport {\n  Pass,\n  FullScreenQuad\n};\n","// src/ShaderGradient/PostProcessing/lib/pp/blending/BlendFunction.js\nvar BlendFunction = {\n  SKIP: 0,\n  ADD: 1,\n  ALPHA: 2,\n  AVERAGE: 3,\n  COLOR_BURN: 4,\n  COLOR_DODGE: 5,\n  DARKEN: 6,\n  DIFFERENCE: 7,\n  EXCLUSION: 8,\n  LIGHTEN: 9,\n  MULTIPLY: 10,\n  DIVIDE: 11,\n  NEGATION: 12,\n  NORMAL: 13,\n  OVERLAY: 14,\n  REFLECT: 15,\n  SCREEN: 16,\n  SOFT_LIGHT: 17,\n  SUBTRACT: 18\n};\n\nexport {\n  BlendFunction\n};\n","import {\n  BlendFunction\n} from \"./chunk-4NRCS6EB.mjs\";\nimport {\n  EventDispatcher,\n  Uniform\n} from \"./chunk-Z4XR7UL5.mjs\";\n\n// src/ShaderGradient/PostProcessing/lib/pp/blending/glsl/add/shader.frag\nvar shader_default = \"vec4 blend(const in vec4 x, const in vec4 y, const in float opacity) {\\n\\n\treturn min(x + y, 1.0) * opacity + x * (1.0 - opacity);\\n\\n}\\n\";\n\n// src/ShaderGradient/PostProcessing/lib/pp/blending/glsl/alpha/shader.frag\nvar shader_default2 = \"vec3 blend(const in vec3 x, const in vec3 y, const in float opacity) {\\n\\n\treturn y * opacity + x * (1.0 - opacity);\\n\\n}\\n\\nvec4 blend(const in vec4 x, const in vec4 y, const in float opacity) {\\n\\n\tfloat a = min(y.a, opacity);\\n\\n\treturn vec4(blend(x.rgb, y.rgb, a), max(x.a, a));\\n\\n}\\n\";\n\n// src/ShaderGradient/PostProcessing/lib/pp/blending/glsl/average/shader.frag\nvar shader_default3 = \"vec4 blend(const in vec4 x, const in vec4 y, const in float opacity) {\\n\\n\treturn (x + y) * 0.5 * opacity + x * (1.0 - opacity);\\n\\n}\\n\";\n\n// src/ShaderGradient/PostProcessing/lib/pp/blending/glsl/color-burn/shader.frag\nvar shader_default4 = \"float blend(const in float x, const in float y) {\\n\\n\treturn (y == 0.0) ? y : max(1.0 - (1.0 - x) / y, 0.0);\\n\\n}\\n\\nvec4 blend(const in vec4 x, const in vec4 y, const in float opacity) {\\n\\n\tvec4 z = vec4(\\n\t\tblend(x.r, y.r),\\n\t\tblend(x.g, y.g),\\n\t\tblend(x.b, y.b),\\n\t\tblend(x.a, y.a)\\n\t);\\n\\n\treturn z * opacity + x * (1.0 - opacity);\\n\\n}\\n\";\n\n// src/ShaderGradient/PostProcessing/lib/pp/blending/glsl/color-dodge/shader.frag\nvar shader_default5 = \"float blend(const in float x, const in float y) {\\n\\n\treturn (y == 1.0) ? y : min(x / (1.0 - y), 1.0);\\n\\n}\\n\\nvec4 blend(const in vec4 x, const in vec4 y, const in float opacity) {\\n\\n\tvec4 z = vec4(\\n\t\tblend(x.r, y.r),\\n\t\tblend(x.g, y.g),\\n\t\tblend(x.b, y.b),\\n\t\tblend(x.a, y.a)\\n\t);\\n\\n\treturn z * opacity + x * (1.0 - opacity);\\n\\n}\\n\";\n\n// src/ShaderGradient/PostProcessing/lib/pp/blending/glsl/darken/shader.frag\nvar shader_default6 = \"vec4 blend(const in vec4 x, const in vec4 y, const in float opacity) {\\n\\n\treturn min(x, y) * opacity + x * (1.0 - opacity);\\n\\n}\\n\";\n\n// src/ShaderGradient/PostProcessing/lib/pp/blending/glsl/difference/shader.frag\nvar shader_default7 = \"vec4 blend(const in vec4 x, const in vec4 y, const in float opacity) {\\n\\n\treturn abs(x - y) * opacity + x * (1.0 - opacity);\\n\\n}\\n\";\n\n// src/ShaderGradient/PostProcessing/lib/pp/blending/glsl/divide/shader.frag\nvar shader_default8 = \"float blend(const in float x, const in float y) {\\n\\n\treturn (y > 0.0) ? min(x / y, 1.0) : 1.0;\\n\\n}\\n\\nvec4 blend(const in vec4 x, const in vec4 y, const in float opacity) {\\n\\n\tvec4 z = vec4(\\n\t\tblend(x.r, y.r),\\n\t\tblend(x.g, y.g),\\n\t\tblend(x.b, y.b),\\n\t\tblend(x.a, y.a)\\n\t);\\n\\n\treturn z * opacity + x * (1.0 - opacity);\\n\\n}\\n\";\n\n// src/ShaderGradient/PostProcessing/lib/pp/blending/glsl/exclusion/shader.frag\nvar shader_default9 = \"vec4 blend(const in vec4 x, const in vec4 y, const in float opacity) {\\n\\n\treturn (x + y - 2.0 * x * y) * opacity + x * (1.0 - opacity);\\n\\n}\\n\";\n\n// src/ShaderGradient/PostProcessing/lib/pp/blending/glsl/lighten/shader.frag\nvar shader_default10 = \"vec4 blend(const in vec4 x, const in vec4 y, const in float opacity) {\\n\\n\treturn max(x, y) * opacity + x * (1.0 - opacity);\\n\\n}\\n\";\n\n// src/ShaderGradient/PostProcessing/lib/pp/blending/glsl/multiply/shader.frag\nvar shader_default11 = \"vec4 blend(const in vec4 x, const in vec4 y, const in float opacity) {\\n\\n\treturn x * y * opacity + x * (1.0 - opacity);\\n\\n}\\n\";\n\n// src/ShaderGradient/PostProcessing/lib/pp/blending/glsl/negation/shader.frag\nvar shader_default12 = \"vec4 blend(const in vec4 x, const in vec4 y, const in float opacity) {\\n\\n\treturn (1.0 - abs(1.0 - x - y)) * opacity + x * (1.0 - opacity);\\n\\n}\\n\";\n\n// src/ShaderGradient/PostProcessing/lib/pp/blending/glsl/normal/shader.frag\nvar shader_default13 = \"vec4 blend(const in vec4 x, const in vec4 y, const in float opacity) {\\n\\n\treturn y * opacity + x * (1.0 - opacity);\\n\\n}\\n\";\n\n// src/ShaderGradient/PostProcessing/lib/pp/blending/glsl/overlay/shader.frag\nvar shader_default14 = \"float blend(const in float x, const in float y) {\\n\\n\treturn (x < 0.5) ? (2.0 * x * y) : (1.0 - 2.0 * (1.0 - x) * (1.0 - y));\\n\\n}\\n\\nvec4 blend(const in vec4 x, const in vec4 y, const in float opacity) {\\n\\n\tvec4 z = vec4(\\n\t\tblend(x.r, y.r),\\n\t\tblend(x.g, y.g),\\n\t\tblend(x.b, y.b),\\n\t\tblend(x.a, y.a)\\n\t);\\n\\n\treturn z * opacity + x * (1.0 - opacity);\\n\\n}\\n\";\n\n// src/ShaderGradient/PostProcessing/lib/pp/blending/glsl/reflect/shader.frag\nvar shader_default15 = \"float blend(const in float x, const in float y) {\\n\\n\treturn (y == 1.0) ? y : min(x * x / (1.0 - y), 1.0);\\n\\n}\\n\\nvec4 blend(const in vec4 x, const in vec4 y, const in float opacity) {\\n\\n\tvec4 z = vec4(\\n\t\tblend(x.r, y.r),\\n\t\tblend(x.g, y.g),\\n\t\tblend(x.b, y.b),\\n\t\tblend(x.a, y.a)\\n\t);\\n\\n\treturn z * opacity + x * (1.0 - opacity);\\n\\n}\\n\";\n\n// src/ShaderGradient/PostProcessing/lib/pp/blending/glsl/screen/shader.frag\nvar shader_default16 = \"vec4 blend(const in vec4 x, const in vec4 y, const in float opacity) {\\n\\n\treturn (1.0 - (1.0 - x) * (1.0 - y)) * opacity + x * (1.0 - opacity);\\n\\n}\\n\";\n\n// src/ShaderGradient/PostProcessing/lib/pp/blending/glsl/soft-light/shader.frag\nvar shader_default17 = \"float blend(const in float x, const in float y) {\\n\\n\treturn (y < 0.5) ?\\n\t\t(2.0 * x * y + x * x * (1.0 - 2.0 * y)) :\\n\t\t(sqrt(x) * (2.0 * y - 1.0) + 2.0 * x * (1.0 - y));\\n\\n}\\n\\nvec4 blend(const in vec4 x, const in vec4 y, const in float opacity) {\\n\\n\tvec4 z = vec4(\\n\t\tblend(x.r, y.r),\\n\t\tblend(x.g, y.g),\\n\t\tblend(x.b, y.b),\\n\t\tblend(x.a, y.a)\\n\t);\\n\\n\treturn z * opacity + x * (1.0 - opacity);\\n\\n}\\n\";\n\n// src/ShaderGradient/PostProcessing/lib/pp/blending/glsl/subtract/shader.frag\nvar shader_default18 = \"vec4 blend(const in vec4 x, const in vec4 y, const in float opacity) {\\n\\n\treturn max(x + y - 1.0, 0.0) * opacity + x * (1.0 - opacity);\\n\\n}\\n\";\n\n// src/ShaderGradient/PostProcessing/lib/pp/blending/BlendMode.js\nvar blendFunctions = /* @__PURE__ */ new Map([\n  [BlendFunction.SKIP, null],\n  [BlendFunction.ADD, shader_default],\n  [BlendFunction.ALPHA, shader_default2],\n  [BlendFunction.AVERAGE, shader_default3],\n  [BlendFunction.COLOR_BURN, shader_default4],\n  [BlendFunction.COLOR_DODGE, shader_default5],\n  [BlendFunction.DARKEN, shader_default6],\n  [BlendFunction.DIFFERENCE, shader_default7],\n  [BlendFunction.EXCLUSION, shader_default9],\n  [BlendFunction.LIGHTEN, shader_default10],\n  [BlendFunction.MULTIPLY, shader_default11],\n  [BlendFunction.DIVIDE, shader_default8],\n  [BlendFunction.NEGATION, shader_default12],\n  [BlendFunction.NORMAL, shader_default13],\n  [BlendFunction.OVERLAY, shader_default14],\n  [BlendFunction.REFLECT, shader_default15],\n  [BlendFunction.SCREEN, shader_default16],\n  [BlendFunction.SOFT_LIGHT, shader_default17],\n  [BlendFunction.SUBTRACT, shader_default18]\n]);\nvar BlendMode = class extends EventDispatcher {\n  /**\n   * Constructs a new blend mode.\n   *\n   * @param {BlendFunction} blendFunction - The blend function to use.\n   * @param {Number} opacity - The opacity of the color that will be blended with the base color.\n   */\n  constructor(blendFunction, opacity = 1) {\n    super();\n    this.blendFunction = blendFunction;\n    this.opacity = new Uniform(opacity);\n  }\n  /**\n   * Returns the blend function.\n   *\n   * @return {BlendFunction} The blend function.\n   */\n  getBlendFunction() {\n    return this.blendFunction;\n  }\n  /**\n   * Sets the blend function.\n   *\n   * @param {BlendFunction} blendFunction - The blend function.\n   */\n  setBlendFunction(blendFunction) {\n    this.blendFunction = blendFunction;\n    this.dispatchEvent({ type: \"change\" });\n  }\n  /**\n   * Returns the blend function shader code.\n   *\n   * @return {String} The blend function shader code.\n   */\n  getShaderCode() {\n    return blendFunctions.get(this.blendFunction);\n  }\n};\n\nexport {\n  BlendMode\n};\n","import {\n  HalftoneShader\n} from \"./chunk-3U6A2N6D.mjs\";\nimport {\n  FullScreenQuad,\n  Pass\n} from \"./chunk-O7SDERYP.mjs\";\nimport {\n  BlendMode\n} from \"./chunk-KD5UHE3V.mjs\";\nimport {\n  BlendFunction\n} from \"./chunk-4NRCS6EB.mjs\";\nimport {\n  ShaderMaterial,\n  UniformsUtils\n} from \"./chunk-Z4XR7UL5.mjs\";\n\n// src/ShaderGradient/PostProcessing/lib/pp/HalftonePass.ts\nvar usePassedMeshSize = true;\nvar HalftonePass = class extends Pass {\n  constructor(width, height, params) {\n    super();\n    if (HalftoneShader === void 0) {\n      console.error(\"THREE.HalftonePass requires HalftoneShader\");\n    }\n    this.uniforms = UniformsUtils.clone(HalftoneShader.uniforms);\n    this.material = new ShaderMaterial({\n      uniforms: this.uniforms,\n      fragmentShader: HalftoneShader.fragmentShader,\n      vertexShader: HalftoneShader.vertexShader\n    });\n    if (usePassedMeshSize) {\n      this.uniforms.width.value = width;\n      this.uniforms.height.value = height;\n    }\n    this.uniforms.disable.value = params[\"disable\"];\n    this.fsQuad = new FullScreenQuad(this.material);\n    this.blendMode = new BlendMode(BlendFunction.SCREEN);\n    this.extensions = null;\n  }\n  render(renderer, writeBuffer, readBuffer) {\n    this.material.uniforms[\"tDiffuse\"].value = readBuffer.texture;\n    if (this.renderToScreen) {\n      renderer.setRenderTarget(null);\n      this.fsQuad.render(renderer);\n    } else {\n      renderer.setRenderTarget(writeBuffer);\n      if (this.clear) renderer.clear();\n      this.fsQuad.render(renderer);\n    }\n  }\n  setSize(width, height) {\n    if (usePassedMeshSize) {\n      this.uniforms.width.value = width;\n      this.uniforms.height.value = height;\n    }\n  }\n  initialize(renderer, alpha, frameBufferType) {\n  }\n  addEventListener() {\n  }\n  getAttributes() {\n    return this.attributes;\n  }\n  getFragmentShader() {\n    return HalftoneShader.fragmentShader;\n  }\n  getVertexShader() {\n    return HalftoneShader.vertexShader;\n  }\n  update(renderer, inputBuffer, deltaTime) {\n  }\n};\n\nexport {\n  HalftonePass\n};\n","import {\n  EffectComposer\n} from \"./chunk-2S3VJM34.mjs\";\nimport {\n  RenderPass\n} from \"./chunk-IRMTC4UN.mjs\";\nimport {\n  HalftonePass\n} from \"./chunk-XLXOMSVB.mjs\";\nimport {\n  useFrame,\n  useThree\n} from \"./chunk-WS7WB67W.mjs\";\n\n// src/ShaderGradient/PostProcessing/PostProcessing.tsx\nimport { useEffect, useMemo } from \"react\";\nimport { Fragment, jsx } from \"react/jsx-runtime\";\nfunction PostProcessing({ disable = false }) {\n  const { gl, scene, camera, size } = useThree();\n  const composer = useMemo(() => {\n    const effectComposer = new EffectComposer(gl);\n    effectComposer.addPass(new RenderPass(scene, camera));\n    const halftoneParams = {\n      shape: 1,\n      radius: 2,\n      rotateR: Math.PI / 12,\n      rotateB: Math.PI / 12 * 2,\n      rotateG: Math.PI / 12 * 3,\n      scatter: 1,\n      blending: 1,\n      blendingMode: 1,\n      greyscale: false,\n      disable\n    };\n    const halftonePass = new HalftonePass(\n      size.width,\n      size.height,\n      halftoneParams\n    );\n    effectComposer.addPass(halftonePass);\n    return effectComposer;\n  }, [gl, scene, camera, size, disable]);\n  useEffect(() => composer == null ? void 0 : composer.setSize(size.width, size.height), [composer, size]);\n  useFrame(\n    (_, delta) => void (gl.autoClear = true, composer.render(delta)),\n    1\n  );\n  return /* @__PURE__ */ jsx(Fragment, {});\n}\n\nexport {\n  PostProcessing\n};\n","// src/utils/index.ts\nfunction degToRad(deg) {\n  return deg * (Math.PI / 180);\n}\nfunction dToR(d) {\n  return d / 180 * Math.PI;\n}\nfunction dToRArr(degrees) {\n  return degrees.map((d) => dToR(d));\n}\nfunction formatUrlString(urlString) {\n  return urlString.replace(\"http://localhost:3001/customize\", \"\").replace(\"https://shadergradient.co/customize\", \"\").replace(\"https://www.shadergradient.co/customize\", \"\");\n}\n\nexport {\n  degToRad,\n  dToR,\n  dToRArr,\n  formatUrlString\n};\n","import {\n  dToR\n} from \"./chunk-G7COPUKV.mjs\";\nimport {\n  useFrame\n} from \"./chunk-WS7WB67W.mjs\";\nimport {\n  defaultPlanesZoom,\n  defaultSphereDistance,\n  zoomOutPlanes,\n  zoomOutSphere\n} from \"./chunk-SX7QUDKQ.mjs\";\n\n// src/ShaderGradient/Controls/useCameraAnimation.ts\nimport { useEffect, useRef } from \"react\";\nfunction useCameraAnimation({\n  type,\n  cAzimuthAngle,\n  cPolarAngle,\n  cDistance,\n  cameraZoom,\n  zoomOut,\n  enableTransition = true\n}) {\n  const ref = useRef();\n  useFrame((state, delta) => ref.current.update(delta));\n  useEffect(() => {\n    const control = ref.current;\n    control == null ? void 0 : control.rotateTo(dToR(cAzimuthAngle), dToR(cPolarAngle), enableTransition);\n  }, [ref, cAzimuthAngle, cPolarAngle]);\n  useEffect(() => {\n    const control = ref.current;\n    if (zoomOut) {\n      if (type === \"sphere\") {\n        control == null ? void 0 : control.dollyTo(zoomOutSphere.distance, enableTransition);\n        control == null ? void 0 : control.zoomTo(zoomOutSphere.zoom, enableTransition);\n      } else {\n        control == null ? void 0 : control.dollyTo(zoomOutPlanes.distance, enableTransition);\n        control == null ? void 0 : control.zoomTo(zoomOutPlanes.zoom, enableTransition);\n      }\n    } else {\n      if (type === \"sphere\") {\n        control == null ? void 0 : control.zoomTo(cameraZoom, enableTransition);\n        control == null ? void 0 : control.dollyTo(defaultSphereDistance, enableTransition);\n      } else {\n        control == null ? void 0 : control.dollyTo(cDistance, enableTransition);\n        control == null ? void 0 : control.zoomTo(defaultPlanesZoom, enableTransition);\n      }\n    }\n  }, [ref, zoomOut, type, cameraZoom, cDistance]);\n  return ref;\n}\n\nexport {\n  useCameraAnimation\n};\n","import {\n  useCameraAnimation\n} from \"./chunk-KO4ISVNC.mjs\";\nimport {\n  extend,\n  useThree\n} from \"./chunk-WS7WB67W.mjs\";\nimport {\n  three_module_exports\n} from \"./chunk-Z4XR7UL5.mjs\";\nimport {\n  __objRest\n} from \"./chunk-5BEQP2BQ.mjs\";\n\n// ../../node_modules/.pnpm/camera-controls@2.9.0_three@0.169.0/node_modules/camera-controls/dist/camera-controls.module.js\nvar MOUSE_BUTTON = {\n  LEFT: 1,\n  RIGHT: 2,\n  MIDDLE: 4\n};\nvar ACTION = Object.freeze({\n  NONE: 0,\n  ROTATE: 1,\n  TRUCK: 2,\n  OFFSET: 4,\n  DOLLY: 8,\n  ZOOM: 16,\n  TOUCH_ROTATE: 32,\n  TOUCH_TRUCK: 64,\n  TOUCH_OFFSET: 128,\n  TOUCH_DOLLY: 256,\n  TOUCH_ZOOM: 512,\n  TOUCH_DOLLY_TRUCK: 1024,\n  TOUCH_DOLLY_OFFSET: 2048,\n  TOUCH_DOLLY_ROTATE: 4096,\n  TOUCH_ZOOM_TRUCK: 8192,\n  TOUCH_ZOOM_OFFSET: 16384,\n  TOUCH_ZOOM_ROTATE: 32768\n});\nvar DOLLY_DIRECTION = {\n  NONE: 0,\n  IN: 1,\n  OUT: -1\n};\nfunction isPerspectiveCamera(camera) {\n  return camera.isPerspectiveCamera;\n}\nfunction isOrthographicCamera(camera) {\n  return camera.isOrthographicCamera;\n}\nvar PI_2 = Math.PI * 2;\nvar PI_HALF = Math.PI / 2;\nvar EPSILON = 1e-5;\nvar DEG2RAD = Math.PI / 180;\nfunction clamp(value, min, max) {\n  return Math.max(min, Math.min(max, value));\n}\nfunction approxZero(number, error = EPSILON) {\n  return Math.abs(number) < error;\n}\nfunction approxEquals(a, b, error = EPSILON) {\n  return approxZero(a - b, error);\n}\nfunction roundToStep(value, step) {\n  return Math.round(value / step) * step;\n}\nfunction infinityToMaxNumber(value) {\n  if (isFinite(value))\n    return value;\n  if (value < 0)\n    return -Number.MAX_VALUE;\n  return Number.MAX_VALUE;\n}\nfunction maxNumberToInfinity(value) {\n  if (Math.abs(value) < Number.MAX_VALUE)\n    return value;\n  return value * Infinity;\n}\nfunction smoothDamp(current, target, currentVelocityRef, smoothTime, maxSpeed = Infinity, deltaTime) {\n  smoothTime = Math.max(1e-4, smoothTime);\n  const omega = 2 / smoothTime;\n  const x = omega * deltaTime;\n  const exp = 1 / (1 + x + 0.48 * x * x + 0.235 * x * x * x);\n  let change = current - target;\n  const originalTo = target;\n  const maxChange = maxSpeed * smoothTime;\n  change = clamp(change, -maxChange, maxChange);\n  target = current - change;\n  const temp = (currentVelocityRef.value + omega * change) * deltaTime;\n  currentVelocityRef.value = (currentVelocityRef.value - omega * temp) * exp;\n  let output = target + (change + temp) * exp;\n  if (originalTo - current > 0 === output > originalTo) {\n    output = originalTo;\n    currentVelocityRef.value = (output - originalTo) / deltaTime;\n  }\n  return output;\n}\nfunction smoothDampVec3(current, target, currentVelocityRef, smoothTime, maxSpeed = Infinity, deltaTime, out) {\n  smoothTime = Math.max(1e-4, smoothTime);\n  const omega = 2 / smoothTime;\n  const x = omega * deltaTime;\n  const exp = 1 / (1 + x + 0.48 * x * x + 0.235 * x * x * x);\n  let targetX = target.x;\n  let targetY = target.y;\n  let targetZ = target.z;\n  let changeX = current.x - targetX;\n  let changeY = current.y - targetY;\n  let changeZ = current.z - targetZ;\n  const originalToX = targetX;\n  const originalToY = targetY;\n  const originalToZ = targetZ;\n  const maxChange = maxSpeed * smoothTime;\n  const maxChangeSq = maxChange * maxChange;\n  const magnitudeSq = changeX * changeX + changeY * changeY + changeZ * changeZ;\n  if (magnitudeSq > maxChangeSq) {\n    const magnitude = Math.sqrt(magnitudeSq);\n    changeX = changeX / magnitude * maxChange;\n    changeY = changeY / magnitude * maxChange;\n    changeZ = changeZ / magnitude * maxChange;\n  }\n  targetX = current.x - changeX;\n  targetY = current.y - changeY;\n  targetZ = current.z - changeZ;\n  const tempX = (currentVelocityRef.x + omega * changeX) * deltaTime;\n  const tempY = (currentVelocityRef.y + omega * changeY) * deltaTime;\n  const tempZ = (currentVelocityRef.z + omega * changeZ) * deltaTime;\n  currentVelocityRef.x = (currentVelocityRef.x - omega * tempX) * exp;\n  currentVelocityRef.y = (currentVelocityRef.y - omega * tempY) * exp;\n  currentVelocityRef.z = (currentVelocityRef.z - omega * tempZ) * exp;\n  out.x = targetX + (changeX + tempX) * exp;\n  out.y = targetY + (changeY + tempY) * exp;\n  out.z = targetZ + (changeZ + tempZ) * exp;\n  const origMinusCurrentX = originalToX - current.x;\n  const origMinusCurrentY = originalToY - current.y;\n  const origMinusCurrentZ = originalToZ - current.z;\n  const outMinusOrigX = out.x - originalToX;\n  const outMinusOrigY = out.y - originalToY;\n  const outMinusOrigZ = out.z - originalToZ;\n  if (origMinusCurrentX * outMinusOrigX + origMinusCurrentY * outMinusOrigY + origMinusCurrentZ * outMinusOrigZ > 0) {\n    out.x = originalToX;\n    out.y = originalToY;\n    out.z = originalToZ;\n    currentVelocityRef.x = (out.x - originalToX) / deltaTime;\n    currentVelocityRef.y = (out.y - originalToY) / deltaTime;\n    currentVelocityRef.z = (out.z - originalToZ) / deltaTime;\n  }\n  return out;\n}\nfunction extractClientCoordFromEvent(pointers, out) {\n  out.set(0, 0);\n  pointers.forEach((pointer) => {\n    out.x += pointer.clientX;\n    out.y += pointer.clientY;\n  });\n  out.x /= pointers.length;\n  out.y /= pointers.length;\n}\nfunction notSupportedInOrthographicCamera(camera, message) {\n  if (isOrthographicCamera(camera)) {\n    console.warn(`${message} is not supported in OrthographicCamera`);\n    return true;\n  }\n  return false;\n}\nvar EventDispatcher = class {\n  constructor() {\n    this._listeners = {};\n  }\n  /**\n   * Adds the specified event listener.\n   * @param type event name\n   * @param listener handler function\n   * @category Methods\n   */\n  addEventListener(type, listener) {\n    const listeners = this._listeners;\n    if (listeners[type] === void 0)\n      listeners[type] = [];\n    if (listeners[type].indexOf(listener) === -1)\n      listeners[type].push(listener);\n  }\n  /**\n   * Presence of the specified event listener.\n   * @param type event name\n   * @param listener handler function\n   * @category Methods\n   */\n  hasEventListener(type, listener) {\n    const listeners = this._listeners;\n    return listeners[type] !== void 0 && listeners[type].indexOf(listener) !== -1;\n  }\n  /**\n   * Removes the specified event listener\n   * @param type event name\n   * @param listener handler function\n   * @category Methods\n   */\n  removeEventListener(type, listener) {\n    const listeners = this._listeners;\n    const listenerArray = listeners[type];\n    if (listenerArray !== void 0) {\n      const index = listenerArray.indexOf(listener);\n      if (index !== -1)\n        listenerArray.splice(index, 1);\n    }\n  }\n  /**\n   * Removes all event listeners\n   * @param type event name\n   * @category Methods\n   */\n  removeAllEventListeners(type) {\n    if (!type) {\n      this._listeners = {};\n      return;\n    }\n    if (Array.isArray(this._listeners[type]))\n      this._listeners[type].length = 0;\n  }\n  /**\n   * Fire an event type.\n   * @param event DispatcherEvent\n   * @category Methods\n   */\n  dispatchEvent(event) {\n    const listeners = this._listeners;\n    const listenerArray = listeners[event.type];\n    if (listenerArray !== void 0) {\n      event.target = this;\n      const array = listenerArray.slice(0);\n      for (let i = 0, l = array.length; i < l; i++) {\n        array[i].call(this, event);\n      }\n    }\n  }\n};\nvar _a;\nvar VERSION = \"2.9.0\";\nvar TOUCH_DOLLY_FACTOR = 1 / 8;\nvar isMac = /Mac/.test((_a = globalThis === null || globalThis === void 0 ? void 0 : globalThis.navigator) === null || _a === void 0 ? void 0 : _a.platform);\nvar THREE;\nvar _ORIGIN;\nvar _AXIS_Y;\nvar _AXIS_Z;\nvar _v2;\nvar _v3A;\nvar _v3B;\nvar _v3C;\nvar _cameraDirection;\nvar _xColumn;\nvar _yColumn;\nvar _zColumn;\nvar _deltaTarget;\nvar _deltaOffset;\nvar _sphericalA;\nvar _sphericalB;\nvar _box3A;\nvar _box3B;\nvar _sphere;\nvar _quaternionA;\nvar _quaternionB;\nvar _rotationMatrix;\nvar _raycaster;\nvar CameraControls = class _CameraControls extends EventDispatcher {\n  /**\n       * Injects THREE as the dependency. You can then proceed to use CameraControls.\n       *\n       * e.g\n       * ```javascript\n       * CameraControls.install( { THREE: THREE } );\n       * ```\n       *\n       * Note: If you do not wish to use enter three.js to reduce file size(tree-shaking for example), make a subset to install.\n       *\n       * ```js\n       * import {\n       * \tVector2,\n       * \tVector3,\n       * \tVector4,\n       * \tQuaternion,\n       * \tMatrix4,\n       * \tSpherical,\n       * \tBox3,\n       * \tSphere,\n       * \tRaycaster,\n       * \tMathUtils,\n       * } from 'three';\n       *\n       * const subsetOfTHREE = {\n       * \tVector2   : Vector2,\n       * \tVector3   : Vector3,\n       * \tVector4   : Vector4,\n       * \tQuaternion: Quaternion,\n       * \tMatrix4   : Matrix4,\n       * \tSpherical : Spherical,\n       * \tBox3      : Box3,\n       * \tSphere    : Sphere,\n       * \tRaycaster : Raycaster,\n       * };\n  \n       * CameraControls.install( { THREE: subsetOfTHREE } );\n       * ```\n       * @category Statics\n       */\n  static install(libs) {\n    THREE = libs.THREE;\n    _ORIGIN = Object.freeze(new THREE.Vector3(0, 0, 0));\n    _AXIS_Y = Object.freeze(new THREE.Vector3(0, 1, 0));\n    _AXIS_Z = Object.freeze(new THREE.Vector3(0, 0, 1));\n    _v2 = new THREE.Vector2();\n    _v3A = new THREE.Vector3();\n    _v3B = new THREE.Vector3();\n    _v3C = new THREE.Vector3();\n    _cameraDirection = new THREE.Vector3();\n    _xColumn = new THREE.Vector3();\n    _yColumn = new THREE.Vector3();\n    _zColumn = new THREE.Vector3();\n    _deltaTarget = new THREE.Vector3();\n    _deltaOffset = new THREE.Vector3();\n    _sphericalA = new THREE.Spherical();\n    _sphericalB = new THREE.Spherical();\n    _box3A = new THREE.Box3();\n    _box3B = new THREE.Box3();\n    _sphere = new THREE.Sphere();\n    _quaternionA = new THREE.Quaternion();\n    _quaternionB = new THREE.Quaternion();\n    _rotationMatrix = new THREE.Matrix4();\n    _raycaster = new THREE.Raycaster();\n  }\n  /**\n   * list all ACTIONs\n   * @category Statics\n   */\n  static get ACTION() {\n    return ACTION;\n  }\n  /**\n   * Creates a `CameraControls` instance.\n   *\n   * Note:\n   * You **must install** three.js before using camera-controls. see [#install](#install)\n   * Not doing so will lead to runtime errors (`undefined` references to THREE).\n   *\n   * e.g.\n   * ```\n   * CameraControls.install( { THREE } );\n   * const cameraControls = new CameraControls( camera, domElement );\n   * ```\n   *\n   * @param camera A `THREE.PerspectiveCamera` or `THREE.OrthographicCamera` to be controlled.\n   * @param domElement A `HTMLElement` for the draggable area, usually `renderer.domElement`.\n   * @category Constructor\n   */\n  constructor(camera, domElement) {\n    super();\n    this.minPolarAngle = 0;\n    this.maxPolarAngle = Math.PI;\n    this.minAzimuthAngle = -Infinity;\n    this.maxAzimuthAngle = Infinity;\n    this.minDistance = Number.EPSILON;\n    this.maxDistance = Infinity;\n    this.infinityDolly = false;\n    this.minZoom = 0.01;\n    this.maxZoom = Infinity;\n    this.smoothTime = 0.25;\n    this.draggingSmoothTime = 0.125;\n    this.maxSpeed = Infinity;\n    this.azimuthRotateSpeed = 1;\n    this.polarRotateSpeed = 1;\n    this.dollySpeed = 1;\n    this.dollyDragInverted = false;\n    this.truckSpeed = 2;\n    this.dollyToCursor = false;\n    this.dragToOffset = false;\n    this.verticalDragToForward = false;\n    this.boundaryFriction = 0;\n    this.restThreshold = 0.01;\n    this.colliderMeshes = [];\n    this.cancel = () => {\n    };\n    this._enabled = true;\n    this._state = ACTION.NONE;\n    this._viewport = null;\n    this._changedDolly = 0;\n    this._changedZoom = 0;\n    this._hasRested = true;\n    this._boundaryEnclosesCamera = false;\n    this._needsUpdate = true;\n    this._updatedLastTime = false;\n    this._elementRect = new DOMRect();\n    this._isDragging = false;\n    this._dragNeedsUpdate = true;\n    this._activePointers = [];\n    this._lockedPointer = null;\n    this._interactiveArea = new DOMRect(0, 0, 1, 1);\n    this._isUserControllingRotate = false;\n    this._isUserControllingDolly = false;\n    this._isUserControllingTruck = false;\n    this._isUserControllingOffset = false;\n    this._isUserControllingZoom = false;\n    this._lastDollyDirection = DOLLY_DIRECTION.NONE;\n    this._thetaVelocity = { value: 0 };\n    this._phiVelocity = { value: 0 };\n    this._radiusVelocity = { value: 0 };\n    this._targetVelocity = new THREE.Vector3();\n    this._focalOffsetVelocity = new THREE.Vector3();\n    this._zoomVelocity = { value: 0 };\n    this._truckInternal = (deltaX, deltaY, dragToOffset) => {\n      let truckX;\n      let pedestalY;\n      if (isPerspectiveCamera(this._camera)) {\n        const offset = _v3A.copy(this._camera.position).sub(this._target);\n        const fov = this._camera.getEffectiveFOV() * DEG2RAD;\n        const targetDistance = offset.length() * Math.tan(fov * 0.5);\n        truckX = this.truckSpeed * deltaX * targetDistance / this._elementRect.height;\n        pedestalY = this.truckSpeed * deltaY * targetDistance / this._elementRect.height;\n      } else if (isOrthographicCamera(this._camera)) {\n        const camera2 = this._camera;\n        truckX = deltaX * (camera2.right - camera2.left) / camera2.zoom / this._elementRect.width;\n        pedestalY = deltaY * (camera2.top - camera2.bottom) / camera2.zoom / this._elementRect.height;\n      } else {\n        return;\n      }\n      if (this.verticalDragToForward) {\n        dragToOffset ? this.setFocalOffset(this._focalOffsetEnd.x + truckX, this._focalOffsetEnd.y, this._focalOffsetEnd.z, true) : this.truck(truckX, 0, true);\n        this.forward(-pedestalY, true);\n      } else {\n        dragToOffset ? this.setFocalOffset(this._focalOffsetEnd.x + truckX, this._focalOffsetEnd.y + pedestalY, this._focalOffsetEnd.z, true) : this.truck(truckX, pedestalY, true);\n      }\n    };\n    this._rotateInternal = (deltaX, deltaY) => {\n      const theta = PI_2 * this.azimuthRotateSpeed * deltaX / this._elementRect.height;\n      const phi = PI_2 * this.polarRotateSpeed * deltaY / this._elementRect.height;\n      this.rotate(theta, phi, true);\n    };\n    this._dollyInternal = (delta, x, y) => {\n      const dollyScale = Math.pow(0.95, -delta * this.dollySpeed);\n      const lastDistance = this._sphericalEnd.radius;\n      const distance = this._sphericalEnd.radius * dollyScale;\n      const clampedDistance = clamp(distance, this.minDistance, this.maxDistance);\n      const overflowedDistance = clampedDistance - distance;\n      if (this.infinityDolly && this.dollyToCursor) {\n        this._dollyToNoClamp(distance, true);\n      } else if (this.infinityDolly && !this.dollyToCursor) {\n        this.dollyInFixed(overflowedDistance, true);\n        this._dollyToNoClamp(clampedDistance, true);\n      } else {\n        this._dollyToNoClamp(clampedDistance, true);\n      }\n      if (this.dollyToCursor) {\n        this._changedDolly += (this.infinityDolly ? distance : clampedDistance) - lastDistance;\n        this._dollyControlCoord.set(x, y);\n      }\n      this._lastDollyDirection = Math.sign(-delta);\n    };\n    this._zoomInternal = (delta, x, y) => {\n      const zoomScale = Math.pow(0.95, delta * this.dollySpeed);\n      const lastZoom = this._zoom;\n      const zoom = this._zoom * zoomScale;\n      this.zoomTo(zoom, true);\n      if (this.dollyToCursor) {\n        this._changedZoom += zoom - lastZoom;\n        this._dollyControlCoord.set(x, y);\n      }\n    };\n    if (typeof THREE === \"undefined\") {\n      console.error(\"camera-controls: `THREE` is undefined. You must first run `CameraControls.install( { THREE: THREE } )`. Check the docs for further information.\");\n    }\n    this._camera = camera;\n    this._yAxisUpSpace = new THREE.Quaternion().setFromUnitVectors(this._camera.up, _AXIS_Y);\n    this._yAxisUpSpaceInverse = this._yAxisUpSpace.clone().invert();\n    this._state = ACTION.NONE;\n    this._target = new THREE.Vector3();\n    this._targetEnd = this._target.clone();\n    this._focalOffset = new THREE.Vector3();\n    this._focalOffsetEnd = this._focalOffset.clone();\n    this._spherical = new THREE.Spherical().setFromVector3(_v3A.copy(this._camera.position).applyQuaternion(this._yAxisUpSpace));\n    this._sphericalEnd = this._spherical.clone();\n    this._lastDistance = this._spherical.radius;\n    this._zoom = this._camera.zoom;\n    this._zoomEnd = this._zoom;\n    this._lastZoom = this._zoom;\n    this._nearPlaneCorners = [\n      new THREE.Vector3(),\n      new THREE.Vector3(),\n      new THREE.Vector3(),\n      new THREE.Vector3()\n    ];\n    this._updateNearPlaneCorners();\n    this._boundary = new THREE.Box3(new THREE.Vector3(-Infinity, -Infinity, -Infinity), new THREE.Vector3(Infinity, Infinity, Infinity));\n    this._cameraUp0 = this._camera.up.clone();\n    this._target0 = this._target.clone();\n    this._position0 = this._camera.position.clone();\n    this._zoom0 = this._zoom;\n    this._focalOffset0 = this._focalOffset.clone();\n    this._dollyControlCoord = new THREE.Vector2();\n    this.mouseButtons = {\n      left: ACTION.ROTATE,\n      middle: ACTION.DOLLY,\n      right: ACTION.TRUCK,\n      wheel: isPerspectiveCamera(this._camera) ? ACTION.DOLLY : isOrthographicCamera(this._camera) ? ACTION.ZOOM : ACTION.NONE\n    };\n    this.touches = {\n      one: ACTION.TOUCH_ROTATE,\n      two: isPerspectiveCamera(this._camera) ? ACTION.TOUCH_DOLLY_TRUCK : isOrthographicCamera(this._camera) ? ACTION.TOUCH_ZOOM_TRUCK : ACTION.NONE,\n      three: ACTION.TOUCH_TRUCK\n    };\n    const dragStartPosition = new THREE.Vector2();\n    const lastDragPosition = new THREE.Vector2();\n    const dollyStart = new THREE.Vector2();\n    const onPointerDown = (event) => {\n      if (!this._enabled || !this._domElement)\n        return;\n      if (this._interactiveArea.left !== 0 || this._interactiveArea.top !== 0 || this._interactiveArea.width !== 1 || this._interactiveArea.height !== 1) {\n        const elRect = this._domElement.getBoundingClientRect();\n        const left = event.clientX / elRect.width;\n        const top = event.clientY / elRect.height;\n        if (left < this._interactiveArea.left || left > this._interactiveArea.right || top < this._interactiveArea.top || top > this._interactiveArea.bottom)\n          return;\n      }\n      const mouseButton = event.pointerType !== \"mouse\" ? null : (event.buttons & MOUSE_BUTTON.LEFT) === MOUSE_BUTTON.LEFT ? MOUSE_BUTTON.LEFT : (event.buttons & MOUSE_BUTTON.MIDDLE) === MOUSE_BUTTON.MIDDLE ? MOUSE_BUTTON.MIDDLE : (event.buttons & MOUSE_BUTTON.RIGHT) === MOUSE_BUTTON.RIGHT ? MOUSE_BUTTON.RIGHT : null;\n      if (mouseButton !== null) {\n        const zombiePointer = this._findPointerByMouseButton(mouseButton);\n        zombiePointer && this._disposePointer(zombiePointer);\n      }\n      if ((event.buttons & MOUSE_BUTTON.LEFT) === MOUSE_BUTTON.LEFT && this._lockedPointer)\n        return;\n      const pointer = {\n        pointerId: event.pointerId,\n        clientX: event.clientX,\n        clientY: event.clientY,\n        deltaX: 0,\n        deltaY: 0,\n        mouseButton\n      };\n      this._activePointers.push(pointer);\n      this._domElement.ownerDocument.removeEventListener(\"pointermove\", onPointerMove, { passive: false });\n      this._domElement.ownerDocument.removeEventListener(\"pointerup\", onPointerUp);\n      this._domElement.ownerDocument.addEventListener(\"pointermove\", onPointerMove, { passive: false });\n      this._domElement.ownerDocument.addEventListener(\"pointerup\", onPointerUp);\n      this._isDragging = true;\n      startDragging(event);\n    };\n    const onPointerMove = (event) => {\n      if (event.cancelable)\n        event.preventDefault();\n      const pointerId = event.pointerId;\n      const pointer = this._lockedPointer || this._findPointerById(pointerId);\n      if (!pointer)\n        return;\n      pointer.clientX = event.clientX;\n      pointer.clientY = event.clientY;\n      pointer.deltaX = event.movementX;\n      pointer.deltaY = event.movementY;\n      this._state = 0;\n      if (event.pointerType === \"touch\") {\n        switch (this._activePointers.length) {\n          case 1:\n            this._state = this.touches.one;\n            break;\n          case 2:\n            this._state = this.touches.two;\n            break;\n          case 3:\n            this._state = this.touches.three;\n            break;\n        }\n      } else {\n        if (!this._isDragging && this._lockedPointer || this._isDragging && (event.buttons & MOUSE_BUTTON.LEFT) === MOUSE_BUTTON.LEFT) {\n          this._state = this._state | this.mouseButtons.left;\n        }\n        if (this._isDragging && (event.buttons & MOUSE_BUTTON.MIDDLE) === MOUSE_BUTTON.MIDDLE) {\n          this._state = this._state | this.mouseButtons.middle;\n        }\n        if (this._isDragging && (event.buttons & MOUSE_BUTTON.RIGHT) === MOUSE_BUTTON.RIGHT) {\n          this._state = this._state | this.mouseButtons.right;\n        }\n      }\n      dragging();\n    };\n    const onPointerUp = (event) => {\n      const pointer = this._findPointerById(event.pointerId);\n      if (pointer && pointer === this._lockedPointer)\n        return;\n      pointer && this._disposePointer(pointer);\n      if (event.pointerType === \"touch\") {\n        switch (this._activePointers.length) {\n          case 0:\n            this._state = ACTION.NONE;\n            break;\n          case 1:\n            this._state = this.touches.one;\n            break;\n          case 2:\n            this._state = this.touches.two;\n            break;\n          case 3:\n            this._state = this.touches.three;\n            break;\n        }\n      } else {\n        this._state = ACTION.NONE;\n      }\n      endDragging();\n    };\n    let lastScrollTimeStamp = -1;\n    const onMouseWheel = (event) => {\n      if (!this._domElement)\n        return;\n      if (!this._enabled || this.mouseButtons.wheel === ACTION.NONE)\n        return;\n      if (this._interactiveArea.left !== 0 || this._interactiveArea.top !== 0 || this._interactiveArea.width !== 1 || this._interactiveArea.height !== 1) {\n        const elRect = this._domElement.getBoundingClientRect();\n        const left = event.clientX / elRect.width;\n        const top = event.clientY / elRect.height;\n        if (left < this._interactiveArea.left || left > this._interactiveArea.right || top < this._interactiveArea.top || top > this._interactiveArea.bottom)\n          return;\n      }\n      event.preventDefault();\n      if (this.dollyToCursor || this.mouseButtons.wheel === ACTION.ROTATE || this.mouseButtons.wheel === ACTION.TRUCK) {\n        const now = performance.now();\n        if (lastScrollTimeStamp - now < 1e3)\n          this._getClientRect(this._elementRect);\n        lastScrollTimeStamp = now;\n      }\n      const deltaYFactor = isMac ? -1 : -3;\n      const delta = event.deltaMode === 1 ? event.deltaY / deltaYFactor : event.deltaY / (deltaYFactor * 10);\n      const x = this.dollyToCursor ? (event.clientX - this._elementRect.x) / this._elementRect.width * 2 - 1 : 0;\n      const y = this.dollyToCursor ? (event.clientY - this._elementRect.y) / this._elementRect.height * -2 + 1 : 0;\n      switch (this.mouseButtons.wheel) {\n        case ACTION.ROTATE: {\n          this._rotateInternal(event.deltaX, event.deltaY);\n          this._isUserControllingRotate = true;\n          break;\n        }\n        case ACTION.TRUCK: {\n          this._truckInternal(event.deltaX, event.deltaY, false);\n          this._isUserControllingTruck = true;\n          break;\n        }\n        case ACTION.OFFSET: {\n          this._truckInternal(event.deltaX, event.deltaY, true);\n          this._isUserControllingOffset = true;\n          break;\n        }\n        case ACTION.DOLLY: {\n          this._dollyInternal(-delta, x, y);\n          this._isUserControllingDolly = true;\n          break;\n        }\n        case ACTION.ZOOM: {\n          this._zoomInternal(-delta, x, y);\n          this._isUserControllingZoom = true;\n          break;\n        }\n      }\n      this.dispatchEvent({ type: \"control\" });\n    };\n    const onContextMenu = (event) => {\n      if (!this._domElement || !this._enabled)\n        return;\n      if (this.mouseButtons.right === _CameraControls.ACTION.NONE) {\n        const pointerId = event instanceof PointerEvent ? event.pointerId : 0;\n        const pointer = this._findPointerById(pointerId);\n        pointer && this._disposePointer(pointer);\n        this._domElement.ownerDocument.removeEventListener(\"pointermove\", onPointerMove, { passive: false });\n        this._domElement.ownerDocument.removeEventListener(\"pointerup\", onPointerUp);\n        return;\n      }\n      event.preventDefault();\n    };\n    const startDragging = (event) => {\n      if (!this._enabled)\n        return;\n      extractClientCoordFromEvent(this._activePointers, _v2);\n      this._getClientRect(this._elementRect);\n      dragStartPosition.copy(_v2);\n      lastDragPosition.copy(_v2);\n      const isMultiTouch = this._activePointers.length >= 2;\n      if (isMultiTouch) {\n        const dx = _v2.x - this._activePointers[1].clientX;\n        const dy = _v2.y - this._activePointers[1].clientY;\n        const distance = Math.sqrt(dx * dx + dy * dy);\n        dollyStart.set(0, distance);\n        const x = (this._activePointers[0].clientX + this._activePointers[1].clientX) * 0.5;\n        const y = (this._activePointers[0].clientY + this._activePointers[1].clientY) * 0.5;\n        lastDragPosition.set(x, y);\n      }\n      this._state = 0;\n      if (!event) {\n        if (this._lockedPointer)\n          this._state = this._state | this.mouseButtons.left;\n      } else if (\"pointerType\" in event && event.pointerType === \"touch\") {\n        switch (this._activePointers.length) {\n          case 1:\n            this._state = this.touches.one;\n            break;\n          case 2:\n            this._state = this.touches.two;\n            break;\n          case 3:\n            this._state = this.touches.three;\n            break;\n        }\n      } else {\n        if (!this._lockedPointer && (event.buttons & MOUSE_BUTTON.LEFT) === MOUSE_BUTTON.LEFT) {\n          this._state = this._state | this.mouseButtons.left;\n        }\n        if ((event.buttons & MOUSE_BUTTON.MIDDLE) === MOUSE_BUTTON.MIDDLE) {\n          this._state = this._state | this.mouseButtons.middle;\n        }\n        if ((event.buttons & MOUSE_BUTTON.RIGHT) === MOUSE_BUTTON.RIGHT) {\n          this._state = this._state | this.mouseButtons.right;\n        }\n      }\n      if ((this._state & ACTION.ROTATE) === ACTION.ROTATE || (this._state & ACTION.TOUCH_ROTATE) === ACTION.TOUCH_ROTATE || (this._state & ACTION.TOUCH_DOLLY_ROTATE) === ACTION.TOUCH_DOLLY_ROTATE || (this._state & ACTION.TOUCH_ZOOM_ROTATE) === ACTION.TOUCH_ZOOM_ROTATE) {\n        this._sphericalEnd.theta = this._spherical.theta;\n        this._sphericalEnd.phi = this._spherical.phi;\n        this._thetaVelocity.value = 0;\n        this._phiVelocity.value = 0;\n      }\n      if ((this._state & ACTION.TRUCK) === ACTION.TRUCK || (this._state & ACTION.TOUCH_TRUCK) === ACTION.TOUCH_TRUCK || (this._state & ACTION.TOUCH_DOLLY_TRUCK) === ACTION.TOUCH_DOLLY_TRUCK || (this._state & ACTION.TOUCH_ZOOM_TRUCK) === ACTION.TOUCH_ZOOM_TRUCK) {\n        this._targetEnd.copy(this._target);\n        this._targetVelocity.set(0, 0, 0);\n      }\n      if ((this._state & ACTION.DOLLY) === ACTION.DOLLY || (this._state & ACTION.TOUCH_DOLLY) === ACTION.TOUCH_DOLLY || (this._state & ACTION.TOUCH_DOLLY_TRUCK) === ACTION.TOUCH_DOLLY_TRUCK || (this._state & ACTION.TOUCH_DOLLY_OFFSET) === ACTION.TOUCH_DOLLY_OFFSET || (this._state & ACTION.TOUCH_DOLLY_ROTATE) === ACTION.TOUCH_DOLLY_ROTATE) {\n        this._sphericalEnd.radius = this._spherical.radius;\n        this._radiusVelocity.value = 0;\n      }\n      if ((this._state & ACTION.ZOOM) === ACTION.ZOOM || (this._state & ACTION.TOUCH_ZOOM) === ACTION.TOUCH_ZOOM || (this._state & ACTION.TOUCH_ZOOM_TRUCK) === ACTION.TOUCH_ZOOM_TRUCK || (this._state & ACTION.TOUCH_ZOOM_OFFSET) === ACTION.TOUCH_ZOOM_OFFSET || (this._state & ACTION.TOUCH_ZOOM_ROTATE) === ACTION.TOUCH_ZOOM_ROTATE) {\n        this._zoomEnd = this._zoom;\n        this._zoomVelocity.value = 0;\n      }\n      if ((this._state & ACTION.OFFSET) === ACTION.OFFSET || (this._state & ACTION.TOUCH_OFFSET) === ACTION.TOUCH_OFFSET || (this._state & ACTION.TOUCH_DOLLY_OFFSET) === ACTION.TOUCH_DOLLY_OFFSET || (this._state & ACTION.TOUCH_ZOOM_OFFSET) === ACTION.TOUCH_ZOOM_OFFSET) {\n        this._focalOffsetEnd.copy(this._focalOffset);\n        this._focalOffsetVelocity.set(0, 0, 0);\n      }\n      this.dispatchEvent({ type: \"controlstart\" });\n    };\n    const dragging = () => {\n      if (!this._enabled || !this._dragNeedsUpdate)\n        return;\n      this._dragNeedsUpdate = false;\n      extractClientCoordFromEvent(this._activePointers, _v2);\n      const isPointerLockActive = this._domElement && this._domElement.ownerDocument.pointerLockElement === this._domElement;\n      const lockedPointer = isPointerLockActive ? this._lockedPointer || this._activePointers[0] : null;\n      const deltaX = lockedPointer ? -lockedPointer.deltaX : lastDragPosition.x - _v2.x;\n      const deltaY = lockedPointer ? -lockedPointer.deltaY : lastDragPosition.y - _v2.y;\n      lastDragPosition.copy(_v2);\n      if ((this._state & ACTION.ROTATE) === ACTION.ROTATE || (this._state & ACTION.TOUCH_ROTATE) === ACTION.TOUCH_ROTATE || (this._state & ACTION.TOUCH_DOLLY_ROTATE) === ACTION.TOUCH_DOLLY_ROTATE || (this._state & ACTION.TOUCH_ZOOM_ROTATE) === ACTION.TOUCH_ZOOM_ROTATE) {\n        this._rotateInternal(deltaX, deltaY);\n        this._isUserControllingRotate = true;\n      }\n      if ((this._state & ACTION.DOLLY) === ACTION.DOLLY || (this._state & ACTION.ZOOM) === ACTION.ZOOM) {\n        const dollyX = this.dollyToCursor ? (dragStartPosition.x - this._elementRect.x) / this._elementRect.width * 2 - 1 : 0;\n        const dollyY = this.dollyToCursor ? (dragStartPosition.y - this._elementRect.y) / this._elementRect.height * -2 + 1 : 0;\n        const dollyDirection = this.dollyDragInverted ? -1 : 1;\n        if ((this._state & ACTION.DOLLY) === ACTION.DOLLY) {\n          this._dollyInternal(dollyDirection * deltaY * TOUCH_DOLLY_FACTOR, dollyX, dollyY);\n          this._isUserControllingDolly = true;\n        } else {\n          this._zoomInternal(dollyDirection * deltaY * TOUCH_DOLLY_FACTOR, dollyX, dollyY);\n          this._isUserControllingZoom = true;\n        }\n      }\n      if ((this._state & ACTION.TOUCH_DOLLY) === ACTION.TOUCH_DOLLY || (this._state & ACTION.TOUCH_ZOOM) === ACTION.TOUCH_ZOOM || (this._state & ACTION.TOUCH_DOLLY_TRUCK) === ACTION.TOUCH_DOLLY_TRUCK || (this._state & ACTION.TOUCH_ZOOM_TRUCK) === ACTION.TOUCH_ZOOM_TRUCK || (this._state & ACTION.TOUCH_DOLLY_OFFSET) === ACTION.TOUCH_DOLLY_OFFSET || (this._state & ACTION.TOUCH_ZOOM_OFFSET) === ACTION.TOUCH_ZOOM_OFFSET || (this._state & ACTION.TOUCH_DOLLY_ROTATE) === ACTION.TOUCH_DOLLY_ROTATE || (this._state & ACTION.TOUCH_ZOOM_ROTATE) === ACTION.TOUCH_ZOOM_ROTATE) {\n        const dx = _v2.x - this._activePointers[1].clientX;\n        const dy = _v2.y - this._activePointers[1].clientY;\n        const distance = Math.sqrt(dx * dx + dy * dy);\n        const dollyDelta = dollyStart.y - distance;\n        dollyStart.set(0, distance);\n        const dollyX = this.dollyToCursor ? (lastDragPosition.x - this._elementRect.x) / this._elementRect.width * 2 - 1 : 0;\n        const dollyY = this.dollyToCursor ? (lastDragPosition.y - this._elementRect.y) / this._elementRect.height * -2 + 1 : 0;\n        if ((this._state & ACTION.TOUCH_DOLLY) === ACTION.TOUCH_DOLLY || (this._state & ACTION.TOUCH_DOLLY_ROTATE) === ACTION.TOUCH_DOLLY_ROTATE || (this._state & ACTION.TOUCH_DOLLY_TRUCK) === ACTION.TOUCH_DOLLY_TRUCK || (this._state & ACTION.TOUCH_DOLLY_OFFSET) === ACTION.TOUCH_DOLLY_OFFSET) {\n          this._dollyInternal(dollyDelta * TOUCH_DOLLY_FACTOR, dollyX, dollyY);\n          this._isUserControllingDolly = true;\n        } else {\n          this._zoomInternal(dollyDelta * TOUCH_DOLLY_FACTOR, dollyX, dollyY);\n          this._isUserControllingZoom = true;\n        }\n      }\n      if ((this._state & ACTION.TRUCK) === ACTION.TRUCK || (this._state & ACTION.TOUCH_TRUCK) === ACTION.TOUCH_TRUCK || (this._state & ACTION.TOUCH_DOLLY_TRUCK) === ACTION.TOUCH_DOLLY_TRUCK || (this._state & ACTION.TOUCH_ZOOM_TRUCK) === ACTION.TOUCH_ZOOM_TRUCK) {\n        this._truckInternal(deltaX, deltaY, false);\n        this._isUserControllingTruck = true;\n      }\n      if ((this._state & ACTION.OFFSET) === ACTION.OFFSET || (this._state & ACTION.TOUCH_OFFSET) === ACTION.TOUCH_OFFSET || (this._state & ACTION.TOUCH_DOLLY_OFFSET) === ACTION.TOUCH_DOLLY_OFFSET || (this._state & ACTION.TOUCH_ZOOM_OFFSET) === ACTION.TOUCH_ZOOM_OFFSET) {\n        this._truckInternal(deltaX, deltaY, true);\n        this._isUserControllingOffset = true;\n      }\n      this.dispatchEvent({ type: \"control\" });\n    };\n    const endDragging = () => {\n      extractClientCoordFromEvent(this._activePointers, _v2);\n      lastDragPosition.copy(_v2);\n      this._dragNeedsUpdate = false;\n      if (this._activePointers.length === 0 || this._activePointers.length === 1 && this._activePointers[0] === this._lockedPointer) {\n        this._isDragging = false;\n      }\n      if (this._activePointers.length === 0 && this._domElement) {\n        this._domElement.ownerDocument.removeEventListener(\"pointermove\", onPointerMove, { passive: false });\n        this._domElement.ownerDocument.removeEventListener(\"pointerup\", onPointerUp);\n        this.dispatchEvent({ type: \"controlend\" });\n      }\n    };\n    this.lockPointer = () => {\n      if (!this._enabled || !this._domElement)\n        return;\n      this.cancel();\n      this._lockedPointer = {\n        pointerId: -1,\n        clientX: 0,\n        clientY: 0,\n        deltaX: 0,\n        deltaY: 0,\n        mouseButton: null\n      };\n      this._activePointers.push(this._lockedPointer);\n      this._domElement.ownerDocument.removeEventListener(\"pointermove\", onPointerMove, { passive: false });\n      this._domElement.ownerDocument.removeEventListener(\"pointerup\", onPointerUp);\n      this._domElement.requestPointerLock();\n      this._domElement.ownerDocument.addEventListener(\"pointerlockchange\", onPointerLockChange);\n      this._domElement.ownerDocument.addEventListener(\"pointerlockerror\", onPointerLockError);\n      this._domElement.ownerDocument.addEventListener(\"pointermove\", onPointerMove, { passive: false });\n      this._domElement.ownerDocument.addEventListener(\"pointerup\", onPointerUp);\n      startDragging();\n    };\n    this.unlockPointer = () => {\n      var _a2, _b, _c;\n      if (this._lockedPointer !== null) {\n        this._disposePointer(this._lockedPointer);\n        this._lockedPointer = null;\n      }\n      (_a2 = this._domElement) === null || _a2 === void 0 ? void 0 : _a2.ownerDocument.exitPointerLock();\n      (_b = this._domElement) === null || _b === void 0 ? void 0 : _b.ownerDocument.removeEventListener(\"pointerlockchange\", onPointerLockChange);\n      (_c = this._domElement) === null || _c === void 0 ? void 0 : _c.ownerDocument.removeEventListener(\"pointerlockerror\", onPointerLockError);\n      this.cancel();\n    };\n    const onPointerLockChange = () => {\n      const isPointerLockActive = this._domElement && this._domElement.ownerDocument.pointerLockElement === this._domElement;\n      if (!isPointerLockActive)\n        this.unlockPointer();\n    };\n    const onPointerLockError = () => {\n      this.unlockPointer();\n    };\n    this._addAllEventListeners = (domElement2) => {\n      this._domElement = domElement2;\n      this._domElement.style.touchAction = \"none\";\n      this._domElement.style.userSelect = \"none\";\n      this._domElement.style.webkitUserSelect = \"none\";\n      this._domElement.addEventListener(\"pointerdown\", onPointerDown);\n      this._domElement.addEventListener(\"pointercancel\", onPointerUp);\n      this._domElement.addEventListener(\"wheel\", onMouseWheel, { passive: false });\n      this._domElement.addEventListener(\"contextmenu\", onContextMenu);\n    };\n    this._removeAllEventListeners = () => {\n      if (!this._domElement)\n        return;\n      this._domElement.style.touchAction = \"\";\n      this._domElement.style.userSelect = \"\";\n      this._domElement.style.webkitUserSelect = \"\";\n      this._domElement.removeEventListener(\"pointerdown\", onPointerDown);\n      this._domElement.removeEventListener(\"pointercancel\", onPointerUp);\n      this._domElement.removeEventListener(\"wheel\", onMouseWheel, { passive: false });\n      this._domElement.removeEventListener(\"contextmenu\", onContextMenu);\n      this._domElement.ownerDocument.removeEventListener(\"pointermove\", onPointerMove, { passive: false });\n      this._domElement.ownerDocument.removeEventListener(\"pointerup\", onPointerUp);\n      this._domElement.ownerDocument.removeEventListener(\"pointerlockchange\", onPointerLockChange);\n      this._domElement.ownerDocument.removeEventListener(\"pointerlockerror\", onPointerLockError);\n    };\n    this.cancel = () => {\n      if (this._state === ACTION.NONE)\n        return;\n      this._state = ACTION.NONE;\n      this._activePointers.length = 0;\n      endDragging();\n    };\n    if (domElement)\n      this.connect(domElement);\n    this.update(0);\n  }\n  /**\n   * The camera to be controlled\n   * @category Properties\n   */\n  get camera() {\n    return this._camera;\n  }\n  set camera(camera) {\n    this._camera = camera;\n    this.updateCameraUp();\n    this._camera.updateProjectionMatrix();\n    this._updateNearPlaneCorners();\n    this._needsUpdate = true;\n  }\n  /**\n   * Whether or not the controls are enabled.\n   * `false` to disable user dragging/touch-move, but all methods works.\n   * @category Properties\n   */\n  get enabled() {\n    return this._enabled;\n  }\n  set enabled(enabled) {\n    this._enabled = enabled;\n    if (!this._domElement)\n      return;\n    if (enabled) {\n      this._domElement.style.touchAction = \"none\";\n      this._domElement.style.userSelect = \"none\";\n      this._domElement.style.webkitUserSelect = \"none\";\n    } else {\n      this.cancel();\n      this._domElement.style.touchAction = \"\";\n      this._domElement.style.userSelect = \"\";\n      this._domElement.style.webkitUserSelect = \"\";\n    }\n  }\n  /**\n   * Returns `true` if the controls are active updating.\n   * readonly value.\n   * @category Properties\n   */\n  get active() {\n    return !this._hasRested;\n  }\n  /**\n   * Getter for the current `ACTION`.\n   * readonly value.\n   * @category Properties\n   */\n  get currentAction() {\n    return this._state;\n  }\n  /**\n   * get/set Current distance.\n   * @category Properties\n   */\n  get distance() {\n    return this._spherical.radius;\n  }\n  set distance(distance) {\n    if (this._spherical.radius === distance && this._sphericalEnd.radius === distance)\n      return;\n    this._spherical.radius = distance;\n    this._sphericalEnd.radius = distance;\n    this._needsUpdate = true;\n  }\n  // horizontal angle\n  /**\n   * get/set the azimuth angle (horizontal) in radians.\n   * Every 360 degrees turn is added to `.azimuthAngle` value, which is accumulative.\n   * @category Properties\n   */\n  get azimuthAngle() {\n    return this._spherical.theta;\n  }\n  set azimuthAngle(azimuthAngle) {\n    if (this._spherical.theta === azimuthAngle && this._sphericalEnd.theta === azimuthAngle)\n      return;\n    this._spherical.theta = azimuthAngle;\n    this._sphericalEnd.theta = azimuthAngle;\n    this._needsUpdate = true;\n  }\n  // vertical angle\n  /**\n   * get/set the polar angle (vertical) in radians.\n   * @category Properties\n   */\n  get polarAngle() {\n    return this._spherical.phi;\n  }\n  set polarAngle(polarAngle) {\n    if (this._spherical.phi === polarAngle && this._sphericalEnd.phi === polarAngle)\n      return;\n    this._spherical.phi = polarAngle;\n    this._sphericalEnd.phi = polarAngle;\n    this._needsUpdate = true;\n  }\n  /**\n   * Whether camera position should be enclosed in the boundary or not.\n   * @category Properties\n   */\n  get boundaryEnclosesCamera() {\n    return this._boundaryEnclosesCamera;\n  }\n  set boundaryEnclosesCamera(boundaryEnclosesCamera) {\n    this._boundaryEnclosesCamera = boundaryEnclosesCamera;\n    this._needsUpdate = true;\n  }\n  /**\n   * Set drag-start, touches and wheel enable area in the domElement.\n   * each values are between `0` and `1` inclusive, where `0` is left/top and `1` is right/bottom of the screen.\n   * e.g. `{ x: 0, y: 0, width: 1, height: 1 }` for entire area.\n   * @category Properties\n   */\n  set interactiveArea(interactiveArea) {\n    this._interactiveArea.width = clamp(interactiveArea.width, 0, 1);\n    this._interactiveArea.height = clamp(interactiveArea.height, 0, 1);\n    this._interactiveArea.x = clamp(interactiveArea.x, 0, 1 - this._interactiveArea.width);\n    this._interactiveArea.y = clamp(interactiveArea.y, 0, 1 - this._interactiveArea.height);\n  }\n  /**\n   * Adds the specified event listener.\n   * Applicable event types (which is `K`) are:\n   * | Event name          | Timing |\n   * | ------------------- | ------ |\n   * | `'controlstart'`    | When the user starts to control the camera via mouse / touches. ¹ |\n   * | `'control'`         | When the user controls the camera (dragging). |\n   * | `'controlend'`      | When the user ends to control the camera. ¹ |\n   * | `'transitionstart'` | When any kind of transition starts, either user control or using a method with `enableTransition = true` |\n   * | `'update'`          | When the camera position is updated. |\n   * | `'wake'`            | When the camera starts moving. |\n   * | `'rest'`            | When the camera movement is below `.restThreshold` ². |\n   * | `'sleep'`           | When the camera end moving. |\n   *\n   * 1. `mouseButtons.wheel` (Mouse wheel control) does not emit `'controlstart'` and `'controlend'`. `mouseButtons.wheel` uses scroll-event internally, and scroll-event happens intermittently. That means \"start\" and \"end\" cannot be detected.\n   * 2. Due to damping, `sleep` will usually fire a few seconds after the camera _appears_ to have stopped moving. If you want to do something (e.g. enable UI, perform another transition) at the point when the camera has stopped, you probably want the `rest` event. This can be fine tuned using the `.restThreshold` parameter. See the [Rest and Sleep Example](https://yomotsu.github.io/camera-controls/examples/rest-and-sleep.html).\n   *\n   * e.g.\n   * ```\n   * cameraControl.addEventListener( 'controlstart', myCallbackFunction );\n   * ```\n   * @param type event name\n   * @param listener handler function\n   * @category Methods\n   */\n  addEventListener(type, listener) {\n    super.addEventListener(type, listener);\n  }\n  /**\n   * Removes the specified event listener\n   * e.g.\n   * ```\n   * cameraControl.addEventListener( 'controlstart', myCallbackFunction );\n   * ```\n   * @param type event name\n   * @param listener handler function\n   * @category Methods\n   */\n  removeEventListener(type, listener) {\n    super.removeEventListener(type, listener);\n  }\n  /**\n   * Rotate azimuthal angle(horizontal) and polar angle(vertical).\n   * Every value is added to the current value.\n   * @param azimuthAngle Azimuth rotate angle. In radian.\n   * @param polarAngle Polar rotate angle. In radian.\n   * @param enableTransition Whether to move smoothly or immediately\n   * @category Methods\n   */\n  rotate(azimuthAngle, polarAngle, enableTransition = false) {\n    return this.rotateTo(this._sphericalEnd.theta + azimuthAngle, this._sphericalEnd.phi + polarAngle, enableTransition);\n  }\n  /**\n   * Rotate azimuthal angle(horizontal) to the given angle and keep the same polar angle(vertical) target.\n   *\n   * e.g.\n   * ```\n   * cameraControls.rotateAzimuthTo( 30 * THREE.MathUtils.DEG2RAD, true );\n   * ```\n   * @param azimuthAngle Azimuth rotate angle. In radian.\n   * @param enableTransition Whether to move smoothly or immediately\n   * @category Methods\n   */\n  rotateAzimuthTo(azimuthAngle, enableTransition = false) {\n    return this.rotateTo(azimuthAngle, this._sphericalEnd.phi, enableTransition);\n  }\n  /**\n   * Rotate polar angle(vertical) to the given angle and keep the same azimuthal angle(horizontal) target.\n   *\n   * e.g.\n   * ```\n   * cameraControls.rotatePolarTo( 30 * THREE.MathUtils.DEG2RAD, true );\n   * ```\n   * @param polarAngle Polar rotate angle. In radian.\n   * @param enableTransition Whether to move smoothly or immediately\n   * @category Methods\n   */\n  rotatePolarTo(polarAngle, enableTransition = false) {\n    return this.rotateTo(this._sphericalEnd.theta, polarAngle, enableTransition);\n  }\n  /**\n   * Rotate azimuthal angle(horizontal) and polar angle(vertical) to the given angle.\n   * Camera view will rotate over the orbit pivot absolutely:\n   *\n   * azimuthAngle\n   * ```\n   *       0º\n   *         \\\n   * 90º -----+----- -90º\n   *           \\\n   *           180º\n   * ```\n   * | direction | angle                  |\n   * | --------- | ---------------------- |\n   * | front     | 0º                     |\n   * | left      | 90º (`Math.PI / 2`)    |\n   * | right     | -90º (`- Math.PI / 2`) |\n   * | back      | 180º (`Math.PI`)       |\n   *\n   * polarAngle\n   * ```\n   *     180º\n   *      |\n   *      90º\n   *      |\n   *      0º\n   * ```\n   * | direction            | angle                  |\n   * | -------------------- | ---------------------- |\n   * | top/sky              | 180º (`Math.PI`)       |\n   * | horizontal from view | 90º (`Math.PI / 2`)    |\n   * | bottom/floor         | 0º                     |\n   *\n   * @param azimuthAngle Azimuth rotate angle to. In radian.\n   * @param polarAngle Polar rotate angle to. In radian.\n   * @param enableTransition  Whether to move smoothly or immediately\n   * @category Methods\n   */\n  rotateTo(azimuthAngle, polarAngle, enableTransition = false) {\n    this._isUserControllingRotate = false;\n    const theta = clamp(azimuthAngle, this.minAzimuthAngle, this.maxAzimuthAngle);\n    const phi = clamp(polarAngle, this.minPolarAngle, this.maxPolarAngle);\n    this._sphericalEnd.theta = theta;\n    this._sphericalEnd.phi = phi;\n    this._sphericalEnd.makeSafe();\n    this._needsUpdate = true;\n    if (!enableTransition) {\n      this._spherical.theta = this._sphericalEnd.theta;\n      this._spherical.phi = this._sphericalEnd.phi;\n    }\n    const resolveImmediately = !enableTransition || approxEquals(this._spherical.theta, this._sphericalEnd.theta, this.restThreshold) && approxEquals(this._spherical.phi, this._sphericalEnd.phi, this.restThreshold);\n    return this._createOnRestPromise(resolveImmediately);\n  }\n  /**\n   * Dolly in/out camera position.\n   * @param distance Distance of dollyIn. Negative number for dollyOut.\n   * @param enableTransition Whether to move smoothly or immediately.\n   * @category Methods\n   */\n  dolly(distance, enableTransition = false) {\n    return this.dollyTo(this._sphericalEnd.radius - distance, enableTransition);\n  }\n  /**\n   * Dolly in/out camera position to given distance.\n   * @param distance Distance of dolly.\n   * @param enableTransition Whether to move smoothly or immediately.\n   * @category Methods\n   */\n  dollyTo(distance, enableTransition = false) {\n    this._isUserControllingDolly = false;\n    this._lastDollyDirection = DOLLY_DIRECTION.NONE;\n    this._changedDolly = 0;\n    return this._dollyToNoClamp(clamp(distance, this.minDistance, this.maxDistance), enableTransition);\n  }\n  _dollyToNoClamp(distance, enableTransition = false) {\n    const lastRadius = this._sphericalEnd.radius;\n    const hasCollider = this.colliderMeshes.length >= 1;\n    if (hasCollider) {\n      const maxDistanceByCollisionTest = this._collisionTest();\n      const isCollided = approxEquals(maxDistanceByCollisionTest, this._spherical.radius);\n      const isDollyIn = lastRadius > distance;\n      if (!isDollyIn && isCollided)\n        return Promise.resolve();\n      this._sphericalEnd.radius = Math.min(distance, maxDistanceByCollisionTest);\n    } else {\n      this._sphericalEnd.radius = distance;\n    }\n    this._needsUpdate = true;\n    if (!enableTransition) {\n      this._spherical.radius = this._sphericalEnd.radius;\n    }\n    const resolveImmediately = !enableTransition || approxEquals(this._spherical.radius, this._sphericalEnd.radius, this.restThreshold);\n    return this._createOnRestPromise(resolveImmediately);\n  }\n  /**\n   * Dolly in, but does not change the distance between the target and the camera, and moves the target position instead.\n   * Specify a negative value for dolly out.\n   * @param distance Distance of dolly.\n   * @param enableTransition Whether to move smoothly or immediately.\n   * @category Methods\n   */\n  dollyInFixed(distance, enableTransition = false) {\n    this._targetEnd.add(this._getCameraDirection(_cameraDirection).multiplyScalar(distance));\n    if (!enableTransition) {\n      this._target.copy(this._targetEnd);\n    }\n    const resolveImmediately = !enableTransition || approxEquals(this._target.x, this._targetEnd.x, this.restThreshold) && approxEquals(this._target.y, this._targetEnd.y, this.restThreshold) && approxEquals(this._target.z, this._targetEnd.z, this.restThreshold);\n    return this._createOnRestPromise(resolveImmediately);\n  }\n  /**\n   * Zoom in/out camera. The value is added to camera zoom.\n   * Limits set with `.minZoom` and `.maxZoom`\n   * @param zoomStep zoom scale\n   * @param enableTransition Whether to move smoothly or immediately\n   * @category Methods\n   */\n  zoom(zoomStep, enableTransition = false) {\n    return this.zoomTo(this._zoomEnd + zoomStep, enableTransition);\n  }\n  /**\n   * Zoom in/out camera to given scale. The value overwrites camera zoom.\n   * Limits set with .minZoom and .maxZoom\n   * @param zoom\n   * @param enableTransition\n   * @category Methods\n   */\n  zoomTo(zoom, enableTransition = false) {\n    this._isUserControllingZoom = false;\n    this._zoomEnd = clamp(zoom, this.minZoom, this.maxZoom);\n    this._needsUpdate = true;\n    if (!enableTransition) {\n      this._zoom = this._zoomEnd;\n    }\n    const resolveImmediately = !enableTransition || approxEquals(this._zoom, this._zoomEnd, this.restThreshold);\n    this._changedZoom = 0;\n    return this._createOnRestPromise(resolveImmediately);\n  }\n  /**\n   * @deprecated `pan()` has been renamed to `truck()`\n   * @category Methods\n   */\n  pan(x, y, enableTransition = false) {\n    console.warn(\"`pan` has been renamed to `truck`\");\n    return this.truck(x, y, enableTransition);\n  }\n  /**\n   * Truck and pedestal camera using current azimuthal angle\n   * @param x Horizontal translate amount\n   * @param y Vertical translate amount\n   * @param enableTransition Whether to move smoothly or immediately\n   * @category Methods\n   */\n  truck(x, y, enableTransition = false) {\n    this._camera.updateMatrix();\n    _xColumn.setFromMatrixColumn(this._camera.matrix, 0);\n    _yColumn.setFromMatrixColumn(this._camera.matrix, 1);\n    _xColumn.multiplyScalar(x);\n    _yColumn.multiplyScalar(-y);\n    const offset = _v3A.copy(_xColumn).add(_yColumn);\n    const to = _v3B.copy(this._targetEnd).add(offset);\n    return this.moveTo(to.x, to.y, to.z, enableTransition);\n  }\n  /**\n   * Move forward / backward.\n   * @param distance Amount to move forward / backward. Negative value to move backward\n   * @param enableTransition Whether to move smoothly or immediately\n   * @category Methods\n   */\n  forward(distance, enableTransition = false) {\n    _v3A.setFromMatrixColumn(this._camera.matrix, 0);\n    _v3A.crossVectors(this._camera.up, _v3A);\n    _v3A.multiplyScalar(distance);\n    const to = _v3B.copy(this._targetEnd).add(_v3A);\n    return this.moveTo(to.x, to.y, to.z, enableTransition);\n  }\n  /**\n   * Move up / down.\n   * @param height Amount to move up / down. Negative value to move down\n   * @param enableTransition Whether to move smoothly or immediately\n   * @category Methods\n   */\n  elevate(height, enableTransition = false) {\n    _v3A.copy(this._camera.up).multiplyScalar(height);\n    return this.moveTo(this._targetEnd.x + _v3A.x, this._targetEnd.y + _v3A.y, this._targetEnd.z + _v3A.z, enableTransition);\n  }\n  /**\n   * Move target position to given point.\n   * @param x x coord to move center position\n   * @param y y coord to move center position\n   * @param z z coord to move center position\n   * @param enableTransition Whether to move smoothly or immediately\n   * @category Methods\n   */\n  moveTo(x, y, z, enableTransition = false) {\n    this._isUserControllingTruck = false;\n    const offset = _v3A.set(x, y, z).sub(this._targetEnd);\n    this._encloseToBoundary(this._targetEnd, offset, this.boundaryFriction);\n    this._needsUpdate = true;\n    if (!enableTransition) {\n      this._target.copy(this._targetEnd);\n    }\n    const resolveImmediately = !enableTransition || approxEquals(this._target.x, this._targetEnd.x, this.restThreshold) && approxEquals(this._target.y, this._targetEnd.y, this.restThreshold) && approxEquals(this._target.z, this._targetEnd.z, this.restThreshold);\n    return this._createOnRestPromise(resolveImmediately);\n  }\n  /**\n   * Look in the given point direction.\n   * @param x point x.\n   * @param y point y.\n   * @param z point z.\n   * @param enableTransition Whether to move smoothly or immediately.\n   * @returns Transition end promise\n   * @category Methods\n   */\n  lookInDirectionOf(x, y, z, enableTransition = false) {\n    const point = _v3A.set(x, y, z);\n    const direction = point.sub(this._targetEnd).normalize();\n    const position = direction.multiplyScalar(-this._sphericalEnd.radius).add(this._targetEnd);\n    return this.setPosition(position.x, position.y, position.z, enableTransition);\n  }\n  /**\n   * Fit the viewport to the box or the bounding box of the object, using the nearest axis. paddings are in unit.\n   * set `cover: true` to fill enter screen.\n   * e.g.\n   * ```\n   * cameraControls.fitToBox( myMesh );\n   * ```\n   * @param box3OrObject Axis aligned bounding box to fit the view.\n   * @param enableTransition Whether to move smoothly or immediately.\n   * @param options | `<object>` { cover: boolean, paddingTop: number, paddingLeft: number, paddingBottom: number, paddingRight: number }\n   * @returns Transition end promise\n   * @category Methods\n   */\n  fitToBox(box3OrObject, enableTransition, { cover = false, paddingLeft = 0, paddingRight = 0, paddingBottom = 0, paddingTop = 0 } = {}) {\n    const promises = [];\n    const aabb = box3OrObject.isBox3 ? _box3A.copy(box3OrObject) : _box3A.setFromObject(box3OrObject);\n    if (aabb.isEmpty()) {\n      console.warn(\"camera-controls: fitTo() cannot be used with an empty box. Aborting\");\n      Promise.resolve();\n    }\n    const theta = roundToStep(this._sphericalEnd.theta, PI_HALF);\n    const phi = roundToStep(this._sphericalEnd.phi, PI_HALF);\n    promises.push(this.rotateTo(theta, phi, enableTransition));\n    const normal = _v3A.setFromSpherical(this._sphericalEnd).normalize();\n    const rotation = _quaternionA.setFromUnitVectors(normal, _AXIS_Z);\n    const viewFromPolar = approxEquals(Math.abs(normal.y), 1);\n    if (viewFromPolar) {\n      rotation.multiply(_quaternionB.setFromAxisAngle(_AXIS_Y, theta));\n    }\n    rotation.multiply(this._yAxisUpSpaceInverse);\n    const bb = _box3B.makeEmpty();\n    _v3B.copy(aabb.min).applyQuaternion(rotation);\n    bb.expandByPoint(_v3B);\n    _v3B.copy(aabb.min).setX(aabb.max.x).applyQuaternion(rotation);\n    bb.expandByPoint(_v3B);\n    _v3B.copy(aabb.min).setY(aabb.max.y).applyQuaternion(rotation);\n    bb.expandByPoint(_v3B);\n    _v3B.copy(aabb.max).setZ(aabb.min.z).applyQuaternion(rotation);\n    bb.expandByPoint(_v3B);\n    _v3B.copy(aabb.min).setZ(aabb.max.z).applyQuaternion(rotation);\n    bb.expandByPoint(_v3B);\n    _v3B.copy(aabb.max).setY(aabb.min.y).applyQuaternion(rotation);\n    bb.expandByPoint(_v3B);\n    _v3B.copy(aabb.max).setX(aabb.min.x).applyQuaternion(rotation);\n    bb.expandByPoint(_v3B);\n    _v3B.copy(aabb.max).applyQuaternion(rotation);\n    bb.expandByPoint(_v3B);\n    bb.min.x -= paddingLeft;\n    bb.min.y -= paddingBottom;\n    bb.max.x += paddingRight;\n    bb.max.y += paddingTop;\n    rotation.setFromUnitVectors(_AXIS_Z, normal);\n    if (viewFromPolar) {\n      rotation.premultiply(_quaternionB.invert());\n    }\n    rotation.premultiply(this._yAxisUpSpace);\n    const bbSize = bb.getSize(_v3A);\n    const center = bb.getCenter(_v3B).applyQuaternion(rotation);\n    if (isPerspectiveCamera(this._camera)) {\n      const distance = this.getDistanceToFitBox(bbSize.x, bbSize.y, bbSize.z, cover);\n      promises.push(this.moveTo(center.x, center.y, center.z, enableTransition));\n      promises.push(this.dollyTo(distance, enableTransition));\n      promises.push(this.setFocalOffset(0, 0, 0, enableTransition));\n    } else if (isOrthographicCamera(this._camera)) {\n      const camera = this._camera;\n      const width = camera.right - camera.left;\n      const height = camera.top - camera.bottom;\n      const zoom = cover ? Math.max(width / bbSize.x, height / bbSize.y) : Math.min(width / bbSize.x, height / bbSize.y);\n      promises.push(this.moveTo(center.x, center.y, center.z, enableTransition));\n      promises.push(this.zoomTo(zoom, enableTransition));\n      promises.push(this.setFocalOffset(0, 0, 0, enableTransition));\n    }\n    return Promise.all(promises);\n  }\n  /**\n   * Fit the viewport to the sphere or the bounding sphere of the object.\n   * @param sphereOrMesh\n   * @param enableTransition\n   * @category Methods\n   */\n  fitToSphere(sphereOrMesh, enableTransition) {\n    const promises = [];\n    const isObject3D = \"isObject3D\" in sphereOrMesh;\n    const boundingSphere = isObject3D ? _CameraControls.createBoundingSphere(sphereOrMesh, _sphere) : _sphere.copy(sphereOrMesh);\n    promises.push(this.moveTo(boundingSphere.center.x, boundingSphere.center.y, boundingSphere.center.z, enableTransition));\n    if (isPerspectiveCamera(this._camera)) {\n      const distanceToFit = this.getDistanceToFitSphere(boundingSphere.radius);\n      promises.push(this.dollyTo(distanceToFit, enableTransition));\n    } else if (isOrthographicCamera(this._camera)) {\n      const width = this._camera.right - this._camera.left;\n      const height = this._camera.top - this._camera.bottom;\n      const diameter = 2 * boundingSphere.radius;\n      const zoom = Math.min(width / diameter, height / diameter);\n      promises.push(this.zoomTo(zoom, enableTransition));\n    }\n    promises.push(this.setFocalOffset(0, 0, 0, enableTransition));\n    return Promise.all(promises);\n  }\n  /**\n   * Look at the `target` from the `position`.\n   * @param positionX\n   * @param positionY\n   * @param positionZ\n   * @param targetX\n   * @param targetY\n   * @param targetZ\n   * @param enableTransition\n   * @category Methods\n   */\n  setLookAt(positionX, positionY, positionZ, targetX, targetY, targetZ, enableTransition = false) {\n    this._isUserControllingRotate = false;\n    this._isUserControllingDolly = false;\n    this._isUserControllingTruck = false;\n    this._lastDollyDirection = DOLLY_DIRECTION.NONE;\n    this._changedDolly = 0;\n    const target = _v3B.set(targetX, targetY, targetZ);\n    const position = _v3A.set(positionX, positionY, positionZ);\n    this._targetEnd.copy(target);\n    this._sphericalEnd.setFromVector3(position.sub(target).applyQuaternion(this._yAxisUpSpace));\n    this.normalizeRotations();\n    this._needsUpdate = true;\n    if (!enableTransition) {\n      this._target.copy(this._targetEnd);\n      this._spherical.copy(this._sphericalEnd);\n    }\n    const resolveImmediately = !enableTransition || approxEquals(this._target.x, this._targetEnd.x, this.restThreshold) && approxEquals(this._target.y, this._targetEnd.y, this.restThreshold) && approxEquals(this._target.z, this._targetEnd.z, this.restThreshold) && approxEquals(this._spherical.theta, this._sphericalEnd.theta, this.restThreshold) && approxEquals(this._spherical.phi, this._sphericalEnd.phi, this.restThreshold) && approxEquals(this._spherical.radius, this._sphericalEnd.radius, this.restThreshold);\n    return this._createOnRestPromise(resolveImmediately);\n  }\n  /**\n   * Similar to setLookAt, but it interpolates between two states.\n   * @param positionAX\n   * @param positionAY\n   * @param positionAZ\n   * @param targetAX\n   * @param targetAY\n   * @param targetAZ\n   * @param positionBX\n   * @param positionBY\n   * @param positionBZ\n   * @param targetBX\n   * @param targetBY\n   * @param targetBZ\n   * @param t\n   * @param enableTransition\n   * @category Methods\n   */\n  lerpLookAt(positionAX, positionAY, positionAZ, targetAX, targetAY, targetAZ, positionBX, positionBY, positionBZ, targetBX, targetBY, targetBZ, t, enableTransition = false) {\n    this._isUserControllingRotate = false;\n    this._isUserControllingDolly = false;\n    this._isUserControllingTruck = false;\n    this._lastDollyDirection = DOLLY_DIRECTION.NONE;\n    this._changedDolly = 0;\n    const targetA = _v3A.set(targetAX, targetAY, targetAZ);\n    const positionA = _v3B.set(positionAX, positionAY, positionAZ);\n    _sphericalA.setFromVector3(positionA.sub(targetA).applyQuaternion(this._yAxisUpSpace));\n    const targetB = _v3C.set(targetBX, targetBY, targetBZ);\n    const positionB = _v3B.set(positionBX, positionBY, positionBZ);\n    _sphericalB.setFromVector3(positionB.sub(targetB).applyQuaternion(this._yAxisUpSpace));\n    this._targetEnd.copy(targetA.lerp(targetB, t));\n    const deltaTheta = _sphericalB.theta - _sphericalA.theta;\n    const deltaPhi = _sphericalB.phi - _sphericalA.phi;\n    const deltaRadius = _sphericalB.radius - _sphericalA.radius;\n    this._sphericalEnd.set(_sphericalA.radius + deltaRadius * t, _sphericalA.phi + deltaPhi * t, _sphericalA.theta + deltaTheta * t);\n    this.normalizeRotations();\n    this._needsUpdate = true;\n    if (!enableTransition) {\n      this._target.copy(this._targetEnd);\n      this._spherical.copy(this._sphericalEnd);\n    }\n    const resolveImmediately = !enableTransition || approxEquals(this._target.x, this._targetEnd.x, this.restThreshold) && approxEquals(this._target.y, this._targetEnd.y, this.restThreshold) && approxEquals(this._target.z, this._targetEnd.z, this.restThreshold) && approxEquals(this._spherical.theta, this._sphericalEnd.theta, this.restThreshold) && approxEquals(this._spherical.phi, this._sphericalEnd.phi, this.restThreshold) && approxEquals(this._spherical.radius, this._sphericalEnd.radius, this.restThreshold);\n    return this._createOnRestPromise(resolveImmediately);\n  }\n  /**\n   * Set angle and distance by given position.\n   * An alias of `setLookAt()`, without target change. Thus keep gazing at the current target\n   * @param positionX\n   * @param positionY\n   * @param positionZ\n   * @param enableTransition\n   * @category Methods\n   */\n  setPosition(positionX, positionY, positionZ, enableTransition = false) {\n    return this.setLookAt(positionX, positionY, positionZ, this._targetEnd.x, this._targetEnd.y, this._targetEnd.z, enableTransition);\n  }\n  /**\n   * Set the target position where gaze at.\n   * An alias of `setLookAt()`, without position change. Thus keep the same position.\n   * @param targetX\n   * @param targetY\n   * @param targetZ\n   * @param enableTransition\n   * @category Methods\n   */\n  setTarget(targetX, targetY, targetZ, enableTransition = false) {\n    const pos = this.getPosition(_v3A);\n    const promise = this.setLookAt(pos.x, pos.y, pos.z, targetX, targetY, targetZ, enableTransition);\n    this._sphericalEnd.phi = clamp(this._sphericalEnd.phi, this.minPolarAngle, this.maxPolarAngle);\n    return promise;\n  }\n  /**\n   * Set focal offset using the screen parallel coordinates. z doesn't affect in Orthographic as with Dolly.\n   * @param x\n   * @param y\n   * @param z\n   * @param enableTransition\n   * @category Methods\n   */\n  setFocalOffset(x, y, z, enableTransition = false) {\n    this._isUserControllingOffset = false;\n    this._focalOffsetEnd.set(x, y, z);\n    this._needsUpdate = true;\n    if (!enableTransition)\n      this._focalOffset.copy(this._focalOffsetEnd);\n    const resolveImmediately = !enableTransition || approxEquals(this._focalOffset.x, this._focalOffsetEnd.x, this.restThreshold) && approxEquals(this._focalOffset.y, this._focalOffsetEnd.y, this.restThreshold) && approxEquals(this._focalOffset.z, this._focalOffsetEnd.z, this.restThreshold);\n    return this._createOnRestPromise(resolveImmediately);\n  }\n  /**\n   * Set orbit point without moving the camera.\n   * SHOULD NOT RUN DURING ANIMATIONS. `setOrbitPoint()` will immediately fix the positions.\n   * @param targetX\n   * @param targetY\n   * @param targetZ\n   * @category Methods\n   */\n  setOrbitPoint(targetX, targetY, targetZ) {\n    this._camera.updateMatrixWorld();\n    _xColumn.setFromMatrixColumn(this._camera.matrixWorldInverse, 0);\n    _yColumn.setFromMatrixColumn(this._camera.matrixWorldInverse, 1);\n    _zColumn.setFromMatrixColumn(this._camera.matrixWorldInverse, 2);\n    const position = _v3A.set(targetX, targetY, targetZ);\n    const distance = position.distanceTo(this._camera.position);\n    const cameraToPoint = position.sub(this._camera.position);\n    _xColumn.multiplyScalar(cameraToPoint.x);\n    _yColumn.multiplyScalar(cameraToPoint.y);\n    _zColumn.multiplyScalar(cameraToPoint.z);\n    _v3A.copy(_xColumn).add(_yColumn).add(_zColumn);\n    _v3A.z = _v3A.z + distance;\n    this.dollyTo(distance, false);\n    this.setFocalOffset(-_v3A.x, _v3A.y, -_v3A.z, false);\n    this.moveTo(targetX, targetY, targetZ, false);\n  }\n  /**\n   * Set the boundary box that encloses the target of the camera. box3 is in THREE.Box3\n   * @param box3\n   * @category Methods\n   */\n  setBoundary(box3) {\n    if (!box3) {\n      this._boundary.min.set(-Infinity, -Infinity, -Infinity);\n      this._boundary.max.set(Infinity, Infinity, Infinity);\n      this._needsUpdate = true;\n      return;\n    }\n    this._boundary.copy(box3);\n    this._boundary.clampPoint(this._targetEnd, this._targetEnd);\n    this._needsUpdate = true;\n  }\n  /**\n   * Set (or unset) the current viewport.\n   * Set this when you want to use renderer viewport and .dollyToCursor feature at the same time.\n   * @param viewportOrX\n   * @param y\n   * @param width\n   * @param height\n   * @category Methods\n   */\n  setViewport(viewportOrX, y, width, height) {\n    if (viewportOrX === null) {\n      this._viewport = null;\n      return;\n    }\n    this._viewport = this._viewport || new THREE.Vector4();\n    if (typeof viewportOrX === \"number\") {\n      this._viewport.set(viewportOrX, y, width, height);\n    } else {\n      this._viewport.copy(viewportOrX);\n    }\n  }\n  /**\n   * Calculate the distance to fit the box.\n   * @param width box width\n   * @param height box height\n   * @param depth box depth\n   * @returns distance\n   * @category Methods\n   */\n  getDistanceToFitBox(width, height, depth, cover = false) {\n    if (notSupportedInOrthographicCamera(this._camera, \"getDistanceToFitBox\"))\n      return this._spherical.radius;\n    const boundingRectAspect = width / height;\n    const fov = this._camera.getEffectiveFOV() * DEG2RAD;\n    const aspect = this._camera.aspect;\n    const heightToFit = (cover ? boundingRectAspect > aspect : boundingRectAspect < aspect) ? height : width / aspect;\n    return heightToFit * 0.5 / Math.tan(fov * 0.5) + depth * 0.5;\n  }\n  /**\n   * Calculate the distance to fit the sphere.\n   * @param radius sphere radius\n   * @returns distance\n   * @category Methods\n   */\n  getDistanceToFitSphere(radius) {\n    if (notSupportedInOrthographicCamera(this._camera, \"getDistanceToFitSphere\"))\n      return this._spherical.radius;\n    const vFOV = this._camera.getEffectiveFOV() * DEG2RAD;\n    const hFOV = Math.atan(Math.tan(vFOV * 0.5) * this._camera.aspect) * 2;\n    const fov = 1 < this._camera.aspect ? vFOV : hFOV;\n    return radius / Math.sin(fov * 0.5);\n  }\n  /**\n   * Returns the orbit center position, where the camera looking at.\n   * @param out The receiving Vector3 instance to copy the result\n   * @param receiveEndValue Whether receive the transition end coords or current. default is `true`\n   * @category Methods\n   */\n  getTarget(out, receiveEndValue = true) {\n    const _out = !!out && out.isVector3 ? out : new THREE.Vector3();\n    return _out.copy(receiveEndValue ? this._targetEnd : this._target);\n  }\n  /**\n   * Returns the camera position.\n   * @param out The receiving Vector3 instance to copy the result\n   * @param receiveEndValue Whether receive the transition end coords or current. default is `true`\n   * @category Methods\n   */\n  getPosition(out, receiveEndValue = true) {\n    const _out = !!out && out.isVector3 ? out : new THREE.Vector3();\n    return _out.setFromSpherical(receiveEndValue ? this._sphericalEnd : this._spherical).applyQuaternion(this._yAxisUpSpaceInverse).add(receiveEndValue ? this._targetEnd : this._target);\n  }\n  /**\n   * Returns the spherical coordinates of the orbit.\n   * @param out The receiving Spherical instance to copy the result\n   * @param receiveEndValue Whether receive the transition end coords or current. default is `true`\n   * @category Methods\n   */\n  getSpherical(out, receiveEndValue = true) {\n    const _out = out || new THREE.Spherical();\n    return _out.copy(receiveEndValue ? this._sphericalEnd : this._spherical);\n  }\n  /**\n   * Returns the focal offset, which is how much the camera appears to be translated in screen parallel coordinates.\n   * @param out The receiving Vector3 instance to copy the result\n   * @param receiveEndValue Whether receive the transition end coords or current. default is `true`\n   * @category Methods\n   */\n  getFocalOffset(out, receiveEndValue = true) {\n    const _out = !!out && out.isVector3 ? out : new THREE.Vector3();\n    return _out.copy(receiveEndValue ? this._focalOffsetEnd : this._focalOffset);\n  }\n  /**\n   * Normalize camera azimuth angle rotation between 0 and 360 degrees.\n   * @category Methods\n   */\n  normalizeRotations() {\n    this._sphericalEnd.theta = this._sphericalEnd.theta % PI_2;\n    if (this._sphericalEnd.theta < 0)\n      this._sphericalEnd.theta += PI_2;\n    this._spherical.theta += PI_2 * Math.round((this._sphericalEnd.theta - this._spherical.theta) / PI_2);\n  }\n  /**\n   * stop all transitions.\n   */\n  stop() {\n    this._focalOffset.copy(this._focalOffsetEnd);\n    this._target.copy(this._targetEnd);\n    this._spherical.copy(this._sphericalEnd);\n    this._zoom = this._zoomEnd;\n  }\n  /**\n   * Reset all rotation and position to defaults.\n   * @param enableTransition\n   * @category Methods\n   */\n  reset(enableTransition = false) {\n    if (!approxEquals(this._camera.up.x, this._cameraUp0.x) || !approxEquals(this._camera.up.y, this._cameraUp0.y) || !approxEquals(this._camera.up.z, this._cameraUp0.z)) {\n      this._camera.up.copy(this._cameraUp0);\n      const position = this.getPosition(_v3A);\n      this.updateCameraUp();\n      this.setPosition(position.x, position.y, position.z);\n    }\n    const promises = [\n      this.setLookAt(this._position0.x, this._position0.y, this._position0.z, this._target0.x, this._target0.y, this._target0.z, enableTransition),\n      this.setFocalOffset(this._focalOffset0.x, this._focalOffset0.y, this._focalOffset0.z, enableTransition),\n      this.zoomTo(this._zoom0, enableTransition)\n    ];\n    return Promise.all(promises);\n  }\n  /**\n   * Set current camera position as the default position.\n   * @category Methods\n   */\n  saveState() {\n    this._cameraUp0.copy(this._camera.up);\n    this.getTarget(this._target0);\n    this.getPosition(this._position0);\n    this._zoom0 = this._zoom;\n    this._focalOffset0.copy(this._focalOffset);\n  }\n  /**\n   * Sync camera-up direction.\n   * When camera-up vector is changed, `.updateCameraUp()` must be called.\n   * @category Methods\n   */\n  updateCameraUp() {\n    this._yAxisUpSpace.setFromUnitVectors(this._camera.up, _AXIS_Y);\n    this._yAxisUpSpaceInverse.copy(this._yAxisUpSpace).invert();\n  }\n  /**\n   * Apply current camera-up direction to the camera.\n   * The orbit system will be re-initialized with the current position.\n   * @category Methods\n   */\n  applyCameraUp() {\n    const cameraDirection = _v3A.subVectors(this._target, this._camera.position).normalize();\n    const side = _v3B.crossVectors(cameraDirection, this._camera.up);\n    this._camera.up.crossVectors(side, cameraDirection).normalize();\n    this._camera.updateMatrixWorld();\n    const position = this.getPosition(_v3A);\n    this.updateCameraUp();\n    this.setPosition(position.x, position.y, position.z);\n  }\n  /**\n   * Update camera position and directions.\n   * This should be called in your tick loop every time, and returns true if re-rendering is needed.\n   * @param delta\n   * @returns updated\n   * @category Methods\n   */\n  update(delta) {\n    const deltaTheta = this._sphericalEnd.theta - this._spherical.theta;\n    const deltaPhi = this._sphericalEnd.phi - this._spherical.phi;\n    const deltaRadius = this._sphericalEnd.radius - this._spherical.radius;\n    const deltaTarget = _deltaTarget.subVectors(this._targetEnd, this._target);\n    const deltaOffset = _deltaOffset.subVectors(this._focalOffsetEnd, this._focalOffset);\n    const deltaZoom = this._zoomEnd - this._zoom;\n    if (approxZero(deltaTheta)) {\n      this._thetaVelocity.value = 0;\n      this._spherical.theta = this._sphericalEnd.theta;\n    } else {\n      const smoothTime = this._isUserControllingRotate ? this.draggingSmoothTime : this.smoothTime;\n      this._spherical.theta = smoothDamp(this._spherical.theta, this._sphericalEnd.theta, this._thetaVelocity, smoothTime, Infinity, delta);\n      this._needsUpdate = true;\n    }\n    if (approxZero(deltaPhi)) {\n      this._phiVelocity.value = 0;\n      this._spherical.phi = this._sphericalEnd.phi;\n    } else {\n      const smoothTime = this._isUserControllingRotate ? this.draggingSmoothTime : this.smoothTime;\n      this._spherical.phi = smoothDamp(this._spherical.phi, this._sphericalEnd.phi, this._phiVelocity, smoothTime, Infinity, delta);\n      this._needsUpdate = true;\n    }\n    if (approxZero(deltaRadius)) {\n      this._radiusVelocity.value = 0;\n      this._spherical.radius = this._sphericalEnd.radius;\n    } else {\n      const smoothTime = this._isUserControllingDolly ? this.draggingSmoothTime : this.smoothTime;\n      this._spherical.radius = smoothDamp(this._spherical.radius, this._sphericalEnd.radius, this._radiusVelocity, smoothTime, this.maxSpeed, delta);\n      this._needsUpdate = true;\n    }\n    if (approxZero(deltaTarget.x) && approxZero(deltaTarget.y) && approxZero(deltaTarget.z)) {\n      this._targetVelocity.set(0, 0, 0);\n      this._target.copy(this._targetEnd);\n    } else {\n      const smoothTime = this._isUserControllingTruck ? this.draggingSmoothTime : this.smoothTime;\n      smoothDampVec3(this._target, this._targetEnd, this._targetVelocity, smoothTime, this.maxSpeed, delta, this._target);\n      this._needsUpdate = true;\n    }\n    if (approxZero(deltaOffset.x) && approxZero(deltaOffset.y) && approxZero(deltaOffset.z)) {\n      this._focalOffsetVelocity.set(0, 0, 0);\n      this._focalOffset.copy(this._focalOffsetEnd);\n    } else {\n      const smoothTime = this._isUserControllingOffset ? this.draggingSmoothTime : this.smoothTime;\n      smoothDampVec3(this._focalOffset, this._focalOffsetEnd, this._focalOffsetVelocity, smoothTime, this.maxSpeed, delta, this._focalOffset);\n      this._needsUpdate = true;\n    }\n    if (approxZero(deltaZoom)) {\n      this._zoomVelocity.value = 0;\n      this._zoom = this._zoomEnd;\n    } else {\n      const smoothTime = this._isUserControllingZoom ? this.draggingSmoothTime : this.smoothTime;\n      this._zoom = smoothDamp(this._zoom, this._zoomEnd, this._zoomVelocity, smoothTime, Infinity, delta);\n    }\n    if (this.dollyToCursor) {\n      if (isPerspectiveCamera(this._camera) && this._changedDolly !== 0) {\n        const dollyControlAmount = this._spherical.radius - this._lastDistance;\n        const camera = this._camera;\n        const cameraDirection = this._getCameraDirection(_cameraDirection);\n        const planeX = _v3A.copy(cameraDirection).cross(camera.up).normalize();\n        if (planeX.lengthSq() === 0)\n          planeX.x = 1;\n        const planeY = _v3B.crossVectors(planeX, cameraDirection);\n        const worldToScreen = this._sphericalEnd.radius * Math.tan(camera.getEffectiveFOV() * DEG2RAD * 0.5);\n        const prevRadius = this._sphericalEnd.radius - dollyControlAmount;\n        const lerpRatio = (prevRadius - this._sphericalEnd.radius) / this._sphericalEnd.radius;\n        const cursor = _v3C.copy(this._targetEnd).add(planeX.multiplyScalar(this._dollyControlCoord.x * worldToScreen * camera.aspect)).add(planeY.multiplyScalar(this._dollyControlCoord.y * worldToScreen));\n        const newTargetEnd = _v3A.copy(this._targetEnd).lerp(cursor, lerpRatio);\n        const isMin = this._lastDollyDirection === DOLLY_DIRECTION.IN && this._spherical.radius <= this.minDistance;\n        const isMax = this._lastDollyDirection === DOLLY_DIRECTION.OUT && this.maxDistance <= this._spherical.radius;\n        if (this.infinityDolly && (isMin || isMax)) {\n          this._sphericalEnd.radius -= dollyControlAmount;\n          this._spherical.radius -= dollyControlAmount;\n          const dollyAmount = _v3B.copy(cameraDirection).multiplyScalar(-dollyControlAmount);\n          newTargetEnd.add(dollyAmount);\n        }\n        this._boundary.clampPoint(newTargetEnd, newTargetEnd);\n        const targetEndDiff = _v3B.subVectors(newTargetEnd, this._targetEnd);\n        this._targetEnd.copy(newTargetEnd);\n        this._target.add(targetEndDiff);\n        this._changedDolly -= dollyControlAmount;\n        if (approxZero(this._changedDolly))\n          this._changedDolly = 0;\n      } else if (isOrthographicCamera(this._camera) && this._changedZoom !== 0) {\n        const dollyControlAmount = this._zoom - this._lastZoom;\n        const camera = this._camera;\n        const worldCursorPosition = _v3A.set(this._dollyControlCoord.x, this._dollyControlCoord.y, (camera.near + camera.far) / (camera.near - camera.far)).unproject(camera);\n        const quaternion = _v3B.set(0, 0, -1).applyQuaternion(camera.quaternion);\n        const cursor = _v3C.copy(worldCursorPosition).add(quaternion.multiplyScalar(-worldCursorPosition.dot(camera.up)));\n        const prevZoom = this._zoom - dollyControlAmount;\n        const lerpRatio = -(prevZoom - this._zoom) / this._zoom;\n        const cameraDirection = this._getCameraDirection(_cameraDirection);\n        const prevPlaneConstant = this._targetEnd.dot(cameraDirection);\n        const newTargetEnd = _v3A.copy(this._targetEnd).lerp(cursor, lerpRatio);\n        const newPlaneConstant = newTargetEnd.dot(cameraDirection);\n        const pullBack = cameraDirection.multiplyScalar(newPlaneConstant - prevPlaneConstant);\n        newTargetEnd.sub(pullBack);\n        this._boundary.clampPoint(newTargetEnd, newTargetEnd);\n        const targetEndDiff = _v3B.subVectors(newTargetEnd, this._targetEnd);\n        this._targetEnd.copy(newTargetEnd);\n        this._target.add(targetEndDiff);\n        this._changedZoom -= dollyControlAmount;\n        if (approxZero(this._changedZoom))\n          this._changedZoom = 0;\n      }\n    }\n    if (this._camera.zoom !== this._zoom) {\n      this._camera.zoom = this._zoom;\n      this._camera.updateProjectionMatrix();\n      this._updateNearPlaneCorners();\n      this._needsUpdate = true;\n    }\n    this._dragNeedsUpdate = true;\n    const maxDistance = this._collisionTest();\n    this._spherical.radius = Math.min(this._spherical.radius, maxDistance);\n    this._spherical.makeSafe();\n    this._camera.position.setFromSpherical(this._spherical).applyQuaternion(this._yAxisUpSpaceInverse).add(this._target);\n    this._camera.lookAt(this._target);\n    const affectOffset = !approxZero(this._focalOffset.x) || !approxZero(this._focalOffset.y) || !approxZero(this._focalOffset.z);\n    if (affectOffset) {\n      this._camera.updateMatrixWorld();\n      _xColumn.setFromMatrixColumn(this._camera.matrix, 0);\n      _yColumn.setFromMatrixColumn(this._camera.matrix, 1);\n      _zColumn.setFromMatrixColumn(this._camera.matrix, 2);\n      _xColumn.multiplyScalar(this._focalOffset.x);\n      _yColumn.multiplyScalar(-this._focalOffset.y);\n      _zColumn.multiplyScalar(this._focalOffset.z);\n      _v3A.copy(_xColumn).add(_yColumn).add(_zColumn);\n      this._camera.position.add(_v3A);\n    }\n    if (this._boundaryEnclosesCamera) {\n      this._encloseToBoundary(this._camera.position.copy(this._target), _v3A.setFromSpherical(this._spherical).applyQuaternion(this._yAxisUpSpaceInverse), 1);\n    }\n    const updated = this._needsUpdate;\n    if (updated && !this._updatedLastTime) {\n      this._hasRested = false;\n      this.dispatchEvent({ type: \"wake\" });\n      this.dispatchEvent({ type: \"update\" });\n    } else if (updated) {\n      this.dispatchEvent({ type: \"update\" });\n      if (approxZero(deltaTheta, this.restThreshold) && approxZero(deltaPhi, this.restThreshold) && approxZero(deltaRadius, this.restThreshold) && approxZero(deltaTarget.x, this.restThreshold) && approxZero(deltaTarget.y, this.restThreshold) && approxZero(deltaTarget.z, this.restThreshold) && approxZero(deltaOffset.x, this.restThreshold) && approxZero(deltaOffset.y, this.restThreshold) && approxZero(deltaOffset.z, this.restThreshold) && approxZero(deltaZoom, this.restThreshold) && !this._hasRested) {\n        this._hasRested = true;\n        this.dispatchEvent({ type: \"rest\" });\n      }\n    } else if (!updated && this._updatedLastTime) {\n      this.dispatchEvent({ type: \"sleep\" });\n    }\n    this._lastDistance = this._spherical.radius;\n    this._lastZoom = this._zoom;\n    this._updatedLastTime = updated;\n    this._needsUpdate = false;\n    return updated;\n  }\n  /**\n   * Get all state in JSON string\n   * @category Methods\n   */\n  toJSON() {\n    return JSON.stringify({\n      enabled: this._enabled,\n      minDistance: this.minDistance,\n      maxDistance: infinityToMaxNumber(this.maxDistance),\n      minZoom: this.minZoom,\n      maxZoom: infinityToMaxNumber(this.maxZoom),\n      minPolarAngle: this.minPolarAngle,\n      maxPolarAngle: infinityToMaxNumber(this.maxPolarAngle),\n      minAzimuthAngle: infinityToMaxNumber(this.minAzimuthAngle),\n      maxAzimuthAngle: infinityToMaxNumber(this.maxAzimuthAngle),\n      smoothTime: this.smoothTime,\n      draggingSmoothTime: this.draggingSmoothTime,\n      dollySpeed: this.dollySpeed,\n      truckSpeed: this.truckSpeed,\n      dollyToCursor: this.dollyToCursor,\n      verticalDragToForward: this.verticalDragToForward,\n      target: this._targetEnd.toArray(),\n      position: _v3A.setFromSpherical(this._sphericalEnd).add(this._targetEnd).toArray(),\n      zoom: this._zoomEnd,\n      focalOffset: this._focalOffsetEnd.toArray(),\n      target0: this._target0.toArray(),\n      position0: this._position0.toArray(),\n      zoom0: this._zoom0,\n      focalOffset0: this._focalOffset0.toArray()\n    });\n  }\n  /**\n   * Reproduce the control state with JSON. enableTransition is where anim or not in a boolean.\n   * @param json\n   * @param enableTransition\n   * @category Methods\n   */\n  fromJSON(json, enableTransition = false) {\n    const obj = JSON.parse(json);\n    this.enabled = obj.enabled;\n    this.minDistance = obj.minDistance;\n    this.maxDistance = maxNumberToInfinity(obj.maxDistance);\n    this.minZoom = obj.minZoom;\n    this.maxZoom = maxNumberToInfinity(obj.maxZoom);\n    this.minPolarAngle = obj.minPolarAngle;\n    this.maxPolarAngle = maxNumberToInfinity(obj.maxPolarAngle);\n    this.minAzimuthAngle = maxNumberToInfinity(obj.minAzimuthAngle);\n    this.maxAzimuthAngle = maxNumberToInfinity(obj.maxAzimuthAngle);\n    this.smoothTime = obj.smoothTime;\n    this.draggingSmoothTime = obj.draggingSmoothTime;\n    this.dollySpeed = obj.dollySpeed;\n    this.truckSpeed = obj.truckSpeed;\n    this.dollyToCursor = obj.dollyToCursor;\n    this.verticalDragToForward = obj.verticalDragToForward;\n    this._target0.fromArray(obj.target0);\n    this._position0.fromArray(obj.position0);\n    this._zoom0 = obj.zoom0;\n    this._focalOffset0.fromArray(obj.focalOffset0);\n    this.moveTo(obj.target[0], obj.target[1], obj.target[2], enableTransition);\n    _sphericalA.setFromVector3(_v3A.fromArray(obj.position).sub(this._targetEnd).applyQuaternion(this._yAxisUpSpace));\n    this.rotateTo(_sphericalA.theta, _sphericalA.phi, enableTransition);\n    this.dollyTo(_sphericalA.radius, enableTransition);\n    this.zoomTo(obj.zoom, enableTransition);\n    this.setFocalOffset(obj.focalOffset[0], obj.focalOffset[1], obj.focalOffset[2], enableTransition);\n    this._needsUpdate = true;\n  }\n  /**\n   * Attach all internal event handlers to enable drag control.\n   * @category Methods\n   */\n  connect(domElement) {\n    if (this._domElement) {\n      console.warn(\"camera-controls is already connected.\");\n      return;\n    }\n    domElement.setAttribute(\"data-camera-controls-version\", VERSION);\n    this._addAllEventListeners(domElement);\n    this._getClientRect(this._elementRect);\n  }\n  /**\n   * Detach all internal event handlers to disable drag control.\n   */\n  disconnect() {\n    this.cancel();\n    this._removeAllEventListeners();\n    if (this._domElement) {\n      this._domElement.removeAttribute(\"data-camera-controls-version\");\n      this._domElement = void 0;\n    }\n  }\n  /**\n   * Dispose the cameraControls instance itself, remove all eventListeners.\n   * @category Methods\n   */\n  dispose() {\n    this.removeAllEventListeners();\n    this.disconnect();\n  }\n  // it's okay to expose public though\n  _getTargetDirection(out) {\n    return out.setFromSpherical(this._spherical).divideScalar(this._spherical.radius).applyQuaternion(this._yAxisUpSpaceInverse);\n  }\n  // it's okay to expose public though\n  _getCameraDirection(out) {\n    return this._getTargetDirection(out).negate();\n  }\n  _findPointerById(pointerId) {\n    return this._activePointers.find((activePointer) => activePointer.pointerId === pointerId);\n  }\n  _findPointerByMouseButton(mouseButton) {\n    return this._activePointers.find((activePointer) => activePointer.mouseButton === mouseButton);\n  }\n  _disposePointer(pointer) {\n    this._activePointers.splice(this._activePointers.indexOf(pointer), 1);\n  }\n  _encloseToBoundary(position, offset, friction) {\n    const offsetLength2 = offset.lengthSq();\n    if (offsetLength2 === 0) {\n      return position;\n    }\n    const newTarget = _v3B.copy(offset).add(position);\n    const clampedTarget = this._boundary.clampPoint(newTarget, _v3C);\n    const deltaClampedTarget = clampedTarget.sub(newTarget);\n    const deltaClampedTargetLength2 = deltaClampedTarget.lengthSq();\n    if (deltaClampedTargetLength2 === 0) {\n      return position.add(offset);\n    } else if (deltaClampedTargetLength2 === offsetLength2) {\n      return position;\n    } else if (friction === 0) {\n      return position.add(offset).add(deltaClampedTarget);\n    } else {\n      const offsetFactor = 1 + friction * deltaClampedTargetLength2 / offset.dot(deltaClampedTarget);\n      return position.add(_v3B.copy(offset).multiplyScalar(offsetFactor)).add(deltaClampedTarget.multiplyScalar(1 - friction));\n    }\n  }\n  _updateNearPlaneCorners() {\n    if (isPerspectiveCamera(this._camera)) {\n      const camera = this._camera;\n      const near = camera.near;\n      const fov = camera.getEffectiveFOV() * DEG2RAD;\n      const heightHalf = Math.tan(fov * 0.5) * near;\n      const widthHalf = heightHalf * camera.aspect;\n      this._nearPlaneCorners[0].set(-widthHalf, -heightHalf, 0);\n      this._nearPlaneCorners[1].set(widthHalf, -heightHalf, 0);\n      this._nearPlaneCorners[2].set(widthHalf, heightHalf, 0);\n      this._nearPlaneCorners[3].set(-widthHalf, heightHalf, 0);\n    } else if (isOrthographicCamera(this._camera)) {\n      const camera = this._camera;\n      const zoomInv = 1 / camera.zoom;\n      const left = camera.left * zoomInv;\n      const right = camera.right * zoomInv;\n      const top = camera.top * zoomInv;\n      const bottom = camera.bottom * zoomInv;\n      this._nearPlaneCorners[0].set(left, top, 0);\n      this._nearPlaneCorners[1].set(right, top, 0);\n      this._nearPlaneCorners[2].set(right, bottom, 0);\n      this._nearPlaneCorners[3].set(left, bottom, 0);\n    }\n  }\n  // lateUpdate\n  _collisionTest() {\n    let distance = Infinity;\n    const hasCollider = this.colliderMeshes.length >= 1;\n    if (!hasCollider)\n      return distance;\n    if (notSupportedInOrthographicCamera(this._camera, \"_collisionTest\"))\n      return distance;\n    const rayDirection = this._getTargetDirection(_cameraDirection);\n    _rotationMatrix.lookAt(_ORIGIN, rayDirection, this._camera.up);\n    for (let i = 0; i < 4; i++) {\n      const nearPlaneCorner = _v3B.copy(this._nearPlaneCorners[i]);\n      nearPlaneCorner.applyMatrix4(_rotationMatrix);\n      const origin = _v3C.addVectors(this._target, nearPlaneCorner);\n      _raycaster.set(origin, rayDirection);\n      _raycaster.far = this._spherical.radius + 1;\n      const intersects = _raycaster.intersectObjects(this.colliderMeshes);\n      if (intersects.length !== 0 && intersects[0].distance < distance) {\n        distance = intersects[0].distance;\n      }\n    }\n    return distance;\n  }\n  /**\n   * Get its client rect and package into given `DOMRect` .\n   */\n  _getClientRect(target) {\n    if (!this._domElement)\n      return;\n    const rect = this._domElement.getBoundingClientRect();\n    target.x = rect.left;\n    target.y = rect.top;\n    if (this._viewport) {\n      target.x += this._viewport.x;\n      target.y += rect.height - this._viewport.w - this._viewport.y;\n      target.width = this._viewport.z;\n      target.height = this._viewport.w;\n    } else {\n      target.width = rect.width;\n      target.height = rect.height;\n    }\n    return target;\n  }\n  _createOnRestPromise(resolveImmediately) {\n    if (resolveImmediately)\n      return Promise.resolve();\n    this._hasRested = false;\n    this.dispatchEvent({ type: \"transitionstart\" });\n    return new Promise((resolve) => {\n      const onResolve = () => {\n        this.removeEventListener(\"rest\", onResolve);\n        resolve();\n      };\n      this.addEventListener(\"rest\", onResolve);\n    });\n  }\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  _addAllEventListeners(_domElement) {\n  }\n  _removeAllEventListeners() {\n  }\n  /**\n   * backward compatible\n   * @deprecated use smoothTime (in seconds) instead\n   * @category Properties\n   */\n  get dampingFactor() {\n    console.warn(\".dampingFactor has been deprecated. use smoothTime (in seconds) instead.\");\n    return 0;\n  }\n  /**\n   * backward compatible\n   * @deprecated use smoothTime (in seconds) instead\n   * @category Properties\n   */\n  set dampingFactor(_) {\n    console.warn(\".dampingFactor has been deprecated. use smoothTime (in seconds) instead.\");\n  }\n  /**\n   * backward compatible\n   * @deprecated use draggingSmoothTime (in seconds) instead\n   * @category Properties\n   */\n  get draggingDampingFactor() {\n    console.warn(\".draggingDampingFactor has been deprecated. use draggingSmoothTime (in seconds) instead.\");\n    return 0;\n  }\n  /**\n   * backward compatible\n   * @deprecated use draggingSmoothTime (in seconds) instead\n   * @category Properties\n   */\n  set draggingDampingFactor(_) {\n    console.warn(\".draggingDampingFactor has been deprecated. use draggingSmoothTime (in seconds) instead.\");\n  }\n  static createBoundingSphere(object3d, out = new THREE.Sphere()) {\n    const boundingSphere = out;\n    const center = boundingSphere.center;\n    _box3A.makeEmpty();\n    object3d.traverseVisible((object) => {\n      if (!object.isMesh)\n        return;\n      _box3A.expandByObject(object);\n    });\n    _box3A.getCenter(center);\n    let maxRadiusSq = 0;\n    object3d.traverseVisible((object) => {\n      if (!object.isMesh)\n        return;\n      const mesh = object;\n      const geometry = mesh.geometry.clone();\n      geometry.applyMatrix4(mesh.matrixWorld);\n      const bufferGeometry = geometry;\n      const position = bufferGeometry.attributes.position;\n      for (let i = 0, l = position.count; i < l; i++) {\n        _v3A.fromBufferAttribute(position, i);\n        maxRadiusSq = Math.max(maxRadiusSq, center.distanceToSquared(_v3A));\n      }\n    });\n    boundingSphere.radius = Math.sqrt(maxRadiusSq);\n    return boundingSphere;\n  }\n};\n\n// src/ShaderGradient/Controls/CameraControl.tsx\nimport { jsx } from \"react/jsx-runtime\";\nfunction CameraControl(_a2) {\n  var _b = _a2, {\n    smoothTime = 0.05\n  } = _b, props = __objRest(_b, [\n    \"smoothTime\"\n  ]);\n  CameraControls.install({ THREE: three_module_exports });\n  extend({ CameraControls });\n  const camera = useThree((state) => state.camera);\n  const gl = useThree((state) => state.gl);\n  const ref = useCameraAnimation(props);\n  return (\n    // @ts-ignore\n    /* @__PURE__ */ jsx(\n      \"cameraControls\",\n      {\n        ref,\n        args: [camera, gl.domElement],\n        enableDamping: true,\n        smoothTime,\n        zoomSpeed: 10,\n        dollySpeed: 10,\n        restThreshold: 0\n      }\n    )\n  );\n}\n\nexport {\n  CameraControl\n};\n/*! Bundled license information:\n\ncamera-controls/dist/camera-controls.module.js:\n  (*!\n   * camera-controls\n   * https://github.com/yomotsu/camera-controls\n   * (c) 2017 @yomotsu\n   * Released under the MIT License.\n   *)\n*/\n","import {\n  CameraControl\n} from \"./chunk-DA2VURNJ.mjs\";\nimport {\n  __spreadValues\n} from \"./chunk-5BEQP2BQ.mjs\";\n\n// src/ShaderGradient/Controls/Controls.tsx\nimport { Fragment, jsx } from \"react/jsx-runtime\";\nfunction Controls(props) {\n  return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(CameraControl, __spreadValues({}, props)) });\n}\n\nexport {\n  Controls\n};\n","import {\n  useLoader\n} from \"./chunk-WS7WB67W.mjs\";\nimport {\n  DataTextureLoader,\n  DataUtils,\n  FloatType,\n  HalfFloatType,\n  LinearFilter\n} from \"./chunk-Z4XR7UL5.mjs\";\n\n// ../../node_modules/.pnpm/three-stdlib@2.35.13_three@0.169.0/node_modules/three-stdlib/loaders/RGBELoader.js\nvar RGBELoader = class extends DataTextureLoader {\n  constructor(manager) {\n    super(manager);\n    this.type = HalfFloatType;\n  }\n  // adapted from http://www.graphics.cornell.edu/~bjw/rgbe.html\n  parse(buffer) {\n    const rgbe_read_error = 1, rgbe_write_error = 2, rgbe_format_error = 3, rgbe_memory_error = 4, rgbe_error = function(rgbe_error_code, msg) {\n      switch (rgbe_error_code) {\n        case rgbe_read_error:\n          throw new Error(\"THREE.RGBELoader: Read Error: \" + (msg || \"\"));\n        case rgbe_write_error:\n          throw new Error(\"THREE.RGBELoader: Write Error: \" + (msg || \"\"));\n        case rgbe_format_error:\n          throw new Error(\"THREE.RGBELoader: Bad File Format: \" + (msg || \"\"));\n        default:\n        case rgbe_memory_error:\n          throw new Error(\"THREE.RGBELoader: Memory Error: \" + (msg || \"\"));\n      }\n    }, RGBE_VALID_PROGRAMTYPE = 1, RGBE_VALID_FORMAT = 2, RGBE_VALID_DIMENSIONS = 4, NEWLINE = \"\\n\", fgets = function(buffer2, lineLimit, consume) {\n      const chunkSize = 128;\n      lineLimit = !lineLimit ? 1024 : lineLimit;\n      let p = buffer2.pos, i = -1, len = 0, s = \"\", chunk = String.fromCharCode.apply(null, new Uint16Array(buffer2.subarray(p, p + chunkSize)));\n      while (0 > (i = chunk.indexOf(NEWLINE)) && len < lineLimit && p < buffer2.byteLength) {\n        s += chunk;\n        len += chunk.length;\n        p += chunkSize;\n        chunk += String.fromCharCode.apply(null, new Uint16Array(buffer2.subarray(p, p + chunkSize)));\n      }\n      if (-1 < i) {\n        if (false !== consume)\n          buffer2.pos += len + i + 1;\n        return s + chunk.slice(0, i);\n      }\n      return false;\n    }, RGBE_ReadHeader = function(buffer2) {\n      const magic_token_re = /^#\\?(\\S+)/, gamma_re = /^\\s*GAMMA\\s*=\\s*(\\d+(\\.\\d+)?)\\s*$/, exposure_re = /^\\s*EXPOSURE\\s*=\\s*(\\d+(\\.\\d+)?)\\s*$/, format_re = /^\\s*FORMAT=(\\S+)\\s*$/, dimensions_re = /^\\s*\\-Y\\s+(\\d+)\\s+\\+X\\s+(\\d+)\\s*$/, header = {\n        valid: 0,\n        string: \"\",\n        comments: \"\",\n        programtype: \"RGBE\",\n        format: \"\",\n        gamma: 1,\n        exposure: 1,\n        width: 0,\n        height: 0\n      };\n      let line, match;\n      if (buffer2.pos >= buffer2.byteLength || !(line = fgets(buffer2))) {\n        rgbe_error(rgbe_read_error, \"no header found\");\n      }\n      if (!(match = line.match(magic_token_re))) {\n        rgbe_error(rgbe_format_error, \"bad initial token\");\n      }\n      header.valid |= RGBE_VALID_PROGRAMTYPE;\n      header.programtype = match[1];\n      header.string += line + \"\\n\";\n      while (true) {\n        line = fgets(buffer2);\n        if (false === line)\n          break;\n        header.string += line + \"\\n\";\n        if (\"#\" === line.charAt(0)) {\n          header.comments += line + \"\\n\";\n          continue;\n        }\n        if (match = line.match(gamma_re)) {\n          header.gamma = parseFloat(match[1]);\n        }\n        if (match = line.match(exposure_re)) {\n          header.exposure = parseFloat(match[1]);\n        }\n        if (match = line.match(format_re)) {\n          header.valid |= RGBE_VALID_FORMAT;\n          header.format = match[1];\n        }\n        if (match = line.match(dimensions_re)) {\n          header.valid |= RGBE_VALID_DIMENSIONS;\n          header.height = parseInt(match[1], 10);\n          header.width = parseInt(match[2], 10);\n        }\n        if (header.valid & RGBE_VALID_FORMAT && header.valid & RGBE_VALID_DIMENSIONS)\n          break;\n      }\n      if (!(header.valid & RGBE_VALID_FORMAT)) {\n        rgbe_error(rgbe_format_error, \"missing format specifier\");\n      }\n      if (!(header.valid & RGBE_VALID_DIMENSIONS)) {\n        rgbe_error(rgbe_format_error, \"missing image size specifier\");\n      }\n      return header;\n    }, RGBE_ReadPixels_RLE = function(buffer2, w2, h2) {\n      const scanline_width = w2;\n      if (\n        // run length encoding is not allowed so read flat\n        scanline_width < 8 || scanline_width > 32767 || // this file is not run length encoded\n        2 !== buffer2[0] || 2 !== buffer2[1] || buffer2[2] & 128\n      ) {\n        return new Uint8Array(buffer2);\n      }\n      if (scanline_width !== (buffer2[2] << 8 | buffer2[3])) {\n        rgbe_error(rgbe_format_error, \"wrong scanline width\");\n      }\n      const data_rgba = new Uint8Array(4 * w2 * h2);\n      if (!data_rgba.length) {\n        rgbe_error(rgbe_memory_error, \"unable to allocate buffer space\");\n      }\n      let offset = 0, pos = 0;\n      const ptr_end = 4 * scanline_width;\n      const rgbeStart = new Uint8Array(4);\n      const scanline_buffer = new Uint8Array(ptr_end);\n      let num_scanlines = h2;\n      while (num_scanlines > 0 && pos < buffer2.byteLength) {\n        if (pos + 4 > buffer2.byteLength) {\n          rgbe_error(rgbe_read_error);\n        }\n        rgbeStart[0] = buffer2[pos++];\n        rgbeStart[1] = buffer2[pos++];\n        rgbeStart[2] = buffer2[pos++];\n        rgbeStart[3] = buffer2[pos++];\n        if (2 != rgbeStart[0] || 2 != rgbeStart[1] || (rgbeStart[2] << 8 | rgbeStart[3]) != scanline_width) {\n          rgbe_error(rgbe_format_error, \"bad rgbe scanline format\");\n        }\n        let ptr = 0, count;\n        while (ptr < ptr_end && pos < buffer2.byteLength) {\n          count = buffer2[pos++];\n          const isEncodedRun = count > 128;\n          if (isEncodedRun)\n            count -= 128;\n          if (0 === count || ptr + count > ptr_end) {\n            rgbe_error(rgbe_format_error, \"bad scanline data\");\n          }\n          if (isEncodedRun) {\n            const byteValue = buffer2[pos++];\n            for (let i = 0; i < count; i++) {\n              scanline_buffer[ptr++] = byteValue;\n            }\n          } else {\n            scanline_buffer.set(buffer2.subarray(pos, pos + count), ptr);\n            ptr += count;\n            pos += count;\n          }\n        }\n        const l = scanline_width;\n        for (let i = 0; i < l; i++) {\n          let off = 0;\n          data_rgba[offset] = scanline_buffer[i + off];\n          off += scanline_width;\n          data_rgba[offset + 1] = scanline_buffer[i + off];\n          off += scanline_width;\n          data_rgba[offset + 2] = scanline_buffer[i + off];\n          off += scanline_width;\n          data_rgba[offset + 3] = scanline_buffer[i + off];\n          offset += 4;\n        }\n        num_scanlines--;\n      }\n      return data_rgba;\n    };\n    const RGBEByteToRGBFloat = function(sourceArray, sourceOffset, destArray, destOffset) {\n      const e = sourceArray[sourceOffset + 3];\n      const scale = Math.pow(2, e - 128) / 255;\n      destArray[destOffset + 0] = sourceArray[sourceOffset + 0] * scale;\n      destArray[destOffset + 1] = sourceArray[sourceOffset + 1] * scale;\n      destArray[destOffset + 2] = sourceArray[sourceOffset + 2] * scale;\n      destArray[destOffset + 3] = 1;\n    };\n    const RGBEByteToRGBHalf = function(sourceArray, sourceOffset, destArray, destOffset) {\n      const e = sourceArray[sourceOffset + 3];\n      const scale = Math.pow(2, e - 128) / 255;\n      destArray[destOffset + 0] = DataUtils.toHalfFloat(Math.min(sourceArray[sourceOffset + 0] * scale, 65504));\n      destArray[destOffset + 1] = DataUtils.toHalfFloat(Math.min(sourceArray[sourceOffset + 1] * scale, 65504));\n      destArray[destOffset + 2] = DataUtils.toHalfFloat(Math.min(sourceArray[sourceOffset + 2] * scale, 65504));\n      destArray[destOffset + 3] = DataUtils.toHalfFloat(1);\n    };\n    const byteArray = new Uint8Array(buffer);\n    byteArray.pos = 0;\n    const rgbe_header_info = RGBE_ReadHeader(byteArray);\n    const w = rgbe_header_info.width, h = rgbe_header_info.height, image_rgba_data = RGBE_ReadPixels_RLE(byteArray.subarray(byteArray.pos), w, h);\n    let data, type;\n    let numElements;\n    switch (this.type) {\n      case FloatType:\n        numElements = image_rgba_data.length / 4;\n        const floatArray = new Float32Array(numElements * 4);\n        for (let j = 0; j < numElements; j++) {\n          RGBEByteToRGBFloat(image_rgba_data, j * 4, floatArray, j * 4);\n        }\n        data = floatArray;\n        type = FloatType;\n        break;\n      case HalfFloatType:\n        numElements = image_rgba_data.length / 4;\n        const halfArray = new Uint16Array(numElements * 4);\n        for (let j = 0; j < numElements; j++) {\n          RGBEByteToRGBHalf(image_rgba_data, j * 4, halfArray, j * 4);\n        }\n        data = halfArray;\n        type = HalfFloatType;\n        break;\n      default:\n        throw new Error(\"THREE.RGBELoader: Unsupported type: \" + this.type);\n    }\n    return {\n      width: w,\n      height: h,\n      data,\n      header: rgbe_header_info.string,\n      gamma: rgbe_header_info.gamma,\n      exposure: rgbe_header_info.exposure,\n      type\n    };\n  }\n  setDataType(value) {\n    this.type = value;\n    return this;\n  }\n  load(url, onLoad, onProgress, onError) {\n    function onLoadCallback(texture, texData) {\n      switch (texture.type) {\n        case FloatType:\n        case HalfFloatType:\n          if (\"colorSpace\" in texture)\n            texture.colorSpace = \"srgb-linear\";\n          else\n            texture.encoding = 3e3;\n          texture.minFilter = LinearFilter;\n          texture.magFilter = LinearFilter;\n          texture.generateMipmaps = false;\n          texture.flipY = true;\n          break;\n      }\n      if (onLoad)\n        onLoad(texture, texData);\n    }\n    return super.load(url, onLoadCallback, onProgress, onError);\n  }\n};\n\n// src/ShaderGradient/Lights/Environment/useRGBELoader.ts\nfunction useRGBELoader(file, { path }) {\n  const cubeTexture = useLoader(\n    // @ts-ignore\n    RGBELoader,\n    file,\n    (loader) => loader.setPath(path)\n  );\n  return cubeTexture;\n}\n\nexport {\n  useRGBELoader\n};\n","import {\n  useRGBELoader\n} from \"./chunk-UIVFRJXT.mjs\";\nimport {\n  useThree\n} from \"./chunk-WS7WB67W.mjs\";\nimport {\n  EquirectangularReflectionMapping\n} from \"./chunk-Z4XR7UL5.mjs\";\nimport {\n  envBasePath\n} from \"./chunk-SX7QUDKQ.mjs\";\n\n// src/ShaderGradient/Lights/Environment/EnvironmentMap.tsx\nimport React from \"react\";\nvar isRef = (obj) => obj.current && obj.current.isScene;\nvar resolveScene = (scene) => isRef(scene) ? scene.current : scene;\nfunction EnvironmentMap({ background = false, envPreset }) {\n  const city = useRGBELoader(\"city.hdr\", { path: envBasePath });\n  const dawn = useRGBELoader(\"dawn.hdr\", { path: envBasePath });\n  const lobby = useRGBELoader(\"lobby.hdr\", { path: envBasePath });\n  const textures = { city, dawn, lobby };\n  const map = textures[envPreset];\n  const defaultScene = useThree((state) => state.scene);\n  React.useLayoutEffect(() => {\n    if (map) {\n      const target = resolveScene(defaultScene);\n      const oldbg = target.background;\n      const oldenv = target.environment;\n      if (background !== \"only\") target.environment = map;\n      if (background) target.background = map;\n      return () => {\n        if (background !== \"only\") target.environment = oldenv;\n        if (background) target.background = \"black\";\n      };\n    }\n  }, [defaultScene, map, background]);\n  const texture = map;\n  texture.mapping = EquirectangularReflectionMapping;\n  return null;\n}\n\nexport {\n  EnvironmentMap\n};\n","import {\n  EnvironmentMap\n} from \"./chunk-2S5ZDPTV.mjs\";\n\n// src/ShaderGradient/Lights/Lights.tsx\nimport { Suspense } from \"react\";\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nfunction Lights({\n  lightType,\n  brightness,\n  envPreset\n}) {\n  return /* @__PURE__ */ jsxs(Fragment, { children: [\n    lightType === \"3d\" && /* @__PURE__ */ jsx(\"ambientLight\", { intensity: (brightness || 1) * Math.PI }),\n    lightType === \"env\" && /* @__PURE__ */ jsx(Suspense, { fallback: /* @__PURE__ */ jsx(Loader, {}), children: /* @__PURE__ */ jsx(\n      EnvironmentMap,\n      {\n        envPreset,\n        background: false,\n        loadingCallback: () => void 0\n      }\n    ) })\n  ] });\n}\nfunction Loader() {\n  return /* @__PURE__ */ jsx(\"ambientLight\", { intensity: 0.4 });\n}\n\nexport {\n  Lights\n};\n","// src/shaders/a/vertex.glsl\nvar vertex_default = \"// #pragma glslify: cnoise3 = require(glsl-noise/classic/3d) \\n\\n// noise source from https://github.com/hughsk/glsl-noise/blob/master/periodic/3d.glsl\\n\\nvec3 mod289(vec3 x)\\n{\\n  return x - floor(x * (1.0 / 289.0)) * 289.0;\\n}\\n\\nvec4 mod289(vec4 x)\\n{\\n  return x - floor(x * (1.0 / 289.0)) * 289.0;\\n}\\n\\nvec4 permute(vec4 x)\\n{\\n  return mod289(((x*34.0)+1.0)*x);\\n}\\n\\nvec4 taylorInvSqrt(vec4 r)\\n{\\n  return 1.79284291400159 - 0.85373472095314 * r;\\n}\\n\\nvec3 fade(vec3 t) {\\n  return t*t*t*(t*(t*6.0-15.0)+10.0);\\n}\\n\\nfloat cnoise(vec3 P)\\n{\\n  vec3 Pi0 = floor(P); // Integer part for indexing\\n  vec3 Pi1 = Pi0 + vec3(1.0); // Integer part + 1\\n  Pi0 = mod289(Pi0);\\n  Pi1 = mod289(Pi1);\\n  vec3 Pf0 = fract(P); // Fractional part for interpolation\\n  vec3 Pf1 = Pf0 - vec3(1.0); // Fractional part - 1.0\\n  vec4 ix = vec4(Pi0.x, Pi1.x, Pi0.x, Pi1.x);\\n  vec4 iy = vec4(Pi0.yy, Pi1.yy);\\n  vec4 iz0 = Pi0.zzzz;\\n  vec4 iz1 = Pi1.zzzz;\\n\\n  vec4 ixy = permute(permute(ix) + iy);\\n  vec4 ixy0 = permute(ixy + iz0);\\n  vec4 ixy1 = permute(ixy + iz1);\\n\\n  vec4 gx0 = ixy0 * (1.0 / 7.0);\\n  vec4 gy0 = fract(floor(gx0) * (1.0 / 7.0)) - 0.5;\\n  gx0 = fract(gx0);\\n  vec4 gz0 = vec4(0.5) - abs(gx0) - abs(gy0);\\n  vec4 sz0 = step(gz0, vec4(0.0));\\n  gx0 -= sz0 * (step(0.0, gx0) - 0.5);\\n  gy0 -= sz0 * (step(0.0, gy0) - 0.5);\\n\\n  vec4 gx1 = ixy1 * (1.0 / 7.0);\\n  vec4 gy1 = fract(floor(gx1) * (1.0 / 7.0)) - 0.5;\\n  gx1 = fract(gx1);\\n  vec4 gz1 = vec4(0.5) - abs(gx1) - abs(gy1);\\n  vec4 sz1 = step(gz1, vec4(0.0));\\n  gx1 -= sz1 * (step(0.0, gx1) - 0.5);\\n  gy1 -= sz1 * (step(0.0, gy1) - 0.5);\\n\\n  vec3 g000 = vec3(gx0.x,gy0.x,gz0.x);\\n  vec3 g100 = vec3(gx0.y,gy0.y,gz0.y);\\n  vec3 g010 = vec3(gx0.z,gy0.z,gz0.z);\\n  vec3 g110 = vec3(gx0.w,gy0.w,gz0.w);\\n  vec3 g001 = vec3(gx1.x,gy1.x,gz1.x);\\n  vec3 g101 = vec3(gx1.y,gy1.y,gz1.y);\\n  vec3 g011 = vec3(gx1.z,gy1.z,gz1.z);\\n  vec3 g111 = vec3(gx1.w,gy1.w,gz1.w);\\n\\n  vec4 norm0 = taylorInvSqrt(vec4(dot(g000, g000), dot(g010, g010), dot(g100, g100), dot(g110, g110)));\\n  g000 *= norm0.x;\\n  g010 *= norm0.y;\\n  g100 *= norm0.z;\\n  g110 *= norm0.w;\\n  vec4 norm1 = taylorInvSqrt(vec4(dot(g001, g001), dot(g011, g011), dot(g101, g101), dot(g111, g111)));\\n  g001 *= norm1.x;\\n  g011 *= norm1.y;\\n  g101 *= norm1.z;\\n  g111 *= norm1.w;\\n\\n  float n000 = dot(g000, Pf0);\\n  float n100 = dot(g100, vec3(Pf1.x, Pf0.yz));\\n  float n010 = dot(g010, vec3(Pf0.x, Pf1.y, Pf0.z));\\n  float n110 = dot(g110, vec3(Pf1.xy, Pf0.z));\\n  float n001 = dot(g001, vec3(Pf0.xy, Pf1.z));\\n  float n101 = dot(g101, vec3(Pf1.x, Pf0.y, Pf1.z));\\n  float n011 = dot(g011, vec3(Pf0.x, Pf1.yz));\\n  float n111 = dot(g111, Pf1);\\n\\n  vec3 fade_xyz = fade(Pf0);\\n  vec4 n_z = mix(vec4(n000, n100, n010, n110), vec4(n001, n101, n011, n111), fade_xyz.z);\\n  vec2 n_yz = mix(n_z.xy, n_z.zw, fade_xyz.y);\\n  float n_xyz = mix(n_yz.x, n_yz.y, fade_xyz.x); \\n  return 2.2 * n_xyz;\\n}\\n\\n//-------- start here ------------\\n\\nmat3 rotation3dY(float angle) {\\n  float s = sin(angle);\\n  float c = cos(angle);\\n\\n  return mat3(c, 0.0, -s, 0.0, 1.0, 0.0, s, 0.0, c);\\n}\\n\\nvec3 rotateY(vec3 v, float angle) { return rotation3dY(angle) * v; }\\n\\nvarying vec3 vNormal;\\nvarying float displacement;\\nvarying vec3 vPos;\\nvarying float vDistort;\\n\\nvarying vec2 vUv;\\n\\nuniform float uTime;\\nuniform float uSpeed;\\n\\nuniform float uLoadingTime;\\n\\nuniform float uNoiseDensity;\\nuniform float uNoiseStrength;\\n\\n#define STANDARD\\nvarying vec3 vViewPosition;\\n#ifndef FLAT_SHADED\\n#ifdef USE_TANGENT\\nvarying vec3 vTangent;\\nvarying vec3 vBitangent;\\n#endif\\n#endif\\n#include <clipping_planes_pars_vertex>\\n#include <color_pars_vertex>\\n#include <common>\\n#include <displacementmap_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <shadowmap_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <uv2_pars_vertex>\\n#include <uv_pars_vertex>\\n\\nvoid main() {\\n\\n  #include <beginnormal_vertex>\\n  #include <color_vertex>\\n  #include <defaultnormal_vertex>\\n  #include <morphnormal_vertex>\\n  #include <skinbase_vertex>\\n  #include <skinnormal_vertex>\\n  #include <uv2_vertex>\\n  #include <uv_vertex>\\n  #ifndef FLAT_SHADED\\n    vNormal = normalize(transformedNormal);\\n  #ifdef USE_TANGENT\\n    vTangent = normalize(transformedTangent);\\n    vBitangent = normalize(cross(vNormal, vTangent) * tangent.w);\\n  #endif\\n  #endif\\n  #include <begin_vertex>\\n\\n  #include <clipping_planes_vertex>\\n  #include <displacementmap_vertex>\\n  #include <logdepthbuf_vertex>\\n  #include <morphtarget_vertex>\\n  #include <project_vertex>\\n  #include <skinning_vertex>\\n    vViewPosition = -mvPosition.xyz;\\n  #include <fog_vertex>\\n  #include <shadowmap_vertex>\\n  #include <worldpos_vertex>\\n\\n  //-------- start vertex ------------\\n  vUv = uv;\\n\\n  float t = uTime * uSpeed;\\n  // Create a sine wave from top to bottom of the sphere\\n  float distortion = 0.75 * cnoise(0.43 * position * uNoiseDensity + t);\\n\\n  vec3 pos = position + normal * distortion * uNoiseStrength * uLoadingTime;\\n  vPos = pos;\\n\\n  gl_Position = projectionMatrix * modelViewMatrix * vec4(pos, 1.);\\n}\\n\";\n\n// src/shaders/a/fragment.glsl\nvar fragment_default = \"\\n#define STANDARD\\n#ifdef PHYSICAL\\n#define REFLECTIVITY\\n#define CLEARCOAT\\n#define TRANSMISSION\\n#endif\\n\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform float roughness;\\nuniform float metalness;\\nuniform float opacity;\\n\\n#ifdef TRANSMISSION\\nuniform float transmission;\\n#endif\\n#ifdef REFLECTIVITY\\nuniform float reflectivity;\\n#endif\\n#ifdef CLEARCOAT\\nuniform float clearcoat;\\nuniform float clearcoatRoughness;\\n#endif\\n#ifdef USE_SHEEN\\nuniform vec3 sheen;\\n#endif\\nvarying vec3 vViewPosition;\\n#ifndef FLAT_SHADED\\n#ifdef USE_TANGENT\\nvarying vec3 vTangent;\\nvarying vec3 vBitangent;\\n#endif\\n#endif\\n#include <alphamap_pars_fragment>\\n#include <aomap_pars_fragment>\\n#include <color_pars_fragment>\\n#include <common>\\n#include <dithering_pars_fragment>\\n#include <emissivemap_pars_fragment>\\n#include <lightmap_pars_fragment>\\n#include <map_pars_fragment>\\n#include <packing>\\n#include <uv2_pars_fragment>\\n#include <uv_pars_fragment>\\n// #include <transmissionmap_pars_fragment>\\n#include <bsdfs>\\n#include <bumpmap_pars_fragment>\\n#include <clearcoat_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\n#include <cube_uv_reflection_fragment>\\n#include <envmap_common_pars_fragment>\\n#include <envmap_physical_pars_fragment>\\n#include <fog_pars_fragment>\\n#include <lights_pars_begin>\\n#include <lights_physical_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <metalnessmap_pars_fragment>\\n#include <normalmap_pars_fragment>\\n#include <roughnessmap_pars_fragment>\\n#include <shadowmap_pars_fragment>\\n// include\\uB97C \\uD1B5\\uD574 \\uAC00\\uC838\\uC628 \\uAC12\\uC740 \\uB300\\uBD80\\uBD84 \\uD658\\uACBD, \\uBE5B \\uB4F1\\uC744 \\uACC4\\uC0B0\\uD558\\uAE30 \\uC704\\uD574\\uC11C \\uAE30\\uBCF8 fragment\\n// shader\\uC758 \\uAC12\\uB4E4\\uC744 \\uBC1B\\uC544\\uC654\\uC2B5\\uB2C8\\uB2E4. \\uC77C\\uB2E8\\uC740 \\uBB34\\uC2DC\\uD558\\uC154\\uB3C4 \\uB429\\uB2C8\\uB2E4.\\n\\nvarying vec3 vNormal;\\nvarying float displacement;\\nvarying vec3 vPos;\\nvarying float vDistort;\\n\\nuniform float uC1r;\\nuniform float uC1g;\\nuniform float uC1b;\\nuniform float uC2r;\\nuniform float uC2g;\\nuniform float uC2b;\\nuniform float uC3r;\\nuniform float uC3g;\\nuniform float uC3b;\\n\\nvarying vec3 color1;\\nvarying vec3 color2;\\nvarying vec3 color3;\\n\\n// for npm package, need to add this manually\\nfloat linearToRelativeLuminance2( const in vec3 color ) {\\n    vec3 weights = vec3( 0.2126, 0.7152, 0.0722 );\\n    return dot( weights, color.rgb );\\n}\\n\\nvoid main() {\\n\\n  //-------- basic gradient ------------\\n  vec3 color1 = vec3(uC1r, uC1g, uC1b);\\n  vec3 color2 = vec3(uC2r, uC2g, uC2b);\\n  vec3 color3 = vec3(uC3r, uC3g, uC3b);\\n  float clearcoat = 1.0;\\n  float clearcoatRoughness = 0.5;\\n\\n  #include <clipping_planes_fragment>\\n\\n  vec4 diffuseColor = vec4(\\n      mix(mix(color1, color2, smoothstep(-3.0, 3.0, vPos.x)), color3, vPos.z),\\n      1);\\n  // diffuseColor\\uB294 \\uC624\\uBE0C\\uC81D\\uD2B8\\uC758 \\uBCA0\\uC774\\uC2A4 \\uC0C9\\uC0C1 (\\uD658\\uACBD\\uC774\\uB098 \\uBE5B\\uC774 \\uACE0\\uB824\\uB418\\uC9C0 \\uC54A\\uC740 \\uBCF8\\uC5F0\\uC758\\n  // \\uC0C9)\\n\\n  // mix(x, y, a): a\\uB97C \\uCD95\\uC73C\\uB85C \\uD588\\uC744 \\uB54C \\uAC00\\uC7A5 \\uB0AE\\uC740 \\uAC12\\uC5D0\\uC11C x\\uAC12\\uC758 \\uC601\\uD5A5\\uB825\\uC744 100%, \\uAC00\\uC7A5\\n  // \\uB192\\uC740 \\uAC12\\uC5D0\\uC11C y\\uAC12\\uC758 \\uC601\\uD5A5\\uB825\\uC744 100%\\uB85C \\uB9CC\\uB4E0\\uB2E4. smoothstep(x, y, a): a\\uCD95\\uC744\\n  // \\uAE30\\uC900\\uC73C\\uB85C x\\uB97C \\uCD5C\\uC18C\\uAC12, y\\uB97C \\uCD5C\\uB300\\uAC12\\uC73C\\uB85C \\uADF8 \\uC0AC\\uC774\\uC758 \\uAC12\\uC744 \\uCABC\\uAC20\\uB2E4. x\\uC640 y \\uC0AC\\uC774\\uB97C\\n  // 0-100 \\uC0AC\\uC774\\uC758 \\uADF8\\uB77C\\uB514\\uC5B8\\uD2B8\\uCC98\\uB7FC \\uB2E8\\uACC4\\uBCC4\\uB85C \\uD45C\\uD604\\uD558\\uACE0, x \\uBBF8\\uB9CC\\uC758 \\uAC12\\uC740 0, y \\uC774\\uC0C1\\uC758\\n  // \\uAC12\\uC740 100\\uC73C\\uB85C \\uCC98\\uB9AC\\n\\n  // 1. smoothstep(-3.0, 3.0,vPos.x)\\uB85C x\\uCD95\\uC758 \\uADF8\\uB77C\\uB514\\uC5B8\\uD2B8\\uAC00 \\uD45C\\uD604 \\uB420 \\uBC94\\uC704\\uB97C -3,\\n  // 3\\uC73C\\uB85C \\uC815\\uD55C\\uB2E4.\\n  // 2. mix(color1, color3, smoothstep(-3.0, 3.0,vPos.x))\\uB85C color1\\uACFC color3\\uC744\\n  // \\uC704\\uC758 \\uBC94\\uC704 \\uC548\\uC5D0\\uC11C \\uADF8\\uB77C\\uB514\\uC5B8\\uD2B8\\uB85C \\uD45C\\uD604\\uD55C\\uB2E4.\\n  // \\uC608\\uB97C \\uB4E4\\uC5B4 color1\\uC774 \\uB178\\uB791, color3\\uC774 \\uD30C\\uB791\\uC774\\uB77C\\uACE0 \\uCE58\\uBA74, x\\uCD95 \\uAE30\\uC900 -3\\uBD80\\uD130 3\\uAE4C\\uC9C0\\n  // \\uB178\\uB791\\uACFC \\uD30C\\uB791 \\uC0AC\\uC774\\uC758 \\uADF8\\uB77C\\uB514\\uC5B8\\uD2B8\\uAC00 \\uB098\\uD0C0\\uB098\\uACE0, -3\\uBCF4\\uB2E4 \\uC791\\uC740 \\uAC12\\uC5D0\\uC11C\\uB294 \\uACC4\\uC18D \\uB178\\uB791,\\n  // 3\\uBCF4\\uB2E4 \\uD070 \\uAC12\\uC5D0\\uC11C\\uB294 \\uACC4\\uC18D \\uD30C\\uB791\\uC774 \\uB098\\uD0C0\\uB09C\\uB2E4.\\n  // 3. mix()\\uB97C \\uD55C \\uBC88 \\uB354 \\uC0AC\\uC6A9\\uD574\\uC11C \\uC704\\uC758 \\uADF8\\uB77C\\uB514\\uC5B8\\uD2B8\\uC640 color2\\uB97C z\\uCD95 \\uAE30\\uC900\\uC73C\\uB85C\\n  // \\uBD84\\uBC30\\uD55C\\uB2E4.\\n\\n  //-------- materiality ------------\\n  ReflectedLight reflectedLight =\\n      ReflectedLight(vec3(0.0), vec3(0.0), vec3(0.0), vec3(0.0));\\n  vec3 totalEmissiveRadiance = emissive;\\n\\n  #ifdef TRANSMISSION\\n    float totalTransmission = transmission;\\n  #endif\\n  #include <logdepthbuf_fragment>\\n  #include <map_fragment>\\n  #include <color_fragment>\\n  #include <alphamap_fragment>\\n  #include <alphatest_fragment>\\n  #include <roughnessmap_fragment>\\n  #include <metalnessmap_fragment>\\n  #include <normal_fragment_begin>\\n  #include <normal_fragment_maps>\\n  #include <clearcoat_normal_fragment_begin>\\n  #include <clearcoat_normal_fragment_maps>\\n  #include <emissivemap_fragment>\\n  // #include <transmissionmap_fragment>\\n  #include <lights_physical_fragment>\\n  #include <lights_fragment_begin>\\n  #include <lights_fragment_maps>\\n  #include <lights_fragment_end>\\n  #include <aomap_fragment>\\n    vec3 outgoingLight =\\n        reflectedLight.directDiffuse + reflectedLight.indirectDiffuse +\\n        reflectedLight.directSpecular + reflectedLight.indirectSpecular;\\n    //\\uC704\\uC5D0\\uC11C \\uC815\\uC758\\uD55C diffuseColor\\uC5D0 \\uD658\\uACBD\\uC774\\uB098 \\uBC18\\uC0AC\\uAC12\\uB4E4\\uC744 \\uBC18\\uC601\\uD55C \\uAC12.\\n  #ifdef TRANSMISSION\\n    diffuseColor.a *=\\n        mix(saturate(1. - totalTransmission +\\n                    linearToRelativeLuminance2(reflectedLight.directSpecular +\\n                                              reflectedLight.indirectSpecular)),\\n            1.0, metalness);\\n  #endif\\n\\n\\n  #include <tonemapping_fragment>\\n  #include <encodings_fragment>\\n  #include <fog_fragment>\\n  #include <premultiplied_alpha_fragment>\\n  #include <dithering_fragment>\\n\\n\\n  gl_FragColor = vec4(outgoingLight, diffuseColor.a);\\n  // gl_FragColor\\uAC00 fragment shader\\uB97C \\uD1B5\\uD574 \\uB098\\uD0C0\\uB098\\uB294 \\uCD5C\\uC885\\uAC12\\uC73C\\uB85C, diffuseColor\\uC5D0\\uC11C\\n  // \\uC815\\uC758\\uD55C \\uADF8\\uB77C\\uB514\\uC5B8\\uD2B8 \\uC0C9\\uC0C1 \\uC704\\uC5D0 \\uBC18\\uC0AC\\uB098 \\uBE5B\\uC744 \\uACC4\\uC0B0\\uD55C \\uAC12\\uC744 \\uCD5C\\uC885\\uAC12\\uC73C\\uB85C \\uC815\\uC758.\\n  // gl_FragColor = vec4(mix(mix(color1, color3, smoothstep(-3.0, 3.0,vPos.x)),\\n  // color2, vNormal.z), 1.0); \\uC704\\uCC98\\uB7FC \\uCD5C\\uC885\\uAC12\\uC744 \\uADF8\\uB77C\\uB514\\uC5B8\\uD2B8 \\uAC12 \\uC790\\uCCB4\\uB97C \\uB123\\uC73C\\uBA74 \\uD658\\uACBD\\n  // \\uC601\\uD5A5\\uC5C6\\uB294 \\uADF8\\uB77C\\uB514\\uC5B8\\uD2B8\\uB9CC \\uD45C\\uD604\\uB428.\\n}\\n\";\n\n// src/shaders/a/vertexSphere.glsl\nvar vertexSphere_default = \"// #pragma glslify: pnoise = require(glsl-noise/periodic/3d)\\n\\nvec3 mod289(vec3 x)\\n{\\n  return x - floor(x * (1.0 / 289.0)) * 289.0;\\n}\\n\\nvec4 mod289(vec4 x)\\n{\\n  return x - floor(x * (1.0 / 289.0)) * 289.0;\\n}\\n\\nvec4 permute(vec4 x)\\n{\\n  return mod289(((x*34.0)+1.0)*x);\\n}\\n\\nvec4 taylorInvSqrt(vec4 r)\\n{\\n  return 1.79284291400159 - 0.85373472095314 * r;\\n}\\n\\nvec3 fade(vec3 t) {\\n  return t*t*t*(t*(t*6.0-15.0)+10.0);\\n}\\n\\n// Classic Perlin noise, periodic variant\\nfloat pnoise(vec3 P, vec3 rep)\\n{\\n  vec3 Pi0 = mod(floor(P), rep); // Integer part, modulo period\\n  vec3 Pi1 = mod(Pi0 + vec3(1.0), rep); // Integer part + 1, mod period\\n  Pi0 = mod289(Pi0);\\n  Pi1 = mod289(Pi1);\\n  vec3 Pf0 = fract(P); // Fractional part for interpolation\\n  vec3 Pf1 = Pf0 - vec3(1.0); // Fractional part - 1.0\\n  vec4 ix = vec4(Pi0.x, Pi1.x, Pi0.x, Pi1.x);\\n  vec4 iy = vec4(Pi0.yy, Pi1.yy);\\n  vec4 iz0 = Pi0.zzzz;\\n  vec4 iz1 = Pi1.zzzz;\\n\\n  vec4 ixy = permute(permute(ix) + iy);\\n  vec4 ixy0 = permute(ixy + iz0);\\n  vec4 ixy1 = permute(ixy + iz1);\\n\\n  vec4 gx0 = ixy0 * (1.0 / 7.0);\\n  vec4 gy0 = fract(floor(gx0) * (1.0 / 7.0)) - 0.5;\\n  gx0 = fract(gx0);\\n  vec4 gz0 = vec4(0.5) - abs(gx0) - abs(gy0);\\n  vec4 sz0 = step(gz0, vec4(0.0));\\n  gx0 -= sz0 * (step(0.0, gx0) - 0.5);\\n  gy0 -= sz0 * (step(0.0, gy0) - 0.5);\\n\\n  vec4 gx1 = ixy1 * (1.0 / 7.0);\\n  vec4 gy1 = fract(floor(gx1) * (1.0 / 7.0)) - 0.5;\\n  gx1 = fract(gx1);\\n  vec4 gz1 = vec4(0.5) - abs(gx1) - abs(gy1);\\n  vec4 sz1 = step(gz1, vec4(0.0));\\n  gx1 -= sz1 * (step(0.0, gx1) - 0.5);\\n  gy1 -= sz1 * (step(0.0, gy1) - 0.5);\\n\\n  vec3 g000 = vec3(gx0.x,gy0.x,gz0.x);\\n  vec3 g100 = vec3(gx0.y,gy0.y,gz0.y);\\n  vec3 g010 = vec3(gx0.z,gy0.z,gz0.z);\\n  vec3 g110 = vec3(gx0.w,gy0.w,gz0.w);\\n  vec3 g001 = vec3(gx1.x,gy1.x,gz1.x);\\n  vec3 g101 = vec3(gx1.y,gy1.y,gz1.y);\\n  vec3 g011 = vec3(gx1.z,gy1.z,gz1.z);\\n  vec3 g111 = vec3(gx1.w,gy1.w,gz1.w);\\n\\n  vec4 norm0 = taylorInvSqrt(vec4(dot(g000, g000), dot(g010, g010), dot(g100, g100), dot(g110, g110)));\\n  g000 *= norm0.x;\\n  g010 *= norm0.y;\\n  g100 *= norm0.z;\\n  g110 *= norm0.w;\\n  vec4 norm1 = taylorInvSqrt(vec4(dot(g001, g001), dot(g011, g011), dot(g101, g101), dot(g111, g111)));\\n  g001 *= norm1.x;\\n  g011 *= norm1.y;\\n  g101 *= norm1.z;\\n  g111 *= norm1.w;\\n\\n  float n000 = dot(g000, Pf0);\\n  float n100 = dot(g100, vec3(Pf1.x, Pf0.yz));\\n  float n010 = dot(g010, vec3(Pf0.x, Pf1.y, Pf0.z));\\n  float n110 = dot(g110, vec3(Pf1.xy, Pf0.z));\\n  float n001 = dot(g001, vec3(Pf0.xy, Pf1.z));\\n  float n101 = dot(g101, vec3(Pf1.x, Pf0.y, Pf1.z));\\n  float n011 = dot(g011, vec3(Pf0.x, Pf1.yz));\\n  float n111 = dot(g111, Pf1);\\n\\n  vec3 fade_xyz = fade(Pf0);\\n  vec4 n_z = mix(vec4(n000, n100, n010, n110), vec4(n001, n101, n011, n111), fade_xyz.z);\\n  vec2 n_yz = mix(n_z.xy, n_z.zw, fade_xyz.y);\\n  float n_xyz = mix(n_yz.x, n_yz.y, fade_xyz.x);\\n  return 2.2 * n_xyz;\\n}\\n\\n\\n//-------- start here ------------\\n\\nvarying vec3 vNormal;\\nuniform float uTime;\\nuniform float uSpeed;\\nuniform float uNoiseDensity;\\nuniform float uNoiseStrength;\\nuniform float uFrequency;\\nuniform float uAmplitude;\\nvarying vec3 vPos;\\nvarying float vDistort;\\nvarying vec2 vUv;\\nvarying vec3 vViewPosition;\\n\\n#define STANDARD\\n#ifndef FLAT_SHADED\\n  #ifdef USE_TANGENT\\n    varying vec3 vTangent;\\n    varying vec3 vBitangent;\\n  #endif\\n#endif\\n\\n#include <clipping_planes_pars_vertex>\\n#include <color_pars_vertex>\\n#include <common>\\n#include <displacementmap_pars_vertex>\\n#include <fog_pars_vertex>\\n#include <logdepthbuf_pars_vertex>\\n#include <morphtarget_pars_vertex>\\n#include <shadowmap_pars_vertex>\\n#include <skinning_pars_vertex>\\n#include <uv2_pars_vertex>\\n#include <uv_pars_vertex>\\n\\n\\n// rotation\\nmat3 rotation3dY(float angle) {\\n  float s = sin(angle);\\n  float c = cos(angle);\\n  return mat3(c, 0.0, -s, 0.0, 1.0, 0.0, s, 0.0, c);\\n}\\n\\nvec3 rotateY(vec3 v, float angle) { return rotation3dY(angle) * v; }\\n\\nvoid main() {\\n  #include <beginnormal_vertex>\\n  #include <color_vertex>\\n  #include <defaultnormal_vertex>\\n  #include <morphnormal_vertex>\\n  #include <skinbase_vertex>\\n  #include <skinnormal_vertex>\\n  #include <uv2_vertex>\\n  #include <uv_vertex>\\n  #ifndef FLAT_SHADED\\n    vNormal = normalize(transformedNormal);\\n  #ifdef USE_TANGENT\\n    vTangent = normalize(transformedTangent);\\n    vBitangent = normalize(cross(vNormal, vTangent) * tangent.w);\\n  #endif\\n  #endif\\n  #include <begin_vertex>\\n\\n  #include <clipping_planes_vertex>\\n  #include <displacementmap_vertex>\\n  #include <logdepthbuf_vertex>\\n  #include <morphtarget_vertex>\\n  #include <project_vertex>\\n  #include <skinning_vertex>\\n    vViewPosition = -mvPosition.xyz;\\n  #include <fog_vertex>\\n  #include <shadowmap_vertex>\\n  #include <worldpos_vertex>\\n\\n  //-------- start vertex ------------\\n  float t = uTime * uSpeed;\\n  float distortion =\\n      pnoise((normal + t) * uNoiseDensity, vec3(10.0)) * uNoiseStrength;\\n  vec3 pos = position + (normal * distortion);\\n  float angle = sin(uv.y * uFrequency + t) * uAmplitude;\\n  pos = rotateY(pos, angle);\\n\\n  vPos = pos;\\n  vDistort = distortion;\\n  vNormal = normal;\\n  vUv = uv;\\n\\n  gl_Position = projectionMatrix * modelViewMatrix * vec4(pos, 1.);\\n}\\n\";\n\n// src/shaders/a/fragmentSphere.glsl\nvar fragmentSphere_default = \"\\n#define STANDARD\\n#ifdef PHYSICAL\\n#define REFLECTIVITY\\n#define CLEARCOAT\\n#define TRANSMISSION\\n#endif\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform float roughness;\\nuniform float metalness;\\nuniform float opacity;\\n#ifdef TRANSMISSION\\nuniform float transmission;\\n#endif\\n#ifdef REFLECTIVITY\\nuniform float reflectivity;\\n#endif\\n#ifdef CLEARCOAT\\nuniform float clearcoat;\\nuniform float clearcoatRoughness;\\n#endif\\n#ifdef USE_SHEEN\\nuniform vec3 sheen;\\n#endif\\nvarying vec3 vViewPosition;\\n#ifndef FLAT_SHADED\\n#ifdef USE_TANGENT\\nvarying vec3 vTangent;\\nvarying vec3 vBitangent;\\n#endif\\n#endif\\n#include <alphamap_pars_fragment>\\n#include <aomap_pars_fragment>\\n#include <color_pars_fragment>\\n#include <common>\\n#include <dithering_pars_fragment>\\n#include <emissivemap_pars_fragment>\\n#include <lightmap_pars_fragment>\\n#include <map_pars_fragment>\\n#include <packing>\\n#include <uv2_pars_fragment>\\n#include <uv_pars_fragment>\\n// #include <transmissionmap_pars_fragment>\\n#include <bsdfs>\\n#include <bumpmap_pars_fragment>\\n#include <clearcoat_pars_fragment>\\n#include <clipping_planes_pars_fragment>\\n#include <cube_uv_reflection_fragment>\\n#include <envmap_common_pars_fragment>\\n#include <envmap_physical_pars_fragment>\\n#include <fog_pars_fragment>\\n#include <lights_pars_begin>\\n#include <lights_physical_pars_fragment>\\n#include <logdepthbuf_pars_fragment>\\n#include <metalnessmap_pars_fragment>\\n#include <normalmap_pars_fragment>\\n#include <roughnessmap_pars_fragment>\\n#include <shadowmap_pars_fragment>\\n// include\\uB97C \\uD1B5\\uD574 \\uAC00\\uC838\\uC628 \\uAC12\\uC740 \\uB300\\uBD80\\uBD84 \\uD658\\uACBD, \\uBE5B \\uB4F1\\uC744 \\uACC4\\uC0B0\\uD558\\uAE30 \\uC704\\uD574\\uC11C \\uAE30\\uBCF8 fragment\\n// shader\\uC758 \\uAC12\\uB4E4\\uC744 \\uBC1B\\uC544\\uC654\\uC2B5\\uB2C8\\uB2E4. \\uC77C\\uB2E8\\uC740 \\uBB34\\uC2DC\\uD558\\uC154\\uB3C4 \\uB429\\uB2C8\\uB2E4.\\nvarying vec3 vNormal;\\nvarying float displacement;\\nvarying vec3 vPos;\\nvarying float vDistort;\\nuniform float uC1r;\\nuniform float uC1g;\\nuniform float uC1b;\\nuniform float uC2r;\\nuniform float uC2g;\\nuniform float uC2b;\\nuniform float uC3r;\\nuniform float uC3g;\\nuniform float uC3b;\\nvarying vec3 color1;\\nvarying vec3 color2;\\nvarying vec3 color3;\\nvarying float distanceToCenter;\\n\\n\\n// for npm package, need to add this manually\\n// 'linearToRelativeLuminance' : function already has a body\\nfloat linearToRelativeLuminance2( const in vec3 color ) {\\n    vec3 weights = vec3( 0.2126, 0.7152, 0.0722 );\\n    return dot( weights, color.rgb );\\n}\\n\\nvoid main() {\\n  //-------- basic gradient ------------\\n  vec3 color1 = vec3(uC1r, uC1g, uC1b);\\n  vec3 color2 = vec3(uC2r, uC2g, uC2b);\\n  vec3 color3 = vec3(uC3r, uC3g, uC3b);\\n  float clearcoat = 1.0;\\n  float clearcoatRoughness = 0.5;\\n#include <clipping_planes_fragment>\\n\\n  float distanceToCenter = distance(vPos, vec3(0, 0, 0));\\n  // distanceToCenter\\uB85C \\uC911\\uC2EC\\uC810\\uACFC\\uC758 \\uAC70\\uB9AC\\uB97C \\uAD6C\\uD568.\\n\\n  vec4 diffuseColor =\\n      vec4(mix(color3, mix(color2, color1, smoothstep(-1.0, 1.0, vPos.y)),\\n               distanceToCenter),\\n           1);\\n\\n  //-------- materiality ------------\\n  ReflectedLight reflectedLight =\\n      ReflectedLight(vec3(0.0), vec3(0.0), vec3(0.0), vec3(0.0));\\n  vec3 totalEmissiveRadiance = emissive;\\n#ifdef TRANSMISSION\\n  float totalTransmission = transmission;\\n#endif\\n#include <logdepthbuf_fragment>\\n#include <map_fragment>\\n#include <color_fragment>\\n#include <alphamap_fragment>\\n#include <alphatest_fragment>\\n#include <roughnessmap_fragment>\\n#include <metalnessmap_fragment>\\n#include <normal_fragment_begin>\\n#include <normal_fragment_maps>\\n#include <clearcoat_normal_fragment_begin>\\n#include <clearcoat_normal_fragment_maps>\\n#include <emissivemap_fragment>\\n// #include <transmissionmap_fragment>\\n#include <lights_physical_fragment>\\n#include <lights_fragment_begin>\\n#include <lights_fragment_maps>\\n#include <lights_fragment_end>\\n#include <aomap_fragment>\\n  vec3 outgoingLight =\\n      reflectedLight.directDiffuse + reflectedLight.indirectDiffuse +\\n      reflectedLight.directSpecular + reflectedLight.indirectSpecular;\\n//\\uC704\\uC5D0\\uC11C \\uC815\\uC758\\uD55C diffuseColor\\uC5D0 \\uD658\\uACBD\\uC774\\uB098 \\uBC18\\uC0AC\\uAC12\\uB4E4\\uC744 \\uBC18\\uC601\\uD55C \\uAC12.\\n#ifdef TRANSMISSION\\n  diffuseColor.a *=\\n      mix(saturate(1. - totalTransmission +\\n                   linearToRelativeLuminance2(reflectedLight.directSpecular +\\n                                             reflectedLight.indirectSpecular)),\\n          1.0, metalness);\\n#endif\\n  gl_FragColor = vec4(outgoingLight, diffuseColor.a);\\n  // gl_FragColor\\uAC00 fragment shader\\uB97C \\uD1B5\\uD574 \\uB098\\uD0C0\\uB098\\uB294 \\uCD5C\\uC885\\uAC12\\uC73C\\uB85C, diffuseColor\\uC5D0\\uC11C\\n  // \\uC815\\uC758\\uD55C \\uADF8\\uB77C\\uB514\\uC5B8\\uD2B8 \\uC0C9\\uC0C1 \\uC704\\uC5D0 \\uBC18\\uC0AC\\uB098 \\uBE5B\\uC744 \\uACC4\\uC0B0\\uD55C \\uAC12\\uC744 \\uCD5C\\uC885\\uAC12\\uC73C\\uB85C \\uC815\\uC758.\\n  // gl_FragColor = vec4(mix(mix(color1, color3, smoothstep(-3.0, 3.0,vPos.x)),\\n  // color2, vNormal.z), 1.0); \\uC704\\uCC98\\uB7FC \\uCD5C\\uC885\\uAC12\\uC744 \\uADF8\\uB77C\\uB514\\uC5B8\\uD2B8 \\uAC12 \\uC790\\uCCB4\\uB97C \\uB123\\uC73C\\uBA74 \\uD658\\uACBD\\n  // \\uC601\\uD5A5\\uC5C6\\uB294 \\uADF8\\uB77C\\uB514\\uC5B8\\uD2B8\\uB9CC \\uD45C\\uD604\\uB428.\\n\\n#include <tonemapping_fragment>\\n#include <encodings_fragment>\\n#include <fog_fragment>\\n#include <premultiplied_alpha_fragment>\\n#include <dithering_fragment>\\n}\\n\";\n\nexport {\n  vertex_default,\n  fragment_default,\n  vertexSphere_default,\n  fragmentSphere_default\n};\n","// src/ShaderGradient/Mesh/Geometry.tsx\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nvar meshCount = 192;\nfunction Geometry({ type }) {\n  return /* @__PURE__ */ jsxs(Fragment, { children: [\n    type === \"plane\" && /* @__PURE__ */ jsx(\"planeGeometry\", { args: [10, 10, 1, meshCount] }),\n    type === \"sphere\" && /* @__PURE__ */ jsx(\"icosahedronGeometry\", { args: [1, meshCount / 3] }),\n    type === \"waterPlane\" && /* @__PURE__ */ jsx(\"planeGeometry\", { args: [10, 10, meshCount, meshCount] })\n  ] });\n}\n\nexport {\n  Geometry\n};\n","// src/utils/color.ts\nfunction hexToRgb(hex) {\n  const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n  return result ? {\n    r: parseInt(result[1], 16),\n    g: parseInt(result[2], 16),\n    b: parseInt(result[3], 16)\n  } : null;\n}\nfunction rgbStringToRgb(rgbString) {\n  const result = rgbString.match(/^rgb\\((\\d+),\\s*(\\d+),\\s*(\\d+)\\)$/);\n  return result ? {\n    r: parseInt(result[1]),\n    g: parseInt(result[2]),\n    b: parseInt(result[3])\n  } : null;\n}\nfunction colorToRgb(color) {\n  if (color.startsWith(\"#\")) {\n    return hexToRgb(color);\n  } else if (color.startsWith(\"rgb\")) {\n    return rgbStringToRgb(color);\n  } else {\n    throw new Error(\"Invalid color format\");\n  }\n}\nfunction formatColor(color = 0) {\n  return color / 255;\n}\n\nexport {\n  colorToRgb,\n  formatColor\n};\n","import {\n  colorToRgb,\n  formatColor\n} from \"./chunk-BI5IV7LU.mjs\";\nimport {\n  useFrame\n} from \"./chunk-WS7WB67W.mjs\";\nimport {\n  DoubleSide,\n  MeshPhysicalMaterial,\n  UniformsUtils\n} from \"./chunk-Z4XR7UL5.mjs\";\nimport {\n  __spreadValues\n} from \"./chunk-5BEQP2BQ.mjs\";\n\n// src/ShaderGradient/Mesh/Materials.tsx\nimport { useEffect, useMemo } from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nvar Materials = ({\n  animate,\n  uniforms,\n  vertexShader,\n  fragmentShader,\n  onInit\n}) => {\n  const material = useMemo(() => {\n    const entries = Object.entries(uniforms);\n    const colors = uniforms.colors;\n    const uC1 = colorToRgb(colors[0]);\n    const uC2 = colorToRgb(colors[1]);\n    const uC3 = colorToRgb(colors[2]);\n    const rgbColors = {\n      uC1r: { value: formatColor(uC1 == null ? void 0 : uC1.r) },\n      uC1g: { value: formatColor(uC1 == null ? void 0 : uC1.g) },\n      uC1b: { value: formatColor(uC1 == null ? void 0 : uC1.b) },\n      uC2r: { value: formatColor(uC2 == null ? void 0 : uC2.r) },\n      uC2g: { value: formatColor(uC2 == null ? void 0 : uC2.g) },\n      uC2b: { value: formatColor(uC2 == null ? void 0 : uC2.b) },\n      uC3r: { value: formatColor(uC3 == null ? void 0 : uC3.r) },\n      uC3g: { value: formatColor(uC3 == null ? void 0 : uC3.g) },\n      uC3b: { value: formatColor(uC3 == null ? void 0 : uC3.b) }\n    };\n    const uniformValues = entries.reduce((acc, [name, value]) => {\n      const uniform = UniformsUtils.clone({ [name]: { value } });\n      return __spreadValues(__spreadValues({}, acc), uniform);\n    }, {});\n    const material2 = new MeshPhysicalMaterial({\n      userData: uniformValues,\n      // sync uniform and userData to update uniforms from outside (MeshPhysicalMaterial)\n      metalness: 0.2,\n      // similar effects reducing -0.2 intensity of the ambient light\n      side: DoubleSide,\n      onBeforeCompile: (shader) => {\n        shader.uniforms = __spreadValues(__spreadValues(__spreadValues({}, shader.uniforms), uniformValues), rgbColors);\n        shader.vertexShader = vertexShader;\n        shader.fragmentShader = fragmentShader;\n      }\n      // wireframe: true,\n    });\n    entries.forEach(\n      ([name]) => Object.defineProperty(material2, name, {\n        get: () => material2.uniforms[name].value,\n        set: (v) => material2.uniforms[name].value = v\n      })\n    );\n    if (onInit) onInit(material2);\n    return material2;\n  }, [uniforms, vertexShader, fragmentShader, onInit]);\n  useEffect(() => {\n    return () => {\n      material.dispose();\n    };\n  }, [material]);\n  useFrame(({ clock }) => {\n    if (animate === \"on\" && material.userData.uTime) {\n      material.userData.uTime.value = clock.getElapsedTime();\n    }\n  });\n  return /* @__PURE__ */ jsx(\"primitive\", { attach: \"material\", object: material });\n};\n\nexport {\n  Materials\n};\n","import {\n  fragmentSphere_default,\n  fragment_default,\n  vertexSphere_default,\n  vertex_default\n} from \"./chunk-WMVG427C.mjs\";\nimport {\n  Geometry\n} from \"./chunk-WBM42ICI.mjs\";\nimport {\n  Materials\n} from \"./chunk-OH6HADGN.mjs\";\nimport {\n  dToRArr\n} from \"./chunk-G7COPUKV.mjs\";\n\n// src/ShaderGradient/Mesh/Mesh.tsx\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nfunction Mesh({\n  animate,\n  positionX,\n  positionY,\n  positionZ,\n  rotationX,\n  rotationY,\n  rotationZ,\n  type,\n  color1,\n  color2,\n  color3,\n  uTime,\n  uSpeed,\n  uDensity,\n  uStrength,\n  uFrequency,\n  uAmplitude\n}) {\n  return /* @__PURE__ */ jsxs(\n    \"mesh\",\n    {\n      name: \"shadergradient-mesh\",\n      position: [positionX, positionY, positionZ],\n      rotation: dToRArr([rotationX, rotationY, rotationZ]),\n      children: [\n        /* @__PURE__ */ jsx(Geometry, { type }),\n        /* @__PURE__ */ jsx(\n          Materials,\n          {\n            animate,\n            uniforms: {\n              colors: [color1, color2, color3],\n              uTime,\n              uSpeed,\n              uLoadingTime: 1,\n              // no loading animation\n              uNoiseDensity: uDensity,\n              uNoiseStrength: uStrength,\n              uFrequency,\n              uAmplitude,\n              uIntensity: 0.5\n            },\n            vertexShader: type === \"sphere\" ? vertexSphere_default : vertex_default,\n            fragmentShader: type === \"sphere\" ? fragmentSphere_default : fragment_default,\n            onInit: (material) => {\n              console.log(\"material (onInit)\", material);\n            }\n          }\n        )\n      ]\n    }\n  );\n}\n\nexport {\n  Mesh\n};\n","import {\n  __export\n} from \"./chunk-5BEQP2BQ.mjs\";\n\n// ../../node_modules/.pnpm/filter-obj@1.1.0/node_modules/filter-obj/index.js\nvar filter_obj_exports = {};\n__export(filter_obj_exports, {\n  default: () => filter_obj_default\n});\nvar exports = {};\nvar module = {\n  get exports() {\n    return exports;\n  },\n  set exports(value) {\n    exports = value;\n  }\n};\nmodule.exports = function(obj, predicate) {\n  var ret = {};\n  var keys = Object.keys(obj);\n  var isArr = Array.isArray(predicate);\n  for (var i = 0; i < keys.length; i++) {\n    var key = keys[i];\n    var val = obj[key];\n    if (isArr ? predicate.indexOf(key) !== -1 : predicate(key, val, obj)) {\n      ret[key] = val;\n    }\n  }\n  return ret;\n};\nvar filter_obj_default = module.exports;\n\n// ../../node_modules/.pnpm/split-on-first@1.1.0/node_modules/split-on-first/index.js\nvar split_on_first_exports = {};\n__export(split_on_first_exports, {\n  default: () => split_on_first_default\n});\nvar exports2 = {};\nvar module2 = {\n  get exports() {\n    return exports2;\n  },\n  set exports(value) {\n    exports2 = value;\n  }\n};\nmodule2.exports = (string, separator) => {\n  if (!(typeof string === \"string\" && typeof separator === \"string\")) {\n    throw new TypeError(\"Expected the arguments to be of type `string`\");\n  }\n  if (separator === \"\") {\n    return [string];\n  }\n  const separatorIndex = string.indexOf(separator);\n  if (separatorIndex === -1) {\n    return [string];\n  }\n  return [\n    string.slice(0, separatorIndex),\n    string.slice(separatorIndex + separator.length)\n  ];\n};\nvar split_on_first_default = module2.exports;\n\n// ../../node_modules/.pnpm/decode-uri-component@0.2.2/node_modules/decode-uri-component/index.js\nvar decode_uri_component_exports = {};\n__export(decode_uri_component_exports, {\n  default: () => decode_uri_component_default\n});\nvar exports3 = {};\nvar module3 = {\n  get exports() {\n    return exports3;\n  },\n  set exports(value) {\n    exports3 = value;\n  }\n};\nvar token = \"%[a-f0-9]{2}\";\nvar singleMatcher = new RegExp(\"(\" + token + \")|([^%]+?)\", \"gi\");\nvar multiMatcher = new RegExp(\"(\" + token + \")+\", \"gi\");\nfunction decodeComponents(components, split) {\n  try {\n    return [decodeURIComponent(components.join(\"\"))];\n  } catch (err) {\n  }\n  if (components.length === 1) {\n    return components;\n  }\n  split = split || 1;\n  var left = components.slice(0, split);\n  var right = components.slice(split);\n  return Array.prototype.concat.call([], decodeComponents(left), decodeComponents(right));\n}\nfunction decode(input) {\n  try {\n    return decodeURIComponent(input);\n  } catch (err) {\n    var tokens = input.match(singleMatcher) || [];\n    for (var i = 1; i < tokens.length; i++) {\n      input = decodeComponents(tokens, i).join(\"\");\n      tokens = input.match(singleMatcher) || [];\n    }\n    return input;\n  }\n}\nfunction customDecodeURIComponent(input) {\n  var replaceMap = {\n    \"%FE%FF\": \"\\uFFFD\\uFFFD\",\n    \"%FF%FE\": \"\\uFFFD\\uFFFD\"\n  };\n  var match = multiMatcher.exec(input);\n  while (match) {\n    try {\n      replaceMap[match[0]] = decodeURIComponent(match[0]);\n    } catch (err) {\n      var result = decode(match[0]);\n      if (result !== match[0]) {\n        replaceMap[match[0]] = result;\n      }\n    }\n    match = multiMatcher.exec(input);\n  }\n  replaceMap[\"%C2\"] = \"\\uFFFD\";\n  var entries = Object.keys(replaceMap);\n  for (var i = 0; i < entries.length; i++) {\n    var key = entries[i];\n    input = input.replace(new RegExp(key, \"g\"), replaceMap[key]);\n  }\n  return input;\n}\nmodule3.exports = function(encodedURI) {\n  if (typeof encodedURI !== \"string\") {\n    throw new TypeError(\"Expected `encodedURI` to be of type `string`, got `\" + typeof encodedURI + \"`\");\n  }\n  try {\n    encodedURI = encodedURI.replace(/\\+/g, \" \");\n    return decodeURIComponent(encodedURI);\n  } catch (err) {\n    return customDecodeURIComponent(encodedURI);\n  }\n};\nvar decode_uri_component_default = module3.exports;\n\n// ../../node_modules/.pnpm/strict-uri-encode@2.0.0/node_modules/strict-uri-encode/index.js\nvar strict_uri_encode_exports = {};\n__export(strict_uri_encode_exports, {\n  default: () => strict_uri_encode_default\n});\nvar exports4 = {};\nvar module4 = {\n  get exports() {\n    return exports4;\n  },\n  set exports(value) {\n    exports4 = value;\n  }\n};\nmodule4.exports = (str) => encodeURIComponent(str).replace(/[!'()*]/g, (x) => `%${x.charCodeAt(0).toString(16).toUpperCase()}`);\nvar strict_uri_encode_default = module4.exports;\n\n// ../../node_modules/.pnpm/query-string@7.1.3/node_modules/query-string/index.js\nfunction __cjs_default__(requiredModule) {\n  var Object2 = (typeof window !== \"undefined\" && window || typeof self !== \"undefined\" && self || typeof global !== \"undefined\" && global || typeof globalThis !== \"undefined\" && globalThis || {}).Object;\n  var isEsModule = false;\n  var specifiers = Object2.create(null);\n  var hasNamedExports = false;\n  var hasDefaultExport = false;\n  Object2.defineProperty(specifiers, \"__esModule\", {\n    value: true,\n    enumerable: false,\n    configurable: true\n  });\n  if (requiredModule) {\n    var names = Object2.getOwnPropertyNames(requiredModule);\n    ;\n    names.forEach(function(k) {\n      if (k === \"default\") {\n        hasDefaultExport = true;\n      } else if (!hasNamedExports && k != \"__esModule\") {\n        try {\n          hasNamedExports = requiredModule[k] != null;\n        } catch (err) {\n        }\n      }\n      Object2.defineProperty(specifiers, k, {\n        get: function() {\n          return requiredModule[k];\n        },\n        enumerable: true,\n        configurable: false\n      });\n    });\n    if (Object2.getOwnPropertySymbols) {\n      var symbols = Object2.getOwnPropertySymbols(requiredModule);\n      symbols.forEach(function(k) {\n        Object2.defineProperty(specifiers, k, {\n          get: function() {\n            return requiredModule[k];\n          },\n          enumerable: false,\n          configurable: false\n        });\n      });\n    }\n    Object2.preventExtensions(specifiers);\n    Object2.seal(specifiers);\n    if (Object2.freeze) {\n      Object2.freeze(specifiers);\n    }\n  }\n  if (hasNamedExports) {\n    return specifiers;\n  }\n  if (hasDefaultExport) {\n    if (Object2.isExtensible(specifiers.default) && !(\"default\" in specifiers.default)) {\n      Object2.defineProperty(specifiers.default, \"default\", {\n        value: specifiers.default,\n        configurable: false,\n        enumerable: false\n      });\n    }\n    return specifiers.default;\n  }\n  return specifiers;\n}\nvar global = typeof window !== \"undefined\" && window || typeof self !== \"undefined\" && self || typeof global !== \"undefined\" && global || typeof globalThis !== \"undefined\" && globalThis || {};\nvar exports5 = {};\nvar module5 = {\n  get exports() {\n    return exports5;\n  },\n  set exports(value) {\n    exports5 = value;\n  }\n};\nvar strictUriEncode = __cjs_default__(typeof strict_uri_encode_exports !== \"undefined\" ? strict_uri_encode_exports : {});\nvar decodeComponent = __cjs_default__(typeof decode_uri_component_exports !== \"undefined\" ? decode_uri_component_exports : {});\nvar splitOnFirst = __cjs_default__(typeof split_on_first_exports !== \"undefined\" ? split_on_first_exports : {});\nvar filterObject = __cjs_default__(typeof filter_obj_exports !== \"undefined\" ? filter_obj_exports : {});\nvar isNullOrUndefined = (value) => value === null || value === void 0;\nvar encodeFragmentIdentifier = Symbol(\"encodeFragmentIdentifier\");\nfunction encoderForArrayFormat(options) {\n  switch (options.arrayFormat) {\n    case \"index\":\n      return (key) => (result, value) => {\n        const index = result.length;\n        if (value === void 0 || options.skipNull && value === null || options.skipEmptyString && value === \"\") {\n          return result;\n        }\n        if (value === null) {\n          return [...result, [encode(key, options), \"[\", index, \"]\"].join(\"\")];\n        }\n        return [\n          ...result,\n          [encode(key, options), \"[\", encode(index, options), \"]=\", encode(value, options)].join(\"\")\n        ];\n      };\n    case \"bracket\":\n      return (key) => (result, value) => {\n        if (value === void 0 || options.skipNull && value === null || options.skipEmptyString && value === \"\") {\n          return result;\n        }\n        if (value === null) {\n          return [...result, [encode(key, options), \"[]\"].join(\"\")];\n        }\n        return [...result, [encode(key, options), \"[]=\", encode(value, options)].join(\"\")];\n      };\n    case \"colon-list-separator\":\n      return (key) => (result, value) => {\n        if (value === void 0 || options.skipNull && value === null || options.skipEmptyString && value === \"\") {\n          return result;\n        }\n        if (value === null) {\n          return [...result, [encode(key, options), \":list=\"].join(\"\")];\n        }\n        return [...result, [encode(key, options), \":list=\", encode(value, options)].join(\"\")];\n      };\n    case \"comma\":\n    case \"separator\":\n    case \"bracket-separator\": {\n      const keyValueSep = options.arrayFormat === \"bracket-separator\" ? \"[]=\" : \"=\";\n      return (key) => (result, value) => {\n        if (value === void 0 || options.skipNull && value === null || options.skipEmptyString && value === \"\") {\n          return result;\n        }\n        value = value === null ? \"\" : value;\n        if (result.length === 0) {\n          return [[encode(key, options), keyValueSep, encode(value, options)].join(\"\")];\n        }\n        return [[result, encode(value, options)].join(options.arrayFormatSeparator)];\n      };\n    }\n    default:\n      return (key) => (result, value) => {\n        if (value === void 0 || options.skipNull && value === null || options.skipEmptyString && value === \"\") {\n          return result;\n        }\n        if (value === null) {\n          return [...result, encode(key, options)];\n        }\n        return [...result, [encode(key, options), \"=\", encode(value, options)].join(\"\")];\n      };\n  }\n}\nfunction parserForArrayFormat(options) {\n  let result;\n  switch (options.arrayFormat) {\n    case \"index\":\n      return (key, value, accumulator) => {\n        result = /\\[(\\d*)\\]$/.exec(key);\n        key = key.replace(/\\[\\d*\\]$/, \"\");\n        if (!result) {\n          accumulator[key] = value;\n          return;\n        }\n        if (accumulator[key] === void 0) {\n          accumulator[key] = {};\n        }\n        accumulator[key][result[1]] = value;\n      };\n    case \"bracket\":\n      return (key, value, accumulator) => {\n        result = /(\\[\\])$/.exec(key);\n        key = key.replace(/\\[\\]$/, \"\");\n        if (!result) {\n          accumulator[key] = value;\n          return;\n        }\n        if (accumulator[key] === void 0) {\n          accumulator[key] = [value];\n          return;\n        }\n        accumulator[key] = [].concat(accumulator[key], value);\n      };\n    case \"colon-list-separator\":\n      return (key, value, accumulator) => {\n        result = /(:list)$/.exec(key);\n        key = key.replace(/:list$/, \"\");\n        if (!result) {\n          accumulator[key] = value;\n          return;\n        }\n        if (accumulator[key] === void 0) {\n          accumulator[key] = [value];\n          return;\n        }\n        accumulator[key] = [].concat(accumulator[key], value);\n      };\n    case \"comma\":\n    case \"separator\":\n      return (key, value, accumulator) => {\n        const isArray = typeof value === \"string\" && value.includes(options.arrayFormatSeparator);\n        const isEncodedArray = typeof value === \"string\" && !isArray && decode2(value, options).includes(options.arrayFormatSeparator);\n        value = isEncodedArray ? decode2(value, options) : value;\n        const newValue = isArray || isEncodedArray ? value.split(options.arrayFormatSeparator).map((item) => decode2(item, options)) : value === null ? value : decode2(value, options);\n        accumulator[key] = newValue;\n      };\n    case \"bracket-separator\":\n      return (key, value, accumulator) => {\n        const isArray = /(\\[\\])$/.test(key);\n        key = key.replace(/\\[\\]$/, \"\");\n        if (!isArray) {\n          accumulator[key] = value ? decode2(value, options) : value;\n          return;\n        }\n        const arrayValue = value === null ? [] : value.split(options.arrayFormatSeparator).map((item) => decode2(item, options));\n        if (accumulator[key] === void 0) {\n          accumulator[key] = arrayValue;\n          return;\n        }\n        accumulator[key] = [].concat(accumulator[key], arrayValue);\n      };\n    default:\n      return (key, value, accumulator) => {\n        if (accumulator[key] === void 0) {\n          accumulator[key] = value;\n          return;\n        }\n        accumulator[key] = [].concat(accumulator[key], value);\n      };\n  }\n}\nfunction validateArrayFormatSeparator(value) {\n  if (typeof value !== \"string\" || value.length !== 1) {\n    throw new TypeError(\"arrayFormatSeparator must be single character string\");\n  }\n}\nfunction encode(value, options) {\n  if (options.encode) {\n    return options.strict ? strictUriEncode(value) : encodeURIComponent(value);\n  }\n  return value;\n}\nfunction decode2(value, options) {\n  if (options.decode) {\n    return decodeComponent(value);\n  }\n  return value;\n}\nfunction keysSorter(input) {\n  if (Array.isArray(input)) {\n    return input.sort();\n  }\n  if (typeof input === \"object\") {\n    return keysSorter(Object.keys(input)).sort((a, b) => Number(a) - Number(b)).map((key) => input[key]);\n  }\n  return input;\n}\nfunction removeHash(input) {\n  const hashStart = input.indexOf(\"#\");\n  if (hashStart !== -1) {\n    input = input.slice(0, hashStart);\n  }\n  return input;\n}\nfunction getHash(url) {\n  let hash = \"\";\n  const hashStart = url.indexOf(\"#\");\n  if (hashStart !== -1) {\n    hash = url.slice(hashStart);\n  }\n  return hash;\n}\nfunction extract(input) {\n  input = removeHash(input);\n  const queryStart = input.indexOf(\"?\");\n  if (queryStart === -1) {\n    return \"\";\n  }\n  return input.slice(queryStart + 1);\n}\nfunction parseValue(value, options) {\n  if (options.parseNumbers && !Number.isNaN(Number(value)) && (typeof value === \"string\" && value.trim() !== \"\")) {\n    value = Number(value);\n  } else if (options.parseBooleans && value !== null && (value.toLowerCase() === \"true\" || value.toLowerCase() === \"false\")) {\n    value = value.toLowerCase() === \"true\";\n  }\n  return value;\n}\nfunction parse(query, options) {\n  options = Object.assign({\n    decode: true,\n    sort: true,\n    arrayFormat: \"none\",\n    arrayFormatSeparator: \",\",\n    parseNumbers: false,\n    parseBooleans: false\n  }, options);\n  validateArrayFormatSeparator(options.arrayFormatSeparator);\n  const formatter = parserForArrayFormat(options);\n  const ret = /* @__PURE__ */ Object.create(null);\n  if (typeof query !== \"string\") {\n    return ret;\n  }\n  query = query.trim().replace(/^[?#&]/, \"\");\n  if (!query) {\n    return ret;\n  }\n  for (const param of query.split(\"&\")) {\n    if (param === \"\") {\n      continue;\n    }\n    let [key, value] = splitOnFirst(options.decode ? param.replace(/\\+/g, \" \") : param, \"=\");\n    value = value === void 0 ? null : [\"comma\", \"separator\", \"bracket-separator\"].includes(options.arrayFormat) ? value : decode2(value, options);\n    formatter(decode2(key, options), value, ret);\n  }\n  for (const key of Object.keys(ret)) {\n    const value = ret[key];\n    if (typeof value === \"object\" && value !== null) {\n      for (const k of Object.keys(value)) {\n        value[k] = parseValue(value[k], options);\n      }\n    } else {\n      ret[key] = parseValue(value, options);\n    }\n  }\n  if (options.sort === false) {\n    return ret;\n  }\n  return (options.sort === true ? Object.keys(ret).sort() : Object.keys(ret).sort(options.sort)).reduce((result, key) => {\n    const value = ret[key];\n    if (Boolean(value) && typeof value === \"object\" && !Array.isArray(value)) {\n      result[key] = keysSorter(value);\n    } else {\n      result[key] = value;\n    }\n    return result;\n  }, /* @__PURE__ */ Object.create(null));\n}\nexports5.extract = extract;\nexports5.parse = parse;\nexports5.stringify = (object, options) => {\n  if (!object) {\n    return \"\";\n  }\n  options = Object.assign({\n    encode: true,\n    strict: true,\n    arrayFormat: \"none\",\n    arrayFormatSeparator: \",\"\n  }, options);\n  validateArrayFormatSeparator(options.arrayFormatSeparator);\n  const shouldFilter = (key) => options.skipNull && isNullOrUndefined(object[key]) || options.skipEmptyString && object[key] === \"\";\n  const formatter = encoderForArrayFormat(options);\n  const objectCopy = {};\n  for (const key of Object.keys(object)) {\n    if (!shouldFilter(key)) {\n      objectCopy[key] = object[key];\n    }\n  }\n  const keys = Object.keys(objectCopy);\n  if (options.sort !== false) {\n    keys.sort(options.sort);\n  }\n  return keys.map((key) => {\n    const value = object[key];\n    if (value === void 0) {\n      return \"\";\n    }\n    if (value === null) {\n      return encode(key, options);\n    }\n    if (Array.isArray(value)) {\n      if (value.length === 0 && options.arrayFormat === \"bracket-separator\") {\n        return encode(key, options) + \"[]\";\n      }\n      return value.reduce(formatter(key), []).join(\"&\");\n    }\n    return encode(key, options) + \"=\" + encode(value, options);\n  }).filter((x) => x.length > 0).join(\"&\");\n};\nexports5.parseUrl = (url, options) => {\n  options = Object.assign({\n    decode: true\n  }, options);\n  const [url_, hash] = splitOnFirst(url, \"#\");\n  return Object.assign(\n    {\n      url: url_.split(\"?\")[0] || \"\",\n      query: parse(extract(url), options)\n    },\n    options && options.parseFragmentIdentifier && hash ? { fragmentIdentifier: decode2(hash, options) } : {}\n  );\n};\nexports5.stringifyUrl = (object, options) => {\n  options = Object.assign({\n    encode: true,\n    strict: true,\n    [encodeFragmentIdentifier]: true\n  }, options);\n  const url = removeHash(object.url).split(\"?\")[0] || \"\";\n  const queryFromUrl = exports5.extract(object.url);\n  const parsedQueryFromUrl = exports5.parse(queryFromUrl, { sort: false });\n  const query = Object.assign(parsedQueryFromUrl, object.query);\n  let queryString = exports5.stringify(query, options);\n  if (queryString) {\n    queryString = `?${queryString}`;\n  }\n  let hash = getHash(object.url);\n  if (object.fragmentIdentifier) {\n    hash = `#${options[encodeFragmentIdentifier] ? encode(object.fragmentIdentifier, options) : object.fragmentIdentifier}`;\n  }\n  return `${url}${queryString}${hash}`;\n};\nexports5.pick = (input, filter, options) => {\n  options = Object.assign({\n    parseFragmentIdentifier: true,\n    [encodeFragmentIdentifier]: false\n  }, options);\n  const { url, query, fragmentIdentifier } = exports5.parseUrl(input, options);\n  return exports5.stringifyUrl({\n    url,\n    query: filterObject(query, filter),\n    fragmentIdentifier\n  }, options);\n};\nexports5.exclude = (input, filter, options) => {\n  const exclusionFilter = Array.isArray(filter) ? (key) => !filter.includes(key) : (key, value) => !filter(key, value);\n  return exports5.pick(input, exclusionFilter, options);\n};\nvar __export0;\nvar __export1;\nvar __export2;\nvar __export3;\nvar __export4;\nvar __export5;\nvar __export6;\nif (Object.isExtensible(module5.exports) && Object.keys(module5.exports).length === 7) {\n  __export0 = module5.exports[\"extract\"];\n  __export1 = module5.exports[\"parse\"];\n  __export2 = module5.exports[\"stringify\"];\n  __export3 = module5.exports[\"parseUrl\"];\n  __export4 = module5.exports[\"stringifyUrl\"];\n  __export5 = module5.exports[\"pick\"];\n  __export6 = module5.exports[\"exclude\"];\n}\nvar query_string_default = module5.exports;\n\nexport {\n  __export1,\n  __export4\n};\n","// src/presets.ts\nvar presets = {\n  halo: {\n    title: \"Halo\",\n    color: \"white\",\n    props: {\n      type: \"plane\",\n      uAmplitude: 1,\n      uDensity: 1.3,\n      uSpeed: 0.4,\n      uStrength: 4,\n      uTime: 0,\n      uFrequency: 5.5,\n      range: \"enabled\",\n      rangeStart: 0,\n      rangeEnd: 40,\n      frameRate: 10,\n      destination: \"onCanvas\",\n      format: \"gif\",\n      axesHelper: \"off\",\n      brightness: 1.2,\n      cAzimuthAngle: 180,\n      cDistance: 3.6,\n      cPolarAngle: 90,\n      cameraZoom: 1,\n      color1: \"#ff5005\",\n      color2: \"#dbba95\",\n      color3: \"#d0bce1\",\n      embedMode: \"off\",\n      envPreset: \"city\",\n      gizmoHelper: \"hide\",\n      grain: \"on\",\n      lightType: \"3d\",\n      pixelDensity: 1,\n      fov: 45,\n      positionX: -1.4,\n      positionY: 0,\n      positionZ: 0,\n      reflection: 0.1,\n      rotationX: 0,\n      rotationY: 10,\n      rotationZ: 50,\n      shader: \"defaults\",\n      animate: \"on\",\n      wireframe: false\n    }\n  },\n  pensive: {\n    title: \"Pensive\",\n    color: \"white\",\n    props: {\n      range: \"enabled\",\n      rangeStart: 0,\n      rangeEnd: 40,\n      frameRate: 10,\n      destination: \"onCanvas\",\n      format: \"gif\",\n      animate: \"on\",\n      axesHelper: \"off\",\n      brightness: 1.5,\n      cAzimuthAngle: 250,\n      cDistance: 1.5,\n      cPolarAngle: 140,\n      cameraZoom: 12.5,\n      color1: \"#809bd6\",\n      color2: \"#910aff\",\n      color3: \"#af38ff\",\n      embedMode: \"off\",\n      envPreset: \"city\",\n      gizmoHelper: \"hide\",\n      grain: \"on\",\n      lightType: \"3d\",\n      pixelDensity: 1,\n      fov: 45,\n      positionX: 0,\n      positionY: 0,\n      positionZ: 0,\n      reflection: 0.5,\n      rotationX: 0,\n      rotationY: 0,\n      rotationZ: 140,\n      shader: \"defaults\",\n      type: \"sphere\",\n      uAmplitude: 7,\n      uDensity: 0.8,\n      uFrequency: 5.5,\n      uSpeed: 0.3,\n      uStrength: 0.4,\n      uTime: 0,\n      wireframe: false\n    }\n  },\n  mint: {\n    title: \"Mint\",\n    color: \"white\",\n    props: {\n      range: \"enabled\",\n      rangeStart: 0,\n      rangeEnd: 40,\n      frameRate: 10,\n      destination: \"onCanvas\",\n      format: \"gif\",\n      animate: \"on\",\n      axesHelper: \"off\",\n      brightness: 1.2,\n      cAzimuthAngle: 170,\n      cDistance: 4.4,\n      cPolarAngle: 70,\n      cameraZoom: 1,\n      color1: \"#94ffd1\",\n      color2: \"#6bf5ff\",\n      color3: \"#ffffff\",\n      embedMode: \"off\",\n      envPreset: \"city\",\n      gizmoHelper: \"hide\",\n      grain: \"off\",\n      lightType: \"3d\",\n      pixelDensity: 1,\n      fov: 45,\n      positionX: 0,\n      positionY: 0.9,\n      positionZ: -0.3,\n      reflection: 0.1,\n      rotationX: 45,\n      rotationY: 0,\n      rotationZ: 0,\n      shader: \"defaults\",\n      type: \"waterPlane\",\n      uAmplitude: 0,\n      uDensity: 1.2,\n      uFrequency: 0,\n      uSpeed: 0.2,\n      uStrength: 3.4,\n      uTime: 0,\n      wireframe: false\n    }\n  },\n  interstella: {\n    title: \"Interstella\",\n    color: \"white\",\n    props: {\n      range: \"enabled\",\n      rangeStart: 0,\n      rangeEnd: 40,\n      frameRate: 10,\n      destination: \"onCanvas\",\n      format: \"gif\",\n      animate: \"on\",\n      axesHelper: \"off\",\n      brightness: 0.8,\n      cAzimuthAngle: 270,\n      cDistance: 0.5,\n      cPolarAngle: 180,\n      cameraZoom: 15.1,\n      color1: \"#73bfc4\",\n      color2: \"#ff810a\",\n      color3: \"#8da0ce\",\n      embedMode: \"off\",\n      envPreset: \"city\",\n      gizmoHelper: \"hide\",\n      grain: \"on\",\n      lightType: \"env\",\n      pixelDensity: 1,\n      fov: 45,\n      positionX: -0.1,\n      positionY: 0,\n      positionZ: 0,\n      reflection: 0.4,\n      rotationX: 0,\n      rotationY: 130,\n      rotationZ: 70,\n      shader: \"defaults\",\n      type: \"sphere\",\n      uAmplitude: 3.2,\n      uDensity: 0.8,\n      uFrequency: 5.5,\n      uSpeed: 0.3,\n      uStrength: 0.3,\n      uTime: 0,\n      wireframe: false\n    }\n  },\n  nightyNight: {\n    title: \"Nighty night\",\n    color: \"white\",\n    props: {\n      range: \"enabled\",\n      rangeStart: 0,\n      rangeEnd: 40,\n      frameRate: 10,\n      destination: \"onCanvas\",\n      format: \"gif\",\n      animate: \"on\",\n      axesHelper: \"off\",\n      brightness: 1,\n      cAzimuthAngle: 180,\n      cDistance: 2.8,\n      cPolarAngle: 80,\n      cameraZoom: 9.1,\n      color1: \"#606080\",\n      color2: \"#8d7dca\",\n      color3: \"#212121\",\n      embedMode: \"off\",\n      envPreset: \"city\",\n      gizmoHelper: \"hide\",\n      grain: \"on\",\n      lightType: \"3d\",\n      pixelDensity: 1,\n      fov: 45,\n      positionX: 0,\n      positionY: 0,\n      positionZ: 0,\n      reflection: 0.1,\n      rotationX: 50,\n      rotationY: 0,\n      rotationZ: -60,\n      shader: \"defaults\",\n      type: \"waterPlane\",\n      uAmplitude: 0,\n      uDensity: 1.5,\n      uFrequency: 0,\n      uSpeed: 0.3,\n      uStrength: 1.5,\n      uTime: 8,\n      wireframe: false\n    }\n  },\n  violaOrientalis: {\n    title: \"Viola orientalis\",\n    color: \"white\",\n    props: {\n      range: \"enabled\",\n      rangeStart: 0,\n      rangeEnd: 40,\n      frameRate: 10,\n      destination: \"onCanvas\",\n      format: \"gif\",\n      animate: \"on\",\n      axesHelper: \"on\",\n      brightness: 1.1,\n      cAzimuthAngle: 0,\n      cDistance: 7.1,\n      cPolarAngle: 140,\n      cameraZoom: 17.3,\n      color1: \"#ffffff\",\n      color2: \"#ffbb00\",\n      color3: \"#0700ff\",\n      embedMode: \"off\",\n      envPreset: \"city\",\n      grain: \"off\",\n      lightType: \"3d\",\n      pixelDensity: 1,\n      fov: 45,\n      positionX: 0,\n      positionY: 0,\n      positionZ: 0,\n      reflection: 0.1,\n      rotationX: 0,\n      rotationY: 0,\n      rotationZ: 0,\n      shader: \"defaults\",\n      type: \"sphere\",\n      uAmplitude: 1.4,\n      uDensity: 1.1,\n      uSpeed: 0.1,\n      uStrength: 1,\n      uTime: 0,\n      uFrequency: 5.5,\n      wireframe: false\n    }\n  },\n  universe: {\n    title: \"Universe\",\n    color: \"white\",\n    props: {\n      range: \"enabled\",\n      rangeStart: 0,\n      rangeEnd: 40,\n      frameRate: 10,\n      destination: \"onCanvas\",\n      format: \"gif\",\n      animate: \"on\",\n      axesHelper: \"on\",\n      brightness: 1.1,\n      cAzimuthAngle: 180,\n      cDistance: 3.9,\n      cPolarAngle: 115,\n      cameraZoom: 1,\n      color1: \"#5606ff\",\n      color2: \"#fe8989\",\n      color3: \"#000000\",\n      embedMode: \"off\",\n      envPreset: \"city\",\n      grain: \"off\",\n      lightType: \"3d\",\n      pixelDensity: 1,\n      fov: 45,\n      positionX: -0.5,\n      positionY: 0.1,\n      positionZ: 0,\n      reflection: 0.1,\n      rotationX: 0,\n      rotationY: 0,\n      rotationZ: 235,\n      shader: \"defaults\",\n      type: \"waterPlane\",\n      uAmplitude: 0,\n      uDensity: 1.1,\n      uSpeed: 0.1,\n      uStrength: 2.4,\n      uTime: 0.2,\n      uFrequency: 5.5,\n      wireframe: false\n    }\n  },\n  sunset: {\n    title: \"Sunset\",\n    color: \"white\",\n    props: {\n      range: \"enabled\",\n      rangeStart: 0,\n      rangeEnd: 40,\n      frameRate: 10,\n      destination: \"onCanvas\",\n      format: \"gif\",\n      animate: \"on\",\n      axesHelper: \"on\",\n      bgColor1: \"#000000\",\n      bgColor2: \"#000000\",\n      brightness: 1.5,\n      cAzimuthAngle: 60,\n      cDistance: 7.1,\n      cPolarAngle: 90,\n      cameraZoom: 15.3,\n      color1: \"#ff7a33\",\n      color2: \"#33a0ff\",\n      color3: \"#ffc53d\",\n      embedMode: \"off\",\n      envPreset: \"dawn\",\n      grain: \"off\",\n      lightType: \"3d\",\n      pixelDensity: 1,\n      fov: 45,\n      positionX: 0,\n      positionY: -0.15,\n      positionZ: 0,\n      reflection: 0.1,\n      rotationX: 0,\n      rotationY: 0,\n      rotationZ: 0,\n      shader: \"defaults\",\n      type: \"sphere\",\n      uAmplitude: 1.4,\n      uDensity: 1.1,\n      uSpeed: 0.1,\n      uStrength: 0.4,\n      uTime: 0,\n      uFrequency: 5.5,\n      wireframe: false\n    }\n  },\n  mandarin: {\n    title: \"Mandarin\",\n    color: \"white\",\n    props: {\n      range: \"enabled\",\n      rangeStart: 0,\n      rangeEnd: 40,\n      frameRate: 10,\n      destination: \"onCanvas\",\n      format: \"gif\",\n      animate: \"on\",\n      axesHelper: \"on\",\n      bgColor1: \"#000000\",\n      bgColor2: \"#000000\",\n      brightness: 1.2,\n      cAzimuthAngle: 180,\n      cDistance: 2.4,\n      cPolarAngle: 95,\n      cameraZoom: 1,\n      color1: \"#ff6a1a\",\n      color2: \"#c73c00\",\n      color3: \"#FD4912\",\n      embedMode: \"off\",\n      envPreset: \"city\",\n      grain: \"off\",\n      lightType: \"3d\",\n      pixelDensity: 1,\n      fov: 45,\n      positionX: 0,\n      positionY: -2.1,\n      positionZ: 0,\n      reflection: 0.1,\n      rotationX: 0,\n      rotationY: 0,\n      rotationZ: 225,\n      shader: \"defaults\",\n      type: \"waterPlane\",\n      uAmplitude: 0,\n      uDensity: 1.8,\n      uSpeed: 0.2,\n      uStrength: 3,\n      uTime: 0.2,\n      uFrequency: 5.5,\n      wireframe: false\n    }\n  },\n  cottonCandy: {\n    title: \"Cotton Candy\",\n    color: \"white\",\n    props: {\n      range: \"enabled\",\n      rangeStart: 0,\n      rangeEnd: 40,\n      frameRate: 10,\n      destination: \"onCanvas\",\n      format: \"gif\",\n      animate: \"on\",\n      axesHelper: \"off\",\n      brightness: 1.2,\n      cAzimuthAngle: 180,\n      cDistance: 2.9,\n      cPolarAngle: 120,\n      cameraZoom: 1,\n      color1: \"#ebedff\",\n      color2: \"#f3f2f8\",\n      color3: \"#dbf8ff\",\n      embedMode: \"off\",\n      envPreset: \"city\",\n      grain: \"off\",\n      lightType: \"3d\",\n      pixelDensity: 1,\n      fov: 45,\n      positionX: 0,\n      positionY: 1.8,\n      positionZ: 0,\n      reflection: 0.1,\n      rotationX: 0,\n      rotationY: 0,\n      rotationZ: -90,\n      shader: \"defaults\",\n      type: \"waterPlane\",\n      uAmplitude: 0,\n      uDensity: 1,\n      uSpeed: 0.3,\n      uStrength: 3,\n      uTime: 0.2,\n      uFrequency: 5.5,\n      wireframe: false\n    }\n  }\n};\nvar initialActivePreset = 0;\nvar presetsArray = Object.values(presets);\n\nexport {\n  presets,\n  initialActivePreset,\n  presetsArray\n};\n","import {\n  PostProcessing\n} from \"./chunk-5TNITGB6.mjs\";\nimport {\n  Controls\n} from \"./chunk-4MKFODLT.mjs\";\nimport {\n  Lights\n} from \"./chunk-YBH3ZCKF.mjs\";\nimport {\n  Mesh\n} from \"./chunk-ZHIRR2QJ.mjs\";\nimport {\n  __export1\n} from \"./chunk-AVODCFKL.mjs\";\nimport {\n  formatUrlString\n} from \"./chunk-G7COPUKV.mjs\";\nimport {\n  presets\n} from \"./chunk-VTSZNOAZ.mjs\";\nimport {\n  __objRest,\n  __spreadValues\n} from \"./chunk-5BEQP2BQ.mjs\";\n\n// src/ShaderGradient/ShaderGradient.tsx\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nfunction ShaderGradient(passedProps) {\n  const _a = __spreadValues(__spreadValues({}, presets.halo.props), passedProps), { control, urlString } = _a, rest = __objRest(_a, [\"control\", \"urlString\"]);\n  let props = rest;\n  if (control === \"query\")\n    props = __export1(formatUrlString(urlString), {\n      parseNumbers: true,\n      parseBooleans: true,\n      arrayFormat: \"index\"\n    });\n  const _b = props, { lightType, envPreset, brightness, grain, toggleAxis } = _b, others = __objRest(_b, [\"lightType\", \"envPreset\", \"brightness\", \"grain\", \"toggleAxis\"]);\n  return /* @__PURE__ */ jsxs(Fragment, { children: [\n    /* @__PURE__ */ jsx(Mesh, __spreadValues({}, props)),\n    /* @__PURE__ */ jsx(\n      Lights,\n      {\n        lightType,\n        brightness,\n        envPreset\n      }\n    ),\n    grain !== \"off\" && /* @__PURE__ */ jsx(PostProcessing, {}),\n    /* @__PURE__ */ jsx(Controls, __spreadValues({}, props))\n  ] });\n}\n\nexport {\n  ShaderGradient\n};\n","import {\n  ShaderGradientCanvas\n} from \"./chunk-CWHPURPD.mjs\";\nimport \"./chunk-35NIH65G.mjs\";\nimport {\n  ShaderGradient\n} from \"./chunk-6GMBAIZ4.mjs\";\nimport \"./chunk-BKMGN7IO.mjs\";\nimport \"./chunk-WGOL3MLC.mjs\";\nimport \"./chunk-5TNITGB6.mjs\";\nimport \"./chunk-2S3VJM34.mjs\";\nimport \"./chunk-FZIV7POA.mjs\";\nimport \"./chunk-IRMTC4UN.mjs\";\nimport \"./chunk-YUIDVF63.mjs\";\nimport \"./chunk-4Z3JUAHA.mjs\";\nimport \"./chunk-USQFKVUW.mjs\";\nimport \"./chunk-XLXOMSVB.mjs\";\nimport \"./chunk-N6TUE7XZ.mjs\";\nimport \"./chunk-3U6A2N6D.mjs\";\nimport \"./chunk-O7SDERYP.mjs\";\nimport \"./chunk-KD5UHE3V.mjs\";\nimport \"./chunk-4NRCS6EB.mjs\";\nimport \"./chunk-X2NOPSAQ.mjs\";\nimport \"./chunk-4MKFODLT.mjs\";\nimport \"./chunk-F5B5J54Z.mjs\";\nimport \"./chunk-YBH3ZCKF.mjs\";\nimport \"./chunk-EQTKUIXJ.mjs\";\nimport \"./chunk-2S5ZDPTV.mjs\";\nimport \"./chunk-UIVFRJXT.mjs\";\nimport \"./chunk-ZHIRR2QJ.mjs\";\nimport \"./chunk-WMVG427C.mjs\";\nimport \"./chunk-WBM42ICI.mjs\";\nimport \"./chunk-OH6HADGN.mjs\";\nimport \"./chunk-AVODCFKL.mjs\";\nimport \"./chunk-DA2VURNJ.mjs\";\nimport \"./chunk-KO4ISVNC.mjs\";\nimport \"./chunk-G7COPUKV.mjs\";\nimport \"./chunk-BI5IV7LU.mjs\";\nimport \"./chunk-WS7WB67W.mjs\";\nimport \"./chunk-Z4XR7UL5.mjs\";\nimport \"./chunk-SX7QUDKQ.mjs\";\nimport \"./chunk-VTSZNOAZ.mjs\";\nimport {\n  __objRest,\n  __spreadValues\n} from \"./chunk-5BEQP2BQ.mjs\";\n\n// src/FramerShaderGradient.tsx\nimport { ControlType } from \"framer\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction FramerShaderGradient(_a) {\n  var _b = _a, {\n    position,\n    rotation,\n    cameraAngle,\n    noise\n  } = _b, rest = __objRest(_b, [\n    \"position\",\n    \"rotation\",\n    \"cameraAngle\",\n    \"noise\"\n  ]);\n  const { positionX, positionY, positionZ } = position;\n  const { rotationX, rotationY, rotationZ } = rotation;\n  const { cAzimuthAngle, cPolarAngle } = cameraAngle;\n  const { uDensity, uStrength } = noise;\n  return /* @__PURE__ */ jsx(\n    ShaderGradient,\n    __spreadValues({\n      positionX,\n      positionY,\n      positionZ,\n      rotationX,\n      rotationY,\n      rotationZ,\n      cAzimuthAngle,\n      cPolarAngle,\n      uDensity,\n      uStrength\n    }, rest)\n  );\n}\nFramerShaderGradient.propertyControls = {\n  control: {\n    type: ControlType.Enum,\n    options: [\"props\", \"query\"],\n    optionTitles: [\"Props\", \"Query\"],\n    displaySegmentedControl: true\n  },\n  activeTab: {\n    title: \"Settings Group\",\n    type: ControlType.Enum,\n    options: [\"Shape\", \"Colors\", \"Effects\", \"View\"],\n    hidden: (props) => props.control === \"query\"\n  },\n  // Shape\n  type: {\n    type: ControlType.Enum,\n    options: [\"plane\", \"sphere\", \"waterPlane\"],\n    optionTitles: [\"Plane\", \"Sphere\", \"Water\"],\n    displaySegmentedControl: true,\n    hidden: (props) => props.control === \"query\" || props.activeTab !== \"Shape\"\n  },\n  shader: {\n    type: ControlType.Enum,\n    options: [\"defaults\", \"positionMix\"],\n    optionTitles: [\"Type A\", \"Type B\"],\n    displaySegmentedControl: true,\n    hidden: (props) => props.control === \"query\" || props.activeTab !== \"Shape\"\n  },\n  animate: {\n    type: ControlType.Enum,\n    options: [\"on\", \"off\"],\n    optionTitles: [\"On\", \"Off\"],\n    displaySegmentedControl: true,\n    hidden: (props) => props.control === \"query\" || props.activeTab !== \"Shape\" && props.activeTab !== \"URL\"\n  },\n  uTime: {\n    title: \"Movements\",\n    type: ControlType.Number,\n    step: 0.1,\n    displayStepper: true,\n    hidden: (props) => props.animate === \"on\" || props.control === \"query\" || props.activeTab !== \"Shape\"\n  },\n  uSpeed: {\n    title: \"Speed\",\n    type: ControlType.Number,\n    step: 0.1,\n    min: 0.1,\n    displayStepper: true,\n    defaultValue: 0.4,\n    hidden: (props) => props.animate === \"off\" || props.control === \"query\" || props.activeTab !== \"Shape\"\n  },\n  noise: {\n    type: ControlType.Object,\n    controls: {\n      uStrength: {\n        type: ControlType.Number,\n        title: \"Strength\",\n        step: 0.1,\n        min: 0.1,\n        displayStepper: true,\n        defaultValue: 4\n      },\n      uDensity: {\n        type: ControlType.Number,\n        title: \"Density\",\n        step: 0.1,\n        min: 0.1,\n        displayStepper: true,\n        defaultValue: 1.3\n      }\n      // uFrequency: {\n      //     type: ControlType.Number,\n      //     step: 0.1,\n      //     min: 0.1,\n      //     displayStepper: true,\n      //     hidden: (props) =>\n      //         props.type !== \"sphere\" ||\n      //         props.control === \"query\" ||\n      //         props.activeTab !== \"Shape\",\n      // },\n    },\n    hidden: (props) => props.control === \"query\" || props.activeTab !== \"Shape\"\n  },\n  uAmplitude: {\n    type: ControlType.Number,\n    title: \"Spiral\",\n    step: 0.1,\n    min: 0.1,\n    displayStepper: true,\n    defaultValue: 1,\n    hidden: (props) => props.type !== \"sphere\" || props.control === \"query\" || props.activeTab !== \"Shape\"\n  },\n  pixelDensity: {\n    type: ControlType.Number,\n    step: 0.1,\n    min: 0,\n    max: 3,\n    displayStepper: true,\n    defaultValue: 1,\n    hidden: (props) => props.control === \"query\" || props.activeTab !== \"Shape\"\n  },\n  // Effects\n  grain: {\n    type: ControlType.Enum,\n    options: [\"on\", \"off\"],\n    optionTitles: [\"On\", \"Off\"],\n    displaySegmentedControl: true,\n    hidden: (props) => props.control === \"query\" || props.activeTab !== \"Effects\"\n  },\n  lightType: {\n    type: ControlType.Enum,\n    options: [\"env\", \"3d\"],\n    optionTitles: [\"Env\", \"Light\"],\n    displaySegmentedControl: true,\n    defaultValue: \"3d\",\n    hidden: (props) => props.control === \"query\" || props.activeTab !== \"Effects\"\n  },\n  envPreset: {\n    type: ControlType.Enum,\n    options: [\"city\", \"dawn\", \"lobby\"],\n    optionTitles: [\"City\", \"Dawn\", \"Lobby\"],\n    displaySegmentedControl: true,\n    hidden: (props) => props.lightType === \"3d\" || props.control === \"query\" || props.activeTab !== \"Effects\"\n  },\n  brightness: {\n    type: ControlType.Number,\n    step: 0.1,\n    min: 0.1,\n    max: 3,\n    defaultValue: 1.2,\n    hidden: (props) => props.lightType === \"env\" || props.control === \"query\" || props.activeTab !== \"Effects\" || props.url\n  },\n  reflection: {\n    type: ControlType.Number,\n    step: 0.1,\n    min: 0,\n    max: 1,\n    defaultValue: 0.1,\n    hidden: (props) => props.lightType === \"3d\" || props.control === \"query\" || props.activeTab !== \"Effects\" || props.url\n  },\n  // Colors\n  color1: {\n    type: ControlType.Color,\n    defaultValue: \"#ff5005\",\n    hidden: (props) => props.control === \"query\" || props.activeTab !== \"Colors\"\n  },\n  color2: {\n    type: ControlType.Color,\n    defaultValue: \"#dbba95\",\n    hidden: (props) => props.control === \"query\" || props.activeTab !== \"Colors\"\n  },\n  color3: {\n    type: ControlType.Color,\n    defaultValue: \"#d0bce1\",\n    hidden: (props) => props.control === \"query\" || props.activeTab !== \"Colors\"\n  },\n  // View\n  cDistance: {\n    title: \"Distance\",\n    type: ControlType.Number,\n    displayStepper: true,\n    min: 0,\n    max: 20,\n    defaultValue: 3.6,\n    hidden: (props) => props.type === \"sphere\" || props.control === \"query\" || props.activeTab !== \"View\"\n  },\n  cameraZoom: {\n    type: ControlType.Number,\n    displayStepper: true,\n    step: 0.1,\n    min: 0.1,\n    max: 30,\n    defaultValue: 1,\n    hidden: (props) => props.type !== \"sphere\" || props.control === \"query\" || props.activeTab !== \"View\"\n  },\n  cameraAngle: {\n    type: ControlType.Object,\n    controls: {\n      cAzimuthAngle: {\n        title: \"Azimuth\",\n        type: ControlType.Number,\n        displayStepper: true,\n        step: 10,\n        min: 0,\n        max: 360,\n        defaultValue: 180\n      },\n      cPolarAngle: {\n        title: \"Polar\",\n        type: ControlType.Number,\n        displayStepper: true,\n        step: 10,\n        min: 0,\n        max: 180,\n        defaultValue: 90\n      }\n    },\n    hidden: (props) => props.control === \"query\" || props.activeTab !== \"View\"\n  },\n  position: {\n    type: ControlType.Object,\n    controls: {\n      positionX: {\n        type: ControlType.Number,\n        step: 0.1,\n        displayStepper: true,\n        defaultValue: -1.4\n      },\n      positionY: {\n        type: ControlType.Number,\n        step: 0.1,\n        displayStepper: true,\n        defaultValue: 0\n      },\n      positionZ: {\n        type: ControlType.Number,\n        step: 0.1,\n        displayStepper: true,\n        defaultValue: 0\n      }\n    },\n    hidden: (props) => props.control === \"query\" || props.activeTab !== \"View\"\n  },\n  rotation: {\n    type: ControlType.Object,\n    controls: {\n      rotationX: {\n        type: ControlType.Number,\n        step: 10,\n        min: -360,\n        max: 360,\n        displayStepper: true,\n        defaultValue: 0\n      },\n      rotationY: {\n        type: ControlType.Number,\n        step: 10,\n        min: -360,\n        max: 360,\n        displayStepper: true,\n        defaultValue: 10\n      },\n      rotationZ: {\n        type: ControlType.Number,\n        step: 10,\n        min: -360,\n        max: 360,\n        displayStepper: true,\n        defaultValue: 50\n      }\n    },\n    hidden: (props) => props.control === \"query\" || props.activeTab !== \"View\"\n  },\n  // urlString\n  urlString: {\n    type: ControlType.String,\n    placeholder: \"URL from shadergradient.co\",\n    defaultValue: \"https://www.shadergradient.co/customize?animate=on&axesHelper=off&bgColor1=%23000000&bgColor2=%23000000&brightness=1.2&cAzimuthAngle=180&cDistance=3.6&cPolarAngle=90&cameraZoom=1&color1=%23ff5005&color2=%23dbba95&color3=%23d0bce1&destination=onCanvas&embedMode=off&envPreset=city&format=gif&fov=45&frameRate=10&gizmoHelper=hide&grain=on&lightType=3d&pixelDensity=1&positionX=-1.4&positionY=0&positionZ=0&range=enabled&rangeEnd=40&rangeStart=0&reflection=0.1&rotationX=0&rotationY=10&rotationZ=50&shader=defaults&type=plane&uDensity=1.3&uFrequency=5.5&uSpeed=0.4&uStrength=4&uTime=0&wireframe=false\",\n    hidden: (props) => props.control === \"props\"\n  },\n  // Tools (🧰)\n  zoomOut: {\n    type: ControlType.Boolean,\n    title: \"View\",\n    enabledTitle: \"Wide\",\n    disabledTitle: \"-\",\n    hidden: (props) => props.control === \"query\"\n  },\n  toggleAxis: {\n    type: ControlType.Boolean,\n    title: \"Axis\",\n    enabledTitle: \"Guide\",\n    disabledTitle: \"-\",\n    hidden: (props) => props.control === \"query\"\n  },\n  pointerEvents: {\n    type: ControlType.Enum,\n    title: \"Touch Control\",\n    options: [\"none\", \"auto\"],\n    optionTitles: [\"Disable\", \"Enable\"],\n    displaySegmentedControl: true,\n    hidden: (props) => props.control === \"query\"\n  },\n  performantOnCanvas: {\n    type: ControlType.Boolean,\n    defaultValue: false\n  }\n};\nexport {\n  FramerShaderGradient,\n  ShaderGradientCanvas\n};\n","// Generated by Framer (b6cf623)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"Inter-Light\",\"Inter\",\"Inter-Italic\",\"Inter-LightItalic\"]);export const fonts=[{explicitInter:true,fonts:[{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/BkDpl4ghaqvMi1btKFyG2tdbec.woff2\",weight:\"300\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/zAMK70AQRFSShJgUiaR5IiIhgzk.woff2\",weight:\"300\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/IETjvc5qzUaRoaruDpPSwCUM8.woff2\",weight:\"300\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/oLCoaT3ioA0fHdJnWR9W6k7NY.woff2\",weight:\"300\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/Sj0PCHQSBjFmEp6NBWg6FNaKc.woff2\",weight:\"300\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/v2q8JTTTs7McDMSEhnxAIBqd0.woff2\",weight:\"300\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/H4TfENUY1rh8R9UaSD6vngjJP3M.woff2\",weight:\"300\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5vvr9Vy74if2I6bQbJvbw7SY1pQ.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/EOr0mi4hNtlgWNn9if640EZzXCo.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/Y9k9QrlZAqio88Klkmbd8VoMQc.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/OYrD2tBIBPvoJXiIHnLoOXnY9M.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/JeYwfuaPfZHQhEG8U5gtPDZ7WQ.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/vQyevYAyHtARFwPqUzQGpnDs.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/b6Y37FthZeALduNqHicBT6FutY.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/CfMzU8w2e7tHgF4T4rATMPuWosA.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/867QObYax8ANsfX4TGEVU9YiCM.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/Oyn2ZbENFdnW7mt2Lzjk1h9Zb9k.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/cdAe8hgZ1cMyLu9g005pAW3xMo.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/DOfvtmE1UplCq161m6Hj8CSQYg.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/vFzuJY0c65av44uhEKB6vyjFMg.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/tKtBcDnBMevsEEJKdNGhhkLzYo.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/YYB6GZmCWnZq3RWZOghuZIOxQY.woff2\",weight:\"300\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/miJTzODdiyIr3tRo9KEoqXXk2PM.woff2\",weight:\"300\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/6ZMhcggRFfEfbf7lncCpaUbA.woff2\",weight:\"300\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/8sCN6PGUr4I8q5hC5twAXfcwqV0.woff2\",weight:\"300\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/aUYDUTztS7anQw5JuwCncXeLOBY.woff2\",weight:\"300\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/5mDAOkC5Wpzo7NkuE9oYfqlY2u4.woff2\",weight:\"300\"},{family:\"Inter\",source:\"framer\",style:\"italic\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/yDiPvYxioBHsicnYxpPW35WQmx8.woff2\",weight:\"300\"}]}];export const css=['.framer-USOXP .framer-styles-preset-8tx2qg:not(.rich-text-wrapper), .framer-USOXP .framer-styles-preset-8tx2qg.rich-text-wrapper p { --framer-font-family: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold: \"Inter\", sans-serif; --framer-font-family-bold-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-open-type-features: \\'blwf\\' on, \\'cv09\\' on, \\'cv03\\' on, \\'cv04\\' on, \\'cv11\\' on; --framer-font-size: 23px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 300; --framer-font-weight-bold: 400; --framer-font-weight-bold-italic: 400; --framer-font-weight-italic: 300; --framer-letter-spacing: 0em; --framer-line-height: 1.4em; --framer-paragraph-spacing: 20px; --framer-text-alignment: start; --framer-text-color: #000000; --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }','@media (max-width: 1899px) and (min-width: 1200px) { .framer-USOXP .framer-styles-preset-8tx2qg:not(.rich-text-wrapper), .framer-USOXP .framer-styles-preset-8tx2qg.rich-text-wrapper p { --framer-font-family: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold: \"Inter\", sans-serif; --framer-font-family-bold-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-open-type-features: \\'blwf\\' on, \\'cv09\\' on, \\'cv03\\' on, \\'cv04\\' on, \\'cv11\\' on; --framer-font-size: 20px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 300; --framer-font-weight-bold: 400; --framer-font-weight-bold-italic: 400; --framer-font-weight-italic: 300; --framer-letter-spacing: 0em; --framer-line-height: 1.4em; --framer-paragraph-spacing: 20px; --framer-text-alignment: start; --framer-text-color: #000000; --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }','@media (max-width: 1199px) and (min-width: 810px) { .framer-USOXP .framer-styles-preset-8tx2qg:not(.rich-text-wrapper), .framer-USOXP .framer-styles-preset-8tx2qg.rich-text-wrapper p { --framer-font-family: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold: \"Inter\", sans-serif; --framer-font-family-bold-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-open-type-features: \\'blwf\\' on, \\'cv09\\' on, \\'cv03\\' on, \\'cv04\\' on, \\'cv11\\' on; --framer-font-size: 18px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 300; --framer-font-weight-bold: 400; --framer-font-weight-bold-italic: 400; --framer-font-weight-italic: 300; --framer-letter-spacing: 0em; --framer-line-height: 1.4em; --framer-paragraph-spacing: 20px; --framer-text-alignment: start; --framer-text-color: #000000; --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }','@media (max-width: 809px) and (min-width: 0px) { .framer-USOXP .framer-styles-preset-8tx2qg:not(.rich-text-wrapper), .framer-USOXP .framer-styles-preset-8tx2qg.rich-text-wrapper p { --framer-font-family: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold: \"Inter\", sans-serif; --framer-font-family-bold-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-open-type-features: \\'blwf\\' on, \\'cv09\\' on, \\'cv03\\' on, \\'cv04\\' on, \\'cv11\\' on; --framer-font-size: 16px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 300; --framer-font-weight-bold: 400; --framer-font-weight-bold-italic: 400; --framer-font-weight-italic: 300; --framer-letter-spacing: 0em; --framer-line-height: 1.4em; --framer-paragraph-spacing: 20px; --framer-text-alignment: start; --framer-text-color: #000000; --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }'];export const className=\"framer-USOXP\";\nexport const __FramerMetadata__ = {\"exports\":{\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (4b118ea)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"GF;Source Serif 4-500\",\"GF;Source Serif 4-700\",\"GF;Source Serif 4-700italic\",\"GF;Source Serif 4-500italic\"]);export const fonts=[{explicitInter:true,fonts:[{family:\"Source Serif 4\",openType:true,source:\"google\",style:\"normal\",url:\"https://fonts.gstatic.com/s/sourceserif4/v8/vEFy2_tTDB4M7-auWDN0ahZJW3IX2ih5nk3AucvUHf6OAVIJmeUDygwjiiVqrhlXD-wGvjU.woff2\",weight:\"500\"},{family:\"Source Serif 4\",openType:true,source:\"google\",style:\"normal\",url:\"https://fonts.gstatic.com/s/sourceserif4/v8/vEFy2_tTDB4M7-auWDN0ahZJW3IX2ih5nk3AucvUHf6OAVIJmeUDygwjivBtrhlXD-wGvjU.woff2\",weight:\"700\"},{family:\"Source Serif 4\",openType:true,source:\"google\",style:\"italic\",url:\"https://fonts.gstatic.com/s/sourceserif4/v8/vEF02_tTDB4M7-auWDN0ahZJW1ge6NmXpVAHV83Bfb_US2D2QYxoUKIkn98poVhdDs4DrjXEXw.woff2\",weight:\"700\"},{family:\"Source Serif 4\",openType:true,source:\"google\",style:\"italic\",url:\"https://fonts.gstatic.com/s/sourceserif4/v8/vEF02_tTDB4M7-auWDN0ahZJW1ge6NmXpVAHV83Bfb_US2D2QYxoUKIkn98pdF9dDs4DrjXEXw.woff2\",weight:\"500\"}]}];export const css=['.framer-Ogwz9 .framer-styles-preset-6y5bq4:not(.rich-text-wrapper), .framer-Ogwz9 .framer-styles-preset-6y5bq4.rich-text-wrapper h4 { --framer-font-family: \"Source Serif 4\", \"Source Serif 4 Placeholder\", serif; --framer-font-family-bold: \"Source Serif 4\", \"Source Serif 4 Placeholder\", serif; --framer-font-family-bold-italic: \"Source Serif 4\", \"Source Serif 4 Placeholder\", serif; --framer-font-family-italic: \"Source Serif 4\", \"Source Serif 4 Placeholder\", serif; --framer-font-open-type-features: \\'blwf\\' on, \\'cv09\\' on, \\'cv03\\' on, \\'cv04\\' on, \\'cv11\\' on; --framer-font-size: 28px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 500; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 500; --framer-letter-spacing: 0em; --framer-line-height: 1.4em; --framer-paragraph-spacing: 40px; --framer-text-alignment: start; --framer-text-color: #000000; --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }','@media (max-width: 1899px) and (min-width: 1200px) { .framer-Ogwz9 .framer-styles-preset-6y5bq4:not(.rich-text-wrapper), .framer-Ogwz9 .framer-styles-preset-6y5bq4.rich-text-wrapper h4 { --framer-font-family: \"Source Serif 4\", \"Source Serif 4 Placeholder\", serif; --framer-font-family-bold: \"Source Serif 4\", \"Source Serif 4 Placeholder\", serif; --framer-font-family-bold-italic: \"Source Serif 4\", \"Source Serif 4 Placeholder\", serif; --framer-font-family-italic: \"Source Serif 4\", \"Source Serif 4 Placeholder\", serif; --framer-font-open-type-features: \\'blwf\\' on, \\'cv09\\' on, \\'cv03\\' on, \\'cv04\\' on, \\'cv11\\' on; --framer-font-size: 22px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 500; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 500; --framer-letter-spacing: 0em; --framer-line-height: 1.4em; --framer-paragraph-spacing: 40px; --framer-text-alignment: start; --framer-text-color: #000000; --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }','@media (max-width: 1199px) and (min-width: 810px) { .framer-Ogwz9 .framer-styles-preset-6y5bq4:not(.rich-text-wrapper), .framer-Ogwz9 .framer-styles-preset-6y5bq4.rich-text-wrapper h4 { --framer-font-family: \"Source Serif 4\", \"Source Serif 4 Placeholder\", serif; --framer-font-family-bold: \"Source Serif 4\", \"Source Serif 4 Placeholder\", serif; --framer-font-family-bold-italic: \"Source Serif 4\", \"Source Serif 4 Placeholder\", serif; --framer-font-family-italic: \"Source Serif 4\", \"Source Serif 4 Placeholder\", serif; --framer-font-open-type-features: \\'blwf\\' on, \\'cv09\\' on, \\'cv03\\' on, \\'cv04\\' on, \\'cv11\\' on; --framer-font-size: 18px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 500; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 500; --framer-letter-spacing: 0em; --framer-line-height: 1.4em; --framer-paragraph-spacing: 40px; --framer-text-alignment: start; --framer-text-color: #000000; --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }','@media (max-width: 809px) and (min-width: 0px) { .framer-Ogwz9 .framer-styles-preset-6y5bq4:not(.rich-text-wrapper), .framer-Ogwz9 .framer-styles-preset-6y5bq4.rich-text-wrapper h4 { --framer-font-family: \"Source Serif 4\", \"Source Serif 4 Placeholder\", serif; --framer-font-family-bold: \"Source Serif 4\", \"Source Serif 4 Placeholder\", serif; --framer-font-family-bold-italic: \"Source Serif 4\", \"Source Serif 4 Placeholder\", serif; --framer-font-family-italic: \"Source Serif 4\", \"Source Serif 4 Placeholder\", serif; --framer-font-open-type-features: \\'blwf\\' on, \\'cv09\\' on, \\'cv03\\' on, \\'cv04\\' on, \\'cv11\\' on; --framer-font-size: 14px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 500; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 500; --framer-letter-spacing: 0em; --framer-line-height: 1.4em; --framer-paragraph-spacing: 40px; --framer-text-alignment: start; --framer-text-color: #000000; --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }'];export const className=\"framer-Ogwz9\";\nexport const __FramerMetadata__ = {\"exports\":{\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (b6cf623)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"GF;Source Serif 4-600\",\"GF;Source Serif 4-900\",\"GF;Source Serif 4-900italic\",\"GF;Source Serif 4-600italic\"]);export const fonts=[{explicitInter:true,fonts:[{family:\"Source Serif 4\",openType:true,source:\"google\",style:\"normal\",url:\"https://fonts.gstatic.com/s/sourceserif4/v8/vEFy2_tTDB4M7-auWDN0ahZJW3IX2ih5nk3AucvUHf6OAVIJmeUDygwjisltrhlXD-wGvjU.woff2\",weight:\"600\"},{family:\"Source Serif 4\",openType:true,source:\"google\",style:\"normal\",url:\"https://fonts.gstatic.com/s/sourceserif4/v8/vEFy2_tTDB4M7-auWDN0ahZJW3IX2ih5nk3AucvUHf6OAVIJmeUDygwjir5trhlXD-wGvjU.woff2\",weight:\"900\"},{family:\"Source Serif 4\",openType:true,source:\"google\",style:\"italic\",url:\"https://fonts.gstatic.com/s/sourceserif4/v8/vEF02_tTDB4M7-auWDN0ahZJW1ge6NmXpVAHV83Bfb_US2D2QYxoUKIkn98p71hdDs4DrjXEXw.woff2\",weight:\"900\"},{family:\"Source Serif 4\",openType:true,source:\"google\",style:\"italic\",url:\"https://fonts.gstatic.com/s/sourceserif4/v8/vEF02_tTDB4M7-auWDN0ahZJW1ge6NmXpVAHV83Bfb_US2D2QYxoUKIkn98pmFhdDs4DrjXEXw.woff2\",weight:\"600\"}]}];export const css=['.framer-VRkXA .framer-styles-preset-105jbc6:not(.rich-text-wrapper), .framer-VRkXA .framer-styles-preset-105jbc6.rich-text-wrapper h1 { --framer-font-family: \"Source Serif 4\", \"Source Serif 4 Placeholder\", serif; --framer-font-family-bold: \"Source Serif 4\", serif; --framer-font-family-bold-italic: \"Source Serif 4\", serif; --framer-font-family-italic: \"Source Serif 4\", \"Source Serif 4 Placeholder\", serif; --framer-font-open-type-features: \\'blwf\\' on, \\'cv09\\' on, \\'cv03\\' on, \\'cv04\\' on, \\'cv11\\' on; --framer-font-size: 62px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 600; --framer-font-weight-bold: 900; --framer-font-weight-bold-italic: 900; --framer-font-weight-italic: 600; --framer-letter-spacing: 0em; --framer-line-height: 1.2em; --framer-paragraph-spacing: 0px; --framer-text-alignment: start; --framer-text-color: #000000; --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }','@media (max-width: 1899px) and (min-width: 1200px) { .framer-VRkXA .framer-styles-preset-105jbc6:not(.rich-text-wrapper), .framer-VRkXA .framer-styles-preset-105jbc6.rich-text-wrapper h1 { --framer-font-family: \"Source Serif 4\", \"Source Serif 4 Placeholder\", serif; --framer-font-family-bold: \"Source Serif 4\", serif; --framer-font-family-bold-italic: \"Source Serif 4\", serif; --framer-font-family-italic: \"Source Serif 4\", \"Source Serif 4 Placeholder\", serif; --framer-font-open-type-features: \\'blwf\\' on, \\'cv09\\' on, \\'cv03\\' on, \\'cv04\\' on, \\'cv11\\' on; --framer-font-size: 50px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 600; --framer-font-weight-bold: 900; --framer-font-weight-bold-italic: 900; --framer-font-weight-italic: 600; --framer-letter-spacing: 0em; --framer-line-height: 1.2em; --framer-paragraph-spacing: 0px; --framer-text-alignment: start; --framer-text-color: #000000; --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }','@media (max-width: 1199px) and (min-width: 810px) { .framer-VRkXA .framer-styles-preset-105jbc6:not(.rich-text-wrapper), .framer-VRkXA .framer-styles-preset-105jbc6.rich-text-wrapper h1 { --framer-font-family: \"Source Serif 4\", \"Source Serif 4 Placeholder\", serif; --framer-font-family-bold: \"Source Serif 4\", serif; --framer-font-family-bold-italic: \"Source Serif 4\", serif; --framer-font-family-italic: \"Source Serif 4\", \"Source Serif 4 Placeholder\", serif; --framer-font-open-type-features: \\'blwf\\' on, \\'cv09\\' on, \\'cv03\\' on, \\'cv04\\' on, \\'cv11\\' on; --framer-font-size: 40px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 600; --framer-font-weight-bold: 900; --framer-font-weight-bold-italic: 900; --framer-font-weight-italic: 600; --framer-letter-spacing: 0em; --framer-line-height: 1.2em; --framer-paragraph-spacing: 0px; --framer-text-alignment: start; --framer-text-color: #000000; --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }','@media (max-width: 809px) and (min-width: 0px) { .framer-VRkXA .framer-styles-preset-105jbc6:not(.rich-text-wrapper), .framer-VRkXA .framer-styles-preset-105jbc6.rich-text-wrapper h1 { --framer-font-family: \"Source Serif 4\", \"Source Serif 4 Placeholder\", serif; --framer-font-family-bold: \"Source Serif 4\", serif; --framer-font-family-bold-italic: \"Source Serif 4\", serif; --framer-font-family-italic: \"Source Serif 4\", \"Source Serif 4 Placeholder\", serif; --framer-font-open-type-features: \\'blwf\\' on, \\'cv09\\' on, \\'cv03\\' on, \\'cv04\\' on, \\'cv11\\' on; --framer-font-size: 32px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 600; --framer-font-weight-bold: 900; --framer-font-weight-bold-italic: 900; --framer-font-weight-italic: 600; --framer-letter-spacing: 0em; --framer-line-height: 1.2em; --framer-paragraph-spacing: 0px; --framer-text-alignment: start; --framer-text-color: #000000; --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }'];export const className=\"framer-VRkXA\";\nexport const __FramerMetadata__ = {\"exports\":{\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (4b118ea)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"GF;Source Serif 4-regular\",\"GF;Source Serif 4-700\",\"GF;Source Serif 4-700italic\",\"GF;Source Serif 4-italic\"]);export const fonts=[{explicitInter:true,fonts:[{family:\"Source Serif 4\",openType:true,source:\"google\",style:\"normal\",url:\"https://fonts.gstatic.com/s/sourceserif4/v8/vEFy2_tTDB4M7-auWDN0ahZJW3IX2ih5nk3AucvUHf6OAVIJmeUDygwjihdqrhlXD-wGvjU.woff2\",weight:\"400\"},{family:\"Source Serif 4\",openType:true,source:\"google\",style:\"normal\",url:\"https://fonts.gstatic.com/s/sourceserif4/v8/vEFy2_tTDB4M7-auWDN0ahZJW3IX2ih5nk3AucvUHf6OAVIJmeUDygwjivBtrhlXD-wGvjU.woff2\",weight:\"700\"},{family:\"Source Serif 4\",openType:true,source:\"google\",style:\"italic\",url:\"https://fonts.gstatic.com/s/sourceserif4/v8/vEF02_tTDB4M7-auWDN0ahZJW1ge6NmXpVAHV83Bfb_US2D2QYxoUKIkn98poVhdDs4DrjXEXw.woff2\",weight:\"700\"},{family:\"Source Serif 4\",openType:true,source:\"google\",style:\"italic\",url:\"https://fonts.gstatic.com/s/sourceserif4/v8/vEF02_tTDB4M7-auWDN0ahZJW1ge6NmXpVAHV83Bfb_US2D2QYxoUKIkn98pRl9dDs4DrjXEXw.woff2\",weight:\"400\"}]}];export const css=['.framer-SoqvR .framer-styles-preset-29245u:not(.rich-text-wrapper), .framer-SoqvR .framer-styles-preset-29245u.rich-text-wrapper h2 { --framer-font-family: \"Source Serif 4\", \"Source Serif 4 Placeholder\", serif; --framer-font-family-bold: \"Source Serif 4\", \"Source Serif 4 Placeholder\", serif; --framer-font-family-bold-italic: \"Source Serif 4\", \"Source Serif 4 Placeholder\", serif; --framer-font-family-italic: \"Source Serif 4\", \"Source Serif 4 Placeholder\", serif; --framer-font-open-type-features: \\'blwf\\' on, \\'cv09\\' on, \\'cv03\\' on, \\'cv04\\' on, \\'cv11\\' on; --framer-font-size: 52px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 400; --framer-letter-spacing: 0em; --framer-line-height: 1.4em; --framer-paragraph-spacing: 40px; --framer-text-alignment: start; --framer-text-color: #000000; --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }','@media (max-width: 1899px) and (min-width: 1200px) { .framer-SoqvR .framer-styles-preset-29245u:not(.rich-text-wrapper), .framer-SoqvR .framer-styles-preset-29245u.rich-text-wrapper h2 { --framer-font-family: \"Source Serif 4\", \"Source Serif 4 Placeholder\", serif; --framer-font-family-bold: \"Source Serif 4\", \"Source Serif 4 Placeholder\", serif; --framer-font-family-bold-italic: \"Source Serif 4\", \"Source Serif 4 Placeholder\", serif; --framer-font-family-italic: \"Source Serif 4\", \"Source Serif 4 Placeholder\", serif; --framer-font-open-type-features: \\'blwf\\' on, \\'cv09\\' on, \\'cv03\\' on, \\'cv04\\' on, \\'cv11\\' on; --framer-font-size: 42px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 400; --framer-letter-spacing: 0em; --framer-line-height: 1.4em; --framer-paragraph-spacing: 40px; --framer-text-alignment: start; --framer-text-color: #000000; --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }','@media (max-width: 1199px) and (min-width: 810px) { .framer-SoqvR .framer-styles-preset-29245u:not(.rich-text-wrapper), .framer-SoqvR .framer-styles-preset-29245u.rich-text-wrapper h2 { --framer-font-family: \"Source Serif 4\", \"Source Serif 4 Placeholder\", serif; --framer-font-family-bold: \"Source Serif 4\", \"Source Serif 4 Placeholder\", serif; --framer-font-family-bold-italic: \"Source Serif 4\", \"Source Serif 4 Placeholder\", serif; --framer-font-family-italic: \"Source Serif 4\", \"Source Serif 4 Placeholder\", serif; --framer-font-open-type-features: \\'blwf\\' on, \\'cv09\\' on, \\'cv03\\' on, \\'cv04\\' on, \\'cv11\\' on; --framer-font-size: 33px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 400; --framer-letter-spacing: 0em; --framer-line-height: 1.4em; --framer-paragraph-spacing: 40px; --framer-text-alignment: start; --framer-text-color: #000000; --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }','@media (max-width: 809px) and (min-width: 0px) { .framer-SoqvR .framer-styles-preset-29245u:not(.rich-text-wrapper), .framer-SoqvR .framer-styles-preset-29245u.rich-text-wrapper h2 { --framer-font-family: \"Source Serif 4\", \"Source Serif 4 Placeholder\", serif; --framer-font-family-bold: \"Source Serif 4\", \"Source Serif 4 Placeholder\", serif; --framer-font-family-bold-italic: \"Source Serif 4\", \"Source Serif 4 Placeholder\", serif; --framer-font-family-italic: \"Source Serif 4\", \"Source Serif 4 Placeholder\", serif; --framer-font-open-type-features: \\'blwf\\' on, \\'cv09\\' on, \\'cv03\\' on, \\'cv04\\' on, \\'cv11\\' on; --framer-font-size: 27px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 400; --framer-letter-spacing: 0em; --framer-line-height: 1.4em; --framer-paragraph-spacing: 40px; --framer-text-alignment: start; --framer-text-color: #000000; --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }'];export const className=\"framer-SoqvR\";\nexport const __FramerMetadata__ = {\"exports\":{\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (677c5d1)\nexport default function metadata(params,activeLocale){return{description:\"Our mission is to make you wealthier. Access compelling investments, professional service and sophisticated technology.\",favicon:\"https://framerusercontent.com/assets/R6pCezmCyUhTufbWOXU82aI6Lg.png\",robots:\"max-image-preview:large\",socialImage:\"https://framerusercontent.com/assets/U3h9dNX4vE8znaCZtMDGJZgQCQ4.png\",title:\"Constant - A Better Way to Invest\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"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"}