Browse Source

Updated builds.

Mr.doob 8 years ago
parent
commit
4d0c82ae55
3 changed files with 129 additions and 107 deletions
  1. 14 3
      build/three.js
  2. 101 101
      build/three.min.js
  3. 14 3
      build/three.module.js

+ 14 - 3
build/three.js

@@ -16459,6 +16459,8 @@
 
 
 	function WebGLObjects( gl, geometries, infoRender ) {
 	function WebGLObjects( gl, geometries, infoRender ) {
 
 
+		var updateList = {};
+
 		function update( object ) {
 		function update( object ) {
 
 
 			var frame = infoRender.frame;
 			var frame = infoRender.frame;
@@ -16468,7 +16470,7 @@
 
 
 			// Update once per frame
 			// Update once per frame
 
 
-			if ( buffergeometry.__frame !== frame ) {
+			if ( updateList[ buffergeometry.id ] !== frame ) {
 
 
 				if ( geometry.isGeometry ) {
 				if ( geometry.isGeometry ) {
 
 
@@ -16478,7 +16480,7 @@
 
 
 				geometries.update( buffergeometry );
 				geometries.update( buffergeometry );
 
 
-				buffergeometry.__frame = frame;
+				updateList[ buffergeometry.id ] = frame;
 
 
 			}
 			}
 
 
@@ -16486,9 +16488,16 @@
 
 
 		}
 		}
 
 
+		function clear() {
+
+			updateList = {};
+
+		}
+
 		return {
 		return {
 
 
-			update: update
+			update: update,
+			clear: clear
 
 
 		};
 		};
 
 
@@ -20160,6 +20169,7 @@
 			setDefaultGLState();
 			setDefaultGLState();
 
 
 			properties.clear();
 			properties.clear();
+			objects.clear();
 
 
 		}
 		}
 
 
@@ -22776,6 +22786,7 @@
 
 
 	SpriteMaterial.prototype = Object.create( Material.prototype );
 	SpriteMaterial.prototype = Object.create( Material.prototype );
 	SpriteMaterial.prototype.constructor = SpriteMaterial;
 	SpriteMaterial.prototype.constructor = SpriteMaterial;
+	SpriteMaterial.prototype.isSpriteMaterial = true;
 
 
 	SpriteMaterial.prototype.copy = function ( source ) {
 	SpriteMaterial.prototype.copy = function ( source ) {
 
 

+ 101 - 101
build/three.min.js

@@ -9,16 +9,16 @@ b,c){var d=c.allocTextureUnit();a.uniform1i(this.addr,d);c.setTexture2D(b||we,d)
 case 5124:case 35670:return $e;case 35667:case 35671:return ye;case 35668:case 35672:return ze;case 35669:case 35673:return Ae}}function kf(a,b){a.uniform1fv(this.addr,b)}function lf(a,b){a.uniform1iv(this.addr,b)}function mf(a,b){a.uniform2fv(this.addr,Db(b,this.size,2))}function nf(a,b){a.uniform3fv(this.addr,Db(b,this.size,3))}function of(a,b){a.uniform4fv(this.addr,Db(b,this.size,4))}function pf(a,b){a.uniformMatrix2fv(this.addr,!1,Db(b,this.size,4))}function qf(a,b){a.uniformMatrix3fv(this.addr,
 case 5124:case 35670:return $e;case 35667:case 35671:return ye;case 35668:case 35672:return ze;case 35669:case 35673:return Ae}}function kf(a,b){a.uniform1fv(this.addr,b)}function lf(a,b){a.uniform1iv(this.addr,b)}function mf(a,b){a.uniform2fv(this.addr,Db(b,this.size,2))}function nf(a,b){a.uniform3fv(this.addr,Db(b,this.size,3))}function of(a,b){a.uniform4fv(this.addr,Db(b,this.size,4))}function pf(a,b){a.uniformMatrix2fv(this.addr,!1,Db(b,this.size,4))}function qf(a,b){a.uniformMatrix3fv(this.addr,
 !1,Db(b,this.size,9))}function rf(a,b){a.uniformMatrix4fv(this.addr,!1,Db(b,this.size,16))}function sf(a,b,c){var d=b.length,e=se(c,d);a.uniform1iv(this.addr,e);for(a=0;a!==d;++a)c.setTexture2D(b[a]||we,e[a])}function tf(a,b,c){var d=b.length,e=se(c,d);a.uniform1iv(this.addr,e);for(a=0;a!==d;++a)c.setTextureCube(b[a]||xe,e[a])}function uf(a){switch(a){case 5126:return kf;case 35664:return mf;case 35665:return nf;case 35666:return of;case 35674:return pf;case 35675:return qf;case 35676:return rf;case 35678:return sf;
 !1,Db(b,this.size,9))}function rf(a,b){a.uniformMatrix4fv(this.addr,!1,Db(b,this.size,16))}function sf(a,b,c){var d=b.length,e=se(c,d);a.uniform1iv(this.addr,e);for(a=0;a!==d;++a)c.setTexture2D(b[a]||we,e[a])}function tf(a,b,c){var d=b.length,e=se(c,d);a.uniform1iv(this.addr,e);for(a=0;a!==d;++a)c.setTextureCube(b[a]||xe,e[a])}function uf(a){switch(a){case 5126:return kf;case 35664:return mf;case 35665:return nf;case 35666:return of;case 35674:return pf;case 35675:return qf;case 35676:return rf;case 35678:return sf;
 case 35680:return tf;case 5124:case 35670:return lf;case 35667:case 35671:return ye;case 35668:case 35672:return ze;case 35669:case 35673:return Ae}}function vf(a,b,c){this.id=a;this.addr=c;this.setValue=jf(b.type)}function wf(a,b,c){this.id=a;this.addr=c;this.size=b.size;this.setValue=uf(b.type)}function Be(a){this.id=a;this.seq=[];this.map={}}function Ya(a,b,c){this.seq=[];this.map={};this.renderer=c;c=a.getProgramParameter(b,a.ACTIVE_UNIFORMS);for(var d=0;d<c;++d){var e=a.getActiveUniform(b,d),
 case 35680:return tf;case 5124:case 35670:return lf;case 35667:case 35671:return ye;case 35668:case 35672:return ze;case 35669:case 35673:return Ae}}function vf(a,b,c){this.id=a;this.addr=c;this.setValue=jf(b.type)}function wf(a,b,c){this.id=a;this.addr=c;this.size=b.size;this.setValue=uf(b.type)}function Be(a){this.id=a;this.seq=[];this.map={}}function Ya(a,b,c){this.seq=[];this.map={};this.renderer=c;c=a.getProgramParameter(b,a.ACTIVE_UNIFORMS);for(var 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(Nd.lastIndex=0;;){var m=Nd.exec(h),u=Nd.lastIndex,q=m[1],n=m[3];"]"===m[2]&&(q|=0);if(void 0===n||"["===n&&u+2===l){h=g;e=void 0===n?new vf(q,e,f):new wf(q,e,f);h.seq.push(e);h.map[e.id]=e;break}else n=g.map[q],void 0===n&&(n=new Be(q),q=g,g=n,q.seq.push(g),q.map[g.id]=g),g=n}}}function I(a,b,c){return void 0===b&&void 0===c?this.set(a):this.setRGB(a,b,c)}function bb(a,b,c,d,e,f,g,h,l,m,u,q){ba.call(this,null,f,g,h,l,m,d,e,u,q);this.image=
-{data:a,width:b,height:c};this.magFilter=void 0!==l?l:1003;this.minFilter=void 0!==m?m:1003;this.flipY=this.generateMipmaps=!1;this.unpackAlignment=1}function hd(a,b){this.min=void 0!==a?a:new D(Infinity,Infinity);this.max=void 0!==b?b:new D(-Infinity,-Infinity)}function xf(a,b){var c,d,e,f,g,h,l,m,u,q,n=a.context,r=a.state,k,t,z,x,w,M;this.render=function(v,F,H){if(0!==b.length){v=new p;var A=H.w/H.z,G=.5*H.z,ca=.5*H.w,la=16/H.w,Y=new D(la*A,la),ta=new p(1,1,0),cb=new D(1,1),Ta=new hd;Ta.min.set(H.x,
+f=a.getUniformLocation(b,e.name),g=this,h=e.name,l=h.length;for(Nd.lastIndex=0;;){var m=Nd.exec(h),u=Nd.lastIndex,q=m[1],n=m[3];"]"===m[2]&&(q|=0);if(void 0===n||"["===n&&u+2===l){h=g;e=void 0===n?new vf(q,e,f):new wf(q,e,f);h.seq.push(e);h.map[e.id]=e;break}else n=g.map[q],void 0===n&&(n=new Be(q),q=g,g=n,q.seq.push(g),q.map[g.id]=g),g=n}}}function I(a,b,c){return void 0===b&&void 0===c?this.set(a):this.setRGB(a,b,c)}function cb(a,b,c,d,e,f,g,h,l,m,u,q){ba.call(this,null,f,g,h,l,m,d,e,u,q);this.image=
+{data:a,width:b,height:c};this.magFilter=void 0!==l?l:1003;this.minFilter=void 0!==m?m:1003;this.flipY=this.generateMipmaps=!1;this.unpackAlignment=1}function hd(a,b){this.min=void 0!==a?a:new D(Infinity,Infinity);this.max=void 0!==b?b:new D(-Infinity,-Infinity)}function xf(a,b){var c,d,e,f,g,h,l,m,u,q,n=a.context,r=a.state,k,t,z,x,w,M;this.render=function(v,F,H){if(0!==b.length){v=new p;var A=H.w/H.z,G=.5*H.z,ca=.5*H.w,la=16/H.w,Y=new D(la*A,la),ta=new p(1,1,0),db=new D(1,1),Ta=new hd;Ta.min.set(H.x,
 H.y);Ta.max.set(H.x+(H.z-16),H.y+(H.w-16));if(void 0===x){var la=new Float32Array([-1,-1,0,0,1,-1,1,0,1,1,1,1,-1,1,0,1]),Q=new Uint16Array([0,1,2,0,2,3]);k=n.createBuffer();t=n.createBuffer();n.bindBuffer(n.ARRAY_BUFFER,k);n.bufferData(n.ARRAY_BUFFER,la,n.STATIC_DRAW);n.bindBuffer(n.ELEMENT_ARRAY_BUFFER,t);n.bufferData(n.ELEMENT_ARRAY_BUFFER,Q,n.STATIC_DRAW);w=n.createTexture();M=n.createTexture();r.bindTexture(n.TEXTURE_2D,w);n.texImage2D(n.TEXTURE_2D,0,n.RGB,16,16,0,n.RGB,n.UNSIGNED_BYTE,null);
 H.y);Ta.max.set(H.x+(H.z-16),H.y+(H.w-16));if(void 0===x){var la=new Float32Array([-1,-1,0,0,1,-1,1,0,1,1,1,1,-1,1,0,1]),Q=new Uint16Array([0,1,2,0,2,3]);k=n.createBuffer();t=n.createBuffer();n.bindBuffer(n.ARRAY_BUFFER,k);n.bufferData(n.ARRAY_BUFFER,la,n.STATIC_DRAW);n.bindBuffer(n.ELEMENT_ARRAY_BUFFER,t);n.bufferData(n.ELEMENT_ARRAY_BUFFER,Q,n.STATIC_DRAW);w=n.createTexture();M=n.createTexture();r.bindTexture(n.TEXTURE_2D,w);n.texImage2D(n.TEXTURE_2D,0,n.RGB,16,16,0,n.RGB,n.UNSIGNED_BYTE,null);
 n.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_S,n.CLAMP_TO_EDGE);n.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_T,n.CLAMP_TO_EDGE);n.texParameteri(n.TEXTURE_2D,n.TEXTURE_MAG_FILTER,n.NEAREST);n.texParameteri(n.TEXTURE_2D,n.TEXTURE_MIN_FILTER,n.NEAREST);r.bindTexture(n.TEXTURE_2D,M);n.texImage2D(n.TEXTURE_2D,0,n.RGBA,16,16,0,n.RGBA,n.UNSIGNED_BYTE,null);n.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_S,n.CLAMP_TO_EDGE);n.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_T,n.CLAMP_TO_EDGE);n.texParameteri(n.TEXTURE_2D,
 n.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_S,n.CLAMP_TO_EDGE);n.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_T,n.CLAMP_TO_EDGE);n.texParameteri(n.TEXTURE_2D,n.TEXTURE_MAG_FILTER,n.NEAREST);n.texParameteri(n.TEXTURE_2D,n.TEXTURE_MIN_FILTER,n.NEAREST);r.bindTexture(n.TEXTURE_2D,M);n.texImage2D(n.TEXTURE_2D,0,n.RGBA,16,16,0,n.RGBA,n.UNSIGNED_BYTE,null);n.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_S,n.CLAMP_TO_EDGE);n.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_T,n.CLAMP_TO_EDGE);n.texParameteri(n.TEXTURE_2D,
 n.TEXTURE_MAG_FILTER,n.NEAREST);n.texParameteri(n.TEXTURE_2D,n.TEXTURE_MIN_FILTER,n.NEAREST);var la=z={vertexShader:"uniform lowp int renderType;\nuniform vec3 screenPosition;\nuniform vec2 scale;\nuniform float rotation;\nuniform sampler2D occlusionMap;\nattribute vec2 position;\nattribute vec2 uv;\nvarying vec2 vUV;\nvarying float vVisibility;\nvoid main() {\nvUV = uv;\nvec2 pos = position;\nif ( renderType == 2 ) {\nvec4 visibility = texture2D( occlusionMap, vec2( 0.1, 0.1 ) );\nvisibility += texture2D( occlusionMap, vec2( 0.5, 0.1 ) );\nvisibility += texture2D( occlusionMap, vec2( 0.9, 0.1 ) );\nvisibility += texture2D( occlusionMap, vec2( 0.9, 0.5 ) );\nvisibility += texture2D( occlusionMap, vec2( 0.9, 0.9 ) );\nvisibility += texture2D( occlusionMap, vec2( 0.5, 0.9 ) );\nvisibility += texture2D( occlusionMap, vec2( 0.1, 0.9 ) );\nvisibility += texture2D( occlusionMap, vec2( 0.1, 0.5 ) );\nvisibility += texture2D( occlusionMap, vec2( 0.5, 0.5 ) );\nvVisibility =        visibility.r / 9.0;\nvVisibility *= 1.0 - visibility.g / 9.0;\nvVisibility *=       visibility.b / 9.0;\nvVisibility *= 1.0 - visibility.a / 9.0;\npos.x = cos( rotation ) * position.x - sin( rotation ) * position.y;\npos.y = sin( rotation ) * position.x + cos( rotation ) * position.y;\n}\ngl_Position = vec4( ( pos * scale + screenPosition.xy ).xy, screenPosition.z, 1.0 );\n}",
 n.TEXTURE_MAG_FILTER,n.NEAREST);n.texParameteri(n.TEXTURE_2D,n.TEXTURE_MIN_FILTER,n.NEAREST);var la=z={vertexShader:"uniform lowp int renderType;\nuniform vec3 screenPosition;\nuniform vec2 scale;\nuniform float rotation;\nuniform sampler2D occlusionMap;\nattribute vec2 position;\nattribute vec2 uv;\nvarying vec2 vUV;\nvarying float vVisibility;\nvoid main() {\nvUV = uv;\nvec2 pos = position;\nif ( renderType == 2 ) {\nvec4 visibility = texture2D( occlusionMap, vec2( 0.1, 0.1 ) );\nvisibility += texture2D( occlusionMap, vec2( 0.5, 0.1 ) );\nvisibility += texture2D( occlusionMap, vec2( 0.9, 0.1 ) );\nvisibility += texture2D( occlusionMap, vec2( 0.9, 0.5 ) );\nvisibility += texture2D( occlusionMap, vec2( 0.9, 0.9 ) );\nvisibility += texture2D( occlusionMap, vec2( 0.5, 0.9 ) );\nvisibility += texture2D( occlusionMap, vec2( 0.1, 0.9 ) );\nvisibility += texture2D( occlusionMap, vec2( 0.1, 0.5 ) );\nvisibility += texture2D( occlusionMap, vec2( 0.5, 0.5 ) );\nvVisibility =        visibility.r / 9.0;\nvVisibility *= 1.0 - visibility.g / 9.0;\nvVisibility *=       visibility.b / 9.0;\nvVisibility *= 1.0 - visibility.a / 9.0;\npos.x = cos( rotation ) * position.x - sin( rotation ) * position.y;\npos.y = sin( rotation ) * position.x + cos( rotation ) * position.y;\n}\ngl_Position = vec4( ( pos * scale + screenPosition.xy ).xy, screenPosition.z, 1.0 );\n}",
 fragmentShader:"uniform lowp int renderType;\nuniform sampler2D map;\nuniform float opacity;\nuniform vec3 color;\nvarying vec2 vUV;\nvarying float vVisibility;\nvoid main() {\nif ( renderType == 0 ) {\ngl_FragColor = vec4( 1.0, 0.0, 1.0, 0.0 );\n} else if ( renderType == 1 ) {\ngl_FragColor = texture2D( map, vUV );\n} else {\nvec4 texture = texture2D( map, vUV );\ntexture.a *= opacity * vVisibility;\ngl_FragColor = texture;\ngl_FragColor.rgb *= color;\n}\n}"},Q=n.createProgram(),K=n.createShader(n.FRAGMENT_SHADER),
 fragmentShader:"uniform lowp int renderType;\nuniform sampler2D map;\nuniform float opacity;\nuniform vec3 color;\nvarying vec2 vUV;\nvarying float vVisibility;\nvoid main() {\nif ( renderType == 0 ) {\ngl_FragColor = vec4( 1.0, 0.0, 1.0, 0.0 );\n} else if ( renderType == 1 ) {\ngl_FragColor = texture2D( map, vUV );\n} else {\nvec4 texture = texture2D( map, vUV );\ntexture.a *= opacity * vVisibility;\ngl_FragColor = texture;\ngl_FragColor.rgb *= color;\n}\n}"},Q=n.createProgram(),K=n.createShader(n.FRAGMENT_SHADER),
 N=n.createShader(n.VERTEX_SHADER),O="precision "+a.getPrecision()+" float;\n";n.shaderSource(K,O+la.fragmentShader);n.shaderSource(N,O+la.vertexShader);n.compileShader(K);n.compileShader(N);n.attachShader(Q,K);n.attachShader(Q,N);n.linkProgram(Q);x=Q;u=n.getAttribLocation(x,"position");q=n.getAttribLocation(x,"uv");c=n.getUniformLocation(x,"renderType");d=n.getUniformLocation(x,"map");e=n.getUniformLocation(x,"occlusionMap");f=n.getUniformLocation(x,"opacity");g=n.getUniformLocation(x,"color");h=
 N=n.createShader(n.VERTEX_SHADER),O="precision "+a.getPrecision()+" float;\n";n.shaderSource(K,O+la.fragmentShader);n.shaderSource(N,O+la.vertexShader);n.compileShader(K);n.compileShader(N);n.attachShader(Q,K);n.attachShader(Q,N);n.linkProgram(Q);x=Q;u=n.getAttribLocation(x,"position");q=n.getAttribLocation(x,"uv");c=n.getUniformLocation(x,"renderType");d=n.getUniformLocation(x,"map");e=n.getUniformLocation(x,"occlusionMap");f=n.getUniformLocation(x,"opacity");g=n.getUniformLocation(x,"color");h=
 n.getUniformLocation(x,"scale");l=n.getUniformLocation(x,"rotation");m=n.getUniformLocation(x,"screenPosition")}n.useProgram(x);r.initAttributes();r.enableAttribute(u);r.enableAttribute(q);r.disableUnusedAttributes();n.uniform1i(e,0);n.uniform1i(d,1);n.bindBuffer(n.ARRAY_BUFFER,k);n.vertexAttribPointer(u,2,n.FLOAT,!1,16,0);n.vertexAttribPointer(q,2,n.FLOAT,!1,16,8);n.bindBuffer(n.ELEMENT_ARRAY_BUFFER,t);r.disable(n.CULL_FACE);r.setDepthWrite(!1);Q=0;for(K=b.length;Q<K;Q++)if(la=16/H.w,Y.set(la*A,
 n.getUniformLocation(x,"scale");l=n.getUniformLocation(x,"rotation");m=n.getUniformLocation(x,"screenPosition")}n.useProgram(x);r.initAttributes();r.enableAttribute(u);r.enableAttribute(q);r.disableUnusedAttributes();n.uniform1i(e,0);n.uniform1i(d,1);n.bindBuffer(n.ARRAY_BUFFER,k);n.vertexAttribPointer(u,2,n.FLOAT,!1,16,0);n.vertexAttribPointer(q,2,n.FLOAT,!1,16,8);n.bindBuffer(n.ELEMENT_ARRAY_BUFFER,t);r.disable(n.CULL_FACE);r.setDepthWrite(!1);Q=0;for(K=b.length;Q<K;Q++)if(la=16/H.w,Y.set(la*A,
-la),N=b[Q],v.set(N.matrixWorld.elements[12],N.matrixWorld.elements[13],N.matrixWorld.elements[14]),v.applyMatrix4(F.matrixWorldInverse),v.applyMatrix4(F.projectionMatrix),ta.copy(v),cb.x=H.x+ta.x*G+G-8,cb.y=H.y+ta.y*ca+ca-8,!0===Ta.containsPoint(cb)){r.activeTexture(n.TEXTURE0);r.bindTexture(n.TEXTURE_2D,null);r.activeTexture(n.TEXTURE1);r.bindTexture(n.TEXTURE_2D,w);n.copyTexImage2D(n.TEXTURE_2D,0,n.RGB,cb.x,cb.y,16,16,0);n.uniform1i(c,0);n.uniform2f(h,Y.x,Y.y);n.uniform3f(m,ta.x,ta.y,ta.z);r.disable(n.BLEND);
-r.enable(n.DEPTH_TEST);n.drawElements(n.TRIANGLES,6,n.UNSIGNED_SHORT,0);r.activeTexture(n.TEXTURE0);r.bindTexture(n.TEXTURE_2D,M);n.copyTexImage2D(n.TEXTURE_2D,0,n.RGBA,cb.x,cb.y,16,16,0);n.uniform1i(c,1);r.disable(n.DEPTH_TEST);r.activeTexture(n.TEXTURE1);r.bindTexture(n.TEXTURE_2D,w);n.drawElements(n.TRIANGLES,6,n.UNSIGNED_SHORT,0);N.positionScreen.copy(ta);N.customUpdateCallback?N.customUpdateCallback(N):N.updateLensFlares();n.uniform1i(c,2);r.enable(n.BLEND);for(var O=0,ua=N.lensFlares.length;O<
+la),N=b[Q],v.set(N.matrixWorld.elements[12],N.matrixWorld.elements[13],N.matrixWorld.elements[14]),v.applyMatrix4(F.matrixWorldInverse),v.applyMatrix4(F.projectionMatrix),ta.copy(v),db.x=H.x+ta.x*G+G-8,db.y=H.y+ta.y*ca+ca-8,!0===Ta.containsPoint(db)){r.activeTexture(n.TEXTURE0);r.bindTexture(n.TEXTURE_2D,null);r.activeTexture(n.TEXTURE1);r.bindTexture(n.TEXTURE_2D,w);n.copyTexImage2D(n.TEXTURE_2D,0,n.RGB,db.x,db.y,16,16,0);n.uniform1i(c,0);n.uniform2f(h,Y.x,Y.y);n.uniform3f(m,ta.x,ta.y,ta.z);r.disable(n.BLEND);
+r.enable(n.DEPTH_TEST);n.drawElements(n.TRIANGLES,6,n.UNSIGNED_SHORT,0);r.activeTexture(n.TEXTURE0);r.bindTexture(n.TEXTURE_2D,M);n.copyTexImage2D(n.TEXTURE_2D,0,n.RGBA,db.x,db.y,16,16,0);n.uniform1i(c,1);r.disable(n.DEPTH_TEST);r.activeTexture(n.TEXTURE1);r.bindTexture(n.TEXTURE_2D,w);n.drawElements(n.TRIANGLES,6,n.UNSIGNED_SHORT,0);N.positionScreen.copy(ta);N.customUpdateCallback?N.customUpdateCallback(N):N.updateLensFlares();n.uniform1i(c,2);r.enable(n.BLEND);for(var O=0,ua=N.lensFlares.length;O<
 ua;O++){var U=N.lensFlares[O];.001<U.opacity&&.001<U.scale&&(ta.x=U.x,ta.y=U.y,ta.z=U.z,la=U.size*U.scale/H.w,Y.x=la*A,Y.y=la,n.uniform3f(m,ta.x,ta.y,ta.z),n.uniform2f(h,Y.x,Y.y),n.uniform1f(l,U.rotation),n.uniform1f(f,U.opacity),n.uniform3f(g,U.color.r,U.color.g,U.color.b),r.setBlending(U.blending,U.blendEquation,U.blendSrc,U.blendDst),a.setTexture2D(U.texture,1),n.drawElements(n.TRIANGLES,6,n.UNSIGNED_SHORT,0))}}r.enable(n.CULL_FACE);r.enable(n.DEPTH_TEST);r.setDepthWrite(!0);a.resetGLState()}}}
 ua;O++){var U=N.lensFlares[O];.001<U.opacity&&.001<U.scale&&(ta.x=U.x,ta.y=U.y,ta.z=U.z,la=U.size*U.scale/H.w,Y.x=la*A,Y.y=la,n.uniform3f(m,ta.x,ta.y,ta.z),n.uniform2f(h,Y.x,Y.y),n.uniform1f(l,U.rotation),n.uniform1f(f,U.opacity),n.uniform3f(g,U.color.r,U.color.g,U.color.b),r.setBlending(U.blending,U.blendEquation,U.blendSrc,U.blendDst),a.setTexture2D(U.texture,1),n.drawElements(n.TRIANGLES,6,n.UNSIGNED_SHORT,0))}}r.enable(n.CULL_FACE);r.enable(n.DEPTH_TEST);r.setDepthWrite(!0);a.resetGLState()}}}
 function yf(a,b){var c,d,e,f,g,h,l,m,u,q,n,r,k,t,z,x,w;function M(a,b){return a.renderOrder!==b.renderOrder?a.renderOrder-b.renderOrder:a.z!==b.z?b.z-a.z:b.id-a.id}var v=a.context,F=a.state,H,A,G,ca,la=new p,Y=new ma,ta=new p;this.render=function(p,Ta){if(0!==b.length){if(void 0===G){var Q=new Float32Array([-.5,-.5,0,0,.5,-.5,1,0,.5,.5,1,1,-.5,.5,0,1]),K=new Uint16Array([0,1,2,0,2,3]);H=v.createBuffer();A=v.createBuffer();v.bindBuffer(v.ARRAY_BUFFER,H);v.bufferData(v.ARRAY_BUFFER,Q,v.STATIC_DRAW);
 function yf(a,b){var c,d,e,f,g,h,l,m,u,q,n,r,k,t,z,x,w;function M(a,b){return a.renderOrder!==b.renderOrder?a.renderOrder-b.renderOrder:a.z!==b.z?b.z-a.z:b.id-a.id}var v=a.context,F=a.state,H,A,G,ca,la=new p,Y=new ma,ta=new p;this.render=function(p,Ta){if(0!==b.length){if(void 0===G){var Q=new Float32Array([-.5,-.5,0,0,.5,-.5,1,0,.5,.5,1,1,-.5,.5,0,1]),K=new Uint16Array([0,1,2,0,2,3]);H=v.createBuffer();A=v.createBuffer();v.bindBuffer(v.ARRAY_BUFFER,H);v.bufferData(v.ARRAY_BUFFER,Q,v.STATIC_DRAW);
 v.bindBuffer(v.ELEMENT_ARRAY_BUFFER,A);v.bufferData(v.ELEMENT_ARRAY_BUFFER,K,v.STATIC_DRAW);var Q=v.createProgram(),K=v.createShader(v.VERTEX_SHADER),N=v.createShader(v.FRAGMENT_SHADER);v.shaderSource(K,["precision "+a.getPrecision()+" float;","uniform mat4 modelViewMatrix;\nuniform mat4 projectionMatrix;\nuniform float rotation;\nuniform vec2 scale;\nuniform vec2 uvOffset;\nuniform vec2 uvScale;\nattribute vec2 position;\nattribute vec2 uv;\nvarying vec2 vUV;\nvoid main() {\nvUV = uvOffset + uv * uvScale;\nvec2 alignedPosition = position * scale;\nvec2 rotatedPosition;\nrotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\nrotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\nvec4 finalPosition;\nfinalPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\nfinalPosition.xy += rotatedPosition;\nfinalPosition = projectionMatrix * finalPosition;\ngl_Position = finalPosition;\n}"].join("\n"));
 v.bindBuffer(v.ELEMENT_ARRAY_BUFFER,A);v.bufferData(v.ELEMENT_ARRAY_BUFFER,K,v.STATIC_DRAW);var Q=v.createProgram(),K=v.createShader(v.VERTEX_SHADER),N=v.createShader(v.FRAGMENT_SHADER);v.shaderSource(K,["precision "+a.getPrecision()+" float;","uniform mat4 modelViewMatrix;\nuniform mat4 projectionMatrix;\nuniform float rotation;\nuniform vec2 scale;\nuniform vec2 uvOffset;\nuniform vec2 uvScale;\nattribute vec2 position;\nattribute vec2 uv;\nvarying vec2 vUV;\nvoid main() {\nvUV = uvOffset + uv * uvScale;\nvec2 alignedPosition = position * scale;\nvec2 rotatedPosition;\nrotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\nrotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\nvec4 finalPosition;\nfinalPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\nfinalPosition.xy += rotatedPosition;\nfinalPosition = projectionMatrix * finalPosition;\ngl_Position = finalPosition;\n}"].join("\n"));
@@ -31,7 +31,7 @@ v.uniform2f(d,D.map.repeat.x,D.map.repeat.y)):(v.uniform2f(c,0,0),v.uniform2f(d,
 "id",{value:zf++});this.uuid=T.generateUUID();this.name="";this.type="Material";this.lights=this.fog=!0;this.blending=1;this.side=0;this.shading=2;this.vertexColors=0;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.clippingPlanes=null;this.clipShadows=this.clipIntersection=!1;this.colorWrite=!0;this.precision=null;this.polygonOffset=
 "id",{value:zf++});this.uuid=T.generateUUID();this.name="";this.type="Material";this.lights=this.fog=!0;this.blending=1;this.side=0;this.shading=2;this.vertexColors=0;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.clippingPlanes=null;this.clipShadows=this.clipIntersection=!1;this.colorWrite=!0;this.precision=null;this.polygonOffset=
 !1;this.alphaTest=this.polygonOffsetUnits=this.polygonOffsetFactor=0;this.premultipliedAlpha=!1;this.overdraw=0;this._needsUpdate=this.visible=!0}function Ha(a){W.call(this);this.type="ShaderMaterial";this.defines={};this.uniforms={};this.vertexShader="void main() {\n\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n}";this.fragmentShader="void main() {\n\tgl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );\n}";this.linewidth=1;this.wireframe=!1;this.wireframeLinewidth=1;this.morphNormals=
 !1;this.alphaTest=this.polygonOffsetUnits=this.polygonOffsetFactor=0;this.premultipliedAlpha=!1;this.overdraw=0;this._needsUpdate=this.visible=!0}function Ha(a){W.call(this);this.type="ShaderMaterial";this.defines={};this.uniforms={};this.vertexShader="void main() {\n\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n}";this.fragmentShader="void main() {\n\tgl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );\n}";this.linewidth=1;this.wireframe=!1;this.wireframeLinewidth=1;this.morphNormals=
 this.morphTargets=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;void 0!==a&&(void 0!==a.attributes&&console.error("THREE.ShaderMaterial: attributes should now be defined in THREE.BufferGeometry instead."),this.setValues(a))}function Za(a){W.call(this);this.type="MeshDepthMaterial";this.depthPacking=3200;this.morphTargets=!1;this.displacementMap=
 this.morphTargets=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;void 0!==a&&(void 0!==a.attributes&&console.error("THREE.ShaderMaterial: attributes should now be defined in THREE.BufferGeometry instead."),this.setValues(a))}function Za(a){W.call(this);this.type="MeshDepthMaterial";this.depthPacking=3200;this.morphTargets=!1;this.displacementMap=
-this.alphaMap=this.map=null;this.displacementScale=1;this.displacementBias=0;this.wireframe=!1;this.wireframeLinewidth=1;this.lights=this.fog=!1;this.setValues(a)}function Ua(a,b){this.min=void 0!==a?a:new p(Infinity,Infinity,Infinity);this.max=void 0!==b?b:new p(-Infinity,-Infinity,-Infinity)}function Ja(a,b){this.center=void 0!==a?a:new p;this.radius=void 0!==b?b:0}function Fa(){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.")}
+this.alphaMap=this.map=null;this.displacementScale=1;this.displacementBias=0;this.wireframe=!1;this.wireframeLinewidth=1;this.lights=this.fog=!1;this.setValues(a)}function Ua(a,b){this.min=void 0!==a?a:new p(Infinity,Infinity,Infinity);this.max=void 0!==b?b:new p(-Infinity,-Infinity,-Infinity)}function Ja(a,b){this.center=void 0!==a?a:new p;this.radius=void 0!==b?b:0}function Ba(){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 na(a,b){this.normal=void 0!==a?a:new p(1,0,0);this.constant=void 0!==b?b:0}function id(a,b,c,d,e,f){this.planes=[void 0!==a?a:new na,void 0!==b?b:new na,void 0!==c?c:new na,void 0!==d?d:new na,void 0!==e?e:new na,void 0!==f?f:new na]}function Ce(a,b,c,d){function e(b,c,d,e){var f=b.geometry,g;g=t;var h=b.customDepthMaterial;d&&(g=z,h=b.customDistanceMaterial);h?g=h:(b=!1,c.morphTargets&&(f&&f.isBufferGeometry?b=f.morphAttributes&&f.morphAttributes.position&&0<f.morphAttributes.position.length:
 function na(a,b){this.normal=void 0!==a?a:new p(1,0,0);this.constant=void 0!==b?b:0}function id(a,b,c,d,e,f){this.planes=[void 0!==a?a:new na,void 0!==b?b:new na,void 0!==c?c:new na,void 0!==d?d:new na,void 0!==e?e:new na,void 0!==f?f:new na]}function Ce(a,b,c,d){function e(b,c,d,e){var f=b.geometry,g;g=t;var h=b.customDepthMaterial;d&&(g=z,h=b.customDistanceMaterial);h?g=h:(b=!1,c.morphTargets&&(f&&f.isBufferGeometry?b=f.morphAttributes&&f.morphAttributes.position&&0<f.morphAttributes.position.length:
 f&&f.isGeometry&&(b=f.morphTargets&&0<f.morphTargets.length)),f=0,b&&(f|=1),g=g[f]);a.localClippingEnabled&&!0===c.clipShadows&&0!==c.clippingPlanes.length&&(h=g.uuid,f=c.uuid,b=x[h],void 0===b&&(b={},x[h]=b),h=b[f],void 0===h&&(h=g.clone(),b[f]=h),g=h);g.visible=c.visible;g.wireframe=c.wireframe;f=c.side;ca.renderSingleSided&&2==f&&(f=0);ca.renderReverseSided&&(0===f?f=1:1===f&&(f=0));g.side=f;g.clipShadows=c.clipShadows;g.clippingPlanes=c.clippingPlanes;g.wireframeLinewidth=c.wireframeLinewidth;
 f&&f.isGeometry&&(b=f.morphTargets&&0<f.morphTargets.length)),f=0,b&&(f|=1),g=g[f]);a.localClippingEnabled&&!0===c.clipShadows&&0!==c.clippingPlanes.length&&(h=g.uuid,f=c.uuid,b=x[h],void 0===b&&(b={},x[h]=b),h=b[f],void 0===h&&(h=g.clone(),b[f]=h),g=h);g.visible=c.visible;g.wireframe=c.wireframe;f=c.side;ca.renderSingleSided&&2==f&&(f=0);ca.renderReverseSided&&(0===f?f=1:1===f&&(f=0));g.side=f;g.clipShadows=c.clipShadows;g.clippingPlanes=c.clippingPlanes;g.wireframeLinewidth=c.wireframeLinewidth;
 g.linewidth=c.linewidth;d&&void 0!==g.uniforms.lightPos&&g.uniforms.lightPos.value.copy(e);return g}function f(b,d,g,h){if(!1!==b.visible){if(b.layers.test(d.layers)&&(b.isMesh||b.isLine||b.isPoints)&&b.castShadow&&(!b.frustumCulled||l.intersectsObject(b))){b.modelViewMatrix.multiplyMatrices(g.matrixWorldInverse,b.matrixWorld);var m=c.update(b),n=b.material;if(Array.isArray(n))for(var u=m.groups,q=0,r=u.length;q<r;q++){var x=u[q],w=n[x.materialIndex];w&&w.visible&&(w=e(b,w,h,k),a.renderBufferDirect(g,
 g.linewidth=c.linewidth;d&&void 0!==g.uniforms.lightPos&&g.uniforms.lightPos.value.copy(e);return g}function f(b,d,g,h){if(!1!==b.visible){if(b.layers.test(d.layers)&&(b.isMesh||b.isLine||b.isPoints)&&b.castShadow&&(!b.frustumCulled||l.intersectsObject(b))){b.modelViewMatrix.multiplyMatrices(g.matrixWorldInverse,b.matrixWorld);var m=c.update(b),n=b.material;if(Array.isArray(n))for(var u=m.groups,q=0,r=u.length;q<r;q++){var x=u[q],w=n[x.materialIndex];w&&w.visible&&(w=e(b,w,h,k),a.renderBufferDirect(g,
@@ -39,18 +39,18 @@ null,m,w,b,x))}else n.visible&&(w=e(b,n,h,k),a.renderBufferDirect(g,null,m,w,b,n
 b=new Za;b.depthPacking=3201;b.clipping=!0;d=$a.distanceRGBA;for(var F=Ka.clone(d.uniforms),H=0;2!==H;++H){var A=0!==(H&1),G=b.clone();G.morphTargets=A;t[H]=G;A=new Ha({defines:{USE_SHADOWMAP:""},uniforms:F,vertexShader:d.vertexShader,fragmentShader:d.fragmentShader,morphTargets:A,clipping:!0});z[H]=A}var ca=this;this.enabled=!1;this.autoUpdate=!0;this.needsUpdate=!1;this.type=1;this.renderSingleSided=this.renderReverseSided=!0;this.render=function(b,c){if(!1!==ca.enabled&&(!1!==ca.autoUpdate||!1!==
 b=new Za;b.depthPacking=3201;b.clipping=!0;d=$a.distanceRGBA;for(var F=Ka.clone(d.uniforms),H=0;2!==H;++H){var A=0!==(H&1),G=b.clone();G.morphTargets=A;t[H]=G;A=new Ha({defines:{USE_SHADOWMAP:""},uniforms:F,vertexShader:d.vertexShader,fragmentShader:d.fragmentShader,morphTargets:A,clipping:!0});z[H]=A}var ca=this;this.enabled=!1;this.autoUpdate=!0;this.needsUpdate=!1;this.type=1;this.renderSingleSided=this.renderReverseSided=!0;this.render=function(b,c){if(!1!==ca.enabled&&(!1!==ca.autoUpdate||!1!==
 ca.needsUpdate)&&0!==u.length){h.buffers.color.setClear(1,1,1,1);h.disable(g.BLEND);h.setDepthTest(!0);h.setScissorTest(!1);for(var d,e,x=0,t=u.length;x<t;x++){var p=u[x],z=p.shadow;if(void 0===z)console.warn("THREE.WebGLShadowMap:",p,"has no shadow.");else{var A=z.camera;q.copy(z.mapSize);q.min(n);if(p&&p.isPointLight){d=6;e=!0;var H=q.x,F=q.y;v[0].set(2*H,F,H,F);v[1].set(0,F,H,F);v[2].set(3*H,F,H,F);v[3].set(H,F,H,F);v[4].set(3*H,0,H,F);v[5].set(H,0,H,F);q.x*=4;q.y*=2}else d=1,e=!1;null===z.map&&
 ca.needsUpdate)&&0!==u.length){h.buffers.color.setClear(1,1,1,1);h.disable(g.BLEND);h.setDepthTest(!0);h.setScissorTest(!1);for(var d,e,x=0,t=u.length;x<t;x++){var p=u[x],z=p.shadow;if(void 0===z)console.warn("THREE.WebGLShadowMap:",p,"has no shadow.");else{var A=z.camera;q.copy(z.mapSize);q.min(n);if(p&&p.isPointLight){d=6;e=!0;var H=q.x,F=q.y;v[0].set(2*H,F,H,F);v[1].set(0,F,H,F);v[2].set(3*H,F,H,F);v[3].set(H,F,H,F);v[4].set(3*H,0,H,F);v[5].set(H,0,H,F);q.x*=4;q.y*=2}else d=1,e=!1;null===z.map&&
 (z.map=new Bb(q.x,q.y,{minFilter:1003,magFilter:1003,format:1023}),z.map.texture.name=p.name+".shadowMap",A.updateProjectionMatrix());z.isSpotLightShadow&&z.update(p);z&&z.isRectAreaLightShadow&&z.update(p);H=z.map;z=z.matrix;k.setFromMatrixPosition(p.matrixWorld);A.position.copy(k);a.setRenderTarget(H);a.clear();for(H=0;H<d;H++)e?(r.copy(A.position),r.add(w[H]),A.up.copy(M[H]),A.lookAt(r),h.viewport(v[H])):(r.setFromMatrixPosition(p.target.matrixWorld),A.lookAt(r)),A.updateMatrixWorld(),A.matrixWorldInverse.getInverse(A.matrixWorld),
 (z.map=new Bb(q.x,q.y,{minFilter:1003,magFilter:1003,format:1023}),z.map.texture.name=p.name+".shadowMap",A.updateProjectionMatrix());z.isSpotLightShadow&&z.update(p);z&&z.isRectAreaLightShadow&&z.update(p);H=z.map;z=z.matrix;k.setFromMatrixPosition(p.matrixWorld);A.position.copy(k);a.setRenderTarget(H);a.clear();for(H=0;H<d;H++)e?(r.copy(A.position),r.add(w[H]),A.up.copy(M[H]),A.lookAt(r),h.viewport(v[H])):(r.setFromMatrixPosition(p.target.matrixWorld),A.lookAt(r)),A.updateMatrixWorld(),A.matrixWorldInverse.getInverse(A.matrixWorld),
-z.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),z.multiply(A.projectionMatrix),z.multiply(A.matrixWorldInverse),m.multiplyMatrices(A.projectionMatrix,A.matrixWorldInverse),l.setFromMatrix(m),f(b,c,A,e)}}d=a.getClearColor();e=a.getClearAlpha();a.setClearColor(d,e);ca.needsUpdate=!1}}}function db(a,b){this.origin=void 0!==a?a:new p;this.direction=void 0!==b?b:new p}function ab(a,b,c,d){this._x=a||0;this._y=b||0;this._z=c||0;this._order=d||ab.DefaultOrder}function Od(){this.mask=1}function B(){Object.defineProperty(this,
-"id",{value:Af++});this.uuid=T.generateUUID();this.name="";this.type="Object3D";this.parent=null;this.children=[];this.up=B.DefaultUp.clone();var a=new p,b=new ab,c=new ma,d=new p(1,1,1);b.onChange(function(){c.setFromEuler(b,!1)});c.onChange(function(){b.setFromQuaternion(c,void 0,!1)});Object.defineProperties(this,{position:{enumerable:!0,value:a},rotation:{enumerable:!0,value:b},quaternion:{enumerable:!0,value:c},scale:{enumerable:!0,value:d},modelViewMatrix:{value:new R},normalMatrix:{value:new Fa}});
+z.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),z.multiply(A.projectionMatrix),z.multiply(A.matrixWorldInverse),m.multiplyMatrices(A.projectionMatrix,A.matrixWorldInverse),l.setFromMatrix(m),f(b,c,A,e)}}d=a.getClearColor();e=a.getClearAlpha();a.setClearColor(d,e);ca.needsUpdate=!1}}}function eb(a,b){this.origin=void 0!==a?a:new p;this.direction=void 0!==b?b:new p}function ab(a,b,c,d){this._x=a||0;this._y=b||0;this._z=c||0;this._order=d||ab.DefaultOrder}function Od(){this.mask=1}function B(){Object.defineProperty(this,
+"id",{value:Af++});this.uuid=T.generateUUID();this.name="";this.type="Object3D";this.parent=null;this.children=[];this.up=B.DefaultUp.clone();var a=new p,b=new ab,c=new ma,d=new p(1,1,1);b.onChange(function(){c.setFromEuler(b,!1)});c.onChange(function(){b.setFromQuaternion(c,void 0,!1)});Object.defineProperties(this,{position:{enumerable:!0,value:a},rotation:{enumerable:!0,value:b},quaternion:{enumerable:!0,value:c},scale:{enumerable:!0,value:d},modelViewMatrix:{value:new R},normalMatrix:{value:new Ba}});
 this.matrix=new R;this.matrixWorld=new R;this.matrixAutoUpdate=B.DefaultMatrixAutoUpdate;this.matrixWorldNeedsUpdate=!1;this.layers=new Od;this.visible=!0;this.receiveShadow=this.castShadow=!1;this.frustumCulled=!0;this.renderOrder=0;this.userData={};this.onBeforeRender=function(){};this.onAfterRender=function(){}}function Eb(a,b){this.start=void 0!==a?a:new p;this.end=void 0!==b?b:new p}function Va(a,b,c){this.a=void 0!==a?a:new p;this.b=void 0!==b?b:new p;this.c=void 0!==c?c:new p}function ia(a,
 this.matrix=new R;this.matrixWorld=new R;this.matrixAutoUpdate=B.DefaultMatrixAutoUpdate;this.matrixWorldNeedsUpdate=!1;this.layers=new Od;this.visible=!0;this.receiveShadow=this.castShadow=!1;this.frustumCulled=!0;this.renderOrder=0;this.userData={};this.onBeforeRender=function(){};this.onAfterRender=function(){}}function Eb(a,b){this.start=void 0!==a?a:new p;this.end=void 0!==b?b:new p}function Va(a,b,c){this.a=void 0!==a?a:new p;this.b=void 0!==b?b:new p;this.c=void 0!==c?c:new p}function ia(a,
 b,c,d,e,f){this.a=a;this.b=b;this.c=c;this.normal=d&&d.isVector3?d:new p;this.vertexNormals=Array.isArray(d)?d:[];this.color=e&&e.isColor?e:new I;this.vertexColors=Array.isArray(e)?e:[];this.materialIndex=void 0!==f?f:0}function La(a){W.call(this);this.type="MeshBasicMaterial";this.color=new I(16777215);this.lightMap=this.map=null;this.lightMapIntensity=1;this.aoMap=null;this.aoMapIntensity=1;this.envMap=this.alphaMap=this.specularMap=null;this.combine=0;this.reflectivity=1;this.refractionRatio=.98;
 b,c,d,e,f){this.a=a;this.b=b;this.c=c;this.normal=d&&d.isVector3?d:new p;this.vertexNormals=Array.isArray(d)?d:[];this.color=e&&e.isColor?e:new I;this.vertexColors=Array.isArray(e)?e:[];this.materialIndex=void 0!==f?f:0}function La(a){W.call(this);this.type="MeshBasicMaterial";this.color=new I(16777215);this.lightMap=this.map=null;this.lightMapIntensity=1;this.aoMap=null;this.aoMapIntensity=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.lights=this.morphTargets=!1;this.setValues(a)}function V(a,b,c){if(Array.isArray(a))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");Object.defineProperty(this,"id",{value:Bf++});this.uuid=T.generateUUID();this.array=a;this.itemSize=b;this.count=void 0!==a?a.length/b:0;this.normalized=!0===c;this.dynamic=!1;this.updateRange={offset:0,count:-1};this.onUploadCallback=function(){};
 this.wireframe=!1;this.wireframeLinewidth=1;this.wireframeLinejoin=this.wireframeLinecap="round";this.lights=this.morphTargets=!1;this.setValues(a)}function V(a,b,c){if(Array.isArray(a))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");Object.defineProperty(this,"id",{value:Bf++});this.uuid=T.generateUUID();this.array=a;this.itemSize=b;this.count=void 0!==a?a.length/b:0;this.normalized=!0===c;this.dynamic=!1;this.updateRange={offset:0,count:-1};this.onUploadCallback=function(){};
-this.version=0}function qc(a,b){V.call(this,new Int8Array(a),b)}function rc(a,b){V.call(this,new Uint8Array(a),b)}function sc(a,b){V.call(this,new Uint8ClampedArray(a),b)}function tc(a,b){V.call(this,new Int16Array(a),b)}function eb(a,b){V.call(this,new Uint16Array(a),b)}function uc(a,b){V.call(this,new Int32Array(a),b)}function fb(a,b){V.call(this,new Uint32Array(a),b)}function E(a,b){V.call(this,new Float32Array(a),b)}function vc(a,b){V.call(this,new Float64Array(a),b)}function De(){this.indices=
+this.version=0}function qc(a,b){V.call(this,new Int8Array(a),b)}function rc(a,b){V.call(this,new Uint8Array(a),b)}function sc(a,b){V.call(this,new Uint8ClampedArray(a),b)}function tc(a,b){V.call(this,new Int16Array(a),b)}function fb(a,b){V.call(this,new Uint16Array(a),b)}function uc(a,b){V.call(this,new Int32Array(a),b)}function gb(a,b){V.call(this,new Uint32Array(a),b)}function E(a,b){V.call(this,new Float32Array(a),b)}function vc(a,b){V.call(this,new Float64Array(a),b)}function De(){this.indices=
 [];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 Pd(a){for(var b=a.length,c=-Infinity;b--;)a[b]>c&&(c=a[b]);return c}function S(){Object.defineProperty(this,"id",{value:Qd++});this.uuid=T.generateUUID();this.name="";this.type="Geometry";
 [];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 Pd(a){for(var b=a.length,c=-Infinity;b--;)a[b]>c&&(c=a[b]);return c}function S(){Object.defineProperty(this,"id",{value:Qd++});this.uuid=T.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=this.colorsNeedUpdate=this.normalsNeedUpdate=this.uvsNeedUpdate=this.verticesNeedUpdate=this.elementsNeedUpdate=!1}function J(){Object.defineProperty(this,"id",{value:Qd++});this.uuid=T.generateUUID();this.name="";this.type="BufferGeometry";
 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=this.colorsNeedUpdate=this.normalsNeedUpdate=this.uvsNeedUpdate=this.verticesNeedUpdate=this.elementsNeedUpdate=!1}function J(){Object.defineProperty(this,"id",{value:Qd++});this.uuid=T.generateUUID();this.name="";this.type="BufferGeometry";
-this.index=null;this.attributes={};this.morphAttributes={};this.groups=[];this.boundingSphere=this.boundingBox=null;this.drawRange={start:0,count:Infinity}}function ya(a,b){B.call(this);this.type="Mesh";this.geometry=void 0!==a?a:new J;this.material=void 0!==b?b:new La({color:16777215*Math.random()});this.drawMode=0;this.updateMorphTargets()}function Fb(a,b,c,d,e,f){S.call(this);this.type="BoxGeometry";this.parameters={width:a,height:b,depth:c,widthSegments:d,heightSegments:e,depthSegments:f};this.fromBufferGeometry(new gb(a,
-b,c,d,e,f));this.mergeVertices()}function gb(a,b,c,d,e,f){function g(a,b,c,d,e,f,g,k,H,A,G){var ca=f/H,D=g/A,Y=f/2,ta=g/2,B=k/2;g=H+1;var E=A+1,Q=f=0,K,N,O=new p;for(N=0;N<E;N++){var J=N*D-ta;for(K=0;K<g;K++)O[a]=(K*ca-Y)*d,O[b]=J*e,O[c]=B,m.push(O.x,O.y,O.z),O[a]=0,O[b]=0,O[c]=0<k?1:-1,u.push(O.x,O.y,O.z),q.push(K/H),q.push(1-N/A),f+=1}for(N=0;N<A;N++)for(K=0;K<H;K++)a=n+K+g*(N+1),b=n+(K+1)+g*(N+1),c=n+(K+1)+g*N,l.push(n+K+g*N,a,c),l.push(a,b,c),Q+=6;h.addGroup(r,Q,G);r+=Q;n+=f}J.call(this);this.type=
+this.index=null;this.attributes={};this.morphAttributes={};this.groups=[];this.boundingSphere=this.boundingBox=null;this.drawRange={start:0,count:Infinity}}function ya(a,b){B.call(this);this.type="Mesh";this.geometry=void 0!==a?a:new J;this.material=void 0!==b?b:new La({color:16777215*Math.random()});this.drawMode=0;this.updateMorphTargets()}function Fb(a,b,c,d,e,f){S.call(this);this.type="BoxGeometry";this.parameters={width:a,height:b,depth:c,widthSegments:d,heightSegments:e,depthSegments:f};this.fromBufferGeometry(new hb(a,
+b,c,d,e,f));this.mergeVertices()}function hb(a,b,c,d,e,f){function g(a,b,c,d,e,f,g,k,H,A,G){var ca=f/H,D=g/A,Y=f/2,ta=g/2,B=k/2;g=H+1;var E=A+1,Q=f=0,K,N,O=new p;for(N=0;N<E;N++){var J=N*D-ta;for(K=0;K<g;K++)O[a]=(K*ca-Y)*d,O[b]=J*e,O[c]=B,m.push(O.x,O.y,O.z),O[a]=0,O[b]=0,O[c]=0<k?1:-1,u.push(O.x,O.y,O.z),q.push(K/H),q.push(1-N/A),f+=1}for(N=0;N<A;N++)for(K=0;K<H;K++)a=n+K+g*(N+1),b=n+(K+1)+g*(N+1),c=n+(K+1)+g*N,l.push(n+K+g*N,a,c),l.push(a,b,c),Q+=6;h.addGroup(r,Q,G);r+=Q;n+=f}J.call(this);this.type=
 "BoxBufferGeometry";this.parameters={width:a,height:b,depth:c,widthSegments:d,heightSegments:e,depthSegments:f};var h=this;d=Math.floor(d)||1;e=Math.floor(e)||1;f=Math.floor(f)||1;var l=[],m=[],u=[],q=[],n=0,r=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.addAttribute("position",new E(m,3));this.addAttribute("normal",new E(u,
 "BoxBufferGeometry";this.parameters={width:a,height:b,depth:c,widthSegments:d,heightSegments:e,depthSegments:f};var h=this;d=Math.floor(d)||1;e=Math.floor(e)||1;f=Math.floor(f)||1;var l=[],m=[],u=[],q=[],n=0,r=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.addAttribute("position",new E(m,3));this.addAttribute("normal",new E(u,
-3));this.addAttribute("uv",new E(q,2))}function wc(a,b,c,d){S.call(this);this.type="PlaneGeometry";this.parameters={width:a,height:b,widthSegments:c,heightSegments:d};this.fromBufferGeometry(new hb(a,b,c,d))}function hb(a,b,c,d){J.call(this);this.type="PlaneBufferGeometry";this.parameters={width:a,height:b,widthSegments:c,heightSegments:d};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,m=b/d,u=[],q=[],n=[],r=[];for(a=0;a<h;a++){var k=a*m-f;for(b=0;b<g;b++)q.push(b*l-e,
+3));this.addAttribute("uv",new E(q,2))}function wc(a,b,c,d){S.call(this);this.type="PlaneGeometry";this.parameters={width:a,height:b,widthSegments:c,heightSegments:d};this.fromBufferGeometry(new ib(a,b,c,d))}function ib(a,b,c,d){J.call(this);this.type="PlaneBufferGeometry";this.parameters={width:a,height:b,widthSegments:c,heightSegments:d};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,m=b/d,u=[],q=[],n=[],r=[];for(a=0;a<h;a++){var k=a*m-f;for(b=0;b<g;b++)q.push(b*l-e,
 -k,0),n.push(0,0,1),r.push(b/c),r.push(1-a/d)}for(a=0;a<d;a++)for(b=0;b<c;b++)e=b+g*(a+1),f=b+1+g*(a+1),h=b+1+g*a,u.push(b+g*a,e,h),u.push(e,f,h);this.setIndex(u);this.addAttribute("position",new E(q,3));this.addAttribute("normal",new E(n,3));this.addAttribute("uv",new E(r,2))}function qa(){B.call(this);this.type="Camera";this.matrixWorldInverse=new R;this.projectionMatrix=new R}function Ga(a,b,c,d){qa.call(this);this.type="PerspectiveCamera";this.fov=void 0!==a?a:50;this.zoom=1;this.near=void 0!==
 -k,0),n.push(0,0,1),r.push(b/c),r.push(1-a/d)}for(a=0;a<d;a++)for(b=0;b<c;b++)e=b+g*(a+1),f=b+1+g*(a+1),h=b+1+g*a,u.push(b+g*a,e,h),u.push(e,f,h);this.setIndex(u);this.addAttribute("position",new E(q,3));this.addAttribute("normal",new E(n,3));this.addAttribute("uv",new E(r,2))}function qa(){B.call(this);this.type="Camera";this.matrixWorldInverse=new R;this.projectionMatrix=new R}function Ga(a,b,c,d){qa.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 Gb(a,b,c,d,e,f){qa.call(this);this.type="OrthographicCamera";this.zoom=1;this.view=null;this.left=a;this.right=b;this.top=c;this.bottom=d;this.near=void 0!==e?e:.1;this.far=void 0!==f?f:2E3;this.updateProjectionMatrix()}function Cf(a){var b={};return{get:function(a){a.isInterleavedBufferAttribute&&(a=a.data);return b[a.id]},remove:function(c){var d=
 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 Gb(a,b,c,d,e,f){qa.call(this);this.type="OrthographicCamera";this.zoom=1;this.view=null;this.left=a;this.right=b;this.top=c;this.bottom=d;this.near=void 0!==e?e:.1;this.far=void 0!==f?f:2E3;this.updateProjectionMatrix()}function Cf(a){var b={};return{get:function(a){a.isInterleavedBufferAttribute&&(a=a.data);return b[a.id]},remove:function(c){var d=
 b[c.id];d&&(a.deleteBuffer(d.buffer),delete b[c.id])},update:function(c,d){c.isInterleavedBufferAttribute&&(c=c.data);var e=b[c.id];if(void 0===e){var e=c.id,f=c,g=f.array,h=f.dynamic?a.DYNAMIC_DRAW:a.STATIC_DRAW,l=a.createBuffer();a.bindBuffer(d,l);a.bufferData(d,g,h);f.onUploadCallback();h=a.FLOAT;g instanceof Float32Array?h=a.FLOAT:g instanceof Float64Array?console.warn("Unsupported data buffer format: Float64Array"):g instanceof Uint16Array?h=a.UNSIGNED_SHORT:g instanceof Int16Array?h=a.SHORT:
 b[c.id];d&&(a.deleteBuffer(d.buffer),delete b[c.id])},update:function(c,d){c.isInterleavedBufferAttribute&&(c=c.data);var e=b[c.id];if(void 0===e){var e=c.id,f=c,g=f.array,h=f.dynamic?a.DYNAMIC_DRAW:a.STATIC_DRAW,l=a.createBuffer();a.bindBuffer(d,l);a.bufferData(d,g,h);f.onUploadCallback();h=a.FLOAT;g instanceof Float32Array?h=a.FLOAT:g instanceof Float64Array?console.warn("Unsupported data buffer format: Float64Array"):g instanceof Uint16Array?h=a.UNSIGNED_SHORT:g instanceof Int16Array?h=a.SHORT:
@@ -60,12 +60,12 @@ h,l){var m=b.get("ANGLE_instanced_arrays");null===m?console.error("THREE.WebGLBu
 f/3)},renderInstances:function(e){var f=b.get("ANGLE_instanced_arrays");if(null===f)console.error("THREE.WebGLBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.");else{var g=e.attributes.position,g=g.isInterleavedBufferAttribute?g.data.count:g.count;f.drawArraysInstancedANGLE(d,0,g,e.maxInstancedCount);c.calls++;c.vertices+=g*e.maxInstancedCount;d===a.TRIANGLES&&(c.faces+=e.maxInstancedCount*g/3)}}}}function Ff(a,b,c){function d(a){a=
 f/3)},renderInstances:function(e){var f=b.get("ANGLE_instanced_arrays");if(null===f)console.error("THREE.WebGLBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.");else{var g=e.attributes.position,g=g.isInterleavedBufferAttribute?g.data.count:g.count;f.drawArraysInstancedANGLE(d,0,g,e.maxInstancedCount);c.calls++;c.vertices+=g*e.maxInstancedCount;d===a.TRIANGLES&&(c.faces+=e.maxInstancedCount*g/3)}}}}function Ff(a,b,c){function d(a){a=
 a.target;var h=e[a.id];null!==h.index&&b.remove(h.index);for(var l in h.attributes)b.remove(h.attributes[l]);a.removeEventListener("dispose",d);delete e[a.id];if(l=f[a.id])b.remove(l),delete f[a.id];if(l=f[h.id])b.remove(l),delete f[h.id];c.geometries--}var e={},f={};return{get:function(a,b){var f=e[b.id];if(f)return f;b.addEventListener("dispose",d);b.isBufferGeometry?f=b:b.isGeometry&&(void 0===b._bufferGeometry&&(b._bufferGeometry=(new J).setFromObject(a)),f=b._bufferGeometry);e[b.id]=f;c.geometries++;
 a.target;var h=e[a.id];null!==h.index&&b.remove(h.index);for(var l in h.attributes)b.remove(h.attributes[l]);a.removeEventListener("dispose",d);delete e[a.id];if(l=f[a.id])b.remove(l),delete f[a.id];if(l=f[h.id])b.remove(l),delete f[h.id];c.geometries--}var e={},f={};return{get:function(a,b){var f=e[b.id];if(f)return f;b.addEventListener("dispose",d);b.isBufferGeometry?f=b:b.isGeometry&&(void 0===b._bufferGeometry&&(b._bufferGeometry=(new J).setFromObject(a)),f=b._bufferGeometry);e[b.id]=f;c.geometries++;
 return f},update:function(c){var d=c.index,e=c.attributes;null!==d&&b.update(d,a.ELEMENT_ARRAY_BUFFER);for(var f in e)b.update(e[f],a.ARRAY_BUFFER);c=c.morphAttributes;for(f in c)for(var d=c[f],e=0,u=d.length;e<u;e++)b.update(d[e],a.ARRAY_BUFFER)},getWireframeAttribute:function(c){var d=f[c.id];if(d)return d;var d=[],e=c.index,m=c.attributes;if(null!==e)for(var e=e.array,m=0,u=e.length;m<u;m+=3){var q=e[m+0],n=e[m+1],r=e[m+2];d.push(q,n,n,r,r,q)}else for(e=m.position.array,m=0,u=e.length/3-1;m<u;m+=
 return f},update:function(c){var d=c.index,e=c.attributes;null!==d&&b.update(d,a.ELEMENT_ARRAY_BUFFER);for(var f in e)b.update(e[f],a.ARRAY_BUFFER);c=c.morphAttributes;for(f in c)for(var d=c[f],e=0,u=d.length;e<u;e++)b.update(d[e],a.ARRAY_BUFFER)},getWireframeAttribute:function(c){var d=f[c.id];if(d)return d;var d=[],e=c.index,m=c.attributes;if(null!==e)for(var e=e.array,m=0,u=e.length;m<u;m+=3){var q=e[m+0],n=e[m+1],r=e[m+2];d.push(q,n,n,r,r,q)}else for(e=m.position.array,m=0,u=e.length/3-1;m<u;m+=
-3)q=m+0,n=m+1,r=m+2,d.push(q,n,n,r,r,q);d=new (65535<Pd(d)?fb:eb)(d,1);b.update(d,a.ELEMENT_ARRAY_BUFFER);return f[c.id]=d}}}function Gf(){var a={};return{get:function(b){if(void 0!==a[b.id])return a[b.id];var c;switch(b.type){case "DirectionalLight":c={direction:new p,color:new I,shadow:!1,shadowBias:0,shadowRadius:1,shadowMapSize:new D};break;case "SpotLight":c={position:new p,direction:new p,color:new I,distance:0,coneCos:0,penumbraCos:0,decay:0,shadow:!1,shadowBias:0,shadowRadius:1,shadowMapSize:new D};
-break;case "PointLight":c={position:new p,color:new I,distance:0,decay:0,shadow:!1,shadowBias:0,shadowRadius:1,shadowMapSize:new D};break;case "HemisphereLight":c={direction:new p,skyColor:new I,groundColor:new I};break;case "RectAreaLight":c={color:new I,position:new p,halfWidth:new p,halfHeight:new p}}return a[b.id]=c}}}function Hf(a,b,c){return{update:function(a){var e=c.frame,f=a.geometry,g=b.get(a,f);g.__frame!==e&&(f.isGeometry&&g.updateFromObject(a),b.update(g),g.__frame=e);return g}}}function If(a){a=
-a.split("\n");for(var b=0;b<a.length;b++)a[b]=b+1+": "+a[b];return a.join("\n")}function Ee(a,b,c){var d=a.createShader(b);a.shaderSource(d,c);a.compileShader(d);!1===a.getShaderParameter(d,a.COMPILE_STATUS)&&console.error("THREE.WebGLShader: Shader couldn't compile.");""!==a.getShaderInfoLog(d)&&console.warn("THREE.WebGLShader: gl.getShaderInfoLog()",b===a.VERTEX_SHADER?"vertex":"fragment",a.getShaderInfoLog(d),If(c));return d}function Fe(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 ) )"];default:throw Error("unsupported encoding: "+a);}}function Rd(a,b){var c=Fe(b);return"vec4 "+a+"( vec4 value ) { return "+c[0]+"ToLinear"+c[1]+"; }"}function Jf(a,b){var c=Fe(b);return"vec4 "+a+"( vec4 value ) { return LinearTo"+c[0]+c[1]+"; }"}function Kf(a,b){var c;
-switch(b){case 1:c="Linear";break;case 2:c="Reinhard";break;case 3:c="Uncharted2";break;case 4:c="OptimizedCineon";break;default:throw Error("unsupported toneMapping: "+b);}return"vec3 "+a+"( vec3 color ) { return "+c+"ToneMapping( color ); }"}function Lf(a,b,c){a=a||{};return[a.derivatives||b.envMapCubeUV||b.bumpMap||b.normalMap||b.flatShading?"#extension GL_OES_standard_derivatives : enable":"",(a.fragDepth||b.logarithmicDepthBuffer)&&c.get("EXT_frag_depth")?"#extension GL_EXT_frag_depth : enable":
-"",a.drawBuffers&&c.get("WEBGL_draw_buffers")?"#extension GL_EXT_draw_buffers : require":"",(a.shaderTextureLOD||b.envMap)&&c.get("EXT_shader_texture_lod")?"#extension GL_EXT_shader_texture_lod : enable":""].filter(xc).join("\n")}function Mf(a){var b=[],c;for(c in a){var d=a[c];!1!==d&&b.push("#define "+c+" "+d)}return b.join("\n")}function xc(a){return""!==a}function Ge(a,b){return a.replace(/NUM_DIR_LIGHTS/g,b.numDirLights).replace(/NUM_SPOT_LIGHTS/g,b.numSpotLights).replace(/NUM_RECT_AREA_LIGHTS/g,
+3)q=m+0,n=m+1,r=m+2,d.push(q,n,n,r,r,q);d=new (65535<Pd(d)?gb:fb)(d,1);b.update(d,a.ELEMENT_ARRAY_BUFFER);return f[c.id]=d}}}function Gf(){var a={};return{get:function(b){if(void 0!==a[b.id])return a[b.id];var c;switch(b.type){case "DirectionalLight":c={direction:new p,color:new I,shadow:!1,shadowBias:0,shadowRadius:1,shadowMapSize:new D};break;case "SpotLight":c={position:new p,direction:new p,color:new I,distance:0,coneCos:0,penumbraCos:0,decay:0,shadow:!1,shadowBias:0,shadowRadius:1,shadowMapSize:new D};
+break;case "PointLight":c={position:new p,color:new I,distance:0,decay:0,shadow:!1,shadowBias:0,shadowRadius:1,shadowMapSize:new D};break;case "HemisphereLight":c={direction:new p,skyColor:new I,groundColor:new I};break;case "RectAreaLight":c={color:new I,position:new p,halfWidth:new p,halfHeight:new p}}return a[b.id]=c}}}function Hf(a,b,c){var d={};return{update:function(a){var f=c.frame,g=a.geometry,h=b.get(a,g);d[h.id]!==f&&(g.isGeometry&&h.updateFromObject(a),b.update(h),d[h.id]=f);return h},
+clear:function(){d={}}}}function If(a){a=a.split("\n");for(var b=0;b<a.length;b++)a[b]=b+1+": "+a[b];return a.join("\n")}function Ee(a,b,c){var d=a.createShader(b);a.shaderSource(d,c);a.compileShader(d);!1===a.getShaderParameter(d,a.COMPILE_STATUS)&&console.error("THREE.WebGLShader: Shader couldn't compile.");""!==a.getShaderInfoLog(d)&&console.warn("THREE.WebGLShader: gl.getShaderInfoLog()",b===a.VERTEX_SHADER?"vertex":"fragment",a.getShaderInfoLog(d),If(c));return d}function Fe(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 ) )"];default:throw Error("unsupported encoding: "+a);}}function Rd(a,b){var c=Fe(b);return"vec4 "+a+"( vec4 value ) { return "+c[0]+"ToLinear"+c[1]+"; }"}function Jf(a,b){var c=Fe(b);return"vec4 "+a+"( vec4 value ) { return LinearTo"+
+c[0]+c[1]+"; }"}function Kf(a,b){var c;switch(b){case 1:c="Linear";break;case 2:c="Reinhard";break;case 3:c="Uncharted2";break;case 4:c="OptimizedCineon";break;default:throw Error("unsupported toneMapping: "+b);}return"vec3 "+a+"( vec3 color ) { return "+c+"ToneMapping( color ); }"}function Lf(a,b,c){a=a||{};return[a.derivatives||b.envMapCubeUV||b.bumpMap||b.normalMap||b.flatShading?"#extension GL_OES_standard_derivatives : enable":"",(a.fragDepth||b.logarithmicDepthBuffer)&&c.get("EXT_frag_depth")?
+"#extension GL_EXT_frag_depth : enable":"",a.drawBuffers&&c.get("WEBGL_draw_buffers")?"#extension GL_EXT_draw_buffers : require":"",(a.shaderTextureLOD||b.envMap)&&c.get("EXT_shader_texture_lod")?"#extension GL_EXT_shader_texture_lod : enable":""].filter(xc).join("\n")}function Mf(a){var b=[],c;for(c in a){var d=a[c];!1!==d&&b.push("#define "+c+" "+d)}return b.join("\n")}function xc(a){return""!==a}function Ge(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)}function Sd(a){return a.replace(/#include +<([\w\d.]+)>/g,function(a,c){var d=Z[c];if(void 0===d)throw Error("Can not resolve #include <"+c+">");return Sd(d)})}function He(a){return a.replace(/for \( int i \= (\d+)\; i < (\d+)\; i \+\+ \) \{([\s\S]+?)(?=\})\}/g,function(a,c,d,e){a="";for(c=parseInt(c);c<parseInt(d);c++)a+=e.replace(/\[ i \]/g,"[ "+c+" ]");return a})}function Nf(a,b,c,d){var e=
 b.numRectAreaLights).replace(/NUM_POINT_LIGHTS/g,b.numPointLights).replace(/NUM_HEMI_LIGHTS/g,b.numHemiLights)}function Sd(a){return a.replace(/#include +<([\w\d.]+)>/g,function(a,c){var d=Z[c];if(void 0===d)throw Error("Can not resolve #include <"+c+">");return Sd(d)})}function He(a){return a.replace(/for \( int i \= (\d+)\; i < (\d+)\; i \+\+ \) \{([\s\S]+?)(?=\})\}/g,function(a,c,d,e){a="";for(c=parseInt(c);c<parseInt(d);c++)a+=e.replace(/\[ i \]/g,"[ "+c+" ]");return a})}function Nf(a,b,c,d){var e=
 a.context,f=c.extensions,g=c.defines,h=c.__webglShader.vertexShader,l=c.__webglShader.fragmentShader,m="SHADOWMAP_TYPE_BASIC";1===d.shadowMapType?m="SHADOWMAP_TYPE_PCF":2===d.shadowMapType&&(m="SHADOWMAP_TYPE_PCF_SOFT");var u="ENVMAP_TYPE_CUBE",q="ENVMAP_MODE_REFLECTION",n="ENVMAP_BLENDING_MULTIPLY";if(d.envMap){switch(c.envMap.mapping){case 301:case 302:u="ENVMAP_TYPE_CUBE";break;case 306:case 307:u="ENVMAP_TYPE_CUBE_UV";break;case 303:case 304:u="ENVMAP_TYPE_EQUIREC";break;case 305:u="ENVMAP_TYPE_SPHERE"}switch(c.envMap.mapping){case 302:case 304:q=
 a.context,f=c.extensions,g=c.defines,h=c.__webglShader.vertexShader,l=c.__webglShader.fragmentShader,m="SHADOWMAP_TYPE_BASIC";1===d.shadowMapType?m="SHADOWMAP_TYPE_PCF":2===d.shadowMapType&&(m="SHADOWMAP_TYPE_PCF_SOFT");var u="ENVMAP_TYPE_CUBE",q="ENVMAP_MODE_REFLECTION",n="ENVMAP_BLENDING_MULTIPLY";if(d.envMap){switch(c.envMap.mapping){case 301:case 302:u="ENVMAP_TYPE_CUBE";break;case 306:case 307:u="ENVMAP_TYPE_CUBE_UV";break;case 303:case 304:u="ENVMAP_TYPE_EQUIREC";break;case 305:u="ENVMAP_TYPE_SPHERE"}switch(c.envMap.mapping){case 302:case 304:q=
 "ENVMAP_MODE_REFRACTION"}switch(c.combine){case 0:n="ENVMAP_BLENDING_MULTIPLY";break;case 1:n="ENVMAP_BLENDING_MIX";break;case 2:n="ENVMAP_BLENDING_ADD"}}var r=0<a.gammaFactor?a.gammaFactor:1,f=Lf(f,d,a.extensions),k=Mf(g),t=e.createProgram();c.isRawShaderMaterial?(g=[k,"\n"].filter(xc).join("\n"),m=[f,k,"\n"].filter(xc).join("\n")):(g=["precision "+d.precision+" float;","precision "+d.precision+" int;","#define SHADER_NAME "+c.__webglShader.name,k,d.supportsVertexTextures?"#define VERTEX_TEXTURES":
 "ENVMAP_MODE_REFRACTION"}switch(c.combine){case 0:n="ENVMAP_BLENDING_MULTIPLY";break;case 1:n="ENVMAP_BLENDING_MIX";break;case 2:n="ENVMAP_BLENDING_ADD"}}var r=0<a.gammaFactor?a.gammaFactor:1,f=Lf(f,d,a.extensions),k=Mf(g),t=e.createProgram();c.isRawShaderMaterial?(g=[k,"\n"].filter(xc).join("\n"),m=[f,k,"\n"].filter(xc).join("\n")):(g=["precision "+d.precision+" float;","precision "+d.precision+" int;","#define SHADER_NAME "+c.__webglShader.name,k,d.supportsVertexTextures?"#define VERTEX_TEXTURES":
@@ -83,7 +83,7 @@ d);else if(""===u||""===q)r=!1;r&&(this.diagnostics={runnable:n,material:c,progr
 this.program=void 0};Object.defineProperties(this,{uniforms:{get:function(){console.warn("THREE.WebGLProgram: .uniforms is now .getUniforms().");return this.getUniforms()}},attributes:{get:function(){console.warn("THREE.WebGLProgram: .attributes is now .getAttributes().");return this.getAttributes()}}});this.id=Of++;this.code=b;this.usedTimes=1;this.program=t;this.vertexShader=h;this.fragmentShader=l;return this}function Pf(a,b){function c(a,b){var c;a?a.isTexture?c=a.encoding:a.isWebGLRenderTarget&&
 this.program=void 0};Object.defineProperties(this,{uniforms:{get:function(){console.warn("THREE.WebGLProgram: .uniforms is now .getUniforms().");return this.getUniforms()}},attributes:{get:function(){console.warn("THREE.WebGLProgram: .attributes is now .getAttributes().");return this.getAttributes()}}});this.id=Of++;this.code=b;this.usedTimes=1;this.program=t;this.vertexShader=h;this.fragmentShader=l;return this}function Pf(a,b){function c(a,b){var c;a?a.isTexture?c=a.encoding:a.isWebGLRenderTarget&&
 (console.warn("THREE.WebGLPrograms.getTextureEncodingFromMap: don't use render targets as textures. Use their .texture property instead."),c=a.texture.encoding):c=3E3;3E3===c&&b&&(c=3007);return c}var d=[],e={MeshDepthMaterial:"depth",MeshNormalMaterial:"normal",MeshBasicMaterial:"basic",MeshLambertMaterial:"lambert",MeshPhongMaterial:"phong",MeshToonMaterial:"phong",MeshStandardMaterial:"physical",MeshPhysicalMaterial:"physical",LineBasicMaterial:"basic",LineDashedMaterial:"dashed",PointsMaterial:"points"},
 (console.warn("THREE.WebGLPrograms.getTextureEncodingFromMap: don't use render targets as textures. Use their .texture property instead."),c=a.texture.encoding):c=3E3;3E3===c&&b&&(c=3007);return c}var d=[],e={MeshDepthMaterial:"depth",MeshNormalMaterial:"normal",MeshBasicMaterial:"basic",MeshLambertMaterial:"lambert",MeshPhongMaterial:"phong",MeshToonMaterial:"phong",MeshStandardMaterial:"physical",MeshPhysicalMaterial:"physical",LineBasicMaterial:"basic",LineDashedMaterial:"dashed",PointsMaterial:"points"},
 f="precision supportsVertexTextures map mapEncoding envMap envMapMode envMapEncoding lightMap aoMap emissiveMap emissiveMapEncoding bumpMap normalMap displacementMap specularMap roughnessMap metalnessMap gradientMap alphaMap combine vertexColors fog useFog fogExp flatShading sizeAttenuation logarithmicDepthBuffer skinning maxBones useVertexTexture morphTargets morphNormals maxMorphTargets maxMorphNormals premultipliedAlpha numDirLights numPointLights numSpotLights numHemiLights numRectAreaLights shadowMapEnabled shadowMapType toneMapping physicallyCorrectLights alphaTest doubleSided flipSided numClippingPlanes numClipIntersection depthPacking".split(" ");
 f="precision supportsVertexTextures map mapEncoding envMap envMapMode envMapEncoding lightMap aoMap emissiveMap emissiveMapEncoding bumpMap normalMap displacementMap specularMap roughnessMap metalnessMap gradientMap alphaMap combine vertexColors fog useFog fogExp flatShading sizeAttenuation logarithmicDepthBuffer skinning maxBones useVertexTexture morphTargets morphNormals maxMorphTargets maxMorphNormals premultipliedAlpha numDirLights numPointLights numSpotLights numHemiLights numRectAreaLights shadowMapEnabled shadowMapType toneMapping physicallyCorrectLights alphaTest doubleSided flipSided numClippingPlanes numClipIntersection depthPacking".split(" ");
-this.getParameters=function(d,f,l,m,u,q){var n=e[d.type],r;if(q.isSkinnedMesh){r=q.skeleton;var k=r.bones;if(b.floatVertexTextures){if(void 0===r.boneTexture){var k=Math.sqrt(4*k.length),k=T.nextPowerOfTwo(Math.ceil(k)),k=Math.max(k,4),t=new Float32Array(k*k*4);t.set(r.boneMatrices);var p=new bb(t,k,k,1023,1015);r.boneMatrices=t;r.boneTexture=p;r.boneTextureSize=k}r=1024}else r=Math.min(Math.floor((b.maxVertexUniforms-20)/4),k.length),r<k.length&&(console.warn("THREE.WebGLRenderer: Skeleton has "+
+this.getParameters=function(d,f,l,m,u,q){var n=e[d.type],r;if(q.isSkinnedMesh){r=q.skeleton;var k=r.bones;if(b.floatVertexTextures){if(void 0===r.boneTexture){var k=Math.sqrt(4*k.length),k=T.nextPowerOfTwo(Math.ceil(k)),k=Math.max(k,4),t=new Float32Array(k*k*4);t.set(r.boneMatrices);var p=new cb(t,k,k,1023,1015);r.boneMatrices=t;r.boneTexture=p;r.boneTextureSize=k}r=1024}else r=Math.min(Math.floor((b.maxVertexUniforms-20)/4),k.length),r<k.length&&(console.warn("THREE.WebGLRenderer: Skeleton has "+
 k.length+" bones. This GPU supports "+r+"."),r=0)}else r=0;k=a.getPrecision();null!==d.precision&&(k=b.getMaxPrecision(d.precision),k!==d.precision&&console.warn("THREE.WebGLProgram.getParameters:",d.precision,"not supported, using",k,"instead."));t=a.getCurrentRenderTarget();return{shaderID:n,precision:k,supportsVertexTextures:b.vertexTextures,outputEncoding:c(t?t.texture:null,a.gammaOutput),map:!!d.map,mapEncoding:c(d.map,a.gammaInput),envMap:!!d.envMap,envMapMode:d.envMap&&d.envMap.mapping,envMapEncoding:c(d.envMap,
 k.length+" bones. This GPU supports "+r+"."),r=0)}else r=0;k=a.getPrecision();null!==d.precision&&(k=b.getMaxPrecision(d.precision),k!==d.precision&&console.warn("THREE.WebGLProgram.getParameters:",d.precision,"not supported, using",k,"instead."));t=a.getCurrentRenderTarget();return{shaderID:n,precision:k,supportsVertexTextures:b.vertexTextures,outputEncoding:c(t?t.texture:null,a.gammaOutput),map:!!d.map,mapEncoding:c(d.map,a.gammaInput),envMap:!!d.envMap,envMapMode:d.envMap&&d.envMap.mapping,envMapEncoding:c(d.envMap,
 a.gammaInput),envMapCubeUV:!!d.envMap&&(306===d.envMap.mapping||307===d.envMap.mapping),lightMap:!!d.lightMap,aoMap:!!d.aoMap,emissiveMap:!!d.emissiveMap,emissiveMapEncoding:c(d.emissiveMap,a.gammaInput),bumpMap:!!d.bumpMap,normalMap:!!d.normalMap,displacementMap:!!d.displacementMap,roughnessMap:!!d.roughnessMap,metalnessMap:!!d.metalnessMap,specularMap:!!d.specularMap,alphaMap:!!d.alphaMap,gradientMap:!!d.gradientMap,combine:d.combine,vertexColors:d.vertexColors,fog:!!l,useFog:d.fog,fogExp:l&&l.isFogExp2,
 a.gammaInput),envMapCubeUV:!!d.envMap&&(306===d.envMap.mapping||307===d.envMap.mapping),lightMap:!!d.lightMap,aoMap:!!d.aoMap,emissiveMap:!!d.emissiveMap,emissiveMapEncoding:c(d.emissiveMap,a.gammaInput),bumpMap:!!d.bumpMap,normalMap:!!d.normalMap,displacementMap:!!d.displacementMap,roughnessMap:!!d.roughnessMap,metalnessMap:!!d.metalnessMap,specularMap:!!d.specularMap,alphaMap:!!d.alphaMap,gradientMap:!!d.gradientMap,combine:d.combine,vertexColors:d.vertexColors,fog:!!l,useFog:d.fog,fogExp:l&&l.isFogExp2,
 flatShading:1===d.shading,sizeAttenuation:d.sizeAttenuation,logarithmicDepthBuffer:b.logarithmicDepthBuffer,skinning:q&&q.isSkinnedMesh&&0<r,maxBones:r,useVertexTexture:b.floatVertexTextures,morphTargets:d.morphTargets,morphNormals:d.morphNormals,maxMorphTargets:a.maxMorphTargets,maxMorphNormals:a.maxMorphNormals,numDirLights:f.directional.length,numPointLights:f.point.length,numSpotLights:f.spot.length,numRectAreaLights:f.rectArea.length,numHemiLights:f.hemi.length,numClippingPlanes:m,numClipIntersection:u,
 flatShading:1===d.shading,sizeAttenuation:d.sizeAttenuation,logarithmicDepthBuffer:b.logarithmicDepthBuffer,skinning:q&&q.isSkinnedMesh&&0<r,maxBones:r,useVertexTexture:b.floatVertexTextures,morphTargets:d.morphTargets,morphNormals:d.morphNormals,maxMorphTargets:a.maxMorphTargets,maxMorphNormals:a.maxMorphNormals,numDirLights:f.directional.length,numPointLights:f.point.length,numSpotLights:f.spot.length,numRectAreaLights:f.rectArea.length,numHemiLights:f.hemi.length,numClippingPlanes:m,numClipIntersection:u,
@@ -126,18 +126,18 @@ l=a.getParameter(a.MAX_TEXTURE_SIZE),m=a.getParameter(a.MAX_CUBE_MAP_TEXTURE_SIZ
 maxTextures:g,maxVertexTextures:h,maxTextureSize:l,maxCubemapSize:m,maxAttributes:u,maxVertexUniforms:q,maxVaryings:n,maxFragmentUniforms:r,vertexTextures:k,floatFragmentTextures:t,floatVertexTextures:k&&t}}function Uf(a){var b={};return{get:function(c){if(void 0!==b[c])return b[c];var d;switch(c){case "WEBGL_depth_texture":d=a.getExtension("WEBGL_depth_texture")||a.getExtension("MOZ_WEBGL_depth_texture")||a.getExtension("WEBKIT_WEBGL_depth_texture");break;case "EXT_texture_filter_anisotropic":d=
 maxTextures:g,maxVertexTextures:h,maxTextureSize:l,maxCubemapSize:m,maxAttributes:u,maxVertexUniforms:q,maxVaryings:n,maxFragmentUniforms:r,vertexTextures:k,floatFragmentTextures:t,floatVertexTextures:k&&t}}function Uf(a){var b={};return{get:function(c){if(void 0!==b[c])return b[c];var d;switch(c){case "WEBGL_depth_texture":d=a.getExtension("WEBGL_depth_texture")||a.getExtension("MOZ_WEBGL_depth_texture")||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")||a.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc");
 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")||a.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc");
 break;case "WEBGL_compressed_texture_etc1":d=a.getExtension("WEBGL_compressed_texture_etc1");break;default:d=a.getExtension(c)}null===d&&console.warn("THREE.WebGLRenderer: "+c+" extension not supported.");return b[c]=d}}}function Vf(){function a(){m.value!==d&&(m.value=d,m.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=m.value;if(!0!==e||null===g){e=d+4*f;b=b.matrixWorldInverse;l.getNormalMatrix(b);if(null===g||g.length<e)g=new Float32Array(e);
 break;case "WEBGL_compressed_texture_etc1":d=a.getExtension("WEBGL_compressed_texture_etc1");break;default:d=a.getExtension(c)}null===d&&console.warn("THREE.WebGLRenderer: "+c+" extension not supported.");return b[c]=d}}}function Vf(){function a(){m.value!==d&&(m.value=d,m.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=m.value;if(!0!==e||null===g){e=d+4*f;b=b.matrixWorldInverse;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}m.value=g;m.needsUpdate=!0}c.numPlanes=f;return g}var c=this,d=null,e=0,f=!1,g=!1,h=new na,l=new Fa,m={value:null,needsUpdate:!1};this.uniform=m;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)};this.endShadows=function(){g=!1;a()};this.setState=function(c,h,l,k,y,t){if(!f||null===
-c||0===c.length||g&&!l)g?b(null):a();else{l=g?0:e;var p=4*l,x=y.clippingState||null;m.value=x;x=b(c,k,p,t);for(c=0;c!==p;++c)x[c]=d[c];y.clippingState=x;this.numIntersection=h?this.numPlanes:0;this.numPlanes+=l}}}function Ud(a){function b(){X.init();X.scissor(V.copy(fa).multiplyScalar(Wa));X.viewport(W.copy(ha).multiplyScalar(Wa));X.buffers.color.setClear(Ma.r,Ma.g,Ma.b,ib,G)}function c(){T=ua=null;L="";P=-1;X.reset()}function d(a){a.preventDefault();c();b();ia.clear()}function e(a){a=a.target;a.removeEventListener("dispose",
-e);f(a);ia.remove(a)}function f(a){var b=ia.get(a).program;a.program=void 0;void 0!==b&&Ba.releaseProgram(b)}function g(a,b,c){a.render(function(a){O.renderBufferImmediate(a,b,c)})}function h(a,b){return Math.abs(b[0])-Math.abs(a[0])}function l(a,b){return a.object.renderOrder!==b.object.renderOrder?a.object.renderOrder-b.object.renderOrder:a.material.program&&b.material.program&&a.material.program!==b.material.program?a.material.program.id-b.material.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 m(a,b){return a.object.renderOrder!==b.object.renderOrder?a.object.renderOrder-b.object.renderOrder:a.z!==b.z?b.z-a.z:a.id-b.id}function u(a,b,c,d,e){var f;c.transparent?(d=E,f=++Ta):(d=Y,f=++B);(f=d[f])?(f.id=a.id,f.object=a,f.geometry=b,f.material=c,f.z=da.z,f.group=e):(f={id:a.id,object:a,geometry:b,material:c,z:da.z,group:e},d.push(f))}function q(a,b,c){if(a.visible){if(a.layers.test(b.layers))if(a.isLight)la.push(a);else if(a.isSprite)a.frustumCulled&&
-!ma.intersectsSprite(a)||K.push(a);else if(a.isLensFlare)N.push(a);else if(a.isImmediateRenderObject)c&&da.setFromMatrixPosition(a.matrixWorld).applyMatrix4(qa),u(a,null,a.material,da.z,null);else if(a.isMesh||a.isLine||a.isPoints)if(a.isSkinnedMesh&&a.skeleton.update(),!a.frustumCulled||ma.intersectsObject(a)){c&&da.setFromMatrixPosition(a.matrixWorld).applyMatrix4(qa);var d=Fa.update(a),e=a.material;if(Array.isArray(e))for(var f=d.groups,g=0,h=f.length;g<h;g++){var l=f[g],m=e[l.materialIndex];m&&
-m.visible&&u(a,d,m,da.z,l)}else e.visible&&u(a,d,e,da.z,null)}a=a.children;g=0;for(h=a.length;g<h;g++)q(a[g],b,c)}}function n(a,b,c,d){for(var e=0,f=a.length;e<f;e++){var h=a[e],l=h.object,m=h.geometry,n=void 0===d?h.material:d,h=h.group;l.modelViewMatrix.multiplyMatrices(c.matrixWorldInverse,l.matrixWorld);l.normalMatrix.getNormalMatrix(l.modelViewMatrix);l.onBeforeRender(O,b,c,m,n,h);if(l.isImmediateRenderObject){k(n);var u=y(c,b.fog,n,l);L="";g(l,u,n)}else O.renderBufferDirect(c,b.fog,m,n,l,h);
-l.onAfterRender(O,b,c,m,n,h)}}function k(a){2===a.side?X.disable(C.CULL_FACE):X.enable(C.CULL_FACE);X.setFlipSided(1===a.side);!0===a.transparent?X.setBlending(a.blending,a.blendEquation,a.blendSrc,a.blendDst,a.blendEquationAlpha,a.blendSrcAlpha,a.blendDstAlpha,a.premultipliedAlpha):X.setBlending(0);X.setDepthFunc(a.depthFunc);X.setDepthTest(a.depthTest);X.setDepthWrite(a.depthWrite);X.setColorWrite(a.colorWrite);X.setPolygonOffset(a.polygonOffset,a.polygonOffsetFactor,a.polygonOffsetUnits)}function y(a,
-b,c,d){Z=0;var g=ia.get(c);pa&&(ra||a!==T)&&ea.setState(c.clippingPlanes,c.clipIntersection,c.clipShadows,a,g,a===T&&c.id===P);!1===c.needsUpdate&&(void 0===g.program?c.needsUpdate=!0:c.fog&&g.fog!==b?c.needsUpdate=!0:c.lights&&g.lightsHash!==aa.hash?c.needsUpdate=!0:void 0===g.numClippingPlanes||g.numClippingPlanes===ea.numPlanes&&g.numIntersection===ea.numIntersection||(c.needsUpdate=!0));if(c.needsUpdate){a:{var h=ia.get(c),l=Ba.getParameters(c,aa,b,ea.numPlanes,ea.numIntersection,d),m=Ba.getProgramCode(c,
-l),n=h.program,u=!0;if(void 0===n)c.addEventListener("dispose",e);else if(n.code!==m)f(c);else if(void 0!==l.shaderID)break a;else u=!1;u&&(l.shaderID?(n=$a[l.shaderID],h.__webglShader={name:c.type,uniforms:Ka.clone(n.uniforms),vertexShader:n.vertexShader,fragmentShader:n.fragmentShader}):h.__webglShader={name:c.type,uniforms:c.uniforms,vertexShader:c.vertexShader,fragmentShader:c.fragmentShader},c.__webglShader=h.__webglShader,n=Ba.acquireProgram(c,l,m),h.program=n,c.program=n);l=n.getAttributes();
-if(c.morphTargets)for(m=c.numSupportedMorphTargets=0;m<O.maxMorphTargets;m++)0<=l["morphTarget"+m]&&c.numSupportedMorphTargets++;if(c.morphNormals)for(m=c.numSupportedMorphNormals=0;m<O.maxMorphNormals;m++)0<=l["morphNormal"+m]&&c.numSupportedMorphNormals++;l=h.__webglShader.uniforms;if(!c.isShaderMaterial&&!c.isRawShaderMaterial||!0===c.clipping)h.numClippingPlanes=ea.numPlanes,h.numIntersection=ea.numIntersection,l.clippingPlanes=ea.uniform;h.fog=b;h.lightsHash=aa.hash;c.lights&&(l.ambientLightColor.value=
-aa.ambient,l.directionalLights.value=aa.directional,l.spotLights.value=aa.spot,l.rectAreaLights.value=aa.rectArea,l.pointLights.value=aa.point,l.hemisphereLights.value=aa.hemi,l.directionalShadowMap.value=aa.directionalShadowMap,l.directionalShadowMatrix.value=aa.directionalShadowMatrix,l.spotShadowMap.value=aa.spotShadowMap,l.spotShadowMatrix.value=aa.spotShadowMatrix,l.pointShadowMap.value=aa.pointShadowMap,l.pointShadowMatrix.value=aa.pointShadowMatrix);m=h.program.getUniforms();l=Ya.seqWithValue(m.seq,
-l);h.uniformsList=l}c.needsUpdate=!1}var q=!1,u=n=!1,h=g.program,l=h.getUniforms(),m=g.__webglShader.uniforms;h.id!==ua&&(C.useProgram(h.program),ua=h.id,u=n=q=!0);c.id!==P&&(P=c.id,n=!0);if(q||a!==T){l.set(C,a,"projectionMatrix");na.logarithmicDepthBuffer&&l.setValue(C,"logDepthBufFC",2/(Math.log(a.far+1)/Math.LN2));a!==T&&(T=a,u=n=!0);if(c.isShaderMaterial||c.isMeshPhongMaterial||c.isMeshStandardMaterial||c.envMap)q=l.map.cameraPosition,void 0!==q&&q.setValue(C,da.setFromMatrixPosition(a.matrixWorld));
+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}m.value=g;m.needsUpdate=!0}c.numPlanes=f;return g}var c=this,d=null,e=0,f=!1,g=!1,h=new na,l=new Ba,m={value:null,needsUpdate:!1};this.uniform=m;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)};this.endShadows=function(){g=!1;a()};this.setState=function(c,h,l,k,y,t){if(!f||null===
+c||0===c.length||g&&!l)g?b(null):a();else{l=g?0:e;var p=4*l,x=y.clippingState||null;m.value=x;x=b(c,k,p,t);for(c=0;c!==p;++c)x[c]=d[c];y.clippingState=x;this.numIntersection=h?this.numPlanes:0;this.numPlanes+=l}}}function Ud(a){function b(){X.init();X.scissor(V.copy(fa).multiplyScalar(Wa));X.viewport(W.copy(ha).multiplyScalar(Wa));X.buffers.color.setClear(Ma.r,Ma.g,Ma.b,jb,G)}function c(){T=ua=null;L="";P=-1;X.reset()}function d(a){a.preventDefault();c();b();ia.clear();Ba.clear()}function e(a){a=
+a.target;a.removeEventListener("dispose",e);f(a);ia.remove(a)}function f(a){var b=ia.get(a).program;a.program=void 0;void 0!==b&&Ca.releaseProgram(b)}function g(a,b,c){a.render(function(a){O.renderBufferImmediate(a,b,c)})}function h(a,b){return Math.abs(b[0])-Math.abs(a[0])}function l(a,b){return a.object.renderOrder!==b.object.renderOrder?a.object.renderOrder-b.object.renderOrder:a.material.program&&b.material.program&&a.material.program!==b.material.program?a.material.program.id-b.material.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 m(a,b){return a.object.renderOrder!==b.object.renderOrder?a.object.renderOrder-b.object.renderOrder:a.z!==b.z?b.z-a.z:a.id-b.id}function u(a,b,c,d,e){var f;c.transparent?(d=E,f=++Ta):(d=Y,f=++B);(f=d[f])?(f.id=a.id,f.object=a,f.geometry=b,f.material=c,f.z=da.z,f.group=e):(f={id:a.id,object:a,geometry:b,material:c,z:da.z,group:e},d.push(f))}function q(a,b,c){if(a.visible){if(a.layers.test(b.layers))if(a.isLight)la.push(a);
+else if(a.isSprite)a.frustumCulled&&!ma.intersectsSprite(a)||K.push(a);else if(a.isLensFlare)N.push(a);else if(a.isImmediateRenderObject)c&&da.setFromMatrixPosition(a.matrixWorld).applyMatrix4(qa),u(a,null,a.material,da.z,null);else if(a.isMesh||a.isLine||a.isPoints)if(a.isSkinnedMesh&&a.skeleton.update(),!a.frustumCulled||ma.intersectsObject(a)){c&&da.setFromMatrixPosition(a.matrixWorld).applyMatrix4(qa);var d=Ba.update(a),e=a.material;if(Array.isArray(e))for(var f=d.groups,g=0,h=f.length;g<h;g++){var l=
+f[g],m=e[l.materialIndex];m&&m.visible&&u(a,d,m,da.z,l)}else e.visible&&u(a,d,e,da.z,null)}a=a.children;g=0;for(h=a.length;g<h;g++)q(a[g],b,c)}}function n(a,b,c,d){for(var e=0,f=a.length;e<f;e++){var h=a[e],l=h.object,m=h.geometry,n=void 0===d?h.material:d,h=h.group;l.modelViewMatrix.multiplyMatrices(c.matrixWorldInverse,l.matrixWorld);l.normalMatrix.getNormalMatrix(l.modelViewMatrix);l.onBeforeRender(O,b,c,m,n,h);if(l.isImmediateRenderObject){k(n);var u=y(c,b.fog,n,l);L="";g(l,u,n)}else O.renderBufferDirect(c,
+b.fog,m,n,l,h);l.onAfterRender(O,b,c,m,n,h)}}function k(a){2===a.side?X.disable(C.CULL_FACE):X.enable(C.CULL_FACE);X.setFlipSided(1===a.side);!0===a.transparent?X.setBlending(a.blending,a.blendEquation,a.blendSrc,a.blendDst,a.blendEquationAlpha,a.blendSrcAlpha,a.blendDstAlpha,a.premultipliedAlpha):X.setBlending(0);X.setDepthFunc(a.depthFunc);X.setDepthTest(a.depthTest);X.setDepthWrite(a.depthWrite);X.setColorWrite(a.colorWrite);X.setPolygonOffset(a.polygonOffset,a.polygonOffsetFactor,a.polygonOffsetUnits)}
+function y(a,b,c,d){Z=0;var g=ia.get(c);pa&&(ra||a!==T)&&ea.setState(c.clippingPlanes,c.clipIntersection,c.clipShadows,a,g,a===T&&c.id===P);!1===c.needsUpdate&&(void 0===g.program?c.needsUpdate=!0:c.fog&&g.fog!==b?c.needsUpdate=!0:c.lights&&g.lightsHash!==aa.hash?c.needsUpdate=!0:void 0===g.numClippingPlanes||g.numClippingPlanes===ea.numPlanes&&g.numIntersection===ea.numIntersection||(c.needsUpdate=!0));if(c.needsUpdate){a:{var h=ia.get(c),l=Ca.getParameters(c,aa,b,ea.numPlanes,ea.numIntersection,
+d),m=Ca.getProgramCode(c,l),n=h.program,u=!0;if(void 0===n)c.addEventListener("dispose",e);else if(n.code!==m)f(c);else if(void 0!==l.shaderID)break a;else u=!1;u&&(l.shaderID?(n=$a[l.shaderID],h.__webglShader={name:c.type,uniforms:Ka.clone(n.uniforms),vertexShader:n.vertexShader,fragmentShader:n.fragmentShader}):h.__webglShader={name:c.type,uniforms:c.uniforms,vertexShader:c.vertexShader,fragmentShader:c.fragmentShader},c.__webglShader=h.__webglShader,n=Ca.acquireProgram(c,l,m),h.program=n,c.program=
+n);l=n.getAttributes();if(c.morphTargets)for(m=c.numSupportedMorphTargets=0;m<O.maxMorphTargets;m++)0<=l["morphTarget"+m]&&c.numSupportedMorphTargets++;if(c.morphNormals)for(m=c.numSupportedMorphNormals=0;m<O.maxMorphNormals;m++)0<=l["morphNormal"+m]&&c.numSupportedMorphNormals++;l=h.__webglShader.uniforms;if(!c.isShaderMaterial&&!c.isRawShaderMaterial||!0===c.clipping)h.numClippingPlanes=ea.numPlanes,h.numIntersection=ea.numIntersection,l.clippingPlanes=ea.uniform;h.fog=b;h.lightsHash=aa.hash;c.lights&&
+(l.ambientLightColor.value=aa.ambient,l.directionalLights.value=aa.directional,l.spotLights.value=aa.spot,l.rectAreaLights.value=aa.rectArea,l.pointLights.value=aa.point,l.hemisphereLights.value=aa.hemi,l.directionalShadowMap.value=aa.directionalShadowMap,l.directionalShadowMatrix.value=aa.directionalShadowMatrix,l.spotShadowMap.value=aa.spotShadowMap,l.spotShadowMatrix.value=aa.spotShadowMatrix,l.pointShadowMap.value=aa.pointShadowMap,l.pointShadowMatrix.value=aa.pointShadowMatrix);m=h.program.getUniforms();
+l=Ya.seqWithValue(m.seq,l);h.uniformsList=l}c.needsUpdate=!1}var q=!1,u=n=!1,h=g.program,l=h.getUniforms(),m=g.__webglShader.uniforms;h.id!==ua&&(C.useProgram(h.program),ua=h.id,u=n=q=!0);c.id!==P&&(P=c.id,n=!0);if(q||a!==T){l.set(C,a,"projectionMatrix");na.logarithmicDepthBuffer&&l.setValue(C,"logDepthBufFC",2/(Math.log(a.far+1)/Math.LN2));a!==T&&(T=a,u=n=!0);if(c.isShaderMaterial||c.isMeshPhongMaterial||c.isMeshStandardMaterial||c.envMap)q=l.map.cameraPosition,void 0!==q&&q.setValue(C,da.setFromMatrixPosition(a.matrixWorld));
 (c.isMeshPhongMaterial||c.isMeshLambertMaterial||c.isMeshBasicMaterial||c.isMeshStandardMaterial||c.isShaderMaterial||d.isSkinnedMesh)&&l.setValue(C,"viewMatrix",a.matrixWorldInverse);l.set(C,O,"toneMappingExposure");l.set(C,O,"toneMappingWhitePoint")}d.isSkinnedMesh&&(l.setOptional(C,d,"bindMatrix"),l.setOptional(C,d,"bindMatrixInverse"),a=d.skeleton)&&(na.floatVertexTextures?(l.set(C,a,"boneTexture"),l.set(C,a,"boneTextureSize")):l.setOptional(C,a,"boneMatrices"));if(n){c.lights&&(a=u,m.ambientLightColor.needsUpdate=
 (c.isMeshPhongMaterial||c.isMeshLambertMaterial||c.isMeshBasicMaterial||c.isMeshStandardMaterial||c.isShaderMaterial||d.isSkinnedMesh)&&l.setValue(C,"viewMatrix",a.matrixWorldInverse);l.set(C,O,"toneMappingExposure");l.set(C,O,"toneMappingWhitePoint")}d.isSkinnedMesh&&(l.setOptional(C,d,"bindMatrix"),l.setOptional(C,d,"bindMatrixInverse"),a=d.skeleton)&&(na.floatVertexTextures?(l.set(C,a,"boneTexture"),l.set(C,a,"boneTextureSize")):l.setOptional(C,a,"boneMatrices"));if(n){c.lights&&(a=u,m.ambientLightColor.needsUpdate=
 a,m.directionalLights.needsUpdate=a,m.pointLights.needsUpdate=a,m.spotLights.needsUpdate=a,m.rectAreaLights.needsUpdate=a,m.hemisphereLights.needsUpdate=a);b&&c.fog&&(m.fogColor.value=b.color,b.isFog?(m.fogNear.value=b.near,m.fogFar.value=b.far):b.isFogExp2&&(m.fogDensity.value=b.density));if(c.isMeshBasicMaterial||c.isMeshLambertMaterial||c.isMeshPhongMaterial||c.isMeshStandardMaterial||c.isMeshNormalMaterial||c.isMeshDepthMaterial){m.opacity.value=c.opacity;m.diffuse.value=c.color;c.emissive&&m.emissive.value.copy(c.emissive).multiplyScalar(c.emissiveIntensity);
 a,m.directionalLights.needsUpdate=a,m.pointLights.needsUpdate=a,m.spotLights.needsUpdate=a,m.rectAreaLights.needsUpdate=a,m.hemisphereLights.needsUpdate=a);b&&c.fog&&(m.fogColor.value=b.color,b.isFog?(m.fogNear.value=b.near,m.fogFar.value=b.far):b.isFogExp2&&(m.fogDensity.value=b.density));if(c.isMeshBasicMaterial||c.isMeshLambertMaterial||c.isMeshPhongMaterial||c.isMeshStandardMaterial||c.isMeshNormalMaterial||c.isMeshDepthMaterial){m.opacity.value=c.opacity;m.diffuse.value=c.color;c.emissive&&m.emissive.value.copy(c.emissive).multiplyScalar(c.emissiveIntensity);
 m.map.value=c.map;m.specularMap.value=c.specularMap;m.alphaMap.value=c.alphaMap;c.lightMap&&(m.lightMap.value=c.lightMap,m.lightMapIntensity.value=c.lightMapIntensity);c.aoMap&&(m.aoMap.value=c.aoMap,m.aoMapIntensity.value=c.aoMapIntensity);var k;c.map?k=c.map:c.specularMap?k=c.specularMap:c.displacementMap?k=c.displacementMap:c.normalMap?k=c.normalMap:c.bumpMap?k=c.bumpMap:c.roughnessMap?k=c.roughnessMap:c.metalnessMap?k=c.metalnessMap:c.alphaMap?k=c.alphaMap:c.emissiveMap&&(k=c.emissiveMap);void 0!==
 m.map.value=c.map;m.specularMap.value=c.specularMap;m.alphaMap.value=c.alphaMap;c.lightMap&&(m.lightMap.value=c.lightMap,m.lightMapIntensity.value=c.lightMapIntensity);c.aoMap&&(m.aoMap.value=c.aoMap,m.aoMapIntensity.value=c.aoMapIntensity);var k;c.map?k=c.map:c.specularMap?k=c.specularMap:c.displacementMap?k=c.displacementMap:c.normalMap?k=c.normalMap:c.bumpMap?k=c.bumpMap:c.roughnessMap?k=c.roughnessMap:c.metalnessMap?k=c.metalnessMap:c.alphaMap?k=c.alphaMap:c.emissiveMap&&(k=c.emissiveMap);void 0!==
@@ -153,42 +153,42 @@ if(203===a)return C.ONE_MINUS_SRC_COLOR;if(204===a)return C.SRC_ALPHA;if(205===a
 if(2004===a)return b.COMPRESSED_RGBA_S3TC_DXT5_EXT}if(2100===a||2101===a||2102===a||2103===a)if(b=ja.get("WEBGL_compressed_texture_pvrtc"),null!==b){if(2100===a)return b.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(2101===a)return b.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(2102===a)return b.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(2103===a)return b.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}if(2151===a&&(b=ja.get("WEBGL_compressed_texture_etc1"),null!==b))return b.COMPRESSED_RGB_ETC1_WEBGL;if(103===a||104===a)if(b=ja.get("EXT_blend_minmax"),
 if(2004===a)return b.COMPRESSED_RGBA_S3TC_DXT5_EXT}if(2100===a||2101===a||2102===a||2103===a)if(b=ja.get("WEBGL_compressed_texture_pvrtc"),null!==b){if(2100===a)return b.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(2101===a)return b.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(2102===a)return b.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(2103===a)return b.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}if(2151===a&&(b=ja.get("WEBGL_compressed_texture_etc1"),null!==b))return b.COMPRESSED_RGB_ETC1_WEBGL;if(103===a||104===a)if(b=ja.get("EXT_blend_minmax"),
 null!==b){if(103===a)return b.MIN_EXT;if(104===a)return b.MAX_EXT}return 1020===a&&(b=ja.get("WEBGL_depth_texture"),null!==b)?b.UNSIGNED_INT_24_8_WEBGL:0}console.log("THREE.WebGLRenderer","85dev");a=a||{};var w=void 0!==a.canvas?a.canvas:document.createElementNS("http://www.w3.org/1999/xhtml","canvas"),M=void 0!==a.context?a.context:null,v=void 0!==a.alpha?a.alpha:!1,F=void 0!==a.depth?a.depth:!0,H=void 0!==a.stencil?a.stencil:!0,A=void 0!==a.antialias?a.antialias:!1,G=void 0!==a.premultipliedAlpha?
 null!==b){if(103===a)return b.MIN_EXT;if(104===a)return b.MAX_EXT}return 1020===a&&(b=ja.get("WEBGL_depth_texture"),null!==b)?b.UNSIGNED_INT_24_8_WEBGL:0}console.log("THREE.WebGLRenderer","85dev");a=a||{};var w=void 0!==a.canvas?a.canvas:document.createElementNS("http://www.w3.org/1999/xhtml","canvas"),M=void 0!==a.context?a.context:null,v=void 0!==a.alpha?a.alpha:!1,F=void 0!==a.depth?a.depth:!0,H=void 0!==a.stencil?a.stencil:!0,A=void 0!==a.antialias?a.antialias:!1,G=void 0!==a.premultipliedAlpha?
 a.premultipliedAlpha:!0,D=void 0!==a.preserveDrawingBuffer?a.preserveDrawingBuffer:!1,la=[],Y=[],B=-1,E=[],Ta=-1,Q=new Float32Array(8),K=[],N=[];this.domElement=w;this.context=null;this.sortObjects=this.autoClearStencil=this.autoClearDepth=this.autoClearColor=this.autoClear=!0;this.clippingPlanes=[];this.localClippingEnabled=!1;this.gammaFactor=2;this.physicallyCorrectLights=this.gammaOutput=this.gammaInput=!1;this.toneMappingWhitePoint=this.toneMappingExposure=this.toneMapping=1;this.maxMorphTargets=
 a.premultipliedAlpha:!0,D=void 0!==a.preserveDrawingBuffer?a.preserveDrawingBuffer:!1,la=[],Y=[],B=-1,E=[],Ta=-1,Q=new Float32Array(8),K=[],N=[];this.domElement=w;this.context=null;this.sortObjects=this.autoClearStencil=this.autoClearDepth=this.autoClearColor=this.autoClear=!0;this.clippingPlanes=[];this.localClippingEnabled=!1;this.gammaFactor=2;this.physicallyCorrectLights=this.gammaOutput=this.gammaInput=!1;this.toneMappingWhitePoint=this.toneMappingExposure=this.toneMapping=1;this.maxMorphTargets=
-8;this.maxMorphNormals=4;var O=this,ua=null,U=null,S=null,P=-1,L="",T=null,V=new ga,Td=null,W=new ga,Z=0,Ma=new I(0),ib=0,ba=w.width,yc=w.height,Wa=1,fa=new ga(0,0,ba,yc),ka=!1,ha=new ga(0,0,ba,yc),ma=new id,ea=new Vf,pa=!1,ra=!1,qa=new R,da=new p,za=new R,xa=new R,aa={hash:"",ambient:[0,0,0],directional:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotShadowMap:[],spotShadowMatrix:[],rectArea:[],point:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],shadows:[]},Da={geometries:0,
-textures:0},oa={frame:0,calls:0,vertices:0,faces:0,points:0};this.info={render:oa,memory:Da,programs:null};var C;try{v={alpha:v,depth:F,stencil:H,antialias:A,premultipliedAlpha:G,preserveDrawingBuffer:D};C=M||w.getContext("webgl",v)||w.getContext("experimental-webgl",v);if(null===C){if(null!==w.getContext("webgl"))throw"Error creating WebGL context with your selected attributes.";throw"Error creating WebGL context.";}void 0===C.getShaderPrecisionFormat&&(C.getShaderPrecisionFormat=function(){return{rangeMin:1,
+8;this.maxMorphNormals=4;var O=this,ua=null,U=null,S=null,P=-1,L="",T=null,V=new ga,Td=null,W=new ga,Z=0,Ma=new I(0),jb=0,ba=w.width,yc=w.height,Wa=1,fa=new ga(0,0,ba,yc),ka=!1,ha=new ga(0,0,ba,yc),ma=new id,ea=new Vf,pa=!1,ra=!1,qa=new R,da=new p,za=new R,xa=new R,aa={hash:"",ambient:[0,0,0],directional:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotShadowMap:[],spotShadowMatrix:[],rectArea:[],point:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],shadows:[]},Ea={geometries:0,
+textures:0},oa={frame:0,calls:0,vertices:0,faces:0,points:0};this.info={render:oa,memory:Ea,programs:null};var C;try{v={alpha:v,depth:F,stencil:H,antialias:A,premultipliedAlpha:G,preserveDrawingBuffer:D};C=M||w.getContext("webgl",v)||w.getContext("experimental-webgl",v);if(null===C){if(null!==w.getContext("webgl"))throw"Error creating WebGL context with your selected attributes.";throw"Error creating WebGL context.";}void 0===C.getShaderPrecisionFormat&&(C.getShaderPrecisionFormat=function(){return{rangeMin:1,
 rangeMax:1,precision:1}});w.addEventListener("webglcontextlost",d,!1)}catch(Wf){console.error("THREE.WebGLRenderer: "+Wf)}var ja=new Uf(C);ja.get("WEBGL_depth_texture");ja.get("OES_texture_float");ja.get("OES_texture_float_linear");ja.get("OES_texture_half_float");ja.get("OES_texture_half_float_linear");ja.get("OES_standard_derivatives");ja.get("ANGLE_instanced_arrays");ja.get("OES_element_index_uint")&&(J.MaxIndex=4294967296);var na=new Tf(C,ja,a),X=new Sf(C,ja,x),ia=new Rf,va=new Qf(C,ja,X,ia,na,
 rangeMax:1,precision:1}});w.addEventListener("webglcontextlost",d,!1)}catch(Wf){console.error("THREE.WebGLRenderer: "+Wf)}var ja=new Uf(C);ja.get("WEBGL_depth_texture");ja.get("OES_texture_float");ja.get("OES_texture_float_linear");ja.get("OES_texture_half_float");ja.get("OES_texture_half_float_linear");ja.get("OES_standard_derivatives");ja.get("ANGLE_instanced_arrays");ja.get("OES_element_index_uint")&&(J.MaxIndex=4294967296);var na=new Tf(C,ja,a),X=new Sf(C,ja,x),ia=new Rf,va=new Qf(C,ja,X,ia,na,
-x,Da),Ea=new Cf(C),Ja=new Ff(C,Ea,Da),Fa=new Hf(C,Ja,oa),Ba=new Pf(this,na),Ca=new Gf;this.info.programs=Ba.programs;var Pa=new Ef(C,ja,oa),Qa=new Df(C,ja,oa),Ia,Aa,sa,wa;b();this.context=C;this.capabilities=na;this.extensions=ja;this.properties=ia;this.state=X;var Ra=new Ce(this,aa,Fa,na);this.shadowMap=Ra;var Ua=new yf(this,K),Va=new xf(this,N);this.getContext=function(){return C};this.getContextAttributes=function(){return C.getContextAttributes()};this.forceContextLoss=function(){ja.get("WEBGL_lose_context").loseContext()};
+x,Ea),Fa=new Cf(C),Ja=new Ff(C,Fa,Ea),Ba=new Hf(C,Ja,oa),Ca=new Pf(this,na),Da=new Gf;this.info.programs=Ca.programs;var Pa=new Ef(C,ja,oa),Qa=new Df(C,ja,oa),Ia,Aa,sa,wa;b();this.context=C;this.capabilities=na;this.extensions=ja;this.properties=ia;this.state=X;var Ra=new Ce(this,aa,Ba,na);this.shadowMap=Ra;var Ua=new yf(this,K),Va=new xf(this,N);this.getContext=function(){return C};this.getContextAttributes=function(){return C.getContextAttributes()};this.forceContextLoss=function(){ja.get("WEBGL_lose_context").loseContext()};
 this.getMaxAnisotropy=function(){return na.getMaxAnisotropy()};this.getPrecision=function(){return na.precision};this.getPixelRatio=function(){return Wa};this.setPixelRatio=function(a){void 0!==a&&(Wa=a,this.setSize(ha.z,ha.w,!1))};this.getSize=function(){return{width:ba,height:yc}};this.setSize=function(a,b,c){ba=a;yc=b;w.width=a*Wa;w.height=b*Wa;!1!==c&&(w.style.width=a+"px",w.style.height=b+"px");this.setViewport(0,0,a,b)};this.setViewport=function(a,b,c,d){X.viewport(ha.set(a,b,c,d))};this.setScissor=
 this.getMaxAnisotropy=function(){return na.getMaxAnisotropy()};this.getPrecision=function(){return na.precision};this.getPixelRatio=function(){return Wa};this.setPixelRatio=function(a){void 0!==a&&(Wa=a,this.setSize(ha.z,ha.w,!1))};this.getSize=function(){return{width:ba,height:yc}};this.setSize=function(a,b,c){ba=a;yc=b;w.width=a*Wa;w.height=b*Wa;!1!==c&&(w.style.width=a+"px",w.style.height=b+"px");this.setViewport(0,0,a,b)};this.setViewport=function(a,b,c,d){X.viewport(ha.set(a,b,c,d))};this.setScissor=
-function(a,b,c,d){X.scissor(fa.set(a,b,c,d))};this.setScissorTest=function(a){X.setScissorTest(ka=a)};this.getClearColor=function(){return Ma};this.setClearColor=function(a,b){Ma.set(a);ib=void 0!==b?b:1;X.buffers.color.setClear(Ma.r,Ma.g,Ma.b,ib,G)};this.getClearAlpha=function(){return ib};this.setClearAlpha=function(a){ib=a;X.buffers.color.setClear(Ma.r,Ma.g,Ma.b,ib,G)};this.clear=function(a,b,c){var d=0;if(void 0===a||a)d|=C.COLOR_BUFFER_BIT;if(void 0===b||b)d|=C.DEPTH_BUFFER_BIT;if(void 0===c||
+function(a,b,c,d){X.scissor(fa.set(a,b,c,d))};this.setScissorTest=function(a){X.setScissorTest(ka=a)};this.getClearColor=function(){return Ma};this.setClearColor=function(a,b){Ma.set(a);jb=void 0!==b?b:1;X.buffers.color.setClear(Ma.r,Ma.g,Ma.b,jb,G)};this.getClearAlpha=function(){return jb};this.setClearAlpha=function(a){jb=a;X.buffers.color.setClear(Ma.r,Ma.g,Ma.b,jb,G)};this.clear=function(a,b,c){var d=0;if(void 0===a||a)d|=C.COLOR_BUFFER_BIT;if(void 0===b||b)d|=C.DEPTH_BUFFER_BIT;if(void 0===c||
 c)d|=C.STENCIL_BUFFER_BIT;C.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.clearTarget=function(a,b,c,d){this.setRenderTarget(a);this.clear(b,c,d)};this.resetGLState=c;this.dispose=function(){E=[];Ta=-1;Y=[];B=-1;w.removeEventListener("webglcontextlost",d,!1)};this.renderBufferImmediate=function(a,b,c){X.initAttributes();var d=ia.get(a);a.hasPositions&&!d.position&&(d.position=C.createBuffer());
 c)d|=C.STENCIL_BUFFER_BIT;C.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.clearTarget=function(a,b,c,d){this.setRenderTarget(a);this.clear(b,c,d)};this.resetGLState=c;this.dispose=function(){E=[];Ta=-1;Y=[];B=-1;w.removeEventListener("webglcontextlost",d,!1)};this.renderBufferImmediate=function(a,b,c){X.initAttributes();var d=ia.get(a);a.hasPositions&&!d.position&&(d.position=C.createBuffer());
 a.hasNormals&&!d.normal&&(d.normal=C.createBuffer());a.hasUvs&&!d.uv&&(d.uv=C.createBuffer());a.hasColors&&!d.color&&(d.color=C.createBuffer());b=b.getAttributes();a.hasPositions&&(C.bindBuffer(C.ARRAY_BUFFER,d.position),C.bufferData(C.ARRAY_BUFFER,a.positionArray,C.DYNAMIC_DRAW),X.enableAttribute(b.position),C.vertexAttribPointer(b.position,3,C.FLOAT,!1,0,0));if(a.hasNormals){C.bindBuffer(C.ARRAY_BUFFER,d.normal);if(!c.isMeshPhongMaterial&&!c.isMeshStandardMaterial&&!c.isMeshNormalMaterial&&1===
 a.hasNormals&&!d.normal&&(d.normal=C.createBuffer());a.hasUvs&&!d.uv&&(d.uv=C.createBuffer());a.hasColors&&!d.color&&(d.color=C.createBuffer());b=b.getAttributes();a.hasPositions&&(C.bindBuffer(C.ARRAY_BUFFER,d.position),C.bufferData(C.ARRAY_BUFFER,a.positionArray,C.DYNAMIC_DRAW),X.enableAttribute(b.position),C.vertexAttribPointer(b.position,3,C.FLOAT,!1,0,0));if(a.hasNormals){C.bindBuffer(C.ARRAY_BUFFER,d.normal);if(!c.isMeshPhongMaterial&&!c.isMeshStandardMaterial&&!c.isMeshNormalMaterial&&1===
-c.shading)for(var e=0,f=3*a.count;e<f;e+=9){var g=a.normalArray,h=(g[e+0]+g[e+3]+g[e+6])/3,l=(g[e+1]+g[e+4]+g[e+7])/3,m=(g[e+2]+g[e+5]+g[e+8])/3;g[e+0]=h;g[e+1]=l;g[e+2]=m;g[e+3]=h;g[e+4]=l;g[e+5]=m;g[e+6]=h;g[e+7]=l;g[e+8]=m}C.bufferData(C.ARRAY_BUFFER,a.normalArray,C.DYNAMIC_DRAW);X.enableAttribute(b.normal);C.vertexAttribPointer(b.normal,3,C.FLOAT,!1,0,0)}a.hasUvs&&c.map&&(C.bindBuffer(C.ARRAY_BUFFER,d.uv),C.bufferData(C.ARRAY_BUFFER,a.uvArray,C.DYNAMIC_DRAW),X.enableAttribute(b.uv),C.vertexAttribPointer(Ea.uv,
+c.shading)for(var e=0,f=3*a.count;e<f;e+=9){var g=a.normalArray,h=(g[e+0]+g[e+3]+g[e+6])/3,l=(g[e+1]+g[e+4]+g[e+7])/3,m=(g[e+2]+g[e+5]+g[e+8])/3;g[e+0]=h;g[e+1]=l;g[e+2]=m;g[e+3]=h;g[e+4]=l;g[e+5]=m;g[e+6]=h;g[e+7]=l;g[e+8]=m}C.bufferData(C.ARRAY_BUFFER,a.normalArray,C.DYNAMIC_DRAW);X.enableAttribute(b.normal);C.vertexAttribPointer(b.normal,3,C.FLOAT,!1,0,0)}a.hasUvs&&c.map&&(C.bindBuffer(C.ARRAY_BUFFER,d.uv),C.bufferData(C.ARRAY_BUFFER,a.uvArray,C.DYNAMIC_DRAW),X.enableAttribute(b.uv),C.vertexAttribPointer(Fa.uv,
 2,C.FLOAT,!1,0,0));a.hasColors&&0!==c.vertexColors&&(C.bindBuffer(C.ARRAY_BUFFER,d.color),C.bufferData(C.ARRAY_BUFFER,a.colorArray,C.DYNAMIC_DRAW),X.enableAttribute(b.color),C.vertexAttribPointer(b.color,3,C.FLOAT,!1,0,0));X.disableUnusedAttributes();C.drawArrays(C.TRIANGLES,0,a.count);a.count=0};var Na,Sa,Oa;this.renderBufferDirect=function(a,b,c,d,e,f){k(d);Na=y(a,b,d,e);Sa=c.id+"_"+Na.id+"_"+d.wireframe;Oa=!1;Sa!==L&&(L=Sa,Oa=!0);var g=e.morphTargetInfluences;if(void 0!==g){var l=[];a=0;for(var m=
 2,C.FLOAT,!1,0,0));a.hasColors&&0!==c.vertexColors&&(C.bindBuffer(C.ARRAY_BUFFER,d.color),C.bufferData(C.ARRAY_BUFFER,a.colorArray,C.DYNAMIC_DRAW),X.enableAttribute(b.color),C.vertexAttribPointer(b.color,3,C.FLOAT,!1,0,0));X.disableUnusedAttributes();C.drawArrays(C.TRIANGLES,0,a.count);a.count=0};var Na,Sa,Oa;this.renderBufferDirect=function(a,b,c,d,e,f){k(d);Na=y(a,b,d,e);Sa=c.id+"_"+Na.id+"_"+d.wireframe;Oa=!1;Sa!==L&&(L=Sa,Oa=!0);var g=e.morphTargetInfluences;if(void 0!==g){var l=[];a=0;for(var m=
 g.length;a<m;a++)b=g[a],l.push([b,a]);l.sort(h);8<l.length&&(l.length=8);g=c.morphAttributes;a=0;for(m=l.length;a<m;a++)b=l[a],Q[a]=b[0],0!==b[0]?(b=b[1],!0===d.morphTargets&&g.position&&c.addAttribute("morphTarget"+a,g.position[b]),!0===d.morphNormals&&g.normal&&c.addAttribute("morphNormal"+a,g.normal[b])):(!0===d.morphTargets&&c.removeAttribute("morphTarget"+a),!0===d.morphNormals&&c.removeAttribute("morphNormal"+a));a=l.length;for(b=Q.length;a<b;a++)Q[a]=0;Na.getUniforms().setValue(C,"morphTargetInfluences",
 g.length;a<m;a++)b=g[a],l.push([b,a]);l.sort(h);8<l.length&&(l.length=8);g=c.morphAttributes;a=0;for(m=l.length;a<m;a++)b=l[a],Q[a]=b[0],0!==b[0]?(b=b[1],!0===d.morphTargets&&g.position&&c.addAttribute("morphTarget"+a,g.position[b]),!0===d.morphNormals&&g.normal&&c.addAttribute("morphNormal"+a,g.normal[b])):(!0===d.morphTargets&&c.removeAttribute("morphTarget"+a),!0===d.morphNormals&&c.removeAttribute("morphNormal"+a));a=l.length;for(b=Q.length;a<b;a++)Q[a]=0;Na.getUniforms().setValue(C,"morphTargetInfluences",
 Q);Oa=!0}b=c.index;m=c.attributes.position;l=1;!0===d.wireframe&&(b=Ja.getWireframeAttribute(c),l=2);a=Pa;null!==b&&(a=Qa,a.setIndex(b));if(Oa){a:{var n=Na,g=void 0,u;if(c&&c.isInstancedBufferGeometry&&(u=ja.get("ANGLE_instanced_arrays"),null===u)){console.error("THREE.WebGLRenderer.setupVertexAttributes: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.");break a}void 0===g&&(g=0);X.initAttributes();var q=c.attributes,n=n.getAttributes(),t=d.defaultAttributeValues,
 Q);Oa=!0}b=c.index;m=c.attributes.position;l=1;!0===d.wireframe&&(b=Ja.getWireframeAttribute(c),l=2);a=Pa;null!==b&&(a=Qa,a.setIndex(b));if(Oa){a:{var n=Na,g=void 0,u;if(c&&c.isInstancedBufferGeometry&&(u=ja.get("ANGLE_instanced_arrays"),null===u)){console.error("THREE.WebGLRenderer.setupVertexAttributes: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.");break a}void 0===g&&(g=0);X.initAttributes();var q=c.attributes,n=n.getAttributes(),t=d.defaultAttributeValues,
-p;for(p in n){var w=n[p];if(0<=w){var v=q[p];if(void 0!==v){var z=v.normalized,x=v.itemSize,A=Ea.get(v),M=A.buffer,H=A.type,A=A.bytesPerElement;if(v.isInterleavedBufferAttribute){var G=v.data,F=G.stride,v=v.offset;G&&G.isInstancedInterleavedBuffer?(X.enableAttributeAndDivisor(w,G.meshPerAttribute,u),void 0===c.maxInstancedCount&&(c.maxInstancedCount=G.meshPerAttribute*G.count)):X.enableAttribute(w);C.bindBuffer(C.ARRAY_BUFFER,M);C.vertexAttribPointer(w,x,H,z,F*A,(g*F+v)*A)}else v.isInstancedBufferAttribute?
-(X.enableAttributeAndDivisor(w,v.meshPerAttribute,u),void 0===c.maxInstancedCount&&(c.maxInstancedCount=v.meshPerAttribute*v.count)):X.enableAttribute(w),C.bindBuffer(C.ARRAY_BUFFER,M),C.vertexAttribPointer(w,x,H,z,0,g*x*A)}else if(void 0!==t&&(z=t[p],void 0!==z))switch(z.length){case 2:C.vertexAttrib2fv(w,z);break;case 3:C.vertexAttrib3fv(w,z);break;case 4:C.vertexAttrib4fv(w,z);break;default:C.vertexAttrib1fv(w,z)}}}X.disableUnusedAttributes()}null!==b&&C.bindBuffer(C.ELEMENT_ARRAY_BUFFER,Ea.get(b).buffer)}u=
+p;for(p in n){var w=n[p];if(0<=w){var v=q[p];if(void 0!==v){var z=v.normalized,x=v.itemSize,A=Fa.get(v),M=A.buffer,H=A.type,A=A.bytesPerElement;if(v.isInterleavedBufferAttribute){var G=v.data,F=G.stride,v=v.offset;G&&G.isInstancedInterleavedBuffer?(X.enableAttributeAndDivisor(w,G.meshPerAttribute,u),void 0===c.maxInstancedCount&&(c.maxInstancedCount=G.meshPerAttribute*G.count)):X.enableAttribute(w);C.bindBuffer(C.ARRAY_BUFFER,M);C.vertexAttribPointer(w,x,H,z,F*A,(g*F+v)*A)}else v.isInstancedBufferAttribute?
+(X.enableAttributeAndDivisor(w,v.meshPerAttribute,u),void 0===c.maxInstancedCount&&(c.maxInstancedCount=v.meshPerAttribute*v.count)):X.enableAttribute(w),C.bindBuffer(C.ARRAY_BUFFER,M),C.vertexAttribPointer(w,x,H,z,0,g*x*A)}else if(void 0!==t&&(z=t[p],void 0!==z))switch(z.length){case 2:C.vertexAttrib2fv(w,z);break;case 3:C.vertexAttrib3fv(w,z);break;case 4:C.vertexAttrib4fv(w,z);break;default:C.vertexAttrib1fv(w,z)}}}X.disableUnusedAttributes()}null!==b&&C.bindBuffer(C.ELEMENT_ARRAY_BUFFER,Fa.get(b).buffer)}u=
 0;null!==b?u=b.count:void 0!==m&&(u=m.count);b=c.drawRange.start*l;m=null!==f?f.start*l:0;p=Math.max(b,m);f=Math.max(0,Math.min(u,b+c.drawRange.count*l,m+(null!==f?f.count*l:Infinity))-1-p+1);if(0!==f){if(e.isMesh)if(!0===d.wireframe)X.setLineWidth(d.wireframeLinewidth*(null===U?Wa:1)),a.setMode(C.LINES);else switch(e.drawMode){case 0:a.setMode(C.TRIANGLES);break;case 1:a.setMode(C.TRIANGLE_STRIP);break;case 2:a.setMode(C.TRIANGLE_FAN)}else e.isLine?(d=d.linewidth,void 0===d&&(d=1),X.setLineWidth(d*
 0;null!==b?u=b.count:void 0!==m&&(u=m.count);b=c.drawRange.start*l;m=null!==f?f.start*l:0;p=Math.max(b,m);f=Math.max(0,Math.min(u,b+c.drawRange.count*l,m+(null!==f?f.count*l:Infinity))-1-p+1);if(0!==f){if(e.isMesh)if(!0===d.wireframe)X.setLineWidth(d.wireframeLinewidth*(null===U?Wa:1)),a.setMode(C.LINES);else switch(e.drawMode){case 0:a.setMode(C.TRIANGLES);break;case 1:a.setMode(C.TRIANGLE_STRIP);break;case 2:a.setMode(C.TRIANGLE_FAN)}else e.isLine?(d=d.linewidth,void 0===d&&(d=1),X.setLineWidth(d*
 (null===U?Wa:1)),e.isLineSegments?a.setMode(C.LINES):e.isLineLoop?a.setMode(C.LINE_LOOP):a.setMode(C.LINE_STRIP)):e.isPoints&&a.setMode(C.POINTS);c&&c.isInstancedBufferGeometry?0<c.maxInstancedCount&&a.renderInstances(c,p,f):a.render(p,f)}};this.render=function(a,b,c,d){if(void 0!==b&&!0!==b.isCamera)console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");else{L="";P=-1;T=null;!0===a.autoUpdate&&a.updateMatrixWorld();null===b.parent&&b.updateMatrixWorld();b.matrixWorldInverse.getInverse(b.matrixWorld);
 (null===U?Wa:1)),e.isLineSegments?a.setMode(C.LINES):e.isLineLoop?a.setMode(C.LINE_LOOP):a.setMode(C.LINE_STRIP)):e.isPoints&&a.setMode(C.POINTS);c&&c.isInstancedBufferGeometry?0<c.maxInstancedCount&&a.renderInstances(c,p,f):a.render(p,f)}};this.render=function(a,b,c,d){if(void 0!==b&&!0!==b.isCamera)console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");else{L="";P=-1;T=null;!0===a.autoUpdate&&a.updateMatrixWorld();null===b.parent&&b.updateMatrixWorld();b.matrixWorldInverse.getInverse(b.matrixWorld);
 qa.multiplyMatrices(b.projectionMatrix,b.matrixWorldInverse);ma.setFromMatrix(qa);la.length=0;Ta=B=-1;K.length=0;N.length=0;ra=this.localClippingEnabled;pa=ea.init(this.clippingPlanes,ra,b);q(a,b,O.sortObjects);Y.length=B+1;E.length=Ta+1;!0===O.sortObjects&&(Y.sort(l),E.sort(m));pa&&ea.beginShadows();for(var e=la,f=0,g=0,h=e.length;g<h;g++){var u=e[g];u.castShadow&&(aa.shadows[f]=u,f++)}aa.shadows.length=f;Ra.render(a,b);for(var e=la,k,r=u=0,t=0,y,p,w,v=b.matrixWorldInverse,z=0,x=0,A=0,M=0,H=0,f=
 qa.multiplyMatrices(b.projectionMatrix,b.matrixWorldInverse);ma.setFromMatrix(qa);la.length=0;Ta=B=-1;K.length=0;N.length=0;ra=this.localClippingEnabled;pa=ea.init(this.clippingPlanes,ra,b);q(a,b,O.sortObjects);Y.length=B+1;E.length=Ta+1;!0===O.sortObjects&&(Y.sort(l),E.sort(m));pa&&ea.beginShadows();for(var e=la,f=0,g=0,h=e.length;g<h;g++){var u=e[g];u.castShadow&&(aa.shadows[f]=u,f++)}aa.shadows.length=f;Ra.render(a,b);for(var e=la,k,r=u=0,t=0,y,p,w,v=b.matrixWorldInverse,z=0,x=0,A=0,M=0,H=0,f=
-0,g=e.length;f<g;f++)if(h=e[f],k=h.color,y=h.intensity,p=h.distance,w=h.shadow&&h.shadow.map?h.shadow.map.texture:null,h.isAmbientLight)u+=k.r*y,r+=k.g*y,t+=k.b*y;else if(h.isDirectionalLight){var F=Ca.get(h);F.color.copy(h.color).multiplyScalar(h.intensity);F.direction.setFromMatrixPosition(h.matrixWorld);da.setFromMatrixPosition(h.target.matrixWorld);F.direction.sub(da);F.direction.transformDirection(v);if(F.shadow=h.castShadow)k=h.shadow,F.shadowBias=k.bias,F.shadowRadius=k.radius,F.shadowMapSize=
-k.mapSize;aa.directionalShadowMap[z]=w;aa.directionalShadowMatrix[z]=h.shadow.matrix;aa.directional[z]=F;z++}else if(h.isSpotLight){F=Ca.get(h);F.position.setFromMatrixPosition(h.matrixWorld);F.position.applyMatrix4(v);F.color.copy(k).multiplyScalar(y);F.distance=p;F.direction.setFromMatrixPosition(h.matrixWorld);da.setFromMatrixPosition(h.target.matrixWorld);F.direction.sub(da);F.direction.transformDirection(v);F.coneCos=Math.cos(h.angle);F.penumbraCos=Math.cos(h.angle*(1-h.penumbra));F.decay=0===
-h.distance?0:h.decay;if(F.shadow=h.castShadow)k=h.shadow,F.shadowBias=k.bias,F.shadowRadius=k.radius,F.shadowMapSize=k.mapSize;aa.spotShadowMap[A]=w;aa.spotShadowMatrix[A]=h.shadow.matrix;aa.spot[A]=F;A++}else if(h.isRectAreaLight)F=Ca.get(h),F.color.copy(k).multiplyScalar(y/(h.width*h.height)),F.position.setFromMatrixPosition(h.matrixWorld),F.position.applyMatrix4(v),xa.identity(),za.copy(h.matrixWorld),za.premultiply(v),xa.extractRotation(za),F.halfWidth.set(.5*h.width,0,0),F.halfHeight.set(0,.5*
-h.height,0),F.halfWidth.applyMatrix4(xa),F.halfHeight.applyMatrix4(xa),aa.rectArea[M]=F,M++;else if(h.isPointLight){F=Ca.get(h);F.position.setFromMatrixPosition(h.matrixWorld);F.position.applyMatrix4(v);F.color.copy(h.color).multiplyScalar(h.intensity);F.distance=h.distance;F.decay=0===h.distance?0:h.decay;if(F.shadow=h.castShadow)k=h.shadow,F.shadowBias=k.bias,F.shadowRadius=k.radius,F.shadowMapSize=k.mapSize;aa.pointShadowMap[x]=w;void 0===aa.pointShadowMatrix[x]&&(aa.pointShadowMatrix[x]=new R);
-da.setFromMatrixPosition(h.matrixWorld).negate();aa.pointShadowMatrix[x].identity().setPosition(da);aa.point[x]=F;x++}else h.isHemisphereLight&&(F=Ca.get(h),F.direction.setFromMatrixPosition(h.matrixWorld),F.direction.transformDirection(v),F.direction.normalize(),F.skyColor.copy(h.color).multiplyScalar(y),F.groundColor.copy(h.groundColor).multiplyScalar(y),aa.hemi[H]=F,H++);aa.ambient[0]=u;aa.ambient[1]=r;aa.ambient[2]=t;aa.directional.length=z;aa.spot.length=A;aa.rectArea.length=M;aa.point.length=
-x;aa.hemi.length=H;aa.hash=z+","+x+","+A+","+M+","+H+","+aa.shadows.length;pa&&ea.endShadows();oa.frame++;oa.calls=0;oa.vertices=0;oa.faces=0;oa.points=0;void 0===c&&(c=null);this.setRenderTarget(c);e=a.background;null===e?X.buffers.color.setClear(Ma.r,Ma.g,Ma.b,ib,G):e&&e.isColor&&(X.buffers.color.setClear(e.r,e.g,e.b,1,G),d=!0);(this.autoClear||d)&&this.clear(this.autoClearColor,this.autoClearDepth,this.autoClearStencil);e&&e.isCubeTexture?(void 0===sa&&(sa=new Ga,wa=new ya(new gb(5,5,5),new Ha({uniforms:$a.cube.uniforms,
-vertexShader:$a.cube.vertexShader,fragmentShader:$a.cube.fragmentShader,side:1,depthTest:!1,depthWrite:!1,fog:!1}))),sa.projectionMatrix.copy(b.projectionMatrix),sa.matrixWorld.extractRotation(b.matrixWorld),sa.matrixWorldInverse.getInverse(sa.matrixWorld),wa.material.uniforms.tCube.value=e,wa.modelViewMatrix.multiplyMatrices(sa.matrixWorldInverse,wa.matrixWorld),Fa.update(wa),O.renderBufferDirect(sa,null,wa.geometry,wa.material,wa,null)):e&&e.isTexture&&(void 0===Ia&&(Ia=new Gb(-1,1,1,-1,0,1),Aa=
-new ya(new hb(2,2),new La({depthTest:!1,depthWrite:!1,fog:!1}))),Aa.material.map=e,Fa.update(Aa),O.renderBufferDirect(Ia,null,Aa.geometry,Aa.material,Aa,null));a.overrideMaterial?(d=a.overrideMaterial,n(Y,a,b,d),n(E,a,b,d)):(X.setBlending(0),n(Y,a,b),n(E,a,b));Ua.render(a,b);Va.render(a,b,W);c&&va.updateRenderTargetMipmap(c);X.setDepthTest(!0);X.setDepthWrite(!0);X.setColorWrite(!0)}};this.setFaceCulling=function(a,b){X.setCullFace(a);X.setFlipSided(0===b)};this.allocTextureUnit=function(){var a=
+0,g=e.length;f<g;f++)if(h=e[f],k=h.color,y=h.intensity,p=h.distance,w=h.shadow&&h.shadow.map?h.shadow.map.texture:null,h.isAmbientLight)u+=k.r*y,r+=k.g*y,t+=k.b*y;else if(h.isDirectionalLight){var F=Da.get(h);F.color.copy(h.color).multiplyScalar(h.intensity);F.direction.setFromMatrixPosition(h.matrixWorld);da.setFromMatrixPosition(h.target.matrixWorld);F.direction.sub(da);F.direction.transformDirection(v);if(F.shadow=h.castShadow)k=h.shadow,F.shadowBias=k.bias,F.shadowRadius=k.radius,F.shadowMapSize=
+k.mapSize;aa.directionalShadowMap[z]=w;aa.directionalShadowMatrix[z]=h.shadow.matrix;aa.directional[z]=F;z++}else if(h.isSpotLight){F=Da.get(h);F.position.setFromMatrixPosition(h.matrixWorld);F.position.applyMatrix4(v);F.color.copy(k).multiplyScalar(y);F.distance=p;F.direction.setFromMatrixPosition(h.matrixWorld);da.setFromMatrixPosition(h.target.matrixWorld);F.direction.sub(da);F.direction.transformDirection(v);F.coneCos=Math.cos(h.angle);F.penumbraCos=Math.cos(h.angle*(1-h.penumbra));F.decay=0===
+h.distance?0:h.decay;if(F.shadow=h.castShadow)k=h.shadow,F.shadowBias=k.bias,F.shadowRadius=k.radius,F.shadowMapSize=k.mapSize;aa.spotShadowMap[A]=w;aa.spotShadowMatrix[A]=h.shadow.matrix;aa.spot[A]=F;A++}else if(h.isRectAreaLight)F=Da.get(h),F.color.copy(k).multiplyScalar(y/(h.width*h.height)),F.position.setFromMatrixPosition(h.matrixWorld),F.position.applyMatrix4(v),xa.identity(),za.copy(h.matrixWorld),za.premultiply(v),xa.extractRotation(za),F.halfWidth.set(.5*h.width,0,0),F.halfHeight.set(0,.5*
+h.height,0),F.halfWidth.applyMatrix4(xa),F.halfHeight.applyMatrix4(xa),aa.rectArea[M]=F,M++;else if(h.isPointLight){F=Da.get(h);F.position.setFromMatrixPosition(h.matrixWorld);F.position.applyMatrix4(v);F.color.copy(h.color).multiplyScalar(h.intensity);F.distance=h.distance;F.decay=0===h.distance?0:h.decay;if(F.shadow=h.castShadow)k=h.shadow,F.shadowBias=k.bias,F.shadowRadius=k.radius,F.shadowMapSize=k.mapSize;aa.pointShadowMap[x]=w;void 0===aa.pointShadowMatrix[x]&&(aa.pointShadowMatrix[x]=new R);
+da.setFromMatrixPosition(h.matrixWorld).negate();aa.pointShadowMatrix[x].identity().setPosition(da);aa.point[x]=F;x++}else h.isHemisphereLight&&(F=Da.get(h),F.direction.setFromMatrixPosition(h.matrixWorld),F.direction.transformDirection(v),F.direction.normalize(),F.skyColor.copy(h.color).multiplyScalar(y),F.groundColor.copy(h.groundColor).multiplyScalar(y),aa.hemi[H]=F,H++);aa.ambient[0]=u;aa.ambient[1]=r;aa.ambient[2]=t;aa.directional.length=z;aa.spot.length=A;aa.rectArea.length=M;aa.point.length=
+x;aa.hemi.length=H;aa.hash=z+","+x+","+A+","+M+","+H+","+aa.shadows.length;pa&&ea.endShadows();oa.frame++;oa.calls=0;oa.vertices=0;oa.faces=0;oa.points=0;void 0===c&&(c=null);this.setRenderTarget(c);e=a.background;null===e?X.buffers.color.setClear(Ma.r,Ma.g,Ma.b,jb,G):e&&e.isColor&&(X.buffers.color.setClear(e.r,e.g,e.b,1,G),d=!0);(this.autoClear||d)&&this.clear(this.autoClearColor,this.autoClearDepth,this.autoClearStencil);e&&e.isCubeTexture?(void 0===sa&&(sa=new Ga,wa=new ya(new hb(5,5,5),new Ha({uniforms:$a.cube.uniforms,
+vertexShader:$a.cube.vertexShader,fragmentShader:$a.cube.fragmentShader,side:1,depthTest:!1,depthWrite:!1,fog:!1}))),sa.projectionMatrix.copy(b.projectionMatrix),sa.matrixWorld.extractRotation(b.matrixWorld),sa.matrixWorldInverse.getInverse(sa.matrixWorld),wa.material.uniforms.tCube.value=e,wa.modelViewMatrix.multiplyMatrices(sa.matrixWorldInverse,wa.matrixWorld),Ba.update(wa),O.renderBufferDirect(sa,null,wa.geometry,wa.material,wa,null)):e&&e.isTexture&&(void 0===Ia&&(Ia=new Gb(-1,1,1,-1,0,1),Aa=
+new ya(new ib(2,2),new La({depthTest:!1,depthWrite:!1,fog:!1}))),Aa.material.map=e,Ba.update(Aa),O.renderBufferDirect(Ia,null,Aa.geometry,Aa.material,Aa,null));a.overrideMaterial?(d=a.overrideMaterial,n(Y,a,b,d),n(E,a,b,d)):(X.setBlending(0),n(Y,a,b),n(E,a,b));Ua.render(a,b);Va.render(a,b,W);c&&va.updateRenderTargetMipmap(c);X.setDepthTest(!0);X.setDepthWrite(!0);X.setColorWrite(!0)}};this.setFaceCulling=function(a,b){X.setCullFace(a);X.setFlipSided(0===b)};this.allocTextureUnit=function(){var a=
 Z;a>=na.maxTextures&&console.warn("WebGLRenderer: trying to use "+a+" texture units while this GPU supports only "+na.maxTextures);Z+=1;return a};this.setTexture2D=function(){var a=!1;return function(b,c){b&&b.isWebGLRenderTarget&&(a||(console.warn("THREE.WebGLRenderer.setTexture2D: don't use render targets as textures. Use their .texture property instead."),a=!0),b=b.texture);va.setTexture2D(b,c)}}();this.setTexture=function(){var a=!1;return function(b,c){a||(console.warn("THREE.WebGLRenderer: .setTexture is deprecated, use setTexture2D instead."),
 Z;a>=na.maxTextures&&console.warn("WebGLRenderer: trying to use "+a+" texture units while this GPU supports only "+na.maxTextures);Z+=1;return a};this.setTexture2D=function(){var a=!1;return function(b,c){b&&b.isWebGLRenderTarget&&(a||(console.warn("THREE.WebGLRenderer.setTexture2D: don't use render targets as textures. Use their .texture property instead."),a=!0),b=b.texture);va.setTexture2D(b,c)}}();this.setTexture=function(){var a=!1;return function(b,c){a||(console.warn("THREE.WebGLRenderer: .setTexture is deprecated, use setTexture2D instead."),
 a=!0);va.setTexture2D(b,c)}}();this.setTextureCube=function(){var a=!1;return function(b,c){b&&b.isWebGLRenderTargetCube&&(a||(console.warn("THREE.WebGLRenderer.setTextureCube: don't use cube render targets as textures. Use their .texture property instead."),a=!0),b=b.texture);b&&b.isCubeTexture||Array.isArray(b.image)&&6===b.image.length?va.setTextureCube(b,c):va.setTextureCubeDynamic(b,c)}}();this.getCurrentRenderTarget=function(){return U};this.setRenderTarget=function(a){(U=a)&&void 0===ia.get(a).__webglFramebuffer&&
 a=!0);va.setTexture2D(b,c)}}();this.setTextureCube=function(){var a=!1;return function(b,c){b&&b.isWebGLRenderTargetCube&&(a||(console.warn("THREE.WebGLRenderer.setTextureCube: don't use cube render targets as textures. Use their .texture property instead."),a=!0),b=b.texture);b&&b.isCubeTexture||Array.isArray(b.image)&&6===b.image.length?va.setTextureCube(b,c):va.setTextureCubeDynamic(b,c)}}();this.getCurrentRenderTarget=function(){return U};this.setRenderTarget=function(a){(U=a)&&void 0===ia.get(a).__webglFramebuffer&&
 va.setupRenderTarget(a);var b=a&&a.isWebGLRenderTargetCube,c;a?(c=ia.get(a),c=b?c.__webglFramebuffer[a.activeCubeFace]:c.__webglFramebuffer,V.copy(a.scissor),Td=a.scissorTest,W.copy(a.viewport)):(c=null,V.copy(fa).multiplyScalar(Wa),Td=ka,W.copy(ha).multiplyScalar(Wa));S!==c&&(C.bindFramebuffer(C.FRAMEBUFFER,c),S=c);X.scissor(V);X.setScissorTest(Td);X.viewport(W);b&&(b=ia.get(a.texture),C.framebufferTexture2D(C.FRAMEBUFFER,C.COLOR_ATTACHMENT0,C.TEXTURE_CUBE_MAP_POSITIVE_X+a.activeCubeFace,b.__webglTexture,
 va.setupRenderTarget(a);var b=a&&a.isWebGLRenderTargetCube,c;a?(c=ia.get(a),c=b?c.__webglFramebuffer[a.activeCubeFace]:c.__webglFramebuffer,V.copy(a.scissor),Td=a.scissorTest,W.copy(a.viewport)):(c=null,V.copy(fa).multiplyScalar(Wa),Td=ka,W.copy(ha).multiplyScalar(Wa));S!==c&&(C.bindFramebuffer(C.FRAMEBUFFER,c),S=c);X.scissor(V);X.setScissorTest(Td);X.viewport(W);b&&(b=ia.get(a.texture),C.framebufferTexture2D(C.FRAMEBUFFER,C.COLOR_ATTACHMENT0,C.TEXTURE_CUBE_MAP_POSITIVE_X+a.activeCubeFace,b.__webglTexture,
 a.activeMipMapLevel))};this.readRenderTargetPixels=function(a,b,c,d,e,f){if(!1===(a&&a.isWebGLRenderTarget))console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");else{var g=ia.get(a).__webglFramebuffer;if(g){var h=!1;g!==S&&(C.bindFramebuffer(C.FRAMEBUFFER,g),h=!0);try{var l=a.texture,m=l.format,n=l.type;1023!==m&&x(m)!==C.getParameter(C.IMPLEMENTATION_COLOR_READ_FORMAT)?console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format."):
 a.activeMipMapLevel))};this.readRenderTargetPixels=function(a,b,c,d,e,f){if(!1===(a&&a.isWebGLRenderTarget))console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");else{var g=ia.get(a).__webglFramebuffer;if(g){var h=!1;g!==S&&(C.bindFramebuffer(C.FRAMEBUFFER,g),h=!0);try{var l=a.texture,m=l.format,n=l.type;1023!==m&&x(m)!==C.getParameter(C.IMPLEMENTATION_COLOR_READ_FORMAT)?console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format."):
 1009===n||x(n)===C.getParameter(C.IMPLEMENTATION_COLOR_READ_TYPE)||1015===n&&(ja.get("OES_texture_float")||ja.get("WEBGL_color_buffer_float"))||1016===n&&ja.get("EXT_color_buffer_half_float")?C.checkFramebufferStatus(C.FRAMEBUFFER)===C.FRAMEBUFFER_COMPLETE?0<=b&&b<=a.width-d&&0<=c&&c<=a.height-e&&C.readPixels(b,c,d,e,x(m),x(n),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{h&&
 1009===n||x(n)===C.getParameter(C.IMPLEMENTATION_COLOR_READ_TYPE)||1015===n&&(ja.get("OES_texture_float")||ja.get("WEBGL_color_buffer_float"))||1016===n&&ja.get("EXT_color_buffer_half_float")?C.checkFramebufferStatus(C.FRAMEBUFFER)===C.FRAMEBUFFER_COMPLETE?0<=b&&b<=a.width-d&&0<=c&&c<=a.height-e&&C.readPixels(b,c,d,e,x(m),x(n),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{h&&
-C.bindFramebuffer(C.FRAMEBUFFER,S)}}}}}function Hb(a,b){this.name="";this.color=new I(a);this.density=void 0!==b?b:2.5E-4}function Ib(a,b,c){this.name="";this.color=new I(a);this.near=void 0!==b?b:1;this.far=void 0!==c?c:1E3}function jd(){B.call(this);this.type="Scene";this.overrideMaterial=this.fog=this.background=null;this.autoUpdate=!0}function Vd(a,b,c,d,e){B.call(this);this.lensFlares=[];this.positionScreen=new p;this.customUpdateCallback=void 0;void 0!==a&&this.add(a,b,c,d,e)}function jb(a){W.call(this);
-this.type="SpriteMaterial";this.color=new I(16777215);this.map=null;this.rotation=0;this.lights=this.fog=!1;this.setValues(a)}function zc(a){B.call(this);this.type="Sprite";this.material=void 0!==a?a:new jb}function Ac(){B.call(this);this.type="LOD";Object.defineProperties(this,{levels:{enumerable:!0,value:[]}})}function Bc(a,b){this.identityMatrix=new R;a=a||[];this.bones=a.slice(0);this.boneMatrices=new Float32Array(16*this.bones.length);if(void 0===b)this.calculateInverses();else if(this.bones.length===
+C.bindFramebuffer(C.FRAMEBUFFER,S)}}}}}function Hb(a,b){this.name="";this.color=new I(a);this.density=void 0!==b?b:2.5E-4}function Ib(a,b,c){this.name="";this.color=new I(a);this.near=void 0!==b?b:1;this.far=void 0!==c?c:1E3}function jd(){B.call(this);this.type="Scene";this.overrideMaterial=this.fog=this.background=null;this.autoUpdate=!0}function Vd(a,b,c,d,e){B.call(this);this.lensFlares=[];this.positionScreen=new p;this.customUpdateCallback=void 0;void 0!==a&&this.add(a,b,c,d,e)}function bb(a){W.call(this);
+this.type="SpriteMaterial";this.color=new I(16777215);this.map=null;this.rotation=0;this.lights=this.fog=!1;this.setValues(a)}function zc(a){B.call(this);this.type="Sprite";this.material=void 0!==a?a:new bb}function Ac(){B.call(this);this.type="LOD";Object.defineProperties(this,{levels:{enumerable:!0,value:[]}})}function Bc(a,b){this.identityMatrix=new R;a=a||[];this.bones=a.slice(0);this.boneMatrices=new Float32Array(16*this.bones.length);if(void 0===b)this.calculateInverses();else if(this.bones.length===
 b.length)this.boneInverses=b.slice(0);else{console.warn("THREE.Skeleton boneInverses is the wrong length.");this.boneInverses=[];for(var c=0,d=this.bones.length;c<d;c++)this.boneInverses.push(new R)}}function kd(){B.call(this);this.type="Bone"}function ld(a,b){ya.call(this,a,b);this.type="SkinnedMesh";this.bindMode="attached";this.bindMatrix=new R;this.bindMatrixInverse=new R;var c=[];if(this.geometry&&void 0!==this.geometry.bones){for(var d,e,f=0,g=this.geometry.bones.length;f<g;++f)e=this.geometry.bones[f],
 b.length)this.boneInverses=b.slice(0);else{console.warn("THREE.Skeleton boneInverses is the wrong length.");this.boneInverses=[];for(var c=0,d=this.bones.length;c<d;c++)this.boneInverses.push(new R)}}function kd(){B.call(this);this.type="Bone"}function ld(a,b){ya.call(this,a,b);this.type="SkinnedMesh";this.bindMode="attached";this.bindMatrix=new R;this.bindMatrixInverse=new R;var c=[];if(this.geometry&&void 0!==this.geometry.bones){for(var d,e,f=0,g=this.geometry.bones.length;f<g;++f)e=this.geometry.bones[f],
 d=new kd,c.push(d),d.name=e.name,d.position.fromArray(e.pos),d.quaternion.fromArray(e.rotq),void 0!==e.scl&&d.scale.fromArray(e.scl);f=0;for(g=this.geometry.bones.length;f<g;++f)e=this.geometry.bones[f],-1!==e.parent&&null!==e.parent&&void 0!==c[e.parent]?c[e.parent].add(c[f]):this.add(c[f])}this.normalizeSkinWeights();this.updateMatrixWorld(!0);this.bind(new Bc(c),this.matrixWorld)}function ha(a){W.call(this);this.type="LineBasicMaterial";this.color=new I(16777215);this.linewidth=1;this.linejoin=
 d=new kd,c.push(d),d.name=e.name,d.position.fromArray(e.pos),d.quaternion.fromArray(e.rotq),void 0!==e.scl&&d.scale.fromArray(e.scl);f=0;for(g=this.geometry.bones.length;f<g;++f)e=this.geometry.bones[f],-1!==e.parent&&null!==e.parent&&void 0!==c[e.parent]?c[e.parent].add(c[f]):this.add(c[f])}this.normalizeSkinWeights();this.updateMatrixWorld(!0);this.bind(new Bc(c),this.matrixWorld)}function ha(a){W.call(this);this.type="LineBasicMaterial";this.color=new I(16777215);this.linewidth=1;this.linejoin=
-this.linecap="round";this.lights=!1;this.setValues(a)}function Ba(a,b,c){if(1===c)return console.warn("THREE.Line: parameter THREE.LinePieces no longer supported. Created THREE.LineSegments instead."),new fa(a,b);B.call(this);this.type="Line";this.geometry=void 0!==a?a:new J;this.material=void 0!==b?b:new ha({color:16777215*Math.random()})}function fa(a,b){Ba.call(this,a,b);this.type="LineSegments"}function md(a,b){Ba.call(this,a,b);this.type="LineLoop"}function Ca(a){W.call(this);this.type="PointsMaterial";
-this.color=new I(16777215);this.map=null;this.size=1;this.sizeAttenuation=!0;this.lights=!1;this.setValues(a)}function Jb(a,b){B.call(this);this.type="Points";this.geometry=void 0!==a?a:new J;this.material=void 0!==b?b:new Ca({color:16777215*Math.random()})}function Cc(){B.call(this);this.type="Group"}function nd(a,b,c,d,e,f,g,h,l){function m(){requestAnimationFrame(m);a.readyState>=a.HAVE_CURRENT_DATA&&(u.needsUpdate=!0)}ba.call(this,a,b,c,d,e,f,g,h,l);this.generateMipmaps=!1;var u=this;m()}function Kb(a,
+this.linecap="round";this.lights=!1;this.setValues(a)}function Ca(a,b,c){if(1===c)return console.warn("THREE.Line: parameter THREE.LinePieces no longer supported. Created THREE.LineSegments instead."),new fa(a,b);B.call(this);this.type="Line";this.geometry=void 0!==a?a:new J;this.material=void 0!==b?b:new ha({color:16777215*Math.random()})}function fa(a,b){Ca.call(this,a,b);this.type="LineSegments"}function md(a,b){Ca.call(this,a,b);this.type="LineLoop"}function Da(a){W.call(this);this.type="PointsMaterial";
+this.color=new I(16777215);this.map=null;this.size=1;this.sizeAttenuation=!0;this.lights=!1;this.setValues(a)}function Jb(a,b){B.call(this);this.type="Points";this.geometry=void 0!==a?a:new J;this.material=void 0!==b?b:new Da({color:16777215*Math.random()})}function Cc(){B.call(this);this.type="Group"}function nd(a,b,c,d,e,f,g,h,l){function m(){requestAnimationFrame(m);a.readyState>=a.HAVE_CURRENT_DATA&&(u.needsUpdate=!0)}ba.call(this,a,b,c,d,e,f,g,h,l);this.generateMipmaps=!1;var u=this;m()}function Kb(a,
 b,c,d,e,f,g,h,l,m,u,q){ba.call(this,null,f,g,h,l,m,d,e,u,q);this.image={width:b,height:c};this.mipmaps=a;this.generateMipmaps=this.flipY=!1}function od(a,b,c,d,e,f,g,h,l){ba.call(this,a,b,c,d,e,f,g,h,l);this.needsUpdate=!0}function Dc(a,b,c,d,e,f,g,h,l,m){m=void 0!==m?m:1026;if(1026!==m&&1027!==m)throw Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");void 0===c&&1026===m&&(c=1012);void 0===c&&1027===m&&(c=1020);ba.call(this,null,d,e,f,g,h,m,c,l);this.image=
 b,c,d,e,f,g,h,l,m,u,q){ba.call(this,null,f,g,h,l,m,d,e,u,q);this.image={width:b,height:c};this.mipmaps=a;this.generateMipmaps=this.flipY=!1}function od(a,b,c,d,e,f,g,h,l){ba.call(this,a,b,c,d,e,f,g,h,l);this.needsUpdate=!0}function Dc(a,b,c,d,e,f,g,h,l,m){m=void 0!==m?m:1026;if(1026!==m&&1027!==m)throw Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");void 0===c&&1026===m&&(c=1012);void 0===c&&1027===m&&(c=1020);ba.call(this,null,d,e,f,g,h,m,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 Lb(a){function b(a,b){return a-b}J.call(this);this.type="WireframeGeometry";var c=[],d,e,f,g,h=[0,0],l={},m,u=["a","b","c"];if(a&&a.isGeometry){var q=a.faces;d=0;for(f=q.length;d<f;d++){var n=q[d];for(e=0;3>e;e++)h[0]=n[u[e]],h[1]=n[u[(e+1)%3]],h.sort(b),m=h.toString(),void 0===l[m]&&(l[m]={index1:h[0],index2:h[1]})}for(m in l)d=l[m],u=a.vertices[d.index1],c.push(u.x,u.y,
 {width:a,height:b};this.magFilter=void 0!==g?g:1003;this.minFilter=void 0!==h?h:1003;this.generateMipmaps=this.flipY=!1}function Lb(a){function b(a,b){return a-b}J.call(this);this.type="WireframeGeometry";var c=[],d,e,f,g,h=[0,0],l={},m,u=["a","b","c"];if(a&&a.isGeometry){var q=a.faces;d=0;for(f=q.length;d<f;d++){var n=q[d];for(e=0;3>e;e++)h[0]=n[u[e]],h[1]=n[u[(e+1)%3]],h.sort(b),m=h.toString(),void 0===l[m]&&(l[m]={index1:h[0],index2:h[1]})}for(m in l)d=l[m],u=a.vertices[d.index1],c.push(u.x,u.y,
 u.z),u=a.vertices[d.index2],c.push(u.x,u.y,u.z)}else if(a&&a.isBufferGeometry){var k,u=new p;if(null!==a.index){q=a.attributes.position;n=a.index;k=a.groups;0===k.length&&(k=[{start:0,count:n.count,materialIndex:0}]);a=0;for(g=k.length;a<g;++a)for(d=k[a],e=d.start,f=d.count,d=e,f=e+f;d<f;d+=3)for(e=0;3>e;e++)h[0]=n.getX(d+e),h[1]=n.getX(d+(e+1)%3),h.sort(b),m=h.toString(),void 0===l[m]&&(l[m]={index1:h[0],index2:h[1]});for(m in l)d=l[m],u.fromBufferAttribute(q,d.index1),c.push(u.x,u.y,u.z),u.fromBufferAttribute(q,
 u.z),u=a.vertices[d.index2],c.push(u.x,u.y,u.z)}else if(a&&a.isBufferGeometry){var k,u=new p;if(null!==a.index){q=a.attributes.position;n=a.index;k=a.groups;0===k.length&&(k=[{start:0,count:n.count,materialIndex:0}]);a=0;for(g=k.length;a<g;++a)for(d=k[a],e=d.start,f=d.count,d=e,f=e+f;d<f;d+=3)for(e=0;3>e;e++)h[0]=n.getX(d+e),h[1]=n.getX(d+(e+1)%3),h.sort(b),m=h.toString(),void 0===l[m]&&(l[m]={index1:h[0],index2:h[1]});for(m in l)d=l[m],u.fromBufferAttribute(q,d.index1),c.push(u.x,u.y,u.z),u.fromBufferAttribute(q,
@@ -232,16 +232,16 @@ a}}})}function $b(a){Ha.call(this,a);this.type="RawShaderMaterial"}function wa(a
 .98;this.wireframe=!1;this.wireframeLinewidth=1;this.wireframeLinejoin=this.wireframeLinecap="round";this.morphNormals=this.morphTargets=!1;this.setValues(a)}function ob(a){Qa.call(this);this.defines={TOON:""};this.type="MeshToonMaterial";this.gradientMap=null;this.setValues(a)}function pb(a){W.call(this,a);this.type="MeshNormalMaterial";this.bumpMap=null;this.bumpScale=1;this.normalMap=null;this.normalScale=new D(1,1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.wireframe=
 .98;this.wireframe=!1;this.wireframeLinewidth=1;this.wireframeLinejoin=this.wireframeLinecap="round";this.morphNormals=this.morphTargets=!1;this.setValues(a)}function ob(a){Qa.call(this);this.defines={TOON:""};this.type="MeshToonMaterial";this.gradientMap=null;this.setValues(a)}function pb(a){W.call(this,a);this.type="MeshNormalMaterial";this.bumpMap=null;this.bumpScale=1;this.normalMap=null;this.normalScale=new D(1,1);this.displacementMap=null;this.displacementScale=1;this.displacementBias=0;this.wireframe=
 !1;this.wireframeLinewidth=1;this.morphNormals=this.morphTargets=this.lights=this.fog=!1;this.setValues(a)}function qb(a){W.call(this);this.type="MeshLambertMaterial";this.color=new I(16777215);this.lightMap=this.map=null;this.lightMapIntensity=1;this.aoMap=null;this.aoMapIntensity=1;this.emissive=new I(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;
 !1;this.wireframeLinewidth=1;this.morphNormals=this.morphTargets=this.lights=this.fog=!1;this.setValues(a)}function qb(a){W.call(this);this.type="MeshLambertMaterial";this.color=new I(16777215);this.lightMap=this.map=null;this.lightMapIntensity=1;this.aoMap=null;this.aoMapIntensity=1;this.emissive=new I(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=!1;this.setValues(a)}function rb(a){W.call(this);this.type="LineDashedMaterial";this.color=new I(16777215);this.scale=this.linewidth=1;this.dashSize=3;this.gapSize=1;this.lights=!1;this.setValues(a)}function Wd(a,b,c){var d=this,e=!1,f=0,g=0;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++;
 this.wireframeLinejoin=this.wireframeLinecap="round";this.morphNormals=this.morphTargets=!1;this.setValues(a)}function rb(a){W.call(this);this.type="LineDashedMaterial";this.color=new I(16777215);this.scale=this.linewidth=1;this.dashSize=3;this.gapSize=1;this.lights=!1;this.setValues(a)}function Wd(a,b,c){var d=this,e=!1,f=0,g=0;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()};this.itemError=function(a){if(void 0!==d.onError)d.onError(a)}}function Ia(a){this.manager=void 0!==a?a:Da}function Ie(a){this.manager=void 0!==a?a:Da;this._parser=null}function Xd(a){this.manager=void 0!==a?a:Da;this._parser=null}function Uc(a){this.manager=void 0!==a?a:Da}function Yd(a){this.manager=void 0!==a?a:Da}function pd(a){this.manager=void 0!==a?a:Da}function ka(a,b){B.call(this);this.type="Light";
+if(void 0!==d.onProgress)d.onProgress(a,f,g);if(f===g&&(e=!1,void 0!==d.onLoad))d.onLoad()};this.itemError=function(a){if(void 0!==d.onError)d.onError(a)}}function Ia(a){this.manager=void 0!==a?a:Ea}function Ie(a){this.manager=void 0!==a?a:Ea;this._parser=null}function Xd(a){this.manager=void 0!==a?a:Ea;this._parser=null}function Uc(a){this.manager=void 0!==a?a:Ea}function Yd(a){this.manager=void 0!==a?a:Ea}function pd(a){this.manager=void 0!==a?a:Ea}function ka(a,b){B.call(this);this.type="Light";
 this.color=new I(a);this.intensity=void 0!==b?b:1;this.receiveShadow=void 0}function qd(a,b,c){ka.call(this,a,c);this.type="HemisphereLight";this.castShadow=void 0;this.position.copy(B.DefaultUp);this.updateMatrix();this.groundColor=new I(b)}function sb(a){this.camera=a;this.bias=0;this.radius=1;this.mapSize=new D(512,512);this.map=null;this.matrix=new R}function rd(){sb.call(this,new Ga(50,1,.5,500))}function sd(a,b,c,d,e,f){ka.call(this,a,b);this.type="SpotLight";this.position.copy(B.DefaultUp);
 this.color=new I(a);this.intensity=void 0!==b?b:1;this.receiveShadow=void 0}function qd(a,b,c){ka.call(this,a,c);this.type="HemisphereLight";this.castShadow=void 0;this.position.copy(B.DefaultUp);this.updateMatrix();this.groundColor=new I(b)}function sb(a){this.camera=a;this.bias=0;this.radius=1;this.mapSize=new D(512,512);this.map=null;this.matrix=new R}function rd(){sb.call(this,new Ga(50,1,.5,500))}function sd(a,b,c,d,e,f){ka.call(this,a,b);this.type="SpotLight";this.position.copy(B.DefaultUp);
 this.updateMatrix();this.target=new B;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 rd}function td(a,b,c,d){ka.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=
 this.updateMatrix();this.target=new B;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 rd}function td(a,b,c,d){ka.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!==d?d:1;this.shadow=new sb(new Ga(90,1,.5,500))}function ud(){sb.call(this,new Gb(-5,5,5,-5,.5,500))}function vd(a,b){ka.call(this,a,b);this.type="DirectionalLight";this.position.copy(B.DefaultUp);this.updateMatrix();this.target=new B;this.shadow=new ud}function wd(a,b){ka.call(this,a,b);this.type="AmbientLight";this.castShadow=void 0}function xd(a,b,c,d){ka.call(this,a,b);this.type="RectAreaLight";this.position.set(0,1,0);this.updateMatrix();this.width=void 0!==c?
 void 0!==c?c:0;this.decay=void 0!==d?d:1;this.shadow=new sb(new Ga(90,1,.5,500))}function ud(){sb.call(this,new Gb(-5,5,5,-5,.5,500))}function vd(a,b){ka.call(this,a,b);this.type="DirectionalLight";this.position.copy(B.DefaultUp);this.updateMatrix();this.target=new B;this.shadow=new ud}function wd(a,b){ka.call(this,a,b);this.type="AmbientLight";this.castShadow=void 0}function xd(a,b,c,d){ka.call(this,a,b);this.type="RectAreaLight";this.position.set(0,1,0);this.updateMatrix();this.width=void 0!==c?
 c:10;this.height=void 0!==d?d:10}function oa(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=c}function yd(a,b,c,d){oa.call(this,a,b,c,d);this._offsetNext=this._weightNext=this._offsetPrev=this._weightPrev=-0}function Vc(a,b,c,d){oa.call(this,a,b,c,d)}function zd(a,b,c,d){oa.call(this,a,b,c,d)}function tb(a,b,c,d){if(void 0===a)throw Error("track name is undefined");if(void 0===b||0===b.length)throw Error("no keyframes in track named "+
 c:10;this.height=void 0!==d?d:10}function oa(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=c}function yd(a,b,c,d){oa.call(this,a,b,c,d);this._offsetNext=this._weightNext=this._offsetPrev=this._weightPrev=-0}function Vc(a,b,c,d){oa.call(this,a,b,c,d)}function zd(a,b,c,d){oa.call(this,a,b,c,d)}function tb(a,b,c,d){if(void 0===a)throw Error("track name is undefined");if(void 0===b||0===b.length)throw Error("no keyframes in track named "+
 a);this.name=a;this.times=pa.convertArray(b,this.TimeBufferType);this.values=pa.convertArray(c,this.ValueBufferType);this.setInterpolation(d||this.DefaultInterpolation);this.validate();this.optimize()}function ac(a,b,c,d){tb.call(this,a,b,c,d)}function Ad(a,b,c,d){oa.call(this,a,b,c,d)}function Wc(a,b,c,d){tb.call(this,a,b,c,d)}function bc(a,b,c,d){tb.call(this,a,b,c,d)}function Bd(a,b,c,d){tb.call(this,a,b,c,d)}function Cd(a,b,c){tb.call(this,a,b,c)}function Dd(a,b,c,d){tb.call(this,a,b,c,d)}function ub(a,
 a);this.name=a;this.times=pa.convertArray(b,this.TimeBufferType);this.values=pa.convertArray(c,this.ValueBufferType);this.setInterpolation(d||this.DefaultInterpolation);this.validate();this.optimize()}function ac(a,b,c,d){tb.call(this,a,b,c,d)}function Ad(a,b,c,d){oa.call(this,a,b,c,d)}function Wc(a,b,c,d){tb.call(this,a,b,c,d)}function bc(a,b,c,d){tb.call(this,a,b,c,d)}function Bd(a,b,c,d){tb.call(this,a,b,c,d)}function Cd(a,b,c){tb.call(this,a,b,c)}function Dd(a,b,c,d){tb.call(this,a,b,c,d)}function ub(a,
-b,c,d){tb.apply(this,arguments)}function Ea(a,b,c){this.name=a;this.tracks=c;this.duration=void 0!==b?b:-1;this.uuid=T.generateUUID();0>this.duration&&this.resetDuration();this.optimize()}function Ed(a){this.manager=void 0!==a?a:Da;this.textures={}}function Zd(a){this.manager=void 0!==a?a:Da}function cc(){this.onLoadStart=function(){};this.onLoadProgress=function(){};this.onLoadComplete=function(){}}function $d(a){"boolean"===typeof a&&(console.warn("THREE.JSONLoader: showStatus parameter has been removed from constructor."),
-a=void 0);this.manager=void 0!==a?a:Da;this.withCredentials=!1}function Je(a){this.manager=void 0!==a?a:Da;this.texturePath=""}function Ke(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 vb(a,b,c,d){var e=1-a;return e*e*b+2*(1-a)*a*c+a*a*d}function wb(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 za(){}function Ra(a,b){this.v1=a;this.v2=b}function Xc(){this.curves=[];this.autoClose=!1}function Sa(a,b,c,d,e,f,
+b,c,d){tb.apply(this,arguments)}function Fa(a,b,c){this.name=a;this.tracks=c;this.duration=void 0!==b?b:-1;this.uuid=T.generateUUID();0>this.duration&&this.resetDuration();this.optimize()}function Ed(a){this.manager=void 0!==a?a:Ea;this.textures={}}function Zd(a){this.manager=void 0!==a?a:Ea}function cc(){this.onLoadStart=function(){};this.onLoadProgress=function(){};this.onLoadComplete=function(){}}function $d(a){"boolean"===typeof a&&(console.warn("THREE.JSONLoader: showStatus parameter has been removed from constructor."),
+a=void 0);this.manager=void 0!==a?a:Ea;this.withCredentials=!1}function Je(a){this.manager=void 0!==a?a:Ea;this.texturePath=""}function Ke(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 vb(a,b,c,d){var e=1-a;return e*e*b+2*(1-a)*a*c+a*a*d}function wb(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 za(){}function Ra(a,b){this.v1=a;this.v2=b}function Xc(){this.curves=[];this.autoClose=!1}function Sa(a,b,c,d,e,f,
 g,h){this.aX=a;this.aY=b;this.xRadius=c;this.yRadius=d;this.aStartAngle=e;this.aEndAngle=f;this.aClockwise=g;this.aRotation=h||0}function xb(a){this.points=void 0===a?[]:a}function dc(a,b,c,d){this.v0=a;this.v1=b;this.v2=c;this.v3=d}function ec(a,b,c){this.v0=a;this.v1=b;this.v2=c}function Yc(a){Xc.call(this);this.currentPoint=new D;a&&this.fromPoints(a)}function yb(){Yc.apply(this,arguments);this.holes=[]}function ae(){this.subPaths=[];this.currentPath=null}function be(a){this.data=a}function Le(a){this.manager=
 g,h){this.aX=a;this.aY=b;this.xRadius=c;this.yRadius=d;this.aStartAngle=e;this.aEndAngle=f;this.aClockwise=g;this.aRotation=h||0}function xb(a){this.points=void 0===a?[]:a}function dc(a,b,c,d){this.v0=a;this.v1=b;this.v2=c;this.v3=d}function ec(a,b,c){this.v0=a;this.v1=b;this.v2=c}function Yc(a){Xc.call(this);this.currentPoint=new D;a&&this.fromPoints(a)}function yb(){Yc.apply(this,arguments);this.holes=[]}function ae(){this.subPaths=[];this.currentPath=null}function be(a){this.data=a}function Le(a){this.manager=
-void 0!==a?a:Da}function ce(a){this.manager=void 0!==a?a:Da}function Me(){this.type="StereoCamera";this.aspect=1;this.eyeSep=.064;this.cameraL=new Ga;this.cameraL.layers.enable(1);this.cameraL.matrixAutoUpdate=!1;this.cameraR=new Ga;this.cameraR.layers.enable(2);this.cameraR.matrixAutoUpdate=!1}function Fd(a,b,c){B.call(this);this.type="CubeCamera";var d=new Ga(90,1,a,b);d.up.set(0,-1,0);d.lookAt(new p(1,0,0));this.add(d);var e=new Ga(90,1,a,b);e.up.set(0,-1,0);e.lookAt(new p(-1,0,0));this.add(e);
+void 0!==a?a:Ea}function ce(a){this.manager=void 0!==a?a:Ea}function Me(){this.type="StereoCamera";this.aspect=1;this.eyeSep=.064;this.cameraL=new Ga;this.cameraL.layers.enable(1);this.cameraL.matrixAutoUpdate=!1;this.cameraR=new Ga;this.cameraR.layers.enable(2);this.cameraR.matrixAutoUpdate=!1}function Fd(a,b,c){B.call(this);this.type="CubeCamera";var d=new Ga(90,1,a,b);d.up.set(0,-1,0);d.lookAt(new p(1,0,0));this.add(d);var e=new Ga(90,1,a,b);e.up.set(0,-1,0);e.lookAt(new p(-1,0,0));this.add(e);
 var f=new Ga(90,1,a,b);f.up.set(0,0,1);f.lookAt(new p(0,1,0));this.add(f);var g=new Ga(90,1,a,b);g.up.set(0,0,-1);g.lookAt(new p(0,-1,0));this.add(g);var h=new Ga(90,1,a,b);h.up.set(0,-1,0);h.lookAt(new p(0,0,1));this.add(h);var l=new Ga(90,1,a,b);l.up.set(0,-1,0);l.lookAt(new p(0,0,-1));this.add(l);this.renderTarget=new Cb(c,c,{format:1022,magFilter:1006,minFilter:1006});this.renderTarget.texture.name="CubeCamera";this.updateCubeMap=function(a,b){null===this.parent&&this.updateMatrixWorld();var c=
 var f=new Ga(90,1,a,b);f.up.set(0,0,1);f.lookAt(new p(0,1,0));this.add(f);var g=new Ga(90,1,a,b);g.up.set(0,0,-1);g.lookAt(new p(0,-1,0));this.add(g);var h=new Ga(90,1,a,b);h.up.set(0,-1,0);h.lookAt(new p(0,0,1));this.add(h);var l=new Ga(90,1,a,b);l.up.set(0,-1,0);l.lookAt(new p(0,0,-1));this.add(l);this.renderTarget=new Cb(c,c,{format:1022,magFilter:1006,minFilter:1006});this.renderTarget.texture.name="CubeCamera";this.updateCubeMap=function(a,b){null===this.parent&&this.updateMatrixWorld();var c=
 this.renderTarget,n=c.texture.generateMipmaps;c.texture.generateMipmaps=!1;c.activeCubeFace=0;a.render(b,d,c);c.activeCubeFace=1;a.render(b,e,c);c.activeCubeFace=2;a.render(b,f,c);c.activeCubeFace=3;a.render(b,g,c);c.activeCubeFace=4;a.render(b,h,c);c.texture.generateMipmaps=n;c.activeCubeFace=5;a.render(b,l,c);a.setRenderTarget(null)}}function de(){B.call(this);this.type="AudioListener";this.context=ee.getContext();this.gain=this.context.createGain();this.gain.connect(this.context.destination);this.filter=
 this.renderTarget,n=c.texture.generateMipmaps;c.texture.generateMipmaps=!1;c.activeCubeFace=0;a.render(b,d,c);c.activeCubeFace=1;a.render(b,e,c);c.activeCubeFace=2;a.render(b,f,c);c.activeCubeFace=3;a.render(b,g,c);c.activeCubeFace=4;a.render(b,h,c);c.texture.generateMipmaps=n;c.activeCubeFace=5;a.render(b,l,c);a.setRenderTarget(null)}}function de(){B.call(this);this.type="AudioListener";this.context=ee.getContext();this.gain=this.context.createGain();this.gain.connect(this.context.destination);this.filter=
 null}function fc(a){B.call(this);this.type="Audio";this.context=a.context;this.gain=this.context.createGain();this.gain.connect(a.getInput());this.autoplay=!1;this.buffer=null;this.loop=!1;this.startTime=0;this.playbackRate=1;this.isPlaying=!1;this.hasPlaybackControl=!0;this.sourceType="empty";this.filters=[]}function fe(a){fc.call(this,a);this.panner=this.context.createPanner();this.panner.connect(this.gain)}function ge(a,b){this.analyser=a.context.createAnalyser();this.analyser.fftSize=void 0!==
 null}function fc(a){B.call(this);this.type="Audio";this.context=a.context;this.gain=this.context.createGain();this.gain.connect(a.getInput());this.autoplay=!1;this.buffer=null;this.loop=!1;this.startTime=0;this.playbackRate=1;this.isPlaying=!1;this.hasPlaybackControl=!0;this.sourceType="empty";this.filters=[]}function fe(a){fc.call(this,a);this.panner=this.context.createPanner();this.panner.connect(this.gain)}function ge(a,b){this.analyser=a.context.createAnalyser();this.analyser.fftSize=void 0!==
@@ -250,7 +250,7 @@ b,c){this.path=b;this.parsedPath=c||ra.parseTrackName(b);this.node=ra.findNode(a
 e.nCachedObjects_}},get bindingsPerObject(){return e._bindings.length}}}function Pe(a,b,c){this._mixer=a;this._clip=b;this._localRoot=c||null;a=b.tracks;b=a.length;c=Array(b);for(var d={endingStart:2400,endingEnd:2400},e=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=
 e.nCachedObjects_}},get bindingsPerObject(){return e._bindings.length}}}function Pe(a,b,c){this._mixer=a;this._clip=b;this._localRoot=c||null;a=b.tracks;b=a.length;c=Array(b);for(var d={endingStart:2400,endingEnd:2400},e=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=!0}function Qe(a){this._root=a;this._initMemoryManager();this.time=this._accuIndex=0;this.timeScale=1}function Gd(a,b){"string"===typeof a&&(console.warn("THREE.Uniform: Type parameter is no longer needed."),a=b);this.value=a}function zb(){J.call(this);this.type="InstancedBufferGeometry";
 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=!0}function Qe(a){this._root=a;this._initMemoryManager();this.time=this._accuIndex=0;this.timeScale=1}function Gd(a,b){"string"===typeof a&&(console.warn("THREE.Uniform: Type parameter is no longer needed."),a=b);this.value=a}function zb(){J.call(this);this.type="InstancedBufferGeometry";
 this.maxInstancedCount=void 0}function ie(a,b,c,d){this.uuid=T.generateUUID();this.data=a;this.itemSize=b;this.offset=c;this.normalized=!0===d}function gc(a,b){this.uuid=T.generateUUID();this.array=a;this.stride=b;this.count=void 0!==a?a.length/b:0;this.dynamic=!1;this.updateRange={offset:0,count:-1};this.onUploadCallback=function(){};this.version=0}function hc(a,b,c){gc.call(this,a,b);this.meshPerAttribute=c||1}function ic(a,b,c){V.call(this,a,b);this.meshPerAttribute=c||1}function Re(a,b,c,d){this.ray=
 this.maxInstancedCount=void 0}function ie(a,b,c,d){this.uuid=T.generateUUID();this.data=a;this.itemSize=b;this.offset=c;this.normalized=!0===d}function gc(a,b){this.uuid=T.generateUUID();this.array=a;this.stride=b;this.count=void 0!==a?a.length/b:0;this.dynamic=!1;this.updateRange={offset:0,count:-1};this.onUploadCallback=function(){};this.version=0}function hc(a,b,c){gc.call(this,a,b);this.meshPerAttribute=c||1}function ic(a,b,c){V.call(this,a,b);this.meshPerAttribute=c||1}function Re(a,b,c,d){this.ray=
-new db(a,b);this.near=c||0;this.far=d||Infinity;this.params={Mesh:{},Line:{},LOD:{},Points:{threshold:1},Sprite:{}};Object.defineProperties(this.params,{PointCloud:{get:function(){console.warn("THREE.Raycaster: params.PointCloud has been renamed to params.Points.");return this.Points}}})}function Se(a,b){return a.distance-b.distance}function je(a,b,c,d){if(!1!==a.visible&&(a.raycast(b,c),!0===d)){a=a.children;d=0;for(var e=a.length;d<e;d++)je(a[d],b,c,!0)}}function Te(a){this.autoStart=void 0!==a?
+new eb(a,b);this.near=c||0;this.far=d||Infinity;this.params={Mesh:{},Line:{},LOD:{},Points:{threshold:1},Sprite:{}};Object.defineProperties(this.params,{PointCloud:{get:function(){console.warn("THREE.Raycaster: params.PointCloud has been renamed to params.Points.");return this.Points}}})}function Se(a,b){return a.distance-b.distance}function je(a,b,c,d){if(!1!==a.visible&&(a.raycast(b,c),!0===d)){a=a.children;d=0;for(var e=a.length;d<e;d++)je(a[d],b,c,!0)}}function Te(a){this.autoStart=void 0!==a?
 a:!0;this.elapsedTime=this.oldTime=this.startTime=0;this.running=!1}function Ue(a,b,c){this.radius=void 0!==a?a:1;this.phi=void 0!==b?b:0;this.theta=void 0!==c?c:0;return this}function Ve(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 ea(a,b){ya.call(this,a,b);this.animationsMap={};this.animationsList=[];var c=this.geometry.morphTargets.length;this.createAnimation("__default",0,c-1,c/1);this.setAnimationWeight("__default",1)}function Zc(a){B.call(this);
 a:!0;this.elapsedTime=this.oldTime=this.startTime=0;this.running=!1}function Ue(a,b,c){this.radius=void 0!==a?a:1;this.phi=void 0!==b?b:0;this.theta=void 0!==c?c:0;return this}function Ve(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 ea(a,b){ya.call(this,a,b);this.animationsMap={};this.animationsList=[];var c=this.geometry.morphTargets.length;this.createAnimation("__default",0,c-1,c/1);this.setAnimationWeight("__default",1)}function Zc(a){B.call(this);
 this.material=a;this.render=function(a){}}function $c(a,b,c,d){this.object=a;this.size=void 0!==b?b:1;a=void 0!==c?c:16711680;d=void 0!==d?d:1;b=0;(c=this.object.geometry)&&c.isGeometry?b=3*c.faces.length:c&&c.isBufferGeometry&&(b=c.attributes.normal.count);c=new J;b=new E(6*b,3);c.addAttribute("position",b);fa.call(this,c,new ha({color:a,linewidth:d}));this.matrixAutoUpdate=!1;this.update()}function jc(a){B.call(this);this.light=a;this.light.updateMatrixWorld();this.matrix=a.matrixWorld;this.matrixAutoUpdate=
 this.material=a;this.render=function(a){}}function $c(a,b,c,d){this.object=a;this.size=void 0!==b?b:1;a=void 0!==c?c:16711680;d=void 0!==d?d:1;b=0;(c=this.object.geometry)&&c.isGeometry?b=3*c.faces.length:c&&c.isBufferGeometry&&(b=c.attributes.normal.count);c=new J;b=new E(6*b,3);c.addAttribute("position",b);fa.call(this,c,new ha({color:a,linewidth:d}));this.matrixAutoUpdate=!1;this.update()}function jc(a){B.call(this);this.light=a;this.light.updateMatrixWorld();this.matrix=a.matrixWorld;this.matrixAutoUpdate=
 !1;a=new J;for(var b=[0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,-1,0,1,0,0,0,0,1,1,0,0,0,0,-1,1],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.addAttribute("position",new E(b,3));b=new ha({fog:!1});this.cone=new fa(a,b);this.add(this.cone);this.update()}function kc(a){this.bones=this.getBoneList(a);for(var b=new J,c=[],d=[],e=new I(0,0,1),f=new I(0,1,0),g=0;g<this.bones.length;g++){var h=this.bones[g];h.parent&&h.parent.isBone&&(c.push(0,
 !1;a=new J;for(var b=[0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,-1,0,1,0,0,0,0,1,1,0,0,0,0,-1,1],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.addAttribute("position",new E(b,3));b=new ha({fog:!1});this.cone=new fa(a,b);this.add(this.cone);this.update()}function kc(a){this.bones=this.getBoneList(a);for(var b=new J,c=[],d=[],e=new I(0,0,1),f=new I(0,1,0),g=0;g<this.bones.length;g++){var h=this.bones[g];h.parent&&h.parent.isBone&&(c.push(0,
@@ -259,10 +259,10 @@ this.light.matrixWorld;this.matrixAutoUpdate=!1}function mc(a){B.call(this);this
 wireframe:!0}),e=c.getAttribute("position"),e=new Float32Array(3*e.count);c.addAttribute("color",new V(e,3));this.add(new ya(c,d));this.update()}function ad(a,b,c,d){a=a||10;b=b||10;c=new I(void 0!==c?c:4473924);d=new I(void 0!==d?d:8947848);var e=b/2,f=a/b,g=a/2;a=[];for(var h=[],l=0,m=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 q=l===e?c:d;q.toArray(h,m);m+=3;q.toArray(h,m);m+=3;q.toArray(h,m);m+=3;q.toArray(h,m);m+=3}b=new J;b.addAttribute("position",new E(a,3));b.addAttribute("color",
 wireframe:!0}),e=c.getAttribute("position"),e=new Float32Array(3*e.count);c.addAttribute("color",new V(e,3));this.add(new ya(c,d));this.update()}function ad(a,b,c,d){a=a||10;b=b||10;c=new I(void 0!==c?c:4473924);d=new I(void 0!==d?d:8947848);var e=b/2,f=a/b,g=a/2;a=[];for(var h=[],l=0,m=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 q=l===e?c:d;q.toArray(h,m);m+=3;q.toArray(h,m);m+=3;q.toArray(h,m);m+=3;q.toArray(h,m);m+=3}b=new J;b.addAttribute("position",new E(a,3));b.addAttribute("color",
 new E(h,3));c=new ha({vertexColors:2});fa.call(this,b,c)}function Hd(a,b,c,d,e,f){a=a||10;b=b||16;c=c||8;d=d||64;e=new I(void 0!==e?e:4473924);f=new I(void 0!==f?f:8947848);var g=[],h=[],l,m,k,q,n;for(k=0;k<=b;k++)m=k/b*2*Math.PI,l=Math.sin(m)*a,m=Math.cos(m)*a,g.push(0,0,0),g.push(l,0,m),n=k&1?e:f,h.push(n.r,n.g,n.b),h.push(n.r,n.g,n.b);for(k=0;k<=c;k++)for(n=k&1?e:f,q=a-a/c*k,b=0;b<d;b++)m=b/d*2*Math.PI,l=Math.sin(m)*q,m=Math.cos(m)*q,g.push(l,0,m),h.push(n.r,n.g,n.b),m=(b+1)/d*2*Math.PI,l=Math.sin(m)*
 new E(h,3));c=new ha({vertexColors:2});fa.call(this,b,c)}function Hd(a,b,c,d,e,f){a=a||10;b=b||16;c=c||8;d=d||64;e=new I(void 0!==e?e:4473924);f=new I(void 0!==f?f:8947848);var g=[],h=[],l,m,k,q,n;for(k=0;k<=b;k++)m=k/b*2*Math.PI,l=Math.sin(m)*a,m=Math.cos(m)*a,g.push(0,0,0),g.push(l,0,m),n=k&1?e:f,h.push(n.r,n.g,n.b),h.push(n.r,n.g,n.b);for(k=0;k<=c;k++)for(n=k&1?e:f,q=a-a/c*k,b=0;b<d;b++)m=b/d*2*Math.PI,l=Math.sin(m)*q,m=Math.cos(m)*q,g.push(l,0,m),h.push(n.r,n.g,n.b),m=(b+1)/d*2*Math.PI,l=Math.sin(m)*
 q,m=Math.cos(m)*q,g.push(l,0,m),h.push(n.r,n.g,n.b);a=new J;a.addAttribute("position",new E(g,3));a.addAttribute("color",new E(h,3));g=new ha({vertexColors:2});fa.call(this,a,g)}function bd(a,b,c,d){this.object=a;this.size=void 0!==b?b:1;a=void 0!==c?c:16776960;d=void 0!==d?d:1;b=0;(c=this.object.geometry)&&c.isGeometry?b=c.faces.length:console.warn("THREE.FaceNormalsHelper: only THREE.Geometry is supported. Use THREE.VertexNormalsHelper, instead.");c=new J;b=new E(6*b,3);c.addAttribute("position",
 q,m=Math.cos(m)*q,g.push(l,0,m),h.push(n.r,n.g,n.b);a=new J;a.addAttribute("position",new E(g,3));a.addAttribute("color",new E(h,3));g=new ha({vertexColors:2});fa.call(this,a,g)}function bd(a,b,c,d){this.object=a;this.size=void 0!==b?b:1;a=void 0!==c?c:16776960;d=void 0!==d?d:1;b=0;(c=this.object.geometry)&&c.isGeometry?b=c.faces.length:console.warn("THREE.FaceNormalsHelper: only THREE.Geometry is supported. Use THREE.VertexNormalsHelper, instead.");c=new J;b=new E(6*b,3);c.addAttribute("position",
-b);fa.call(this,c,new ha({color:a,linewidth:d}));this.matrixAutoUpdate=!1;this.update()}function oc(a,b){B.call(this);this.light=a;this.light.updateMatrixWorld();this.matrix=a.matrixWorld;this.matrixAutoUpdate=!1;void 0===b&&(b=1);var c=new J;c.addAttribute("position",new E([-b,b,0,b,b,0,b,-b,0,-b,-b,0,-b,b,0],3));var d=new ha({fog:!1});this.add(new Ba(c,d));c=new J;c.addAttribute("position",new E([0,0,0,0,0,1],3));this.add(new Ba(c,d));this.update()}function cd(a){function b(a,b,d){c(a,d);c(b,d)}
+b);fa.call(this,c,new ha({color:a,linewidth:d}));this.matrixAutoUpdate=!1;this.update()}function oc(a,b){B.call(this);this.light=a;this.light.updateMatrixWorld();this.matrix=a.matrixWorld;this.matrixAutoUpdate=!1;void 0===b&&(b=1);var c=new J;c.addAttribute("position",new E([-b,b,0,b,b,0,b,-b,0,-b,-b,0,-b,b,0],3));var d=new ha({fog:!1});this.add(new Ca(c,d));c=new J;c.addAttribute("position",new E([0,0,0,0,0,1],3));this.add(new Ca(c,d));this.update()}function cd(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 J,e=new ha({color:16777215,vertexColors:1}),f=[],g=[],h={},l=new I(16755200),m=new I(16711680),k=new I(43775),q=new I(16777215),n=new I(3355443);b("n1","n2",l);b("n2","n4",l);b("n4","n3",l);b("n3","n1",l);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",m);b("p","n2",m);b("p","n3",m);b("p","n4",m);b("u1","u2",
 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 J,e=new ha({color:16777215,vertexColors:1}),f=[],g=[],h={},l=new I(16755200),m=new I(16711680),k=new I(43775),q=new I(16777215),n=new I(3355443);b("n1","n2",l);b("n2","n4",l);b("n4","n3",l);b("n3","n1",l);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",m);b("p","n2",m);b("p","n3",m);b("p","n4",m);b("u1","u2",
 k);b("u2","u3",k);b("u3","u1",k);b("c","t",q);b("p","c",n);b("cn1","cn2",n);b("cn3","cn4",n);b("cf1","cf2",n);b("cf3","cf4",n);d.addAttribute("position",new E(f,3));d.addAttribute("color",new E(g,3));fa.call(this,d,e);this.camera=a;this.camera.updateProjectionMatrix&&this.camera.updateProjectionMatrix();this.matrix=a.matrixWorld;this.matrixAutoUpdate=!1;this.pointMap=h;this.update()}function pc(a,b){void 0===b&&(b=16776960);var c=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]),
 k);b("u2","u3",k);b("u3","u1",k);b("c","t",q);b("p","c",n);b("cn1","cn2",n);b("cn3","cn4",n);b("cf1","cf2",n);b("cf3","cf4",n);d.addAttribute("position",new E(f,3));d.addAttribute("color",new E(g,3));fa.call(this,d,e);this.camera=a;this.camera.updateProjectionMatrix&&this.camera.updateProjectionMatrix();this.matrix=a.matrixWorld;this.matrixAutoUpdate=!1;this.pointMap=h;this.update()}function pc(a,b){void 0===b&&(b=16776960);var c=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]),
-d=new Float32Array(24),e=new J;e.setIndex(new V(c,1));e.addAttribute("position",new V(d,3));fa.call(this,e,new ha({color:b}));void 0!==a&&this.update(a)}function Ab(a,b,c,d,e,f){B.call(this);void 0===d&&(d=16776960);void 0===c&&(c=1);void 0===e&&(e=.2*c);void 0===f&&(f=.2*e);void 0===Id&&(Id=new J,Id.addAttribute("position",new E([0,0,0,0,1,0],3)),ke=new Na(0,.5,1,5,1),ke.translate(0,-.5,0));this.position.copy(b);this.line=new Ba(Id,new ha({color:d}));this.line.matrixAutoUpdate=!1;this.add(this.line);
+d=new Float32Array(24),e=new J;e.setIndex(new V(c,1));e.addAttribute("position",new V(d,3));fa.call(this,e,new ha({color:b}));void 0!==a&&this.update(a)}function Ab(a,b,c,d,e,f){B.call(this);void 0===d&&(d=16776960);void 0===c&&(c=1);void 0===e&&(e=.2*c);void 0===f&&(f=.2*e);void 0===Id&&(Id=new J,Id.addAttribute("position",new E([0,0,0,0,1,0],3)),ke=new Na(0,.5,1,5,1),ke.translate(0,-.5,0));this.position.copy(b);this.line=new Ca(Id,new ha({color:d}));this.line.matrixAutoUpdate=!1;this.add(this.line);
 this.cone=new ya(ke,new La({color:d}));this.cone.matrixAutoUpdate=!1;this.add(this.cone);this.setDirection(a);this.setLength(c,e,f)}function Jd(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 J;a.addAttribute("position",new E(b,3));a.addAttribute("color",new E([1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],3));b=new ha({vertexColors:2});fa.call(this,a,b)}function le(){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,
 this.cone=new ya(ke,new La({color:d}));this.cone.matrixAutoUpdate=!1;this.add(this.cone);this.setDirection(a);this.setLength(c,e,f)}function Jd(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 J;a.addAttribute("position",new E(b,3));a.addAttribute("color",new E([1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],3));b=new ha({vertexColors:2});fa.call(this,a,b)}function le(){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,m,k){e=((f-e)/l-(g-e)/(l+m)+(g-f)/m)*m;h=((g-f)/m-(h-f)/(m+k)+(h-g)/k)*m;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 Aa(a){this.points=a||[];this.closed=!1}function dd(a,b,c,d){this.v0=a;this.v1=b;this.v2=c;this.v3=d}function ed(a,b,c){this.v0=a;this.v1=b;this.v2=c}function fd(a,b){this.v1=a;this.v2=b}function Kd(a,b,c,d,e,f){Sa.call(this,a,b,c,c,d,e,f)}function We(a){console.warn("THREE.ClosedSplineCurve3 has been deprecated. Use THREE.CatmullRomCurve3 instead.");
 f,g,h,l,m,k){e=((f-e)/l-(g-e)/(l+m)+(g-f)/m)*m;h=((g-f)/m-(h-f)/(m+k)+(h-g)/k)*m;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 Aa(a){this.points=a||[];this.closed=!1}function dd(a,b,c,d){this.v0=a;this.v1=b;this.v2=c;this.v3=d}function ed(a,b,c){this.v0=a;this.v1=b;this.v2=c}function fd(a,b){this.v1=a;this.v2=b}function Kd(a,b,c,d,e,f){Sa.call(this,a,b,c,c,d,e,f)}function We(a){console.warn("THREE.ClosedSplineCurve3 has been deprecated. Use THREE.CatmullRomCurve3 instead.");
 Aa.call(this,a);this.type="catmullrom";this.closed=!0}function Xe(a){console.warn("THREE.SplineCurve3 has been deprecated. Use THREE.CatmullRomCurve3 instead.");Aa.call(this,a);this.type="catmullrom"}function me(a){console.warn("THREE.Spline has been removed. Use THREE.CatmullRomCurve3 instead.");Aa.call(this,a);this.type="catmullrom"}void 0===Number.EPSILON&&(Number.EPSILON=Math.pow(2,-52));void 0===Math.sign&&(Math.sign=function(a){return 0>a?-1:0<a?1:+a});void 0===Function.prototype.name&&Object.defineProperty(Function.prototype,
 Aa.call(this,a);this.type="catmullrom";this.closed=!0}function Xe(a){console.warn("THREE.SplineCurve3 has been deprecated. Use THREE.CatmullRomCurve3 instead.");Aa.call(this,a);this.type="catmullrom"}function me(a){console.warn("THREE.Spline has been removed. Use THREE.CatmullRomCurve3 instead.");Aa.call(this,a);this.type="catmullrom"}void 0===Number.EPSILON&&(Number.EPSILON=Math.pow(2,-52));void 0===Math.sign&&(Math.sign=function(a){return 0>a?-1:0<a?1:+a});void 0===Function.prototype.name&&Object.defineProperty(Function.prototype,
@@ -410,7 +410,7 @@ c.charAt(3),16)/255,this.b=parseInt(c.charAt(4)+c.charAt(5),16)/255,this}a&&0<a.
 0<b?1/b:1;this.r=Math.pow(a.r,c);this.g=Math.pow(a.g,c);this.b=Math.pow(a.b,c);return this},convertGammaToLinear:function(){var a=this.r,b=this.g,c=this.b;this.r=a*a;this.g=b*b;this.b=c*c;return this},convertLinearToGamma:function(){this.r=Math.sqrt(this.r);this.g=Math.sqrt(this.g);this.b=Math.sqrt(this.b);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){a=a||{h:0,s:0,
 0<b?1/b:1;this.r=Math.pow(a.r,c);this.g=Math.pow(a.g,c);this.b=Math.pow(a.b,c);return this},convertGammaToLinear:function(){var a=this.r,b=this.g,c=this.b;this.r=a*a;this.g=b*b;this.b=c*c;return this},convertLinearToGamma:function(){this.r=Math.sqrt(this.r);this.g=Math.sqrt(this.g);this.b=Math.sqrt(this.b);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){a=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){var d=this.getHSL();d.h+=a;d.s+=b;d.l+=c;this.setHSL(d.h,d.s,d.l);return this},add:function(a){this.r+=a.r;this.g+=a.g;this.b+=
 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){var d=this.getHSL();d.h+=a;d.s+=b;d.l+=c;this.setHSL(d.h,d.s,d.l);return this},add:function(a){this.r+=a.r;this.g+=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+=(a.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+=(a.b-
-this.b)*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},toJSON:function(){return this.getHex()}});bb.prototype=Object.create(ba.prototype);bb.prototype.constructor=bb;bb.prototype.isDataTexture=!0;var L={common:{diffuse:{value:new I(15658734)},opacity:{value:1},
+this.b)*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},toJSON:function(){return this.getHex()}});cb.prototype=Object.create(ba.prototype);cb.prototype.constructor=cb;cb.prototype.isDataTexture=!0;var L={common:{diffuse:{value:new I(15658734)},opacity:{value:1},
 map:{value:null},offsetRepeat:{value:new ga(0,0,1,1)},specularMap:{value:null},alphaMap:{value:null},envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1}},emissivemap:{emissiveMap:{value:null}},bumpmap:{bumpMap:{value:null},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalScale:{value:new D(1,1)}},displacementmap:{displacementMap:{value:null},
 map:{value:null},offsetRepeat:{value:new ga(0,0,1,1)},specularMap:{value:null},alphaMap:{value:null},envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1}},emissivemap:{emissiveMap:{value:null}},bumpmap:{bumpMap:{value:null},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalScale:{value:new D(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},fogNear:{value:1},fogFar:{value:2E3},fogColor:{value:new I(16777215)}},lights:{ambientLightColor:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{},shadow:{},shadowBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},
 displacementScale:{value:1},displacementBias:{value:0}},roughnessmap:{roughnessMap:{value:null}},metalnessmap:{metalnessMap:{value:null}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:2.5E-4},fogNear:{value:1},fogFar:{value:2E3},fogColor:{value:new I(16777215)}},lights:{ambientLightColor:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{},shadow:{},shadowBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},
 spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{},shadow:{},shadowBias:{},shadowRadius:{},shadowMapSize:{}}},spotShadowMap:{value:[]},spotShadowMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{},shadow:{},shadowBias:{},shadowRadius:{},shadowMapSize:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],
 spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{},shadow:{},shadowBias:{},shadowRadius:{},shadowMapSize:{}}},spotShadowMap:{value:[]},spotShadowMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{},shadow:{},shadowBias:{},shadowRadius:{},shadowMapSize:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],
@@ -446,19 +446,19 @@ a[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(b);a[2].set(this.min.x,t
 return this},equals:function(a){return a.min.equals(this.min)&&a.max.equals(this.max)}});Object.assign(Ja.prototype,{set:function(a,b){this.center.copy(a);this.radius=b;return this},setFromPoints:function(){var a=new Ua;return function(b,c){var d=this.center;void 0!==c?d.copy(c):a.setFromPoints(b).getCenter(d);for(var e=0,f=0,g=b.length;f<g;f++)e=Math.max(e,d.distanceToSquared(b[f]));this.radius=Math.sqrt(e);return this}}(),clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.center.copy(a.center);
 return this},equals:function(a){return a.min.equals(this.min)&&a.max.equals(this.max)}});Object.assign(Ja.prototype,{set:function(a,b){this.center.copy(a);this.radius=b;return this},setFromPoints:function(){var a=new Ua;return function(b,c){var d=this.center;void 0!==c?d.copy(c):a.setFromPoints(b).getCenter(d);for(var e=0,f=0,g=b.length;f<g;f++)e=Math.max(e,d.distanceToSquared(b[f]));this.radius=Math.sqrt(e);return this}}(),clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.center.copy(a.center);
 this.radius=a.radius;return this},empty:function(){return 0>=this.radius},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(this.center.dot(a.normal)-a.constant)<=this.radius},
 this.radius=a.radius;return this},empty:function(){return 0>=this.radius},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(this.center.dot(a.normal)-a.constant)<=this.radius},
 clampPoint:function(a,b){var c=this.center.distanceToSquared(a),d=b||new p;d.copy(a);c>this.radius*this.radius&&(d.sub(this.center).normalize(),d.multiplyScalar(this.radius).add(this.center));return d},getBoundingBox:function(a){a=a||new Ua;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);return this},equals:function(a){return a.center.equals(this.center)&&
 clampPoint:function(a,b){var c=this.center.distanceToSquared(a),d=b||new p;d.copy(a);c>this.radius*this.radius&&(d.sub(this.center).normalize(),d.multiplyScalar(this.radius).add(this.center));return d},getBoundingBox:function(a){a=a||new Ua;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);return this},equals:function(a){return a.center.equals(this.center)&&
-a.radius===this.radius}});Object.assign(Fa.prototype,{isMatrix3:!0,set:function(a,b,c,d,e,f,g,h,l){var m=this.elements;m[0]=a;m[1]=d;m[2]=g;m[3]=b;m[4]=e;m[5]=h;m[6]=c;m[7]=f;m[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;for(var c=0;9>c;c++)b[c]=a[c];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.radius===this.radius}});Object.assign(Ba.prototype,{isMatrix3:!0,set:function(a,b,c,d,e,f,g,h,l){var m=this.elements;m[0]=a;m[1]=d;m[2]=g;m[3]=b;m[4]=e;m[5]=h;m[6]=c;m[7]=f;m[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;for(var c=0;9>c;c++)b[c]=a[c];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},applyToBufferAttribute:function(){var a=new p;return function(b){for(var c=0,d=b.count;c<d;c++)a.x=b.getX(c),a.y=b.getY(c),a.z=b.getZ(c),a.applyMatrix3(this),b.setXYZ(c,a.x,a.y,a.z);return b}}(),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},
 a[6],a[10]);return this},applyToBufferAttribute:function(){var a=new p;return function(b){for(var c=0,d=b.count;c<d;c++)a.x=b.getX(c),a.y=b.getY(c),a.z=b.getZ(c),a.applyMatrix3(this),b.setXYZ(c,a.x,a.y,a.z);return b}}(),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){a&&a.isMatrix4&&console.error("THREE.Matrix3.getInverse no longer takes a Matrix4 argument.");var c=a.elements,d=this.elements,e=c[0],f=c[1],g=c[2],h=c[3],l=c[4],m=c[5],k=c[6],q=c[7],c=c[8],n=c*l-m*q,r=m*k-c*h,p=q*h-l*k,t=e*n+f*r+g*p;if(0===t){if(!0===b)throw Error("THREE.Matrix3.getInverse(): can't invert matrix, determinant is 0");console.warn("THREE.Matrix3.getInverse(): can't invert matrix, determinant is 0");return this.identity()}t=1/t;d[0]=n*t;d[1]=(g*q-c*f)*t;d[2]=
 getInverse:function(a,b){a&&a.isMatrix4&&console.error("THREE.Matrix3.getInverse no longer takes a Matrix4 argument.");var c=a.elements,d=this.elements,e=c[0],f=c[1],g=c[2],h=c[3],l=c[4],m=c[5],k=c[6],q=c[7],c=c[8],n=c*l-m*q,r=m*k-c*h,p=q*h-l*k,t=e*n+f*r+g*p;if(0===t){if(!0===b)throw Error("THREE.Matrix3.getInverse(): can't invert matrix, determinant is 0");console.warn("THREE.Matrix3.getInverse(): can't invert matrix, determinant is 0");return this.identity()}t=1/t;d[0]=n*t;d[1]=(g*q-c*f)*t;d[2]=
 (m*f-g*l)*t;d[3]=r*t;d[4]=(c*e-g*k)*t;d[5]=(g*h-m*e)*t;d[6]=p*t;d[7]=(f*k-q*e)*t;d[8]=(l*e-f*h)*t;return this},transpose:function(){var a,b=this.elements;a=b[1];b[1]=b[3];b[3]=a;a=b[2];b[2]=b[6];b[6]=a;a=b[5];b[5]=b[7];b[7]=a;return this},getNormalMatrix:function(a){return this.setFromMatrix4(a).getInverse(this).transpose()},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},fromArray:function(a,
 (m*f-g*l)*t;d[3]=r*t;d[4]=(c*e-g*k)*t;d[5]=(g*h-m*e)*t;d[6]=p*t;d[7]=(f*k-q*e)*t;d[8]=(l*e-f*h)*t;return this},transpose:function(){var a,b=this.elements;a=b[1];b[1]=b[3];b[3]=a;a=b[2];b[2]=b[6];b[6]=a;a=b[5];b[5]=b[7];b[7]=a;return this},getNormalMatrix:function(a){return this.setFromMatrix4(a).getInverse(this).transpose()},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},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=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}});Object.assign(na.prototype,{set:function(a,b){this.normal.copy(a);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);
 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=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}});Object.assign(na.prototype,{set:function(a,b){this.normal.copy(a);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(){var a=new p,b=new p;return function(c,d,e){d=a.subVectors(e,d).cross(b.subVectors(c,d)).normalize();this.setFromNormalAndCoplanarPoint(d,c);return this}}(),clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.normal.copy(a.normal);this.constant=a.constant;return this},normalize:function(){var a=1/this.normal.length();this.normal.multiplyScalar(a);this.constant*=a;return this},negate:function(){this.constant*=
 this.constant=-b.dot(this.normal);return this},setFromCoplanarPoints:function(){var a=new p,b=new p;return function(c,d,e){d=a.subVectors(e,d).cross(b.subVectors(c,d)).normalize();this.setFromNormalAndCoplanarPoint(d,c);return this}}(),clone:function(){return(new this.constructor).copy(this)},copy:function(a){this.normal.copy(a.normal);this.constant=a.constant;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){return this.orthoPoint(a,b).sub(a).negate()},orthoPoint:function(a,b){var c=this.distanceToPoint(a);return(b||new p).copy(this.normal).multiplyScalar(c)},intersectLine:function(){var a=new p;return function(b,c){var d=c||new p,e=b.delta(a),f=this.normal.dot(e);if(0===f){if(0===this.distanceToPoint(b.start))return d.copy(b.start)}else return f=
 -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){return this.orthoPoint(a,b).sub(a).negate()},orthoPoint:function(a,b){var c=this.distanceToPoint(a);return(b||new p).copy(this.normal).multiplyScalar(c)},intersectLine:function(){var a=new p;return function(b,c){var d=c||new p,e=b.delta(a),f=this.normal.dot(e);if(0===f){if(0===this.distanceToPoint(b.start))return d.copy(b.start)}else return f=
--(b.start.dot(this.normal)+this.constant)/f,0>f||1<f?void 0:d.copy(e).multiplyScalar(f).add(b.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)},intersectsSphere:function(a){return a.intersectsPlane(this)},coplanarPoint:function(a){return(a||new p).copy(this.normal).multiplyScalar(-this.constant)},applyMatrix4:function(){var a=new p,b=new Fa;return function(c,d){var e=
+-(b.start.dot(this.normal)+this.constant)/f,0>f||1<f?void 0:d.copy(e).multiplyScalar(f).add(b.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)},intersectsSphere:function(a){return a.intersectsPlane(this)},coplanarPoint:function(a){return(a||new p).copy(this.normal).multiplyScalar(-this.constant)},applyMatrix4:function(){var a=new p,b=new Ba;return function(c,d){var e=
 this.coplanarPoint(a).applyMatrix4(c),f=d||b.getNormalMatrix(c),f=this.normal.applyMatrix3(f).normalize();this.constant=-e.dot(f);return this}}(),translate:function(a){this.constant-=a.dot(this.normal);return this},equals:function(a){return a.normal.equals(this.normal)&&a.constant===this.constant}});Object.assign(id.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)},
 this.coplanarPoint(a).applyMatrix4(c),f=d||b.getNormalMatrix(c),f=this.normal.applyMatrix3(f).normalize();this.constant=-e.dot(f);return this}}(),translate:function(a){this.constant-=a.dot(this.normal);return this},equals:function(a){return a.normal.equals(this.normal)&&a.constant===this.constant}});Object.assign(id.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},setFromMatrix:function(a){var b=this.planes,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],m=c[7],k=c[8],q=c[9],n=c[10],r=c[11],p=c[12],t=c[13],z=c[14],c=c[15];b[0].setComponents(f-a,m-g,r-k,c-p).normalize();b[1].setComponents(f+a,m+g,r+k,c+p).normalize();b[2].setComponents(f+d,m+h,r+q,c+t).normalize();b[3].setComponents(f-d,m-h,r-q,c-t).normalize();b[4].setComponents(f-e,m-l,r-n,c-z).normalize();
 copy:function(a){for(var b=this.planes,c=0;6>c;c++)b[c].copy(a.planes[c]);return this},setFromMatrix:function(a){var b=this.planes,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],m=c[7],k=c[8],q=c[9],n=c[10],r=c[11],p=c[12],t=c[13],z=c[14],c=c[15];b[0].setComponents(f-a,m-g,r-k,c-p).normalize();b[1].setComponents(f+a,m+g,r+k,c+p).normalize();b[2].setComponents(f+d,m+h,r+q,c+t).normalize();b[3].setComponents(f-d,m-h,r-q,c-t).normalize();b[4].setComponents(f-e,m-l,r-n,c-z).normalize();
 b[5].setComponents(f+e,m+l,r+n,c+z).normalize();return this},intersectsObject:function(){var a=new Ja;return function(b){var c=b.geometry;null===c.boundingSphere&&c.computeBoundingSphere();a.copy(c.boundingSphere).applyMatrix4(b.matrixWorld);return this.intersectsSphere(a)}}(),intersectsSprite:function(){var a=new Ja;return function(b){a.center.set(0,0,0);a.radius=.7071067811865476;a.applyMatrix4(b.matrixWorld);return this.intersectsSphere(a)}}(),intersectsSphere:function(a){var b=this.planes,c=a.center;
 b[5].setComponents(f+e,m+l,r+n,c+z).normalize();return this},intersectsObject:function(){var a=new Ja;return function(b){var c=b.geometry;null===c.boundingSphere&&c.computeBoundingSphere();a.copy(c.boundingSphere).applyMatrix4(b.matrixWorld);return this.intersectsSphere(a)}}(),intersectsSprite:function(){var a=new Ja;return function(b){a.center.set(0,0,0);a.radius=.7071067811865476;a.applyMatrix4(b.matrixWorld);return this.intersectsSphere(a)}}(),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(){var a=new p,b=new p;return function(c){for(var d=this.planes,e=0;6>e;e++){var f=d[e];a.x=0<f.normal.x?c.min.x:c.max.x;b.x=0<f.normal.x?c.max.x:c.min.x;a.y=0<f.normal.y?c.min.y:c.max.y;b.y=0<f.normal.y?c.max.y:c.min.y;a.z=0<f.normal.z?c.min.z:c.max.z;b.z=0<f.normal.z?c.max.z:c.min.z;var g=f.distanceToPoint(a),f=f.distanceToPoint(b);if(0>g&&0>f)return!1}return!0}}(),containsPoint:function(a){for(var b=
 a=-a.radius;for(var d=0;6>d;d++)if(b[d].distanceToPoint(c)<a)return!1;return!0},intersectsBox:function(){var a=new p,b=new p;return function(c){for(var d=this.planes,e=0;6>e;e++){var f=d[e];a.x=0<f.normal.x?c.min.x:c.max.x;b.x=0<f.normal.x?c.max.x:c.min.x;a.y=0<f.normal.y?c.min.y:c.max.y;b.y=0<f.normal.y?c.max.y:c.min.y;a.z=0<f.normal.z?c.min.z:c.max.z;b.z=0<f.normal.z?c.max.z:c.min.z;var g=f.distanceToPoint(a),f=f.distanceToPoint(b);if(0>g&&0>f)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}});Object.assign(db.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){return(b||new p).copy(this.direction).multiplyScalar(a).add(this.origin)},lookAt:function(a){this.direction.copy(a).sub(this.origin).normalize();return this},recast:function(){var a=
+this.planes,c=0;6>c;c++)if(0>b[c].distanceToPoint(a))return!1;return!0}});Object.assign(eb.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){return(b||new p).copy(this.direction).multiplyScalar(a).add(this.origin)},lookAt:function(a){this.direction.copy(a).sub(this.origin).normalize();return this},recast:function(){var a=
 new p;return function(b){this.origin.copy(this.at(b,a));return this}}(),closestPointToPoint:function(a,b){var c=b||new p;c.subVectors(a,this.origin);var d=c.dot(this.direction);return 0>d?c.copy(this.origin):c.copy(this.direction).multiplyScalar(d).add(this.origin)},distanceToPoint:function(a){return Math.sqrt(this.distanceSqToPoint(a))},distanceSqToPoint:function(){var a=new p;return function(b){var c=a.subVectors(b,this.origin).dot(this.direction);if(0>c)return this.origin.distanceToSquared(b);
 new p;return function(b){this.origin.copy(this.at(b,a));return this}}(),closestPointToPoint:function(a,b){var c=b||new p;c.subVectors(a,this.origin);var d=c.dot(this.direction);return 0>d?c.copy(this.origin):c.copy(this.direction).multiplyScalar(d).add(this.origin)},distanceToPoint:function(a){return Math.sqrt(this.distanceSqToPoint(a))},distanceSqToPoint:function(){var a=new p;return function(b){var c=a.subVectors(b,this.origin).dot(this.direction);if(0>c)return this.origin.distanceToSquared(b);
 a.copy(this.direction).multiplyScalar(c).add(this.origin);return a.distanceToSquared(b)}}(),distanceSqToSegment:function(){var a=new p,b=new p,c=new p;return function(d,e,f,g){a.copy(d).add(e).multiplyScalar(.5);b.copy(e).sub(d).normalize();c.copy(this.origin).sub(a);var h=.5*d.distanceTo(e),l=-this.direction.dot(b),m=c.dot(this.direction),k=-c.dot(b),q=c.lengthSq(),n=Math.abs(1-l*l),r;0<n?(d=l*k-m,e=l*m-k,r=h*n,0<=d?e>=-r?e<=r?(h=1/n,d*=h,e*=h,l=d*(d+l*e+2*m)+e*(l*d+e+2*k)+q):(e=h,d=Math.max(0,-(l*
 a.copy(this.direction).multiplyScalar(c).add(this.origin);return a.distanceToSquared(b)}}(),distanceSqToSegment:function(){var a=new p,b=new p,c=new p;return function(d,e,f,g){a.copy(d).add(e).multiplyScalar(.5);b.copy(e).sub(d).normalize();c.copy(this.origin).sub(a);var h=.5*d.distanceTo(e),l=-this.direction.dot(b),m=c.dot(this.direction),k=-c.dot(b),q=c.lengthSq(),n=Math.abs(1-l*l),r;0<n?(d=l*k-m,e=l*m-k,r=h*n,0<=d?e>=-r?e<=r?(h=1/n,d*=h,e*=h,l=d*(d+l*e+2*m)+e*(l*d+e+2*k)+q):(e=h,d=Math.max(0,-(l*
 e+m)),l=-d*d+e*(e+2*k)+q):(e=-h,d=Math.max(0,-(l*e+m)),l=-d*d+e*(e+2*k)+q):e<=-r?(d=Math.max(0,-(-l*h+m)),e=0<d?-h:Math.min(Math.max(-h,-k),h),l=-d*d+e*(e+2*k)+q):e<=r?(d=0,e=Math.min(Math.max(-h,-k),h),l=e*(e+2*k)+q):(d=Math.max(0,-(l*h+m)),e=0<d?h:Math.min(Math.max(-h,-k),h),l=-d*d+e*(e+2*k)+q)):(e=0<l?-h:h,d=Math.max(0,-(l*e+m)),l=-d*d+e*(e+2*k)+q);f&&f.copy(this.direction).multiplyScalar(d).add(this.origin);g&&g.copy(b).multiplyScalar(e).add(a);return l}}(),intersectSphere:function(){var a=new p;
 e+m)),l=-d*d+e*(e+2*k)+q):(e=-h,d=Math.max(0,-(l*e+m)),l=-d*d+e*(e+2*k)+q):e<=-r?(d=Math.max(0,-(-l*h+m)),e=0<d?-h:Math.min(Math.max(-h,-k),h),l=-d*d+e*(e+2*k)+q):e<=r?(d=0,e=Math.min(Math.max(-h,-k),h),l=e*(e+2*k)+q):(d=Math.max(0,-(l*h+m)),e=0<d?h:Math.min(Math.max(-h,-k),h),l=-d*d+e*(e+2*k)+q)):(e=0<l?-h:h,d=Math.max(0,-(l*e+m)),l=-d*d+e*(e+2*k)+q);f&&f.copy(this.direction).multiplyScalar(d).add(this.origin);g&&g.copy(b).multiplyScalar(e).add(a);return l}}(),intersectSphere:function(){var a=new p;
@@ -498,12 +498,12 @@ e;d++)this.array[a+d]=b.array[c+d];return this},copyArray:function(a){this.array
 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 D);b[c++]=f.x;b[c++]=f.y}return this},copyVector3sArray: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.copyVector3sArray(): vector is undefined",d),f=new p);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=
 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 D);b[c++]=f.x;b[c++]=f.y}return this},copyVector3sArray: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.copyVector3sArray(): vector is undefined",d),f=new p);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 ga);b[c++]=f.x;b[c++]=f.y;b[c++]=f.z;b[c++]=f.w}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*this.itemSize+1]},setY:function(a,b){this.array[a*this.itemSize+1]=b;return this},getZ:function(a){return this.array[a*
 a[d];void 0===f&&(console.warn("THREE.BufferAttribute.copyVector4sArray(): vector is undefined",d),f=new ga);b[c++]=f.x;b[c++]=f.y;b[c++]=f.z;b[c++]=f.w}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*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]=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+
 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]=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)}});qc.prototype=Object.create(V.prototype);qc.prototype.constructor=qc;rc.prototype=Object.create(V.prototype);rc.prototype.constructor=rc;sc.prototype=Object.create(V.prototype);sc.prototype.constructor=sc;tc.prototype=Object.create(V.prototype);tc.prototype.constructor=tc;eb.prototype=Object.create(V.prototype);eb.prototype.constructor=eb;
-uc.prototype=Object.create(V.prototype);uc.prototype.constructor=uc;fb.prototype=Object.create(V.prototype);fb.prototype.constructor=fb;E.prototype=Object.create(V.prototype);E.prototype.constructor=E;vc.prototype=Object.create(V.prototype);vc.prototype.constructor=vc;Object.assign(De.prototype,{computeGroups:function(a){var b,c=[],d=void 0;a=a.faces;for(var e=0;e<a.length;e++){var f=a[e];f.materialIndex!==d&&(d=f.materialIndex,void 0!==b&&(b.count=3*e-b.start,c.push(b)),b={start:3*e,materialIndex:d})}void 0!==
+3]=e;return this},onUpload:function(a){this.onUploadCallback=a;return this},clone:function(){return(new this.constructor(this.array,this.itemSize)).copy(this)}});qc.prototype=Object.create(V.prototype);qc.prototype.constructor=qc;rc.prototype=Object.create(V.prototype);rc.prototype.constructor=rc;sc.prototype=Object.create(V.prototype);sc.prototype.constructor=sc;tc.prototype=Object.create(V.prototype);tc.prototype.constructor=tc;fb.prototype=Object.create(V.prototype);fb.prototype.constructor=fb;
+uc.prototype=Object.create(V.prototype);uc.prototype.constructor=uc;gb.prototype=Object.create(V.prototype);gb.prototype.constructor=gb;E.prototype=Object.create(V.prototype);E.prototype.constructor=E;vc.prototype=Object.create(V.prototype);vc.prototype.constructor=vc;Object.assign(De.prototype,{computeGroups:function(a){var b,c=[],d=void 0;a=a.faces;for(var e=0;e<a.length;e++){var f=a[e];f.materialIndex!==d&&(d=f.materialIndex,void 0!==b&&(b.count=3*e-b.start,c.push(b)),b={start:3*e,materialIndex:d})}void 0!==
 b&&(b.count=3*e-b.start,c.push(b));this.groups=c},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,l;if(0<h){l=[];for(var m=0;m<h;m++)l[m]=[];this.morphTargets.position=l}var k=a.morphNormals,q=k.length,n;if(0<q){n=[];for(m=0;m<q;m++)n[m]=[];this.morphTargets.normal=n}for(var r=a.skinIndices,p=a.skinWeights,t=r.length===c.length,z=p.length===c.length,m=0;m<b.length;m++){var x=b[m];this.vertices.push(c[x.a],
 b&&(b.count=3*e-b.start,c.push(b));this.groups=c},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,l;if(0<h){l=[];for(var m=0;m<h;m++)l[m]=[];this.morphTargets.position=l}var k=a.morphNormals,q=k.length,n;if(0<q){n=[];for(m=0;m<q;m++)n[m]=[];this.morphTargets.normal=n}for(var r=a.skinIndices,p=a.skinWeights,t=r.length===c.length,z=p.length===c.length,m=0;m<b.length;m++){var x=b[m];this.vertices.push(c[x.a],
 c[x.b],c[x.c]);var w=x.vertexNormals;3===w.length?this.normals.push(w[0],w[1],w[2]):(w=x.normal,this.normals.push(w,w,w));w=x.vertexColors;3===w.length?this.colors.push(w[0],w[1],w[2]):(w=x.color,this.colors.push(w,w,w));!0===e&&(w=d[0][m],void 0!==w?this.uvs.push(w[0],w[1],w[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv ",m),this.uvs.push(new D,new D,new D)));!0===f&&(w=d[1][m],void 0!==w?this.uvs2.push(w[0],w[1],w[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv2 ",
 c[x.b],c[x.c]);var w=x.vertexNormals;3===w.length?this.normals.push(w[0],w[1],w[2]):(w=x.normal,this.normals.push(w,w,w));w=x.vertexColors;3===w.length?this.colors.push(w[0],w[1],w[2]):(w=x.color,this.colors.push(w,w,w));!0===e&&(w=d[0][m],void 0!==w?this.uvs.push(w[0],w[1],w[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv ",m),this.uvs.push(new D,new D,new D)));!0===f&&(w=d[1][m],void 0!==w?this.uvs2.push(w[0],w[1],w[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv2 ",
 m),this.uvs2.push(new D,new D,new D)));for(w=0;w<h;w++){var M=g[w].vertices;l[w].push(M[x.a],M[x.b],M[x.c])}for(w=0;w<q;w++)M=k[w].vertexNormals[m],n[w].push(M.a,M.b,M.c);t&&this.skinIndices.push(r[x.a],r[x.b],r[x.c]);z&&this.skinWeights.push(p[x.a],p[x.b],p[x.c])}this.computeGroups(a);this.verticesNeedUpdate=a.verticesNeedUpdate;this.normalsNeedUpdate=a.normalsNeedUpdate;this.colorsNeedUpdate=a.colorsNeedUpdate;this.uvsNeedUpdate=a.uvsNeedUpdate;this.groupsNeedUpdate=a.groupsNeedUpdate;return this}});
 m),this.uvs2.push(new D,new D,new D)));for(w=0;w<h;w++){var M=g[w].vertices;l[w].push(M[x.a],M[x.b],M[x.c])}for(w=0;w<q;w++)M=k[w].vertexNormals[m],n[w].push(M.a,M.b,M.c);t&&this.skinIndices.push(r[x.a],r[x.b],r[x.c]);z&&this.skinWeights.push(p[x.a],p[x.b],p[x.c])}this.computeGroups(a);this.verticesNeedUpdate=a.verticesNeedUpdate;this.normalsNeedUpdate=a.normalsNeedUpdate;this.colorsNeedUpdate=a.colorsNeedUpdate;this.uvsNeedUpdate=a.uvsNeedUpdate;this.groupsNeedUpdate=a.groupsNeedUpdate;return this}});
-var Qd=0;Object.assign(S.prototype,xa.prototype,{isGeometry:!0,applyMatrix:function(a){for(var b=(new Fa).getNormalMatrix(a),c=0,d=this.vertices.length;c<d;c++)this.vertices[c].applyMatrix4(a);c=0;for(d=this.faces.length;c<d;c++){a=this.faces[c];a.normal.applyMatrix3(b).normalize();for(var e=0,f=a.vertexNormals.length;e<f;e++)a.vertexNormals[e].applyMatrix3(b).normalize()}null!==this.boundingBox&&this.computeBoundingBox();null!==this.boundingSphere&&this.computeBoundingSphere();this.normalsNeedUpdate=
+var Qd=0;Object.assign(S.prototype,xa.prototype,{isGeometry:!0,applyMatrix:function(a){for(var b=(new Ba).getNormalMatrix(a),c=0,d=this.vertices.length;c<d;c++)this.vertices[c].applyMatrix4(a);c=0;for(d=this.faces.length;c<d;c++){a=this.faces[c];a.normal.applyMatrix3(b).normalize();for(var e=0,f=a.vertexNormals.length;e<f;e++)a.vertexNormals[e].applyMatrix3(b).normalize()}null!==this.boundingBox&&this.computeBoundingBox();null!==this.boundingSphere&&this.computeBoundingSphere();this.normalsNeedUpdate=
 this.verticesNeedUpdate=!0;return this},rotateX:function(){var a=new R;return function(b){a.makeRotationX(b);this.applyMatrix(a);return this}}(),rotateY:function(){var a=new R;return function(b){a.makeRotationY(b);this.applyMatrix(a);return this}}(),rotateZ:function(){var a=new R;return function(b){a.makeRotationZ(b);this.applyMatrix(a);return this}}(),translate:function(){var a=new R;return function(b,c,d){a.makeTranslation(b,c,d);this.applyMatrix(a);return this}}(),scale:function(){var a=new R;
 this.verticesNeedUpdate=!0;return this},rotateX:function(){var a=new R;return function(b){a.makeRotationX(b);this.applyMatrix(a);return this}}(),rotateY:function(){var a=new R;return function(b){a.makeRotationY(b);this.applyMatrix(a);return this}}(),rotateZ:function(){var a=new R;return function(b){a.makeRotationZ(b);this.applyMatrix(a);return this}}(),translate:function(){var a=new R;return function(b,c,d){a.makeTranslation(b,c,d);this.applyMatrix(a);return this}}(),scale:function(){var a=new R;
 return function(b,c,d){a.makeScale(b,c,d);this.applyMatrix(a);return this}}(),lookAt:function(){var a=new B;return function(b){a.lookAt(b);a.updateMatrix();this.applyMatrix(a.matrix)}}(),fromBufferGeometry:function(a){function b(a,b,d,e){var f=void 0!==g?[k[a].clone(),k[b].clone(),k[d].clone()]:[],r=void 0!==h?[c.colors[a].clone(),c.colors[b].clone(),c.colors[d].clone()]:[];e=new ia(a,b,d,f,r,e);c.faces.push(e);void 0!==l&&c.faceVertexUvs[0].push([q[a].clone(),q[b].clone(),q[d].clone()]);void 0!==
 return function(b,c,d){a.makeScale(b,c,d);this.applyMatrix(a);return this}}(),lookAt:function(){var a=new B;return function(b){a.lookAt(b);a.updateMatrix();this.applyMatrix(a.matrix)}}(),fromBufferGeometry:function(a){function b(a,b,d,e){var f=void 0!==g?[k[a].clone(),k[b].clone(),k[d].clone()]:[],r=void 0!==h?[c.colors[a].clone(),c.colors[b].clone(),c.colors[d].clone()]:[];e=new ia(a,b,d,f,r,e);c.faces.push(e);void 0!==l&&c.faceVertexUvs[0].push([q[a].clone(),q[b].clone(),q[d].clone()]);void 0!==
 m&&c.faceVertexUvs[1].push([n[a].clone(),n[b].clone(),n[d].clone()])}var c=this,d=null!==a.index?a.index.array:void 0,e=a.attributes,f=e.position.array,g=void 0!==e.normal?e.normal.array:void 0,h=void 0!==e.color?e.color.array:void 0,l=void 0!==e.uv?e.uv.array:void 0,m=void 0!==e.uv2?e.uv2.array:void 0;void 0!==m&&(this.faceVertexUvs[1]=[]);for(var k=[],q=[],n=[],r=e=0;e<f.length;e+=3,r+=2)c.vertices.push(new p(f[e],f[e+1],f[e+2])),void 0!==g&&k.push(new p(g[e],g[e+1],g[e+2])),void 0!==h&&c.colors.push(new I(h[e],
 m&&c.faceVertexUvs[1].push([n[a].clone(),n[b].clone(),n[d].clone()])}var c=this,d=null!==a.index?a.index.array:void 0,e=a.attributes,f=e.position.array,g=void 0!==e.normal?e.normal.array:void 0,h=void 0!==e.color?e.color.array:void 0,l=void 0!==e.uv?e.uv.array:void 0,m=void 0!==e.uv2?e.uv2.array:void 0;void 0!==m&&(this.faceVertexUvs[1]=[]);for(var k=[],q=[],n=[],r=e=0;e<f.length;e+=3,r+=2)c.vertices.push(new p(f[e],f[e+1],f[e+2])),void 0!==g&&k.push(new p(g[e],g[e+1],g[e+2])),void 0!==h&&c.colors.push(new I(h[e],
@@ -515,7 +515,7 @@ b;a++){c=this.faces[a];var d=c.vertexNormals;3===d.length?(d[0].copy(c.normal),d
 b=e.vertexNormals.length;a<b;a++)e.__originalVertexNormals[a]?e.__originalVertexNormals[a].copy(e.vertexNormals[a]):e.__originalVertexNormals[a]=e.vertexNormals[a].clone();var f=new S;f.faces=this.faces;a=0;for(b=this.morphTargets.length;a<b;a++){if(!this.morphNormals[a]){this.morphNormals[a]={};this.morphNormals[a].faceNormals=[];this.morphNormals[a].vertexNormals=[];e=this.morphNormals[a].faceNormals;var g=this.morphNormals[a].vertexNormals,h,l;c=0;for(d=this.faces.length;c<d;c++)h=new p,l={a:new p,
 b=e.vertexNormals.length;a<b;a++)e.__originalVertexNormals[a]?e.__originalVertexNormals[a].copy(e.vertexNormals[a]):e.__originalVertexNormals[a]=e.vertexNormals[a].clone();var f=new S;f.faces=this.faces;a=0;for(b=this.morphTargets.length;a<b;a++){if(!this.morphNormals[a]){this.morphNormals[a]={};this.morphNormals[a].faceNormals=[];this.morphNormals[a].vertexNormals=[];e=this.morphNormals[a].faceNormals;var g=this.morphNormals[a].vertexNormals,h,l;c=0;for(d=this.faces.length;c<d;c++)h=new p,l={a:new p,
 b:new p,c:new p},e.push(h),g.push(l)}g=this.morphNormals[a];f.vertices=this.morphTargets[a].vertices;f.computeFaceNormals();f.computeVertexNormals();c=0;for(d=this.faces.length;c<d;c++)e=this.faces[c],h=g.faceNormals[c],l=g.vertexNormals[c],h.copy(e.normal),l.a.copy(e.vertexNormals[0]),l.b.copy(e.vertexNormals[1]),l.c.copy(e.vertexNormals[2])}c=0;for(d=this.faces.length;c<d;c++)e=this.faces[c],e.normal=e.__originalFaceNormal,e.vertexNormals=e.__originalVertexNormals},computeLineDistances:function(){for(var a=
 b:new p,c:new p},e.push(h),g.push(l)}g=this.morphNormals[a];f.vertices=this.morphTargets[a].vertices;f.computeFaceNormals();f.computeVertexNormals();c=0;for(d=this.faces.length;c<d;c++)e=this.faces[c],h=g.faceNormals[c],l=g.vertexNormals[c],h.copy(e.normal),l.a.copy(e.vertexNormals[0]),l.b.copy(e.vertexNormals[1]),l.c.copy(e.vertexNormals[2])}c=0;for(d=this.faces.length;c<d;c++)e=this.faces[c],e.normal=e.__originalFaceNormal,e.vertexNormals=e.__originalVertexNormals},computeLineDistances:function(){for(var a=
 0,b=this.vertices,c=0,d=b.length;c<d;c++)0<c&&(a+=b[c].distanceTo(b[c-1])),this.lineDistances[c]=a},computeBoundingBox:function(){null===this.boundingBox&&(this.boundingBox=new Ua);this.boundingBox.setFromPoints(this.vertices)},computeBoundingSphere:function(){null===this.boundingSphere&&(this.boundingSphere=new Ja);this.boundingSphere.setFromPoints(this.vertices)},merge:function(a,b,c){if(!1===(a&&a.isGeometry))console.error("THREE.Geometry.merge(): geometry not an instance of THREE.Geometry.",a);
 0,b=this.vertices,c=0,d=b.length;c<d;c++)0<c&&(a+=b[c].distanceTo(b[c-1])),this.lineDistances[c]=a},computeBoundingBox:function(){null===this.boundingBox&&(this.boundingBox=new Ua);this.boundingBox.setFromPoints(this.vertices)},computeBoundingSphere:function(){null===this.boundingSphere&&(this.boundingSphere=new Ja);this.boundingSphere.setFromPoints(this.vertices)},merge:function(a,b,c){if(!1===(a&&a.isGeometry))console.error("THREE.Geometry.merge(): geometry not an instance of THREE.Geometry.",a);
-else{var d,e=this.vertices.length,f=this.vertices,g=a.vertices,h=this.faces,l=a.faces,m=this.faceVertexUvs[0],k=a.faceVertexUvs[0],q=this.colors,n=a.colors;void 0===c&&(c=0);void 0!==b&&(d=(new Fa).getNormalMatrix(b));a=0;for(var r=g.length;a<r;a++){var p=g[a].clone();void 0!==b&&p.applyMatrix4(b);f.push(p)}a=0;for(r=n.length;a<r;a++)q.push(n[a].clone());a=0;for(r=l.length;a<r;a++){var g=l[a],t=g.vertexNormals,n=g.vertexColors,q=new ia(g.a+e,g.b+e,g.c+e);q.normal.copy(g.normal);void 0!==d&&q.normal.applyMatrix3(d).normalize();
+else{var d,e=this.vertices.length,f=this.vertices,g=a.vertices,h=this.faces,l=a.faces,m=this.faceVertexUvs[0],k=a.faceVertexUvs[0],q=this.colors,n=a.colors;void 0===c&&(c=0);void 0!==b&&(d=(new Ba).getNormalMatrix(b));a=0;for(var r=g.length;a<r;a++){var p=g[a].clone();void 0!==b&&p.applyMatrix4(b);f.push(p)}a=0;for(r=n.length;a<r;a++)q.push(n[a].clone());a=0;for(r=l.length;a<r;a++){var g=l[a],t=g.vertexNormals,n=g.vertexColors,q=new ia(g.a+e,g.b+e,g.c+e);q.normal.copy(g.normal);void 0!==d&&q.normal.applyMatrix3(d).normalize();
 b=0;for(f=t.length;b<f;b++)p=t[b].clone(),void 0!==d&&p.applyMatrix3(d).normalize(),q.vertexNormals.push(p);q.color.copy(g.color);b=0;for(f=n.length;b<f;b++)p=n[b],q.vertexColors.push(p.clone());q.materialIndex=g.materialIndex+c;h.push(q)}a=0;for(r=k.length;a<r;a++)if(c=k[a],d=[],void 0!==c){b=0;for(f=c.length;b<f;b++)d.push(c[b].clone());m.push(d)}}},mergeMesh:function(a){!1===(a&&a.isMesh)?console.error("THREE.Geometry.mergeMesh(): mesh not an instance of THREE.Mesh.",a):(a.matrixAutoUpdate&&a.updateMatrix(),
 b=0;for(f=t.length;b<f;b++)p=t[b].clone(),void 0!==d&&p.applyMatrix3(d).normalize(),q.vertexNormals.push(p);q.color.copy(g.color);b=0;for(f=n.length;b<f;b++)p=n[b],q.vertexColors.push(p.clone());q.materialIndex=g.materialIndex+c;h.push(q)}a=0;for(r=k.length;a<r;a++)if(c=k[a],d=[],void 0!==c){b=0;for(f=c.length;b<f;b++)d.push(c[b].clone());m.push(d)}}},mergeMesh:function(a){!1===(a&&a.isMesh)?console.error("THREE.Geometry.mergeMesh(): mesh not an instance of THREE.Mesh.",a):(a.matrixAutoUpdate&&a.updateMatrix(),
 this.merge(a.geometry,a.matrix))},mergeVertices:function(){var a={},b=[],c=[],d,e=Math.pow(10,4),f,g;f=0;for(g=this.vertices.length;f<g;f++)d=this.vertices[f],d=Math.round(d.x*e)+"_"+Math.round(d.y*e)+"_"+Math.round(d.z*e),void 0===a[d]?(a[d]=f,b.push(this.vertices[f]),c[f]=b.length-1):c[f]=c[a[d]];a=[];f=0;for(g=this.faces.length;f<g;f++)for(e=this.faces[f],e.a=c[e.a],e.b=c[e.b],e.c=c[e.c],e=[e.a,e.b,e.c],d=0;3>d;d++)if(e[d]===e[(d+1)%3]){a.push(f);break}for(f=a.length-1;0<=f;f--)for(e=a[f],this.faces.splice(e,
 this.merge(a.geometry,a.matrix))},mergeVertices:function(){var a={},b=[],c=[],d,e=Math.pow(10,4),f,g;f=0;for(g=this.vertices.length;f<g;f++)d=this.vertices[f],d=Math.round(d.x*e)+"_"+Math.round(d.y*e)+"_"+Math.round(d.z*e),void 0===a[d]?(a[d]=f,b.push(this.vertices[f]),c[f]=b.length-1):c[f]=c[a[d]];a=[];f=0;for(g=this.faces.length;f<g;f++)for(e=this.faces[f],e.a=c[e.a],e.b=c[e.b],e.c=c[e.c],e=[e.a,e.b,e.c],d=0;3>d;d++)if(e[d]===e[(d+1)%3]){a.push(f);break}for(f=a.length-1;0<=f;f--)for(e=a[f],this.faces.splice(e,
 1),c=0,g=this.faceVertexUvs.length;c<g;c++)this.faceVertexUvs[c].splice(e,1);f=this.vertices.length-b.length;this.vertices=b;return f},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-b.materialIndex});var d=this.faceVertexUvs[0],e=this.faceVertexUvs[1],f,g;d&&d.length===b&&(f=[]);e&&e.length===b&&(g=[]);for(c=0;c<b;c++){var h=a[c]._id;f&&f.push(d[h]);g&&g.push(e[h])}f&&(this.faceVertexUvs[0]=f);g&&(this.faceVertexUvs[1]=
 1),c=0,g=this.faceVertexUvs.length;c<g;c++)this.faceVertexUvs[c].splice(e,1);f=this.vertices.length-b.length;this.vertices=b;return f},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-b.materialIndex});var d=this.faceVertexUvs[0],e=this.faceVertexUvs[1],f,g;d&&d.length===b&&(f=[]);e&&e.length===b&&(g=[]);for(c=0;c<b;c++){var h=a[c]._id;f&&f.push(d[h]);g&&g.push(e[h])}f&&(this.faceVertexUvs[0]=f);g&&(this.faceVertexUvs[1]=
@@ -526,9 +526,9 @@ h;return e},clone:function(){return(new S).copy(this)},copy:function(a){var b,c,
 b=0;for(c=a.faceVertexUvs.length;b<c;b++){var h=a.faceVertexUvs[b];void 0===this.faceVertexUvs[b]&&(this.faceVertexUvs[b]=[]);d=0;for(e=h.length;d<e;d++){var l=h[d],m=[];f=0;for(g=l.length;f<g;f++)m.push(l[f].clone());this.faceVertexUvs[b].push(m)}}f=a.morphTargets;b=0;for(c=f.length;b<c;b++){g={};g.name=f[b].name;if(void 0!==f[b].vertices)for(g.vertices=[],d=0,e=f[b].vertices.length;d<e;d++)g.vertices.push(f[b].vertices[d].clone());if(void 0!==f[b].normals)for(g.normals=[],d=0,e=f[b].normals.length;d<
 b=0;for(c=a.faceVertexUvs.length;b<c;b++){var h=a.faceVertexUvs[b];void 0===this.faceVertexUvs[b]&&(this.faceVertexUvs[b]=[]);d=0;for(e=h.length;d<e;d++){var l=h[d],m=[];f=0;for(g=l.length;f<g;f++)m.push(l[f].clone());this.faceVertexUvs[b].push(m)}}f=a.morphTargets;b=0;for(c=f.length;b<c;b++){g={};g.name=f[b].name;if(void 0!==f[b].vertices)for(g.vertices=[],d=0,e=f[b].vertices.length;d<e;d++)g.vertices.push(f[b].vertices[d].clone());if(void 0!==f[b].normals)for(g.normals=[],d=0,e=f[b].normals.length;d<
 e;d++)g.normals.push(f[b].normals[d].clone());this.morphTargets.push(g)}f=a.morphNormals;b=0;for(c=f.length;b<c;b++){g={};if(void 0!==f[b].vertexNormals)for(g.vertexNormals=[],d=0,e=f[b].vertexNormals.length;d<e;d++)h=f[b].vertexNormals[d],l={},l.a=h.a.clone(),l.b=h.b.clone(),l.c=h.c.clone(),g.vertexNormals.push(l);if(void 0!==f[b].faceNormals)for(g.faceNormals=[],d=0,e=f[b].faceNormals.length;d<e;d++)g.faceNormals.push(f[b].faceNormals[d].clone());this.morphNormals.push(g)}d=a.skinWeights;b=0;for(c=
 e;d++)g.normals.push(f[b].normals[d].clone());this.morphTargets.push(g)}f=a.morphNormals;b=0;for(c=f.length;b<c;b++){g={};if(void 0!==f[b].vertexNormals)for(g.vertexNormals=[],d=0,e=f[b].vertexNormals.length;d<e;d++)h=f[b].vertexNormals[d],l={},l.a=h.a.clone(),l.b=h.b.clone(),l.c=h.c.clone(),g.vertexNormals.push(l);if(void 0!==f[b].faceNormals)for(g.faceNormals=[],d=0,e=f[b].faceNormals.length;d<e;d++)g.faceNormals.push(f[b].faceNormals[d].clone());this.morphNormals.push(g)}d=a.skinWeights;b=0;for(c=
 d.length;b<c;b++)this.skinWeights.push(d[b].clone());d=a.skinIndices;b=0;for(c=d.length;b<c;b++)this.skinIndices.push(d[b].clone());d=a.lineDistances;b=0;for(c=d.length;b<c;b++)this.lineDistances.push(d[b]);b=a.boundingBox;null!==b&&(this.boundingBox=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=
 d.length;b<c;b++)this.skinWeights.push(d[b].clone());d=a.skinIndices;b=0;for(c=d.length;b<c;b++)this.skinIndices.push(d[b].clone());d=a.lineDistances;b=0;for(c=d.length;b<c;b++)this.lineDistances.push(d[b]);b=a.boundingBox;null!==b&&(this.boundingBox=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"})}});J.MaxIndex=65535;Object.assign(J.prototype,xa.prototype,{isBufferGeometry:!0,getIndex:function(){return this.index},setIndex:function(a){Array.isArray(a)?this.index=new (65535<Pd(a)?fb:eb)(a,1):this.index=a},addAttribute:function(a,b,c){if(!1===(b&&b.isBufferAttribute)&&!1===(b&&b.isInterleavedBufferAttribute))console.warn("THREE.BufferGeometry: .addAttribute() now expects ( name, attribute )."),
+a.colorsNeedUpdate;this.lineDistancesNeedUpdate=a.lineDistancesNeedUpdate;this.groupsNeedUpdate=a.groupsNeedUpdate;return this},dispose:function(){this.dispatchEvent({type:"dispose"})}});J.MaxIndex=65535;Object.assign(J.prototype,xa.prototype,{isBufferGeometry:!0,getIndex:function(){return this.index},setIndex:function(a){Array.isArray(a)?this.index=new (65535<Pd(a)?gb:fb)(a,1):this.index=a},addAttribute:function(a,b,c){if(!1===(b&&b.isBufferAttribute)&&!1===(b&&b.isInterleavedBufferAttribute))console.warn("THREE.BufferGeometry: .addAttribute() now expects ( name, attribute )."),
 this.addAttribute(a,new V(b,c));else if("index"===a)console.warn("THREE.BufferGeometry.addAttribute: Use .setIndex() for index attribute."),this.setIndex(b);else return this.attributes[a]=b,this},getAttribute:function(a){return this.attributes[a]},removeAttribute:function(a){delete this.attributes[a];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=
 this.addAttribute(a,new V(b,c));else if("index"===a)console.warn("THREE.BufferGeometry.addAttribute: Use .setIndex() for index attribute."),this.setIndex(b);else return this.attributes[a]=b,this},getAttribute:function(a){return this.attributes[a]},removeAttribute:function(a){delete this.attributes[a];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},applyMatrix:function(a){var b=this.attributes.position;void 0!==b&&(a.applyToBufferAttribute(b),b.needsUpdate=!0);b=this.attributes.normal;void 0!==b&&((new Fa).getNormalMatrix(a).applyToBufferAttribute(b),b.needsUpdate=!0);null!==this.boundingBox&&this.computeBoundingBox();null!==this.boundingSphere&&this.computeBoundingSphere();return this},rotateX:function(){var a=new R;return function(b){a.makeRotationX(b);this.applyMatrix(a);return this}}(),rotateY:function(){var a=new R;return function(b){a.makeRotationY(b);
+b},applyMatrix:function(a){var b=this.attributes.position;void 0!==b&&(a.applyToBufferAttribute(b),b.needsUpdate=!0);b=this.attributes.normal;void 0!==b&&((new Ba).getNormalMatrix(a).applyToBufferAttribute(b),b.needsUpdate=!0);null!==this.boundingBox&&this.computeBoundingBox();null!==this.boundingSphere&&this.computeBoundingSphere();return this},rotateX:function(){var a=new R;return function(b){a.makeRotationX(b);this.applyMatrix(a);return this}}(),rotateY:function(){var a=new R;return function(b){a.makeRotationY(b);
 this.applyMatrix(a);return this}}(),rotateZ:function(){var a=new R;return function(b){a.makeRotationZ(b);this.applyMatrix(a);return this}}(),translate:function(){var a=new R;return function(b,c,d){a.makeTranslation(b,c,d);this.applyMatrix(a);return this}}(),scale:function(){var a=new R;return function(b,c,d){a.makeScale(b,c,d);this.applyMatrix(a);return this}}(),lookAt:function(){var a=new B;return function(b){a.lookAt(b);a.updateMatrix();this.applyMatrix(a.matrix)}}(),center:function(){this.computeBoundingBox();
 this.applyMatrix(a);return this}}(),rotateZ:function(){var a=new R;return function(b){a.makeRotationZ(b);this.applyMatrix(a);return this}}(),translate:function(){var a=new R;return function(b,c,d){a.makeTranslation(b,c,d);this.applyMatrix(a);return this}}(),scale:function(){var a=new R;return function(b,c,d){a.makeScale(b,c,d);this.applyMatrix(a);return this}}(),lookAt:function(){var a=new B;return function(b){a.lookAt(b);a.updateMatrix();this.applyMatrix(a.matrix)}}(),center:function(){this.computeBoundingBox();
 var a=this.boundingBox.getCenter().negate();this.translate(a.x,a.y,a.z);return a},setFromObject:function(a){var b=a.geometry;if(a.isPoints||a.isLine){a=new E(3*b.vertices.length,3);var c=new E(3*b.colors.length,3);this.addAttribute("position",a.copyVector3sArray(b.vertices));this.addAttribute("color",c.copyColorsArray(b.colors));b.lineDistances&&b.lineDistances.length===b.vertices.length&&(a=new E(b.lineDistances.length,1),this.addAttribute("lineDistance",a.copyArray(b.lineDistances)));null!==b.boundingSphere&&
 var a=this.boundingBox.getCenter().negate();this.translate(a.x,a.y,a.z);return a},setFromObject:function(a){var b=a.geometry;if(a.isPoints||a.isLine){a=new E(3*b.vertices.length,3);var c=new E(3*b.colors.length,3);this.addAttribute("position",a.copyVector3sArray(b.vertices));this.addAttribute("color",c.copyColorsArray(b.colors));b.lineDistances&&b.lineDistances.length===b.vertices.length&&(a=new E(b.lineDistances.length,1),this.addAttribute("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},updateFromObject:function(a){var b=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;
 (this.boundingSphere=b.boundingSphere.clone());null!==b.boundingBox&&(this.boundingBox=b.boundingBox.clone())}else a.isMesh&&b&&b.isGeometry&&this.fromGeometry(b);return this},updateFromObject:function(a){var b=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;
@@ -548,10 +548,10 @@ radius:c.radius});return a},clone:function(){return(new J).copy(this)},copy:func
 b[c],this.addGroup(e.start,e.count,e.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;return this},dispose:function(){this.dispatchEvent({type:"dispose"})}});ya.prototype=Object.assign(Object.create(B.prototype),{constructor:ya,isMesh:!0,setDrawMode:function(a){this.drawMode=a},copy:function(a){B.prototype.copy.call(this,a);this.drawMode=a.drawMode;
 b[c],this.addGroup(e.start,e.count,e.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;return this},dispose:function(){this.dispatchEvent({type:"dispose"})}});ya.prototype=Object.assign(Object.create(B.prototype),{constructor:ya,isMesh:!0,setDrawMode:function(a){this.drawMode=a},copy:function(a){B.prototype.copy.call(this,a);this.drawMode=a.drawMode;
 return this},updateMorphTargets:function(){var a=this.geometry.morphTargets;if(void 0!==a&&0<a.length){this.morphTargetInfluences=[];this.morphTargetDictionary={};for(var b=0,c=a.length;b<c;b++)this.morphTargetInfluences.push(0),this.morphTargetDictionary[a[b].name]=b}},raycast:function(){function a(a,b,c,d,e,f,g){Va.barycoordFromPoint(a,b,c,d,t);e.multiplyScalar(t.x);f.multiplyScalar(t.y);g.multiplyScalar(t.z);e.add(f).add(g);return e.clone()}function b(a,b,c,d,e,f,g){var h=a.material;if(null===
 return this},updateMorphTargets:function(){var a=this.geometry.morphTargets;if(void 0!==a&&0<a.length){this.morphTargetInfluences=[];this.morphTargetDictionary={};for(var b=0,c=a.length;b<c;b++)this.morphTargetInfluences.push(0),this.morphTargetDictionary[a[b].name]=b}},raycast:function(){function a(a,b,c,d,e,f,g){Va.barycoordFromPoint(a,b,c,d,t);e.multiplyScalar(t.x);f.multiplyScalar(t.y);g.multiplyScalar(t.z);e.add(f).add(g);return e.clone()}function b(a,b,c,d,e,f,g){var h=a.material;if(null===
 (1===h.side?c.intersectTriangle(f,e,d,!0,g):c.intersectTriangle(d,e,f,2!==h.side,g)))return null;x.copy(g);x.applyMatrix4(a.matrixWorld);c=b.ray.origin.distanceTo(x);return c<b.near||c>b.far?null:{distance:c,point:x.clone(),object:a}}function c(c,d,e,f,m,k,q,u){g.fromBufferAttribute(f,k);h.fromBufferAttribute(f,q);l.fromBufferAttribute(f,u);if(c=b(c,d,e,g,h,l,z))m&&(n.fromBufferAttribute(m,k),r.fromBufferAttribute(m,q),y.fromBufferAttribute(m,u),c.uv=a(z,g,h,l,n,r,y)),c.face=new ia(k,q,u,Va.normal(g,
 (1===h.side?c.intersectTriangle(f,e,d,!0,g):c.intersectTriangle(d,e,f,2!==h.side,g)))return null;x.copy(g);x.applyMatrix4(a.matrixWorld);c=b.ray.origin.distanceTo(x);return c<b.near||c>b.far?null:{distance:c,point:x.clone(),object:a}}function c(c,d,e,f,m,k,q,u){g.fromBufferAttribute(f,k);h.fromBufferAttribute(f,q);l.fromBufferAttribute(f,u);if(c=b(c,d,e,g,h,l,z))m&&(n.fromBufferAttribute(m,k),r.fromBufferAttribute(m,q),y.fromBufferAttribute(m,u),c.uv=a(z,g,h,l,n,r,y)),c.face=new ia(k,q,u,Va.normal(g,
-h,l)),c.faceIndex=k;return c}var d=new R,e=new db,f=new Ja,g=new p,h=new p,l=new p,m=new p,k=new p,q=new p,n=new D,r=new D,y=new D,t=new p,z=new p,x=new p;return function(p,t){var v=this.geometry,x=this.material,H=this.matrixWorld;if(void 0!==x&&(null===v.boundingSphere&&v.computeBoundingSphere(),f.copy(v.boundingSphere),f.applyMatrix4(H),!1!==p.ray.intersectsSphere(f)&&(d.getInverse(H),e.copy(p.ray).applyMatrix4(d),null===v.boundingBox||!1!==e.intersectsBox(v.boundingBox)))){var A;if(v.isBufferGeometry){var G,
+h,l)),c.faceIndex=k;return c}var d=new R,e=new eb,f=new Ja,g=new p,h=new p,l=new p,m=new p,k=new p,q=new p,n=new D,r=new D,y=new D,t=new p,z=new p,x=new p;return function(p,t){var v=this.geometry,x=this.material,H=this.matrixWorld;if(void 0!==x&&(null===v.boundingSphere&&v.computeBoundingSphere(),f.copy(v.boundingSphere),f.applyMatrix4(H),!1!==p.ray.intersectsSphere(f)&&(d.getInverse(H),e.copy(p.ray).applyMatrix4(d),null===v.boundingBox||!1!==e.intersectsBox(v.boundingBox)))){var A;if(v.isBufferGeometry){var G,
 D,x=v.index,E=v.attributes.position,H=v.attributes.uv,B,J;if(null!==x)for(B=0,J=x.count;B<J;B+=3){if(v=x.getX(B),G=x.getX(B+1),D=x.getX(B+2),A=c(this,p,e,E,H,v,G,D))A.faceIndex=Math.floor(B/3),t.push(A)}else for(B=0,J=E.count;B<J;B+=3)if(v=B,G=B+1,D=B+2,A=c(this,p,e,E,H,v,G,D))A.index=v,t.push(A)}else if(v.isGeometry){var I,H=Array.isArray(x);B=v.vertices;J=v.faces;G=v.faceVertexUvs[0];0<G.length&&(E=G);for(var S=0,Q=J.length;S<Q;S++){var K=J[S];A=H?x[K.materialIndex]:x;if(void 0!==A){G=B[K.a];D=
 D,x=v.index,E=v.attributes.position,H=v.attributes.uv,B,J;if(null!==x)for(B=0,J=x.count;B<J;B+=3){if(v=x.getX(B),G=x.getX(B+1),D=x.getX(B+2),A=c(this,p,e,E,H,v,G,D))A.faceIndex=Math.floor(B/3),t.push(A)}else for(B=0,J=E.count;B<J;B+=3)if(v=B,G=B+1,D=B+2,A=c(this,p,e,E,H,v,G,D))A.index=v,t.push(A)}else if(v.isGeometry){var I,H=Array.isArray(x);B=v.vertices;J=v.faces;G=v.faceVertexUvs[0];0<G.length&&(E=G);for(var S=0,Q=J.length;S<Q;S++){var K=J[S];A=H?x[K.materialIndex]:x;if(void 0!==A){G=B[K.a];D=
 B[K.b];I=B[K.c];if(!0===A.morphTargets){A=v.morphTargets;var N=this.morphTargetInfluences;g.set(0,0,0);h.set(0,0,0);l.set(0,0,0);for(var O=0,L=A.length;O<L;O++){var U=N[O];if(0!==U){var R=A[O].vertices;g.addScaledVector(m.subVectors(R[K.a],G),U);h.addScaledVector(k.subVectors(R[K.b],D),U);l.addScaledVector(q.subVectors(R[K.c],I),U)}}g.add(G);h.add(D);l.add(I);G=g;D=h;I=l}if(A=b(this,p,e,G,D,I,z))E&&E[S]&&(N=E[S],n.copy(N[0]),r.copy(N[1]),y.copy(N[2]),A.uv=a(z,G,D,I,n,r,y)),A.face=K,A.faceIndex=S,
 B[K.b];I=B[K.c];if(!0===A.morphTargets){A=v.morphTargets;var N=this.morphTargetInfluences;g.set(0,0,0);h.set(0,0,0);l.set(0,0,0);for(var O=0,L=A.length;O<L;O++){var U=N[O];if(0!==U){var R=A[O].vertices;g.addScaledVector(m.subVectors(R[K.a],G),U);h.addScaledVector(k.subVectors(R[K.b],D),U);l.addScaledVector(q.subVectors(R[K.c],I),U)}}g.add(G);h.add(D);l.add(I);G=g;D=h;I=l}if(A=b(this,p,e,G,D,I,z))E&&E[S]&&(N=E[S],n.copy(N[0]),r.copy(N[1]),y.copy(N[2]),A.uv=a(z,G,D,I,n,r,y)),A.face=K,A.faceIndex=S,
-t.push(A)}}}}}}(),clone:function(){return(new this.constructor(this.geometry,this.material)).copy(this)}});Fb.prototype=Object.create(S.prototype);Fb.prototype.constructor=Fb;gb.prototype=Object.create(J.prototype);gb.prototype.constructor=gb;wc.prototype=Object.create(S.prototype);wc.prototype.constructor=wc;hb.prototype=Object.create(J.prototype);hb.prototype.constructor=hb;qa.prototype=Object.create(B.prototype);qa.prototype.constructor=qa;qa.prototype.isCamera=!0;qa.prototype.getWorldDirection=
+t.push(A)}}}}}}(),clone:function(){return(new this.constructor(this.geometry,this.material)).copy(this)}});Fb.prototype=Object.create(S.prototype);Fb.prototype.constructor=Fb;hb.prototype=Object.create(J.prototype);hb.prototype.constructor=hb;wc.prototype=Object.create(S.prototype);wc.prototype.constructor=wc;ib.prototype=Object.create(J.prototype);ib.prototype.constructor=ib;qa.prototype=Object.create(B.prototype);qa.prototype.constructor=qa;qa.prototype.isCamera=!0;qa.prototype.getWorldDirection=
 function(){var a=new ma;return function(b){b=b||new p;this.getWorldQuaternion(a);return b.set(0,0,-1).applyQuaternion(a)}}();qa.prototype.clone=function(){return(new this.constructor).copy(this)};qa.prototype.copy=function(a){B.prototype.copy.call(this,a);this.matrixWorldInverse.copy(a.matrixWorldInverse);this.projectionMatrix.copy(a.projectionMatrix);return this};Ga.prototype=Object.assign(Object.create(qa.prototype),{constructor:Ga,isPerspectiveCamera:!0,copy:function(a){qa.prototype.copy.call(this,
 function(){var a=new ma;return function(b){b=b||new p;this.getWorldQuaternion(a);return b.set(0,0,-1).applyQuaternion(a)}}();qa.prototype.clone=function(){return(new this.constructor).copy(this)};qa.prototype.copy=function(a){B.prototype.copy.call(this,a);this.matrixWorldInverse.copy(a.matrixWorldInverse);this.projectionMatrix.copy(a.projectionMatrix);return this};Ga.prototype=Object.assign(Object.create(qa.prototype),{constructor:Ga,isPerspectiveCamera:!0,copy:function(a){qa.prototype.copy.call(this,
 a);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=a.filmGauge;this.filmOffset=a.filmOffset;return this},setFocalLength:function(a){a=.5*this.getFilmHeight()/a;this.fov=2*T.RAD2DEG*Math.atan(a);this.updateProjectionMatrix()},getFocalLength:function(){var a=Math.tan(.5*T.DEG2RAD*this.fov);return.5*this.getFilmHeight()/a},getEffectiveFOV:function(){return 2*T.RAD2DEG*Math.atan(Math.tan(.5*
 a);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=a.filmGauge;this.filmOffset=a.filmOffset;return this},setFocalLength:function(a){a=.5*this.getFilmHeight()/a;this.fov=2*T.RAD2DEG*Math.atan(a);this.updateProjectionMatrix()},getFocalLength:function(){var a=Math.tan(.5*T.DEG2RAD*this.fov);return.5*this.getFilmHeight()/a},getEffectiveFOV:function(){return 2*T.RAD2DEG*Math.atan(Math.tan(.5*
 T.DEG2RAD*this.fov)/this.zoom)},getFilmWidth:function(){return this.filmGauge*Math.min(this.aspect,1)},getFilmHeight:function(){return this.filmGauge/Math.max(this.aspect,1)},setViewOffset:function(a,b,c,d,e,f){this.aspect=a/b;this.view={fullWidth:a,fullHeight:b,offsetX:c,offsetY:d,width:e,height:f};this.updateProjectionMatrix()},clearViewOffset:function(){this.view=null;this.updateProjectionMatrix()},updateProjectionMatrix:function(){var a=this.near,b=a*Math.tan(.5*T.DEG2RAD*this.fov)/this.zoom,
 T.DEG2RAD*this.fov)/this.zoom)},getFilmWidth:function(){return this.filmGauge*Math.min(this.aspect,1)},getFilmHeight:function(){return this.filmGauge/Math.max(this.aspect,1)},setViewOffset:function(a,b,c,d,e,f){this.aspect=a/b;this.view={fullWidth:a,fullHeight:b,offsetX:c,offsetY:d,width:e,height:f};this.updateProjectionMatrix()},clearViewOffset:function(){this.view=null;this.updateProjectionMatrix()},updateProjectionMatrix:function(){var a=this.near,b=a*Math.tan(.5*T.DEG2RAD*this.fov)/this.zoom,
@@ -562,8 +562,8 @@ d=(this.top-this.bottom)/this.view.height,e=e+this.view.offsetX/c*f,c=e+this.vie
 var Of=0;Hb.prototype.isFogExp2=!0;Hb.prototype.clone=function(){return new Hb(this.color.getHex(),this.density)};Hb.prototype.toJSON=function(a){return{type:"FogExp2",color:this.color.getHex(),density:this.density}};Ib.prototype.isFog=!0;Ib.prototype.clone=function(){return new Ib(this.color.getHex(),this.near,this.far)};Ib.prototype.toJSON=function(a){return{type:"Fog",color:this.color.getHex(),near:this.near,far:this.far}};jd.prototype=Object.assign(Object.create(B.prototype),{constructor:jd,copy:function(a,
 var Of=0;Hb.prototype.isFogExp2=!0;Hb.prototype.clone=function(){return new Hb(this.color.getHex(),this.density)};Hb.prototype.toJSON=function(a){return{type:"FogExp2",color:this.color.getHex(),density:this.density}};Ib.prototype.isFog=!0;Ib.prototype.clone=function(){return new Ib(this.color.getHex(),this.near,this.far)};Ib.prototype.toJSON=function(a){return{type:"Fog",color:this.color.getHex(),near:this.near,far:this.far}};jd.prototype=Object.assign(Object.create(B.prototype),{constructor:jd,copy:function(a,
 b){B.prototype.copy.call(this,a,b);null!==a.background&&(this.background=a.background.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=B.prototype.toJSON.call(this,a);null!==this.background&&(b.object.background=this.background.toJSON(a));null!==this.fog&&(b.object.fog=this.fog.toJSON());return b}});Vd.prototype=Object.assign(Object.create(B.prototype),
 b){B.prototype.copy.call(this,a,b);null!==a.background&&(this.background=a.background.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=B.prototype.toJSON.call(this,a);null!==this.background&&(b.object.background=this.background.toJSON(a));null!==this.fog&&(b.object.fog=this.fog.toJSON());return b}});Vd.prototype=Object.assign(Object.create(B.prototype),
 {constructor:Vd,isLensFlare:!0,copy:function(a){B.prototype.copy.call(this,a);this.positionScreen.copy(a.positionScreen);this.customUpdateCallback=a.customUpdateCallback;for(var b=0,c=a.lensFlares.length;b<c;b++)this.lensFlares.push(a.lensFlares[b]);return this},add:function(a,b,c,d,e,f){void 0===b&&(b=-1);void 0===c&&(c=0);void 0===f&&(f=1);void 0===e&&(e=new I(16777215));void 0===d&&(d=1);c=Math.min(c,Math.max(0,c));this.lensFlares.push({texture:a,size:b,distance:c,x:0,y:0,z:0,scale:1,rotation:0,
 {constructor:Vd,isLensFlare:!0,copy:function(a){B.prototype.copy.call(this,a);this.positionScreen.copy(a.positionScreen);this.customUpdateCallback=a.customUpdateCallback;for(var b=0,c=a.lensFlares.length;b<c;b++)this.lensFlares.push(a.lensFlares[b]);return this},add:function(a,b,c,d,e,f){void 0===b&&(b=-1);void 0===c&&(c=0);void 0===f&&(f=1);void 0===e&&(e=new I(16777215));void 0===d&&(d=1);c=Math.min(c,Math.max(0,c));this.lensFlares.push({texture:a,size:b,distance:c,x:0,y:0,z:0,scale:1,rotation:0,
-opacity:f,color:e,blending:d})},updateLensFlares:function(){var a,b=this.lensFlares.length,c,d=2*-this.positionScreen.x,e=2*-this.positionScreen.y;for(a=0;a<b;a++)c=this.lensFlares[a],c.x=this.positionScreen.x+d*c.distance,c.y=this.positionScreen.y+e*c.distance,c.wantedRotation=c.x*Math.PI*.25,c.rotation+=.25*(c.wantedRotation-c.rotation)}});jb.prototype=Object.create(W.prototype);jb.prototype.constructor=jb;jb.prototype.copy=function(a){W.prototype.copy.call(this,a);this.color.copy(a.color);this.map=
-a.map;this.rotation=a.rotation;return this};zc.prototype=Object.assign(Object.create(B.prototype),{constructor:zc,isSprite:!0,raycast:function(){var a=new p,b=new p,c=new p;return function(d,e){b.setFromMatrixPosition(this.matrixWorld);d.ray.closestPointToPoint(b,a);c.setFromMatrixScale(this.matrixWorld);var f=c.x*c.y/4;b.distanceToSquared(a)>f||(f=d.ray.origin.distanceTo(a),f<d.near||f>d.far||e.push({distance:f,point:a.clone(),face:null,object:this}))}}(),clone:function(){return(new this.constructor(this.material)).copy(this)}});
+opacity:f,color:e,blending:d})},updateLensFlares:function(){var a,b=this.lensFlares.length,c,d=2*-this.positionScreen.x,e=2*-this.positionScreen.y;for(a=0;a<b;a++)c=this.lensFlares[a],c.x=this.positionScreen.x+d*c.distance,c.y=this.positionScreen.y+e*c.distance,c.wantedRotation=c.x*Math.PI*.25,c.rotation+=.25*(c.wantedRotation-c.rotation)}});bb.prototype=Object.create(W.prototype);bb.prototype.constructor=bb;bb.prototype.isSpriteMaterial=!0;bb.prototype.copy=function(a){W.prototype.copy.call(this,
+a);this.color.copy(a.color);this.map=a.map;this.rotation=a.rotation;return this};zc.prototype=Object.assign(Object.create(B.prototype),{constructor:zc,isSprite:!0,raycast:function(){var a=new p,b=new p,c=new p;return function(d,e){b.setFromMatrixPosition(this.matrixWorld);d.ray.closestPointToPoint(b,a);c.setFromMatrixScale(this.matrixWorld);var f=c.x*c.y/4;b.distanceToSquared(a)>f||(f=d.ray.origin.distanceTo(a),f<d.near||f>d.far||e.push({distance:f,point:a.clone(),face:null,object:this}))}}(),clone:function(){return(new this.constructor(this.material)).copy(this)}});
 Ac.prototype=Object.assign(Object.create(B.prototype),{constructor:Ac,copy:function(a){B.prototype.copy.call(this,a,!1);a=a.levels;for(var b=0,c=a.length;b<c;b++){var d=a[b];this.addLevel(d.object.clone(),d.distance)}return this},addLevel:function(a,b){void 0===b&&(b=0);b=Math.abs(b);for(var c=this.levels,d=0;d<c.length&&!(b<c[d].distance);d++);c.splice(d,0,{distance:b,object:a});this.add(a)},getObjectForDistance:function(a){for(var b=this.levels,c=1,d=b.length;c<d&&!(a<b[c].distance);c++);return b[c-
 Ac.prototype=Object.assign(Object.create(B.prototype),{constructor:Ac,copy:function(a){B.prototype.copy.call(this,a,!1);a=a.levels;for(var b=0,c=a.length;b<c;b++){var d=a[b];this.addLevel(d.object.clone(),d.distance)}return this},addLevel:function(a,b){void 0===b&&(b=0);b=Math.abs(b);for(var c=this.levels,d=0;d<c.length&&!(b<c[d].distance);d++);c.splice(d,0,{distance:b,object:a});this.add(a)},getObjectForDistance:function(a){for(var b=this.levels,c=1,d=b.length;c<d&&!(a<b[c].distance);c++);return b[c-
 1].object},raycast:function(){var a=new p;return function(b,c){a.setFromMatrixPosition(this.matrixWorld);var d=b.ray.origin.distanceTo(a);this.getObjectForDistance(d).raycast(b,c)}}(),update:function(){var a=new p,b=new p;return function(c){var d=this.levels;if(1<d.length){a.setFromMatrixPosition(c.matrixWorld);b.setFromMatrixPosition(this.matrixWorld);c=a.distanceTo(b);d[0].object.visible=!0;for(var e=1,f=d.length;e<f;e++)if(c>=d[e].distance)d[e-1].object.visible=!1,d[e].object.visible=!0;else break;
 1].object},raycast:function(){var a=new p;return function(b,c){a.setFromMatrixPosition(this.matrixWorld);var d=b.ray.origin.distanceTo(a);this.getObjectForDistance(d).raycast(b,c)}}(),update:function(){var a=new p,b=new p;return function(c){var d=this.levels;if(1<d.length){a.setFromMatrixPosition(c.matrixWorld);b.setFromMatrixPosition(this.matrixWorld);c=a.distanceTo(b);d[0].object.visible=!0;for(var e=1,f=d.length;e<f;e++)if(c>=d[e].distance)d[e-1].object.visible=!1,d[e].object.visible=!0;else break;
 for(;e<f;e++)d[e].object.visible=!1}}}(),toJSON:function(a){a=B.prototype.toJSON.call(this,a);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}});Object.assign(Bc.prototype,{calculateInverses:function(){this.boneInverses=[];for(var a=0,b=this.bones.length;a<b;a++){var c=new R;this.bones[a]&&c.getInverse(this.bones[a].matrixWorld);this.boneInverses.push(c)}},pose:function(){for(var a,b=0,c=this.bones.length;b<
 for(;e<f;e++)d[e].object.visible=!1}}}(),toJSON:function(a){a=B.prototype.toJSON.call(this,a);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}});Object.assign(Bc.prototype,{calculateInverses:function(){this.boneInverses=[];for(var a=0,b=this.bones.length;a<b;a++){var c=new R;this.bones[a]&&c.getInverse(this.bones[a].matrixWorld);this.boneInverses.push(c)}},pose:function(){for(var a,b=0,c=this.bones.length;b<
@@ -571,11 +571,11 @@ c;b++)(a=this.bones[b])&&a.matrixWorld.getInverse(this.boneInverses[b]);b=0;for(
 this.identityMatrix,c[f]),a.toArray(d,16*f);void 0!==e&&(e.needsUpdate=!0)}}(),clone:function(){return new Bc(this.bones,this.boneInverses)}});kd.prototype=Object.assign(Object.create(B.prototype),{constructor:kd,isBone:!0});ld.prototype=Object.assign(Object.create(ya.prototype),{constructor:ld,isSkinnedMesh:!0,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)},
 this.identityMatrix,c[f]),a.toArray(d,16*f);void 0!==e&&(e.needsUpdate=!0)}}(),clone:function(){return new Bc(this.bones,this.boneInverses)}});kd.prototype=Object.assign(Object.create(B.prototype),{constructor:kd,isBone:!0});ld.prototype=Object.assign(Object.create(ya.prototype),{constructor:ld,isSkinnedMesh:!0,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(){if(this.geometry&&this.geometry.isGeometry)for(var a=0;a<this.geometry.skinWeights.length;a++){var b=this.geometry.skinWeights[a],c=1/b.lengthManhattan();Infinity!==c?b.multiplyScalar(c):b.set(1,0,0,0)}else if(this.geometry&&this.geometry.isBufferGeometry)for(var b=new ga,d=this.geometry.attributes.skinWeight,a=0;a<d.count;a++)b.x=d.getX(a),b.y=d.getY(a),b.z=d.getZ(a),b.w=d.getW(a),c=1/b.lengthManhattan(),Infinity!==c?b.multiplyScalar(c):
 pose:function(){this.skeleton.pose()},normalizeSkinWeights:function(){if(this.geometry&&this.geometry.isGeometry)for(var a=0;a<this.geometry.skinWeights.length;a++){var b=this.geometry.skinWeights[a],c=1/b.lengthManhattan();Infinity!==c?b.multiplyScalar(c):b.set(1,0,0,0)}else if(this.geometry&&this.geometry.isBufferGeometry)for(var b=new ga,d=this.geometry.attributes.skinWeight,a=0;a<d.count;a++)b.x=d.getX(a),b.y=d.getY(a),b.z=d.getZ(a),b.w=d.getW(a),c=1/b.lengthManhattan(),Infinity!==c?b.multiplyScalar(c):
 b.set(1,0,0,0),d.setXYZW(a,b.x,b.y,b.z,b.w)},updateMatrixWorld:function(){ya.prototype.updateMatrixWorld.call(this,!0);"attached"===this.bindMode?this.bindMatrixInverse.getInverse(this.matrixWorld):"detached"===this.bindMode?this.bindMatrixInverse.getInverse(this.bindMatrix):console.warn("THREE.SkinnedMesh unrecognized bindMode: "+this.bindMode)},clone:function(){return(new this.constructor(this.geometry,this.material)).copy(this)}});ha.prototype=Object.create(W.prototype);ha.prototype.constructor=
 b.set(1,0,0,0),d.setXYZW(a,b.x,b.y,b.z,b.w)},updateMatrixWorld:function(){ya.prototype.updateMatrixWorld.call(this,!0);"attached"===this.bindMode?this.bindMatrixInverse.getInverse(this.matrixWorld):"detached"===this.bindMode?this.bindMatrixInverse.getInverse(this.bindMatrix):console.warn("THREE.SkinnedMesh unrecognized bindMode: "+this.bindMode)},clone:function(){return(new this.constructor(this.geometry,this.material)).copy(this)}});ha.prototype=Object.create(W.prototype);ha.prototype.constructor=
-ha;ha.prototype.isLineBasicMaterial=!0;ha.prototype.copy=function(a){W.prototype.copy.call(this,a);this.color.copy(a.color);this.linewidth=a.linewidth;this.linecap=a.linecap;this.linejoin=a.linejoin;return this};Ba.prototype=Object.assign(Object.create(B.prototype),{constructor:Ba,isLine:!0,raycast:function(){var a=new R,b=new db,c=new Ja;return function(d,e){var f=d.linePrecision,f=f*f,g=this.geometry,h=this.matrixWorld;null===g.boundingSphere&&g.computeBoundingSphere();c.copy(g.boundingSphere);
+ha;ha.prototype.isLineBasicMaterial=!0;ha.prototype.copy=function(a){W.prototype.copy.call(this,a);this.color.copy(a.color);this.linewidth=a.linewidth;this.linecap=a.linecap;this.linejoin=a.linejoin;return this};Ca.prototype=Object.assign(Object.create(B.prototype),{constructor:Ca,isLine:!0,raycast:function(){var a=new R,b=new eb,c=new Ja;return function(d,e){var f=d.linePrecision,f=f*f,g=this.geometry,h=this.matrixWorld;null===g.boundingSphere&&g.computeBoundingSphere();c.copy(g.boundingSphere);
 c.applyMatrix4(h);if(!1!==d.ray.intersectsSphere(c)){a.getInverse(h);b.copy(d.ray).applyMatrix4(a);var l=new p,m=new p,h=new p,k=new p,q=this&&this.isLineSegments?2:1;if(g.isBufferGeometry){var n=g.index,r=g.attributes.position.array;if(null!==n)for(var n=n.array,g=0,y=n.length-1;g<y;g+=q){var t=n[g+1];l.fromArray(r,3*n[g]);m.fromArray(r,3*t);t=b.distanceSqToSegment(l,m,k,h);t>f||(k.applyMatrix4(this.matrixWorld),t=d.ray.origin.distanceTo(k),t<d.near||t>d.far||e.push({distance:t,point:h.clone().applyMatrix4(this.matrixWorld),
 c.applyMatrix4(h);if(!1!==d.ray.intersectsSphere(c)){a.getInverse(h);b.copy(d.ray).applyMatrix4(a);var l=new p,m=new p,h=new p,k=new p,q=this&&this.isLineSegments?2:1;if(g.isBufferGeometry){var n=g.index,r=g.attributes.position.array;if(null!==n)for(var n=n.array,g=0,y=n.length-1;g<y;g+=q){var t=n[g+1];l.fromArray(r,3*n[g]);m.fromArray(r,3*t);t=b.distanceSqToSegment(l,m,k,h);t>f||(k.applyMatrix4(this.matrixWorld),t=d.ray.origin.distanceTo(k),t<d.near||t>d.far||e.push({distance:t,point:h.clone().applyMatrix4(this.matrixWorld),
 index:g,face:null,faceIndex:null,object:this}))}else for(g=0,y=r.length/3-1;g<y;g+=q)l.fromArray(r,3*g),m.fromArray(r,3*g+3),t=b.distanceSqToSegment(l,m,k,h),t>f||(k.applyMatrix4(this.matrixWorld),t=d.ray.origin.distanceTo(k),t<d.near||t>d.far||e.push({distance:t,point:h.clone().applyMatrix4(this.matrixWorld),index:g,face:null,faceIndex:null,object:this}))}else if(g.isGeometry)for(l=g.vertices,m=l.length,g=0;g<m-1;g+=q)t=b.distanceSqToSegment(l[g],l[g+1],k,h),t>f||(k.applyMatrix4(this.matrixWorld),
 index:g,face:null,faceIndex:null,object:this}))}else for(g=0,y=r.length/3-1;g<y;g+=q)l.fromArray(r,3*g),m.fromArray(r,3*g+3),t=b.distanceSqToSegment(l,m,k,h),t>f||(k.applyMatrix4(this.matrixWorld),t=d.ray.origin.distanceTo(k),t<d.near||t>d.far||e.push({distance:t,point:h.clone().applyMatrix4(this.matrixWorld),index:g,face:null,faceIndex:null,object:this}))}else if(g.isGeometry)for(l=g.vertices,m=l.length,g=0;g<m-1;g+=q)t=b.distanceSqToSegment(l[g],l[g+1],k,h),t>f||(k.applyMatrix4(this.matrixWorld),
-t=d.ray.origin.distanceTo(k),t<d.near||t>d.far||e.push({distance:t,point:h.clone().applyMatrix4(this.matrixWorld),index:g,face:null,faceIndex:null,object:this}))}}}(),clone:function(){return(new this.constructor(this.geometry,this.material)).copy(this)}});fa.prototype=Object.assign(Object.create(Ba.prototype),{constructor:fa,isLineSegments:!0});md.prototype=Object.assign(Object.create(Ba.prototype),{constructor:md,isLineLoop:!0});Ca.prototype=Object.create(W.prototype);Ca.prototype.constructor=Ca;
-Ca.prototype.isPointsMaterial=!0;Ca.prototype.copy=function(a){W.prototype.copy.call(this,a);this.color.copy(a.color);this.map=a.map;this.size=a.size;this.sizeAttenuation=a.sizeAttenuation;return this};Jb.prototype=Object.assign(Object.create(B.prototype),{constructor:Jb,isPoints:!0,raycast:function(){var a=new R,b=new db,c=new Ja;return function(d,e){function f(a,c){var f=b.distanceSqToPoint(a);if(f<k){var h=b.closestPointToPoint(a);h.applyMatrix4(l);var m=d.ray.origin.distanceTo(h);m<d.near||m>
+t=d.ray.origin.distanceTo(k),t<d.near||t>d.far||e.push({distance:t,point:h.clone().applyMatrix4(this.matrixWorld),index:g,face:null,faceIndex:null,object:this}))}}}(),clone:function(){return(new this.constructor(this.geometry,this.material)).copy(this)}});fa.prototype=Object.assign(Object.create(Ca.prototype),{constructor:fa,isLineSegments:!0});md.prototype=Object.assign(Object.create(Ca.prototype),{constructor:md,isLineLoop:!0});Da.prototype=Object.create(W.prototype);Da.prototype.constructor=Da;
+Da.prototype.isPointsMaterial=!0;Da.prototype.copy=function(a){W.prototype.copy.call(this,a);this.color.copy(a.color);this.map=a.map;this.size=a.size;this.sizeAttenuation=a.sizeAttenuation;return this};Jb.prototype=Object.assign(Object.create(B.prototype),{constructor:Jb,isPoints:!0,raycast:function(){var a=new R,b=new eb,c=new Ja;return function(d,e){function f(a,c){var f=b.distanceSqToPoint(a);if(f<k){var h=b.closestPointToPoint(a);h.applyMatrix4(l);var m=d.ray.origin.distanceTo(h);m<d.near||m>
 d.far||e.push({distance:m,distanceToRay:Math.sqrt(f),point:h.clone(),index:c,face:null,object:g})}}var g=this,h=this.geometry,l=this.matrixWorld,m=d.params.Points.threshold;null===h.boundingSphere&&h.computeBoundingSphere();c.copy(h.boundingSphere);c.applyMatrix4(l);c.radius+=m;if(!1!==d.ray.intersectsSphere(c)){a.getInverse(l);b.copy(d.ray).applyMatrix4(a);var m=m/((this.scale.x+this.scale.y+this.scale.z)/3),k=m*m,m=new p;if(h.isBufferGeometry){var q=h.index,h=h.attributes.position.array;if(null!==
 d.far||e.push({distance:m,distanceToRay:Math.sqrt(f),point:h.clone(),index:c,face:null,object:g})}}var g=this,h=this.geometry,l=this.matrixWorld,m=d.params.Points.threshold;null===h.boundingSphere&&h.computeBoundingSphere();c.copy(h.boundingSphere);c.applyMatrix4(l);c.radius+=m;if(!1!==d.ray.intersectsSphere(c)){a.getInverse(l);b.copy(d.ray).applyMatrix4(a);var m=m/((this.scale.x+this.scale.y+this.scale.z)/3),k=m*m,m=new p;if(h.isBufferGeometry){var q=h.index,h=h.attributes.position.array;if(null!==
 q)for(var n=q.array,q=0,r=n.length;q<r;q++){var y=n[q];m.fromArray(h,3*y);f(m,y)}else for(q=0,n=h.length/3;q<n;q++)m.fromArray(h,3*q),f(m,q)}else for(m=h.vertices,q=0,n=m.length;q<n;q++)f(m[q],q)}}}(),clone:function(){return(new this.constructor(this.geometry,this.material)).copy(this)}});Cc.prototype=Object.assign(Object.create(B.prototype),{constructor:Cc});nd.prototype=Object.create(ba.prototype);nd.prototype.constructor=nd;Kb.prototype=Object.create(ba.prototype);Kb.prototype.constructor=Kb;Kb.prototype.isCompressedTexture=
 q)for(var n=q.array,q=0,r=n.length;q<r;q++){var y=n[q];m.fromArray(h,3*y);f(m,y)}else for(q=0,n=h.length/3;q<n;q++)m.fromArray(h,3*q),f(m,q)}else for(m=h.vertices,q=0,n=m.length;q<n;q++)f(m[q],q)}}}(),clone:function(){return(new this.constructor(this.geometry,this.material)).copy(this)}});Cc.prototype=Object.assign(Object.create(B.prototype),{constructor:Cc});nd.prototype=Object.create(ba.prototype);nd.prototype.constructor=nd;Kb.prototype=Object.create(ba.prototype);Kb.prototype.constructor=Kb;Kb.prototype.isCompressedTexture=
 !0;od.prototype=Object.create(ba.prototype);od.prototype.constructor=od;Dc.prototype=Object.create(ba.prototype);Dc.prototype.constructor=Dc;Dc.prototype.isDepthTexture=!0;Lb.prototype=Object.create(J.prototype);Lb.prototype.constructor=Lb;Ec.prototype=Object.create(S.prototype);Ec.prototype.constructor=Ec;Mb.prototype=Object.create(J.prototype);Mb.prototype.constructor=Mb;Fc.prototype=Object.create(S.prototype);Fc.prototype.constructor=Fc;da.prototype=Object.create(J.prototype);da.prototype.constructor=
 !0;od.prototype=Object.create(ba.prototype);od.prototype.constructor=od;Dc.prototype=Object.create(ba.prototype);Dc.prototype.constructor=Dc;Dc.prototype.isDepthTexture=!0;Lb.prototype=Object.create(J.prototype);Lb.prototype.constructor=Lb;Ec.prototype=Object.create(S.prototype);Ec.prototype.constructor=Ec;Mb.prototype=Object.create(J.prototype);Mb.prototype.constructor=Mb;Fc.prototype=Object.create(S.prototype);Fc.prototype.constructor=Fc;da.prototype=Object.create(J.prototype);da.prototype.constructor=
@@ -599,8 +599,8 @@ t[r-1].x+N):f(O.x,O.y,h+N)}(function(){if(q){var a=0*T;for(P=0;P<V;P++)U=S[P],g(
 generateSideWallUV:function(a,b,c,d,e){a=a.vertices;b=a[b];c=a[c];d=a[d];e=a[e];return.01>Math.abs(b.y-c.y)?[new D(b.x,1-b.z),new D(c.x,1-c.z),new D(d.x,1-d.z),new D(e.x,1-e.z)]:[new D(b.y,1-b.z),new D(c.y,1-c.z),new D(d.y,1-d.z),new D(e.y,1-e.z)]}};Nc.prototype=Object.create(va.prototype);Nc.prototype.constructor=Nc;Oc.prototype=Object.create(S.prototype);Oc.prototype.constructor=Oc;lb.prototype=Object.create(J.prototype);lb.prototype.constructor=lb;Pc.prototype=Object.create(S.prototype);Pc.prototype.constructor=
 generateSideWallUV:function(a,b,c,d,e){a=a.vertices;b=a[b];c=a[c];d=a[d];e=a[e];return.01>Math.abs(b.y-c.y)?[new D(b.x,1-b.z),new D(c.x,1-c.z),new D(d.x,1-d.z),new D(e.x,1-e.z)]:[new D(b.y,1-b.z),new D(c.y,1-c.z),new D(d.y,1-d.z),new D(e.y,1-e.z)]}};Nc.prototype=Object.create(va.prototype);Nc.prototype.constructor=Nc;Oc.prototype=Object.create(S.prototype);Oc.prototype.constructor=Oc;lb.prototype=Object.create(J.prototype);lb.prototype.constructor=lb;Pc.prototype=Object.create(S.prototype);Pc.prototype.constructor=
 Pc;Tb.prototype=Object.create(J.prototype);Tb.prototype.constructor=Tb;Qc.prototype=Object.create(S.prototype);Qc.prototype.constructor=Qc;Ub.prototype=Object.create(J.prototype);Ub.prototype.constructor=Ub;Vb.prototype=Object.create(S.prototype);Vb.prototype.constructor=Vb;Wb.prototype=Object.create(J.prototype);Wb.prototype.constructor=Wb;Xb.prototype=Object.create(J.prototype);Xb.prototype.constructor=Xb;mb.prototype=Object.create(S.prototype);mb.prototype.constructor=mb;Na.prototype=Object.create(J.prototype);
 Pc;Tb.prototype=Object.create(J.prototype);Tb.prototype.constructor=Tb;Qc.prototype=Object.create(S.prototype);Qc.prototype.constructor=Qc;Ub.prototype=Object.create(J.prototype);Ub.prototype.constructor=Ub;Vb.prototype=Object.create(S.prototype);Vb.prototype.constructor=Vb;Wb.prototype=Object.create(J.prototype);Wb.prototype.constructor=Wb;Xb.prototype=Object.create(J.prototype);Xb.prototype.constructor=Xb;mb.prototype=Object.create(S.prototype);mb.prototype.constructor=mb;Na.prototype=Object.create(J.prototype);
 Na.prototype.constructor=Na;Rc.prototype=Object.create(mb.prototype);Rc.prototype.constructor=Rc;Sc.prototype=Object.create(Na.prototype);Sc.prototype.constructor=Sc;Tc.prototype=Object.create(S.prototype);Tc.prototype.constructor=Tc;Yb.prototype=Object.create(J.prototype);Yb.prototype.constructor=Yb;var sa=Object.freeze({WireframeGeometry:Lb,ParametricGeometry:Ec,ParametricBufferGeometry:Mb,TetrahedronGeometry:Gc,TetrahedronBufferGeometry:Nb,OctahedronGeometry:Hc,OctahedronBufferGeometry:kb,IcosahedronGeometry:Ic,
 Na.prototype.constructor=Na;Rc.prototype=Object.create(mb.prototype);Rc.prototype.constructor=Rc;Sc.prototype=Object.create(Na.prototype);Sc.prototype.constructor=Sc;Tc.prototype=Object.create(S.prototype);Tc.prototype.constructor=Tc;Yb.prototype=Object.create(J.prototype);Yb.prototype.constructor=Yb;var sa=Object.freeze({WireframeGeometry:Lb,ParametricGeometry:Ec,ParametricBufferGeometry:Mb,TetrahedronGeometry:Gc,TetrahedronBufferGeometry:Nb,OctahedronGeometry:Hc,OctahedronBufferGeometry:kb,IcosahedronGeometry:Ic,
-IcosahedronBufferGeometry:Ob,DodecahedronGeometry:Jc,DodecahedronBufferGeometry:Pb,PolyhedronGeometry:Fc,PolyhedronBufferGeometry:da,TubeGeometry:Kc,TubeBufferGeometry:Qb,TorusKnotGeometry:Lc,TorusKnotBufferGeometry:Rb,TorusGeometry:Mc,TorusBufferGeometry:Sb,TextGeometry:Nc,SphereGeometry:Oc,SphereBufferGeometry:lb,RingGeometry:Pc,RingBufferGeometry:Tb,PlaneGeometry:wc,PlaneBufferGeometry:hb,LatheGeometry:Qc,LatheBufferGeometry:Ub,ShapeGeometry:Vb,ShapeBufferGeometry:Wb,ExtrudeGeometry:va,EdgesGeometry:Xb,
-ConeGeometry:Rc,ConeBufferGeometry:Sc,CylinderGeometry:mb,CylinderBufferGeometry:Na,CircleGeometry:Tc,CircleBufferGeometry:Yb,BoxGeometry:Fb,BoxBufferGeometry:gb});Zb.prototype=Object.create(Ha.prototype);Zb.prototype.constructor=Zb;Zb.prototype.isShadowMaterial=!0;$b.prototype=Object.create(Ha.prototype);$b.prototype.constructor=$b;$b.prototype.isRawShaderMaterial=!0;wa.prototype=Object.create(W.prototype);wa.prototype.constructor=wa;wa.prototype.isMeshStandardMaterial=!0;wa.prototype.copy=function(a){W.prototype.copy.call(this,
+IcosahedronBufferGeometry:Ob,DodecahedronGeometry:Jc,DodecahedronBufferGeometry:Pb,PolyhedronGeometry:Fc,PolyhedronBufferGeometry:da,TubeGeometry:Kc,TubeBufferGeometry:Qb,TorusKnotGeometry:Lc,TorusKnotBufferGeometry:Rb,TorusGeometry:Mc,TorusBufferGeometry:Sb,TextGeometry:Nc,SphereGeometry:Oc,SphereBufferGeometry:lb,RingGeometry:Pc,RingBufferGeometry:Tb,PlaneGeometry:wc,PlaneBufferGeometry:ib,LatheGeometry:Qc,LatheBufferGeometry:Ub,ShapeGeometry:Vb,ShapeBufferGeometry:Wb,ExtrudeGeometry:va,EdgesGeometry:Xb,
+ConeGeometry:Rc,ConeBufferGeometry:Sc,CylinderGeometry:mb,CylinderBufferGeometry:Na,CircleGeometry:Tc,CircleBufferGeometry:Yb,BoxGeometry:Fb,BoxBufferGeometry:hb});Zb.prototype=Object.create(Ha.prototype);Zb.prototype.constructor=Zb;Zb.prototype.isShadowMaterial=!0;$b.prototype=Object.create(Ha.prototype);$b.prototype.constructor=$b;$b.prototype.isRawShaderMaterial=!0;wa.prototype=Object.create(W.prototype);wa.prototype.constructor=wa;wa.prototype.isMeshStandardMaterial=!0;wa.prototype.copy=function(a){W.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.normalScale.copy(a.normalScale);this.displacementMap=a.displacementMap;
 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.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=a.wireframeLinejoin;this.morphTargets=a.morphTargets;this.morphNormals=a.morphNormals;return this};
 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=a.wireframeLinejoin;this.morphTargets=a.morphTargets;this.morphNormals=a.morphNormals;return this};
 nb.prototype=Object.create(wa.prototype);nb.prototype.constructor=nb;nb.prototype.isMeshPhysicalMaterial=!0;nb.prototype.copy=function(a){wa.prototype.copy.call(this,a);this.defines={PHYSICAL:""};this.reflectivity=a.reflectivity;this.clearCoat=a.clearCoat;this.clearCoatRoughness=a.clearCoatRoughness;return this};Qa.prototype=Object.create(W.prototype);Qa.prototype.constructor=Qa;Qa.prototype.isMeshPhongMaterial=!0;Qa.prototype.copy=function(a){W.prototype.copy.call(this,a);this.color.copy(a.color);
 nb.prototype=Object.create(wa.prototype);nb.prototype.constructor=nb;nb.prototype.isMeshPhysicalMaterial=!0;nb.prototype.copy=function(a){wa.prototype.copy.call(this,a);this.defines={PHYSICAL:""};this.reflectivity=a.reflectivity;this.clearCoat=a.clearCoat;this.clearCoatRoughness=a.clearCoatRoughness;return this};Qa.prototype=Object.create(W.prototype);Qa.prototype.constructor=Qa;Qa.prototype.isMeshPhongMaterial=!0;Qa.prototype.copy=function(a){W.prototype.copy.call(this,a);this.color.copy(a.color);
@@ -609,14 +609,14 @@ a.displacementBias;this.specularMap=a.specularMap;this.alphaMap=a.alphaMap;this.
 !0;ob.prototype.copy=function(a){Qa.prototype.copy.call(this,a);this.gradientMap=a.gradientMap;return this};pb.prototype=Object.create(W.prototype);pb.prototype.constructor=pb;pb.prototype.isMeshNormalMaterial=!0;pb.prototype.copy=function(a){W.prototype.copy.call(this,a);this.bumpMap=a.bumpMap;this.bumpScale=a.bumpScale;this.normalMap=a.normalMap;this.normalScale.copy(a.normalScale);this.displacementMap=a.displacementMap;this.displacementScale=a.displacementScale;this.displacementBias=a.displacementBias;
 !0;ob.prototype.copy=function(a){Qa.prototype.copy.call(this,a);this.gradientMap=a.gradientMap;return this};pb.prototype=Object.create(W.prototype);pb.prototype.constructor=pb;pb.prototype.isMeshNormalMaterial=!0;pb.prototype.copy=function(a){W.prototype.copy.call(this,a);this.bumpMap=a.bumpMap;this.bumpScale=a.bumpScale;this.normalMap=a.normalMap;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.morphTargets=a.morphTargets;this.morphNormals=a.morphNormals;return this};qb.prototype=Object.create(W.prototype);qb.prototype.constructor=qb;qb.prototype.isMeshLambertMaterial=!0;qb.prototype.copy=function(a){W.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.wireframe=a.wireframe;this.wireframeLinewidth=a.wireframeLinewidth;this.morphTargets=a.morphTargets;this.morphNormals=a.morphNormals;return this};qb.prototype=Object.create(W.prototype);qb.prototype.constructor=qb;qb.prototype.isMeshLambertMaterial=!0;qb.prototype.copy=function(a){W.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=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.morphTargets=a.morphTargets;this.morphNormals=a.morphNormals;return this};rb.prototype=Object.create(W.prototype);
 this.emissiveMap=a.emissiveMap;this.emissiveIntensity=a.emissiveIntensity;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.morphTargets=a.morphTargets;this.morphNormals=a.morphNormals;return this};rb.prototype=Object.create(W.prototype);
-rb.prototype.constructor=rb;rb.prototype.isLineDashedMaterial=!0;rb.prototype.copy=function(a){W.prototype.copy.call(this,a);this.color.copy(a.color);this.linewidth=a.linewidth;this.scale=a.scale;this.dashSize=a.dashSize;this.gapSize=a.gapSize;return this};var Yf=Object.freeze({ShadowMaterial:Zb,SpriteMaterial:jb,RawShaderMaterial:$b,ShaderMaterial:Ha,PointsMaterial:Ca,MeshPhysicalMaterial:nb,MeshStandardMaterial:wa,MeshPhongMaterial:Qa,MeshToonMaterial:ob,MeshNormalMaterial:pb,MeshLambertMaterial:qb,
-MeshDepthMaterial:Za,MeshBasicMaterial:La,LineDashedMaterial:rb,LineBasicMaterial:ha,Material:W}),gd={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]},clear:function(){this.files={}}},Da=new Wd;Object.assign(Ia.prototype,{load:function(a,b,c,d){void 0===a&&(a="");void 0!==this.path&&(a=this.path+a);var e=this,f=gd.get(a);if(void 0!==f)return e.manager.itemStart(a),setTimeout(function(){b&&
+rb.prototype.constructor=rb;rb.prototype.isLineDashedMaterial=!0;rb.prototype.copy=function(a){W.prototype.copy.call(this,a);this.color.copy(a.color);this.linewidth=a.linewidth;this.scale=a.scale;this.dashSize=a.dashSize;this.gapSize=a.gapSize;return this};var Yf=Object.freeze({ShadowMaterial:Zb,SpriteMaterial:bb,RawShaderMaterial:$b,ShaderMaterial:Ha,PointsMaterial:Da,MeshPhysicalMaterial:nb,MeshStandardMaterial:wa,MeshPhongMaterial:Qa,MeshToonMaterial:ob,MeshNormalMaterial:pb,MeshLambertMaterial:qb,
+MeshDepthMaterial:Za,MeshBasicMaterial:La,LineDashedMaterial:rb,LineBasicMaterial:ha,Material:W}),gd={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]},clear:function(){this.files={}}},Ea=new Wd;Object.assign(Ia.prototype,{load:function(a,b,c,d){void 0===a&&(a="");void 0!==this.path&&(a=this.path+a);var e=this,f=gd.get(a);if(void 0!==f)return e.manager.itemStart(a),setTimeout(function(){b&&
 b(f);e.manager.itemEnd(a)},0),f;var g=a.match(/^data:(.*?)(;base64)?,(.*)$/);if(g){var h=g[1],l=!!g[2],g=g[3],g=window.decodeURIComponent(g);l&&(g=window.atob(g));try{var k,p=(this.responseType||"").toLowerCase();switch(p){case "arraybuffer":case "blob":k=new ArrayBuffer(g.length);for(var q=new Uint8Array(k),l=0;l<g.length;l++)q[l]=g.charCodeAt(l);"blob"===p&&(k=new Blob([k],{type:h}));break;case "document":k=(new DOMParser).parseFromString(g,h);break;case "json":k=JSON.parse(g);break;default:k=g}window.setTimeout(function(){b&&
 b(f);e.manager.itemEnd(a)},0),f;var g=a.match(/^data:(.*?)(;base64)?,(.*)$/);if(g){var h=g[1],l=!!g[2],g=g[3],g=window.decodeURIComponent(g);l&&(g=window.atob(g));try{var k,p=(this.responseType||"").toLowerCase();switch(p){case "arraybuffer":case "blob":k=new ArrayBuffer(g.length);for(var q=new Uint8Array(k),l=0;l<g.length;l++)q[l]=g.charCodeAt(l);"blob"===p&&(k=new Blob([k],{type:h}));break;case "document":k=(new DOMParser).parseFromString(g,h);break;case "json":k=JSON.parse(g);break;default:k=g}window.setTimeout(function(){b&&
 b(k);e.manager.itemEnd(a)},0)}catch(r){window.setTimeout(function(){d&&d(r);e.manager.itemError(a)},0)}}else{var n=new XMLHttpRequest;n.open("GET",a,!0);n.addEventListener("load",function(c){var f=c.target.response;gd.add(a,f);200===this.status?(b&&b(f),e.manager.itemEnd(a)):0===this.status?(console.warn("THREE.FileLoader: HTTP Status 0 received."),b&&b(f),e.manager.itemEnd(a)):(d&&d(c),e.manager.itemError(a))},!1);void 0!==c&&n.addEventListener("progress",function(a){c(a)},!1);n.addEventListener("error",
 b(k);e.manager.itemEnd(a)},0)}catch(r){window.setTimeout(function(){d&&d(r);e.manager.itemError(a)},0)}}else{var n=new XMLHttpRequest;n.open("GET",a,!0);n.addEventListener("load",function(c){var f=c.target.response;gd.add(a,f);200===this.status?(b&&b(f),e.manager.itemEnd(a)):0===this.status?(console.warn("THREE.FileLoader: HTTP Status 0 received."),b&&b(f),e.manager.itemEnd(a)):(d&&d(c),e.manager.itemError(a))},!1);void 0!==c&&n.addEventListener("progress",function(a){c(a)},!1);n.addEventListener("error",
 function(b){d&&d(b);e.manager.itemError(a)},!1);void 0!==this.responseType&&(n.responseType=this.responseType);void 0!==this.withCredentials&&(n.withCredentials=this.withCredentials);n.overrideMimeType&&n.overrideMimeType(void 0!==this.mimeType?this.mimeType:"text/plain");for(h in this.requestHeader)n.setRequestHeader(h,this.requestHeader[h]);n.send(null)}e.manager.itemStart(a);return n},setPath:function(a){this.path=a;return this},setResponseType:function(a){this.responseType=a;return this},setWithCredentials:function(a){this.withCredentials=
 function(b){d&&d(b);e.manager.itemError(a)},!1);void 0!==this.responseType&&(n.responseType=this.responseType);void 0!==this.withCredentials&&(n.withCredentials=this.withCredentials);n.overrideMimeType&&n.overrideMimeType(void 0!==this.mimeType?this.mimeType:"text/plain");for(h in this.requestHeader)n.setRequestHeader(h,this.requestHeader[h]);n.send(null)}e.manager.itemStart(a);return n},setPath:function(a){this.path=a;return this},setResponseType:function(a){this.responseType=a;return this},setWithCredentials:function(a){this.withCredentials=
 a;return this},setMimeType:function(a){this.mimeType=a;return this},setRequestHeader:function(a){this.requestHeader=a;return this}});Object.assign(Ie.prototype,{load:function(a,b,c,d){function e(e){l.load(a[e],function(a){a=f._parser(a,!0);g[e]={width:a.width,height:a.height,format:a.format,mipmaps:a.mipmaps};k+=1;6===k&&(1===a.mipmapCount&&(h.minFilter=1006),h.format=a.format,h.needsUpdate=!0,b&&b(h))},c,d)}var f=this,g=[],h=new Kb;h.image=g;var l=new Ia(this.manager);l.setPath(this.path);l.setResponseType("arraybuffer");
 a;return this},setMimeType:function(a){this.mimeType=a;return this},setRequestHeader:function(a){this.requestHeader=a;return this}});Object.assign(Ie.prototype,{load:function(a,b,c,d){function e(e){l.load(a[e],function(a){a=f._parser(a,!0);g[e]={width:a.width,height:a.height,format:a.format,mipmaps:a.mipmaps};k+=1;6===k&&(1===a.mipmapCount&&(h.minFilter=1006),h.format=a.format,h.needsUpdate=!0,b&&b(h))},c,d)}var f=this,g=[],h=new Kb;h.image=g;var l=new Ia(this.manager);l.setPath(this.path);l.setResponseType("arraybuffer");
 if(Array.isArray(a))for(var k=0,p=0,q=a.length;p<q;++p)e(p);else l.load(a,function(a){a=f._parser(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=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},setPath:function(a){this.path=
 if(Array.isArray(a))for(var k=0,p=0,q=a.length;p<q;++p)e(p);else l.load(a,function(a){a=f._parser(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=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},setPath:function(a){this.path=
-a;return this}});Object.assign(Xd.prototype,{load:function(a,b,c,d){var e=this,f=new bb,g=new Ia(this.manager);g.setResponseType("arraybuffer");g.load(a,function(a){if(a=e._parser(a))void 0!==a.image?f.image=a.image:void 0!==a.data&&(f.image.width=a.width,f.image.height=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:1008,f.anisotropy=void 0!==a.anisotropy?
+a;return this}});Object.assign(Xd.prototype,{load:function(a,b,c,d){var e=this,f=new cb,g=new Ia(this.manager);g.setResponseType("arraybuffer");g.load(a,function(a){if(a=e._parser(a))void 0!==a.image?f.image=a.image:void 0!==a.data&&(f.image.width=a.width,f.image.height=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:1008,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),1===a.mipmapCount&&(f.minFilter=1006),f.needsUpdate=!0,b&&b(f,a)},c,d);return f}});Object.assign(Uc.prototype,{load:function(a,b,c,d){void 0===a&&(a="");void 0!==this.path&&(a=this.path+a);var e=this,f=gd.get(a);if(void 0!==f)return e.manager.itemStart(a),setTimeout(function(){b&&b(f);e.manager.itemEnd(a)},0),f;c=document.createElementNS("http://www.w3.org/1999/xhtml","img");
 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),1===a.mipmapCount&&(f.minFilter=1006),f.needsUpdate=!0,b&&b(f,a)},c,d);return f}});Object.assign(Uc.prototype,{load:function(a,b,c,d){void 0===a&&(a="");void 0!==this.path&&(a=this.path+a);var e=this,f=gd.get(a);if(void 0!==f)return e.manager.itemStart(a),setTimeout(function(){b&&b(f);e.manager.itemEnd(a)},0),f;c=document.createElementNS("http://www.w3.org/1999/xhtml","img");
 c.addEventListener("load",function(){gd.add(a,this);b&&b(this);e.manager.itemEnd(a)},!1);c.addEventListener("error",function(b){d&&d(b);e.manager.itemError(a)},!1);"data:"!==a.substr(0,5)&&void 0!==this.crossOrigin&&(c.crossOrigin=this.crossOrigin);e.manager.itemStart(a);c.src=a;return c},setCrossOrigin:function(a){this.crossOrigin=a;return this},setPath:function(a){this.path=a;return this}});Object.assign(Yd.prototype,{load:function(a,b,c,d){function e(c){g.load(a[c],function(a){f.images[c]=a;h++;
 c.addEventListener("load",function(){gd.add(a,this);b&&b(this);e.manager.itemEnd(a)},!1);c.addEventListener("error",function(b){d&&d(b);e.manager.itemError(a)},!1);"data:"!==a.substr(0,5)&&void 0!==this.crossOrigin&&(c.crossOrigin=this.crossOrigin);e.manager.itemStart(a);c.src=a;return c},setCrossOrigin:function(a){this.crossOrigin=a;return this},setPath:function(a){this.path=a;return this}});Object.assign(Yd.prototype,{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 Xa,g=new Uc(this.manager);g.setCrossOrigin(this.crossOrigin);g.setPath(this.path);var h=0;for(c=0;c<a.length;++c)e(c);return f},setCrossOrigin:function(a){this.crossOrigin=a;return this},setPath:function(a){this.path=a;return this}});Object.assign(pd.prototype,{load:function(a,b,c,d){var e=new Uc(this.manager);e.setCrossOrigin(this.crossOrigin);e.setPath(this.path);var f=new ba;f.image=e.load(a,function(){var c=0<a.search(/\.(jpg|jpeg)$/)||0===
 6===h&&(f.needsUpdate=!0,b&&b(f))},void 0,d)}var f=new Xa,g=new Uc(this.manager);g.setCrossOrigin(this.crossOrigin);g.setPath(this.path);var h=0;for(c=0;c<a.length;++c)e(c);return f},setCrossOrigin:function(a){this.crossOrigin=a;return this},setPath:function(a){this.path=a;return this}});Object.assign(pd.prototype,{load:function(a,b,c,d){var e=new Uc(this.manager);e.setCrossOrigin(this.crossOrigin);e.setPath(this.path);var f=new ba;f.image=e.load(a,function(){var c=0<a.search(/\.(jpg|jpeg)$/)||0===
@@ -642,11 +642,11 @@ a[g],h=g*c,k=e*c,l=0;l!==c;++l)b[k+l]=b[h+l];++e}}if(0<f){a[e]=a[f];h=f*c;k=e*c;
 0,f,a-g,f,a,b);return e}});Wc.prototype=Object.assign(Object.create(Oa),{constructor:Wc,ValueTypeName:"quaternion",DefaultInterpolation:2301,InterpolantFactoryMethodLinear:function(a){return new Ad(this.times,this.values,this.getValueSize(),a)},InterpolantFactoryMethodSmooth:void 0});bc.prototype=Object.assign(Object.create(Oa),{constructor:bc,ValueTypeName:"number"});Bd.prototype=Object.assign(Object.create(Oa),{constructor:Bd,ValueTypeName:"string",ValueBufferType:Array,DefaultInterpolation:2300,
 0,f,a-g,f,a,b);return e}});Wc.prototype=Object.assign(Object.create(Oa),{constructor:Wc,ValueTypeName:"quaternion",DefaultInterpolation:2301,InterpolantFactoryMethodLinear:function(a){return new Ad(this.times,this.values,this.getValueSize(),a)},InterpolantFactoryMethodSmooth:void 0});bc.prototype=Object.assign(Object.create(Oa),{constructor:bc,ValueTypeName:"number"});Bd.prototype=Object.assign(Object.create(Oa),{constructor:Bd,ValueTypeName:"string",ValueBufferType:Array,DefaultInterpolation:2300,
 InterpolantFactoryMethodLinear:void 0,InterpolantFactoryMethodSmooth:void 0});Cd.prototype=Object.assign(Object.create(Oa),{constructor:Cd,ValueTypeName:"bool",ValueBufferType:Array,DefaultInterpolation:2300,InterpolantFactoryMethodLinear:void 0,InterpolantFactoryMethodSmooth:void 0});Dd.prototype=Object.assign(Object.create(Oa),{constructor:Dd,ValueTypeName:"color"});ub.prototype=Oa;Oa.constructor=ub;Object.assign(ub,{parse:function(a){if(void 0===a.type)throw Error("track type undefined, can not parse");
 InterpolantFactoryMethodLinear:void 0,InterpolantFactoryMethodSmooth:void 0});Cd.prototype=Object.assign(Object.create(Oa),{constructor:Cd,ValueTypeName:"bool",ValueBufferType:Array,DefaultInterpolation:2300,InterpolantFactoryMethodLinear:void 0,InterpolantFactoryMethodSmooth:void 0});Dd.prototype=Object.assign(Object.create(Oa),{constructor:Dd,ValueTypeName:"color"});ub.prototype=Oa;Oa.constructor=ub;Object.assign(ub,{parse:function(a){if(void 0===a.type)throw Error("track type undefined, can not parse");
 var b=ub._getTrackTypeForValueTypeName(a.type);if(void 0===a.times){var c=[],d=[];pa.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)},toJSON:function(a){var b=a.constructor;if(void 0!==b.toJSON)b=b.toJSON(a);else{var b={name:a.name,times:pa.convertArray(a.times,Array),values:pa.convertArray(a.values,Array)},c=a.getInterpolation();c!==a.DefaultInterpolation&&(b.interpolation=c)}b.type=a.ValueTypeName;return b},_getTrackTypeForValueTypeName:function(a){switch(a.toLowerCase()){case "scalar":case "double":case "float":case "number":case "integer":return bc;
 var b=ub._getTrackTypeForValueTypeName(a.type);if(void 0===a.times){var c=[],d=[];pa.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)},toJSON:function(a){var b=a.constructor;if(void 0!==b.toJSON)b=b.toJSON(a);else{var b={name:a.name,times:pa.convertArray(a.times,Array),values:pa.convertArray(a.values,Array)},c=a.getInterpolation();c!==a.DefaultInterpolation&&(b.interpolation=c)}b.type=a.ValueTypeName;return b},_getTrackTypeForValueTypeName:function(a){switch(a.toLowerCase()){case "scalar":case "double":case "float":case "number":case "integer":return bc;
-case "vector":case "vector2":case "vector3":case "vector4":return ac;case "color":return Dd;case "quaternion":return Wc;case "bool":case "boolean":return Cd;case "string":return Bd}throw Error("Unsupported typeName: "+a);}});Object.assign(Ea,{parse:function(a){for(var b=[],c=a.tracks,d=1/(a.fps||1),e=0,f=c.length;e!==f;++e)b.push(ub.parse(c[e]).scale(d));return new Ea(a.name,a.duration,b)},toJSON:function(a){var b=[],c=a.tracks;a={name:a.name,duration:a.duration,tracks:b};for(var d=0,e=c.length;d!==
-e;++d)b.push(ub.toJSON(c[d]));return a},CreateFromMorphTargetSequence:function(a,b,c,d){for(var e=b.length,f=[],g=0;g<e;g++){var h=[],l=[];h.push((g+e-1)%e,g,(g+1)%e);l.push(0,1,0);var k=pa.getKeyframeOrder(h),h=pa.sortedArray(h,1,k),l=pa.sortedArray(l,1,k);d||0!==h[0]||(h.push(e),l.push(l[0]));f.push((new bc(".morphTargetInfluences["+b[g].name+"]",h,l)).scale(1/c))}return new Ea(a,-1,f)},findByName:function(a,b){var c=a;Array.isArray(a)||(c=a.geometry&&a.geometry.animations||a.animations);for(var d=
-0;d<c.length;d++)if(c[d].name===b)return c[d];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],l=h.name.match(e);if(l&&1<l.length){var k=l[1];(l=d[k])||(d[k]=l=[]);l.push(h)}}a=[];for(k in d)a.push(Ea.CreateFromMorphTargetSequence(k,d[k],b,c));return a},parseAnimation:function(a,b){if(!a)return console.error("  no animation in JSONLoader data"),null;for(var c=function(a,b,c,d,e){if(0!==c.length){var f=[],g=[];pa.flattenJSON(c,
+case "vector":case "vector2":case "vector3":case "vector4":return ac;case "color":return Dd;case "quaternion":return Wc;case "bool":case "boolean":return Cd;case "string":return Bd}throw Error("Unsupported typeName: "+a);}});Object.assign(Fa,{parse:function(a){for(var b=[],c=a.tracks,d=1/(a.fps||1),e=0,f=c.length;e!==f;++e)b.push(ub.parse(c[e]).scale(d));return new Fa(a.name,a.duration,b)},toJSON:function(a){var b=[],c=a.tracks;a={name:a.name,duration:a.duration,tracks:b};for(var d=0,e=c.length;d!==
+e;++d)b.push(ub.toJSON(c[d]));return a},CreateFromMorphTargetSequence:function(a,b,c,d){for(var e=b.length,f=[],g=0;g<e;g++){var h=[],l=[];h.push((g+e-1)%e,g,(g+1)%e);l.push(0,1,0);var k=pa.getKeyframeOrder(h),h=pa.sortedArray(h,1,k),l=pa.sortedArray(l,1,k);d||0!==h[0]||(h.push(e),l.push(l[0]));f.push((new bc(".morphTargetInfluences["+b[g].name+"]",h,l)).scale(1/c))}return new Fa(a,-1,f)},findByName:function(a,b){var c=a;Array.isArray(a)||(c=a.geometry&&a.geometry.animations||a.animations);for(var d=
+0;d<c.length;d++)if(c[d].name===b)return c[d];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],l=h.name.match(e);if(l&&1<l.length){var k=l[1];(l=d[k])||(d[k]=l=[]);l.push(h)}}a=[];for(k in d)a.push(Fa.CreateFromMorphTargetSequence(k,d[k],b,c));return a},parseAnimation:function(a,b){if(!a)return console.error("  no animation in JSONLoader data"),null;for(var c=function(a,b,c,d,e){if(0!==c.length){var f=[],g=[];pa.flattenJSON(c,
 f,g,d);0!==f.length&&e.push(new a(b,f,g))}},d=[],e=a.name||"default",f=a.length||-1,g=a.fps||30,h=a.hierarchy||[],l=0;l<h.length;l++){var k=h[l].keys;if(k&&0!==k.length)if(k[0].morphTargets){for(var f={},p=0;p<k.length;p++)if(k[p].morphTargets)for(var q=0;q<k[p].morphTargets.length;q++)f[k[p].morphTargets[q]]=-1;for(var n in f){for(var r=[],y=[],q=0;q!==k[p].morphTargets.length;++q){var t=k[p];r.push(t.time);y.push(t.morphTarget===n?1:0)}d.push(new bc(".morphTargetInfluence["+n+"]",r,y))}f=f.length*
 f,g,d);0!==f.length&&e.push(new a(b,f,g))}},d=[],e=a.name||"default",f=a.length||-1,g=a.fps||30,h=a.hierarchy||[],l=0;l<h.length;l++){var k=h[l].keys;if(k&&0!==k.length)if(k[0].morphTargets){for(var f={},p=0;p<k.length;p++)if(k[p].morphTargets)for(var q=0;q<k[p].morphTargets.length;q++)f[k[p].morphTargets[q]]=-1;for(var n in f){for(var r=[],y=[],q=0;q!==k[p].morphTargets.length;++q){var t=k[p];r.push(t.time);y.push(t.morphTarget===n?1:0)}d.push(new bc(".morphTargetInfluence["+n+"]",r,y))}f=f.length*
-(g||1)}else p=".bones["+b[l].name+"]",c(ac,p+".position",k,"pos",d),c(Wc,p+".quaternion",k,"rot",d),c(ac,p+".scale",k,"scl",d)}return 0===d.length?null:new Ea(e,f,d)}});Object.assign(Ea.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},trim:function(){for(var a=0;a<this.tracks.length;a++)this.tracks[a].trim(0,this.duration);return this},optimize:function(){for(var a=0;a<this.tracks.length;a++)this.tracks[a].optimize();
+(g||1)}else p=".bones["+b[l].name+"]",c(ac,p+".position",k,"pos",d),c(Wc,p+".quaternion",k,"rot",d),c(ac,p+".scale",k,"scl",d)}return 0===d.length?null:new Fa(e,f,d)}});Object.assign(Fa.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},trim:function(){for(var a=0;a<this.tracks.length;a++)this.tracks[a].trim(0,this.duration);return this},optimize:function(){for(var a=0;a<this.tracks.length;a++)this.tracks[a].optimize();
 return this}});Object.assign(Ed.prototype,{load:function(a,b,c,d){var e=this;(new Ia(e.manager)).load(a,function(a){b(e.parse(JSON.parse(a)))},c,d)},setTextures:function(a){this.textures=a},parse:function(a){function b(a){void 0===c[a]&&console.warn("THREE.MaterialLoader: Undefined texture",a);return c[a]}var c=this.textures,d=new Yf[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!==
 return this}});Object.assign(Ed.prototype,{load:function(a,b,c,d){var e=this;(new Ia(e.manager)).load(a,function(a){b(e.parse(JSON.parse(a)))},c,d)},setTextures:function(a){this.textures=a},parse:function(a){function b(a){void 0===c[a]&&console.warn("THREE.MaterialLoader: Undefined texture",a);return c[a]}var c=this.textures,d=new Yf[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.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);void 0!==a.clearCoatRoughness&&(d.clearCoatRoughness=a.clearCoatRoughness);void 0!==a.uniforms&&(d.uniforms=a.uniforms);void 0!==a.vertexShader&&(d.vertexShader=a.vertexShader);void 0!==a.fragmentShader&&(d.fragmentShader=a.fragmentShader);void 0!==a.vertexColors&&
 a.metalness&&(d.metalness=a.metalness);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);void 0!==a.clearCoatRoughness&&(d.clearCoatRoughness=a.clearCoatRoughness);void 0!==a.uniforms&&(d.uniforms=a.uniforms);void 0!==a.vertexShader&&(d.vertexShader=a.vertexShader);void 0!==a.fragmentShader&&(d.fragmentShader=a.fragmentShader);void 0!==a.vertexColors&&
 (d.vertexColors=a.vertexColors);void 0!==a.fog&&(d.fog=a.fog);void 0!==a.shading&&(d.shading=a.shading);void 0!==a.blending&&(d.blending=a.blending);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=a.depthWrite);void 0!==a.colorWrite&&(d.colorWrite=a.colorWrite);void 0!==a.wireframe&&(d.wireframe=
 (d.vertexColors=a.vertexColors);void 0!==a.fog&&(d.fog=a.fog);void 0!==a.shading&&(d.shading=a.shading);void 0!==a.blending&&(d.blending=a.blending);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=a.depthWrite);void 0!==a.colorWrite&&(d.colorWrite=a.colorWrite);void 0!==a.wireframe&&(d.wireframe=
@@ -671,21 +671,21 @@ new D(x,n),2!==g&&c.faceVertexUvs[d][h].push(x),0!==g&&c.faceVertexUvs[d][h+1].p
 r.b=w[l++];r.c=w[l++];h&&(h=w[l++],r.materialIndex=h);h=c.faces.length;if(d)for(d=0;d<F;d++)for(z=a.uvs[d],c.faceVertexUvs[d][h]=[],g=0;3>g;g++)n=w[l++],x=z[2*n],n=z[2*n+1],x=new D(x,n),c.faceVertexUvs[d][h].push(x);q&&(q=3*w[l++],r.normal.set(B[q++],B[q++],B[q]));if(y)for(d=0;3>d;d++)q=3*w[l++],y=new p(B[q++],B[q++],B[q]),r.vertexNormals.push(y);u&&(u=w[l++],r.color.setHex(v[u]));if(b)for(d=0;3>d;d++)u=w[l++],r.vertexColors.push(new I(v[u]));c.faces.push(r)}})(d);(function(){var b=void 0!==a.influencesPerVertex?
 r.b=w[l++];r.c=w[l++];h&&(h=w[l++],r.materialIndex=h);h=c.faces.length;if(d)for(d=0;d<F;d++)for(z=a.uvs[d],c.faceVertexUvs[d][h]=[],g=0;3>g;g++)n=w[l++],x=z[2*n],n=z[2*n+1],x=new D(x,n),c.faceVertexUvs[d][h].push(x);q&&(q=3*w[l++],r.normal.set(B[q++],B[q++],B[q]));if(y)for(d=0;3>d;d++)q=3*w[l++],y=new p(B[q++],B[q++],B[q]),r.vertexNormals.push(y);u&&(u=w[l++],r.color.setHex(v[u]));if(b)for(d=0;3>d;d++)u=w[l++],r.vertexColors.push(new I(v[u]));c.faces.push(r)}})(d);(function(){var b=void 0!==a.influencesPerVertex?
 a.influencesPerVertex:2;if(a.skinWeights)for(var d=0,g=a.skinWeights.length;d<g;d+=b)c.skinWeights.push(new ga(a.skinWeights[d],1<b?a.skinWeights[d+1]:0,2<b?a.skinWeights[d+2]:0,3<b?a.skinWeights[d+3]:0));if(a.skinIndices)for(d=0,g=a.skinIndices.length;d<g;d+=b)c.skinIndices.push(new ga(a.skinIndices[d],1<b?a.skinIndices[d+1]:0,2<b?a.skinIndices[d+2]:0,3<b?a.skinIndices[d+3]:0));c.bones=a.bones;c.bones&&0<c.bones.length&&(c.skinWeights.length!==c.skinIndices.length||c.skinIndices.length!==c.vertices.length)&&
 a.influencesPerVertex:2;if(a.skinWeights)for(var d=0,g=a.skinWeights.length;d<g;d+=b)c.skinWeights.push(new ga(a.skinWeights[d],1<b?a.skinWeights[d+1]:0,2<b?a.skinWeights[d+2]:0,3<b?a.skinWeights[d+3]:0));if(a.skinIndices)for(d=0,g=a.skinIndices.length;d<g;d+=b)c.skinIndices.push(new ga(a.skinIndices[d],1<b?a.skinIndices[d+1]:0,2<b?a.skinIndices[d+2]:0,3<b?a.skinIndices[d+3]:0));c.bones=a.bones;c.bones&&0<c.bones.length&&(c.skinWeights.length!==c.skinIndices.length||c.skinIndices.length!==c.vertices.length)&&
 console.warn("When skinning, number of vertices ("+c.vertices.length+"), skinIndices ("+c.skinIndices.length+"), and skinWeights ("+c.skinWeights.length+") should match.")})();(function(b){if(void 0!==a.morphTargets)for(var d=0,g=a.morphTargets.length;d<g;d++){c.morphTargets[d]={};c.morphTargets[d].name=a.morphTargets[d].name;c.morphTargets[d].vertices=[];for(var h=c.morphTargets[d].vertices,k=a.morphTargets[d].vertices,m=0,u=k.length;m<u;m+=3){var q=new p;q.x=k[m]*b;q.y=k[m+1]*b;q.z=k[m+2]*b;h.push(q)}}if(void 0!==
 console.warn("When skinning, number of vertices ("+c.vertices.length+"), skinIndices ("+c.skinIndices.length+"), and skinWeights ("+c.skinWeights.length+") should match.")})();(function(b){if(void 0!==a.morphTargets)for(var d=0,g=a.morphTargets.length;d<g;d++){c.morphTargets[d]={};c.morphTargets[d].name=a.morphTargets[d].name;c.morphTargets[d].vertices=[];for(var h=c.morphTargets[d].vertices,k=a.morphTargets[d].vertices,m=0,u=k.length;m<u;m+=3){var q=new p;q.x=k[m]*b;q.y=k[m+1]*b;q.z=k[m+2]*b;h.push(q)}}if(void 0!==
-a.morphColors&&0<a.morphColors.length)for(console.warn('THREE.JSONLoader: "morphColors" no longer supported. Using them as face colors.'),b=c.faces,h=a.morphColors[0].colors,d=0,g=b.length;d<g;d++)b[d].color.fromArray(h,3*d)})(d);(function(){var b=[],d=[];void 0!==a.animation&&d.push(a.animation);void 0!==a.animations&&(a.animations.length?d=d.concat(a.animations):d.push(a.animations));for(var g=0;g<d.length;g++){var h=Ea.parseAnimation(d[g],c.bones);h&&b.push(h)}c.morphTargets&&(d=Ea.CreateClipsFromMorphTargetSequences(c.morphTargets,
+a.morphColors&&0<a.morphColors.length)for(console.warn('THREE.JSONLoader: "morphColors" no longer supported. Using them as face colors.'),b=c.faces,h=a.morphColors[0].colors,d=0,g=b.length;d<g;d++)b[d].color.fromArray(h,3*d)})(d);(function(){var b=[],d=[];void 0!==a.animation&&d.push(a.animation);void 0!==a.animations&&(a.animations.length?d=d.concat(a.animations):d.push(a.animations));for(var g=0;g<d.length;g++){var h=Fa.parseAnimation(d[g],c.bones);h&&b.push(h)}c.morphTargets&&(d=Fa.CreateClipsFromMorphTargetSequences(c.morphTargets,
 10),b=b.concat(d));0<b.length&&(c.animations=b)})();c.computeFaceNormals();c.computeBoundingSphere();if(void 0===a.materials||0===a.materials.length)return{geometry:c};d=cc.prototype.initMaterials(a.materials,b,this.crossOrigin);return{geometry:c,materials:d}}});Object.assign(Je.prototype,{load:function(a,b,c,d){""===this.texturePath&&(this.texturePath=a.substring(0,a.lastIndexOf("/")+1));var e=this;(new Ia(e.manager)).load(a,function(c){var g=null;try{g=JSON.parse(c)}catch(h){void 0!==d&&d(h);console.error("THREE:ObjectLoader: Can't parse "+
 10),b=b.concat(d));0<b.length&&(c.animations=b)})();c.computeFaceNormals();c.computeBoundingSphere();if(void 0===a.materials||0===a.materials.length)return{geometry:c};d=cc.prototype.initMaterials(a.materials,b,this.crossOrigin);return{geometry:c,materials:d}}});Object.assign(Je.prototype,{load:function(a,b,c,d){""===this.texturePath&&(this.texturePath=a.substring(0,a.lastIndexOf("/")+1));var e=this;(new Ia(e.manager)).load(a,function(c){var g=null;try{g=JSON.parse(c)}catch(h){void 0!==d&&d(h);console.error("THREE:ObjectLoader: Can't parse "+
 a+".",h.message);return}c=g.metadata;void 0===c||void 0===c.type||"geometry"===c.type.toLowerCase()?console.error("THREE.ObjectLoader: Can't load "+a+". Use THREE.JSONLoader instead."):e.parse(g,b)},c,d)},setTexturePath:function(a){this.texturePath=a},setCrossOrigin:function(a){this.crossOrigin=a},parse:function(a,b){var c=this.parseGeometries(a.geometries),d=this.parseImages(a.images,function(){void 0!==b&&b(e)}),d=this.parseTextures(a.textures,d),d=this.parseMaterials(a.materials,d),e=this.parseObject(a.object,
 a+".",h.message);return}c=g.metadata;void 0===c||void 0===c.type||"geometry"===c.type.toLowerCase()?console.error("THREE.ObjectLoader: Can't load "+a+". Use THREE.JSONLoader instead."):e.parse(g,b)},c,d)},setTexturePath:function(a){this.texturePath=a},setCrossOrigin:function(a){this.crossOrigin=a},parse:function(a,b){var c=this.parseGeometries(a.geometries),d=this.parseImages(a.images,function(){void 0!==b&&b(e)}),d=this.parseTextures(a.textures,d),d=this.parseMaterials(a.materials,d),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},parseGeometries:function(a){var b={};if(void 0!==a)for(var c=new $d,d=new Zd,e=0,f=a.length;e<f;e++){var g,h=a[e];switch(h.type){case "PlaneGeometry":case "PlaneBufferGeometry":g=new sa[h.type](h.width,h.height,h.widthSegments,h.heightSegments);break;case "BoxGeometry":case "BoxBufferGeometry":case "CubeGeometry":g=new sa[h.type](h.width,h.height,h.depth,h.widthSegments,
 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},parseGeometries:function(a){var b={};if(void 0!==a)for(var c=new $d,d=new Zd,e=0,f=a.length;e<f;e++){var g,h=a[e];switch(h.type){case "PlaneGeometry":case "PlaneBufferGeometry":g=new sa[h.type](h.width,h.height,h.widthSegments,h.heightSegments);break;case "BoxGeometry":case "BoxBufferGeometry":case "CubeGeometry":g=new sa[h.type](h.width,h.height,h.depth,h.widthSegments,
 h.heightSegments,h.depthSegments);break;case "CircleGeometry":case "CircleBufferGeometry":g=new sa[h.type](h.radius,h.segments,h.thetaStart,h.thetaLength);break;case "CylinderGeometry":case "CylinderBufferGeometry":g=new sa[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 sa[h.type](h.radius,h.height,h.radialSegments,h.heightSegments,h.openEnded,h.thetaStart,h.thetaLength);
 h.heightSegments,h.depthSegments);break;case "CircleGeometry":case "CircleBufferGeometry":g=new sa[h.type](h.radius,h.segments,h.thetaStart,h.thetaLength);break;case "CylinderGeometry":case "CylinderBufferGeometry":g=new sa[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 sa[h.type](h.radius,h.height,h.radialSegments,h.heightSegments,h.openEnded,h.thetaStart,h.thetaLength);
 break;case "SphereGeometry":case "SphereBufferGeometry":g=new sa[h.type](h.radius,h.widthSegments,h.heightSegments,h.phiStart,h.phiLength,h.thetaStart,h.thetaLength);break;case "DodecahedronGeometry":case "IcosahedronGeometry":case "OctahedronGeometry":case "TetrahedronGeometry":g=new sa[h.type](h.radius,h.detail);break;case "RingGeometry":case "RingBufferGeometry":g=new sa[h.type](h.innerRadius,h.outerRadius,h.thetaSegments,h.phiSegments,h.thetaStart,h.thetaLength);break;case "TorusGeometry":case "TorusBufferGeometry":g=
 break;case "SphereGeometry":case "SphereBufferGeometry":g=new sa[h.type](h.radius,h.widthSegments,h.heightSegments,h.phiStart,h.phiLength,h.thetaStart,h.thetaLength);break;case "DodecahedronGeometry":case "IcosahedronGeometry":case "OctahedronGeometry":case "TetrahedronGeometry":g=new sa[h.type](h.radius,h.detail);break;case "RingGeometry":case "RingBufferGeometry":g=new sa[h.type](h.innerRadius,h.outerRadius,h.thetaSegments,h.phiSegments,h.thetaStart,h.thetaLength);break;case "TorusGeometry":case "TorusBufferGeometry":g=
 new sa[h.type](h.radius,h.tube,h.radialSegments,h.tubularSegments,h.arc);break;case "TorusKnotGeometry":case "TorusKnotBufferGeometry":g=new sa[h.type](h.radius,h.tube,h.tubularSegments,h.radialSegments,h.p,h.q);break;case "LatheGeometry":case "LatheBufferGeometry":g=new sa[h.type](h.points,h.segments,h.phiStart,h.phiLength);break;case "BufferGeometry":g=d.parse(h);break;case "Geometry":g=c.parse(h.data,this.texturePath).geometry;break;default:console.warn('THREE.ObjectLoader: Unsupported geometry type "'+
 new sa[h.type](h.radius,h.tube,h.radialSegments,h.tubularSegments,h.arc);break;case "TorusKnotGeometry":case "TorusKnotBufferGeometry":g=new sa[h.type](h.radius,h.tube,h.tubularSegments,h.radialSegments,h.p,h.q);break;case "LatheGeometry":case "LatheBufferGeometry":g=new sa[h.type](h.points,h.segments,h.phiStart,h.phiLength);break;case "BufferGeometry":g=d.parse(h);break;case "Geometry":g=c.parse(h.data,this.texturePath).geometry;break;default:console.warn('THREE.ObjectLoader: Unsupported geometry type "'+
-h.type+'"');continue}g.uuid=h.uuid;void 0!==h.name&&(g.name=h.name);b[h.uuid]=g}return b},parseMaterials:function(a,b){var c={};if(void 0!==a){var d=new Ed;d.setTextures(b);for(var e=0,f=a.length;e<f;e++){var g=d.parse(a[e]);c[g.uuid]=g}}return c},parseAnimations:function(a){for(var b=[],c=0;c<a.length;c++){var d=Ea.parse(a[c]);b.push(d)}return b},parseImages:function(a,b){function c(a){d.manager.itemStart(a);return g.load(a,function(){d.manager.itemEnd(a)},void 0,function(){d.manager.itemError(a)})}
+h.type+'"');continue}g.uuid=h.uuid;void 0!==h.name&&(g.name=h.name);b[h.uuid]=g}return b},parseMaterials:function(a,b){var c={};if(void 0!==a){var d=new Ed;d.setTextures(b);for(var e=0,f=a.length;e<f;e++){var g=d.parse(a[e]);c[g.uuid]=g}}return c},parseAnimations:function(a){for(var b=[],c=0;c<a.length;c++){var d=Fa.parse(a[c]);b.push(d)}return b},parseImages:function(a,b){function c(a){d.manager.itemStart(a);return g.load(a,function(){d.manager.itemEnd(a)},void 0,function(){d.manager.itemError(a)})}
 var d=this,e={};if(void 0!==a&&0<a.length){var f=new Wd(b),g=new Uc(f);g.setCrossOrigin(this.crossOrigin);for(var f=0,h=a.length;f<h;f++){var k=a[f],m=/^(\/\/)|([a-z]+:(\/\/)?)/i.test(k.url)?k.url:d.texturePath+k.url;e[k.uuid]=c(m)}}return e},parseTextures:function(a,b){function c(a,b){if("number"===typeof a)return a;console.warn("THREE.ObjectLoader.parseTexture: Constant should be in numeric form.",a);return b[a]}var d={UVMapping:300,CubeReflectionMapping:301,CubeRefractionMapping:302,EquirectangularReflectionMapping:303,
 var d=this,e={};if(void 0!==a&&0<a.length){var f=new Wd(b),g=new Uc(f);g.setCrossOrigin(this.crossOrigin);for(var f=0,h=a.length;f<h;f++){var k=a[f],m=/^(\/\/)|([a-z]+:(\/\/)?)/i.test(k.url)?k.url:d.texturePath+k.url;e[k.uuid]=c(m)}}return e},parseTextures:function(a,b){function c(a,b){if("number"===typeof a)return a;console.warn("THREE.ObjectLoader.parseTexture: Constant should be in numeric form.",a);return b[a]}var d={UVMapping:300,CubeReflectionMapping:301,CubeRefractionMapping:302,EquirectangularReflectionMapping:303,
 EquirectangularRefractionMapping:304,SphericalReflectionMapping:305,CubeUVReflectionMapping:306,CubeUVRefractionMapping:307},e={RepeatWrapping:1E3,ClampToEdgeWrapping:1001,MirroredRepeatWrapping:1002},f={NearestFilter:1003,NearestMipMapNearestFilter:1004,NearestMipMapLinearFilter:1005,LinearFilter:1006,LinearMipMapNearestFilter:1007,LinearMipMapLinearFilter:1008},g={};if(void 0!==a)for(var h=0,k=a.length;h<k;h++){var m=a[h];void 0===m.image&&console.warn('THREE.ObjectLoader: No "image" specified for',
 EquirectangularRefractionMapping:304,SphericalReflectionMapping:305,CubeUVReflectionMapping:306,CubeUVRefractionMapping:307},e={RepeatWrapping:1E3,ClampToEdgeWrapping:1001,MirroredRepeatWrapping:1002},f={NearestFilter:1003,NearestMipMapNearestFilter:1004,NearestMipMapLinearFilter:1005,LinearFilter:1006,LinearMipMapNearestFilter:1007,LinearMipMapLinearFilter:1008},g={};if(void 0!==a)for(var h=0,k=a.length;h<k;h++){var m=a[h];void 0===m.image&&console.warn('THREE.ObjectLoader: No "image" specified for',
 m.uuid);void 0===b[m.image]&&console.warn("THREE.ObjectLoader: Undefined image",m.image);var p=new ba(b[m.image]);p.needsUpdate=!0;p.uuid=m.uuid;void 0!==m.name&&(p.name=m.name);void 0!==m.mapping&&(p.mapping=c(m.mapping,d));void 0!==m.offset&&p.offset.fromArray(m.offset);void 0!==m.repeat&&p.repeat.fromArray(m.repeat);void 0!==m.wrap&&(p.wrapS=c(m.wrap[0],e),p.wrapT=c(m.wrap[1],e));void 0!==m.minFilter&&(p.minFilter=c(m.minFilter,f));void 0!==m.magFilter&&(p.magFilter=c(m.magFilter,f));void 0!==
 m.uuid);void 0===b[m.image]&&console.warn("THREE.ObjectLoader: Undefined image",m.image);var p=new ba(b[m.image]);p.needsUpdate=!0;p.uuid=m.uuid;void 0!==m.name&&(p.name=m.name);void 0!==m.mapping&&(p.mapping=c(m.mapping,d));void 0!==m.offset&&p.offset.fromArray(m.offset);void 0!==m.repeat&&p.repeat.fromArray(m.repeat);void 0!==m.wrap&&(p.wrapS=c(m.wrap[0],e),p.wrapT=c(m.wrap[1],e));void 0!==m.minFilter&&(p.minFilter=c(m.minFilter,f));void 0!==m.magFilter&&(p.magFilter=c(m.magFilter,f));void 0!==
 m.anisotropy&&(p.anisotropy=m.anisotropy);void 0!==m.flipY&&(p.flipY=m.flipY);g[m.uuid]=p}return g},parseObject:function(){var a=new R;return function(b,c,d){function e(a){void 0===c[a]&&console.warn("THREE.ObjectLoader: Undefined geometry",a);return c[a]}function f(a){if(void 0!==a)return void 0===d[a]&&console.warn("THREE.ObjectLoader: Undefined material",a),d[a]}var g;switch(b.type){case "Scene":g=new jd;void 0!==b.background&&Number.isInteger(b.background)&&(g.background=new I(b.background));
 m.anisotropy&&(p.anisotropy=m.anisotropy);void 0!==m.flipY&&(p.flipY=m.flipY);g[m.uuid]=p}return g},parseObject:function(){var a=new R;return function(b,c,d){function e(a){void 0===c[a]&&console.warn("THREE.ObjectLoader: Undefined geometry",a);return c[a]}function f(a){if(void 0!==a)return void 0===d[a]&&console.warn("THREE.ObjectLoader: Undefined material",a),d[a]}var g;switch(b.type){case "Scene":g=new jd;void 0!==b.background&&Number.isInteger(b.background)&&(g.background=new I(b.background));
 void 0!==b.fog&&("Fog"===b.fog.type?g.fog=new Ib(b.fog.color,b.fog.near,b.fog.far):"FogExp2"===b.fog.type&&(g.fog=new Hb(b.fog.color,b.fog.density)));break;case "PerspectiveCamera":g=new Ga(b.fov,b.aspect,b.near,b.far);void 0!==b.focus&&(g.focus=b.focus);void 0!==b.zoom&&(g.zoom=b.zoom);void 0!==b.filmGauge&&(g.filmGauge=b.filmGauge);void 0!==b.filmOffset&&(g.filmOffset=b.filmOffset);void 0!==b.view&&(g.view=Object.assign({},b.view));break;case "OrthographicCamera":g=new Gb(b.left,b.right,b.top,b.bottom,
 void 0!==b.fog&&("Fog"===b.fog.type?g.fog=new Ib(b.fog.color,b.fog.near,b.fog.far):"FogExp2"===b.fog.type&&(g.fog=new Hb(b.fog.color,b.fog.density)));break;case "PerspectiveCamera":g=new Ga(b.fov,b.aspect,b.near,b.far);void 0!==b.focus&&(g.focus=b.focus);void 0!==b.zoom&&(g.zoom=b.zoom);void 0!==b.filmGauge&&(g.filmGauge=b.filmGauge);void 0!==b.filmOffset&&(g.filmOffset=b.filmOffset);void 0!==b.view&&(g.view=Object.assign({},b.view));break;case "OrthographicCamera":g=new Gb(b.left,b.right,b.top,b.bottom,
 b.near,b.far);break;case "AmbientLight":g=new wd(b.color,b.intensity);break;case "DirectionalLight":g=new vd(b.color,b.intensity);break;case "PointLight":g=new td(b.color,b.intensity,b.distance,b.decay);break;case "RectAreaLight":g=new xd(b.color,b.intensity,b.width,b.height);break;case "SpotLight":g=new sd(b.color,b.intensity,b.distance,b.angle,b.penumbra,b.decay);break;case "HemisphereLight":g=new qd(b.color,b.groundColor,b.intensity);break;case "SkinnedMesh":console.warn("THREE.ObjectLoader.parseObject() does not support SkinnedMesh yet.");
 b.near,b.far);break;case "AmbientLight":g=new wd(b.color,b.intensity);break;case "DirectionalLight":g=new vd(b.color,b.intensity);break;case "PointLight":g=new td(b.color,b.intensity,b.distance,b.decay);break;case "RectAreaLight":g=new xd(b.color,b.intensity,b.width,b.height);break;case "SpotLight":g=new sd(b.color,b.intensity,b.distance,b.angle,b.penumbra,b.decay);break;case "HemisphereLight":g=new qd(b.color,b.groundColor,b.intensity);break;case "SkinnedMesh":console.warn("THREE.ObjectLoader.parseObject() does not support SkinnedMesh yet.");
-case "Mesh":g=e(b.geometry);var h=f(b.material);g=g.bones&&0<g.bones.length?new ld(g,h):new ya(g,h);break;case "LOD":g=new Ac;break;case "Line":g=new Ba(e(b.geometry),f(b.material),b.mode);break;case "LineLoop":g=new md(e(b.geometry),f(b.material));break;case "LineSegments":g=new fa(e(b.geometry),f(b.material));break;case "PointCloud":case "Points":g=new Jb(e(b.geometry),f(b.material));break;case "Sprite":g=new zc(f(b.material));break;case "Group":g=new Cc;break;default:g=new B}g.uuid=b.uuid;void 0!==
+case "Mesh":g=e(b.geometry);var h=f(b.material);g=g.bones&&0<g.bones.length?new ld(g,h):new ya(g,h);break;case "LOD":g=new Ac;break;case "Line":g=new Ca(e(b.geometry),f(b.material),b.mode);break;case "LineLoop":g=new md(e(b.geometry),f(b.material));break;case "LineSegments":g=new fa(e(b.geometry),f(b.material));break;case "PointCloud":case "Points":g=new Jb(e(b.geometry),f(b.material));break;case "Sprite":g=new zc(f(b.material));break;case "Group":g=new Cc;break;default:g=new B}g.uuid=b.uuid;void 0!==
 b.name&&(g.name=b.name);void 0!==b.matrix?(a.fromArray(b.matrix),a.decompose(g.position,g.quaternion,g.scale)):(void 0!==b.position&&g.position.fromArray(b.position),void 0!==b.rotation&&g.rotation.fromArray(b.rotation),void 0!==b.quaternion&&g.quaternion.fromArray(b.quaternion),void 0!==b.scale&&g.scale.fromArray(b.scale));void 0!==b.castShadow&&(g.castShadow=b.castShadow);void 0!==b.receiveShadow&&(g.receiveShadow=b.receiveShadow);b.shadow&&(void 0!==b.shadow.bias&&(g.shadow.bias=b.shadow.bias),
 b.name&&(g.name=b.name);void 0!==b.matrix?(a.fromArray(b.matrix),a.decompose(g.position,g.quaternion,g.scale)):(void 0!==b.position&&g.position.fromArray(b.position),void 0!==b.rotation&&g.rotation.fromArray(b.rotation),void 0!==b.quaternion&&g.quaternion.fromArray(b.quaternion),void 0!==b.scale&&g.scale.fromArray(b.scale));void 0!==b.castShadow&&(g.castShadow=b.castShadow);void 0!==b.receiveShadow&&(g.receiveShadow=b.receiveShadow);b.shadow&&(void 0!==b.shadow.bias&&(g.shadow.bias=b.shadow.bias),
 void 0!==b.shadow.radius&&(g.shadow.radius=b.shadow.radius),void 0!==b.shadow.mapSize&&g.shadow.mapSize.fromArray(b.shadow.mapSize),void 0!==b.shadow.camera&&(g.shadow.camera=this.parseObject(b.shadow.camera)));void 0!==b.visible&&(g.visible=b.visible);void 0!==b.userData&&(g.userData=b.userData);if(void 0!==b.children)for(var k in b.children)g.add(this.parseObject(b.children[k],c,d));if("LOD"===b.type)for(b=b.levels,h=0;h<b.length;h++){var m=b[h];k=g.getObjectByProperty("uuid",m.object);void 0!==
 void 0!==b.shadow.radius&&(g.shadow.radius=b.shadow.radius),void 0!==b.shadow.mapSize&&g.shadow.mapSize.fromArray(b.shadow.mapSize),void 0!==b.shadow.camera&&(g.shadow.camera=this.parseObject(b.shadow.camera)));void 0!==b.visible&&(g.visible=b.visible);void 0!==b.userData&&(g.userData=b.userData);if(void 0!==b.children)for(var k in b.children)g.add(this.parseObject(b.children[k],c,d));if("LOD"===b.type)for(b=b.levels,h=0;h<b.length;h++){var m=b[h];k=g.getObjectByProperty("uuid",m.object);void 0!==
 k&&g.addLevel(k,m.distance)}return g}}()});Object.assign(za.prototype,{getPoint:function(){console.warn("THREE.Curve: Warning, getPoint() not implemented!");return null},getPointAt:function(a){a=this.getUtoTmapping(a);return this.getPoint(a)},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();
 k&&g.addLevel(k,m.distance)}return g}}()});Object.assign(za.prototype,{getPoint:function(){console.warn("THREE.Curve: Warning, getPoint() not implemented!");return null},getPointAt:function(a){a=this.getUtoTmapping(a);return this.getPoint(a)},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();
@@ -754,8 +754,8 @@ _addInactiveAction:function(a,b,c){var d=this._actions,e=this._actionsByClip,f=e
 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,d=this._nActiveActions++,e=b[d];a._cacheIndex=d;b[d]=a;e._cacheIndex=c;b[c]=e},_takeBackAction:function(a){var b=
 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,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=d[b],f=this._bindings;void 0===e&&(e={},d[b]=e);e[c]=a;a._cacheIndex=f.length;f.push(a)},_removeInactiveBinding:function(a){var b=this._bindings,c=a.binding,d=c.rootNode.uuid,c=c.path,e=this._bindingsByRootAndName,f=e[d],g=b[b.length-1];a=a._cacheIndex;g._cacheIndex=a;b[a]=g;b.pop();delete f[c];a:{for(var h in f)break a;
 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=d[b],f=this._bindings;void 0===e&&(e={},d[b]=e);e[c]=a;a._cacheIndex=f.length;f.push(a)},_removeInactiveBinding:function(a){var b=this._bindings,c=a.binding,d=c.rootNode.uuid,c=c.path,e=this._bindingsByRootAndName,f=e[d],g=b[b.length-1];a=a._cacheIndex;g._cacheIndex=a;b[a]=g;b.pop();delete f[c];a:{for(var h in f)break a;
 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++,c=a[b];void 0===c&&(c=new Vc(new Float32Array(2),new Float32Array(2),1,this._controlInterpolantsResultBuffer),
 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++,c=a[b];void 0===c&&(c=new Vc(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){var c=b||this._root,d=c.uuid,e="string"===typeof a?Ea.findByName(c,a):a,c=null!==e?e.uuid:a,f=this._actionsByClip[c],g=null;if(void 0!==f){g=f.actionByRoot[d];if(void 0!==g)return g;g=f.knownActions[0];null===
-e&&(e=g._clip)}if(null===e)return null;e=new Pe(this,e,b);this._bindAction(e,g);this._addInactiveAction(e,c,d);return e},existingAction:function(a,b){var c=b||this._root,d=c.uuid,c="string"===typeof a?Ea.findByName(c,a):a,c=this._actionsByClip[c?c.uuid:a];return void 0!==c?c.actionByRoot[d]||null:null},stopAllAction:function(){for(var a=this._actions,b=this._nActiveActions,c=this._bindings,d=this._nActiveBindings,e=this._nActiveBindings=this._nActiveActions=0;e!==b;++e)a[e].reset();for(e=0;e!==d;++e)c[e].useCount=
+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){var c=b||this._root,d=c.uuid,e="string"===typeof a?Fa.findByName(c,a):a,c=null!==e?e.uuid:a,f=this._actionsByClip[c],g=null;if(void 0!==f){g=f.actionByRoot[d];if(void 0!==g)return g;g=f.knownActions[0];null===
+e&&(e=g._clip)}if(null===e)return null;e=new Pe(this,e,b);this._bindAction(e,g);this._addInactiveAction(e,c,d);return e},existingAction:function(a,b){var c=b||this._root,d=c.uuid,c="string"===typeof a?Fa.findByName(c,a):a,c=this._actionsByClip[c?c.uuid:a];return void 0!==c?c.actionByRoot[d]||null:null},stopAllAction:function(){for(var a=this._actions,b=this._nActiveActions,c=this._bindings,d=this._nActiveBindings,e=this._nActiveBindings=this._nActiveActions=0;e!==b;++e)a[e].reset();for(e=0;e!==d;++e)c[e].useCount=
 0;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){var h=b[g];h.enabled&&h._update(d,a,e,f)}a=this._bindings;b=this._nActiveBindings;for(g=0;g!==b;++g)a[g].apply(f);return this},getRoot:function(){return this._root},uncacheClip:function(a){var b=this._actions;a=a.uuid;var c=this._actionsByClip,d=c[a];if(void 0!==d){for(var d=d.knownActions,e=0,f=d.length;e!==f;++e){var g=d[e];this._deactivateAction(g);
 0;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){var h=b[g];h.enabled&&h._update(d,a,e,f)}a=this._bindings;b=this._nActiveBindings;for(g=0;g!==b;++g)a[g].apply(f);return this},getRoot:function(){return this._root},uncacheClip:function(a){var b=this._actions;a=a.uuid;var c=this._actionsByClip,d=c[a];if(void 0!==d){for(var d=d.knownActions,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,c;for(c in b){var d=b[c].actionByRoot[a];void 0!==d&&(this._deactivateAction(d),this._removeInactiveAction(d))}c=this._bindingsByRootAndName[a];if(void 0!==c)for(var e in c)a=c[e],a.restoreOriginalState(),this._removeInactiveBinding(a)},uncacheAction:function(a,b){var c=this.existingAction(a,
 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,c;for(c in b){var d=b[c].actionByRoot[a];void 0!==d&&(this._deactivateAction(d),this._removeInactiveAction(d))}c=this._bindingsByRootAndName[a];if(void 0!==c)for(var e in c)a=c[e],a.restoreOriginalState(),this._removeInactiveBinding(a)},uncacheAction:function(a,b){var c=this.existingAction(a,
 b);null!==c&&(this._deactivateAction(c),this._removeInactiveAction(c))}});Gd.prototype.clone=function(){return new Gd(void 0===this.value.clone?this.value:this.value.clone())};zb.prototype=Object.create(J.prototype);zb.prototype.constructor=zb;zb.prototype.isInstancedBufferGeometry=!0;zb.prototype.addGroup=function(a,b,c){this.groups.push({start:a,count:b,materialIndex:c})};zb.prototype.copy=function(a){var b=a.index;null!==b&&this.setIndex(b.clone());var b=a.attributes,c;for(c in b)this.addAttribute(c,
 b);null!==c&&(this._deactivateAction(c),this._removeInactiveAction(c))}});Gd.prototype.clone=function(){return new Gd(void 0===this.value.clone?this.value:this.value.clone())};zb.prototype=Object.create(J.prototype);zb.prototype.constructor=zb;zb.prototype.isInstancedBufferGeometry=!0;zb.prototype.addGroup=function(a,b,c){this.groups.push({start:a,count:b,materialIndex:c})};zb.prototype.copy=function(a){var b=a.index;null!==b&&this.setIndex(b.clone());var b=a.attributes,c;for(c in b)this.addAttribute(c,
@@ -773,7 +773,7 @@ f=0,g=e.morphTargets.length;f<g;f++){var h=e.morphTargets[f].name.match(b);if(h&
 -1,a.directionBackwards=!0};ea.prototype.setAnimationFPS=function(a,b){var c=this.animationsMap[a];c&&(c.fps=b,c.duration=(c.end-c.start)/c.fps)};ea.prototype.setAnimationDuration=function(a,b){var c=this.animationsMap[a];c&&(c.duration=b,c.fps=(c.end-c.start)/c.duration)};ea.prototype.setAnimationWeight=function(a,b){var c=this.animationsMap[a];c&&(c.weight=b)};ea.prototype.setAnimationTime=function(a,b){var c=this.animationsMap[a];c&&(c.time=b)};ea.prototype.getAnimationTime=function(a){var b=0;
 -1,a.directionBackwards=!0};ea.prototype.setAnimationFPS=function(a,b){var c=this.animationsMap[a];c&&(c.fps=b,c.duration=(c.end-c.start)/c.fps)};ea.prototype.setAnimationDuration=function(a,b){var c=this.animationsMap[a];c&&(c.duration=b,c.fps=(c.end-c.start)/c.duration)};ea.prototype.setAnimationWeight=function(a,b){var c=this.animationsMap[a];c&&(c.weight=b)};ea.prototype.setAnimationTime=function(a,b){var c=this.animationsMap[a];c&&(c.time=b)};ea.prototype.getAnimationTime=function(a){var b=0;
 if(a=this.animationsMap[a])b=a.time;return b};ea.prototype.getAnimationDuration=function(a){var b=-1;if(a=this.animationsMap[a])b=a.duration;return b};ea.prototype.playAnimation=function(a){var b=this.animationsMap[a];b?(b.time=0,b.active=!0):console.warn("THREE.MorphBlendMesh: animation["+a+"] undefined in .playAnimation()")};ea.prototype.stopAnimation=function(a){if(a=this.animationsMap[a])a.active=!1};ea.prototype.update=function(a){for(var b=0,c=this.animationsList.length;b<c;b++){var d=this.animationsList[b];
 if(a=this.animationsMap[a])b=a.time;return b};ea.prototype.getAnimationDuration=function(a){var b=-1;if(a=this.animationsMap[a])b=a.duration;return b};ea.prototype.playAnimation=function(a){var b=this.animationsMap[a];b?(b.time=0,b.active=!0):console.warn("THREE.MorphBlendMesh: animation["+a+"] undefined in .playAnimation()")};ea.prototype.stopAnimation=function(a){if(a=this.animationsMap[a])a.active=!1};ea.prototype.update=function(a){for(var b=0,c=this.animationsList.length;b<c;b++){var d=this.animationsList[b];
 if(d.active){var e=d.duration/d.length;d.time+=d.direction*a;if(d.mirroredLoop){if(d.time>d.duration||0>d.time)d.direction*=-1,d.time>d.duration&&(d.time=d.duration,d.directionBackwards=!0),0>d.time&&(d.time=0,d.directionBackwards=!1)}else d.time%=d.duration,0>d.time&&(d.time+=d.duration);var f=d.start+T.clamp(Math.floor(d.time/e),0,d.length-1),g=d.weight;f!==d.currentFrame&&(this.morphTargetInfluences[d.lastFrame]=0,this.morphTargetInfluences[d.currentFrame]=1*g,this.morphTargetInfluences[f]=0,d.lastFrame=
 if(d.active){var e=d.duration/d.length;d.time+=d.direction*a;if(d.mirroredLoop){if(d.time>d.duration||0>d.time)d.direction*=-1,d.time>d.duration&&(d.time=d.duration,d.directionBackwards=!0),0>d.time&&(d.time=0,d.directionBackwards=!1)}else d.time%=d.duration,0>d.time&&(d.time+=d.duration);var f=d.start+T.clamp(Math.floor(d.time/e),0,d.length-1),g=d.weight;f!==d.currentFrame&&(this.morphTargetInfluences[d.lastFrame]=0,this.morphTargetInfluences[d.currentFrame]=1*g,this.morphTargetInfluences[f]=0,d.lastFrame=
-d.currentFrame,d.currentFrame=f);e=d.time%e/e;d.directionBackwards&&(e=1-e);d.currentFrame!==d.lastFrame?(this.morphTargetInfluences[d.currentFrame]=e*g,this.morphTargetInfluences[d.lastFrame]=(1-e)*g):this.morphTargetInfluences[d.currentFrame]=g}}};Zc.prototype=Object.create(B.prototype);Zc.prototype.constructor=Zc;Zc.prototype.isImmediateRenderObject=!0;$c.prototype=Object.create(fa.prototype);$c.prototype.constructor=$c;$c.prototype.update=function(){var a=new p,b=new p,c=new Fa;return function(){var d=
+d.currentFrame,d.currentFrame=f);e=d.time%e/e;d.directionBackwards&&(e=1-e);d.currentFrame!==d.lastFrame?(this.morphTargetInfluences[d.currentFrame]=e*g,this.morphTargetInfluences[d.lastFrame]=(1-e)*g):this.morphTargetInfluences[d.currentFrame]=g}}};Zc.prototype=Object.create(B.prototype);Zc.prototype.constructor=Zc;Zc.prototype.isImmediateRenderObject=!0;$c.prototype=Object.create(fa.prototype);$c.prototype.constructor=$c;$c.prototype.update=function(){var a=new p,b=new p,c=new Ba;return function(){var d=
 ["a","b","c"];this.object.updateMatrixWorld(!0);c.getNormalMatrix(this.object.matrixWorld);var e=this.object.matrixWorld,f=this.geometry.attributes.position,g=this.object.geometry;if(g&&g.isGeometry)for(var h=g.vertices,k=g.faces,m=g=0,p=k.length;m<p;m++)for(var q=k[m],n=0,r=q.vertexNormals.length;n<r;n++){var y=q.vertexNormals[n];a.copy(h[q[d[n]]]).applyMatrix4(e);b.copy(y).applyMatrix3(c).normalize().multiplyScalar(this.size).add(a);f.setXYZ(g,a.x,a.y,a.z);g+=1;f.setXYZ(g,b.x,b.y,b.z);g+=1}else if(g&&
 ["a","b","c"];this.object.updateMatrixWorld(!0);c.getNormalMatrix(this.object.matrixWorld);var e=this.object.matrixWorld,f=this.geometry.attributes.position,g=this.object.geometry;if(g&&g.isGeometry)for(var h=g.vertices,k=g.faces,m=g=0,p=k.length;m<p;m++)for(var q=k[m],n=0,r=q.vertexNormals.length;n<r;n++){var y=q.vertexNormals[n];a.copy(h[q[d[n]]]).applyMatrix4(e);b.copy(y).applyMatrix3(c).normalize().multiplyScalar(this.size).add(a);f.setXYZ(g,a.x,a.y,a.z);g+=1;f.setXYZ(g,b.x,b.y,b.z);g+=1}else if(g&&
 g.isBufferGeometry)for(d=g.attributes.position,h=g.attributes.normal,n=g=0,r=d.count;n<r;n++)a.set(d.getX(n),d.getY(n),d.getZ(n)).applyMatrix4(e),b.set(h.getX(n),h.getY(n),h.getZ(n)),b.applyMatrix3(c).normalize().multiplyScalar(this.size).add(a),f.setXYZ(g,a.x,a.y,a.z),g+=1,f.setXYZ(g,b.x,b.y,b.z),g+=1;f.needsUpdate=!0;return this}}();jc.prototype=Object.create(B.prototype);jc.prototype.constructor=jc;jc.prototype.dispose=function(){this.cone.geometry.dispose();this.cone.material.dispose()};jc.prototype.update=
 g.isBufferGeometry)for(d=g.attributes.position,h=g.attributes.normal,n=g=0,r=d.count;n<r;n++)a.set(d.getX(n),d.getY(n),d.getZ(n)).applyMatrix4(e),b.set(h.getX(n),h.getY(n),h.getZ(n)),b.applyMatrix3(c).normalize().multiplyScalar(this.size).add(a),f.setXYZ(g,a.x,a.y,a.z),g+=1,f.setXYZ(g,b.x,b.y,b.z),g+=1;f.needsUpdate=!0;return this}}();jc.prototype=Object.create(B.prototype);jc.prototype.constructor=jc;jc.prototype.dispose=function(){this.cone.geometry.dispose();this.cone.material.dispose()};jc.prototype.update=
 function(){var a=new p,b=new p;return function(){var c=this.light.distance?this.light.distance:1E3,d=c*Math.tan(this.light.angle);this.cone.scale.set(d,d,c);a.setFromMatrixPosition(this.light.matrixWorld);b.setFromMatrixPosition(this.light.target.matrixWorld);this.cone.lookAt(b.sub(a));this.cone.material.color.copy(this.light.color).multiplyScalar(this.light.intensity)}}();kc.prototype=Object.create(fa.prototype);kc.prototype.constructor=kc;kc.prototype.getBoneList=function(a){var b=[];a&&a.isBone&&
 function(){var a=new p,b=new p;return function(){var c=this.light.distance?this.light.distance:1E3,d=c*Math.tan(this.light.angle);this.cone.scale.set(d,d,c);a.setFromMatrixPosition(this.light.matrixWorld);b.setFromMatrixPosition(this.light.target.matrixWorld);this.cone.lookAt(b.sub(a));this.cone.material.color.copy(this.light.color).multiplyScalar(this.light.intensity)}}();kc.prototype=Object.create(fa.prototype);kc.prototype.constructor=kc;kc.prototype.getBoneList=function(a){var b=[];a&&a.isBone&&
@@ -782,7 +782,7 @@ e.setXYZ(g+1,a.x,a.y,a.z),g+=2)}d.getAttribute("position").needsUpdate=!0}}();lc
 this.children[1].geometry.dispose();this.children[1].material.dispose()};mc.prototype.update=function(){var a=new p,b=new p;return function(){var c=this.children[0],d=this.children[1];if(this.light.target){a.setFromMatrixPosition(this.light.matrixWorld);b.setFromMatrixPosition(this.light.target.matrixWorld);var e=b.clone().sub(a);c.lookAt(e);d.lookAt(e)}c.material.color.copy(this.light.color).multiplyScalar(this.light.intensity);d.material.color.copy(this.light.color).multiplyScalar(this.light.intensity);
 this.children[1].geometry.dispose();this.children[1].material.dispose()};mc.prototype.update=function(){var a=new p,b=new p;return function(){var c=this.children[0],d=this.children[1];if(this.light.target){a.setFromMatrixPosition(this.light.matrixWorld);b.setFromMatrixPosition(this.light.target.matrixWorld);var e=b.clone().sub(a);c.lookAt(e);d.lookAt(e)}c.material.color.copy(this.light.color).multiplyScalar(this.light.intensity);d.material.color.copy(this.light.color).multiplyScalar(this.light.intensity);
 var d=.5*this.light.width,e=.5*this.light.height,c=c.geometry.getAttribute("position"),f=c.array;f[0]=d;f[1]=-e;f[2]=0;f[3]=d;f[4]=e;f[5]=0;f[6]=-d;f[7]=e;f[8]=0;f[9]=-d;f[10]=e;f[11]=0;f[12]=-d;f[13]=-e;f[14]=0;f[15]=d;f[16]=-e;f[17]=0;c.needsUpdate=!0}}();nc.prototype=Object.create(B.prototype);nc.prototype.constructor=nc;nc.prototype.dispose=function(){this.children[0].geometry.dispose();this.children[0].material.dispose()};nc.prototype.update=function(){var a=new p,b=new I,c=new I;return function(){var d=
 var d=.5*this.light.width,e=.5*this.light.height,c=c.geometry.getAttribute("position"),f=c.array;f[0]=d;f[1]=-e;f[2]=0;f[3]=d;f[4]=e;f[5]=0;f[6]=-d;f[7]=e;f[8]=0;f[9]=-d;f[10]=e;f[11]=0;f[12]=-d;f[13]=-e;f[14]=0;f[15]=d;f[16]=-e;f[17]=0;c.needsUpdate=!0}}();nc.prototype=Object.create(B.prototype);nc.prototype.constructor=nc;nc.prototype.dispose=function(){this.children[0].geometry.dispose();this.children[0].material.dispose()};nc.prototype.update=function(){var a=new p,b=new I,c=new I;return function(){var d=
 this.children[0],e=d.geometry.getAttribute("color");b.copy(this.light.color).multiplyScalar(this.light.intensity);c.copy(this.light.groundColor).multiplyScalar(this.light.intensity);for(var f=0,g=e.count;f<g;f++){var h=f<g/2?b:c;e.setXYZ(f,h.r,h.g,h.b)}d.lookAt(a.setFromMatrixPosition(this.light.matrixWorld).negate());e.needsUpdate=!0}}();ad.prototype=Object.create(fa.prototype);ad.prototype.constructor=ad;Hd.prototype=Object.create(fa.prototype);Hd.prototype.constructor=Hd;bd.prototype=Object.create(fa.prototype);
 this.children[0],e=d.geometry.getAttribute("color");b.copy(this.light.color).multiplyScalar(this.light.intensity);c.copy(this.light.groundColor).multiplyScalar(this.light.intensity);for(var f=0,g=e.count;f<g;f++){var h=f<g/2?b:c;e.setXYZ(f,h.r,h.g,h.b)}d.lookAt(a.setFromMatrixPosition(this.light.matrixWorld).negate());e.needsUpdate=!0}}();ad.prototype=Object.create(fa.prototype);ad.prototype.constructor=ad;Hd.prototype=Object.create(fa.prototype);Hd.prototype.constructor=Hd;bd.prototype=Object.create(fa.prototype);
-bd.prototype.constructor=bd;bd.prototype.update=function(){var a=new p,b=new p,c=new Fa;return function(){this.object.updateMatrixWorld(!0);c.getNormalMatrix(this.object.matrixWorld);for(var d=this.object.matrixWorld,e=this.geometry.attributes.position,f=this.object.geometry,g=f.vertices,f=f.faces,h=0,k=0,m=f.length;k<m;k++){var p=f[k],q=p.normal;a.copy(g[p.a]).add(g[p.b]).add(g[p.c]).divideScalar(3).applyMatrix4(d);b.copy(q).applyMatrix3(c).normalize().multiplyScalar(this.size).add(a);e.setXYZ(h,
+bd.prototype.constructor=bd;bd.prototype.update=function(){var a=new p,b=new p,c=new Ba;return function(){this.object.updateMatrixWorld(!0);c.getNormalMatrix(this.object.matrixWorld);for(var d=this.object.matrixWorld,e=this.geometry.attributes.position,f=this.object.geometry,g=f.vertices,f=f.faces,h=0,k=0,m=f.length;k<m;k++){var p=f[k],q=p.normal;a.copy(g[p.a]).add(g[p.b]).add(g[p.c]).divideScalar(3).applyMatrix4(d);b.copy(q).applyMatrix3(c).normalize().multiplyScalar(this.size).add(a);e.setXYZ(h,
 a.x,a.y,a.z);h+=1;e.setXYZ(h,b.x,b.y,b.z);h+=1}e.needsUpdate=!0;return this}}();oc.prototype=Object.create(B.prototype);oc.prototype.constructor=oc;oc.prototype.dispose=function(){var a=this.children[0],b=this.children[1];a.geometry.dispose();a.material.dispose();b.geometry.dispose();b.material.dispose()};oc.prototype.update=function(){var a=new p,b=new p,c=new p;return function(){a.setFromMatrixPosition(this.light.matrixWorld);b.setFromMatrixPosition(this.light.target.matrixWorld);c.subVectors(b,
 a.x,a.y,a.z);h+=1;e.setXYZ(h,b.x,b.y,b.z);h+=1}e.needsUpdate=!0;return this}}();oc.prototype=Object.create(B.prototype);oc.prototype.constructor=oc;oc.prototype.dispose=function(){var a=this.children[0],b=this.children[1];a.geometry.dispose();a.material.dispose();b.geometry.dispose();b.material.dispose()};oc.prototype.update=function(){var a=new p,b=new p,c=new p;return function(){a.setFromMatrixPosition(this.light.matrixWorld);b.setFromMatrixPosition(this.light.target.matrixWorld);c.subVectors(b,
 a);var d=this.children[0],e=this.children[1];d.lookAt(c);d.material.color.copy(this.light.color).multiplyScalar(this.light.intensity);e.lookAt(c);e.scale.z=c.length()}}();cd.prototype=Object.create(fa.prototype);cd.prototype.constructor=cd;cd.prototype.update=function(){function a(a,g,h,k){d.set(g,h,k).unproject(e);a=c[a];if(void 0!==a)for(g=b.getAttribute("position"),h=0,k=a.length;h<k;h++)g.setXYZ(a[h],d.x,d.y,d.z)}var b,c,d=new p,e=new qa;return function(){b=this.geometry;c=this.pointMap;e.projectionMatrix.copy(this.camera.projectionMatrix);
 a);var d=this.children[0],e=this.children[1];d.lookAt(c);d.material.color.copy(this.light.color).multiplyScalar(this.light.intensity);e.lookAt(c);e.scale.z=c.length()}}();cd.prototype=Object.create(fa.prototype);cd.prototype.constructor=cd;cd.prototype.update=function(){function a(a,g,h,k){d.set(g,h,k).unproject(e);a=c[a];if(void 0!==a)for(g=b.getAttribute("position"),h=0,k=a.length;h<k;h++)g.setXYZ(a[h],d.x,d.y,d.z)}var b,c,d=new p,e=new qa;return function(){b=this.geometry;c=this.pointMap;e.projectionMatrix.copy(this.camera.projectionMatrix);
 a("c",0,0,-1);a("t",0,0,1);a("n1",-1,-1,-1);a("n2",1,-1,-1);a("n3",-1,1,-1);a("n4",1,1,-1);a("f1",-1,-1,1);a("f2",1,-1,1);a("f3",-1,1,1);a("f4",1,1,1);a("u1",.7,1.1,-1);a("u2",-.7,1.1,-1);a("u3",0,2,-1);a("cf1",-1,0,1);a("cf2",1,0,1);a("cf3",0,-1,1);a("cf4",0,1,1);a("cn1",-1,0,-1);a("cn2",1,0,-1);a("cn3",0,-1,-1);a("cn4",0,1,-1);b.getAttribute("position").needsUpdate=!0}}();pc.prototype=Object.create(fa.prototype);pc.prototype.constructor=pc;pc.prototype.update=function(){var a=new Ua;return function(b){b&&
 a("c",0,0,-1);a("t",0,0,1);a("n1",-1,-1,-1);a("n2",1,-1,-1);a("n3",-1,1,-1);a("n4",1,1,-1);a("f1",-1,-1,1);a("f2",1,-1,1);a("f3",-1,1,1);a("f4",1,1,1);a("u1",.7,1.1,-1);a("u2",-.7,1.1,-1);a("u3",0,2,-1);a("cf1",-1,0,1);a("cf2",1,0,1);a("cf3",0,-1,1);a("cf4",0,1,1);a("cn1",-1,0,-1);a("cn2",1,0,-1);a("cn3",0,-1,-1);a("cn4",0,1,-1);b.getAttribute("position").needsUpdate=!0}}();pc.prototype=Object.create(fa.prototype);pc.prototype.constructor=pc;pc.prototype.update=function(){var a=new Ua;return function(b){b&&
@@ -796,14 +796,14 @@ Kd;za.create=function(a,b){console.log("THREE.Curve.create() has been deprecated
 reparametrizeByArcLength:function(a){console.error("THREE.Spline: .reparametrizeByArcLength() has been removed.")}});ad.prototype.setColors=function(){console.error("THREE.GridHelper: setColors() has been deprecated, pass them in the constructor instead.")};Object.assign(hd.prototype,{center:function(a){console.warn("THREE.Box2: .center() has been renamed to .getCenter().");return this.getCenter(a)},empty:function(){console.warn("THREE.Box2: .empty() has been renamed to .isEmpty().");return this.isEmpty()},
 reparametrizeByArcLength:function(a){console.error("THREE.Spline: .reparametrizeByArcLength() has been removed.")}});ad.prototype.setColors=function(){console.error("THREE.GridHelper: setColors() has been deprecated, pass them in the constructor instead.")};Object.assign(hd.prototype,{center:function(a){console.warn("THREE.Box2: .center() has been renamed to .getCenter().");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(Ua.prototype,{center:function(a){console.warn("THREE.Box3: .center() has been renamed to .getCenter().");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.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(Ua.prototype,{center:function(a){console.warn("THREE.Box3: .center() has been renamed to .getCenter().");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().");return this.getSize(a)}});Eb.prototype.center=function(a){console.warn("THREE.Line3: .center() has been renamed to .getCenter().");
 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().");return this.getSize(a)}});Eb.prototype.center=function(a){console.warn("THREE.Line3: .center() has been renamed to .getCenter().");
-return this.getCenter(a)};T.random16=function(){console.warn("THREE.Math.random16() has been deprecated. Use Math.random() instead.");return Math.random()};Object.assign(Fa.prototype,{flattenToArrayOffset:function(a,b){console.warn("THREE.Matrix3: .flattenToArrayOffset() has been deprecated. Use .toArray() instead.");return this.toArray(a,b)},multiplyVector3:function(a){console.warn("THREE.Matrix3: .multiplyVector3() has been removed. Use vector.applyMatrix3( matrix ) instead.");return a.applyMatrix3(this)},
+return this.getCenter(a)};T.random16=function(){console.warn("THREE.Math.random16() has been deprecated. Use Math.random() instead.");return Math.random()};Object.assign(Ba.prototype,{flattenToArrayOffset:function(a,b){console.warn("THREE.Matrix3: .flattenToArrayOffset() has been deprecated. Use .toArray() instead.");return this.toArray(a,b)},multiplyVector3:function(a){console.warn("THREE.Matrix3: .multiplyVector3() has been removed. Use vector.applyMatrix3( matrix ) instead.");return a.applyMatrix3(this)},
 multiplyVector3Array:function(a){console.warn("THREE.Matrix3: .multiplyVector3Array() has been renamed. Use matrix.applyToVector3Array( array ) instead.");return this.applyToVector3Array(a)},applyToBuffer:function(a,b,c){console.warn("THREE.Matrix3: .applyToBuffer() has been removed. Use matrix.applyToBufferAttribute( attribute ) instead.");return this.applyToBufferAttribute(a)},applyToVector3Array:function(a,b,c){console.error("THREE.Matrix3: .applyToVector3Array() has been removed.")}});Object.assign(R.prototype,
 multiplyVector3Array:function(a){console.warn("THREE.Matrix3: .multiplyVector3Array() has been renamed. Use matrix.applyToVector3Array( array ) instead.");return this.applyToVector3Array(a)},applyToBuffer:function(a,b,c){console.warn("THREE.Matrix3: .applyToBuffer() has been removed. Use matrix.applyToBufferAttribute( attribute ) instead.");return this.applyToBufferAttribute(a)},applyToVector3Array:function(a,b,c){console.error("THREE.Matrix3: .applyToVector3Array() has been removed.")}});Object.assign(R.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(){var a;return function(){void 0===a&&(a=new p);console.warn("THREE.Matrix4: .getPosition() has been removed. Use Vector3.setFromMatrixPosition( matrix ) instead.");return a.setFromMatrixColumn(this,
 {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(){var a;return function(){void 0===a&&(a=new p);console.warn("THREE.Matrix4: .getPosition() has been removed. Use Vector3.setFromMatrixPosition( matrix ) instead.");return a.setFromMatrixColumn(this,
 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.");
 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.");
 return a.applyMatrix4(this)},multiplyVector3Array:function(a){console.warn("THREE.Matrix4: .multiplyVector3Array() has been renamed. Use matrix.applyToVector3Array( array ) instead.");return this.applyToVector3Array(a)},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)},multiplyVector3Array:function(a){console.warn("THREE.Matrix4: .multiplyVector3Array() has been renamed. Use matrix.applyToVector3Array( array ) instead.");return this.applyToVector3Array(a)},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.")},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.")},applyToBuffer:function(a,b,c){console.warn("THREE.Matrix4: .applyToBuffer() has been removed. Use matrix.applyToBufferAttribute( attribute ) instead.");
 return a.applyMatrix4(this)},translate:function(){console.error("THREE.Matrix4: .translate() has been removed.")},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.")},applyToBuffer:function(a,b,c){console.warn("THREE.Matrix4: .applyToBuffer() has been removed. Use matrix.applyToBufferAttribute( attribute ) instead.");
 return this.applyToBufferAttribute(a)},applyToVector3Array:function(a,b,c){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)}});na.prototype.isIntersectionLine=function(a){console.warn("THREE.Plane: .isIntersectionLine() has been renamed to .intersectsLine().");return this.intersectsLine(a)};
 return this.applyToBufferAttribute(a)},applyToVector3Array:function(a,b,c){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)}});na.prototype.isIntersectionLine=function(a){console.warn("THREE.Plane: .isIntersectionLine() has been renamed to .intersectsLine().");return this.intersectsLine(a)};
-ma.prototype.multiplyVector3=function(a){console.warn("THREE.Quaternion: .multiplyVector3() has been removed. Use is now vector.applyQuaternion( quaternion ) instead.");return a.applyQuaternion(this)};Object.assign(db.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)},
+ma.prototype.multiplyVector3=function(a){console.warn("THREE.Quaternion: .multiplyVector3() has been removed. Use is now vector.applyQuaternion( quaternion ) instead.");return a.applyQuaternion(this)};Object.assign(eb.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().");return this.intersectsSphere(a)}});Object.assign(yb.prototype,{extrude:function(a){console.warn("THREE.Shape: .extrude() has been removed. Use ExtrudeGeometry() instead.");return new va(this,a)},makeGeometry:function(a){console.warn("THREE.Shape: .makeGeometry() has been removed. Use ShapeGeometry() instead.");return new Vb(this,a)}});Object.assign(D.prototype,{fromAttribute:function(a,
 isIntersectionSphere:function(a){console.warn("THREE.Ray: .isIntersectionSphere() has been renamed to .intersectsSphere().");return this.intersectsSphere(a)}});Object.assign(yb.prototype,{extrude:function(a){console.warn("THREE.Shape: .extrude() has been removed. Use ExtrudeGeometry() instead.");return new va(this,a)},makeGeometry:function(a){console.warn("THREE.Shape: .makeGeometry() has been removed. Use ShapeGeometry() instead.");return new Vb(this,a)}});Object.assign(D.prototype,{fromAttribute:function(a,
 b,c){console.error("THREE.Vector2: .fromAttribute() has been renamed to .fromBufferAttribute().");return this.fromBufferAttribute(a,b,c)}});Object.assign(p.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.")},getPositionFromMatrix:function(a){console.warn("THREE.Vector3: .getPositionFromMatrix() has been renamed to .setFromMatrixPosition().");
 b,c){console.error("THREE.Vector2: .fromAttribute() has been renamed to .fromBufferAttribute().");return this.fromBufferAttribute(a,b,c)}});Object.assign(p.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.")},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,a)},applyProjection:function(a){console.warn("THREE.Vector3: .applyProjection() has been removed. Use .applyMatrix4( m ) instead.");return this.applyMatrix4(a)},
 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,a)},applyProjection:function(a){console.warn("THREE.Vector3: .applyProjection() has been removed. Use .applyMatrix4( m ) instead.");return this.applyMatrix4(a)},
@@ -829,26 +829,26 @@ return this.texture.magFilter},set:function(a){console.warn("THREE.WebGLRenderTa
 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},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},
 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},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.");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.");
 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.");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.");this.texture.generateMipmaps=a}}});fc.prototype.load=function(a){console.warn("THREE.Audio: .load has been deprecated. Use THREE.AudioLoader instead.");var b=this;(new ce).load(a,function(a){b.setBuffer(a)});return this};
 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.");this.texture.generateMipmaps=a}}});fc.prototype.load=function(a){console.warn("THREE.Audio: .load has been deprecated. Use THREE.AudioLoader instead.");var b=this;(new ce).load(a,function(a){b.setBuffer(a)});return this};
-ge.prototype.getData=function(){console.warn("THREE.AudioAnalyser: .getData() is now .getFrequencyData().");return this.getFrequencyData()};k.WebGLRenderTargetCube=Cb;k.WebGLRenderTarget=Bb;k.WebGLRenderer=Ud;k.ShaderLib=$a;k.UniformsLib=L;k.UniformsUtils=Ka;k.ShaderChunk=Z;k.FogExp2=Hb;k.Fog=Ib;k.Scene=jd;k.LensFlare=Vd;k.Sprite=zc;k.LOD=Ac;k.SkinnedMesh=ld;k.Skeleton=Bc;k.Bone=kd;k.Mesh=ya;k.LineSegments=fa;k.LineLoop=md;k.Line=Ba;k.Points=Jb;k.Group=Cc;k.VideoTexture=nd;k.DataTexture=bb;k.CompressedTexture=
-Kb;k.CubeTexture=Xa;k.CanvasTexture=od;k.DepthTexture=Dc;k.Texture=ba;k.CompressedTextureLoader=Ie;k.DataTextureLoader=Xd;k.CubeTextureLoader=Yd;k.TextureLoader=pd;k.ObjectLoader=Je;k.MaterialLoader=Ed;k.BufferGeometryLoader=Zd;k.DefaultLoadingManager=Da;k.LoadingManager=Wd;k.JSONLoader=$d;k.ImageLoader=Uc;k.FontLoader=Le;k.FileLoader=Ia;k.Loader=cc;k.Cache=gd;k.AudioLoader=ce;k.SpotLightShadow=rd;k.SpotLight=sd;k.PointLight=td;k.RectAreaLight=xd;k.HemisphereLight=qd;k.DirectionalLightShadow=ud;k.DirectionalLight=
+ge.prototype.getData=function(){console.warn("THREE.AudioAnalyser: .getData() is now .getFrequencyData().");return this.getFrequencyData()};k.WebGLRenderTargetCube=Cb;k.WebGLRenderTarget=Bb;k.WebGLRenderer=Ud;k.ShaderLib=$a;k.UniformsLib=L;k.UniformsUtils=Ka;k.ShaderChunk=Z;k.FogExp2=Hb;k.Fog=Ib;k.Scene=jd;k.LensFlare=Vd;k.Sprite=zc;k.LOD=Ac;k.SkinnedMesh=ld;k.Skeleton=Bc;k.Bone=kd;k.Mesh=ya;k.LineSegments=fa;k.LineLoop=md;k.Line=Ca;k.Points=Jb;k.Group=Cc;k.VideoTexture=nd;k.DataTexture=cb;k.CompressedTexture=
+Kb;k.CubeTexture=Xa;k.CanvasTexture=od;k.DepthTexture=Dc;k.Texture=ba;k.CompressedTextureLoader=Ie;k.DataTextureLoader=Xd;k.CubeTextureLoader=Yd;k.TextureLoader=pd;k.ObjectLoader=Je;k.MaterialLoader=Ed;k.BufferGeometryLoader=Zd;k.DefaultLoadingManager=Ea;k.LoadingManager=Wd;k.JSONLoader=$d;k.ImageLoader=Uc;k.FontLoader=Le;k.FileLoader=Ia;k.Loader=cc;k.Cache=gd;k.AudioLoader=ce;k.SpotLightShadow=rd;k.SpotLight=sd;k.PointLight=td;k.RectAreaLight=xd;k.HemisphereLight=qd;k.DirectionalLightShadow=ud;k.DirectionalLight=
 vd;k.AmbientLight=wd;k.LightShadow=sb;k.Light=ka;k.StereoCamera=Me;k.PerspectiveCamera=Ga;k.OrthographicCamera=Gb;k.CubeCamera=Fd;k.Camera=qa;k.AudioListener=de;k.PositionalAudio=fe;k.AudioContext=ee;k.AudioAnalyser=ge;k.Audio=fc;k.VectorKeyframeTrack=ac;k.StringKeyframeTrack=Bd;k.QuaternionKeyframeTrack=Wc;k.NumberKeyframeTrack=bc;k.ColorKeyframeTrack=Dd;k.BooleanKeyframeTrack=Cd;k.PropertyMixer=he;k.PropertyBinding=ra;k.KeyframeTrack=ub;k.AnimationUtils=pa;k.AnimationObjectGroup=Oe;k.AnimationMixer=
 vd;k.AmbientLight=wd;k.LightShadow=sb;k.Light=ka;k.StereoCamera=Me;k.PerspectiveCamera=Ga;k.OrthographicCamera=Gb;k.CubeCamera=Fd;k.Camera=qa;k.AudioListener=de;k.PositionalAudio=fe;k.AudioContext=ee;k.AudioAnalyser=ge;k.Audio=fc;k.VectorKeyframeTrack=ac;k.StringKeyframeTrack=Bd;k.QuaternionKeyframeTrack=Wc;k.NumberKeyframeTrack=bc;k.ColorKeyframeTrack=Dd;k.BooleanKeyframeTrack=Cd;k.PropertyMixer=he;k.PropertyBinding=ra;k.KeyframeTrack=ub;k.AnimationUtils=pa;k.AnimationObjectGroup=Oe;k.AnimationMixer=
-Qe;k.AnimationClip=Ea;k.Uniform=Gd;k.InstancedBufferGeometry=zb;k.BufferGeometry=J;k.GeometryIdCount=function(){return Qd++};k.Geometry=S;k.InterleavedBufferAttribute=ie;k.InstancedInterleavedBuffer=hc;k.InterleavedBuffer=gc;k.InstancedBufferAttribute=ic;k.Face3=ia;k.Object3D=B;k.Raycaster=Re;k.Layers=Od;k.EventDispatcher=xa;k.Clock=Te;k.QuaternionLinearInterpolant=Ad;k.LinearInterpolant=Vc;k.DiscreteInterpolant=zd;k.CubicInterpolant=yd;k.Interpolant=oa;k.Triangle=Va;k.Math=T;k.Spherical=Ue;k.Cylindrical=
-Ve;k.Plane=na;k.Frustum=id;k.Sphere=Ja;k.Ray=db;k.Matrix4=R;k.Matrix3=Fa;k.Box3=Ua;k.Box2=hd;k.Line3=Eb;k.Euler=ab;k.Vector4=ga;k.Vector3=p;k.Vector2=D;k.Quaternion=ma;k.Color=I;k.MorphBlendMesh=ea;k.ImmediateRenderObject=Zc;k.VertexNormalsHelper=$c;k.SpotLightHelper=jc;k.SkeletonHelper=kc;k.PointLightHelper=lc;k.RectAreaLightHelper=mc;k.HemisphereLightHelper=nc;k.GridHelper=ad;k.PolarGridHelper=Hd;k.FaceNormalsHelper=bd;k.DirectionalLightHelper=oc;k.CameraHelper=cd;k.BoxHelper=pc;k.ArrowHelper=Ab;
+Qe;k.AnimationClip=Fa;k.Uniform=Gd;k.InstancedBufferGeometry=zb;k.BufferGeometry=J;k.GeometryIdCount=function(){return Qd++};k.Geometry=S;k.InterleavedBufferAttribute=ie;k.InstancedInterleavedBuffer=hc;k.InterleavedBuffer=gc;k.InstancedBufferAttribute=ic;k.Face3=ia;k.Object3D=B;k.Raycaster=Re;k.Layers=Od;k.EventDispatcher=xa;k.Clock=Te;k.QuaternionLinearInterpolant=Ad;k.LinearInterpolant=Vc;k.DiscreteInterpolant=zd;k.CubicInterpolant=yd;k.Interpolant=oa;k.Triangle=Va;k.Math=T;k.Spherical=Ue;k.Cylindrical=
+Ve;k.Plane=na;k.Frustum=id;k.Sphere=Ja;k.Ray=eb;k.Matrix4=R;k.Matrix3=Ba;k.Box3=Ua;k.Box2=hd;k.Line3=Eb;k.Euler=ab;k.Vector4=ga;k.Vector3=p;k.Vector2=D;k.Quaternion=ma;k.Color=I;k.MorphBlendMesh=ea;k.ImmediateRenderObject=Zc;k.VertexNormalsHelper=$c;k.SpotLightHelper=jc;k.SkeletonHelper=kc;k.PointLightHelper=lc;k.RectAreaLightHelper=mc;k.HemisphereLightHelper=nc;k.GridHelper=ad;k.PolarGridHelper=Hd;k.FaceNormalsHelper=bd;k.DirectionalLightHelper=oc;k.CameraHelper=cd;k.BoxHelper=pc;k.ArrowHelper=Ab;
 k.AxisHelper=Jd;k.CatmullRomCurve3=Aa;k.CubicBezierCurve3=dd;k.QuadraticBezierCurve3=ed;k.LineCurve3=fd;k.ArcCurve=Kd;k.EllipseCurve=Sa;k.SplineCurve=xb;k.CubicBezierCurve=dc;k.QuadraticBezierCurve=ec;k.LineCurve=Ra;k.Shape=yb;k.Path=Yc;k.ShapePath=ae;k.Font=be;k.CurvePath=Xc;k.Curve=za;k.ShapeUtils=Pa;k.SceneUtils={createMultiMaterialObject:function(a,b){for(var c=new Cc,d=0,e=b.length;d<e;d++)c.add(new ya(a,b[d]));return c},detach:function(a,b,c){a.applyMatrix(b.matrixWorld);b.remove(a);c.add(a)},
 k.AxisHelper=Jd;k.CatmullRomCurve3=Aa;k.CubicBezierCurve3=dd;k.QuadraticBezierCurve3=ed;k.LineCurve3=fd;k.ArcCurve=Kd;k.EllipseCurve=Sa;k.SplineCurve=xb;k.CubicBezierCurve=dc;k.QuadraticBezierCurve=ec;k.LineCurve=Ra;k.Shape=yb;k.Path=Yc;k.ShapePath=ae;k.Font=be;k.CurvePath=Xc;k.Curve=za;k.ShapeUtils=Pa;k.SceneUtils={createMultiMaterialObject:function(a,b){for(var c=new Cc,d=0,e=b.length;d<e;d++)c.add(new ya(a,b[d]));return c},detach:function(a,b,c){a.applyMatrix(b.matrixWorld);b.remove(a);c.add(a)},
 attach:function(a,b,c){var d=new R;d.getInverse(c.matrixWorld);a.applyMatrix(d);b.remove(a);c.add(a)}};k.WireframeGeometry=Lb;k.ParametricGeometry=Ec;k.ParametricBufferGeometry=Mb;k.TetrahedronGeometry=Gc;k.TetrahedronBufferGeometry=Nb;k.OctahedronGeometry=Hc;k.OctahedronBufferGeometry=kb;k.IcosahedronGeometry=Ic;k.IcosahedronBufferGeometry=Ob;k.DodecahedronGeometry=Jc;k.DodecahedronBufferGeometry=Pb;k.PolyhedronGeometry=Fc;k.PolyhedronBufferGeometry=da;k.TubeGeometry=Kc;k.TubeBufferGeometry=Qb;k.TorusKnotGeometry=
 attach:function(a,b,c){var d=new R;d.getInverse(c.matrixWorld);a.applyMatrix(d);b.remove(a);c.add(a)}};k.WireframeGeometry=Lb;k.ParametricGeometry=Ec;k.ParametricBufferGeometry=Mb;k.TetrahedronGeometry=Gc;k.TetrahedronBufferGeometry=Nb;k.OctahedronGeometry=Hc;k.OctahedronBufferGeometry=kb;k.IcosahedronGeometry=Ic;k.IcosahedronBufferGeometry=Ob;k.DodecahedronGeometry=Jc;k.DodecahedronBufferGeometry=Pb;k.PolyhedronGeometry=Fc;k.PolyhedronBufferGeometry=da;k.TubeGeometry=Kc;k.TubeBufferGeometry=Qb;k.TorusKnotGeometry=
-Lc;k.TorusKnotBufferGeometry=Rb;k.TorusGeometry=Mc;k.TorusBufferGeometry=Sb;k.TextGeometry=Nc;k.SphereGeometry=Oc;k.SphereBufferGeometry=lb;k.RingGeometry=Pc;k.RingBufferGeometry=Tb;k.PlaneGeometry=wc;k.PlaneBufferGeometry=hb;k.LatheGeometry=Qc;k.LatheBufferGeometry=Ub;k.ShapeGeometry=Vb;k.ShapeBufferGeometry=Wb;k.ExtrudeGeometry=va;k.EdgesGeometry=Xb;k.ConeGeometry=Rc;k.ConeBufferGeometry=Sc;k.CylinderGeometry=mb;k.CylinderBufferGeometry=Na;k.CircleGeometry=Tc;k.CircleBufferGeometry=Yb;k.BoxGeometry=
-Fb;k.BoxBufferGeometry=gb;k.ShadowMaterial=Zb;k.SpriteMaterial=jb;k.RawShaderMaterial=$b;k.ShaderMaterial=Ha;k.PointsMaterial=Ca;k.MeshPhysicalMaterial=nb;k.MeshStandardMaterial=wa;k.MeshPhongMaterial=Qa;k.MeshToonMaterial=ob;k.MeshNormalMaterial=pb;k.MeshLambertMaterial=qb;k.MeshDepthMaterial=Za;k.MeshBasicMaterial=La;k.LineDashedMaterial=rb;k.LineBasicMaterial=ha;k.Material=W;k.Float64BufferAttribute=vc;k.Float32BufferAttribute=E;k.Uint32BufferAttribute=fb;k.Int32BufferAttribute=uc;k.Uint16BufferAttribute=
-eb;k.Int16BufferAttribute=tc;k.Uint8ClampedBufferAttribute=sc;k.Uint8BufferAttribute=rc;k.Int8BufferAttribute=qc;k.BufferAttribute=V;k.REVISION="85dev";k.MOUSE={LEFT:0,MIDDLE:1,RIGHT:2};k.CullFaceNone=0;k.CullFaceBack=1;k.CullFaceFront=2;k.CullFaceFrontBack=3;k.FrontFaceDirectionCW=0;k.FrontFaceDirectionCCW=1;k.BasicShadowMap=0;k.PCFShadowMap=1;k.PCFSoftShadowMap=2;k.FrontSide=0;k.BackSide=1;k.DoubleSide=2;k.FlatShading=1;k.SmoothShading=2;k.NoColors=0;k.FaceColors=1;k.VertexColors=2;k.NoBlending=
+Lc;k.TorusKnotBufferGeometry=Rb;k.TorusGeometry=Mc;k.TorusBufferGeometry=Sb;k.TextGeometry=Nc;k.SphereGeometry=Oc;k.SphereBufferGeometry=lb;k.RingGeometry=Pc;k.RingBufferGeometry=Tb;k.PlaneGeometry=wc;k.PlaneBufferGeometry=ib;k.LatheGeometry=Qc;k.LatheBufferGeometry=Ub;k.ShapeGeometry=Vb;k.ShapeBufferGeometry=Wb;k.ExtrudeGeometry=va;k.EdgesGeometry=Xb;k.ConeGeometry=Rc;k.ConeBufferGeometry=Sc;k.CylinderGeometry=mb;k.CylinderBufferGeometry=Na;k.CircleGeometry=Tc;k.CircleBufferGeometry=Yb;k.BoxGeometry=
+Fb;k.BoxBufferGeometry=hb;k.ShadowMaterial=Zb;k.SpriteMaterial=bb;k.RawShaderMaterial=$b;k.ShaderMaterial=Ha;k.PointsMaterial=Da;k.MeshPhysicalMaterial=nb;k.MeshStandardMaterial=wa;k.MeshPhongMaterial=Qa;k.MeshToonMaterial=ob;k.MeshNormalMaterial=pb;k.MeshLambertMaterial=qb;k.MeshDepthMaterial=Za;k.MeshBasicMaterial=La;k.LineDashedMaterial=rb;k.LineBasicMaterial=ha;k.Material=W;k.Float64BufferAttribute=vc;k.Float32BufferAttribute=E;k.Uint32BufferAttribute=gb;k.Int32BufferAttribute=uc;k.Uint16BufferAttribute=
+fb;k.Int16BufferAttribute=tc;k.Uint8ClampedBufferAttribute=sc;k.Uint8BufferAttribute=rc;k.Int8BufferAttribute=qc;k.BufferAttribute=V;k.REVISION="85dev";k.MOUSE={LEFT:0,MIDDLE:1,RIGHT:2};k.CullFaceNone=0;k.CullFaceBack=1;k.CullFaceFront=2;k.CullFaceFrontBack=3;k.FrontFaceDirectionCW=0;k.FrontFaceDirectionCCW=1;k.BasicShadowMap=0;k.PCFShadowMap=1;k.PCFSoftShadowMap=2;k.FrontSide=0;k.BackSide=1;k.DoubleSide=2;k.FlatShading=1;k.SmoothShading=2;k.NoColors=0;k.FaceColors=1;k.VertexColors=2;k.NoBlending=
 0;k.NormalBlending=1;k.AdditiveBlending=2;k.SubtractiveBlending=3;k.MultiplyBlending=4;k.CustomBlending=5;k.AddEquation=100;k.SubtractEquation=101;k.ReverseSubtractEquation=102;k.MinEquation=103;k.MaxEquation=104;k.ZeroFactor=200;k.OneFactor=201;k.SrcColorFactor=202;k.OneMinusSrcColorFactor=203;k.SrcAlphaFactor=204;k.OneMinusSrcAlphaFactor=205;k.DstAlphaFactor=206;k.OneMinusDstAlphaFactor=207;k.DstColorFactor=208;k.OneMinusDstColorFactor=209;k.SrcAlphaSaturateFactor=210;k.NeverDepth=0;k.AlwaysDepth=
 0;k.NormalBlending=1;k.AdditiveBlending=2;k.SubtractiveBlending=3;k.MultiplyBlending=4;k.CustomBlending=5;k.AddEquation=100;k.SubtractEquation=101;k.ReverseSubtractEquation=102;k.MinEquation=103;k.MaxEquation=104;k.ZeroFactor=200;k.OneFactor=201;k.SrcColorFactor=202;k.OneMinusSrcColorFactor=203;k.SrcAlphaFactor=204;k.OneMinusSrcAlphaFactor=205;k.DstAlphaFactor=206;k.OneMinusDstAlphaFactor=207;k.DstColorFactor=208;k.OneMinusDstColorFactor=209;k.SrcAlphaSaturateFactor=210;k.NeverDepth=0;k.AlwaysDepth=
 1;k.LessDepth=2;k.LessEqualDepth=3;k.EqualDepth=4;k.GreaterEqualDepth=5;k.GreaterDepth=6;k.NotEqualDepth=7;k.MultiplyOperation=0;k.MixOperation=1;k.AddOperation=2;k.NoToneMapping=0;k.LinearToneMapping=1;k.ReinhardToneMapping=2;k.Uncharted2ToneMapping=3;k.CineonToneMapping=4;k.UVMapping=300;k.CubeReflectionMapping=301;k.CubeRefractionMapping=302;k.EquirectangularReflectionMapping=303;k.EquirectangularRefractionMapping=304;k.SphericalReflectionMapping=305;k.CubeUVReflectionMapping=306;k.CubeUVRefractionMapping=
 1;k.LessDepth=2;k.LessEqualDepth=3;k.EqualDepth=4;k.GreaterEqualDepth=5;k.GreaterDepth=6;k.NotEqualDepth=7;k.MultiplyOperation=0;k.MixOperation=1;k.AddOperation=2;k.NoToneMapping=0;k.LinearToneMapping=1;k.ReinhardToneMapping=2;k.Uncharted2ToneMapping=3;k.CineonToneMapping=4;k.UVMapping=300;k.CubeReflectionMapping=301;k.CubeRefractionMapping=302;k.EquirectangularReflectionMapping=303;k.EquirectangularRefractionMapping=304;k.SphericalReflectionMapping=305;k.CubeUVReflectionMapping=306;k.CubeUVRefractionMapping=
 307;k.RepeatWrapping=1E3;k.ClampToEdgeWrapping=1001;k.MirroredRepeatWrapping=1002;k.NearestFilter=1003;k.NearestMipMapNearestFilter=1004;k.NearestMipMapLinearFilter=1005;k.LinearFilter=1006;k.LinearMipMapNearestFilter=1007;k.LinearMipMapLinearFilter=1008;k.UnsignedByteType=1009;k.ByteType=1010;k.ShortType=1011;k.UnsignedShortType=1012;k.IntType=1013;k.UnsignedIntType=1014;k.FloatType=1015;k.HalfFloatType=1016;k.UnsignedShort4444Type=1017;k.UnsignedShort5551Type=1018;k.UnsignedShort565Type=1019;k.UnsignedInt248Type=
 307;k.RepeatWrapping=1E3;k.ClampToEdgeWrapping=1001;k.MirroredRepeatWrapping=1002;k.NearestFilter=1003;k.NearestMipMapNearestFilter=1004;k.NearestMipMapLinearFilter=1005;k.LinearFilter=1006;k.LinearMipMapNearestFilter=1007;k.LinearMipMapLinearFilter=1008;k.UnsignedByteType=1009;k.ByteType=1010;k.ShortType=1011;k.UnsignedShortType=1012;k.IntType=1013;k.UnsignedIntType=1014;k.FloatType=1015;k.HalfFloatType=1016;k.UnsignedShort4444Type=1017;k.UnsignedShort5551Type=1018;k.UnsignedShort565Type=1019;k.UnsignedInt248Type=
 1020;k.AlphaFormat=1021;k.RGBFormat=1022;k.RGBAFormat=1023;k.LuminanceFormat=1024;k.LuminanceAlphaFormat=1025;k.RGBEFormat=1023;k.DepthFormat=1026;k.DepthStencilFormat=1027;k.RGB_S3TC_DXT1_Format=2001;k.RGBA_S3TC_DXT1_Format=2002;k.RGBA_S3TC_DXT3_Format=2003;k.RGBA_S3TC_DXT5_Format=2004;k.RGB_PVRTC_4BPPV1_Format=2100;k.RGB_PVRTC_2BPPV1_Format=2101;k.RGBA_PVRTC_4BPPV1_Format=2102;k.RGBA_PVRTC_2BPPV1_Format=2103;k.RGB_ETC1_Format=2151;k.LoopOnce=2200;k.LoopRepeat=2201;k.LoopPingPong=2202;k.InterpolateDiscrete=
 1020;k.AlphaFormat=1021;k.RGBFormat=1022;k.RGBAFormat=1023;k.LuminanceFormat=1024;k.LuminanceAlphaFormat=1025;k.RGBEFormat=1023;k.DepthFormat=1026;k.DepthStencilFormat=1027;k.RGB_S3TC_DXT1_Format=2001;k.RGBA_S3TC_DXT1_Format=2002;k.RGBA_S3TC_DXT3_Format=2003;k.RGBA_S3TC_DXT5_Format=2004;k.RGB_PVRTC_4BPPV1_Format=2100;k.RGB_PVRTC_2BPPV1_Format=2101;k.RGBA_PVRTC_4BPPV1_Format=2102;k.RGBA_PVRTC_2BPPV1_Format=2103;k.RGB_ETC1_Format=2151;k.LoopOnce=2200;k.LoopRepeat=2201;k.LoopPingPong=2202;k.InterpolateDiscrete=
 2300;k.InterpolateLinear=2301;k.InterpolateSmooth=2302;k.ZeroCurvatureEnding=2400;k.ZeroSlopeEnding=2401;k.WrapAroundEnding=2402;k.TrianglesDrawMode=0;k.TriangleStripDrawMode=1;k.TriangleFanDrawMode=2;k.LinearEncoding=3E3;k.sRGBEncoding=3001;k.GammaEncoding=3007;k.RGBEEncoding=3002;k.LogLuvEncoding=3003;k.RGBM7Encoding=3004;k.RGBM16Encoding=3005;k.RGBDEncoding=3006;k.BasicDepthPacking=3200;k.RGBADepthPacking=3201;k.CubeGeometry=Fb;k.Face4=function(a,b,c,d,e,f,g){console.warn("THREE.Face4 has been removed. A THREE.Face3 will be created instead.");
 2300;k.InterpolateLinear=2301;k.InterpolateSmooth=2302;k.ZeroCurvatureEnding=2400;k.ZeroSlopeEnding=2401;k.WrapAroundEnding=2402;k.TrianglesDrawMode=0;k.TriangleStripDrawMode=1;k.TriangleFanDrawMode=2;k.LinearEncoding=3E3;k.sRGBEncoding=3001;k.GammaEncoding=3007;k.RGBEEncoding=3002;k.LogLuvEncoding=3003;k.RGBM7Encoding=3004;k.RGBM16Encoding=3005;k.RGBDEncoding=3006;k.BasicDepthPacking=3200;k.RGBADepthPacking=3201;k.CubeGeometry=Fb;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 ia(a,b,c,e,f,g)};k.LineStrip=0;k.LinePieces=1;k.MeshFaceMaterial=function(a){console.warn("THREE.MeshFaceMaterial has been removed. Use an Array instead.");return a};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.PointCloud=function(a,b){console.warn("THREE.PointCloud has been renamed to THREE.Points.");return new Jb(a,b)};k.Particle=
 return new ia(a,b,c,e,f,g)};k.LineStrip=0;k.LinePieces=1;k.MeshFaceMaterial=function(a){console.warn("THREE.MeshFaceMaterial has been removed. Use an Array instead.");return a};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.PointCloud=function(a,b){console.warn("THREE.PointCloud has been renamed to THREE.Points.");return new Jb(a,b)};k.Particle=
-function(a){console.warn("THREE.Particle has been renamed to THREE.Sprite.");return new zc(a)};k.ParticleSystem=function(a,b){console.warn("THREE.ParticleSystem has been renamed to THREE.Points.");return new Jb(a,b)};k.PointCloudMaterial=function(a){console.warn("THREE.PointCloudMaterial has been renamed to THREE.PointsMaterial.");return new Ca(a)};k.ParticleBasicMaterial=function(a){console.warn("THREE.ParticleBasicMaterial has been renamed to THREE.PointsMaterial.");return new Ca(a)};k.ParticleSystemMaterial=
-function(a){console.warn("THREE.ParticleSystemMaterial has been renamed to THREE.PointsMaterial.");return new Ca(a)};k.Vertex=function(a,b,c){console.warn("THREE.Vertex has been removed. Use THREE.Vector3 instead.");return new p(a,b,c)};k.DynamicBufferAttribute=function(a,b){console.warn("THREE.DynamicBufferAttribute has been removed. Use new THREE.BufferAttribute().setDynamic( true ) instead.");return(new V(a,b)).setDynamic(!0)};k.Int8Attribute=function(a,b){console.warn("THREE.Int8Attribute has been removed. Use new THREE.Int8BufferAttribute() instead.");
+function(a){console.warn("THREE.Particle has been renamed to THREE.Sprite.");return new zc(a)};k.ParticleSystem=function(a,b){console.warn("THREE.ParticleSystem has been renamed to THREE.Points.");return new Jb(a,b)};k.PointCloudMaterial=function(a){console.warn("THREE.PointCloudMaterial has been renamed to THREE.PointsMaterial.");return new Da(a)};k.ParticleBasicMaterial=function(a){console.warn("THREE.ParticleBasicMaterial has been renamed to THREE.PointsMaterial.");return new Da(a)};k.ParticleSystemMaterial=
+function(a){console.warn("THREE.ParticleSystemMaterial has been renamed to THREE.PointsMaterial.");return new Da(a)};k.Vertex=function(a,b,c){console.warn("THREE.Vertex has been removed. Use THREE.Vector3 instead.");return new p(a,b,c)};k.DynamicBufferAttribute=function(a,b){console.warn("THREE.DynamicBufferAttribute has been removed. Use new THREE.BufferAttribute().setDynamic( true ) instead.");return(new V(a,b)).setDynamic(!0)};k.Int8Attribute=function(a,b){console.warn("THREE.Int8Attribute has been removed. Use new THREE.Int8BufferAttribute() instead.");
 return new qc(a,b)};k.Uint8Attribute=function(a,b){console.warn("THREE.Uint8Attribute has been removed. Use new THREE.Uint8BufferAttribute() instead.");return new rc(a,b)};k.Uint8ClampedAttribute=function(a,b){console.warn("THREE.Uint8ClampedAttribute has been removed. Use new THREE.Uint8ClampedBufferAttribute() instead.");return new sc(a,b)};k.Int16Attribute=function(a,b){console.warn("THREE.Int16Attribute has been removed. Use new THREE.Int16BufferAttribute() instead.");return new tc(a,b)};k.Uint16Attribute=
 return new qc(a,b)};k.Uint8Attribute=function(a,b){console.warn("THREE.Uint8Attribute has been removed. Use new THREE.Uint8BufferAttribute() instead.");return new rc(a,b)};k.Uint8ClampedAttribute=function(a,b){console.warn("THREE.Uint8ClampedAttribute has been removed. Use new THREE.Uint8ClampedBufferAttribute() instead.");return new sc(a,b)};k.Int16Attribute=function(a,b){console.warn("THREE.Int16Attribute has been removed. Use new THREE.Int16BufferAttribute() instead.");return new tc(a,b)};k.Uint16Attribute=
-function(a,b){console.warn("THREE.Uint16Attribute has been removed. Use new THREE.Uint16BufferAttribute() instead.");return new eb(a,b)};k.Int32Attribute=function(a,b){console.warn("THREE.Int32Attribute has been removed. Use new THREE.Int32BufferAttribute() instead.");return new uc(a,b)};k.Uint32Attribute=function(a,b){console.warn("THREE.Uint32Attribute has been removed. Use new THREE.Uint32BufferAttribute() instead.");return new fb(a,b)};k.Float32Attribute=function(a,b){console.warn("THREE.Float32Attribute has been removed. Use new THREE.Float32BufferAttribute() instead.");
+function(a,b){console.warn("THREE.Uint16Attribute has been removed. Use new THREE.Uint16BufferAttribute() instead.");return new fb(a,b)};k.Int32Attribute=function(a,b){console.warn("THREE.Int32Attribute has been removed. Use new THREE.Int32BufferAttribute() instead.");return new uc(a,b)};k.Uint32Attribute=function(a,b){console.warn("THREE.Uint32Attribute has been removed. Use new THREE.Uint32BufferAttribute() instead.");return new gb(a,b)};k.Float32Attribute=function(a,b){console.warn("THREE.Float32Attribute has been removed. Use new THREE.Float32BufferAttribute() instead.");
 return new E(a,b)};k.Float64Attribute=function(a,b){console.warn("THREE.Float64Attribute has been removed. Use new THREE.Float64BufferAttribute() instead.");return new vc(a,b)};k.ClosedSplineCurve3=We;k.SplineCurve3=Xe;k.Spline=me;k.BoundingBoxHelper=function(a,b){console.warn("THREE.BoundingBoxHelper has been deprecated. Creating a THREE.BoxHelper instead.");return new pc(a,b)};k.EdgesHelper=function(a,b){console.warn("THREE.EdgesHelper has been removed. Use THREE.EdgesGeometry instead.");return new fa(new Xb(a.geometry),
 return new E(a,b)};k.Float64Attribute=function(a,b){console.warn("THREE.Float64Attribute has been removed. Use new THREE.Float64BufferAttribute() instead.");return new vc(a,b)};k.ClosedSplineCurve3=We;k.SplineCurve3=Xe;k.Spline=me;k.BoundingBoxHelper=function(a,b){console.warn("THREE.BoundingBoxHelper has been deprecated. Creating a THREE.BoxHelper instead.");return new pc(a,b)};k.EdgesHelper=function(a,b){console.warn("THREE.EdgesHelper has been removed. Use THREE.EdgesGeometry instead.");return new fa(new Xb(a.geometry),
 new ha({color:void 0!==b?b:16777215}))};k.WireframeHelper=function(a,b){console.warn("THREE.WireframeHelper has been removed. Use THREE.WireframeGeometry instead.");return new fa(new Lb(a.geometry),new ha({color:void 0!==b?b:16777215}))};k.XHRLoader=function(a){console.warn("THREE.XHRLoader has been renamed to THREE.FileLoader.");return new Ia(a)};k.BinaryTextureLoader=function(a){console.warn("THREE.BinaryTextureLoader has been renamed to THREE.DataTextureLoader.");return new Xd(a)};k.GeometryUtils=
 new ha({color:void 0!==b?b:16777215}))};k.WireframeHelper=function(a,b){console.warn("THREE.WireframeHelper has been removed. Use THREE.WireframeGeometry instead.");return new fa(new Lb(a.geometry),new ha({color:void 0!==b?b:16777215}))};k.XHRLoader=function(a){console.warn("THREE.XHRLoader has been renamed to THREE.FileLoader.");return new Ia(a)};k.BinaryTextureLoader=function(a){console.warn("THREE.BinaryTextureLoader has been renamed to THREE.DataTextureLoader.");return new Xd(a)};k.GeometryUtils=
 {merge:function(a,b,c){console.warn("THREE.GeometryUtils: .merge() has been moved to Geometry. Use geometry.merge( geometry2, matrix, materialIndexOffset ) instead.");var d;b.isMesh&&(b.matrixAutoUpdate&&b.updateMatrix(),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.");return a.center()}};k.ImageUtils={crossOrigin:void 0,loadTexture:function(a,b,c,d){console.warn("THREE.ImageUtils.loadTexture has been deprecated. Use THREE.TextureLoader() instead.");
 {merge:function(a,b,c){console.warn("THREE.GeometryUtils: .merge() has been moved to Geometry. Use geometry.merge( geometry2, matrix, materialIndexOffset ) instead.");var d;b.isMesh&&(b.matrixAutoUpdate&&b.updateMatrix(),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.");return a.center()}};k.ImageUtils={crossOrigin:void 0,loadTexture:function(a,b,c,d){console.warn("THREE.ImageUtils.loadTexture has been deprecated. Use THREE.TextureLoader() instead.");

+ 14 - 3
build/three.module.js

@@ -16453,6 +16453,8 @@ function WebGLLights() {
 
 
 function WebGLObjects( gl, geometries, infoRender ) {
 function WebGLObjects( gl, geometries, infoRender ) {
 
 
+	var updateList = {};
+
 	function update( object ) {
 	function update( object ) {
 
 
 		var frame = infoRender.frame;
 		var frame = infoRender.frame;
@@ -16462,7 +16464,7 @@ function WebGLObjects( gl, geometries, infoRender ) {
 
 
 		// Update once per frame
 		// Update once per frame
 
 
-		if ( buffergeometry.__frame !== frame ) {
+		if ( updateList[ buffergeometry.id ] !== frame ) {
 
 
 			if ( geometry.isGeometry ) {
 			if ( geometry.isGeometry ) {
 
 
@@ -16472,7 +16474,7 @@ function WebGLObjects( gl, geometries, infoRender ) {
 
 
 			geometries.update( buffergeometry );
 			geometries.update( buffergeometry );
 
 
-			buffergeometry.__frame = frame;
+			updateList[ buffergeometry.id ] = frame;
 
 
 		}
 		}
 
 
@@ -16480,9 +16482,16 @@ function WebGLObjects( gl, geometries, infoRender ) {
 
 
 	}
 	}
 
 
+	function clear() {
+
+		updateList = {};
+
+	}
+
 	return {
 	return {
 
 
-		update: update
+		update: update,
+		clear: clear
 
 
 	};
 	};
 
 
@@ -20154,6 +20163,7 @@ function WebGLRenderer( parameters ) {
 		setDefaultGLState();
 		setDefaultGLState();
 
 
 		properties.clear();
 		properties.clear();
+		objects.clear();
 
 
 	}
 	}
 
 
@@ -22770,6 +22780,7 @@ function SpriteMaterial( parameters ) {
 
 
 SpriteMaterial.prototype = Object.create( Material.prototype );
 SpriteMaterial.prototype = Object.create( Material.prototype );
 SpriteMaterial.prototype.constructor = SpriteMaterial;
 SpriteMaterial.prototype.constructor = SpriteMaterial;
+SpriteMaterial.prototype.isSpriteMaterial = true;
 
 
 SpriteMaterial.prototype.copy = function ( source ) {
 SpriteMaterial.prototype.copy = function ( source ) {