mpercivalxyz

this website!
Log | Files | Refs | README

three.min.js (630548B)


      1 // threejs.org/license
      2 (function(k,Ea){"object"===typeof exports&&"undefined"!==typeof module?Ea(exports):"function"===typeof define&&define.amd?define(["exports"],Ea):(k=k||self,Ea(k.THREE={}))})(this,function(k){function Ea(){}function u(a,b){void 0===a&&(a=0);void 0===b&&(b=0);this.x=a;this.y=b}function qa(){this.elements=[1,0,0,0,1,0,0,0,1];0<arguments.length&&console.error("THREE.Matrix3: the constructor no longer reads arguments. use .set() instead.")}function V(a,b,c,d,e,f,g,h,l,n){Object.defineProperty(this,"id",
      3 {value:ej++});this.uuid=P.generateUUID();this.name="";this.image=void 0!==a?a:V.DEFAULT_IMAGE;this.mipmaps=[];this.mapping=void 0!==b?b:V.DEFAULT_MAPPING;this.wrapS=void 0!==c?c:1001;this.wrapT=void 0!==d?d:1001;this.magFilter=void 0!==e?e:1006;this.minFilter=void 0!==f?f:1008;this.anisotropy=void 0!==l?l:1;this.format=void 0!==g?g:1023;this.internalFormat=null;this.type=void 0!==h?h:1009;this.offset=new u(0,0);this.repeat=new u(1,1);this.center=new u(0,0);this.rotation=0;this.matrixAutoUpdate=!0;
      4 this.matrix=new qa;this.generateMipmaps=!0;this.premultiplyAlpha=!1;this.flipY=!0;this.unpackAlignment=4;this.encoding=void 0!==n?n:3E3;this.version=0;this.onUpdate=null}function S(a,b,c,d){void 0===a&&(a=0);void 0===b&&(b=0);void 0===c&&(c=0);void 0===d&&(d=1);this.x=a;this.y=b;this.z=c;this.w=d}function Ga(a,b,c){this.width=a;this.height=b;this.scissor=new S(0,0,a,b);this.scissorTest=!1;this.viewport=new S(0,0,a,b);c=c||{};this.texture=new V(void 0,c.mapping,c.wrapS,c.wrapT,c.magFilter,c.minFilter,
      5 c.format,c.type,c.anisotropy,c.encoding);this.texture.image={};this.texture.image.width=a;this.texture.image.height=b;this.texture.generateMipmaps=void 0!==c.generateMipmaps?c.generateMipmaps:!1;this.texture.minFilter=void 0!==c.minFilter?c.minFilter:1006;this.depthBuffer=void 0!==c.depthBuffer?c.depthBuffer:!0;this.stencilBuffer=void 0!==c.stencilBuffer?c.stencilBuffer:!0;this.depthTexture=void 0!==c.depthTexture?c.depthTexture:null}function ag(a,b,c){Ga.call(this,a,b,c);this.samples=4}function Y(a,
      6 b,c,d){void 0===a&&(a=0);void 0===b&&(b=0);void 0===c&&(c=0);void 0===d&&(d=1);this._x=a;this._y=b;this._z=c;this._w=d}function m(a,b,c){void 0===a&&(a=0);void 0===b&&(b=0);void 0===c&&(c=0);this.x=a;this.y=b;this.z=c}function U(){this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];0<arguments.length&&console.error("THREE.Matrix4: the constructor no longer reads arguments. use .set() instead.")}function Vb(a,b,c,d){void 0===a&&(a=0);void 0===b&&(b=0);void 0===c&&(c=0);void 0===d&&(d=Vb.DefaultOrder);
      7 this._x=a;this._y=b;this._z=c;this._order=d}function He(){this.mask=1}function C(){Object.defineProperty(this,"id",{value:fj++});this.uuid=P.generateUUID();this.name="";this.type="Object3D";this.parent=null;this.children=[];this.up=C.DefaultUp.clone();var a=new m,b=new Vb,c=new Y,d=new m(1,1,1);b._onChange(function(){c.setFromEuler(b,!1)});c._onChange(function(){b.setFromQuaternion(c,void 0,!1)});Object.defineProperties(this,{position:{configurable:!0,enumerable:!0,value:a},rotation:{configurable:!0,
      8 enumerable:!0,value:b},quaternion:{configurable:!0,enumerable:!0,value:c},scale:{configurable:!0,enumerable:!0,value:d},modelViewMatrix:{value:new U},normalMatrix:{value:new qa}});this.matrix=new U;this.matrixWorld=new U;this.matrixAutoUpdate=C.DefaultMatrixAutoUpdate;this.matrixWorldNeedsUpdate=!1;this.layers=new He;this.visible=!0;this.receiveShadow=this.castShadow=!1;this.frustumCulled=!0;this.renderOrder=0;this.userData={}}function Ad(){C.call(this);this.type="Scene";this.overrideMaterial=this.fog=
      9 this.environment=this.background=null;this.autoUpdate=!0;"undefined"!==typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}function Sa(a,b){this.min=void 0!==a?a:new m(Infinity,Infinity,Infinity);this.max=void 0!==b?b:new m(-Infinity,-Infinity,-Infinity)}function bg(a,b,c,d,e){for(var f=0,g=a.length-3;f<=g;f+=3){Wb.fromArray(a,f);var h=e.x*Math.abs(Wb.x)+e.y*Math.abs(Wb.y)+e.z*Math.abs(Wb.z),l=b.dot(Wb),n=c.dot(Wb),q=d.dot(Wb);if(Math.max(-Math.max(l,
     10 n,q),Math.min(l,n,q))>h)return!1}return!0}function cb(a,b){this.center=void 0!==a?a:new m;this.radius=void 0!==b?b:-1}function Xb(a,b){this.origin=void 0!==a?a:new m;this.direction=void 0!==b?b:new m(0,0,-1)}function Ta(a,b){this.normal=void 0!==a?a:new m(1,0,0);this.constant=void 0!==b?b:0}function ba(a,b,c){this.a=void 0!==a?a:new m;this.b=void 0!==b?b:new m;this.c=void 0!==c?c:new m}function H(a,b,c){return void 0===b&&void 0===c?this.set(a):this.setRGB(a,b,c)}function cg(a,b,c){0>c&&(c+=1);1<
     11 c&&--c;return c<1/6?a+6*(b-a)*c:.5>c?b:c<2/3?a+6*(b-a)*(2/3-c):a}function dg(a){return.04045>a?.0773993808*a:Math.pow(.9478672986*a+.0521327014,2.4)}function eg(a){return.0031308>a?12.92*a:1.055*Math.pow(a,.41666)-.055}function Cc(a,b,c,d,e,f){this.a=a;this.b=b;this.c=c;this.normal=d&&d.isVector3?d:new m;this.vertexNormals=Array.isArray(d)?d:[];this.color=e&&e.isColor?e:new H;this.vertexColors=Array.isArray(e)?e:[];this.materialIndex=void 0!==f?f:0}function L(){Object.defineProperty(this,"id",{value:gj++});
     12 this.uuid=P.generateUUID();this.name="";this.type="Material";this.fog=!0;this.blending=1;this.side=0;this.vertexColors=this.flatShading=!1;this.opacity=1;this.transparent=!1;this.blendSrc=204;this.blendDst=205;this.blendEquation=100;this.blendEquationAlpha=this.blendDstAlpha=this.blendSrcAlpha=null;this.depthFunc=3;this.depthWrite=this.depthTest=!0;this.stencilWriteMask=255;this.stencilFunc=519;this.stencilRef=0;this.stencilFuncMask=255;this.stencilZPass=this.stencilZFail=this.stencilFail=7680;this.stencilWrite=
     13 !1;this.clippingPlanes=null;this.clipShadows=this.clipIntersection=!1;this.shadowSide=null;this.colorWrite=!0;this.precision=null;this.polygonOffset=!1;this.polygonOffsetUnits=this.polygonOffsetFactor=0;this.dithering=!1;this.alphaTest=0;this.premultipliedAlpha=!1;this.toneMapped=this.visible=!0;this.userData={};this.version=0}function Na(a){L.call(this);this.type="MeshBasicMaterial";this.color=new H(16777215);this.lightMap=this.map=null;this.lightMapIntensity=1;this.aoMap=null;this.aoMapIntensity=
     14 1;this.envMap=this.alphaMap=this.specularMap=null;this.combine=0;this.reflectivity=1;this.refractionRatio=.98;this.wireframe=!1;this.wireframeLinewidth=1;this.wireframeLinejoin=this.wireframeLinecap="round";this.morphTargets=this.skinning=!1;this.setValues(a)}function J(a,b,c){if(Array.isArray(a))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.name="";this.array=a;this.itemSize=b;this.count=void 0!==a?a.length/b:0;this.normalized=!0===c;this.usage=35044;this.updateRange=
     15 {offset:0,count:-1};this.version=0}function Bd(a,b,c){J.call(this,new Int8Array(a),b,c)}function Cd(a,b,c){J.call(this,new Uint8Array(a),b,c)}function Dd(a,b,c){J.call(this,new Uint8ClampedArray(a),b,c)}function Ed(a,b,c){J.call(this,new Int16Array(a),b,c)}function Yb(a,b,c){J.call(this,new Uint16Array(a),b,c)}function Fd(a,b,c){J.call(this,new Int32Array(a),b,c)}function Zb(a,b,c){J.call(this,new Uint32Array(a),b,c)}function A(a,b,c){J.call(this,new Float32Array(a),b,c)}function Gd(a,b,c){J.call(this,
     16 new Float64Array(a),b,c)}function th(){this.vertices=[];this.normals=[];this.colors=[];this.uvs=[];this.uvs2=[];this.groups=[];this.morphTargets={};this.skinWeights=[];this.skinIndices=[];this.boundingSphere=this.boundingBox=null;this.groupsNeedUpdate=this.uvsNeedUpdate=this.colorsNeedUpdate=this.normalsNeedUpdate=this.verticesNeedUpdate=!1}function uh(a){if(0===a.length)return-Infinity;for(var b=a[0],c=1,d=a.length;c<d;++c)a[c]>b&&(b=a[c]);return b}function E(){Object.defineProperty(this,"id",{value:hj+=
     17 2});this.uuid=P.generateUUID();this.name="";this.type="BufferGeometry";this.index=null;this.attributes={};this.morphAttributes={};this.morphTargetsRelative=!1;this.groups=[];this.boundingSphere=this.boundingBox=null;this.drawRange={start:0,count:Infinity};this.userData={}}function T(a,b){C.call(this);this.type="Mesh";this.geometry=void 0!==a?a:new E;this.material=void 0!==b?b:new Na;this.updateMorphTargets()}function vh(a,b,c,d,e,f,g,h){if(null===(1===b.side?d.intersectTriangle(g,f,e,!0,h):d.intersectTriangle(e,
     18 f,g,2!==b.side,h)))return null;Ie.copy(h);Ie.applyMatrix4(a.matrixWorld);b=c.ray.origin.distanceTo(Ie);return b<c.near||b>c.far?null:{distance:b,point:Ie.clone(),object:a}}function Je(a,b,c,d,e,f,g,h,l,n,q,p){yb.fromBufferAttribute(e,n);zb.fromBufferAttribute(e,q);Ab.fromBufferAttribute(e,p);e=a.morphTargetInfluences;if(b.morphTargets&&f&&e){Ke.set(0,0,0);Le.set(0,0,0);Me.set(0,0,0);for(var z=0,k=f.length;z<k;z++){var t=e[z],v=f[z];0!==t&&(fg.fromBufferAttribute(v,n),gg.fromBufferAttribute(v,q),hg.fromBufferAttribute(v,
     19 p),g?(Ke.addScaledVector(fg,t),Le.addScaledVector(gg,t),Me.addScaledVector(hg,t)):(Ke.addScaledVector(fg.sub(yb),t),Le.addScaledVector(gg.sub(zb),t),Me.addScaledVector(hg.sub(Ab),t)))}yb.add(Ke);zb.add(Le);Ab.add(Me)}a.isSkinnedMesh&&(a.boneTransform(n,yb),a.boneTransform(q,zb),a.boneTransform(p,Ab));if(a=vh(a,b,c,d,yb,zb,Ab,Hd))h&&(Dc.fromBufferAttribute(h,n),Ec.fromBufferAttribute(h,q),Fc.fromBufferAttribute(h,p),a.uv=ba.getUV(Hd,yb,zb,Ab,Dc,Ec,Fc,new u)),l&&(Dc.fromBufferAttribute(l,n),Ec.fromBufferAttribute(l,
     20 q),Fc.fromBufferAttribute(l,p),a.uv2=ba.getUV(Hd,yb,zb,Ab,Dc,Ec,Fc,new u)),h=new Cc(n,q,p),ba.getNormal(yb,zb,Ab,h.normal),a.face=h;return a}function F(){Object.defineProperty(this,"id",{value:ij+=2});this.uuid=P.generateUUID();this.name="";this.type="Geometry";this.vertices=[];this.colors=[];this.faces=[];this.faceVertexUvs=[[]];this.morphTargets=[];this.morphNormals=[];this.skinWeights=[];this.skinIndices=[];this.lineDistances=[];this.boundingSphere=this.boundingBox=null;this.groupsNeedUpdate=this.lineDistancesNeedUpdate=
     21 this.colorsNeedUpdate=this.normalsNeedUpdate=this.uvsNeedUpdate=this.verticesNeedUpdate=this.elementsNeedUpdate=!1}function Gc(a,b,c,d,e,f){F.call(this);this.type="BoxGeometry";this.parameters={width:a,height:b,depth:c,widthSegments:d,heightSegments:e,depthSegments:f};this.fromBufferGeometry(new Bb(a,b,c,d,e,f));this.mergeVertices()}function Bb(a,b,c,d,e,f){function g(a,b,c,d,e,f,g,r,y,I,jj){var t=f/y,v=g/I,x=f/2,w=g/2,Q=r/2;g=y+1;for(var B=I+1,N=f=0,ca=new m,u=0;u<B;u++)for(var C=u*v-w,A=0;A<g;A++)ca[a]=
     22 (A*t-x)*d,ca[b]=C*e,ca[c]=Q,n.push(ca.x,ca.y,ca.z),ca[a]=0,ca[b]=0,ca[c]=0<r?1:-1,q.push(ca.x,ca.y,ca.z),p.push(A/y),p.push(1-u/I),f+=1;for(a=0;a<I;a++)for(b=0;b<y;b++)c=z+b+g*(a+1),d=z+(b+1)+g*(a+1),e=z+(b+1)+g*a,l.push(z+b+g*a,c,e),l.push(c,d,e),N+=6;h.addGroup(k,N,jj);k+=N;z+=f}void 0===a&&(a=1);void 0===b&&(b=1);void 0===c&&(c=1);void 0===d&&(d=1);void 0===e&&(e=1);void 0===f&&(f=1);E.call(this);this.type="BoxBufferGeometry";this.parameters={width:a,height:b,depth:c,widthSegments:d,heightSegments:e,
     23 depthSegments:f};var h=this;d=Math.floor(d);e=Math.floor(e);f=Math.floor(f);var l=[],n=[],q=[],p=[],z=0,k=0;g("z","y","x",-1,-1,c,b,a,f,e,0);g("z","y","x",1,-1,c,b,-a,f,e,1);g("x","z","y",1,1,a,c,b,d,f,2);g("x","z","y",1,-1,a,c,-b,d,f,3);g("x","y","z",1,-1,a,b,c,d,e,4);g("x","y","z",-1,-1,a,b,-c,d,e,5);this.setIndex(l);this.setAttribute("position",new A(n,3));this.setAttribute("normal",new A(q,3));this.setAttribute("uv",new A(p,2))}function Hc(a){var b={},c;for(c in a){b[c]={};for(var d in a[c]){var e=
     24 a[c][d];e&&(e.isColor||e.isMatrix3||e.isMatrix4||e.isVector2||e.isVector3||e.isVector4||e.isTexture)?b[c][d]=e.clone():Array.isArray(e)?b[c][d]=e.slice():b[c][d]=e}}return b}function Aa(a){for(var b={},c=0;c<a.length;c++){var d=Hc(a[c]),e;for(e in d)b[e]=d[e]}return b}function ra(a){L.call(this);this.type="ShaderMaterial";this.defines={};this.uniforms={};this.vertexShader="void main() {ntgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );n}";this.fragmentShader="void main() {ntgl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );n}";
     25 this.linewidth=1;this.wireframe=!1;this.wireframeLinewidth=1;this.morphNormals=this.morphTargets=this.skinning=this.clipping=this.lights=this.fog=!1;this.extensions={derivatives:!1,fragDepth:!1,drawBuffers:!1,shaderTextureLOD:!1};this.defaultAttributeValues={color:[1,1,1],uv:[0,0],uv2:[0,0]};this.index0AttributeName=void 0;this.uniformsNeedUpdate=!1;void 0!==a&&(void 0!==a.attributes&&console.error("THREE.ShaderMaterial: attributes should now be defined in THREE.BufferGeometry instead."),this.setValues(a))}
     26 function db(){C.call(this);this.type="Camera";this.matrixWorldInverse=new U;this.projectionMatrix=new U;this.projectionMatrixInverse=new U}function W(a,b,c,d){db.call(this);this.type="PerspectiveCamera";this.fov=void 0!==a?a:50;this.zoom=1;this.near=void 0!==c?c:.1;this.far=void 0!==d?d:2E3;this.focus=10;this.aspect=void 0!==b?b:1;this.view=null;this.filmGauge=35;this.filmOffset=0;this.updateProjectionMatrix()}function Ic(a,b,c){C.call(this);this.type="CubeCamera";if(!0!==c.isWebGLCubeRenderTarget)console.error("THREE.CubeCamera: The constructor now expects an instance of WebGLCubeRenderTarget as third parameter.");
     27 else{this.renderTarget=c;var d=new W(90,1,a,b);d.layers=this.layers;d.up.set(0,-1,0);d.lookAt(new m(1,0,0));this.add(d);var e=new W(90,1,a,b);e.layers=this.layers;e.up.set(0,-1,0);e.lookAt(new m(-1,0,0));this.add(e);var f=new W(90,1,a,b);f.layers=this.layers;f.up.set(0,0,1);f.lookAt(new m(0,1,0));this.add(f);var g=new W(90,1,a,b);g.layers=this.layers;g.up.set(0,0,-1);g.lookAt(new m(0,-1,0));this.add(g);var h=new W(90,1,a,b);h.layers=this.layers;h.up.set(0,-1,0);h.lookAt(new m(0,0,1));this.add(h);
     28 var l=new W(90,1,a,b);l.layers=this.layers;l.up.set(0,-1,0);l.lookAt(new m(0,0,-1));this.add(l);this.update=function(a,b){null===this.parent&&this.updateMatrixWorld();var n=a.xr.enabled,q=a.getRenderTarget();a.xr.enabled=!1;var k=c.texture.generateMipmaps;c.texture.generateMipmaps=!1;a.setRenderTarget(c,0);a.render(b,d);a.setRenderTarget(c,1);a.render(b,e);a.setRenderTarget(c,2);a.render(b,f);a.setRenderTarget(c,3);a.render(b,g);a.setRenderTarget(c,4);a.render(b,h);c.texture.generateMipmaps=k;a.setRenderTarget(c,
     29 5);a.render(b,l);a.setRenderTarget(q);a.xr.enabled=n};this.clear=function(a,b,d,e){for(var f=a.getRenderTarget(),g=0;6>g;g++)a.setRenderTarget(c,g),a.clear(b,d,e);a.setRenderTarget(f)}}}function ac(a,b,c){Number.isInteger(b)&&(console.warn("THREE.WebGLCubeRenderTarget: constructor signature is now WebGLCubeRenderTarget( size, options )"),b=c);Ga.call(this,a,a,b)}function bc(a,b,c,d,e,f,g,h,l,n,q,p){V.call(this,null,f,g,h,l,n,d,e,q,p);this.image={data:a||null,width:b||1,height:c||1};this.magFilter=
     30 void 0!==l?l:1003;this.minFilter=void 0!==n?n:1003;this.flipY=this.generateMipmaps=!1;this.unpackAlignment=1;this.needsUpdate=!0}function Jc(a,b,c,d,e,f){this.planes=[void 0!==a?a:new Ta,void 0!==b?b:new Ta,void 0!==c?c:new Ta,void 0!==d?d:new Ta,void 0!==e?e:new Ta,void 0!==f?f:new Ta]}function wh(){function a(c,g){d(c,g);e=b.requestAnimationFrame(a)}var b=null,c=!1,d=null,e=null;return{start:function(){!0!==c&&null!==d&&(e=b.requestAnimationFrame(a),c=!0)},stop:function(){b.cancelAnimationFrame(e);
     31 c=!1},setAnimationLoop:function(a){d=a},setContext:function(a){b=a}}}function kj(a,b){function c(b,c){var d=b.array,e=b.usage,f=a.createBuffer();a.bindBuffer(c,f);a.bufferData(c,d,e);b.onUploadCallback();c=5126;d instanceof Float32Array?c=5126:d instanceof Float64Array?console.warn("THREE.WebGLAttributes: Unsupported data buffer format: Float64Array."):d instanceof Uint16Array?c=5123:d instanceof Int16Array?c=5122:d instanceof Uint32Array?c=5125:d instanceof Int32Array?c=5124:d instanceof Int8Array?
     32 c=5120:d instanceof Uint8Array&&(c=5121);return{buffer:f,type:c,bytesPerElement:d.BYTES_PER_ELEMENT,version:b.version}}var d=b.isWebGL2,e=new WeakMap;return{get:function(a){a.isInterleavedBufferAttribute&&(a=a.data);return e.get(a)},remove:function(b){b.isInterleavedBufferAttribute&&(b=b.data);var c=e.get(b);c&&(a.deleteBuffer(c.buffer),e.delete(b))},update:function(b,g){b.isInterleavedBufferAttribute&&(b=b.data);var f=e.get(b);if(void 0===f)e.set(b,c(b,g));else if(f.version<b.version){var l=b.array,
     33 n=b.updateRange;a.bindBuffer(g,f.buffer);-1===n.count?a.bufferSubData(g,0,l):(d?a.bufferSubData(g,n.offset*l.BYTES_PER_ELEMENT,l,n.offset,n.count):a.bufferSubData(g,n.offset*l.BYTES_PER_ELEMENT,l.subarray(n.offset,n.offset+n.count)),n.count=-1);f.version=b.version}}}}function Id(a,b,c,d){F.call(this);this.type="PlaneGeometry";this.parameters={width:a,height:b,widthSegments:c,heightSegments:d};this.fromBufferGeometry(new cc(a,b,c,d));this.mergeVertices()}function cc(a,b,c,d){E.call(this);this.type=
     34 "PlaneBufferGeometry";this.parameters={width:a,height:b,widthSegments:c,heightSegments:d};a=a||1;b=b||1;var e=a/2,f=b/2;c=Math.floor(c)||1;d=Math.floor(d)||1;var g=c+1,h=d+1,l=a/c,n=b/d;b=[];a=[];for(var q=[],p=[],z=0;z<h;z++)for(var k=z*n-f,t=0;t<g;t++)a.push(t*l-e,-k,0),q.push(0,0,1),p.push(t/c),p.push(1-z/d);for(e=0;e<d;e++)for(f=0;f<c;f++)h=f+g*(e+1),l=f+1+g*(e+1),n=f+1+g*e,b.push(f+g*e,h,n),b.push(h,l,n);this.setIndex(b);this.setAttribute("position",new A(a,3));this.setAttribute("normal",new A(q,
     35 3));this.setAttribute("uv",new A(p,2))}function lj(a,b,c,d){function e(a,c){b.buffers.color.setClear(a.r,a.g,a.b,c,d)}var f=new H(0),g=0,h,l,n=null,q=0,p=null;return{getClearColor:function(){return f},setClearColor:function(a,b){f.set(a);g=void 0!==b?b:1;e(f,g)},getClearAlpha:function(){return g},setClearAlpha:function(a){g=a;e(f,g)},render:function(b,d,t,k){d=!0===d.isScene?d.background:null;t=a.xr;(t=t.getSession&&t.getSession())&&"additive"===t.environmentBlendMode&&(d=null);null===d?e(f,g):d&&
     36 d.isColor&&(e(d,1),k=!0);(a.autoClear||k)&&a.clear(a.autoClearColor,a.autoClearDepth,a.autoClearStencil);if(d&&(d.isCubeTexture||d.isWebGLCubeRenderTarget||306===d.mapping)){void 0===l&&(l=new T(new Bb(1,1,1),new ra({name:"BackgroundCubeMaterial",uniforms:Hc(Ua.cube.uniforms),vertexShader:Ua.cube.vertexShader,fragmentShader:Ua.cube.fragmentShader,side:1,depthTest:!1,depthWrite:!1,fog:!1})),l.geometry.deleteAttribute("normal"),l.geometry.deleteAttribute("uv"),l.onBeforeRender=function(a,b,c){this.matrixWorld.copyPosition(c.matrixWorld)},
     37 Object.defineProperty(l.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),c.update(l));k=d.isWebGLCubeRenderTarget?d.texture:d;l.material.uniforms.envMap.value=k;l.material.uniforms.flipEnvMap.value=k.isCubeTexture?-1:1;if(n!==d||q!==k.version||p!==a.toneMapping)l.material.needsUpdate=!0,n=d,q=k.version,p=a.toneMapping;b.unshift(l,l.geometry,l.material,0,0,null)}else if(d&&d.isTexture){void 0===h&&(h=new T(new cc(2,2),new ra({name:"BackgroundMaterial",uniforms:Hc(Ua.background.uniforms),
     38 vertexShader:Ua.background.vertexShader,fragmentShader:Ua.background.fragmentShader,side:0,depthTest:!1,depthWrite:!1,fog:!1})),h.geometry.deleteAttribute("normal"),Object.defineProperty(h.material,"map",{get:function(){return this.uniforms.t2D.value}}),c.update(h));h.material.uniforms.t2D.value=d;!0===d.matrixAutoUpdate&&d.updateMatrix();h.material.uniforms.uvTransform.value.copy(d.matrix);if(n!==d||q!==d.version||p!==a.toneMapping)h.material.needsUpdate=!0,n=d,q=d.version,p=a.toneMapping;b.unshift(h,
     39 h.geometry,h.material,0,0,null)}}}}function mj(a,b,c,d){function e(b){return d.isWebGL2?a.bindVertexArray(b):t.bindVertexArrayOES(b)}function f(b){return d.isWebGL2?a.deleteVertexArray(b):t.deleteVertexArrayOES(b)}function g(a){for(var b=[],c=[],d=[],e=0;e<r;e++)b[e]=0,c[e]=0,d[e]=0;return{geometry:null,program:null,wireframe:!1,newAttributes:b,enabledAttributes:c,attributeDivisors:d,object:a,attributes:{}}}function h(){for(var a=w.newAttributes,b=0,c=a.length;b<c;b++)a[b]=0}function l(a){n(a,0)}
     40 function n(c,e){var f=w.enabledAttributes,g=w.attributeDivisors;w.newAttributes[c]=1;0===f[c]&&(a.enableVertexAttribArray(c),f[c]=1);g[c]!==e&&((d.isWebGL2?a:b.get("ANGLE_instanced_arrays"))[d.isWebGL2?"vertexAttribDivisor":"vertexAttribDivisorANGLE"](c,e),g[c]=e)}function q(){for(var b=w.newAttributes,c=w.enabledAttributes,d=0,e=c.length;d<e;d++)c[d]!==b[d]&&(a.disableVertexAttribArray(d),c[d]=0)}function p(){k();w!==B&&(w=B,e(w.object))}function k(){B.geometry=null;B.program=null;B.wireframe=!1}
     41 var r=a.getParameter(34921),t=d.isWebGL2?null:b.get("OES_vertex_array_object"),v=d.isWebGL2||null!==t,m={},B=g(null),w=B;return{setup:function(f,p,k,z,r){var x=!1;if(v){x=!0===p.wireframe;var D=m[z.id];void 0===D&&(D={},m[z.id]=D);var y=D[k.id];void 0===y&&(y={},D[k.id]=y);D=y[x];void 0===D&&(D=g(d.isWebGL2?a.createVertexArray():t.createVertexArrayOES()),y[x]=D);x=D;w!==x&&(w=x,e(w.object));a:if(x=w.attributes,y=z.attributes,Object.keys(x).length!==Object.keys(y).length)x=!0;else{for(var B in y){D=
     42 x[B];var Q=y[B];if(D.attribute!==Q||D.data!==Q.data){x=!0;break a}}x=!1}if(x){B={};y=z.attributes;for(var ca in y)D=y[ca],Q={},Q.attribute=D,D.data&&(Q.data=D.data),B[ca]=Q;w.attributes=B}}else if(ca=!0===p.wireframe,w.geometry!==z.id||w.program!==k.id||w.wireframe!==ca)w.geometry=z.id,w.program=k.id,w.wireframe=ca,x=!0;!0===f.isInstancedMesh&&(x=!0);null!==r&&c.update(r,34963);if(x){if(!1!==d.isWebGL2||!f.isInstancedMesh&&!z.isInstancedBufferGeometry||null!==b.get("ANGLE_instanced_arrays")){h();
     43 ca=z.attributes;k=k.getAttributes();p=p.defaultAttributeValues;for(var N in k)if(x=k[N],0<=x){var I=ca[N];if(void 0!==I){if(B=I.normalized,Q=I.itemSize,D=c.get(I),void 0!==D){var u=D.buffer;y=D.type;D=D.bytesPerElement;if(I.isInterleavedBufferAttribute){var A=I.data,C=A.stride;I=I.offset;A&&A.isInstancedInterleavedBuffer?(n(x,A.meshPerAttribute),void 0===z._maxInstanceCount&&(z._maxInstanceCount=A.meshPerAttribute*A.count)):l(x);a.bindBuffer(34962,u);C*=D;D*=I;!0!==d.isWebGL2||5124!==y&&5125!==y?
     44 a.vertexAttribPointer(x,Q,y,B,C,D):a.vertexAttribIPointer(x,Q,y,C,D)}else I.isInstancedBufferAttribute?(n(x,I.meshPerAttribute),void 0===z._maxInstanceCount&&(z._maxInstanceCount=I.meshPerAttribute*I.count)):l(x),a.bindBuffer(34962,u),D=Q,!0!==d.isWebGL2||5124!==y&&5125!==y?a.vertexAttribPointer(x,D,y,B,0,0):a.vertexAttribIPointer(x,D,y,0,0)}}else if("instanceMatrix"===N)y=c.get(f.instanceMatrix),void 0!==y&&(B=y.buffer,y=y.type,n(x+0,1),n(x+1,1),n(x+2,1),n(x+3,1),a.bindBuffer(34962,B),a.vertexAttribPointer(x+
     45 0,4,y,!1,64,0),a.vertexAttribPointer(x+1,4,y,!1,64,16),a.vertexAttribPointer(x+2,4,y,!1,64,32),a.vertexAttribPointer(x+3,4,y,!1,64,48));else if(void 0!==p&&(B=p[N],void 0!==B))switch(B.length){case 2:a.vertexAttrib2fv(x,B);break;case 3:a.vertexAttrib3fv(x,B);break;case 4:a.vertexAttrib4fv(x,B);break;default:a.vertexAttrib1fv(x,B)}}q()}null!==r&&a.bindBuffer(34963,c.get(r).buffer)}},reset:p,resetDefaultState:k,dispose:function(){p();for(var a in m){var b=m[a],c;for(c in b){var d=b[c],e;for(e in d)f(d[e].object),
     46 delete d[e];delete b[c]}delete m[a]}},releaseStatesOfGeometry:function(a){if(void 0!==m[a.id]){var b=m[a.id],c;for(c in b){var d=b[c],e;for(e in d)f(d[e].object),delete d[e];delete b[c]}delete m[a.id]}},releaseStatesOfProgram:function(a){for(var b in m){var c=m[b];if(void 0!==c[a.id]){var d=c[a.id],e;for(e in d)f(d[e].object),delete d[e];delete c[a.id]}}},initAttributes:h,enableAttribute:l,disableUnusedAttributes:q}}function nj(a,b,c,d){var e=d.isWebGL2,f;this.setMode=function(a){f=a};this.render=
     47 function(b,d){a.drawArrays(f,b,d);c.update(d,f,1)};this.renderInstances=function(d,h,l){if(0!==l){if(e){var g=a;var q="drawArraysInstanced"}else if(g=b.get("ANGLE_instanced_arrays"),q="drawArraysInstancedANGLE",null===g){console.error("THREE.WebGLBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.");return}g[q](f,d,h,l);c.update(h,f,l)}}}function oj(a,b,c){function d(b){if("highp"===b){if(0<a.getShaderPrecisionFormat(35633,36338).precision&&
     48 0<a.getShaderPrecisionFormat(35632,36338).precision)return"highp";b="mediump"}return"mediump"===b&&0<a.getShaderPrecisionFormat(35633,36337).precision&&0<a.getShaderPrecisionFormat(35632,36337).precision?"mediump":"lowp"}var e,f="undefined"!==typeof WebGL2RenderingContext&&a instanceof WebGL2RenderingContext||"undefined"!==typeof WebGL2ComputeRenderingContext&&a instanceof WebGL2ComputeRenderingContext,g=void 0!==c.precision?c.precision:"highp",h=d(g);h!==g&&(console.warn("THREE.WebGLRenderer:",g,
     49 "not supported, using",h,"instead."),g=h);c=!0===c.logarithmicDepthBuffer;h=a.getParameter(34930);var l=a.getParameter(35660),n=a.getParameter(3379),q=a.getParameter(34076),p=a.getParameter(34921),k=a.getParameter(36347),r=a.getParameter(36348),t=a.getParameter(36349),v=0<l,m=f||!!b.get("OES_texture_float"),B=v&&m,w=f?a.getParameter(36183):0;return{isWebGL2:f,getMaxAnisotropy:function(){if(void 0!==e)return e;var c=b.get("EXT_texture_filter_anisotropic");return e=null!==c?a.getParameter(c.MAX_TEXTURE_MAX_ANISOTROPY_EXT):
     50 0},getMaxPrecision:d,precision:g,logarithmicDepthBuffer:c,maxTextures:h,maxVertexTextures:l,maxTextureSize:n,maxCubemapSize:q,maxAttributes:p,maxVertexUniforms:k,maxVaryings:r,maxFragmentUniforms:t,vertexTextures:v,floatFragmentTextures:m,floatVertexTextures:B,maxSamples:w}}function pj(){function a(){n.value!==d&&(n.value=d,n.needsUpdate=0<e);c.numPlanes=e;c.numIntersection=0}function b(a,b,d,e){var f=null!==a?a.length:0,g=null;if(0!==f){g=n.value;if(!0!==e||null===g){e=d+4*f;b=b.matrixWorldInverse;
     51 l.getNormalMatrix(b);if(null===g||g.length<e)g=new Float32Array(e);for(e=0;e!==f;++e,d+=4)h.copy(a[e]).applyMatrix4(b,l),h.normal.toArray(g,d),g[d+3]=h.constant}n.value=g;n.needsUpdate=!0}c.numPlanes=f;c.numIntersection=0;return g}var c=this,d=null,e=0,f=!1,g=!1,h=new Ta,l=new qa,n={value:null,needsUpdate:!1};this.uniform=n;this.numIntersection=this.numPlanes=0;this.init=function(a,c,g){var h=0!==a.length||c||0!==e||f;f=c;d=b(a,g,0);e=a.length;return h};this.beginShadows=function(){g=!0;b(null)};
     52 this.endShadows=function(){g=!1;a()};this.setState=function(c,h,l,k,t,v){if(!f||null===c||0===c.length||g&&!l)g?b(null):a();else{l=g?0:e;var q=4*l,p=t.clippingState||null;n.value=p;p=b(c,k,q,v);for(c=0;c!==q;++c)p[c]=d[c];t.clippingState=p;this.numIntersection=h?this.numPlanes:0;this.numPlanes+=l}}}function qj(a){var b={};return{has:function(c){if(void 0!==b[c])return b[c];switch(c){case "WEBGL_depth_texture":var d=a.getExtension("WEBGL_depth_texture")||a.getExtension("MOZ_WEBGL_depth_texture")||
     53 a.getExtension("WEBKIT_WEBGL_depth_texture");break;case "EXT_texture_filter_anisotropic":d=a.getExtension("EXT_texture_filter_anisotropic")||a.getExtension("MOZ_EXT_texture_filter_anisotropic")||a.getExtension("WEBKIT_EXT_texture_filter_anisotropic");break;case "WEBGL_compressed_texture_s3tc":d=a.getExtension("WEBGL_compressed_texture_s3tc")||a.getExtension("MOZ_WEBGL_compressed_texture_s3tc")||a.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc");break;case "WEBGL_compressed_texture_pvrtc":d=a.getExtension("WEBGL_compressed_texture_pvrtc")||
     54 a.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc");break;default:d=a.getExtension(c)}b[c]=d;return!!d},get:function(a){this.has(a)||console.warn("THREE.WebGLRenderer: "+a+" extension not supported.");return b[a]}}}function rj(a,b,c,d){function e(a){a=a.target;var f=g.get(a);null!==f.index&&b.remove(f.index);for(var l in f.attributes)b.remove(f.attributes[l]);a.removeEventListener("dispose",e);g.delete(a);if(l=h.get(f))b.remove(l),h.delete(f);d.releaseStatesOfGeometry(a);!0===a.isInstancedBufferGeometry&&
     55 delete a._maxInstanceCount;c.memory.geometries--}function f(a){var c=[],d=a.index,e=a.attributes.position;if(null!==d){e=d.array;d=d.version;for(var f=0,g=e.length;f<g;f+=3){var l=e[f+0],k=e[f+1],m=e[f+2];c.push(l,k,k,m,m,l)}}else for(f=e.array,d=e.version,e=0,f=f.length/3-1;e<f;e+=3)g=e+0,l=e+1,k=e+2,c.push(g,l,l,k,k,g);c=new (65535<uh(c)?Zb:Yb)(c,1);c.version=d;(d=h.get(a))&&b.remove(d);h.set(a,c)}var g=new WeakMap,h=new WeakMap;return{get:function(a,b){var d=g.get(b);if(d)return d;b.addEventListener("dispose",
     56 e);b.isBufferGeometry?d=b:b.isGeometry&&(void 0===b._bufferGeometry&&(b._bufferGeometry=(new E).setFromObject(a)),d=b._bufferGeometry);g.set(b,d);c.memory.geometries++;return d},update:function(a){var c=a.attributes;for(e in c)b.update(c[e],34962);a=a.morphAttributes;for(var d in a){c=a[d];var e=0;for(var f=c.length;e<f;e++)b.update(c[e],34962)}},getWireframeAttribute:function(a){var b=h.get(a);if(b){var c=a.index;null!==c&&b.version<c.version&&f(a)}else f(a);return h.get(a)}}}function sj(a,b,c,d){var e=
     57 d.isWebGL2,f,g,h;this.setMode=function(a){f=a};this.setIndex=function(a){g=a.type;h=a.bytesPerElement};this.render=function(b,d){a.drawElements(f,d,g,b*h);c.update(d,f,1)};this.renderInstances=function(d,n,q){if(0!==q){if(e){var l=a;var k="drawElementsInstanced"}else if(l=b.get("ANGLE_instanced_arrays"),k="drawElementsInstancedANGLE",null===l){console.error("THREE.WebGLIndexedBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.");return}l[k](f,
     58 n,g,d*h,q);c.update(n,f,q)}}}function tj(a){var b={frame:0,calls:0,triangles:0,points:0,lines:0};return{memory:{geometries:0,textures:0},render:b,programs:null,autoReset:!0,reset:function(){b.frame++;b.calls=0;b.triangles=0;b.points=0;b.lines=0},update:function(a,d,e){b.calls++;switch(d){case 4:b.triangles+=a/3*e;break;case 1:b.lines+=a/2*e;break;case 3:b.lines+=e*(a-1);break;case 2:b.lines+=e*a;break;case 0:b.points+=e*a;break;default:console.error("THREE.WebGLInfo: Unknown draw mode:",d)}}}}function uj(a,
     59 b){return a[0]-b[0]}function vj(a,b){return Math.abs(b[1])-Math.abs(a[1])}function wj(a){for(var b={},c=new Float32Array(8),d=[],e=0;8>e;e++)d[e]=[e,0];return{update:function(e,g,h,l){var f=e.morphTargetInfluences;e=void 0===f?0:f.length;var q=b[g.id];if(void 0===q){q=[];for(var p=0;p<e;p++)q[p]=[p,0];b[g.id]=q}for(p=0;p<e;p++){var k=q[p];k[0]=p;k[1]=f[p]}q.sort(vj);for(f=0;8>f;f++)f<e&&q[f][1]?(d[f][0]=q[f][0],d[f][1]=q[f][1]):(d[f][0]=Number.MAX_SAFE_INTEGER,d[f][1]=0);d.sort(uj);e=h.morphTargets&&
     60 g.morphAttributes.position;h=h.morphNormals&&g.morphAttributes.normal;for(f=q=0;8>f;f++)k=d[f],p=k[0],k=k[1],p!==Number.MAX_SAFE_INTEGER&&k?(e&&g.getAttribute("morphTarget"+f)!==e[p]&&g.setAttribute("morphTarget"+f,e[p]),h&&g.getAttribute("morphNormal"+f)!==h[p]&&g.setAttribute("morphNormal"+f,h[p]),c[f]=k,q+=k):(e&&void 0!==g.getAttribute("morphTarget"+f)&&g.deleteAttribute("morphTarget"+f),h&&void 0!==g.getAttribute("morphNormal"+f)&&g.deleteAttribute("morphNormal"+f),c[f]=0);g=g.morphTargetsRelative?
     61 1:1-q;l.getUniforms().setValue(a,"morphTargetBaseInfluence",g);l.getUniforms().setValue(a,"morphTargetInfluences",c)}}}function xj(a,b,c,d){var e=new WeakMap;return{update:function(a){var f=d.render.frame,h=a.geometry,l=b.get(a,h);e.get(l)!==f&&(h.isGeometry&&l.updateFromObject(a),b.update(l),e.set(l,f));a.isInstancedMesh&&c.update(a.instanceMatrix,34962);return l},dispose:function(){e=new WeakMap}}}function ob(a,b,c,d,e,f,g,h,l,n){a=void 0!==a?a:[];V.call(this,a,void 0!==b?b:301,c,d,e,f,void 0!==
     62 g?g:1022,h,l,n);this.flipY=!1}function Kc(a,b,c,d){V.call(this,null);this.image={data:a||null,width:b||1,height:c||1,depth:d||1};this.minFilter=this.magFilter=1003;this.wrapR=1001;this.flipY=this.generateMipmaps=!1;this.needsUpdate=!0}function Lc(a,b,c,d){V.call(this,null);this.image={data:a||null,width:b||1,height:c||1,depth:d||1};this.minFilter=this.magFilter=1003;this.wrapR=1001;this.flipY=this.generateMipmaps=!1;this.needsUpdate=!0}function Mc(a,b,c){var d=a[0];if(0>=d||0<d)return a;var e=b*c,
     63 f=xh[e];void 0===f&&(f=new Float32Array(e),xh[e]=f);if(0!==b)for(d.toArray(f,0),d=1,e=0;d!==b;++d)e+=c,a[d].toArray(f,e);return f}function Oa(a,b){if(a.length!==b.length)return!1;for(var c=0,d=a.length;c<d;c++)if(a[c]!==b[c])return!1;return!0}function Fa(a,b){for(var c=0,d=b.length;c<d;c++)a[c]=b[c]}function yh(a,b){var c=zh[b];void 0===c&&(c=new Int32Array(b),zh[b]=c);for(var d=0;d!==b;++d)c[d]=a.allocateTextureUnit();return c}function yj(a,b){var c=this.cache;c[0]!==b&&(a.uniform1f(this.addr,b),
     64 c[0]=b)}function zj(a,b){var c=this.cache;if(void 0!==b.x){if(c[0]!==b.x||c[1]!==b.y)a.uniform2f(this.addr,b.x,b.y),c[0]=b.x,c[1]=b.y}else Oa(c,b)||(a.uniform2fv(this.addr,b),Fa(c,b))}function Aj(a,b){var c=this.cache;if(void 0!==b.x){if(c[0]!==b.x||c[1]!==b.y||c[2]!==b.z)a.uniform3f(this.addr,b.x,b.y,b.z),c[0]=b.x,c[1]=b.y,c[2]=b.z}else if(void 0!==b.r){if(c[0]!==b.r||c[1]!==b.g||c[2]!==b.b)a.uniform3f(this.addr,b.r,b.g,b.b),c[0]=b.r,c[1]=b.g,c[2]=b.b}else Oa(c,b)||(a.uniform3fv(this.addr,b),Fa(c,
     65 b))}function Bj(a,b){var c=this.cache;if(void 0!==b.x){if(c[0]!==b.x||c[1]!==b.y||c[2]!==b.z||c[3]!==b.w)a.uniform4f(this.addr,b.x,b.y,b.z,b.w),c[0]=b.x,c[1]=b.y,c[2]=b.z,c[3]=b.w}else Oa(c,b)||(a.uniform4fv(this.addr,b),Fa(c,b))}function Cj(a,b){var c=this.cache,d=b.elements;void 0===d?Oa(c,b)||(a.uniformMatrix2fv(this.addr,!1,b),Fa(c,b)):Oa(c,d)||(Ah.set(d),a.uniformMatrix2fv(this.addr,!1,Ah),Fa(c,d))}function Dj(a,b){var c=this.cache,d=b.elements;void 0===d?Oa(c,b)||(a.uniformMatrix3fv(this.addr,
     66 !1,b),Fa(c,b)):Oa(c,d)||(Bh.set(d),a.uniformMatrix3fv(this.addr,!1,Bh),Fa(c,d))}function Ej(a,b){var c=this.cache,d=b.elements;void 0===d?Oa(c,b)||(a.uniformMatrix4fv(this.addr,!1,b),Fa(c,b)):Oa(c,d)||(Ch.set(d),a.uniformMatrix4fv(this.addr,!1,Ch),Fa(c,d))}function Fj(a,b,c){var d=this.cache,e=c.allocateTextureUnit();d[0]!==e&&(a.uniform1i(this.addr,e),d[0]=e);c.safeSetTexture2D(b||Dh,e)}function Gj(a,b,c){var d=this.cache,e=c.allocateTextureUnit();d[0]!==e&&(a.uniform1i(this.addr,e),d[0]=e);c.setTexture2DArray(b||
     67 Hj,e)}function Ij(a,b,c){var d=this.cache,e=c.allocateTextureUnit();d[0]!==e&&(a.uniform1i(this.addr,e),d[0]=e);c.setTexture3D(b||Jj,e)}function Kj(a,b,c){var d=this.cache,e=c.allocateTextureUnit();d[0]!==e&&(a.uniform1i(this.addr,e),d[0]=e);c.safeSetTextureCube(b||Eh,e)}function Lj(a,b){var c=this.cache;c[0]!==b&&(a.uniform1i(this.addr,b),c[0]=b)}function Mj(a,b){var c=this.cache;Oa(c,b)||(a.uniform2iv(this.addr,b),Fa(c,b))}function Nj(a,b){var c=this.cache;Oa(c,b)||(a.uniform3iv(this.addr,b),Fa(c,
     68 b))}function Oj(a,b){var c=this.cache;Oa(c,b)||(a.uniform4iv(this.addr,b),Fa(c,b))}function Pj(a,b){var c=this.cache;c[0]!==b&&(a.uniform1ui(this.addr,b),c[0]=b)}function Qj(a){switch(a){case 5126:return yj;case 35664:return zj;case 35665:return Aj;case 35666:return Bj;case 35674:return Cj;case 35675:return Dj;case 35676:return Ej;case 5124:case 35670:return Lj;case 35667:case 35671:return Mj;case 35668:case 35672:return Nj;case 35669:case 35673:return Oj;case 5125:return Pj;case 35678:case 36198:case 36298:case 36306:case 35682:return Fj;
     69 case 35679:case 36299:case 36307:return Ij;case 35680:case 36300:case 36308:case 36293:return Kj;case 36289:case 36303:case 36311:case 36292:return Gj}}function Rj(a,b){a.uniform1fv(this.addr,b)}function Sj(a,b){a.uniform1iv(this.addr,b)}function Tj(a,b){a.uniform2iv(this.addr,b)}function Uj(a,b){a.uniform3iv(this.addr,b)}function Vj(a,b){a.uniform4iv(this.addr,b)}function Wj(a,b){b=Mc(b,this.size,2);a.uniform2fv(this.addr,b)}function Xj(a,b){b=Mc(b,this.size,3);a.uniform3fv(this.addr,b)}function Yj(a,
     70 b){b=Mc(b,this.size,4);a.uniform4fv(this.addr,b)}function Zj(a,b){b=Mc(b,this.size,4);a.uniformMatrix2fv(this.addr,!1,b)}function ak(a,b){b=Mc(b,this.size,9);a.uniformMatrix3fv(this.addr,!1,b)}function bk(a,b){b=Mc(b,this.size,16);a.uniformMatrix4fv(this.addr,!1,b)}function ck(a,b,c){var d=b.length,e=yh(c,d);a.uniform1iv(this.addr,e);for(a=0;a!==d;++a)c.safeSetTexture2D(b[a]||Dh,e[a])}function dk(a,b,c){var d=b.length,e=yh(c,d);a.uniform1iv(this.addr,e);for(a=0;a!==d;++a)c.safeSetTextureCube(b[a]||
     71 Eh,e[a])}function ek(a){switch(a){case 5126:return Rj;case 35664:return Wj;case 35665:return Xj;case 35666:return Yj;case 35674:return Zj;case 35675:return ak;case 35676:return bk;case 5124:case 35670:return Sj;case 35667:case 35671:return Tj;case 35668:case 35672:return Uj;case 35669:case 35673:return Vj;case 35678:case 36198:case 36298:case 36306:case 35682:return ck;case 35680:case 36300:case 36308:case 36293:return dk}}function fk(a,b,c){this.id=a;this.addr=c;this.cache=[];this.setValue=Qj(b.type)}
     72 function Fh(a,b,c){this.id=a;this.addr=c;this.cache=[];this.size=b.size;this.setValue=ek(b.type)}function Gh(a){this.id=a;this.seq=[];this.map={}}function Cb(a,b){this.seq=[];this.map={};for(var c=a.getProgramParameter(b,35718),d=0;d<c;++d){var e=a.getActiveUniform(b,d),f=a.getUniformLocation(b,e.name),g=this,h=e.name,l=h.length;for(ig.lastIndex=0;;){var n=ig.exec(h),q=ig.lastIndex,p=n[1],k=n[3];"]"===n[2]&&(p|=0);if(void 0===k||"["===k&&q+2===l){h=g;e=void 0===k?new fk(p,e,f):new Fh(p,e,f);h.seq.push(e);
     73 h.map[e.id]=e;break}else k=g.map[p],void 0===k&&(k=new Gh(p),p=g,g=k,p.seq.push(g),p.map[g.id]=g),g=k}}}function Hh(a,b,c){b=a.createShader(b);a.shaderSource(b,c);a.compileShader(b);return b}function Ih(a){switch(a){case 3E3:return["Linear","( value )"];case 3001:return["sRGB","( value )"];case 3002:return["RGBE","( value )"];case 3004:return["RGBM","( value, 7.0 )"];case 3005:return["RGBM","( value, 16.0 )"];case 3006:return["RGBD","( value, 256.0 )"];case 3007:return["Gamma","( value, float( GAMMA_FACTOR ) )"];
     74 case 3003:return["LogLuv","( value )"];default:return console.warn("THREE.WebGLProgram: Unsupported encoding:",a),["Linear","( value )"]}}function Jh(a,b,c){var d=a.getShaderParameter(b,35713),e=a.getShaderInfoLog(b).trim();if(d&&""===e)return"";a=a.getShaderSource(b).split("n");for(b=0;b<a.length;b++)a[b]=b+1+": "+a[b];a=a.join("n");return"THREE.WebGLShader: gl.getShaderInfoLog() "+c+"n"+e+a}function Jd(a,b){b=Ih(b);return"vec4 "+a+"( vec4 value ) { return "+b[0]+"ToLinear"+b[1]+"; }"}function gk(a,
     75 b){b=Ih(b);return"vec4 "+a+"( vec4 value ) { return LinearTo"+b[0]+b[1]+"; }"}function hk(a,b){switch(b){case 1:b="Linear";break;case 2:b="Reinhard";break;case 3:b="OptimizedCineon";break;case 4:b="ACESFilmic";break;case 5:b="Custom";break;default:console.warn("THREE.WebGLProgram: Unsupported toneMapping:",b),b="Linear"}return"vec3 "+a+"( vec3 color ) { return "+b+"ToneMapping( color ); }"}function ik(a){var b=[],c;for(c in a){var d=a[c];!1!==d&&b.push("#define "+c+" "+d)}return b.join("n")}function Kd(a){return""!==
     76 a}function Kh(a,b){return a.replace(/NUM_DIR_LIGHTS/g,b.numDirLights).replace(/NUM_SPOT_LIGHTS/g,b.numSpotLights).replace(/NUM_RECT_AREA_LIGHTS/g,b.numRectAreaLights).replace(/NUM_POINT_LIGHTS/g,b.numPointLights).replace(/NUM_HEMI_LIGHTS/g,b.numHemiLights).replace(/NUM_DIR_LIGHT_SHADOWS/g,b.numDirLightShadows).replace(/NUM_SPOT_LIGHT_SHADOWS/g,b.numSpotLightShadows).replace(/NUM_POINT_LIGHT_SHADOWS/g,b.numPointLightShadows)}function Lh(a,b){return a.replace(/NUM_CLIPPING_PLANES/g,b.numClippingPlanes).replace(/UNION_CLIPPING_PLANES/g,
     77 b.numClippingPlanes-b.numClipIntersection)}function jg(a,b){a=O[b];if(void 0===a)throw Error("Can not resolve #include <"+b+">");return a.replace(kg,jg)}function Mh(a,b,c,d){console.warn("WebGLProgram: #pragma unroll_loop shader syntax is deprecated. Please use #pragma unroll_loop_start syntax instead.");return lg(a,b,c,d)}function lg(a,b,c,d){a="";for(b=parseInt(b);b<parseInt(c);b++)a+=d.replace(/[ i ]/g,"[ "+b+" ]").replace(/UNROLLED_LOOP_INDEX/g,b);return a}function Nh(a){var b="precision "+
     78 a.precision+" float;nprecision "+a.precision+" int;";"highp"===a.precision?b+="n#define HIGH_PRECISION":"mediump"===a.precision?b+="n#define MEDIUM_PRECISION":"lowp"===a.precision&&(b+="n#define LOW_PRECISION");return b}function jk(a){var b="SHADOWMAP_TYPE_BASIC";1===a.shadowMapType?b="SHADOWMAP_TYPE_PCF":2===a.shadowMapType?b="SHADOWMAP_TYPE_PCF_SOFT":3===a.shadowMapType&&(b="SHADOWMAP_TYPE_VSM");return b}function kk(a){var b="ENVMAP_TYPE_CUBE";if(a.envMap)switch(a.envMapMode){case 301:case 302:b=
     79 "ENVMAP_TYPE_CUBE";break;case 306:case 307:b="ENVMAP_TYPE_CUBE_UV";break;case 303:case 304:b="ENVMAP_TYPE_EQUIREC"}return b}function lk(a){var b="ENVMAP_MODE_REFLECTION";if(a.envMap)switch(a.envMapMode){case 302:case 304:case 307:b="ENVMAP_MODE_REFRACTION"}return b}function mk(a){var b="ENVMAP_BLENDING_NONE";if(a.envMap)switch(a.combine){case 0:b="ENVMAP_BLENDING_MULTIPLY";break;case 1:b="ENVMAP_BLENDING_MIX";break;case 2:b="ENVMAP_BLENDING_ADD"}return b}function nk(a,b,c,d){var e=a.getContext(),
     80 f=c.defines,g=c.vertexShader,h=c.fragmentShader,l=jk(c),n=kk(c),q=lk(c),p=mk(c),k=0<a.gammaFactor?a.gammaFactor:1,r=c.isWebGL2?"":[c.extensionDerivatives||c.envMapCubeUV||c.bumpMap||c.tangentSpaceNormalMap||c.clearcoatNormalMap||c.flatShading||"physical"===c.shaderID?"#extension GL_OES_standard_derivatives : enable":"",(c.extensionFragDepth||c.logarithmicDepthBuffer)&&c.rendererExtensionFragDepth?"#extension GL_EXT_frag_depth : enable":"",c.extensionDrawBuffers&&c.rendererExtensionDrawBuffers?"#extension GL_EXT_draw_buffers : require":
     81 "",(c.extensionShaderTextureLOD||c.envMap)&&c.rendererExtensionShaderTextureLod?"#extension GL_EXT_shader_texture_lod : enable":""].filter(Kd).join("n"),t=ik(f),v=e.createProgram();c.isRawShaderMaterial?(f=[t].filter(Kd).join("n"),0<f.length&&(f+="n"),l=[r,t].filter(Kd).join("n"),0<l.length&&(l+="n")):(f=[Nh(c),"#define SHADER_NAME "+c.shaderName,t,c.instancing?"#define USE_INSTANCING":"",c.supportsVertexTextures?"#define VERTEX_TEXTURES":"","#define GAMMA_FACTOR "+k,"#define MAX_BONES "+c.maxBones,
     82 c.useFog&&c.fog?"#define USE_FOG":"",c.useFog&&c.fogExp2?"#define FOG_EXP2":"",c.map?"#define USE_MAP":"",c.envMap?"#define USE_ENVMAP":"",c.envMap?"#define "+q:"",c.lightMap?"#define USE_LIGHTMAP":"",c.aoMap?"#define USE_AOMAP":"",c.emissiveMap?"#define USE_EMISSIVEMAP":"",c.bumpMap?"#define USE_BUMPMAP":"",c.normalMap?"#define USE_NORMALMAP":"",c.normalMap&&c.objectSpaceNormalMap?"#define OBJECTSPACE_NORMALMAP":"",c.normalMap&&c.tangentSpaceNormalMap?"#define TANGENTSPACE_NORMALMAP":"",c.clearcoatMap?
     83 "#define USE_CLEARCOATMAP":"",c.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",c.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",c.displacementMap&&c.supportsVertexTextures?"#define USE_DISPLACEMENTMAP":"",c.specularMap?"#define USE_SPECULARMAP":"",c.roughnessMap?"#define USE_ROUGHNESSMAP":"",c.metalnessMap?"#define USE_METALNESSMAP":"",c.alphaMap?"#define USE_ALPHAMAP":"",c.transmissionMap?"#define USE_TRANSMISSIONMAP":"",c.vertexTangents?"#define USE_TANGENT":"",c.vertexColors?
     84 "#define USE_COLOR":"",c.vertexUvs?"#define USE_UV":"",c.uvsVertexOnly?"#define UVS_VERTEX_ONLY":"",c.flatShading?"#define FLAT_SHADED":"",c.skinning?"#define USE_SKINNING":"",c.useVertexTexture?"#define BONE_TEXTURE":"",c.morphTargets?"#define USE_MORPHTARGETS":"",c.morphNormals&&!1===c.flatShading?"#define USE_MORPHNORMALS":"",c.doubleSided?"#define DOUBLE_SIDED":"",c.flipSided?"#define FLIP_SIDED":"",c.shadowMapEnabled?"#define USE_SHADOWMAP":"",c.shadowMapEnabled?"#define "+l:"",c.sizeAttenuation?
     85 "#define USE_SIZEATTENUATION":"",c.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",c.logarithmicDepthBuffer&&c.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"," attribute mat4 instanceMatrix;","#endif","attribute vec3 position;","attribute vec3 normal;",
     86 "attribute vec2 uv;","#ifdef USE_TANGENT","tattribute vec4 tangent;","#endif","#ifdef USE_COLOR","tattribute vec3 color;","#endif","#ifdef USE_MORPHTARGETS","tattribute vec3 morphTarget0;","tattribute vec3 morphTarget1;","tattribute vec3 morphTarget2;","tattribute vec3 morphTarget3;","t#ifdef USE_MORPHNORMALS","ttattribute vec3 morphNormal0;","ttattribute vec3 morphNormal1;","ttattribute vec3 morphNormal2;","ttattribute vec3 morphNormal3;","t#else","ttattribute vec3 morphTarget4;",
     87 "ttattribute vec3 morphTarget5;","ttattribute vec3 morphTarget6;","ttattribute vec3 morphTarget7;","t#endif","#endif","#ifdef USE_SKINNING","tattribute vec4 skinIndex;","tattribute vec4 skinWeight;","#endif","n"].filter(Kd).join("n"),l=[r,Nh(c),"#define SHADER_NAME "+c.shaderName,t,c.alphaTest?"#define ALPHATEST "+c.alphaTest+(c.alphaTest%1?"":".0"):"","#define GAMMA_FACTOR "+k,c.useFog&&c.fog?"#define USE_FOG":"",c.useFog&&c.fogExp2?"#define FOG_EXP2":"",c.map?"#define USE_MAP":"",c.matcap?
     88 "#define USE_MATCAP":"",c.envMap?"#define USE_ENVMAP":"",c.envMap?"#define "+n:"",c.envMap?"#define "+q:"",c.envMap?"#define "+p:"",c.lightMap?"#define USE_LIGHTMAP":"",c.aoMap?"#define USE_AOMAP":"",c.emissiveMap?"#define USE_EMISSIVEMAP":"",c.bumpMap?"#define USE_BUMPMAP":"",c.normalMap?"#define USE_NORMALMAP":"",c.normalMap&&c.objectSpaceNormalMap?"#define OBJECTSPACE_NORMALMAP":"",c.normalMap&&c.tangentSpaceNormalMap?"#define TANGENTSPACE_NORMALMAP":"",c.clearcoatMap?"#define USE_CLEARCOATMAP":
     89 "",c.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",c.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",c.specularMap?"#define USE_SPECULARMAP":"",c.roughnessMap?"#define USE_ROUGHNESSMAP":"",c.metalnessMap?"#define USE_METALNESSMAP":"",c.alphaMap?"#define USE_ALPHAMAP":"",c.sheen?"#define USE_SHEEN":"",c.transmissionMap?"#define USE_TRANSMISSIONMAP":"",c.vertexTangents?"#define USE_TANGENT":"",c.vertexColors?"#define USE_COLOR":"",c.vertexUvs?"#define USE_UV":"",c.uvsVertexOnly?
     90 "#define UVS_VERTEX_ONLY":"",c.gradientMap?"#define USE_GRADIENTMAP":"",c.flatShading?"#define FLAT_SHADED":"",c.doubleSided?"#define DOUBLE_SIDED":"",c.flipSided?"#define FLIP_SIDED":"",c.shadowMapEnabled?"#define USE_SHADOWMAP":"",c.shadowMapEnabled?"#define "+l:"",c.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",c.physicallyCorrectLights?"#define PHYSICALLY_CORRECT_LIGHTS":"",c.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",c.logarithmicDepthBuffer&&c.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":
     91 "",(c.extensionShaderTextureLOD||c.envMap)&&c.rendererExtensionShaderTextureLod?"#define TEXTURE_LOD_EXT":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",0!==c.toneMapping?"#define TONE_MAPPING":"",0!==c.toneMapping?O.tonemapping_pars_fragment:"",0!==c.toneMapping?hk("toneMapping",c.toneMapping):"",c.dithering?"#define DITHERING":"",O.encodings_pars_fragment,c.map?Jd("mapTexelToLinear",c.mapEncoding):"",c.matcap?Jd("matcapTexelToLinear",c.matcapEncoding):
     92 "",c.envMap?Jd("envMapTexelToLinear",c.envMapEncoding):"",c.emissiveMap?Jd("emissiveMapTexelToLinear",c.emissiveMapEncoding):"",c.lightMap?Jd("lightMapTexelToLinear",c.lightMapEncoding):"",gk("linearToOutputTexel",c.outputEncoding),c.depthPacking?"#define DEPTH_PACKING "+c.depthPacking:"","n"].filter(Kd).join("n"));g=g.replace(kg,jg);g=Kh(g,c);g=Lh(g,c);h=h.replace(kg,jg);h=Kh(h,c);h=Lh(h,c);g=g.replace(Oh,lg).replace(Ph,Mh);h=h.replace(Oh,lg).replace(Ph,Mh);c.isWebGL2&&!c.isRawShaderMaterial&&
     93 (f="#version 300 esnn#define attribute inn#define varying outn#define texture2D texturen"+f,l="#version 300 esnn#define varying innout highp vec4 pc_fragColor;n#define gl_FragColor pc_fragColorn#define gl_FragDepthEXT gl_FragDepthn#define texture2D texturen#define textureCube texturen#define texture2DProj textureProjn#define texture2DLodEXT textureLodn#define texture2DProjLodEXT textureProjLodn#define textureCubeLodEXT textureLodn#define texture2DGradEXT textureGradn#define texture2DProjGradEXT textureProjGradn#define textureCubeGradEXT textureGradn"+
     94 l);h=l+h;g=Hh(e,35633,f+g);h=Hh(e,35632,h);e.attachShader(v,g);e.attachShader(v,h);void 0!==c.index0AttributeName?e.bindAttribLocation(v,0,c.index0AttributeName):!0===c.morphTargets&&e.bindAttribLocation(v,0,"position");e.linkProgram(v);if(a.debug.checkShaderErrors){a=e.getProgramInfoLog(v).trim();n=e.getShaderInfoLog(g).trim();q=e.getShaderInfoLog(h).trim();k=p=!0;if(!1===e.getProgramParameter(v,35714))p=!1,r=Jh(e,g,"vertex"),t=Jh(e,h,"fragment"),console.error("THREE.WebGLProgram: shader error: ",
     95 e.getError(),"35715",e.getProgramParameter(v,35715),"gl.getProgramInfoLog",a,r,t);else if(""!==a)console.warn("THREE.WebGLProgram: gl.getProgramInfoLog()",a);else if(""===n||""===q)k=!1;k&&(this.diagnostics={runnable:p,programLog:a,vertexShader:{log:n,prefix:f},fragmentShader:{log:q,prefix:l}})}e.deleteShader(g);e.deleteShader(h);var m;this.getUniforms=function(){void 0===m&&(m=new Cb(e,v));return m};var B;this.getAttributes=function(){if(void 0===B){for(var a={},b=e.getProgramParameter(v,35721),
     96 c=0;c<b;c++){var d=e.getActiveAttrib(v,c).name;a[d]=e.getAttribLocation(v,d)}B=a}return B};this.destroy=function(){d.releaseStatesOfProgram(this);e.deleteProgram(v);this.program=void 0};this.name=c.shaderName;this.id=ok++;this.cacheKey=b;this.usedTimes=1;this.program=v;this.vertexShader=g;this.fragmentShader=h;return this}function pk(a,b,c,d){function e(a){if(a)a.isTexture?b=a.encoding:a.isWebGLRenderTarget&&(console.warn("THREE.WebGLPrograms.getTextureEncodingFromMap: don't use render targets as textures. Use their .texture property instead."),
     97 b=a.texture.encoding);else var b=3E3;return b}var f=[],g=c.isWebGL2,h=c.logarithmicDepthBuffer,l=c.floatVertexTextures,n=c.maxVertexUniforms,q=c.vertexTextures,p=c.precision,k={MeshDepthMaterial:"depth",MeshDistanceMaterial:"distanceRGBA",MeshNormalMaterial:"normal",MeshBasicMaterial:"basic",MeshLambertMaterial:"lambert",MeshPhongMaterial:"phong",MeshToonMaterial:"toon",MeshStandardMaterial:"physical",MeshPhysicalMaterial:"physical",MeshMatcapMaterial:"matcap",LineBasicMaterial:"basic",LineDashedMaterial:"dashed",
     98 PointsMaterial:"points",ShadowMaterial:"shadow",SpriteMaterial:"sprite"},r="precision isWebGL2 supportsVertexTextures outputEncoding instancing map mapEncoding matcap matcapEncoding envMap envMapMode envMapEncoding envMapCubeUV lightMap lightMapEncoding aoMap emissiveMap emissiveMapEncoding bumpMap normalMap objectSpaceNormalMap tangentSpaceNormalMap clearcoatMap clearcoatRoughnessMap clearcoatNormalMap displacementMap specularMap roughnessMap metalnessMap gradientMap alphaMap combine vertexColors vertexTangents vertexUvs uvsVertexOnly fog useFog fogExp2 flatShading sizeAttenuation logarithmicDepthBuffer skinning maxBones useVertexTexture morphTargets morphNormals maxMorphTargets maxMorphNormals premultipliedAlpha numDirLights numPointLights numSpotLights numHemiLights numRectAreaLights numDirLightShadows numPointLightShadows numSpotLightShadows shadowMapEnabled shadowMapType toneMapping physicallyCorrectLights alphaTest doubleSided flipSided numClippingPlanes numClipIntersection depthPacking dithering sheen transmissionMap".split(" ");
     99 return{getParameters:function(d,f,z,r,m,ca,Q){var t=r.fog;r=d.isMeshStandardMaterial?r.environment:null;r=d.envMap||r;var v=k[d.type];if(Q.isSkinnedMesh){var x=Q.skeleton.bones;if(l)x=1024;else{var w=Math.min(Math.floor((n-20)/4),x.length);w<x.length?(console.warn("THREE.WebGLRenderer: Skeleton has "+x.length+" bones. This GPU supports "+w+"."),x=0):x=w}}else x=0;null!==d.precision&&(p=c.getMaxPrecision(d.precision),p!==d.precision&&console.warn("THREE.WebGLProgram.getParameters:",d.precision,"not supported, using",
    100 p,"instead."));if(v){var D=Ua[v];w=D.vertexShader;D=D.fragmentShader}else w=d.vertexShader,D=d.fragmentShader;var B=a.getRenderTarget();return{isWebGL2:g,shaderID:v,shaderName:d.type,vertexShader:w,fragmentShader:D,defines:d.defines,isRawShaderMaterial:d.isRawShaderMaterial,isShaderMaterial:d.isShaderMaterial,precision:p,instancing:!0===Q.isInstancedMesh,supportsVertexTextures:q,outputEncoding:null!==B?e(B.texture):a.outputEncoding,map:!!d.map,mapEncoding:e(d.map),matcap:!!d.matcap,matcapEncoding:e(d.matcap),
    101 envMap:!!r,envMapMode:r&&r.mapping,envMapEncoding:e(r),envMapCubeUV:!!r&&(306===r.mapping||307===r.mapping),lightMap:!!d.lightMap,lightMapEncoding:e(d.lightMap),aoMap:!!d.aoMap,emissiveMap:!!d.emissiveMap,emissiveMapEncoding:e(d.emissiveMap),bumpMap:!!d.bumpMap,normalMap:!!d.normalMap,objectSpaceNormalMap:1===d.normalMapType,tangentSpaceNormalMap:0===d.normalMapType,clearcoatMap:!!d.clearcoatMap,clearcoatRoughnessMap:!!d.clearcoatRoughnessMap,clearcoatNormalMap:!!d.clearcoatNormalMap,displacementMap:!!d.displacementMap,
    102 roughnessMap:!!d.roughnessMap,metalnessMap:!!d.metalnessMap,specularMap:!!d.specularMap,alphaMap:!!d.alphaMap,gradientMap:!!d.gradientMap,sheen:!!d.sheen,transmissionMap:!!d.transmissionMap,combine:d.combine,vertexTangents:d.normalMap&&d.vertexTangents,vertexColors:d.vertexColors,vertexUvs:!!d.map||!!d.bumpMap||!!d.normalMap||!!d.specularMap||!!d.alphaMap||!!d.emissiveMap||!!d.roughnessMap||!!d.metalnessMap||!!d.clearcoatMap||!!d.clearcoatRoughnessMap||!!d.clearcoatNormalMap||!!d.displacementMap||
    103 !!d.transmissionMap,uvsVertexOnly:!(d.map||d.bumpMap||d.normalMap||d.specularMap||d.alphaMap||d.emissiveMap||d.roughnessMap||d.metalnessMap||d.clearcoatNormalMap||d.transmissionMap)&&!!d.displacementMap,fog:!!t,useFog:d.fog,fogExp2:t&&t.isFogExp2,flatShading:d.flatShading,sizeAttenuation:d.sizeAttenuation,logarithmicDepthBuffer:h,skinning:d.skinning&&0<x,maxBones:x,useVertexTexture:l,morphTargets:d.morphTargets,morphNormals:d.morphNormals,maxMorphTargets:a.maxMorphTargets,maxMorphNormals:a.maxMorphNormals,
    104 numDirLights:f.directional.length,numPointLights:f.point.length,numSpotLights:f.spot.length,numRectAreaLights:f.rectArea.length,numHemiLights:f.hemi.length,numDirLightShadows:f.directionalShadowMap.length,numPointLightShadows:f.pointShadowMap.length,numSpotLightShadows:f.spotShadowMap.length,numClippingPlanes:m,numClipIntersection:ca,dithering:d.dithering,shadowMapEnabled:a.shadowMap.enabled&&0<z.length,shadowMapType:a.shadowMap.type,toneMapping:d.toneMapped?a.toneMapping:0,physicallyCorrectLights:a.physicallyCorrectLights,
    105 premultipliedAlpha:d.premultipliedAlpha,alphaTest:d.alphaTest,doubleSided:2===d.side,flipSided:1===d.side,depthPacking:void 0!==d.depthPacking?d.depthPacking:!1,index0AttributeName:d.index0AttributeName,extensionDerivatives:d.extensions&&d.extensions.derivatives,extensionFragDepth:d.extensions&&d.extensions.fragDepth,extensionDrawBuffers:d.extensions&&d.extensions.drawBuffers,extensionShaderTextureLOD:d.extensions&&d.extensions.shaderTextureLOD,rendererExtensionFragDepth:g||null!==b.get("EXT_frag_depth"),
    106 rendererExtensionDrawBuffers:g||null!==b.get("WEBGL_draw_buffers"),rendererExtensionShaderTextureLod:g||null!==b.get("EXT_shader_texture_lod"),customProgramCacheKey:d.customProgramCacheKey()}},getProgramCacheKey:function(b){var c=[];b.shaderID?c.push(b.shaderID):(c.push(b.fragmentShader),c.push(b.vertexShader));if(void 0!==b.defines)for(var d in b.defines)c.push(d),c.push(b.defines[d]);if(void 0===b.isRawShaderMaterial){for(d=0;d<r.length;d++)c.push(b[r[d]]);c.push(a.outputEncoding);c.push(a.gammaFactor)}c.push(b.customProgramCacheKey);
    107 return c.join()},getUniforms:function(a){var b=k[a.type];return b?Qh.clone(Ua[b].uniforms):a.uniforms},acquireProgram:function(b,c){for(var e,g=0,h=f.length;g<h;g++){var l=f[g];if(l.cacheKey===c){e=l;++e.usedTimes;break}}void 0===e&&(e=new nk(a,c,b,d),f.push(e));return e},releaseProgram:function(a){if(0===--a.usedTimes){var b=f.indexOf(a);f[b]=f[f.length-1];f.pop();a.destroy()}},programs:f}}function qk(){var a=new WeakMap;return{get:function(b){var c=a.get(b);void 0===c&&(c={},a.set(b,c));return c},
    108 remove:function(b){a.delete(b)},update:function(b,c,d){a.get(b)[c]=d},dispose:function(){a=new WeakMap}}}function rk(a,b){return a.groupOrder!==b.groupOrder?a.groupOrder-b.groupOrder:a.renderOrder!==b.renderOrder?a.renderOrder-b.renderOrder:a.program!==b.program?a.program.id-b.program.id:a.material.id!==b.material.id?a.material.id-b.material.id:a.z!==b.z?a.z-b.z:a.id-b.id}function sk(a,b){return a.groupOrder!==b.groupOrder?a.groupOrder-b.groupOrder:a.renderOrder!==b.renderOrder?a.renderOrder-b.renderOrder:
    109 a.z!==b.z?b.z-a.z:a.id-b.id}function Rh(a){function b(b,e,f,q,p,k){var h=c[d],l=a.get(f);void 0===h?(h={id:b.id,object:b,geometry:e,material:f,program:l.program||g,groupOrder:q,renderOrder:b.renderOrder,z:p,group:k},c[d]=h):(h.id=b.id,h.object=b,h.geometry=e,h.material=f,h.program=l.program||g,h.groupOrder=q,h.renderOrder=b.renderOrder,h.z=p,h.group=k);d++;return h}var c=[],d=0,e=[],f=[],g={id:-1};return{opaque:e,transparent:f,init:function(){d=0;e.length=0;f.length=0},push:function(a,c,d,g,p,k){a=
    110 b(a,c,d,g,p,k);(!0===d.transparent?f:e).push(a)},unshift:function(a,c,d,g,p,k){a=b(a,c,d,g,p,k);(!0===d.transparent?f:e).unshift(a)},finish:function(){for(var a=d,b=c.length;a<b;a++){var e=c[a];if(null===e.id)break;e.id=null;e.object=null;e.geometry=null;e.material=null;e.program=null;e.group=null}},sort:function(a,b){1<e.length&&e.sort(a||rk);1<f.length&&f.sort(b||sk)}}}function tk(a){function b(a){a=a.target;a.removeEventListener("dispose",b);c.delete(a)}var c=new WeakMap;return{get:function(d,
    111 e){var f=c.get(d);if(void 0===f){var g=new Rh(a);c.set(d,new WeakMap);c.get(d).set(e,g);d.addEventListener("dispose",b)}else g=f.get(e),void 0===g&&(g=new Rh(a),f.set(e,g));return g},dispose:function(){c=new WeakMap}}}function uk(){var a={};return{get:function(b){if(void 0!==a[b.id])return a[b.id];switch(b.type){case "DirectionalLight":var c={direction:new m,color:new H};break;case "SpotLight":c={position:new m,direction:new m,color:new H,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case "PointLight":c=
    112 {position:new m,color:new H,distance:0,decay:0};break;case "HemisphereLight":c={direction:new m,skyColor:new H,groundColor:new H};break;case "RectAreaLight":c={color:new H,position:new m,halfWidth:new m,halfHeight:new m}}return a[b.id]=c}}}function vk(){var a={};return{get:function(b){if(void 0!==a[b.id])return a[b.id];switch(b.type){case "DirectionalLight":var c={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new u};break;case "SpotLight":c={shadowBias:0,shadowNormalBias:0,shadowRadius:1,
    113 shadowMapSize:new u};break;case "PointLight":c={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new u,shadowCameraNear:1,shadowCameraFar:1E3}}return a[b.id]=c}}}function wk(a,b){return(b.castShadow?1:0)-(a.castShadow?1:0)}function xk(){for(var a=new uk,b=vk(),c={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:[],
    114 directionalShadowMatrix:[],spot:[],spotShadow:[],spotShadowMap:[],spotShadowMatrix:[],rectArea:[],point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[]},d=0;9>d;d++)c.probe.push(new m);var e=new m,f=new U,g=new U;return{setup:function(d,l,n){for(var h=l=0,p=0,k=0;9>k;k++)c.probe[k].set(0,0,0);var r=k=0,t=0,v=0,m=0,B=0,w=0,ca=0;n=n.matrixWorldInverse;d.sort(wk);for(var Q=0,N=d.length;Q<N;Q++){var y=d[Q],I=y.color,u=y.intensity,D=y.distance,ha=y.shadow&&y.shadow.map?y.shadow.map.texture:
    115 null;if(y.isAmbientLight)l+=I.r*u,h+=I.g*u,p+=I.b*u;else if(y.isLightProbe)for(ha=0;9>ha;ha++)c.probe[ha].addScaledVector(y.sh.coefficients[ha],u);else if(y.isDirectionalLight){u=a.get(y);u.color.copy(y.color).multiplyScalar(y.intensity);u.direction.setFromMatrixPosition(y.matrixWorld);e.setFromMatrixPosition(y.target.matrixWorld);u.direction.sub(e);u.direction.transformDirection(n);if(y.castShadow){var va=y.shadow;I=b.get(y);I.shadowBias=va.bias;I.shadowNormalBias=va.normalBias;I.shadowRadius=va.radius;
    116 I.shadowMapSize=va.mapSize;c.directionalShadow[k]=I;c.directionalShadowMap[k]=ha;c.directionalShadowMatrix[k]=y.shadow.matrix;B++}c.directional[k]=u;k++}else y.isSpotLight?(va=a.get(y),va.position.setFromMatrixPosition(y.matrixWorld),va.position.applyMatrix4(n),va.color.copy(I).multiplyScalar(u),va.distance=D,va.direction.setFromMatrixPosition(y.matrixWorld),e.setFromMatrixPosition(y.target.matrixWorld),va.direction.sub(e),va.direction.transformDirection(n),va.coneCos=Math.cos(y.angle),va.penumbraCos=
    117 Math.cos(y.angle*(1-y.penumbra)),va.decay=y.decay,y.castShadow&&(u=y.shadow,I=b.get(y),I.shadowBias=u.bias,I.shadowNormalBias=u.normalBias,I.shadowRadius=u.radius,I.shadowMapSize=u.mapSize,c.spotShadow[t]=I,c.spotShadowMap[t]=ha,c.spotShadowMatrix[t]=y.shadow.matrix,ca++),c.spot[t]=va,t++):y.isRectAreaLight?(ha=a.get(y),ha.color.copy(I).multiplyScalar(u),ha.position.setFromMatrixPosition(y.matrixWorld),ha.position.applyMatrix4(n),g.identity(),f.copy(y.matrixWorld),f.premultiply(n),g.extractRotation(f),
    118 ha.halfWidth.set(.5*y.width,0,0),ha.halfHeight.set(0,.5*y.height,0),ha.halfWidth.applyMatrix4(g),ha.halfHeight.applyMatrix4(g),c.rectArea[v]=ha,v++):y.isPointLight?(u=a.get(y),u.position.setFromMatrixPosition(y.matrixWorld),u.position.applyMatrix4(n),u.color.copy(y.color).multiplyScalar(y.intensity),u.distance=y.distance,u.decay=y.decay,y.castShadow&&(va=y.shadow,I=b.get(y),I.shadowBias=va.bias,I.shadowNormalBias=va.normalBias,I.shadowRadius=va.radius,I.shadowMapSize=va.mapSize,I.shadowCameraNear=
    119 va.camera.near,I.shadowCameraFar=va.camera.far,c.pointShadow[r]=I,c.pointShadowMap[r]=ha,c.pointShadowMatrix[r]=y.shadow.matrix,w++),c.point[r]=u,r++):y.isHemisphereLight&&(ha=a.get(y),ha.direction.setFromMatrixPosition(y.matrixWorld),ha.direction.transformDirection(n),ha.direction.normalize(),ha.skyColor.copy(y.color).multiplyScalar(u),ha.groundColor.copy(y.groundColor).multiplyScalar(u),c.hemi[m]=ha,m++)}c.ambient[0]=l;c.ambient[1]=h;c.ambient[2]=p;d=c.hash;if(d.directionalLength!==k||d.pointLength!==
    120 r||d.spotLength!==t||d.rectAreaLength!==v||d.hemiLength!==m||d.numDirectionalShadows!==B||d.numPointShadows!==w||d.numSpotShadows!==ca)c.directional.length=k,c.spot.length=t,c.rectArea.length=v,c.point.length=r,c.hemi.length=m,c.directionalShadow.length=B,c.directionalShadowMap.length=B,c.pointShadow.length=w,c.pointShadowMap.length=w,c.spotShadow.length=ca,c.spotShadowMap.length=ca,c.directionalShadowMatrix.length=B,c.pointShadowMatrix.length=w,c.spotShadowMatrix.length=ca,d.directionalLength=k,
    121 d.pointLength=r,d.spotLength=t,d.rectAreaLength=v,d.hemiLength=m,d.numDirectionalShadows=B,d.numPointShadows=w,d.numSpotShadows=ca,c.version=yk++},state:c}}function Sh(){var a=new xk,b=[],c=[];return{init:function(){b.length=0;c.length=0},state:{lightsArray:b,shadowsArray:c,lights:a},setupLights:function(d){a.setup(b,c,d)},pushLight:function(a){b.push(a)},pushShadow:function(a){c.push(a)}}}function zk(){function a(c){c=c.target;c.removeEventListener("dispose",a);b.delete(c)}var b=new WeakMap;return{get:function(c,
    122 d){if(!1===b.has(c)){var e=new Sh;b.set(c,new WeakMap);b.get(c).set(d,e);c.addEventListener("dispose",a)}else!1===b.get(c).has(d)?(e=new Sh,b.get(c).set(d,e)):e=b.get(c).get(d);return e},dispose:function(){b=new WeakMap}}}function Db(a){L.call(this);this.type="MeshDepthMaterial";this.depthPacking=3200;this.morphTargets=this.skinning=!1;this.displacementMap=this.alphaMap=this.map=null;this.displacementScale=1;this.displacementBias=0;this.wireframe=!1;this.wireframeLinewidth=1;this.fog=!1;this.setValues(a)}
    123 function Eb(a){L.call(this);this.type="MeshDistanceMaterial";this.referencePosition=new m;this.nearDistance=1;this.farDistance=1E3;this.morphTargets=this.skinning=!1;this.displacementMap=this.alphaMap=this.map=null;this.displacementScale=1;this.displacementBias=0;this.fog=!1;this.setValues(a)}function Th(a,b,c){function d(a,b,c){c=a<<0|b<<1|c<<2;var d=p[c];void 0===d&&(d=new Db({depthPacking:3201,morphTargets:a,skinning:b}),p[c]=d);return d}function e(a,b,c){c=a<<0|b<<1|c<<2;var d=k[c];void 0===d&&
    124 (d=new Eb({morphTargets:a,skinning:b}),k[c]=d);return d}function f(b,c,f,g,h,l,n){var q=d,p=b.customDepthMaterial;!0===g.isPointLight&&(q=e,p=b.customDistanceMaterial);void 0===p?(p=!1,!0===f.morphTargets&&(p=c.morphAttributes&&c.morphAttributes.position&&0<c.morphAttributes.position.length),c=!1,!0===b.isSkinnedMesh&&(!0===f.skinning?c=!0:console.warn("THREE.WebGLShadowMap: THREE.SkinnedMesh with material.skinning set to false:",b)),b=q(p,c,!0===b.isInstancedMesh)):b=p;a.localClippingEnabled&&!0===
    125 f.clipShadows&&0!==f.clippingPlanes.length&&(p=b.uuid,q=f.uuid,c=r[p],void 0===c&&(c={},r[p]=c),p=c[q],void 0===p&&(p=b.clone(),c[q]=p),b=p);b.visible=f.visible;b.wireframe=f.wireframe;b.side=3===n?null!==f.shadowSide?f.shadowSide:f.side:null!==f.shadowSide?f.shadowSide:t[f.side];b.clipShadows=f.clipShadows;b.clippingPlanes=f.clippingPlanes;b.clipIntersection=f.clipIntersection;b.wireframeLinewidth=f.wireframeLinewidth;b.linewidth=f.linewidth;!0===g.isPointLight&&!0===b.isMeshDistanceMaterial&&(b.referencePosition.setFromMatrixPosition(g.matrixWorld),
    126 b.nearDistance=h,b.farDistance=l);return b}function g(c,d,e,l,n){if(!1!==c.visible){if(c.layers.test(d.layers)&&(c.isMesh||c.isLine||c.isPoints)&&(c.castShadow||c.receiveShadow&&3===n)&&(!c.frustumCulled||h.intersectsObject(c))){c.modelViewMatrix.multiplyMatrices(e.matrixWorldInverse,c.matrixWorld);var q=b.update(c),p=c.material;if(Array.isArray(p))for(var k=q.groups,z=0,r=k.length;z<r;z++){var t=k[z],m=p[t.materialIndex];m&&m.visible&&(m=f(c,q,m,l,e.near,e.far,n),a.renderBufferDirect(e,null,q,m,
    127 c,t))}else p.visible&&(p=f(c,q,p,l,e.near,e.far,n),a.renderBufferDirect(e,null,q,p,c,null))}c=c.children;q=0;for(p=c.length;q<p;q++)g(c[q],d,e,l,n)}}var h=new Jc,l=new u,n=new u,q=new S,p=[],k=[],r={},t={0:1,1:0,2:2},m=new ra({defines:{SAMPLE_RATE:.25,HALF_SAMPLE_RATE:.125},uniforms:{shadow_pass:{value:null},resolution:{value:new u},radius:{value:4}},vertexShader:"void main() {ntgl_Position = vec4( position, 1.0 );n}",fragmentShader:"uniform sampler2D shadow_pass;nuniform vec2 resolution;nuniform float radius;n#include <packing>nvoid main() {n  float mean = 0.0;n  float squared_mean = 0.0;ntfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy  ) / resolution ) );n  for ( float i = -1.0; i < 1.0 ; i += SAMPLE_RATE) {n    #ifdef HORIZONAL_PASSn      vec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( i, 0.0 ) * radius ) / resolution ) );n      mean += distribution.x;n      squared_mean += distribution.y * distribution.y + distribution.x * distribution.x;n    #elsen      float depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0,  i )  * radius ) / resolution ) );n      mean += depth;n      squared_mean += depth * depth;n    #endifn  }n  mean = mean * HALF_SAMPLE_RATE;n  squared_mean = squared_mean * HALF_SAMPLE_RATE;n  float std_dev = sqrt( squared_mean - mean * mean );n  gl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );n}"}),
    128 x=m.clone();x.defines.HORIZONAL_PASS=1;var B=new E;B.setAttribute("position",new J(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));var w=new T(B,m),ca=this;this.enabled=!1;this.autoUpdate=!0;this.needsUpdate=!1;this.type=1;this.render=function(d,e,f){if(!1!==ca.enabled&&(!1!==ca.autoUpdate||!1!==ca.needsUpdate)&&0!==d.length){var p=a.getRenderTarget(),k=a.getActiveCubeFace(),z=a.getActiveMipmapLevel(),r=a.state;r.setBlending(0);r.buffers.color.setClear(1,1,1,1);r.buffers.depth.setTest(!0);r.setScissorTest(!1);
    129 for(var t=0,v=d.length;t<v;t++){var B=d[t],y=B.shadow;if(!1!==y.autoUpdate||!1!==y.needsUpdate)if(void 0===y)console.warn("THREE.WebGLShadowMap:",B,"has no shadow.");else{l.copy(y.mapSize);var u=y.getFrameExtents();l.multiply(u);n.copy(y.mapSize);if(l.x>c||l.y>c)l.x>c&&(n.x=Math.floor(c/u.x),l.x=n.x*u.x,y.mapSize.x=n.x),l.y>c&&(n.y=Math.floor(c/u.y),l.y=n.y*u.y,y.mapSize.y=n.y);null!==y.map||y.isPointLightShadow||3!==this.type||(u={minFilter:1006,magFilter:1006,format:1023,stencilBuffer:!1},y.map=
    130 new Ga(l.x,l.y,u),y.map.texture.name=B.name+".shadowMap",y.mapPass=new Ga(l.x,l.y,u),y.camera.updateProjectionMatrix());null===y.map&&(y.map=new Ga(l.x,l.y,{minFilter:1003,magFilter:1003,format:1023,stencilBuffer:!1}),y.map.texture.name=B.name+".shadowMap",y.camera.updateProjectionMatrix());a.setRenderTarget(y.map);a.clear();u=y.getViewportCount();for(var N=0;N<u;N++){var Q=y.getViewport(N);q.set(n.x*Q.x,n.y*Q.y,n.x*Q.z,n.y*Q.w);r.viewport(q);y.updateMatrices(B,N);h=y.getFrustum();g(e,f,y.camera,
    131 B,this.type)}y.isPointLightShadow||3!==this.type||(B=y,u=f,N=b.update(w),m.uniforms.shadow_pass.value=B.map.texture,m.uniforms.resolution.value=B.mapSize,m.uniforms.radius.value=B.radius,a.setRenderTarget(B.mapPass),a.clear(),a.renderBufferDirect(u,null,N,m,w,null),x.uniforms.shadow_pass.value=B.mapPass.texture,x.uniforms.resolution.value=B.mapSize,x.uniforms.radius.value=B.radius,a.setRenderTarget(B.map),a.clear(),a.renderBufferDirect(u,null,N,x,w,null));y.needsUpdate=!1}}ca.needsUpdate=!1;a.setRenderTarget(p,
    132 k,z)}}}function Ak(a,b,c){function d(b,c,d){var e=new Uint8Array(4),f=a.createTexture();a.bindTexture(b,f);a.texParameteri(b,10241,9728);a.texParameteri(b,10240,9728);for(b=0;b<d;b++)a.texImage2D(c+b,0,6408,1,1,0,6408,5121,e);return f}function e(b){!0!==t[b]&&(a.enable(b),t[b]=!0)}function f(b){!1!==t[b]&&(a.disable(b),t[b]=!1)}function g(b,c,d,g,h,l,n,q){if(0===b)x&&(f(3042),x=!1);else if(x||(e(3042),x=!0),5!==b){if(b!==B||q!==A){if(100!==w||100!==N)a.blendEquation(32774),N=w=100;if(q)switch(b){case 1:a.blendFuncSeparate(1,
    133 771,1,771);break;case 2:a.blendFunc(1,1);break;case 3:a.blendFuncSeparate(0,0,769,771);break;case 4:a.blendFuncSeparate(0,768,0,770);break;default:console.error("THREE.WebGLState: Invalid blending: ",b)}else switch(b){case 1:a.blendFuncSeparate(770,771,1,771);break;case 2:a.blendFunc(770,1);break;case 3:a.blendFunc(0,769);break;case 4:a.blendFunc(0,768);break;default:console.error("THREE.WebGLState: Invalid blending: ",b)}I=y=Q=u=null;B=b;A=q}}else{h=h||c;l=l||d;n=n||g;if(c!==w||h!==N)a.blendEquationSeparate(dc[c],
    134 dc[h]),w=c,N=h;if(d!==u||g!==Q||l!==y||n!==I)a.blendFuncSeparate(da[d],da[g],da[l],da[n]),u=d,Q=g,y=l,I=n;B=b;A=null}}function h(b){D!==b&&(b?a.frontFace(2304):a.frontFace(2305),D=b)}function l(b){0!==b?(e(2884),b!==ha&&(1===b?a.cullFace(1029):2===b?a.cullFace(1028):a.cullFace(1032))):f(2884);ha=b}function n(b,c,d){if(b){if(e(32823),G!==c||E!==d)a.polygonOffset(c,d),G=c,E=d}else f(32823)}function q(b){void 0===b&&(b=33984+H-1);$b!==b&&(a.activeTexture(b),$b=b)}c=c.isWebGL2;var p=new function(){var b=
    135 !1,c=new S,d=null,e=new S(0,0,0,0);return{setMask:function(c){d===c||b||(a.colorMask(c,c,c,c),d=c)},setLocked:function(a){b=a},setClear:function(b,d,f,g,h){!0===h&&(b*=g,d*=g,f*=g);c.set(b,d,f,g);!1===e.equals(c)&&(a.clearColor(b,d,f,g),e.copy(c))},reset:function(){b=!1;d=null;e.set(-1,0,0,0)}}},k=new function(){var b=!1,c=null,d=null,g=null;return{setTest:function(a){a?e(2929):f(2929)},setMask:function(d){c===d||b||(a.depthMask(d),c=d)},setFunc:function(b){if(d!==b){if(b)switch(b){case 0:a.depthFunc(512);
    136 break;case 1:a.depthFunc(519);break;case 2:a.depthFunc(513);break;case 3:a.depthFunc(515);break;case 4:a.depthFunc(514);break;case 5:a.depthFunc(518);break;case 6:a.depthFunc(516);break;case 7:a.depthFunc(517);break;default:a.depthFunc(515)}else a.depthFunc(515);d=b}},setLocked:function(a){b=a},setClear:function(b){g!==b&&(a.clearDepth(b),g=b)},reset:function(){b=!1;g=d=c=null}}},r=new function(){var b=!1,c=null,d=null,g=null,h=null,l=null,n=null,q=null,p=null;return{setTest:function(a){b||(a?e(2960):
    137 f(2960))},setMask:function(d){c===d||b||(a.stencilMask(d),c=d)},setFunc:function(b,c,e){if(d!==b||g!==c||h!==e)a.stencilFunc(b,c,e),d=b,g=c,h=e},setOp:function(b,c,d){if(l!==b||n!==c||q!==d)a.stencilOp(b,c,d),l=b,n=c,q=d},setLocked:function(a){b=a},setClear:function(b){p!==b&&(a.clearStencil(b),p=b)},reset:function(){b=!1;p=q=n=l=h=g=d=c=null}}},t={},m=null,x=null,B=null,w=null,u=null,Q=null,N=null,y=null,I=null,A=!1,D=null,ha=null,C=null,G=null,E=null,H=a.getParameter(35661),K=!1,nb=0;nb=a.getParameter(7938);
    138 -1!==nb.indexOf("WebGL")?(nb=parseFloat(/^WebGL ([0-9])/.exec(nb)[1]),K=1<=nb):-1!==nb.indexOf("OpenGL ES")&&(nb=parseFloat(/^OpenGL ES ([0-9])/.exec(nb)[1]),K=2<=nb);var $b=null,J={},L=new S,F=new S,P={};P[3553]=d(3553,3553,1);P[34067]=d(34067,34069,6);p.setClear(0,0,0,1);k.setClear(1);r.setClear(0);e(2929);k.setFunc(3);h(!1);l(1);e(2884);g(0);var dc={100:32774,101:32778,102:32779};c?(dc[103]=32775,dc[104]=32776):(b=b.get("EXT_blend_minmax"),null!==b&&(dc[103]=b.MIN_EXT,dc[104]=b.MAX_EXT));var da=
    139 {200:0,201:1,202:768,204:770,210:776,208:774,206:772,203:769,205:771,209:775,207:773};return{buffers:{color:p,depth:k,stencil:r},enable:e,disable:f,useProgram:function(b){return m!==b?(a.useProgram(b),m=b,!0):!1},setBlending:g,setMaterial:function(a,b){2===a.side?f(2884):e(2884);var c=1===a.side;b&&(c=!c);h(c);1===a.blending&&!1===a.transparent?g(0):g(a.blending,a.blendEquation,a.blendSrc,a.blendDst,a.blendEquationAlpha,a.blendSrcAlpha,a.blendDstAlpha,a.premultipliedAlpha);k.setFunc(a.depthFunc);
    140 k.setTest(a.depthTest);k.setMask(a.depthWrite);p.setMask(a.colorWrite);b=a.stencilWrite;r.setTest(b);b&&(r.setMask(a.stencilWriteMask),r.setFunc(a.stencilFunc,a.stencilRef,a.stencilFuncMask),r.setOp(a.stencilFail,a.stencilZFail,a.stencilZPass));n(a.polygonOffset,a.polygonOffsetFactor,a.polygonOffsetUnits)},setFlipSided:h,setCullFace:l,setLineWidth:function(b){b!==C&&(K&&a.lineWidth(b),C=b)},setPolygonOffset:n,setScissorTest:function(a){a?e(3089):f(3089)},activeTexture:q,bindTexture:function(b,c){null===
    141 $b&&q();var d=J[$b];void 0===d&&(d={type:void 0,texture:void 0},J[$b]=d);if(d.type!==b||d.texture!==c)a.bindTexture(b,c||P[b]),d.type=b,d.texture=c},unbindTexture:function(){var b=J[$b];void 0!==b&&void 0!==b.type&&(a.bindTexture(b.type,null),b.type=void 0,b.texture=void 0)},compressedTexImage2D:function(){try{a.compressedTexImage2D.apply(a,arguments)}catch(R){console.error("THREE.WebGLState:",R)}},texImage2D:function(){try{a.texImage2D.apply(a,arguments)}catch(R){console.error("THREE.WebGLState:",
    142 R)}},texImage3D:function(){try{a.texImage3D.apply(a,arguments)}catch(R){console.error("THREE.WebGLState:",R)}},scissor:function(b){!1===L.equals(b)&&(a.scissor(b.x,b.y,b.z,b.w),L.copy(b))},viewport:function(b){!1===F.equals(b)&&(a.viewport(b.x,b.y,b.z,b.w),F.copy(b))},reset:function(){t={};$b=null;J={};ha=D=B=m=null;p.reset();k.reset();r.reset()}}}function Bk(a,b,c,d,e,f,g){function h(a,b){return J?new OffscreenCanvas(a,b):document.createElementNS("http://www.w3.org/1999/xhtml","canvas")}function l(a,
    143 b,c,d){var e=1;if(a.width>d||a.height>d)e=d/Math.max(a.width,a.height);if(1>e||!0===b){if("undefined"!==typeof HTMLImageElement&&a instanceof HTMLImageElement||"undefined"!==typeof HTMLCanvasElement&&a instanceof HTMLCanvasElement||"undefined"!==typeof ImageBitmap&&a instanceof ImageBitmap)return d=b?P.floorPowerOfTwo:Math.floor,b=d(e*a.width),e=d(e*a.height),void 0===K&&(K=h(b,e)),c=c?h(b,e):K,c.width=b,c.height=e,c.getContext("2d").drawImage(a,0,0,b,e),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+
    144 a.width+"x"+a.height+") to ("+b+"x"+e+")."),c;"data"in a&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+a.width+"x"+a.height+").")}return a}function n(a){return P.isPowerOfTwo(a.width)&&P.isPowerOfTwo(a.height)}function q(a,b){return a.generateMipmaps&&b&&1003!==a.minFilter&&1006!==a.minFilter}function p(b,c,e,f){a.generateMipmap(b);d.get(c).__maxMipLevel=Math.log(Math.max(e,f))*Math.LOG2E}function k(c,d,e){if(!1===D)return d;if(null!==c){if(void 0!==a[c])return a[c];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+
    145 c+"'")}c=d;6403===d&&(5126===e&&(c=33326),5131===e&&(c=33325),5121===e&&(c=33321));6407===d&&(5126===e&&(c=34837),5131===e&&(c=34843),5121===e&&(c=32849));6408===d&&(5126===e&&(c=34836),5131===e&&(c=34842),5121===e&&(c=32856));33325!==c&&33326!==c&&34842!==c&&34836!==c||b.get("EXT_color_buffer_float");return c}function r(a){return 1003===a||1004===a||1005===a?9728:9729}function t(b){b=b.target;b.removeEventListener("dispose",t);var c=d.get(b);void 0!==c.__webglInit&&(a.deleteTexture(c.__webglTexture),
    146 d.remove(b));b.isVideoTexture&&H.delete(b);g.memory.textures--}function m(b){b=b.target;b.removeEventListener("dispose",m);var c=d.get(b),e=d.get(b.texture);if(b){void 0!==e.__webglTexture&&a.deleteTexture(e.__webglTexture);b.depthTexture&&b.depthTexture.dispose();if(b.isWebGLCubeRenderTarget)for(e=0;6>e;e++)a.deleteFramebuffer(c.__webglFramebuffer[e]),c.__webglDepthbuffer&&a.deleteRenderbuffer(c.__webglDepthbuffer[e]);else a.deleteFramebuffer(c.__webglFramebuffer),c.__webglDepthbuffer&&a.deleteRenderbuffer(c.__webglDepthbuffer),
    147 c.__webglMultisampledFramebuffer&&a.deleteFramebuffer(c.__webglMultisampledFramebuffer),c.__webglColorRenderbuffer&&a.deleteRenderbuffer(c.__webglColorRenderbuffer),c.__webglDepthRenderbuffer&&a.deleteRenderbuffer(c.__webglDepthRenderbuffer);d.remove(b.texture);d.remove(b)}g.memory.textures--}function x(a,b){var e=d.get(a);if(a.isVideoTexture){var f=g.render.frame;H.get(a)!==f&&(H.set(a,f),a.update())}if(0<a.version&&e.__version!==a.version)if(f=a.image,void 0===f)console.warn("THREE.WebGLRenderer: Texture marked for update but image is undefined");
    148 else if(!1===f.complete)console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete");else{N(e,a,b);return}c.activeTexture(33984+b);c.bindTexture(3553,e.__webglTexture)}function B(b,e){if(6===b.image.length){var g=d.get(b);if(0<b.version&&g.__version!==b.version){Q(g,b);c.activeTexture(33984+e);c.bindTexture(34067,g.__webglTexture);a.pixelStorei(37440,b.flipY);var h=b&&(b.isCompressedTexture||b.image[0].isCompressedTexture),z=b.image[0]&&b.image[0].isDataTexture;e=[];for(var r=
    149 0;6>r;r++)e[r]=h||z?z?b.image[r].image:b.image[r]:l(b.image[r],!1,!0,C);r=e[0];var t=n(r)||D,m=f.convert(b.format),v=f.convert(b.type),x=k(b.internalFormat,m,v);u(34067,b,t);if(h){for(z=0;6>z;z++){var w=e[z].mipmaps;for(h=0;h<w.length;h++){var y=w[h];1023!==b.format&&1022!==b.format?null!==m?c.compressedTexImage2D(34069+z,h,x,y.width,y.height,0,y.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()"):c.texImage2D(34069+z,h,x,y.width,y.height,
    150 0,m,v,y.data)}}g.__maxMipLevel=w.length-1}else{w=b.mipmaps;for(h=0;6>h;h++)if(z)for(c.texImage2D(34069+h,0,x,e[h].width,e[h].height,0,m,v,e[h].data),y=0;y<w.length;y++){var B=w[y].image[h].image;c.texImage2D(34069+h,y+1,x,B.width,B.height,0,m,v,B.data)}else for(c.texImage2D(34069+h,0,x,m,v,e[h]),y=0;y<w.length;y++)c.texImage2D(34069+h,y+1,x,m,v,w[y].image[h]);g.__maxMipLevel=w.length}q(b,t)&&p(34067,b,r.width,r.height);g.__version=b.version;if(b.onUpdate)b.onUpdate(b)}else c.activeTexture(33984+e),
    151 c.bindTexture(34067,g.__webglTexture)}}function w(a,b){c.activeTexture(33984+b);c.bindTexture(34067,d.get(a).__webglTexture)}function u(c,f,g){g?(a.texParameteri(c,10242,F[f.wrapS]),a.texParameteri(c,10243,F[f.wrapT]),32879!==c&&35866!==c||a.texParameteri(c,32882,F[f.wrapR]),a.texParameteri(c,10240,U[f.magFilter]),a.texParameteri(c,10241,U[f.minFilter])):(a.texParameteri(c,10242,33071),a.texParameteri(c,10243,33071),32879!==c&&35866!==c||a.texParameteri(c,32882,33071),1001===f.wrapS&&1001===f.wrapT||
    152 console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping."),a.texParameteri(c,10240,r(f.magFilter)),a.texParameteri(c,10241,r(f.minFilter)),1003!==f.minFilter&&1006!==f.minFilter&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter."));!(g=b.get("EXT_texture_filter_anisotropic"))||1015===f.type&&null===b.get("OES_texture_float_linear")||
    153 1016===f.type&&null===(D||b.get("OES_texture_half_float_linear"))||!(1<f.anisotropy||d.get(f).__currentAnisotropy)||(a.texParameterf(c,g.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(f.anisotropy,e.getMaxAnisotropy())),d.get(f).__currentAnisotropy=f.anisotropy)}function Q(b,c){void 0===b.__webglInit&&(b.__webglInit=!0,c.addEventListener("dispose",t),b.__webglTexture=a.createTexture(),g.memory.textures++)}function N(b,d,e){var g=3553;d.isDataTexture2DArray&&(g=35866);d.isDataTexture3D&&(g=32879);Q(b,d);c.activeTexture(33984+
    154 e);c.bindTexture(g,b.__webglTexture);a.pixelStorei(37440,d.flipY);a.pixelStorei(37441,d.premultiplyAlpha);a.pixelStorei(3317,d.unpackAlignment);e=D?!1:1001!==d.wrapS||1001!==d.wrapT||1003!==d.minFilter&&1006!==d.minFilter;e=e&&!1===n(d.image);e=l(d.image,e,!1,G);var h=n(e)||D,z=f.convert(d.format),r=f.convert(d.type),t=k(d.internalFormat,z,r);u(g,d,h);var m=d.mipmaps;if(d.isDepthTexture)t=6402,D?t=1015===d.type?36012:1014===d.type?33190:1020===d.type?35056:33189:1015===d.type&&console.error("WebGLRenderer: Floating point depth texture requires WebGL2."),
    155 1026===d.format&&6402===t&&1012!==d.type&&1014!==d.type&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),d.type=1012,r=f.convert(d.type)),1027===d.format&&6402===t&&(t=34041,1020!==d.type&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),d.type=1020,r=f.convert(d.type))),c.texImage2D(3553,0,t,e.width,e.height,0,z,r,null);else if(d.isDataTexture)if(0<m.length&&h){for(var v=0,x=m.length;v<x;v++){var w=
    156 m[v];c.texImage2D(3553,v,t,w.width,w.height,0,z,r,w.data)}d.generateMipmaps=!1;b.__maxMipLevel=m.length-1}else c.texImage2D(3553,0,t,e.width,e.height,0,z,r,e.data),b.__maxMipLevel=0;else if(d.isCompressedTexture){v=0;for(x=m.length;v<x;v++)w=m[v],1023!==d.format&&1022!==d.format?null!==z?c.compressedTexImage2D(3553,v,t,w.width,w.height,0,w.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()"):c.texImage2D(3553,v,t,w.width,w.height,0,z,
    157 r,w.data);b.__maxMipLevel=m.length-1}else if(d.isDataTexture2DArray)c.texImage3D(35866,0,t,e.width,e.height,e.depth,0,z,r,e.data),b.__maxMipLevel=0;else if(d.isDataTexture3D)c.texImage3D(32879,0,t,e.width,e.height,e.depth,0,z,r,e.data),b.__maxMipLevel=0;else if(0<m.length&&h){v=0;for(x=m.length;v<x;v++)w=m[v],c.texImage2D(3553,v,t,z,r,w);d.generateMipmaps=!1;b.__maxMipLevel=m.length-1}else c.texImage2D(3553,0,t,z,r,e),b.__maxMipLevel=0;q(d,h)&&p(g,d,e.width,e.height);b.__version=d.version;if(d.onUpdate)d.onUpdate(d)}
    158 function y(b,e,g,h){var l=f.convert(e.texture.format),n=f.convert(e.texture.type),q=k(e.texture.internalFormat,l,n);c.texImage2D(h,0,q,e.width,e.height,0,l,n,null);a.bindFramebuffer(36160,b);a.framebufferTexture2D(36160,g,h,d.get(e.texture).__webglTexture,0);a.bindFramebuffer(36160,null)}function I(b,c,d){a.bindRenderbuffer(36161,b);if(c.depthBuffer&&!c.stencilBuffer){var e=33189;d?((d=c.depthTexture)&&d.isDepthTexture&&(1015===d.type?e=36012:1014===d.type&&(e=33190)),d=A(c),a.renderbufferStorageMultisample(36161,
    159 d,e,c.width,c.height)):a.renderbufferStorage(36161,e,c.width,c.height);a.framebufferRenderbuffer(36160,36096,36161,b)}else c.depthBuffer&&c.stencilBuffer?(d?(d=A(c),a.renderbufferStorageMultisample(36161,d,35056,c.width,c.height)):a.renderbufferStorage(36161,34041,c.width,c.height),a.framebufferRenderbuffer(36160,33306,36161,b)):(b=f.convert(c.texture.format),e=f.convert(c.texture.type),b=k(c.texture.internalFormat,b,e),d?(d=A(c),a.renderbufferStorageMultisample(36161,d,b,c.width,c.height)):a.renderbufferStorage(36161,
    160 b,c.width,c.height));a.bindRenderbuffer(36161,null)}function A(a){return D&&a.isWebGLMultisampleRenderTarget?Math.min(E,a.samples):0}var D=e.isWebGL2,ha=e.maxTextures,C=e.maxCubemapSize,G=e.maxTextureSize,E=e.maxSamples,H=new WeakMap,K,J=!1;try{J="undefined"!==typeof OffscreenCanvas&&null!==(new OffscreenCanvas(1,1)).getContext("2d")}catch(dc){}var L=0,F={1E3:10497,1001:33071,1002:33648},U={1003:9728,1004:9984,1005:9986,1006:9729,1007:9985,1008:9987},O=!1,S=!1;this.allocateTextureUnit=function(){var a=
    161 L;a>=ha&&console.warn("THREE.WebGLTextures: Trying to use "+a+" texture units while this GPU supports only "+ha);L+=1;return a};this.resetTextureUnits=function(){L=0};this.setTexture2D=x;this.setTexture2DArray=function(a,b){var e=d.get(a);0<a.version&&e.__version!==a.version?N(e,a,b):(c.activeTexture(33984+b),c.bindTexture(35866,e.__webglTexture))};this.setTexture3D=function(a,b){var e=d.get(a);0<a.version&&e.__version!==a.version?N(e,a,b):(c.activeTexture(33984+b),c.bindTexture(32879,e.__webglTexture))};
    162 this.setTextureCube=B;this.setTextureCubeDynamic=w;this.setupRenderTarget=function(b){var e=d.get(b),h=d.get(b.texture);b.addEventListener("dispose",m);h.__webglTexture=a.createTexture();g.memory.textures++;var l=!0===b.isWebGLCubeRenderTarget,z=!0===b.isWebGLMultisampleRenderTarget,r=n(b)||D;!D||1022!==b.texture.format||1015!==b.texture.type&&1016!==b.texture.type||(b.texture.format=1023,console.warn("THREE.WebGLRenderer: Rendering to textures with RGB format is not supported. Using RGBA format instead."));
    163 if(l)for(e.__webglFramebuffer=[],z=0;6>z;z++)e.__webglFramebuffer[z]=a.createFramebuffer();else if(e.__webglFramebuffer=a.createFramebuffer(),z)if(D){e.__webglMultisampledFramebuffer=a.createFramebuffer();e.__webglColorRenderbuffer=a.createRenderbuffer();a.bindRenderbuffer(36161,e.__webglColorRenderbuffer);z=f.convert(b.texture.format);var t=f.convert(b.texture.type);z=k(b.texture.internalFormat,z,t);t=A(b);a.renderbufferStorageMultisample(36161,t,z,b.width,b.height);a.bindFramebuffer(36160,e.__webglMultisampledFramebuffer);
    164 a.framebufferRenderbuffer(36160,36064,36161,e.__webglColorRenderbuffer);a.bindRenderbuffer(36161,null);b.depthBuffer&&(e.__webglDepthRenderbuffer=a.createRenderbuffer(),I(e.__webglDepthRenderbuffer,b,!0));a.bindFramebuffer(36160,null)}else console.warn("THREE.WebGLRenderer: WebGLMultisampleRenderTarget can only be used with WebGL2.");if(l){c.bindTexture(34067,h.__webglTexture);u(34067,b.texture,r);for(h=0;6>h;h++)y(e.__webglFramebuffer[h],b,36064,34069+h);q(b.texture,r)&&p(34067,b.texture,b.width,
    165 b.height);c.bindTexture(34067,null)}else c.bindTexture(3553,h.__webglTexture),u(3553,b.texture,r),y(e.__webglFramebuffer,b,36064,3553),q(b.texture,r)&&p(3553,b.texture,b.width,b.height),c.bindTexture(3553,null);if(b.depthBuffer){e=d.get(b);r=!0===b.isWebGLCubeRenderTarget;if(b.depthTexture){if(r)throw Error("target.depthTexture not supported in Cube render targets");if(b&&b.isWebGLCubeRenderTarget)throw Error("Depth Texture with cube render targets is not supported");a.bindFramebuffer(36160,e.__webglFramebuffer);
    166 if(!b.depthTexture||!b.depthTexture.isDepthTexture)throw Error("renderTarget.depthTexture must be an instance of THREE.DepthTexture");d.get(b.depthTexture).__webglTexture&&b.depthTexture.image.width===b.width&&b.depthTexture.image.height===b.height||(b.depthTexture.image.width=b.width,b.depthTexture.image.height=b.height,b.depthTexture.needsUpdate=!0);x(b.depthTexture,0);e=d.get(b.depthTexture).__webglTexture;if(1026===b.depthTexture.format)a.framebufferTexture2D(36160,36096,3553,e,0);else if(1027===
    167 b.depthTexture.format)a.framebufferTexture2D(36160,33306,3553,e,0);else throw Error("Unknown depthTexture format");}else if(r)for(e.__webglDepthbuffer=[],r=0;6>r;r++)a.bindFramebuffer(36160,e.__webglFramebuffer[r]),e.__webglDepthbuffer[r]=a.createRenderbuffer(),I(e.__webglDepthbuffer[r],b,!1);else a.bindFramebuffer(36160,e.__webglFramebuffer),e.__webglDepthbuffer=a.createRenderbuffer(),I(e.__webglDepthbuffer,b,!1);a.bindFramebuffer(36160,null)}};this.updateRenderTargetMipmap=function(a){var b=a.texture,
    168 e=n(a)||D;if(q(b,e)){e=a.isWebGLCubeRenderTarget?34067:3553;var f=d.get(b).__webglTexture;c.bindTexture(e,f);p(e,b,a.width,a.height);c.bindTexture(e,null)}};this.updateMultisampleRenderTarget=function(b){if(b.isWebGLMultisampleRenderTarget)if(D){var c=d.get(b);a.bindFramebuffer(36008,c.__webglMultisampledFramebuffer);a.bindFramebuffer(36009,c.__webglFramebuffer);var e=b.width,f=b.height,g=16384;b.depthBuffer&&(g|=256);b.stencilBuffer&&(g|=1024);a.blitFramebuffer(0,0,e,f,0,0,e,f,g,9728);a.bindFramebuffer(36160,
    169 c.__webglMultisampledFramebuffer)}else console.warn("THREE.WebGLRenderer: WebGLMultisampleRenderTarget can only be used with WebGL2.")};this.safeSetTexture2D=function(a,b){a&&a.isWebGLRenderTarget&&(!1===O&&(console.warn("THREE.WebGLTextures.safeSetTexture2D: don't use render targets as textures. Use their .texture property instead."),O=!0),a=a.texture);x(a,b)};this.safeSetTextureCube=function(a,b){a&&a.isWebGLCubeRenderTarget&&(!1===S&&(console.warn("THREE.WebGLTextures.safeSetTextureCube: don't use cube render targets as textures. Use their .texture property instead."),
    170 S=!0),a=a.texture);a&&a.isCubeTexture||Array.isArray(a.image)&&6===a.image.length?B(a,b):w(a,b)}}function Uh(a,b,c){var d=c.isWebGL2;return{convert:function(a){if(1009===a)return 5121;if(1017===a)return 32819;if(1018===a)return 32820;if(1019===a)return 33635;if(1010===a)return 5120;if(1011===a)return 5122;if(1012===a)return 5123;if(1013===a)return 5124;if(1014===a)return 5125;if(1015===a)return 5126;if(1016===a){if(d)return 5131;var c=b.get("OES_texture_half_float");return null!==c?c.HALF_FLOAT_OES:
    171 null}if(1021===a)return 6406;if(1022===a)return 6407;if(1023===a)return 6408;if(1024===a)return 6409;if(1025===a)return 6410;if(1026===a)return 6402;if(1027===a)return 34041;if(1028===a)return 6403;if(1029===a)return 36244;if(1030===a)return 33319;if(1031===a)return 33320;if(1032===a)return 36248;if(1033===a)return 36249;if(33776===a||33777===a||33778===a||33779===a)if(c=b.get("WEBGL_compressed_texture_s3tc"),null!==c){if(33776===a)return c.COMPRESSED_RGB_S3TC_DXT1_EXT;if(33777===a)return c.COMPRESSED_RGBA_S3TC_DXT1_EXT;
    172 if(33778===a)return c.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(33779===a)return c.COMPRESSED_RGBA_S3TC_DXT5_EXT}else return null;if(35840===a||35841===a||35842===a||35843===a)if(c=b.get("WEBGL_compressed_texture_pvrtc"),null!==c){if(35840===a)return c.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(35841===a)return c.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(35842===a)return c.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(35843===a)return c.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}else return null;if(36196===a)return c=b.get("WEBGL_compressed_texture_etc1"),
    173 null!==c?c.COMPRESSED_RGB_ETC1_WEBGL:null;if(37492===a||37496===a)if(c=b.get("WEBGL_compressed_texture_etc"),null!==c){if(37492===a)return c.COMPRESSED_RGB8_ETC2;if(37496===a)return c.COMPRESSED_RGBA8_ETC2_EAC}if(37808===a||37809===a||37810===a||37811===a||37812===a||37813===a||37814===a||37815===a||37816===a||37817===a||37818===a||37819===a||37820===a||37821===a||37840===a||37841===a||37842===a||37843===a||37844===a||37845===a||37846===a||37847===a||37848===a||37849===a||37850===a||37851===a||37852===
    174 a||37853===a)return c=b.get("WEBGL_compressed_texture_astc"),null!==c?a:null;if(36492===a)return c=b.get("EXT_texture_compression_bptc"),null!==c?a:null;if(1020===a){if(d)return 34042;c=b.get("WEBGL_depth_texture");return null!==c?c.UNSIGNED_INT_24_8_WEBGL:null}}}}function Ne(a){W.call(this);this.cameras=a||[]}function Gb(){C.call(this);this.type="Group"}function Md(){this._hand=this._grip=this._targetRay=null}function Vh(a,b){function c(a){var b=t.get(a.inputSource);b&&b.dispatchEvent({type:a.type})}
    175 function d(){t.forEach(function(a,b){a.disconnect(b)});t.clear();a.setFramebuffer(null);a.setRenderTarget(a.getRenderTarget());A.stop();h.isPresenting=!1;h.dispatchEvent({type:"sessionend"})}function e(a){q=a;A.setContext(l);A.start();h.isPresenting=!0;h.dispatchEvent({type:"sessionstart"})}function f(a){for(var b=l.inputSources,c=0;c<r.length;c++)t.set(b[c],r[c]);for(b=0;b<a.removed.length;b++){c=a.removed[b];var d=t.get(c);d&&(d.dispatchEvent({type:"disconnected",data:c}),t.delete(c))}for(b=0;b<
    176 a.added.length;b++)c=a.added[b],(d=t.get(c))&&d.dispatchEvent({type:"connected",data:c})}function g(a,b){null===b?a.matrixWorld.copy(a.matrix):a.matrixWorld.multiplyMatrices(b.matrixWorld,a.matrix);a.matrixWorldInverse.getInverse(a.matrixWorld)}var h=this,l=null,n=1,q=null,p="local-floor",k=null,r=[],t=new Map,v=new W;v.layers.enable(1);v.viewport=new S;var x=new W;x.layers.enable(2);x.viewport=new S;var B=[v,x],w=new Ne;w.layers.enable(1);w.layers.enable(2);var u=null,Q=null;this.isPresenting=this.enabled=
    177 !1;this.getController=function(a){var b=r[a];void 0===b&&(b=new Md,r[a]=b);return b.getTargetRaySpace()};this.getControllerGrip=function(a){var b=r[a];void 0===b&&(b=new Md,r[a]=b);return b.getGripSpace()};this.getHand=function(a){var b=r[a];void 0===b&&(b=new Md,r[a]=b);return b.getHandSpace()};this.setFramebufferScaleFactor=function(a){n=a;!0===h.isPresenting&&console.warn("THREE.WebXRManager: Cannot change framebuffer scale while presenting.")};this.setReferenceSpaceType=function(a){p=a;!0===h.isPresenting&&
    178 console.warn("THREE.WebXRManager: Cannot change reference space type while presenting.")};this.getReferenceSpace=function(){return q};this.getSession=function(){return l};this.setSession=function(a){l=a;null!==l&&(l.addEventListener("select",c),l.addEventListener("selectstart",c),l.addEventListener("selectend",c),l.addEventListener("squeeze",c),l.addEventListener("squeezestart",c),l.addEventListener("squeezeend",c),l.addEventListener("end",d),a=b.getContextAttributes(),!0!==a.xrCompatible&&b.makeXRCompatible(),
    179 a=new XRWebGLLayer(l,b,{antialias:a.antialias,alpha:a.alpha,depth:a.depth,stencil:a.stencil,framebufferScaleFactor:n}),l.updateRenderState({baseLayer:a}),l.requestReferenceSpace(p).then(e),l.addEventListener("inputsourceschange",f))};var N=new m,y=new m;this.getCamera=function(a){w.near=x.near=v.near=a.near;w.far=x.far=v.far=a.far;if(u!==w.near||Q!==w.far)l.updateRenderState({depthNear:w.near,depthFar:w.far}),u=w.near,Q=w.far;var b=a.parent,c=w.cameras;g(w,b);for(var d=0;d<c.length;d++)g(c[d],b);
    180 a.matrixWorld.copy(w.matrixWorld);a=a.children;b=0;for(d=a.length;b<d;b++)a[b].updateMatrixWorld(!0);if(2===c.length){N.setFromMatrixPosition(v.matrixWorld);y.setFromMatrixPosition(x.matrixWorld);c=N.distanceTo(y);var e=v.projectionMatrix.elements,f=x.projectionMatrix.elements,h=e[14]/(e[10]-1);a=e[14]/(e[10]+1);b=(e[9]+1)/e[5];d=(e[9]-1)/e[5];var n=(e[8]-1)/e[0],q=(f[8]+1)/f[0];f=h*n;e=h*q;q=c/(-n+q);n=q*-n;v.matrixWorld.decompose(w.position,w.quaternion,w.scale);w.translateX(n);w.translateZ(q);
    181 w.matrixWorld.compose(w.position,w.quaternion,w.scale);w.matrixWorldInverse.getInverse(w.matrixWorld);h+=q;q=a+q;w.projectionMatrix.makePerspective(f-n,e+(c-n),b*a/q*h,d*a/q*h,h,q)}else w.projectionMatrix.copy(v.projectionMatrix);return w};var I=null,A=new wh;A.setAnimationLoop(function(b,c){k=c.getViewerPose(q);if(null!==k){var d=k.views,e=l.renderState.baseLayer;a.setFramebuffer(e.framebuffer);var f=!1;d.length!==w.cameras.length&&(w.cameras.length=0,f=!0);for(var g=0;g<d.length;g++){var h=d[g],
    182 n=e.getViewport(h),p=B[g];p.matrix.fromArray(h.transform.matrix);p.projectionMatrix.fromArray(h.projectionMatrix);p.viewport.set(n.x,n.y,n.width,n.height);0===g&&w.matrix.copy(p.matrix);!0===f&&w.cameras.push(p)}}d=l.inputSources;for(e=0;e<r.length;e++)r[e].update(d[e],c,q);I&&I(b,c)});this.setAnimationLoop=function(a){I=a};this.dispose=function(){}}function Ck(a){function b(b,c,f){b.opacity.value=c.opacity;c.color&&b.diffuse.value.copy(c.color);c.emissive&&b.emissive.value.copy(c.emissive).multiplyScalar(c.emissiveIntensity);
    183 c.map&&(b.map.value=c.map);c.alphaMap&&(b.alphaMap.value=c.alphaMap);c.specularMap&&(b.specularMap.value=c.specularMap);if(f=c.envMap||f)b.envMap.value=f,b.flipEnvMap.value=f.isCubeTexture?-1:1,b.reflectivity.value=c.reflectivity,b.refractionRatio.value=c.refractionRatio,f=a.get(f).__maxMipLevel,void 0!==f&&(b.maxMipLevel.value=f);c.lightMap&&(b.lightMap.value=c.lightMap,b.lightMapIntensity.value=c.lightMapIntensity);c.aoMap&&(b.aoMap.value=c.aoMap,b.aoMapIntensity.value=c.aoMapIntensity);if(c.map)var d=
    184 c.map;else c.specularMap?d=c.specularMap:c.displacementMap?d=c.displacementMap:c.normalMap?d=c.normalMap:c.bumpMap?d=c.bumpMap:c.roughnessMap?d=c.roughnessMap:c.metalnessMap?d=c.metalnessMap:c.alphaMap?d=c.alphaMap:c.emissiveMap&&(d=c.emissiveMap);void 0!==d&&(d.isWebGLRenderTarget&&(d=d.texture),!0===d.matrixAutoUpdate&&d.updateMatrix(),b.uvTransform.value.copy(d.matrix));if(c.aoMap)var e=c.aoMap;else c.lightMap&&(e=c.lightMap);void 0!==e&&(e.isWebGLRenderTarget&&(e=e.texture),!0===e.matrixAutoUpdate&&
    185 e.updateMatrix(),b.uv2Transform.value.copy(e.matrix))}function c(a,b,c){a.roughness.value=b.roughness;a.metalness.value=b.metalness;b.roughnessMap&&(a.roughnessMap.value=b.roughnessMap);b.metalnessMap&&(a.metalnessMap.value=b.metalnessMap);b.emissiveMap&&(a.emissiveMap.value=b.emissiveMap);b.bumpMap&&(a.bumpMap.value=b.bumpMap,a.bumpScale.value=b.bumpScale,1===b.side&&(a.bumpScale.value*=-1));b.normalMap&&(a.normalMap.value=b.normalMap,a.normalScale.value.copy(b.normalScale),1===b.side&&a.normalScale.value.negate());
    186 b.displacementMap&&(a.displacementMap.value=b.displacementMap,a.displacementScale.value=b.displacementScale,a.displacementBias.value=b.displacementBias);if(b.envMap||c)a.envMapIntensity.value=b.envMapIntensity}return{refreshFogUniforms:function(a,b){a.fogColor.value.copy(b.color);b.isFog?(a.fogNear.value=b.near,a.fogFar.value=b.far):b.isFogExp2&&(a.fogDensity.value=b.density)},refreshMaterialUniforms:function(a,e,f,g,h){if(e.isMeshBasicMaterial)b(a,e);else if(e.isMeshLambertMaterial)b(a,e),e.emissiveMap&&
    187 (a.emissiveMap.value=e.emissiveMap);else if(e.isMeshToonMaterial)b(a,e),e.gradientMap&&(a.gradientMap.value=e.gradientMap),e.emissiveMap&&(a.emissiveMap.value=e.emissiveMap),e.bumpMap&&(a.bumpMap.value=e.bumpMap,a.bumpScale.value=e.bumpScale,1===e.side&&(a.bumpScale.value*=-1)),e.normalMap&&(a.normalMap.value=e.normalMap,a.normalScale.value.copy(e.normalScale),1===e.side&&a.normalScale.value.negate()),e.displacementMap&&(a.displacementMap.value=e.displacementMap,a.displacementScale.value=e.displacementScale,
    188 a.displacementBias.value=e.displacementBias);else if(e.isMeshPhongMaterial)b(a,e),a.specular.value.copy(e.specular),a.shininess.value=Math.max(e.shininess,1E-4),e.emissiveMap&&(a.emissiveMap.value=e.emissiveMap),e.bumpMap&&(a.bumpMap.value=e.bumpMap,a.bumpScale.value=e.bumpScale,1===e.side&&(a.bumpScale.value*=-1)),e.normalMap&&(a.normalMap.value=e.normalMap,a.normalScale.value.copy(e.normalScale),1===e.side&&a.normalScale.value.negate()),e.displacementMap&&(a.displacementMap.value=e.displacementMap,
    189 a.displacementScale.value=e.displacementScale,a.displacementBias.value=e.displacementBias);else if(e.isMeshStandardMaterial)b(a,e,f),e.isMeshPhysicalMaterial?(c(a,e,f),a.reflectivity.value=e.reflectivity,a.clearcoat.value=e.clearcoat,a.clearcoatRoughness.value=e.clearcoatRoughness,e.sheen&&a.sheen.value.copy(e.sheen),e.clearcoatMap&&(a.clearcoatMap.value=e.clearcoatMap),e.clearcoatRoughnessMap&&(a.clearcoatRoughnessMap.value=e.clearcoatRoughnessMap),e.clearcoatNormalMap&&(a.clearcoatNormalScale.value.copy(e.clearcoatNormalScale),
    190 a.clearcoatNormalMap.value=e.clearcoatNormalMap,1===e.side&&a.clearcoatNormalScale.value.negate()),a.transmission.value=e.transmission,e.transmissionMap&&(a.transmissionMap.value=e.transmissionMap)):c(a,e,f);else if(e.isMeshMatcapMaterial)b(a,e),e.matcap&&(a.matcap.value=e.matcap),e.bumpMap&&(a.bumpMap.value=e.bumpMap,a.bumpScale.value=e.bumpScale,1===e.side&&(a.bumpScale.value*=-1)),e.normalMap&&(a.normalMap.value=e.normalMap,a.normalScale.value.copy(e.normalScale),1===e.side&&a.normalScale.value.negate()),
    191 e.displacementMap&&(a.displacementMap.value=e.displacementMap,a.displacementScale.value=e.displacementScale,a.displacementBias.value=e.displacementBias);else if(e.isMeshDepthMaterial)b(a,e),e.displacementMap&&(a.displacementMap.value=e.displacementMap,a.displacementScale.value=e.displacementScale,a.displacementBias.value=e.displacementBias);else if(e.isMeshDistanceMaterial)b(a,e),e.displacementMap&&(a.displacementMap.value=e.displacementMap,a.displacementScale.value=e.displacementScale,a.displacementBias.value=
    192 e.displacementBias),a.referencePosition.value.copy(e.referencePosition),a.nearDistance.value=e.nearDistance,a.farDistance.value=e.farDistance;else if(e.isMeshNormalMaterial)b(a,e),e.bumpMap&&(a.bumpMap.value=e.bumpMap,a.bumpScale.value=e.bumpScale,1===e.side&&(a.bumpScale.value*=-1)),e.normalMap&&(a.normalMap.value=e.normalMap,a.normalScale.value.copy(e.normalScale),1===e.side&&a.normalScale.value.negate()),e.displacementMap&&(a.displacementMap.value=e.displacementMap,a.displacementScale.value=e.displacementScale,
    193 a.displacementBias.value=e.displacementBias);else if(e.isLineBasicMaterial)a.diffuse.value.copy(e.color),a.opacity.value=e.opacity,e.isLineDashedMaterial&&(a.dashSize.value=e.dashSize,a.totalSize.value=e.dashSize+e.gapSize,a.scale.value=e.scale);else if(e.isPointsMaterial){a.diffuse.value.copy(e.color);a.opacity.value=e.opacity;a.size.value=e.size*g;a.scale.value=.5*h;e.map&&(a.map.value=e.map);e.alphaMap&&(a.alphaMap.value=e.alphaMap);if(e.map)var d=e.map;else e.alphaMap&&(d=e.alphaMap);void 0!==
    194 d&&(!0===d.matrixAutoUpdate&&d.updateMatrix(),a.uvTransform.value.copy(d.matrix))}else if(e.isSpriteMaterial){a.diffuse.value.copy(e.color);a.opacity.value=e.opacity;a.rotation.value=e.rotation;e.map&&(a.map.value=e.map);e.alphaMap&&(a.alphaMap.value=e.alphaMap);if(e.map)var n=e.map;else e.alphaMap&&(n=e.alphaMap);void 0!==n&&(!0===n.matrixAutoUpdate&&n.updateMatrix(),a.uvTransform.value.copy(n.matrix))}else e.isShadowMaterial?(a.color.value.copy(e.color),a.opacity.value=e.opacity):e.isShaderMaterial&&
    195 (e.uniformsNeedUpdate=!1)}}}function Nd(a){function b(a,b){for(var c=0;c<a.length;c++){var d=r.getContext(a[c],b);if(null!==d)return d}return null}function c(){ma=new qj(M);Ha=new oj(M,ma,a);!1===Ha.isWebGL2&&(ma.get("WEBGL_depth_texture"),ma.get("OES_texture_float"),ma.get("OES_texture_half_float"),ma.get("OES_texture_half_float_linear"),ma.get("OES_standard_derivatives"),ma.get("OES_element_index_uint"),ma.get("OES_vertex_array_object"),ma.get("ANGLE_instanced_arrays"));ma.get("OES_texture_float_linear");
    196 sa=new Uh(M,ma,Ha);na=new Ak(M,ma,Ha);na.scissor(T.copy(ea).multiplyScalar(R).floor());na.viewport(V.copy(Z).multiplyScalar(R).floor());Y=new tj(M);Ia=new qk;ba=new Bk(M,ma,na,Ia,Ha,sa,Y);ua=new kj(M,Ha);ia=new mj(M,ma,ua,Ha);ya=new rj(M,ua,Y,ia);ta=new xj(M,ya,ua,Y);Ca=new wj(M);qa=new pk(D,ma,Ha,ia);Aa=new Ck(Ia);za=new tk(Ia);wa=new zk;ra=new lj(D,na,ta,ca);Da=new nj(M,ma,Y,Ha);Ea=new sj(M,ma,Y,Ha);Y.programs=qa.programs;D.capabilities=Ha;D.extensions=ma;D.properties=Ia;D.renderLists=za;D.state=
    197 na;D.info=Y}function d(a){a.preventDefault();console.log("THREE.WebGLRenderer: Context Lost.");C=!0}function e(){console.log("THREE.WebGLRenderer: Context Restored.");C=!1;c()}function f(a){a=a.target;a.removeEventListener("dispose",f);g(a);Ia.remove(a)}function g(a){a=Ia.get(a).program;void 0!==a&&qa.releaseProgram(a)}function h(a,b){a.render(function(a){D.renderBufferImmediate(a,b)})}function l(a,b,c,d){if(!1!==a.visible){if(a.layers.test(b.layers))if(a.isGroup)c=a.renderOrder;else if(a.isLOD)!0===
    198 a.autoUpdate&&a.update(b);else if(a.isLight)A.pushLight(a),a.castShadow&&A.pushShadow(a);else if(a.isSprite){if(!a.frustumCulled||oa.intersectsSprite(a)){d&&Fb.setFromMatrixPosition(a.matrixWorld).applyMatrix4(Ld);var e=ta.update(a),f=a.material;f.visible&&I.push(a,e,f,c,Fb.z,null)}}else if(a.isImmediateRenderObject)d&&Fb.setFromMatrixPosition(a.matrixWorld).applyMatrix4(Ld),I.push(a,null,a.material,c,Fb.z,null);else if(a.isMesh||a.isLine||a.isPoints)if(a.isSkinnedMesh&&a.skeleton.frame!==Y.render.frame&&
    199 (a.skeleton.update(),a.skeleton.frame=Y.render.frame),!a.frustumCulled||oa.intersectsObject(a))if(d&&Fb.setFromMatrixPosition(a.matrixWorld).applyMatrix4(Ld),e=ta.update(a),f=a.material,Array.isArray(f))for(var g=e.groups,h=0,n=g.length;h<n;h++){var q=g[h],p=f[q.materialIndex];p&&p.visible&&I.push(a,e,p,c,Fb.z,q)}else f.visible&&I.push(a,e,f,c,Fb.z,null);a=a.children;e=0;for(f=a.length;e<f;e++)l(a[e],b,c,d)}}function n(a,b,c){for(var d=!0===b.isScene?b.overrideMaterial:null,e=0,f=a.length;e<f;e++){var g=
    200 a[e],h=g.object,l=g.geometry,n=null===d?g.material:d;g=g.group;if(c.isArrayCamera){X=c;for(var p=c.cameras,k=0,r=p.length;k<r;k++){var z=p[k];h.layers.test(z.layers)&&(na.viewport(V.copy(z.viewport)),A.setupLights(z),q(h,b,z,l,n,g))}}else X=null,q(h,b,c,l,n,g)}}function q(a,b,c,d,e,f){a.onBeforeRender(D,b,c,d,e,f);A=wa.get(b,X||c);a.modelViewMatrix.multiplyMatrices(c.matrixWorldInverse,a.matrixWorld);a.normalMatrix.getNormalMatrix(a.modelViewMatrix);if(a.isImmediateRenderObject){var g=k(c,b,e,a);
    201 na.setMaterial(e);ia.reset();h(a,g)}else D.renderBufferDirect(c,b,d,e,a,f);a.onAfterRender(D,b,c,d,e,f);A=wa.get(b,X||c)}function p(a,b,c){!0!==b.isScene&&(b=ng);var d=Ia.get(a),e=A.state.lights,h=e.state.version;c=qa.getParameters(a,e.state,A.state.shadowsArray,b,W.numPlanes,W.numIntersection,c);var l=qa.getProgramCacheKey(c),n=d.program,q=!0;if(void 0===n)a.addEventListener("dispose",f);else if(n.cacheKey!==l)g(a);else{if(d.lightsStateVersion!==h)d.lightsStateVersion=h;else if(void 0!==c.shaderID)return;
    202 q=!1}q&&(c.uniforms=qa.getUniforms(a,c),a.onBeforeCompile(c,D),n=qa.acquireProgram(c,l),d.program=n,d.uniforms=c.uniforms,d.outputEncoding=c.outputEncoding);c=n.getAttributes();if(a.morphTargets)for(l=a.numSupportedMorphTargets=0;l<D.maxMorphTargets;l++)0<=c["morphTarget"+l]&&a.numSupportedMorphTargets++;if(a.morphNormals)for(l=a.numSupportedMorphNormals=0;l<D.maxMorphNormals;l++)0<=c["morphNormal"+l]&&a.numSupportedMorphNormals++;c=d.uniforms;if(!a.isShaderMaterial&&!a.isRawShaderMaterial||!0===
    203 a.clipping)d.numClippingPlanes=W.numPlanes,d.numIntersection=W.numIntersection,c.clippingPlanes=W.uniform;d.environment=a.isMeshStandardMaterial?b.environment:null;d.fog=b.fog;d.needsLights=a.isMeshLambertMaterial||a.isMeshToonMaterial||a.isMeshPhongMaterial||a.isMeshStandardMaterial||a.isShadowMaterial||a.isShaderMaterial&&!0===a.lights;d.lightsStateVersion=h;d.needsLights&&(c.ambientLightColor.value=e.state.ambient,c.lightProbe.value=e.state.probe,c.directionalLights.value=e.state.directional,c.directionalLightShadows.value=
    204 e.state.directionalShadow,c.spotLights.value=e.state.spot,c.spotLightShadows.value=e.state.spotShadow,c.rectAreaLights.value=e.state.rectArea,c.pointLights.value=e.state.point,c.pointLightShadows.value=e.state.pointShadow,c.hemisphereLights.value=e.state.hemi,c.directionalShadowMap.value=e.state.directionalShadowMap,c.directionalShadowMatrix.value=e.state.directionalShadowMatrix,c.spotShadowMap.value=e.state.spotShadowMap,c.spotShadowMatrix.value=e.state.spotShadowMatrix,c.pointShadowMap.value=e.state.pointShadowMap,
    205 c.pointShadowMatrix.value=e.state.pointShadowMatrix);a=d.program.getUniforms();a=Cb.seqWithValue(a.seq,c);d.uniformsList=a}function k(a,b,c,d){!0!==b.isScene&&(b=ng);ba.resetTextureUnits();var e=b.fog,f=c.isMeshStandardMaterial?b.environment:null,g=null===J?D.outputEncoding:J.texture.encoding,h=Ia.get(c),l=A.state.lights;!0!==pa||!0!==mg&&a===O||W.setState(c.clippingPlanes,c.clipIntersection,c.clipShadows,a,h,a===O&&c.id===F);c.version===h.__version?void 0===h.program?p(c,b,d):c.fog&&h.fog!==e?p(c,
    206 b,d):h.environment!==f?p(c,b,d):h.needsLights&&h.lightsStateVersion!==l.state.version?p(c,b,d):void 0===h.numClippingPlanes||h.numClippingPlanes===W.numPlanes&&h.numIntersection===W.numIntersection?h.outputEncoding!==g&&p(c,b,d):p(c,b,d):(p(c,b,d),h.__version=c.version);var n=!1,q=!1,k=!1;b=h.program;g=b.getUniforms();l=h.uniforms;na.useProgram(b.program)&&(k=q=n=!0);c.id!==F&&(F=c.id,q=!0);if(n||O!==a){g.setValue(M,"projectionMatrix",a.projectionMatrix);Ha.logarithmicDepthBuffer&&g.setValue(M,"logDepthBufFC",
    207 2/(Math.log(a.far+1)/Math.LN2));O!==a&&(O=a,k=q=!0);if(c.isShaderMaterial||c.isMeshPhongMaterial||c.isMeshToonMaterial||c.isMeshStandardMaterial||c.envMap)n=g.map.cameraPosition,void 0!==n&&n.setValue(M,Fb.setFromMatrixPosition(a.matrixWorld));(c.isMeshPhongMaterial||c.isMeshToonMaterial||c.isMeshLambertMaterial||c.isMeshBasicMaterial||c.isMeshStandardMaterial||c.isShaderMaterial)&&g.setValue(M,"isOrthographic",!0===a.isOrthographicCamera);(c.isMeshPhongMaterial||c.isMeshToonMaterial||c.isMeshLambertMaterial||
    208 c.isMeshBasicMaterial||c.isMeshStandardMaterial||c.isShaderMaterial||c.isShadowMaterial||c.skinning)&&g.setValue(M,"viewMatrix",a.matrixWorldInverse)}if(c.skinning&&(g.setOptional(M,d,"bindMatrix"),g.setOptional(M,d,"bindMatrixInverse"),a=d.skeleton))if(n=a.bones,Ha.floatVertexTextures){if(void 0===a.boneTexture){n=Math.sqrt(4*n.length);n=P.ceilPowerOfTwo(n);n=Math.max(n,4);var r=new Float32Array(n*n*4);r.set(a.boneMatrices);var z=new bc(r,n,n,1023,1015);a.boneMatrices=r;a.boneTexture=z;a.boneTextureSize=
    209 n}g.setValue(M,"boneTexture",a.boneTexture,ba);g.setValue(M,"boneTextureSize",a.boneTextureSize)}else g.setOptional(M,a,"boneMatrices");if(q||h.receiveShadow!==d.receiveShadow)h.receiveShadow=d.receiveShadow,g.setValue(M,"receiveShadow",d.receiveShadow);q&&(g.setValue(M,"toneMappingExposure",D.toneMappingExposure),h.needsLights&&(q=k,l.ambientLightColor.needsUpdate=q,l.lightProbe.needsUpdate=q,l.directionalLights.needsUpdate=q,l.directionalLightShadows.needsUpdate=q,l.pointLights.needsUpdate=q,l.pointLightShadows.needsUpdate=
    210 q,l.spotLights.needsUpdate=q,l.spotLightShadows.needsUpdate=q,l.rectAreaLights.needsUpdate=q,l.hemisphereLights.needsUpdate=q),e&&c.fog&&Aa.refreshFogUniforms(l,e),Aa.refreshMaterialUniforms(l,c,f,R,da),void 0!==l.ltc_1&&(l.ltc_1.value=G.LTC_1),void 0!==l.ltc_2&&(l.ltc_2.value=G.LTC_2),Cb.upload(M,h.uniformsList,l,ba));c.isShaderMaterial&&!0===c.uniformsNeedUpdate&&(Cb.upload(M,h.uniformsList,l,ba),c.uniformsNeedUpdate=!1);c.isSpriteMaterial&&g.setValue(M,"center",d.center);g.setValue(M,"modelViewMatrix",
    211 d.modelViewMatrix);g.setValue(M,"normalMatrix",d.normalMatrix);g.setValue(M,"modelMatrix",d.matrixWorld);return b}a=a||{};var r=void 0!==a.canvas?a.canvas:document.createElementNS("http://www.w3.org/1999/xhtml","canvas"),t=void 0!==a.context?a.context:null,v=void 0!==a.alpha?a.alpha:!1,x=void 0!==a.depth?a.depth:!0,B=void 0!==a.stencil?a.stencil:!0,w=void 0!==a.antialias?a.antialias:!1,ca=void 0!==a.premultipliedAlpha?a.premultipliedAlpha:!0,Q=void 0!==a.preserveDrawingBuffer?a.preserveDrawingBuffer:
    212 !1,N=void 0!==a.powerPreference?a.powerPreference:"default",y=void 0!==a.failIfMajorPerformanceCaveat?a.failIfMajorPerformanceCaveat:!1,I=null,A=null;this.domElement=r;this.debug={checkShaderErrors:!0};this.sortObjects=this.autoClearStencil=this.autoClearDepth=this.autoClearColor=this.autoClear=!0;this.clippingPlanes=[];this.localClippingEnabled=!1;this.gammaFactor=2;this.outputEncoding=3E3;this.physicallyCorrectLights=!1;this.toneMapping=0;this.toneMappingExposure=1;this.maxMorphTargets=8;this.maxMorphNormals=
    213 4;var D=this,C=!1,E=null,H=0,K=0,J=null,L=null,F=-1,O=null,X=null,V=new S,T=new S,fa=null,aa=r.width,da=r.height,R=1,ja=null,ka=null,Z=new S(0,0,aa,da),ea=new S(0,0,aa,da),la=!1,oa=new Jc,W=new pj,pa=!1,mg=!1,Ld=new U,Fb=new m,ng={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0},M=t;try{t={alpha:v,depth:x,stencil:B,antialias:w,premultipliedAlpha:ca,preserveDrawingBuffer:Q,powerPreference:N,failIfMajorPerformanceCaveat:y};r.addEventListener("webglcontextlost",d,!1);r.addEventListener("webglcontextrestored",
    214 e,!1);if(null===M&&(v=["webgl2","webgl","experimental-webgl"],!0===D.isWebGL1Renderer&&v.shift(),M=b(v,t),null===M)){if(b(v))throw Error("Error creating WebGL context with your selected attributes.");throw Error("Error creating WebGL context.");}void 0===M.getShaderPrecisionFormat&&(M.getShaderPrecisionFormat=function(){return{rangeMin:1,rangeMax:1,precision:1}})}catch(Wh){throw console.error("THREE.WebGLRenderer: "+Wh.message),Wh;}var ma,Ha,na,Y,Ia,ba,ua,ya,ta,qa,Aa,za,wa,ra,Ca,Da,Ea,sa,ia;c();var xa=
    215 new Vh(D,M);this.xr=xa;var Ga=new Th(D,ta,Ha.maxTextureSize);this.shadowMap=Ga;this.getContext=function(){return M};this.getContextAttributes=function(){return M.getContextAttributes()};this.forceContextLoss=function(){var a=ma.get("WEBGL_lose_context");a&&a.loseContext()};this.forceContextRestore=function(){var a=ma.get("WEBGL_lose_context");a&&a.restoreContext()};this.getPixelRatio=function(){return R};this.setPixelRatio=function(a){void 0!==a&&(R=a,this.setSize(aa,da,!1))};this.getSize=function(a){void 0===
    216 a&&(console.warn("WebGLRenderer: .getsize() now requires a Vector2 as an argument"),a=new u);return a.set(aa,da)};this.setSize=function(a,b,c){xa.isPresenting?console.warn("THREE.WebGLRenderer: Can't change size while VR device is presenting."):(aa=a,da=b,r.width=Math.floor(a*R),r.height=Math.floor(b*R),!1!==c&&(r.style.width=a+"px",r.style.height=b+"px"),this.setViewport(0,0,a,b))};this.getDrawingBufferSize=function(a){void 0===a&&(console.warn("WebGLRenderer: .getdrawingBufferSize() now requires a Vector2 as an argument"),
    217 a=new u);return a.set(aa*R,da*R).floor()};this.setDrawingBufferSize=function(a,b,c){aa=a;da=b;R=c;r.width=Math.floor(a*c);r.height=Math.floor(b*c);this.setViewport(0,0,a,b)};this.getCurrentViewport=function(a){void 0===a&&(console.warn("WebGLRenderer: .getCurrentViewport() now requires a Vector4 as an argument"),a=new S);return a.copy(V)};this.getViewport=function(a){return a.copy(Z)};this.setViewport=function(a,b,c,d){a.isVector4?Z.set(a.x,a.y,a.z,a.w):Z.set(a,b,c,d);na.viewport(V.copy(Z).multiplyScalar(R).floor())};
    218 this.getScissor=function(a){return a.copy(ea)};this.setScissor=function(a,b,c,d){a.isVector4?ea.set(a.x,a.y,a.z,a.w):ea.set(a,b,c,d);na.scissor(T.copy(ea).multiplyScalar(R).floor())};this.getScissorTest=function(){return la};this.setScissorTest=function(a){na.setScissorTest(la=a)};this.setOpaqueSort=function(a){ja=a};this.setTransparentSort=function(a){ka=a};this.getClearColor=function(){return ra.getClearColor()};this.setClearColor=function(){ra.setClearColor.apply(ra,arguments)};this.getClearAlpha=
    219 function(){return ra.getClearAlpha()};this.setClearAlpha=function(){ra.setClearAlpha.apply(ra,arguments)};this.clear=function(a,b,c){var d=0;if(void 0===a||a)d|=16384;if(void 0===b||b)d|=256;if(void 0===c||c)d|=1024;M.clear(d)};this.clearColor=function(){this.clear(!0,!1,!1)};this.clearDepth=function(){this.clear(!1,!0,!1)};this.clearStencil=function(){this.clear(!1,!1,!0)};this.dispose=function(){r.removeEventListener("webglcontextlost",d,!1);r.removeEventListener("webglcontextrestored",e,!1);za.dispose();
    220 wa.dispose();Ia.dispose();ta.dispose();ia.dispose();xa.dispose();Ba.stop()};this.renderBufferImmediate=function(a,b){ia.initAttributes();var c=Ia.get(a);a.hasPositions&&!c.position&&(c.position=M.createBuffer());a.hasNormals&&!c.normal&&(c.normal=M.createBuffer());a.hasUvs&&!c.uv&&(c.uv=M.createBuffer());a.hasColors&&!c.color&&(c.color=M.createBuffer());b=b.getAttributes();a.hasPositions&&(M.bindBuffer(34962,c.position),M.bufferData(34962,a.positionArray,35048),ia.enableAttribute(b.position),M.vertexAttribPointer(b.position,
    221 3,5126,!1,0,0));a.hasNormals&&(M.bindBuffer(34962,c.normal),M.bufferData(34962,a.normalArray,35048),ia.enableAttribute(b.normal),M.vertexAttribPointer(b.normal,3,5126,!1,0,0));a.hasUvs&&(M.bindBuffer(34962,c.uv),M.bufferData(34962,a.uvArray,35048),ia.enableAttribute(b.uv),M.vertexAttribPointer(b.uv,2,5126,!1,0,0));a.hasColors&&(M.bindBuffer(34962,c.color),M.bufferData(34962,a.colorArray,35048),ia.enableAttribute(b.color),M.vertexAttribPointer(b.color,3,5126,!1,0,0));ia.disableUnusedAttributes();M.drawArrays(4,
    222 0,a.count);a.count=0};this.renderBufferDirect=function(a,b,c,d,e,f){null===b&&(b=ng);var g=e.isMesh&&0>e.matrixWorld.determinant();a=k(a,b,d,e);na.setMaterial(d,g);g=c.index;b=c.attributes.position;if(null===g){if(void 0===b||0===b.count)return}else if(0===g.count)return;var h=1;!0===d.wireframe&&(g=ya.getWireframeAttribute(c),h=2);(d.morphTargets||d.morphNormals)&&Ca.update(e,c,d,a);ia.setup(e,d,a,c,g);a=Da;if(null!==g){var l=ua.get(g);a=Ea;a.setIndex(l)}var n=c.drawRange.start*h,q=null!==f?f.start*
    223 h:0;l=Math.max(n,q);f=Math.max(0,Math.min(null!==g?g.count:b.count,n+c.drawRange.count*h,q+(null!==f?f.count*h:Infinity))-1-l+1);0!==f&&(e.isMesh?!0===d.wireframe?(na.setLineWidth(d.wireframeLinewidth*(null===J?R:1)),a.setMode(1)):a.setMode(4):e.isLine?(d=d.linewidth,void 0===d&&(d=1),na.setLineWidth(d*(null===J?R:1)),e.isLineSegments?a.setMode(1):e.isLineLoop?a.setMode(2):a.setMode(3)):e.isPoints?a.setMode(0):e.isSprite&&a.setMode(4),e.isInstancedMesh?a.renderInstances(l,f,e.count):c.isInstancedBufferGeometry?
    224 a.renderInstances(l,f,Math.min(c.instanceCount,c._maxInstanceCount)):a.render(l,f))};this.compile=function(a,b){A=wa.get(a,b);A.init();a.traverse(function(a){a.isLight&&(A.pushLight(a),a.castShadow&&A.pushShadow(a))});A.setupLights(b);var c=new WeakMap;a.traverse(function(b){var d=b.material;if(d)if(Array.isArray(d))for(var e=0;e<d.length;e++){var f=d[e];!1===c.has(f)&&(p(f,a,b),c.set(f))}else!1===c.has(d)&&(p(d,a,b),c.set(d))})};var Fa=null,Ba=new wh;Ba.setAnimationLoop(function(a){xa.isPresenting||
    225 Fa&&Fa(a)});"undefined"!==typeof window&&Ba.setContext(window);this.setAnimationLoop=function(a){Fa=a;xa.setAnimationLoop(a);null===a?Ba.stop():Ba.start()};this.render=function(a,b,c,d){if(void 0!==c){console.warn("THREE.WebGLRenderer.render(): the renderTarget argument has been removed. Use .setRenderTarget() instead.");var e=c}if(void 0!==d){console.warn("THREE.WebGLRenderer.render(): the forceClear argument has been removed. Use .clear() instead.");var f=d}if(void 0!==b&&!0!==b.isCamera)console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");
    226 else if(!0!==C){ia.resetDefaultState();F=-1;O=null;!0===a.autoUpdate&&a.updateMatrixWorld();null===b.parent&&b.updateMatrixWorld();!0===xa.enabled&&!0===xa.isPresenting&&(b=xa.getCamera(b));if(!0===a.isScene)a.onBeforeRender(D,a,b,e||J);A=wa.get(a,b);A.init();Ld.multiplyMatrices(b.projectionMatrix,b.matrixWorldInverse);oa.setFromProjectionMatrix(Ld);mg=this.localClippingEnabled;pa=W.init(this.clippingPlanes,mg,b);I=za.get(a,b);I.init();l(a,b,0,D.sortObjects);I.finish();!0===D.sortObjects&&I.sort(ja,
    227 ka);!0===pa&&W.beginShadows();Ga.render(A.state.shadowsArray,a,b);A.setupLights(b);!0===pa&&W.endShadows();!0===this.info.autoReset&&this.info.reset();void 0!==e&&this.setRenderTarget(e);ra.render(I,a,b,f);c=I.opaque;d=I.transparent;0<c.length&&n(c,a,b);0<d.length&&n(d,a,b);if(!0===a.isScene)a.onAfterRender(D,a,b);null!==J&&(ba.updateRenderTargetMipmap(J),ba.updateMultisampleRenderTarget(J));na.buffers.depth.setTest(!0);na.buffers.depth.setMask(!0);na.buffers.color.setMask(!0);na.setPolygonOffset(!1);
    228 A=I=null}};this.setFramebuffer=function(a){E!==a&&null===J&&M.bindFramebuffer(36160,a);E=a};this.getActiveCubeFace=function(){return H};this.getActiveMipmapLevel=function(){return K};this.getRenderTarget=function(){return J};this.setRenderTarget=function(a,b,c){J=a;H=b;K=c;a&&void 0===Ia.get(a).__webglFramebuffer&&ba.setupRenderTarget(a);var d=E,e=!1;a?(d=Ia.get(a).__webglFramebuffer,a.isWebGLCubeRenderTarget?(d=d[b||0],e=!0):d=a.isWebGLMultisampleRenderTarget?Ia.get(a).__webglMultisampledFramebuffer:
    229 d,V.copy(a.viewport),T.copy(a.scissor),fa=a.scissorTest):(V.copy(Z).multiplyScalar(R).floor(),T.copy(ea).multiplyScalar(R).floor(),fa=la);L!==d&&(M.bindFramebuffer(36160,d),L=d);na.viewport(V);na.scissor(T);na.setScissorTest(fa);e&&(a=Ia.get(a.texture),M.framebufferTexture2D(36160,36064,34069+(b||0),a.__webglTexture,c||0))};this.readRenderTargetPixels=function(a,b,c,d,e,f,g){if(a&&a.isWebGLRenderTarget){var h=Ia.get(a).__webglFramebuffer;a.isWebGLCubeRenderTarget&&void 0!==g&&(h=h[g]);if(h){g=!1;
    230 h!==L&&(M.bindFramebuffer(36160,h),g=!0);try{var l=a.texture,n=l.format,q=l.type;1023!==n&&sa.convert(n)!==M.getParameter(35739)?console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format."):1009===q||sa.convert(q)===M.getParameter(35738)||1015===q&&(Ha.isWebGL2||ma.get("OES_texture_float")||ma.get("WEBGL_color_buffer_float"))||1016===q&&(Ha.isWebGL2?ma.get("EXT_color_buffer_float"):ma.get("EXT_color_buffer_half_float"))?36053===M.checkFramebufferStatus(36160)?
    231 0<=b&&b<=a.width-d&&0<=c&&c<=a.height-e&&M.readPixels(b,c,d,e,sa.convert(n),sa.convert(q),f):console.error("THREE.WebGLRenderer.readRenderTargetPixels: readPixels from renderTarget failed. Framebuffer not complete."):console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.")}finally{g&&M.bindFramebuffer(36160,L)}}}else console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.")};
    232 this.copyFramebufferToTexture=function(a,b,c){void 0===c&&(c=0);var d=Math.pow(2,-c),e=Math.floor(b.image.width*d);d=Math.floor(b.image.height*d);var f=sa.convert(b.format);ba.setTexture2D(b,0);M.copyTexImage2D(3553,c,f,a.x,a.y,e,d,0);na.unbindTexture()};this.copyTextureToTexture=function(a,b,c,d){void 0===d&&(d=0);var e=b.image.width,f=b.image.height,g=sa.convert(c.format),h=sa.convert(c.type);ba.setTexture2D(c,0);M.pixelStorei(37440,c.flipY);M.pixelStorei(37441,c.premultiplyAlpha);M.pixelStorei(3317,
    233 c.unpackAlignment);b.isDataTexture?M.texSubImage2D(3553,d,a.x,a.y,e,f,g,h,b.image.data):b.isCompressedTexture?M.compressedTexSubImage2D(3553,d,a.x,a.y,b.mipmaps[0].width,b.mipmaps[0].height,g,b.mipmaps[0].data):M.texSubImage2D(3553,d,a.x,a.y,g,h,b.image);0===d&&c.generateMipmaps&&M.generateMipmap(3553);na.unbindTexture()};this.initTexture=function(a){ba.setTexture2D(a,0);na.unbindTexture()};"undefined"!==typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}
    234 function og(a){Nd.call(this,a)}function Oe(a,b){this.name="";this.color=new H(a);this.density=void 0!==b?b:2.5E-4}function Pe(a,b,c){this.name="";this.color=new H(a);this.near=void 0!==b?b:1;this.far=void 0!==c?c:1E3}function Ba(a,b){this.array=a;this.stride=b;this.count=void 0!==a?a.length/b:0;this.usage=35044;this.updateRange={offset:0,count:-1};this.version=0;this.uuid=P.generateUUID()}function Hb(a,b,c,d){this.name="";this.data=a;this.itemSize=b;this.offset=c;this.normalized=!0===d}function Ib(a){L.call(this);
    235 this.type="SpriteMaterial";this.color=new H(16777215);this.alphaMap=this.map=null;this.rotation=0;this.transparent=this.sizeAttenuation=!0;this.setValues(a)}function Od(a){C.call(this);this.type="Sprite";if(void 0===Nc){Nc=new E;var b=new Float32Array([-.5,-.5,0,0,0,.5,-.5,0,1,0,.5,.5,0,1,1,-.5,.5,0,0,1]);b=new Ba(b,5);Nc.setIndex([0,1,2,0,2,3]);Nc.setAttribute("position",new Hb(b,3,0,!1));Nc.setAttribute("uv",new Hb(b,2,3,!1))}this.geometry=Nc;this.material=void 0!==a?a:new Ib;this.center=new u(.5,
    236 .5)}function Qe(a,b,c,d,e,f){Oc.subVectors(a,c).addScalar(.5).multiply(d);void 0!==e?(Pd.x=f*Oc.x-e*Oc.y,Pd.y=e*Oc.x+f*Oc.y):Pd.copy(Oc);a.copy(b);a.x+=Pd.x;a.y+=Pd.y;a.applyMatrix4(Xh)}function Qd(){C.call(this);this._currentLevel=0;this.type="LOD";Object.defineProperties(this,{levels:{enumerable:!0,value:[]}});this.autoUpdate=!0}function Re(a,b){a&&a.isGeometry&&console.error("THREE.SkinnedMesh no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.");T.call(this,a,b);this.type="SkinnedMesh";
    237 this.bindMode="attached";this.bindMatrix=new U;this.bindMatrixInverse=new U}function Se(a,b){a=a||[];this.bones=a.slice(0);this.boneMatrices=new Float32Array(16*this.bones.length);this.frame=-1;if(void 0===b)this.calculateInverses();else if(this.bones.length===b.length)this.boneInverses=b.slice(0);else for(console.warn("THREE.Skeleton boneInverses is the wrong length."),this.boneInverses=[],a=0,b=this.bones.length;a<b;a++)this.boneInverses.push(new U)}function pg(){C.call(this);this.type="Bone"}function Te(a,
    238 b,c){T.call(this,a,b);this.instanceMatrix=new J(new Float32Array(16*c),16);this.count=c;this.frustumCulled=!1}function ja(a){L.call(this);this.type="LineBasicMaterial";this.color=new H(16777215);this.linewidth=1;this.linejoin=this.linecap="round";this.morphTargets=!1;this.setValues(a)}function Ja(a,b,c){1===c&&console.error("THREE.Line: parameter THREE.LinePieces no longer supported. Use THREE.LineSegments instead.");C.call(this);this.type="Line";this.geometry=void 0!==a?a:new E;this.material=void 0!==
    239 b?b:new ja;this.updateMorphTargets()}function ea(a,b){Ja.call(this,a,b);this.type="LineSegments"}function Ue(a,b){Ja.call(this,a,b);this.type="LineLoop"}function Va(a){L.call(this);this.type="PointsMaterial";this.color=new H(16777215);this.alphaMap=this.map=null;this.size=1;this.sizeAttenuation=!0;this.morphTargets=!1;this.setValues(a)}function Pc(a,b){C.call(this);this.type="Points";this.geometry=void 0!==a?a:new E;this.material=void 0!==b?b:new Va;this.updateMorphTargets()}function qg(a,b,c,d,e,
    240 f,g){var h=rg.distanceSqToPoint(a);h<c&&(c=new m,rg.closestPointToPoint(a,c),c.applyMatrix4(d),a=e.ray.origin.distanceTo(c),a<e.near||a>e.far||f.push({distance:a,distanceToRay:Math.sqrt(h),point:c,index:b,face:null,object:g}))}function sg(a,b,c,d,e,f,g,h,l){function n(){q.needsUpdate=!0;a.requestVideoFrameCallback(n)}V.call(this,a,b,c,d,e,f,g,h,l);this.format=void 0!==g?g:1022;this.minFilter=void 0!==f?f:1006;this.magFilter=void 0!==e?e:1006;this.generateMipmaps=!1;var q=this;"requestVideoFrameCallback"in
    241 a&&a.requestVideoFrameCallback(n)}function Qc(a,b,c,d,e,f,g,h,l,n,q,p){V.call(this,null,f,g,h,l,n,d,e,q,p);this.image={width:b,height:c};this.mipmaps=a;this.generateMipmaps=this.flipY=!1}function Rd(a,b,c,d,e,f,g,h,l){V.call(this,a,b,c,d,e,f,g,h,l);this.needsUpdate=!0}function Sd(a,b,c,d,e,f,g,h,l,n){n=void 0!==n?n:1026;if(1026!==n&&1027!==n)throw Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");void 0===c&&1026===n&&(c=1012);void 0===c&&1027===n&&(c=1020);
    242 V.call(this,null,d,e,f,g,h,n,c,l);this.image={width:a,height:b};this.magFilter=void 0!==g?g:1003;this.minFilter=void 0!==h?h:1003;this.generateMipmaps=this.flipY=!1}function Rc(a){E.call(this);this.type="WireframeGeometry";var b=[],c=[0,0],d={},e=["a","b","c"];if(a&&a.isGeometry){for(var f=a.faces,g=0,h=f.length;g<h;g++)for(var l=f[g],n=0;3>n;n++){var q=l[e[n]],p=l[e[(n+1)%3]];c[0]=Math.min(q,p);c[1]=Math.max(q,p);q=c[0]+","+c[1];void 0===d[q]&&(d[q]={index1:c[0],index2:c[1]})}for(var k in d)c=d[k],
    243 f=a.vertices[c.index1],b.push(f.x,f.y,f.z),f=a.vertices[c.index2],b.push(f.x,f.y,f.z)}else if(a&&a.isBufferGeometry)if(k=new m,null!==a.index){e=a.attributes.position;g=a.index;a=a.groups;0===a.length&&(a=[{start:0,count:g.count,materialIndex:0}]);h=0;for(l=a.length;h<l;++h)for(q=a[h],n=p=q.start,q=p+q.count;n<q;n+=3)for(p=0;3>p;p++){var r=g.getX(n+p),t=g.getX(n+(p+1)%3);c[0]=Math.min(r,t);c[1]=Math.max(r,t);r=c[0]+","+c[1];void 0===d[r]&&(d[r]={index1:c[0],index2:c[1]})}for(f in d)c=d[f],k.fromBufferAttribute(e,
    244 c.index1),b.push(k.x,k.y,k.z),k.fromBufferAttribute(e,c.index2),b.push(k.x,k.y,k.z)}else for(d=a.attributes.position,c=0,f=d.count/3;c<f;c++)for(a=0;3>a;a++)k.fromBufferAttribute(d,3*c+a),b.push(k.x,k.y,k.z),k.fromBufferAttribute(d,3*c+(a+1)%3),b.push(k.x,k.y,k.z);this.setAttribute("position",new A(b,3))}function Td(a,b,c){F.call(this);this.type="ParametricGeometry";this.parameters={func:a,slices:b,stacks:c};this.fromBufferGeometry(new Sc(a,b,c));this.mergeVertices()}function Sc(a,b,c){E.call(this);
    245 this.type="ParametricBufferGeometry";this.parameters={func:a,slices:b,stacks:c};var d=[],e=[],f=[],g=[],h=new m,l=new m,n=new m,q=new m,k=new m;3>a.length&&console.error("THREE.ParametricGeometry: Function must now modify a Vector3 as third parameter.");for(var z=b+1,r=0;r<=c;r++)for(var t=r/c,v=0;v<=b;v++){var x=v/b;a(x,t,l);e.push(l.x,l.y,l.z);0<=x-1E-5?(a(x-1E-5,t,n),q.subVectors(l,n)):(a(x+1E-5,t,n),q.subVectors(n,l));0<=t-1E-5?(a(x,t-1E-5,n),k.subVectors(l,n)):(a(x,t+1E-5,n),k.subVectors(n,l));
    246 h.crossVectors(q,k).normalize();f.push(h.x,h.y,h.z);g.push(x,t)}for(a=0;a<c;a++)for(h=0;h<b;h++)l=a*z+h+1,n=(a+1)*z+h+1,q=(a+1)*z+h,d.push(a*z+h,l,q),d.push(l,n,q);this.setIndex(d);this.setAttribute("position",new A(e,3));this.setAttribute("normal",new A(f,3));this.setAttribute("uv",new A(g,2))}function Ud(a,b,c,d){F.call(this);this.type="PolyhedronGeometry";this.parameters={vertices:a,indices:b,radius:c,detail:d};this.fromBufferGeometry(new sa(a,b,c,d));this.mergeVertices()}function sa(a,b,c,d){function e(a){h.push(a.x,
    247 a.y,a.z)}function f(b,c){b*=3;c.x=a[b+0];c.y=a[b+1];c.z=a[b+2]}function g(a,b,c,d){0>d&&1===a.x&&(l[b]=a.x-1);0===c.x&&0===c.z&&(l[b]=d/2/Math.PI+.5)}E.call(this);this.type="PolyhedronBufferGeometry";this.parameters={vertices:a,indices:b,radius:c,detail:d};c=c||1;d=d||0;var h=[],l=[];(function(a){for(var c=new m,d=new m,g=new m,h=0;h<b.length;h+=3){f(b[h+0],c);f(b[h+1],d);f(b[h+2],g);for(var l=c,n=d,k=g,B=Math.pow(2,a),w=[],u=0;u<=B;u++){w[u]=[];for(var A=l.clone().lerp(k,u/B),N=n.clone().lerp(k,
    248 u/B),y=B-u,I=0;I<=y;I++)w[u][I]=0===I&&u===B?A:A.clone().lerp(N,I/y)}for(l=0;l<B;l++)for(n=0;n<2*(B-l)-1;n++)k=Math.floor(n/2),0===n%2?(e(w[l][k+1]),e(w[l+1][k]),e(w[l][k])):(e(w[l][k+1]),e(w[l+1][k+1]),e(w[l+1][k]))}})(d);(function(a){for(var b=new m,c=0;c<h.length;c+=3)b.x=h[c+0],b.y=h[c+1],b.z=h[c+2],b.normalize().multiplyScalar(a),h[c+0]=b.x,h[c+1]=b.y,h[c+2]=b.z})(c);(function(){for(var a=new m,b=0;b<h.length;b+=3)a.x=h[b+0],a.y=h[b+1],a.z=h[b+2],l.push(Math.atan2(a.z,-a.x)/2/Math.PI+.5,1-(Math.atan2(-a.y,
    249 Math.sqrt(a.x*a.x+a.z*a.z))/Math.PI+.5));a=new m;b=new m;for(var c=new m,d=new m,e=new u,f=new u,k=new u,x=0,B=0;x<h.length;x+=9,B+=6){a.set(h[x+0],h[x+1],h[x+2]);b.set(h[x+3],h[x+4],h[x+5]);c.set(h[x+6],h[x+7],h[x+8]);e.set(l[B+0],l[B+1]);f.set(l[B+2],l[B+3]);k.set(l[B+4],l[B+5]);d.copy(a).add(b).add(c).divideScalar(3);var w=Math.atan2(d.z,-d.x);g(e,B+0,a,w);g(f,B+2,b,w);g(k,B+4,c,w)}for(a=0;a<l.length;a+=6)b=l[a+0],c=l[a+2],d=l[a+4],e=Math.min(b,c,d),.9<Math.max(b,c,d)&&.1>e&&(.2>b&&(l[a+0]+=1),
    250 .2>c&&(l[a+2]+=1),.2>d&&(l[a+4]+=1))})();this.setAttribute("position",new A(h,3));this.setAttribute("normal",new A(h.slice(),3));this.setAttribute("uv",new A(l,2));0===d?this.computeVertexNormals():this.normalizeNormals()}function Vd(a,b){F.call(this);this.type="TetrahedronGeometry";this.parameters={radius:a,detail:b};this.fromBufferGeometry(new Tc(a,b));this.mergeVertices()}function Tc(a,b){sa.call(this,[1,1,1,-1,-1,1,-1,1,-1,1,-1,-1],[2,1,0,0,3,2,1,3,0,2,3,1],a,b);this.type="TetrahedronBufferGeometry";
    251 this.parameters={radius:a,detail:b}}function Wd(a,b){F.call(this);this.type="OctahedronGeometry";this.parameters={radius:a,detail:b};this.fromBufferGeometry(new ec(a,b));this.mergeVertices()}function ec(a,b){sa.call(this,[1,0,0,-1,0,0,0,1,0,0,-1,0,0,0,1,0,0,-1],[0,2,4,0,4,3,0,3,5,0,5,2,1,2,5,1,5,3,1,3,4,1,4,2],a,b);this.type="OctahedronBufferGeometry";this.parameters={radius:a,detail:b}}function Xd(a,b){F.call(this);this.type="IcosahedronGeometry";this.parameters={radius:a,detail:b};this.fromBufferGeometry(new Uc(a,
    252 b));this.mergeVertices()}function Uc(a,b){var c=(1+Math.sqrt(5))/2;sa.call(this,[-1,c,0,1,c,0,-1,-c,0,1,-c,0,0,-1,c,0,1,c,0,-1,-c,0,1,-c,c,0,-1,c,0,1,-c,0,-1,-c,0,1],[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],a,b);this.type="IcosahedronBufferGeometry";this.parameters={radius:a,detail:b}}function Yd(a,b){F.call(this);this.type="DodecahedronGeometry";this.parameters={radius:a,detail:b};this.fromBufferGeometry(new Vc(a,
    253 b));this.mergeVertices()}function Vc(a,b){var c=(1+Math.sqrt(5))/2,d=1/c;sa.call(this,[-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,-d,-c,0,-d,c,0,d,-c,0,d,c,-d,-c,0,-d,c,0,d,-c,0,d,c,0,-c,0,-d,c,0,-d,-c,0,d,c,0,d],[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],a,
    254 b);this.type="DodecahedronBufferGeometry";this.parameters={radius:a,detail:b}}function Zd(a,b,c,d,e,f){F.call(this);this.type="TubeGeometry";this.parameters={path:a,tubularSegments:b,radius:c,radialSegments:d,closed:e};void 0!==f&&console.warn("THREE.TubeGeometry: taper has been removed.");a=new fc(a,b,c,d,e);this.tangents=a.tangents;this.normals=a.normals;this.binormals=a.binormals;this.fromBufferGeometry(a);this.mergeVertices()}function fc(a,b,c,d,e){function f(e){q=a.getPointAt(e/b,q);var f=g.normals[e];
    255 e=g.binormals[e];for(var n=0;n<=d;n++){var p=n/d*Math.PI*2,r=Math.sin(p);p=-Math.cos(p);l.x=p*f.x+r*e.x;l.y=p*f.y+r*e.y;l.z=p*f.z+r*e.z;l.normalize();z.push(l.x,l.y,l.z);h.x=q.x+c*l.x;h.y=q.y+c*l.y;h.z=q.z+c*l.z;k.push(h.x,h.y,h.z)}}E.call(this);this.type="TubeBufferGeometry";this.parameters={path:a,tubularSegments:b,radius:c,radialSegments:d,closed:e};b=b||64;c=c||1;d=d||8;e=e||!1;var g=a.computeFrenetFrames(b,e);this.tangents=g.tangents;this.normals=g.normals;this.binormals=g.binormals;var h=new m,
    256 l=new m,n=new u,q=new m,k=[],z=[],r=[],t=[];(function(){for(var a=0;a<b;a++)f(a);f(!1===e?b:0);for(a=0;a<=b;a++)for(var c=0;c<=d;c++)n.x=a/b,n.y=c/d,r.push(n.x,n.y);for(a=1;a<=b;a++)for(c=1;c<=d;c++){var g=(d+1)*a+(c-1),h=(d+1)*a+c,l=(d+1)*(a-1)+c;t.push((d+1)*(a-1)+(c-1),g,l);t.push(g,h,l)}})();this.setIndex(t);this.setAttribute("position",new A(k,3));this.setAttribute("normal",new A(z,3));this.setAttribute("uv",new A(r,2))}function $d(a,b,c,d,e,f,g){F.call(this);this.type="TorusKnotGeometry";this.parameters=
    257 {radius:a,tube:b,tubularSegments:c,radialSegments:d,p:e,q:f};void 0!==g&&console.warn("THREE.TorusKnotGeometry: heightScale has been deprecated. Use .scale( x, y, z ) instead.");this.fromBufferGeometry(new Wc(a,b,c,d,e,f));this.mergeVertices()}function Wc(a,b,c,d,e,f){function g(a,b,c,d,e){var f=Math.sin(a);b=c/b*a;c=Math.cos(b);e.x=d*(2+c)*.5*Math.cos(a);e.y=d*(2+c)*f*.5;e.z=d*Math.sin(b)*.5}E.call(this);this.type="TorusKnotBufferGeometry";this.parameters={radius:a,tube:b,tubularSegments:c,radialSegments:d,
    258 p:e,q:f};a=a||1;b=b||.4;c=Math.floor(c)||64;d=Math.floor(d)||8;e=e||2;f=f||3;for(var h=[],l=[],n=[],q=[],k=new m,z=new m,r=new m,t=new m,v=new m,x=new m,B=new m,w=0;w<=c;++w){var u=w/c*e*Math.PI*2;g(u,e,f,a,r);g(u+.01,e,f,a,t);x.subVectors(t,r);B.addVectors(t,r);v.crossVectors(x,B);B.crossVectors(v,x);v.normalize();B.normalize();for(u=0;u<=d;++u){var Q=u/d*Math.PI*2,N=-b*Math.cos(Q);Q=b*Math.sin(Q);k.x=r.x+(N*B.x+Q*v.x);k.y=r.y+(N*B.y+Q*v.y);k.z=r.z+(N*B.z+Q*v.z);l.push(k.x,k.y,k.z);z.subVectors(k,
    259 r).normalize();n.push(z.x,z.y,z.z);q.push(w/c);q.push(u/d)}}for(a=1;a<=c;a++)for(b=1;b<=d;b++)e=(d+1)*a+(b-1),f=(d+1)*a+b,k=(d+1)*(a-1)+b,h.push((d+1)*(a-1)+(b-1),e,k),h.push(e,f,k);this.setIndex(h);this.setAttribute("position",new A(l,3));this.setAttribute("normal",new A(n,3));this.setAttribute("uv",new A(q,2))}function ae(a,b,c,d,e){F.call(this);this.type="TorusGeometry";this.parameters={radius:a,tube:b,radialSegments:c,tubularSegments:d,arc:e};this.fromBufferGeometry(new Xc(a,b,c,d,e));this.mergeVertices()}
    260 function Xc(a,b,c,d,e){E.call(this);this.type="TorusBufferGeometry";this.parameters={radius:a,tube:b,radialSegments:c,tubularSegments:d,arc:e};a=a||1;b=b||.4;c=Math.floor(c)||8;d=Math.floor(d)||6;e=e||2*Math.PI;for(var f=[],g=[],h=[],l=[],n=new m,k=new m,p=new m,z=0;z<=c;z++)for(var r=0;r<=d;r++){var t=r/d*e,v=z/c*Math.PI*2;k.x=(a+b*Math.cos(v))*Math.cos(t);k.y=(a+b*Math.cos(v))*Math.sin(t);k.z=b*Math.sin(v);g.push(k.x,k.y,k.z);n.x=a*Math.cos(t);n.y=a*Math.sin(t);p.subVectors(k,n).normalize();h.push(p.x,
    261 p.y,p.z);l.push(r/d);l.push(z/c)}for(a=1;a<=c;a++)for(b=1;b<=d;b++)e=(d+1)*(a-1)+b-1,n=(d+1)*(a-1)+b,k=(d+1)*a+b,f.push((d+1)*a+b-1,e,k),f.push(e,n,k);this.setIndex(f);this.setAttribute("position",new A(g,3));this.setAttribute("normal",new A(h,3));this.setAttribute("uv",new A(l,2))}function Yh(a,b,c,d,e){for(var f,g=0,h=b,l=c-d;h<c;h+=d)g+=(a[l]-a[h])*(a[h+1]+a[l+1]),l=h;if(e===0<g)for(e=b;e<c;e+=d)f=Zh(e,a[e],a[e+1],f);else for(e=c-d;e>=b;e-=d)f=Zh(e,a[e],a[e+1],f);f&&Ve(f,f.next)&&(be(f),f=f.next);
    262 return f}function Jb(a,b){if(!a)return a;b||(b=a);do{var c=!1;if(a.steiner||!Ve(a,a.next)&&0!==Z(a.prev,a,a.next))a=a.next;else{be(a);a=b=a.prev;if(a===a.next)break;c=!0}}while(c||a!==b);return b}function ce(a,b,c,d,e,f,g){if(a){if(!g&&f){var h=a,l=h;do null===l.z&&(l.z=tg(l.x,l.y,d,e,f)),l.prevZ=l.prev,l=l.nextZ=l.next;while(l!==h);l.prevZ.nextZ=null;l.prevZ=null;h=l;var n,k,p,z,r=1;do{l=h;var t=h=null;for(k=0;l;){k++;var m=l;for(n=p=0;n<r&&(p++,m=m.nextZ,m);n++);for(z=r;0<p||0<z&&m;)0!==p&&(0===
    263 z||!m||l.z<=m.z)?(n=l,l=l.nextZ,p--):(n=m,m=m.nextZ,z--),t?t.nextZ=n:h=n,n.prevZ=t,t=n;l=m}t.nextZ=null;r*=2}while(1<k)}for(h=a;a.prev!==a.next;){l=a.prev;m=a.next;if(f)t=Dk(a,d,e,f);else a:if(t=a,k=t.prev,p=t,r=t.next,0<=Z(k,p,r))t=!1;else{for(n=t.next.next;n!==t.prev;){if(Yc(k.x,k.y,p.x,p.y,r.x,r.y,n.x,n.y)&&0<=Z(n.prev,n,n.next)){t=!1;break a}n=n.next}t=!0}if(t)b.push(l.i/c),b.push(a.i/c),b.push(m.i/c),be(a),h=a=m.next;else if(a=m,a===h){if(!g)ce(Jb(a),b,c,d,e,f,1);else if(1===g){a=Jb(a);g=b;h=
    264 c;l=a;do m=l.prev,t=l.next.next,!Ve(m,t)&&$h(m,l,l.next,t)&&de(m,t)&&de(t,m)&&(g.push(m.i/h),g.push(l.i/h),g.push(t.i/h),be(l),be(l.next),l=a=t),l=l.next;while(l!==a);a=Jb(l);ce(a,b,c,d,e,f,2)}else if(2===g)a:{g=a;do{for(h=g.next.next;h!==g.prev;){if(l=g.i!==h.i){l=g;m=h;if(t=l.next.i!==m.i&&l.prev.i!==m.i){b:{t=l;do{if(t.i!==l.i&&t.next.i!==l.i&&t.i!==m.i&&t.next.i!==m.i&&$h(t,t.next,l,m)){t=!0;break b}t=t.next}while(t!==l);t=!1}t=!t}if(t){if(t=de(l,m)&&de(m,l)){t=l;k=!1;p=(l.x+m.x)/2;r=(l.y+m.y)/
    265 2;do t.y>r!==t.next.y>r&&t.next.y!==t.y&&p<(t.next.x-t.x)*(r-t.y)/(t.next.y-t.y)+t.x&&(k=!k),t=t.next;while(t!==l);t=k}t=t&&(Z(l.prev,l,m.prev)||Z(l,m.prev,m))||Ve(l,m)&&0<Z(l.prev,l,l.next)&&0<Z(m.prev,m,m.next)}l=t}if(l){a=ai(g,h);g=Jb(g,g.next);a=Jb(a,a.next);ce(g,b,c,d,e,f);ce(a,b,c,d,e,f);break a}h=h.next}g=g.next}while(g!==a)}break}}}}function Dk(a,b,c,d){var e=a.prev,f=a.next;if(0<=Z(e,a,f))return!1;var g=e.x>a.x?e.x>f.x?e.x:f.x:a.x>f.x?a.x:f.x,h=e.y>a.y?e.y>f.y?e.y:f.y:a.y>f.y?a.y:f.y,l=tg(e.x<
    266 a.x?e.x<f.x?e.x:f.x:a.x<f.x?a.x:f.x,e.y<a.y?e.y<f.y?e.y:f.y:a.y<f.y?a.y:f.y,b,c,d);b=tg(g,h,b,c,d);c=a.prevZ;for(d=a.nextZ;c&&c.z>=l&&d&&d.z<=b;){if(c!==a.prev&&c!==a.next&&Yc(e.x,e.y,a.x,a.y,f.x,f.y,c.x,c.y)&&0<=Z(c.prev,c,c.next))return!1;c=c.prevZ;if(d!==a.prev&&d!==a.next&&Yc(e.x,e.y,a.x,a.y,f.x,f.y,d.x,d.y)&&0<=Z(d.prev,d,d.next))return!1;d=d.nextZ}for(;c&&c.z>=l;){if(c!==a.prev&&c!==a.next&&Yc(e.x,e.y,a.x,a.y,f.x,f.y,c.x,c.y)&&0<=Z(c.prev,c,c.next))return!1;c=c.prevZ}for(;d&&d.z<=b;){if(d!==
    267 a.prev&&d!==a.next&&Yc(e.x,e.y,a.x,a.y,f.x,f.y,d.x,d.y)&&0<=Z(d.prev,d,d.next))return!1;d=d.nextZ}return!0}function Ek(a,b){return a.x-b.x}function Fk(a,b){var c=b,d=a.x,e=a.y,f=-Infinity;do{if(e<=c.y&&e>=c.next.y&&c.next.y!==c.y){var g=c.x+(e-c.y)*(c.next.x-c.x)/(c.next.y-c.y);if(g<=d&&g>f){f=g;if(g===d){if(e===c.y)return c;if(e===c.next.y)return c.next}var h=c.x<c.next.x?c:c.next}}c=c.next}while(c!==b);if(!h)return null;if(d===f)return h;b=h;g=h.x;var l=h.y,n=Infinity;c=h;do{if(d>=c.x&&c.x>=g&&
    268 d!==c.x&&Yc(e<l?d:f,e,g,l,e<l?f:d,e,c.x,c.y)){var k=Math.abs(e-c.y)/(d-c.x);var p;if((p=de(c,a))&&!(p=k<n)&&(p=k===n)&&!(p=c.x>h.x)&&(p=c.x===h.x)){p=h;var m=c;p=0>Z(p.prev,p,m.prev)&&0>Z(m.next,p,p.next)}p&&(h=c,n=k)}c=c.next}while(c!==b);return h}function tg(a,b,c,d,e){a=32767*(a-c)*e;b=32767*(b-d)*e;a=(a|a<<8)&16711935;a=(a|a<<4)&252645135;a=(a|a<<2)&858993459;b=(b|b<<8)&16711935;b=(b|b<<4)&252645135;b=(b|b<<2)&858993459;return(a|a<<1)&1431655765|((b|b<<1)&1431655765)<<1}function Gk(a){var b=a,
    269 c=a;do{if(b.x<c.x||b.x===c.x&&b.y<c.y)c=b;b=b.next}while(b!==a);return c}function Yc(a,b,c,d,e,f,g,h){return 0<=(e-g)*(b-h)-(a-g)*(f-h)&&0<=(a-g)*(d-h)-(c-g)*(b-h)&&0<=(c-g)*(f-h)-(e-g)*(d-h)}function Z(a,b,c){return(b.y-a.y)*(c.x-b.x)-(b.x-a.x)*(c.y-b.y)}function Ve(a,b){return a.x===b.x&&a.y===b.y}function $h(a,b,c,d){var e=We(Z(a,b,c)),f=We(Z(a,b,d)),g=We(Z(c,d,a)),h=We(Z(c,d,b));return e!==f&&g!==h||0===e&&Xe(a,c,b)||0===f&&Xe(a,d,b)||0===g&&Xe(c,a,d)||0===h&&Xe(c,b,d)?!0:!1}function Xe(a,b,c){return b.x<=
    270 Math.max(a.x,c.x)&&b.x>=Math.min(a.x,c.x)&&b.y<=Math.max(a.y,c.y)&&b.y>=Math.min(a.y,c.y)}function We(a){return 0<a?1:0>a?-1:0}function de(a,b){return 0>Z(a.prev,a,a.next)?0<=Z(a,b,a.next)&&0<=Z(a,a.prev,b):0>Z(a,b,a.prev)||0>Z(a,a.next,b)}function ai(a,b){var c=new ug(a.i,a.x,a.y),d=new ug(b.i,b.x,b.y),e=a.next,f=b.prev;a.next=b;b.prev=a;c.next=e;e.prev=c;d.next=c;c.prev=d;f.next=d;d.prev=f;return d}function Zh(a,b,c,d){a=new ug(a,b,c);d?(a.next=d.next,a.prev=d,d.next.prev=a,d.next=a):(a.prev=a,
    271 a.next=a);return a}function be(a){a.next.prev=a.prev;a.prev.next=a.next;a.prevZ&&(a.prevZ.nextZ=a.nextZ);a.nextZ&&(a.nextZ.prevZ=a.prevZ)}function ug(a,b,c){this.i=a;this.x=b;this.y=c;this.nextZ=this.prevZ=this.z=this.next=this.prev=null;this.steiner=!1}function bi(a){var b=a.length;2<b&&a[b-1].equals(a[0])&&a.pop()}function ci(a,b){for(var c=0;c<b.length;c++)a.push(b[c].x),a.push(b[c].y)}function gc(a,b){F.call(this);this.type="ExtrudeGeometry";this.parameters={shapes:a,options:b};this.fromBufferGeometry(new eb(a,
    272 b));this.mergeVertices()}function eb(a,b){function c(a){function c(a,b,c){b||console.error("THREE.ExtrudeGeometry: vec does not exist");return b.clone().multiplyScalar(c).add(a)}function g(a,b,c){var d=a.x-b.x;var e=a.y-b.y;var f=c.x-a.x;var g=c.y-a.y,h=d*d+e*e;if(Math.abs(d*g-e*f)>Number.EPSILON){var l=Math.sqrt(h),n=Math.sqrt(f*f+g*g);h=b.x-e/l;b=b.y+d/l;g=((c.x-g/n-h)*g-(c.y+f/n-b)*f)/(d*g-e*f);f=h+d*g-a.x;d=b+e*g-a.y;e=f*f+d*d;if(2>=e)return new u(f,d);e=Math.sqrt(e/2)}else a=!1,d>Number.EPSILON?
    273 f>Number.EPSILON&&(a=!0):d<-Number.EPSILON?f<-Number.EPSILON&&(a=!0):Math.sign(e)===Math.sign(g)&&(a=!0),a?(f=-e,e=Math.sqrt(h)):(f=d,d=e,e=Math.sqrt(h/2));return new u(f/e,d/e)}function h(a,b){for(var c=a.length;0<=--c;){var f=c,g=c-1;0>g&&(g=a.length-1);for(var h=0,l=w+2*C;h<l;h++){var n=X*h,k=X*(h+1),q=b+g+n,p=b+g+k;k=b+f+k;t(b+f+n);t(q);t(k);t(q);t(p);t(k);n=e.length/3;n=G.generateSideWallUV(d,e,n-6,n-3,n-2,n-1);v(n[0]);v(n[1]);v(n[3]);v(n[1]);v(n[2]);v(n[3])}}}function l(a,b,c){x.push(a);x.push(b);
    274 x.push(c)}function k(a,b,c){t(a);t(b);t(c);a=e.length/3;a=G.generateTopUV(d,e,a-3,a-2,a-1);v(a[0]);v(a[1]);v(a[2])}function t(a){e.push(x[3*a]);e.push(x[3*a+1]);e.push(x[3*a+2])}function v(a){f.push(a.x);f.push(a.y)}var x=[],B=void 0!==b.curveSegments?b.curveSegments:12,w=void 0!==b.steps?b.steps:1,A=void 0!==b.depth?b.depth:100,Q=void 0!==b.bevelEnabled?b.bevelEnabled:!0,N=void 0!==b.bevelThickness?b.bevelThickness:6,y=void 0!==b.bevelSize?b.bevelSize:N-2,I=void 0!==b.bevelOffset?b.bevelOffset:0,
    275 C=void 0!==b.bevelSegments?b.bevelSegments:3,D=b.extrudePath,G=void 0!==b.UVGenerator?b.UVGenerator:Hk;void 0!==b.amount&&(console.warn("THREE.ExtrudeBufferGeometry: amount has been renamed to depth."),A=b.amount);var E=!1;if(D){var H=D.getSpacedPoints(w);E=!0;Q=!1;var J=D.computeFrenetFrames(w,!1);var K=new m;var L=new m;var F=new m}Q||(I=y=N=C=0);a=a.extractPoints(B);D=a.shape;var P=a.holes;if(!pb.isClockWise(D))for(D=D.reverse(),a=0,B=P.length;a<B;a++){var O=P[a];pb.isClockWise(O)&&(P[a]=O.reverse())}var U=
    276 pb.triangulateShape(D,P),V=D;a=0;for(B=P.length;a<B;a++)D=D.concat(P[a]);var X=D.length,aa=U.length;a=[];B=0;O=V.length;for(var da=O-1,R=B+1;B<O;B++,da++,R++)da===O&&(da=0),R===O&&(R=0),a[B]=g(V[B],V[da],V[R]);B=[];O=a.concat();R=0;for(var S=P.length;R<S;R++){var T=P[R];da=[];for(var W=0,Y=T.length,ba=Y-1,Z=W+1;W<Y;W++,ba++,Z++)ba===Y&&(ba=0),Z===Y&&(Z=0),da[W]=g(T[W],T[ba],T[Z]);B.push(da);O=O.concat(da)}for(R=0;R<C;R++){da=R/C;S=N*Math.cos(da*Math.PI/2);T=y*Math.sin(da*Math.PI/2)+I;da=0;for(W=V.length;da<
    277 W;da++)Y=c(V[da],a[da],T),l(Y.x,Y.y,-S);W=0;for(Y=P.length;W<Y;W++){ba=P[W];da=B[W];Z=0;for(var fa=ba.length;Z<fa;Z++){var ea=c(ba[Z],da[Z],T);l(ea.x,ea.y,-S)}}}da=y+I;for(R=0;R<X;R++)S=Q?c(D[R],O[R],da):D[R],E?(L.copy(J.normals[0]).multiplyScalar(S.x),K.copy(J.binormals[0]).multiplyScalar(S.y),F.copy(H[0]).add(L).add(K),l(F.x,F.y,F.z)):l(S.x,S.y,0);for(R=1;R<=w;R++)for(S=0;S<X;S++)T=Q?c(D[S],O[S],da):D[S],E?(L.copy(J.normals[R]).multiplyScalar(T.x),K.copy(J.binormals[R]).multiplyScalar(T.y),F.copy(H[R]).add(L).add(K),
    278 l(F.x,F.y,F.z)):l(T.x,T.y,A/w*R);for(J=C-1;0<=J;J--){L=J/C;K=N*Math.cos(L*Math.PI/2);L=y*Math.sin(L*Math.PI/2)+I;F=0;for(D=V.length;F<D;F++)O=c(V[F],a[F],L),l(O.x,O.y,A+K);F=0;for(D=P.length;F<D;F++)for(O=P[F],da=B[F],R=0,S=O.length;R<S;R++)T=c(O[R],da[R],L),E?l(T.x,T.y+H[w-1].y,H[w-1].x+K):l(T.x,T.y,A+K)}(function(){var a=e.length/3;if(Q){for(var b=0*X,c=0;c<aa;c++){var f=U[c];k(f[2]+b,f[1]+b,f[0]+b)}b=X*(w+2*C);for(c=0;c<aa;c++)f=U[c],k(f[0]+b,f[1]+b,f[2]+b)}else{for(b=0;b<aa;b++)c=U[b],k(c[2],
    279 c[1],c[0]);for(b=0;b<aa;b++)c=U[b],k(c[0]+X*w,c[1]+X*w,c[2]+X*w)}d.addGroup(a,e.length/3-a,0)})();(function(){var a=e.length/3,b=0;h(V,b);b+=V.length;for(var c=0,f=P.length;c<f;c++){var g=P[c];h(g,b);b+=g.length}d.addGroup(a,e.length/3-a,1)})()}E.call(this);this.type="ExtrudeBufferGeometry";this.parameters={shapes:a,options:b};a=Array.isArray(a)?a:[a];for(var d=this,e=[],f=[],g=0,h=a.length;g<h;g++)c(a[g]);this.setAttribute("position",new A(e,3));this.setAttribute("uv",new A(f,2));this.computeVertexNormals()}
    280 function di(a,b,c){c.shapes=[];if(Array.isArray(a))for(var d=0,e=a.length;d<e;d++)c.shapes.push(a[d].uuid);else c.shapes.push(a.uuid);void 0!==b.extrudePath&&(c.options.extrudePath=b.extrudePath.toJSON());return c}function ee(a,b){F.call(this);this.type="TextGeometry";this.parameters={text:a,parameters:b};this.fromBufferGeometry(new Zc(a,b));this.mergeVertices()}function Zc(a,b){b=b||{};var c=b.font;if(!c||!c.isFont)return console.error("THREE.TextGeometry: font parameter is not an instance of THREE.Font."),
    281 new F;a=c.generateShapes(a,b.size);b.depth=void 0!==b.height?b.height:50;void 0===b.bevelThickness&&(b.bevelThickness=10);void 0===b.bevelSize&&(b.bevelSize=8);void 0===b.bevelEnabled&&(b.bevelEnabled=!1);eb.call(this,a,b);this.type="TextBufferGeometry"}function fe(a,b,c,d,e,f,g){F.call(this);this.type="SphereGeometry";this.parameters={radius:a,widthSegments:b,heightSegments:c,phiStart:d,phiLength:e,thetaStart:f,thetaLength:g};this.fromBufferGeometry(new hc(a,b,c,d,e,f,g));this.mergeVertices()}function hc(a,
    282 b,c,d,e,f,g){E.call(this);this.type="SphereBufferGeometry";this.parameters={radius:a,widthSegments:b,heightSegments:c,phiStart:d,phiLength:e,thetaStart:f,thetaLength:g};a=a||1;b=Math.max(3,Math.floor(b)||8);c=Math.max(2,Math.floor(c)||6);d=void 0!==d?d:0;e=void 0!==e?e:2*Math.PI;f=void 0!==f?f:0;g=void 0!==g?g:Math.PI;for(var h=Math.min(f+g,Math.PI),l=0,n=[],k=new m,p=new m,z=[],r=[],t=[],v=[],x=0;x<=c;x++){var B=[],w=x/c,u=0;0==x&&0==f?u=.5/b:x==c&&h==Math.PI&&(u=-.5/b);for(var Q=0;Q<=b;Q++){var N=
    283 Q/b;k.x=-a*Math.cos(d+N*e)*Math.sin(f+w*g);k.y=a*Math.cos(f+w*g);k.z=a*Math.sin(d+N*e)*Math.sin(f+w*g);r.push(k.x,k.y,k.z);p.copy(k).normalize();t.push(p.x,p.y,p.z);v.push(N+u,1-w);B.push(l++)}n.push(B)}for(a=0;a<c;a++)for(d=0;d<b;d++)e=n[a][d+1],g=n[a][d],l=n[a+1][d],k=n[a+1][d+1],(0!==a||0<f)&&z.push(e,g,k),(a!==c-1||h<Math.PI)&&z.push(g,l,k);this.setIndex(z);this.setAttribute("position",new A(r,3));this.setAttribute("normal",new A(t,3));this.setAttribute("uv",new A(v,2))}function ge(a,b,c,d,e,
    284 f){F.call(this);this.type="RingGeometry";this.parameters={innerRadius:a,outerRadius:b,thetaSegments:c,phiSegments:d,thetaStart:e,thetaLength:f};this.fromBufferGeometry(new $c(a,b,c,d,e,f));this.mergeVertices()}function $c(a,b,c,d,e,f){E.call(this);this.type="RingBufferGeometry";this.parameters={innerRadius:a,outerRadius:b,thetaSegments:c,phiSegments:d,thetaStart:e,thetaLength:f};a=a||.5;b=b||1;e=void 0!==e?e:0;f=void 0!==f?f:2*Math.PI;c=void 0!==c?Math.max(3,c):8;d=void 0!==d?Math.max(1,d):1;var g=
    285 [],h=[],l=[],n=[],k=a;a=(b-a)/d;for(var p=new m,z=new u,r=0;r<=d;r++){for(var t=0;t<=c;t++){var v=e+t/c*f;p.x=k*Math.cos(v);p.y=k*Math.sin(v);h.push(p.x,p.y,p.z);l.push(0,0,1);z.x=(p.x/b+1)/2;z.y=(p.y/b+1)/2;n.push(z.x,z.y)}k+=a}for(b=0;b<d;b++)for(e=b*(c+1),f=0;f<c;f++)k=f+e,a=k+c+1,p=k+c+2,z=k+1,g.push(k,a,z),g.push(a,p,z);this.setIndex(g);this.setAttribute("position",new A(h,3));this.setAttribute("normal",new A(l,3));this.setAttribute("uv",new A(n,2))}function he(a,b,c,d){F.call(this);this.type=
    286 "LatheGeometry";this.parameters={points:a,segments:b,phiStart:c,phiLength:d};this.fromBufferGeometry(new ad(a,b,c,d));this.mergeVertices()}function ad(a,b,c,d){E.call(this);this.type="LatheBufferGeometry";this.parameters={points:a,segments:b,phiStart:c,phiLength:d};b=Math.floor(b)||12;c=c||0;d=d||2*Math.PI;d=P.clamp(d,0,2*Math.PI);for(var e=[],f=[],g=[],h=1/b,l=new m,n=new u,k=0;k<=b;k++){var p=c+k*h*d,z=Math.sin(p);p=Math.cos(p);for(var r=0;r<=a.length-1;r++)l.x=a[r].x*z,l.y=a[r].y,l.z=a[r].x*p,
    287 f.push(l.x,l.y,l.z),n.x=k/b,n.y=r/(a.length-1),g.push(n.x,n.y)}for(c=0;c<b;c++)for(h=0;h<a.length-1;h++)l=h+c*a.length,n=l+a.length,k=l+a.length+1,z=l+1,e.push(l,n,z),e.push(n,k,z);this.setIndex(e);this.setAttribute("position",new A(f,3));this.setAttribute("uv",new A(g,2));this.computeVertexNormals();if(d===2*Math.PI)for(d=this.attributes.normal.array,e=new m,f=new m,g=new m,b=b*a.length*3,h=c=0;c<a.length;c++,h+=3)e.x=d[h+0],e.y=d[h+1],e.z=d[h+2],f.x=d[b+h+0],f.y=d[b+h+1],f.z=d[b+h+2],g.addVectors(e,
    288 f).normalize(),d[h+0]=d[b+h+0]=g.x,d[h+1]=d[b+h+1]=g.y,d[h+2]=d[b+h+2]=g.z}function ic(a,b){F.call(this);this.type="ShapeGeometry";"object"===typeof b&&(console.warn("THREE.ShapeGeometry: Options parameter has been removed."),b=b.curveSegments);this.parameters={shapes:a,curveSegments:b};this.fromBufferGeometry(new jc(a,b));this.mergeVertices()}function jc(a,b){function c(a){var c=e.length/3,h=a.extractPoints(b);a=h.shape;var n=h.holes;!1===pb.isClockWise(a)&&(a=a.reverse());h=0;for(var k=n.length;h<
    289 k;h++){var q=n[h];!0===pb.isClockWise(q)&&(n[h]=q.reverse())}h=pb.triangulateShape(a,n);k=0;for(q=n.length;k<q;k++)a=a.concat(n[k]);n=0;for(k=a.length;n<k;n++)q=a[n],e.push(q.x,q.y,0),f.push(0,0,1),g.push(q.x,q.y);a=0;for(n=h.length;a<n;a++)k=h[a],d.push(k[0]+c,k[1]+c,k[2]+c),l+=3}E.call(this);this.type="ShapeBufferGeometry";this.parameters={shapes:a,curveSegments:b};b=b||12;var d=[],e=[],f=[],g=[],h=0,l=0;if(!1===Array.isArray(a))c(a);else for(var n=0;n<a.length;n++)c(a[n]),this.addGroup(h,l,n),
    290 h+=l,l=0;this.setIndex(d);this.setAttribute("position",new A(e,3));this.setAttribute("normal",new A(f,3));this.setAttribute("uv",new A(g,2))}function ei(a,b){b.shapes=[];if(Array.isArray(a))for(var c=0,d=a.length;c<d;c++)b.shapes.push(a[c].uuid);else b.shapes.push(a.uuid);return b}function bd(a,b){E.call(this);this.type="EdgesGeometry";this.parameters={thresholdAngle:b};var c=[];b=Math.cos(P.DEG2RAD*(void 0!==b?b:1));var d=[0,0],e={},f=["a","b","c"];if(a.isBufferGeometry){var g=new F;g.fromBufferGeometry(a)}else g=
    291 a.clone();g.mergeVertices();g.computeFaceNormals();a=g.vertices;g=g.faces;for(var h=0,l=g.length;h<l;h++)for(var n=g[h],k=0;3>k;k++){var p=n[f[k]];var m=n[f[(k+1)%3]];d[0]=Math.min(p,m);d[1]=Math.max(p,m);p=d[0]+","+d[1];void 0===e[p]?e[p]={index1:d[0],index2:d[1],face1:h,face2:void 0}:e[p].face2=h}for(p in e)if(d=e[p],void 0===d.face2||g[d.face1].normal.dot(g[d.face2].normal)<=b)f=a[d.index1],c.push(f.x,f.y,f.z),f=a[d.index2],c.push(f.x,f.y,f.z);this.setAttribute("position",new A(c,3))}function kc(a,
    292 b,c,d,e,f,g,h){F.call(this);this.type="CylinderGeometry";this.parameters={radiusTop:a,radiusBottom:b,height:c,radialSegments:d,heightSegments:e,openEnded:f,thetaStart:g,thetaLength:h};this.fromBufferGeometry(new qb(a,b,c,d,e,f,g,h));this.mergeVertices()}function qb(a,b,c,d,e,f,g,h){function l(c){var e,f=new u,l=new m,q=0,v=!0===c?a:b,w=!0===c?1:-1;var A=t;for(e=1;e<=d;e++)p.push(0,x*w,0),z.push(0,w,0),r.push(.5,.5),t++;e=t;for(var C=0;C<=d;C++){var E=C/d*h+g,F=Math.cos(E);E=Math.sin(E);l.x=v*E;l.y=
    293 x*w;l.z=v*F;p.push(l.x,l.y,l.z);z.push(0,w,0);f.x=.5*F+.5;f.y=.5*E*w+.5;r.push(f.x,f.y);t++}for(f=0;f<d;f++)l=A+f,v=e+f,!0===c?k.push(v,v+1,l):k.push(v+1,v,l),q+=3;n.addGroup(B,q,!0===c?1:2);B+=q}E.call(this);this.type="CylinderBufferGeometry";this.parameters={radiusTop:a,radiusBottom:b,height:c,radialSegments:d,heightSegments:e,openEnded:f,thetaStart:g,thetaLength:h};var n=this;a=void 0!==a?a:1;b=void 0!==b?b:1;c=c||1;d=Math.floor(d)||8;e=Math.floor(e)||1;f=void 0!==f?f:!1;g=void 0!==g?g:0;h=void 0!==
    294 h?h:2*Math.PI;var k=[],p=[],z=[],r=[],t=0,v=[],x=c/2,B=0;(function(){for(var f=new m,l=new m,q=0,u=(b-a)/c,y=0;y<=e;y++){for(var A=[],C=y/e,D=C*(b-a)+a,E=0;E<=d;E++){var F=E/d,G=F*h+g,H=Math.sin(G);G=Math.cos(G);l.x=D*H;l.y=-C*c+x;l.z=D*G;p.push(l.x,l.y,l.z);f.set(H,u,G).normalize();z.push(f.x,f.y,f.z);r.push(F,1-C);A.push(t++)}v.push(A)}for(f=0;f<d;f++)for(l=0;l<e;l++)u=v[l+1][f],y=v[l+1][f+1],A=v[l][f+1],k.push(v[l][f],u,A),k.push(u,y,A),q+=6;n.addGroup(B,q,0);B+=q})();!1===f&&(0<a&&l(!0),0<b&&
    295 l(!1));this.setIndex(k);this.setAttribute("position",new A(p,3));this.setAttribute("normal",new A(z,3));this.setAttribute("uv",new A(r,2))}function ie(a,b,c,d,e,f,g){kc.call(this,0,a,b,c,d,e,f,g);this.type="ConeGeometry";this.parameters={radius:a,height:b,radialSegments:c,heightSegments:d,openEnded:e,thetaStart:f,thetaLength:g}}function je(a,b,c,d,e,f,g){qb.call(this,0,a,b,c,d,e,f,g);this.type="ConeBufferGeometry";this.parameters={radius:a,height:b,radialSegments:c,heightSegments:d,openEnded:e,thetaStart:f,
    296 thetaLength:g}}function ke(a,b,c,d){F.call(this);this.type="CircleGeometry";this.parameters={radius:a,segments:b,thetaStart:c,thetaLength:d};this.fromBufferGeometry(new cd(a,b,c,d));this.mergeVertices()}function cd(a,b,c,d){E.call(this);this.type="CircleBufferGeometry";this.parameters={radius:a,segments:b,thetaStart:c,thetaLength:d};a=a||1;b=void 0!==b?Math.max(3,b):8;c=void 0!==c?c:0;d=void 0!==d?d:2*Math.PI;var e=[],f=[],g=[],h=[],l=new m,n=new u;f.push(0,0,0);g.push(0,0,1);h.push(.5,.5);for(var k=
    297 0,p=3;k<=b;k++,p+=3){var z=c+k/b*d;l.x=a*Math.cos(z);l.y=a*Math.sin(z);f.push(l.x,l.y,l.z);g.push(0,0,1);n.x=(f[p]/a+1)/2;n.y=(f[p+1]/a+1)/2;h.push(n.x,n.y)}for(a=1;a<=b;a++)e.push(a,a+1,0);this.setIndex(e);this.setAttribute("position",new A(f,3));this.setAttribute("normal",new A(g,3));this.setAttribute("uv",new A(h,2))}function lc(a){L.call(this);this.type="ShadowMaterial";this.color=new H(0);this.transparent=!0;this.setValues(a)}function rb(a){ra.call(this,a);this.type="RawShaderMaterial"}function fb(a){L.call(this);
    298 this.defines={STANDARD:""};this.type="MeshStandardMaterial";this.color=new H(16777215);this.roughness=1;this.metalness=0;this.lightMap=this.map=null;this.lightMapIntensity=1;this.aoMap=null;this.aoMapIntensity=1;this.emissive=new H(0);this.emissiveIntensity=1;this.bumpMap=this.emissiveMap=null;this.bumpScale=1;this.normalMap=null;this.normalMapType=0;this.normalScale=new u(1,1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.envMap=this.alphaMap=this.metalnessMap=this.roughnessMap=
    299 null;this.envMapIntensity=1;this.refractionRatio=.98;this.wireframe=!1;this.wireframeLinewidth=1;this.wireframeLinejoin=this.wireframeLinecap="round";this.vertexTangents=this.morphNormals=this.morphTargets=this.skinning=!1;this.setValues(a)}function Kb(a){fb.call(this);this.defines={STANDARD:"",PHYSICAL:""};this.type="MeshPhysicalMaterial";this.clearcoat=0;this.clearcoatMap=null;this.clearcoatRoughness=0;this.clearcoatRoughnessMap=null;this.clearcoatNormalScale=new u(1,1);this.clearcoatNormalMap=
    300 null;this.reflectivity=.5;this.sheen=null;this.transmission=0;this.transmissionMap=null;this.setValues(a)}function Lb(a){L.call(this);this.type="MeshPhongMaterial";this.color=new H(16777215);this.specular=new H(1118481);this.shininess=30;this.lightMap=this.map=null;this.lightMapIntensity=1;this.aoMap=null;this.aoMapIntensity=1;this.emissive=new H(0);this.emissiveIntensity=1;this.bumpMap=this.emissiveMap=null;this.bumpScale=1;this.normalMap=null;this.normalMapType=0;this.normalScale=new u(1,1);this.displacementMap=
    301 null;this.displacementScale=1;this.displacementBias=0;this.envMap=this.alphaMap=this.specularMap=null;this.combine=0;this.reflectivity=1;this.refractionRatio=.98;this.wireframe=!1;this.wireframeLinewidth=1;this.wireframeLinejoin=this.wireframeLinecap="round";this.morphNormals=this.morphTargets=this.skinning=!1;this.setValues(a)}function mc(a){L.call(this);this.defines={TOON:""};this.type="MeshToonMaterial";this.color=new H(16777215);this.lightMap=this.gradientMap=this.map=null;this.lightMapIntensity=
    302 1;this.aoMap=null;this.aoMapIntensity=1;this.emissive=new H(0);this.emissiveIntensity=1;this.bumpMap=this.emissiveMap=null;this.bumpScale=1;this.normalMap=null;this.normalMapType=0;this.normalScale=new u(1,1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.alphaMap=null;this.wireframe=!1;this.wireframeLinewidth=1;this.wireframeLinejoin=this.wireframeLinecap="round";this.morphNormals=this.morphTargets=this.skinning=!1;this.setValues(a)}function nc(a){L.call(this);this.type=
    303 "MeshNormalMaterial";this.bumpMap=null;this.bumpScale=1;this.normalMap=null;this.normalMapType=0;this.normalScale=new u(1,1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.wireframe=!1;this.wireframeLinewidth=1;this.morphNormals=this.morphTargets=this.skinning=this.fog=!1;this.setValues(a)}function oc(a){L.call(this);this.type="MeshLambertMaterial";this.color=new H(16777215);this.lightMap=this.map=null;this.lightMapIntensity=1;this.aoMap=null;this.aoMapIntensity=1;
    304 this.emissive=new H(0);this.emissiveIntensity=1;this.envMap=this.alphaMap=this.specularMap=this.emissiveMap=null;this.combine=0;this.reflectivity=1;this.refractionRatio=.98;this.wireframe=!1;this.wireframeLinewidth=1;this.wireframeLinejoin=this.wireframeLinecap="round";this.morphNormals=this.morphTargets=this.skinning=!1;this.setValues(a)}function pc(a){L.call(this);this.defines={MATCAP:""};this.type="MeshMatcapMaterial";this.color=new H(16777215);this.bumpMap=this.map=this.matcap=null;this.bumpScale=
    305 1;this.normalMap=null;this.normalMapType=0;this.normalScale=new u(1,1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.alphaMap=null;this.morphNormals=this.morphTargets=this.skinning=!1;this.setValues(a)}function qc(a){ja.call(this);this.type="LineDashedMaterial";this.scale=1;this.dashSize=3;this.gapSize=1;this.setValues(a)}function Ka(a,b,c,d){this.parameterPositions=a;this._cachedIndex=0;this.resultBuffer=void 0!==d?d:new b.constructor(c);this.sampleValues=b;this.valueSize=
    306 c}function Ye(a,b,c,d){Ka.call(this,a,b,c,d);this._offsetNext=this._weightNext=this._offsetPrev=this._weightPrev=-0}function le(a,b,c,d){Ka.call(this,a,b,c,d)}function Ze(a,b,c,d){Ka.call(this,a,b,c,d)}function ya(a,b,c,d){if(void 0===a)throw Error("THREE.KeyframeTrack: track name is undefined");if(void 0===b||0===b.length)throw Error("THREE.KeyframeTrack: no keyframes in track named "+a);this.name=a;this.times=ka.convertArray(b,this.TimeBufferType);this.values=ka.convertArray(c,this.ValueBufferType);
    307 this.setInterpolation(d||this.DefaultInterpolation)}function $e(a,b,c){ya.call(this,a,b,c)}function af(a,b,c,d){ya.call(this,a,b,c,d)}function dd(a,b,c,d){ya.call(this,a,b,c,d)}function bf(a,b,c,d){Ka.call(this,a,b,c,d)}function me(a,b,c,d){ya.call(this,a,b,c,d)}function cf(a,b,c,d){ya.call(this,a,b,c,d)}function ed(a,b,c,d){ya.call(this,a,b,c,d)}function Pa(a,b,c,d){this.name=a;this.tracks=c;this.duration=void 0!==b?b:-1;this.blendMode=void 0!==d?d:2500;this.uuid=P.generateUUID();0>this.duration&&
    308 this.resetDuration()}function Ik(a){switch(a.toLowerCase()){case "scalar":case "double":case "float":case "number":case "integer":return dd;case "vector":case "vector2":case "vector3":case "vector4":return ed;case "color":return af;case "quaternion":return me;case "bool":case "boolean":return $e;case "string":return cf}throw Error("THREE.KeyframeTrack: Unsupported typeName: "+a);}function Jk(a){if(void 0===a.type)throw Error("THREE.KeyframeTrack: track type undefined, can not parse");var b=Ik(a.type);
    309 if(void 0===a.times){var c=[],d=[];ka.flattenJSON(a.keys,c,d,"value");a.times=c;a.values=d}return void 0!==b.parse?b.parse(a):new b(a.name,a.times,a.values,a.interpolation)}function vg(a,b,c){var d=this,e=!1,f=0,g=0,h=void 0,l=[];this.onStart=void 0;this.onLoad=a;this.onProgress=b;this.onError=c;this.itemStart=function(a){g++;if(!1===e&&void 0!==d.onStart)d.onStart(a,f,g);e=!0};this.itemEnd=function(a){f++;if(void 0!==d.onProgress)d.onProgress(a,f,g);if(f===g&&(e=!1,void 0!==d.onLoad))d.onLoad()};
    310 this.itemError=function(a){if(void 0!==d.onError)d.onError(a)};this.resolveURL=function(a){return h?h(a):a};this.setURLModifier=function(a){h=a;return this};this.addHandler=function(a,b){l.push(a,b);return this};this.removeHandler=function(a){a=l.indexOf(a);-1!==a&&l.splice(a,2);return this};this.getHandler=function(a){for(var b=0,c=l.length;b<c;b+=2){var d=l[b],e=l[b+1];d.global&&(d.lastIndex=0);if(d.test(a))return e}return null}}function X(a){this.manager=void 0!==a?a:fi;this.crossOrigin="anonymous";
    311 this.resourcePath=this.path="";this.requestHeader={}}function Qa(a){X.call(this,a)}function wg(a){X.call(this,a)}function xg(a){X.call(this,a)}function df(a){X.call(this,a)}function fd(a){X.call(this,a)}function ef(a){X.call(this,a)}function ff(a){X.call(this,a)}function K(){this.type="Curve";this.arcLengthDivisions=200}function La(a,b,c,d,e,f,g,h){K.call(this);this.type="EllipseCurve";this.aX=a||0;this.aY=b||0;this.xRadius=c||1;this.yRadius=d||1;this.aStartAngle=e||0;this.aEndAngle=f||2*Math.PI;
    312 this.aClockwise=g||!1;this.aRotation=h||0}function gd(a,b,c,d,e,f){La.call(this,a,b,c,c,d,e,f);this.type="ArcCurve"}function yg(){var a=0,b=0,c=0,d=0;return{initCatmullRom:function(e,f,g,h,l){e=l*(g-e);h=l*(h-f);a=f;b=e;c=-3*f+3*g-2*e-h;d=2*f-2*g+e+h},initNonuniformCatmullRom:function(e,f,g,h,l,n,k){e=((f-e)/l-(g-e)/(l+n)+(g-f)/n)*n;h=((g-f)/n-(h-f)/(n+k)+(h-g)/k)*n;a=f;b=e;c=-3*f+3*g-2*e-h;d=2*f-2*g+e+h},calc:function(e){var f=e*e;return a+b*e+c*f+d*f*e}}}function za(a,b,c,d){K.call(this);this.type=
    313 "CatmullRomCurve3";this.points=a||[];this.closed=b||!1;this.curveType=c||"centripetal";this.tension=void 0!==d?d:.5}function gi(a,b,c,d,e){b=.5*(d-b);e=.5*(e-c);var f=a*a;return(2*c-2*d+b+e)*a*f+(-3*c+3*d-2*b-e)*f+b*a+c}function ne(a,b,c,d){var e=1-a;return e*e*b+2*(1-a)*a*c+a*a*d}function oe(a,b,c,d,e){var f=1-a,g=1-a;return f*f*f*b+3*g*g*a*c+3*(1-a)*a*a*d+a*a*a*e}function Wa(a,b,c,d){K.call(this);this.type="CubicBezierCurve";this.v0=a||new u;this.v1=b||new u;this.v2=c||new u;this.v3=d||new u}function gb(a,
    314 b,c,d){K.call(this);this.type="CubicBezierCurve3";this.v0=a||new m;this.v1=b||new m;this.v2=c||new m;this.v3=d||new m}function ia(a,b){K.call(this);this.type="LineCurve";this.v1=a||new u;this.v2=b||new u}function Xa(a,b){K.call(this);this.type="LineCurve3";this.v1=a||new m;this.v2=b||new m}function Ya(a,b,c){K.call(this);this.type="QuadraticBezierCurve";this.v0=a||new u;this.v1=b||new u;this.v2=c||new u}function hb(a,b,c){K.call(this);this.type="QuadraticBezierCurve3";this.v0=a||new m;this.v1=b||
    315 new m;this.v2=c||new m}function Za(a){K.call(this);this.type="SplineCurve";this.points=a||[]}function sb(){K.call(this);this.type="CurvePath";this.curves=[];this.autoClose=!1}function $a(a){sb.call(this);this.type="Path";this.currentPoint=new u;a&&this.setFromPoints(a)}function Mb(a){$a.call(this,a);this.uuid=P.generateUUID();this.type="Shape";this.holes=[]}function fa(a,b){C.call(this);this.type="Light";this.color=new H(a);this.intensity=void 0!==b?b:1;this.receiveShadow=void 0}function gf(a,b,c){fa.call(this,
    316 a,c);this.type="HemisphereLight";this.castShadow=void 0;this.position.copy(C.DefaultUp);this.updateMatrix();this.groundColor=new H(b)}function ib(a){this.camera=a;this.normalBias=this.bias=0;this.radius=1;this.mapSize=new u(512,512);this.mapPass=this.map=null;this.matrix=new U;this.autoUpdate=!0;this.needsUpdate=!1;this._frustum=new Jc;this._frameExtents=new u(1,1);this._viewportCount=1;this._viewports=[new S(0,0,1,1)]}function hf(){ib.call(this,new W(50,1,.5,500))}function jf(a,b,c,d,e,f){fa.call(this,
    317 a,b);this.type="SpotLight";this.position.copy(C.DefaultUp);this.updateMatrix();this.target=new C;Object.defineProperty(this,"power",{get:function(){return this.intensity*Math.PI},set:function(a){this.intensity=a/Math.PI}});this.distance=void 0!==c?c:0;this.angle=void 0!==d?d:Math.PI/3;this.penumbra=void 0!==e?e:0;this.decay=void 0!==f?f:1;this.shadow=new hf}function zg(){ib.call(this,new W(90,1,.5,500));this._frameExtents=new u(4,2);this._viewportCount=6;this._viewports=[new S(2,1,1,1),new S(0,1,
    318 1,1),new S(3,1,1,1),new S(1,1,1,1),new S(3,0,1,1),new S(1,0,1,1)];this._cubeDirections=[new m(1,0,0),new m(-1,0,0),new m(0,0,1),new m(0,0,-1),new m(0,1,0),new m(0,-1,0)];this._cubeUps=[new m(0,1,0),new m(0,1,0),new m(0,1,0),new m(0,1,0),new m(0,0,1),new m(0,0,-1)]}function kf(a,b,c,d){fa.call(this,a,b);this.type="PointLight";Object.defineProperty(this,"power",{get:function(){return 4*this.intensity*Math.PI},set:function(a){this.intensity=a/(4*Math.PI)}});this.distance=void 0!==c?c:0;this.decay=void 0!==
    319 d?d:1;this.shadow=new zg}function hd(a,b,c,d,e,f){db.call(this);this.type="OrthographicCamera";this.zoom=1;this.view=null;this.left=void 0!==a?a:-1;this.right=void 0!==b?b:1;this.top=void 0!==c?c:1;this.bottom=void 0!==d?d:-1;this.near=void 0!==e?e:.1;this.far=void 0!==f?f:2E3;this.updateProjectionMatrix()}function lf(){ib.call(this,new hd(-5,5,5,-5,.5,500))}function mf(a,b){fa.call(this,a,b);this.type="DirectionalLight";this.position.copy(C.DefaultUp);this.updateMatrix();this.target=new C;this.shadow=
    320 new lf}function nf(a,b){fa.call(this,a,b);this.type="AmbientLight";this.castShadow=void 0}function of(a,b,c,d){fa.call(this,a,b);this.type="RectAreaLight";this.width=void 0!==c?c:10;this.height=void 0!==d?d:10}function pf(){this.coefficients=[];for(var a=0;9>a;a++)this.coefficients.push(new m)}function Ra(a,b){fa.call(this,void 0,b);this.type="LightProbe";this.sh=void 0!==a?a:new pf}function qf(a){X.call(this,a);this.textures={}}function pe(){E.call(this);this.type="InstancedBufferGeometry";this.instanceCount=
    321 Infinity}function rf(a,b,c,d){"number"===typeof c&&(d=c,c=!1,console.error("THREE.InstancedBufferAttribute: The constructor now expects normalized as the third argument."));J.call(this,a,b,c);this.meshPerAttribute=d||1}function sf(a){X.call(this,a)}function tf(a){X.call(this,a)}function Ag(a){"undefined"===typeof createImageBitmap&&console.warn("THREE.ImageBitmapLoader: createImageBitmap() not supported.");"undefined"===typeof fetch&&console.warn("THREE.ImageBitmapLoader: fetch() not supported.");
    322 X.call(this,a);this.options={premultiplyAlpha:"none"}}function Bg(){this.type="ShapePath";this.color=new H;this.subPaths=[];this.currentPath=null}function Cg(a){this.type="Font";this.data=a}function Dg(a){X.call(this,a)}function uf(a){X.call(this,a)}function Eg(a,b,c){Ra.call(this,void 0,c);a=(new H).set(a);c=(new H).set(b);b=new m(a.r,a.g,a.b);a=new m(c.r,c.g,c.b);c=Math.sqrt(Math.PI);var d=c*Math.sqrt(.75);this.sh.coefficients[0].copy(b).add(a).multiplyScalar(c);this.sh.coefficients[1].copy(b).sub(a).multiplyScalar(d)}
    323 function Fg(a,b){Ra.call(this,void 0,b);a=(new H).set(a);this.sh.coefficients[0].set(a.r,a.g,a.b).multiplyScalar(2*Math.sqrt(Math.PI))}function hi(){this.type="StereoCamera";this.aspect=1;this.eyeSep=.064;this.cameraL=new W;this.cameraL.layers.enable(1);this.cameraL.matrixAutoUpdate=!1;this.cameraR=new W;this.cameraR.layers.enable(2);this.cameraR.matrixAutoUpdate=!1;this._cache={focus:null,fov:null,aspect:null,near:null,far:null,zoom:null,eyeSep:null}}function Gg(a){this.autoStart=void 0!==a?a:!0;
    324 this.elapsedTime=this.oldTime=this.startTime=0;this.running=!1}function Hg(){C.call(this);this.type="AudioListener";this.context=Ig.getContext();this.gain=this.context.createGain();this.gain.connect(this.context.destination);this.filter=null;this.timeDelta=0;this._clock=new Gg}function id(a){C.call(this);this.type="Audio";this.listener=a;this.context=a.context;this.gain=this.context.createGain();this.gain.connect(a.getInput());this.autoplay=!1;this.buffer=null;this.detune=0;this.loop=!1;this.offset=
    325 this.loopEnd=this.loopStart=0;this.duration=void 0;this.playbackRate=1;this.isPlaying=!1;this.hasPlaybackControl=!0;this.sourceType="empty";this._progress=this._startedAt=0;this.filters=[]}function Jg(a){id.call(this,a);this.panner=this.context.createPanner();this.panner.panningModel="HRTF";this.panner.connect(this.gain)}function Kg(a,b){this.analyser=a.context.createAnalyser();this.analyser.fftSize=void 0!==b?b:2048;this.data=new Uint8Array(this.analyser.frequencyBinCount);a.getOutput().connect(this.analyser)}
    326 function Lg(a,b,c){this.binding=a;this.valueSize=c;switch(b){case "quaternion":a=this._slerp;b=this._slerpAdditive;var d=this._setAdditiveIdentityQuaternion;this.buffer=new Float64Array(6*c);this._workIndex=5;break;case "string":case "bool":b=a=this._select;d=this._setAdditiveIdentityOther;this.buffer=Array(5*c);break;default:a=this._lerp,b=this._lerpAdditive,d=this._setAdditiveIdentityNumeric,this.buffer=new Float64Array(5*c)}this._mixBufferRegion=a;this._mixBufferRegionAdditive=b;this._setIdentity=
    327 d;this._origIndex=3;this._addIndex=4;this.referenceCount=this.useCount=this.cumulativeWeightAdditive=this.cumulativeWeight=0}function ii(a,b,c){c=c||wa.parseTrackName(b);this._targetGroup=a;this._bindings=a.subscribe_(b,c)}function wa(a,b,c){this.path=b;this.parsedPath=c||wa.parseTrackName(b);this.node=wa.findNode(a,this.parsedPath.nodeName)||a;this.rootNode=a}function ji(){this.uuid=P.generateUUID();this._objects=Array.prototype.slice.call(arguments);this.nCachedObjects_=0;var a={};this._indicesByUUID=
    328 a;for(var b=0,c=arguments.length;b!==c;++b)a[arguments[b].uuid]=b;this._paths=[];this._parsedPaths=[];this._bindings=[];this._bindingsIndicesByPath={};var d=this;this.stats={objects:{get total(){return d._objects.length},get inUse(){return this.total-d.nCachedObjects_}},get bindingsPerObject(){return d._bindings.length}}}function ki(a,b,c,d){this._mixer=a;this._clip=b;this._localRoot=c||null;this.blendMode=d||b.blendMode;a=b.tracks;b=a.length;c=Array(b);d={endingStart:2400,endingEnd:2400};for(var e=
    329 0;e!==b;++e){var f=a[e].createInterpolant(null);c[e]=f;f.settings=d}this._interpolantSettings=d;this._interpolants=c;this._propertyBindings=Array(b);this._weightInterpolant=this._timeScaleInterpolant=this._byClipCacheIndex=this._cacheIndex=null;this.loop=2201;this._loopCount=-1;this._startTime=null;this.time=0;this._effectiveWeight=this.weight=this._effectiveTimeScale=this.timeScale=1;this.repetitions=Infinity;this.paused=!1;this.enabled=!0;this.clampWhenFinished=!1;this.zeroSlopeAtEnd=this.zeroSlopeAtStart=
    330 !0}function Mg(a){this._root=a;this._initMemoryManager();this.time=this._accuIndex=0;this.timeScale=1}function vf(a,b){"string"===typeof a&&(console.warn("THREE.Uniform: Type parameter is no longer needed."),a=b);this.value=a}function Ng(a,b,c){Ba.call(this,a,b);this.meshPerAttribute=c||1}function Og(a,b,c,d){this.ray=new Xb(a,b);this.near=c||0;this.far=d||Infinity;this.camera=null;this.layers=new He;this.params={Mesh:{},Line:{threshold:1},LOD:{},Points:{threshold:1},Sprite:{}};Object.defineProperties(this.params,
    331 {PointCloud:{get:function(){console.warn("THREE.Raycaster: params.PointCloud has been renamed to params.Points.");return this.Points}}})}function li(a,b){return a.distance-b.distance}function Pg(a,b,c,d){a.layers.test(b.layers)&&a.raycast(b,c);if(!0===d){a=a.children;d=0;for(var e=a.length;d<e;d++)Pg(a[d],b,c,!0)}}function mi(a,b,c){this.radius=void 0!==a?a:1;this.theta=void 0!==b?b:0;this.y=void 0!==c?c:0;return this}function Qg(a,b){this.min=void 0!==a?a:new u(Infinity,Infinity);this.max=void 0!==
    332 b?b:new u(-Infinity,-Infinity)}function Rg(a,b){this.start=void 0!==a?a:new m;this.end=void 0!==b?b:new m}function qe(a){C.call(this);this.material=a;this.render=function(){};this.hasUvs=this.hasColors=this.hasNormals=this.hasPositions=!1;this.uvArray=this.colorArray=this.normalArray=this.positionArray=null;this.count=0}function jd(a,b){C.call(this);this.light=a;this.light.updateMatrixWorld();this.matrix=a.matrixWorld;this.matrixAutoUpdate=!1;this.color=b;a=new E;b=[0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,
    333 -1,0,1,0,0,0,0,1,1,0,0,0,0,-1,1];for(var c=0,d=1;32>c;c++,d++){var e=c/32*Math.PI*2,f=d/32*Math.PI*2;b.push(Math.cos(e),Math.sin(e),1,Math.cos(f),Math.sin(f),1)}a.setAttribute("position",new A(b,3));b=new ja({fog:!1,toneMapped:!1});this.cone=new ea(a,b);this.add(this.cone);this.update()}function ni(a){var b=[];a&&a.isBone&&b.push(a);for(var c=0;c<a.children.length;c++)b.push.apply(b,ni(a.children[c]));return b}function rc(a){for(var b=ni(a),c=new E,d=[],e=[],f=new H(0,0,1),g=new H(0,1,0),h=0;h<b.length;h++){var l=
    334 b[h];l.parent&&l.parent.isBone&&(d.push(0,0,0),d.push(0,0,0),e.push(f.r,f.g,f.b),e.push(g.r,g.g,g.b))}c.setAttribute("position",new A(d,3));c.setAttribute("color",new A(e,3));d=new ja({vertexColors:!0,depthTest:!1,depthWrite:!1,toneMapped:!1,transparent:!0});ea.call(this,c,d);this.type="SkeletonHelper";this.root=a;this.bones=b;this.matrix=a.matrixWorld;this.matrixAutoUpdate=!1}function kd(a,b,c){this.light=a;this.light.updateMatrixWorld();this.color=c;a=new hc(b,4,2);b=new Na({wireframe:!0,fog:!1,
    335 toneMapped:!1});T.call(this,a,b);this.type="PointLightHelper";this.matrix=this.light.matrixWorld;this.matrixAutoUpdate=!1;this.update()}function ld(a,b,c){C.call(this);this.light=a;this.light.updateMatrixWorld();this.matrix=a.matrixWorld;this.matrixAutoUpdate=!1;this.color=c;a=new ec(b);a.rotateY(.5*Math.PI);this.material=new Na({wireframe:!0,fog:!1,toneMapped:!1});void 0===this.color&&(this.material.vertexColors=!0);b=a.getAttribute("position");b=new Float32Array(3*b.count);a.setAttribute("color",
    336 new J(b,3));this.add(new T(a,this.material));this.update()}function re(a,b,c,d){a=a||10;b=b||10;c=new H(void 0!==c?c:4473924);d=new H(void 0!==d?d:8947848);var e=b/2,f=a/b,g=a/2;a=[];for(var h=[],l=0,n=0,k=-g;l<=b;l++,k+=f){a.push(-g,0,k,g,0,k);a.push(k,0,-g,k,0,g);var p=l===e?c:d;p.toArray(h,n);n+=3;p.toArray(h,n);n+=3;p.toArray(h,n);n+=3;p.toArray(h,n);n+=3}b=new E;b.setAttribute("position",new A(a,3));b.setAttribute("color",new A(h,3));c=new ja({vertexColors:!0,toneMapped:!1});ea.call(this,b,c);
    337 this.type="GridHelper"}function wf(a,b,c,d,e,f){a=a||10;b=b||16;c=c||8;d=d||64;e=new H(void 0!==e?e:4473924);f=new H(void 0!==f?f:8947848);for(var g=[],h=[],l=0;l<=b;l++){var n=l/b*2*Math.PI,k=Math.sin(n)*a;n=Math.cos(n)*a;g.push(0,0,0);g.push(k,0,n);k=l&1?e:f;h.push(k.r,k.g,k.b);h.push(k.r,k.g,k.b)}for(b=0;b<=c;b++)for(l=b&1?e:f,k=a-a/c*b,n=0;n<d;n++){var p=n/d*2*Math.PI,m=Math.sin(p)*k;p=Math.cos(p)*k;g.push(m,0,p);h.push(l.r,l.g,l.b);p=(n+1)/d*2*Math.PI;m=Math.sin(p)*k;p=Math.cos(p)*k;g.push(m,
    338 0,p);h.push(l.r,l.g,l.b)}a=new E;a.setAttribute("position",new A(g,3));a.setAttribute("color",new A(h,3));g=new ja({vertexColors:!0,toneMapped:!1});ea.call(this,a,g);this.type="PolarGridHelper"}function md(a,b,c){C.call(this);this.light=a;this.light.updateMatrixWorld();this.matrix=a.matrixWorld;this.matrixAutoUpdate=!1;this.color=c;void 0===b&&(b=1);a=new E;a.setAttribute("position",new A([-b,b,0,b,b,0,b,-b,0,-b,-b,0,-b,b,0],3));b=new ja({fog:!1,toneMapped:!1});this.lightPlane=new Ja(a,b);this.add(this.lightPlane);
    339 a=new E;a.setAttribute("position",new A([0,0,0,0,0,1],3));this.targetLine=new Ja(a,b);this.add(this.targetLine);this.update()}function se(a){function b(a,b,d){c(a,d);c(b,d)}function c(a,b){f.push(0,0,0);g.push(b.r,b.g,b.b);void 0===h[a]&&(h[a]=[]);h[a].push(f.length/3-1)}var d=new E,e=new ja({color:16777215,vertexColors:!0,toneMapped:!1}),f=[],g=[],h={},l=new H(16755200),n=new H(16711680),k=new H(43775),p=new H(16777215),m=new H(3355443);b("n1","n2",l);b("n2","n4",l);b("n4","n3",l);b("n3","n1",l);
    340 b("f1","f2",l);b("f2","f4",l);b("f4","f3",l);b("f3","f1",l);b("n1","f1",l);b("n2","f2",l);b("n3","f3",l);b("n4","f4",l);b("p","n1",n);b("p","n2",n);b("p","n3",n);b("p","n4",n);b("u1","u2",k);b("u2","u3",k);b("u3","u1",k);b("c","t",p);b("p","c",m);b("cn1","cn2",m);b("cn3","cn4",m);b("cf1","cf2",m);b("cf3","cf4",m);d.setAttribute("position",new A(f,3));d.setAttribute("color",new A(g,3));ea.call(this,d,e);this.type="CameraHelper";this.camera=a;this.camera.updateProjectionMatrix&&this.camera.updateProjectionMatrix();
    341 this.matrix=a.matrixWorld;this.matrixAutoUpdate=!1;this.pointMap=h;this.update()}function oa(a,b,c,d,e,f,g){xf.set(e,f,g).unproject(d);a=b[a];if(void 0!==a)for(c=c.getAttribute("position"),b=0,d=a.length;b<d;b++)c.setXYZ(a[b],xf.x,xf.y,xf.z)}function Nb(a,b){this.object=a;void 0===b&&(b=16776960);a=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]);var c=new Float32Array(24),d=new E;d.setIndex(new J(a,1));d.setAttribute("position",new J(c,3));ea.call(this,d,new ja({color:b,toneMapped:!1}));
    342 this.type="BoxHelper";this.matrixAutoUpdate=!1;this.update()}function te(a,b){this.type="Box3Helper";this.box=a;void 0===b&&(b=16776960);a=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]);var c=new E;c.setIndex(new J(a,1));c.setAttribute("position",new A([1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,-1,-1,1,-1,-1,-1,-1,1,-1,-1],3));ea.call(this,c,new ja({color:b,toneMapped:!1}));this.type="Box3Helper";this.geometry.computeBoundingSphere()}function ue(a,b,c){this.plane=a;this.size=void 0===b?
    343 1:b;a=void 0!==c?c:16776960;b=new E;b.setAttribute("position",new A([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],3));b.computeBoundingSphere();Ja.call(this,b,new ja({color:a,toneMapped:!1}));this.type="PlaneHelper";b=new E;b.setAttribute("position",new A([1,1,1,-1,1,1,-1,-1,1,1,1,1,-1,-1,1,1,-1,1],3));b.computeBoundingSphere();this.add(new T(b,new Na({color:a,opacity:.2,transparent:!0,depthWrite:!1,toneMapped:!1})))}function Ob(a,b,c,d,e,f){C.call(this);this.type="ArrowHelper";
    344 void 0===a&&(a=new m(0,0,1));void 0===b&&(b=new m(0,0,0));void 0===c&&(c=1);void 0===d&&(d=16776960);void 0===e&&(e=.2*c);void 0===f&&(f=.2*e);void 0===yf&&(yf=new E,yf.setAttribute("position",new A([0,0,0,0,1,0],3)),Sg=new qb(0,.5,1,5,1),Sg.translate(0,-.5,0));this.position.copy(b);this.line=new Ja(yf,new ja({color:d,toneMapped:!1}));this.line.matrixAutoUpdate=!1;this.add(this.line);this.cone=new T(Sg,new Na({color:d,toneMapped:!1}));this.cone.matrixAutoUpdate=!1;this.add(this.cone);this.setDirection(a);
    345 this.setLength(c,e,f)}function ve(a){a=a||1;var b=[0,0,0,a,0,0,0,0,0,0,a,0,0,0,0,0,0,a];a=new E;a.setAttribute("position",new A(b,3));a.setAttribute("color",new A([1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],3));b=new ja({vertexColors:!0,toneMapped:!1});ea.call(this,a,b);this.type="AxesHelper"}function Tg(a){this._renderer=a;this._pingPongRenderTarget=null;a=new Float32Array(20);var b=new m(0,1,0);this._blurMaterial=new rb({name:"SphericalGaussianBlur",defines:{n:20},uniforms:{envMap:{value:null},samples:{value:1},
    346 weights:{value:a},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:b},inputEncoding:{value:jb[3E3]},outputEncoding:{value:jb[3E3]}},vertexShader:Ug(),fragmentShader:"nntttprecision mediump float;ntttprecision mediump int;nntttvarying vec3 vOutputDirection;nntttuniform sampler2D envMap;ntttuniform int samples;ntttuniform float weights[ n ];ntttuniform bool latitudinal;ntttuniform float dTheta;ntttuniform float mipInt;ntttuniform vec3 poleAxis;nnttt"+
    347 Vg()+"nnttt#define ENVMAP_TYPE_CUBE_UVnttt#include <cube_uv_reflection_fragment>nntttvec3 getSample( float theta, vec3 axis ) {nnttttfloat cosTheta = cos( theta );ntttt// Rodrigues' axis-angle rotationnttttvec3 sampleDirection = vOutputDirection * cosThetanttttt+ cross( axis, vOutputDirection ) * sin( theta )nttttt+ axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta );nnttttreturn bilinearCubeUV( envMap, sampleDirection, mipInt );nnttt}nntttvoid main() {nnttttvec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection );nnttttif ( all( equal( axis, vec3( 0.0 ) ) ) ) {nntttttaxis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x );nntttt}nnttttaxis = normalize( axis );nnttttgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );nttttgl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis );nnttttfor ( int i = 1; i < n; i++ ) {nntttttif ( i >= samples ) {nnttttttbreak;nnttttt}nntttttfloat theta = dTheta * float( i );ntttttgl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis );ntttttgl_FragColor.rgb += weights[ i ] * getSample( theta, axis );nntttt}nnttttgl_FragColor = linearToOutputTexel( gl_FragColor );nnttt}ntt",
    348 blending:0,depthTest:!1,depthWrite:!1});this._cubemapShader=this._equirectShader=null;this._compileMaterial(this._blurMaterial)}function oi(a){a=new Ga(3*kb,3*kb,a);a.texture.mapping=306;a.texture.name="PMREM.cubeUv";a.scissorTest=!0;return a}function zf(a,b,c,d,e){a.viewport.set(b,c,d,e);a.scissor.set(b,c,d,e)}function pi(){var a=new u(1,1);return new rb({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null},texelSize:{value:a},inputEncoding:{value:jb[3E3]},outputEncoding:{value:jb[3E3]}},
    349 vertexShader:Ug(),fragmentShader:"nntttprecision mediump float;ntttprecision mediump int;nntttvarying vec3 vOutputDirection;nntttuniform sampler2D envMap;ntttuniform vec2 texelSize;nnttt"+Vg()+"nnttt#include <common>nntttvoid main() {nnttttgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );nnttttvec3 outputDirection = normalize( vOutputDirection );nttttvec2 uv = equirectUv( outputDirection );nnttttvec2 f = fract( uv / texelSize - 0.5 );nttttuv -= f * texelSize;nttttvec3 tl = envMapTexelToLinear( texture2D ( envMap, uv ) ).rgb;nttttuv.x += texelSize.x;nttttvec3 tr = envMapTexelToLinear( texture2D ( envMap, uv ) ).rgb;nttttuv.y += texelSize.y;nttttvec3 br = envMapTexelToLinear( texture2D ( envMap, uv ) ).rgb;nttttuv.x -= texelSize.x;nttttvec3 bl = envMapTexelToLinear( texture2D ( envMap, uv ) ).rgb;nnttttvec3 tm = mix( tl, tr, f.x );nttttvec3 bm = mix( bl, br, f.x );nttttgl_FragColor.rgb = mix( tm, bm, f.y );nnttttgl_FragColor = linearToOutputTexel( gl_FragColor );nnttt}ntt",
    350 blending:0,depthTest:!1,depthWrite:!1})}function qi(){return new rb({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},inputEncoding:{value:jb[3E3]},outputEncoding:{value:jb[3E3]}},vertexShader:Ug(),fragmentShader:"nntttprecision mediump float;ntttprecision mediump int;nntttvarying vec3 vOutputDirection;nntttuniform samplerCube envMap;nnttt"+Vg()+"nntttvoid main() {nnttttgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );nttttgl_FragColor.rgb = envMapTexelToLinear( textureCube( envMap, vec3( - vOutputDirection.x, vOutputDirection.yz ) ) ).rgb;nttttgl_FragColor = linearToOutputTexel( gl_FragColor );nnttt}ntt",
    351 blending:0,depthTest:!1,depthWrite:!1})}function Ug(){return"nnttprecision mediump float;nttprecision mediump int;nnttattribute vec3 position;nttattribute vec2 uv;nttattribute float faceIndex;nnttvarying vec3 vOutputDirection;nntt// RH coordinate system; PMREM face-indexing conventionnttvec3 getDirection( vec2 uv, float face ) {nntttuv = 2.0 * uv - 1.0;nntttvec3 direction = vec3( uv, 1.0 );nntttif ( face == 0.0 ) {nnttttdirection = direction.zyx; // ( 1, v, u ) pos xnnttt} else if ( face == 1.0 ) {nnttttdirection = direction.xzy;nttttdirection.xz *= -1.0; // ( -u, 1, -v ) pos ynnttt} else if ( face == 2.0 ) {nnttttdirection.x *= -1.0; // ( -u, v, 1 ) pos znnttt} else if ( face == 3.0 ) {nnttttdirection = direction.zyx;nttttdirection.xz *= -1.0; // ( -1, v, -u ) neg xnnttt} else if ( face == 4.0 ) {nnttttdirection = direction.xzy;nttttdirection.xy *= -1.0; // ( -u, -1, v ) neg ynnttt} else if ( face == 5.0 ) {nnttttdirection.z *= -1.0; // ( u, v, -1 ) neg znnttt}nntttreturn direction;nntt}nnttvoid main() {nntttvOutputDirection = getDirection( uv, faceIndex );ntttgl_Position = vec4( position, 1.0 );nntt}nt"}
    352 function Vg(){return"nnttuniform int inputEncoding;nttuniform int outputEncoding;nntt#include <encodings_pars_fragment>nnttvec4 inputTexelToLinear( vec4 value ) {nntttif ( inputEncoding == 0 ) {nnttttreturn value;nnttt} else if ( inputEncoding == 1 ) {nnttttreturn sRGBToLinear( value );nnttt} else if ( inputEncoding == 2 ) {nnttttreturn RGBEToLinear( value );nnttt} else if ( inputEncoding == 3 ) {nnttttreturn RGBMToLinear( value, 7.0 );nnttt} else if ( inputEncoding == 4 ) {nnttttreturn RGBMToLinear( value, 16.0 );nnttt} else if ( inputEncoding == 5 ) {nnttttreturn RGBDToLinear( value, 256.0 );nnttt} else {nnttttreturn GammaToLinear( value, 2.2 );nnttt}nntt}nnttvec4 linearToOutputTexel( vec4 value ) {nntttif ( outputEncoding == 0 ) {nnttttreturn value;nnttt} else if ( outputEncoding == 1 ) {nnttttreturn LinearTosRGB( value );nnttt} else if ( outputEncoding == 2 ) {nnttttreturn LinearToRGBE( value );nnttt} else if ( outputEncoding == 3 ) {nnttttreturn LinearToRGBM( value, 7.0 );nnttt} else if ( outputEncoding == 4 ) {nnttttreturn LinearToRGBM( value, 16.0 );nnttt} else if ( outputEncoding == 5 ) {nnttttreturn LinearToRGBD( value, 256.0 );nnttt} else {nnttttreturn LinearToGamma( value, 2.2 );nnttt}nntt}nnttvec4 envMapTexelToLinear( vec4 color ) {nntttreturn inputTexelToLinear( color );nntt}nt"}
    353 function ri(a){console.warn("THREE.ClosedSplineCurve3 has been deprecated. Use THREE.CatmullRomCurve3 instead.");za.call(this,a);this.type="catmullrom";this.closed=!0}function si(a){console.warn("THREE.SplineCurve3 has been deprecated. Use THREE.CatmullRomCurve3 instead.");za.call(this,a);this.type="catmullrom"}function Wg(a){console.warn("THREE.Spline has been removed. Use THREE.CatmullRomCurve3 instead.");za.call(this,a);this.type="catmullrom"}void 0===Number.EPSILON&&(Number.EPSILON=Math.pow(2,
    354 -52));void 0===Number.isInteger&&(Number.isInteger=function(a){return"number"===typeof a&&isFinite(a)&&Math.floor(a)===a});void 0===Math.sign&&(Math.sign=function(a){return 0>a?-1:0<a?1:+a});!1==="name"in Function.prototype&&Object.defineProperty(Function.prototype,"name",{get:function(){return this.toString().match(/^s*functions*([^(s]*)/)[1]}});void 0===Object.assign&&(Object.assign=function(a){if(void 0===a||null===a)throw new TypeError("Cannot convert undefined or null to object");for(var b=
    355 Object(a),c=1;c<arguments.length;c++){var d=arguments[c];if(void 0!==d&&null!==d)for(var e in d)Object.prototype.hasOwnProperty.call(d,e)&&(b[e]=d[e])}return b});Object.assign(Ea.prototype,{addEventListener:function(a,b){void 0===this._listeners&&(this._listeners={});var c=this._listeners;void 0===c[a]&&(c[a]=[]);-1===c[a].indexOf(b)&&c[a].push(b)},hasEventListener:function(a,b){if(void 0===this._listeners)return!1;var c=this._listeners;return void 0!==c[a]&&-1!==c[a].indexOf(b)},removeEventListener:function(a,
    356 b){void 0!==this._listeners&&(a=this._listeners[a],void 0!==a&&(b=a.indexOf(b),-1!==b&&a.splice(b,1)))},dispatchEvent:function(a){if(void 0!==this._listeners){var b=this._listeners[a.type];if(void 0!==b){a.target=this;b=b.slice(0);for(var c=0,d=b.length;c<d;c++)b[c].call(this,a)}}}});for(var ta=[],we=0;256>we;we++)ta[we]=(16>we?"0":"")+we.toString(16);var Af=1234567,P={DEG2RAD:Math.PI/180,RAD2DEG:180/Math.PI,generateUUID:function(){var a=4294967295*Math.random()|0,b=4294967295*Math.random()|0,c=4294967295*
    357 Math.random()|0,d=4294967295*Math.random()|0;return(ta[a&255]+ta[a>>8&255]+ta[a>>16&255]+ta[a>>24&255]+"-"+ta[b&255]+ta[b>>8&255]+"-"+ta[b>>16&15|64]+ta[b>>24&255]+"-"+ta[c&63|128]+ta[c>>8&255]+"-"+ta[c>>16&255]+ta[c>>24&255]+ta[d&255]+ta[d>>8&255]+ta[d>>16&255]+ta[d>>24&255]).toUpperCase()},clamp:function(a,b,c){return Math.max(b,Math.min(c,a))},euclideanModulo:function(a,b){return(a%b+b)%b},mapLinear:function(a,b,c,d,e){return d+(a-b)*(e-d)/(c-b)},lerp:function(a,b,c){return(1-c)*a+c*b},smoothstep:function(a,
    358 b,c){if(a<=b)return 0;if(a>=c)return 1;a=(a-b)/(c-b);return a*a*(3-2*a)},smootherstep:function(a,b,c){if(a<=b)return 0;if(a>=c)return 1;a=(a-b)/(c-b);return a*a*a*(a*(6*a-15)+10)},randInt:function(a,b){return a+Math.floor(Math.random()*(b-a+1))},randFloat:function(a,b){return a+Math.random()*(b-a)},randFloatSpread:function(a){return a*(.5-Math.random())},seededRandom:function(a){void 0!==a&&(Af=a%2147483647);Af=16807*Af%2147483647;return(Af-1)/2147483646},degToRad:function(a){return a*P.DEG2RAD},
    359 radToDeg:function(a){return a*P.RAD2DEG},isPowerOfTwo:function(a){return 0===(a&a-1)&&0!==a},ceilPowerOfTwo:function(a){return Math.pow(2,Math.ceil(Math.log(a)/Math.LN2))},floorPowerOfTwo:function(a){return Math.pow(2,Math.floor(Math.log(a)/Math.LN2))},setQuaternionFromProperEuler:function(a,b,c,d,e){var f=Math.cos,g=Math.sin,h=f(c/2);c=g(c/2);var l=f((b+d)/2),n=g((b+d)/2),k=f((b-d)/2),p=g((b-d)/2);f=f((d-b)/2);b=g((d-b)/2);switch(e){case "XYX":a.set(h*n,c*k,c*p,h*l);break;case "YZY":a.set(c*p,h*
    360 n,c*k,h*l);break;case "ZXZ":a.set(c*k,c*p,h*n,h*l);break;case "XZX":a.set(h*n,c*b,c*f,h*l);break;case "YXY":a.set(c*f,h*n,c*b,h*l);break;case "ZYZ":a.set(c*b,c*f,h*n,h*l);break;default:console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+e)}}};Object.defineProperties(u.prototype,{width:{get:function(){return this.x},set:function(a){this.x=a}},height:{get:function(){return this.y},set:function(a){this.y=a}}});Object.assign(u.prototype,{isVector2:!0,set:function(a,
    361 b){this.x=a;this.y=b;return this},setScalar:function(a){this.y=this.x=a;return this},setX:function(a){this.x=a;return this},setY:function(a){this.y=a;return this},setComponent:function(a,b){switch(a){case 0:this.x=b;break;case 1:this.y=b;break;default:throw Error("index is out of range: "+a);}return this},getComponent:function(a){switch(a){case 0:return this.x;case 1:return this.y;default:throw Error("index is out of range: "+a);}},clone:function(){return new this.constructor(this.x,this.y)},copy:function(a){this.x=
    362 a.x;this.y=a.y;return this},add:function(a,b){if(void 0!==b)return console.warn("THREE.Vector2: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(a,b);this.x+=a.x;this.y+=a.y;return this},addScalar:function(a){this.x+=a;this.y+=a;return this},addVectors:function(a,b){this.x=a.x+b.x;this.y=a.y+b.y;return this},addScaledVector:function(a,b){this.x+=a.x*b;this.y+=a.y*b;return this},sub:function(a,b){if(void 0!==b)return console.warn("THREE.Vector2: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),
    363 this.subVectors(a,b);this.x-=a.x;this.y-=a.y;return this},subScalar:function(a){this.x-=a;this.y-=a;return this},subVectors:function(a,b){this.x=a.x-b.x;this.y=a.y-b.y;return this},multiply:function(a){this.x*=a.x;this.y*=a.y;return this},multiplyScalar:function(a){this.x*=a;this.y*=a;return this},divide:function(a){this.x/=a.x;this.y/=a.y;return this},divideScalar:function(a){return this.multiplyScalar(1/a)},applyMatrix3:function(a){var b=this.x,c=this.y;a=a.elements;this.x=a[0]*b+a[3]*c+a[6];this.y=
    364 a[1]*b+a[4]*c+a[7];return this},min:function(a){this.x=Math.min(this.x,a.x);this.y=Math.min(this.y,a.y);return this},max:function(a){this.x=Math.max(this.x,a.x);this.y=Math.max(this.y,a.y);return this},clamp:function(a,b){this.x=Math.max(a.x,Math.min(b.x,this.x));this.y=Math.max(a.y,Math.min(b.y,this.y));return this},clampScalar:function(a,b){this.x=Math.max(a,Math.min(b,this.x));this.y=Math.max(a,Math.min(b,this.y));return this},clampLength:function(a,b){var c=this.length();return this.divideScalar(c||
    365 1).multiplyScalar(Math.max(a,Math.min(b,c)))},floor:function(){this.x=Math.floor(this.x);this.y=Math.floor(this.y);return this},ceil:function(){this.x=Math.ceil(this.x);this.y=Math.ceil(this.y);return this},round:function(){this.x=Math.round(this.x);this.y=Math.round(this.y);return this},roundToZero:function(){this.x=0>this.x?Math.ceil(this.x):Math.floor(this.x);this.y=0>this.y?Math.ceil(this.y):Math.floor(this.y);return this},negate:function(){this.x=-this.x;this.y=-this.y;return this},dot:function(a){return this.x*
    366 a.x+this.y*a.y},cross:function(a){return this.x*a.y-this.y*a.x},lengthSq:function(){return this.x*this.x+this.y*this.y},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},manhattanLength:function(){return Math.abs(this.x)+Math.abs(this.y)},normalize:function(){return this.divideScalar(this.length()||1)},angle:function(){return Math.atan2(-this.y,-this.x)+Math.PI},distanceTo:function(a){return Math.sqrt(this.distanceToSquared(a))},distanceToSquared:function(a){var b=this.x-a.x;a=this.y-
    367 a.y;return b*b+a*a},manhattanDistanceTo:function(a){return Math.abs(this.x-a.x)+Math.abs(this.y-a.y)},setLength:function(a){return this.normalize().multiplyScalar(a)},lerp:function(a,b){this.x+=(a.x-this.x)*b;this.y+=(a.y-this.y)*b;return this},lerpVectors:function(a,b,c){this.x=a.x+(b.x-a.x)*c;this.y=a.y+(b.y-a.y)*c;return this},equals:function(a){return a.x===this.x&&a.y===this.y},fromArray:function(a,b){void 0===b&&(b=0);this.x=a[b];this.y=a[b+1];return this},toArray:function(a,b){void 0===a&&
    368 (a=[]);void 0===b&&(b=0);a[b]=this.x;a[b+1]=this.y;return a},fromBufferAttribute:function(a,b,c){void 0!==c&&console.warn("THREE.Vector2: offset has been removed from .fromBufferAttribute().");this.x=a.getX(b);this.y=a.getY(b);return this},rotateAround:function(a,b){var c=Math.cos(b);b=Math.sin(b);var d=this.x-a.x,e=this.y-a.y;this.x=d*c-e*b+a.x;this.y=d*b+e*c+a.y;return this},random:function(){this.x=Math.random();this.y=Math.random();return this}});Object.assign(qa.prototype,{isMatrix3:!0,set:function(a,
    369 b,c,d,e,f,g,h,l){var n=this.elements;n[0]=a;n[1]=d;n[2]=g;n[3]=b;n[4]=e;n[5]=h;n[6]=c;n[7]=f;n[8]=l;return this},identity:function(){this.set(1,0,0,0,1,0,0,0,1);return this},clone:function(){return(new this.constructor).fromArray(this.elements)},copy:function(a){var b=this.elements;a=a.elements;b[0]=a[0];b[1]=a[1];b[2]=a[2];b[3]=a[3];b[4]=a[4];b[5]=a[5];b[6]=a[6];b[7]=a[7];b[8]=a[8];return this},extractBasis:function(a,b,c){a.setFromMatrix3Column(this,0);b.setFromMatrix3Column(this,1);c.setFromMatrix3Column(this,
    370 2);return this},setFromMatrix4:function(a){a=a.elements;this.set(a[0],a[4],a[8],a[1],a[5],a[9],a[2],a[6],a[10]);return this},multiply:function(a){return this.multiplyMatrices(this,a)},premultiply:function(a){return this.multiplyMatrices(a,this)},multiplyMatrices:function(a,b){var c=a.elements,d=b.elements;b=this.elements;a=c[0];var e=c[3],f=c[6],g=c[1],h=c[4],l=c[7],n=c[2],k=c[5];c=c[8];var p=d[0],m=d[3],r=d[6],t=d[1],v=d[4],x=d[7],u=d[2],w=d[5];d=d[8];b[0]=a*p+e*t+f*u;b[3]=a*m+e*v+f*w;b[6]=a*r+e*
    371 x+f*d;b[1]=g*p+h*t+l*u;b[4]=g*m+h*v+l*w;b[7]=g*r+h*x+l*d;b[2]=n*p+k*t+c*u;b[5]=n*m+k*v+c*w;b[8]=n*r+k*x+c*d;return this},multiplyScalar:function(a){var b=this.elements;b[0]*=a;b[3]*=a;b[6]*=a;b[1]*=a;b[4]*=a;b[7]*=a;b[2]*=a;b[5]*=a;b[8]*=a;return this},determinant:function(){var a=this.elements,b=a[0],c=a[1],d=a[2],e=a[3],f=a[4],g=a[5],h=a[6],l=a[7];a=a[8];return b*f*a-b*g*l-c*e*a+c*g*h+d*e*l-d*f*h},getInverse:function(a,b){void 0!==b&&console.warn("THREE.Matrix3: .getInverse() can no longer be configured to throw on degenerate.");
    372 var c=a.elements;a=this.elements;b=c[0];var d=c[1],e=c[2],f=c[3],g=c[4],h=c[5],l=c[6],n=c[7];c=c[8];var k=c*g-h*n,p=h*l-c*f,m=n*f-g*l,r=b*k+d*p+e*m;if(0===r)return this.set(0,0,0,0,0,0,0,0,0);r=1/r;a[0]=k*r;a[1]=(e*n-c*d)*r;a[2]=(h*d-e*g)*r;a[3]=p*r;a[4]=(c*b-e*l)*r;a[5]=(e*f-h*b)*r;a[6]=m*r;a[7]=(d*l-n*b)*r;a[8]=(g*b-d*f)*r;return this},transpose:function(){var a=this.elements;var b=a[1];a[1]=a[3];a[3]=b;b=a[2];a[2]=a[6];a[6]=b;b=a[5];a[5]=a[7];a[7]=b;return this},getNormalMatrix:function(a){return this.setFromMatrix4(a).getInverse(this).transpose()},
    373 transposeIntoArray:function(a){var b=this.elements;a[0]=b[0];a[1]=b[3];a[2]=b[6];a[3]=b[1];a[4]=b[4];a[5]=b[7];a[6]=b[2];a[7]=b[5];a[8]=b[8];return this},setUvTransform:function(a,b,c,d,e,f,g){var h=Math.cos(e);e=Math.sin(e);this.set(c*h,c*e,-c*(h*f+e*g)+f+a,-d*e,d*h,-d*(-e*f+h*g)+g+b,0,0,1)},scale:function(a,b){var c=this.elements;c[0]*=a;c[3]*=a;c[6]*=a;c[1]*=b;c[4]*=b;c[7]*=b;return this},rotate:function(a){var b=Math.cos(a);a=Math.sin(a);var c=this.elements,d=c[0],e=c[3],f=c[6],g=c[1],h=c[4],
    374 l=c[7];c[0]=b*d+a*g;c[3]=b*e+a*h;c[6]=b*f+a*l;c[1]=-a*d+b*g;c[4]=-a*e+b*h;c[7]=-a*f+b*l;return this},translate:function(a,b){var c=this.elements;c[0]+=a*c[2];c[3]+=a*c[5];c[6]+=a*c[8];c[1]+=b*c[2];c[4]+=b*c[5];c[7]+=b*c[8];return this},equals:function(a){var b=this.elements;a=a.elements;for(var c=0;9>c;c++)if(b[c]!==a[c])return!1;return!0},fromArray:function(a,b){void 0===b&&(b=0);for(var c=0;9>c;c++)this.elements[c]=a[c+b];return this},toArray:function(a,b){void 0===a&&(a=[]);void 0===b&&(b=0);var c=
    375 this.elements;a[b]=c[0];a[b+1]=c[1];a[b+2]=c[2];a[b+3]=c[3];a[b+4]=c[4];a[b+5]=c[5];a[b+6]=c[6];a[b+7]=c[7];a[b+8]=c[8];return a}});var nd,Pb={getDataURL:function(a){if(/^data:/i.test(a.src)||"undefined"==typeof HTMLCanvasElement)return a.src;if(!(a instanceof HTMLCanvasElement)){void 0===nd&&(nd=document.createElementNS("http://www.w3.org/1999/xhtml","canvas"));nd.width=a.width;nd.height=a.height;var b=nd.getContext("2d");a instanceof ImageData?b.putImageData(a,0,0):b.drawImage(a,0,0,a.width,a.height);
    376 a=nd}return 2048<a.width||2048<a.height?a.toDataURL("image/jpeg",.6):a.toDataURL("image/png")}},ej=0;V.DEFAULT_IMAGE=void 0;V.DEFAULT_MAPPING=300;V.prototype=Object.assign(Object.create(Ea.prototype),{constructor:V,isTexture:!0,updateMatrix:function(){this.matrix.setUvTransform(this.offset.x,this.offset.y,this.repeat.x,this.repeat.y,this.rotation,this.center.x,this.center.y)},clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.name=a.name;this.image=a.image;this.mipmaps=
    377 a.mipmaps.slice(0);this.mapping=a.mapping;this.wrapS=a.wrapS;this.wrapT=a.wrapT;this.magFilter=a.magFilter;this.minFilter=a.minFilter;this.anisotropy=a.anisotropy;this.format=a.format;this.internalFormat=a.internalFormat;this.type=a.type;this.offset.copy(a.offset);this.repeat.copy(a.repeat);this.center.copy(a.center);this.rotation=a.rotation;this.matrixAutoUpdate=a.matrixAutoUpdate;this.matrix.copy(a.matrix);this.generateMipmaps=a.generateMipmaps;this.premultiplyAlpha=a.premultiplyAlpha;this.flipY=
    378 a.flipY;this.unpackAlignment=a.unpackAlignment;this.encoding=a.encoding;return this},toJSON:function(a){var b=void 0===a||"string"===typeof a;if(!b&&void 0!==a.textures[this.uuid])return a.textures[this.uuid];var c={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,
    379 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){var d=this.image;void 0===d.uuid&&(d.uuid=P.generateUUID());if(!b&&void 0===a.images[d.uuid]){if(Array.isArray(d)){var e=[];for(var f=0,g=d.length;f<g;f++)e.push(Pb.getDataURL(d[f]))}else e=Pb.getDataURL(d);a.images[d.uuid]={uuid:d.uuid,url:e}}c.image=d.uuid}b||(a.textures[this.uuid]=
    380 c);return c},dispose:function(){this.dispatchEvent({type:"dispose"})},transformUv:function(a){if(300!==this.mapping)return a;a.applyMatrix3(this.matrix);if(0>a.x||1<a.x)switch(this.wrapS){case 1E3:a.x-=Math.floor(a.x);break;case 1001:a.x=0>a.x?0:1;break;case 1002:a.x=1===Math.abs(Math.floor(a.x)%2)?Math.ceil(a.x)-a.x:a.x-Math.floor(a.x)}if(0>a.y||1<a.y)switch(this.wrapT){case 1E3:a.y-=Math.floor(a.y);break;case 1001:a.y=0>a.y?0:1;break;case 1002:a.y=1===Math.abs(Math.floor(a.y)%2)?Math.ceil(a.y)-
    381 a.y:a.y-Math.floor(a.y)}this.flipY&&(a.y=1-a.y);return a}});Object.defineProperty(V.prototype,"needsUpdate",{set:function(a){!0===a&&this.version++}});Object.defineProperties(S.prototype,{width:{get:function(){return this.z},set:function(a){this.z=a}},height:{get:function(){return this.w},set:function(a){this.w=a}}});Object.assign(S.prototype,{isVector4:!0,set:function(a,b,c,d){this.x=a;this.y=b;this.z=c;this.w=d;return this},setScalar:function(a){this.w=this.z=this.y=this.x=a;return this},setX:function(a){this.x=
    382 a;return this},setY:function(a){this.y=a;return this},setZ:function(a){this.z=a;return this},setW:function(a){this.w=a;return this},setComponent:function(a,b){switch(a){case 0:this.x=b;break;case 1:this.y=b;break;case 2:this.z=b;break;case 3:this.w=b;break;default:throw Error("index is out of range: "+a);}return this},getComponent:function(a){switch(a){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw Error("index is out of range: "+a);}},clone:function(){return new this.constructor(this.x,
    383 this.y,this.z,this.w)},copy:function(a){this.x=a.x;this.y=a.y;this.z=a.z;this.w=void 0!==a.w?a.w:1;return this},add:function(a,b){if(void 0!==b)return console.warn("THREE.Vector4: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(a,b);this.x+=a.x;this.y+=a.y;this.z+=a.z;this.w+=a.w;return this},addScalar:function(a){this.x+=a;this.y+=a;this.z+=a;this.w+=a;return this},addVectors:function(a,b){this.x=a.x+b.x;this.y=a.y+b.y;this.z=a.z+b.z;this.w=a.w+b.w;return this},
    384 addScaledVector:function(a,b){this.x+=a.x*b;this.y+=a.y*b;this.z+=a.z*b;this.w+=a.w*b;return this},sub:function(a,b){if(void 0!==b)return console.warn("THREE.Vector4: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(a,b);this.x-=a.x;this.y-=a.y;this.z-=a.z;this.w-=a.w;return this},subScalar:function(a){this.x-=a;this.y-=a;this.z-=a;this.w-=a;return this},subVectors:function(a,b){this.x=a.x-b.x;this.y=a.y-b.y;this.z=a.z-b.z;this.w=a.w-b.w;return this},multiplyScalar:function(a){this.x*=
    385 a;this.y*=a;this.z*=a;this.w*=a;return this},applyMatrix4:function(a){var b=this.x,c=this.y,d=this.z,e=this.w;a=a.elements;this.x=a[0]*b+a[4]*c+a[8]*d+a[12]*e;this.y=a[1]*b+a[5]*c+a[9]*d+a[13]*e;this.z=a[2]*b+a[6]*c+a[10]*d+a[14]*e;this.w=a[3]*b+a[7]*c+a[11]*d+a[15]*e;return this},divideScalar:function(a){return this.multiplyScalar(1/a)},setAxisAngleFromQuaternion:function(a){this.w=2*Math.acos(a.w);var b=Math.sqrt(1-a.w*a.w);1E-4>b?(this.x=1,this.z=this.y=0):(this.x=a.x/b,this.y=a.y/b,this.z=a.z/
    386 b);return this},setAxisAngleFromRotationMatrix:function(a){a=a.elements;var b=a[0];var c=a[4];var d=a[8],e=a[1],f=a[5],g=a[9];var h=a[2];var l=a[6];var n=a[10];if(.01>Math.abs(c-e)&&.01>Math.abs(d-h)&&.01>Math.abs(g-l)){if(.1>Math.abs(c+e)&&.1>Math.abs(d+h)&&.1>Math.abs(g+l)&&.1>Math.abs(b+f+n-3))return this.set(1,0,0,0),this;a=Math.PI;b=(b+1)/2;f=(f+1)/2;n=(n+1)/2;c=(c+e)/4;d=(d+h)/4;g=(g+l)/4;b>f&&b>n?.01>b?(l=0,c=h=.707106781):(l=Math.sqrt(b),h=c/l,c=d/l):f>n?.01>f?(l=.707106781,h=0,c=.707106781):
    387 (h=Math.sqrt(f),l=c/h,c=g/h):.01>n?(h=l=.707106781,c=0):(c=Math.sqrt(n),l=d/c,h=g/c);this.set(l,h,c,a);return this}a=Math.sqrt((l-g)*(l-g)+(d-h)*(d-h)+(e-c)*(e-c));.001>Math.abs(a)&&(a=1);this.x=(l-g)/a;this.y=(d-h)/a;this.z=(e-c)/a;this.w=Math.acos((b+f+n-1)/2);return this},min:function(a){this.x=Math.min(this.x,a.x);this.y=Math.min(this.y,a.y);this.z=Math.min(this.z,a.z);this.w=Math.min(this.w,a.w);return this},max:function(a){this.x=Math.max(this.x,a.x);this.y=Math.max(this.y,a.y);this.z=Math.max(this.z,
    388 a.z);this.w=Math.max(this.w,a.w);return this},clamp:function(a,b){this.x=Math.max(a.x,Math.min(b.x,this.x));this.y=Math.max(a.y,Math.min(b.y,this.y));this.z=Math.max(a.z,Math.min(b.z,this.z));this.w=Math.max(a.w,Math.min(b.w,this.w));return this},clampScalar:function(a,b){this.x=Math.max(a,Math.min(b,this.x));this.y=Math.max(a,Math.min(b,this.y));this.z=Math.max(a,Math.min(b,this.z));this.w=Math.max(a,Math.min(b,this.w));return this},clampLength:function(a,b){var c=this.length();return this.divideScalar(c||
    389 1).multiplyScalar(Math.max(a,Math.min(b,c)))},floor:function(){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:function(){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:function(){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:function(){this.x=0>this.x?Math.ceil(this.x):Math.floor(this.x);
    390 this.y=0>this.y?Math.ceil(this.y):Math.floor(this.y);this.z=0>this.z?Math.ceil(this.z):Math.floor(this.z);this.w=0>this.w?Math.ceil(this.w):Math.floor(this.w);return this},negate:function(){this.x=-this.x;this.y=-this.y;this.z=-this.z;this.w=-this.w;return this},dot:function(a){return this.x*a.x+this.y*a.y+this.z*a.z+this.w*a.w},lengthSq:function(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)},
    391 manhattanLength:function(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)},normalize:function(){return this.divideScalar(this.length()||1)},setLength:function(a){return this.normalize().multiplyScalar(a)},lerp:function(a,b){this.x+=(a.x-this.x)*b;this.y+=(a.y-this.y)*b;this.z+=(a.z-this.z)*b;this.w+=(a.w-this.w)*b;return this},lerpVectors:function(a,b,c){this.x=a.x+(b.x-a.x)*c;this.y=a.y+(b.y-a.y)*c;this.z=a.z+(b.z-a.z)*c;this.w=a.w+(b.w-a.w)*c;return this},equals:function(a){return a.x===
    392 this.x&&a.y===this.y&&a.z===this.z&&a.w===this.w},fromArray:function(a,b){void 0===b&&(b=0);this.x=a[b];this.y=a[b+1];this.z=a[b+2];this.w=a[b+3];return this},toArray:function(a,b){void 0===a&&(a=[]);void 0===b&&(b=0);a[b]=this.x;a[b+1]=this.y;a[b+2]=this.z;a[b+3]=this.w;return a},fromBufferAttribute:function(a,b,c){void 0!==c&&console.warn("THREE.Vector4: offset has been removed from .fromBufferAttribute().");this.x=a.getX(b);this.y=a.getY(b);this.z=a.getZ(b);this.w=a.getW(b);return this},random:function(){this.x=
    393 Math.random();this.y=Math.random();this.z=Math.random();this.w=Math.random();return this}});Ga.prototype=Object.assign(Object.create(Ea.prototype),{constructor:Ga,isWebGLRenderTarget:!0,setSize:function(a,b){if(this.width!==a||this.height!==b)this.width=a,this.height=b,this.texture.image.width=a,this.texture.image.height=b,this.dispose();this.viewport.set(0,0,a,b);this.scissor.set(0,0,a,b)},clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.width=a.width;this.height=a.height;
    394 this.viewport.copy(a.viewport);this.texture=a.texture.clone();this.depthBuffer=a.depthBuffer;this.stencilBuffer=a.stencilBuffer;this.depthTexture=a.depthTexture;return this},dispose:function(){this.dispatchEvent({type:"dispose"})}});ag.prototype=Object.assign(Object.create(Ga.prototype),{constructor:ag,isWebGLMultisampleRenderTarget:!0,copy:function(a){Ga.prototype.copy.call(this,a);this.samples=a.samples;return this}});Object.assign(Y,{slerp:function(a,b,c,d){return c.copy(a).slerp(b,d)},slerpFlat:function(a,
    395 b,c,d,e,f,g){var h=c[d+0],l=c[d+1],n=c[d+2];c=c[d+3];d=e[f+0];var k=e[f+1],p=e[f+2];e=e[f+3];if(c!==e||h!==d||l!==k||n!==p){f=1-g;var m=h*d+l*k+n*p+c*e,r=0<=m?1:-1,t=1-m*m;t>Number.EPSILON&&(t=Math.sqrt(t),m=Math.atan2(t,m*r),f=Math.sin(f*m)/t,g=Math.sin(g*m)/t);r*=g;h=h*f+d*r;l=l*f+k*r;n=n*f+p*r;c=c*f+e*r;f===1-g&&(g=1/Math.sqrt(h*h+l*l+n*n+c*c),h*=g,l*=g,n*=g,c*=g)}a[b]=h;a[b+1]=l;a[b+2]=n;a[b+3]=c},multiplyQuaternionsFlat:function(a,b,c,d,e,f){var g=c[d],h=c[d+1],l=c[d+2];c=c[d+3];d=e[f];var n=
    396 e[f+1],k=e[f+2];e=e[f+3];a[b]=g*e+c*d+h*k-l*n;a[b+1]=h*e+c*n+l*d-g*k;a[b+2]=l*e+c*k+g*n-h*d;a[b+3]=c*e-g*d-h*n-l*k;return a}});Object.defineProperties(Y.prototype,{x:{get:function(){return this._x},set:function(a){this._x=a;this._onChangeCallback()}},y:{get:function(){return this._y},set:function(a){this._y=a;this._onChangeCallback()}},z:{get:function(){return this._z},set:function(a){this._z=a;this._onChangeCallback()}},w:{get:function(){return this._w},set:function(a){this._w=a;this._onChangeCallback()}}});
    397 Object.assign(Y.prototype,{isQuaternion:!0,set:function(a,b,c,d){this._x=a;this._y=b;this._z=c;this._w=d;this._onChangeCallback();return this},clone:function(){return new this.constructor(this._x,this._y,this._z,this._w)},copy:function(a){this._x=a.x;this._y=a.y;this._z=a.z;this._w=a.w;this._onChangeCallback();return this},setFromEuler:function(a,b){if(!a||!a.isEuler)throw Error("THREE.Quaternion: .setFromEuler() now expects an Euler rotation rather than a Vector3 and order.");var c=a._x,d=a._y,e=
    398 a._z;a=a.order;var f=Math.cos,g=Math.sin,h=f(c/2),l=f(d/2);f=f(e/2);c=g(c/2);d=g(d/2);e=g(e/2);switch(a){case "XYZ":this._x=c*l*f+h*d*e;this._y=h*d*f-c*l*e;this._z=h*l*e+c*d*f;this._w=h*l*f-c*d*e;break;case "YXZ":this._x=c*l*f+h*d*e;this._y=h*d*f-c*l*e;this._z=h*l*e-c*d*f;this._w=h*l*f+c*d*e;break;case "ZXY":this._x=c*l*f-h*d*e;this._y=h*d*f+c*l*e;this._z=h*l*e+c*d*f;this._w=h*l*f-c*d*e;break;case "ZYX":this._x=c*l*f-h*d*e;this._y=h*d*f+c*l*e;this._z=h*l*e-c*d*f;this._w=h*l*f+c*d*e;break;case "YZX":this._x=
    399 c*l*f+h*d*e;this._y=h*d*f+c*l*e;this._z=h*l*e-c*d*f;this._w=h*l*f-c*d*e;break;case "XZY":this._x=c*l*f-h*d*e;this._y=h*d*f-c*l*e;this._z=h*l*e+c*d*f;this._w=h*l*f+c*d*e;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+a)}!1!==b&&this._onChangeCallback();return this},setFromAxisAngle:function(a,b){b/=2;var c=Math.sin(b);this._x=a.x*c;this._y=a.y*c;this._z=a.z*c;this._w=Math.cos(b);this._onChangeCallback();return this},setFromRotationMatrix:function(a){var b=
    400 a.elements,c=b[0];a=b[4];var d=b[8],e=b[1],f=b[5],g=b[9],h=b[2],l=b[6];b=b[10];var n=c+f+b;0<n?(c=.5/Math.sqrt(n+1),this._w=.25/c,this._x=(l-g)*c,this._y=(d-h)*c,this._z=(e-a)*c):c>f&&c>b?(c=2*Math.sqrt(1+c-f-b),this._w=(l-g)/c,this._x=.25*c,this._y=(a+e)/c,this._z=(d+h)/c):f>b?(c=2*Math.sqrt(1+f-c-b),this._w=(d-h)/c,this._x=(a+e)/c,this._y=.25*c,this._z=(g+l)/c):(c=2*Math.sqrt(1+b-c-f),this._w=(e-a)/c,this._x=(d+h)/c,this._y=(g+l)/c,this._z=.25*c);this._onChangeCallback();return this},setFromUnitVectors:function(a,
    401 b){var c=a.dot(b)+1;1E-6>c?(c=0,Math.abs(a.x)>Math.abs(a.z)?(this._x=-a.y,this._y=a.x,this._z=0):(this._x=0,this._y=-a.z,this._z=a.y)):(this._x=a.y*b.z-a.z*b.y,this._y=a.z*b.x-a.x*b.z,this._z=a.x*b.y-a.y*b.x);this._w=c;return this.normalize()},angleTo:function(a){return 2*Math.acos(Math.abs(P.clamp(this.dot(a),-1,1)))},rotateTowards:function(a,b){var c=this.angleTo(a);if(0===c)return this;this.slerp(a,Math.min(1,b/c));return this},identity:function(){return this.set(0,0,0,1)},inverse:function(){return this.conjugate()},
    402 conjugate:function(){this._x*=-1;this._y*=-1;this._z*=-1;this._onChangeCallback();return this},dot:function(a){return this._x*a._x+this._y*a._y+this._z*a._z+this._w*a._w},lengthSq:function(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w},length:function(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)},normalize:function(){var a=this.length();0===a?(this._z=this._y=this._x=0,this._w=1):(a=1/a,this._x*=a,this._y*=a,this._z*=a,this._w*=a);
    403 this._onChangeCallback();return this},multiply:function(a,b){return void 0!==b?(console.warn("THREE.Quaternion: .multiply() now only accepts one argument. Use .multiplyQuaternions( a, b ) instead."),this.multiplyQuaternions(a,b)):this.multiplyQuaternions(this,a)},premultiply:function(a){return this.multiplyQuaternions(a,this)},multiplyQuaternions:function(a,b){var c=a._x,d=a._y,e=a._z;a=a._w;var f=b._x,g=b._y,h=b._z;b=b._w;this._x=c*b+a*f+d*h-e*g;this._y=d*b+a*g+e*f-c*h;this._z=e*b+a*h+c*g-d*f;this._w=
    404 a*b-c*f-d*g-e*h;this._onChangeCallback();return this},slerp:function(a,b){if(0===b)return this;if(1===b)return this.copy(a);var c=this._x,d=this._y,e=this._z,f=this._w,g=f*a._w+c*a._x+d*a._y+e*a._z;0>g?(this._w=-a._w,this._x=-a._x,this._y=-a._y,this._z=-a._z,g=-g):this.copy(a);if(1<=g)return this._w=f,this._x=c,this._y=d,this._z=e,this;a=1-g*g;if(a<=Number.EPSILON)return g=1-b,this._w=g*f+b*this._w,this._x=g*c+b*this._x,this._y=g*d+b*this._y,this._z=g*e+b*this._z,this.normalize(),this._onChangeCallback(),
    405 this;a=Math.sqrt(a);var h=Math.atan2(a,g);g=Math.sin((1-b)*h)/a;b=Math.sin(b*h)/a;this._w=f*g+this._w*b;this._x=c*g+this._x*b;this._y=d*g+this._y*b;this._z=e*g+this._z*b;this._onChangeCallback();return this},equals:function(a){return a._x===this._x&&a._y===this._y&&a._z===this._z&&a._w===this._w},fromArray:function(a,b){void 0===b&&(b=0);this._x=a[b];this._y=a[b+1];this._z=a[b+2];this._w=a[b+3];this._onChangeCallback();return this},toArray:function(a,b){void 0===a&&(a=[]);void 0===b&&(b=0);a[b]=this._x;
    406 a[b+1]=this._y;a[b+2]=this._z;a[b+3]=this._w;return a},fromBufferAttribute:function(a,b){this._x=a.getX(b);this._y=a.getY(b);this._z=a.getZ(b);this._w=a.getW(b);return this},_onChange:function(a){this._onChangeCallback=a;return this},_onChangeCallback:function(){}});var Xg=new m,ti=new Y;Object.assign(m.prototype,{isVector3:!0,set:function(a,b,c){void 0===c&&(c=this.z);this.x=a;this.y=b;this.z=c;return this},setScalar:function(a){this.z=this.y=this.x=a;return this},setX:function(a){this.x=a;return this},
    407 setY:function(a){this.y=a;return this},setZ:function(a){this.z=a;return this},setComponent:function(a,b){switch(a){case 0:this.x=b;break;case 1:this.y=b;break;case 2:this.z=b;break;default:throw Error("index is out of range: "+a);}return this},getComponent:function(a){switch(a){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw Error("index is out of range: "+a);}},clone:function(){return new this.constructor(this.x,this.y,this.z)},copy:function(a){this.x=a.x;this.y=a.y;
    408 this.z=a.z;return this},add:function(a,b){if(void 0!==b)return console.warn("THREE.Vector3: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(a,b);this.x+=a.x;this.y+=a.y;this.z+=a.z;return this},addScalar:function(a){this.x+=a;this.y+=a;this.z+=a;return this},addVectors:function(a,b){this.x=a.x+b.x;this.y=a.y+b.y;this.z=a.z+b.z;return this},addScaledVector:function(a,b){this.x+=a.x*b;this.y+=a.y*b;this.z+=a.z*b;return this},sub:function(a,b){if(void 0!==b)return console.warn("THREE.Vector3: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),
    409 this.subVectors(a,b);this.x-=a.x;this.y-=a.y;this.z-=a.z;return this},subScalar:function(a){this.x-=a;this.y-=a;this.z-=a;return this},subVectors:function(a,b){this.x=a.x-b.x;this.y=a.y-b.y;this.z=a.z-b.z;return this},multiply:function(a,b){if(void 0!==b)return console.warn("THREE.Vector3: .multiply() now only accepts one argument. Use .multiplyVectors( a, b ) instead."),this.multiplyVectors(a,b);this.x*=a.x;this.y*=a.y;this.z*=a.z;return this},multiplyScalar:function(a){this.x*=a;this.y*=a;this.z*=
    410 a;return this},multiplyVectors:function(a,b){this.x=a.x*b.x;this.y=a.y*b.y;this.z=a.z*b.z;return this},applyEuler:function(a){a&&a.isEuler||console.error("THREE.Vector3: .applyEuler() now expects an Euler rotation rather than a Vector3 and order.");return this.applyQuaternion(ti.setFromEuler(a))},applyAxisAngle:function(a,b){return this.applyQuaternion(ti.setFromAxisAngle(a,b))},applyMatrix3:function(a){var b=this.x,c=this.y,d=this.z;a=a.elements;this.x=a[0]*b+a[3]*c+a[6]*d;this.y=a[1]*b+a[4]*c+a[7]*
    411 d;this.z=a[2]*b+a[5]*c+a[8]*d;return this},applyNormalMatrix:function(a){return this.applyMatrix3(a).normalize()},applyMatrix4:function(a){var b=this.x,c=this.y,d=this.z;a=a.elements;var e=1/(a[3]*b+a[7]*c+a[11]*d+a[15]);this.x=(a[0]*b+a[4]*c+a[8]*d+a[12])*e;this.y=(a[1]*b+a[5]*c+a[9]*d+a[13])*e;this.z=(a[2]*b+a[6]*c+a[10]*d+a[14])*e;return this},applyQuaternion:function(a){var b=this.x,c=this.y,d=this.z,e=a.x,f=a.y,g=a.z;a=a.w;var h=a*b+f*d-g*c,l=a*c+g*b-e*d,n=a*d+e*c-f*b;b=-e*b-f*c-g*d;this.x=h*
    412 a+b*-e+l*-g-n*-f;this.y=l*a+b*-f+n*-e-h*-g;this.z=n*a+b*-g+h*-f-l*-e;return this},project:function(a){return this.applyMatrix4(a.matrixWorldInverse).applyMatrix4(a.projectionMatrix)},unproject:function(a){return this.applyMatrix4(a.projectionMatrixInverse).applyMatrix4(a.matrixWorld)},transformDirection:function(a){var b=this.x,c=this.y,d=this.z;a=a.elements;this.x=a[0]*b+a[4]*c+a[8]*d;this.y=a[1]*b+a[5]*c+a[9]*d;this.z=a[2]*b+a[6]*c+a[10]*d;return this.normalize()},divide:function(a){this.x/=a.x;
    413 this.y/=a.y;this.z/=a.z;return this},divideScalar:function(a){return this.multiplyScalar(1/a)},min:function(a){this.x=Math.min(this.x,a.x);this.y=Math.min(this.y,a.y);this.z=Math.min(this.z,a.z);return this},max:function(a){this.x=Math.max(this.x,a.x);this.y=Math.max(this.y,a.y);this.z=Math.max(this.z,a.z);return this},clamp:function(a,b){this.x=Math.max(a.x,Math.min(b.x,this.x));this.y=Math.max(a.y,Math.min(b.y,this.y));this.z=Math.max(a.z,Math.min(b.z,this.z));return this},clampScalar:function(a,
    414 b){this.x=Math.max(a,Math.min(b,this.x));this.y=Math.max(a,Math.min(b,this.y));this.z=Math.max(a,Math.min(b,this.z));return this},clampLength:function(a,b){var c=this.length();return this.divideScalar(c||1).multiplyScalar(Math.max(a,Math.min(b,c)))},floor:function(){this.x=Math.floor(this.x);this.y=Math.floor(this.y);this.z=Math.floor(this.z);return this},ceil:function(){this.x=Math.ceil(this.x);this.y=Math.ceil(this.y);this.z=Math.ceil(this.z);return this},round:function(){this.x=Math.round(this.x);
    415 this.y=Math.round(this.y);this.z=Math.round(this.z);return this},roundToZero:function(){this.x=0>this.x?Math.ceil(this.x):Math.floor(this.x);this.y=0>this.y?Math.ceil(this.y):Math.floor(this.y);this.z=0>this.z?Math.ceil(this.z):Math.floor(this.z);return this},negate:function(){this.x=-this.x;this.y=-this.y;this.z=-this.z;return this},dot:function(a){return this.x*a.x+this.y*a.y+this.z*a.z},lengthSq:function(){return this.x*this.x+this.y*this.y+this.z*this.z},length:function(){return Math.sqrt(this.x*
    416 this.x+this.y*this.y+this.z*this.z)},manhattanLength:function(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)},normalize:function(){return this.divideScalar(this.length()||1)},setLength:function(a){return this.normalize().multiplyScalar(a)},lerp:function(a,b){this.x+=(a.x-this.x)*b;this.y+=(a.y-this.y)*b;this.z+=(a.z-this.z)*b;return this},lerpVectors:function(a,b,c){this.x=a.x+(b.x-a.x)*c;this.y=a.y+(b.y-a.y)*c;this.z=a.z+(b.z-a.z)*c;return this},cross:function(a,b){return void 0!==b?
    417 (console.warn("THREE.Vector3: .cross() now only accepts one argument. Use .crossVectors( a, b ) instead."),this.crossVectors(a,b)):this.crossVectors(this,a)},crossVectors:function(a,b){var c=a.x,d=a.y;a=a.z;var e=b.x,f=b.y;b=b.z;this.x=d*b-a*f;this.y=a*e-c*b;this.z=c*f-d*e;return this},projectOnVector:function(a){var b=a.lengthSq();if(0===b)return this.set(0,0,0);b=a.dot(this)/b;return this.copy(a).multiplyScalar(b)},projectOnPlane:function(a){Xg.copy(this).projectOnVector(a);return this.sub(Xg)},
    418 reflect:function(a){return this.sub(Xg.copy(a).multiplyScalar(2*this.dot(a)))},angleTo:function(a){var b=Math.sqrt(this.lengthSq()*a.lengthSq());if(0===b)return Math.PI/2;a=this.dot(a)/b;return Math.acos(P.clamp(a,-1,1))},distanceTo:function(a){return Math.sqrt(this.distanceToSquared(a))},distanceToSquared:function(a){var b=this.x-a.x,c=this.y-a.y;a=this.z-a.z;return b*b+c*c+a*a},manhattanDistanceTo:function(a){return Math.abs(this.x-a.x)+Math.abs(this.y-a.y)+Math.abs(this.z-a.z)},setFromSpherical:function(a){return this.setFromSphericalCoords(a.radius,
    419 a.phi,a.theta)},setFromSphericalCoords:function(a,b,c){var d=Math.sin(b)*a;this.x=d*Math.sin(c);this.y=Math.cos(b)*a;this.z=d*Math.cos(c);return this},setFromCylindrical:function(a){return this.setFromCylindricalCoords(a.radius,a.theta,a.y)},setFromCylindricalCoords:function(a,b,c){this.x=a*Math.sin(b);this.y=c;this.z=a*Math.cos(b);return this},setFromMatrixPosition:function(a){a=a.elements;this.x=a[12];this.y=a[13];this.z=a[14];return this},setFromMatrixScale:function(a){var b=this.setFromMatrixColumn(a,
    420 0).length(),c=this.setFromMatrixColumn(a,1).length();a=this.setFromMatrixColumn(a,2).length();this.x=b;this.y=c;this.z=a;return this},setFromMatrixColumn:function(a,b){return this.fromArray(a.elements,4*b)},setFromMatrix3Column:function(a,b){return this.fromArray(a.elements,3*b)},equals:function(a){return a.x===this.x&&a.y===this.y&&a.z===this.z},fromArray:function(a,b){void 0===b&&(b=0);this.x=a[b];this.y=a[b+1];this.z=a[b+2];return this},toArray:function(a,b){void 0===a&&(a=[]);void 0===b&&(b=0);
    421 a[b]=this.x;a[b+1]=this.y;a[b+2]=this.z;return a},fromBufferAttribute:function(a,b,c){void 0!==c&&console.warn("THREE.Vector3: offset has been removed from .fromBufferAttribute().");this.x=a.getX(b);this.y=a.getY(b);this.z=a.getZ(b);return this},random:function(){this.x=Math.random();this.y=Math.random();this.z=Math.random();return this}});var od=new m,pa=new U,Kk=new m(0,0,0),Lk=new m(1,1,1),Qb=new m,Bf=new m,Ca=new m;Object.assign(U.prototype,{isMatrix4:!0,set:function(a,b,c,d,e,f,g,h,l,n,k,p,m,
    422 r,t,v){var q=this.elements;q[0]=a;q[4]=b;q[8]=c;q[12]=d;q[1]=e;q[5]=f;q[9]=g;q[13]=h;q[2]=l;q[6]=n;q[10]=k;q[14]=p;q[3]=m;q[7]=r;q[11]=t;q[15]=v;return this},identity:function(){this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1);return this},clone:function(){return(new U).fromArray(this.elements)},copy:function(a){var b=this.elements;a=a.elements;b[0]=a[0];b[1]=a[1];b[2]=a[2];b[3]=a[3];b[4]=a[4];b[5]=a[5];b[6]=a[6];b[7]=a[7];b[8]=a[8];b[9]=a[9];b[10]=a[10];b[11]=a[11];b[12]=a[12];b[13]=a[13];b[14]=a[14];b[15]=
    423 a[15];return this},copyPosition:function(a){var b=this.elements;a=a.elements;b[12]=a[12];b[13]=a[13];b[14]=a[14];return this},extractBasis:function(a,b,c){a.setFromMatrixColumn(this,0);b.setFromMatrixColumn(this,1);c.setFromMatrixColumn(this,2);return this},makeBasis:function(a,b,c){this.set(a.x,b.x,c.x,0,a.y,b.y,c.y,0,a.z,b.z,c.z,0,0,0,0,1);return this},extractRotation:function(a){var b=this.elements,c=a.elements,d=1/od.setFromMatrixColumn(a,0).length(),e=1/od.setFromMatrixColumn(a,1).length();a=
    424 1/od.setFromMatrixColumn(a,2).length();b[0]=c[0]*d;b[1]=c[1]*d;b[2]=c[2]*d;b[3]=0;b[4]=c[4]*e;b[5]=c[5]*e;b[6]=c[6]*e;b[7]=0;b[8]=c[8]*a;b[9]=c[9]*a;b[10]=c[10]*a;b[11]=0;b[12]=0;b[13]=0;b[14]=0;b[15]=1;return this},makeRotationFromEuler:function(a){a&&a.isEuler||console.error("THREE.Matrix4: .makeRotationFromEuler() now expects a Euler rotation rather than a Vector3 and order.");var b=this.elements,c=a.x,d=a.y,e=a.z,f=Math.cos(c);c=Math.sin(c);var g=Math.cos(d);d=Math.sin(d);var h=Math.cos(e);e=
    425 Math.sin(e);if("XYZ"===a.order){a=f*h;var l=f*e,n=c*h,k=c*e;b[0]=g*h;b[4]=-g*e;b[8]=d;b[1]=l+n*d;b[5]=a-k*d;b[9]=-c*g;b[2]=k-a*d;b[6]=n+l*d;b[10]=f*g}else"YXZ"===a.order?(a=g*h,l=g*e,n=d*h,k=d*e,b[0]=a+k*c,b[4]=n*c-l,b[8]=f*d,b[1]=f*e,b[5]=f*h,b[9]=-c,b[2]=l*c-n,b[6]=k+a*c,b[10]=f*g):"ZXY"===a.order?(a=g*h,l=g*e,n=d*h,k=d*e,b[0]=a-k*c,b[4]=-f*e,b[8]=n+l*c,b[1]=l+n*c,b[5]=f*h,b[9]=k-a*c,b[2]=-f*d,b[6]=c,b[10]=f*g):"ZYX"===a.order?(a=f*h,l=f*e,n=c*h,k=c*e,b[0]=g*h,b[4]=n*d-l,b[8]=a*d+k,b[1]=g*e,b[5]=
    426 k*d+a,b[9]=l*d-n,b[2]=-d,b[6]=c*g,b[10]=f*g):"YZX"===a.order?(a=f*g,l=f*d,n=c*g,k=c*d,b[0]=g*h,b[4]=k-a*e,b[8]=n*e+l,b[1]=e,b[5]=f*h,b[9]=-c*h,b[2]=-d*h,b[6]=l*e+n,b[10]=a-k*e):"XZY"===a.order&&(a=f*g,l=f*d,n=c*g,k=c*d,b[0]=g*h,b[4]=-e,b[8]=d*h,b[1]=a*e+k,b[5]=f*h,b[9]=l*e-n,b[2]=n*e-l,b[6]=c*h,b[10]=k*e+a);b[3]=0;b[7]=0;b[11]=0;b[12]=0;b[13]=0;b[14]=0;b[15]=1;return this},makeRotationFromQuaternion:function(a){return this.compose(Kk,a,Lk)},lookAt:function(a,b,c){var d=this.elements;Ca.subVectors(a,
    427 b);0===Ca.lengthSq()&&(Ca.z=1);Ca.normalize();Qb.crossVectors(c,Ca);0===Qb.lengthSq()&&(1===Math.abs(c.z)?Ca.x+=1E-4:Ca.z+=1E-4,Ca.normalize(),Qb.crossVectors(c,Ca));Qb.normalize();Bf.crossVectors(Ca,Qb);d[0]=Qb.x;d[4]=Bf.x;d[8]=Ca.x;d[1]=Qb.y;d[5]=Bf.y;d[9]=Ca.y;d[2]=Qb.z;d[6]=Bf.z;d[10]=Ca.z;return this},multiply:function(a,b){return void 0!==b?(console.warn("THREE.Matrix4: .multiply() now only accepts one argument. Use .multiplyMatrices( a, b ) instead."),this.multiplyMatrices(a,b)):this.multiplyMatrices(this,
    428 a)},premultiply:function(a){return this.multiplyMatrices(a,this)},multiplyMatrices:function(a,b){var c=a.elements,d=b.elements;b=this.elements;a=c[0];var e=c[4],f=c[8],g=c[12],h=c[1],l=c[5],k=c[9],q=c[13],p=c[2],m=c[6],r=c[10],t=c[14],v=c[3],x=c[7],u=c[11];c=c[15];var w=d[0],A=d[4],C=d[8],N=d[12],y=d[1],I=d[5],E=d[9],D=d[13],F=d[2],G=d[6],H=d[10],J=d[14],K=d[3],L=d[7],O=d[11];d=d[15];b[0]=a*w+e*y+f*F+g*K;b[4]=a*A+e*I+f*G+g*L;b[8]=a*C+e*E+f*H+g*O;b[12]=a*N+e*D+f*J+g*d;b[1]=h*w+l*y+k*F+q*K;b[5]=h*A+
    429 l*I+k*G+q*L;b[9]=h*C+l*E+k*H+q*O;b[13]=h*N+l*D+k*J+q*d;b[2]=p*w+m*y+r*F+t*K;b[6]=p*A+m*I+r*G+t*L;b[10]=p*C+m*E+r*H+t*O;b[14]=p*N+m*D+r*J+t*d;b[3]=v*w+x*y+u*F+c*K;b[7]=v*A+x*I+u*G+c*L;b[11]=v*C+x*E+u*H+c*O;b[15]=v*N+x*D+u*J+c*d;return this},multiplyScalar:function(a){var b=this.elements;b[0]*=a;b[4]*=a;b[8]*=a;b[12]*=a;b[1]*=a;b[5]*=a;b[9]*=a;b[13]*=a;b[2]*=a;b[6]*=a;b[10]*=a;b[14]*=a;b[3]*=a;b[7]*=a;b[11]*=a;b[15]*=a;return this},determinant:function(){var a=this.elements,b=a[0],c=a[4],d=a[8],e=a[12],
    430 f=a[1],g=a[5],h=a[9],l=a[13],k=a[2],q=a[6],p=a[10],m=a[14];return a[3]*(+e*h*q-d*l*q-e*g*p+c*l*p+d*g*m-c*h*m)+a[7]*(+b*h*m-b*l*p+e*f*p-d*f*m+d*l*k-e*h*k)+a[11]*(+b*l*q-b*g*m-e*f*q+c*f*m+e*g*k-c*l*k)+a[15]*(-d*g*k-b*h*q+b*g*p+d*f*q-c*f*p+c*h*k)},transpose:function(){var a=this.elements;var b=a[1];a[1]=a[4];a[4]=b;b=a[2];a[2]=a[8];a[8]=b;b=a[6];a[6]=a[9];a[9]=b;b=a[3];a[3]=a[12];a[12]=b;b=a[7];a[7]=a[13];a[13]=b;b=a[11];a[11]=a[14];a[14]=b;return this},setPosition:function(a,b,c){var d=this.elements;
    431 a.isVector3?(d[12]=a.x,d[13]=a.y,d[14]=a.z):(d[12]=a,d[13]=b,d[14]=c);return this},getInverse:function(a,b){void 0!==b&&console.warn("THREE.Matrix4: .getInverse() can no longer be configured to throw on degenerate.");b=this.elements;var c=a.elements;a=c[0];var d=c[1],e=c[2],f=c[3],g=c[4],h=c[5],l=c[6],k=c[7],q=c[8],p=c[9],m=c[10],r=c[11],t=c[12],v=c[13],x=c[14];c=c[15];var u=p*x*k-v*m*k+v*l*r-h*x*r-p*l*c+h*m*c,w=t*m*k-q*x*k-t*l*r+g*x*r+q*l*c-g*m*c,A=q*v*k-t*p*k+t*h*r-g*v*r-q*h*c+g*p*c,C=t*p*l-q*v*
    432 l-t*h*m+g*v*m+q*h*x-g*p*x,N=a*u+d*w+e*A+f*C;if(0===N)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);N=1/N;b[0]=u*N;b[1]=(v*m*f-p*x*f-v*e*r+d*x*r+p*e*c-d*m*c)*N;b[2]=(h*x*f-v*l*f+v*e*k-d*x*k-h*e*c+d*l*c)*N;b[3]=(p*l*f-h*m*f-p*e*k+d*m*k+h*e*r-d*l*r)*N;b[4]=w*N;b[5]=(q*x*f-t*m*f+t*e*r-a*x*r-q*e*c+a*m*c)*N;b[6]=(t*l*f-g*x*f-t*e*k+a*x*k+g*e*c-a*l*c)*N;b[7]=(g*m*f-q*l*f+q*e*k-a*m*k-g*e*r+a*l*r)*N;b[8]=A*N;b[9]=(t*p*f-q*v*f-t*d*r+a*v*r+q*d*c-a*p*c)*N;b[10]=(g*v*f-t*h*f+t*d*k-a*v*k-g*d*c+a*h*c)*N;b[11]=
    433 (q*h*f-g*p*f-q*d*k+a*p*k+g*d*r-a*h*r)*N;b[12]=C*N;b[13]=(q*v*e-t*p*e+t*d*m-a*v*m-q*d*x+a*p*x)*N;b[14]=(t*h*e-g*v*e-t*d*l+a*v*l+g*d*x-a*h*x)*N;b[15]=(g*p*e-q*h*e+q*d*l-a*p*l-g*d*m+a*h*m)*N;return this},scale:function(a){var b=this.elements,c=a.x,d=a.y;a=a.z;b[0]*=c;b[4]*=d;b[8]*=a;b[1]*=c;b[5]*=d;b[9]*=a;b[2]*=c;b[6]*=d;b[10]*=a;b[3]*=c;b[7]*=d;b[11]*=a;return this},getMaxScaleOnAxis:function(){var a=this.elements;return Math.sqrt(Math.max(a[0]*a[0]+a[1]*a[1]+a[2]*a[2],a[4]*a[4]+a[5]*a[5]+a[6]*a[6],
    434 a[8]*a[8]+a[9]*a[9]+a[10]*a[10]))},makeTranslation:function(a,b,c){this.set(1,0,0,a,0,1,0,b,0,0,1,c,0,0,0,1);return this},makeRotationX:function(a){var b=Math.cos(a);a=Math.sin(a);this.set(1,0,0,0,0,b,-a,0,0,a,b,0,0,0,0,1);return this},makeRotationY:function(a){var b=Math.cos(a);a=Math.sin(a);this.set(b,0,a,0,0,1,0,0,-a,0,b,0,0,0,0,1);return this},makeRotationZ:function(a){var b=Math.cos(a);a=Math.sin(a);this.set(b,-a,0,0,a,b,0,0,0,0,1,0,0,0,0,1);return this},makeRotationAxis:function(a,b){var c=
    435 Math.cos(b);b=Math.sin(b);var d=1-c,e=a.x,f=a.y;a=a.z;var g=d*e,h=d*f;this.set(g*e+c,g*f-b*a,g*a+b*f,0,g*f+b*a,h*f+c,h*a-b*e,0,g*a-b*f,h*a+b*e,d*a*a+c,0,0,0,0,1);return this},makeScale:function(a,b,c){this.set(a,0,0,0,0,b,0,0,0,0,c,0,0,0,0,1);return this},makeShear:function(a,b,c){this.set(1,b,c,0,a,1,c,0,a,b,1,0,0,0,0,1);return this},compose:function(a,b,c){var d=this.elements,e=b._x,f=b._y,g=b._z,h=b._w,l=e+e,k=f+f,q=g+g;b=e*l;var p=e*k;e*=q;var m=f*k;f*=q;g*=q;l*=h;k*=h;h*=q;q=c.x;var r=c.y;c=
    436 c.z;d[0]=(1-(m+g))*q;d[1]=(p+h)*q;d[2]=(e-k)*q;d[3]=0;d[4]=(p-h)*r;d[5]=(1-(b+g))*r;d[6]=(f+l)*r;d[7]=0;d[8]=(e+k)*c;d[9]=(f-l)*c;d[10]=(1-(b+m))*c;d[11]=0;d[12]=a.x;d[13]=a.y;d[14]=a.z;d[15]=1;return this},decompose:function(a,b,c){var d=this.elements,e=od.set(d[0],d[1],d[2]).length(),f=od.set(d[4],d[5],d[6]).length(),g=od.set(d[8],d[9],d[10]).length();0>this.determinant()&&(e=-e);a.x=d[12];a.y=d[13];a.z=d[14];pa.copy(this);a=1/e;d=1/f;var h=1/g;pa.elements[0]*=a;pa.elements[1]*=a;pa.elements[2]*=
    437 a;pa.elements[4]*=d;pa.elements[5]*=d;pa.elements[6]*=d;pa.elements[8]*=h;pa.elements[9]*=h;pa.elements[10]*=h;b.setFromRotationMatrix(pa);c.x=e;c.y=f;c.z=g;return this},makePerspective:function(a,b,c,d,e,f){void 0===f&&console.warn("THREE.Matrix4: .makePerspective() has been redefined and has a new signature. Please check the docs.");var g=this.elements;g[0]=2*e/(b-a);g[4]=0;g[8]=(b+a)/(b-a);g[12]=0;g[1]=0;g[5]=2*e/(c-d);g[9]=(c+d)/(c-d);g[13]=0;g[2]=0;g[6]=0;g[10]=-(f+e)/(f-e);g[14]=-2*f*e/(f-e);
    438 g[3]=0;g[7]=0;g[11]=-1;g[15]=0;return this},makeOrthographic:function(a,b,c,d,e,f){var g=this.elements,h=1/(b-a),l=1/(c-d),k=1/(f-e);g[0]=2*h;g[4]=0;g[8]=0;g[12]=-((b+a)*h);g[1]=0;g[5]=2*l;g[9]=0;g[13]=-((c+d)*l);g[2]=0;g[6]=0;g[10]=-2*k;g[14]=-((f+e)*k);g[3]=0;g[7]=0;g[11]=0;g[15]=1;return this},equals:function(a){var b=this.elements;a=a.elements;for(var c=0;16>c;c++)if(b[c]!==a[c])return!1;return!0},fromArray:function(a,b){void 0===b&&(b=0);for(var c=0;16>c;c++)this.elements[c]=a[c+b];return this},
    439 toArray:function(a,b){void 0===a&&(a=[]);void 0===b&&(b=0);var c=this.elements;a[b]=c[0];a[b+1]=c[1];a[b+2]=c[2];a[b+3]=c[3];a[b+4]=c[4];a[b+5]=c[5];a[b+6]=c[6];a[b+7]=c[7];a[b+8]=c[8];a[b+9]=c[9];a[b+10]=c[10];a[b+11]=c[11];a[b+12]=c[12];a[b+13]=c[13];a[b+14]=c[14];a[b+15]=c[15];return a}});var ui=new U,vi=new Y;Vb.RotationOrders="XYZ YZX ZXY XZY YXZ ZYX".split(" ");Vb.DefaultOrder="XYZ";Object.defineProperties(Vb.prototype,{x:{get:function(){return this._x},set:function(a){this._x=a;this._onChangeCallback()}},
    440 y:{get:function(){return this._y},set:function(a){this._y=a;this._onChangeCallback()}},z:{get:function(){return this._z},set:function(a){this._z=a;this._onChangeCallback()}},order:{get:function(){return this._order},set:function(a){this._order=a;this._onChangeCallback()}}});Object.assign(Vb.prototype,{isEuler:!0,set:function(a,b,c,d){this._x=a;this._y=b;this._z=c;this._order=d||this._order;this._onChangeCallback();return this},clone:function(){return new this.constructor(this._x,this._y,this._z,this._order)},
    441 copy:function(a){this._x=a._x;this._y=a._y;this._z=a._z;this._order=a._order;this._onChangeCallback();return this},setFromRotationMatrix:function(a,b,c){var d=P.clamp,e=a.elements;a=e[0];var f=e[4],g=e[8],h=e[1],l=e[5],k=e[9],q=e[2],p=e[6];e=e[10];b=b||this._order;switch(b){case "XYZ":this._y=Math.asin(d(g,-1,1));.9999999>Math.abs(g)?(this._x=Math.atan2(-k,e),this._z=Math.atan2(-f,a)):(this._x=Math.atan2(p,l),this._z=0);break;case "YXZ":this._x=Math.asin(-d(k,-1,1));.9999999>Math.abs(k)?(this._y=
    442 Math.atan2(g,e),this._z=Math.atan2(h,l)):(this._y=Math.atan2(-q,a),this._z=0);break;case "ZXY":this._x=Math.asin(d(p,-1,1));.9999999>Math.abs(p)?(this._y=Math.atan2(-q,e),this._z=Math.atan2(-f,l)):(this._y=0,this._z=Math.atan2(h,a));break;case "ZYX":this._y=Math.asin(-d(q,-1,1));.9999999>Math.abs(q)?(this._x=Math.atan2(p,e),this._z=Math.atan2(h,a)):(this._x=0,this._z=Math.atan2(-f,l));break;case "YZX":this._z=Math.asin(d(h,-1,1));.9999999>Math.abs(h)?(this._x=Math.atan2(-k,l),this._y=Math.atan2(-q,
    443 a)):(this._x=0,this._y=Math.atan2(g,e));break;case "XZY":this._z=Math.asin(-d(f,-1,1));.9999999>Math.abs(f)?(this._x=Math.atan2(p,l),this._y=Math.atan2(g,a)):(this._x=Math.atan2(-k,e),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+b)}this._order=b;!1!==c&&this._onChangeCallback();return this},setFromQuaternion:function(a,b,c){ui.makeRotationFromQuaternion(a);return this.setFromRotationMatrix(ui,b,c)},setFromVector3:function(a,b){return this.set(a.x,
    444 a.y,a.z,b||this._order)},reorder:function(a){vi.setFromEuler(this);return this.setFromQuaternion(vi,a)},equals:function(a){return a._x===this._x&&a._y===this._y&&a._z===this._z&&a._order===this._order},fromArray:function(a){this._x=a[0];this._y=a[1];this._z=a[2];void 0!==a[3]&&(this._order=a[3]);this._onChangeCallback();return this},toArray:function(a,b){void 0===a&&(a=[]);void 0===b&&(b=0);a[b]=this._x;a[b+1]=this._y;a[b+2]=this._z;a[b+3]=this._order;return a},toVector3:function(a){return a?a.set(this._x,
    445 this._y,this._z):new m(this._x,this._y,this._z)},_onChange:function(a){this._onChangeCallback=a;return this},_onChangeCallback:function(){}});Object.assign(He.prototype,{set:function(a){this.mask=1<<a|0},enable:function(a){this.mask=this.mask|1<<a|0},enableAll:function(){this.mask=-1},toggle:function(a){this.mask^=1<<a|0},disable:function(a){this.mask&=~(1<<a|0)},disableAll:function(){this.mask=0},test:function(a){return 0!==(this.mask&a.mask)}});var fj=0,wi=new m,pd=new Y,tb=new U,Cf=new m,xe=new m,
    446 Mk=new m,Nk=new Y,xi=new m(1,0,0),yi=new m(0,1,0),zi=new m(0,0,1),Ok={type:"added"},Pk={type:"removed"};C.DefaultUp=new m(0,1,0);C.DefaultMatrixAutoUpdate=!0;C.prototype=Object.assign(Object.create(Ea.prototype),{constructor:C,isObject3D:!0,onBeforeRender:function(){},onAfterRender:function(){},applyMatrix4:function(a){this.matrixAutoUpdate&&this.updateMatrix();this.matrix.premultiply(a);this.matrix.decompose(this.position,this.quaternion,this.scale)},applyQuaternion:function(a){this.quaternion.premultiply(a);
    447 return this},setRotationFromAxisAngle:function(a,b){this.quaternion.setFromAxisAngle(a,b)},setRotationFromEuler:function(a){this.quaternion.setFromEuler(a,!0)},setRotationFromMatrix:function(a){this.quaternion.setFromRotationMatrix(a)},setRotationFromQuaternion:function(a){this.quaternion.copy(a)},rotateOnAxis:function(a,b){pd.setFromAxisAngle(a,b);this.quaternion.multiply(pd);return this},rotateOnWorldAxis:function(a,b){pd.setFromAxisAngle(a,b);this.quaternion.premultiply(pd);return this},rotateX:function(a){return this.rotateOnAxis(xi,
    448 a)},rotateY:function(a){return this.rotateOnAxis(yi,a)},rotateZ:function(a){return this.rotateOnAxis(zi,a)},translateOnAxis:function(a,b){wi.copy(a).applyQuaternion(this.quaternion);this.position.add(wi.multiplyScalar(b));return this},translateX:function(a){return this.translateOnAxis(xi,a)},translateY:function(a){return this.translateOnAxis(yi,a)},translateZ:function(a){return this.translateOnAxis(zi,a)},localToWorld:function(a){return a.applyMatrix4(this.matrixWorld)},worldToLocal:function(a){return a.applyMatrix4(tb.getInverse(this.matrixWorld))},
    449 lookAt:function(a,b,c){a.isVector3?Cf.copy(a):Cf.set(a,b,c);a=this.parent;this.updateWorldMatrix(!0,!1);xe.setFromMatrixPosition(this.matrixWorld);this.isCamera||this.isLight?tb.lookAt(xe,Cf,this.up):tb.lookAt(Cf,xe,this.up);this.quaternion.setFromRotationMatrix(tb);a&&(tb.extractRotation(a.matrixWorld),pd.setFromRotationMatrix(tb),this.quaternion.premultiply(pd.inverse()))},add:function(a){if(1<arguments.length){for(var b=0;b<arguments.length;b++)this.add(arguments[b]);return this}if(a===this)return console.error("THREE.Object3D.add: object can't be added as a child of itself.",
    450 a),this;a&&a.isObject3D?(null!==a.parent&&a.parent.remove(a),a.parent=this,this.children.push(a),a.dispatchEvent(Ok)):console.error("THREE.Object3D.add: object not an instance of THREE.Object3D.",a);return this},remove:function(a){if(1<arguments.length){for(var b=0;b<arguments.length;b++)this.remove(arguments[b]);return this}b=this.children.indexOf(a);-1!==b&&(a.parent=null,this.children.splice(b,1),a.dispatchEvent(Pk));return this},attach:function(a){this.updateWorldMatrix(!0,!1);tb.getInverse(this.matrixWorld);
    451 null!==a.parent&&(a.parent.updateWorldMatrix(!0,!1),tb.multiply(a.parent.matrixWorld));a.applyMatrix4(tb);a.updateWorldMatrix(!1,!1);this.add(a);return this},getObjectById:function(a){return this.getObjectByProperty("id",a)},getObjectByName:function(a){return this.getObjectByProperty("name",a)},getObjectByProperty:function(a,b){if(this[a]===b)return this;for(var c=0,d=this.children.length;c<d;c++){var e=this.children[c].getObjectByProperty(a,b);if(void 0!==e)return e}},getWorldPosition:function(a){void 0===
    452 a&&(console.warn("THREE.Object3D: .getWorldPosition() target is now required"),a=new m);this.updateMatrixWorld(!0);return a.setFromMatrixPosition(this.matrixWorld)},getWorldQuaternion:function(a){void 0===a&&(console.warn("THREE.Object3D: .getWorldQuaternion() target is now required"),a=new Y);this.updateMatrixWorld(!0);this.matrixWorld.decompose(xe,a,Mk);return a},getWorldScale:function(a){void 0===a&&(console.warn("THREE.Object3D: .getWorldScale() target is now required"),a=new m);this.updateMatrixWorld(!0);
    453 this.matrixWorld.decompose(xe,Nk,a);return a},getWorldDirection:function(a){void 0===a&&(console.warn("THREE.Object3D: .getWorldDirection() target is now required"),a=new m);this.updateMatrixWorld(!0);var b=this.matrixWorld.elements;return a.set(b[8],b[9],b[10]).normalize()},raycast:function(){},traverse:function(a){a(this);for(var b=this.children,c=0,d=b.length;c<d;c++)b[c].traverse(a)},traverseVisible:function(a){if(!1!==this.visible){a(this);for(var b=this.children,c=0,d=b.length;c<d;c++)b[c].traverseVisible(a)}},
    454 traverseAncestors:function(a){var b=this.parent;null!==b&&(a(b),b.traverseAncestors(a))},updateMatrix:function(){this.matrix.compose(this.position,this.quaternion,this.scale);this.matrixWorldNeedsUpdate=!0},updateMatrixWorld:function(a){this.matrixAutoUpdate&&this.updateMatrix();if(this.matrixWorldNeedsUpdate||a)null===this.parent?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix),this.matrixWorldNeedsUpdate=!1,a=!0;for(var b=this.children,c=
    455 0,d=b.length;c<d;c++)b[c].updateMatrixWorld(a)},updateWorldMatrix:function(a,b){var c=this.parent;!0===a&&null!==c&&c.updateWorldMatrix(!0,!1);this.matrixAutoUpdate&&this.updateMatrix();null===this.parent?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix);if(!0===b)for(a=this.children,b=0,c=a.length;b<c;b++)a[b].updateWorldMatrix(!1,!0)},toJSON:function(a){function b(b,c){void 0===b[c.uuid]&&(b[c.uuid]=c.toJSON(a));return c.uuid}function c(a){var b=
    456 [],c;for(c in a){var d=a[c];delete d.metadata;b.push(d)}return b}var d=void 0===a||"string"===typeof a,e={};d&&(a={geometries:{},materials:{},textures:{},images:{},shapes:{}},e.metadata={version:4.5,type:"Object",generator:"Object3D.toJSON"});var f={};f.uuid=this.uuid;f.type=this.type;""!==this.name&&(f.name=this.name);!0===this.castShadow&&(f.castShadow=!0);!0===this.receiveShadow&&(f.receiveShadow=!0);!1===this.visible&&(f.visible=!1);!1===this.frustumCulled&&(f.frustumCulled=!1);0!==this.renderOrder&&
    457 (f.renderOrder=this.renderOrder);"{}"!==JSON.stringify(this.userData)&&(f.userData=this.userData);f.layers=this.layers.mask;f.matrix=this.matrix.toArray();!1===this.matrixAutoUpdate&&(f.matrixAutoUpdate=!1);this.isInstancedMesh&&(f.type="InstancedMesh",f.count=this.count,f.instanceMatrix=this.instanceMatrix.toJSON());if(this.isMesh||this.isLine||this.isPoints){f.geometry=b(a.geometries,this.geometry);var g=this.geometry.parameters;if(void 0!==g&&void 0!==g.shapes)if(g=g.shapes,Array.isArray(g))for(var h=
    458 0,l=g.length;h<l;h++)b(a.shapes,g[h]);else b(a.shapes,g)}if(void 0!==this.material)if(Array.isArray(this.material)){g=[];h=0;for(l=this.material.length;h<l;h++)g.push(b(a.materials,this.material[h]));f.material=g}else f.material=b(a.materials,this.material);if(0<this.children.length)for(f.children=[],g=0;g<this.children.length;g++)f.children.push(this.children[g].toJSON(a).object);if(d){d=c(a.geometries);g=c(a.materials);h=c(a.textures);l=c(a.images);var k=c(a.shapes);0<d.length&&(e.geometries=d);
    459 0<g.length&&(e.materials=g);0<h.length&&(e.textures=h);0<l.length&&(e.images=l);0<k.length&&(e.shapes=k)}e.object=f;return e},clone:function(a){return(new this.constructor).copy(this,a)},copy:function(a,b){void 0===b&&(b=!0);this.name=a.name;this.up.copy(a.up);this.position.copy(a.position);this.rotation.order=a.rotation.order;this.quaternion.copy(a.quaternion);this.scale.copy(a.scale);this.matrix.copy(a.matrix);this.matrixWorld.copy(a.matrixWorld);this.matrixAutoUpdate=a.matrixAutoUpdate;this.matrixWorldNeedsUpdate=
    460 a.matrixWorldNeedsUpdate;this.layers.mask=a.layers.mask;this.visible=a.visible;this.castShadow=a.castShadow;this.receiveShadow=a.receiveShadow;this.frustumCulled=a.frustumCulled;this.renderOrder=a.renderOrder;this.userData=JSON.parse(JSON.stringify(a.userData));if(!0===b)for(b=0;b<a.children.length;b++)this.add(a.children[b].clone());return this}});Ad.prototype=Object.assign(Object.create(C.prototype),{constructor:Ad,isScene:!0,copy:function(a,b){C.prototype.copy.call(this,a,b);null!==a.background&&
    461 (this.background=a.background.clone());null!==a.environment&&(this.environment=a.environment.clone());null!==a.fog&&(this.fog=a.fog.clone());null!==a.overrideMaterial&&(this.overrideMaterial=a.overrideMaterial.clone());this.autoUpdate=a.autoUpdate;this.matrixAutoUpdate=a.matrixAutoUpdate;return this},toJSON:function(a){var b=C.prototype.toJSON.call(this,a);null!==this.background&&(b.object.background=this.background.toJSON(a));null!==this.environment&&(b.object.environment=this.environment.toJSON(a));
    462 null!==this.fog&&(b.object.fog=this.fog.toJSON());return b},dispose:function(){this.dispatchEvent({type:"dispose"})}});var ub=[new m,new m,new m,new m,new m,new m,new m,new m],ye=new m,Yg=new Sa,qd=new m,rd=new m,sd=new m,Rb=new m,Sb=new m,sc=new m,ze=new m,Df=new m,Ef=new m,Wb=new m;Object.assign(Sa.prototype,{isBox3:!0,set:function(a,b){this.min.copy(a);this.max.copy(b);return this},setFromArray:function(a){for(var b=Infinity,c=Infinity,d=Infinity,e=-Infinity,f=-Infinity,g=-Infinity,h=0,l=a.length;h<
    463 l;h+=3){var k=a[h],q=a[h+1],p=a[h+2];k<b&&(b=k);q<c&&(c=q);p<d&&(d=p);k>e&&(e=k);q>f&&(f=q);p>g&&(g=p)}this.min.set(b,c,d);this.max.set(e,f,g);return this},setFromBufferAttribute:function(a){for(var b=Infinity,c=Infinity,d=Infinity,e=-Infinity,f=-Infinity,g=-Infinity,h=0,l=a.count;h<l;h++){var k=a.getX(h),q=a.getY(h),p=a.getZ(h);k<b&&(b=k);q<c&&(c=q);p<d&&(d=p);k>e&&(e=k);q>f&&(f=q);p>g&&(g=p)}this.min.set(b,c,d);this.max.set(e,f,g);return this},setFromPoints:function(a){this.makeEmpty();for(var b=
    464 0,c=a.length;b<c;b++)this.expandByPoint(a[b]);return this},setFromCenterAndSize:function(a,b){b=ye.copy(b).multiplyScalar(.5);this.min.copy(a).sub(b);this.max.copy(a).add(b);return this},setFromObject:function(a){this.makeEmpty();return this.expandByObject(a)},clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.min.copy(a.min);this.max.copy(a.max);return this},makeEmpty:function(){this.min.x=this.min.y=this.min.z=Infinity;this.max.x=this.max.y=this.max.z=-Infinity;return this},
    465 isEmpty:function(){return this.max.x<this.min.x||this.max.y<this.min.y||this.max.z<this.min.z},getCenter:function(a){void 0===a&&(console.warn("THREE.Box3: .getCenter() target is now required"),a=new m);return this.isEmpty()?a.set(0,0,0):a.addVectors(this.min,this.max).multiplyScalar(.5)},getSize:function(a){void 0===a&&(console.warn("THREE.Box3: .getSize() target is now required"),a=new m);return this.isEmpty()?a.set(0,0,0):a.subVectors(this.max,this.min)},expandByPoint:function(a){this.min.min(a);
    466 this.max.max(a);return this},expandByVector:function(a){this.min.sub(a);this.max.add(a);return this},expandByScalar:function(a){this.min.addScalar(-a);this.max.addScalar(a);return this},expandByObject:function(a){a.updateWorldMatrix(!1,!1);var b=a.geometry;void 0!==b&&(null===b.boundingBox&&b.computeBoundingBox(),Yg.copy(b.boundingBox),Yg.applyMatrix4(a.matrixWorld),this.union(Yg));a=a.children;b=0;for(var c=a.length;b<c;b++)this.expandByObject(a[b]);return this},containsPoint:function(a){return a.x<
    467 this.min.x||a.x>this.max.x||a.y<this.min.y||a.y>this.max.y||a.z<this.min.z||a.z>this.max.z?!1:!0},containsBox:function(a){return this.min.x<=a.min.x&&a.max.x<=this.max.x&&this.min.y<=a.min.y&&a.max.y<=this.max.y&&this.min.z<=a.min.z&&a.max.z<=this.max.z},getParameter:function(a,b){void 0===b&&(console.warn("THREE.Box3: .getParameter() target is now required"),b=new m);return b.set((a.x-this.min.x)/(this.max.x-this.min.x),(a.y-this.min.y)/(this.max.y-this.min.y),(a.z-this.min.z)/(this.max.z-this.min.z))},
    468 intersectsBox:function(a){return a.max.x<this.min.x||a.min.x>this.max.x||a.max.y<this.min.y||a.min.y>this.max.y||a.max.z<this.min.z||a.min.z>this.max.z?!1:!0},intersectsSphere:function(a){this.clampPoint(a.center,ye);return ye.distanceToSquared(a.center)<=a.radius*a.radius},intersectsPlane:function(a){if(0<a.normal.x){var b=a.normal.x*this.min.x;var c=a.normal.x*this.max.x}else b=a.normal.x*this.max.x,c=a.normal.x*this.min.x;0<a.normal.y?(b+=a.normal.y*this.min.y,c+=a.normal.y*this.max.y):(b+=a.normal.y*
    469 this.max.y,c+=a.normal.y*this.min.y);0<a.normal.z?(b+=a.normal.z*this.min.z,c+=a.normal.z*this.max.z):(b+=a.normal.z*this.max.z,c+=a.normal.z*this.min.z);return b<=-a.constant&&c>=-a.constant},intersectsTriangle:function(a){if(this.isEmpty())return!1;this.getCenter(ze);Df.subVectors(this.max,ze);qd.subVectors(a.a,ze);rd.subVectors(a.b,ze);sd.subVectors(a.c,ze);Rb.subVectors(rd,qd);Sb.subVectors(sd,rd);sc.subVectors(qd,sd);a=[0,-Rb.z,Rb.y,0,-Sb.z,Sb.y,0,-sc.z,sc.y,Rb.z,0,-Rb.x,Sb.z,0,-Sb.x,sc.z,0,
    470 -sc.x,-Rb.y,Rb.x,0,-Sb.y,Sb.x,0,-sc.y,sc.x,0];if(!bg(a,qd,rd,sd,Df))return!1;a=[1,0,0,0,1,0,0,0,1];if(!bg(a,qd,rd,sd,Df))return!1;Ef.crossVectors(Rb,Sb);a=[Ef.x,Ef.y,Ef.z];return bg(a,qd,rd,sd,Df)},clampPoint:function(a,b){void 0===b&&(console.warn("THREE.Box3: .clampPoint() target is now required"),b=new m);return b.copy(a).clamp(this.min,this.max)},distanceToPoint:function(a){return ye.copy(a).clamp(this.min,this.max).sub(a).length()},getBoundingSphere:function(a){void 0===a&&console.error("THREE.Box3: .getBoundingSphere() target is now required");
    471 this.getCenter(a.center);a.radius=.5*this.getSize(ye).length();return a},intersect:function(a){this.min.max(a.min);this.max.min(a.max);this.isEmpty()&&this.makeEmpty();return this},union:function(a){this.min.min(a.min);this.max.max(a.max);return this},applyMatrix4:function(a){if(this.isEmpty())return this;ub[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(a);ub[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(a);ub[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(a);ub[3].set(this.min.x,
    472 this.max.y,this.max.z).applyMatrix4(a);ub[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(a);ub[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(a);ub[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(a);ub[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(a);this.setFromPoints(ub);return this},translate:function(a){this.min.add(a);this.max.add(a);return this},equals:function(a){return a.min.equals(this.min)&&a.max.equals(this.max)}});var Qk=new Sa;Object.assign(cb.prototype,{set:function(a,
    473 b){this.center.copy(a);this.radius=b;return this},setFromPoints:function(a,b){var c=this.center;void 0!==b?c.copy(b):Qk.setFromPoints(a).getCenter(c);for(var d=b=0,e=a.length;d<e;d++)b=Math.max(b,c.distanceToSquared(a[d]));this.radius=Math.sqrt(b);return this},clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.center.copy(a.center);this.radius=a.radius;return this},isEmpty:function(){return 0>this.radius},makeEmpty:function(){this.center.set(0,0,0);this.radius=-1;return this},
    474 containsPoint:function(a){return a.distanceToSquared(this.center)<=this.radius*this.radius},distanceToPoint:function(a){return a.distanceTo(this.center)-this.radius},intersectsSphere:function(a){var b=this.radius+a.radius;return a.center.distanceToSquared(this.center)<=b*b},intersectsBox:function(a){return a.intersectsSphere(this)},intersectsPlane:function(a){return Math.abs(a.distanceToPoint(this.center))<=this.radius},clampPoint:function(a,b){var c=this.center.distanceToSquared(a);void 0===b&&(console.warn("THREE.Sphere: .clampPoint() target is now required"),
    475 b=new m);b.copy(a);c>this.radius*this.radius&&(b.sub(this.center).normalize(),b.multiplyScalar(this.radius).add(this.center));return b},getBoundingBox:function(a){void 0===a&&(console.warn("THREE.Sphere: .getBoundingBox() target is now required"),a=new Sa);if(this.isEmpty())return a.makeEmpty(),a;a.set(this.center,this.center);a.expandByScalar(this.radius);return a},applyMatrix4:function(a){this.center.applyMatrix4(a);this.radius*=a.getMaxScaleOnAxis();return this},translate:function(a){this.center.add(a);
    476 return this},equals:function(a){return a.center.equals(this.center)&&a.radius===this.radius}});var vb=new m,Zg=new m,Ff=new m,Tb=new m,$g=new m,Gf=new m,ah=new m;Object.assign(Xb.prototype,{set:function(a,b){this.origin.copy(a);this.direction.copy(b);return this},clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.origin.copy(a.origin);this.direction.copy(a.direction);return this},at:function(a,b){void 0===b&&(console.warn("THREE.Ray: .at() target is now required"),b=new m);
    477 return b.copy(this.direction).multiplyScalar(a).add(this.origin)},lookAt:function(a){this.direction.copy(a).sub(this.origin).normalize();return this},recast:function(a){this.origin.copy(this.at(a,vb));return this},closestPointToPoint:function(a,b){void 0===b&&(console.warn("THREE.Ray: .closestPointToPoint() target is now required"),b=new m);b.subVectors(a,this.origin);a=b.dot(this.direction);return 0>a?b.copy(this.origin):b.copy(this.direction).multiplyScalar(a).add(this.origin)},distanceToPoint:function(a){return Math.sqrt(this.distanceSqToPoint(a))},
    478 distanceSqToPoint:function(a){var b=vb.subVectors(a,this.origin).dot(this.direction);if(0>b)return this.origin.distanceToSquared(a);vb.copy(this.direction).multiplyScalar(b).add(this.origin);return vb.distanceToSquared(a)},distanceSqToSegment:function(a,b,c,d){Zg.copy(a).add(b).multiplyScalar(.5);Ff.copy(b).sub(a).normalize();Tb.copy(this.origin).sub(Zg);var e=.5*a.distanceTo(b),f=-this.direction.dot(Ff),g=Tb.dot(this.direction),h=-Tb.dot(Ff),l=Tb.lengthSq(),k=Math.abs(1-f*f);if(0<k){a=f*h-g;b=f*
    479 g-h;var q=e*k;0<=a?b>=-q?b<=q?(e=1/k,a*=e,b*=e,f=a*(a+f*b+2*g)+b*(f*a+b+2*h)+l):(b=e,a=Math.max(0,-(f*b+g)),f=-a*a+b*(b+2*h)+l):(b=-e,a=Math.max(0,-(f*b+g)),f=-a*a+b*(b+2*h)+l):b<=-q?(a=Math.max(0,-(-f*e+g)),b=0<a?-e:Math.min(Math.max(-e,-h),e),f=-a*a+b*(b+2*h)+l):b<=q?(a=0,b=Math.min(Math.max(-e,-h),e),f=b*(b+2*h)+l):(a=Math.max(0,-(f*e+g)),b=0<a?e:Math.min(Math.max(-e,-h),e),f=-a*a+b*(b+2*h)+l)}else b=0<f?-e:e,a=Math.max(0,-(f*b+g)),f=-a*a+b*(b+2*h)+l;c&&c.copy(this.direction).multiplyScalar(a).add(this.origin);
    480 d&&d.copy(Ff).multiplyScalar(b).add(Zg);return f},intersectSphere:function(a,b){vb.subVectors(a.center,this.origin);var c=vb.dot(this.direction),d=vb.dot(vb)-c*c;a=a.radius*a.radius;if(d>a)return null;a=Math.sqrt(a-d);d=c-a;c+=a;return 0>d&&0>c?null:0>d?this.at(c,b):this.at(d,b)},intersectsSphere:function(a){return this.distanceSqToPoint(a.center)<=a.radius*a.radius},distanceToPlane:function(a){var b=a.normal.dot(this.direction);if(0===b)return 0===a.distanceToPoint(this.origin)?0:null;a=-(this.origin.dot(a.normal)+
    481 a.constant)/b;return 0<=a?a:null},intersectPlane:function(a,b){a=this.distanceToPlane(a);return null===a?null:this.at(a,b)},intersectsPlane:function(a){var b=a.distanceToPoint(this.origin);return 0===b||0>a.normal.dot(this.direction)*b?!0:!1},intersectBox:function(a,b){var c=1/this.direction.x;var d=1/this.direction.y;var e=1/this.direction.z,f=this.origin;if(0<=c){var g=(a.min.x-f.x)*c;c*=a.max.x-f.x}else g=(a.max.x-f.x)*c,c*=a.min.x-f.x;if(0<=d){var h=(a.min.y-f.y)*d;d*=a.max.y-f.y}else h=(a.max.y-
    482 f.y)*d,d*=a.min.y-f.y;if(g>d||h>c)return null;if(h>g||g!==g)g=h;if(d<c||c!==c)c=d;0<=e?(h=(a.min.z-f.z)*e,a=(a.max.z-f.z)*e):(h=(a.max.z-f.z)*e,a=(a.min.z-f.z)*e);if(g>a||h>c)return null;if(h>g||g!==g)g=h;if(a<c||c!==c)c=a;return 0>c?null:this.at(0<=g?g:c,b)},intersectsBox:function(a){return null!==this.intersectBox(a,vb)},intersectTriangle:function(a,b,c,d,e){$g.subVectors(b,a);Gf.subVectors(c,a);ah.crossVectors($g,Gf);b=this.direction.dot(ah);if(0<b){if(d)return null;d=1}else if(0>b)d=-1,b=-b;else return null;
    483 Tb.subVectors(this.origin,a);a=d*this.direction.dot(Gf.crossVectors(Tb,Gf));if(0>a)return null;c=d*this.direction.dot($g.cross(Tb));if(0>c||a+c>b)return null;a=-d*Tb.dot(ah);return 0>a?null:this.at(a/b,e)},applyMatrix4:function(a){this.origin.applyMatrix4(a);this.direction.transformDirection(a);return this},equals:function(a){return a.origin.equals(this.origin)&&a.direction.equals(this.direction)}});var bh=new m,Rk=new m,Sk=new qa;Object.assign(Ta.prototype,{isPlane:!0,set:function(a,b){this.normal.copy(a);
    484 this.constant=b;return this},setComponents:function(a,b,c,d){this.normal.set(a,b,c);this.constant=d;return this},setFromNormalAndCoplanarPoint:function(a,b){this.normal.copy(a);this.constant=-b.dot(this.normal);return this},setFromCoplanarPoints:function(a,b,c){b=bh.subVectors(c,b).cross(Rk.subVectors(a,b)).normalize();this.setFromNormalAndCoplanarPoint(b,a);return this},clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.normal.copy(a.normal);this.constant=a.constant;
    485 return this},normalize:function(){var a=1/this.normal.length();this.normal.multiplyScalar(a);this.constant*=a;return this},negate:function(){this.constant*=-1;this.normal.negate();return this},distanceToPoint:function(a){return this.normal.dot(a)+this.constant},distanceToSphere:function(a){return this.distanceToPoint(a.center)-a.radius},projectPoint:function(a,b){void 0===b&&(console.warn("THREE.Plane: .projectPoint() target is now required"),b=new m);return b.copy(this.normal).multiplyScalar(-this.distanceToPoint(a)).add(a)},
    486 intersectLine:function(a,b){void 0===b&&(console.warn("THREE.Plane: .intersectLine() target is now required"),b=new m);var c=a.delta(bh),d=this.normal.dot(c);if(0===d){if(0===this.distanceToPoint(a.start))return b.copy(a.start)}else if(d=-(a.start.dot(this.normal)+this.constant)/d,!(0>d||1<d))return b.copy(c).multiplyScalar(d).add(a.start)},intersectsLine:function(a){var b=this.distanceToPoint(a.start);a=this.distanceToPoint(a.end);return 0>b&&0<a||0>a&&0<b},intersectsBox:function(a){return a.intersectsPlane(this)},
    487 intersectsSphere:function(a){return a.intersectsPlane(this)},coplanarPoint:function(a){void 0===a&&(console.warn("THREE.Plane: .coplanarPoint() target is now required"),a=new m);return a.copy(this.normal).multiplyScalar(-this.constant)},applyMatrix4:function(a,b){b=b||Sk.getNormalMatrix(a);a=this.coplanarPoint(bh).applyMatrix4(a);b=this.normal.applyMatrix3(b).normalize();this.constant=-a.dot(b);return this},translate:function(a){this.constant-=a.dot(this.normal);return this},equals:function(a){return a.normal.equals(this.normal)&&
    488 a.constant===this.constant}});var ab=new m,wb=new m,ch=new m,xb=new m,td=new m,ud=new m,Ai=new m,dh=new m,eh=new m,fh=new m;Object.assign(ba,{getNormal:function(a,b,c,d){void 0===d&&(console.warn("THREE.Triangle: .getNormal() target is now required"),d=new m);d.subVectors(c,b);ab.subVectors(a,b);d.cross(ab);a=d.lengthSq();return 0<a?d.multiplyScalar(1/Math.sqrt(a)):d.set(0,0,0)},getBarycoord:function(a,b,c,d,e){ab.subVectors(d,b);wb.subVectors(c,b);ch.subVectors(a,b);a=ab.dot(ab);b=ab.dot(wb);c=ab.dot(ch);
    489 var f=wb.dot(wb);d=wb.dot(ch);var g=a*f-b*b;void 0===e&&(console.warn("THREE.Triangle: .getBarycoord() target is now required"),e=new m);if(0===g)return e.set(-2,-1,-1);g=1/g;f=(f*c-b*d)*g;a=(a*d-b*c)*g;return e.set(1-f-a,a,f)},containsPoint:function(a,b,c,d){ba.getBarycoord(a,b,c,d,xb);return 0<=xb.x&&0<=xb.y&&1>=xb.x+xb.y},getUV:function(a,b,c,d,e,f,g,h){this.getBarycoord(a,b,c,d,xb);h.set(0,0);h.addScaledVector(e,xb.x);h.addScaledVector(f,xb.y);h.addScaledVector(g,xb.z);return h},isFrontFacing:function(a,
    490 b,c,d){ab.subVectors(c,b);wb.subVectors(a,b);return 0>ab.cross(wb).dot(d)?!0:!1}});Object.assign(ba.prototype,{set:function(a,b,c){this.a.copy(a);this.b.copy(b);this.c.copy(c);return this},setFromPointsAndIndices:function(a,b,c,d){this.a.copy(a[b]);this.b.copy(a[c]);this.c.copy(a[d]);return this},clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.a.copy(a.a);this.b.copy(a.b);this.c.copy(a.c);return this},getArea:function(){ab.subVectors(this.c,this.b);wb.subVectors(this.a,
    491 this.b);return.5*ab.cross(wb).length()},getMidpoint:function(a){void 0===a&&(console.warn("THREE.Triangle: .getMidpoint() target is now required"),a=new m);return a.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)},getNormal:function(a){return ba.getNormal(this.a,this.b,this.c,a)},getPlane:function(a){void 0===a&&(console.warn("THREE.Triangle: .getPlane() target is now required"),a=new Ta);return a.setFromCoplanarPoints(this.a,this.b,this.c)},getBarycoord:function(a,b){return ba.getBarycoord(a,
    492 this.a,this.b,this.c,b)},getUV:function(a,b,c,d,e){return ba.getUV(a,this.a,this.b,this.c,b,c,d,e)},containsPoint:function(a){return ba.containsPoint(a,this.a,this.b,this.c)},isFrontFacing:function(a){return ba.isFrontFacing(this.a,this.b,this.c,a)},intersectsBox:function(a){return a.intersectsTriangle(this)},closestPointToPoint:function(a,b){void 0===b&&(console.warn("THREE.Triangle: .closestPointToPoint() target is now required"),b=new m);var c=this.a,d=this.b,e=this.c;td.subVectors(d,c);ud.subVectors(e,
    493 c);dh.subVectors(a,c);var f=td.dot(dh),g=ud.dot(dh);if(0>=f&&0>=g)return b.copy(c);eh.subVectors(a,d);var h=td.dot(eh),l=ud.dot(eh);if(0<=h&&l<=h)return b.copy(d);var k=f*l-h*g;if(0>=k&&0<=f&&0>=h)return d=f/(f-h),b.copy(c).addScaledVector(td,d);fh.subVectors(a,e);a=td.dot(fh);var q=ud.dot(fh);if(0<=q&&a<=q)return b.copy(e);f=a*g-f*q;if(0>=f&&0<=g&&0>=q)return k=g/(g-q),b.copy(c).addScaledVector(ud,k);g=h*q-a*l;if(0>=g&&0<=l-h&&0<=a-q)return Ai.subVectors(e,d),k=(l-h)/(l-h+(a-q)),b.copy(d).addScaledVector(Ai,
    494 k);e=1/(g+f+k);d=f*e;k*=e;return b.copy(c).addScaledVector(td,d).addScaledVector(ud,k)},equals:function(a){return a.a.equals(this.a)&&a.b.equals(this.b)&&a.c.equals(this.c)}});var Bi={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,
    495 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,
    496 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,
    497 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,
    498 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,
    499 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},xa={h:0,s:0,l:0},Hf={h:0,s:0,l:0};Object.assign(H.prototype,{isColor:!0,r:1,g:1,b:1,set:function(a){a&&a.isColor?this.copy(a):"number"===typeof a?this.setHex(a):"string"===
    500 typeof a&&this.setStyle(a);return this},setScalar:function(a){this.b=this.g=this.r=a;return this},setHex:function(a){a=Math.floor(a);this.r=(a>>16&255)/255;this.g=(a>>8&255)/255;this.b=(a&255)/255;return this},setRGB:function(a,b,c){this.r=a;this.g=b;this.b=c;return this},setHSL:function(a,b,c){a=P.euclideanModulo(a,1);b=P.clamp(b,0,1);c=P.clamp(c,0,1);0===b?this.r=this.g=this.b=c:(b=.5>=c?c*(1+b):c+b-c*b,c=2*c-b,this.r=cg(c,b,a+1/3),this.g=cg(c,b,a),this.b=cg(c,b,a-1/3));return this},setStyle:function(a){function b(b){void 0!==
    501 b&&1>parseFloat(b)&&console.warn("THREE.Color: Alpha component of "+a+" will be ignored.")}var c;if(c=/^((?:rgb|hsl)a?)(s*([^)]*))/.exec(a)){var d=c[2];switch(c[1]){case "rgb":case "rgba":if(c=/^(d+)s*,s*(d+)s*,s*(d+)s*(,s*([0-9]*.?[0-9]+)s*)?$/.exec(d))return this.r=Math.min(255,parseInt(c[1],10))/255,this.g=Math.min(255,parseInt(c[2],10))/255,this.b=Math.min(255,parseInt(c[3],10))/255,b(c[5]),this;if(c=/^(d+)%s*,s*(d+)%s*,s*(d+)%s*(,s*([0-9]*.?[0-9]+)s*)?$/.exec(d))return this.r=
    502 Math.min(100,parseInt(c[1],10))/100,this.g=Math.min(100,parseInt(c[2],10))/100,this.b=Math.min(100,parseInt(c[3],10))/100,b(c[5]),this;break;case "hsl":case "hsla":if(c=/^([0-9]*.?[0-9]+)s*,s*(d+)%s*,s*(d+)%s*(,s*([0-9]*.?[0-9]+)s*)?$/.exec(d)){d=parseFloat(c[1])/360;var e=parseInt(c[2],10)/100,f=parseInt(c[3],10)/100;b(c[5]);return this.setHSL(d,e,f)}}}else if(c=/^#([A-Fa-f0-9]+)$/.exec(a)){c=c[1];d=c.length;if(3===d)return this.r=parseInt(c.charAt(0)+c.charAt(0),16)/255,this.g=parseInt(c.charAt(1)+
    503 c.charAt(1),16)/255,this.b=parseInt(c.charAt(2)+c.charAt(2),16)/255,this;if(6===d)return this.r=parseInt(c.charAt(0)+c.charAt(1),16)/255,this.g=parseInt(c.charAt(2)+c.charAt(3),16)/255,this.b=parseInt(c.charAt(4)+c.charAt(5),16)/255,this}return a&&0<a.length?this.setColorName(a):this},setColorName:function(a){var b=Bi[a];void 0!==b?this.setHex(b):console.warn("THREE.Color: Unknown color "+a);return this},clone:function(){return new this.constructor(this.r,this.g,this.b)},copy:function(a){this.r=a.r;
    504 this.g=a.g;this.b=a.b;return this},copyGammaToLinear:function(a,b){void 0===b&&(b=2);this.r=Math.pow(a.r,b);this.g=Math.pow(a.g,b);this.b=Math.pow(a.b,b);return this},copyLinearToGamma:function(a,b){void 0===b&&(b=2);b=0<b?1/b:1;this.r=Math.pow(a.r,b);this.g=Math.pow(a.g,b);this.b=Math.pow(a.b,b);return this},convertGammaToLinear:function(a){this.copyGammaToLinear(this,a);return this},convertLinearToGamma:function(a){this.copyLinearToGamma(this,a);return this},copySRGBToLinear:function(a){this.r=
    505 dg(a.r);this.g=dg(a.g);this.b=dg(a.b);return this},copyLinearToSRGB:function(a){this.r=eg(a.r);this.g=eg(a.g);this.b=eg(a.b);return this},convertSRGBToLinear:function(){this.copySRGBToLinear(this);return this},convertLinearToSRGB:function(){this.copyLinearToSRGB(this);return this},getHex:function(){return 255*this.r<<16^255*this.g<<8^255*this.b<<0},getHexString:function(){return("000000"+this.getHex().toString(16)).slice(-6)},getHSL:function(a){void 0===a&&(console.warn("THREE.Color: .getHSL() target is now required"),
    506 a={h:0,s:0,l:0});var b=this.r,c=this.g,d=this.b,e=Math.max(b,c,d),f=Math.min(b,c,d),g,h=(f+e)/2;if(f===e)f=g=0;else{var l=e-f;f=.5>=h?l/(e+f):l/(2-e-f);switch(e){case b:g=(c-d)/l+(c<d?6:0);break;case c:g=(d-b)/l+2;break;case d:g=(b-c)/l+4}g/=6}a.h=g;a.s=f;a.l=h;return a},getStyle:function(){return"rgb("+(255*this.r|0)+","+(255*this.g|0)+","+(255*this.b|0)+")"},offsetHSL:function(a,b,c){this.getHSL(xa);xa.h+=a;xa.s+=b;xa.l+=c;this.setHSL(xa.h,xa.s,xa.l);return this},add:function(a){this.r+=a.r;this.g+=
    507 a.g;this.b+=a.b;return this},addColors:function(a,b){this.r=a.r+b.r;this.g=a.g+b.g;this.b=a.b+b.b;return this},addScalar:function(a){this.r+=a;this.g+=a;this.b+=a;return this},sub:function(a){this.r=Math.max(0,this.r-a.r);this.g=Math.max(0,this.g-a.g);this.b=Math.max(0,this.b-a.b);return this},multiply:function(a){this.r*=a.r;this.g*=a.g;this.b*=a.b;return this},multiplyScalar:function(a){this.r*=a;this.g*=a;this.b*=a;return this},lerp:function(a,b){this.r+=(a.r-this.r)*b;this.g+=(a.g-this.g)*b;this.b+=
    508 (a.b-this.b)*b;return this},lerpHSL:function(a,b){this.getHSL(xa);a.getHSL(Hf);a=P.lerp(xa.h,Hf.h,b);var c=P.lerp(xa.s,Hf.s,b);b=P.lerp(xa.l,Hf.l,b);this.setHSL(a,c,b);return this},equals:function(a){return a.r===this.r&&a.g===this.g&&a.b===this.b},fromArray:function(a,b){void 0===b&&(b=0);this.r=a[b];this.g=a[b+1];this.b=a[b+2];return this},toArray:function(a,b){void 0===a&&(a=[]);void 0===b&&(b=0);a[b]=this.r;a[b+1]=this.g;a[b+2]=this.b;return a},fromBufferAttribute:function(a,b){this.r=a.getX(b);
    509 this.g=a.getY(b);this.b=a.getZ(b);!0===a.normalized&&(this.r/=255,this.g/=255,this.b/=255);return this},toJSON:function(){return this.getHex()}});H.NAMES=Bi;Object.assign(Cc.prototype,{clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.a=a.a;this.b=a.b;this.c=a.c;this.normal.copy(a.normal);this.color.copy(a.color);this.materialIndex=a.materialIndex;for(var b=0,c=a.vertexNormals.length;b<c;b++)this.vertexNormals[b]=a.vertexNormals[b].clone();b=0;for(c=a.vertexColors.length;b<
    510 c;b++)this.vertexColors[b]=a.vertexColors[b].clone();return this}});var gj=0;L.prototype=Object.assign(Object.create(Ea.prototype),{constructor:L,isMaterial:!0,onBeforeCompile:function(){},customProgramCacheKey:function(){return this.onBeforeCompile.toString()},setValues:function(a){if(void 0!==a)for(var b in a){var c=a[b];if(void 0===c)console.warn("THREE.Material: '"+b+"' parameter is undefined.");else if("shading"===b)console.warn("THREE."+this.type+": .shading has been removed. Use the boolean .flatShading instead."),
    511 this.flatShading=1===c?!0:!1;else{var d=this[b];void 0===d?console.warn("THREE."+this.type+": '"+b+"' is not a property of this material."):d&&d.isColor?d.set(c):d&&d.isVector3&&c&&c.isVector3?d.copy(c):this[b]=c}}},toJSON:function(a){function b(a){var b=[],c;for(c in a){var d=a[c];delete d.metadata;b.push(d)}return b}var c=void 0===a||"string"===typeof a;c&&(a={textures:{},images:{}});var d={metadata:{version:4.5,type:"Material",generator:"Material.toJSON"}};d.uuid=this.uuid;d.type=this.type;""!==
    512 this.name&&(d.name=this.name);this.color&&this.color.isColor&&(d.color=this.color.getHex());void 0!==this.roughness&&(d.roughness=this.roughness);void 0!==this.metalness&&(d.metalness=this.metalness);this.sheen&&this.sheen.isColor&&(d.sheen=this.sheen.getHex());this.emissive&&this.emissive.isColor&&(d.emissive=this.emissive.getHex());this.emissiveIntensity&&1!==this.emissiveIntensity&&(d.emissiveIntensity=this.emissiveIntensity);this.specular&&this.specular.isColor&&(d.specular=this.specular.getHex());
    513 void 0!==this.shininess&&(d.shininess=this.shininess);void 0!==this.clearcoat&&(d.clearcoat=this.clearcoat);void 0!==this.clearcoatRoughness&&(d.clearcoatRoughness=this.clearcoatRoughness);this.clearcoatMap&&this.clearcoatMap.isTexture&&(d.clearcoatMap=this.clearcoatMap.toJSON(a).uuid);this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(d.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(a).uuid);this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(d.clearcoatNormalMap=
    514 this.clearcoatNormalMap.toJSON(a).uuid,d.clearcoatNormalScale=this.clearcoatNormalScale.toArray());this.map&&this.map.isTexture&&(d.map=this.map.toJSON(a).uuid);this.matcap&&this.matcap.isTexture&&(d.matcap=this.matcap.toJSON(a).uuid);this.alphaMap&&this.alphaMap.isTexture&&(d.alphaMap=this.alphaMap.toJSON(a).uuid);this.lightMap&&this.lightMap.isTexture&&(d.lightMap=this.lightMap.toJSON(a).uuid);this.aoMap&&this.aoMap.isTexture&&(d.aoMap=this.aoMap.toJSON(a).uuid,d.aoMapIntensity=this.aoMapIntensity);
    515 this.bumpMap&&this.bumpMap.isTexture&&(d.bumpMap=this.bumpMap.toJSON(a).uuid,d.bumpScale=this.bumpScale);this.normalMap&&this.normalMap.isTexture&&(d.normalMap=this.normalMap.toJSON(a).uuid,d.normalMapType=this.normalMapType,d.normalScale=this.normalScale.toArray());this.displacementMap&&this.displacementMap.isTexture&&(d.displacementMap=this.displacementMap.toJSON(a).uuid,d.displacementScale=this.displacementScale,d.displacementBias=this.displacementBias);this.roughnessMap&&this.roughnessMap.isTexture&&
    516 (d.roughnessMap=this.roughnessMap.toJSON(a).uuid);this.metalnessMap&&this.metalnessMap.isTexture&&(d.metalnessMap=this.metalnessMap.toJSON(a).uuid);this.emissiveMap&&this.emissiveMap.isTexture&&(d.emissiveMap=this.emissiveMap.toJSON(a).uuid);this.specularMap&&this.specularMap.isTexture&&(d.specularMap=this.specularMap.toJSON(a).uuid);this.envMap&&this.envMap.isTexture&&(d.envMap=this.envMap.toJSON(a).uuid,d.reflectivity=this.reflectivity,d.refractionRatio=this.refractionRatio,void 0!==this.combine&&
    517 (d.combine=this.combine),void 0!==this.envMapIntensity&&(d.envMapIntensity=this.envMapIntensity));this.gradientMap&&this.gradientMap.isTexture&&(d.gradientMap=this.gradientMap.toJSON(a).uuid);void 0!==this.size&&(d.size=this.size);void 0!==this.sizeAttenuation&&(d.sizeAttenuation=this.sizeAttenuation);1!==this.blending&&(d.blending=this.blending);!0===this.flatShading&&(d.flatShading=this.flatShading);0!==this.side&&(d.side=this.side);this.vertexColors&&(d.vertexColors=!0);1>this.opacity&&(d.opacity=
    518 this.opacity);!0===this.transparent&&(d.transparent=this.transparent);d.depthFunc=this.depthFunc;d.depthTest=this.depthTest;d.depthWrite=this.depthWrite;d.stencilWrite=this.stencilWrite;d.stencilWriteMask=this.stencilWriteMask;d.stencilFunc=this.stencilFunc;d.stencilRef=this.stencilRef;d.stencilFuncMask=this.stencilFuncMask;d.stencilFail=this.stencilFail;d.stencilZFail=this.stencilZFail;d.stencilZPass=this.stencilZPass;this.rotation&&0!==this.rotation&&(d.rotation=this.rotation);!0===this.polygonOffset&&
    519 (d.polygonOffset=!0);0!==this.polygonOffsetFactor&&(d.polygonOffsetFactor=this.polygonOffsetFactor);0!==this.polygonOffsetUnits&&(d.polygonOffsetUnits=this.polygonOffsetUnits);this.linewidth&&1!==this.linewidth&&(d.linewidth=this.linewidth);void 0!==this.dashSize&&(d.dashSize=this.dashSize);void 0!==this.gapSize&&(d.gapSize=this.gapSize);void 0!==this.scale&&(d.scale=this.scale);!0===this.dithering&&(d.dithering=!0);0<this.alphaTest&&(d.alphaTest=this.alphaTest);!0===this.premultipliedAlpha&&(d.premultipliedAlpha=
    520 this.premultipliedAlpha);!0===this.wireframe&&(d.wireframe=this.wireframe);1<this.wireframeLinewidth&&(d.wireframeLinewidth=this.wireframeLinewidth);"round"!==this.wireframeLinecap&&(d.wireframeLinecap=this.wireframeLinecap);"round"!==this.wireframeLinejoin&&(d.wireframeLinejoin=this.wireframeLinejoin);!0===this.morphTargets&&(d.morphTargets=!0);!0===this.morphNormals&&(d.morphNormals=!0);!0===this.skinning&&(d.skinning=!0);!1===this.visible&&(d.visible=!1);!1===this.toneMapped&&(d.toneMapped=!1);
    521 "{}"!==JSON.stringify(this.userData)&&(d.userData=this.userData);c&&(c=b(a.textures),a=b(a.images),0<c.length&&(d.textures=c),0<a.length&&(d.images=a));return d},clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.name=a.name;this.fog=a.fog;this.blending=a.blending;this.side=a.side;this.flatShading=a.flatShading;this.vertexColors=a.vertexColors;this.opacity=a.opacity;this.transparent=a.transparent;this.blendSrc=a.blendSrc;this.blendDst=a.blendDst;this.blendEquation=a.blendEquation;
    522 this.blendSrcAlpha=a.blendSrcAlpha;this.blendDstAlpha=a.blendDstAlpha;this.blendEquationAlpha=a.blendEquationAlpha;this.depthFunc=a.depthFunc;this.depthTest=a.depthTest;this.depthWrite=a.depthWrite;this.stencilWriteMask=a.stencilWriteMask;this.stencilFunc=a.stencilFunc;this.stencilRef=a.stencilRef;this.stencilFuncMask=a.stencilFuncMask;this.stencilFail=a.stencilFail;this.stencilZFail=a.stencilZFail;this.stencilZPass=a.stencilZPass;this.stencilWrite=a.stencilWrite;var b=a.clippingPlanes,c=null;if(null!==
    523 b){var d=b.length;c=Array(d);for(var e=0;e!==d;++e)c[e]=b[e].clone()}this.clippingPlanes=c;this.clipIntersection=a.clipIntersection;this.clipShadows=a.clipShadows;this.shadowSide=a.shadowSide;this.colorWrite=a.colorWrite;this.precision=a.precision;this.polygonOffset=a.polygonOffset;this.polygonOffsetFactor=a.polygonOffsetFactor;this.polygonOffsetUnits=a.polygonOffsetUnits;this.dithering=a.dithering;this.alphaTest=a.alphaTest;this.premultipliedAlpha=a.premultipliedAlpha;this.visible=a.visible;this.toneMapped=
    524 a.toneMapped;this.userData=JSON.parse(JSON.stringify(a.userData));return this},dispose:function(){this.dispatchEvent({type:"dispose"})}});Object.defineProperty(L.prototype,"needsUpdate",{set:function(a){!0===a&&this.version++}});Na.prototype=Object.create(L.prototype);Na.prototype.constructor=Na;Na.prototype.isMeshBasicMaterial=!0;Na.prototype.copy=function(a){L.prototype.copy.call(this,a);this.color.copy(a.color);this.map=a.map;this.lightMap=a.lightMap;this.lightMapIntensity=a.lightMapIntensity;
    525 this.aoMap=a.aoMap;this.aoMapIntensity=a.aoMapIntensity;this.specularMap=a.specularMap;this.alphaMap=a.alphaMap;this.envMap=a.envMap;this.combine=a.combine;this.reflectivity=a.reflectivity;this.refractionRatio=a.refractionRatio;this.wireframe=a.wireframe;this.wireframeLinewidth=a.wireframeLinewidth;this.wireframeLinecap=a.wireframeLinecap;this.wireframeLinejoin=a.wireframeLinejoin;this.skinning=a.skinning;this.morphTargets=a.morphTargets;return this};var aa=new m,If=new u;Object.defineProperty(J.prototype,
    526 "needsUpdate",{set:function(a){!0===a&&this.version++}});Object.assign(J.prototype,{isBufferAttribute:!0,onUploadCallback:function(){},setUsage:function(a){this.usage=a;return this},copy:function(a){this.name=a.name;this.array=new a.array.constructor(a.array);this.itemSize=a.itemSize;this.count=a.count;this.normalized=a.normalized;this.usage=a.usage;return this},copyAt:function(a,b,c){a*=this.itemSize;c*=b.itemSize;for(var d=0,e=this.itemSize;d<e;d++)this.array[a+d]=b.array[c+d];return this},copyArray:function(a){this.array.set(a);
    527 return this},copyColorsArray:function(a){for(var b=this.array,c=0,d=0,e=a.length;d<e;d++){var f=a[d];void 0===f&&(console.warn("THREE.BufferAttribute.copyColorsArray(): color is undefined",d),f=new H);b[c++]=f.r;b[c++]=f.g;b[c++]=f.b}return this},copyVector2sArray:function(a){for(var b=this.array,c=0,d=0,e=a.length;d<e;d++){var f=a[d];void 0===f&&(console.warn("THREE.BufferAttribute.copyVector2sArray(): vector is undefined",d),f=new u);b[c++]=f.x;b[c++]=f.y}return this},copyVector3sArray:function(a){for(var b=
    528 this.array,c=0,d=0,e=a.length;d<e;d++){var f=a[d];void 0===f&&(console.warn("THREE.BufferAttribute.copyVector3sArray(): vector is undefined",d),f=new m);b[c++]=f.x;b[c++]=f.y;b[c++]=f.z}return this},copyVector4sArray:function(a){for(var b=this.array,c=0,d=0,e=a.length;d<e;d++){var f=a[d];void 0===f&&(console.warn("THREE.BufferAttribute.copyVector4sArray(): vector is undefined",d),f=new S);b[c++]=f.x;b[c++]=f.y;b[c++]=f.z;b[c++]=f.w}return this},applyMatrix3:function(a){if(2===this.itemSize)for(var b=
    529 0,c=this.count;b<c;b++)If.fromBufferAttribute(this,b),If.applyMatrix3(a),this.setXY(b,If.x,If.y);else if(3===this.itemSize)for(b=0,c=this.count;b<c;b++)aa.fromBufferAttribute(this,b),aa.applyMatrix3(a),this.setXYZ(b,aa.x,aa.y,aa.z);return this},applyMatrix4:function(a){for(var b=0,c=this.count;b<c;b++)aa.x=this.getX(b),aa.y=this.getY(b),aa.z=this.getZ(b),aa.applyMatrix4(a),this.setXYZ(b,aa.x,aa.y,aa.z);return this},applyNormalMatrix:function(a){for(var b=0,c=this.count;b<c;b++)aa.x=this.getX(b),aa.y=
    530 this.getY(b),aa.z=this.getZ(b),aa.applyNormalMatrix(a),this.setXYZ(b,aa.x,aa.y,aa.z);return this},transformDirection:function(a){for(var b=0,c=this.count;b<c;b++)aa.x=this.getX(b),aa.y=this.getY(b),aa.z=this.getZ(b),aa.transformDirection(a),this.setXYZ(b,aa.x,aa.y,aa.z);return this},set:function(a,b){void 0===b&&(b=0);this.array.set(a,b);return this},getX:function(a){return this.array[a*this.itemSize]},setX:function(a,b){this.array[a*this.itemSize]=b;return this},getY:function(a){return this.array[a*
    531 this.itemSize+1]},setY:function(a,b){this.array[a*this.itemSize+1]=b;return this},getZ:function(a){return this.array[a*this.itemSize+2]},setZ:function(a,b){this.array[a*this.itemSize+2]=b;return this},getW:function(a){return this.array[a*this.itemSize+3]},setW:function(a,b){this.array[a*this.itemSize+3]=b;return this},setXY:function(a,b,c){a*=this.itemSize;this.array[a+0]=b;this.array[a+1]=c;return this},setXYZ:function(a,b,c,d){a*=this.itemSize;this.array[a+0]=b;this.array[a+1]=c;this.array[a+2]=
    532 d;return this},setXYZW:function(a,b,c,d,e){a*=this.itemSize;this.array[a+0]=b;this.array[a+1]=c;this.array[a+2]=d;this.array[a+3]=e;return this},onUpload:function(a){this.onUploadCallback=a;return this},clone:function(){return(new this.constructor(this.array,this.itemSize)).copy(this)},toJSON:function(){return{itemSize:this.itemSize,type:this.array.constructor.name,array:Array.prototype.slice.call(this.array),normalized:this.normalized}}});Bd.prototype=Object.create(J.prototype);Bd.prototype.constructor=
    533 Bd;Cd.prototype=Object.create(J.prototype);Cd.prototype.constructor=Cd;Dd.prototype=Object.create(J.prototype);Dd.prototype.constructor=Dd;Ed.prototype=Object.create(J.prototype);Ed.prototype.constructor=Ed;Yb.prototype=Object.create(J.prototype);Yb.prototype.constructor=Yb;Fd.prototype=Object.create(J.prototype);Fd.prototype.constructor=Fd;Zb.prototype=Object.create(J.prototype);Zb.prototype.constructor=Zb;A.prototype=Object.create(J.prototype);A.prototype.constructor=A;Gd.prototype=Object.create(J.prototype);
    534 Gd.prototype.constructor=Gd;Object.assign(th.prototype,{computeGroups:function(a){var b=[],c=void 0,d=a.faces;for(a=0;a<d.length;a++){var e=d[a];if(e.materialIndex!==c){c=e.materialIndex;void 0!==f&&(f.count=3*a-f.start,b.push(f));var f={start:3*a,materialIndex:c}}}void 0!==f&&(f.count=3*a-f.start,b.push(f));this.groups=b},fromGeometry:function(a){var b=a.faces,c=a.vertices,d=a.faceVertexUvs,e=d[0]&&0<d[0].length,f=d[1]&&0<d[1].length,g=a.morphTargets,h=g.length;if(0<h){var l=[];for(var k=0;k<h;k++)l[k]=
    535 {name:g[k].name,data:[]};this.morphTargets.position=l}k=a.morphNormals;var q=k.length;if(0<q){var p=[];for(var m=0;m<q;m++)p[m]={name:k[m].name,data:[]};this.morphTargets.normal=p}m=a.skinIndices;var r=a.skinWeights,t=m.length===c.length,v=r.length===c.length;0<c.length&&0===b.length&&console.error("THREE.DirectGeometry: Faceless geometries are not supported.");for(var x=0;x<b.length;x++){var B=b[x];this.vertices.push(c[B.a],c[B.b],c[B.c]);var w=B.vertexNormals;3===w.length?this.normals.push(w[0],
    536 w[1],w[2]):(w=B.normal,this.normals.push(w,w,w));w=B.vertexColors;3===w.length?this.colors.push(w[0],w[1],w[2]):(w=B.color,this.colors.push(w,w,w));!0===e&&(w=d[0][x],void 0!==w?this.uvs.push(w[0],w[1],w[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv ",x),this.uvs.push(new u,new u,new u)));!0===f&&(w=d[1][x],void 0!==w?this.uvs2.push(w[0],w[1],w[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv2 ",x),this.uvs2.push(new u,new u,new u)));for(w=0;w<
    537 h;w++){var A=g[w].vertices;l[w].data.push(A[B.a],A[B.b],A[B.c])}for(w=0;w<q;w++)A=k[w].vertexNormals[x],p[w].data.push(A.a,A.b,A.c);t&&this.skinIndices.push(m[B.a],m[B.b],m[B.c]);v&&this.skinWeights.push(r[B.a],r[B.b],r[B.c])}this.computeGroups(a);this.verticesNeedUpdate=a.verticesNeedUpdate;this.normalsNeedUpdate=a.normalsNeedUpdate;this.colorsNeedUpdate=a.colorsNeedUpdate;this.uvsNeedUpdate=a.uvsNeedUpdate;this.groupsNeedUpdate=a.groupsNeedUpdate;null!==a.boundingSphere&&(this.boundingSphere=a.boundingSphere.clone());
    538 null!==a.boundingBox&&(this.boundingBox=a.boundingBox.clone());return this}});var hj=1,lb=new U,gh=new C,vd=new m,Ma=new Sa,Ae=new Sa,ua=new m;E.prototype=Object.assign(Object.create(Ea.prototype),{constructor:E,isBufferGeometry:!0,getIndex:function(){return this.index},setIndex:function(a){Array.isArray(a)?this.index=new (65535<uh(a)?Zb:Yb)(a,1):this.index=a},getAttribute:function(a){return this.attributes[a]},setAttribute:function(a,b){this.attributes[a]=b;return this},deleteAttribute:function(a){delete this.attributes[a];
    539 return this},addGroup:function(a,b,c){this.groups.push({start:a,count:b,materialIndex:void 0!==c?c:0})},clearGroups:function(){this.groups=[]},setDrawRange:function(a,b){this.drawRange.start=a;this.drawRange.count=b},applyMatrix4:function(a){var b=this.attributes.position;void 0!==b&&(b.applyMatrix4(a),b.needsUpdate=!0);b=this.attributes.normal;if(void 0!==b){var c=(new qa).getNormalMatrix(a);b.applyNormalMatrix(c);b.needsUpdate=!0}b=this.attributes.tangent;void 0!==b&&(b.transformDirection(a),b.needsUpdate=
    540 !0);null!==this.boundingBox&&this.computeBoundingBox();null!==this.boundingSphere&&this.computeBoundingSphere();return this},rotateX:function(a){lb.makeRotationX(a);this.applyMatrix4(lb);return this},rotateY:function(a){lb.makeRotationY(a);this.applyMatrix4(lb);return this},rotateZ:function(a){lb.makeRotationZ(a);this.applyMatrix4(lb);return this},translate:function(a,b,c){lb.makeTranslation(a,b,c);this.applyMatrix4(lb);return this},scale:function(a,b,c){lb.makeScale(a,b,c);this.applyMatrix4(lb);
    541 return this},lookAt:function(a){gh.lookAt(a);gh.updateMatrix();this.applyMatrix4(gh.matrix);return this},center:function(){this.computeBoundingBox();this.boundingBox.getCenter(vd).negate();this.translate(vd.x,vd.y,vd.z);return this},setFromObject:function(a){var b=a.geometry;if(a.isPoints||a.isLine){a=new A(3*b.vertices.length,3);var c=new A(3*b.colors.length,3);this.setAttribute("position",a.copyVector3sArray(b.vertices));this.setAttribute("color",c.copyColorsArray(b.colors));b.lineDistances&&b.lineDistances.length===
    542 b.vertices.length&&(a=new A(b.lineDistances.length,1),this.setAttribute("lineDistance",a.copyArray(b.lineDistances)));null!==b.boundingSphere&&(this.boundingSphere=b.boundingSphere.clone());null!==b.boundingBox&&(this.boundingBox=b.boundingBox.clone())}else a.isMesh&&b&&b.isGeometry&&this.fromGeometry(b);return this},setFromPoints:function(a){for(var b=[],c=0,d=a.length;c<d;c++){var e=a[c];b.push(e.x,e.y,e.z||0)}this.setAttribute("position",new A(b,3));return this},updateFromObject:function(a){var b=
    543 a.geometry;if(a.isMesh){var c=b.__directGeometry;!0===b.elementsNeedUpdate&&(c=void 0,b.elementsNeedUpdate=!1);if(void 0===c)return this.fromGeometry(b);c.verticesNeedUpdate=b.verticesNeedUpdate;c.normalsNeedUpdate=b.normalsNeedUpdate;c.colorsNeedUpdate=b.colorsNeedUpdate;c.uvsNeedUpdate=b.uvsNeedUpdate;c.groupsNeedUpdate=b.groupsNeedUpdate;b.verticesNeedUpdate=!1;b.normalsNeedUpdate=!1;b.colorsNeedUpdate=!1;b.uvsNeedUpdate=!1;b.groupsNeedUpdate=!1;b=c}!0===b.verticesNeedUpdate&&(c=this.attributes.position,
    544 void 0!==c&&(c.copyVector3sArray(b.vertices),c.needsUpdate=!0),b.verticesNeedUpdate=!1);!0===b.normalsNeedUpdate&&(c=this.attributes.normal,void 0!==c&&(c.copyVector3sArray(b.normals),c.needsUpdate=!0),b.normalsNeedUpdate=!1);!0===b.colorsNeedUpdate&&(c=this.attributes.color,void 0!==c&&(c.copyColorsArray(b.colors),c.needsUpdate=!0),b.colorsNeedUpdate=!1);b.uvsNeedUpdate&&(c=this.attributes.uv,void 0!==c&&(c.copyVector2sArray(b.uvs),c.needsUpdate=!0),b.uvsNeedUpdate=!1);b.lineDistancesNeedUpdate&&
    545 (c=this.attributes.lineDistance,void 0!==c&&(c.copyArray(b.lineDistances),c.needsUpdate=!0),b.lineDistancesNeedUpdate=!1);b.groupsNeedUpdate&&(b.computeGroups(a.geometry),this.groups=b.groups,b.groupsNeedUpdate=!1);return this},fromGeometry:function(a){a.__directGeometry=(new th).fromGeometry(a);return this.fromDirectGeometry(a.__directGeometry)},fromDirectGeometry:function(a){var b=new Float32Array(3*a.vertices.length);this.setAttribute("position",(new J(b,3)).copyVector3sArray(a.vertices));0<a.normals.length&&
    546 (b=new Float32Array(3*a.normals.length),this.setAttribute("normal",(new J(b,3)).copyVector3sArray(a.normals)));0<a.colors.length&&(b=new Float32Array(3*a.colors.length),this.setAttribute("color",(new J(b,3)).copyColorsArray(a.colors)));0<a.uvs.length&&(b=new Float32Array(2*a.uvs.length),this.setAttribute("uv",(new J(b,2)).copyVector2sArray(a.uvs)));0<a.uvs2.length&&(b=new Float32Array(2*a.uvs2.length),this.setAttribute("uv2",(new J(b,2)).copyVector2sArray(a.uvs2)));this.groups=a.groups;for(var c in a.morphTargets){b=
    547 [];for(var d=a.morphTargets[c],e=0,f=d.length;e<f;e++){var g=d[e],h=new A(3*g.data.length,3);h.name=g.name;b.push(h.copyVector3sArray(g.data))}this.morphAttributes[c]=b}0<a.skinIndices.length&&(c=new A(4*a.skinIndices.length,4),this.setAttribute("skinIndex",c.copyVector4sArray(a.skinIndices)));0<a.skinWeights.length&&(c=new A(4*a.skinWeights.length,4),this.setAttribute("skinWeight",c.copyVector4sArray(a.skinWeights)));null!==a.boundingSphere&&(this.boundingSphere=a.boundingSphere.clone());null!==
    548 a.boundingBox&&(this.boundingBox=a.boundingBox.clone());return this},computeBoundingBox:function(){null===this.boundingBox&&(this.boundingBox=new Sa);var a=this.attributes.position,b=this.morphAttributes.position;if(void 0!==a){if(this.boundingBox.setFromBufferAttribute(a),b){a=0;for(var c=b.length;a<c;a++)Ma.setFromBufferAttribute(b[a]),this.morphTargetsRelative?(ua.addVectors(this.boundingBox.min,Ma.min),this.boundingBox.expandByPoint(ua),ua.addVectors(this.boundingBox.max,Ma.max),this.boundingBox.expandByPoint(ua)):
    549 (this.boundingBox.expandByPoint(Ma.min),this.boundingBox.expandByPoint(Ma.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:function(){null===this.boundingSphere&&(this.boundingSphere=new cb);var a=this.attributes.position,b=this.morphAttributes.position;
    550 if(a){var c=this.boundingSphere.center;Ma.setFromBufferAttribute(a);if(b)for(var d=0,e=b.length;d<e;d++)Ae.setFromBufferAttribute(b[d]),this.morphTargetsRelative?(ua.addVectors(Ma.min,Ae.min),Ma.expandByPoint(ua),ua.addVectors(Ma.max,Ae.max),Ma.expandByPoint(ua)):(Ma.expandByPoint(Ae.min),Ma.expandByPoint(Ae.max));Ma.getCenter(c);e=d=0;for(var f=a.count;e<f;e++)ua.fromBufferAttribute(a,e),d=Math.max(d,c.distanceToSquared(ua));if(b)for(e=0,f=b.length;e<f;e++)for(var g=b[e],h=this.morphTargetsRelative,
    551 l=0,k=g.count;l<k;l++)ua.fromBufferAttribute(g,l),h&&(vd.fromBufferAttribute(a,l),ua.add(vd)),d=Math.max(d,c.distanceToSquared(ua));this.boundingSphere.radius=Math.sqrt(d);isNaN(this.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this)}},computeFaceNormals:function(){},computeVertexNormals:function(){var a=this.index,b=this.getAttribute("position");if(void 0!==b){var c=this.getAttribute("normal");
    552 if(void 0===c)c=new J(new Float32Array(3*b.count),3),this.setAttribute("normal",c);else for(var d=0,e=c.count;d<e;d++)c.setXYZ(d,0,0,0);d=new m;e=new m;var f=new m,g=new m,h=new m,l=new m,k=new m,q=new m;if(a)for(var p=0,z=a.count;p<z;p+=3){var r=a.getX(p+0),t=a.getX(p+1),v=a.getX(p+2);d.fromBufferAttribute(b,r);e.fromBufferAttribute(b,t);f.fromBufferAttribute(b,v);k.subVectors(f,e);q.subVectors(d,e);k.cross(q);g.fromBufferAttribute(c,r);h.fromBufferAttribute(c,t);l.fromBufferAttribute(c,v);g.add(k);
    553 h.add(k);l.add(k);c.setXYZ(r,g.x,g.y,g.z);c.setXYZ(t,h.x,h.y,h.z);c.setXYZ(v,l.x,l.y,l.z)}else for(a=0,g=b.count;a<g;a+=3)d.fromBufferAttribute(b,a+0),e.fromBufferAttribute(b,a+1),f.fromBufferAttribute(b,a+2),k.subVectors(f,e),q.subVectors(d,e),k.cross(q),c.setXYZ(a+0,k.x,k.y,k.z),c.setXYZ(a+1,k.x,k.y,k.z),c.setXYZ(a+2,k.x,k.y,k.z);this.normalizeNormals();c.needsUpdate=!0}},merge:function(a,b){if(a&&a.isBufferGeometry){void 0===b&&(b=0,console.warn("THREE.BufferGeometry.merge(): Overwriting original geometry, starting at offset=0. Use BufferGeometryUtils.mergeBufferGeometries() for lossless merge."));
    554 var c=this.attributes,d;for(d in c)if(void 0!==a.attributes[d]){var e=c[d].array,f=a.attributes[d],g=f.array,h=f.itemSize*b;f=Math.min(g.length,e.length-h);for(var l=0;l<f;l++,h++)e[h]=g[l]}return this}console.error("THREE.BufferGeometry.merge(): geometry not an instance of THREE.BufferGeometry.",a)},normalizeNormals:function(){for(var a=this.attributes.normal,b=0,c=a.count;b<c;b++)ua.fromBufferAttribute(a,b),ua.normalize(),a.setXYZ(b,ua.x,ua.y,ua.z)},toNonIndexed:function(){function a(a,b){var c=
    555 a.array,d=a.itemSize;a=a.normalized;for(var e=new c.constructor(b.length*d),f,g=0,h=0,l=b.length;h<l;h++){f=b[h]*d;for(var k=0;k<d;k++)e[g++]=c[f++]}return new J(e,d,a)}if(null===this.index)return console.warn("THREE.BufferGeometry.toNonIndexed(): Geometry is already non-indexed."),this;var b=new E,c=this.index.array,d=this.attributes;for(g in d){var e=a(d[g],c);b.setAttribute(g,e)}d=this.morphAttributes;for(var f in d){var g=[];e=d[f];for(var h=0,l=e.length;h<l;h++){var k=a(e[h],c);g.push(k)}b.morphAttributes[f]=
    556 g}b.morphTargetsRelative=this.morphTargetsRelative;c=this.groups;f=0;for(d=c.length;f<d;f++)g=c[f],b.addGroup(g.start,g.count,g.materialIndex);return b},toJSON:function(){var a={metadata:{version:4.5,type:"BufferGeometry",generator:"BufferGeometry.toJSON"}};a.uuid=this.uuid;a.type=this.type;""!==this.name&&(a.name=this.name);0<Object.keys(this.userData).length&&(a.userData=this.userData);if(void 0!==this.parameters){var b=this.parameters;for(c in b)void 0!==b[c]&&(a[c]=b[c]);return a}a.data={attributes:{}};
    557 var c=this.index;null!==c&&(a.data.index={type:c.array.constructor.name,array:Array.prototype.slice.call(c.array)});c=this.attributes;for(var d in c){var e=c[d],f=e.toJSON(a.data);""!==e.name&&(f.name=e.name);a.data.attributes[d]=f}d={};c=!1;for(b in this.morphAttributes){e=this.morphAttributes[b];f=[];for(var g=0,h=e.length;g<h;g++){var l=e[g],k=l.toJSON(a.data);""!==l.name&&(k.name=l.name);f.push(k)}0<f.length&&(d[b]=f,c=!0)}c&&(a.data.morphAttributes=d,a.data.morphTargetsRelative=this.morphTargetsRelative);
    558 b=this.groups;0<b.length&&(a.data.groups=JSON.parse(JSON.stringify(b)));b=this.boundingSphere;null!==b&&(a.data.boundingSphere={center:b.center.toArray(),radius:b.radius});return a},clone:function(){return(new E).copy(this)},copy:function(a){this.index=null;this.attributes={};this.morphAttributes={};this.groups=[];this.boundingSphere=this.boundingBox=null;var b={};this.name=a.name;var c=a.index;null!==c&&this.setIndex(c.clone(b));c=a.attributes;for(var d in c)this.setAttribute(d,c[d].clone(b));d=
    559 a.morphAttributes;for(var e in d){c=[];for(var f=d[e],g=0,h=f.length;g<h;g++)c.push(f[g].clone(b));this.morphAttributes[e]=c}this.morphTargetsRelative=a.morphTargetsRelative;b=a.groups;e=0;for(d=b.length;e<d;e++)c=b[e],this.addGroup(c.start,c.count,c.materialIndex);b=a.boundingBox;null!==b&&(this.boundingBox=b.clone());b=a.boundingSphere;null!==b&&(this.boundingSphere=b.clone());this.drawRange.start=a.drawRange.start;this.drawRange.count=a.drawRange.count;this.userData=a.userData;return this},dispose:function(){this.dispatchEvent({type:"dispose"})}});
    560 var Ci=new U,tc=new Xb,hh=new cb,yb=new m,zb=new m,Ab=new m,fg=new m,gg=new m,hg=new m,Ke=new m,Le=new m,Me=new m,Dc=new u,Ec=new u,Fc=new u,Hd=new m,Ie=new m;T.prototype=Object.assign(Object.create(C.prototype),{constructor:T,isMesh:!0,copy:function(a){C.prototype.copy.call(this,a);void 0!==a.morphTargetInfluences&&(this.morphTargetInfluences=a.morphTargetInfluences.slice());void 0!==a.morphTargetDictionary&&(this.morphTargetDictionary=Object.assign({},a.morphTargetDictionary));this.material=a.material;
    561 this.geometry=a.geometry;return this},updateMorphTargets:function(){var a=this.geometry;if(a.isBufferGeometry){a=a.morphAttributes;var b=Object.keys(a);if(0<b.length&&(a=a[b[0]],void 0!==a)){this.morphTargetInfluences=[];this.morphTargetDictionary={};b=0;for(var c=a.length;b<c;b++){var d=a[b].name||String(b);this.morphTargetInfluences.push(0);this.morphTargetDictionary[d]=b}}}else a=a.morphTargets,void 0!==a&&0<a.length&&console.error("THREE.Mesh.updateMorphTargets() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.")},
    562 raycast:function(a,b){var c=this.geometry,d=this.material,e=this.matrixWorld;if(void 0!==d&&(null===c.boundingSphere&&c.computeBoundingSphere(),hh.copy(c.boundingSphere),hh.applyMatrix4(e),!1!==a.ray.intersectsSphere(hh)&&(Ci.getInverse(e),tc.copy(a.ray).applyMatrix4(Ci),null===c.boundingBox||!1!==tc.intersectsBox(c.boundingBox))))if(c.isBufferGeometry){var f=c.index,g=c.attributes.position;e=c.morphAttributes.position;var h=c.morphTargetsRelative,l=c.attributes.uv,k=c.attributes.uv2,q=c.groups,p=
    563 c.drawRange;if(null!==f)if(Array.isArray(d))for(var m=0,r=q.length;m<r;m++)for(var t=q[m],v=d[t.materialIndex],x=Math.max(t.start,p.start),B=Math.min(t.start+t.count,p.start+p.count);x<B;x+=3){c=f.getX(x);var w=f.getX(x+1),A=f.getX(x+2);if(c=Je(this,v,a,tc,g,e,h,l,k,c,w,A))c.faceIndex=Math.floor(x/3),c.face.materialIndex=t.materialIndex,b.push(c)}else for(q=Math.max(0,p.start),p=Math.min(f.count,p.start+p.count);q<p;q+=3){if(c=f.getX(q),m=f.getX(q+1),r=f.getX(q+2),c=Je(this,d,a,tc,g,e,h,l,k,c,m,r))c.faceIndex=
    564 Math.floor(q/3),b.push(c)}else if(void 0!==g)if(Array.isArray(d))for(f=0,m=q.length;f<m;f++)for(r=q[f],t=d[r.materialIndex],v=Math.max(r.start,p.start),x=Math.min(r.start+r.count,p.start+p.count);v<x;v+=3){if(c=Je(this,t,a,tc,g,e,h,l,k,v,v+1,v+2))c.faceIndex=Math.floor(v/3),c.face.materialIndex=r.materialIndex,b.push(c)}else for(q=Math.max(0,p.start),p=Math.min(g.count,p.start+p.count);q<p;q+=3)if(c=Je(this,d,a,tc,g,e,h,l,k,q,q+1,q+2))c.faceIndex=Math.floor(q/3),b.push(c)}else if(c.isGeometry)for(e=
    565 Array.isArray(d),h=c.vertices,l=c.faces,c=c.faceVertexUvs[0],0<c.length&&(g=c),k=0,p=l.length;k<p;k++)if(q=l[k],c=e?d[q.materialIndex]:d,void 0!==c&&(f=h[q.a],m=h[q.b],r=h[q.c],c=vh(this,c,a,tc,f,m,r,Hd)))g&&g[k]&&(t=g[k],Dc.copy(t[0]),Ec.copy(t[1]),Fc.copy(t[2]),c.uv=ba.getUV(Hd,f,m,r,Dc,Ec,Fc,new u)),c.face=q,c.faceIndex=k,b.push(c)}});var ij=0,mb=new U,ih=new C,Jf=new m;F.prototype=Object.assign(Object.create(Ea.prototype),{constructor:F,isGeometry:!0,applyMatrix4:function(a){for(var b=(new qa).getNormalMatrix(a),
    566 c=0,d=this.vertices.length;c<d;c++)this.vertices[c].applyMatrix4(a);a=0;for(c=this.faces.length;a<c;a++){d=this.faces[a];d.normal.applyMatrix3(b).normalize();for(var e=0,f=d.vertexNormals.length;e<f;e++)d.vertexNormals[e].applyMatrix3(b).normalize()}null!==this.boundingBox&&this.computeBoundingBox();null!==this.boundingSphere&&this.computeBoundingSphere();this.normalsNeedUpdate=this.verticesNeedUpdate=!0;return this},rotateX:function(a){mb.makeRotationX(a);this.applyMatrix4(mb);return this},rotateY:function(a){mb.makeRotationY(a);
    567 this.applyMatrix4(mb);return this},rotateZ:function(a){mb.makeRotationZ(a);this.applyMatrix4(mb);return this},translate:function(a,b,c){mb.makeTranslation(a,b,c);this.applyMatrix4(mb);return this},scale:function(a,b,c){mb.makeScale(a,b,c);this.applyMatrix4(mb);return this},lookAt:function(a){ih.lookAt(a);ih.updateMatrix();this.applyMatrix4(ih.matrix);return this},fromBufferGeometry:function(a){function b(a,b,d,e){var f=void 0===h?[]:[c.colors[a].clone(),c.colors[b].clone(),c.colors[d].clone()],n=
    568 void 0===g?[]:[(new m).fromBufferAttribute(g,a),(new m).fromBufferAttribute(g,b),(new m).fromBufferAttribute(g,d)];e=new Cc(a,b,d,n,f,e);c.faces.push(e);void 0!==l&&c.faceVertexUvs[0].push([(new u).fromBufferAttribute(l,a),(new u).fromBufferAttribute(l,b),(new u).fromBufferAttribute(l,d)]);void 0!==k&&c.faceVertexUvs[1].push([(new u).fromBufferAttribute(k,a),(new u).fromBufferAttribute(k,b),(new u).fromBufferAttribute(k,d)])}var c=this,d=null!==a.index?a.index:void 0,e=a.attributes;if(void 0===e.position)return console.error("THREE.Geometry.fromBufferGeometry(): Position attribute required for conversion."),
    569 this;var f=e.position,g=e.normal,h=e.color,l=e.uv,k=e.uv2;void 0!==k&&(this.faceVertexUvs[1]=[]);for(e=0;e<f.count;e++)c.vertices.push((new m).fromBufferAttribute(f,e)),void 0!==h&&c.colors.push((new H).fromBufferAttribute(h,e));e=a.groups;if(0<e.length)for(f=0;f<e.length;f++){var q=e[f],p=q.start,z=p;for(p+=q.count;z<p;z+=3)void 0!==d?b(d.getX(z),d.getX(z+1),d.getX(z+2),q.materialIndex):b(z,z+1,z+2,q.materialIndex)}else if(void 0!==d)for(e=0;e<d.count;e+=3)b(d.getX(e),d.getX(e+1),d.getX(e+2));else for(d=
    570 0;d<f.count;d+=3)b(d,d+1,d+2);this.computeFaceNormals();null!==a.boundingBox&&(this.boundingBox=a.boundingBox.clone());null!==a.boundingSphere&&(this.boundingSphere=a.boundingSphere.clone());return this},center:function(){this.computeBoundingBox();this.boundingBox.getCenter(Jf).negate();this.translate(Jf.x,Jf.y,Jf.z);return this},normalize:function(){this.computeBoundingSphere();var a=this.boundingSphere.center,b=this.boundingSphere.radius;b=0===b?1:1/b;var c=new U;c.set(b,0,0,-b*a.x,0,b,0,-b*a.y,
    571 0,0,b,-b*a.z,0,0,0,1);this.applyMatrix4(c);return this},computeFaceNormals:function(){for(var a=new m,b=new m,c=0,d=this.faces.length;c<d;c++){var e=this.faces[c],f=this.vertices[e.a],g=this.vertices[e.b];a.subVectors(this.vertices[e.c],g);b.subVectors(f,g);a.cross(b);a.normalize();e.normal.copy(a)}},computeVertexNormals:function(a){void 0===a&&(a=!0);for(var b=Array(this.vertices.length),c=0,d=this.vertices.length;c<d;c++)b[c]=new m;if(a){a=new m;c=new m;d=0;for(var e=this.faces.length;d<e;d++){var f=
    572 this.faces[d],g=this.vertices[f.a],h=this.vertices[f.b];a.subVectors(this.vertices[f.c],h);c.subVectors(g,h);a.cross(c);b[f.a].add(a);b[f.b].add(a);b[f.c].add(a)}}else for(this.computeFaceNormals(),a=0,c=this.faces.length;a<c;a++)d=this.faces[a],b[d.a].add(d.normal),b[d.b].add(d.normal),b[d.c].add(d.normal);a=0;for(c=this.vertices.length;a<c;a++)b[a].normalize();a=0;for(c=this.faces.length;a<c;a++)d=this.faces[a],e=d.vertexNormals,3===e.length?(e[0].copy(b[d.a]),e[1].copy(b[d.b]),e[2].copy(b[d.c])):
    573 (e[0]=b[d.a].clone(),e[1]=b[d.b].clone(),e[2]=b[d.c].clone());0<this.faces.length&&(this.normalsNeedUpdate=!0)},computeFlatVertexNormals:function(){this.computeFaceNormals();for(var a=0,b=this.faces.length;a<b;a++){var c=this.faces[a],d=c.vertexNormals;3===d.length?(d[0].copy(c.normal),d[1].copy(c.normal),d[2].copy(c.normal)):(d[0]=c.normal.clone(),d[1]=c.normal.clone(),d[2]=c.normal.clone())}0<this.faces.length&&(this.normalsNeedUpdate=!0)},computeMorphNormals:function(){for(var a=0,b=this.faces.length;a<
    574 b;a++){var c=this.faces[a];c.__originalFaceNormal?c.__originalFaceNormal.copy(c.normal):c.__originalFaceNormal=c.normal.clone();c.__originalVertexNormals||(c.__originalVertexNormals=[]);for(var d=0,e=c.vertexNormals.length;d<e;d++)c.__originalVertexNormals[d]?c.__originalVertexNormals[d].copy(c.vertexNormals[d]):c.__originalVertexNormals[d]=c.vertexNormals[d].clone()}a=new F;a.faces=this.faces;b=0;for(c=this.morphTargets.length;b<c;b++){if(!this.morphNormals[b]){this.morphNormals[b]={};this.morphNormals[b].faceNormals=
    575 [];this.morphNormals[b].vertexNormals=[];d=this.morphNormals[b].faceNormals;e=this.morphNormals[b].vertexNormals;for(var f=0,g=this.faces.length;f<g;f++){var h=new m,l={a:new m,b:new m,c:new m};d.push(h);e.push(l)}}d=this.morphNormals[b];a.vertices=this.morphTargets[b].vertices;a.computeFaceNormals();a.computeVertexNormals();e=0;for(f=this.faces.length;e<f;e++)g=this.faces[e],h=d.vertexNormals[e],d.faceNormals[e].copy(g.normal),h.a.copy(g.vertexNormals[0]),h.b.copy(g.vertexNormals[1]),h.c.copy(g.vertexNormals[2])}a=
    576 0;for(b=this.faces.length;a<b;a++)c=this.faces[a],c.normal=c.__originalFaceNormal,c.vertexNormals=c.__originalVertexNormals},computeBoundingBox:function(){null===this.boundingBox&&(this.boundingBox=new Sa);this.boundingBox.setFromPoints(this.vertices)},computeBoundingSphere:function(){null===this.boundingSphere&&(this.boundingSphere=new cb);this.boundingSphere.setFromPoints(this.vertices)},merge:function(a,b,c){if(a&&a.isGeometry){var d,e=this.vertices.length,f=this.vertices,g=a.vertices,h=this.faces,
    577 l=a.faces,k=this.colors,q=a.colors;void 0===c&&(c=0);void 0!==b&&(d=(new qa).getNormalMatrix(b));for(var p=0,m=g.length;p<m;p++){var r=g[p].clone();void 0!==b&&r.applyMatrix4(b);f.push(r)}b=0;for(f=q.length;b<f;b++)k.push(q[b].clone());k=0;for(q=l.length;k<q;k++){b=l[k];m=b.vertexNormals;g=b.vertexColors;f=new Cc(b.a+e,b.b+e,b.c+e);f.normal.copy(b.normal);void 0!==d&&f.normal.applyMatrix3(d).normalize();r=0;for(var t=m.length;r<t;r++)p=m[r].clone(),void 0!==d&&p.applyMatrix3(d).normalize(),f.vertexNormals.push(p);
    578 f.color.copy(b.color);m=0;for(r=g.length;m<r;m++)p=g[m],f.vertexColors.push(p.clone());f.materialIndex=b.materialIndex+c;h.push(f)}c=0;for(d=a.faceVertexUvs.length;c<d;c++)for(e=a.faceVertexUvs[c],void 0===this.faceVertexUvs[c]&&(this.faceVertexUvs[c]=[]),h=0,l=e.length;h<l;h++){k=e[h];q=[];b=0;for(f=k.length;b<f;b++)q.push(k[b].clone());this.faceVertexUvs[c].push(q)}}else console.error("THREE.Geometry.merge(): geometry not an instance of THREE.Geometry.",a)},mergeMesh:function(a){a&&a.isMesh?(a.matrixAutoUpdate&&
    579 a.updateMatrix(),this.merge(a.geometry,a.matrix)):console.error("THREE.Geometry.mergeMesh(): mesh not an instance of THREE.Mesh.",a)},mergeVertices:function(){for(var a={},b=[],c=[],d=Math.pow(10,4),e=0,f=this.vertices.length;e<f;e++){var g=this.vertices[e];g=Math.round(g.x*d)+"_"+Math.round(g.y*d)+"_"+Math.round(g.z*d);void 0===a[g]?(a[g]=e,b.push(this.vertices[e]),c[e]=b.length-1):c[e]=c[a[g]]}a=[];d=0;for(e=this.faces.length;d<e;d++)for(f=this.faces[d],f.a=c[f.a],f.b=c[f.b],f.c=c[f.c],f=[f.a,f.b,
    580 f.c],g=0;3>g;g++)if(f[g]===f[(g+1)%3]){a.push(d);break}for(c=a.length-1;0<=c;c--)for(d=a[c],this.faces.splice(d,1),e=0,f=this.faceVertexUvs.length;e<f;e++)this.faceVertexUvs[e].splice(d,1);c=this.vertices.length-b.length;this.vertices=b;return c},setFromPoints:function(a){this.vertices=[];for(var b=0,c=a.length;b<c;b++){var d=a[b];this.vertices.push(new m(d.x,d.y,d.z||0))}return this},sortFacesByMaterialIndex:function(){for(var a=this.faces,b=a.length,c=0;c<b;c++)a[c]._id=c;a.sort(function(a,b){return a.materialIndex-
    581 b.materialIndex});c=this.faceVertexUvs[0];var d=this.faceVertexUvs[1],e,f;c&&c.length===b&&(e=[]);d&&d.length===b&&(f=[]);for(var g=0;g<b;g++){var h=a[g]._id;e&&e.push(c[h]);f&&f.push(d[h])}e&&(this.faceVertexUvs[0]=e);f&&(this.faceVertexUvs[1]=f)},toJSON:function(){function a(a,b,c){return c?a|1<<b:a&~(1<<b)}function b(a){var b=a.x.toString()+a.y.toString()+a.z.toString();if(void 0!==k[b])return k[b];k[b]=l.length/3;l.push(a.x,a.y,a.z);return k[b]}function c(a){var b=a.r.toString()+a.g.toString()+
    582 a.b.toString();if(void 0!==p[b])return p[b];p[b]=q.length;q.push(a.getHex());return p[b]}function d(a){var b=a.x.toString()+a.y.toString();if(void 0!==r[b])return r[b];r[b]=m.length/2;m.push(a.x,a.y);return r[b]}var e={metadata:{version:4.5,type:"Geometry",generator:"Geometry.toJSON"}};e.uuid=this.uuid;e.type=this.type;""!==this.name&&(e.name=this.name);if(void 0!==this.parameters){var f=this.parameters,g;for(g in f)void 0!==f[g]&&(e[g]=f[g]);return e}f=[];for(g=0;g<this.vertices.length;g++){var h=
    583 this.vertices[g];f.push(h.x,h.y,h.z)}g=[];var l=[],k={},q=[],p={},m=[],r={};for(h=0;h<this.faces.length;h++){var t=this.faces[h],v=void 0!==this.faceVertexUvs[0][h],x=0<t.normal.length(),u=0<t.vertexNormals.length,w=1!==t.color.r||1!==t.color.g||1!==t.color.b,A=0<t.vertexColors.length,C=0;C=a(C,0,0);C=a(C,1,!0);C=a(C,2,!1);C=a(C,3,v);C=a(C,4,x);C=a(C,5,u);C=a(C,6,w);C=a(C,7,A);g.push(C);g.push(t.a,t.b,t.c);g.push(t.materialIndex);v&&(v=this.faceVertexUvs[0][h],g.push(d(v[0]),d(v[1]),d(v[2])));x&&
    584 g.push(b(t.normal));u&&(x=t.vertexNormals,g.push(b(x[0]),b(x[1]),b(x[2])));w&&g.push(c(t.color));A&&(t=t.vertexColors,g.push(c(t[0]),c(t[1]),c(t[2])))}e.data={};e.data.vertices=f;e.data.normals=l;0<q.length&&(e.data.colors=q);0<m.length&&(e.data.uvs=[m]);e.data.faces=g;return e},clone:function(){return(new F).copy(this)},copy:function(a){this.vertices=[];this.colors=[];this.faces=[];this.faceVertexUvs=[[]];this.morphTargets=[];this.morphNormals=[];this.skinWeights=[];this.skinIndices=[];this.lineDistances=
    585 [];this.boundingSphere=this.boundingBox=null;this.name=a.name;for(var b=a.vertices,c=0,d=b.length;c<d;c++)this.vertices.push(b[c].clone());b=a.colors;c=0;for(d=b.length;c<d;c++)this.colors.push(b[c].clone());b=a.faces;c=0;for(d=b.length;c<d;c++)this.faces.push(b[c].clone());b=0;for(c=a.faceVertexUvs.length;b<c;b++){d=a.faceVertexUvs[b];void 0===this.faceVertexUvs[b]&&(this.faceVertexUvs[b]=[]);for(var e=0,f=d.length;e<f;e++){for(var g=d[e],h=[],l=0,k=g.length;l<k;l++)h.push(g[l].clone());this.faceVertexUvs[b].push(h)}}b=
    586 a.morphTargets;c=0;for(d=b.length;c<d;c++){e={};e.name=b[c].name;if(void 0!==b[c].vertices)for(e.vertices=[],f=0,g=b[c].vertices.length;f<g;f++)e.vertices.push(b[c].vertices[f].clone());if(void 0!==b[c].normals)for(e.normals=[],f=0,g=b[c].normals.length;f<g;f++)e.normals.push(b[c].normals[f].clone());this.morphTargets.push(e)}b=a.morphNormals;c=0;for(d=b.length;c<d;c++){e={};if(void 0!==b[c].vertexNormals)for(e.vertexNormals=[],f=0,g=b[c].vertexNormals.length;f<g;f++)h=b[c].vertexNormals[f],l={},
    587 l.a=h.a.clone(),l.b=h.b.clone(),l.c=h.c.clone(),e.vertexNormals.push(l);if(void 0!==b[c].faceNormals)for(e.faceNormals=[],f=0,g=b[c].faceNormals.length;f<g;f++)e.faceNormals.push(b[c].faceNormals[f].clone());this.morphNormals.push(e)}b=a.skinWeights;c=0;for(d=b.length;c<d;c++)this.skinWeights.push(b[c].clone());b=a.skinIndices;c=0;for(d=b.length;c<d;c++)this.skinIndices.push(b[c].clone());b=a.lineDistances;c=0;for(d=b.length;c<d;c++)this.lineDistances.push(b[c]);b=a.boundingBox;null!==b&&(this.boundingBox=
    588 b.clone());b=a.boundingSphere;null!==b&&(this.boundingSphere=b.clone());this.elementsNeedUpdate=a.elementsNeedUpdate;this.verticesNeedUpdate=a.verticesNeedUpdate;this.uvsNeedUpdate=a.uvsNeedUpdate;this.normalsNeedUpdate=a.normalsNeedUpdate;this.colorsNeedUpdate=a.colorsNeedUpdate;this.lineDistancesNeedUpdate=a.lineDistancesNeedUpdate;this.groupsNeedUpdate=a.groupsNeedUpdate;return this},dispose:function(){this.dispatchEvent({type:"dispose"})}});Gc.prototype=Object.create(F.prototype);Gc.prototype.constructor=
    589 Gc;Bb.prototype=Object.create(E.prototype);Bb.prototype.constructor=Bb;var Qh={clone:Hc,merge:Aa};ra.prototype=Object.create(L.prototype);ra.prototype.constructor=ra;ra.prototype.isShaderMaterial=!0;ra.prototype.copy=function(a){L.prototype.copy.call(this,a);this.fragmentShader=a.fragmentShader;this.vertexShader=a.vertexShader;this.uniforms=Hc(a.uniforms);this.defines=Object.assign({},a.defines);this.wireframe=a.wireframe;this.wireframeLinewidth=a.wireframeLinewidth;this.lights=a.lights;this.clipping=
    590 a.clipping;this.skinning=a.skinning;this.morphTargets=a.morphTargets;this.morphNormals=a.morphNormals;this.extensions=Object.assign({},a.extensions);return this};ra.prototype.toJSON=function(a){var b=L.prototype.toJSON.call(this,a);b.uniforms={};for(var c in this.uniforms){var d=this.uniforms[c].value;b.uniforms[c]=d&&d.isTexture?{type:"t",value:d.toJSON(a).uuid}:d&&d.isColor?{type:"c",value:d.getHex()}:d&&d.isVector2?{type:"v2",value:d.toArray()}:d&&d.isVector3?{type:"v3",value:d.toArray()}:d&&d.isVector4?
    591 {type:"v4",value:d.toArray()}:d&&d.isMatrix3?{type:"m3",value:d.toArray()}:d&&d.isMatrix4?{type:"m4",value:d.toArray()}:{value:d}}0<Object.keys(this.defines).length&&(b.defines=this.defines);b.vertexShader=this.vertexShader;b.fragmentShader=this.fragmentShader;a={};for(var e in this.extensions)!0===this.extensions[e]&&(a[e]=!0);0<Object.keys(a).length&&(b.extensions=a);return b};db.prototype=Object.assign(Object.create(C.prototype),{constructor:db,isCamera:!0,copy:function(a,b){C.prototype.copy.call(this,
    592 a,b);this.matrixWorldInverse.copy(a.matrixWorldInverse);this.projectionMatrix.copy(a.projectionMatrix);this.projectionMatrixInverse.copy(a.projectionMatrixInverse);return this},getWorldDirection:function(a){void 0===a&&(console.warn("THREE.Camera: .getWorldDirection() target is now required"),a=new m);this.updateMatrixWorld(!0);var b=this.matrixWorld.elements;return a.set(-b[8],-b[9],-b[10]).normalize()},updateMatrixWorld:function(a){C.prototype.updateMatrixWorld.call(this,a);this.matrixWorldInverse.getInverse(this.matrixWorld)},
    593 updateWorldMatrix:function(a,b){C.prototype.updateWorldMatrix.call(this,a,b);this.matrixWorldInverse.getInverse(this.matrixWorld)},clone:function(){return(new this.constructor).copy(this)}});W.prototype=Object.assign(Object.create(db.prototype),{constructor:W,isPerspectiveCamera:!0,copy:function(a,b){db.prototype.copy.call(this,a,b);this.fov=a.fov;this.zoom=a.zoom;this.near=a.near;this.far=a.far;this.focus=a.focus;this.aspect=a.aspect;this.view=null===a.view?null:Object.assign({},a.view);this.filmGauge=
    594 a.filmGauge;this.filmOffset=a.filmOffset;return this},setFocalLength:function(a){a=.5*this.getFilmHeight()/a;this.fov=2*P.RAD2DEG*Math.atan(a);this.updateProjectionMatrix()},getFocalLength:function(){var a=Math.tan(.5*P.DEG2RAD*this.fov);return.5*this.getFilmHeight()/a},getEffectiveFOV:function(){return 2*P.RAD2DEG*Math.atan(Math.tan(.5*P.DEG2RAD*this.fov)/this.zoom)},getFilmWidth:function(){return this.filmGauge*Math.min(this.aspect,1)},getFilmHeight:function(){return this.filmGauge/Math.max(this.aspect,
    595 1)},setViewOffset:function(a,b,c,d,e,f){this.aspect=a/b;null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1});this.view.enabled=!0;this.view.fullWidth=a;this.view.fullHeight=b;this.view.offsetX=c;this.view.offsetY=d;this.view.width=e;this.view.height=f;this.updateProjectionMatrix()},clearViewOffset:function(){null!==this.view&&(this.view.enabled=!1);this.updateProjectionMatrix()},updateProjectionMatrix:function(){var a=this.near,b=a*Math.tan(.5*P.DEG2RAD*
    596 this.fov)/this.zoom,c=2*b,d=this.aspect*c,e=-.5*d,f=this.view;if(null!==this.view&&this.view.enabled){var g=f.fullWidth,h=f.fullHeight;e+=f.offsetX*d/g;b-=f.offsetY*c/h;d*=f.width/g;c*=f.height/h}f=this.filmOffset;0!==f&&(e+=a*f/this.getFilmWidth());this.projectionMatrix.makePerspective(e,e+d,b,b-c,a,this.far);this.projectionMatrixInverse.getInverse(this.projectionMatrix)},toJSON:function(a){a=C.prototype.toJSON.call(this,a);a.object.fov=this.fov;a.object.zoom=this.zoom;a.object.near=this.near;a.object.far=
    597 this.far;a.object.focus=this.focus;a.object.aspect=this.aspect;null!==this.view&&(a.object.view=Object.assign({},this.view));a.object.filmGauge=this.filmGauge;a.object.filmOffset=this.filmOffset;return a}});Ic.prototype=Object.create(C.prototype);Ic.prototype.constructor=Ic;ac.prototype=Object.create(Ga.prototype);ac.prototype.constructor=ac;ac.prototype.isWebGLCubeRenderTarget=!0;ac.prototype.fromEquirectangularTexture=function(a,b){this.texture.type=b.type;this.texture.format=1023;this.texture.encoding=
    598 b.encoding;this.texture.generateMipmaps=b.generateMipmaps;this.texture.minFilter=b.minFilter;this.texture.magFilter=b.magFilter;var c=new Ad,d=new ra({name:"CubemapFromEquirect",uniforms:Hc({tEquirect:{value:null}}),vertexShader:"nntttvarying vec3 vWorldDirection;nntttvec3 transformDirection( in vec3 dir, in mat4 matrix ) {nnttttreturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );nnttt}nntttvoid main() {nnttttvWorldDirection = transformDirection( position, modelMatrix );nntttt#include <begin_vertex>ntttt#include <project_vertex>nnttt}ntt",
    599 fragmentShader:"nntttuniform sampler2D tEquirect;nntttvarying vec3 vWorldDirection;nnttt#include <common>nntttvoid main() {nnttttvec3 direction = normalize( vWorldDirection );nnttttvec2 sampleUV = equirectUv( direction );nnttttgl_FragColor = texture2D( tEquirect, sampleUV );nnttt}ntt",side:1,blending:0});d.uniforms.tEquirect.value=b;b=new T(new Bb(5,5,5),d);c.add(b);(new Ic(1,10,this)).update(a,c);b.geometry.dispose();b.material.dispose();return this};
    600 bc.prototype=Object.create(V.prototype);bc.prototype.constructor=bc;bc.prototype.isDataTexture=!0;var wd=new cb,Kf=new m;Object.assign(Jc.prototype,{set:function(a,b,c,d,e,f){var g=this.planes;g[0].copy(a);g[1].copy(b);g[2].copy(c);g[3].copy(d);g[4].copy(e);g[5].copy(f);return this},clone:function(){return(new this.constructor).copy(this)},copy:function(a){for(var b=this.planes,c=0;6>c;c++)b[c].copy(a.planes[c]);return this},setFromProjectionMatrix:function(a){var b=this.planes,c=a.elements;a=c[0];
    601 var d=c[1],e=c[2],f=c[3],g=c[4],h=c[5],l=c[6],k=c[7],q=c[8],p=c[9],m=c[10],r=c[11],t=c[12],v=c[13],x=c[14];c=c[15];b[0].setComponents(f-a,k-g,r-q,c-t).normalize();b[1].setComponents(f+a,k+g,r+q,c+t).normalize();b[2].setComponents(f+d,k+h,r+p,c+v).normalize();b[3].setComponents(f-d,k-h,r-p,c-v).normalize();b[4].setComponents(f-e,k-l,r-m,c-x).normalize();b[5].setComponents(f+e,k+l,r+m,c+x).normalize();return this},intersectsObject:function(a){var b=a.geometry;null===b.boundingSphere&&b.computeBoundingSphere();
    602 wd.copy(b.boundingSphere).applyMatrix4(a.matrixWorld);return this.intersectsSphere(wd)},intersectsSprite:function(a){wd.center.set(0,0,0);wd.radius=.7071067811865476;wd.applyMatrix4(a.matrixWorld);return this.intersectsSphere(wd)},intersectsSphere:function(a){var b=this.planes,c=a.center;a=-a.radius;for(var d=0;6>d;d++)if(b[d].distanceToPoint(c)<a)return!1;return!0},intersectsBox:function(a){for(var b=this.planes,c=0;6>c;c++){var d=b[c];Kf.x=0<d.normal.x?a.max.x:a.min.x;Kf.y=0<d.normal.y?a.max.y:
    603 a.min.y;Kf.z=0<d.normal.z?a.max.z:a.min.z;if(0>d.distanceToPoint(Kf))return!1}return!0},containsPoint:function(a){for(var b=this.planes,c=0;6>c;c++)if(0>b[c].distanceToPoint(a))return!1;return!0}});var G={common:{diffuse:{value:new H(15658734)},opacity:{value:1},map:{value:null},uvTransform:{value:new qa},uv2Transform:{value:new qa},alphaMap:{value:null}},specularmap:{specularMap:{value:null}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},refractionRatio:{value:.98},maxMipLevel:{value:0}},
    604 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 u(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:2.5E-4},
    605 fogNear:{value:1},fogFar:{value:2E3},fogColor:{value:new H(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:[],
    606 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:[],
    607 properties:{color:{},position:{},width:{},height:{}}}},points:{diffuse:{value:new H(15658734)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},uvTransform:{value:new qa}},sprite:{diffuse:{value:new H(15658734)},opacity:{value:1},center:{value:new u(.5,.5)},rotation:{value:0},map:{value:null},alphaMap:{value:null},uvTransform:{value:new qa}}};Id.prototype=Object.create(F.prototype);Id.prototype.constructor=Id;cc.prototype=Object.create(E.prototype);cc.prototype.constructor=
    608 cc;var O={alphamap_fragment:"#ifdef USE_ALPHAMAPntdiffuseColor.a *= texture2D( alphaMap, vUv ).g;n#endif",alphamap_pars_fragment:"#ifdef USE_ALPHAMAPntuniform sampler2D alphaMap;n#endif",alphatest_fragment:"#ifdef ALPHATESTntif ( diffuseColor.a < ALPHATEST ) discard;n#endif",aomap_fragment:"#ifdef USE_AOMAPntfloat ambientOcclusion = ( texture2D( aoMap, vUv2 ).r - 1.0 ) * aoMapIntensity + 1.0;ntreflectedLight.indirectDiffuse *= ambientOcclusion;nt#if defined( USE_ENVMAP ) && defined( STANDARD )nttfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );nttreflectedLight.indirectSpecular *= computeSpecularOcclusion( dotNV, ambientOcclusion, material.specularRoughness );nt#endifn#endif",
    609 aomap_pars_fragment:"#ifdef USE_AOMAPntuniform sampler2D aoMap;ntuniform float aoMapIntensity;n#endif",begin_vertex:"vec3 transformed = vec3( position );",beginnormal_vertex:"vec3 objectNormal = vec3( normal );n#ifdef USE_TANGENTntvec3 objectTangent = vec3( tangent.xyz );n#endif",bsdfs:"vec2 integrateSpecularBRDF( const in float dotNV, const in float roughness ) {ntconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );ntconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );ntvec4 r = roughness * c0 + c1;ntfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;ntreturn vec2( -1.04, 1.04 ) * a004 + r.zw;n}nfloat punctualLightIntensityToIrradianceFactor( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {n#if defined ( PHYSICALLY_CORRECT_LIGHTS )ntfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );ntif( cutoffDistance > 0.0 ) {nttdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );nt}ntreturn distanceFalloff;n#elsentif( cutoffDistance > 0.0 && decayExponent > 0.0 ) {nttreturn pow( saturate( -lightDistance / cutoffDistance + 1.0 ), decayExponent );nt}ntreturn 1.0;n#endifn}nvec3 BRDF_Diffuse_Lambert( const in vec3 diffuseColor ) {ntreturn RECIPROCAL_PI * diffuseColor;n}nvec3 F_Schlick( const in vec3 specularColor, const in float dotLH ) {ntfloat fresnel = exp2( ( -5.55473 * dotLH - 6.98316 ) * dotLH );ntreturn ( 1.0 - specularColor ) * fresnel + specularColor;n}nvec3 F_Schlick_RoughnessDependent( const in vec3 F0, const in float dotNV, const in float roughness ) {ntfloat fresnel = exp2( ( -5.55473 * dotNV - 6.98316 ) * dotNV );ntvec3 Fr = max( vec3( 1.0 - roughness ), F0 ) - F0;ntreturn Fr * fresnel + F0;n}nfloat G_GGX_Smith( const in float alpha, const in float dotNL, const in float dotNV ) {ntfloat a2 = pow2( alpha );ntfloat gl = dotNL + sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );ntfloat gv = dotNV + sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );ntreturn 1.0 / ( gl * gv );n}nfloat G_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {ntfloat a2 = pow2( alpha );ntfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );ntfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );ntreturn 0.5 / max( gv + gl, EPSILON );n}nfloat D_GGX( const in float alpha, const in float dotNH ) {ntfloat a2 = pow2( alpha );ntfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;ntreturn RECIPROCAL_PI * a2 / pow2( denom );n}nvec3 BRDF_Specular_GGX( const in IncidentLight incidentLight, const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float roughness ) {ntfloat alpha = pow2( roughness );ntvec3 halfDir = normalize( incidentLight.direction + viewDir );ntfloat dotNL = saturate( dot( normal, incidentLight.direction ) );ntfloat dotNV = saturate( dot( normal, viewDir ) );ntfloat dotNH = saturate( dot( normal, halfDir ) );ntfloat dotLH = saturate( dot( incidentLight.direction, halfDir ) );ntvec3 F = F_Schlick( specularColor, dotLH );ntfloat G = G_GGX_SmithCorrelated( alpha, dotNL, dotNV );ntfloat D = D_GGX( alpha, dotNH );ntreturn F * ( G * D );n}nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {ntconst float LUT_SIZE  = 64.0;ntconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;ntconst float LUT_BIAS  = 0.5 / LUT_SIZE;ntfloat dotNV = saturate( dot( N, V ) );ntvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );ntuv = uv * LUT_SCALE + LUT_BIAS;ntreturn uv;n}nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {ntfloat l = length( f );ntreturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );n}nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {ntfloat x = dot( v1, v2 );ntfloat y = abs( x );ntfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;ntfloat b = 3.4175940 + ( 4.1616724 + y ) * y;ntfloat v = a / b;ntfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;ntreturn 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 ] ) {ntvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];ntvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];ntvec3 lightNormal = cross( v1, v2 );ntif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );ntvec3 T1, T2;ntT1 = normalize( V - N * dot( V, N ) );ntT2 = - cross( N, T1 );ntmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );ntvec3 coords[ 4 ];ntcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );ntcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );ntcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );ntcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );ntcoords[ 0 ] = normalize( coords[ 0 ] );ntcoords[ 1 ] = normalize( coords[ 1 ] );ntcoords[ 2 ] = normalize( coords[ 2 ] );ntcoords[ 3 ] = normalize( coords[ 3 ] );ntvec3 vectorFormFactor = vec3( 0.0 );ntvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );ntvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );ntvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );ntvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );ntfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );ntreturn vec3( result );n}nvec3 BRDF_Specular_GGX_Environment( const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float roughness ) {ntfloat dotNV = saturate( dot( normal, viewDir ) );ntvec2 brdf = integrateSpecularBRDF( dotNV, roughness );ntreturn specularColor * brdf.x + brdf.y;n}nvoid BRDF_Specular_Multiscattering_Environment( const in GeometricContext geometry, const in vec3 specularColor, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {ntfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );ntvec3 F = F_Schlick_RoughnessDependent( specularColor, dotNV, roughness );ntvec2 brdf = integrateSpecularBRDF( dotNV, roughness );ntvec3 FssEss = F * brdf.x + brdf.y;ntfloat Ess = brdf.x + brdf.y;ntfloat Ems = 1.0 - Ess;ntvec3 Favg = specularColor + ( 1.0 - specularColor ) * 0.047619;tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );ntsingleScatter += FssEss;ntmultiScatter += Fms * Ems;n}nfloat G_BlinnPhong_Implicit( ) {ntreturn 0.25;n}nfloat D_BlinnPhong( const in float shininess, const in float dotNH ) {ntreturn RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess );n}nvec3 BRDF_Specular_BlinnPhong( const in IncidentLight incidentLight, const in GeometricContext geometry, const in vec3 specularColor, const in float shininess ) {ntvec3 halfDir = normalize( incidentLight.direction + geometry.viewDir );ntfloat dotNH = saturate( dot( geometry.normal, halfDir ) );ntfloat dotLH = saturate( dot( incidentLight.direction, halfDir ) );ntvec3 F = F_Schlick( specularColor, dotLH );ntfloat G = G_BlinnPhong_Implicit( );ntfloat D = D_BlinnPhong( shininess, dotNH );ntreturn F * ( G * D );n}nfloat GGXRoughnessToBlinnExponent( const in float ggxRoughness ) {ntreturn ( 2.0 / pow2( ggxRoughness + 0.0001 ) - 2.0 );n}nfloat BlinnExponentToGGXRoughness( const in float blinnExponent ) {ntreturn sqrt( 2.0 / ( blinnExponent + 2.0 ) );n}n#if defined( USE_SHEEN )nfloat D_Charlie(float roughness, float NoH) {ntfloat invAlpha  = 1.0 / roughness;ntfloat cos2h = NoH * NoH;ntfloat sin2h = max(1.0 - cos2h, 0.0078125);treturn (2.0 + invAlpha) * pow(sin2h, invAlpha * 0.5) / (2.0 * PI);n}nfloat V_Neubelt(float NoV, float NoL) {ntreturn saturate(1.0 / (4.0 * (NoL + NoV - NoL * NoV)));n}nvec3 BRDF_Specular_Sheen( const in float roughness, const in vec3 L, const in GeometricContext geometry, vec3 specularColor ) {ntvec3 N = geometry.normal;ntvec3 V = geometry.viewDir;ntvec3 H = normalize( V + L );ntfloat dotNH = saturate( dot( N, H ) );ntreturn specularColor * D_Charlie( roughness, dotNH ) * V_Neubelt( dot(N, V), dot(N, L) );n}n#endif",
    610 bumpmap_pars_fragment:"#ifdef USE_BUMPMAPntuniform sampler2D bumpMap;ntuniform float bumpScale;ntvec2 dHdxy_fwd() {nttvec2 dSTdx = dFdx( vUv );nttvec2 dSTdy = dFdy( vUv );nttfloat Hll = bumpScale * texture2D( bumpMap, vUv ).x;nttfloat dBx = bumpScale * texture2D( bumpMap, vUv + dSTdx ).x - Hll;nttfloat dBy = bumpScale * texture2D( bumpMap, vUv + dSTdy ).x - Hll;nttreturn vec2( dBx, dBy );nt}ntvec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy ) {nttvec3 vSigmaX = vec3( dFdx( surf_pos.x ), dFdx( surf_pos.y ), dFdx( surf_pos.z ) );nttvec3 vSigmaY = vec3( dFdy( surf_pos.x ), dFdy( surf_pos.y ), dFdy( surf_pos.z ) );nttvec3 vN = surf_norm;nttvec3 R1 = cross( vSigmaY, vN );nttvec3 R2 = cross( vN, vSigmaX );nttfloat fDet = dot( vSigmaX, R1 );nttfDet *= ( float( gl_FrontFacing ) * 2.0 - 1.0 );nttvec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );nttreturn normalize( abs( fDet ) * surf_norm - vGrad );nt}n#endif",
    611 clipping_planes_fragment:"#if NUM_CLIPPING_PLANES > 0ntvec4 plane;nt#pragma unroll_loop_startntfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {nttplane = clippingPlanes[ i ];nttif ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;nt}nt#pragma unroll_loop_endnt#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANESnttbool clipped = true;ntt#pragma unroll_loop_startnttfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {ntttplane = clippingPlanes[ i ];ntttclipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;ntt}ntt#pragma unroll_loop_endnttif ( clipped ) discard;nt#endifn#endif",
    612 clipping_planes_pars_fragment:"#if NUM_CLIPPING_PLANES > 0ntvarying vec3 vClipPosition;ntuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];n#endif",clipping_planes_pars_vertex:"#if NUM_CLIPPING_PLANES > 0ntvarying vec3 vClipPosition;n#endif",clipping_planes_vertex:"#if NUM_CLIPPING_PLANES > 0ntvClipPosition = - mvPosition.xyz;n#endif",color_fragment:"#ifdef USE_COLORntdiffuseColor.rgb *= vColor;n#endif",color_pars_fragment:"#ifdef USE_COLORntvarying vec3 vColor;n#endif",color_pars_vertex:"#ifdef USE_COLORntvarying vec3 vColor;n#endif",
    613 color_vertex:"#ifdef USE_COLORntvColor.xyz = color.xyz;n#endif",common:"#define PI 3.141592653589793n#define PI2 6.283185307179586n#define PI_HALF 1.5707963267948966n#define RECIPROCAL_PI 0.3183098861837907n#define RECIPROCAL_PI2 0.15915494309189535n#define EPSILON 1e-6n#ifndef saturaten#define saturate(a) clamp( a, 0.0, 1.0 )n#endifn#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 average( const in vec3 color ) { return dot( color, vec3( 0.3333 ) ); }nhighp float rand( const in vec2 uv ) {ntconst highp float a = 12.9898, b = 78.233, c = 43758.5453;nthighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );ntreturn fract(sin(sn) * c);n}n#ifdef HIGH_PRECISIONntfloat precisionSafeLength( vec3 v ) { return length( v ); }n#elsentfloat max3( vec3 v ) { return max( max( v.x, v.y ), v.z ); }ntfloat precisionSafeLength( vec3 v ) {nttfloat maxComponent = max3( abs( v ) );nttreturn length( v / maxComponent ) * maxComponent;nt}n#endifnstruct IncidentLight {ntvec3 color;ntvec3 direction;ntbool visible;n};nstruct ReflectedLight {ntvec3 directDiffuse;ntvec3 directSpecular;ntvec3 indirectDiffuse;ntvec3 indirectSpecular;n};nstruct GeometricContext {ntvec3 position;ntvec3 normal;ntvec3 viewDir;n#ifdef CLEARCOATntvec3 clearcoatNormal;n#endifn};nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {ntreturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );n}nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {ntreturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );n}nvec3 projectOnPlane(in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal ) {ntfloat distance = dot( planeNormal, point - pointOnPlane );ntreturn - distance * planeNormal + point;n}nfloat sideOfPlane( in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal ) {ntreturn sign( dot( point - pointOnPlane, planeNormal ) );n}nvec3 linePlaneIntersect( in vec3 pointOnLine, in vec3 lineDirection, in vec3 pointOnPlane, in vec3 planeNormal ) {ntreturn lineDirection * ( dot( planeNormal, pointOnPlane - pointOnLine ) / dot( planeNormal, lineDirection ) ) + pointOnLine;n}nmat3 transposeMat3( const in mat3 m ) {ntmat3 tmp;nttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );nttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );nttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );ntreturn tmp;n}nfloat linearToRelativeLuminance( const in vec3 color ) {ntvec3 weights = vec3( 0.2126, 0.7152, 0.0722 );ntreturn dot( weights, color.rgb );n}nbool isPerspectiveMatrix( mat4 m ) {ntreturn m[ 2 ][ 3 ] == - 1.0;n}nvec2 equirectUv( in vec3 dir ) {ntfloat u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;ntfloat v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;ntreturn vec2( u, v );n}",
    614 cube_uv_reflection_fragment:"#ifdef ENVMAP_TYPE_CUBE_UVn#define cubeUV_maxMipLevel 8.0n#define cubeUV_minMipLevel 4.0n#define cubeUV_maxTileSize 256.0n#define cubeUV_minTileSize 16.0nfloat getFace(vec3 direction) {n    vec3 absDirection = abs(direction);n    float face = -1.0;n    if (absDirection.x > absDirection.z) {n      if (absDirection.x > absDirection.y)n        face = direction.x > 0.0 ? 0.0 : 3.0;n      elsen        face = direction.y > 0.0 ? 1.0 : 4.0;n    } else {n      if (absDirection.z > absDirection.y)n        face = direction.z > 0.0 ? 2.0 : 5.0;n      elsen        face = direction.y > 0.0 ? 1.0 : 4.0;n    }n    return face;n}nvec2 getUV(vec3 direction, float face) {n    vec2 uv;n    if (face == 0.0) {n      uv = vec2(direction.z, direction.y) / abs(direction.x);    } else if (face == 1.0) {n      uv = vec2(-direction.x, -direction.z) / abs(direction.y);    } else if (face == 2.0) {n      uv = vec2(-direction.x, direction.y) / abs(direction.z);    } else if (face == 3.0) {n      uv = vec2(-direction.z, direction.y) / abs(direction.x);    } else if (face == 4.0) {n      uv = vec2(-direction.x, direction.z) / abs(direction.y);    } else {n      uv = vec2(direction.x, direction.y) / abs(direction.z);    }n    return 0.5 * (uv + 1.0);n}nvec3 bilinearCubeUV(sampler2D envMap, vec3 direction, float mipInt) {n  float face = getFace(direction);n  float filterInt = max(cubeUV_minMipLevel - mipInt, 0.0);n  mipInt = max(mipInt, cubeUV_minMipLevel);n  float faceSize = exp2(mipInt);n  float texelSize = 1.0 / (3.0 * cubeUV_maxTileSize);n  vec2 uv = getUV(direction, face) * (faceSize - 1.0);n  vec2 f = fract(uv);n  uv += 0.5 - f;n  if (face > 2.0) {n    uv.y += faceSize;n    face -= 3.0;n  }n  uv.x += face * faceSize;n  if(mipInt < cubeUV_maxMipLevel){n    uv.y += 2.0 * cubeUV_maxTileSize;n  }n  uv.y += filterInt * 2.0 * cubeUV_minTileSize;n  uv.x += 3.0 * max(0.0, cubeUV_maxTileSize - 2.0 * faceSize);n  uv *= texelSize;n  vec3 tl = envMapTexelToLinear(texture2D(envMap, uv)).rgb;n  uv.x += texelSize;n  vec3 tr = envMapTexelToLinear(texture2D(envMap, uv)).rgb;n  uv.y += texelSize;n  vec3 br = envMapTexelToLinear(texture2D(envMap, uv)).rgb;n  uv.x -= texelSize;n  vec3 bl = envMapTexelToLinear(texture2D(envMap, uv)).rgb;n  vec3 tm = mix(tl, tr, f.x);n  vec3 bm = mix(bl, br, f.x);n  return mix(tm, bm, f.y);n}n#define r0 1.0n#define v0 0.339n#define m0 -2.0n#define r1 0.8n#define v1 0.276n#define m1 -1.0n#define r4 0.4n#define v4 0.046n#define m4 2.0n#define r5 0.305n#define v5 0.016n#define m5 3.0n#define r6 0.21n#define v6 0.0038n#define m6 4.0nfloat roughnessToMip(float roughness) {n  float mip = 0.0;n  if (roughness >= r1) {n    mip = (r0 - roughness) * (m1 - m0) / (r0 - r1) + m0;n  } else if (roughness >= r4) {n    mip = (r1 - roughness) * (m4 - m1) / (r1 - r4) + m1;n  } else if (roughness >= r5) {n    mip = (r4 - roughness) * (m5 - m4) / (r4 - r5) + m4;n  } else if (roughness >= r6) {n    mip = (r5 - roughness) * (m6 - m5) / (r5 - r6) + m5;n  } else {n    mip = -2.0 * log2(1.16 * roughness);  }n  return mip;n}nvec4 textureCubeUV(sampler2D envMap, vec3 sampleDir, float roughness) {n  float mip = clamp(roughnessToMip(roughness), m0, cubeUV_maxMipLevel);n  float mipF = fract(mip);n  float mipInt = floor(mip);n  vec3 color0 = bilinearCubeUV(envMap, sampleDir, mipInt);n  if (mipF == 0.0) {n    return vec4(color0, 1.0);n  } else {n    vec3 color1 = bilinearCubeUV(envMap, sampleDir, mipInt + 1.0);n    return vec4(mix(color0, color1, mipF), 1.0);n  }n}n#endif",
    615 defaultnormal_vertex:"vec3 transformedNormal = objectNormal;n#ifdef USE_INSTANCINGntmat3 m = mat3( instanceMatrix );nttransformedNormal /= vec3( dot( m[ 0 ], m[ 0 ] ), dot( m[ 1 ], m[ 1 ] ), dot( m[ 2 ], m[ 2 ] ) );nttransformedNormal = m * transformedNormal;n#endifntransformedNormal = normalMatrix * transformedNormal;n#ifdef FLIP_SIDEDnttransformedNormal = - transformedNormal;n#endifn#ifdef USE_TANGENTntvec3 transformedTangent = ( modelViewMatrix * vec4( objectTangent, 0.0 ) ).xyz;nt#ifdef FLIP_SIDEDntttransformedTangent = - transformedTangent;nt#endifn#endif",
    616 displacementmap_pars_vertex:"#ifdef USE_DISPLACEMENTMAPntuniform sampler2D displacementMap;ntuniform float displacementScale;ntuniform float displacementBias;n#endif",displacementmap_vertex:"#ifdef USE_DISPLACEMENTMAPnttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, vUv ).x * displacementScale + displacementBias );n#endif",emissivemap_fragment:"#ifdef USE_EMISSIVEMAPntvec4 emissiveColor = texture2D( emissiveMap, vUv );ntemissiveColor.rgb = emissiveMapTexelToLinear( emissiveColor ).rgb;nttotalEmissiveRadiance *= emissiveColor.rgb;n#endif",
    617 emissivemap_pars_fragment:"#ifdef USE_EMISSIVEMAPntuniform sampler2D emissiveMap;n#endif",encodings_fragment:"gl_FragColor = linearToOutputTexel( gl_FragColor );",encodings_pars_fragment:"nvec4 LinearToLinear( in vec4 value ) {ntreturn value;n}nvec4 GammaToLinear( in vec4 value, in float gammaFactor ) {ntreturn vec4( pow( value.rgb, vec3( gammaFactor ) ), value.a );n}nvec4 LinearToGamma( in vec4 value, in float gammaFactor ) {ntreturn vec4( pow( value.rgb, vec3( 1.0 / gammaFactor ) ), value.a );n}nvec4 sRGBToLinear( in vec4 value ) {ntreturn 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 ) {ntreturn 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}nvec4 RGBEToLinear( in vec4 value ) {ntreturn vec4( value.rgb * exp2( value.a * 255.0 - 128.0 ), 1.0 );n}nvec4 LinearToRGBE( in vec4 value ) {ntfloat maxComponent = max( max( value.r, value.g ), value.b );ntfloat fExp = clamp( ceil( log2( maxComponent ) ), -128.0, 127.0 );ntreturn vec4( value.rgb / exp2( fExp ), ( fExp + 128.0 ) / 255.0 );n}nvec4 RGBMToLinear( in vec4 value, in float maxRange ) {ntreturn vec4( value.rgb * value.a * maxRange, 1.0 );n}nvec4 LinearToRGBM( in vec4 value, in float maxRange ) {ntfloat maxRGB = max( value.r, max( value.g, value.b ) );ntfloat M = clamp( maxRGB / maxRange, 0.0, 1.0 );ntM = ceil( M * 255.0 ) / 255.0;ntreturn vec4( value.rgb / ( M * maxRange ), M );n}nvec4 RGBDToLinear( in vec4 value, in float maxRange ) {ntreturn vec4( value.rgb * ( ( maxRange / 255.0 ) / value.a ), 1.0 );n}nvec4 LinearToRGBD( in vec4 value, in float maxRange ) {ntfloat maxRGB = max( value.r, max( value.g, value.b ) );ntfloat D = max( maxRange / maxRGB, 1.0 );ntD = clamp( floor( D ) / 255.0, 0.0, 1.0 );ntreturn vec4( value.rgb * ( D * ( 255.0 / maxRange ) ), D );n}nconst mat3 cLogLuvM = mat3( 0.2209, 0.3390, 0.4184, 0.1138, 0.6780, 0.7319, 0.0102, 0.1130, 0.2969 );nvec4 LinearToLogLuv( in vec4 value )  {ntvec3 Xp_Y_XYZp = cLogLuvM * value.rgb;ntXp_Y_XYZp = max( Xp_Y_XYZp, vec3( 1e-6, 1e-6, 1e-6 ) );ntvec4 vResult;ntvResult.xy = Xp_Y_XYZp.xy / Xp_Y_XYZp.z;ntfloat Le = 2.0 * log2(Xp_Y_XYZp.y) + 127.0;ntvResult.w = fract( Le );ntvResult.z = ( Le - ( floor( vResult.w * 255.0 ) ) / 255.0 ) / 255.0;ntreturn vResult;n}nconst mat3 cLogLuvInverseM = mat3( 6.0014, -2.7008, -1.7996, -1.3320, 3.1029, -5.7721, 0.3008, -1.0882, 5.6268 );nvec4 LogLuvToLinear( in vec4 value ) {ntfloat Le = value.z * 255.0 + value.w;ntvec3 Xp_Y_XYZp;ntXp_Y_XYZp.y = exp2( ( Le - 127.0 ) / 2.0 );ntXp_Y_XYZp.z = Xp_Y_XYZp.y / value.y;ntXp_Y_XYZp.x = value.x * Xp_Y_XYZp.z;ntvec3 vRGB = cLogLuvInverseM * Xp_Y_XYZp.rgb;ntreturn vec4( max( vRGB, 0.0 ), 1.0 );n}",
    618 envmap_fragment:"#ifdef USE_ENVMAPnt#ifdef ENV_WORLDPOSnttvec3 cameraToFrag;nttnttif ( isOrthographic ) {ntttcameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );ntt}  else {ntttcameraToFrag = normalize( vWorldPosition - cameraPosition );ntt}nttvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );ntt#ifdef ENVMAP_MODE_REFLECTIONntttvec3 reflectVec = reflect( cameraToFrag, worldNormal );ntt#elsentttvec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );ntt#endifnt#elsenttvec3 reflectVec = vReflect;nt#endifnt#ifdef ENVMAP_TYPE_CUBEnttvec4 envColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );nt#elif defined( ENVMAP_TYPE_CUBE_UV )nttvec4 envColor = textureCubeUV( envMap, reflectVec, 0.0 );nt#elif defined( ENVMAP_TYPE_EQUIREC )nttreflectVec = normalize( reflectVec );nttvec2 sampleUV = equirectUv( reflectVec );nttvec4 envColor = texture2D( envMap, sampleUV );nt#elsenttvec4 envColor = vec4( 0.0 );nt#endifnt#ifndef ENVMAP_TYPE_CUBE_UVnttenvColor = envMapTexelToLinear( envColor );nt#endifnt#ifdef ENVMAP_BLENDING_MULTIPLYnttoutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );nt#elif defined( ENVMAP_BLENDING_MIX )nttoutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );nt#elif defined( ENVMAP_BLENDING_ADD )nttoutgoingLight += envColor.xyz * specularStrength * reflectivity;nt#endifn#endif",
    619 envmap_common_pars_fragment:"#ifdef USE_ENVMAPntuniform float envMapIntensity;ntuniform float flipEnvMap;ntuniform int maxMipLevel;nt#ifdef ENVMAP_TYPE_CUBEnttuniform samplerCube envMap;nt#elsenttuniform sampler2D envMap;nt#endifntn#endif",envmap_pars_fragment:"#ifdef USE_ENVMAPntuniform float reflectivity;nt#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )ntt#define ENV_WORLDPOSnt#endifnt#ifdef ENV_WORLDPOSnttvarying vec3 vWorldPosition;nttuniform float refractionRatio;nt#elsenttvarying vec3 vReflect;nt#endifn#endif",
    620 envmap_pars_vertex:"#ifdef USE_ENVMAPnt#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) ||defined( PHONG )ntt#define ENV_WORLDPOSnt#endifnt#ifdef ENV_WORLDPOSnttnttvarying vec3 vWorldPosition;nt#elsenttvarying vec3 vReflect;nttuniform float refractionRatio;nt#endifn#endif",envmap_physical_pars_fragment:"#if defined( USE_ENVMAP )nt#ifdef ENVMAP_MODE_REFRACTIONnttuniform float refractionRatio;nt#endifntvec3 getLightProbeIndirectIrradiance( const in GeometricContext geometry, const in int maxMIPLevel ) {nttvec3 worldNormal = inverseTransformDirection( geometry.normal, viewMatrix );ntt#ifdef ENVMAP_TYPE_CUBEntttvec3 queryVec = vec3( flipEnvMap * worldNormal.x, worldNormal.yz );nttt#ifdef TEXTURE_LOD_EXTnttttvec4 envMapColor = textureCubeLodEXT( envMap, queryVec, float( maxMIPLevel ) );nttt#elsenttttvec4 envMapColor = textureCube( envMap, queryVec, float( maxMIPLevel ) );nttt#endifntttenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;ntt#elif defined( ENVMAP_TYPE_CUBE_UV )ntttvec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 );ntt#elsentttvec4 envMapColor = vec4( 0.0 );ntt#endifnttreturn PI * envMapColor.rgb * envMapIntensity;nt}ntfloat getSpecularMIPLevel( const in float roughness, const in int maxMIPLevel ) {nttfloat maxMIPLevelScalar = float( maxMIPLevel );nttfloat sigma = PI * roughness * roughness / ( 1.0 + roughness );nttfloat desiredMIPLevel = maxMIPLevelScalar + log2( sigma );nttreturn clamp( desiredMIPLevel, 0.0, maxMIPLevelScalar );nt}ntvec3 getLightProbeIndirectRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in int maxMIPLevel ) {ntt#ifdef ENVMAP_MODE_REFLECTIONntt  vec3 reflectVec = reflect( -viewDir, normal );ntt  reflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );ntt#elsentt  vec3 reflectVec = refract( -viewDir, normal, refractionRatio );ntt#endifnttreflectVec = inverseTransformDirection( reflectVec, viewMatrix );nttfloat specularMIPLevel = getSpecularMIPLevel( roughness, maxMIPLevel );ntt#ifdef ENVMAP_TYPE_CUBEntttvec3 queryReflectVec = vec3( flipEnvMap * reflectVec.x, reflectVec.yz );nttt#ifdef TEXTURE_LOD_EXTnttttvec4 envMapColor = textureCubeLodEXT( envMap, queryReflectVec, specularMIPLevel );nttt#elsenttttvec4 envMapColor = textureCube( envMap, queryReflectVec, specularMIPLevel );nttt#endifntttenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;ntt#elif defined( ENVMAP_TYPE_CUBE_UV )ntttvec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness );ntt#elif defined( ENVMAP_TYPE_EQUIREC )ntttvec2 sampleUV = equirectUv( reflectVec );nttt#ifdef TEXTURE_LOD_EXTnttttvec4 envMapColor = texture2DLodEXT( envMap, sampleUV, specularMIPLevel );nttt#elsenttttvec4 envMapColor = texture2D( envMap, sampleUV, specularMIPLevel );nttt#endifntttenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;ntt#endifnttreturn envMapColor.rgb * envMapIntensity;nt}n#endif",
    621 envmap_vertex:"#ifdef USE_ENVMAPnt#ifdef ENV_WORLDPOSnttvWorldPosition = worldPosition.xyz;nt#elsenttvec3 cameraToVertex;nttif ( isOrthographic ) {ntttcameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );ntt} else {ntttcameraToVertex = normalize( worldPosition.xyz - cameraPosition );ntt}nttvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );ntt#ifdef ENVMAP_MODE_REFLECTIONntttvReflect = reflect( cameraToVertex, worldNormal );ntt#elsentttvReflect = refract( cameraToVertex, worldNormal, refractionRatio );ntt#endifnt#endifn#endif",
    622 fog_vertex:"#ifdef USE_FOGntfogDepth = - mvPosition.z;n#endif",fog_pars_vertex:"#ifdef USE_FOGntvarying float fogDepth;n#endif",fog_fragment:"#ifdef USE_FOGnt#ifdef FOG_EXP2nttfloat fogFactor = 1.0 - exp( - fogDensity * fogDensity * fogDepth * fogDepth );nt#elsenttfloat fogFactor = smoothstep( fogNear, fogFar, fogDepth );nt#endifntgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );n#endif",fog_pars_fragment:"#ifdef USE_FOGntuniform vec3 fogColor;ntvarying float fogDepth;nt#ifdef FOG_EXP2nttuniform float fogDensity;nt#elsenttuniform float fogNear;nttuniform float fogFar;nt#endifn#endif",
    623 gradientmap_pars_fragment:"#ifdef USE_GRADIENTMAPntuniform sampler2D gradientMap;n#endifnvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {ntfloat dotNL = dot( normal, lightDirection );ntvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );nt#ifdef USE_GRADIENTMAPnttreturn texture2D( gradientMap, coord ).rgb;nt#elsenttreturn ( coord.x < 0.7 ) ? vec3( 0.7 ) : vec3( 1.0 );nt#endifn}",lightmap_fragment:"#ifdef USE_LIGHTMAPntvec4 lightMapTexel= texture2D( lightMap, vUv2 );ntreflectedLight.indirectDiffuse += PI * lightMapTexelToLinear( lightMapTexel ).rgb * lightMapIntensity;n#endif",
    624 lightmap_pars_fragment:"#ifdef USE_LIGHTMAPntuniform sampler2D lightMap;ntuniform float lightMapIntensity;n#endif",lights_lambert_vertex:"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_SIDEDntvLightBack = vec3( 0.0 );ntvIndirectBack = vec3( 0.0 );n#endifnIncidentLight directLight;nfloat dotNL;nvec3 directLightColor_Diffuse;nvIndirectFront += getAmbientLightIrradiance( ambientLightColor );nvIndirectFront += getLightProbeIrradiance( lightProbe, geometry );n#ifdef DOUBLE_SIDEDntvIndirectBack += getAmbientLightIrradiance( ambientLightColor );ntvIndirectBack += getLightProbeIrradiance( lightProbe, backGeometry );n#endifn#if NUM_POINT_LIGHTS > 0nt#pragma unroll_loop_startntfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {nttgetPointDirectLightIrradiance( pointLights[ i ], geometry, directLight );nttdotNL = dot( geometry.normal, directLight.direction );nttdirectLightColor_Diffuse = PI * directLight.color;nttvLightFront += saturate( dotNL ) * directLightColor_Diffuse;ntt#ifdef DOUBLE_SIDEDntttvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;ntt#endifnt}nt#pragma unroll_loop_endn#endifn#if NUM_SPOT_LIGHTS > 0nt#pragma unroll_loop_startntfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {nttgetSpotDirectLightIrradiance( spotLights[ i ], geometry, directLight );nttdotNL = dot( geometry.normal, directLight.direction );nttdirectLightColor_Diffuse = PI * directLight.color;nttvLightFront += saturate( dotNL ) * directLightColor_Diffuse;ntt#ifdef DOUBLE_SIDEDntttvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;ntt#endifnt}nt#pragma unroll_loop_endn#endifn#if NUM_DIR_LIGHTS > 0nt#pragma unroll_loop_startntfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {nttgetDirectionalDirectLightIrradiance( directionalLights[ i ], geometry, directLight );nttdotNL = dot( geometry.normal, directLight.direction );nttdirectLightColor_Diffuse = PI * directLight.color;nttvLightFront += saturate( dotNL ) * directLightColor_Diffuse;ntt#ifdef DOUBLE_SIDEDntttvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;ntt#endifnt}nt#pragma unroll_loop_endn#endifn#if NUM_HEMI_LIGHTS > 0nt#pragma unroll_loop_startntfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {nttvIndirectFront += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry );ntt#ifdef DOUBLE_SIDEDntttvIndirectBack += getHemisphereLightIrradiance( hemisphereLights[ i ], backGeometry );ntt#endifnt}nt#pragma unroll_loop_endn#endif",
    625 lights_pars_begin:"uniform bool receiveShadow;nuniform vec3 ambientLightColor;nuniform vec3 lightProbe[ 9 ];nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {ntfloat x = normal.x, y = normal.y, z = normal.z;ntvec3 result = shCoefficients[ 0 ] * 0.886227;ntresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;ntresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;ntresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;ntresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;ntresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;ntresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );ntresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;ntresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );ntreturn result;n}nvec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in GeometricContext geometry ) {ntvec3 worldNormal = inverseTransformDirection( geometry.normal, viewMatrix );ntvec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );ntreturn irradiance;n}nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {ntvec3 irradiance = ambientLightColor;nt#ifndef PHYSICALLY_CORRECT_LIGHTSnttirradiance *= PI;nt#endifntreturn irradiance;n}n#if NUM_DIR_LIGHTS > 0ntstruct DirectionalLight {nttvec3 direction;nttvec3 color;nt};ntuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];ntvoid getDirectionalDirectLightIrradiance( const in DirectionalLight directionalLight, const in GeometricContext geometry, out IncidentLight directLight ) {nttdirectLight.color = directionalLight.color;nttdirectLight.direction = directionalLight.direction;nttdirectLight.visible = true;nt}n#endifn#if NUM_POINT_LIGHTS > 0ntstruct PointLight {nttvec3 position;nttvec3 color;nttfloat distance;nttfloat decay;nt};ntuniform PointLight pointLights[ NUM_POINT_LIGHTS ];ntvoid getPointDirectLightIrradiance( const in PointLight pointLight, const in GeometricContext geometry, out IncidentLight directLight ) {nttvec3 lVector = pointLight.position - geometry.position;nttdirectLight.direction = normalize( lVector );nttfloat lightDistance = length( lVector );nttdirectLight.color = pointLight.color;nttdirectLight.color *= punctualLightIntensityToIrradianceFactor( lightDistance, pointLight.distance, pointLight.decay );nttdirectLight.visible = ( directLight.color != vec3( 0.0 ) );nt}n#endifn#if NUM_SPOT_LIGHTS > 0ntstruct SpotLight {nttvec3 position;nttvec3 direction;nttvec3 color;nttfloat distance;nttfloat decay;nttfloat coneCos;nttfloat penumbraCos;nt};ntuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];ntvoid getSpotDirectLightIrradiance( const in SpotLight spotLight, const in GeometricContext geometry, out IncidentLight directLight  ) {nttvec3 lVector = spotLight.position - geometry.position;nttdirectLight.direction = normalize( lVector );nttfloat lightDistance = length( lVector );nttfloat angleCos = dot( directLight.direction, spotLight.direction );nttif ( angleCos > spotLight.coneCos ) {ntttfloat spotEffect = smoothstep( spotLight.coneCos, spotLight.penumbraCos, angleCos );ntttdirectLight.color = spotLight.color;ntttdirectLight.color *= spotEffect * punctualLightIntensityToIrradianceFactor( lightDistance, spotLight.distance, spotLight.decay );ntttdirectLight.visible = true;ntt} else {ntttdirectLight.color = vec3( 0.0 );ntttdirectLight.visible = false;ntt}nt}n#endifn#if NUM_RECT_AREA_LIGHTS > 0ntstruct RectAreaLight {nttvec3 color;nttvec3 position;nttvec3 halfWidth;nttvec3 halfHeight;nt};ntuniform sampler2D ltc_1;tuniform sampler2D ltc_2;ntuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];n#endifn#if NUM_HEMI_LIGHTS > 0ntstruct HemisphereLight {nttvec3 direction;nttvec3 skyColor;nttvec3 groundColor;nt};ntuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];ntvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in GeometricContext geometry ) {nttfloat dotNL = dot( geometry.normal, hemiLight.direction );nttfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;nttvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );ntt#ifndef PHYSICALLY_CORRECT_LIGHTSntttirradiance *= PI;ntt#endifnttreturn irradiance;nt}n#endif",
    626 lights_toon_fragment:"ToonMaterial material;nmaterial.diffuseColor = diffuseColor.rgb;",lights_toon_pars_fragment:"varying vec3 vViewPosition;n#ifndef FLAT_SHADEDntvarying vec3 vNormal;n#endifnstruct ToonMaterial {ntvec3 diffuseColor;n};nvoid RE_Direct_Toon( const in IncidentLight directLight, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {ntvec3 irradiance = getGradientIrradiance( geometry.normal, directLight.direction ) * directLight.color;nt#ifndef PHYSICALLY_CORRECT_LIGHTSnttirradiance *= PI;nt#endifntreflectedLight.directDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );n}nvoid RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {ntreflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );n}n#define RE_DirectttttRE_Direct_Toonn#define RE_IndirectDiffusettRE_IndirectDiffuse_Toonn#define Material_LightProbeLOD( material )t(0)",
    627 lights_phong_fragment:"BlinnPhongMaterial material;nmaterial.diffuseColor = diffuseColor.rgb;nmaterial.specularColor = specular;nmaterial.specularShininess = shininess;nmaterial.specularStrength = specularStrength;",lights_phong_pars_fragment:"varying vec3 vViewPosition;n#ifndef FLAT_SHADEDntvarying vec3 vNormal;n#endifnstruct BlinnPhongMaterial {ntvec3 diffuseColor;ntvec3 specularColor;ntfloat specularShininess;ntfloat specularStrength;n};nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {ntfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );ntvec3 irradiance = dotNL * directLight.color;nt#ifndef PHYSICALLY_CORRECT_LIGHTSnttirradiance *= PI;nt#endifntreflectedLight.directDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );ntreflectedLight.directSpecular += irradiance * BRDF_Specular_BlinnPhong( directLight, geometry, 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 ) {ntreflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );n}n#define RE_DirectttttRE_Direct_BlinnPhongn#define RE_IndirectDiffusettRE_IndirectDiffuse_BlinnPhongn#define Material_LightProbeLOD( material )t(0)",
    628 lights_physical_fragment:"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.specularRoughness = max( roughnessFactor, 0.0525 );material.specularRoughness += geometryRoughness;nmaterial.specularRoughness = min( material.specularRoughness, 1.0 );n#ifdef REFLECTIVITYntmaterial.specularColor = mix( vec3( MAXIMUM_SPECULAR_COEFFICIENT * pow2( reflectivity ) ), diffuseColor.rgb, metalnessFactor );n#elsentmaterial.specularColor = mix( vec3( DEFAULT_SPECULAR_COEFFICIENT ), diffuseColor.rgb, metalnessFactor );n#endifn#ifdef CLEARCOATntmaterial.clearcoat = clearcoat;ntmaterial.clearcoatRoughness = clearcoatRoughness;nt#ifdef USE_CLEARCOATMAPnttmaterial.clearcoat *= texture2D( clearcoatMap, vUv ).x;nt#endifnt#ifdef USE_CLEARCOAT_ROUGHNESSMAPnttmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vUv ).y;nt#endifntmaterial.clearcoat = saturate( material.clearcoat );tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );ntmaterial.clearcoatRoughness += geometryRoughness;ntmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );n#endifn#ifdef USE_SHEENntmaterial.sheenColor = sheen;n#endif",
    629 lights_physical_pars_fragment:"struct PhysicalMaterial {ntvec3 diffuseColor;ntfloat specularRoughness;ntvec3 specularColor;n#ifdef CLEARCOATntfloat clearcoat;ntfloat clearcoatRoughness;n#endifn#ifdef USE_SHEENntvec3 sheenColor;n#endifn};n#define MAXIMUM_SPECULAR_COEFFICIENT 0.16n#define DEFAULT_SPECULAR_COEFFICIENT 0.04nfloat clearcoatDHRApprox( const in float roughness, const in float dotNL ) {ntreturn DEFAULT_SPECULAR_COEFFICIENT + ( 1.0 - DEFAULT_SPECULAR_COEFFICIENT ) * ( pow( 1.0 - dotNL, 5.0 ) * pow( 1.0 - roughness, 2.0 ) );n}n#if NUM_RECT_AREA_LIGHTS > 0ntvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {nttvec3 normal = geometry.normal;nttvec3 viewDir = geometry.viewDir;nttvec3 position = geometry.position;nttvec3 lightPos = rectAreaLight.position;nttvec3 halfWidth = rectAreaLight.halfWidth;nttvec3 halfHeight = rectAreaLight.halfHeight;nttvec3 lightColor = rectAreaLight.color;nttfloat roughness = material.specularRoughness;nttvec3 rectCoords[ 4 ];nttrectCoords[ 0 ] = lightPos + halfWidth - halfHeight;ttrectCoords[ 1 ] = lightPos - halfWidth - halfHeight;nttrectCoords[ 2 ] = lightPos - halfWidth + halfHeight;nttrectCoords[ 3 ] = lightPos + halfWidth + halfHeight;nttvec2 uv = LTC_Uv( normal, viewDir, roughness );nttvec4 t1 = texture2D( ltc_1, uv );nttvec4 t2 = texture2D( ltc_2, uv );nttmat3 mInv = mat3(ntttvec3( t1.x, 0, t1.y ),ntttvec3(    0, 1,    0 ),ntttvec3( t1.z, 0, t1.w )ntt);nttvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );nttreflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );nttreflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );nt}n#endifnvoid RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {ntfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );ntvec3 irradiance = dotNL * directLight.color;nt#ifndef PHYSICALLY_CORRECT_LIGHTSnttirradiance *= PI;nt#endifnt#ifdef CLEARCOATnttfloat ccDotNL = saturate( dot( geometry.clearcoatNormal, directLight.direction ) );nttvec3 ccIrradiance = ccDotNL * directLight.color;ntt#ifndef PHYSICALLY_CORRECT_LIGHTSntttccIrradiance *= PI;ntt#endifnttfloat clearcoatDHR = material.clearcoat * clearcoatDHRApprox( material.clearcoatRoughness, ccDotNL );nttreflectedLight.directSpecular += ccIrradiance * material.clearcoat * BRDF_Specular_GGX( directLight, geometry.viewDir, geometry.clearcoatNormal, vec3( DEFAULT_SPECULAR_COEFFICIENT ), material.clearcoatRoughness );nt#elsenttfloat clearcoatDHR = 0.0;nt#endifnt#ifdef USE_SHEENnttreflectedLight.directSpecular += ( 1.0 - clearcoatDHR ) * irradiance * BRDF_Specular_Sheen(ntttmaterial.specularRoughness,ntttdirectLight.direction,ntttgeometry,ntttmaterial.sheenColorntt);nt#elsenttreflectedLight.directSpecular += ( 1.0 - clearcoatDHR ) * irradiance * BRDF_Specular_GGX( directLight, geometry.viewDir, geometry.normal, material.specularColor, material.specularRoughness);nt#endifntreflectedLight.directDiffuse += ( 1.0 - clearcoatDHR ) * irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );n}nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {ntreflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_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) {nt#ifdef CLEARCOATnttfloat ccDotNV = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );nttreflectedLight.indirectSpecular += clearcoatRadiance * material.clearcoat * BRDF_Specular_GGX_Environment( geometry.viewDir, geometry.clearcoatNormal, vec3( DEFAULT_SPECULAR_COEFFICIENT ), material.clearcoatRoughness );nttfloat ccDotNL = ccDotNV;nttfloat clearcoatDHR = material.clearcoat * clearcoatDHRApprox( material.clearcoatRoughness, ccDotNL );nt#elsenttfloat clearcoatDHR = 0.0;nt#endifntfloat clearcoatInv = 1.0 - clearcoatDHR;ntvec3 singleScattering = vec3( 0.0 );ntvec3 multiScattering = vec3( 0.0 );ntvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;ntBRDF_Specular_Multiscattering_Environment( geometry, material.specularColor, material.specularRoughness, singleScattering, multiScattering );ntvec3 diffuse = material.diffuseColor * ( 1.0 - ( singleScattering + multiScattering ) );ntreflectedLight.indirectSpecular += clearcoatInv * radiance * singleScattering;ntreflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;ntreflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;n}n#define RE_DirectttttRE_Direct_Physicaln#define RE_Direct_RectAreattRE_Direct_RectArea_Physicaln#define RE_IndirectDiffusettRE_IndirectDiffuse_Physicaln#define RE_IndirectSpecularttRE_IndirectSpecular_Physicalnfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {ntreturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );n}",
    630 lights_fragment_begin:"nGeometricContext geometry;ngeometry.position = - vViewPosition;ngeometry.normal = normal;ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );n#ifdef CLEARCOATntgeometry.clearcoatNormal = clearcoatNormal;n#endifnIncidentLight directLight;n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )ntPointLight pointLight;nt#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0ntPointLightShadow pointLightShadow;nt#endifnt#pragma unroll_loop_startntfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {nttpointLight = pointLights[ i ];nttgetPointDirectLightIrradiance( pointLight, geometry, directLight );ntt#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )nttpointLightShadow = pointLightShadows[ i ];nttdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;ntt#endifnttRE_Direct( directLight, geometry, material, reflectedLight );nt}nt#pragma unroll_loop_endn#endifn#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )ntSpotLight spotLight;nt#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0ntSpotLightShadow spotLightShadow;nt#endifnt#pragma unroll_loop_startntfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {nttspotLight = spotLights[ i ];nttgetSpotDirectLightIrradiance( spotLight, geometry, directLight );ntt#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )nttspotLightShadow = spotLightShadows[ i ];nttdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;ntt#endifnttRE_Direct( directLight, geometry, material, reflectedLight );nt}nt#pragma unroll_loop_endn#endifn#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )ntDirectionalLight directionalLight;nt#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0ntDirectionalLightShadow directionalLightShadow;nt#endifnt#pragma unroll_loop_startntfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {nttdirectionalLight = directionalLights[ i ];nttgetDirectionalDirectLightIrradiance( directionalLight, geometry, directLight );ntt#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )nttdirectionalLightShadow = directionalLightShadows[ i ];nttdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;ntt#endifnttRE_Direct( directLight, geometry, material, reflectedLight );nt}nt#pragma unroll_loop_endn#endifn#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )ntRectAreaLight rectAreaLight;nt#pragma unroll_loop_startntfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {nttrectAreaLight = rectAreaLights[ i ];nttRE_Direct_RectArea( rectAreaLight, geometry, material, reflectedLight );nt}nt#pragma unroll_loop_endn#endifn#if defined( RE_IndirectDiffuse )ntvec3 iblIrradiance = vec3( 0.0 );ntvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );ntirradiance += getLightProbeIrradiance( lightProbe, geometry );nt#if ( NUM_HEMI_LIGHTS > 0 )ntt#pragma unroll_loop_startnttfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {ntttirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry );ntt}ntt#pragma unroll_loop_endnt#endifn#endifn#if defined( RE_IndirectSpecular )ntvec3 radiance = vec3( 0.0 );ntvec3 clearcoatRadiance = vec3( 0.0 );n#endif",
    631 lights_fragment_maps:"#if defined( RE_IndirectDiffuse )nt#ifdef USE_LIGHTMAPnttvec4 lightMapTexel= texture2D( lightMap, vUv2 );nttvec3 lightMapIrradiance = lightMapTexelToLinear( lightMapTexel ).rgb * lightMapIntensity;ntt#ifndef PHYSICALLY_CORRECT_LIGHTSntttlightMapIrradiance *= PI;ntt#endifnttirradiance += lightMapIrradiance;nt#endifnt#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )nttiblIrradiance += getLightProbeIndirectIrradiance( geometry, maxMipLevel );nt#endifn#endifn#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )ntradiance += getLightProbeIndirectRadiance( geometry.viewDir, geometry.normal, material.specularRoughness, maxMipLevel );nt#ifdef CLEARCOATnttclearcoatRadiance += getLightProbeIndirectRadiance( geometry.viewDir, geometry.clearcoatNormal, material.clearcoatRoughness, maxMipLevel );nt#endifn#endif",
    632 lights_fragment_end:"#if defined( RE_IndirectDiffuse )ntRE_IndirectDiffuse( irradiance, geometry, material, reflectedLight );n#endifn#if defined( RE_IndirectSpecular )ntRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometry, material, reflectedLight );n#endif",logdepthbuf_fragment:"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )ntgl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;n#endif",logdepthbuf_pars_fragment:"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )ntuniform float logDepthBufFC;ntvarying float vFragDepth;ntvarying float vIsPerspective;n#endif",
    633 logdepthbuf_pars_vertex:"#ifdef USE_LOGDEPTHBUFnt#ifdef USE_LOGDEPTHBUF_EXTnttvarying float vFragDepth;nttvarying float vIsPerspective;nt#elsenttuniform float logDepthBufFC;nt#endifn#endif",logdepthbuf_vertex:"#ifdef USE_LOGDEPTHBUFnt#ifdef USE_LOGDEPTHBUF_EXTnttvFragDepth = 1.0 + gl_Position.w;nttvIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );nt#elsenttif ( isPerspectiveMatrix( projectionMatrix ) ) {ntttgl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0;ntttgl_Position.z *= gl_Position.w;ntt}nt#endifn#endif",
    634 map_fragment:"#ifdef USE_MAPntvec4 texelColor = texture2D( map, vUv );nttexelColor = mapTexelToLinear( texelColor );ntdiffuseColor *= texelColor;n#endif",map_pars_fragment:"#ifdef USE_MAPntuniform sampler2D map;n#endif",map_particle_fragment:"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )ntvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;n#endifn#ifdef USE_MAPntvec4 mapTexel = texture2D( map, uv );ntdiffuseColor *= mapTexelToLinear( mapTexel );n#endifn#ifdef USE_ALPHAMAPntdiffuseColor.a *= texture2D( alphaMap, uv ).g;n#endif",
    635 map_particle_pars_fragment:"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )ntuniform mat3 uvTransform;n#endifn#ifdef USE_MAPntuniform sampler2D map;n#endifn#ifdef USE_ALPHAMAPntuniform sampler2D alphaMap;n#endif",metalnessmap_fragment:"float metalnessFactor = metalness;n#ifdef USE_METALNESSMAPntvec4 texelMetalness = texture2D( metalnessMap, vUv );ntmetalnessFactor *= texelMetalness.b;n#endif",metalnessmap_pars_fragment:"#ifdef USE_METALNESSMAPntuniform sampler2D metalnessMap;n#endif",
    636 morphnormal_vertex:"#ifdef USE_MORPHNORMALSntobjectNormal *= morphTargetBaseInfluence;ntobjectNormal += morphNormal0 * morphTargetInfluences[ 0 ];ntobjectNormal += morphNormal1 * morphTargetInfluences[ 1 ];ntobjectNormal += morphNormal2 * morphTargetInfluences[ 2 ];ntobjectNormal += morphNormal3 * morphTargetInfluences[ 3 ];n#endif",morphtarget_pars_vertex:"#ifdef USE_MORPHTARGETSntuniform float morphTargetBaseInfluence;nt#ifndef USE_MORPHNORMALSnttuniform float morphTargetInfluences[ 8 ];nt#elsenttuniform float morphTargetInfluences[ 4 ];nt#endifn#endif",
    637 morphtarget_vertex:"#ifdef USE_MORPHTARGETSnttransformed *= morphTargetBaseInfluence;nttransformed += morphTarget0 * morphTargetInfluences[ 0 ];nttransformed += morphTarget1 * morphTargetInfluences[ 1 ];nttransformed += morphTarget2 * morphTargetInfluences[ 2 ];nttransformed += morphTarget3 * morphTargetInfluences[ 3 ];nt#ifndef USE_MORPHNORMALSntttransformed += morphTarget4 * morphTargetInfluences[ 4 ];ntttransformed += morphTarget5 * morphTargetInfluences[ 5 ];ntttransformed += morphTarget6 * morphTargetInfluences[ 6 ];ntttransformed += morphTarget7 * morphTargetInfluences[ 7 ];nt#endifn#endif",
    638 normal_fragment_begin:"#ifdef FLAT_SHADEDntvec3 fdx = vec3( dFdx( vViewPosition.x ), dFdx( vViewPosition.y ), dFdx( vViewPosition.z ) );ntvec3 fdy = vec3( dFdy( vViewPosition.x ), dFdy( vViewPosition.y ), dFdy( vViewPosition.z ) );ntvec3 normal = normalize( cross( fdx, fdy ) );n#elsentvec3 normal = normalize( vNormal );nt#ifdef DOUBLE_SIDEDnttnormal = normal * ( float( gl_FrontFacing ) * 2.0 - 1.0 );nt#endifnt#ifdef USE_TANGENTnttvec3 tangent = normalize( vTangent );nttvec3 bitangent = normalize( vBitangent );ntt#ifdef DOUBLE_SIDEDnttttangent = tangent * ( float( gl_FrontFacing ) * 2.0 - 1.0 );ntttbitangent = bitangent * ( float( gl_FrontFacing ) * 2.0 - 1.0 );ntt#endifntt#if defined( TANGENTSPACE_NORMALMAP ) || defined( USE_CLEARCOAT_NORMALMAP )ntttmat3 vTBN = mat3( tangent, bitangent, normal );ntt#endifnt#endifn#endifnvec3 geometryNormal = normal;",
    639 normal_fragment_maps:"#ifdef OBJECTSPACE_NORMALMAPntnormal = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;nt#ifdef FLIP_SIDEDnttnormal = - normal;nt#endifnt#ifdef DOUBLE_SIDEDnttnormal = normal * ( float( gl_FrontFacing ) * 2.0 - 1.0 );nt#endifntnormal = normalize( normalMatrix * normal );n#elif defined( TANGENTSPACE_NORMALMAP )ntvec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;ntmapN.xy *= normalScale;nt#ifdef USE_TANGENTnttnormal = normalize( vTBN * mapN );nt#elsenttnormal = perturbNormal2Arb( -vViewPosition, normal, mapN );nt#endifn#elif defined( USE_BUMPMAP )ntnormal = perturbNormalArb( -vViewPosition, normal, dHdxy_fwd() );n#endif",
    640 normalmap_pars_fragment:"#ifdef USE_NORMALMAPntuniform sampler2D normalMap;ntuniform vec2 normalScale;n#endifn#ifdef OBJECTSPACE_NORMALMAPntuniform mat3 normalMatrix;n#endifn#if ! defined ( USE_TANGENT ) && ( defined ( TANGENTSPACE_NORMALMAP ) || defined ( USE_CLEARCOAT_NORMALMAP ) )ntvec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm, vec3 mapN ) {nttvec3 q0 = vec3( dFdx( eye_pos.x ), dFdx( eye_pos.y ), dFdx( eye_pos.z ) );nttvec3 q1 = vec3( dFdy( eye_pos.x ), dFdy( eye_pos.y ), dFdy( eye_pos.z ) );nttvec2 st0 = dFdx( vUv.st );nttvec2 st1 = dFdy( vUv.st );nttfloat scale = sign( st1.t * st0.s - st0.t * st1.s );nttvec3 S = normalize( ( q0 * st1.t - q1 * st0.t ) * scale );nttvec3 T = normalize( ( - q0 * st1.s + q1 * st0.s ) * scale );nttvec3 N = normalize( surf_norm );nttmat3 tsn = mat3( S, T, N );nttmapN.xy *= ( float( gl_FrontFacing ) * 2.0 - 1.0 );nttreturn normalize( tsn * mapN );nt}n#endif",
    641 clearcoat_normal_fragment_begin:"#ifdef CLEARCOATntvec3 clearcoatNormal = geometryNormal;n#endif",clearcoat_normal_fragment_maps:"#ifdef USE_CLEARCOAT_NORMALMAPntvec3 clearcoatMapN = texture2D( clearcoatNormalMap, vUv ).xyz * 2.0 - 1.0;ntclearcoatMapN.xy *= clearcoatNormalScale;nt#ifdef USE_TANGENTnttclearcoatNormal = normalize( vTBN * clearcoatMapN );nt#elsenttclearcoatNormal = perturbNormal2Arb( - vViewPosition, clearcoatNormal, clearcoatMapN );nt#endifn#endif",clearcoat_pars_fragment:"#ifdef USE_CLEARCOATMAPntuniform sampler2D clearcoatMap;n#endifn#ifdef USE_CLEARCOAT_ROUGHNESSMAPntuniform sampler2D clearcoatRoughnessMap;n#endifn#ifdef USE_CLEARCOAT_NORMALMAPntuniform sampler2D clearcoatNormalMap;ntuniform vec2 clearcoatNormalScale;n#endif",
    642 packing:"vec3 packNormalToRGB( const in vec3 normal ) {ntreturn normalize( normal ) * 0.5 + 0.5;n}nvec3 unpackRGBToNormal( const in vec3 rgb ) {ntreturn 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 ) {ntvec4 r = vec4( fract( v * PackFactors ), v );ntr.yzw -= r.xyz * ShiftRight8;treturn r * PackUpscale;n}nfloat unpackRGBAToDepth( const in vec4 v ) {ntreturn dot( v, UnpackFactors );n}nvec4 pack2HalfToRGBA( vec2 v ) {ntvec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ));ntreturn vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w);n}nvec2 unpackRGBATo2Half( vec4 v ) {ntreturn 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 ) {ntreturn ( viewZ + near ) / ( near - far );n}nfloat orthographicDepthToViewZ( const in float linearClipZ, const in float near, const in float far ) {ntreturn linearClipZ * ( near - far ) - near;n}nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {ntreturn (( near + viewZ ) * far ) / (( far - near ) * viewZ );n}nfloat perspectiveDepthToViewZ( const in float invClipZ, const in float near, const in float far ) {ntreturn ( near * far ) / ( ( far - near ) * invClipZ - far );n}",
    643 premultiplied_alpha_fragment:"#ifdef PREMULTIPLIED_ALPHAntgl_FragColor.rgb *= gl_FragColor.a;n#endif",project_vertex:"vec4 mvPosition = vec4( transformed, 1.0 );n#ifdef USE_INSTANCINGntmvPosition = instanceMatrix * mvPosition;n#endifnmvPosition = modelViewMatrix * mvPosition;ngl_Position = projectionMatrix * mvPosition;",dithering_fragment:"#ifdef DITHERINGntgl_FragColor.rgb = dithering( gl_FragColor.rgb );n#endif",dithering_pars_fragment:"#ifdef DITHERINGntvec3 dithering( vec3 color ) {nttfloat grid_position = rand( gl_FragCoord.xy );nttvec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );nttdither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );nttreturn color + dither_shift_RGB;nt}n#endif",
    644 roughnessmap_fragment:"float roughnessFactor = roughness;n#ifdef USE_ROUGHNESSMAPntvec4 texelRoughness = texture2D( roughnessMap, vUv );ntroughnessFactor *= texelRoughness.g;n#endif",roughnessmap_pars_fragment:"#ifdef USE_ROUGHNESSMAPntuniform sampler2D roughnessMap;n#endif",shadowmap_pars_fragment:"#ifdef USE_SHADOWMAPnt#if NUM_DIR_LIGHT_SHADOWS > 0nttuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];nttvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];nttstruct DirectionalLightShadow {ntttfloat shadowBias;ntttfloat shadowNormalBias;ntttfloat shadowRadius;ntttvec2 shadowMapSize;ntt};nttuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];nt#endifnt#if NUM_SPOT_LIGHT_SHADOWS > 0nttuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];nttvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHT_SHADOWS ];nttstruct SpotLightShadow {ntttfloat shadowBias;ntttfloat shadowNormalBias;ntttfloat shadowRadius;ntttvec2 shadowMapSize;ntt};nttuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];nt#endifnt#if NUM_POINT_LIGHT_SHADOWS > 0nttuniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];nttvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];nttstruct PointLightShadow {ntttfloat shadowBias;ntttfloat shadowNormalBias;ntttfloat shadowRadius;ntttvec2 shadowMapSize;ntttfloat shadowCameraNear;ntttfloat shadowCameraFar;ntt};nttuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];nt#endifntfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {nttreturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );nt}ntvec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {nttreturn unpackRGBATo2Half( texture2D( shadow, uv ) );nt}ntfloat VSMShadow (sampler2D shadow, vec2 uv, float compare ){nttfloat occlusion = 1.0;nttvec2 distribution = texture2DDistribution( shadow, uv );nttfloat hard_shadow = step( compare , distribution.x );nttif (hard_shadow != 1.0 ) {ntttfloat distance = compare - distribution.x ;ntttfloat variance = max( 0.00000, distribution.y * distribution.y );ntttfloat softness_probability = variance / (variance + distance * distance );tttsoftness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 );tttocclusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );ntt}nttreturn occlusion;nt}ntfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {nttfloat shadow = 1.0;nttshadowCoord.xyz /= shadowCoord.w;nttshadowCoord.z += shadowBias;nttbvec4 inFrustumVec = bvec4 ( shadowCoord.x >= 0.0, shadowCoord.x <= 1.0, shadowCoord.y >= 0.0, shadowCoord.y <= 1.0 );nttbool inFrustum = all( inFrustumVec );nttbvec2 frustumTestVec = bvec2( inFrustum, shadowCoord.z <= 1.0 );nttbool frustumTest = all( frustumTestVec );nttif ( frustumTest ) {ntt#if defined( SHADOWMAP_TYPE_PCF )ntttvec2 texelSize = vec2( 1.0 ) / shadowMapSize;ntttfloat dx0 = - texelSize.x * shadowRadius;ntttfloat dy0 = - texelSize.y * shadowRadius;ntttfloat dx1 = + texelSize.x * shadowRadius;ntttfloat dy1 = + texelSize.y * shadowRadius;ntttfloat dx2 = dx0 / 2.0;ntttfloat dy2 = dy0 / 2.0;ntttfloat dx3 = dx1 / 2.0;ntttfloat dy3 = dy1 / 2.0;ntttshadow = (ntttttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +ntttttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +ntttttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +ntttttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +ntttttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +ntttttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +ntttttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +ntttttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +ntttttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +ntttttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +ntttttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +ntttttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +ntttttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +ntttttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +ntttttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +ntttttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +ntttttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )nttt) * ( 1.0 / 17.0 );ntt#elif defined( SHADOWMAP_TYPE_PCF_SOFT )ntttvec2 texelSize = vec2( 1.0 ) / shadowMapSize;ntttfloat dx = texelSize.x;ntttfloat dy = texelSize.y;ntttvec2 uv = shadowCoord.xy;ntttvec2 f = fract( uv * shadowMapSize + 0.5 );ntttuv -= f * texelSize;ntttshadow = (ntttttexture2DCompare( shadowMap, uv, shadowCoord.z ) +ntttttexture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +ntttttexture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +ntttttexture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +nttttmix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ), nttttt texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),nttttt f.x ) +nttttmix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ), nttttt texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),nttttt f.x ) +nttttmix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ), nttttt texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),nttttt f.y ) +nttttmix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ), nttttt texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),nttttt f.y ) +nttttmix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ), ntttttt  texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),ntttttt  f.x ),nttttt mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ), ntttttt  texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),ntttttt  f.x ),nttttt f.y )nttt) * ( 1.0 / 9.0 );ntt#elif defined( SHADOWMAP_TYPE_VSM )ntttshadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );ntt#elsentttshadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );ntt#endifntt}nttreturn shadow;nt}ntvec2 cubeToUV( vec3 v, float texelSizeY ) {nttvec3 absV = abs( v );nttfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );nttabsV *= scaleToCube;nttv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );nttvec2 planar = v.xy;nttfloat almostATexel = 1.5 * texelSizeY;nttfloat almostOne = 1.0 - almostATexel;nttif ( absV.z >= almostOne ) {ntttif ( v.z > 0.0 )nttttplanar.x = 4.0 - v.x;ntt} else if ( absV.x >= almostOne ) {ntttfloat signX = sign( v.x );ntttplanar.x = v.z * signX + 2.0 * signX;ntt} else if ( absV.y >= almostOne ) {ntttfloat signY = sign( v.y );ntttplanar.x = v.x + 2.0 * signY + 2.0;ntttplanar.y = v.z * signY - 2.0;ntt}nttreturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );nt}ntfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {nttvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );nttvec3 lightToPosition = shadowCoord.xyz;nttfloat dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );ttdp += shadowBias;nttvec3 bd3D = normalize( lightToPosition );ntt#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )ntttvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;ntttreturn (ntttttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +ntttttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +ntttttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +ntttttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +ntttttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +ntttttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +ntttttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +ntttttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +ntttttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )nttt) * ( 1.0 / 9.0 );ntt#elsentttreturn texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );ntt#endifnt}n#endif",
    645 shadowmap_pars_vertex:"#ifdef USE_SHADOWMAPnt#if NUM_DIR_LIGHT_SHADOWS > 0nttuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];nttvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];nttstruct DirectionalLightShadow {ntttfloat shadowBias;ntttfloat shadowNormalBias;ntttfloat shadowRadius;ntttvec2 shadowMapSize;ntt};nttuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];nt#endifnt#if NUM_SPOT_LIGHT_SHADOWS > 0nttuniform mat4 spotShadowMatrix[ NUM_SPOT_LIGHT_SHADOWS ];nttvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHT_SHADOWS ];nttstruct SpotLightShadow {ntttfloat shadowBias;ntttfloat shadowNormalBias;ntttfloat shadowRadius;ntttvec2 shadowMapSize;ntt};nttuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];nt#endifnt#if NUM_POINT_LIGHT_SHADOWS > 0nttuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];nttvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];nttstruct PointLightShadow {ntttfloat shadowBias;ntttfloat shadowNormalBias;ntttfloat shadowRadius;ntttvec2 shadowMapSize;ntttfloat shadowCameraNear;ntttfloat shadowCameraFar;ntt};nttuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];nt#endifn#endif",
    646 shadowmap_vertex:"#ifdef USE_SHADOWMAPnt#if NUM_DIR_LIGHT_SHADOWS > 0 || NUM_SPOT_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0nttvec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );nttvec4 shadowWorldPosition;nt#endifnt#if NUM_DIR_LIGHT_SHADOWS > 0nt#pragma unroll_loop_startntfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {nttshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );nttvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;nt}nt#pragma unroll_loop_endnt#endifnt#if NUM_SPOT_LIGHT_SHADOWS > 0nt#pragma unroll_loop_startntfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {nttshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias, 0 );nttvSpotShadowCoord[ i ] = spotShadowMatrix[ i ] * shadowWorldPosition;nt}nt#pragma unroll_loop_endnt#endifnt#if NUM_POINT_LIGHT_SHADOWS > 0nt#pragma unroll_loop_startntfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {nttshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );nttvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;nt}nt#pragma unroll_loop_endnt#endifn#endif",
    647 shadowmask_pars_fragment:"float getShadowMask() {ntfloat shadow = 1.0;nt#ifdef USE_SHADOWMAPnt#if NUM_DIR_LIGHT_SHADOWS > 0ntDirectionalLightShadow directionalLight;nt#pragma unroll_loop_startntfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {nttdirectionalLight = directionalLightShadows[ i ];nttshadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;nt}nt#pragma unroll_loop_endnt#endifnt#if NUM_SPOT_LIGHT_SHADOWS > 0ntSpotLightShadow spotLight;nt#pragma unroll_loop_startntfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {nttspotLight = spotLightShadows[ i ];nttshadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;nt}nt#pragma unroll_loop_endnt#endifnt#if NUM_POINT_LIGHT_SHADOWS > 0ntPointLightShadow pointLight;nt#pragma unroll_loop_startntfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {nttpointLight = pointLightShadows[ i ];nttshadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;nt}nt#pragma unroll_loop_endnt#endifnt#endifntreturn shadow;n}",
    648 skinbase_vertex:"#ifdef USE_SKINNINGntmat4 boneMatX = getBoneMatrix( skinIndex.x );ntmat4 boneMatY = getBoneMatrix( skinIndex.y );ntmat4 boneMatZ = getBoneMatrix( skinIndex.z );ntmat4 boneMatW = getBoneMatrix( skinIndex.w );n#endif",skinning_pars_vertex:"#ifdef USE_SKINNINGntuniform mat4 bindMatrix;ntuniform mat4 bindMatrixInverse;nt#ifdef BONE_TEXTUREnttuniform highp sampler2D boneTexture;nttuniform int boneTextureSize;nttmat4 getBoneMatrix( const in float i ) {ntttfloat j = i * 4.0;ntttfloat x = mod( j, float( boneTextureSize ) );ntttfloat y = floor( j / float( boneTextureSize ) );ntttfloat dx = 1.0 / float( boneTextureSize );ntttfloat dy = 1.0 / float( boneTextureSize );nttty = dy * ( y + 0.5 );ntttvec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) );ntttvec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) );ntttvec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) );ntttvec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) );ntttmat4 bone = mat4( v1, v2, v3, v4 );ntttreturn bone;ntt}nt#elsenttuniform mat4 boneMatrices[ MAX_BONES ];nttmat4 getBoneMatrix( const in float i ) {ntttmat4 bone = boneMatrices[ int(i) ];ntttreturn bone;ntt}nt#endifn#endif",
    649 skinning_vertex:"#ifdef USE_SKINNINGntvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );ntvec4 skinned = vec4( 0.0 );ntskinned += boneMatX * skinVertex * skinWeight.x;ntskinned += boneMatY * skinVertex * skinWeight.y;ntskinned += boneMatZ * skinVertex * skinWeight.z;ntskinned += boneMatW * skinVertex * skinWeight.w;nttransformed = ( bindMatrixInverse * skinned ).xyz;n#endif",skinnormal_vertex:"#ifdef USE_SKINNINGntmat4 skinMatrix = mat4( 0.0 );ntskinMatrix += skinWeight.x * boneMatX;ntskinMatrix += skinWeight.y * boneMatY;ntskinMatrix += skinWeight.z * boneMatZ;ntskinMatrix += skinWeight.w * boneMatW;ntskinMatrix  = bindMatrixInverse * skinMatrix * bindMatrix;ntobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;nt#ifdef USE_TANGENTnttobjectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;nt#endifn#endif",
    650 specularmap_fragment:"float specularStrength;n#ifdef USE_SPECULARMAPntvec4 texelSpecular = texture2D( specularMap, vUv );ntspecularStrength = texelSpecular.r;n#elsentspecularStrength = 1.0;n#endif",specularmap_pars_fragment:"#ifdef USE_SPECULARMAPntuniform sampler2D specularMap;n#endif",tonemapping_fragment:"#if defined( TONE_MAPPING )ntgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );n#endif",tonemapping_pars_fragment:"#ifndef saturaten#define saturate(a) clamp( a, 0.0, 1.0 )n#endifnuniform float toneMappingExposure;nvec3 LinearToneMapping( vec3 color ) {ntreturn toneMappingExposure * color;n}nvec3 ReinhardToneMapping( vec3 color ) {ntcolor *= toneMappingExposure;ntreturn saturate( color / ( vec3( 1.0 ) + color ) );n}nvec3 OptimizedCineonToneMapping( vec3 color ) {ntcolor *= toneMappingExposure;ntcolor = max( vec3( 0.0 ), color - 0.004 );ntreturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );n}nvec3 RRTAndODTFit( vec3 v ) {ntvec3 a = v * ( v + 0.0245786 ) - 0.000090537;ntvec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;ntreturn a / b;n}nvec3 ACESFilmicToneMapping( vec3 color ) {ntconst mat3 ACESInputMat = mat3(nttvec3( 0.59719, 0.07600, 0.02840 ),ttvec3( 0.35458, 0.90834, 0.13383 ),nttvec3( 0.04823, 0.01566, 0.83777 )nt);ntconst mat3 ACESOutputMat = mat3(nttvec3(  1.60475, -0.10208, -0.00327 ),ttvec3( -0.53108,  1.10813, -0.07276 ),nttvec3( -0.07367, -0.00605,  1.07602 )nt);ntcolor *= toneMappingExposure / 0.6;ntcolor = ACESInputMat * color;ntcolor = RRTAndODTFit( color );ntcolor = ACESOutputMat * color;ntreturn saturate( color );n}nvec3 CustomToneMapping( vec3 color ) { return color; }",
    651 transmissionmap_fragment:"#ifdef USE_TRANSMISSIONMAPnttotalTransmission *= texture2D( transmissionMap, vUv ).r;n#endif",transmissionmap_pars_fragment:"#ifdef USE_TRANSMISSIONMAPntuniform sampler2D transmissionMap;n#endif",uv_pars_fragment:"#if ( defined( USE_UV ) && ! defined( UVS_VERTEX_ONLY ) )ntvarying vec2 vUv;n#endif",uv_pars_vertex:"#ifdef USE_UVnt#ifdef UVS_VERTEX_ONLYnttvec2 vUv;nt#elsenttvarying vec2 vUv;nt#endifntuniform mat3 uvTransform;n#endif",uv_vertex:"#ifdef USE_UVntvUv = ( uvTransform * vec3( uv, 1 ) ).xy;n#endif",
    652 uv2_pars_fragment:"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )ntvarying vec2 vUv2;n#endif",uv2_pars_vertex:"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )ntattribute vec2 uv2;ntvarying vec2 vUv2;ntuniform mat3 uv2Transform;n#endif",uv2_vertex:"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )ntvUv2 = ( uv2Transform * vec3( uv2, 1 ) ).xy;n#endif",worldpos_vertex:"#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP )ntvec4 worldPosition = vec4( transformed, 1.0 );nt#ifdef USE_INSTANCINGnttworldPosition = instanceMatrix * worldPosition;nt#endifntworldPosition = modelMatrix * worldPosition;n#endif",
    653 background_frag:"uniform sampler2D t2D;nvarying vec2 vUv;nvoid main() {ntvec4 texColor = texture2D( t2D, vUv );ntgl_FragColor = mapTexelToLinear( texColor );nt#include <tonemapping_fragment>nt#include <encodings_fragment>n}",background_vert:"varying vec2 vUv;nuniform mat3 uvTransform;nvoid main() {ntvUv = ( uvTransform * vec3( uv, 1 ) ).xy;ntgl_Position = vec4( position.xy, 1.0, 1.0 );n}",cube_frag:"#include <envmap_common_pars_fragment>nuniform float opacity;nvarying vec3 vWorldDirection;n#include <cube_uv_reflection_fragment>nvoid main() {ntvec3 vReflect = vWorldDirection;nt#include <envmap_fragment>ntgl_FragColor = envColor;ntgl_FragColor.a *= opacity;nt#include <tonemapping_fragment>nt#include <encodings_fragment>n}",
    654 cube_vert:"varying vec3 vWorldDirection;n#include <common>nvoid main() {ntvWorldDirection = transformDirection( position, modelMatrix );nt#include <begin_vertex>nt#include <project_vertex>ntgl_Position.z = gl_Position.w;n}",depth_frag:"#if DEPTH_PACKING == 3200ntuniform float opacity;n#endifn#include <common>n#include <packing>n#include <uv_pars_fragment>n#include <map_pars_fragment>n#include <alphamap_pars_fragment>n#include <logdepthbuf_pars_fragment>n#include <clipping_planes_pars_fragment>nvarying vec2 vHighPrecisionZW;nvoid main() {nt#include <clipping_planes_fragment>ntvec4 diffuseColor = vec4( 1.0 );nt#if DEPTH_PACKING == 3200nttdiffuseColor.a = opacity;nt#endifnt#include <map_fragment>nt#include <alphamap_fragment>nt#include <alphatest_fragment>nt#include <logdepthbuf_fragment>ntfloat fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;nt#if DEPTH_PACKING == 3200nttgl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );nt#elif DEPTH_PACKING == 3201nttgl_FragColor = packDepthToRGBA( fragCoordZ );nt#endifn}",
    655 depth_vert:"#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() {nt#include <uv_vertex>nt#include <skinbase_vertex>nt#ifdef USE_DISPLACEMENTMAPntt#include <beginnormal_vertex>ntt#include <morphnormal_vertex>ntt#include <skinnormal_vertex>nt#endifnt#include <begin_vertex>nt#include <morphtarget_vertex>nt#include <skinning_vertex>nt#include <displacementmap_vertex>nt#include <project_vertex>nt#include <logdepthbuf_vertex>nt#include <clipping_planes_vertex>ntvHighPrecisionZW = gl_Position.zw;n}",
    656 distanceRGBA_frag:"#define DISTANCEnuniform 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 <clipping_planes_pars_fragment>nvoid main () {nt#include <clipping_planes_fragment>ntvec4 diffuseColor = vec4( 1.0 );nt#include <map_fragment>nt#include <alphamap_fragment>nt#include <alphatest_fragment>ntfloat dist = length( vWorldPosition - referencePosition );ntdist = ( dist - nearDistance ) / ( farDistance - nearDistance );ntdist = saturate( dist );ntgl_FragColor = packDepthToRGBA( dist );n}",
    657 distanceRGBA_vert:"#define DISTANCEnvarying 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() {nt#include <uv_vertex>nt#include <skinbase_vertex>nt#ifdef USE_DISPLACEMENTMAPntt#include <beginnormal_vertex>ntt#include <morphnormal_vertex>ntt#include <skinnormal_vertex>nt#endifnt#include <begin_vertex>nt#include <morphtarget_vertex>nt#include <skinning_vertex>nt#include <displacementmap_vertex>nt#include <project_vertex>nt#include <worldpos_vertex>nt#include <clipping_planes_vertex>ntvWorldPosition = worldPosition.xyz;n}",
    658 equirect_frag:"uniform sampler2D tEquirect;nvarying vec3 vWorldDirection;n#include <common>nvoid main() {ntvec3 direction = normalize( vWorldDirection );ntvec2 sampleUV = equirectUv( direction );ntvec4 texColor = texture2D( tEquirect, sampleUV );ntgl_FragColor = mapTexelToLinear( texColor );nt#include <tonemapping_fragment>nt#include <encodings_fragment>n}",equirect_vert:"varying vec3 vWorldDirection;n#include <common>nvoid main() {ntvWorldDirection = transformDirection( position, modelMatrix );nt#include <begin_vertex>nt#include <project_vertex>n}",
    659 linedashed_frag:"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() {nt#include <clipping_planes_fragment>ntif ( mod( vLineDistance, totalSize ) > dashSize ) {nttdiscard;nt}ntvec3 outgoingLight = vec3( 0.0 );ntvec4 diffuseColor = vec4( diffuse, opacity );nt#include <logdepthbuf_fragment>nt#include <color_fragment>ntoutgoingLight = diffuseColor.rgb;ntgl_FragColor = vec4( outgoingLight, diffuseColor.a );nt#include <tonemapping_fragment>nt#include <encodings_fragment>nt#include <fog_fragment>nt#include <premultiplied_alpha_fragment>n}",
    660 linedashed_vert:"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() {ntvLineDistance = scale * lineDistance;nt#include <color_vertex>nt#include <begin_vertex>nt#include <morphtarget_vertex>nt#include <project_vertex>nt#include <logdepthbuf_vertex>nt#include <clipping_planes_vertex>nt#include <fog_vertex>n}",
    661 meshbasic_frag:"uniform vec3 diffuse;nuniform float opacity;n#ifndef FLAT_SHADEDntvarying vec3 vNormal;n#endifn#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 <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() {nt#include <clipping_planes_fragment>ntvec4 diffuseColor = vec4( diffuse, opacity );nt#include <logdepthbuf_fragment>nt#include <map_fragment>nt#include <color_fragment>nt#include <alphamap_fragment>nt#include <alphatest_fragment>nt#include <specularmap_fragment>ntReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );nt#ifdef USE_LIGHTMAPntnttvec4 lightMapTexel= texture2D( lightMap, vUv2 );nttreflectedLight.indirectDiffuse += lightMapTexelToLinear( lightMapTexel ).rgb * lightMapIntensity;nt#elsenttreflectedLight.indirectDiffuse += vec3( 1.0 );nt#endifnt#include <aomap_fragment>ntreflectedLight.indirectDiffuse *= diffuseColor.rgb;ntvec3 outgoingLight = reflectedLight.indirectDiffuse;nt#include <envmap_fragment>ntgl_FragColor = vec4( outgoingLight, diffuseColor.a );nt#include <tonemapping_fragment>nt#include <encodings_fragment>nt#include <fog_fragment>nt#include <premultiplied_alpha_fragment>nt#include <dithering_fragment>n}",
    662 meshbasic_vert:"#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() {nt#include <uv_vertex>nt#include <uv2_vertex>nt#include <color_vertex>nt#include <skinbase_vertex>nt#ifdef USE_ENVMAPnt#include <beginnormal_vertex>nt#include <morphnormal_vertex>nt#include <skinnormal_vertex>nt#include <defaultnormal_vertex>nt#endifnt#include <begin_vertex>nt#include <morphtarget_vertex>nt#include <skinning_vertex>nt#include <project_vertex>nt#include <logdepthbuf_vertex>nt#include <worldpos_vertex>nt#include <clipping_planes_vertex>nt#include <envmap_vertex>nt#include <fog_vertex>n}",
    663 meshlambert_frag:"uniform vec3 diffuse;nuniform vec3 emissive;nuniform float opacity;nvarying vec3 vLightFront;nvarying vec3 vIndirectFront;n#ifdef DOUBLE_SIDEDntvarying vec3 vLightBack;ntvarying vec3 vIndirectBack;n#endifn#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 <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() {nt#include <clipping_planes_fragment>ntvec4 diffuseColor = vec4( diffuse, opacity );ntReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );ntvec3 totalEmissiveRadiance = emissive;nt#include <logdepthbuf_fragment>nt#include <map_fragment>nt#include <color_fragment>nt#include <alphamap_fragment>nt#include <alphatest_fragment>nt#include <specularmap_fragment>nt#include <emissivemap_fragment>nt#ifdef DOUBLE_SIDEDnttreflectedLight.indirectDiffuse += ( gl_FrontFacing ) ? vIndirectFront : vIndirectBack;nt#elsenttreflectedLight.indirectDiffuse += vIndirectFront;nt#endifnt#include <lightmap_fragment>ntreflectedLight.indirectDiffuse *= BRDF_Diffuse_Lambert( diffuseColor.rgb );nt#ifdef DOUBLE_SIDEDnttreflectedLight.directDiffuse = ( gl_FrontFacing ) ? vLightFront : vLightBack;nt#elsenttreflectedLight.directDiffuse = vLightFront;nt#endifntreflectedLight.directDiffuse *= BRDF_Diffuse_Lambert( diffuseColor.rgb ) * getShadowMask();nt#include <aomap_fragment>ntvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;nt#include <envmap_fragment>ntgl_FragColor = vec4( outgoingLight, diffuseColor.a );nt#include <tonemapping_fragment>nt#include <encodings_fragment>nt#include <fog_fragment>nt#include <premultiplied_alpha_fragment>nt#include <dithering_fragment>n}",
    664 meshlambert_vert:"#define LAMBERTnvarying vec3 vLightFront;nvarying vec3 vIndirectFront;n#ifdef DOUBLE_SIDEDntvarying vec3 vLightBack;ntvarying vec3 vIndirectBack;n#endifn#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() {nt#include <uv_vertex>nt#include <uv2_vertex>nt#include <color_vertex>nt#include <beginnormal_vertex>nt#include <morphnormal_vertex>nt#include <skinbase_vertex>nt#include <skinnormal_vertex>nt#include <defaultnormal_vertex>nt#include <begin_vertex>nt#include <morphtarget_vertex>nt#include <skinning_vertex>nt#include <project_vertex>nt#include <logdepthbuf_vertex>nt#include <clipping_planes_vertex>nt#include <worldpos_vertex>nt#include <envmap_vertex>nt#include <lights_lambert_vertex>nt#include <shadowmap_vertex>nt#include <fog_vertex>n}",
    665 meshmatcap_frag:"#define MATCAPnuniform vec3 diffuse;nuniform float opacity;nuniform sampler2D matcap;nvarying vec3 vViewPosition;n#ifndef FLAT_SHADEDntvarying vec3 vNormal;n#endifn#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 <fog_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() {nt#include <clipping_planes_fragment>ntvec4 diffuseColor = vec4( diffuse, opacity );nt#include <logdepthbuf_fragment>nt#include <map_fragment>nt#include <color_fragment>nt#include <alphamap_fragment>nt#include <alphatest_fragment>nt#include <normal_fragment_begin>nt#include <normal_fragment_maps>ntvec3 viewDir = normalize( vViewPosition );ntvec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );ntvec3 y = cross( viewDir, x );ntvec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;nt#ifdef USE_MATCAPnttvec4 matcapColor = texture2D( matcap, uv );nttmatcapColor = matcapTexelToLinear( matcapColor );nt#elsenttvec4 matcapColor = vec4( 1.0 );nt#endifntvec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;ntgl_FragColor = vec4( outgoingLight, diffuseColor.a );nt#include <tonemapping_fragment>nt#include <encodings_fragment>nt#include <fog_fragment>nt#include <premultiplied_alpha_fragment>nt#include <dithering_fragment>n}",
    666 meshmatcap_vert:"#define MATCAPnvarying vec3 vViewPosition;n#ifndef FLAT_SHADEDntvarying vec3 vNormal;n#endifn#include <common>n#include <uv_pars_vertex>n#include <color_pars_vertex>n#include <displacementmap_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() {nt#include <uv_vertex>nt#include <color_vertex>nt#include <beginnormal_vertex>nt#include <morphnormal_vertex>nt#include <skinbase_vertex>nt#include <skinnormal_vertex>nt#include <defaultnormal_vertex>nt#ifndef FLAT_SHADEDnttvNormal = normalize( transformedNormal );nt#endifnt#include <begin_vertex>nt#include <morphtarget_vertex>nt#include <skinning_vertex>nt#include <displacementmap_vertex>nt#include <project_vertex>nt#include <logdepthbuf_vertex>nt#include <clipping_planes_vertex>nt#include <fog_vertex>ntvViewPosition = - mvPosition.xyz;n}",
    667 meshtoon_frag:"#define TOONnuniform 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 <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 <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() {nt#include <clipping_planes_fragment>ntvec4 diffuseColor = vec4( diffuse, opacity );ntReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );ntvec3 totalEmissiveRadiance = emissive;nt#include <logdepthbuf_fragment>nt#include <map_fragment>nt#include <color_fragment>nt#include <alphamap_fragment>nt#include <alphatest_fragment>nt#include <normal_fragment_begin>nt#include <normal_fragment_maps>nt#include <emissivemap_fragment>nt#include <lights_toon_fragment>nt#include <lights_fragment_begin>nt#include <lights_fragment_maps>nt#include <lights_fragment_end>nt#include <aomap_fragment>ntvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;ntgl_FragColor = vec4( outgoingLight, diffuseColor.a );nt#include <tonemapping_fragment>nt#include <encodings_fragment>nt#include <fog_fragment>nt#include <premultiplied_alpha_fragment>nt#include <dithering_fragment>n}",
    668 meshtoon_vert:"#define TOONnvarying vec3 vViewPosition;n#ifndef FLAT_SHADEDntvarying vec3 vNormal;n#endifn#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 <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() {nt#include <uv_vertex>nt#include <uv2_vertex>nt#include <color_vertex>nt#include <beginnormal_vertex>nt#include <morphnormal_vertex>nt#include <skinbase_vertex>nt#include <skinnormal_vertex>nt#include <defaultnormal_vertex>n#ifndef FLAT_SHADEDntvNormal = normalize( transformedNormal );n#endifnt#include <begin_vertex>nt#include <morphtarget_vertex>nt#include <skinning_vertex>nt#include <displacementmap_vertex>nt#include <project_vertex>nt#include <logdepthbuf_vertex>nt#include <clipping_planes_vertex>ntvViewPosition = - mvPosition.xyz;nt#include <worldpos_vertex>nt#include <shadowmap_vertex>nt#include <fog_vertex>n}",
    669 meshphong_frag:"#define PHONGnuniform 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 <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 <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() {nt#include <clipping_planes_fragment>ntvec4 diffuseColor = vec4( diffuse, opacity );ntReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );ntvec3 totalEmissiveRadiance = emissive;nt#include <logdepthbuf_fragment>nt#include <map_fragment>nt#include <color_fragment>nt#include <alphamap_fragment>nt#include <alphatest_fragment>nt#include <specularmap_fragment>nt#include <normal_fragment_begin>nt#include <normal_fragment_maps>nt#include <emissivemap_fragment>nt#include <lights_phong_fragment>nt#include <lights_fragment_begin>nt#include <lights_fragment_maps>nt#include <lights_fragment_end>nt#include <aomap_fragment>ntvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;nt#include <envmap_fragment>ntgl_FragColor = vec4( outgoingLight, diffuseColor.a );nt#include <tonemapping_fragment>nt#include <encodings_fragment>nt#include <fog_fragment>nt#include <premultiplied_alpha_fragment>nt#include <dithering_fragment>n}",
    670 meshphong_vert:"#define PHONGnvarying vec3 vViewPosition;n#ifndef FLAT_SHADEDntvarying vec3 vNormal;n#endifn#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 <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() {nt#include <uv_vertex>nt#include <uv2_vertex>nt#include <color_vertex>nt#include <beginnormal_vertex>nt#include <morphnormal_vertex>nt#include <skinbase_vertex>nt#include <skinnormal_vertex>nt#include <defaultnormal_vertex>n#ifndef FLAT_SHADEDntvNormal = normalize( transformedNormal );n#endifnt#include <begin_vertex>nt#include <morphtarget_vertex>nt#include <skinning_vertex>nt#include <displacementmap_vertex>nt#include <project_vertex>nt#include <logdepthbuf_vertex>nt#include <clipping_planes_vertex>ntvViewPosition = - mvPosition.xyz;nt#include <worldpos_vertex>nt#include <envmap_vertex>nt#include <shadowmap_vertex>nt#include <fog_vertex>n}",
    671 meshphysical_frag:"#define STANDARDn#ifdef PHYSICALnt#define REFLECTIVITYnt#define CLEARCOATnt#define TRANSMISSIONn#endifnuniform vec3 diffuse;nuniform vec3 emissive;nuniform float roughness;nuniform float metalness;nuniform float opacity;n#ifdef TRANSMISSIONntuniform float transmission;n#endifn#ifdef REFLECTIVITYntuniform float reflectivity;n#endifn#ifdef CLEARCOATntuniform float clearcoat;ntuniform float clearcoatRoughness;n#endifn#ifdef USE_SHEENntuniform vec3 sheen;n#endifnvarying vec3 vViewPosition;n#ifndef FLAT_SHADEDntvarying vec3 vNormal;nt#ifdef USE_TANGENTnttvarying vec3 vTangent;nttvarying vec3 vBitangent;nt#endifn#endifn#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 <aomap_pars_fragment>n#include <lightmap_pars_fragment>n#include <emissivemap_pars_fragment>n#include <transmissionmap_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 <lights_physical_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() {nt#include <clipping_planes_fragment>ntvec4 diffuseColor = vec4( diffuse, opacity );ntReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );ntvec3 totalEmissiveRadiance = emissive;nt#ifdef TRANSMISSIONnttfloat totalTransmission = transmission;nt#endifnt#include <logdepthbuf_fragment>nt#include <map_fragment>nt#include <color_fragment>nt#include <alphamap_fragment>nt#include <alphatest_fragment>nt#include <roughnessmap_fragment>nt#include <metalnessmap_fragment>nt#include <normal_fragment_begin>nt#include <normal_fragment_maps>nt#include <clearcoat_normal_fragment_begin>nt#include <clearcoat_normal_fragment_maps>nt#include <emissivemap_fragment>nt#include <transmissionmap_fragment>nt#include <lights_physical_fragment>nt#include <lights_fragment_begin>nt#include <lights_fragment_maps>nt#include <lights_fragment_end>nt#include <aomap_fragment>ntvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;nt#ifdef TRANSMISSIONnttdiffuseColor.a *= saturate( 1. - totalTransmission + linearToRelativeLuminance( reflectedLight.directSpecular + reflectedLight.indirectSpecular ) );nt#endifntgl_FragColor = vec4( outgoingLight, diffuseColor.a );nt#include <tonemapping_fragment>nt#include <encodings_fragment>nt#include <fog_fragment>nt#include <premultiplied_alpha_fragment>nt#include <dithering_fragment>n}",
    672 meshphysical_vert:"#define STANDARDnvarying vec3 vViewPosition;n#ifndef FLAT_SHADEDntvarying vec3 vNormal;nt#ifdef USE_TANGENTnttvarying vec3 vTangent;nttvarying vec3 vBitangent;nt#endifn#endifn#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 <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() {nt#include <uv_vertex>nt#include <uv2_vertex>nt#include <color_vertex>nt#include <beginnormal_vertex>nt#include <morphnormal_vertex>nt#include <skinbase_vertex>nt#include <skinnormal_vertex>nt#include <defaultnormal_vertex>n#ifndef FLAT_SHADEDntvNormal = normalize( transformedNormal );nt#ifdef USE_TANGENTnttvTangent = normalize( transformedTangent );nttvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );nt#endifn#endifnt#include <begin_vertex>nt#include <morphtarget_vertex>nt#include <skinning_vertex>nt#include <displacementmap_vertex>nt#include <project_vertex>nt#include <logdepthbuf_vertex>nt#include <clipping_planes_vertex>ntvViewPosition = - mvPosition.xyz;nt#include <worldpos_vertex>nt#include <shadowmap_vertex>nt#include <fog_vertex>n}",
    673 normal_frag:"#define NORMALnuniform float opacity;n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )ntvarying vec3 vViewPosition;n#endifn#ifndef FLAT_SHADEDntvarying vec3 vNormal;nt#ifdef USE_TANGENTnttvarying vec3 vTangent;nttvarying vec3 vBitangent;nt#endifn#endifn#include <packing>n#include <uv_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() {nt#include <clipping_planes_fragment>nt#include <logdepthbuf_fragment>nt#include <normal_fragment_begin>nt#include <normal_fragment_maps>ntgl_FragColor = vec4( packNormalToRGB( normal ), opacity );n}",
    674 normal_vert:"#define NORMALn#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )ntvarying vec3 vViewPosition;n#endifn#ifndef FLAT_SHADEDntvarying vec3 vNormal;nt#ifdef USE_TANGENTnttvarying vec3 vTangent;nttvarying vec3 vBitangent;nt#endifn#endifn#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>nvoid main() {nt#include <uv_vertex>nt#include <beginnormal_vertex>nt#include <morphnormal_vertex>nt#include <skinbase_vertex>nt#include <skinnormal_vertex>nt#include <defaultnormal_vertex>n#ifndef FLAT_SHADEDntvNormal = normalize( transformedNormal );nt#ifdef USE_TANGENTnttvTangent = normalize( transformedTangent );nttvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );nt#endifn#endifnt#include <begin_vertex>nt#include <morphtarget_vertex>nt#include <skinning_vertex>nt#include <displacementmap_vertex>nt#include <project_vertex>nt#include <logdepthbuf_vertex>nt#include <clipping_planes_vertex>n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )ntvViewPosition = - mvPosition.xyz;n#endifn}",
    675 points_frag:"uniform vec3 diffuse;nuniform float opacity;n#include <common>n#include <color_pars_fragment>n#include <map_particle_pars_fragment>n#include <fog_pars_fragment>n#include <logdepthbuf_pars_fragment>n#include <clipping_planes_pars_fragment>nvoid main() {nt#include <clipping_planes_fragment>ntvec3 outgoingLight = vec3( 0.0 );ntvec4 diffuseColor = vec4( diffuse, opacity );nt#include <logdepthbuf_fragment>nt#include <map_particle_fragment>nt#include <color_fragment>nt#include <alphatest_fragment>ntoutgoingLight = diffuseColor.rgb;ntgl_FragColor = vec4( outgoingLight, diffuseColor.a );nt#include <tonemapping_fragment>nt#include <encodings_fragment>nt#include <fog_fragment>nt#include <premultiplied_alpha_fragment>n}",
    676 points_vert:"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() {nt#include <color_vertex>nt#include <begin_vertex>nt#include <morphtarget_vertex>nt#include <project_vertex>ntgl_PointSize = size;nt#ifdef USE_SIZEATTENUATIONnttbool isPerspective = isPerspectiveMatrix( projectionMatrix );nttif ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );nt#endifnt#include <logdepthbuf_vertex>nt#include <clipping_planes_vertex>nt#include <worldpos_vertex>nt#include <fog_vertex>n}",
    677 shadow_frag:"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() {ntgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );nt#include <tonemapping_fragment>nt#include <encodings_fragment>nt#include <fog_fragment>n}",shadow_vert:"#include <common>n#include <fog_pars_vertex>n#include <shadowmap_pars_vertex>nvoid main() {nt#include <begin_vertex>nt#include <project_vertex>nt#include <worldpos_vertex>nt#include <beginnormal_vertex>nt#include <morphnormal_vertex>nt#include <skinbase_vertex>nt#include <skinnormal_vertex>nt#include <defaultnormal_vertex>nt#include <shadowmap_vertex>nt#include <fog_vertex>n}",
    678 sprite_frag:"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 <fog_pars_fragment>n#include <logdepthbuf_pars_fragment>n#include <clipping_planes_pars_fragment>nvoid main() {nt#include <clipping_planes_fragment>ntvec3 outgoingLight = vec3( 0.0 );ntvec4 diffuseColor = vec4( diffuse, opacity );nt#include <logdepthbuf_fragment>nt#include <map_fragment>nt#include <alphamap_fragment>nt#include <alphatest_fragment>ntoutgoingLight = diffuseColor.rgb;ntgl_FragColor = vec4( outgoingLight, diffuseColor.a );nt#include <tonemapping_fragment>nt#include <encodings_fragment>nt#include <fog_fragment>n}",
    679 sprite_vert:"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() {nt#include <uv_vertex>ntvec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );ntvec2 scale;ntscale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) );ntscale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) );nt#ifndef USE_SIZEATTENUATIONnttbool isPerspective = isPerspectiveMatrix( projectionMatrix );nttif ( isPerspective ) scale *= - mvPosition.z;nt#endifntvec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;ntvec2 rotatedPosition;ntrotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;ntrotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;ntmvPosition.xy += rotatedPosition;ntgl_Position = projectionMatrix * mvPosition;nt#include <logdepthbuf_vertex>nt#include <clipping_planes_vertex>nt#include <fog_vertex>n}"},
    680 Ua={basic:{uniforms:Aa([G.common,G.specularmap,G.envmap,G.aomap,G.lightmap,G.fog]),vertexShader:O.meshbasic_vert,fragmentShader:O.meshbasic_frag},lambert:{uniforms:Aa([G.common,G.specularmap,G.envmap,G.aomap,G.lightmap,G.emissivemap,G.fog,G.lights,{emissive:{value:new H(0)}}]),vertexShader:O.meshlambert_vert,fragmentShader:O.meshlambert_frag},phong:{uniforms:Aa([G.common,G.specularmap,G.envmap,G.aomap,G.lightmap,G.emissivemap,G.bumpmap,G.normalmap,G.displacementmap,G.fog,G.lights,{emissive:{value:new H(0)},
    681 specular:{value:new H(1118481)},shininess:{value:30}}]),vertexShader:O.meshphong_vert,fragmentShader:O.meshphong_frag},standard:{uniforms:Aa([G.common,G.envmap,G.aomap,G.lightmap,G.emissivemap,G.bumpmap,G.normalmap,G.displacementmap,G.roughnessmap,G.metalnessmap,G.fog,G.lights,{emissive:{value:new H(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:O.meshphysical_vert,fragmentShader:O.meshphysical_frag},toon:{uniforms:Aa([G.common,G.aomap,G.lightmap,G.emissivemap,
    682 G.bumpmap,G.normalmap,G.displacementmap,G.gradientmap,G.fog,G.lights,{emissive:{value:new H(0)}}]),vertexShader:O.meshtoon_vert,fragmentShader:O.meshtoon_frag},matcap:{uniforms:Aa([G.common,G.bumpmap,G.normalmap,G.displacementmap,G.fog,{matcap:{value:null}}]),vertexShader:O.meshmatcap_vert,fragmentShader:O.meshmatcap_frag},points:{uniforms:Aa([G.points,G.fog]),vertexShader:O.points_vert,fragmentShader:O.points_frag},dashed:{uniforms:Aa([G.common,G.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),
    683 vertexShader:O.linedashed_vert,fragmentShader:O.linedashed_frag},depth:{uniforms:Aa([G.common,G.displacementmap]),vertexShader:O.depth_vert,fragmentShader:O.depth_frag},normal:{uniforms:Aa([G.common,G.bumpmap,G.normalmap,G.displacementmap,{opacity:{value:1}}]),vertexShader:O.normal_vert,fragmentShader:O.normal_frag},sprite:{uniforms:Aa([G.sprite,G.fog]),vertexShader:O.sprite_vert,fragmentShader:O.sprite_frag},background:{uniforms:{uvTransform:{value:new qa},t2D:{value:null}},vertexShader:O.background_vert,
    684 fragmentShader:O.background_frag},cube:{uniforms:Aa([G.envmap,{opacity:{value:1}}]),vertexShader:O.cube_vert,fragmentShader:O.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:O.equirect_vert,fragmentShader:O.equirect_frag},distanceRGBA:{uniforms:Aa([G.common,G.displacementmap,{referencePosition:{value:new m},nearDistance:{value:1},farDistance:{value:1E3}}]),vertexShader:O.distanceRGBA_vert,fragmentShader:O.distanceRGBA_frag},shadow:{uniforms:Aa([G.lights,G.fog,{color:{value:new H(0)},
    685 opacity:{value:1}}]),vertexShader:O.shadow_vert,fragmentShader:O.shadow_frag}};Ua.physical={uniforms:Aa([Ua.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatNormalScale:{value:new u(1,1)},clearcoatNormalMap:{value:null},sheen:{value:new H(0)},transmission:{value:0},transmissionMap:{value:null}}]),vertexShader:O.meshphysical_vert,fragmentShader:O.meshphysical_frag};ob.prototype=Object.create(V.prototype);ob.prototype.constructor=
    686 ob;ob.prototype.isCubeTexture=!0;Object.defineProperty(ob.prototype,"images",{get:function(){return this.image},set:function(a){this.image=a}});Kc.prototype=Object.create(V.prototype);Kc.prototype.constructor=Kc;Kc.prototype.isDataTexture2DArray=!0;Lc.prototype=Object.create(V.prototype);Lc.prototype.constructor=Lc;Lc.prototype.isDataTexture3D=!0;var Dh=new V,Hj=new Kc,Jj=new Lc,Eh=new ob,xh=[],zh=[],Ch=new Float32Array(16),Bh=new Float32Array(9),Ah=new Float32Array(4);Fh.prototype.updateCache=function(a){var b=
    687 this.cache;a instanceof Float32Array&&b.length!==a.length&&(this.cache=new Float32Array(a.length));Fa(b,a)};Gh.prototype.setValue=function(a,b,c){for(var d=this.seq,e=0,f=d.length;e!==f;++e){var g=d[e];g.setValue(a,b[g.id],c)}};var ig=/([wd_]+)(])?([|.)?/g;Cb.prototype.setValue=function(a,b,c,d){b=this.map[b];void 0!==b&&b.setValue(a,c,d)};Cb.prototype.setOptional=function(a,b,c){b=b[c];void 0!==b&&this.setValue(a,c,b)};Cb.upload=function(a,b,c,d){for(var e=0,f=b.length;e!==f;++e){var g=b[e],
    688 h=c[g.id];!1!==h.needsUpdate&&g.setValue(a,h.value,d)}};Cb.seqWithValue=function(a,b){for(var c=[],d=0,e=a.length;d!==e;++d){var f=a[d];f.id in b&&c.push(f)}return c};var ok=0,kg=/^[ t]*#include +<([wd./]+)>/gm,Ph=/#pragma unroll_loop[s]+?for ( int i = (d+); i < (d+); i ++ ) {([sS]+?)(?=})}/g,Oh=/#pragma unroll_loop_start[s]+?for ( int i = (d+); i < (d+); i ++ ) {([sS]+?)(?=})}[s]+?#pragma unroll_loop_end/g,yk=0;Db.prototype=Object.create(L.prototype);Db.prototype.constructor=
    689 Db;Db.prototype.isMeshDepthMaterial=!0;Db.prototype.copy=function(a){L.prototype.copy.call(this,a);this.depthPacking=a.depthPacking;this.skinning=a.skinning;this.morphTargets=a.morphTargets;this.map=a.map;this.alphaMap=a.alphaMap;this.displacementMap=a.displacementMap;this.displacementScale=a.displacementScale;this.displacementBias=a.displacementBias;this.wireframe=a.wireframe;this.wireframeLinewidth=a.wireframeLinewidth;return this};Eb.prototype=Object.create(L.prototype);Eb.prototype.constructor=
    690 Eb;Eb.prototype.isMeshDistanceMaterial=!0;Eb.prototype.copy=function(a){L.prototype.copy.call(this,a);this.referencePosition.copy(a.referencePosition);this.nearDistance=a.nearDistance;this.farDistance=a.farDistance;this.skinning=a.skinning;this.morphTargets=a.morphTargets;this.map=a.map;this.alphaMap=a.alphaMap;this.displacementMap=a.displacementMap;this.displacementScale=a.displacementScale;this.displacementBias=a.displacementBias;return this};Ne.prototype=Object.assign(Object.create(W.prototype),
    691 {constructor:Ne,isArrayCamera:!0});Gb.prototype=Object.assign(Object.create(C.prototype),{constructor:Gb,isGroup:!0});Object.assign(Md.prototype,{constructor:Md,getHandSpace:function(){if(null===this._hand&&(this._hand=new Gb,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints=[],this._hand.inputState={pinching:!1},window.XRHand))for(var a=0;a<=window.XRHand.LITTLE_PHALANX_TIP;a++){var b=new Gb;b.matrixAutoUpdate=!1;b.visible=!1;this._hand.joints.push(b);this._hand.add(b)}return this._hand},
    692 getTargetRaySpace:function(){null===this._targetRay&&(this._targetRay=new Gb,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1);return this._targetRay},getGripSpace:function(){null===this._grip&&(this._grip=new Gb,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1);return this._grip},dispatchEvent:function(a){null!==this._targetRay&&this._targetRay.dispatchEvent(a);null!==this._grip&&this._grip.dispatchEvent(a);null!==this._hand&&this._hand.dispatchEvent(a);return this},disconnect:function(a){this.dispatchEvent({type:"disconnected",
    693 data:a});null!==this._targetRay&&(this._targetRay.visible=!1);null!==this._grip&&(this._grip.visible=!1);null!==this._hand&&(this._hand.visible=!1);return this},update:function(a,b,c){var d=null,e=null,f=null,g=this._targetRay,h=this._grip,l=this._hand;if(a)if(a.hand){f=!0;for(var k=0;k<=window.XRHand.LITTLE_PHALANX_TIP;k++)if(a.hand[k]){var q=b.getJointPose(a.hand[k],c),p=l.joints[k];null!==q&&(p.matrix.fromArray(q.transform.matrix),p.matrix.decompose(p.position,p.rotation,p.scale),p.jointRadius=
    694 q.radius);p.visible=null!==q;q=l.joints[window.XRHand.INDEX_PHALANX_TIP].position.distanceTo(l.joints[window.XRHand.THUMB_PHALANX_TIP].position);l.inputState.pinching&&.025<q?(l.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:a.handedness,target:this})):!l.inputState.pinching&&.015>=q&&(l.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:a.handedness,target:this}))}}else null!==g&&(d=b.getPose(a.targetRaySpace,c),null!==d&&(g.matrix.fromArray(d.transform.matrix),
    695 g.matrix.decompose(g.position,g.rotation,g.scale))),null!==h&&a.gripSpace&&(e=b.getPose(a.gripSpace,c),null!==e&&(h.matrix.fromArray(e.transform.matrix),h.matrix.decompose(h.position,h.rotation,h.scale)));null!==g&&(g.visible=null!==d);null!==h&&(h.visible=null!==e);null!==l&&(l.visible=null!==f);return this}});Object.assign(Vh.prototype,Ea.prototype);og.prototype=Object.assign(Object.create(Nd.prototype),{constructor:og,isWebGL1Renderer:!0});Object.assign(Oe.prototype,{isFogExp2:!0,clone:function(){return new Oe(this.color,
    696 this.density)},toJSON:function(){return{type:"FogExp2",color:this.color.getHex(),density:this.density}}});Object.assign(Pe.prototype,{isFog:!0,clone:function(){return new Pe(this.color,this.near,this.far)},toJSON:function(){return{type:"Fog",color:this.color.getHex(),near:this.near,far:this.far}}});Object.defineProperty(Ba.prototype,"needsUpdate",{set:function(a){!0===a&&this.version++}});Object.assign(Ba.prototype,{isInterleavedBuffer:!0,onUploadCallback:function(){},setUsage:function(a){this.usage=
    697 a;return this},copy:function(a){this.array=new a.array.constructor(a.array);this.count=a.count;this.stride=a.stride;this.usage=a.usage;return this},copyAt:function(a,b,c){a*=this.stride;c*=b.stride;for(var d=0,e=this.stride;d<e;d++)this.array[a+d]=b.array[c+d];return this},set:function(a,b){void 0===b&&(b=0);this.array.set(a,b);return this},clone:function(a){void 0===a.arrayBuffers&&(a.arrayBuffers={});void 0===this.array.buffer._uuid&&(this.array.buffer._uuid=P.generateUUID());void 0===a.arrayBuffers[this.array.buffer._uuid]&&
    698 (a.arrayBuffers[this.array.buffer._uuid]=this.array.slice(0).buffer);a=new this.array.constructor(a.arrayBuffers[this.array.buffer._uuid]);a=new Ba(a,this.stride);a.setUsage(this.usage);return a},onUpload:function(a){this.onUploadCallback=a;return this},toJSON:function(a){void 0===a.arrayBuffers&&(a.arrayBuffers={});void 0===this.array.buffer._uuid&&(this.array.buffer._uuid=P.generateUUID());void 0===a.arrayBuffers[this.array.buffer._uuid]&&(a.arrayBuffers[this.array.buffer._uuid]=Array.prototype.slice.call(new Uint32Array(this.array.buffer)));
    699 return{uuid:this.uuid,buffer:this.array.buffer._uuid,type:this.array.constructor.name,stride:this.stride}}});var uc=new m;Object.defineProperties(Hb.prototype,{count:{get:function(){return this.data.count}},array:{get:function(){return this.data.array}},needsUpdate:{set:function(a){this.data.needsUpdate=a}}});Object.assign(Hb.prototype,{isInterleavedBufferAttribute:!0,applyMatrix4:function(a){for(var b=0,c=this.data.count;b<c;b++)uc.x=this.getX(b),uc.y=this.getY(b),uc.z=this.getZ(b),uc.applyMatrix4(a),
    700 this.setXYZ(b,uc.x,uc.y,uc.z);return this},setX:function(a,b){this.data.array[a*this.data.stride+this.offset]=b;return this},setY:function(a,b){this.data.array[a*this.data.stride+this.offset+1]=b;return this},setZ:function(a,b){this.data.array[a*this.data.stride+this.offset+2]=b;return this},setW:function(a,b){this.data.array[a*this.data.stride+this.offset+3]=b;return this},getX:function(a){return this.data.array[a*this.data.stride+this.offset]},getY:function(a){return this.data.array[a*this.data.stride+
    701 this.offset+1]},getZ:function(a){return this.data.array[a*this.data.stride+this.offset+2]},getW:function(a){return this.data.array[a*this.data.stride+this.offset+3]},setXY:function(a,b,c){a=a*this.data.stride+this.offset;this.data.array[a+0]=b;this.data.array[a+1]=c;return this},setXYZ:function(a,b,c,d){a=a*this.data.stride+this.offset;this.data.array[a+0]=b;this.data.array[a+1]=c;this.data.array[a+2]=d;return this},setXYZW:function(a,b,c,d,e){a=a*this.data.stride+this.offset;this.data.array[a+0]=
    702 b;this.data.array[a+1]=c;this.data.array[a+2]=d;this.data.array[a+3]=e;return this},clone:function(a){if(void 0===a){console.log("THREE.InterleavedBufferAttribute.clone(): Cloning an interlaved buffer attribute will deinterleave buffer data.");a=[];for(var b=0;b<this.count;b++)for(var c=b*this.data.stride+this.offset,d=0;d<this.itemSize;d++)a.push(this.data.array[c+d]);return new J(new this.array.constructor(a),this.itemSize,this.normalized)}void 0===a.interleavedBuffers&&(a.interleavedBuffers={});
    703 void 0===a.interleavedBuffers[this.data.uuid]&&(a.interleavedBuffers[this.data.uuid]=this.data.clone(a));return new Hb(a.interleavedBuffers[this.data.uuid],this.itemSize,this.offset,this.normalized)},toJSON:function(a){if(void 0===a){console.log("THREE.InterleavedBufferAttribute.toJSON(): Serializing an interlaved buffer attribute will deinterleave buffer data.");a=[];for(var b=0;b<this.count;b++)for(var c=b*this.data.stride+this.offset,d=0;d<this.itemSize;d++)a.push(this.data.array[c+d]);return{itemSize:this.itemSize,
    704 type:this.array.constructor.name,array:a,normalized:this.normalized}}void 0===a.interleavedBuffers&&(a.interleavedBuffers={});void 0===a.interleavedBuffers[this.data.uuid]&&(a.interleavedBuffers[this.data.uuid]=this.data.toJSON(a));return{isInterleavedBufferAttribute:!0,itemSize:this.itemSize,data:this.data.uuid,offset:this.offset,normalized:this.normalized}}});Ib.prototype=Object.create(L.prototype);Ib.prototype.constructor=Ib;Ib.prototype.isSpriteMaterial=!0;Ib.prototype.copy=function(a){L.prototype.copy.call(this,
    705 a);this.color.copy(a.color);this.map=a.map;this.alphaMap=a.alphaMap;this.rotation=a.rotation;this.sizeAttenuation=a.sizeAttenuation;return this};var Nc,Be=new m,xd=new m,yd=new m,Oc=new u,Pd=new u,Xh=new U,Lf=new m,Ce=new m,Mf=new m,Di=new u,jh=new u,Ei=new u;Od.prototype=Object.assign(Object.create(C.prototype),{constructor:Od,isSprite:!0,raycast:function(a,b){null===a.camera&&console.error('THREE.Sprite: "Raycaster.camera" needs to be set in order to raycast against sprites.');xd.setFromMatrixScale(this.matrixWorld);
    706 Xh.copy(a.camera.matrixWorld);this.modelViewMatrix.multiplyMatrices(a.camera.matrixWorldInverse,this.matrixWorld);yd.setFromMatrixPosition(this.modelViewMatrix);a.camera.isPerspectiveCamera&&!1===this.material.sizeAttenuation&&xd.multiplyScalar(-yd.z);var c=this.material.rotation;if(0!==c){var d=Math.cos(c);var e=Math.sin(c)}c=this.center;Qe(Lf.set(-.5,-.5,0),yd,c,xd,e,d);Qe(Ce.set(.5,-.5,0),yd,c,xd,e,d);Qe(Mf.set(.5,.5,0),yd,c,xd,e,d);Di.set(0,0);jh.set(1,0);Ei.set(1,1);var f=a.ray.intersectTriangle(Lf,
    707 Ce,Mf,!1,Be);if(null===f&&(Qe(Ce.set(-.5,.5,0),yd,c,xd,e,d),jh.set(0,1),f=a.ray.intersectTriangle(Lf,Mf,Ce,!1,Be),null===f))return;e=a.ray.origin.distanceTo(Be);e<a.near||e>a.far||b.push({distance:e,point:Be.clone(),uv:ba.getUV(Be,Lf,Ce,Mf,Di,jh,Ei,new u),face:null,object:this})},copy:function(a){C.prototype.copy.call(this,a);void 0!==a.center&&this.center.copy(a.center);this.material=a.material;return this}});var Nf=new m,Fi=new m;Qd.prototype=Object.assign(Object.create(C.prototype),{constructor:Qd,
    708 isLOD:!0,copy:function(a){C.prototype.copy.call(this,a,!1);for(var b=a.levels,c=0,d=b.length;c<d;c++){var e=b[c];this.addLevel(e.object.clone(),e.distance)}this.autoUpdate=a.autoUpdate;return this},addLevel:function(a,b){void 0===b&&(b=0);b=Math.abs(b);var c=this.levels,d;for(d=0;d<c.length&&!(b<c[d].distance);d++);c.splice(d,0,{distance:b,object:a});this.add(a);return this},getCurrentLevel:function(){return this._currentLevel},getObjectForDistance:function(a){var b=this.levels;if(0<b.length){var c;
    709 var d=1;for(c=b.length;d<c&&!(a<b[d].distance);d++);return b[d-1].object}return null},raycast:function(a,b){if(0<this.levels.length){Nf.setFromMatrixPosition(this.matrixWorld);var c=a.ray.origin.distanceTo(Nf);this.getObjectForDistance(c).raycast(a,b)}},update:function(a){var b=this.levels;if(1<b.length){Nf.setFromMatrixPosition(a.matrixWorld);Fi.setFromMatrixPosition(this.matrixWorld);a=Nf.distanceTo(Fi)/a.zoom;b[0].object.visible=!0;var c;var d=1;for(c=b.length;d<c;d++)if(a>=b[d].distance)b[d-1].object.visible=
    710 !1,b[d].object.visible=!0;else break;for(this._currentLevel=d-1;d<c;d++)b[d].object.visible=!1}},toJSON:function(a){a=C.prototype.toJSON.call(this,a);!1===this.autoUpdate&&(a.object.autoUpdate=!1);a.object.levels=[];for(var b=this.levels,c=0,d=b.length;c<d;c++){var e=b[c];a.object.levels.push({object:e.object.uuid,distance:e.distance})}return a}});Re.prototype=Object.assign(Object.create(T.prototype),{constructor:Re,isSkinnedMesh:!0,copy:function(a){T.prototype.copy.call(this,a);this.bindMode=a.bindMode;
    711 this.bindMatrix.copy(a.bindMatrix);this.bindMatrixInverse.copy(a.bindMatrixInverse);this.skeleton=a.skeleton;return this},bind:function(a,b){this.skeleton=a;void 0===b&&(this.updateMatrixWorld(!0),this.skeleton.calculateInverses(),b=this.matrixWorld);this.bindMatrix.copy(b);this.bindMatrixInverse.getInverse(b)},pose:function(){this.skeleton.pose()},normalizeSkinWeights:function(){for(var a=new S,b=this.geometry.attributes.skinWeight,c=0,d=b.count;c<d;c++){a.x=b.getX(c);a.y=b.getY(c);a.z=b.getZ(c);
    712 a.w=b.getW(c);var e=1/a.manhattanLength();Infinity!==e?a.multiplyScalar(e):a.set(1,0,0,0);b.setXYZW(c,a.x,a.y,a.z,a.w)}},updateMatrixWorld:function(a){T.prototype.updateMatrixWorld.call(this,a);"attached"===this.bindMode?this.bindMatrixInverse.getInverse(this.matrixWorld):"detached"===this.bindMode?this.bindMatrixInverse.getInverse(this.bindMatrix):console.warn("THREE.SkinnedMesh: Unrecognized bindMode: "+this.bindMode)},boneTransform:function(){var a=new m,b=new S,c=new S,d=new m,e=new U;return function(f,
    713 g){var h=this.skeleton,l=this.geometry;b.fromBufferAttribute(l.attributes.skinIndex,f);c.fromBufferAttribute(l.attributes.skinWeight,f);a.fromBufferAttribute(l.attributes.position,f).applyMatrix4(this.bindMatrix);g.set(0,0,0);for(f=0;4>f;f++)if(l=c.getComponent(f),0!==l){var k=b.getComponent(f);e.multiplyMatrices(h.bones[k].matrixWorld,h.boneInverses[k]);g.addScaledVector(d.copy(a).applyMatrix4(e),l)}return g.applyMatrix4(this.bindMatrixInverse)}}()});var Gi=new U,Tk=new U;Object.assign(Se.prototype,
    714 {calculateInverses:function(){this.boneInverses=[];for(var a=0,b=this.bones.length;a<b;a++){var c=new U;this.bones[a]&&c.getInverse(this.bones[a].matrixWorld);this.boneInverses.push(c)}},pose:function(){for(var a=0,b=this.bones.length;a<b;a++){var c=this.bones[a];c&&c.matrixWorld.getInverse(this.boneInverses[a])}a=0;for(b=this.bones.length;a<b;a++)if(c=this.bones[a])c.parent&&c.parent.isBone?(c.matrix.getInverse(c.parent.matrixWorld),c.matrix.multiply(c.matrixWorld)):c.matrix.copy(c.matrixWorld),
    715 c.matrix.decompose(c.position,c.quaternion,c.scale)},update:function(){for(var a=this.bones,b=this.boneInverses,c=this.boneMatrices,d=this.boneTexture,e=0,f=a.length;e<f;e++)Gi.multiplyMatrices(a[e]?a[e].matrixWorld:Tk,b[e]),Gi.toArray(c,16*e);void 0!==d&&(d.needsUpdate=!0)},clone:function(){return new Se(this.bones,this.boneInverses)},getBoneByName:function(a){for(var b=0,c=this.bones.length;b<c;b++){var d=this.bones[b];if(d.name===a)return d}},dispose:function(){this.boneTexture&&(this.boneTexture.dispose(),
    716 this.boneTexture=void 0)}});pg.prototype=Object.assign(Object.create(C.prototype),{constructor:pg,isBone:!0});var Hi=new U,Ii=new U,Of=[],De=new T;Te.prototype=Object.assign(Object.create(T.prototype),{constructor:Te,isInstancedMesh:!0,copy:function(a){T.prototype.copy.call(this,a);this.instanceMatrix.copy(a.instanceMatrix);this.count=a.count;return this},getMatrixAt:function(a,b){b.fromArray(this.instanceMatrix.array,16*a)},raycast:function(a,b){var c=this.matrixWorld,d=this.count;De.geometry=this.geometry;
    717 De.material=this.material;if(void 0!==De.material)for(var e=0;e<d;e++){this.getMatrixAt(e,Hi);Ii.multiplyMatrices(c,Hi);De.matrixWorld=Ii;De.raycast(a,Of);for(var f=0,g=Of.length;f<g;f++){var h=Of[f];h.instanceId=e;h.object=this;b.push(h)}Of.length=0}},setMatrixAt:function(a,b){b.toArray(this.instanceMatrix.array,16*a)},updateMorphTargets:function(){}});ja.prototype=Object.create(L.prototype);ja.prototype.constructor=ja;ja.prototype.isLineBasicMaterial=!0;ja.prototype.copy=function(a){L.prototype.copy.call(this,
    718 a);this.color.copy(a.color);this.linewidth=a.linewidth;this.linecap=a.linecap;this.linejoin=a.linejoin;this.morphTargets=a.morphTargets;return this};var Ji=new m,Ki=new m,Li=new U,Pf=new Xb,Ee=new cb;Ja.prototype=Object.assign(Object.create(C.prototype),{constructor:Ja,isLine:!0,copy:function(a){C.prototype.copy.call(this,a);this.material=a.material;this.geometry=a.geometry;return this},computeLineDistances:function(){var a=this.geometry;if(a.isBufferGeometry)if(null===a.index){for(var b=a.attributes.position,
    719 c=[0],d=1,e=b.count;d<e;d++)Ji.fromBufferAttribute(b,d-1),Ki.fromBufferAttribute(b,d),c[d]=c[d-1],c[d]+=Ji.distanceTo(Ki);a.setAttribute("lineDistance",new A(c,1))}else console.warn("THREE.Line.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.");else if(a.isGeometry)for(b=a.vertices,a=a.lineDistances,a[0]=0,c=1,d=b.length;c<d;c++)a[c]=a[c-1],a[c]+=b[c-1].distanceTo(b[c]);return this},raycast:function(a,b){var c=this.geometry,d=this.matrixWorld,e=a.params.Line.threshold;
    720 null===c.boundingSphere&&c.computeBoundingSphere();Ee.copy(c.boundingSphere);Ee.applyMatrix4(d);Ee.radius+=e;if(!1!==a.ray.intersectsSphere(Ee)){Li.getInverse(d);Pf.copy(a.ray).applyMatrix4(Li);d=e/((this.scale.x+this.scale.y+this.scale.z)/3);d*=d;var f=new m,g=new m;e=new m;var h=new m,l=this&&this.isLineSegments?2:1;if(c.isBufferGeometry){var k=c.index;c=c.attributes.position.array;if(null!==k){k=k.array;for(var q=0,p=k.length-1;q<p;q+=l){var z=k[q+1];f.fromArray(c,3*k[q]);g.fromArray(c,3*z);Pf.distanceSqToSegment(f,
    721 g,h,e)>d||(h.applyMatrix4(this.matrixWorld),z=a.ray.origin.distanceTo(h),z<a.near||z>a.far||b.push({distance:z,point:e.clone().applyMatrix4(this.matrixWorld),index:q,face:null,faceIndex:null,object:this}))}}else for(k=0,q=c.length/3-1;k<q;k+=l)f.fromArray(c,3*k),g.fromArray(c,3*k+3),Pf.distanceSqToSegment(f,g,h,e)>d||(h.applyMatrix4(this.matrixWorld),p=a.ray.origin.distanceTo(h),p<a.near||p>a.far||b.push({distance:p,point:e.clone().applyMatrix4(this.matrixWorld),index:k,face:null,faceIndex:null,object:this}))}else if(c.isGeometry)for(f=
    722 c.vertices,g=f.length,c=0;c<g-1;c+=l)Pf.distanceSqToSegment(f[c],f[c+1],h,e)>d||(h.applyMatrix4(this.matrixWorld),k=a.ray.origin.distanceTo(h),k<a.near||k>a.far||b.push({distance:k,point:e.clone().applyMatrix4(this.matrixWorld),index:c,face:null,faceIndex:null,object:this}))}},updateMorphTargets:function(){var a=this.geometry;if(a.isBufferGeometry){a=a.morphAttributes;var b=Object.keys(a);if(0<b.length&&(a=a[b[0]],void 0!==a)){this.morphTargetInfluences=[];this.morphTargetDictionary={};b=0;for(var c=
    723 a.length;b<c;b++){var d=a[b].name||String(b);this.morphTargetInfluences.push(0);this.morphTargetDictionary[d]=b}}}else a=a.morphTargets,void 0!==a&&0<a.length&&console.error("THREE.Line.updateMorphTargets() does not support THREE.Geometry. Use THREE.BufferGeometry instead.")}});var Qf=new m,Rf=new m;ea.prototype=Object.assign(Object.create(Ja.prototype),{constructor:ea,isLineSegments:!0,computeLineDistances:function(){var a=this.geometry;if(a.isBufferGeometry)if(null===a.index){for(var b=a.attributes.position,
    724 c=[],d=0,e=b.count;d<e;d+=2)Qf.fromBufferAttribute(b,d),Rf.fromBufferAttribute(b,d+1),c[d]=0===d?0:c[d-1],c[d+1]=c[d]+Qf.distanceTo(Rf);a.setAttribute("lineDistance",new A(c,1))}else console.warn("THREE.LineSegments.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.");else if(a.isGeometry)for(b=a.vertices,a=a.lineDistances,c=0,d=b.length;c<d;c+=2)Qf.copy(b[c]),Rf.copy(b[c+1]),a[c]=0===c?0:a[c-1],a[c+1]=a[c]+Qf.distanceTo(Rf);return this}});Ue.prototype=Object.assign(Object.create(Ja.prototype),
    725 {constructor:Ue,isLineLoop:!0});Va.prototype=Object.create(L.prototype);Va.prototype.constructor=Va;Va.prototype.isPointsMaterial=!0;Va.prototype.copy=function(a){L.prototype.copy.call(this,a);this.color.copy(a.color);this.map=a.map;this.alphaMap=a.alphaMap;this.size=a.size;this.sizeAttenuation=a.sizeAttenuation;this.morphTargets=a.morphTargets;return this};var Mi=new U,rg=new Xb,Fe=new cb,Sf=new m;Pc.prototype=Object.assign(Object.create(C.prototype),{constructor:Pc,isPoints:!0,copy:function(a){C.prototype.copy.call(this,
    726 a);this.material=a.material;this.geometry=a.geometry;return this},raycast:function(a,b){var c=this.geometry,d=this.matrixWorld,e=a.params.Points.threshold;null===c.boundingSphere&&c.computeBoundingSphere();Fe.copy(c.boundingSphere);Fe.applyMatrix4(d);Fe.radius+=e;if(!1!==a.ray.intersectsSphere(Fe))if(Mi.getInverse(d),rg.copy(a.ray).applyMatrix4(Mi),e/=(this.scale.x+this.scale.y+this.scale.z)/3,e*=e,c.isBufferGeometry){var f=c.index;c=c.attributes.position.array;if(null!==f){f=f.array;for(var g=0,
    727 h=f.length;g<h;g++){var l=f[g];Sf.fromArray(c,3*l);qg(Sf,l,e,d,a,b,this)}}else for(f=0,g=c.length/3;f<g;f++)Sf.fromArray(c,3*f),qg(Sf,f,e,d,a,b,this)}else for(c=c.vertices,f=0,g=c.length;f<g;f++)qg(c[f],f,e,d,a,b,this)},updateMorphTargets:function(){var a=this.geometry;if(a.isBufferGeometry){a=a.morphAttributes;var b=Object.keys(a);if(0<b.length&&(a=a[b[0]],void 0!==a)){this.morphTargetInfluences=[];this.morphTargetDictionary={};b=0;for(var c=a.length;b<c;b++){var d=a[b].name||String(b);this.morphTargetInfluences.push(0);
    728 this.morphTargetDictionary[d]=b}}}else a=a.morphTargets,void 0!==a&&0<a.length&&console.error("THREE.Points.updateMorphTargets() does not support THREE.Geometry. Use THREE.BufferGeometry instead.")}});sg.prototype=Object.assign(Object.create(V.prototype),{constructor:sg,isVideoTexture:!0,update:function(){var a=this.image;!1==="requestVideoFrameCallback"in a&&a.readyState>=a.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}});Qc.prototype=Object.create(V.prototype);Qc.prototype.constructor=Qc;Qc.prototype.isCompressedTexture=
    729 !0;Rd.prototype=Object.create(V.prototype);Rd.prototype.constructor=Rd;Rd.prototype.isCanvasTexture=!0;Sd.prototype=Object.create(V.prototype);Sd.prototype.constructor=Sd;Sd.prototype.isDepthTexture=!0;Rc.prototype=Object.create(E.prototype);Rc.prototype.constructor=Rc;Td.prototype=Object.create(F.prototype);Td.prototype.constructor=Td;Sc.prototype=Object.create(E.prototype);Sc.prototype.constructor=Sc;Ud.prototype=Object.create(F.prototype);Ud.prototype.constructor=Ud;sa.prototype=Object.create(E.prototype);
    730 sa.prototype.constructor=sa;Vd.prototype=Object.create(F.prototype);Vd.prototype.constructor=Vd;Tc.prototype=Object.create(sa.prototype);Tc.prototype.constructor=Tc;Wd.prototype=Object.create(F.prototype);Wd.prototype.constructor=Wd;ec.prototype=Object.create(sa.prototype);ec.prototype.constructor=ec;Xd.prototype=Object.create(F.prototype);Xd.prototype.constructor=Xd;Uc.prototype=Object.create(sa.prototype);Uc.prototype.constructor=Uc;Yd.prototype=Object.create(F.prototype);Yd.prototype.constructor=
    731 Yd;Vc.prototype=Object.create(sa.prototype);Vc.prototype.constructor=Vc;Zd.prototype=Object.create(F.prototype);Zd.prototype.constructor=Zd;fc.prototype=Object.create(E.prototype);fc.prototype.constructor=fc;fc.prototype.toJSON=function(){var a=E.prototype.toJSON.call(this);a.path=this.parameters.path.toJSON();return a};$d.prototype=Object.create(F.prototype);$d.prototype.constructor=$d;Wc.prototype=Object.create(E.prototype);Wc.prototype.constructor=Wc;ae.prototype=Object.create(F.prototype);ae.prototype.constructor=
    732 ae;Xc.prototype=Object.create(E.prototype);Xc.prototype.constructor=Xc;var Uk={triangulate:function(a,b,c){c=c||2;var d=b&&b.length,e=d?b[0]*c:a.length,f=Yh(a,0,e,c,!0),g=[];if(!f||f.next===f.prev)return g;var h;if(d){var l=c;d=[];var k;var q=0;for(k=b.length;q<k;q++){var p=b[q]*l;var m=q<k-1?b[q+1]*l:a.length;p=Yh(a,p,m,l,!1);p===p.next&&(p.steiner=!0);d.push(Gk(p))}d.sort(Ek);for(q=0;q<d.length;q++){l=d[q];b=f;if(b=Fk(l,b))l=ai(b,l),Jb(b,b.next),Jb(l,l.next);f=Jb(f,f.next)}}if(a.length>80*c){var r=
    733 h=a[0];var t=d=a[1];for(l=c;l<e;l+=c)q=a[l],b=a[l+1],q<r&&(r=q),b<t&&(t=b),q>h&&(h=q),b>d&&(d=b);h=Math.max(h-r,d-t);h=0!==h?1/h:0}ce(f,g,c,r,t,h);return g}},pb={area:function(a){for(var b=a.length,c=0,d=b-1,e=0;e<b;d=e++)c+=a[d].x*a[e].y-a[e].x*a[d].y;return.5*c},isClockWise:function(a){return 0>pb.area(a)},triangulateShape:function(a,b){var c=[],d=[],e=[];bi(a);ci(c,a);a=a.length;b.forEach(bi);for(var f=0;f<b.length;f++)d.push(a),a+=b[f].length,ci(c,b[f]);b=Uk.triangulate(c,d);for(c=0;c<b.length;c+=
    734 3)e.push(b.slice(c,c+3));return e}};gc.prototype=Object.create(F.prototype);gc.prototype.constructor=gc;gc.prototype.toJSON=function(){var a=F.prototype.toJSON.call(this);return di(this.parameters.shapes,this.parameters.options,a)};eb.prototype=Object.create(E.prototype);eb.prototype.constructor=eb;eb.prototype.toJSON=function(){var a=E.prototype.toJSON.call(this);return di(this.parameters.shapes,this.parameters.options,a)};var Hk={generateTopUV:function(a,b,c,d,e){a=b[3*d];d=b[3*d+1];var f=b[3*e];
    735 e=b[3*e+1];return[new u(b[3*c],b[3*c+1]),new u(a,d),new u(f,e)]},generateSideWallUV:function(a,b,c,d,e,f){a=b[3*c];var g=b[3*c+1];c=b[3*c+2];var h=b[3*d],l=b[3*d+1];d=b[3*d+2];var k=b[3*e],q=b[3*e+1];e=b[3*e+2];var p=b[3*f],m=b[3*f+1];b=b[3*f+2];return.01>Math.abs(g-l)?[new u(a,1-c),new u(h,1-d),new u(k,1-e),new u(p,1-b)]:[new u(g,1-c),new u(l,1-d),new u(q,1-e),new u(m,1-b)]}};ee.prototype=Object.create(F.prototype);ee.prototype.constructor=ee;Zc.prototype=Object.create(eb.prototype);Zc.prototype.constructor=
    736 Zc;fe.prototype=Object.create(F.prototype);fe.prototype.constructor=fe;hc.prototype=Object.create(E.prototype);hc.prototype.constructor=hc;ge.prototype=Object.create(F.prototype);ge.prototype.constructor=ge;$c.prototype=Object.create(E.prototype);$c.prototype.constructor=$c;he.prototype=Object.create(F.prototype);he.prototype.constructor=he;ad.prototype=Object.create(E.prototype);ad.prototype.constructor=ad;ic.prototype=Object.create(F.prototype);ic.prototype.constructor=ic;ic.prototype.toJSON=function(){var a=
    737 F.prototype.toJSON.call(this);return ei(this.parameters.shapes,a)};jc.prototype=Object.create(E.prototype);jc.prototype.constructor=jc;jc.prototype.toJSON=function(){var a=E.prototype.toJSON.call(this);return ei(this.parameters.shapes,a)};bd.prototype=Object.create(E.prototype);bd.prototype.constructor=bd;kc.prototype=Object.create(F.prototype);kc.prototype.constructor=kc;qb.prototype=Object.create(E.prototype);qb.prototype.constructor=qb;ie.prototype=Object.create(kc.prototype);ie.prototype.constructor=
    738 ie;je.prototype=Object.create(qb.prototype);je.prototype.constructor=je;ke.prototype=Object.create(F.prototype);ke.prototype.constructor=ke;cd.prototype=Object.create(E.prototype);cd.prototype.constructor=cd;var Da=Object.freeze({__proto__:null,WireframeGeometry:Rc,ParametricGeometry:Td,ParametricBufferGeometry:Sc,TetrahedronGeometry:Vd,TetrahedronBufferGeometry:Tc,OctahedronGeometry:Wd,OctahedronBufferGeometry:ec,IcosahedronGeometry:Xd,IcosahedronBufferGeometry:Uc,DodecahedronGeometry:Yd,DodecahedronBufferGeometry:Vc,
    739 PolyhedronGeometry:Ud,PolyhedronBufferGeometry:sa,TubeGeometry:Zd,TubeBufferGeometry:fc,TorusKnotGeometry:$d,TorusKnotBufferGeometry:Wc,TorusGeometry:ae,TorusBufferGeometry:Xc,TextGeometry:ee,TextBufferGeometry:Zc,SphereGeometry:fe,SphereBufferGeometry:hc,RingGeometry:ge,RingBufferGeometry:$c,PlaneGeometry:Id,PlaneBufferGeometry:cc,LatheGeometry:he,LatheBufferGeometry:ad,ShapeGeometry:ic,ShapeBufferGeometry:jc,ExtrudeGeometry:gc,ExtrudeBufferGeometry:eb,EdgesGeometry:bd,ConeGeometry:ie,ConeBufferGeometry:je,
    740 CylinderGeometry:kc,CylinderBufferGeometry:qb,CircleGeometry:ke,CircleBufferGeometry:cd,BoxGeometry:Gc,BoxBufferGeometry:Bb});lc.prototype=Object.create(L.prototype);lc.prototype.constructor=lc;lc.prototype.isShadowMaterial=!0;lc.prototype.copy=function(a){L.prototype.copy.call(this,a);this.color.copy(a.color);return this};rb.prototype=Object.create(ra.prototype);rb.prototype.constructor=rb;rb.prototype.isRawShaderMaterial=!0;fb.prototype=Object.create(L.prototype);fb.prototype.constructor=fb;fb.prototype.isMeshStandardMaterial=
    741 !0;fb.prototype.copy=function(a){L.prototype.copy.call(this,a);this.defines={STANDARD:""};this.color.copy(a.color);this.roughness=a.roughness;this.metalness=a.metalness;this.map=a.map;this.lightMap=a.lightMap;this.lightMapIntensity=a.lightMapIntensity;this.aoMap=a.aoMap;this.aoMapIntensity=a.aoMapIntensity;this.emissive.copy(a.emissive);this.emissiveMap=a.emissiveMap;this.emissiveIntensity=a.emissiveIntensity;this.bumpMap=a.bumpMap;this.bumpScale=a.bumpScale;this.normalMap=a.normalMap;this.normalMapType=
    742 a.normalMapType;this.normalScale.copy(a.normalScale);this.displacementMap=a.displacementMap;this.displacementScale=a.displacementScale;this.displacementBias=a.displacementBias;this.roughnessMap=a.roughnessMap;this.metalnessMap=a.metalnessMap;this.alphaMap=a.alphaMap;this.envMap=a.envMap;this.envMapIntensity=a.envMapIntensity;this.refractionRatio=a.refractionRatio;this.wireframe=a.wireframe;this.wireframeLinewidth=a.wireframeLinewidth;this.wireframeLinecap=a.wireframeLinecap;this.wireframeLinejoin=
    743 a.wireframeLinejoin;this.skinning=a.skinning;this.morphTargets=a.morphTargets;this.morphNormals=a.morphNormals;this.vertexTangents=a.vertexTangents;return this};Kb.prototype=Object.create(fb.prototype);Kb.prototype.constructor=Kb;Kb.prototype.isMeshPhysicalMaterial=!0;Kb.prototype.copy=function(a){fb.prototype.copy.call(this,a);this.defines={STANDARD:"",PHYSICAL:""};this.clearcoat=a.clearcoat;this.clearcoatMap=a.clearcoatMap;this.clearcoatRoughness=a.clearcoatRoughness;this.clearcoatRoughnessMap=
    744 a.clearcoatRoughnessMap;this.clearcoatNormalMap=a.clearcoatNormalMap;this.clearcoatNormalScale.copy(a.clearcoatNormalScale);this.reflectivity=a.reflectivity;this.sheen=a.sheen?(this.sheen||new H).copy(a.sheen):null;this.transmission=a.transmission;this.transmissionMap=a.transmissionMap;return this};Lb.prototype=Object.create(L.prototype);Lb.prototype.constructor=Lb;Lb.prototype.isMeshPhongMaterial=!0;Lb.prototype.copy=function(a){L.prototype.copy.call(this,a);this.color.copy(a.color);this.specular.copy(a.specular);
    745 this.shininess=a.shininess;this.map=a.map;this.lightMap=a.lightMap;this.lightMapIntensity=a.lightMapIntensity;this.aoMap=a.aoMap;this.aoMapIntensity=a.aoMapIntensity;this.emissive.copy(a.emissive);this.emissiveMap=a.emissiveMap;this.emissiveIntensity=a.emissiveIntensity;this.bumpMap=a.bumpMap;this.bumpScale=a.bumpScale;this.normalMap=a.normalMap;this.normalMapType=a.normalMapType;this.normalScale.copy(a.normalScale);this.displacementMap=a.displacementMap;this.displacementScale=a.displacementScale;
    746 this.displacementBias=a.displacementBias;this.specularMap=a.specularMap;this.alphaMap=a.alphaMap;this.envMap=a.envMap;this.combine=a.combine;this.reflectivity=a.reflectivity;this.refractionRatio=a.refractionRatio;this.wireframe=a.wireframe;this.wireframeLinewidth=a.wireframeLinewidth;this.wireframeLinecap=a.wireframeLinecap;this.wireframeLinejoin=a.wireframeLinejoin;this.skinning=a.skinning;this.morphTargets=a.morphTargets;this.morphNormals=a.morphNormals;return this};mc.prototype=Object.create(L.prototype);
    747 mc.prototype.constructor=mc;mc.prototype.isMeshToonMaterial=!0;mc.prototype.copy=function(a){L.prototype.copy.call(this,a);this.color.copy(a.color);this.map=a.map;this.gradientMap=a.gradientMap;this.lightMap=a.lightMap;this.lightMapIntensity=a.lightMapIntensity;this.aoMap=a.aoMap;this.aoMapIntensity=a.aoMapIntensity;this.emissive.copy(a.emissive);this.emissiveMap=a.emissiveMap;this.emissiveIntensity=a.emissiveIntensity;this.bumpMap=a.bumpMap;this.bumpScale=a.bumpScale;this.normalMap=a.normalMap;this.normalMapType=
    748 a.normalMapType;this.normalScale.copy(a.normalScale);this.displacementMap=a.displacementMap;this.displacementScale=a.displacementScale;this.displacementBias=a.displacementBias;this.alphaMap=a.alphaMap;this.wireframe=a.wireframe;this.wireframeLinewidth=a.wireframeLinewidth;this.wireframeLinecap=a.wireframeLinecap;this.wireframeLinejoin=a.wireframeLinejoin;this.skinning=a.skinning;this.morphTargets=a.morphTargets;this.morphNormals=a.morphNormals;return this};nc.prototype=Object.create(L.prototype);
    749 nc.prototype.constructor=nc;nc.prototype.isMeshNormalMaterial=!0;nc.prototype.copy=function(a){L.prototype.copy.call(this,a);this.bumpMap=a.bumpMap;this.bumpScale=a.bumpScale;this.normalMap=a.normalMap;this.normalMapType=a.normalMapType;this.normalScale.copy(a.normalScale);this.displacementMap=a.displacementMap;this.displacementScale=a.displacementScale;this.displacementBias=a.displacementBias;this.wireframe=a.wireframe;this.wireframeLinewidth=a.wireframeLinewidth;this.skinning=a.skinning;this.morphTargets=
    750 a.morphTargets;this.morphNormals=a.morphNormals;return this};oc.prototype=Object.create(L.prototype);oc.prototype.constructor=oc;oc.prototype.isMeshLambertMaterial=!0;oc.prototype.copy=function(a){L.prototype.copy.call(this,a);this.color.copy(a.color);this.map=a.map;this.lightMap=a.lightMap;this.lightMapIntensity=a.lightMapIntensity;this.aoMap=a.aoMap;this.aoMapIntensity=a.aoMapIntensity;this.emissive.copy(a.emissive);this.emissiveMap=a.emissiveMap;this.emissiveIntensity=a.emissiveIntensity;this.specularMap=
    751 a.specularMap;this.alphaMap=a.alphaMap;this.envMap=a.envMap;this.combine=a.combine;this.reflectivity=a.reflectivity;this.refractionRatio=a.refractionRatio;this.wireframe=a.wireframe;this.wireframeLinewidth=a.wireframeLinewidth;this.wireframeLinecap=a.wireframeLinecap;this.wireframeLinejoin=a.wireframeLinejoin;this.skinning=a.skinning;this.morphTargets=a.morphTargets;this.morphNormals=a.morphNormals;return this};pc.prototype=Object.create(L.prototype);pc.prototype.constructor=pc;pc.prototype.isMeshMatcapMaterial=
    752 !0;pc.prototype.copy=function(a){L.prototype.copy.call(this,a);this.defines={MATCAP:""};this.color.copy(a.color);this.matcap=a.matcap;this.map=a.map;this.bumpMap=a.bumpMap;this.bumpScale=a.bumpScale;this.normalMap=a.normalMap;this.normalMapType=a.normalMapType;this.normalScale.copy(a.normalScale);this.displacementMap=a.displacementMap;this.displacementScale=a.displacementScale;this.displacementBias=a.displacementBias;this.alphaMap=a.alphaMap;this.skinning=a.skinning;this.morphTargets=a.morphTargets;
    753 this.morphNormals=a.morphNormals;return this};qc.prototype=Object.create(ja.prototype);qc.prototype.constructor=qc;qc.prototype.isLineDashedMaterial=!0;qc.prototype.copy=function(a){ja.prototype.copy.call(this,a);this.scale=a.scale;this.dashSize=a.dashSize;this.gapSize=a.gapSize;return this};var Vk=Object.freeze({__proto__:null,ShadowMaterial:lc,SpriteMaterial:Ib,RawShaderMaterial:rb,ShaderMaterial:ra,PointsMaterial:Va,MeshPhysicalMaterial:Kb,MeshStandardMaterial:fb,MeshPhongMaterial:Lb,MeshToonMaterial:mc,
    754 MeshNormalMaterial:nc,MeshLambertMaterial:oc,MeshDepthMaterial:Db,MeshDistanceMaterial:Eb,MeshBasicMaterial:Na,MeshMatcapMaterial:pc,LineDashedMaterial:qc,LineBasicMaterial:ja,Material:L}),ka={arraySlice:function(a,b,c){return ka.isTypedArray(a)?new a.constructor(a.subarray(b,void 0!==c?c:a.length)):a.slice(b,c)},convertArray:function(a,b,c){return!a||!c&&a.constructor===b?a:"number"===typeof b.BYTES_PER_ELEMENT?new b(a):Array.prototype.slice.call(a)},isTypedArray:function(a){return ArrayBuffer.isView(a)&&
    755 !(a instanceof DataView)},getKeyframeOrder:function(a){for(var b=a.length,c=Array(b),d=0;d!==b;++d)c[d]=d;c.sort(function(b,c){return a[b]-a[c]});return c},sortedArray:function(a,b,c){for(var d=a.length,e=new a.constructor(d),f=0,g=0;g!==d;++f)for(var h=c[f]*b,l=0;l!==b;++l)e[g++]=a[h+l];return e},flattenJSON:function(a,b,c,d){for(var e=1,f=a[0];void 0!==f&&void 0===f[d];)f=a[e++];if(void 0!==f){var g=f[d];if(void 0!==g)if(Array.isArray(g)){do g=f[d],void 0!==g&&(b.push(f.time),c.push.apply(c,g)),
    756 f=a[e++];while(void 0!==f)}else if(void 0!==g.toArray){do g=f[d],void 0!==g&&(b.push(f.time),g.toArray(c,c.length)),f=a[e++];while(void 0!==f)}else{do g=f[d],void 0!==g&&(b.push(f.time),c.push(g)),f=a[e++];while(void 0!==f)}}},subclip:function(a,b,c,d,e){e=e||30;a=a.clone();a.name=b;b=[];for(var f=0;f<a.tracks.length;++f){for(var g=a.tracks[f],h=g.getValueSize(),l=[],k=[],q=0;q<g.times.length;++q){var p=g.times[q]*e;if(!(p<c||p>=d))for(l.push(g.times[q]),p=0;p<h;++p)k.push(g.values[q*h+p])}0!==l.length&&
    757 (g.times=ka.convertArray(l,g.times.constructor),g.values=ka.convertArray(k,g.values.constructor),b.push(g))}a.tracks=b;c=Infinity;for(d=0;d<a.tracks.length;++d)c>a.tracks[d].times[0]&&(c=a.tracks[d].times[0]);for(d=0;d<a.tracks.length;++d)a.tracks[d].shift(-1*c);a.resetDuration();return a},makeClipAdditive:function(a,b,c,d){void 0===b&&(b=0);void 0===c&&(c=a);if(void 0===d||0>=d)d=30;var e=a.tracks.length,f=b/d;b=function(b){var d=c.tracks[b],e=d.ValueTypeName;if("bool"!==e&&"string"!==e&&(b=a.tracks.find(function(a){return a.name===
    758 d.name&&a.ValueTypeName===e}),void 0!==b)){var g=d.getValueSize(),k=d.times.length-1,p=void 0;f<=d.times[0]?p=ka.arraySlice(d.values,0,d.valueSize):f>=d.times[k]?p=ka.arraySlice(d.values,k*g):(p=d.createInterpolant(),p.evaluate(f),p=p.resultBuffer);"quaternion"===e&&(new Y(p[0],p[1],p[2],p[3])).normalize().conjugate().toArray(p);k=b.times.length;for(var m=0;m<k;++m){var r=m*g;if("quaternion"===e)Y.multiplyQuaternionsFlat(b.values,r,p,0,b.values,r);else for(var t=0;t<g;++t)b.values[r+t]-=p[t]}}};for(d=
    759 0;d<e;++d)b(d);a.blendMode=2501;return a}};Object.assign(Ka.prototype,{evaluate:function(a){var b=this.parameterPositions,c=this._cachedIndex,d=b[c],e=b[c-1];a:{b:{c:{d:if(!(a<d)){for(var f=c+2;;){if(void 0===d){if(a<e)break d;this._cachedIndex=c=b.length;return this.afterEnd_(c-1,a,e)}if(c===f)break;e=d;d=b[++c];if(a<d)break b}d=b.length;break c}if(a>=e)break a;else{f=b[1];a<f&&(c=2,e=f);for(f=c-2;;){if(void 0===e)return this._cachedIndex=0,this.beforeStart_(0,a,d);if(c===f)break;d=e;e=b[--c-1];
    760 if(a>=e)break b}d=c;c=0}}for(;c<d;)e=c+d>>>1,a<b[e]?d=e:c=e+1;d=b[c];e=b[c-1];if(void 0===e)return this._cachedIndex=0,this.beforeStart_(0,a,d);if(void 0===d)return this._cachedIndex=c=b.length,this.afterEnd_(c-1,e,a)}this._cachedIndex=c;this.intervalChanged_(c,e,d)}return this.interpolate_(c,e,a,d)},settings:null,DefaultSettings_:{},getSettings_:function(){return this.settings||this.DefaultSettings_},copySampleValue_:function(a){var b=this.resultBuffer,c=this.sampleValues,d=this.valueSize;a*=d;for(var e=
    761 0;e!==d;++e)b[e]=c[a+e];return b},interpolate_:function(){throw Error("call to abstract method");},intervalChanged_:function(){}});Object.assign(Ka.prototype,{beforeStart_:Ka.prototype.copySampleValue_,afterEnd_:Ka.prototype.copySampleValue_});Ye.prototype=Object.assign(Object.create(Ka.prototype),{constructor:Ye,DefaultSettings_:{endingStart:2400,endingEnd:2400},intervalChanged_:function(a,b,c){var d=this.parameterPositions,e=a-2,f=a+1,g=d[e],h=d[f];if(void 0===g)switch(this.getSettings_().endingStart){case 2401:e=
    762 a;g=2*b-c;break;case 2402:e=d.length-2;g=b+d[e]-d[e+1];break;default:e=a,g=c}if(void 0===h)switch(this.getSettings_().endingEnd){case 2401:f=a;h=2*c-b;break;case 2402:f=1;h=c+d[1]-d[0];break;default:f=a-1,h=b}a=.5*(c-b);d=this.valueSize;this._weightPrev=a/(b-g);this._weightNext=a/(h-c);this._offsetPrev=e*d;this._offsetNext=f*d},interpolate_:function(a,b,c,d){var e=this.resultBuffer,f=this.sampleValues,g=this.valueSize;a*=g;var h=a-g,k=this._offsetPrev,n=this._offsetNext,m=this._weightPrev,p=this._weightNext,
    763 z=(c-b)/(d-b);c=z*z;d=c*z;b=-m*d+2*m*c-m*z;m=(1+m)*d+(-1.5-2*m)*c+(-.5+m)*z+1;z=(-1-p)*d+(1.5+p)*c+.5*z;p=p*d-p*c;for(c=0;c!==g;++c)e[c]=b*f[k+c]+m*f[h+c]+z*f[a+c]+p*f[n+c];return e}});le.prototype=Object.assign(Object.create(Ka.prototype),{constructor:le,interpolate_:function(a,b,c,d){var e=this.resultBuffer,f=this.sampleValues,g=this.valueSize;a*=g;var h=a-g;b=(c-b)/(d-b);c=1-b;for(d=0;d!==g;++d)e[d]=f[h+d]*c+f[a+d]*b;return e}});Ze.prototype=Object.assign(Object.create(Ka.prototype),{constructor:Ze,
    764 interpolate_:function(a){return this.copySampleValue_(a-1)}});Object.assign(ya,{toJSON:function(a){var b=a.constructor;if(void 0!==b.toJSON)b=b.toJSON(a);else{b={name:a.name,times:ka.convertArray(a.times,Array),values:ka.convertArray(a.values,Array)};var c=a.getInterpolation();c!==a.DefaultInterpolation&&(b.interpolation=c)}b.type=a.ValueTypeName;return b}});Object.assign(ya.prototype,{constructor:ya,TimeBufferType:Float32Array,ValueBufferType:Float32Array,DefaultInterpolation:2301,InterpolantFactoryMethodDiscrete:function(a){return new Ze(this.times,
    765 this.values,this.getValueSize(),a)},InterpolantFactoryMethodLinear:function(a){return new le(this.times,this.values,this.getValueSize(),a)},InterpolantFactoryMethodSmooth:function(a){return new Ye(this.times,this.values,this.getValueSize(),a)},setInterpolation:function(a){switch(a){case 2300:var b=this.InterpolantFactoryMethodDiscrete;break;case 2301:b=this.InterpolantFactoryMethodLinear;break;case 2302:b=this.InterpolantFactoryMethodSmooth}if(void 0===b){b="unsupported interpolation for "+this.ValueTypeName+
    766 " keyframe track named "+this.name;if(void 0===this.createInterpolant)if(a!==this.DefaultInterpolation)this.setInterpolation(this.DefaultInterpolation);else throw Error(b);console.warn("THREE.KeyframeTrack:",b);return this}this.createInterpolant=b;return this},getInterpolation:function(){switch(this.createInterpolant){case this.InterpolantFactoryMethodDiscrete:return 2300;case this.InterpolantFactoryMethodLinear:return 2301;case this.InterpolantFactoryMethodSmooth:return 2302}},getValueSize:function(){return this.values.length/
    767 this.times.length},shift:function(a){if(0!==a)for(var b=this.times,c=0,d=b.length;c!==d;++c)b[c]+=a;return this},scale:function(a){if(1!==a)for(var b=this.times,c=0,d=b.length;c!==d;++c)b[c]*=a;return this},trim:function(a,b){for(var c=this.times,d=c.length,e=0,f=d-1;e!==d&&c[e]<a;)++e;for(;-1!==f&&c[f]>b;)--f;++f;if(0!==e||f!==d)e>=f&&(f=Math.max(f,1),e=f-1),a=this.getValueSize(),this.times=ka.arraySlice(c,e,f),this.values=ka.arraySlice(this.values,e*a,f*a);return this},validate:function(){var a=
    768 !0,b=this.getValueSize();0!==b-Math.floor(b)&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),a=!1);var c=this.times;b=this.values;var d=c.length;0===d&&(console.error("THREE.KeyframeTrack: Track is empty.",this),a=!1);for(var e=null,f=0;f!==d;f++){var g=c[f];if("number"===typeof g&&isNaN(g)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,f,g);a=!1;break}if(null!==e&&e>g){console.error("THREE.KeyframeTrack: Out of order keys.",this,f,g,e);a=!1;break}e=
    769 g}if(void 0!==b&&ka.isTypedArray(b))for(c=0,d=b.length;c!==d;++c)if(e=b[c],isNaN(e)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,c,e);a=!1;break}return a},optimize:function(){for(var a=ka.arraySlice(this.times),b=ka.arraySlice(this.values),c=this.getValueSize(),d=2302===this.getInterpolation(),e=a.length-1,f=1,g=1;g<e;++g){var h=!1,k=a[g];if(k!==a[g+1]&&(1!==g||k!==k[0]))if(d)h=!0;else{k=g*c;for(var n=k-c,m=k+c,p=0;p!==c;++p){var z=b[k+p];if(z!==b[n+p]||z!==b[m+p]){h=!0;
    770 break}}}if(h){if(g!==f)for(a[f]=a[g],h=g*c,k=f*c,n=0;n!==c;++n)b[k+n]=b[h+n];++f}}if(0<e){a[f]=a[e];d=e*c;e=f*c;for(g=0;g!==c;++g)b[e+g]=b[d+g];++f}f!==a.length?(this.times=ka.arraySlice(a,0,f),this.values=ka.arraySlice(b,0,f*c)):(this.times=a,this.values=b);return this},clone:function(){var a=ka.arraySlice(this.times,0),b=ka.arraySlice(this.values,0);a=new this.constructor(this.name,a,b);a.createInterpolant=this.createInterpolant;return a}});$e.prototype=Object.assign(Object.create(ya.prototype),
    771 {constructor:$e,ValueTypeName:"bool",ValueBufferType:Array,DefaultInterpolation:2300,InterpolantFactoryMethodLinear:void 0,InterpolantFactoryMethodSmooth:void 0});af.prototype=Object.assign(Object.create(ya.prototype),{constructor:af,ValueTypeName:"color"});dd.prototype=Object.assign(Object.create(ya.prototype),{constructor:dd,ValueTypeName:"number"});bf.prototype=Object.assign(Object.create(Ka.prototype),{constructor:bf,interpolate_:function(a,b,c,d){var e=this.resultBuffer,f=this.sampleValues,g=
    772 this.valueSize;b=(c-b)/(d-b);a*=g;for(c=a+g;a!==c;a+=4)Y.slerpFlat(e,0,f,a-g,f,a,b);return e}});me.prototype=Object.assign(Object.create(ya.prototype),{constructor:me,ValueTypeName:"quaternion",DefaultInterpolation:2301,InterpolantFactoryMethodLinear:function(a){return new bf(this.times,this.values,this.getValueSize(),a)},InterpolantFactoryMethodSmooth:void 0});cf.prototype=Object.assign(Object.create(ya.prototype),{constructor:cf,ValueTypeName:"string",ValueBufferType:Array,DefaultInterpolation:2300,
    773 InterpolantFactoryMethodLinear:void 0,InterpolantFactoryMethodSmooth:void 0});ed.prototype=Object.assign(Object.create(ya.prototype),{constructor:ed,ValueTypeName:"vector"});Object.assign(Pa,{parse:function(a){for(var b=[],c=a.tracks,d=1/(a.fps||1),e=0,f=c.length;e!==f;++e)b.push(Jk(c[e]).scale(d));return new Pa(a.name,a.duration,b,a.blendMode)},toJSON:function(a){var b=[],c=a.tracks;a={name:a.name,duration:a.duration,tracks:b,uuid:a.uuid,blendMode:a.blendMode};for(var d=0,e=c.length;d!==e;++d)b.push(ya.toJSON(c[d]));
    774 return a},CreateFromMorphTargetSequence:function(a,b,c,d){for(var e=b.length,f=[],g=0;g<e;g++){var h=[],k=[];h.push((g+e-1)%e,g,(g+1)%e);k.push(0,1,0);var n=ka.getKeyframeOrder(h);h=ka.sortedArray(h,1,n);k=ka.sortedArray(k,1,n);d||0!==h[0]||(h.push(e),k.push(k[0]));f.push((new dd(".morphTargetInfluences["+b[g].name+"]",h,k)).scale(1/c))}return new Pa(a,-1,f)},findByName:function(a,b){var c=a;Array.isArray(a)||(c=a.geometry&&a.geometry.animations||a.animations);for(a=0;a<c.length;a++)if(c[a].name===
    775 b)return c[a];return null},CreateClipsFromMorphTargetSequences:function(a,b,c){for(var d={},e=/^([w-]*?)([d]+)$/,f=0,g=a.length;f<g;f++){var h=a[f],k=h.name.match(e);if(k&&1<k.length){k=k[1];var n=d[k];n||(d[k]=n=[]);n.push(h)}}a=[];for(var m in d)a.push(Pa.CreateFromMorphTargetSequence(m,d[m],b,c));return a},parseAnimation:function(a,b){if(!a)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;var c=function(a,b,c,d,e){if(0!==c.length){var f=[],g=[];ka.flattenJSON(c,
    776 f,g,d);0!==f.length&&e.push(new a(b,f,g))}},d=[],e=a.name||"default",f=a.fps||30,g=a.blendMode,h=a.length||-1;a=a.hierarchy||[];for(var k=0;k<a.length;k++){var n=a[k].keys;if(n&&0!==n.length)if(n[0].morphTargets){h={};var m=void 0;for(m=0;m<n.length;m++)if(n[m].morphTargets)for(var p=0;p<n[m].morphTargets.length;p++)h[n[m].morphTargets[p]]=-1;for(var z in h){p=[];for(var r=[],t=0;t!==n[m].morphTargets.length;++t){var v=n[m];p.push(v.time);r.push(v.morphTarget===z?1:0)}d.push(new dd(".morphTargetInfluence["+
    777 z+"]",p,r))}h=h.length*(f||1)}else m=".bones["+b[k].name+"]",c(ed,m+".position",n,"pos",d),c(me,m+".quaternion",n,"rot",d),c(ed,m+".scale",n,"scl",d)}return 0===d.length?null:new Pa(e,h,d,g)}});Object.assign(Pa.prototype,{resetDuration:function(){for(var a=0,b=0,c=this.tracks.length;b!==c;++b){var d=this.tracks[b];a=Math.max(a,d.times[d.times.length-1])}this.duration=a;return this},trim:function(){for(var a=0;a<this.tracks.length;a++)this.tracks[a].trim(0,this.duration);return this},validate:function(){for(var a=
    778 !0,b=0;b<this.tracks.length;b++)a=a&&this.tracks[b].validate();return a},optimize:function(){for(var a=0;a<this.tracks.length;a++)this.tracks[a].optimize();return this},clone:function(){for(var a=[],b=0;b<this.tracks.length;b++)a.push(this.tracks[b].clone());return new Pa(this.name,this.duration,a,this.blendMode)}});var vc={enabled:!1,files:{},add:function(a,b){!1!==this.enabled&&(this.files[a]=b)},get:function(a){if(!1!==this.enabled)return this.files[a]},remove:function(a){delete this.files[a]},
    779 clear:function(){this.files={}}},fi=new vg;Object.assign(X.prototype,{load:function(){},loadAsync:function(a,b){var c=this;return new Promise(function(d,e){c.load(a,d,b,e)})},parse:function(){},setCrossOrigin:function(a){this.crossOrigin=a;return this},setPath:function(a){this.path=a;return this},setResourcePath:function(a){this.resourcePath=a;return this},setRequestHeader:function(a){this.requestHeader=a;return this}});var bb={};Qa.prototype=Object.assign(Object.create(X.prototype),{constructor:Qa,
    780 load:function(a,b,c,d){void 0===a&&(a="");void 0!==this.path&&(a=this.path+a);a=this.manager.resolveURL(a);var e=this,f=vc.get(a);if(void 0!==f)return e.manager.itemStart(a),setTimeout(function(){b&&b(f);e.manager.itemEnd(a)},0),f;if(void 0!==bb[a])bb[a].push({onLoad:b,onProgress:c,onError:d});else{var g=a.match(/^data:(.*?)(;base64)?,(.*)$/);if(g){c=g[1];var h=!!g[2];g=g[3];g=decodeURIComponent(g);h&&(g=atob(g));try{var k=(this.responseType||"").toLowerCase();switch(k){case "arraybuffer":case "blob":var n=
    781 new Uint8Array(g.length);for(h=0;h<g.length;h++)n[h]=g.charCodeAt(h);var m="blob"===k?new Blob([n.buffer],{type:c}):n.buffer;break;case "document":m=(new DOMParser).parseFromString(g,c);break;case "json":m=JSON.parse(g);break;default:m=g}setTimeout(function(){b&&b(m);e.manager.itemEnd(a)},0)}catch(z){setTimeout(function(){d&&d(z);e.manager.itemError(a);e.manager.itemEnd(a)},0)}}else{bb[a]=[];bb[a].push({onLoad:b,onProgress:c,onError:d});var p=new XMLHttpRequest;p.open("GET",a,!0);p.addEventListener("load",
    782 function(b){var c=this.response,d=bb[a];delete bb[a];if(200===this.status||0===this.status){0===this.status&&console.warn("THREE.FileLoader: HTTP Status 0 received.");vc.add(a,c);b=0;for(var f=d.length;b<f;b++){var g=d[b];if(g.onLoad)g.onLoad(c)}}else{c=0;for(f=d.length;c<f;c++)if(g=d[c],g.onError)g.onError(b);e.manager.itemError(a)}e.manager.itemEnd(a)},!1);p.addEventListener("progress",function(b){for(var c=bb[a],d=0,e=c.length;d<e;d++){var f=c[d];if(f.onProgress)f.onProgress(b)}},!1);p.addEventListener("error",
    783 function(b){var c=bb[a];delete bb[a];for(var d=0,f=c.length;d<f;d++){var g=c[d];if(g.onError)g.onError(b)}e.manager.itemError(a);e.manager.itemEnd(a)},!1);p.addEventListener("abort",function(b){var c=bb[a];delete bb[a];for(var d=0,f=c.length;d<f;d++){var g=c[d];if(g.onError)g.onError(b)}e.manager.itemError(a);e.manager.itemEnd(a)},!1);void 0!==this.responseType&&(p.responseType=this.responseType);void 0!==this.withCredentials&&(p.withCredentials=this.withCredentials);p.overrideMimeType&&p.overrideMimeType(void 0!==
    784 this.mimeType?this.mimeType:"text/plain");for(h in this.requestHeader)p.setRequestHeader(h,this.requestHeader[h]);p.send(null)}e.manager.itemStart(a);return p}},setResponseType:function(a){this.responseType=a;return this},setWithCredentials:function(a){this.withCredentials=a;return this},setMimeType:function(a){this.mimeType=a;return this}});wg.prototype=Object.assign(Object.create(X.prototype),{constructor:wg,load:function(a,b,c,d){var e=this,f=new Qa(e.manager);f.setPath(e.path);f.setRequestHeader(e.requestHeader);
    785 f.load(a,function(c){try{b(e.parse(JSON.parse(c)))}catch(h){d?d(h):console.error(h),e.manager.itemError(a)}},c,d)},parse:function(a){for(var b=[],c=0;c<a.length;c++){var d=Pa.parse(a[c]);b.push(d)}return b}});xg.prototype=Object.assign(Object.create(X.prototype),{constructor:xg,load:function(a,b,c,d){function e(e){k.load(a[e],function(a){a=f.parse(a,!0);g[e]={width:a.width,height:a.height,format:a.format,mipmaps:a.mipmaps};n+=1;6===n&&(1===a.mipmapCount&&(h.minFilter=1006),h.format=a.format,h.needsUpdate=
    786 !0,b&&b(h))},c,d)}var f=this,g=[],h=new Qc;h.image=g;var k=new Qa(this.manager);k.setPath(this.path);k.setResponseType("arraybuffer");k.setRequestHeader(this.requestHeader);var n=0;if(Array.isArray(a))for(var m=0,p=a.length;m<p;++m)e(m);else k.load(a,function(a){a=f.parse(a,!0);if(a.isCubemap)for(var c=a.mipmaps.length/a.mipmapCount,d=0;d<c;d++){g[d]={mipmaps:[]};for(var e=0;e<a.mipmapCount;e++)g[d].mipmaps.push(a.mipmaps[d*a.mipmapCount+e]),g[d].format=a.format,g[d].width=a.width,g[d].height=a.height}else h.image.width=
    787 a.width,h.image.height=a.height,h.mipmaps=a.mipmaps;1===a.mipmapCount&&(h.minFilter=1006);h.format=a.format;h.needsUpdate=!0;b&&b(h)},c,d);return h}});df.prototype=Object.assign(Object.create(X.prototype),{constructor:df,load:function(a,b,c,d){var e=this,f=new bc,g=new Qa(this.manager);g.setResponseType("arraybuffer");g.setRequestHeader(this.requestHeader);g.setPath(this.path);g.load(a,function(a){if(a=e.parse(a))void 0!==a.image?f.image=a.image:void 0!==a.data&&(f.image.width=a.width,f.image.height=
    788 a.height,f.image.data=a.data),f.wrapS=void 0!==a.wrapS?a.wrapS:1001,f.wrapT=void 0!==a.wrapT?a.wrapT:1001,f.magFilter=void 0!==a.magFilter?a.magFilter:1006,f.minFilter=void 0!==a.minFilter?a.minFilter:1006,f.anisotropy=void 0!==a.anisotropy?a.anisotropy:1,void 0!==a.format&&(f.format=a.format),void 0!==a.type&&(f.type=a.type),void 0!==a.mipmaps&&(f.mipmaps=a.mipmaps,f.minFilter=1008),1===a.mipmapCount&&(f.minFilter=1006),f.needsUpdate=!0,b&&b(f,a)},c,d);return f}});fd.prototype=Object.assign(Object.create(X.prototype),
    789 {constructor:fd,load:function(a,b,c,d){function e(){k.removeEventListener("load",e,!1);k.removeEventListener("error",f,!1);vc.add(a,this);b&&b(this);g.manager.itemEnd(a)}function f(b){k.removeEventListener("load",e,!1);k.removeEventListener("error",f,!1);d&&d(b);g.manager.itemError(a);g.manager.itemEnd(a)}void 0!==this.path&&(a=this.path+a);a=this.manager.resolveURL(a);var g=this,h=vc.get(a);if(void 0!==h)return g.manager.itemStart(a),setTimeout(function(){b&&b(h);g.manager.itemEnd(a)},0),h;var k=
    790 document.createElementNS("http://www.w3.org/1999/xhtml","img");k.addEventListener("load",e,!1);k.addEventListener("error",f,!1);"data:"!==a.substr(0,5)&&void 0!==this.crossOrigin&&(k.crossOrigin=this.crossOrigin);g.manager.itemStart(a);k.src=a;return k}});ef.prototype=Object.assign(Object.create(X.prototype),{constructor:ef,load:function(a,b,c,d){function e(c){g.load(a[c],function(a){f.images[c]=a;h++;6===h&&(f.needsUpdate=!0,b&&b(f))},void 0,d)}var f=new ob,g=new fd(this.manager);g.setCrossOrigin(this.crossOrigin);
    791 g.setPath(this.path);var h=0;for(c=0;c<a.length;++c)e(c);return f}});ff.prototype=Object.assign(Object.create(X.prototype),{constructor:ff,load:function(a,b,c,d){var e=new V,f=new fd(this.manager);f.setCrossOrigin(this.crossOrigin);f.setPath(this.path);f.load(a,function(c){e.image=c;c=0<a.search(/.jpe?g($|?)/i)||0===a.search(/^data:image/jpeg/);e.format=c?1022:1023;e.needsUpdate=!0;void 0!==b&&b(e)},c,d);return e}});Object.assign(K.prototype,{getPoint:function(){console.warn("THREE.Curve: .getPoint() not implemented.");
    792 return null},getPointAt:function(a,b){a=this.getUtoTmapping(a);return this.getPoint(a,b)},getPoints:function(a){void 0===a&&(a=5);for(var b=[],c=0;c<=a;c++)b.push(this.getPoint(c/a));return b},getSpacedPoints:function(a){void 0===a&&(a=5);for(var b=[],c=0;c<=a;c++)b.push(this.getPointAt(c/a));return b},getLength:function(){var a=this.getLengths();return a[a.length-1]},getLengths:function(a){void 0===a&&(a=this.arcLengthDivisions);if(this.cacheArcLengths&&this.cacheArcLengths.length===a+1&&!this.needsUpdate)return this.cacheArcLengths;
    793 this.needsUpdate=!1;var b=[],c=this.getPoint(0),d=0;b.push(0);for(var e=1;e<=a;e++){var f=this.getPoint(e/a);d+=f.distanceTo(c);b.push(d);c=f}return this.cacheArcLengths=b},updateArcLengths:function(){this.needsUpdate=!0;this.getLengths()},getUtoTmapping:function(a,b){var c=this.getLengths(),d=c.length;b=b?b:a*c[d-1];for(var e=0,f=d-1,g;e<=f;)if(a=Math.floor(e+(f-e)/2),g=c[a]-b,0>g)e=a+1;else if(0<g)f=a-1;else{f=a;break}a=f;if(c[a]===b)return a/(d-1);e=c[a];return(a+(b-e)/(c[a+1]-e))/(d-1)},getTangent:function(a,
    794 b){var c=a-1E-4;a+=1E-4;0>c&&(c=0);1<a&&(a=1);c=this.getPoint(c);a=this.getPoint(a);b=b||(c.isVector2?new u:new m);b.copy(a).sub(c).normalize();return b},getTangentAt:function(a,b){a=this.getUtoTmapping(a);return this.getTangent(a,b)},computeFrenetFrames:function(a,b){for(var c=new m,d=[],e=[],f=[],g=new m,h=new U,k=0;k<=a;k++)d[k]=this.getTangentAt(k/a,new m),d[k].normalize();e[0]=new m;f[0]=new m;k=Number.MAX_VALUE;var n=Math.abs(d[0].x),q=Math.abs(d[0].y),p=Math.abs(d[0].z);n<=k&&(k=n,c.set(1,
    795 0,0));q<=k&&(k=q,c.set(0,1,0));p<=k&&c.set(0,0,1);g.crossVectors(d[0],c).normalize();e[0].crossVectors(d[0],g);f[0].crossVectors(d[0],e[0]);for(c=1;c<=a;c++)e[c]=e[c-1].clone(),f[c]=f[c-1].clone(),g.crossVectors(d[c-1],d[c]),g.length()>Number.EPSILON&&(g.normalize(),k=Math.acos(P.clamp(d[c-1].dot(d[c]),-1,1)),e[c].applyMatrix4(h.makeRotationAxis(g,k))),f[c].crossVectors(d[c],e[c]);if(!0===b)for(b=Math.acos(P.clamp(e[0].dot(e[a]),-1,1)),b/=a,0<d[0].dot(g.crossVectors(e[0],e[a]))&&(b=-b),g=1;g<=a;g++)e[g].applyMatrix4(h.makeRotationAxis(d[g],
    796 b*g)),f[g].crossVectors(d[g],e[g]);return{tangents:d,normals:e,binormals:f}},clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.arcLengthDivisions=a.arcLengthDivisions;return this},toJSON:function(){var a={metadata:{version:4.5,type:"Curve",generator:"Curve.toJSON"}};a.arcLengthDivisions=this.arcLengthDivisions;a.type=this.type;return a},fromJSON:function(a){this.arcLengthDivisions=a.arcLengthDivisions;return this}});La.prototype=Object.create(K.prototype);La.prototype.constructor=
    797 La;La.prototype.isEllipseCurve=!0;La.prototype.getPoint=function(a,b){b=b||new u;for(var c=2*Math.PI,d=this.aEndAngle-this.aStartAngle,e=Math.abs(d)<Number.EPSILON;0>d;)d+=c;for(;d>c;)d-=c;d<Number.EPSILON&&(d=e?0:c);!0!==this.aClockwise||e||(d=d===c?-c:d-c);c=this.aStartAngle+a*d;a=this.aX+this.xRadius*Math.cos(c);var f=this.aY+this.yRadius*Math.sin(c);0!==this.aRotation&&(c=Math.cos(this.aRotation),d=Math.sin(this.aRotation),e=a-this.aX,f-=this.aY,a=e*c-f*d+this.aX,f=e*d+f*c+this.aY);return b.set(a,
    798 f)};La.prototype.copy=function(a){K.prototype.copy.call(this,a);this.aX=a.aX;this.aY=a.aY;this.xRadius=a.xRadius;this.yRadius=a.yRadius;this.aStartAngle=a.aStartAngle;this.aEndAngle=a.aEndAngle;this.aClockwise=a.aClockwise;this.aRotation=a.aRotation;return this};La.prototype.toJSON=function(){var a=K.prototype.toJSON.call(this);a.aX=this.aX;a.aY=this.aY;a.xRadius=this.xRadius;a.yRadius=this.yRadius;a.aStartAngle=this.aStartAngle;a.aEndAngle=this.aEndAngle;a.aClockwise=this.aClockwise;a.aRotation=
    799 this.aRotation;return a};La.prototype.fromJSON=function(a){K.prototype.fromJSON.call(this,a);this.aX=a.aX;this.aY=a.aY;this.xRadius=a.xRadius;this.yRadius=a.yRadius;this.aStartAngle=a.aStartAngle;this.aEndAngle=a.aEndAngle;this.aClockwise=a.aClockwise;this.aRotation=a.aRotation;return this};gd.prototype=Object.create(La.prototype);gd.prototype.constructor=gd;gd.prototype.isArcCurve=!0;var Tf=new m,kh=new yg,lh=new yg,mh=new yg;za.prototype=Object.create(K.prototype);za.prototype.constructor=za;za.prototype.isCatmullRomCurve3=
    800 !0;za.prototype.getPoint=function(a,b){b=b||new m;var c=this.points,d=c.length;a*=d-(this.closed?0:1);var e=Math.floor(a);a-=e;this.closed?e+=0<e?0:(Math.floor(Math.abs(e)/d)+1)*d:0===a&&e===d-1&&(e=d-2,a=1);if(this.closed||0<e)var f=c[(e-1)%d];else Tf.subVectors(c[0],c[1]).add(c[0]),f=Tf;var g=c[e%d];var h=c[(e+1)%d];this.closed||e+2<d?c=c[(e+2)%d]:(Tf.subVectors(c[d-1],c[d-2]).add(c[d-1]),c=Tf);if("centripetal"===this.curveType||"chordal"===this.curveType){var k="chordal"===this.curveType?.5:.25;
    801 d=Math.pow(f.distanceToSquared(g),k);e=Math.pow(g.distanceToSquared(h),k);k=Math.pow(h.distanceToSquared(c),k);1E-4>e&&(e=1);1E-4>d&&(d=e);1E-4>k&&(k=e);kh.initNonuniformCatmullRom(f.x,g.x,h.x,c.x,d,e,k);lh.initNonuniformCatmullRom(f.y,g.y,h.y,c.y,d,e,k);mh.initNonuniformCatmullRom(f.z,g.z,h.z,c.z,d,e,k)}else"catmullrom"===this.curveType&&(kh.initCatmullRom(f.x,g.x,h.x,c.x,this.tension),lh.initCatmullRom(f.y,g.y,h.y,c.y,this.tension),mh.initCatmullRom(f.z,g.z,h.z,c.z,this.tension));b.set(kh.calc(a),
    802 lh.calc(a),mh.calc(a));return b};za.prototype.copy=function(a){K.prototype.copy.call(this,a);this.points=[];for(var b=0,c=a.points.length;b<c;b++)this.points.push(a.points[b].clone());this.closed=a.closed;this.curveType=a.curveType;this.tension=a.tension;return this};za.prototype.toJSON=function(){var a=K.prototype.toJSON.call(this);a.points=[];for(var b=0,c=this.points.length;b<c;b++)a.points.push(this.points[b].toArray());a.closed=this.closed;a.curveType=this.curveType;a.tension=this.tension;return a};
    803 za.prototype.fromJSON=function(a){K.prototype.fromJSON.call(this,a);this.points=[];for(var b=0,c=a.points.length;b<c;b++){var d=a.points[b];this.points.push((new m).fromArray(d))}this.closed=a.closed;this.curveType=a.curveType;this.tension=a.tension;return this};Wa.prototype=Object.create(K.prototype);Wa.prototype.constructor=Wa;Wa.prototype.isCubicBezierCurve=!0;Wa.prototype.getPoint=function(a,b){b=b||new u;var c=this.v0,d=this.v1,e=this.v2,f=this.v3;b.set(oe(a,c.x,d.x,e.x,f.x),oe(a,c.y,d.y,e.y,
    804 f.y));return b};Wa.prototype.copy=function(a){K.prototype.copy.call(this,a);this.v0.copy(a.v0);this.v1.copy(a.v1);this.v2.copy(a.v2);this.v3.copy(a.v3);return this};Wa.prototype.toJSON=function(){var a=K.prototype.toJSON.call(this);a.v0=this.v0.toArray();a.v1=this.v1.toArray();a.v2=this.v2.toArray();a.v3=this.v3.toArray();return a};Wa.prototype.fromJSON=function(a){K.prototype.fromJSON.call(this,a);this.v0.fromArray(a.v0);this.v1.fromArray(a.v1);this.v2.fromArray(a.v2);this.v3.fromArray(a.v3);return this};
    805 gb.prototype=Object.create(K.prototype);gb.prototype.constructor=gb;gb.prototype.isCubicBezierCurve3=!0;gb.prototype.getPoint=function(a,b){b=b||new m;var c=this.v0,d=this.v1,e=this.v2,f=this.v3;b.set(oe(a,c.x,d.x,e.x,f.x),oe(a,c.y,d.y,e.y,f.y),oe(a,c.z,d.z,e.z,f.z));return b};gb.prototype.copy=function(a){K.prototype.copy.call(this,a);this.v0.copy(a.v0);this.v1.copy(a.v1);this.v2.copy(a.v2);this.v3.copy(a.v3);return this};gb.prototype.toJSON=function(){var a=K.prototype.toJSON.call(this);a.v0=this.v0.toArray();
    806 a.v1=this.v1.toArray();a.v2=this.v2.toArray();a.v3=this.v3.toArray();return a};gb.prototype.fromJSON=function(a){K.prototype.fromJSON.call(this,a);this.v0.fromArray(a.v0);this.v1.fromArray(a.v1);this.v2.fromArray(a.v2);this.v3.fromArray(a.v3);return this};ia.prototype=Object.create(K.prototype);ia.prototype.constructor=ia;ia.prototype.isLineCurve=!0;ia.prototype.getPoint=function(a,b){b=b||new u;1===a?b.copy(this.v2):(b.copy(this.v2).sub(this.v1),b.multiplyScalar(a).add(this.v1));return b};ia.prototype.getPointAt=
    807 function(a,b){return this.getPoint(a,b)};ia.prototype.getTangent=function(a,b){a=b||new u;a.copy(this.v2).sub(this.v1).normalize();return a};ia.prototype.copy=function(a){K.prototype.copy.call(this,a);this.v1.copy(a.v1);this.v2.copy(a.v2);return this};ia.prototype.toJSON=function(){var a=K.prototype.toJSON.call(this);a.v1=this.v1.toArray();a.v2=this.v2.toArray();return a};ia.prototype.fromJSON=function(a){K.prototype.fromJSON.call(this,a);this.v1.fromArray(a.v1);this.v2.fromArray(a.v2);return this};
    808 Xa.prototype=Object.create(K.prototype);Xa.prototype.constructor=Xa;Xa.prototype.isLineCurve3=!0;Xa.prototype.getPoint=function(a,b){b=b||new m;1===a?b.copy(this.v2):(b.copy(this.v2).sub(this.v1),b.multiplyScalar(a).add(this.v1));return b};Xa.prototype.getPointAt=function(a,b){return this.getPoint(a,b)};Xa.prototype.copy=function(a){K.prototype.copy.call(this,a);this.v1.copy(a.v1);this.v2.copy(a.v2);return this};Xa.prototype.toJSON=function(){var a=K.prototype.toJSON.call(this);a.v1=this.v1.toArray();
    809 a.v2=this.v2.toArray();return a};Xa.prototype.fromJSON=function(a){K.prototype.fromJSON.call(this,a);this.v1.fromArray(a.v1);this.v2.fromArray(a.v2);return this};Ya.prototype=Object.create(K.prototype);Ya.prototype.constructor=Ya;Ya.prototype.isQuadraticBezierCurve=!0;Ya.prototype.getPoint=function(a,b){b=b||new u;var c=this.v0,d=this.v1,e=this.v2;b.set(ne(a,c.x,d.x,e.x),ne(a,c.y,d.y,e.y));return b};Ya.prototype.copy=function(a){K.prototype.copy.call(this,a);this.v0.copy(a.v0);this.v1.copy(a.v1);
    810 this.v2.copy(a.v2);return this};Ya.prototype.toJSON=function(){var a=K.prototype.toJSON.call(this);a.v0=this.v0.toArray();a.v1=this.v1.toArray();a.v2=this.v2.toArray();return a};Ya.prototype.fromJSON=function(a){K.prototype.fromJSON.call(this,a);this.v0.fromArray(a.v0);this.v1.fromArray(a.v1);this.v2.fromArray(a.v2);return this};hb.prototype=Object.create(K.prototype);hb.prototype.constructor=hb;hb.prototype.isQuadraticBezierCurve3=!0;hb.prototype.getPoint=function(a,b){b=b||new m;var c=this.v0,d=
    811 this.v1,e=this.v2;b.set(ne(a,c.x,d.x,e.x),ne(a,c.y,d.y,e.y),ne(a,c.z,d.z,e.z));return b};hb.prototype.copy=function(a){K.prototype.copy.call(this,a);this.v0.copy(a.v0);this.v1.copy(a.v1);this.v2.copy(a.v2);return this};hb.prototype.toJSON=function(){var a=K.prototype.toJSON.call(this);a.v0=this.v0.toArray();a.v1=this.v1.toArray();a.v2=this.v2.toArray();return a};hb.prototype.fromJSON=function(a){K.prototype.fromJSON.call(this,a);this.v0.fromArray(a.v0);this.v1.fromArray(a.v1);this.v2.fromArray(a.v2);
    812 return this};Za.prototype=Object.create(K.prototype);Za.prototype.constructor=Za;Za.prototype.isSplineCurve=!0;Za.prototype.getPoint=function(a,b){b=b||new u;var c=this.points,d=(c.length-1)*a;a=Math.floor(d);d-=a;var e=c[0===a?a:a-1],f=c[a],g=c[a>c.length-2?c.length-1:a+1];c=c[a>c.length-3?c.length-1:a+2];b.set(gi(d,e.x,f.x,g.x,c.x),gi(d,e.y,f.y,g.y,c.y));return b};Za.prototype.copy=function(a){K.prototype.copy.call(this,a);this.points=[];for(var b=0,c=a.points.length;b<c;b++)this.points.push(a.points[b].clone());
    813 return this};Za.prototype.toJSON=function(){var a=K.prototype.toJSON.call(this);a.points=[];for(var b=0,c=this.points.length;b<c;b++)a.points.push(this.points[b].toArray());return a};Za.prototype.fromJSON=function(a){K.prototype.fromJSON.call(this,a);this.points=[];for(var b=0,c=a.points.length;b<c;b++){var d=a.points[b];this.points.push((new u).fromArray(d))}return this};var nh=Object.freeze({__proto__:null,ArcCurve:gd,CatmullRomCurve3:za,CubicBezierCurve:Wa,CubicBezierCurve3:gb,EllipseCurve:La,
    814 LineCurve:ia,LineCurve3:Xa,QuadraticBezierCurve:Ya,QuadraticBezierCurve3:hb,SplineCurve:Za});sb.prototype=Object.assign(Object.create(K.prototype),{constructor:sb,add:function(a){this.curves.push(a)},closePath:function(){var a=this.curves[0].getPoint(0),b=this.curves[this.curves.length-1].getPoint(1);a.equals(b)||this.curves.push(new ia(b,a))},getPoint:function(a){var b=a*this.getLength(),c=this.getCurveLengths();for(a=0;a<c.length;){if(c[a]>=b)return b=c[a]-b,a=this.curves[a],c=a.getLength(),a.getPointAt(0===
    815 c?0:1-b/c);a++}return null},getLength:function(){var a=this.getCurveLengths();return a[a.length-1]},updateArcLengths:function(){this.needsUpdate=!0;this.cacheLengths=null;this.getCurveLengths()},getCurveLengths:function(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;for(var a=[],b=0,c=0,d=this.curves.length;c<d;c++)b+=this.curves[c].getLength(),a.push(b);return this.cacheLengths=a},getSpacedPoints:function(a){void 0===a&&(a=40);for(var b=[],c=0;c<=a;c++)b.push(this.getPoint(c/
    816 a));this.autoClose&&b.push(b[0]);return b},getPoints:function(a){a=a||12;for(var b=[],c,d=0,e=this.curves;d<e.length;d++){var f=e[d];f=f.getPoints(f&&f.isEllipseCurve?2*a:f&&(f.isLineCurve||f.isLineCurve3)?1:f&&f.isSplineCurve?a*f.points.length:a);for(var g=0;g<f.length;g++){var h=f[g];c&&c.equals(h)||(b.push(h),c=h)}}this.autoClose&&1<b.length&&!b[b.length-1].equals(b[0])&&b.push(b[0]);return b},copy:function(a){K.prototype.copy.call(this,a);this.curves=[];for(var b=0,c=a.curves.length;b<c;b++)this.curves.push(a.curves[b].clone());
    817 this.autoClose=a.autoClose;return this},toJSON:function(){var a=K.prototype.toJSON.call(this);a.autoClose=this.autoClose;a.curves=[];for(var b=0,c=this.curves.length;b<c;b++)a.curves.push(this.curves[b].toJSON());return a},fromJSON:function(a){K.prototype.fromJSON.call(this,a);this.autoClose=a.autoClose;this.curves=[];for(var b=0,c=a.curves.length;b<c;b++){var d=a.curves[b];this.curves.push((new nh[d.type]).fromJSON(d))}return this}});$a.prototype=Object.assign(Object.create(sb.prototype),{constructor:$a,
    818 setFromPoints:function(a){this.moveTo(a[0].x,a[0].y);for(var b=1,c=a.length;b<c;b++)this.lineTo(a[b].x,a[b].y);return this},moveTo:function(a,b){this.currentPoint.set(a,b);return this},lineTo:function(a,b){var c=new ia(this.currentPoint.clone(),new u(a,b));this.curves.push(c);this.currentPoint.set(a,b);return this},quadraticCurveTo:function(a,b,c,d){a=new Ya(this.currentPoint.clone(),new u(a,b),new u(c,d));this.curves.push(a);this.currentPoint.set(c,d);return this},bezierCurveTo:function(a,b,c,d,
    819 e,f){a=new Wa(this.currentPoint.clone(),new u(a,b),new u(c,d),new u(e,f));this.curves.push(a);this.currentPoint.set(e,f);return this},splineThru:function(a){var b=[this.currentPoint.clone()].concat(a);b=new Za(b);this.curves.push(b);this.currentPoint.copy(a[a.length-1]);return this},arc:function(a,b,c,d,e,f){this.absarc(a+this.currentPoint.x,b+this.currentPoint.y,c,d,e,f);return this},absarc:function(a,b,c,d,e,f){this.absellipse(a,b,c,c,d,e,f);return this},ellipse:function(a,b,c,d,e,f,g,h){this.absellipse(a+
    820 this.currentPoint.x,b+this.currentPoint.y,c,d,e,f,g,h);return this},absellipse:function(a,b,c,d,e,f,g,h){a=new La(a,b,c,d,e,f,g,h);0<this.curves.length&&(b=a.getPoint(0),b.equals(this.currentPoint)||this.lineTo(b.x,b.y));this.curves.push(a);a=a.getPoint(1);this.currentPoint.copy(a);return this},copy:function(a){sb.prototype.copy.call(this,a);this.currentPoint.copy(a.currentPoint);return this},toJSON:function(){var a=sb.prototype.toJSON.call(this);a.currentPoint=this.currentPoint.toArray();return a},
    821 fromJSON:function(a){sb.prototype.fromJSON.call(this,a);this.currentPoint.fromArray(a.currentPoint);return this}});Mb.prototype=Object.assign(Object.create($a.prototype),{constructor:Mb,getPointsHoles:function(a){for(var b=[],c=0,d=this.holes.length;c<d;c++)b[c]=this.holes[c].getPoints(a);return b},extractPoints:function(a){return{shape:this.getPoints(a),holes:this.getPointsHoles(a)}},copy:function(a){$a.prototype.copy.call(this,a);this.holes=[];for(var b=0,c=a.holes.length;b<c;b++)this.holes.push(a.holes[b].clone());
    822 return this},toJSON:function(){var a=$a.prototype.toJSON.call(this);a.uuid=this.uuid;a.holes=[];for(var b=0,c=this.holes.length;b<c;b++)a.holes.push(this.holes[b].toJSON());return a},fromJSON:function(a){$a.prototype.fromJSON.call(this,a);this.uuid=a.uuid;this.holes=[];for(var b=0,c=a.holes.length;b<c;b++){var d=a.holes[b];this.holes.push((new $a).fromJSON(d))}return this}});fa.prototype=Object.assign(Object.create(C.prototype),{constructor:fa,isLight:!0,copy:function(a){C.prototype.copy.call(this,
    823 a);this.color.copy(a.color);this.intensity=a.intensity;return this},toJSON:function(a){a=C.prototype.toJSON.call(this,a);a.object.color=this.color.getHex();a.object.intensity=this.intensity;void 0!==this.groundColor&&(a.object.groundColor=this.groundColor.getHex());void 0!==this.distance&&(a.object.distance=this.distance);void 0!==this.angle&&(a.object.angle=this.angle);void 0!==this.decay&&(a.object.decay=this.decay);void 0!==this.penumbra&&(a.object.penumbra=this.penumbra);void 0!==this.shadow&&
    824 (a.object.shadow=this.shadow.toJSON());return a}});gf.prototype=Object.assign(Object.create(fa.prototype),{constructor:gf,isHemisphereLight:!0,copy:function(a){fa.prototype.copy.call(this,a);this.groundColor.copy(a.groundColor);return this}});Object.assign(ib.prototype,{_projScreenMatrix:new U,_lightPositionWorld:new m,_lookTarget:new m,getViewportCount:function(){return this._viewportCount},getFrustum:function(){return this._frustum},updateMatrices:function(a){var b=this.camera,c=this.matrix,d=this._projScreenMatrix,
    825 e=this._lookTarget,f=this._lightPositionWorld;f.setFromMatrixPosition(a.matrixWorld);b.position.copy(f);e.setFromMatrixPosition(a.target.matrixWorld);b.lookAt(e);b.updateMatrixWorld();d.multiplyMatrices(b.projectionMatrix,b.matrixWorldInverse);this._frustum.setFromProjectionMatrix(d);c.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1);c.multiply(b.projectionMatrix);c.multiply(b.matrixWorldInverse)},getViewport:function(a){return this._viewports[a]},getFrameExtents:function(){return this._frameExtents},copy:function(a){this.camera=
    826 a.camera.clone();this.bias=a.bias;this.radius=a.radius;this.mapSize.copy(a.mapSize);return this},clone:function(){return(new this.constructor).copy(this)},toJSON:function(){var a={};0!==this.bias&&(a.bias=this.bias);0!==this.normalBias&&(a.normalBias=this.normalBias);1!==this.radius&&(a.radius=this.radius);if(512!==this.mapSize.x||512!==this.mapSize.y)a.mapSize=this.mapSize.toArray();a.camera=this.camera.toJSON(!1).object;delete a.camera.matrix;return a}});hf.prototype=Object.assign(Object.create(ib.prototype),
    827 {constructor:hf,isSpotLightShadow:!0,updateMatrices:function(a){var b=this.camera,c=2*P.RAD2DEG*a.angle,d=this.mapSize.width/this.mapSize.height,e=a.distance||b.far;if(c!==b.fov||d!==b.aspect||e!==b.far)b.fov=c,b.aspect=d,b.far=e,b.updateProjectionMatrix();ib.prototype.updateMatrices.call(this,a)}});jf.prototype=Object.assign(Object.create(fa.prototype),{constructor:jf,isSpotLight:!0,copy:function(a){fa.prototype.copy.call(this,a);this.distance=a.distance;this.angle=a.angle;this.penumbra=a.penumbra;
    828 this.decay=a.decay;this.target=a.target.clone();this.shadow=a.shadow.clone();return this}});zg.prototype=Object.assign(Object.create(ib.prototype),{constructor:zg,isPointLightShadow:!0,updateMatrices:function(a,b){void 0===b&&(b=0);var c=this.camera,d=this.matrix,e=this._lightPositionWorld,f=this._lookTarget,g=this._projScreenMatrix;e.setFromMatrixPosition(a.matrixWorld);c.position.copy(e);f.copy(c.position);f.add(this._cubeDirections[b]);c.up.copy(this._cubeUps[b]);c.lookAt(f);c.updateMatrixWorld();
    829 d.makeTranslation(-e.x,-e.y,-e.z);g.multiplyMatrices(c.projectionMatrix,c.matrixWorldInverse);this._frustum.setFromProjectionMatrix(g)}});kf.prototype=Object.assign(Object.create(fa.prototype),{constructor:kf,isPointLight:!0,copy:function(a){fa.prototype.copy.call(this,a);this.distance=a.distance;this.decay=a.decay;this.shadow=a.shadow.clone();return this}});hd.prototype=Object.assign(Object.create(db.prototype),{constructor:hd,isOrthographicCamera:!0,copy:function(a,b){db.prototype.copy.call(this,
    830 a,b);this.left=a.left;this.right=a.right;this.top=a.top;this.bottom=a.bottom;this.near=a.near;this.far=a.far;this.zoom=a.zoom;this.view=null===a.view?null:Object.assign({},a.view);return this},setViewOffset:function(a,b,c,d,e,f){null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1});this.view.enabled=!0;this.view.fullWidth=a;this.view.fullHeight=b;this.view.offsetX=c;this.view.offsetY=d;this.view.width=e;this.view.height=f;this.updateProjectionMatrix()},
    831 clearViewOffset:function(){null!==this.view&&(this.view.enabled=!1);this.updateProjectionMatrix()},updateProjectionMatrix:function(){var a=(this.right-this.left)/(2*this.zoom),b=(this.top-this.bottom)/(2*this.zoom),c=(this.right+this.left)/2,d=(this.top+this.bottom)/2,e=c-a;c+=a;a=d+b;b=d-b;null!==this.view&&this.view.enabled&&(d=(this.right-this.left)/this.view.fullWidth/this.zoom,b=(this.top-this.bottom)/this.view.fullHeight/this.zoom,e+=d*this.view.offsetX,c=e+d*this.view.width,a-=b*this.view.offsetY,
    832 b=a-b*this.view.height);this.projectionMatrix.makeOrthographic(e,c,a,b,this.near,this.far);this.projectionMatrixInverse.getInverse(this.projectionMatrix)},toJSON:function(a){a=C.prototype.toJSON.call(this,a);a.object.zoom=this.zoom;a.object.left=this.left;a.object.right=this.right;a.object.top=this.top;a.object.bottom=this.bottom;a.object.near=this.near;a.object.far=this.far;null!==this.view&&(a.object.view=Object.assign({},this.view));return a}});lf.prototype=Object.assign(Object.create(ib.prototype),
    833 {constructor:lf,isDirectionalLightShadow:!0,updateMatrices:function(a){ib.prototype.updateMatrices.call(this,a)}});mf.prototype=Object.assign(Object.create(fa.prototype),{constructor:mf,isDirectionalLight:!0,copy:function(a){fa.prototype.copy.call(this,a);this.target=a.target.clone();this.shadow=a.shadow.clone();return this}});nf.prototype=Object.assign(Object.create(fa.prototype),{constructor:nf,isAmbientLight:!0});of.prototype=Object.assign(Object.create(fa.prototype),{constructor:of,isRectAreaLight:!0,
    834 copy:function(a){fa.prototype.copy.call(this,a);this.width=a.width;this.height=a.height;return this},toJSON:function(a){a=fa.prototype.toJSON.call(this,a);a.object.width=this.width;a.object.height=this.height;return a}});Object.assign(pf.prototype,{isSphericalHarmonics3:!0,set:function(a){for(var b=0;9>b;b++)this.coefficients[b].copy(a[b]);return this},zero:function(){for(var a=0;9>a;a++)this.coefficients[a].set(0,0,0);return this},getAt:function(a,b){var c=a.x,d=a.y;a=a.z;var e=this.coefficients;
    835 b.copy(e[0]).multiplyScalar(.282095);b.addScaledVector(e[1],.488603*d);b.addScaledVector(e[2],.488603*a);b.addScaledVector(e[3],.488603*c);b.addScaledVector(e[4],1.092548*c*d);b.addScaledVector(e[5],1.092548*d*a);b.addScaledVector(e[6],.315392*(3*a*a-1));b.addScaledVector(e[7],1.092548*c*a);b.addScaledVector(e[8],.546274*(c*c-d*d));return b},getIrradianceAt:function(a,b){var c=a.x,d=a.y;a=a.z;var e=this.coefficients;b.copy(e[0]).multiplyScalar(.886227);b.addScaledVector(e[1],1.023328*d);b.addScaledVector(e[2],
    836 1.023328*a);b.addScaledVector(e[3],1.023328*c);b.addScaledVector(e[4],.858086*c*d);b.addScaledVector(e[5],.858086*d*a);b.addScaledVector(e[6],.743125*a*a-.247708);b.addScaledVector(e[7],.858086*c*a);b.addScaledVector(e[8],.429043*(c*c-d*d));return b},add:function(a){for(var b=0;9>b;b++)this.coefficients[b].add(a.coefficients[b]);return this},addScaledSH:function(a,b){for(var c=0;9>c;c++)this.coefficients[c].addScaledVector(a.coefficients[c],b);return this},scale:function(a){for(var b=0;9>b;b++)this.coefficients[b].multiplyScalar(a);
    837 return this},lerp:function(a,b){for(var c=0;9>c;c++)this.coefficients[c].lerp(a.coefficients[c],b);return this},equals:function(a){for(var b=0;9>b;b++)if(!this.coefficients[b].equals(a.coefficients[b]))return!1;return!0},copy:function(a){return this.set(a.coefficients)},clone:function(){return(new this.constructor).copy(this)},fromArray:function(a,b){void 0===b&&(b=0);for(var c=this.coefficients,d=0;9>d;d++)c[d].fromArray(a,b+3*d);return this},toArray:function(a,b){void 0===a&&(a=[]);void 0===b&&
    838 (b=0);for(var c=this.coefficients,d=0;9>d;d++)c[d].toArray(a,b+3*d);return a}});Object.assign(pf,{getBasisAt:function(a,b){var c=a.x,d=a.y;a=a.z;b[0]=.282095;b[1]=.488603*d;b[2]=.488603*a;b[3]=.488603*c;b[4]=1.092548*c*d;b[5]=1.092548*d*a;b[6]=.315392*(3*a*a-1);b[7]=1.092548*c*a;b[8]=.546274*(c*c-d*d)}});Ra.prototype=Object.assign(Object.create(fa.prototype),{constructor:Ra,isLightProbe:!0,copy:function(a){fa.prototype.copy.call(this,a);this.sh.copy(a.sh);return this},fromJSON:function(a){this.intensity=
    839 a.intensity;this.sh.fromArray(a.sh);return this},toJSON:function(a){a=fa.prototype.toJSON.call(this,a);a.object.sh=this.sh.toArray();return a}});qf.prototype=Object.assign(Object.create(X.prototype),{constructor:qf,load:function(a,b,c,d){var e=this,f=new Qa(e.manager);f.setPath(e.path);f.setRequestHeader(e.requestHeader);f.load(a,function(c){try{b(e.parse(JSON.parse(c)))}catch(h){d?d(h):console.error(h),e.manager.itemError(a)}},c,d)},parse:function(a){function b(a){void 0===c[a]&&console.warn("THREE.MaterialLoader: Undefined texture",
    840 a);return c[a]}var c=this.textures,d=new Vk[a.type];void 0!==a.uuid&&(d.uuid=a.uuid);void 0!==a.name&&(d.name=a.name);void 0!==a.color&&d.color.setHex(a.color);void 0!==a.roughness&&(d.roughness=a.roughness);void 0!==a.metalness&&(d.metalness=a.metalness);void 0!==a.sheen&&(d.sheen=(new H).setHex(a.sheen));void 0!==a.emissive&&d.emissive.setHex(a.emissive);void 0!==a.specular&&d.specular.setHex(a.specular);void 0!==a.shininess&&(d.shininess=a.shininess);void 0!==a.clearcoat&&(d.clearcoat=a.clearcoat);
    841 void 0!==a.clearcoatRoughness&&(d.clearcoatRoughness=a.clearcoatRoughness);void 0!==a.fog&&(d.fog=a.fog);void 0!==a.flatShading&&(d.flatShading=a.flatShading);void 0!==a.blending&&(d.blending=a.blending);void 0!==a.combine&&(d.combine=a.combine);void 0!==a.side&&(d.side=a.side);void 0!==a.opacity&&(d.opacity=a.opacity);void 0!==a.transparent&&(d.transparent=a.transparent);void 0!==a.alphaTest&&(d.alphaTest=a.alphaTest);void 0!==a.depthTest&&(d.depthTest=a.depthTest);void 0!==a.depthWrite&&(d.depthWrite=
    842 a.depthWrite);void 0!==a.colorWrite&&(d.colorWrite=a.colorWrite);void 0!==a.stencilWrite&&(d.stencilWrite=a.stencilWrite);void 0!==a.stencilWriteMask&&(d.stencilWriteMask=a.stencilWriteMask);void 0!==a.stencilFunc&&(d.stencilFunc=a.stencilFunc);void 0!==a.stencilRef&&(d.stencilRef=a.stencilRef);void 0!==a.stencilFuncMask&&(d.stencilFuncMask=a.stencilFuncMask);void 0!==a.stencilFail&&(d.stencilFail=a.stencilFail);void 0!==a.stencilZFail&&(d.stencilZFail=a.stencilZFail);void 0!==a.stencilZPass&&(d.stencilZPass=
    843 a.stencilZPass);void 0!==a.wireframe&&(d.wireframe=a.wireframe);void 0!==a.wireframeLinewidth&&(d.wireframeLinewidth=a.wireframeLinewidth);void 0!==a.wireframeLinecap&&(d.wireframeLinecap=a.wireframeLinecap);void 0!==a.wireframeLinejoin&&(d.wireframeLinejoin=a.wireframeLinejoin);void 0!==a.rotation&&(d.rotation=a.rotation);1!==a.linewidth&&(d.linewidth=a.linewidth);void 0!==a.dashSize&&(d.dashSize=a.dashSize);void 0!==a.gapSize&&(d.gapSize=a.gapSize);void 0!==a.scale&&(d.scale=a.scale);void 0!==a.polygonOffset&&
    844 (d.polygonOffset=a.polygonOffset);void 0!==a.polygonOffsetFactor&&(d.polygonOffsetFactor=a.polygonOffsetFactor);void 0!==a.polygonOffsetUnits&&(d.polygonOffsetUnits=a.polygonOffsetUnits);void 0!==a.skinning&&(d.skinning=a.skinning);void 0!==a.morphTargets&&(d.morphTargets=a.morphTargets);void 0!==a.morphNormals&&(d.morphNormals=a.morphNormals);void 0!==a.dithering&&(d.dithering=a.dithering);void 0!==a.vertexTangents&&(d.vertexTangents=a.vertexTangents);void 0!==a.visible&&(d.visible=a.visible);void 0!==
    845 a.toneMapped&&(d.toneMapped=a.toneMapped);void 0!==a.userData&&(d.userData=a.userData);void 0!==a.vertexColors&&(d.vertexColors="number"===typeof a.vertexColors?0<a.vertexColors?!0:!1:a.vertexColors);if(void 0!==a.uniforms)for(var e in a.uniforms){var f=a.uniforms[e];d.uniforms[e]={};switch(f.type){case "t":d.uniforms[e].value=b(f.value);break;case "c":d.uniforms[e].value=(new H).setHex(f.value);break;case "v2":d.uniforms[e].value=(new u).fromArray(f.value);break;case "v3":d.uniforms[e].value=(new m).fromArray(f.value);
    846 break;case "v4":d.uniforms[e].value=(new S).fromArray(f.value);break;case "m3":d.uniforms[e].value=(new qa).fromArray(f.value);case "m4":d.uniforms[e].value=(new U).fromArray(f.value);break;default:d.uniforms[e].value=f.value}}void 0!==a.defines&&(d.defines=a.defines);void 0!==a.vertexShader&&(d.vertexShader=a.vertexShader);void 0!==a.fragmentShader&&(d.fragmentShader=a.fragmentShader);if(void 0!==a.extensions)for(var g in a.extensions)d.extensions[g]=a.extensions[g];void 0!==a.shading&&(d.flatShading=
    847 1===a.shading);void 0!==a.size&&(d.size=a.size);void 0!==a.sizeAttenuation&&(d.sizeAttenuation=a.sizeAttenuation);void 0!==a.map&&(d.map=b(a.map));void 0!==a.matcap&&(d.matcap=b(a.matcap));void 0!==a.alphaMap&&(d.alphaMap=b(a.alphaMap));void 0!==a.bumpMap&&(d.bumpMap=b(a.bumpMap));void 0!==a.bumpScale&&(d.bumpScale=a.bumpScale);void 0!==a.normalMap&&(d.normalMap=b(a.normalMap));void 0!==a.normalMapType&&(d.normalMapType=a.normalMapType);void 0!==a.normalScale&&(e=a.normalScale,!1===Array.isArray(e)&&
    848 (e=[e,e]),d.normalScale=(new u).fromArray(e));void 0!==a.displacementMap&&(d.displacementMap=b(a.displacementMap));void 0!==a.displacementScale&&(d.displacementScale=a.displacementScale);void 0!==a.displacementBias&&(d.displacementBias=a.displacementBias);void 0!==a.roughnessMap&&(d.roughnessMap=b(a.roughnessMap));void 0!==a.metalnessMap&&(d.metalnessMap=b(a.metalnessMap));void 0!==a.emissiveMap&&(d.emissiveMap=b(a.emissiveMap));void 0!==a.emissiveIntensity&&(d.emissiveIntensity=a.emissiveIntensity);
    849 void 0!==a.specularMap&&(d.specularMap=b(a.specularMap));void 0!==a.envMap&&(d.envMap=b(a.envMap));void 0!==a.envMapIntensity&&(d.envMapIntensity=a.envMapIntensity);void 0!==a.reflectivity&&(d.reflectivity=a.reflectivity);void 0!==a.refractionRatio&&(d.refractionRatio=a.refractionRatio);void 0!==a.lightMap&&(d.lightMap=b(a.lightMap));void 0!==a.lightMapIntensity&&(d.lightMapIntensity=a.lightMapIntensity);void 0!==a.aoMap&&(d.aoMap=b(a.aoMap));void 0!==a.aoMapIntensity&&(d.aoMapIntensity=a.aoMapIntensity);
    850 void 0!==a.gradientMap&&(d.gradientMap=b(a.gradientMap));void 0!==a.clearcoatMap&&(d.clearcoatMap=b(a.clearcoatMap));void 0!==a.clearcoatRoughnessMap&&(d.clearcoatRoughnessMap=b(a.clearcoatRoughnessMap));void 0!==a.clearcoatNormalMap&&(d.clearcoatNormalMap=b(a.clearcoatNormalMap));void 0!==a.clearcoatNormalScale&&(d.clearcoatNormalScale=(new u).fromArray(a.clearcoatNormalScale));void 0!==a.transmission&&(d.transmission=a.transmission);void 0!==a.transmissionMap&&(d.transmissionMap=b(a.transmissionMap));
    851 return d},setTextures:function(a){this.textures=a;return this}});var oh={decodeText:function(a){if("undefined"!==typeof TextDecoder)return(new TextDecoder).decode(a);for(var b="",c=0,d=a.length;c<d;c++)b+=String.fromCharCode(a[c]);try{return decodeURIComponent(escape(b))}catch(e){return b}},extractUrlBase:function(a){var b=a.lastIndexOf("/");return-1===b?"./":a.substr(0,b+1)}};pe.prototype=Object.assign(Object.create(E.prototype),{constructor:pe,isInstancedBufferGeometry:!0,copy:function(a){E.prototype.copy.call(this,
    852 a);this.instanceCount=a.instanceCount;return this},clone:function(){return(new this.constructor).copy(this)},toJSON:function(){var a=E.prototype.toJSON.call(this);a.instanceCount=this.instanceCount;a.isInstancedBufferGeometry=!0;return a}});rf.prototype=Object.assign(Object.create(J.prototype),{constructor:rf,isInstancedBufferAttribute:!0,copy:function(a){J.prototype.copy.call(this,a);this.meshPerAttribute=a.meshPerAttribute;return this},toJSON:function(){var a=J.prototype.toJSON.call(this);a.meshPerAttribute=
    853 this.meshPerAttribute;a.isInstancedBufferAttribute=!0;return a}});sf.prototype=Object.assign(Object.create(X.prototype),{constructor:sf,load:function(a,b,c,d){var e=this,f=new Qa(e.manager);f.setPath(e.path);f.setRequestHeader(e.requestHeader);f.load(a,function(c){try{b(e.parse(JSON.parse(c)))}catch(h){d?d(h):console.error(h),e.manager.itemError(a)}},c,d)},parse:function(a){function b(a,b){if(void 0!==c[b])return c[b];var e=a.interleavedBuffers[b];var f=e.buffer;void 0!==d[f]?f=d[f]:(a=(new Uint32Array(a.arrayBuffers[f])).buffer,
    854 f=d[f]=a);f=new Uf[e.type](f);f=new Ba(f,e.stride);f.uuid=e.uuid;return c[b]=f}var c={},d={},e=a.isInstancedBufferGeometry?new pe:new E,f=a.data.index;void 0!==f&&(f=new Uf[f.type](f.array),e.setIndex(new J(f,1)));f=a.data.attributes;for(var g in f){var h=f[g],k=void 0;h.isInterleavedBufferAttribute?(k=b(a.data,h.data),k=new Hb(k,h.itemSize,h.offset,h.normalized)):(k=new Uf[h.type](h.array),k=new (h.isInstancedBufferAttribute?rf:J)(k,h.itemSize,h.normalized));void 0!==h.name&&(k.name=h.name);e.setAttribute(g,
    855 k)}if(g=a.data.morphAttributes)for(var n in g){f=g[n];h=[];k=0;for(var q=f.length;k<q;k++){var p=f[k],z=void 0;p.isInterleavedBufferAttribute?(z=b(a.data,p.data),z=new Hb(z,p.itemSize,p.offset,p.normalized)):(z=new Uf[p.type](p.array),z=new J(z,p.itemSize,p.normalized));void 0!==p.name&&(z.name=p.name);h.push(z)}e.morphAttributes[n]=h}a.data.morphTargetsRelative&&(e.morphTargetsRelative=!0);n=a.data.groups||a.data.drawcalls||a.data.offsets;if(void 0!==n)for(g=0,f=n.length;g!==f;++g)h=n[g],e.addGroup(h.start,
    856 h.count,h.materialIndex);n=a.data.boundingSphere;void 0!==n&&(g=new m,void 0!==n.center&&g.fromArray(n.center),e.boundingSphere=new cb(g,n.radius));a.name&&(e.name=a.name);a.userData&&(e.userData=a.userData);return e}});var Uf={Int8Array:Int8Array,Uint8Array:Uint8Array,Uint8ClampedArray:"undefined"!==typeof Uint8ClampedArray?Uint8ClampedArray:Uint8Array,Int16Array:Int16Array,Uint16Array:Uint16Array,Int32Array:Int32Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array};
    857 tf.prototype=Object.assign(Object.create(X.prototype),{constructor:tf,load:function(a,b,c,d){var e=this,f=""===this.path?oh.extractUrlBase(a):this.path;this.resourcePath=this.resourcePath||f;f=new Qa(e.manager);f.setPath(this.path);f.setRequestHeader(this.requestHeader);f.load(a,function(c){var f=null;try{f=JSON.parse(c)}catch(l){void 0!==d&&d(l);console.error("THREE:ObjectLoader: Can't parse "+a+".",l.message);return}c=f.metadata;void 0===c||void 0===c.type||"geometry"===c.type.toLowerCase()?console.error("THREE.ObjectLoader: Can't load "+
    858 a):e.parse(f,b)},c,d)},parse:function(a,b){var c=this.parseShape(a.shapes);c=this.parseGeometries(a.geometries,c);var d=this.parseImages(a.images,function(){void 0!==b&&b(e)});d=this.parseTextures(a.textures,d);d=this.parseMaterials(a.materials,d);var e=this.parseObject(a.object,c,d);a.animations&&(e.animations=this.parseAnimations(a.animations));void 0!==a.images&&0!==a.images.length||void 0===b||b(e);return e},parseShape:function(a){var b={};if(void 0!==a)for(var c=0,d=a.length;c<d;c++){var e=(new Mb).fromJSON(a[c]);
    859 b[e.uuid]=e}return b},parseGeometries:function(a,b){var c={};if(void 0!==a)for(var d=new sf,e=0,f=a.length;e<f;e++){var g=void 0;var h=a[e];switch(h.type){case "PlaneGeometry":case "PlaneBufferGeometry":g=new Da[h.type](h.width,h.height,h.widthSegments,h.heightSegments);break;case "BoxGeometry":case "BoxBufferGeometry":case "CubeGeometry":g=new Da[h.type](h.width,h.height,h.depth,h.widthSegments,h.heightSegments,h.depthSegments);break;case "CircleGeometry":case "CircleBufferGeometry":g=new Da[h.type](h.radius,
    860 h.segments,h.thetaStart,h.thetaLength);break;case "CylinderGeometry":case "CylinderBufferGeometry":g=new Da[h.type](h.radiusTop,h.radiusBottom,h.height,h.radialSegments,h.heightSegments,h.openEnded,h.thetaStart,h.thetaLength);break;case "ConeGeometry":case "ConeBufferGeometry":g=new Da[h.type](h.radius,h.height,h.radialSegments,h.heightSegments,h.openEnded,h.thetaStart,h.thetaLength);break;case "SphereGeometry":case "SphereBufferGeometry":g=new Da[h.type](h.radius,h.widthSegments,h.heightSegments,
    861 h.phiStart,h.phiLength,h.thetaStart,h.thetaLength);break;case "DodecahedronGeometry":case "DodecahedronBufferGeometry":case "IcosahedronGeometry":case "IcosahedronBufferGeometry":case "OctahedronGeometry":case "OctahedronBufferGeometry":case "TetrahedronGeometry":case "TetrahedronBufferGeometry":g=new Da[h.type](h.radius,h.detail);break;case "RingGeometry":case "RingBufferGeometry":g=new Da[h.type](h.innerRadius,h.outerRadius,h.thetaSegments,h.phiSegments,h.thetaStart,h.thetaLength);break;case "TorusGeometry":case "TorusBufferGeometry":g=
    862 new Da[h.type](h.radius,h.tube,h.radialSegments,h.tubularSegments,h.arc);break;case "TorusKnotGeometry":case "TorusKnotBufferGeometry":g=new Da[h.type](h.radius,h.tube,h.tubularSegments,h.radialSegments,h.p,h.q);break;case "TubeGeometry":case "TubeBufferGeometry":g=new Da[h.type]((new nh[h.path.type]).fromJSON(h.path),h.tubularSegments,h.radius,h.radialSegments,h.closed);break;case "LatheGeometry":case "LatheBufferGeometry":g=new Da[h.type](h.points,h.segments,h.phiStart,h.phiLength);break;case "PolyhedronGeometry":case "PolyhedronBufferGeometry":g=
    863 new Da[h.type](h.vertices,h.indices,h.radius,h.details);break;case "ShapeGeometry":case "ShapeBufferGeometry":g=[];for(var k=0,n=h.shapes.length;k<n;k++)g.push(b[h.shapes[k]]);g=new Da[h.type](g,h.curveSegments);break;case "ExtrudeGeometry":case "ExtrudeBufferGeometry":g=[];k=0;for(n=h.shapes.length;k<n;k++)g.push(b[h.shapes[k]]);k=h.options.extrudePath;void 0!==k&&(h.options.extrudePath=(new nh[k.type]).fromJSON(k));g=new Da[h.type](g,h.options);break;case "BufferGeometry":case "InstancedBufferGeometry":g=
    864 d.parse(h);break;case "Geometry":console.error('THREE.ObjectLoader: Loading "Geometry" is not supported anymore.');break;default:console.warn('THREE.ObjectLoader: Unsupported geometry type "'+h.type+'"');continue}g.uuid=h.uuid;void 0!==h.name&&(g.name=h.name);!0===g.isBufferGeometry&&void 0!==h.userData&&(g.userData=h.userData);c[h.uuid]=g}return c},parseMaterials:function(a,b){var c={},d={};if(void 0!==a){var e=new qf;e.setTextures(b);b=0;for(var f=a.length;b<f;b++){var g=a[b];if("MultiMaterial"===
    865 g.type){for(var h=[],k=0;k<g.materials.length;k++){var n=g.materials[k];void 0===c[n.uuid]&&(c[n.uuid]=e.parse(n));h.push(c[n.uuid])}d[g.uuid]=h}else void 0===c[g.uuid]&&(c[g.uuid]=e.parse(g)),d[g.uuid]=c[g.uuid]}}return d},parseAnimations:function(a){for(var b=[],c=0;c<a.length;c++){var d=a[c],e=Pa.parse(d);void 0!==d.uuid&&(e.uuid=d.uuid);b.push(e)}return b},parseImages:function(a,b){function c(a){d.manager.itemStart(a);return f.load(a,function(){d.manager.itemEnd(a)},void 0,function(){d.manager.itemError(a);
    866 d.manager.itemEnd(a)})}var d=this,e={};if(void 0!==a&&0<a.length){b=new vg(b);var f=new fd(b);f.setCrossOrigin(this.crossOrigin);b=0;for(var g=a.length;b<g;b++){var h=a[b],k=h.url;if(Array.isArray(k)){e[h.uuid]=[];for(var n=0,m=k.length;n<m;n++){var p=k[n];p=/^(//)|([a-z]+:(//)?)/i.test(p)?p:d.resourcePath+p;e[h.uuid].push(c(p))}}else k=/^(//)|([a-z]+:(//)?)/i.test(h.url)?h.url:d.resourcePath+h.url,e[h.uuid]=c(k)}}return e},parseTextures:function(a,b){function c(a,b){if("number"===typeof a)return a;
    867 console.warn("THREE.ObjectLoader.parseTexture: Constant should be in numeric form.",a);return b[a]}var d={};if(void 0!==a)for(var e=0,f=a.length;e<f;e++){var g=a[e];void 0===g.image&&console.warn('THREE.ObjectLoader: No "image" specified for',g.uuid);void 0===b[g.image]&&console.warn("THREE.ObjectLoader: Undefined image",g.image);var h=void 0;h=Array.isArray(b[g.image])?new ob(b[g.image]):new V(b[g.image]);h.needsUpdate=!0;h.uuid=g.uuid;void 0!==g.name&&(h.name=g.name);void 0!==g.mapping&&(h.mapping=
    868 c(g.mapping,Wk));void 0!==g.offset&&h.offset.fromArray(g.offset);void 0!==g.repeat&&h.repeat.fromArray(g.repeat);void 0!==g.center&&h.center.fromArray(g.center);void 0!==g.rotation&&(h.rotation=g.rotation);void 0!==g.wrap&&(h.wrapS=c(g.wrap[0],Ni),h.wrapT=c(g.wrap[1],Ni));void 0!==g.format&&(h.format=g.format);void 0!==g.type&&(h.type=g.type);void 0!==g.encoding&&(h.encoding=g.encoding);void 0!==g.minFilter&&(h.minFilter=c(g.minFilter,Oi));void 0!==g.magFilter&&(h.magFilter=c(g.magFilter,Oi));void 0!==
    869 g.anisotropy&&(h.anisotropy=g.anisotropy);void 0!==g.flipY&&(h.flipY=g.flipY);void 0!==g.premultiplyAlpha&&(h.premultiplyAlpha=g.premultiplyAlpha);void 0!==g.unpackAlignment&&(h.unpackAlignment=g.unpackAlignment);d[g.uuid]=h}return d},parseObject:function(a,b,c){function d(a){void 0===b[a]&&console.warn("THREE.ObjectLoader: Undefined geometry",a);return b[a]}function e(a){if(void 0!==a){if(Array.isArray(a)){for(var b=[],d=0,e=a.length;d<e;d++){var f=a[d];void 0===c[f]&&console.warn("THREE.ObjectLoader: Undefined material",
    870 f);b.push(c[f])}return b}void 0===c[a]&&console.warn("THREE.ObjectLoader: Undefined material",a);return c[a]}}switch(a.type){case "Scene":var f=new Ad;void 0!==a.background&&Number.isInteger(a.background)&&(f.background=new H(a.background));void 0!==a.fog&&("Fog"===a.fog.type?f.fog=new Pe(a.fog.color,a.fog.near,a.fog.far):"FogExp2"===a.fog.type&&(f.fog=new Oe(a.fog.color,a.fog.density)));break;case "PerspectiveCamera":f=new W(a.fov,a.aspect,a.near,a.far);void 0!==a.focus&&(f.focus=a.focus);void 0!==
    871 a.zoom&&(f.zoom=a.zoom);void 0!==a.filmGauge&&(f.filmGauge=a.filmGauge);void 0!==a.filmOffset&&(f.filmOffset=a.filmOffset);void 0!==a.view&&(f.view=Object.assign({},a.view));break;case "OrthographicCamera":f=new hd(a.left,a.right,a.top,a.bottom,a.near,a.far);void 0!==a.zoom&&(f.zoom=a.zoom);void 0!==a.view&&(f.view=Object.assign({},a.view));break;case "AmbientLight":f=new nf(a.color,a.intensity);break;case "DirectionalLight":f=new mf(a.color,a.intensity);break;case "PointLight":f=new kf(a.color,a.intensity,
    872 a.distance,a.decay);break;case "RectAreaLight":f=new of(a.color,a.intensity,a.width,a.height);break;case "SpotLight":f=new jf(a.color,a.intensity,a.distance,a.angle,a.penumbra,a.decay);break;case "HemisphereLight":f=new gf(a.color,a.groundColor,a.intensity);break;case "LightProbe":f=(new Ra).fromJSON(a);break;case "SkinnedMesh":console.warn("THREE.ObjectLoader.parseObject() does not support SkinnedMesh yet.");case "Mesh":f=d(a.geometry);var g=e(a.material);f=new T(f,g);break;case "InstancedMesh":f=
    873 d(a.geometry);g=e(a.material);var h=a.instanceMatrix;f=new Te(f,g,a.count);f.instanceMatrix=new J(new Float32Array(h.array),16);break;case "LOD":f=new Qd;break;case "Line":f=new Ja(d(a.geometry),e(a.material),a.mode);break;case "LineLoop":f=new Ue(d(a.geometry),e(a.material));break;case "LineSegments":f=new ea(d(a.geometry),e(a.material));break;case "PointCloud":case "Points":f=new Pc(d(a.geometry),e(a.material));break;case "Sprite":f=new Od(e(a.material));break;case "Group":f=new Gb;break;default:f=
    874 new C}f.uuid=a.uuid;void 0!==a.name&&(f.name=a.name);void 0!==a.matrix?(f.matrix.fromArray(a.matrix),void 0!==a.matrixAutoUpdate&&(f.matrixAutoUpdate=a.matrixAutoUpdate),f.matrixAutoUpdate&&f.matrix.decompose(f.position,f.quaternion,f.scale)):(void 0!==a.position&&f.position.fromArray(a.position),void 0!==a.rotation&&f.rotation.fromArray(a.rotation),void 0!==a.quaternion&&f.quaternion.fromArray(a.quaternion),void 0!==a.scale&&f.scale.fromArray(a.scale));void 0!==a.castShadow&&(f.castShadow=a.castShadow);
    875 void 0!==a.receiveShadow&&(f.receiveShadow=a.receiveShadow);a.shadow&&(void 0!==a.shadow.bias&&(f.shadow.bias=a.shadow.bias),void 0!==a.shadow.normalBias&&(f.shadow.normalBias=a.shadow.normalBias),void 0!==a.shadow.radius&&(f.shadow.radius=a.shadow.radius),void 0!==a.shadow.mapSize&&f.shadow.mapSize.fromArray(a.shadow.mapSize),void 0!==a.shadow.camera&&(f.shadow.camera=this.parseObject(a.shadow.camera)));void 0!==a.visible&&(f.visible=a.visible);void 0!==a.frustumCulled&&(f.frustumCulled=a.frustumCulled);
    876 void 0!==a.renderOrder&&(f.renderOrder=a.renderOrder);void 0!==a.userData&&(f.userData=a.userData);void 0!==a.layers&&(f.layers.mask=a.layers);if(void 0!==a.children)for(h=a.children,g=0;g<h.length;g++)f.add(this.parseObject(h[g],b,c));if("LOD"===a.type)for(void 0!==a.autoUpdate&&(f.autoUpdate=a.autoUpdate),a=a.levels,h=0;h<a.length;h++){g=a[h];var k=f.getObjectByProperty("uuid",g.object);void 0!==k&&f.addLevel(k,g.distance)}return f}});var Wk={UVMapping:300,CubeReflectionMapping:301,CubeRefractionMapping:302,
    877 EquirectangularReflectionMapping:303,EquirectangularRefractionMapping:304,CubeUVReflectionMapping:306,CubeUVRefractionMapping:307},Ni={RepeatWrapping:1E3,ClampToEdgeWrapping:1001,MirroredRepeatWrapping:1002},Oi={NearestFilter:1003,NearestMipmapNearestFilter:1004,NearestMipmapLinearFilter:1005,LinearFilter:1006,LinearMipmapNearestFilter:1007,LinearMipmapLinearFilter:1008};Ag.prototype=Object.assign(Object.create(X.prototype),{constructor:Ag,isImageBitmapLoader:!0,setOptions:function(a){this.options=
    878 a;return this},load:function(a,b,c,d){void 0===a&&(a="");void 0!==this.path&&(a=this.path+a);a=this.manager.resolveURL(a);var e=this,f=vc.get(a);if(void 0!==f)return e.manager.itemStart(a),setTimeout(function(){b&&b(f);e.manager.itemEnd(a)},0),f;fetch(a).then(function(a){return a.blob()}).then(function(a){return createImageBitmap(a,e.options)}).then(function(c){vc.add(a,c);b&&b(c);e.manager.itemEnd(a)}).catch(function(b){d&&d(b);e.manager.itemError(a);e.manager.itemEnd(a)});e.manager.itemStart(a)}});
    879 Object.assign(Bg.prototype,{moveTo:function(a,b){this.currentPath=new $a;this.subPaths.push(this.currentPath);this.currentPath.moveTo(a,b);return this},lineTo:function(a,b){this.currentPath.lineTo(a,b);return this},quadraticCurveTo:function(a,b,c,d){this.currentPath.quadraticCurveTo(a,b,c,d);return this},bezierCurveTo:function(a,b,c,d,e,f){this.currentPath.bezierCurveTo(a,b,c,d,e,f);return this},splineThru:function(a){this.currentPath.splineThru(a);return this},toShapes:function(a,b){function c(a){for(var b=
    880 [],c=0,d=a.length;c<d;c++){var e=a[c],f=new Mb;f.curves=e.curves;b.push(f)}return b}function d(a,b){for(var c=b.length,d=!1,e=c-1,f=0;f<c;e=f++){var g=b[e],h=b[f],k=h.x-g.x,l=h.y-g.y;if(Math.abs(l)>Number.EPSILON){if(0>l&&(g=b[f],k=-k,h=b[e],l=-l),!(a.y<g.y||a.y>h.y))if(a.y===g.y){if(a.x===g.x)return!0}else{e=l*(a.x-g.x)-k*(a.y-g.y);if(0===e)return!0;0>e||(d=!d)}}else if(a.y===g.y&&(h.x<=a.x&&a.x<=g.x||g.x<=a.x&&a.x<=h.x))return!0}return d}var e=pb.isClockWise,f=this.subPaths;if(0===f.length)return[];
    881 if(!0===b)return c(f);b=[];if(1===f.length){var g=f[0];var h=new Mb;h.curves=g.curves;b.push(h);return b}var k=!e(f[0].getPoints());k=a?!k:k;h=[];var n=[],m=[],p=0;n[p]=void 0;m[p]=[];for(var u=0,r=f.length;u<r;u++){g=f[u];var t=g.getPoints();var v=e(t);(v=a?!v:v)?(!k&&n[p]&&p++,n[p]={s:new Mb,p:t},n[p].s.curves=g.curves,k&&p++,m[p]=[]):m[p].push({h:g,p:t[0]})}if(!n[0])return c(f);if(1<n.length){a=!1;e=[];f=0;for(g=n.length;f<g;f++)h[f]=[];f=0;for(g=n.length;f<g;f++)for(v=m[f],k=0;k<v.length;k++){p=
    882 v[k];t=!0;for(u=0;u<n.length;u++)d(p.p,n[u].p)&&(f!==u&&e.push({froms:f,tos:u,hole:k}),t?(t=!1,h[u].push(p)):a=!0);t&&h[f].push(p)}0<e.length&&(a||(m=h))}e=0;for(f=n.length;e<f;e++)for(h=n[e].s,b.push(h),a=m[e],g=0,v=a.length;g<v;g++)h.holes.push(a[g].h);return b}});Object.assign(Cg.prototype,{isFont:!0,generateShapes:function(a,b){void 0===b&&(b=100);var c=[],d=b;b=this.data;var e=Array.from?Array.from(a):String(a).split("");d/=b.resolution;var f=(b.boundingBox.yMax-b.boundingBox.yMin+b.underlineThickness)*
    883 d;a=[];for(var g=0,h=0,k=0;k<e.length;k++){var n=e[k];if("n"===n)g=0,h-=f;else{var m=n;n=d;var p=g,u=h,r=b,t=r.glyphs[m]||r.glyphs["?"];if(t){m=new Bg;if(t.o){r=t._cachedOutline||(t._cachedOutline=t.o.split(" "));for(var v=0,x=r.length;v<x;)switch(r[v++]){case "m":var B=r[v++]*n+p;var w=r[v++]*n+u;m.moveTo(B,w);break;case "l":B=r[v++]*n+p;w=r[v++]*n+u;m.lineTo(B,w);break;case "q":var A=r[v++]*n+p;var C=r[v++]*n+u;var E=r[v++]*n+p;var y=r[v++]*n+u;m.quadraticCurveTo(E,y,A,C);break;case "b":A=r[v++]*
    884 n+p,C=r[v++]*n+u,E=r[v++]*n+p,y=r[v++]*n+u,B=r[v++]*n+p,w=r[v++]*n+u,m.bezierCurveTo(E,y,B,w,A,C)}}n={offsetX:t.ha*n,path:m}}else console.error('THREE.Font: character "'+m+'" does not exists in font family '+r.familyName+"."),n=void 0;g+=n.offsetX;a.push(n.path)}}b=0;for(e=a.length;b<e;b++)Array.prototype.push.apply(c,a[b].toShapes());return c}});Dg.prototype=Object.assign(Object.create(X.prototype),{constructor:Dg,load:function(a,b,c,d){var e=this,f=new Qa(this.manager);f.setPath(this.path);f.setRequestHeader(this.requestHeader);
    885 f.load(a,function(a){try{var c=JSON.parse(a)}catch(l){console.warn("THREE.FontLoader: typeface.js support is being deprecated. Use typeface.json instead."),c=JSON.parse(a.substring(65,a.length-2))}a=e.parse(c);b&&b(a)},c,d)},parse:function(a){return new Cg(a)}});var Vf,Ig={getContext:function(){void 0===Vf&&(Vf=new (window.AudioContext||window.webkitAudioContext));return Vf},setContext:function(a){Vf=a}};uf.prototype=Object.assign(Object.create(X.prototype),{constructor:uf,load:function(a,b,c,d){var e=
    886 this,f=new Qa(e.manager);f.setResponseType("arraybuffer");f.setPath(e.path);f.setRequestHeader(e.requestHeader);f.load(a,function(c){try{var f=c.slice(0);Ig.getContext().decodeAudioData(f,function(a){b(a)})}catch(l){d?d(l):console.error(l),e.manager.itemError(a)}},c,d)}});Eg.prototype=Object.assign(Object.create(Ra.prototype),{constructor:Eg,isHemisphereLightProbe:!0,copy:function(a){Ra.prototype.copy.call(this,a);return this},toJSON:function(a){return Ra.prototype.toJSON.call(this,a)}});Fg.prototype=
    887 Object.assign(Object.create(Ra.prototype),{constructor:Fg,isAmbientLightProbe:!0,copy:function(a){Ra.prototype.copy.call(this,a);return this},toJSON:function(a){return Ra.prototype.toJSON.call(this,a)}});var Pi=new U,Qi=new U;Object.assign(hi.prototype,{update:function(a){var b=this._cache;if(b.focus!==a.focus||b.fov!==a.fov||b.aspect!==a.aspect*this.aspect||b.near!==a.near||b.far!==a.far||b.zoom!==a.zoom||b.eyeSep!==this.eyeSep){b.focus=a.focus;b.fov=a.fov;b.aspect=a.aspect*this.aspect;b.near=a.near;
    888 b.far=a.far;b.zoom=a.zoom;b.eyeSep=this.eyeSep;var c=a.projectionMatrix.clone(),d=b.eyeSep/2,e=d*b.near/b.focus,f=b.near*Math.tan(P.DEG2RAD*b.fov*.5)/b.zoom;Qi.elements[12]=-d;Pi.elements[12]=d;d=-f*b.aspect+e;var g=f*b.aspect+e;c.elements[0]=2*b.near/(g-d);c.elements[8]=(g+d)/(g-d);this.cameraL.projectionMatrix.copy(c);d=-f*b.aspect-e;g=f*b.aspect-e;c.elements[0]=2*b.near/(g-d);c.elements[8]=(g+d)/(g-d);this.cameraR.projectionMatrix.copy(c)}this.cameraL.matrixWorld.copy(a.matrixWorld).multiply(Qi);
    889 this.cameraR.matrixWorld.copy(a.matrixWorld).multiply(Pi)}});Object.assign(Gg.prototype,{start:function(){this.oldTime=this.startTime=("undefined"===typeof performance?Date:performance).now();this.elapsedTime=0;this.running=!0},stop:function(){this.getElapsedTime();this.autoStart=this.running=!1},getElapsedTime:function(){this.getDelta();return this.elapsedTime},getDelta:function(){var a=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){var b=("undefined"===typeof performance?
    890 Date:performance).now();a=(b-this.oldTime)/1E3;this.oldTime=b;this.elapsedTime+=a}return a}});var wc=new m,Ri=new Y,Xk=new m,xc=new m;Hg.prototype=Object.assign(Object.create(C.prototype),{constructor:Hg,getInput:function(){return this.gain},removeFilter:function(){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:function(){return this.filter},setFilter:function(a){null!==
    891 this.filter?(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination)):this.gain.disconnect(this.context.destination);this.filter=a;this.gain.connect(this.filter);this.filter.connect(this.context.destination);return this},getMasterVolume:function(){return this.gain.gain.value},setMasterVolume:function(a){this.gain.gain.setTargetAtTime(a,this.context.currentTime,.01);return this},updateMatrixWorld:function(a){C.prototype.updateMatrixWorld.call(this,a);a=this.context.listener;
    892 var b=this.up;this.timeDelta=this._clock.getDelta();this.matrixWorld.decompose(wc,Ri,Xk);xc.set(0,0,-1).applyQuaternion(Ri);if(a.positionX){var c=this.context.currentTime+this.timeDelta;a.positionX.linearRampToValueAtTime(wc.x,c);a.positionY.linearRampToValueAtTime(wc.y,c);a.positionZ.linearRampToValueAtTime(wc.z,c);a.forwardX.linearRampToValueAtTime(xc.x,c);a.forwardY.linearRampToValueAtTime(xc.y,c);a.forwardZ.linearRampToValueAtTime(xc.z,c);a.upX.linearRampToValueAtTime(b.x,c);a.upY.linearRampToValueAtTime(b.y,
    893 c);a.upZ.linearRampToValueAtTime(b.z,c)}else a.setPosition(wc.x,wc.y,wc.z),a.setOrientation(xc.x,xc.y,xc.z,b.x,b.y,b.z)}});id.prototype=Object.assign(Object.create(C.prototype),{constructor:id,getOutput:function(){return this.gain},setNodeSource:function(a){this.hasPlaybackControl=!1;this.sourceType="audioNode";this.source=a;this.connect();return this},setMediaElementSource:function(a){this.hasPlaybackControl=!1;this.sourceType="mediaNode";this.source=this.context.createMediaElementSource(a);this.connect();
    894 return this},setMediaStreamSource:function(a){this.hasPlaybackControl=!1;this.sourceType="mediaStreamNode";this.source=this.context.createMediaStreamSource(a);this.connect();return this},setBuffer:function(a){this.buffer=a;this.sourceType="buffer";this.autoplay&&this.play();return this},play:function(a){void 0===a&&(a=0);if(!0===this.isPlaying)console.warn("THREE.Audio: Audio is already playing.");else if(!1===this.hasPlaybackControl)console.warn("THREE.Audio: this Audio has no playback control.");
    895 else return this._startedAt=this.context.currentTime+a,a=this.context.createBufferSource(),a.buffer=this.buffer,a.loop=this.loop,a.loopStart=this.loopStart,a.loopEnd=this.loopEnd,a.onended=this.onEnded.bind(this),a.start(this._startedAt,this._progress+this.offset,this.duration),this.isPlaying=!0,this.source=a,this.setDetune(this.detune),this.setPlaybackRate(this.playbackRate),this.connect()},pause:function(){if(!1===this.hasPlaybackControl)console.warn("THREE.Audio: this Audio has no playback control.");
    896 else return!0===this.isPlaying&&(this._progress+=Math.max(this.context.currentTime-this._startedAt,0)*this.playbackRate,!0===this.loop&&(this._progress%=this.duration||this.buffer.duration),this.source.stop(),this.source.onended=null,this.isPlaying=!1),this},stop:function(){if(!1===this.hasPlaybackControl)console.warn("THREE.Audio: this Audio has no playback control.");else return this._progress=0,this.source.stop(),this.source.onended=null,this.isPlaying=!1,this},connect:function(){if(0<this.filters.length){this.source.connect(this.filters[0]);
    897 for(var a=1,b=this.filters.length;a<b;a++)this.filters[a-1].connect(this.filters[a]);this.filters[this.filters.length-1].connect(this.getOutput())}else this.source.connect(this.getOutput());return this},disconnect:function(){if(0<this.filters.length){this.source.disconnect(this.filters[0]);for(var a=1,b=this.filters.length;a<b;a++)this.filters[a-1].disconnect(this.filters[a]);this.filters[this.filters.length-1].disconnect(this.getOutput())}else this.source.disconnect(this.getOutput());return this},
    898 getFilters:function(){return this.filters},setFilters:function(a){a||(a=[]);!0===this.isPlaying?(this.disconnect(),this.filters=a,this.connect()):this.filters=a;return this},setDetune:function(a){this.detune=a;if(void 0!==this.source.detune)return!0===this.isPlaying&&this.source.detune.setTargetAtTime(this.detune,this.context.currentTime,.01),this},getDetune:function(){return this.detune},getFilter:function(){return this.getFilters()[0]},setFilter:function(a){return this.setFilters(a?[a]:[])},setPlaybackRate:function(a){if(!1===
    899 this.hasPlaybackControl)console.warn("THREE.Audio: this Audio has no playback control.");else return this.playbackRate=a,!0===this.isPlaying&&this.source.playbackRate.setTargetAtTime(this.playbackRate,this.context.currentTime,.01),this},getPlaybackRate:function(){return this.playbackRate},onEnded:function(){this.isPlaying=!1},getLoop:function(){return!1===this.hasPlaybackControl?(console.warn("THREE.Audio: this Audio has no playback control."),!1):this.loop},setLoop:function(a){if(!1===this.hasPlaybackControl)console.warn("THREE.Audio: this Audio has no playback control.");
    900 else return this.loop=a,!0===this.isPlaying&&(this.source.loop=this.loop),this},setLoopStart:function(a){this.loopStart=a;return this},setLoopEnd:function(a){this.loopEnd=a;return this},getVolume:function(){return this.gain.gain.value},setVolume:function(a){this.gain.gain.setTargetAtTime(a,this.context.currentTime,.01);return this}});var yc=new m,Si=new Y,Yk=new m,zc=new m;Jg.prototype=Object.assign(Object.create(id.prototype),{constructor:Jg,getOutput:function(){return this.panner},getRefDistance:function(){return this.panner.refDistance},
    901 setRefDistance:function(a){this.panner.refDistance=a;return this},getRolloffFactor:function(){return this.panner.rolloffFactor},setRolloffFactor:function(a){this.panner.rolloffFactor=a;return this},getDistanceModel:function(){return this.panner.distanceModel},setDistanceModel:function(a){this.panner.distanceModel=a;return this},getMaxDistance:function(){return this.panner.maxDistance},setMaxDistance:function(a){this.panner.maxDistance=a;return this},setDirectionalCone:function(a,b,c){this.panner.coneInnerAngle=
    902 a;this.panner.coneOuterAngle=b;this.panner.coneOuterGain=c;return this},updateMatrixWorld:function(a){C.prototype.updateMatrixWorld.call(this,a);if(!0!==this.hasPlaybackControl||!1!==this.isPlaying)if(this.matrixWorld.decompose(yc,Si,Yk),zc.set(0,0,1).applyQuaternion(Si),a=this.panner,a.positionX){var b=this.context.currentTime+this.listener.timeDelta;a.positionX.linearRampToValueAtTime(yc.x,b);a.positionY.linearRampToValueAtTime(yc.y,b);a.positionZ.linearRampToValueAtTime(yc.z,b);a.orientationX.linearRampToValueAtTime(zc.x,
    903 b);a.orientationY.linearRampToValueAtTime(zc.y,b);a.orientationZ.linearRampToValueAtTime(zc.z,b)}else a.setPosition(yc.x,yc.y,yc.z),a.setOrientation(zc.x,zc.y,zc.z)}});Object.assign(Kg.prototype,{getFrequencyData:function(){this.analyser.getByteFrequencyData(this.data);return this.data},getAverageFrequency:function(){for(var a=0,b=this.getFrequencyData(),c=0;c<b.length;c++)a+=b[c];return a/b.length}});Object.assign(Lg.prototype,{accumulate:function(a,b){var c=this.buffer,d=this.valueSize;a=a*d+d;
    904 var e=this.cumulativeWeight;if(0===e){for(e=0;e!==d;++e)c[a+e]=c[e];e=b}else e+=b,this._mixBufferRegion(c,a,0,b/e,d);this.cumulativeWeight=e},accumulateAdditive:function(a){var b=this.buffer,c=this.valueSize,d=c*this._addIndex;0===this.cumulativeWeightAdditive&&this._setIdentity();this._mixBufferRegionAdditive(b,d,0,a,c);this.cumulativeWeightAdditive+=a},apply:function(a){var b=this.valueSize,c=this.buffer;a=a*b+b;var d=this.cumulativeWeight,e=this.cumulativeWeightAdditive,f=this.binding;this.cumulativeWeightAdditive=
    905 this.cumulativeWeight=0;1>d&&this._mixBufferRegion(c,a,b*this._origIndex,1-d,b);0<e&&this._mixBufferRegionAdditive(c,a,this._addIndex*b,1,b);d=b;for(e=b+b;d!==e;++d)if(c[d]!==c[d+b]){f.setValue(c,a);break}},saveOriginalState:function(){var a=this.buffer,b=this.valueSize,c=b*this._origIndex;this.binding.getValue(a,c);for(var d=b;d!==c;++d)a[d]=a[c+d%b];this._setIdentity();this.cumulativeWeightAdditive=this.cumulativeWeight=0},restoreOriginalState:function(){this.binding.setValue(this.buffer,3*this.valueSize)},
    906 _setAdditiveIdentityNumeric:function(){for(var a=this._addIndex*this.valueSize,b=a+this.valueSize;a<b;a++)this.buffer[a]=0},_setAdditiveIdentityQuaternion:function(){this._setAdditiveIdentityNumeric();this.buffer[4*this._addIndex+3]=1},_setAdditiveIdentityOther:function(){for(var a=this._origIndex*this.valueSize,b=this._addIndex*this.valueSize,c=0;c<this.valueSize;c++)this.buffer[b+c]=this.buffer[a+c]},_select:function(a,b,c,d,e){if(.5<=d)for(d=0;d!==e;++d)a[b+d]=a[c+d]},_slerp:function(a,b,c,d){Y.slerpFlat(a,
    907 b,a,b,a,c,d)},_slerpAdditive:function(a,b,c,d,e){e*=this._workIndex;Y.multiplyQuaternionsFlat(a,e,a,b,a,c);Y.slerpFlat(a,b,a,b,a,e,d)},_lerp:function(a,b,c,d,e){for(var f=1-d,g=0;g!==e;++g){var h=b+g;a[h]=a[h]*f+a[c+g]*d}},_lerpAdditive:function(a,b,c,d,e){for(var f=0;f!==e;++f){var g=b+f;a[g]+=a[c+f]*d}}});var Zk=/[[].:/]/g,$k="[^"+"\[\]\.:\/".replace("\.","")+"]",al=/((?:WC+[/:])*)/.source.replace("WC","[^\[\]\.:\/]"),bl=/(WCOD+)?/.source.replace("WCOD",$k),cl=/(?:.(WC+)(?:[(.+)])?)?/.source.replace("WC",
    908 "[^\[\]\.:\/]"),dl=/.(WC+)(?:[(.+)])?/.source.replace("WC","[^\[\]\.:\/]"),el=new RegExp("^"+al+bl+cl+dl+"$"),fl=["material","materials","bones"];Object.assign(ii.prototype,{getValue:function(a,b){this.bind();var c=this._bindings[this._targetGroup.nCachedObjects_];void 0!==c&&c.getValue(a,b)},setValue:function(a,b){for(var c=this._bindings,d=this._targetGroup.nCachedObjects_,e=c.length;d!==e;++d)c[d].setValue(a,b)},bind:function(){for(var a=this._bindings,b=this._targetGroup.nCachedObjects_,
    909 c=a.length;b!==c;++b)a[b].bind()},unbind:function(){for(var a=this._bindings,b=this._targetGroup.nCachedObjects_,c=a.length;b!==c;++b)a[b].unbind()}});Object.assign(wa,{Composite:ii,create:function(a,b,c){return a&&a.isAnimationObjectGroup?new wa.Composite(a,b,c):new wa(a,b,c)},sanitizeNodeName:function(a){return a.replace(/s/g,"_").replace(Zk,"")},parseTrackName:function(a){var b=el.exec(a);if(!b)throw Error("PropertyBinding: Cannot parse trackName: "+a);b={nodeName:b[2],objectName:b[3],objectIndex:b[4],
    910 propertyName:b[5],propertyIndex:b[6]};var c=b.nodeName&&b.nodeName.lastIndexOf(".");if(void 0!==c&&-1!==c){var d=b.nodeName.substring(c+1);-1!==fl.indexOf(d)&&(b.nodeName=b.nodeName.substring(0,c),b.objectName=d)}if(null===b.propertyName||0===b.propertyName.length)throw Error("PropertyBinding: can not parse propertyName from trackName: "+a);return b},findNode:function(a,b){if(!b||""===b||"."===b||-1===b||b===a.name||b===a.uuid)return a;if(a.skeleton){var c=a.skeleton.getBoneByName(b);if(void 0!==
    911 c)return c}if(a.children){var d=function(a){for(var c=0;c<a.length;c++){var e=a[c];if(e.name===b||e.uuid===b||(e=d(e.children)))return e}return null};if(a=d(a.children))return a}return null}});Object.assign(wa.prototype,{_getValue_unavailable:function(){},_setValue_unavailable:function(){},BindingType:{Direct:0,EntireArray:1,ArrayElement:2,HasFromToArray:3},Versioning:{None:0,NeedsUpdate:1,MatrixWorldNeedsUpdate:2},GetterByBindingType:[function(a,b){a[b]=this.node[this.propertyName]},function(a,b){for(var c=
    912 this.resolvedProperty,d=0,e=c.length;d!==e;++d)a[b++]=c[d]},function(a,b){a[b]=this.resolvedProperty[this.propertyIndex]},function(a,b){this.resolvedProperty.toArray(a,b)}],SetterByBindingTypeAndVersioning:[[function(a,b){this.targetObject[this.propertyName]=a[b]},function(a,b){this.targetObject[this.propertyName]=a[b];this.targetObject.needsUpdate=!0},function(a,b){this.targetObject[this.propertyName]=a[b];this.targetObject.matrixWorldNeedsUpdate=!0}],[function(a,b){for(var c=this.resolvedProperty,
    913 d=0,e=c.length;d!==e;++d)c[d]=a[b++]},function(a,b){for(var c=this.resolvedProperty,d=0,e=c.length;d!==e;++d)c[d]=a[b++];this.targetObject.needsUpdate=!0},function(a,b){for(var c=this.resolvedProperty,d=0,e=c.length;d!==e;++d)c[d]=a[b++];this.targetObject.matrixWorldNeedsUpdate=!0}],[function(a,b){this.resolvedProperty[this.propertyIndex]=a[b]},function(a,b){this.resolvedProperty[this.propertyIndex]=a[b];this.targetObject.needsUpdate=!0},function(a,b){this.resolvedProperty[this.propertyIndex]=a[b];
    914 this.targetObject.matrixWorldNeedsUpdate=!0}],[function(a,b){this.resolvedProperty.fromArray(a,b)},function(a,b){this.resolvedProperty.fromArray(a,b);this.targetObject.needsUpdate=!0},function(a,b){this.resolvedProperty.fromArray(a,b);this.targetObject.matrixWorldNeedsUpdate=!0}]],getValue:function(a,b){this.bind();this.getValue(a,b)},setValue:function(a,b){this.bind();this.setValue(a,b)},bind:function(){var a=this.node,b=this.parsedPath,c=b.objectName,d=b.propertyName,e=b.propertyIndex;a||(this.node=
    915 a=wa.findNode(this.rootNode,b.nodeName)||this.rootNode);this.getValue=this._getValue_unavailable;this.setValue=this._setValue_unavailable;if(a){if(c){var f=b.objectIndex;switch(c){case "materials":if(!a.material){console.error("THREE.PropertyBinding: Can not bind to material as node does not have a material.",this);return}if(!a.material.materials){console.error("THREE.PropertyBinding: Can not bind to material.materials as node.material does not have a materials array.",this);return}a=a.material.materials;
    916 break;case "bones":if(!a.skeleton){console.error("THREE.PropertyBinding: Can not bind to bones as node does not have a skeleton.",this);return}a=a.skeleton.bones;for(c=0;c<a.length;c++)if(a[c].name===f){f=c;break}break;default:if(void 0===a[c]){console.error("THREE.PropertyBinding: Can not bind to objectName of node undefined.",this);return}a=a[c]}if(void 0!==f){if(void 0===a[f]){console.error("THREE.PropertyBinding: Trying to bind to objectIndex of objectName, but is undefined.",this,a);return}a=
    917 a[f]}}f=a[d];if(void 0===f)console.error("THREE.PropertyBinding: Trying to update property for track: "+b.nodeName+"."+d+" but it wasn't found.",a);else{b=this.Versioning.None;this.targetObject=a;void 0!==a.needsUpdate?b=this.Versioning.NeedsUpdate:void 0!==a.matrixWorldNeedsUpdate&&(b=this.Versioning.MatrixWorldNeedsUpdate);c=this.BindingType.Direct;if(void 0!==e){if("morphTargetInfluences"===d){if(!a.geometry){console.error("THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.",
    918 this);return}if(a.geometry.isBufferGeometry){if(!a.geometry.morphAttributes){console.error("THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.morphAttributes.",this);return}void 0!==a.morphTargetDictionary[e]&&(e=a.morphTargetDictionary[e])}else{console.error("THREE.PropertyBinding: Can not bind to morphTargetInfluences on THREE.Geometry. Use THREE.BufferGeometry instead.",this);return}}c=this.BindingType.ArrayElement;this.resolvedProperty=f;this.propertyIndex=
    919 e}else void 0!==f.fromArray&&void 0!==f.toArray?(c=this.BindingType.HasFromToArray,this.resolvedProperty=f):Array.isArray(f)?(c=this.BindingType.EntireArray,this.resolvedProperty=f):this.propertyName=d;this.getValue=this.GetterByBindingType[c];this.setValue=this.SetterByBindingTypeAndVersioning[c][b]}}else console.error("THREE.PropertyBinding: Trying to update node for track: "+this.path+" but it wasn't found.")},unbind:function(){this.node=null;this.getValue=this._getValue_unbound;this.setValue=
    920 this._setValue_unbound}});Object.assign(wa.prototype,{_getValue_unbound:wa.prototype.getValue,_setValue_unbound:wa.prototype.setValue});Object.assign(ji.prototype,{isAnimationObjectGroup:!0,add:function(){for(var a=this._objects,b=this._indicesByUUID,c=this._paths,d=this._parsedPaths,e=this._bindings,f=e.length,g=void 0,h=a.length,k=this.nCachedObjects_,n=0,m=arguments.length;n!==m;++n){var p=arguments[n],u=p.uuid,r=b[u];if(void 0===r){r=h++;b[u]=r;a.push(p);r=0;for(var t=f;r!==t;++r)e[r].push(new wa(p,
    921 c[r],d[r]))}else if(r<k){g=a[r];t=--k;var v=a[t];b[v.uuid]=r;a[r]=v;b[u]=t;a[t]=p;u=0;for(v=f;u!==v;++u){var x=e[u],A=x[r];x[r]=x[t];void 0===A&&(A=new wa(p,c[u],d[u]));x[t]=A}}else a[r]!==g&&console.error("THREE.AnimationObjectGroup: Different objects with the same UUID detected. Clean the caches or recreate your infrastructure when reloading scenes.")}this.nCachedObjects_=k},remove:function(){for(var a=this._objects,b=this._indicesByUUID,c=this._bindings,d=c.length,e=this.nCachedObjects_,f=0,g=
    922 arguments.length;f!==g;++f){var h=arguments[f],k=h.uuid,n=b[k];if(void 0!==n&&n>=e){var m=e++,p=a[m];b[p.uuid]=n;a[n]=p;b[k]=m;a[m]=h;h=0;for(k=d;h!==k;++h){p=c[h];var u=p[n];p[n]=p[m];p[m]=u}}}this.nCachedObjects_=e},uncache:function(){for(var a=this._objects,b=this._indicesByUUID,c=this._bindings,d=c.length,e=this.nCachedObjects_,f=a.length,g=0,h=arguments.length;g!==h;++g){var k=arguments[g].uuid,n=b[k];if(void 0!==n)if(delete b[k],n<e){k=--e;var m=a[k],p=--f,u=a[p];b[m.uuid]=n;a[n]=m;b[u.uuid]=
    923 k;a[k]=u;a.pop();m=0;for(u=d;m!==u;++m){var r=c[m],t=r[p];r[n]=r[k];r[k]=t;r.pop()}}else for(k=--f,p=a[k],b[p.uuid]=n,a[n]=p,a.pop(),p=0,m=d;p!==m;++p)u=c[p],u[n]=u[k],u.pop()}this.nCachedObjects_=e},subscribe_:function(a,b){var c=this._bindingsIndicesByPath,d=c[a],e=this._bindings;if(void 0!==d)return e[d];var f=this._paths,g=this._parsedPaths,h=this._objects,k=this.nCachedObjects_,n=Array(h.length);d=e.length;c[a]=d;f.push(a);g.push(b);e.push(n);c=k;for(d=h.length;c!==d;++c)n[c]=new wa(h[c],a,b);
    924 return n},unsubscribe_:function(a){var b=this._bindingsIndicesByPath,c=b[a];if(void 0!==c){var d=this._paths,e=this._parsedPaths,f=this._bindings,g=f.length-1,h=f[g];b[a[g]]=c;f[c]=h;f.pop();e[c]=e[g];e.pop();d[c]=d[g];d.pop()}}});Object.assign(ki.prototype,{play:function(){this._mixer._activateAction(this);return this},stop:function(){this._mixer._deactivateAction(this);return this.reset()},reset:function(){this.paused=!1;this.enabled=!0;this.time=0;this._loopCount=-1;this._startTime=null;return this.stopFading().stopWarping()},
    925 isRunning:function(){return this.enabled&&!this.paused&&0!==this.timeScale&&null===this._startTime&&this._mixer._isActiveAction(this)},isScheduled:function(){return this._mixer._isActiveAction(this)},startAt:function(a){this._startTime=a;return this},setLoop:function(a,b){this.loop=a;this.repetitions=b;return this},setEffectiveWeight:function(a){this.weight=a;this._effectiveWeight=this.enabled?a:0;return this.stopFading()},getEffectiveWeight:function(){return this._effectiveWeight},fadeIn:function(a){return this._scheduleFading(a,
    926 0,1)},fadeOut:function(a){return this._scheduleFading(a,1,0)},crossFadeFrom:function(a,b,c){a.fadeOut(b);this.fadeIn(b);if(c){c=this._clip.duration;var d=a._clip.duration,e=c/d;a.warp(1,d/c,b);this.warp(e,1,b)}return this},crossFadeTo:function(a,b,c){return a.crossFadeFrom(this,b,c)},stopFading:function(){var a=this._weightInterpolant;null!==a&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(a));return this},setEffectiveTimeScale:function(a){this.timeScale=a;this._effectiveTimeScale=
    927 this.paused?0:a;return this.stopWarping()},getEffectiveTimeScale:function(){return this._effectiveTimeScale},setDuration:function(a){this.timeScale=this._clip.duration/a;return this.stopWarping()},syncWith:function(a){this.time=a.time;this.timeScale=a.timeScale;return this.stopWarping()},halt:function(a){return this.warp(this._effectiveTimeScale,0,a)},warp:function(a,b,c){var d=this._mixer,e=d.time,f=this.timeScale,g=this._timeScaleInterpolant;null===g&&(this._timeScaleInterpolant=g=d._lendControlInterpolant());
    928 d=g.parameterPositions;g=g.sampleValues;d[0]=e;d[1]=e+c;g[0]=a/f;g[1]=b/f;return this},stopWarping:function(){var a=this._timeScaleInterpolant;null!==a&&(this._timeScaleInterpolant=null,this._mixer._takeBackControlInterpolant(a));return this},getMixer:function(){return this._mixer},getClip:function(){return this._clip},getRoot:function(){return this._localRoot||this._mixer._root},_update:function(a,b,c,d){if(this.enabled){var e=this._startTime;if(null!==e){b=(a-e)*c;if(0>b||0===c)return;this._startTime=
    929 null;b*=c}b*=this._updateTimeScale(a);c=this._updateTime(b);a=this._updateWeight(a);if(0<a)switch(b=this._interpolants,e=this._propertyBindings,this.blendMode){case 2501:d=0;for(var f=b.length;d!==f;++d)b[d].evaluate(c),e[d].accumulateAdditive(a);break;default:f=0;for(var g=b.length;f!==g;++f)b[f].evaluate(c),e[f].accumulate(d,a)}}else this._updateWeight(a)},_updateWeight:function(a){var b=0;if(this.enabled){b=this.weight;var c=this._weightInterpolant;if(null!==c){var d=c.evaluate(a)[0];b*=d;a>c.parameterPositions[1]&&
    930 (this.stopFading(),0===d&&(this.enabled=!1))}}return this._effectiveWeight=b},_updateTimeScale:function(a){var b=0;if(!this.paused){b=this.timeScale;var c=this._timeScaleInterpolant;if(null!==c){var d=c.evaluate(a)[0];b*=d;a>c.parameterPositions[1]&&(this.stopWarping(),0===b?this.paused=!0:this.timeScale=b)}}return this._effectiveTimeScale=b},_updateTime:function(a){var b=this._clip.duration,c=this.loop,d=this.time+a,e=this._loopCount,f=2202===c;if(0===a)return-1===e?d:f&&1===(e&1)?b-d:d;if(2200===
    931 c)a:{if(-1===e&&(this._loopCount=0,this._setEndings(!0,!0,!1)),d>=b)d=b;else if(0>d)d=0;else{this.time=d;break a}this.clampWhenFinished?this.paused=!0:this.enabled=!1;this.time=d;this._mixer.dispatchEvent({type:"finished",action:this,direction:0>a?-1:1})}else{-1===e&&(0<=a?(e=0,this._setEndings(!0,0===this.repetitions,f)):this._setEndings(0===this.repetitions,!0,f));if(d>=b||0>d){c=Math.floor(d/b);d-=b*c;e+=Math.abs(c);var g=this.repetitions-e;0>=g?(this.clampWhenFinished?this.paused=!0:this.enabled=
    932 !1,this.time=d=0<a?b:0,this._mixer.dispatchEvent({type:"finished",action:this,direction:0<a?1:-1})):(1===g?(a=0>a,this._setEndings(a,!a,f)):this._setEndings(!1,!1,f),this._loopCount=e,this.time=d,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:c}))}else this.time=d;if(f&&1===(e&1))return b-d}return d},_setEndings:function(a,b,c){var d=this._interpolantSettings;c?(d.endingStart=2401,d.endingEnd=2401):(d.endingStart=a?this.zeroSlopeAtStart?2401:2400:2402,d.endingEnd=b?this.zeroSlopeAtEnd?
    933 2401:2400:2402)},_scheduleFading:function(a,b,c){var d=this._mixer,e=d.time,f=this._weightInterpolant;null===f&&(this._weightInterpolant=f=d._lendControlInterpolant());d=f.parameterPositions;f=f.sampleValues;d[0]=e;f[0]=b;d[1]=e+a;f[1]=c;return this}});Mg.prototype=Object.assign(Object.create(Ea.prototype),{constructor:Mg,_bindAction:function(a,b){var c=a._localRoot||this._root,d=a._clip.tracks,e=d.length,f=a._propertyBindings;a=a._interpolants;var g=c.uuid,h=this._bindingsByRootAndName,k=h[g];void 0===
    934 k&&(k={},h[g]=k);for(h=0;h!==e;++h){var n=d[h],m=n.name,p=k[m];if(void 0===p){p=f[h];if(void 0!==p){null===p._cacheIndex&&(++p.referenceCount,this._addInactiveBinding(p,g,m));continue}p=new Lg(wa.create(c,m,b&&b._propertyBindings[h].binding.parsedPath),n.ValueTypeName,n.getValueSize());++p.referenceCount;this._addInactiveBinding(p,g,m)}f[h]=p;a[h].resultBuffer=p.buffer}},_activateAction:function(a){if(!this._isActiveAction(a)){if(null===a._cacheIndex){var b=(a._localRoot||this._root).uuid,c=a._clip.uuid,
    935 d=this._actionsByClip[c];this._bindAction(a,d&&d.knownActions[0]);this._addInactiveAction(a,c,b)}b=a._propertyBindings;c=0;for(d=b.length;c!==d;++c){var e=b[c];0===e.useCount++&&(this._lendBinding(e),e.saveOriginalState())}this._lendAction(a)}},_deactivateAction:function(a){if(this._isActiveAction(a)){for(var b=a._propertyBindings,c=0,d=b.length;c!==d;++c){var e=b[c];0===--e.useCount&&(e.restoreOriginalState(),this._takeBackBinding(e))}this._takeBackAction(a)}},_initMemoryManager:function(){this._actions=
    936 [];this._nActiveActions=0;this._actionsByClip={};this._bindings=[];this._nActiveBindings=0;this._bindingsByRootAndName={};this._controlInterpolants=[];this._nActiveControlInterpolants=0;var a=this;this.stats={actions:{get total(){return a._actions.length},get inUse(){return a._nActiveActions}},bindings:{get total(){return a._bindings.length},get inUse(){return a._nActiveBindings}},controlInterpolants:{get total(){return a._controlInterpolants.length},get inUse(){return a._nActiveControlInterpolants}}}},
    937 _isActiveAction:function(a){a=a._cacheIndex;return null!==a&&a<this._nActiveActions},_addInactiveAction:function(a,b,c){var d=this._actions,e=this._actionsByClip,f=e[b];void 0===f?(f={knownActions:[a],actionByRoot:{}},a._byClipCacheIndex=0,e[b]=f):(b=f.knownActions,a._byClipCacheIndex=b.length,b.push(a));a._cacheIndex=d.length;d.push(a);f.actionByRoot[c]=a},_removeInactiveAction:function(a){var b=this._actions,c=b[b.length-1],d=a._cacheIndex;c._cacheIndex=d;b[d]=c;b.pop();a._cacheIndex=null;b=a._clip.uuid;
    938 c=this._actionsByClip;d=c[b];var e=d.knownActions,f=e[e.length-1],g=a._byClipCacheIndex;f._byClipCacheIndex=g;e[g]=f;e.pop();a._byClipCacheIndex=null;delete d.actionByRoot[(a._localRoot||this._root).uuid];0===e.length&&delete c[b];this._removeInactiveBindingsForAction(a)},_removeInactiveBindingsForAction:function(a){a=a._propertyBindings;for(var b=0,c=a.length;b!==c;++b){var d=a[b];0===--d.referenceCount&&this._removeInactiveBinding(d)}},_lendAction:function(a){var b=this._actions,c=a._cacheIndex,
    939 d=this._nActiveActions++,e=b[d];a._cacheIndex=d;b[d]=a;e._cacheIndex=c;b[c]=e},_takeBackAction:function(a){var b=this._actions,c=a._cacheIndex,d=--this._nActiveActions,e=b[d];a._cacheIndex=d;b[d]=a;e._cacheIndex=c;b[c]=e},_addInactiveBinding:function(a,b,c){var d=this._bindingsByRootAndName,e=this._bindings,f=d[b];void 0===f&&(f={},d[b]=f);f[c]=a;a._cacheIndex=e.length;e.push(a)},_removeInactiveBinding:function(a){var b=this._bindings,c=a.binding,d=c.rootNode.uuid;c=c.path;var e=this._bindingsByRootAndName,
    940 f=e[d],g=b[b.length-1];a=a._cacheIndex;g._cacheIndex=a;b[a]=g;b.pop();delete f[c];0===Object.keys(f).length&&delete e[d]},_lendBinding:function(a){var b=this._bindings,c=a._cacheIndex,d=this._nActiveBindings++,e=b[d];a._cacheIndex=d;b[d]=a;e._cacheIndex=c;b[c]=e},_takeBackBinding:function(a){var b=this._bindings,c=a._cacheIndex,d=--this._nActiveBindings,e=b[d];a._cacheIndex=d;b[d]=a;e._cacheIndex=c;b[c]=e},_lendControlInterpolant:function(){var a=this._controlInterpolants,b=this._nActiveControlInterpolants++,
    941 c=a[b];void 0===c&&(c=new le(new Float32Array(2),new Float32Array(2),1,this._controlInterpolantsResultBuffer),c.__cacheIndex=b,a[b]=c);return c},_takeBackControlInterpolant:function(a){var b=this._controlInterpolants,c=a.__cacheIndex,d=--this._nActiveControlInterpolants,e=b[d];a.__cacheIndex=d;b[d]=a;e.__cacheIndex=c;b[c]=e},_controlInterpolantsResultBuffer:new Float32Array(1),clipAction:function(a,b,c){var d=b||this._root,e=d.uuid;d="string"===typeof a?Pa.findByName(d,a):a;a=null!==d?d.uuid:a;var f=
    942 this._actionsByClip[a],g=null;void 0===c&&(c=null!==d?d.blendMode:2500);if(void 0!==f){g=f.actionByRoot[e];if(void 0!==g&&g.blendMode===c)return g;g=f.knownActions[0];null===d&&(d=g._clip)}if(null===d)return null;b=new ki(this,d,b,c);this._bindAction(b,g);this._addInactiveAction(b,a,e);return b},existingAction:function(a,b){var c=b||this._root;b=c.uuid;c="string"===typeof a?Pa.findByName(c,a):a;a=this._actionsByClip[c?c.uuid:a];return void 0!==a?a.actionByRoot[b]||null:null},stopAllAction:function(){for(var a=
    943 this._actions,b=this._nActiveActions-1;0<=b;--b)a[b].stop();return this},update:function(a){a*=this.timeScale;for(var b=this._actions,c=this._nActiveActions,d=this.time+=a,e=Math.sign(a),f=this._accuIndex^=1,g=0;g!==c;++g)b[g]._update(d,a,e,f);a=this._bindings;b=this._nActiveBindings;for(c=0;c!==b;++c)a[c].apply(f);return this},setTime:function(a){for(var b=this.time=0;b<this._actions.length;b++)this._actions[b].time=0;return this.update(a)},getRoot:function(){return this._root},uncacheClip:function(a){var b=
    944 this._actions;a=a.uuid;var c=this._actionsByClip,d=c[a];if(void 0!==d){d=d.knownActions;for(var e=0,f=d.length;e!==f;++e){var g=d[e];this._deactivateAction(g);var h=g._cacheIndex,k=b[b.length-1];g._cacheIndex=null;g._byClipCacheIndex=null;k._cacheIndex=h;b[h]=k;b.pop();this._removeInactiveBindingsForAction(g)}delete c[a]}},uncacheRoot:function(a){a=a.uuid;var b=this._actionsByClip;for(d in b){var c=b[d].actionByRoot[a];void 0!==c&&(this._deactivateAction(c),this._removeInactiveAction(c))}var d=this._bindingsByRootAndName[a];
    945 if(void 0!==d)for(var e in d)a=d[e],a.restoreOriginalState(),this._removeInactiveBinding(a)},uncacheAction:function(a,b){a=this.existingAction(a,b);null!==a&&(this._deactivateAction(a),this._removeInactiveAction(a))}});vf.prototype.clone=function(){return new vf(void 0===this.value.clone?this.value:this.value.clone())};Ng.prototype=Object.assign(Object.create(Ba.prototype),{constructor:Ng,isInstancedInterleavedBuffer:!0,copy:function(a){Ba.prototype.copy.call(this,a);this.meshPerAttribute=a.meshPerAttribute;
    946 return this},clone:function(a){a=Ba.prototype.clone.call(this,a);a.meshPerAttribute=this.meshPerAttribute;return a},toJSON:function(a){a=Ba.prototype.toJSON.call(this,a);a.isInstancedInterleavedBuffer=!0;a.meshPerAttribute=this.meshPerAttribute;return a}});Object.assign(Og.prototype,{set:function(a,b){this.ray.set(a,b)},setFromCamera:function(a,b){b&&b.isPerspectiveCamera?(this.ray.origin.setFromMatrixPosition(b.matrixWorld),this.ray.direction.set(a.x,a.y,.5).unproject(b).sub(this.ray.origin).normalize(),
    947 this.camera=b):b&&b.isOrthographicCamera?(this.ray.origin.set(a.x,a.y,(b.near+b.far)/(b.near-b.far)).unproject(b),this.ray.direction.set(0,0,-1).transformDirection(b.matrixWorld),this.camera=b):console.error("THREE.Raycaster: Unsupported camera type.")},intersectObject:function(a,b,c){c=c||[];Pg(a,this,c,b);c.sort(li);return c},intersectObjects:function(a,b,c){c=c||[];if(!1===Array.isArray(a))return console.warn("THREE.Raycaster.intersectObjects: objects is not an Array."),c;for(var d=0,e=a.length;d<
    948 e;d++)Pg(a[d],this,c,b);c.sort(li);return c}});var Ac=function(a,b,c){void 0===a&&(a=1);void 0===b&&(b=0);void 0===c&&(c=0);this.radius=a;this.phi=b;this.theta=c;return this};Ac.prototype.set=function(a,b,c){this.radius=a;this.phi=b;this.theta=c;return this};Ac.prototype.clone=function(){return(new this.constructor).copy(this)};Ac.prototype.copy=function(a){this.radius=a.radius;this.phi=a.phi;this.theta=a.theta;return this};Ac.prototype.makeSafe=function(){this.phi=Math.max(1E-6,Math.min(Math.PI-
    949 1E-6,this.phi));return this};Ac.prototype.setFromVector3=function(a){return this.setFromCartesianCoords(a.x,a.y,a.z)};Ac.prototype.setFromCartesianCoords=function(a,b,c){this.radius=Math.sqrt(a*a+b*b+c*c);0===this.radius?this.phi=this.theta=0:(this.theta=Math.atan2(a,c),this.phi=Math.acos(P.clamp(b/this.radius,-1,1)));return this};Object.assign(mi.prototype,{set:function(a,b,c){this.radius=a;this.theta=b;this.y=c;return this},clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.radius=
    950 a.radius;this.theta=a.theta;this.y=a.y;return this},setFromVector3:function(a){return this.setFromCartesianCoords(a.x,a.y,a.z)},setFromCartesianCoords:function(a,b,c){this.radius=Math.sqrt(a*a+c*c);this.theta=Math.atan2(a,c);this.y=b;return this}});var Ti=new u;Object.assign(Qg.prototype,{set:function(a,b){this.min.copy(a);this.max.copy(b);return this},setFromPoints:function(a){this.makeEmpty();for(var b=0,c=a.length;b<c;b++)this.expandByPoint(a[b]);return this},setFromCenterAndSize:function(a,b){b=
    951 Ti.copy(b).multiplyScalar(.5);this.min.copy(a).sub(b);this.max.copy(a).add(b);return this},clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.min.copy(a.min);this.max.copy(a.max);return this},makeEmpty:function(){this.min.x=this.min.y=Infinity;this.max.x=this.max.y=-Infinity;return this},isEmpty:function(){return this.max.x<this.min.x||this.max.y<this.min.y},getCenter:function(a){void 0===a&&(console.warn("THREE.Box2: .getCenter() target is now required"),a=new u);return this.isEmpty()?
    952 a.set(0,0):a.addVectors(this.min,this.max).multiplyScalar(.5)},getSize:function(a){void 0===a&&(console.warn("THREE.Box2: .getSize() target is now required"),a=new u);return this.isEmpty()?a.set(0,0):a.subVectors(this.max,this.min)},expandByPoint:function(a){this.min.min(a);this.max.max(a);return this},expandByVector:function(a){this.min.sub(a);this.max.add(a);return this},expandByScalar:function(a){this.min.addScalar(-a);this.max.addScalar(a);return this},containsPoint:function(a){return a.x<this.min.x||
    953 a.x>this.max.x||a.y<this.min.y||a.y>this.max.y?!1:!0},containsBox:function(a){return this.min.x<=a.min.x&&a.max.x<=this.max.x&&this.min.y<=a.min.y&&a.max.y<=this.max.y},getParameter:function(a,b){void 0===b&&(console.warn("THREE.Box2: .getParameter() target is now required"),b=new u);return b.set((a.x-this.min.x)/(this.max.x-this.min.x),(a.y-this.min.y)/(this.max.y-this.min.y))},intersectsBox:function(a){return a.max.x<this.min.x||a.min.x>this.max.x||a.max.y<this.min.y||a.min.y>this.max.y?!1:!0},
    954 clampPoint:function(a,b){void 0===b&&(console.warn("THREE.Box2: .clampPoint() target is now required"),b=new u);return b.copy(a).clamp(this.min,this.max)},distanceToPoint:function(a){return Ti.copy(a).clamp(this.min,this.max).sub(a).length()},intersect:function(a){this.min.max(a.min);this.max.min(a.max);return this},union:function(a){this.min.min(a.min);this.max.max(a.max);return this},translate:function(a){this.min.add(a);this.max.add(a);return this},equals:function(a){return a.min.equals(this.min)&&
    955 a.max.equals(this.max)}});var Ui=new m,Wf=new m;Object.assign(Rg.prototype,{set:function(a,b){this.start.copy(a);this.end.copy(b);return this},clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.start.copy(a.start);this.end.copy(a.end);return this},getCenter:function(a){void 0===a&&(console.warn("THREE.Line3: .getCenter() target is now required"),a=new m);return a.addVectors(this.start,this.end).multiplyScalar(.5)},delta:function(a){void 0===a&&(console.warn("THREE.Line3: .delta() target is now required"),
    956 a=new m);return a.subVectors(this.end,this.start)},distanceSq:function(){return this.start.distanceToSquared(this.end)},distance:function(){return this.start.distanceTo(this.end)},at:function(a,b){void 0===b&&(console.warn("THREE.Line3: .at() target is now required"),b=new m);return this.delta(b).multiplyScalar(a).add(this.start)},closestPointToPointParameter:function(a,b){Ui.subVectors(a,this.start);Wf.subVectors(this.end,this.start);a=Wf.dot(Wf);a=Wf.dot(Ui)/a;b&&(a=P.clamp(a,0,1));return a},closestPointToPoint:function(a,
    957 b,c){a=this.closestPointToPointParameter(a,b);void 0===c&&(console.warn("THREE.Line3: .closestPointToPoint() target is now required"),c=new m);return this.delta(c).multiplyScalar(a).add(this.start)},applyMatrix4:function(a){this.start.applyMatrix4(a);this.end.applyMatrix4(a);return this},equals:function(a){return a.start.equals(this.start)&&a.end.equals(this.end)}});qe.prototype=Object.create(C.prototype);qe.prototype.constructor=qe;qe.prototype.isImmediateRenderObject=!0;var Vi=new m;jd.prototype=
    958 Object.create(C.prototype);jd.prototype.constructor=jd;jd.prototype.dispose=function(){this.cone.geometry.dispose();this.cone.material.dispose()};jd.prototype.update=function(){this.light.updateMatrixWorld();var a=this.light.distance?this.light.distance:1E3,b=a*Math.tan(this.light.angle);this.cone.scale.set(b,b,a);Vi.setFromMatrixPosition(this.light.target.matrixWorld);this.cone.lookAt(Vi);void 0!==this.color?this.cone.material.color.set(this.color):this.cone.material.color.copy(this.light.color)};
    959 var Ub=new m,Xf=new U,ph=new U;rc.prototype=Object.create(ea.prototype);rc.prototype.constructor=rc;rc.prototype.isSkeletonHelper=!0;rc.prototype.updateMatrixWorld=function(a){var b=this.bones,c=this.geometry,d=c.getAttribute("position");ph.getInverse(this.root.matrixWorld);for(var e=0,f=0;e<b.length;e++){var g=b[e];g.parent&&g.parent.isBone&&(Xf.multiplyMatrices(ph,g.matrixWorld),Ub.setFromMatrixPosition(Xf),d.setXYZ(f,Ub.x,Ub.y,Ub.z),Xf.multiplyMatrices(ph,g.parent.matrixWorld),Ub.setFromMatrixPosition(Xf),
    960 d.setXYZ(f+1,Ub.x,Ub.y,Ub.z),f+=2)}c.getAttribute("position").needsUpdate=!0;C.prototype.updateMatrixWorld.call(this,a)};kd.prototype=Object.create(T.prototype);kd.prototype.constructor=kd;kd.prototype.dispose=function(){this.geometry.dispose();this.material.dispose()};kd.prototype.update=function(){void 0!==this.color?this.material.color.set(this.color):this.material.color.copy(this.light.color)};var gl=new m,Wi=new H,Xi=new H;ld.prototype=Object.create(C.prototype);ld.prototype.constructor=ld;ld.prototype.dispose=
    961 function(){this.children[0].geometry.dispose();this.children[0].material.dispose()};ld.prototype.update=function(){var a=this.children[0];if(void 0!==this.color)this.material.color.set(this.color);else{var b=a.geometry.getAttribute("color");Wi.copy(this.light.color);Xi.copy(this.light.groundColor);for(var c=0,d=b.count;c<d;c++){var e=c<d/2?Wi:Xi;b.setXYZ(c,e.r,e.g,e.b)}b.needsUpdate=!0}a.lookAt(gl.setFromMatrixPosition(this.light.matrixWorld).negate())};re.prototype=Object.create(ea.prototype);re.prototype.constructor=
    962 re;wf.prototype=Object.create(ea.prototype);wf.prototype.constructor=wf;var Yi=new m,Yf=new m,Zi=new m;md.prototype=Object.create(C.prototype);md.prototype.constructor=md;md.prototype.dispose=function(){this.lightPlane.geometry.dispose();this.lightPlane.material.dispose();this.targetLine.geometry.dispose();this.targetLine.material.dispose()};md.prototype.update=function(){Yi.setFromMatrixPosition(this.light.matrixWorld);Yf.setFromMatrixPosition(this.light.target.matrixWorld);Zi.subVectors(Yf,Yi);
    963 this.lightPlane.lookAt(Yf);void 0!==this.color?(this.lightPlane.material.color.set(this.color),this.targetLine.material.color.set(this.color)):(this.lightPlane.material.color.copy(this.light.color),this.targetLine.material.color.copy(this.light.color));this.targetLine.lookAt(Yf);this.targetLine.scale.z=Zi.length()};var xf=new m,la=new db;se.prototype=Object.create(ea.prototype);se.prototype.constructor=se;se.prototype.update=function(){var a=this.geometry,b=this.pointMap;la.projectionMatrixInverse.copy(this.camera.projectionMatrixInverse);
    964 oa("c",b,a,la,0,0,-1);oa("t",b,a,la,0,0,1);oa("n1",b,a,la,-1,-1,-1);oa("n2",b,a,la,1,-1,-1);oa("n3",b,a,la,-1,1,-1);oa("n4",b,a,la,1,1,-1);oa("f1",b,a,la,-1,-1,1);oa("f2",b,a,la,1,-1,1);oa("f3",b,a,la,-1,1,1);oa("f4",b,a,la,1,1,1);oa("u1",b,a,la,.7,1.1,-1);oa("u2",b,a,la,-.7,1.1,-1);oa("u3",b,a,la,0,2,-1);oa("cf1",b,a,la,-1,0,1);oa("cf2",b,a,la,1,0,1);oa("cf3",b,a,la,0,-1,1);oa("cf4",b,a,la,0,1,1);oa("cn1",b,a,la,-1,0,-1);oa("cn2",b,a,la,1,0,-1);oa("cn3",b,a,la,0,-1,-1);oa("cn4",b,a,la,0,1,-1);a.getAttribute("position").needsUpdate=
    965 !0};var Zf=new Sa;Nb.prototype=Object.create(ea.prototype);Nb.prototype.constructor=Nb;Nb.prototype.update=function(a){void 0!==a&&console.warn("THREE.BoxHelper: .update() has no longer arguments.");void 0!==this.object&&Zf.setFromObject(this.object);if(!Zf.isEmpty()){a=Zf.min;var b=Zf.max,c=this.geometry.attributes.position,d=c.array;d[0]=b.x;d[1]=b.y;d[2]=b.z;d[3]=a.x;d[4]=b.y;d[5]=b.z;d[6]=a.x;d[7]=a.y;d[8]=b.z;d[9]=b.x;d[10]=a.y;d[11]=b.z;d[12]=b.x;d[13]=b.y;d[14]=a.z;d[15]=a.x;d[16]=b.y;d[17]=
    966 a.z;d[18]=a.x;d[19]=a.y;d[20]=a.z;d[21]=b.x;d[22]=a.y;d[23]=a.z;c.needsUpdate=!0;this.geometry.computeBoundingSphere()}};Nb.prototype.setFromObject=function(a){this.object=a;this.update();return this};Nb.prototype.copy=function(a){ea.prototype.copy.call(this,a);this.object=a.object;return this};te.prototype=Object.create(ea.prototype);te.prototype.constructor=te;te.prototype.updateMatrixWorld=function(a){var b=this.box;b.isEmpty()||(b.getCenter(this.position),b.getSize(this.scale),this.scale.multiplyScalar(.5),
    967 C.prototype.updateMatrixWorld.call(this,a))};ue.prototype=Object.create(Ja.prototype);ue.prototype.constructor=ue;ue.prototype.updateMatrixWorld=function(a){var b=-this.plane.constant;1E-8>Math.abs(b)&&(b=1E-8);this.scale.set(.5*this.size,.5*this.size,b);this.children[0].material.side=0>b?1:0;this.lookAt(this.plane.normal);C.prototype.updateMatrixWorld.call(this,a)};var $i=new m,yf,Sg;Ob.prototype=Object.create(C.prototype);Ob.prototype.constructor=Ob;Ob.prototype.setDirection=function(a){.99999<
    968 a.y?this.quaternion.set(0,0,0,1):-.99999>a.y?this.quaternion.set(1,0,0,0):($i.set(a.z,0,-a.x).normalize(),this.quaternion.setFromAxisAngle($i,Math.acos(a.y)))};Ob.prototype.setLength=function(a,b,c){void 0===b&&(b=.2*a);void 0===c&&(c=.2*b);this.line.scale.set(1,Math.max(1E-4,a-b),1);this.line.updateMatrix();this.cone.scale.set(c,b,c);this.cone.position.y=a;this.cone.updateMatrix()};Ob.prototype.setColor=function(a){this.line.material.color.set(a);this.cone.material.color.set(a)};Ob.prototype.copy=
    969 function(a){C.prototype.copy.call(this,a,!1);this.line.copy(a.line);this.cone.copy(a.cone);return this};ve.prototype=Object.create(ea.prototype);ve.prototype.constructor=ve;var kb=Math.pow(2,8),aj=[.125,.215,.35,.446,.526,.582],bj=5+aj.length,jb={3E3:0,3001:1,3002:2,3004:3,3005:4,3006:5,3007:6},qh=new hd,rh=function(){for(var a=[],b=[],c=[],d=8,e=0;e<bj;e++){var f=Math.pow(2,d);b.push(f);var g=1/f;4<e?g=aj[e-8+4-1]:0==e&&(g=0);c.push(g);g=1/(f-1);f=-g/2;g=1+g/2;var h=[f,f,g,f,g,g,f,f,g,g,f,g];f=new Float32Array(108);
    970 g=new Float32Array(72);for(var k=new Float32Array(36),n=0;6>n;n++){var m=n%3*2/3-1,p=2<n?0:-1;f.set([m,p,0,m+2/3,p,0,m+2/3,p+1,0,m,p,0,m+2/3,p+1,0,m,p+1,0],18*n);g.set(h,12*n);k.set([n,n,n,n,n,n],6*n)}h=new E;h.setAttribute("position",new J(f,3));h.setAttribute("uv",new J(g,2));h.setAttribute("faceIndex",new J(k,1));a.push(h);4<d&&d--}return{_lodPlanes:a,_sizeLods:b,_sigmas:c}}(),Ge=rh._lodPlanes,cj=rh._sizeLods,$f=rh._sigmas,sh=null,Bc=(1+Math.sqrt(5))/2,zd=1/Bc,dj=[new m(1,1,1),new m(-1,1,1),new m(1,
    971 1,-1),new m(-1,1,-1),new m(0,Bc,zd),new m(0,Bc,-zd),new m(zd,0,Bc),new m(-zd,0,Bc),new m(Bc,zd,0),new m(-Bc,zd,0)];Tg.prototype={constructor:Tg,fromScene:function(a,b,c,d){void 0===b&&(b=0);void 0===c&&(c=.1);void 0===d&&(d=100);sh=this._renderer.getRenderTarget();var e=this._allocateTargets();this._sceneToCubeUV(a,c,d,e);0<b&&this._blur(e,0,0,b);this._applyPMREM(e);this._cleanup(e);return e},fromEquirectangular:function(a){return this._fromTexture(a)},fromCubemap:function(a){return this._fromTexture(a)},
    972 compileCubemapShader:function(){null===this._cubemapShader&&(this._cubemapShader=qi(),this._compileMaterial(this._cubemapShader))},compileEquirectangularShader:function(){null===this._equirectShader&&(this._equirectShader=pi(),this._compileMaterial(this._equirectShader))},dispose:function(){this._blurMaterial.dispose();null!==this._cubemapShader&&this._cubemapShader.dispose();null!==this._equirectShader&&this._equirectShader.dispose();for(var a=0;a<Ge.length;a++)Ge[a].dispose()},_cleanup:function(a){this._pingPongRenderTarget.dispose();
    973 this._renderer.setRenderTarget(sh);a.scissorTest=!1;zf(a,0,0,a.width,a.height)},_fromTexture:function(a){sh=this._renderer.getRenderTarget();var b=this._allocateTargets(a);this._textureToCubeUV(a,b);this._applyPMREM(b);this._cleanup(b);return b},_allocateTargets:function(a){var b=void 0===a||1009!==a.type?!1:3E3===a.encoding||3001===a.encoding||3007===a.encoding;b={magFilter:1003,minFilter:1003,generateMipmaps:!1,type:1009,format:1023,encoding:b?a.encoding:3002,depthBuffer:!1,stencilBuffer:!1};var c=
    974 oi(b);c.depthBuffer=a?!1:!0;this._pingPongRenderTarget=oi(b);return c},_compileMaterial:function(a){a=new T(Ge[0],a);this._renderer.compile(a,qh)},_sceneToCubeUV:function(a,b,c,d){b=new W(90,1,b,c);c=[1,-1,1,1,1,1];var e=[1,1,1,-1,-1,-1],f=this._renderer,g=f.outputEncoding,h=f.toneMapping,k=f.getClearColor(),m=f.getClearAlpha();f.toneMapping=0;f.outputEncoding=3E3;var q=a.background;if(q&&q.isColor){q.convertSRGBToLinear();var p=Math.min(Math.max(Math.ceil(Math.log2(Math.max(q.r,q.g,q.b))),-128),
    975 127);q=q.multiplyScalar(Math.pow(2,-p));f.setClearColor(q,(p+128)/255);a.background=null}for(q=0;6>q;q++)p=q%3,0==p?(b.up.set(0,c[q],0),b.lookAt(e[q],0,0)):1==p?(b.up.set(0,0,c[q]),b.lookAt(0,e[q],0)):(b.up.set(0,c[q],0),b.lookAt(0,0,e[q])),zf(d,p*kb,2<q?kb:0,kb,kb),f.setRenderTarget(d),f.render(a,b);f.toneMapping=h;f.outputEncoding=g;f.setClearColor(k,m)},_textureToCubeUV:function(a,b){var c=this._renderer;a.isCubeTexture?null==this._cubemapShader&&(this._cubemapShader=qi()):null==this._equirectShader&&
    976 (this._equirectShader=pi());var d=a.isCubeTexture?this._cubemapShader:this._equirectShader,e=new T(Ge[0],d);d=d.uniforms;d.envMap.value=a;a.isCubeTexture||d.texelSize.value.set(1/a.image.width,1/a.image.height);d.inputEncoding.value=jb[a.encoding];d.outputEncoding.value=jb[b.texture.encoding];zf(b,0,0,3*kb,2*kb);c.setRenderTarget(b);c.render(e,qh)},_applyPMREM:function(a){var b=this._renderer,c=b.autoClear;b.autoClear=!1;for(var d=1;d<bj;d++)this._blur(a,d-1,d,Math.sqrt($f[d]*$f[d]-$f[d-1]*$f[d-1]),
    977 dj[(d-1)%dj.length]);b.autoClear=c},_blur:function(a,b,c,d,e){var f=this._pingPongRenderTarget;this._halfBlur(a,f,b,c,d,"latitudinal",e);this._halfBlur(f,a,c,c,d,"longitudinal",e)},_halfBlur:function(a,b,c,d,e,f,g){var h=this._renderer,k=this._blurMaterial;"latitudinal"!==f&&"longitudinal"!==f&&console.error("blur direction must be either latitudinal or longitudinal!");var m=new T(Ge[d],k);k=k.uniforms;var q=cj[c]-1;q=isFinite(e)?Math.PI/(2*q):2*Math.PI/39;var p=e/q,u=isFinite(e)?1+Math.floor(3*p):
    978 20;20<u&&console.warn("sigmaRadians, "+e+", is too large and will clip, as it requested "+u+" samples when the maximum is set to 20");e=[];for(var r=0,t=0;20>t;++t){var v=t/p;v=Math.exp(-v*v/2);e.push(v);0==t?r+=v:t<u&&(r+=2*v)}for(p=0;p<e.length;p++)e[p]/=r;k.envMap.value=a.texture;k.samples.value=u;k.weights.value=e;k.latitudinal.value="latitudinal"===f;g&&(k.poleAxis.value=g);k.dTheta.value=q;k.mipInt.value=8-c;k.inputEncoding.value=jb[a.texture.encoding];k.outputEncoding.value=jb[a.texture.encoding];
    979 a=cj[d];zf(b,3*Math.max(0,kb-2*a),(0===d?0:2*kb)+2*a*(4<d?d-8+4:0),3*a,2*a);h.setRenderTarget(b);h.render(m,qh)}};K.create=function(a,b){console.log("THREE.Curve.create() has been deprecated");a.prototype=Object.create(K.prototype);a.prototype.constructor=a;a.prototype.getPoint=b;return a};Object.assign(sb.prototype,{createPointsGeometry:function(a){console.warn("THREE.CurvePath: .createPointsGeometry() has been removed. Use new THREE.Geometry().setFromPoints( points ) instead.");a=this.getPoints(a);
    980 return this.createGeometry(a)},createSpacedPointsGeometry:function(a){console.warn("THREE.CurvePath: .createSpacedPointsGeometry() has been removed. Use new THREE.Geometry().setFromPoints( points ) instead.");a=this.getSpacedPoints(a);return this.createGeometry(a)},createGeometry:function(a){console.warn("THREE.CurvePath: .createGeometry() has been removed. Use new THREE.Geometry().setFromPoints( points ) instead.");for(var b=new F,c=0,d=a.length;c<d;c++){var e=a[c];b.vertices.push(new m(e.x,e.y,
    981 e.z||0))}return b}});Object.assign($a.prototype,{fromPoints:function(a){console.warn("THREE.Path: .fromPoints() has been renamed to .setFromPoints().");return this.setFromPoints(a)}});ri.prototype=Object.create(za.prototype);si.prototype=Object.create(za.prototype);Wg.prototype=Object.create(za.prototype);Object.assign(Wg.prototype,{initFromArray:function(){console.error("THREE.Spline: .initFromArray() has been removed.")},getControlPointsArray:function(){console.error("THREE.Spline: .getControlPointsArray() has been removed.")},
    982 reparametrizeByArcLength:function(){console.error("THREE.Spline: .reparametrizeByArcLength() has been removed.")}});re.prototype.setColors=function(){console.error("THREE.GridHelper: setColors() has been deprecated, pass them in the constructor instead.")};rc.prototype.update=function(){console.error("THREE.SkeletonHelper: update() no longer needs to be called.")};Object.assign(X.prototype,{extractUrlBase:function(a){console.warn("THREE.Loader: .extractUrlBase() has been deprecated. Use THREE.LoaderUtils.extractUrlBase() instead.");
    983 return oh.extractUrlBase(a)}});X.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.")}};Object.assign(tf.prototype,{setTexturePath:function(a){console.warn("THREE.ObjectLoader: .setTexturePath() has been renamed to .setResourcePath().");return this.setResourcePath(a)}});Object.assign(Qg.prototype,{center:function(a){console.warn("THREE.Box2: .center() has been renamed to .getCenter().");
    984 return this.getCenter(a)},empty:function(){console.warn("THREE.Box2: .empty() has been renamed to .isEmpty().");return this.isEmpty()},isIntersectionBox:function(a){console.warn("THREE.Box2: .isIntersectionBox() has been renamed to .intersectsBox().");return this.intersectsBox(a)},size:function(a){console.warn("THREE.Box2: .size() has been renamed to .getSize().");return this.getSize(a)}});Object.assign(Sa.prototype,{center:function(a){console.warn("THREE.Box3: .center() has been renamed to .getCenter().");
    985 return this.getCenter(a)},empty:function(){console.warn("THREE.Box3: .empty() has been renamed to .isEmpty().");return this.isEmpty()},isIntersectionBox:function(a){console.warn("THREE.Box3: .isIntersectionBox() has been renamed to .intersectsBox().");return this.intersectsBox(a)},isIntersectionSphere:function(a){console.warn("THREE.Box3: .isIntersectionSphere() has been renamed to .intersectsSphere().");return this.intersectsSphere(a)},size:function(a){console.warn("THREE.Box3: .size() has been renamed to .getSize().");
    986 return this.getSize(a)}});Object.assign(cb.prototype,{empty:function(){console.warn("THREE.Sphere: .empty() has been renamed to .isEmpty().");return this.isEmpty()}});Jc.prototype.setFromMatrix=function(a){console.warn("THREE.Frustum: .setFromMatrix() has been renamed to .setFromProjectionMatrix().");return this.setFromProjectionMatrix(a)};Rg.prototype.center=function(a){console.warn("THREE.Line3: .center() has been renamed to .getCenter().");return this.getCenter(a)};Object.assign(P,{random16:function(){console.warn("THREE.Math: .random16() has been deprecated. Use Math.random() instead.");
    987 return Math.random()},nearestPowerOfTwo:function(a){console.warn("THREE.Math: .nearestPowerOfTwo() has been renamed to .floorPowerOfTwo().");return P.floorPowerOfTwo(a)},nextPowerOfTwo:function(a){console.warn("THREE.Math: .nextPowerOfTwo() has been renamed to .ceilPowerOfTwo().");return P.ceilPowerOfTwo(a)}});Object.assign(qa.prototype,{flattenToArrayOffset:function(a,b){console.warn("THREE.Matrix3: .flattenToArrayOffset() has been deprecated. Use .toArray() instead.");return this.toArray(a,b)},
    988 multiplyVector3:function(a){console.warn("THREE.Matrix3: .multiplyVector3() has been removed. Use vector.applyMatrix3( matrix ) instead.");return a.applyMatrix3(this)},multiplyVector3Array:function(){console.error("THREE.Matrix3: .multiplyVector3Array() has been removed.")},applyToBufferAttribute:function(a){console.warn("THREE.Matrix3: .applyToBufferAttribute() has been removed. Use attribute.applyMatrix3( matrix ) instead.");return a.applyMatrix3(this)},applyToVector3Array:function(){console.error("THREE.Matrix3: .applyToVector3Array() has been removed.")}});
    989 Object.assign(U.prototype,{extractPosition:function(a){console.warn("THREE.Matrix4: .extractPosition() has been renamed to .copyPosition().");return this.copyPosition(a)},flattenToArrayOffset:function(a,b){console.warn("THREE.Matrix4: .flattenToArrayOffset() has been deprecated. Use .toArray() instead.");return this.toArray(a,b)},getPosition:function(){console.warn("THREE.Matrix4: .getPosition() has been removed. Use Vector3.setFromMatrixPosition( matrix ) instead.");return(new m).setFromMatrixColumn(this,
    990 3)},setRotationFromQuaternion:function(a){console.warn("THREE.Matrix4: .setRotationFromQuaternion() has been renamed to .makeRotationFromQuaternion().");return this.makeRotationFromQuaternion(a)},multiplyToArray:function(){console.warn("THREE.Matrix4: .multiplyToArray() has been removed.")},multiplyVector3:function(a){console.warn("THREE.Matrix4: .multiplyVector3() has been removed. Use vector.applyMatrix4( matrix ) instead.");return a.applyMatrix4(this)},multiplyVector4:function(a){console.warn("THREE.Matrix4: .multiplyVector4() has been removed. Use vector.applyMatrix4( matrix ) instead.");
    991 return a.applyMatrix4(this)},multiplyVector3Array:function(){console.error("THREE.Matrix4: .multiplyVector3Array() has been removed.")},rotateAxis:function(a){console.warn("THREE.Matrix4: .rotateAxis() has been removed. Use Vector3.transformDirection( matrix ) instead.");a.transformDirection(this)},crossVector:function(a){console.warn("THREE.Matrix4: .crossVector() has been removed. Use vector.applyMatrix4( matrix ) instead.");return a.applyMatrix4(this)},translate:function(){console.error("THREE.Matrix4: .translate() has been removed.")},
    992 rotateX:function(){console.error("THREE.Matrix4: .rotateX() has been removed.")},rotateY:function(){console.error("THREE.Matrix4: .rotateY() has been removed.")},rotateZ:function(){console.error("THREE.Matrix4: .rotateZ() has been removed.")},rotateByAxis:function(){console.error("THREE.Matrix4: .rotateByAxis() has been removed.")},applyToBufferAttribute:function(a){console.warn("THREE.Matrix4: .applyToBufferAttribute() has been removed. Use attribute.applyMatrix4( matrix ) instead.");return a.applyMatrix4(this)},
    993 applyToVector3Array:function(){console.error("THREE.Matrix4: .applyToVector3Array() has been removed.")},makeFrustum:function(a,b,c,d,e,f){console.warn("THREE.Matrix4: .makeFrustum() has been removed. Use .makePerspective( left, right, top, bottom, near, far ) instead.");return this.makePerspective(a,b,d,c,e,f)}});Ta.prototype.isIntersectionLine=function(a){console.warn("THREE.Plane: .isIntersectionLine() has been renamed to .intersectsLine().");return this.intersectsLine(a)};Y.prototype.multiplyVector3=
    994 function(a){console.warn("THREE.Quaternion: .multiplyVector3() has been removed. Use is now vector.applyQuaternion( quaternion ) instead.");return a.applyQuaternion(this)};Object.assign(Xb.prototype,{isIntersectionBox:function(a){console.warn("THREE.Ray: .isIntersectionBox() has been renamed to .intersectsBox().");return this.intersectsBox(a)},isIntersectionPlane:function(a){console.warn("THREE.Ray: .isIntersectionPlane() has been renamed to .intersectsPlane().");return this.intersectsPlane(a)},isIntersectionSphere:function(a){console.warn("THREE.Ray: .isIntersectionSphere() has been renamed to .intersectsSphere().");
    995 return this.intersectsSphere(a)}});Object.assign(ba.prototype,{area:function(){console.warn("THREE.Triangle: .area() has been renamed to .getArea().");return this.getArea()},barycoordFromPoint:function(a,b){console.warn("THREE.Triangle: .barycoordFromPoint() has been renamed to .getBarycoord().");return this.getBarycoord(a,b)},midpoint:function(a){console.warn("THREE.Triangle: .midpoint() has been renamed to .getMidpoint().");return this.getMidpoint(a)},normal:function(a){console.warn("THREE.Triangle: .normal() has been renamed to .getNormal().");
    996 return this.getNormal(a)},plane:function(a){console.warn("THREE.Triangle: .plane() has been renamed to .getPlane().");return this.getPlane(a)}});Object.assign(ba,{barycoordFromPoint:function(a,b,c,d,e){console.warn("THREE.Triangle: .barycoordFromPoint() has been renamed to .getBarycoord().");return ba.getBarycoord(a,b,c,d,e)},normal:function(a,b,c,d){console.warn("THREE.Triangle: .normal() has been renamed to .getNormal().");return ba.getNormal(a,b,c,d)}});Object.assign(Mb.prototype,{extractAllPoints:function(a){console.warn("THREE.Shape: .extractAllPoints() has been removed. Use .extractPoints() instead.");
    997 return this.extractPoints(a)},extrude:function(a){console.warn("THREE.Shape: .extrude() has been removed. Use ExtrudeGeometry() instead.");return new gc(this,a)},makeGeometry:function(a){console.warn("THREE.Shape: .makeGeometry() has been removed. Use ShapeGeometry() instead.");return new ic(this,a)}});Object.assign(u.prototype,{fromAttribute:function(a,b,c){console.warn("THREE.Vector2: .fromAttribute() has been renamed to .fromBufferAttribute().");return this.fromBufferAttribute(a,b,c)},distanceToManhattan:function(a){console.warn("THREE.Vector2: .distanceToManhattan() has been renamed to .manhattanDistanceTo().");
    998 return this.manhattanDistanceTo(a)},lengthManhattan:function(){console.warn("THREE.Vector2: .lengthManhattan() has been renamed to .manhattanLength().");return this.manhattanLength()}});Object.assign(m.prototype,{setEulerFromRotationMatrix:function(){console.error("THREE.Vector3: .setEulerFromRotationMatrix() has been removed. Use Euler.setFromRotationMatrix() instead.")},setEulerFromQuaternion:function(){console.error("THREE.Vector3: .setEulerFromQuaternion() has been removed. Use Euler.setFromQuaternion() instead.")},
    999 getPositionFromMatrix:function(a){console.warn("THREE.Vector3: .getPositionFromMatrix() has been renamed to .setFromMatrixPosition().");return this.setFromMatrixPosition(a)},getScaleFromMatrix:function(a){console.warn("THREE.Vector3: .getScaleFromMatrix() has been renamed to .setFromMatrixScale().");return this.setFromMatrixScale(a)},getColumnFromMatrix:function(a,b){console.warn("THREE.Vector3: .getColumnFromMatrix() has been renamed to .setFromMatrixColumn().");return this.setFromMatrixColumn(b,
   1000 a)},applyProjection:function(a){console.warn("THREE.Vector3: .applyProjection() has been removed. Use .applyMatrix4( m ) instead.");return this.applyMatrix4(a)},fromAttribute:function(a,b,c){console.warn("THREE.Vector3: .fromAttribute() has been renamed to .fromBufferAttribute().");return this.fromBufferAttribute(a,b,c)},distanceToManhattan:function(a){console.warn("THREE.Vector3: .distanceToManhattan() has been renamed to .manhattanDistanceTo().");return this.manhattanDistanceTo(a)},lengthManhattan:function(){console.warn("THREE.Vector3: .lengthManhattan() has been renamed to .manhattanLength().");
   1001 return this.manhattanLength()}});Object.assign(S.prototype,{fromAttribute:function(a,b,c){console.warn("THREE.Vector4: .fromAttribute() has been renamed to .fromBufferAttribute().");return this.fromBufferAttribute(a,b,c)},lengthManhattan:function(){console.warn("THREE.Vector4: .lengthManhattan() has been renamed to .manhattanLength().");return this.manhattanLength()}});Object.assign(F.prototype,{computeTangents:function(){console.error("THREE.Geometry: .computeTangents() has been removed.")},computeLineDistances:function(){console.error("THREE.Geometry: .computeLineDistances() has been removed. Use THREE.Line.computeLineDistances() instead.")},
   1002 applyMatrix:function(a){console.warn("THREE.Geometry: .applyMatrix() has been renamed to .applyMatrix4().");return this.applyMatrix4(a)}});Object.assign(C.prototype,{getChildByName:function(a){console.warn("THREE.Object3D: .getChildByName() has been renamed to .getObjectByName().");return this.getObjectByName(a)},renderDepth:function(){console.warn("THREE.Object3D: .renderDepth has been removed. Use .renderOrder, instead.")},translate:function(a,b){console.warn("THREE.Object3D: .translate() has been removed. Use .translateOnAxis( axis, distance ) instead.");
   1003 return this.translateOnAxis(b,a)},getWorldRotation:function(){console.error("THREE.Object3D: .getWorldRotation() has been removed. Use THREE.Object3D.getWorldQuaternion( target ) instead.")},applyMatrix:function(a){console.warn("THREE.Object3D: .applyMatrix() has been renamed to .applyMatrix4().");return this.applyMatrix4(a)}});Object.defineProperties(C.prototype,{eulerOrder:{get:function(){console.warn("THREE.Object3D: .eulerOrder is now .rotation.order.");return this.rotation.order},set:function(a){console.warn("THREE.Object3D: .eulerOrder is now .rotation.order.");
   1004 this.rotation.order=a}},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.")}}});Object.assign(T.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.")}});
   1005 Object.defineProperties(T.prototype,{drawMode:{get:function(){console.error("THREE.Mesh: .drawMode has been removed. The renderer now always assumes THREE.TrianglesDrawMode.");return 0},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.")}}});Object.defineProperties(Qd.prototype,{objects:{get:function(){console.warn("THREE.LOD: .objects has been renamed to .levels.");
   1006 return this.levels}}});Object.defineProperty(Se.prototype,"useVertexTexture",{get:function(){console.warn("THREE.Skeleton: useVertexTexture has been removed.")},set:function(){console.warn("THREE.Skeleton: useVertexTexture has been removed.")}});Re.prototype.initBones=function(){console.error("THREE.SkinnedMesh: initBones() has been removed.")};Object.defineProperty(K.prototype,"__arcLengthDivisions",{get:function(){console.warn("THREE.Curve: .__arcLengthDivisions is now .arcLengthDivisions.");return this.arcLengthDivisions},
   1007 set:function(a){console.warn("THREE.Curve: .__arcLengthDivisions is now .arcLengthDivisions.");this.arcLengthDivisions=a}});W.prototype.setLens=function(a,b){console.warn("THREE.PerspectiveCamera.setLens is deprecated. Use .setFocalLength and .filmGauge for a photographic setup.");void 0!==b&&(this.filmGauge=b);this.setFocalLength(a)};Object.defineProperties(fa.prototype,{onlyShadow:{set:function(){console.warn("THREE.Light: .onlyShadow has been removed.")}},shadowCameraFov:{set:function(a){console.warn("THREE.Light: .shadowCameraFov is now .shadow.camera.fov.");
   1008 this.shadow.camera.fov=a}},shadowCameraLeft:{set:function(a){console.warn("THREE.Light: .shadowCameraLeft is now .shadow.camera.left.");this.shadow.camera.left=a}},shadowCameraRight:{set:function(a){console.warn("THREE.Light: .shadowCameraRight is now .shadow.camera.right.");this.shadow.camera.right=a}},shadowCameraTop:{set:function(a){console.warn("THREE.Light: .shadowCameraTop is now .shadow.camera.top.");this.shadow.camera.top=a}},shadowCameraBottom:{set:function(a){console.warn("THREE.Light: .shadowCameraBottom is now .shadow.camera.bottom.");
   1009 this.shadow.camera.bottom=a}},shadowCameraNear:{set:function(a){console.warn("THREE.Light: .shadowCameraNear is now .shadow.camera.near.");this.shadow.camera.near=a}},shadowCameraFar:{set:function(a){console.warn("THREE.Light: .shadowCameraFar is now .shadow.camera.far.");this.shadow.camera.far=a}},shadowCameraVisible:{set:function(){console.warn("THREE.Light: .shadowCameraVisible has been removed. Use new THREE.CameraHelper( light.shadow.camera ) instead.")}},shadowBias:{set:function(a){console.warn("THREE.Light: .shadowBias is now .shadow.bias.");
   1010 this.shadow.bias=a}},shadowDarkness:{set:function(){console.warn("THREE.Light: .shadowDarkness has been removed.")}},shadowMapWidth:{set:function(a){console.warn("THREE.Light: .shadowMapWidth is now .shadow.mapSize.width.");this.shadow.mapSize.width=a}},shadowMapHeight:{set:function(a){console.warn("THREE.Light: .shadowMapHeight is now .shadow.mapSize.height.");this.shadow.mapSize.height=a}}});Object.defineProperties(J.prototype,{length:{get:function(){console.warn("THREE.BufferAttribute: .length has been deprecated. Use .count instead.");
   1011 return this.array.length}},dynamic:{get:function(){console.warn("THREE.BufferAttribute: .dynamic has been deprecated. Use .usage instead.");return 35048===this.usage},set:function(){console.warn("THREE.BufferAttribute: .dynamic has been deprecated. Use .usage instead.");this.setUsage(35048)}}});Object.assign(J.prototype,{setDynamic:function(a){console.warn("THREE.BufferAttribute: .setDynamic() has been deprecated. Use .setUsage() instead.");this.setUsage(!0===a?35048:35044);return this},copyIndicesArray:function(){console.error("THREE.BufferAttribute: .copyIndicesArray() has been removed.")},
   1012 setArray:function(){console.error("THREE.BufferAttribute: .setArray has been removed. Use BufferGeometry .setAttribute to replace/resize attribute buffers")}});Object.assign(E.prototype,{addIndex:function(a){console.warn("THREE.BufferGeometry: .addIndex() has been renamed to .setIndex().");this.setIndex(a)},addAttribute:function(a,b,c){console.warn("THREE.BufferGeometry: .addAttribute() has been renamed to .setAttribute().");return b&&b.isBufferAttribute||b&&b.isInterleavedBufferAttribute?"index"===
   1013 a?(console.warn("THREE.BufferGeometry.addAttribute: Use .setIndex() for index attribute."),this.setIndex(b),this):this.setAttribute(a,b):(console.warn("THREE.BufferGeometry: .addAttribute() now expects ( name, attribute )."),this.setAttribute(a,new J(b,c)))},addDrawCall:function(a,b,c){void 0!==c&&console.warn("THREE.BufferGeometry: .addDrawCall() no longer supports indexOffset.");console.warn("THREE.BufferGeometry: .addDrawCall() is now .addGroup().");this.addGroup(a,b)},clearDrawCalls:function(){console.warn("THREE.BufferGeometry: .clearDrawCalls() is now .clearGroups().");
   1014 this.clearGroups()},computeTangents:function(){console.warn("THREE.BufferGeometry: .computeTangents() has been removed.")},computeOffsets:function(){console.warn("THREE.BufferGeometry: .computeOffsets() has been removed.")},removeAttribute:function(a){console.warn("THREE.BufferGeometry: .removeAttribute() has been renamed to .deleteAttribute().");return this.deleteAttribute(a)},applyMatrix:function(a){console.warn("THREE.BufferGeometry: .applyMatrix() has been renamed to .applyMatrix4().");return this.applyMatrix4(a)}});
   1015 Object.defineProperties(E.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}}});Object.defineProperties(pe.prototype,{maxInstancedCount:{get:function(){console.warn("THREE.InstancedBufferGeometry: .maxInstancedCount has been renamed to .instanceCount.");return this.instanceCount},set:function(a){console.warn("THREE.InstancedBufferGeometry: .maxInstancedCount has been renamed to .instanceCount.");
   1016 this.instanceCount=a}}});Object.defineProperties(Og.prototype,{linePrecision:{get:function(){console.warn("THREE.Raycaster: .linePrecision has been deprecated. Use .params.Line.threshold instead.");return this.params.Line.threshold},set:function(a){console.warn("THREE.Raycaster: .linePrecision has been deprecated. Use .params.Line.threshold instead.");this.params.Line.threshold=a}}});Object.defineProperties(Ba.prototype,{dynamic:{get:function(){console.warn("THREE.InterleavedBuffer: .length has been deprecated. Use .usage instead.");
   1017 return 35048===this.usage},set:function(a){console.warn("THREE.InterleavedBuffer: .length has been deprecated. Use .usage instead.");this.setUsage(a)}}});Object.assign(Ba.prototype,{setDynamic:function(a){console.warn("THREE.InterleavedBuffer: .setDynamic() has been deprecated. Use .setUsage() instead.");this.setUsage(!0===a?35048:35044);return this},setArray:function(){console.error("THREE.InterleavedBuffer: .setArray has been removed. Use BufferGeometry .setAttribute to replace/resize attribute buffers")}});
   1018 Object.assign(eb.prototype,{getArrays:function(){console.error("THREE.ExtrudeBufferGeometry: .getArrays() has been removed.")},addShapeList:function(){console.error("THREE.ExtrudeBufferGeometry: .addShapeList() has been removed.")},addShape:function(){console.error("THREE.ExtrudeBufferGeometry: .addShape() has been removed.")}});Object.defineProperties(vf.prototype,{dynamic:{set:function(){console.warn("THREE.Uniform: .dynamic has been removed. Use object.onBeforeRender() instead.")}},onUpdate:{value:function(){console.warn("THREE.Uniform: .onUpdate() has been removed. Use object.onBeforeRender() instead.");
   1019 return this}}});Object.defineProperties(L.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 H}},shading:{get:function(){console.error("THREE."+
   1020 this.type+": .shading has been removed. Use the boolean .flatShading instead.")},set:function(a){console.warn("THREE."+this.type+": .shading has been removed. Use the boolean .flatShading instead.");this.flatShading=1===a}},stencilMask:{get:function(){console.warn("THREE."+this.type+": .stencilMask has been removed. Use .stencilFuncMask instead.");return this.stencilFuncMask},set:function(a){console.warn("THREE."+this.type+": .stencilMask has been removed. Use .stencilFuncMask instead.");this.stencilFuncMask=
   1021 a}}});Object.defineProperties(Lb.prototype,{metal:{get:function(){console.warn("THREE.MeshPhongMaterial: .metal has been removed. Use THREE.MeshStandardMaterial instead.");return!1},set:function(){console.warn("THREE.MeshPhongMaterial: .metal has been removed. Use THREE.MeshStandardMaterial instead")}}});Object.defineProperties(Kb.prototype,{transparency:{get:function(){console.warn("THREE.MeshPhysicalMaterial: .transparency has been renamed to .transmission.");return this.transmission},set:function(a){console.warn("THREE.MeshPhysicalMaterial: .transparency has been renamed to .transmission.");
   1022 this.transmission=a}}});Object.defineProperties(ra.prototype,{derivatives:{get:function(){console.warn("THREE.ShaderMaterial: .derivatives has been moved to .extensions.derivatives.");return this.extensions.derivatives},set:function(a){console.warn("THREE. ShaderMaterial: .derivatives has been moved to .extensions.derivatives.");this.extensions.derivatives=a}}});Object.assign(Nd.prototype,{clearTarget:function(a,b,c,d){console.warn("THREE.WebGLRenderer: .clearTarget() has been deprecated. Use .setRenderTarget() and .clear() instead.");
   1023 this.setRenderTarget(a);this.clear(b,c,d)},animate:function(a){console.warn("THREE.WebGLRenderer: .animate() is now .setAnimationLoop().");this.setAnimationLoop(a)},getCurrentRenderTarget:function(){console.warn("THREE.WebGLRenderer: .getCurrentRenderTarget() is now .getRenderTarget().");return this.getRenderTarget()},getMaxAnisotropy:function(){console.warn("THREE.WebGLRenderer: .getMaxAnisotropy() is now .capabilities.getMaxAnisotropy().");return this.capabilities.getMaxAnisotropy()},getPrecision:function(){console.warn("THREE.WebGLRenderer: .getPrecision() is now .capabilities.precision.");
   1024 return this.capabilities.precision},resetGLState:function(){console.warn("THREE.WebGLRenderer: .resetGLState() is now .state.reset().");return this.state.reset()},supportsFloatTextures:function(){console.warn("THREE.WebGLRenderer: .supportsFloatTextures() is now .extensions.get( 'OES_texture_float' ).");return this.extensions.get("OES_texture_float")},supportsHalfFloatTextures:function(){console.warn("THREE.WebGLRenderer: .supportsHalfFloatTextures() is now .extensions.get( 'OES_texture_half_float' ).");
   1025 return this.extensions.get("OES_texture_half_float")},supportsStandardDerivatives:function(){console.warn("THREE.WebGLRenderer: .supportsStandardDerivatives() is now .extensions.get( 'OES_standard_derivatives' ).");return this.extensions.get("OES_standard_derivatives")},supportsCompressedTextureS3TC:function(){console.warn("THREE.WebGLRenderer: .supportsCompressedTextureS3TC() is now .extensions.get( 'WEBGL_compressed_texture_s3tc' ).");return this.extensions.get("WEBGL_compressed_texture_s3tc")},
   1026 supportsCompressedTexturePVRTC:function(){console.warn("THREE.WebGLRenderer: .supportsCompressedTexturePVRTC() is now .extensions.get( 'WEBGL_compressed_texture_pvrtc' ).");return this.extensions.get("WEBGL_compressed_texture_pvrtc")},supportsBlendMinMax:function(){console.warn("THREE.WebGLRenderer: .supportsBlendMinMax() is now .extensions.get( 'EXT_blend_minmax' ).");return this.extensions.get("EXT_blend_minmax")},supportsVertexTextures:function(){console.warn("THREE.WebGLRenderer: .supportsVertexTextures() is now .capabilities.vertexTextures.");
   1027 return this.capabilities.vertexTextures},supportsInstancedArrays:function(){console.warn("THREE.WebGLRenderer: .supportsInstancedArrays() is now .extensions.get( 'ANGLE_instanced_arrays' ).");return this.extensions.get("ANGLE_instanced_arrays")},enableScissorTest:function(a){console.warn("THREE.WebGLRenderer: .enableScissorTest() is now .setScissorTest().");this.setScissorTest(a)},initMaterial:function(){console.warn("THREE.WebGLRenderer: .initMaterial() has been removed.")},addPrePlugin:function(){console.warn("THREE.WebGLRenderer: .addPrePlugin() has been removed.")},
   1028 addPostPlugin:function(){console.warn("THREE.WebGLRenderer: .addPostPlugin() has been removed.")},updateShadowMap:function(){console.warn("THREE.WebGLRenderer: .updateShadowMap() has been removed.")},setFaceCulling:function(){console.warn("THREE.WebGLRenderer: .setFaceCulling() has been removed.")},allocTextureUnit:function(){console.warn("THREE.WebGLRenderer: .allocTextureUnit() has been removed.")},setTexture:function(){console.warn("THREE.WebGLRenderer: .setTexture() has been removed.")},setTexture2D:function(){console.warn("THREE.WebGLRenderer: .setTexture2D() has been removed.")},
   1029 setTextureCube:function(){console.warn("THREE.WebGLRenderer: .setTextureCube() has been removed.")},getActiveMipMapLevel:function(){console.warn("THREE.WebGLRenderer: .getActiveMipMapLevel() is now .getActiveMipmapLevel().");return this.getActiveMipmapLevel()}});Object.defineProperties(Nd.prototype,{shadowMapEnabled:{get:function(){return this.shadowMap.enabled},set:function(a){console.warn("THREE.WebGLRenderer: .shadowMapEnabled is now .shadowMap.enabled.");this.shadowMap.enabled=a}},shadowMapType:{get:function(){return this.shadowMap.type},
   1030 set:function(a){console.warn("THREE.WebGLRenderer: .shadowMapType is now .shadowMap.type.");this.shadowMap.type=a}},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()}},
   1031 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!1},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.");
   1032 return!1},set:function(a){console.warn("THREE.WebGLRenderer: .gammaOutput has been removed. Set WebGLRenderer.outputEncoding instead.");this.outputEncoding=!0===a?3001:3E3}},toneMappingWhitePoint:{get:function(){console.warn("THREE.WebGLRenderer: .toneMappingWhitePoint has been removed.");return 1},set:function(){console.warn("THREE.WebGLRenderer: .toneMappingWhitePoint has been removed.")}}});Object.defineProperties(Th.prototype,{cullFace:{get:function(){console.warn("THREE.WebGLRenderer: .shadowMap.cullFace has been removed. Set Material.shadowSide instead.")},
   1033 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.")},
   1034 set:function(){console.warn("THREE.WebGLRenderer: .shadowMap.renderSingleSided has been removed. Set Material.shadowSide instead.")}}});Object.defineProperties(Ga.prototype,{wrapS:{get:function(){console.warn("THREE.WebGLRenderTarget: .wrapS is now .texture.wrapS.");return this.texture.wrapS},set:function(a){console.warn("THREE.WebGLRenderTarget: .wrapS is now .texture.wrapS.");this.texture.wrapS=a}},wrapT:{get:function(){console.warn("THREE.WebGLRenderTarget: .wrapT is now .texture.wrapT.");return this.texture.wrapT},
   1035 set:function(a){console.warn("THREE.WebGLRenderTarget: .wrapT is now .texture.wrapT.");this.texture.wrapT=a}},magFilter:{get:function(){console.warn("THREE.WebGLRenderTarget: .magFilter is now .texture.magFilter.");return this.texture.magFilter},set:function(a){console.warn("THREE.WebGLRenderTarget: .magFilter is now .texture.magFilter.");this.texture.magFilter=a}},minFilter:{get:function(){console.warn("THREE.WebGLRenderTarget: .minFilter is now .texture.minFilter.");return this.texture.minFilter},
   1036 set:function(a){console.warn("THREE.WebGLRenderTarget: .minFilter is now .texture.minFilter.");this.texture.minFilter=a}},anisotropy:{get:function(){console.warn("THREE.WebGLRenderTarget: .anisotropy is now .texture.anisotropy.");return this.texture.anisotropy},set:function(a){console.warn("THREE.WebGLRenderTarget: .anisotropy is now .texture.anisotropy.");this.texture.anisotropy=a}},offset:{get:function(){console.warn("THREE.WebGLRenderTarget: .offset is now .texture.offset.");return this.texture.offset},
   1037 set:function(a){console.warn("THREE.WebGLRenderTarget: .offset is now .texture.offset.");this.texture.offset=a}},repeat:{get:function(){console.warn("THREE.WebGLRenderTarget: .repeat is now .texture.repeat.");return this.texture.repeat},set:function(a){console.warn("THREE.WebGLRenderTarget: .repeat is now .texture.repeat.");this.texture.repeat=a}},format:{get:function(){console.warn("THREE.WebGLRenderTarget: .format is now .texture.format.");return this.texture.format},set:function(a){console.warn("THREE.WebGLRenderTarget: .format is now .texture.format.");
   1038 this.texture.format=a}},type:{get:function(){console.warn("THREE.WebGLRenderTarget: .type is now .texture.type.");return this.texture.type},set:function(a){console.warn("THREE.WebGLRenderTarget: .type is now .texture.type.");this.texture.type=a}},generateMipmaps:{get:function(){console.warn("THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps.");return this.texture.generateMipmaps},set:function(a){console.warn("THREE.WebGLRenderTarget: .generateMipmaps is now .texture.generateMipmaps.");
   1039 this.texture.generateMipmaps=a}}});Object.defineProperties(id.prototype,{load:{value:function(a){console.warn("THREE.Audio: .load has been deprecated. Use THREE.AudioLoader instead.");var b=this;(new uf).load(a,function(a){b.setBuffer(a)});return this}},startTime:{set:function(){console.warn("THREE.Audio: .startTime is now .play( delay ).")}}});Kg.prototype.getData=function(){console.warn("THREE.AudioAnalyser: .getData() is now .getFrequencyData().");return this.getFrequencyData()};Ic.prototype.updateCubeMap=
   1040 function(a,b){console.warn("THREE.CubeCamera: .updateCubeMap() is now .update().");return this.update(a,b)};Pb.crossOrigin=void 0;Pb.loadTexture=function(a,b,c,d){console.warn("THREE.ImageUtils.loadTexture has been deprecated. Use THREE.TextureLoader() instead.");var e=new ff;e.setCrossOrigin(this.crossOrigin);a=e.load(a,c,void 0,d);b&&(a.mapping=b);return a};Pb.loadTextureCube=function(a,b,c,d){console.warn("THREE.ImageUtils.loadTextureCube has been deprecated. Use THREE.CubeTextureLoader() instead.");
   1041 var e=new ef;e.setCrossOrigin(this.crossOrigin);a=e.load(a,c,void 0,d);b&&(a.mapping=b);return a};Pb.loadCompressedTexture=function(){console.error("THREE.ImageUtils.loadCompressedTexture has been removed. Use THREE.DDSLoader instead.")};Pb.loadCompressedTextureCube=function(){console.error("THREE.ImageUtils.loadCompressedTextureCube has been removed. Use THREE.DDSLoader instead.")};"undefined"!==typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("register",{detail:{revision:"119"}}));
   1042 k.ACESFilmicToneMapping=4;k.AddEquation=100;k.AddOperation=2;k.AdditiveAnimationBlendMode=2501;k.AdditiveBlending=2;k.AlphaFormat=1021;k.AlwaysDepth=1;k.AlwaysStencilFunc=519;k.AmbientLight=nf;k.AmbientLightProbe=Fg;k.AnimationClip=Pa;k.AnimationLoader=wg;k.AnimationMixer=Mg;k.AnimationObjectGroup=ji;k.AnimationUtils=ka;k.ArcCurve=gd;k.ArrayCamera=Ne;k.ArrowHelper=Ob;k.Audio=id;k.AudioAnalyser=Kg;k.AudioContext=Ig;k.AudioListener=Hg;k.AudioLoader=uf;k.AxesHelper=ve;k.AxisHelper=function(a){console.warn("THREE.AxisHelper has been renamed to THREE.AxesHelper.");
   1043 return new ve(a)};k.BackSide=1;k.BasicDepthPacking=3200;k.BasicShadowMap=0;k.BinaryTextureLoader=function(a){console.warn("THREE.BinaryTextureLoader has been renamed to THREE.DataTextureLoader.");return new df(a)};k.Bone=pg;k.BooleanKeyframeTrack=$e;k.BoundingBoxHelper=function(a,b){console.warn("THREE.BoundingBoxHelper has been deprecated. Creating a THREE.BoxHelper instead.");return new Nb(a,b)};k.Box2=Qg;k.Box3=Sa;k.Box3Helper=te;k.BoxBufferGeometry=Bb;k.BoxGeometry=Gc;k.BoxHelper=Nb;k.BufferAttribute=
   1044 J;k.BufferGeometry=E;k.BufferGeometryLoader=sf;k.ByteType=1010;k.Cache=vc;k.Camera=db;k.CameraHelper=se;k.CanvasRenderer=function(){console.error("THREE.CanvasRenderer has been removed")};k.CanvasTexture=Rd;k.CatmullRomCurve3=za;k.CineonToneMapping=3;k.CircleBufferGeometry=cd;k.CircleGeometry=ke;k.ClampToEdgeWrapping=1001;k.Clock=Gg;k.ClosedSplineCurve3=ri;k.Color=H;k.ColorKeyframeTrack=af;k.CompressedTexture=Qc;k.CompressedTextureLoader=xg;k.ConeBufferGeometry=je;k.ConeGeometry=ie;k.CubeCamera=Ic;
   1045 k.CubeGeometry=Gc;k.CubeReflectionMapping=301;k.CubeRefractionMapping=302;k.CubeTexture=ob;k.CubeTextureLoader=ef;k.CubeUVReflectionMapping=306;k.CubeUVRefractionMapping=307;k.CubicBezierCurve=Wa;k.CubicBezierCurve3=gb;k.CubicInterpolant=Ye;k.CullFaceBack=1;k.CullFaceFront=2;k.CullFaceFrontBack=3;k.CullFaceNone=0;k.Curve=K;k.CurvePath=sb;k.CustomBlending=5;k.CustomToneMapping=5;k.CylinderBufferGeometry=qb;k.CylinderGeometry=kc;k.Cylindrical=mi;k.DataTexture=bc;k.DataTexture2DArray=Kc;k.DataTexture3D=
   1046 Lc;k.DataTextureLoader=df;k.DecrementStencilOp=7683;k.DecrementWrapStencilOp=34056;k.DefaultLoadingManager=fi;k.DepthFormat=1026;k.DepthStencilFormat=1027;k.DepthTexture=Sd;k.DirectionalLight=mf;k.DirectionalLightHelper=md;k.DirectionalLightShadow=lf;k.DiscreteInterpolant=Ze;k.DodecahedronBufferGeometry=Vc;k.DodecahedronGeometry=Yd;k.DoubleSide=2;k.DstAlphaFactor=206;k.DstColorFactor=208;k.DynamicBufferAttribute=function(a,b){console.warn("THREE.DynamicBufferAttribute has been removed. Use new THREE.BufferAttribute().setUsage( THREE.DynamicDrawUsage ) instead.");
   1047 return(new J(a,b)).setUsage(35048)};k.DynamicCopyUsage=35050;k.DynamicDrawUsage=35048;k.DynamicReadUsage=35049;k.EdgesGeometry=bd;k.EdgesHelper=function(a,b){console.warn("THREE.EdgesHelper has been removed. Use THREE.EdgesGeometry instead.");return new ea(new bd(a.geometry),new ja({color:void 0!==b?b:16777215}))};k.EllipseCurve=La;k.EqualDepth=4;k.EqualStencilFunc=514;k.EquirectangularReflectionMapping=303;k.EquirectangularRefractionMapping=304;k.Euler=Vb;k.EventDispatcher=Ea;k.ExtrudeBufferGeometry=
   1048 eb;k.ExtrudeGeometry=gc;k.Face3=Cc;k.Face4=function(a,b,c,d,e,f,g){console.warn("THREE.Face4 has been removed. A THREE.Face3 will be created instead.");return new Cc(a,b,c,e,f,g)};k.FaceColors=1;k.FileLoader=Qa;k.FlatShading=1;k.Float32Attribute=function(a,b){console.warn("THREE.Float32Attribute has been removed. Use new THREE.Float32BufferAttribute() instead.");return new A(a,b)};k.Float32BufferAttribute=A;k.Float64Attribute=function(a,b){console.warn("THREE.Float64Attribute has been removed. Use new THREE.Float64BufferAttribute() instead.");
   1049 return new Gd(a,b)};k.Float64BufferAttribute=Gd;k.FloatType=1015;k.Fog=Pe;k.FogExp2=Oe;k.Font=Cg;k.FontLoader=Dg;k.FrontSide=0;k.Frustum=Jc;k.GammaEncoding=3007;k.Geometry=F;k.GeometryUtils={merge:function(a,b,c){console.warn("THREE.GeometryUtils: .merge() has been moved to Geometry. Use geometry.merge( geometry2, matrix, materialIndexOffset ) instead.");if(b.isMesh){b.matrixAutoUpdate&&b.updateMatrix();var d=b.matrix;b=b.geometry}a.merge(b,d,c)},center:function(a){console.warn("THREE.GeometryUtils: .center() has been moved to Geometry. Use geometry.center() instead.");
   1050 return a.center()}};k.GreaterDepth=6;k.GreaterEqualDepth=5;k.GreaterEqualStencilFunc=518;k.GreaterStencilFunc=516;k.GridHelper=re;k.Group=Gb;k.HalfFloatType=1016;k.HemisphereLight=gf;k.HemisphereLightHelper=ld;k.HemisphereLightProbe=Eg;k.IcosahedronBufferGeometry=Uc;k.IcosahedronGeometry=Xd;k.ImageBitmapLoader=Ag;k.ImageLoader=fd;k.ImageUtils=Pb;k.ImmediateRenderObject=qe;k.IncrementStencilOp=7682;k.IncrementWrapStencilOp=34055;k.InstancedBufferAttribute=rf;k.InstancedBufferGeometry=pe;k.InstancedInterleavedBuffer=
   1051 Ng;k.InstancedMesh=Te;k.Int16Attribute=function(a,b){console.warn("THREE.Int16Attribute has been removed. Use new THREE.Int16BufferAttribute() instead.");return new Ed(a,b)};k.Int16BufferAttribute=Ed;k.Int32Attribute=function(a,b){console.warn("THREE.Int32Attribute has been removed. Use new THREE.Int32BufferAttribute() instead.");return new Fd(a,b)};k.Int32BufferAttribute=Fd;k.Int8Attribute=function(a,b){console.warn("THREE.Int8Attribute has been removed. Use new THREE.Int8BufferAttribute() instead.");
   1052 return new Bd(a,b)};k.Int8BufferAttribute=Bd;k.IntType=1013;k.InterleavedBuffer=Ba;k.InterleavedBufferAttribute=Hb;k.Interpolant=Ka;k.InterpolateDiscrete=2300;k.InterpolateLinear=2301;k.InterpolateSmooth=2302;k.InvertStencilOp=5386;k.JSONLoader=function(){console.error("THREE.JSONLoader has been removed.")};k.KeepStencilOp=7680;k.KeyframeTrack=ya;k.LOD=Qd;k.LatheBufferGeometry=ad;k.LatheGeometry=he;k.Layers=He;k.LensFlare=function(){console.error("THREE.LensFlare has been moved to /examples/jsm/objects/Lensflare.js")};
   1053 k.LessDepth=2;k.LessEqualDepth=3;k.LessEqualStencilFunc=515;k.LessStencilFunc=513;k.Light=fa;k.LightProbe=Ra;k.LightShadow=ib;k.Line=Ja;k.Line3=Rg;k.LineBasicMaterial=ja;k.LineCurve=ia;k.LineCurve3=Xa;k.LineDashedMaterial=qc;k.LineLoop=Ue;k.LinePieces=1;k.LineSegments=ea;k.LineStrip=0;k.LinearEncoding=3E3;k.LinearFilter=1006;k.LinearInterpolant=le;k.LinearMipMapLinearFilter=1008;k.LinearMipMapNearestFilter=1007;k.LinearMipmapLinearFilter=1008;k.LinearMipmapNearestFilter=1007;k.LinearToneMapping=1;
   1054 k.Loader=X;k.LoaderUtils=oh;k.LoadingManager=vg;k.LogLuvEncoding=3003;k.LoopOnce=2200;k.LoopPingPong=2202;k.LoopRepeat=2201;k.LuminanceAlphaFormat=1025;k.LuminanceFormat=1024;k.MOUSE={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2};k.Material=L;k.MaterialLoader=qf;k.Math=P;k.MathUtils=P;k.Matrix3=qa;k.Matrix4=U;k.MaxEquation=104;k.Mesh=T;k.MeshBasicMaterial=Na;k.MeshDepthMaterial=Db;k.MeshDistanceMaterial=Eb;k.MeshFaceMaterial=function(a){console.warn("THREE.MeshFaceMaterial has been removed. Use an Array instead.");
   1055 return a};k.MeshLambertMaterial=oc;k.MeshMatcapMaterial=pc;k.MeshNormalMaterial=nc;k.MeshPhongMaterial=Lb;k.MeshPhysicalMaterial=Kb;k.MeshStandardMaterial=fb;k.MeshToonMaterial=mc;k.MinEquation=103;k.MirroredRepeatWrapping=1002;k.MixOperation=1;k.MultiMaterial=function(a){void 0===a&&(a=[]);console.warn("THREE.MultiMaterial has been removed. Use an Array instead.");a.isMultiMaterial=!0;a.materials=a;a.clone=function(){return a.slice()};return a};k.MultiplyBlending=4;k.MultiplyOperation=0;k.NearestFilter=
   1056 1003;k.NearestMipMapLinearFilter=1005;k.NearestMipMapNearestFilter=1004;k.NearestMipmapLinearFilter=1005;k.NearestMipmapNearestFilter=1004;k.NeverDepth=0;k.NeverStencilFunc=512;k.NoBlending=0;k.NoColors=0;k.NoToneMapping=0;k.NormalAnimationBlendMode=2500;k.NormalBlending=1;k.NotEqualDepth=7;k.NotEqualStencilFunc=517;k.NumberKeyframeTrack=dd;k.Object3D=C;k.ObjectLoader=tf;k.ObjectSpaceNormalMap=1;k.OctahedronBufferGeometry=ec;k.OctahedronGeometry=Wd;k.OneFactor=201;k.OneMinusDstAlphaFactor=207;k.OneMinusDstColorFactor=
   1057 209;k.OneMinusSrcAlphaFactor=205;k.OneMinusSrcColorFactor=203;k.OrthographicCamera=hd;k.PCFShadowMap=1;k.PCFSoftShadowMap=2;k.PMREMGenerator=Tg;k.ParametricBufferGeometry=Sc;k.ParametricGeometry=Td;k.Particle=function(a){console.warn("THREE.Particle has been renamed to THREE.Sprite.");return new Od(a)};k.ParticleBasicMaterial=function(a){console.warn("THREE.ParticleBasicMaterial has been renamed to THREE.PointsMaterial.");return new Va(a)};k.ParticleSystem=function(a,b){console.warn("THREE.ParticleSystem has been renamed to THREE.Points.");
   1058 return new Pc(a,b)};k.ParticleSystemMaterial=function(a){console.warn("THREE.ParticleSystemMaterial has been renamed to THREE.PointsMaterial.");return new Va(a)};k.Path=$a;k.PerspectiveCamera=W;k.Plane=Ta;k.PlaneBufferGeometry=cc;k.PlaneGeometry=Id;k.PlaneHelper=ue;k.PointCloud=function(a,b){console.warn("THREE.PointCloud has been renamed to THREE.Points.");return new Pc(a,b)};k.PointCloudMaterial=function(a){console.warn("THREE.PointCloudMaterial has been renamed to THREE.PointsMaterial.");return new Va(a)};
   1059 k.PointLight=kf;k.PointLightHelper=kd;k.Points=Pc;k.PointsMaterial=Va;k.PolarGridHelper=wf;k.PolyhedronBufferGeometry=sa;k.PolyhedronGeometry=Ud;k.PositionalAudio=Jg;k.PropertyBinding=wa;k.PropertyMixer=Lg;k.QuadraticBezierCurve=Ya;k.QuadraticBezierCurve3=hb;k.Quaternion=Y;k.QuaternionKeyframeTrack=me;k.QuaternionLinearInterpolant=bf;k.REVISION="119";k.RGBADepthPacking=3201;k.RGBAFormat=1023;k.RGBAIntegerFormat=1033;k.RGBA_ASTC_10x10_Format=37819;k.RGBA_ASTC_10x5_Format=37816;k.RGBA_ASTC_10x6_Format=
   1060 37817;k.RGBA_ASTC_10x8_Format=37818;k.RGBA_ASTC_12x10_Format=37820;k.RGBA_ASTC_12x12_Format=37821;k.RGBA_ASTC_4x4_Format=37808;k.RGBA_ASTC_5x4_Format=37809;k.RGBA_ASTC_5x5_Format=37810;k.RGBA_ASTC_6x5_Format=37811;k.RGBA_ASTC_6x6_Format=37812;k.RGBA_ASTC_8x5_Format=37813;k.RGBA_ASTC_8x6_Format=37814;k.RGBA_ASTC_8x8_Format=37815;k.RGBA_BPTC_Format=36492;k.RGBA_ETC2_EAC_Format=37496;k.RGBA_PVRTC_2BPPV1_Format=35843;k.RGBA_PVRTC_4BPPV1_Format=35842;k.RGBA_S3TC_DXT1_Format=33777;k.RGBA_S3TC_DXT3_Format=
   1061 33778;k.RGBA_S3TC_DXT5_Format=33779;k.RGBDEncoding=3006;k.RGBEEncoding=3002;k.RGBEFormat=1023;k.RGBFormat=1022;k.RGBIntegerFormat=1032;k.RGBM16Encoding=3005;k.RGBM7Encoding=3004;k.RGB_ETC1_Format=36196;k.RGB_ETC2_Format=37492;k.RGB_PVRTC_2BPPV1_Format=35841;k.RGB_PVRTC_4BPPV1_Format=35840;k.RGB_S3TC_DXT1_Format=33776;k.RGFormat=1030;k.RGIntegerFormat=1031;k.RawShaderMaterial=rb;k.Ray=Xb;k.Raycaster=Og;k.RectAreaLight=of;k.RedFormat=1028;k.RedIntegerFormat=1029;k.ReinhardToneMapping=2;k.RepeatWrapping=
   1062 1E3;k.ReplaceStencilOp=7681;k.ReverseSubtractEquation=102;k.RingBufferGeometry=$c;k.RingGeometry=ge;k.SRGB8_ALPHA8_ASTC_10x10_Format=37851;k.SRGB8_ALPHA8_ASTC_10x5_Format=37848;k.SRGB8_ALPHA8_ASTC_10x6_Format=37849;k.SRGB8_ALPHA8_ASTC_10x8_Format=37850;k.SRGB8_ALPHA8_ASTC_12x10_Format=37852;k.SRGB8_ALPHA8_ASTC_12x12_Format=37853;k.SRGB8_ALPHA8_ASTC_4x4_Format=37840;k.SRGB8_ALPHA8_ASTC_5x4_Format=37841;k.SRGB8_ALPHA8_ASTC_5x5_Format=37842;k.SRGB8_ALPHA8_ASTC_6x5_Format=37843;k.SRGB8_ALPHA8_ASTC_6x6_Format=
   1063 37844;k.SRGB8_ALPHA8_ASTC_8x5_Format=37845;k.SRGB8_ALPHA8_ASTC_8x6_Format=37846;k.SRGB8_ALPHA8_ASTC_8x8_Format=37847;k.Scene=Ad;k.SceneUtils={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")}};k.ShaderChunk=O;k.ShaderLib=
   1064 Ua;k.ShaderMaterial=ra;k.ShadowMaterial=lc;k.Shape=Mb;k.ShapeBufferGeometry=jc;k.ShapeGeometry=ic;k.ShapePath=Bg;k.ShapeUtils=pb;k.ShortType=1011;k.Skeleton=Se;k.SkeletonHelper=rc;k.SkinnedMesh=Re;k.SmoothShading=2;k.Sphere=cb;k.SphereBufferGeometry=hc;k.SphereGeometry=fe;k.Spherical=Ac;k.SphericalHarmonics3=pf;k.Spline=Wg;k.SplineCurve=Za;k.SplineCurve3=si;k.SpotLight=jf;k.SpotLightHelper=jd;k.SpotLightShadow=hf;k.Sprite=Od;k.SpriteMaterial=Ib;k.SrcAlphaFactor=204;k.SrcAlphaSaturateFactor=210;k.SrcColorFactor=
   1065 202;k.StaticCopyUsage=35046;k.StaticDrawUsage=35044;k.StaticReadUsage=35045;k.StereoCamera=hi;k.StreamCopyUsage=35042;k.StreamDrawUsage=35040;k.StreamReadUsage=35041;k.StringKeyframeTrack=cf;k.SubtractEquation=101;k.SubtractiveBlending=3;k.TOUCH={ROTATE:0,PAN:1,DOLLY_PAN:2,DOLLY_ROTATE:3};k.TangentSpaceNormalMap=0;k.TetrahedronBufferGeometry=Tc;k.TetrahedronGeometry=Vd;k.TextBufferGeometry=Zc;k.TextGeometry=ee;k.Texture=V;k.TextureLoader=ff;k.TorusBufferGeometry=Xc;k.TorusGeometry=ae;k.TorusKnotBufferGeometry=
   1066 Wc;k.TorusKnotGeometry=$d;k.Triangle=ba;k.TriangleFanDrawMode=2;k.TriangleStripDrawMode=1;k.TrianglesDrawMode=0;k.TubeBufferGeometry=fc;k.TubeGeometry=Zd;k.UVMapping=300;k.Uint16Attribute=function(a,b){console.warn("THREE.Uint16Attribute has been removed. Use new THREE.Uint16BufferAttribute() instead.");return new Yb(a,b)};k.Uint16BufferAttribute=Yb;k.Uint32Attribute=function(a,b){console.warn("THREE.Uint32Attribute has been removed. Use new THREE.Uint32BufferAttribute() instead.");return new Zb(a,
   1067 b)};k.Uint32BufferAttribute=Zb;k.Uint8Attribute=function(a,b){console.warn("THREE.Uint8Attribute has been removed. Use new THREE.Uint8BufferAttribute() instead.");return new Cd(a,b)};k.Uint8BufferAttribute=Cd;k.Uint8ClampedAttribute=function(a,b){console.warn("THREE.Uint8ClampedAttribute has been removed. Use new THREE.Uint8ClampedBufferAttribute() instead.");return new Dd(a,b)};k.Uint8ClampedBufferAttribute=Dd;k.Uniform=vf;k.UniformsLib=G;k.UniformsUtils=Qh;k.UnsignedByteType=1009;k.UnsignedInt248Type=
   1068 1020;k.UnsignedIntType=1014;k.UnsignedShort4444Type=1017;k.UnsignedShort5551Type=1018;k.UnsignedShort565Type=1019;k.UnsignedShortType=1012;k.VSMShadowMap=3;k.Vector2=u;k.Vector3=m;k.Vector4=S;k.VectorKeyframeTrack=ed;k.Vertex=function(a,b,c){console.warn("THREE.Vertex has been removed. Use THREE.Vector3 instead.");return new m(a,b,c)};k.VertexColors=2;k.VideoTexture=sg;k.WebGL1Renderer=og;k.WebGLCubeRenderTarget=ac;k.WebGLMultisampleRenderTarget=ag;k.WebGLRenderTarget=Ga;k.WebGLRenderTargetCube=function(a,
   1069 b,c){console.warn("THREE.WebGLRenderTargetCube( width, height, options ) is now WebGLCubeRenderTarget( size, options ).");return new ac(a,c)};k.WebGLRenderer=Nd;k.WebGLUtils=Uh;k.WireframeGeometry=Rc;k.WireframeHelper=function(a,b){console.warn("THREE.WireframeHelper has been removed. Use THREE.WireframeGeometry instead.");return new ea(new Rc(a.geometry),new ja({color:void 0!==b?b:16777215}))};k.WrapAroundEnding=2402;k.XHRLoader=function(a){console.warn("THREE.XHRLoader has been renamed to THREE.FileLoader.");
   1070 return new Qa(a)};k.ZeroCurvatureEnding=2400;k.ZeroFactor=200;k.ZeroSlopeEnding=2401;k.ZeroStencilOp=0;k.sRGBEncoding=3001;Object.defineProperty(k,"__esModule",{value:!0})});