(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-4a823668"],{"04e1":function(t,e,n){"use strict";n.r(e);var i=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"home"},[n("div",{ref:"threeDBox",staticClass:"view-container"}),n("div",{ref:"tooltipBox",staticClass:"tooltip-box",style:t.tooltipPosition},[n("div",{staticClass:"container"},[n("div",{staticClass:"title"},[t._v("标题:"+t._s(t.tooltopContent.title))]),n("div",{staticClass:"explain"},[t._v("说明:"+t._s(t.tooltopContent.text))])])]),n("p",{ref:"titleBox",staticClass:"title-text",style:t.titlePosition},[t._v("\n "+t._s(t.tooltopContent.title)+"\n ")])])},r=[];n("4de4"),n("14d9"),n("e9f5"),n("910d"),n("7d54"),n("d3b7"),n("159b"); /** * @license * Copyright 2010-2022 Three.js Authors * SPDX-License-Identifier: MIT */ const a="144",s={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},o={ROTATE:0,PAN:1,DOLLY_PAN:2,DOLLY_ROTATE:3},l=0,c=1,h=2,u=1,d=2,p=3,f=0,m=1,g=2,_=0,v=1,x=2,y=3,b=4,M=5,S=100,w=101,T=102,E=103,A=104,C=200,L=201,P=202,R=203,D=204,I=205,O=206,N=207,z=208,U=209,F=210,k=0,B=1,V=2,H=3,G=4,W=5,j=6,X=7,q=0,Y=1,Z=2,K=0,J=1,Q=2,$=3,tt=4,et=5,nt=300,it=301,rt=302,at=303,st=304,ot=306,lt=1e3,ct=1001,ht=1002,ut=1003,dt=1004,pt=1005,ft=1006,mt=1007,gt=1008,_t=1009,vt=1010,xt=1011,yt=1012,bt=1013,Mt=1014,St=1015,wt=1016,Tt=1017,Et=1018,At=1020,Ct=1021,Lt=1022,Pt=1023,Rt=1024,Dt=1025,It=1026,Ot=1027,Nt=1028,zt=1029,Ut=1030,Ft=1031,kt=1033,Bt=33776,Vt=33777,Ht=33778,Gt=33779,Wt=35840,jt=35841,Xt=35842,qt=35843,Yt=36196,Zt=37492,Kt=37496,Jt=37808,Qt=37809,$t=37810,te=37811,ee=37812,ne=37813,ie=37814,re=37815,ae=37816,se=37817,oe=37818,le=37819,ce=37820,he=37821,ue=36492,de=2300,pe=2301,fe=2302,me=2400,ge=2401,_e=2402,ve=3e3,xe=3001,ye=3200,be=3201,Me=0,Se=1,we="srgb",Te="srgb-linear",Ee=7680,Ae=519,Ce=35044,Le="300 es",Pe=1035;class Re{addEventListener(t,e){void 0===this._listeners&&(this._listeners={});const n=this._listeners;void 0===n[t]&&(n[t]=[]),-1===n[t].indexOf(e)&&n[t].push(e)}hasEventListener(t,e){if(void 0===this._listeners)return!1;const n=this._listeners;return void 0!==n[t]&&-1!==n[t].indexOf(e)}removeEventListener(t,e){if(void 0===this._listeners)return;const n=this._listeners,i=n[t];if(void 0!==i){const t=i.indexOf(e);-1!==t&&i.splice(t,1)}}dispatchEvent(t){if(void 0===this._listeners)return;const e=this._listeners,n=e[t.type];if(void 0!==n){t.target=this;const e=n.slice(0);for(let n=0,i=e.length;n>8&255]+De[t>>16&255]+De[t>>24&255]+"-"+De[255&e]+De[e>>8&255]+"-"+De[e>>16&15|64]+De[e>>24&255]+"-"+De[63&n|128]+De[n>>8&255]+"-"+De[n>>16&255]+De[n>>24&255]+De[255&i]+De[i>>8&255]+De[i>>16&255]+De[i>>24&255];return r.toLowerCase()}function ze(t,e,n){return Math.max(e,Math.min(n,t))}function Ue(t,e){return(t%e+e)%e}function Fe(t,e,n){return(1-n)*t+n*e}function ke(t){return 0===(t&t-1)&&0!==t}function Be(t){return Math.pow(2,Math.floor(Math.log(t)/Math.LN2))}function Ve(t,e){switch(e.constructor){case Float32Array:return t;case Uint16Array:return t/65535;case Uint8Array:return t/255;case Int16Array:return Math.max(t/32767,-1);case Int8Array:return Math.max(t/127,-1);default:throw new Error("Invalid component type.")}}function He(t,e){switch(e.constructor){case Float32Array:return t;case Uint16Array:return Math.round(65535*t);case Uint8Array:return Math.round(255*t);case Int16Array:return Math.round(32767*t);case Int8Array:return Math.round(127*t);default:throw new Error("Invalid component type.")}}class Ge{constructor(t=0,e=0){Ge.prototype.isVector2=!0,this.x=t,this.y=e}get width(){return this.x}set width(t){this.x=t}get height(){return this.y}set height(t){this.y=t}set(t,e){return this.x=t,this.y=e,this}setScalar(t){return this.x=t,this.y=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y)}copy(t){return this.x=t.x,this.y=t.y,this}add(t){return this.x+=t.x,this.y+=t.y,this}addScalar(t){return this.x+=t,this.y+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this}subScalar(t){return this.x-=t,this.y-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this}multiply(t){return this.x*=t.x,this.y*=t.y,this}multiplyScalar(t){return this.x*=t,this.y*=t,this}divide(t){return this.x/=t.x,this.y/=t.y,this}divideScalar(t){return this.multiplyScalar(1/t)}applyMatrix3(t){const e=this.x,n=this.y,i=t.elements;return this.x=i[0]*e+i[3]*n+i[6],this.y=i[1]*e+i[4]*n+i[7],this}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(t){return this.x*t.x+this.y*t.y}cross(t){return this.x*t.y-this.y*t.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){const t=Math.atan2(-this.y,-this.x)+Math.PI;return t}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,n=this.y-t.y;return e*e+n*n}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this}equals(t){return t.x===this.x&&t.y===this.y}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t}fromBufferAttribute(t,e){return this.x=t.getX(e),this.y=t.getY(e),this}rotateAround(t,e){const n=Math.cos(e),i=Math.sin(e),r=this.x-t.x,a=this.y-t.y;return this.x=r*n-a*i+t.x,this.y=r*i+a*n+t.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}}class We{constructor(){We.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1]}set(t,e,n,i,r,a,s,o,l){const c=this.elements;return c[0]=t,c[1]=i,c[2]=s,c[3]=e,c[4]=r,c[5]=o,c[6]=n,c[7]=a,c[8]=l,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(t){const e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],this}extractBasis(t,e,n){return t.setFromMatrix3Column(this,0),e.setFromMatrix3Column(this,1),n.setFromMatrix3Column(this,2),this}setFromMatrix4(t){const e=t.elements;return this.set(e[0],e[4],e[8],e[1],e[5],e[9],e[2],e[6],e[10]),this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const n=t.elements,i=e.elements,r=this.elements,a=n[0],s=n[3],o=n[6],l=n[1],c=n[4],h=n[7],u=n[2],d=n[5],p=n[8],f=i[0],m=i[3],g=i[6],_=i[1],v=i[4],x=i[7],y=i[2],b=i[5],M=i[8];return r[0]=a*f+s*_+o*y,r[3]=a*m+s*v+o*b,r[6]=a*g+s*x+o*M,r[1]=l*f+c*_+h*y,r[4]=l*m+c*v+h*b,r[7]=l*g+c*x+h*M,r[2]=u*f+d*_+p*y,r[5]=u*m+d*v+p*b,r[8]=u*g+d*x+p*M,this}multiplyScalar(t){const e=this.elements;return e[0]*=t,e[3]*=t,e[6]*=t,e[1]*=t,e[4]*=t,e[7]*=t,e[2]*=t,e[5]*=t,e[8]*=t,this}determinant(){const t=this.elements,e=t[0],n=t[1],i=t[2],r=t[3],a=t[4],s=t[5],o=t[6],l=t[7],c=t[8];return e*a*c-e*s*l-n*r*c+n*s*o+i*r*l-i*a*o}invert(){const t=this.elements,e=t[0],n=t[1],i=t[2],r=t[3],a=t[4],s=t[5],o=t[6],l=t[7],c=t[8],h=c*a-s*l,u=s*o-c*r,d=l*r-a*o,p=e*h+n*u+i*d;if(0===p)return this.set(0,0,0,0,0,0,0,0,0);const f=1/p;return t[0]=h*f,t[1]=(i*l-c*n)*f,t[2]=(s*n-i*a)*f,t[3]=u*f,t[4]=(c*e-i*o)*f,t[5]=(i*r-s*e)*f,t[6]=d*f,t[7]=(n*o-l*e)*f,t[8]=(a*e-n*r)*f,this}transpose(){let t;const e=this.elements;return t=e[1],e[1]=e[3],e[3]=t,t=e[2],e[2]=e[6],e[6]=t,t=e[5],e[5]=e[7],e[7]=t,this}getNormalMatrix(t){return this.setFromMatrix4(t).invert().transpose()}transposeIntoArray(t){const e=this.elements;return t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],this}setUvTransform(t,e,n,i,r,a,s){const o=Math.cos(r),l=Math.sin(r);return this.set(n*o,n*l,-n*(o*a+l*s)+a+t,-i*l,i*o,-i*(-l*a+o*s)+s+e,0,0,1),this}scale(t,e){const n=this.elements;return n[0]*=t,n[3]*=t,n[6]*=t,n[1]*=e,n[4]*=e,n[7]*=e,this}rotate(t){const e=Math.cos(t),n=Math.sin(t),i=this.elements,r=i[0],a=i[3],s=i[6],o=i[1],l=i[4],c=i[7];return i[0]=e*r+n*o,i[3]=e*a+n*l,i[6]=e*s+n*c,i[1]=-n*r+e*o,i[4]=-n*a+e*l,i[7]=-n*s+e*c,this}translate(t,e){const n=this.elements;return n[0]+=t*n[2],n[3]+=t*n[5],n[6]+=t*n[8],n[1]+=e*n[2],n[4]+=e*n[5],n[7]+=e*n[8],this}equals(t){const e=this.elements,n=t.elements;for(let i=0;i<9;i++)if(e[i]!==n[i])return!1;return!0}fromArray(t,e=0){for(let n=0;n<9;n++)this.elements[n]=t[n+e];return this}toArray(t=[],e=0){const n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t}clone(){return(new this.constructor).fromArray(this.elements)}}function je(t){for(let e=t.length-1;e>=0;--e)if(t[e]>=65535)return!0;return!1}Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array;function Xe(t){return document.createElementNS("http://www.w3.org/1999/xhtml",t)}function qe(t){return t<.04045?.0773993808*t:Math.pow(.9478672986*t+.0521327014,2.4)}function Ye(t){return t<.0031308?12.92*t:1.055*Math.pow(t,.41666)-.055}const Ze={[we]:{[Te]:qe},[Te]:{[we]:Ye}},Ke={legacyMode:!0,get workingColorSpace(){return Te},set workingColorSpace(t){console.warn("THREE.ColorManagement: .workingColorSpace is readonly.")},convert:function(t,e,n){if(this.legacyMode||e===n||!e||!n)return t;if(Ze[e]&&void 0!==Ze[e][n]){const i=Ze[e][n];return t.r=i(t.r),t.g=i(t.g),t.b=i(t.b),t}throw new Error("Unsupported color space conversion.")},fromWorkingColorSpace:function(t,e){return this.convert(t,this.workingColorSpace,e)},toWorkingColorSpace:function(t,e){return this.convert(t,e,this.workingColorSpace)}},Je={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},Qe={r:0,g:0,b:0},$e={h:0,s:0,l:0},tn={h:0,s:0,l:0};function en(t,e,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?t+6*(e-t)*n:n<.5?e:n<2/3?t+6*(e-t)*(2/3-n):t}function nn(t,e){return e.r=t.r,e.g=t.g,e.b=t.b,e}class rn{constructor(t,e,n){return this.isColor=!0,this.r=1,this.g=1,this.b=1,void 0===e&&void 0===n?this.set(t):this.setRGB(t,e,n)}set(t){return t&&t.isColor?this.copy(t):"number"===typeof t?this.setHex(t):"string"===typeof t&&this.setStyle(t),this}setScalar(t){return this.r=t,this.g=t,this.b=t,this}setHex(t,e=we){return t=Math.floor(t),this.r=(t>>16&255)/255,this.g=(t>>8&255)/255,this.b=(255&t)/255,Ke.toWorkingColorSpace(this,e),this}setRGB(t,e,n,i=Te){return this.r=t,this.g=e,this.b=n,Ke.toWorkingColorSpace(this,i),this}setHSL(t,e,n,i=Te){if(t=Ue(t,1),e=ze(e,0,1),n=ze(n,0,1),0===e)this.r=this.g=this.b=n;else{const i=n<=.5?n*(1+e):n+e-n*e,r=2*n-i;this.r=en(r,i,t+1/3),this.g=en(r,i,t),this.b=en(r,i,t-1/3)}return Ke.toWorkingColorSpace(this,i),this}setStyle(t,e=we){function n(e){void 0!==e&&parseFloat(e)<1&&console.warn("THREE.Color: Alpha component of "+t+" will be ignored.")}let i;if(i=/^((?:rgb|hsl)a?)\(([^\)]*)\)/.exec(t)){let t;const r=i[1],a=i[2];switch(r){case"rgb":case"rgba":if(t=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return this.r=Math.min(255,parseInt(t[1],10))/255,this.g=Math.min(255,parseInt(t[2],10))/255,this.b=Math.min(255,parseInt(t[3],10))/255,Ke.toWorkingColorSpace(this,e),n(t[4]),this;if(t=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return this.r=Math.min(100,parseInt(t[1],10))/100,this.g=Math.min(100,parseInt(t[2],10))/100,this.b=Math.min(100,parseInt(t[3],10))/100,Ke.toWorkingColorSpace(this,e),n(t[4]),this;break;case"hsl":case"hsla":if(t=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a)){const i=parseFloat(t[1])/360,r=parseFloat(t[2])/100,a=parseFloat(t[3])/100;return n(t[4]),this.setHSL(i,r,a,e)}break}}else if(i=/^\#([A-Fa-f\d]+)$/.exec(t)){const t=i[1],n=t.length;if(3===n)return this.r=parseInt(t.charAt(0)+t.charAt(0),16)/255,this.g=parseInt(t.charAt(1)+t.charAt(1),16)/255,this.b=parseInt(t.charAt(2)+t.charAt(2),16)/255,Ke.toWorkingColorSpace(this,e),this;if(6===n)return this.r=parseInt(t.charAt(0)+t.charAt(1),16)/255,this.g=parseInt(t.charAt(2)+t.charAt(3),16)/255,this.b=parseInt(t.charAt(4)+t.charAt(5),16)/255,Ke.toWorkingColorSpace(this,e),this}return t&&t.length>0?this.setColorName(t,e):this}setColorName(t,e=we){const n=Je[t.toLowerCase()];return void 0!==n?this.setHex(n,e):console.warn("THREE.Color: Unknown color "+t),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(t){return this.r=t.r,this.g=t.g,this.b=t.b,this}copySRGBToLinear(t){return this.r=qe(t.r),this.g=qe(t.g),this.b=qe(t.b),this}copyLinearToSRGB(t){return this.r=Ye(t.r),this.g=Ye(t.g),this.b=Ye(t.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(t=we){return Ke.fromWorkingColorSpace(nn(this,Qe),t),ze(255*Qe.r,0,255)<<16^ze(255*Qe.g,0,255)<<8^ze(255*Qe.b,0,255)<<0}getHexString(t=we){return("000000"+this.getHex(t).toString(16)).slice(-6)}getHSL(t,e=Te){Ke.fromWorkingColorSpace(nn(this,Qe),e);const n=Qe.r,i=Qe.g,r=Qe.b,a=Math.max(n,i,r),s=Math.min(n,i,r);let o,l;const c=(s+a)/2;if(s===a)o=0,l=0;else{const t=a-s;switch(l=c<=.5?t/(a+s):t/(2-a-s),a){case n:o=(i-r)/t+(i2048||e.height>2048?(console.warn("THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons",t),e.toDataURL("image/jpeg",.6)):e.toDataURL("image/png")}static sRGBToLinear(t){if("undefined"!==typeof HTMLImageElement&&t instanceof HTMLImageElement||"undefined"!==typeof HTMLCanvasElement&&t instanceof HTMLCanvasElement||"undefined"!==typeof ImageBitmap&&t instanceof ImageBitmap){const e=Xe("canvas");e.width=t.width,e.height=t.height;const n=e.getContext("2d");n.drawImage(t,0,0,t.width,t.height);const i=n.getImageData(0,0,t.width,t.height),r=i.data;for(let t=0;t1)switch(this.wrapS){case lt:t.x=t.x-Math.floor(t.x);break;case ct:t.x=t.x<0?0:1;break;case ht:1===Math.abs(Math.floor(t.x)%2)?t.x=Math.ceil(t.x)-t.x:t.x=t.x-Math.floor(t.x);break}if(t.y<0||t.y>1)switch(this.wrapT){case lt:t.y=t.y-Math.floor(t.y);break;case ct:t.y=t.y<0?0:1;break;case ht:1===Math.abs(Math.floor(t.y)%2)?t.y=Math.ceil(t.y)-t.y:t.y=t.y-Math.floor(t.y);break}return this.flipY&&(t.y=1-t.y),t}set needsUpdate(t){!0===t&&(this.version++,this.source.needsUpdate=!0)}}hn.DEFAULT_IMAGE=null,hn.DEFAULT_MAPPING=nt;class un{constructor(t=0,e=0,n=0,i=1){un.prototype.isVector4=!0,this.x=t,this.y=e,this.z=n,this.w=i}get width(){return this.z}set width(t){this.z=t}get height(){return this.w}set height(t){this.w=t}set(t,e,n,i){return this.x=t,this.y=e,this.z=n,this.w=i,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this.w=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setW(t){return this.w=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;case 3:this.w=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this.w=void 0!==t.w?t.w:1,this}add(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this.w+=t.w,this}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this.w+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this.w=t.w+e.w,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this.w+=t.w*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this.w-=t.w,this}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this.w-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this.w=t.w-e.w,this}multiply(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this.w*=t.w,this}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this.w*=t,this}applyMatrix4(t){const e=this.x,n=this.y,i=this.z,r=this.w,a=t.elements;return this.x=a[0]*e+a[4]*n+a[8]*i+a[12]*r,this.y=a[1]*e+a[5]*n+a[9]*i+a[13]*r,this.z=a[2]*e+a[6]*n+a[10]*i+a[14]*r,this.w=a[3]*e+a[7]*n+a[11]*i+a[15]*r,this}divideScalar(t){return this.multiplyScalar(1/t)}setAxisAngleFromQuaternion(t){this.w=2*Math.acos(t.w);const e=Math.sqrt(1-t.w*t.w);return e<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=t.x/e,this.y=t.y/e,this.z=t.z/e),this}setAxisAngleFromRotationMatrix(t){let e,n,i,r;const a=.01,s=.1,o=t.elements,l=o[0],c=o[4],h=o[8],u=o[1],d=o[5],p=o[9],f=o[2],m=o[6],g=o[10];if(Math.abs(c-u)o&&t>_?t_?o=0?1:-1,i=1-e*e;if(i>Number.EPSILON){const r=Math.sqrt(i),a=Math.atan2(r,e*n);t=Math.sin(t*a)/r,s=Math.sin(s*a)/r}const r=s*n;if(o=o*t+u*r,l=l*t+d*r,c=c*t+p*r,h=h*t+f*r,t===1-s){const t=1/Math.sqrt(o*o+l*l+c*c+h*h);o*=t,l*=t,c*=t,h*=t}}t[e]=o,t[e+1]=l,t[e+2]=c,t[e+3]=h}static multiplyQuaternionsFlat(t,e,n,i,r,a){const s=n[i],o=n[i+1],l=n[i+2],c=n[i+3],h=r[a],u=r[a+1],d=r[a+2],p=r[a+3];return t[e]=s*p+c*h+o*d-l*u,t[e+1]=o*p+c*u+l*h-s*d,t[e+2]=l*p+c*d+s*u-o*h,t[e+3]=c*p-s*h-o*u-l*d,t}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get w(){return this._w}set w(t){this._w=t,this._onChangeCallback()}set(t,e,n,i){return this._x=t,this._y=e,this._z=n,this._w=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(t){return this._x=t.x,this._y=t.y,this._z=t.z,this._w=t.w,this._onChangeCallback(),this}setFromEuler(t,e){const n=t._x,i=t._y,r=t._z,a=t._order,s=Math.cos,o=Math.sin,l=s(n/2),c=s(i/2),h=s(r/2),u=o(n/2),d=o(i/2),p=o(r/2);switch(a){case"XYZ":this._x=u*c*h+l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h-u*d*p;break;case"YXZ":this._x=u*c*h+l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h+u*d*p;break;case"ZXY":this._x=u*c*h-l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h-u*d*p;break;case"ZYX":this._x=u*c*h-l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h+u*d*p;break;case"YZX":this._x=u*c*h+l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h-u*d*p;break;case"XZY":this._x=u*c*h-l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h+u*d*p;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+a)}return!1!==e&&this._onChangeCallback(),this}setFromAxisAngle(t,e){const n=e/2,i=Math.sin(n);return this._x=t.x*i,this._y=t.y*i,this._z=t.z*i,this._w=Math.cos(n),this._onChangeCallback(),this}setFromRotationMatrix(t){const e=t.elements,n=e[0],i=e[4],r=e[8],a=e[1],s=e[5],o=e[9],l=e[2],c=e[6],h=e[10],u=n+s+h;if(u>0){const t=.5/Math.sqrt(u+1);this._w=.25/t,this._x=(c-o)*t,this._y=(r-l)*t,this._z=(a-i)*t}else if(n>s&&n>h){const t=2*Math.sqrt(1+n-s-h);this._w=(c-o)/t,this._x=.25*t,this._y=(i+a)/t,this._z=(r+l)/t}else if(s>h){const t=2*Math.sqrt(1+s-n-h);this._w=(r-l)/t,this._x=(i+a)/t,this._y=.25*t,this._z=(o+c)/t}else{const t=2*Math.sqrt(1+h-n-s);this._w=(a-i)/t,this._x=(r+l)/t,this._y=(o+c)/t,this._z=.25*t}return this._onChangeCallback(),this}setFromUnitVectors(t,e){let n=t.dot(e)+1;return nMath.abs(t.z)?(this._x=-t.y,this._y=t.x,this._z=0,this._w=n):(this._x=0,this._y=-t.z,this._z=t.y,this._w=n)):(this._x=t.y*e.z-t.z*e.y,this._y=t.z*e.x-t.x*e.z,this._z=t.x*e.y-t.y*e.x,this._w=n),this.normalize()}angleTo(t){return 2*Math.acos(Math.abs(ze(this.dot(t),-1,1)))}rotateTowards(t,e){const n=this.angleTo(t);if(0===n)return this;const i=Math.min(1,e/n);return this.slerp(t,i),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(t){return this._x*t._x+this._y*t._y+this._z*t._z+this._w*t._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let t=this.length();return 0===t?(this._x=0,this._y=0,this._z=0,this._w=1):(t=1/t,this._x=this._x*t,this._y=this._y*t,this._z=this._z*t,this._w=this._w*t),this._onChangeCallback(),this}multiply(t){return this.multiplyQuaternions(this,t)}premultiply(t){return this.multiplyQuaternions(t,this)}multiplyQuaternions(t,e){const n=t._x,i=t._y,r=t._z,a=t._w,s=e._x,o=e._y,l=e._z,c=e._w;return this._x=n*c+a*s+i*l-r*o,this._y=i*c+a*o+r*s-n*l,this._z=r*c+a*l+n*o-i*s,this._w=a*c-n*s-i*o-r*l,this._onChangeCallback(),this}slerp(t,e){if(0===e)return this;if(1===e)return this.copy(t);const n=this._x,i=this._y,r=this._z,a=this._w;let s=a*t._w+n*t._x+i*t._y+r*t._z;if(s<0?(this._w=-t._w,this._x=-t._x,this._y=-t._y,this._z=-t._z,s=-s):this.copy(t),s>=1)return this._w=a,this._x=n,this._y=i,this._z=r,this;const o=1-s*s;if(o<=Number.EPSILON){const t=1-e;return this._w=t*a+e*this._w,this._x=t*n+e*this._x,this._y=t*i+e*this._y,this._z=t*r+e*this._z,this.normalize(),this._onChangeCallback(),this}const l=Math.sqrt(o),c=Math.atan2(l,s),h=Math.sin((1-e)*c)/l,u=Math.sin(e*c)/l;return this._w=a*h+this._w*u,this._x=n*h+this._x*u,this._y=i*h+this._y*u,this._z=r*h+this._z*u,this._onChangeCallback(),this}slerpQuaternions(t,e,n){return this.copy(t).slerp(e,n)}random(){const t=Math.random(),e=Math.sqrt(1-t),n=Math.sqrt(t),i=2*Math.PI*Math.random(),r=2*Math.PI*Math.random();return this.set(e*Math.cos(i),n*Math.sin(r),n*Math.cos(r),e*Math.sin(i))}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._w===this._w}fromArray(t,e=0){return this._x=t[e],this._y=t[e+1],this._z=t[e+2],this._w=t[e+3],this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._w,t}fromBufferAttribute(t,e){return this._x=t.getX(e),this._y=t.getY(e),this._z=t.getZ(e),this._w=t.getW(e),this}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}}class gn{constructor(t=0,e=0,n=0){gn.prototype.isVector3=!0,this.x=t,this.y=e,this.z=n}set(t,e,n){return void 0===n&&(n=this.z),this.x=t,this.y=e,this.z=n,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;default:throw new Error("index is out of range: "+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+t)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this}add(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this}multiply(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this}multiplyVectors(t,e){return this.x=t.x*e.x,this.y=t.y*e.y,this.z=t.z*e.z,this}applyEuler(t){return this.applyQuaternion(vn.setFromEuler(t))}applyAxisAngle(t,e){return this.applyQuaternion(vn.setFromAxisAngle(t,e))}applyMatrix3(t){const e=this.x,n=this.y,i=this.z,r=t.elements;return this.x=r[0]*e+r[3]*n+r[6]*i,this.y=r[1]*e+r[4]*n+r[7]*i,this.z=r[2]*e+r[5]*n+r[8]*i,this}applyNormalMatrix(t){return this.applyMatrix3(t).normalize()}applyMatrix4(t){const e=this.x,n=this.y,i=this.z,r=t.elements,a=1/(r[3]*e+r[7]*n+r[11]*i+r[15]);return this.x=(r[0]*e+r[4]*n+r[8]*i+r[12])*a,this.y=(r[1]*e+r[5]*n+r[9]*i+r[13])*a,this.z=(r[2]*e+r[6]*n+r[10]*i+r[14])*a,this}applyQuaternion(t){const e=this.x,n=this.y,i=this.z,r=t.x,a=t.y,s=t.z,o=t.w,l=o*e+a*i-s*n,c=o*n+s*e-r*i,h=o*i+r*n-a*e,u=-r*e-a*n-s*i;return this.x=l*o+u*-r+c*-s-h*-a,this.y=c*o+u*-a+h*-r-l*-s,this.z=h*o+u*-s+l*-a-c*-r,this}project(t){return this.applyMatrix4(t.matrixWorldInverse).applyMatrix4(t.projectionMatrix)}unproject(t){return this.applyMatrix4(t.projectionMatrixInverse).applyMatrix4(t.matrixWorld)}transformDirection(t){const e=this.x,n=this.y,i=this.z,r=t.elements;return this.x=r[0]*e+r[4]*n+r[8]*i,this.y=r[1]*e+r[5]*n+r[9]*i,this.z=r[2]*e+r[6]*n+r[10]*i,this.normalize()}divide(t){return this.x/=t.x,this.y/=t.y,this.z/=t.z,this}divideScalar(t){return this.multiplyScalar(1/t)}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this.z=Math.max(t,Math.min(e,this.z)),this}clampLength(t,e){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,this.z=t.z+(e.z-t.z)*n,this}cross(t){return this.crossVectors(this,t)}crossVectors(t,e){const n=t.x,i=t.y,r=t.z,a=e.x,s=e.y,o=e.z;return this.x=i*o-r*s,this.y=r*a-n*o,this.z=n*s-i*a,this}projectOnVector(t){const e=t.lengthSq();if(0===e)return this.set(0,0,0);const n=t.dot(this)/e;return this.copy(t).multiplyScalar(n)}projectOnPlane(t){return _n.copy(this).projectOnVector(t),this.sub(_n)}reflect(t){return this.sub(_n.copy(t).multiplyScalar(2*this.dot(t)))}angleTo(t){const e=Math.sqrt(this.lengthSq()*t.lengthSq());if(0===e)return Math.PI/2;const n=this.dot(t)/e;return Math.acos(ze(n,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,n=this.y-t.y,i=this.z-t.z;return e*e+n*n+i*i}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)+Math.abs(this.z-t.z)}setFromSpherical(t){return this.setFromSphericalCoords(t.radius,t.phi,t.theta)}setFromSphericalCoords(t,e,n){const i=Math.sin(e)*t;return this.x=i*Math.sin(n),this.y=Math.cos(e)*t,this.z=i*Math.cos(n),this}setFromCylindrical(t){return this.setFromCylindricalCoords(t.radius,t.theta,t.y)}setFromCylindricalCoords(t,e,n){return this.x=t*Math.sin(e),this.y=n,this.z=t*Math.cos(e),this}setFromMatrixPosition(t){const e=t.elements;return this.x=e[12],this.y=e[13],this.z=e[14],this}setFromMatrixScale(t){const e=this.setFromMatrixColumn(t,0).length(),n=this.setFromMatrixColumn(t,1).length(),i=this.setFromMatrixColumn(t,2).length();return this.x=e,this.y=n,this.z=i,this}setFromMatrixColumn(t,e){return this.fromArray(t.elements,4*e)}setFromMatrix3Column(t,e){return this.fromArray(t.elements,3*e)}setFromEuler(t){return this.x=t._x,this.y=t._y,this.z=t._z,this}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this.z=t[e+2],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t}fromBufferAttribute(t,e){return this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){const t=2*(Math.random()-.5),e=Math.random()*Math.PI*2,n=Math.sqrt(1-t**2);return this.x=n*Math.cos(e),this.y=n*Math.sin(e),this.z=t,this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}}const _n=new gn,vn=new mn;class xn{constructor(t=new gn(1/0,1/0,1/0),e=new gn(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=t,this.max=e}set(t,e){return this.min.copy(t),this.max.copy(e),this}setFromArray(t){let e=1/0,n=1/0,i=1/0,r=-1/0,a=-1/0,s=-1/0;for(let o=0,l=t.length;or&&(r=l),c>a&&(a=c),h>s&&(s=h)}return this.min.set(e,n,i),this.max.set(r,a,s),this}setFromBufferAttribute(t){let e=1/0,n=1/0,i=1/0,r=-1/0,a=-1/0,s=-1/0;for(let o=0,l=t.count;or&&(r=l),c>a&&(a=c),h>s&&(s=h)}return this.min.set(e,n,i),this.max.set(r,a,s),this}setFromPoints(t){this.makeEmpty();for(let e=0,n=t.length;ethis.max.x||t.ythis.max.y||t.zthis.max.z)}containsBox(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y&&this.min.z<=t.min.z&&t.max.z<=this.max.z}getParameter(t,e){return e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y),(t.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(t){return!(t.max.xthis.max.x||t.max.ythis.max.y||t.max.zthis.max.z)}intersectsSphere(t){return this.clampPoint(t.center,bn),bn.distanceToSquared(t.center)<=t.radius*t.radius}intersectsPlane(t){let e,n;return t.normal.x>0?(e=t.normal.x*this.min.x,n=t.normal.x*this.max.x):(e=t.normal.x*this.max.x,n=t.normal.x*this.min.x),t.normal.y>0?(e+=t.normal.y*this.min.y,n+=t.normal.y*this.max.y):(e+=t.normal.y*this.max.y,n+=t.normal.y*this.min.y),t.normal.z>0?(e+=t.normal.z*this.min.z,n+=t.normal.z*this.max.z):(e+=t.normal.z*this.max.z,n+=t.normal.z*this.min.z),e<=-t.constant&&n>=-t.constant}intersectsTriangle(t){if(this.isEmpty())return!1;this.getCenter(Ln),Pn.subVectors(this.max,Ln),Sn.subVectors(t.a,Ln),wn.subVectors(t.b,Ln),Tn.subVectors(t.c,Ln),En.subVectors(wn,Sn),An.subVectors(Tn,wn),Cn.subVectors(Sn,Tn);let e=[0,-En.z,En.y,0,-An.z,An.y,0,-Cn.z,Cn.y,En.z,0,-En.x,An.z,0,-An.x,Cn.z,0,-Cn.x,-En.y,En.x,0,-An.y,An.x,0,-Cn.y,Cn.x,0];return!!In(e,Sn,wn,Tn,Pn)&&(e=[1,0,0,0,1,0,0,0,1],!!In(e,Sn,wn,Tn,Pn)&&(Rn.crossVectors(En,An),e=[Rn.x,Rn.y,Rn.z],In(e,Sn,wn,Tn,Pn)))}clampPoint(t,e){return e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){const e=bn.copy(t).clamp(this.min,this.max);return e.sub(t).length()}getBoundingSphere(t){return this.getCenter(t.center),t.radius=.5*this.getSize(bn).length(),t}intersect(t){return this.min.max(t.min),this.max.min(t.max),this.isEmpty()&&this.makeEmpty(),this}union(t){return this.min.min(t.min),this.max.max(t.max),this}applyMatrix4(t){return this.isEmpty()||(yn[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(t),yn[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(t),yn[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(t),yn[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(t),yn[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(t),yn[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(t),yn[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(t),yn[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(t),this.setFromPoints(yn)),this}translate(t){return this.min.add(t),this.max.add(t),this}equals(t){return t.min.equals(this.min)&&t.max.equals(this.max)}}const yn=[new gn,new gn,new gn,new gn,new gn,new gn,new gn,new gn],bn=new gn,Mn=new xn,Sn=new gn,wn=new gn,Tn=new gn,En=new gn,An=new gn,Cn=new gn,Ln=new gn,Pn=new gn,Rn=new gn,Dn=new gn;function In(t,e,n,i,r){for(let a=0,s=t.length-3;a<=s;a+=3){Dn.fromArray(t,a);const s=r.x*Math.abs(Dn.x)+r.y*Math.abs(Dn.y)+r.z*Math.abs(Dn.z),o=e.dot(Dn),l=n.dot(Dn),c=i.dot(Dn);if(Math.max(-Math.max(o,l,c),Math.min(o,l,c))>s)return!1}return!0}const On=new xn,Nn=new gn,zn=new gn,Un=new gn;class Fn{constructor(t=new gn,e=-1){this.center=t,this.radius=e}set(t,e){return this.center.copy(t),this.radius=e,this}setFromPoints(t,e){const n=this.center;void 0!==e?n.copy(e):On.setFromPoints(t).getCenter(n);let i=0;for(let r=0,a=t.length;rthis.radius*this.radius&&(e.sub(this.center).normalize(),e.multiplyScalar(this.radius).add(this.center)),e}getBoundingBox(t){return this.isEmpty()?(t.makeEmpty(),t):(t.set(this.center,this.center),t.expandByScalar(this.radius),t)}applyMatrix4(t){return this.center.applyMatrix4(t),this.radius=this.radius*t.getMaxScaleOnAxis(),this}translate(t){return this.center.add(t),this}expandByPoint(t){Un.subVectors(t,this.center);const e=Un.lengthSq();if(e>this.radius*this.radius){const t=Math.sqrt(e),n=.5*(t-this.radius);this.center.add(Un.multiplyScalar(n/t)),this.radius+=n}return this}union(t){return!0===this.center.equals(t.center)?zn.set(0,0,1).multiplyScalar(t.radius):zn.subVectors(t.center,this.center).normalize().multiplyScalar(t.radius),this.expandByPoint(Nn.copy(t.center).add(zn)),this.expandByPoint(Nn.copy(t.center).sub(zn)),this}equals(t){return t.center.equals(this.center)&&t.radius===this.radius}clone(){return(new this.constructor).copy(this)}}const kn=new gn,Bn=new gn,Vn=new gn,Hn=new gn,Gn=new gn,Wn=new gn,jn=new gn;class Xn{constructor(t=new gn,e=new gn(0,0,-1)){this.origin=t,this.direction=e}set(t,e){return this.origin.copy(t),this.direction.copy(e),this}copy(t){return this.origin.copy(t.origin),this.direction.copy(t.direction),this}at(t,e){return e.copy(this.direction).multiplyScalar(t).add(this.origin)}lookAt(t){return this.direction.copy(t).sub(this.origin).normalize(),this}recast(t){return this.origin.copy(this.at(t,kn)),this}closestPointToPoint(t,e){e.subVectors(t,this.origin);const n=e.dot(this.direction);return n<0?e.copy(this.origin):e.copy(this.direction).multiplyScalar(n).add(this.origin)}distanceToPoint(t){return Math.sqrt(this.distanceSqToPoint(t))}distanceSqToPoint(t){const e=kn.subVectors(t,this.origin).dot(this.direction);return e<0?this.origin.distanceToSquared(t):(kn.copy(this.direction).multiplyScalar(e).add(this.origin),kn.distanceToSquared(t))}distanceSqToSegment(t,e,n,i){Bn.copy(t).add(e).multiplyScalar(.5),Vn.copy(e).sub(t).normalize(),Hn.copy(this.origin).sub(Bn);const r=.5*t.distanceTo(e),a=-this.direction.dot(Vn),s=Hn.dot(this.direction),o=-Hn.dot(Vn),l=Hn.lengthSq(),c=Math.abs(1-a*a);let h,u,d,p;if(c>0)if(h=a*o-s,u=a*s-o,p=r*c,h>=0)if(u>=-p)if(u<=p){const t=1/c;h*=t,u*=t,d=h*(h+a*u+2*s)+u*(a*h+u+2*o)+l}else u=r,h=Math.max(0,-(a*u+s)),d=-h*h+u*(u+2*o)+l;else u=-r,h=Math.max(0,-(a*u+s)),d=-h*h+u*(u+2*o)+l;else u<=-p?(h=Math.max(0,-(-a*r+s)),u=h>0?-r:Math.min(Math.max(-r,-o),r),d=-h*h+u*(u+2*o)+l):u<=p?(h=0,u=Math.min(Math.max(-r,-o),r),d=u*(u+2*o)+l):(h=Math.max(0,-(a*r+s)),u=h>0?r:Math.min(Math.max(-r,-o),r),d=-h*h+u*(u+2*o)+l);else u=a>0?-r:r,h=Math.max(0,-(a*u+s)),d=-h*h+u*(u+2*o)+l;return n&&n.copy(this.direction).multiplyScalar(h).add(this.origin),i&&i.copy(Vn).multiplyScalar(u).add(Bn),d}intersectSphere(t,e){kn.subVectors(t.center,this.origin);const n=kn.dot(this.direction),i=kn.dot(kn)-n*n,r=t.radius*t.radius;if(i>r)return null;const a=Math.sqrt(r-i),s=n-a,o=n+a;return s<0&&o<0?null:s<0?this.at(o,e):this.at(s,e)}intersectsSphere(t){return this.distanceSqToPoint(t.center)<=t.radius*t.radius}distanceToPlane(t){const e=t.normal.dot(this.direction);if(0===e)return 0===t.distanceToPoint(this.origin)?0:null;const n=-(this.origin.dot(t.normal)+t.constant)/e;return n>=0?n:null}intersectPlane(t,e){const n=this.distanceToPlane(t);return null===n?null:this.at(n,e)}intersectsPlane(t){const e=t.distanceToPoint(this.origin);if(0===e)return!0;const n=t.normal.dot(this.direction);return n*e<0}intersectBox(t,e){let n,i,r,a,s,o;const l=1/this.direction.x,c=1/this.direction.y,h=1/this.direction.z,u=this.origin;return l>=0?(n=(t.min.x-u.x)*l,i=(t.max.x-u.x)*l):(n=(t.max.x-u.x)*l,i=(t.min.x-u.x)*l),c>=0?(r=(t.min.y-u.y)*c,a=(t.max.y-u.y)*c):(r=(t.max.y-u.y)*c,a=(t.min.y-u.y)*c),n>a||r>i?null:((r>n||n!==n)&&(n=r),(a=0?(s=(t.min.z-u.z)*h,o=(t.max.z-u.z)*h):(s=(t.max.z-u.z)*h,o=(t.min.z-u.z)*h),n>o||s>i?null:((s>n||n!==n)&&(n=s),(o=0?n:i,e)))}intersectsBox(t){return null!==this.intersectBox(t,kn)}intersectTriangle(t,e,n,i,r){Gn.subVectors(e,t),Wn.subVectors(n,t),jn.crossVectors(Gn,Wn);let a,s=this.direction.dot(jn);if(s>0){if(i)return null;a=1}else{if(!(s<0))return null;a=-1,s=-s}Hn.subVectors(this.origin,t);const o=a*this.direction.dot(Wn.crossVectors(Hn,Wn));if(o<0)return null;const l=a*this.direction.dot(Gn.cross(Hn));if(l<0)return null;if(o+l>s)return null;const c=-a*Hn.dot(jn);return c<0?null:this.at(c/s,r)}applyMatrix4(t){return this.origin.applyMatrix4(t),this.direction.transformDirection(t),this}equals(t){return t.origin.equals(this.origin)&&t.direction.equals(this.direction)}clone(){return(new this.constructor).copy(this)}}class qn{constructor(){qn.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}set(t,e,n,i,r,a,s,o,l,c,h,u,d,p,f,m){const g=this.elements;return g[0]=t,g[4]=e,g[8]=n,g[12]=i,g[1]=r,g[5]=a,g[9]=s,g[13]=o,g[2]=l,g[6]=c,g[10]=h,g[14]=u,g[3]=d,g[7]=p,g[11]=f,g[15]=m,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return(new qn).fromArray(this.elements)}copy(t){const e=this.elements,n=t.elements;return e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],e[9]=n[9],e[10]=n[10],e[11]=n[11],e[12]=n[12],e[13]=n[13],e[14]=n[14],e[15]=n[15],this}copyPosition(t){const e=this.elements,n=t.elements;return e[12]=n[12],e[13]=n[13],e[14]=n[14],this}setFromMatrix3(t){const e=t.elements;return this.set(e[0],e[3],e[6],0,e[1],e[4],e[7],0,e[2],e[5],e[8],0,0,0,0,1),this}extractBasis(t,e,n){return t.setFromMatrixColumn(this,0),e.setFromMatrixColumn(this,1),n.setFromMatrixColumn(this,2),this}makeBasis(t,e,n){return this.set(t.x,e.x,n.x,0,t.y,e.y,n.y,0,t.z,e.z,n.z,0,0,0,0,1),this}extractRotation(t){const e=this.elements,n=t.elements,i=1/Yn.setFromMatrixColumn(t,0).length(),r=1/Yn.setFromMatrixColumn(t,1).length(),a=1/Yn.setFromMatrixColumn(t,2).length();return e[0]=n[0]*i,e[1]=n[1]*i,e[2]=n[2]*i,e[3]=0,e[4]=n[4]*r,e[5]=n[5]*r,e[6]=n[6]*r,e[7]=0,e[8]=n[8]*a,e[9]=n[9]*a,e[10]=n[10]*a,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromEuler(t){const e=this.elements,n=t.x,i=t.y,r=t.z,a=Math.cos(n),s=Math.sin(n),o=Math.cos(i),l=Math.sin(i),c=Math.cos(r),h=Math.sin(r);if("XYZ"===t.order){const t=a*c,n=a*h,i=s*c,r=s*h;e[0]=o*c,e[4]=-o*h,e[8]=l,e[1]=n+i*l,e[5]=t-r*l,e[9]=-s*o,e[2]=r-t*l,e[6]=i+n*l,e[10]=a*o}else if("YXZ"===t.order){const t=o*c,n=o*h,i=l*c,r=l*h;e[0]=t+r*s,e[4]=i*s-n,e[8]=a*l,e[1]=a*h,e[5]=a*c,e[9]=-s,e[2]=n*s-i,e[6]=r+t*s,e[10]=a*o}else if("ZXY"===t.order){const t=o*c,n=o*h,i=l*c,r=l*h;e[0]=t-r*s,e[4]=-a*h,e[8]=i+n*s,e[1]=n+i*s,e[5]=a*c,e[9]=r-t*s,e[2]=-a*l,e[6]=s,e[10]=a*o}else if("ZYX"===t.order){const t=a*c,n=a*h,i=s*c,r=s*h;e[0]=o*c,e[4]=i*l-n,e[8]=t*l+r,e[1]=o*h,e[5]=r*l+t,e[9]=n*l-i,e[2]=-l,e[6]=s*o,e[10]=a*o}else if("YZX"===t.order){const t=a*o,n=a*l,i=s*o,r=s*l;e[0]=o*c,e[4]=r-t*h,e[8]=i*h+n,e[1]=h,e[5]=a*c,e[9]=-s*c,e[2]=-l*c,e[6]=n*h+i,e[10]=t-r*h}else if("XZY"===t.order){const t=a*o,n=a*l,i=s*o,r=s*l;e[0]=o*c,e[4]=-h,e[8]=l*c,e[1]=t*h+r,e[5]=a*c,e[9]=n*h-i,e[2]=i*h-n,e[6]=s*c,e[10]=r*h+t}return e[3]=0,e[7]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromQuaternion(t){return this.compose(Kn,t,Jn)}lookAt(t,e,n){const i=this.elements;return ti.subVectors(t,e),0===ti.lengthSq()&&(ti.z=1),ti.normalize(),Qn.crossVectors(n,ti),0===Qn.lengthSq()&&(1===Math.abs(n.z)?ti.x+=1e-4:ti.z+=1e-4,ti.normalize(),Qn.crossVectors(n,ti)),Qn.normalize(),$n.crossVectors(ti,Qn),i[0]=Qn.x,i[4]=$n.x,i[8]=ti.x,i[1]=Qn.y,i[5]=$n.y,i[9]=ti.y,i[2]=Qn.z,i[6]=$n.z,i[10]=ti.z,this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){const n=t.elements,i=e.elements,r=this.elements,a=n[0],s=n[4],o=n[8],l=n[12],c=n[1],h=n[5],u=n[9],d=n[13],p=n[2],f=n[6],m=n[10],g=n[14],_=n[3],v=n[7],x=n[11],y=n[15],b=i[0],M=i[4],S=i[8],w=i[12],T=i[1],E=i[5],A=i[9],C=i[13],L=i[2],P=i[6],R=i[10],D=i[14],I=i[3],O=i[7],N=i[11],z=i[15];return r[0]=a*b+s*T+o*L+l*I,r[4]=a*M+s*E+o*P+l*O,r[8]=a*S+s*A+o*R+l*N,r[12]=a*w+s*C+o*D+l*z,r[1]=c*b+h*T+u*L+d*I,r[5]=c*M+h*E+u*P+d*O,r[9]=c*S+h*A+u*R+d*N,r[13]=c*w+h*C+u*D+d*z,r[2]=p*b+f*T+m*L+g*I,r[6]=p*M+f*E+m*P+g*O,r[10]=p*S+f*A+m*R+g*N,r[14]=p*w+f*C+m*D+g*z,r[3]=_*b+v*T+x*L+y*I,r[7]=_*M+v*E+x*P+y*O,r[11]=_*S+v*A+x*R+y*N,r[15]=_*w+v*C+x*D+y*z,this}multiplyScalar(t){const e=this.elements;return e[0]*=t,e[4]*=t,e[8]*=t,e[12]*=t,e[1]*=t,e[5]*=t,e[9]*=t,e[13]*=t,e[2]*=t,e[6]*=t,e[10]*=t,e[14]*=t,e[3]*=t,e[7]*=t,e[11]*=t,e[15]*=t,this}determinant(){const t=this.elements,e=t[0],n=t[4],i=t[8],r=t[12],a=t[1],s=t[5],o=t[9],l=t[13],c=t[2],h=t[6],u=t[10],d=t[14],p=t[3],f=t[7],m=t[11],g=t[15];return p*(+r*o*h-i*l*h-r*s*u+n*l*u+i*s*d-n*o*d)+f*(+e*o*d-e*l*u+r*a*u-i*a*d+i*l*c-r*o*c)+m*(+e*l*h-e*s*d-r*a*h+n*a*d+r*s*c-n*l*c)+g*(-i*s*c-e*o*h+e*s*u+i*a*h-n*a*u+n*o*c)}transpose(){const t=this.elements;let e;return e=t[1],t[1]=t[4],t[4]=e,e=t[2],t[2]=t[8],t[8]=e,e=t[6],t[6]=t[9],t[9]=e,e=t[3],t[3]=t[12],t[12]=e,e=t[7],t[7]=t[13],t[13]=e,e=t[11],t[11]=t[14],t[14]=e,this}setPosition(t,e,n){const i=this.elements;return t.isVector3?(i[12]=t.x,i[13]=t.y,i[14]=t.z):(i[12]=t,i[13]=e,i[14]=n),this}invert(){const t=this.elements,e=t[0],n=t[1],i=t[2],r=t[3],a=t[4],s=t[5],o=t[6],l=t[7],c=t[8],h=t[9],u=t[10],d=t[11],p=t[12],f=t[13],m=t[14],g=t[15],_=h*m*l-f*u*l+f*o*d-s*m*d-h*o*g+s*u*g,v=p*u*l-c*m*l-p*o*d+a*m*d+c*o*g-a*u*g,x=c*f*l-p*h*l+p*s*d-a*f*d-c*s*g+a*h*g,y=p*h*o-c*f*o-p*s*u+a*f*u+c*s*m-a*h*m,b=e*_+n*v+i*x+r*y;if(0===b)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const M=1/b;return t[0]=_*M,t[1]=(f*u*r-h*m*r-f*i*d+n*m*d+h*i*g-n*u*g)*M,t[2]=(s*m*r-f*o*r+f*i*l-n*m*l-s*i*g+n*o*g)*M,t[3]=(h*o*r-s*u*r-h*i*l+n*u*l+s*i*d-n*o*d)*M,t[4]=v*M,t[5]=(c*m*r-p*u*r+p*i*d-e*m*d-c*i*g+e*u*g)*M,t[6]=(p*o*r-a*m*r-p*i*l+e*m*l+a*i*g-e*o*g)*M,t[7]=(a*u*r-c*o*r+c*i*l-e*u*l-a*i*d+e*o*d)*M,t[8]=x*M,t[9]=(p*h*r-c*f*r-p*n*d+e*f*d+c*n*g-e*h*g)*M,t[10]=(a*f*r-p*s*r+p*n*l-e*f*l-a*n*g+e*s*g)*M,t[11]=(c*s*r-a*h*r-c*n*l+e*h*l+a*n*d-e*s*d)*M,t[12]=y*M,t[13]=(c*f*i-p*h*i+p*n*u-e*f*u-c*n*m+e*h*m)*M,t[14]=(p*s*i-a*f*i-p*n*o+e*f*o+a*n*m-e*s*m)*M,t[15]=(a*h*i-c*s*i+c*n*o-e*h*o-a*n*u+e*s*u)*M,this}scale(t){const e=this.elements,n=t.x,i=t.y,r=t.z;return e[0]*=n,e[4]*=i,e[8]*=r,e[1]*=n,e[5]*=i,e[9]*=r,e[2]*=n,e[6]*=i,e[10]*=r,e[3]*=n,e[7]*=i,e[11]*=r,this}getMaxScaleOnAxis(){const t=this.elements,e=t[0]*t[0]+t[1]*t[1]+t[2]*t[2],n=t[4]*t[4]+t[5]*t[5]+t[6]*t[6],i=t[8]*t[8]+t[9]*t[9]+t[10]*t[10];return Math.sqrt(Math.max(e,n,i))}makeTranslation(t,e,n){return this.set(1,0,0,t,0,1,0,e,0,0,1,n,0,0,0,1),this}makeRotationX(t){const e=Math.cos(t),n=Math.sin(t);return this.set(1,0,0,0,0,e,-n,0,0,n,e,0,0,0,0,1),this}makeRotationY(t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,0,n,0,0,1,0,0,-n,0,e,0,0,0,0,1),this}makeRotationZ(t){const e=Math.cos(t),n=Math.sin(t);return this.set(e,-n,0,0,n,e,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(t,e){const n=Math.cos(e),i=Math.sin(e),r=1-n,a=t.x,s=t.y,o=t.z,l=r*a,c=r*s;return this.set(l*a+n,l*s-i*o,l*o+i*s,0,l*s+i*o,c*s+n,c*o-i*a,0,l*o-i*s,c*o+i*a,r*o*o+n,0,0,0,0,1),this}makeScale(t,e,n){return this.set(t,0,0,0,0,e,0,0,0,0,n,0,0,0,0,1),this}makeShear(t,e,n,i,r,a){return this.set(1,n,r,0,t,1,a,0,e,i,1,0,0,0,0,1),this}compose(t,e,n){const i=this.elements,r=e._x,a=e._y,s=e._z,o=e._w,l=r+r,c=a+a,h=s+s,u=r*l,d=r*c,p=r*h,f=a*c,m=a*h,g=s*h,_=o*l,v=o*c,x=o*h,y=n.x,b=n.y,M=n.z;return i[0]=(1-(f+g))*y,i[1]=(d+x)*y,i[2]=(p-v)*y,i[3]=0,i[4]=(d-x)*b,i[5]=(1-(u+g))*b,i[6]=(m+_)*b,i[7]=0,i[8]=(p+v)*M,i[9]=(m-_)*M,i[10]=(1-(u+f))*M,i[11]=0,i[12]=t.x,i[13]=t.y,i[14]=t.z,i[15]=1,this}decompose(t,e,n){const i=this.elements;let r=Yn.set(i[0],i[1],i[2]).length();const a=Yn.set(i[4],i[5],i[6]).length(),s=Yn.set(i[8],i[9],i[10]).length(),o=this.determinant();o<0&&(r=-r),t.x=i[12],t.y=i[13],t.z=i[14],Zn.copy(this);const l=1/r,c=1/a,h=1/s;return Zn.elements[0]*=l,Zn.elements[1]*=l,Zn.elements[2]*=l,Zn.elements[4]*=c,Zn.elements[5]*=c,Zn.elements[6]*=c,Zn.elements[8]*=h,Zn.elements[9]*=h,Zn.elements[10]*=h,e.setFromRotationMatrix(Zn),n.x=r,n.y=a,n.z=s,this}makePerspective(t,e,n,i,r,a){const s=this.elements,o=2*r/(e-t),l=2*r/(n-i),c=(e+t)/(e-t),h=(n+i)/(n-i),u=-(a+r)/(a-r),d=-2*a*r/(a-r);return s[0]=o,s[4]=0,s[8]=c,s[12]=0,s[1]=0,s[5]=l,s[9]=h,s[13]=0,s[2]=0,s[6]=0,s[10]=u,s[14]=d,s[3]=0,s[7]=0,s[11]=-1,s[15]=0,this}makeOrthographic(t,e,n,i,r,a){const s=this.elements,o=1/(e-t),l=1/(n-i),c=1/(a-r),h=(e+t)*o,u=(n+i)*l,d=(a+r)*c;return s[0]=2*o,s[4]=0,s[8]=0,s[12]=-h,s[1]=0,s[5]=2*l,s[9]=0,s[13]=-u,s[2]=0,s[6]=0,s[10]=-2*c,s[14]=-d,s[3]=0,s[7]=0,s[11]=0,s[15]=1,this}equals(t){const e=this.elements,n=t.elements;for(let i=0;i<16;i++)if(e[i]!==n[i])return!1;return!0}fromArray(t,e=0){for(let n=0;n<16;n++)this.elements[n]=t[n+e];return this}toArray(t=[],e=0){const n=this.elements;return t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+3]=n[3],t[e+4]=n[4],t[e+5]=n[5],t[e+6]=n[6],t[e+7]=n[7],t[e+8]=n[8],t[e+9]=n[9],t[e+10]=n[10],t[e+11]=n[11],t[e+12]=n[12],t[e+13]=n[13],t[e+14]=n[14],t[e+15]=n[15],t}}const Yn=new gn,Zn=new qn,Kn=new gn(0,0,0),Jn=new gn(1,1,1),Qn=new gn,$n=new gn,ti=new gn,ei=new qn,ni=new mn;class ii{constructor(t=0,e=0,n=0,i=ii.DefaultOrder){this.isEuler=!0,this._x=t,this._y=e,this._z=n,this._order=i}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get order(){return this._order}set order(t){this._order=t,this._onChangeCallback()}set(t,e,n,i=this._order){return this._x=t,this._y=e,this._z=n,this._order=i,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(t){return this._x=t._x,this._y=t._y,this._z=t._z,this._order=t._order,this._onChangeCallback(),this}setFromRotationMatrix(t,e=this._order,n=!0){const i=t.elements,r=i[0],a=i[4],s=i[8],o=i[1],l=i[5],c=i[9],h=i[2],u=i[6],d=i[10];switch(e){case"XYZ":this._y=Math.asin(ze(s,-1,1)),Math.abs(s)<.9999999?(this._x=Math.atan2(-c,d),this._z=Math.atan2(-a,r)):(this._x=Math.atan2(u,l),this._z=0);break;case"YXZ":this._x=Math.asin(-ze(c,-1,1)),Math.abs(c)<.9999999?(this._y=Math.atan2(s,d),this._z=Math.atan2(o,l)):(this._y=Math.atan2(-h,r),this._z=0);break;case"ZXY":this._x=Math.asin(ze(u,-1,1)),Math.abs(u)<.9999999?(this._y=Math.atan2(-h,d),this._z=Math.atan2(-a,l)):(this._y=0,this._z=Math.atan2(o,r));break;case"ZYX":this._y=Math.asin(-ze(h,-1,1)),Math.abs(h)<.9999999?(this._x=Math.atan2(u,d),this._z=Math.atan2(o,r)):(this._x=0,this._z=Math.atan2(-a,l));break;case"YZX":this._z=Math.asin(ze(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(-c,l),this._y=Math.atan2(-h,r)):(this._x=0,this._y=Math.atan2(s,d));break;case"XZY":this._z=Math.asin(-ze(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(u,l),this._y=Math.atan2(s,r)):(this._x=Math.atan2(-c,d),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+e)}return this._order=e,!0===n&&this._onChangeCallback(),this}setFromQuaternion(t,e,n){return ei.makeRotationFromQuaternion(t),this.setFromRotationMatrix(ei,e,n)}setFromVector3(t,e=this._order){return this.set(t.x,t.y,t.z,e)}reorder(t){return ni.setFromEuler(this),this.setFromQuaternion(ni,t)}equals(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._order===this._order}fromArray(t){return this._x=t[0],this._y=t[1],this._z=t[2],void 0!==t[3]&&(this._order=t[3]),this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._order,t}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}toVector3(){console.error("THREE.Euler: .toVector3() has been removed. Use Vector3.setFromEuler() instead")}}ii.DefaultOrder="XYZ",ii.RotationOrders=["XYZ","YZX","ZXY","XZY","YXZ","ZYX"];class ri{constructor(){this.mask=1}set(t){this.mask=(1<>>0}enable(t){this.mask|=1<1){for(let t=0;t1){for(let t=0;t0){i.children=[];for(let e=0;e0){i.animations=[];for(let e=0;e0&&(n.geometries=e),i.length>0&&(n.materials=i),r.length>0&&(n.textures=r),s.length>0&&(n.images=s),o.length>0&&(n.shapes=o),l.length>0&&(n.skeletons=l),c.length>0&&(n.animations=c),h.length>0&&(n.nodes=h)}return n.object=i,n;function a(t){const e=[];for(const n in t){const i=t[n];delete i.metadata,e.push(i)}return e}}clone(t){return(new this.constructor).copy(this,t)}copy(t,e=!0){if(this.name=t.name,this.up.copy(t.up),this.position.copy(t.position),this.rotation.order=t.rotation.order,this.quaternion.copy(t.quaternion),this.scale.copy(t.scale),this.matrix.copy(t.matrix),this.matrixWorld.copy(t.matrixWorld),this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrixWorldNeedsUpdate=t.matrixWorldNeedsUpdate,this.matrixWorldAutoUpdate=t.matrixWorldAutoUpdate,this.layers.mask=t.layers.mask,this.visible=t.visible,this.castShadow=t.castShadow,this.receiveShadow=t.receiveShadow,this.frustumCulled=t.frustumCulled,this.renderOrder=t.renderOrder,this.userData=JSON.parse(JSON.stringify(t.userData)),!0===e)for(let n=0;n0?i.multiplyScalar(1/Math.sqrt(r)):i.set(0,0,0)}static getBarycoord(t,e,n,i,r){xi.subVectors(i,e),yi.subVectors(n,e),bi.subVectors(t,e);const a=xi.dot(xi),s=xi.dot(yi),o=xi.dot(bi),l=yi.dot(yi),c=yi.dot(bi),h=a*l-s*s;if(0===h)return r.set(-2,-1,-1);const u=1/h,d=(l*o-s*c)*u,p=(a*c-s*o)*u;return r.set(1-d-p,p,d)}static containsPoint(t,e,n,i){return this.getBarycoord(t,e,n,i,Mi),Mi.x>=0&&Mi.y>=0&&Mi.x+Mi.y<=1}static getUV(t,e,n,i,r,a,s,o){return this.getBarycoord(t,e,n,i,Mi),o.set(0,0),o.addScaledVector(r,Mi.x),o.addScaledVector(a,Mi.y),o.addScaledVector(s,Mi.z),o}static isFrontFacing(t,e,n,i){return xi.subVectors(n,e),yi.subVectors(t,e),xi.cross(yi).dot(i)<0}set(t,e,n){return this.a.copy(t),this.b.copy(e),this.c.copy(n),this}setFromPointsAndIndices(t,e,n,i){return this.a.copy(t[e]),this.b.copy(t[n]),this.c.copy(t[i]),this}setFromAttributeAndIndices(t,e,n,i){return this.a.fromBufferAttribute(t,e),this.b.fromBufferAttribute(t,n),this.c.fromBufferAttribute(t,i),this}clone(){return(new this.constructor).copy(this)}copy(t){return this.a.copy(t.a),this.b.copy(t.b),this.c.copy(t.c),this}getArea(){return xi.subVectors(this.c,this.b),yi.subVectors(this.a,this.b),.5*xi.cross(yi).length()}getMidpoint(t){return t.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(t){return Li.getNormal(this.a,this.b,this.c,t)}getPlane(t){return t.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(t,e){return Li.getBarycoord(t,this.a,this.b,this.c,e)}getUV(t,e,n,i,r){return Li.getUV(t,this.a,this.b,this.c,e,n,i,r)}containsPoint(t){return Li.containsPoint(t,this.a,this.b,this.c)}isFrontFacing(t){return Li.isFrontFacing(this.a,this.b,this.c,t)}intersectsBox(t){return t.intersectsTriangle(this)}closestPointToPoint(t,e){const n=this.a,i=this.b,r=this.c;let a,s;Si.subVectors(i,n),wi.subVectors(r,n),Ei.subVectors(t,n);const o=Si.dot(Ei),l=wi.dot(Ei);if(o<=0&&l<=0)return e.copy(n);Ai.subVectors(t,i);const c=Si.dot(Ai),h=wi.dot(Ai);if(c>=0&&h<=c)return e.copy(i);const u=o*h-c*l;if(u<=0&&o>=0&&c<=0)return a=o/(o-c),e.copy(n).addScaledVector(Si,a);Ci.subVectors(t,r);const d=Si.dot(Ci),p=wi.dot(Ci);if(p>=0&&d<=p)return e.copy(r);const f=d*l-o*p;if(f<=0&&l>=0&&p<=0)return s=l/(l-p),e.copy(n).addScaledVector(wi,s);const m=c*p-d*h;if(m<=0&&h-c>=0&&d-p>=0)return Ti.subVectors(r,i),s=(h-c)/(h-c+(d-p)),e.copy(i).addScaledVector(Ti,s);const g=1/(m+f+u);return a=f*g,s=u*g,e.copy(n).addScaledVector(Si,a).addScaledVector(wi,s)}equals(t){return t.a.equals(this.a)&&t.b.equals(this.b)&&t.c.equals(this.c)}}let Pi=0;class Ri extends Re{constructor(){super(),this.isMaterial=!0,Object.defineProperty(this,"id",{value:Pi++}),this.uuid=Ne(),this.name="",this.type="Material",this.blending=v,this.side=f,this.vertexColors=!1,this.opacity=1,this.transparent=!1,this.blendSrc=D,this.blendDst=I,this.blendEquation=S,this.blendSrcAlpha=null,this.blendDstAlpha=null,this.blendEquationAlpha=null,this.depthFunc=H,this.depthTest=!0,this.depthWrite=!0,this.stencilWriteMask=255,this.stencilFunc=Ae,this.stencilRef=0,this.stencilFuncMask=255,this.stencilFail=Ee,this.stencilZFail=Ee,this.stencilZPass=Ee,this.stencilWrite=!1,this.clippingPlanes=null,this.clipIntersection=!1,this.clipShadows=!1,this.shadowSide=null,this.colorWrite=!0,this.precision=null,this.polygonOffset=!1,this.polygonOffsetFactor=0,this.polygonOffsetUnits=0,this.dithering=!1,this.alphaToCoverage=!1,this.premultipliedAlpha=!1,this.visible=!0,this.toneMapped=!0,this.userData={},this.version=0,this._alphaTest=0}get alphaTest(){return this._alphaTest}set alphaTest(t){this._alphaTest>0!==t>0&&this.version++,this._alphaTest=t}onBuild(){}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(t){if(void 0!==t)for(const e in t){const n=t[e];if(void 0===n){console.warn("THREE.Material: '"+e+"' parameter is undefined.");continue}const i=this[e];void 0!==i?i&&i.isColor?i.set(n):i&&i.isVector3&&n&&n.isVector3?i.copy(n):this[e]=n:console.warn("THREE."+this.type+": '"+e+"' is not a property of this material.")}}toJSON(t){const e=void 0===t||"string"===typeof t;e&&(t={textures:{},images:{}});const n={metadata:{version:4.5,type:"Material",generator:"Material.toJSON"}};function i(t){const e=[];for(const n in t){const i=t[n];delete i.metadata,e.push(i)}return e}if(n.uuid=this.uuid,n.type=this.type,""!==this.name&&(n.name=this.name),this.color&&this.color.isColor&&(n.color=this.color.getHex()),void 0!==this.roughness&&(n.roughness=this.roughness),void 0!==this.metalness&&(n.metalness=this.metalness),void 0!==this.sheen&&(n.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(n.sheenColor=this.sheenColor.getHex()),void 0!==this.sheenRoughness&&(n.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(n.emissive=this.emissive.getHex()),this.emissiveIntensity&&1!==this.emissiveIntensity&&(n.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(n.specular=this.specular.getHex()),void 0!==this.specularIntensity&&(n.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(n.specularColor=this.specularColor.getHex()),void 0!==this.shininess&&(n.shininess=this.shininess),void 0!==this.clearcoat&&(n.clearcoat=this.clearcoat),void 0!==this.clearcoatRoughness&&(n.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(n.clearcoatMap=this.clearcoatMap.toJSON(t).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(n.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(t).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(n.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(t).uuid,n.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),void 0!==this.iridescence&&(n.iridescence=this.iridescence),void 0!==this.iridescenceIOR&&(n.iridescenceIOR=this.iridescenceIOR),void 0!==this.iridescenceThicknessRange&&(n.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(n.iridescenceMap=this.iridescenceMap.toJSON(t).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(n.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(t).uuid),this.map&&this.map.isTexture&&(n.map=this.map.toJSON(t).uuid),this.matcap&&this.matcap.isTexture&&(n.matcap=this.matcap.toJSON(t).uuid),this.alphaMap&&this.alphaMap.isTexture&&(n.alphaMap=this.alphaMap.toJSON(t).uuid),this.lightMap&&this.lightMap.isTexture&&(n.lightMap=this.lightMap.toJSON(t).uuid,n.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(n.aoMap=this.aoMap.toJSON(t).uuid,n.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(n.bumpMap=this.bumpMap.toJSON(t).uuid,n.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(n.normalMap=this.normalMap.toJSON(t).uuid,n.normalMapType=this.normalMapType,n.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(n.displacementMap=this.displacementMap.toJSON(t).uuid,n.displacementScale=this.displacementScale,n.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(n.roughnessMap=this.roughnessMap.toJSON(t).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(n.metalnessMap=this.metalnessMap.toJSON(t).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(n.emissiveMap=this.emissiveMap.toJSON(t).uuid),this.specularMap&&this.specularMap.isTexture&&(n.specularMap=this.specularMap.toJSON(t).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(n.specularIntensityMap=this.specularIntensityMap.toJSON(t).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(n.specularColorMap=this.specularColorMap.toJSON(t).uuid),this.envMap&&this.envMap.isTexture&&(n.envMap=this.envMap.toJSON(t).uuid,void 0!==this.combine&&(n.combine=this.combine)),void 0!==this.envMapIntensity&&(n.envMapIntensity=this.envMapIntensity),void 0!==this.reflectivity&&(n.reflectivity=this.reflectivity),void 0!==this.refractionRatio&&(n.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(n.gradientMap=this.gradientMap.toJSON(t).uuid),void 0!==this.transmission&&(n.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(n.transmissionMap=this.transmissionMap.toJSON(t).uuid),void 0!==this.thickness&&(n.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(n.thicknessMap=this.thicknessMap.toJSON(t).uuid),void 0!==this.attenuationDistance&&(n.attenuationDistance=this.attenuationDistance),void 0!==this.attenuationColor&&(n.attenuationColor=this.attenuationColor.getHex()),void 0!==this.size&&(n.size=this.size),null!==this.shadowSide&&(n.shadowSide=this.shadowSide),void 0!==this.sizeAttenuation&&(n.sizeAttenuation=this.sizeAttenuation),this.blending!==v&&(n.blending=this.blending),this.side!==f&&(n.side=this.side),this.vertexColors&&(n.vertexColors=!0),this.opacity<1&&(n.opacity=this.opacity),!0===this.transparent&&(n.transparent=this.transparent),n.depthFunc=this.depthFunc,n.depthTest=this.depthTest,n.depthWrite=this.depthWrite,n.colorWrite=this.colorWrite,n.stencilWrite=this.stencilWrite,n.stencilWriteMask=this.stencilWriteMask,n.stencilFunc=this.stencilFunc,n.stencilRef=this.stencilRef,n.stencilFuncMask=this.stencilFuncMask,n.stencilFail=this.stencilFail,n.stencilZFail=this.stencilZFail,n.stencilZPass=this.stencilZPass,void 0!==this.rotation&&0!==this.rotation&&(n.rotation=this.rotation),!0===this.polygonOffset&&(n.polygonOffset=!0),0!==this.polygonOffsetFactor&&(n.polygonOffsetFactor=this.polygonOffsetFactor),0!==this.polygonOffsetUnits&&(n.polygonOffsetUnits=this.polygonOffsetUnits),void 0!==this.linewidth&&1!==this.linewidth&&(n.linewidth=this.linewidth),void 0!==this.dashSize&&(n.dashSize=this.dashSize),void 0!==this.gapSize&&(n.gapSize=this.gapSize),void 0!==this.scale&&(n.scale=this.scale),!0===this.dithering&&(n.dithering=!0),this.alphaTest>0&&(n.alphaTest=this.alphaTest),!0===this.alphaToCoverage&&(n.alphaToCoverage=this.alphaToCoverage),!0===this.premultipliedAlpha&&(n.premultipliedAlpha=this.premultipliedAlpha),!0===this.wireframe&&(n.wireframe=this.wireframe),this.wireframeLinewidth>1&&(n.wireframeLinewidth=this.wireframeLinewidth),"round"!==this.wireframeLinecap&&(n.wireframeLinecap=this.wireframeLinecap),"round"!==this.wireframeLinejoin&&(n.wireframeLinejoin=this.wireframeLinejoin),!0===this.flatShading&&(n.flatShading=this.flatShading),!1===this.visible&&(n.visible=!1),!1===this.toneMapped&&(n.toneMapped=!1),!1===this.fog&&(n.fog=!1),"{}"!==JSON.stringify(this.userData)&&(n.userData=this.userData),e){const e=i(t.textures),r=i(t.images);e.length>0&&(n.textures=e),r.length>0&&(n.images=r)}return n}clone(){return(new this.constructor).copy(this)}copy(t){this.name=t.name,this.blending=t.blending,this.side=t.side,this.vertexColors=t.vertexColors,this.opacity=t.opacity,this.transparent=t.transparent,this.blendSrc=t.blendSrc,this.blendDst=t.blendDst,this.blendEquation=t.blendEquation,this.blendSrcAlpha=t.blendSrcAlpha,this.blendDstAlpha=t.blendDstAlpha,this.blendEquationAlpha=t.blendEquationAlpha,this.depthFunc=t.depthFunc,this.depthTest=t.depthTest,this.depthWrite=t.depthWrite,this.stencilWriteMask=t.stencilWriteMask,this.stencilFunc=t.stencilFunc,this.stencilRef=t.stencilRef,this.stencilFuncMask=t.stencilFuncMask,this.stencilFail=t.stencilFail,this.stencilZFail=t.stencilZFail,this.stencilZPass=t.stencilZPass,this.stencilWrite=t.stencilWrite;const e=t.clippingPlanes;let n=null;if(null!==e){const t=e.length;n=new Array(t);for(let i=0;i!==t;++i)n[i]=e[i].clone()}return this.clippingPlanes=n,this.clipIntersection=t.clipIntersection,this.clipShadows=t.clipShadows,this.shadowSide=t.shadowSide,this.colorWrite=t.colorWrite,this.precision=t.precision,this.polygonOffset=t.polygonOffset,this.polygonOffsetFactor=t.polygonOffsetFactor,this.polygonOffsetUnits=t.polygonOffsetUnits,this.dithering=t.dithering,this.alphaTest=t.alphaTest,this.alphaToCoverage=t.alphaToCoverage,this.premultipliedAlpha=t.premultipliedAlpha,this.visible=t.visible,this.toneMapped=t.toneMapped,this.userData=JSON.parse(JSON.stringify(t.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(t){!0===t&&this.version++}}class Di extends Ri{constructor(t){super(),this.isMeshBasicMaterial=!0,this.type="MeshBasicMaterial",this.color=new rn(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=q,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.fog=t.fog,this}}const Ii=new gn,Oi=new Ge;class Ni{constructor(t,e,n){if(Array.isArray(t))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.isBufferAttribute=!0,this.name="",this.array=t,this.itemSize=e,this.count=void 0!==t?t.length/e:0,this.normalized=!0===n,this.usage=Ce,this.updateRange={offset:0,count:-1},this.version=0}onUploadCallback(){}set needsUpdate(t){!0===t&&this.version++}setUsage(t){return this.usage=t,this}copy(t){return this.name=t.name,this.array=new t.array.constructor(t.array),this.itemSize=t.itemSize,this.count=t.count,this.normalized=t.normalized,this.usage=t.usage,this}copyAt(t,e,n){t*=this.itemSize,n*=e.itemSize;for(let i=0,r=this.itemSize;i0&&(t.userData=this.userData),void 0!==this.parameters){const e=this.parameters;for(const n in e)void 0!==e[n]&&(t[n]=e[n]);return t}t.data={attributes:{}};const e=this.index;null!==e&&(t.data.index={type:e.array.constructor.name,array:Array.prototype.slice.call(e.array)});const n=this.attributes;for(const o in n){const e=n[o];t.data.attributes[o]=e.toJSON(t.data)}const i={};let r=!1;for(const o in this.morphAttributes){const e=this.morphAttributes[o],n=[];for(let i=0,r=e.length;i0&&(i[o]=n,r=!0)}r&&(t.data.morphAttributes=i,t.data.morphTargetsRelative=this.morphTargetsRelative);const a=this.groups;a.length>0&&(t.data.groups=JSON.parse(JSON.stringify(a)));const s=this.boundingSphere;return null!==s&&(t.data.boundingSphere={center:s.center.toArray(),radius:s.radius}),t}clone(){return(new this.constructor).copy(this)}copy(t){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;const e={};this.name=t.name;const n=t.index;null!==n&&this.setIndex(n.clone(e));const i=t.attributes;for(const l in i){const t=i[l];this.setAttribute(l,t.clone(e))}const r=t.morphAttributes;for(const l in r){const t=[],n=r[l];for(let i=0,r=n.length;i0){const t=e[n[0]];if(void 0!==t){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,n=t.length;en.far?null:{distance:c,point:cr.clone(),object:t}}function dr(t,e,n,i,r,a,s,o,l,c,h,u){Ki.fromBufferAttribute(r,c),Ji.fromBufferAttribute(r,h),Qi.fromBufferAttribute(r,u);const d=t.morphTargetInfluences;if(a&&d){nr.set(0,0,0),ir.set(0,0,0),rr.set(0,0,0);for(let t=0,e=a.length;t0?1:-1,c.push(A.x,A.y,A.z),h.push(o/m),h.push(1-s/g),T+=1}}for(let s=0;s0&&(e.defines=this.defines),e.vertexShader=this.vertexShader,e.fragmentShader=this.fragmentShader;const n={};for(const i in this.extensions)!0===this.extensions[i]&&(n[i]=!0);return Object.keys(n).length>0&&(e.extensions=n),e}}class br extends vi{constructor(){super(),this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new qn,this.projectionMatrix=new qn,this.projectionMatrixInverse=new qn}copy(t,e){return super.copy(t,e),this.matrixWorldInverse.copy(t.matrixWorldInverse),this.projectionMatrix.copy(t.projectionMatrix),this.projectionMatrixInverse.copy(t.projectionMatrixInverse),this}getWorldDirection(t){this.updateWorldMatrix(!0,!1);const e=this.matrixWorld.elements;return t.set(-e[8],-e[9],-e[10]).normalize()}updateMatrixWorld(t){super.updateMatrixWorld(t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(t,e){super.updateWorldMatrix(t,e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return(new this.constructor).copy(this)}}class Mr extends br{constructor(t=50,e=1,n=.1,i=2e3){super(),this.isPerspectiveCamera=!0,this.type="PerspectiveCamera",this.fov=t,this.zoom=1,this.near=n,this.far=i,this.focus=10,this.aspect=e,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(t,e){return super.copy(t,e),this.fov=t.fov,this.zoom=t.zoom,this.near=t.near,this.far=t.far,this.focus=t.focus,this.aspect=t.aspect,this.view=null===t.view?null:Object.assign({},t.view),this.filmGauge=t.filmGauge,this.filmOffset=t.filmOffset,this}setFocalLength(t){const e=.5*this.getFilmHeight()/t;this.fov=2*Oe*Math.atan(e),this.updateProjectionMatrix()}getFocalLength(){const t=Math.tan(.5*Ie*this.fov);return.5*this.getFilmHeight()/t}getEffectiveFOV(){return 2*Oe*Math.atan(Math.tan(.5*Ie*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}setViewOffset(t,e,n,i,r,a){this.aspect=t/e,null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=n,this.view.offsetY=i,this.view.width=r,this.view.height=a,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const t=this.near;let e=t*Math.tan(.5*Ie*this.fov)/this.zoom,n=2*e,i=this.aspect*n,r=-.5*i;const a=this.view;if(null!==this.view&&this.view.enabled){const t=a.fullWidth,s=a.fullHeight;r+=a.offsetX*i/t,e-=a.offsetY*n/s,i*=a.width/t,n*=a.height/s}const s=this.filmOffset;0!==s&&(r+=t*s/this.getFilmWidth()),this.projectionMatrix.makePerspective(r,r+i,e,e-n,t,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){const e=super.toJSON(t);return e.object.fov=this.fov,e.object.zoom=this.zoom,e.object.near=this.near,e.object.far=this.far,e.object.focus=this.focus,e.object.aspect=this.aspect,null!==this.view&&(e.object.view=Object.assign({},this.view)),e.object.filmGauge=this.filmGauge,e.object.filmOffset=this.filmOffset,e}}const Sr=90,wr=1;class Tr extends vi{constructor(t,e,n){super(),this.type="CubeCamera",this.renderTarget=n;const i=new Mr(Sr,wr,t,e);i.layers=this.layers,i.up.set(0,-1,0),i.lookAt(new gn(1,0,0)),this.add(i);const r=new Mr(Sr,wr,t,e);r.layers=this.layers,r.up.set(0,-1,0),r.lookAt(new gn(-1,0,0)),this.add(r);const a=new Mr(Sr,wr,t,e);a.layers=this.layers,a.up.set(0,0,1),a.lookAt(new gn(0,1,0)),this.add(a);const s=new Mr(Sr,wr,t,e);s.layers=this.layers,s.up.set(0,0,-1),s.lookAt(new gn(0,-1,0)),this.add(s);const o=new Mr(Sr,wr,t,e);o.layers=this.layers,o.up.set(0,-1,0),o.lookAt(new gn(0,0,1)),this.add(o);const l=new Mr(Sr,wr,t,e);l.layers=this.layers,l.up.set(0,-1,0),l.lookAt(new gn(0,0,-1)),this.add(l)}update(t,e){null===this.parent&&this.updateMatrixWorld();const n=this.renderTarget,[i,r,a,s,o,l]=this.children,c=t.getRenderTarget(),h=t.toneMapping,u=t.xr.enabled;t.toneMapping=K,t.xr.enabled=!1;const d=n.texture.generateMipmaps;n.texture.generateMipmaps=!1,t.setRenderTarget(n,0),t.render(e,i),t.setRenderTarget(n,1),t.render(e,r),t.setRenderTarget(n,2),t.render(e,a),t.setRenderTarget(n,3),t.render(e,s),t.setRenderTarget(n,4),t.render(e,o),n.texture.generateMipmaps=d,t.setRenderTarget(n,5),t.render(e,l),t.setRenderTarget(c),t.toneMapping=h,t.xr.enabled=u,n.texture.needsPMREMUpdate=!0}}class Er extends hn{constructor(t,e,n,i,r,a,s,o,l,c){t=void 0!==t?t:[],e=void 0!==e?e:it,super(t,e,n,i,r,a,s,o,l,c),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(t){this.image=t}}class Ar extends dn{constructor(t,e={}){super(t,t,e),this.isWebGLCubeRenderTarget=!0;const n={width:t,height:t,depth:1},i=[n,n,n,n,n,n];this.texture=new Er(i,e.mapping,e.wrapS,e.wrapT,e.magFilter,e.minFilter,e.format,e.type,e.anisotropy,e.encoding),this.texture.isRenderTargetTexture=!0,this.texture.generateMipmaps=void 0!==e.generateMipmaps&&e.generateMipmaps,this.texture.minFilter=void 0!==e.minFilter?e.minFilter:ft}fromEquirectangularTexture(t,e){this.texture.type=e.type,this.texture.encoding=e.encoding,this.texture.generateMipmaps=e.generateMipmaps,this.texture.minFilter=e.minFilter,this.texture.magFilter=e.magFilter;const n={uniforms:{tEquirect:{value:null}},vertexShader:"\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\tvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\n\t\t\t\t\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvWorldDirection = transformDirection( position, modelMatrix );\n\n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\n\t\t\t\t}\n\t\t\t",fragmentShader:"\n\n\t\t\t\tuniform sampler2D tEquirect;\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\t#include \n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvec3 direction = normalize( vWorldDirection );\n\n\t\t\t\t\tvec2 sampleUV = equirectUv( direction );\n\n\t\t\t\t\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\n\t\t\t\t}\n\t\t\t"},i=new pr(5,5,5),r=new yr({name:"CubemapFromEquirect",uniforms:fr(n.uniforms),vertexShader:n.vertexShader,fragmentShader:n.fragmentShader,side:m,blending:_});r.uniforms.tEquirect.value=e;const a=new hr(i,r),s=e.minFilter;e.minFilter===gt&&(e.minFilter=ft);const o=new Tr(1,10,this);return o.update(t,a),e.minFilter=s,a.geometry.dispose(),a.material.dispose(),this}clear(t,e,n,i){const r=t.getRenderTarget();for(let a=0;a<6;a++)t.setRenderTarget(this,a),t.clear(e,n,i);t.setRenderTarget(r)}}const Cr=new gn,Lr=new gn,Pr=new We;class Rr{constructor(t=new gn(1,0,0),e=0){this.isPlane=!0,this.normal=t,this.constant=e}set(t,e){return this.normal.copy(t),this.constant=e,this}setComponents(t,e,n,i){return this.normal.set(t,e,n),this.constant=i,this}setFromNormalAndCoplanarPoint(t,e){return this.normal.copy(t),this.constant=-e.dot(this.normal),this}setFromCoplanarPoints(t,e,n){const i=Cr.subVectors(n,e).cross(Lr.subVectors(t,e)).normalize();return this.setFromNormalAndCoplanarPoint(i,t),this}copy(t){return this.normal.copy(t.normal),this.constant=t.constant,this}normalize(){const t=1/this.normal.length();return this.normal.multiplyScalar(t),this.constant*=t,this}negate(){return this.constant*=-1,this.normal.negate(),this}distanceToPoint(t){return this.normal.dot(t)+this.constant}distanceToSphere(t){return this.distanceToPoint(t.center)-t.radius}projectPoint(t,e){return e.copy(this.normal).multiplyScalar(-this.distanceToPoint(t)).add(t)}intersectLine(t,e){const n=t.delta(Cr),i=this.normal.dot(n);if(0===i)return 0===this.distanceToPoint(t.start)?e.copy(t.start):null;const r=-(t.start.dot(this.normal)+this.constant)/i;return r<0||r>1?null:e.copy(n).multiplyScalar(r).add(t.start)}intersectsLine(t){const e=this.distanceToPoint(t.start),n=this.distanceToPoint(t.end);return e<0&&n>0||n<0&&e>0}intersectsBox(t){return t.intersectsPlane(this)}intersectsSphere(t){return t.intersectsPlane(this)}coplanarPoint(t){return t.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(t,e){const n=e||Pr.getNormalMatrix(t),i=this.coplanarPoint(Cr).applyMatrix4(t),r=this.normal.applyMatrix3(n).normalize();return this.constant=-i.dot(r),this}translate(t){return this.constant-=t.dot(this.normal),this}equals(t){return t.normal.equals(this.normal)&&t.constant===this.constant}clone(){return(new this.constructor).copy(this)}}const Dr=new Fn,Ir=new gn;class Or{constructor(t=new Rr,e=new Rr,n=new Rr,i=new Rr,r=new Rr,a=new Rr){this.planes=[t,e,n,i,r,a]}set(t,e,n,i,r,a){const s=this.planes;return s[0].copy(t),s[1].copy(e),s[2].copy(n),s[3].copy(i),s[4].copy(r),s[5].copy(a),this}copy(t){const e=this.planes;for(let n=0;n<6;n++)e[n].copy(t.planes[n]);return this}setFromProjectionMatrix(t){const e=this.planes,n=t.elements,i=n[0],r=n[1],a=n[2],s=n[3],o=n[4],l=n[5],c=n[6],h=n[7],u=n[8],d=n[9],p=n[10],f=n[11],m=n[12],g=n[13],_=n[14],v=n[15];return e[0].setComponents(s-i,h-o,f-u,v-m).normalize(),e[1].setComponents(s+i,h+o,f+u,v+m).normalize(),e[2].setComponents(s+r,h+l,f+d,v+g).normalize(),e[3].setComponents(s-r,h-l,f-d,v-g).normalize(),e[4].setComponents(s-a,h-c,f-p,v-_).normalize(),e[5].setComponents(s+a,h+c,f+p,v+_).normalize(),this}intersectsObject(t){const e=t.geometry;return null===e.boundingSphere&&e.computeBoundingSphere(),Dr.copy(e.boundingSphere).applyMatrix4(t.matrixWorld),this.intersectsSphere(Dr)}intersectsSprite(t){return Dr.center.set(0,0,0),Dr.radius=.7071067811865476,Dr.applyMatrix4(t.matrixWorld),this.intersectsSphere(Dr)}intersectsSphere(t){const e=this.planes,n=t.center,i=-t.radius;for(let r=0;r<6;r++){const t=e[r].distanceToPoint(n);if(t0?t.max.x:t.min.x,Ir.y=i.normal.y>0?t.max.y:t.min.y,Ir.z=i.normal.z>0?t.max.z:t.min.z,i.distanceToPoint(Ir)<0)return!1}return!0}containsPoint(t){const e=this.planes;for(let n=0;n<6;n++)if(e[n].distanceToPoint(t)<0)return!1;return!0}clone(){return(new this.constructor).copy(this)}}function Nr(){let t=null,e=!1,n=null,i=null;function r(e,a){n(e,a),i=t.requestAnimationFrame(r)}return{start:function(){!0!==e&&null!==n&&(i=t.requestAnimationFrame(r),e=!0)},stop:function(){t.cancelAnimationFrame(i),e=!1},setAnimationLoop:function(t){n=t},setContext:function(e){t=e}}}function zr(t,e){const n=e.isWebGL2,i=new WeakMap;function r(e,i){const r=e.array,a=e.usage,s=t.createBuffer();let o;if(t.bindBuffer(i,s),t.bufferData(i,r,a),e.onUploadCallback(),r instanceof Float32Array)o=5126;else if(r instanceof Uint16Array)if(e.isFloat16BufferAttribute){if(!n)throw new Error("THREE.WebGLAttributes: Usage of Float16BufferAttribute requires WebGL2.");o=5131}else o=5123;else if(r instanceof Int16Array)o=5122;else if(r instanceof Uint32Array)o=5125;else if(r instanceof Int32Array)o=5124;else if(r instanceof Int8Array)o=5120;else if(r instanceof Uint8Array)o=5121;else{if(!(r instanceof Uint8ClampedArray))throw new Error("THREE.WebGLAttributes: Unsupported buffer data format: "+r);o=5121}return{buffer:s,type:o,bytesPerElement:r.BYTES_PER_ELEMENT,version:e.version}}function a(e,i,r){const a=i.array,s=i.updateRange;t.bindBuffer(r,e),-1===s.count?t.bufferSubData(r,0,a):(n?t.bufferSubData(r,s.offset*a.BYTES_PER_ELEMENT,a,s.offset,s.count):t.bufferSubData(r,s.offset*a.BYTES_PER_ELEMENT,a.subarray(s.offset,s.offset+s.count)),s.count=-1)}function s(t){return t.isInterleavedBufferAttribute&&(t=t.data),i.get(t)}function o(e){e.isInterleavedBufferAttribute&&(e=e.data);const n=i.get(e);n&&(t.deleteBuffer(n.buffer),i.delete(e))}function l(t,e){if(t.isGLBufferAttribute){const e=i.get(t);return void((!e||e.version=0){const e=r[l];let n=a[l];if(void 0===n&&("instanceMatrix"===l&&t.instanceMatrix&&(n=t.instanceMatrix),"instanceColor"===l&&t.instanceColor&&(n=t.instanceColor)),void 0===e)return!0;if(e.attribute!==n)return!0;if(n&&e.data!==n.data)return!0;s++}}return c.attributesNum!==s||c.index!==i}function v(t,e,n,i){const r={},a=e.attributes;let s=0;const o=n.getAttributes();for(const l in o){const e=o[l];if(e.location>=0){let e=a[l];void 0===e&&("instanceMatrix"===l&&t.instanceMatrix&&(e=t.instanceMatrix),"instanceColor"===l&&t.instanceColor&&(e=t.instanceColor));const n={};n.attribute=e,e&&e.data&&(n.data=e.data),r[l]=n,s++}}c.attributes=r,c.attributesNum=s,c.index=i}function x(){const t=c.newAttributes;for(let e=0,n=t.length;e=0){let a=l[e];if(void 0===a&&("instanceMatrix"===e&&r.instanceMatrix&&(a=r.instanceMatrix),"instanceColor"===e&&r.instanceColor&&(a=r.instanceColor)),void 0!==a){const e=a.normalized,s=a.itemSize,l=n.get(a);if(void 0===l)continue;const c=l.buffer,h=l.type,u=l.bytesPerElement;if(a.isInterleavedBufferAttribute){const n=a.data,l=n.stride,d=a.offset;if(n.isInstancedInterleavedBuffer){for(let t=0;t0&&t.getShaderPrecisionFormat(35632,36338).precision>0)return"highp";e="mediump"}return"mediump"===e&&t.getShaderPrecisionFormat(35633,36337).precision>0&&t.getShaderPrecisionFormat(35632,36337).precision>0?"mediump":"lowp"}const s="undefined"!==typeof WebGL2RenderingContext&&t instanceof WebGL2RenderingContext||"undefined"!==typeof WebGL2ComputeRenderingContext&&t instanceof WebGL2ComputeRenderingContext;let o=void 0!==n.precision?n.precision:"highp";const l=a(o);l!==o&&(console.warn("THREE.WebGLRenderer:",o,"not supported, using",l,"instead."),o=l);const c=s||e.has("WEBGL_draw_buffers"),h=!0===n.logarithmicDepthBuffer,u=t.getParameter(34930),d=t.getParameter(35660),p=t.getParameter(3379),f=t.getParameter(34076),m=t.getParameter(34921),g=t.getParameter(36347),_=t.getParameter(36348),v=t.getParameter(36349),x=d>0,y=s||e.has("OES_texture_float"),b=x&&y,M=s?t.getParameter(36183):0;return{isWebGL2:s,drawBuffers:c,getMaxAnisotropy:r,getMaxPrecision:a,precision:o,logarithmicDepthBuffer:h,maxTextures:u,maxVertexTextures:d,maxTextureSize:p,maxCubemapSize:f,maxAttributes:m,maxVertexUniforms:g,maxVaryings:_,maxFragmentUniforms:v,vertexTextures:x,floatFragmentTextures:y,floatVertexTextures:b,maxSamples:M}}function Mo(t){const e=this;let n=null,i=0,r=!1,a=!1;const s=new Rr,o=new We,l={value:null,needsUpdate:!1};function c(){l.value!==n&&(l.value=n,l.needsUpdate=i>0),e.numPlanes=i,e.numIntersection=0}function h(t,n,i,r){const a=null!==t?t.length:0;let c=null;if(0!==a){if(c=l.value,!0!==r||null===c){const e=i+4*a,r=n.matrixWorldInverse;o.getNormalMatrix(r),(null===c||c.length0){const s=new Ar(a.height/2);return s.fromEquirectangularTexture(t,i),e.set(i,s),i.addEventListener("dispose",r),n(s.texture,i.mapping)}return null}}}return i}function r(t){const n=t.target;n.removeEventListener("dispose",r);const i=e.get(n);void 0!==i&&(e.delete(n),i.dispose())}function a(){e=new WeakMap}return{get:i,dispose:a}}_o.physical={uniforms:mr([_o.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatNormalScale:{value:new Ge(1,1)},clearcoatNormalMap:{value:null},iridescence:{value:0},iridescenceMap:{value:null},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},sheen:{value:0},sheenColor:{value:new rn(0)},sheenColorMap:{value:null},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},transmission:{value:0},transmissionMap:{value:null},transmissionSamplerSize:{value:new Ge},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},attenuationDistance:{value:0},attenuationColor:{value:new rn(0)},specularIntensity:{value:1},specularIntensityMap:{value:null},specularColor:{value:new rn(1,1,1)},specularColorMap:{value:null}}]),vertexShader:mo.meshphysical_vert,fragmentShader:mo.meshphysical_frag};class wo extends br{constructor(t=-1,e=1,n=1,i=-1,r=.1,a=2e3){super(),this.isOrthographicCamera=!0,this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=t,this.right=e,this.top=n,this.bottom=i,this.near=r,this.far=a,this.updateProjectionMatrix()}copy(t,e){return super.copy(t,e),this.left=t.left,this.right=t.right,this.top=t.top,this.bottom=t.bottom,this.near=t.near,this.far=t.far,this.zoom=t.zoom,this.view=null===t.view?null:Object.assign({},t.view),this}setViewOffset(t,e,n,i,r,a){null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=n,this.view.offsetY=i,this.view.width=r,this.view.height=a,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const t=(this.right-this.left)/(2*this.zoom),e=(this.top-this.bottom)/(2*this.zoom),n=(this.right+this.left)/2,i=(this.top+this.bottom)/2;let r=n-t,a=n+t,s=i+e,o=i-e;if(null!==this.view&&this.view.enabled){const t=(this.right-this.left)/this.view.fullWidth/this.zoom,e=(this.top-this.bottom)/this.view.fullHeight/this.zoom;r+=t*this.view.offsetX,a=r+t*this.view.width,s-=e*this.view.offsetY,o=s-e*this.view.height}this.projectionMatrix.makeOrthographic(r,a,s,o,this.near,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){const e=super.toJSON(t);return e.object.zoom=this.zoom,e.object.left=this.left,e.object.right=this.right,e.object.top=this.top,e.object.bottom=this.bottom,e.object.near=this.near,e.object.far=this.far,null!==this.view&&(e.object.view=Object.assign({},this.view)),e}}const To=4,Eo=[.125,.215,.35,.446,.526,.582],Ao=20,Co=new wo,Lo=new rn;let Po=null;const Ro=(1+Math.sqrt(5))/2,Do=1/Ro,Io=[new gn(1,1,1),new gn(-1,1,1),new gn(1,1,-1),new gn(-1,1,-1),new gn(0,Ro,Do),new gn(0,Ro,-Do),new gn(Do,0,Ro),new gn(-Do,0,Ro),new gn(Ro,Do,0),new gn(-Ro,Do,0)];class Oo{constructor(t){this._renderer=t,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._lodPlanes=[],this._sizeLods=[],this._sigmas=[],this._blurMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._compileMaterial(this._blurMaterial)}fromScene(t,e=0,n=.1,i=100){Po=this._renderer.getRenderTarget(),this._setSize(256);const r=this._allocateTargets();return r.depthBuffer=!0,this._sceneToCubeUV(t,n,i,r),e>0&&this._blur(r,0,0,e),this._applyPMREM(r),this._cleanup(r),r}fromEquirectangular(t,e=null){return this._fromTexture(t,e)}fromCubemap(t,e=null){return this._fromTexture(t,e)}compileCubemapShader(){null===this._cubemapMaterial&&(this._cubemapMaterial=Bo(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){null===this._equirectMaterial&&(this._equirectMaterial=ko(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),null!==this._cubemapMaterial&&this._cubemapMaterial.dispose(),null!==this._equirectMaterial&&this._equirectMaterial.dispose()}_setSize(t){this._lodMax=Math.floor(Math.log2(t)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){null!==this._blurMaterial&&this._blurMaterial.dispose(),null!==this._pingPongRenderTarget&&this._pingPongRenderTarget.dispose();for(let t=0;t2?n:0,n,n),c.setRenderTarget(i),f&&c.render(p,s),c.render(t,s)}p.geometry.dispose(),p.material.dispose(),c.toneMapping=u,c.autoClear=h,t.background=g}_textureToCubeUV(t,e){const n=this._renderer,i=t.mapping===it||t.mapping===rt;i?(null===this._cubemapMaterial&&(this._cubemapMaterial=Bo()),this._cubemapMaterial.uniforms.flipEnvMap.value=!1===t.isRenderTargetTexture?-1:1):null===this._equirectMaterial&&(this._equirectMaterial=ko());const r=i?this._cubemapMaterial:this._equirectMaterial,a=new hr(this._lodPlanes[0],r),s=r.uniforms;s["envMap"].value=t;const o=this._cubeSize;Uo(e,0,0,3*o,2*o),n.setRenderTarget(e),n.render(a,Co)}_applyPMREM(t){const e=this._renderer,n=e.autoClear;e.autoClear=!1;for(let i=1;iAo&&console.warn(`sigmaRadians, ${r}, is too large and will clip, as it requested ${m} samples when the maximum is set to ${Ao}`);const g=[];let _=0;for(let M=0;Mv-To?i-v+To:0),b=4*(this._cubeSize-x);Uo(e,y,b,3*x,2*x),o.setRenderTarget(e),o.render(h,Co)}}function No(t){const e=[],n=[],i=[];let r=t;const a=t-To+1+Eo.length;for(let s=0;st-To?o=Eo[s-t+To-1]:0===s&&(o=0),i.push(o);const l=1/(a-2),c=-l,h=1+l,u=[c,c,h,c,h,h,c,c,h,h,c,h],d=6,p=6,f=3,m=2,g=1,_=new Float32Array(f*p*d),v=new Float32Array(m*p*d),x=new Float32Array(g*p*d);for(let t=0;t2?0:-1,i=[e,n,0,e+2/3,n,0,e+2/3,n+1,0,e,n,0,e+2/3,n+1,0,e,n+1,0];_.set(i,f*p*t),v.set(u,m*p*t);const r=[t,t,t,t,t,t];x.set(r,g*p*t)}const y=new Xi;y.setAttribute("position",new Ni(_,f)),y.setAttribute("uv",new Ni(v,m)),y.setAttribute("faceIndex",new Ni(x,g)),e.push(y),r>To&&r--}return{lodPlanes:e,sizeLods:n,sigmas:i}}function zo(t,e,n){const i=new dn(t,e,n);return i.texture.mapping=ot,i.texture.name="PMREM.cubeUv",i.scissorTest=!0,i}function Uo(t,e,n,i,r){t.viewport.set(e,n,i,r),t.scissor.set(e,n,i,r)}function Fo(t,e,n){const i=new Float32Array(Ao),r=new gn(0,1,0),a=new yr({name:"SphericalGaussianBlur",defines:{n:Ao,CUBEUV_TEXEL_WIDTH:1/e,CUBEUV_TEXEL_HEIGHT:1/n,CUBEUV_MAX_MIP:t+".0"},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:i},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:r}},vertexShader:Vo(),fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\t\t\tuniform int samples;\n\t\t\tuniform float weights[ n ];\n\t\t\tuniform bool latitudinal;\n\t\t\tuniform float dTheta;\n\t\t\tuniform float mipInt;\n\t\t\tuniform vec3 poleAxis;\n\n\t\t\t#define ENVMAP_TYPE_CUBE_UV\n\t\t\t#include \n\n\t\t\tvec3 getSample( float theta, vec3 axis ) {\n\n\t\t\t\tfloat cosTheta = cos( theta );\n\t\t\t\t// Rodrigues' axis-angle rotation\n\t\t\t\tvec3 sampleDirection = vOutputDirection * cosTheta\n\t\t\t\t\t+ cross( axis, vOutputDirection ) * sin( theta )\n\t\t\t\t\t+ axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta );\n\n\t\t\t\treturn bilinearCubeUV( envMap, sampleDirection, mipInt );\n\n\t\t\t}\n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection );\n\n\t\t\t\tif ( all( equal( axis, vec3( 0.0 ) ) ) ) {\n\n\t\t\t\t\taxis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x );\n\n\t\t\t\t}\n\n\t\t\t\taxis = normalize( axis );\n\n\t\t\t\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t\t\t\tgl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis );\n\n\t\t\t\tfor ( int i = 1; i < n; i++ ) {\n\n\t\t\t\t\tif ( i >= samples ) {\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfloat theta = dTheta * float( i );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( theta, axis );\n\n\t\t\t\t}\n\n\t\t\t}\n\t\t",blending:_,depthTest:!1,depthWrite:!1});return a}function ko(){return new yr({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null}},vertexShader:Vo(),fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\n\t\t\t#include \n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 outputDirection = normalize( vOutputDirection );\n\t\t\t\tvec2 uv = equirectUv( outputDirection );\n\n\t\t\t\tgl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 );\n\n\t\t\t}\n\t\t",blending:_,depthTest:!1,depthWrite:!1})}function Bo(){return new yr({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:Vo(),fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tuniform float flipEnvMap;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform samplerCube envMap;\n\n\t\t\tvoid main() {\n\n\t\t\t\tgl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) );\n\n\t\t\t}\n\t\t",blending:_,depthTest:!1,depthWrite:!1})}function Vo(){return"\n\n\t\tprecision mediump float;\n\t\tprecision mediump int;\n\n\t\tattribute float faceIndex;\n\n\t\tvarying vec3 vOutputDirection;\n\n\t\t// RH coordinate system; PMREM face-indexing convention\n\t\tvec3 getDirection( vec2 uv, float face ) {\n\n\t\t\tuv = 2.0 * uv - 1.0;\n\n\t\t\tvec3 direction = vec3( uv, 1.0 );\n\n\t\t\tif ( face == 0.0 ) {\n\n\t\t\t\tdirection = direction.zyx; // ( 1, v, u ) pos x\n\n\t\t\t} else if ( face == 1.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xz *= -1.0; // ( -u, 1, -v ) pos y\n\n\t\t\t} else if ( face == 2.0 ) {\n\n\t\t\t\tdirection.x *= -1.0; // ( -u, v, 1 ) pos z\n\n\t\t\t} else if ( face == 3.0 ) {\n\n\t\t\t\tdirection = direction.zyx;\n\t\t\t\tdirection.xz *= -1.0; // ( -1, v, -u ) neg x\n\n\t\t\t} else if ( face == 4.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xy *= -1.0; // ( -u, -1, v ) neg y\n\n\t\t\t} else if ( face == 5.0 ) {\n\n\t\t\t\tdirection.z *= -1.0; // ( u, v, -1 ) neg z\n\n\t\t\t}\n\n\t\t\treturn direction;\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\tvOutputDirection = getDirection( uv, faceIndex );\n\t\t\tgl_Position = vec4( position, 1.0 );\n\n\t\t}\n\t"}function Ho(t){let e=new WeakMap,n=null;function i(i){if(i&&i.isTexture){const s=i.mapping,o=s===at||s===st,l=s===it||s===rt;if(o||l){if(i.isRenderTargetTexture&&!0===i.needsPMREMUpdate){i.needsPMREMUpdate=!1;let r=e.get(i);return null===n&&(n=new Oo(t)),r=o?n.fromEquirectangular(i,r):n.fromCubemap(i,r),e.set(i,r),r.texture}if(e.has(i))return e.get(i).texture;{const s=i.image;if(o&&s&&s.height>0||l&&s&&r(s)){null===n&&(n=new Oo(t));const r=o?n.fromEquirectangular(i):n.fromCubemap(i);return e.set(i,r),i.addEventListener("dispose",a),r.texture}return null}}}return i}function r(t){let e=0;const n=6;for(let i=0;ie.maxTextureSize&&(m=Math.ceil(f/e.maxTextureSize),f=e.maxTextureSize);const g=new Float32Array(f*m*4*r),_=new pn(g,f,m,r);_.type=St,_.needsUpdate=!0;const v=4*d;for(let e=0;e0)return t;const r=e*n;let a=el[r];if(void 0===a&&(a=new Float32Array(r),el[r]=a),0!==e){i.toArray(a,0);for(let i=1,r=0;i!==e;++i)r+=n,t[i].toArray(a,r)}return a}function ol(t,e){if(t.length!==e.length)return!1;for(let n=0,i=t.length;n":" "} ${t}: ${n[s]}`)}return i.join("\n")}function sc(t){switch(t){case ve:return["Linear","( value )"];case xe:return["sRGB","( value )"];default:return console.warn("THREE.WebGLProgram: Unsupported encoding:",t),["Linear","( value )"]}}function oc(t,e,n){const i=t.getShaderParameter(e,35713),r=t.getShaderInfoLog(e).trim();if(i&&""===r)return"";const a=/ERROR: 0:(\d+)/.exec(r);if(a){const i=parseInt(a[1]);return n.toUpperCase()+"\n\n"+r+"\n\n"+ac(t.getShaderSource(e),i)}return r}function lc(t,e){const n=sc(e);return"vec4 "+t+"( vec4 value ) { return LinearTo"+n[0]+n[1]+"; }"}function cc(t,e){let n;switch(e){case J:n="Linear";break;case Q:n="Reinhard";break;case $:n="OptimizedCineon";break;case tt:n="ACESFilmic";break;case et:n="Custom";break;default:console.warn("THREE.WebGLProgram: Unsupported toneMapping:",e),n="Linear"}return"vec3 "+t+"( vec3 color ) { return "+n+"ToneMapping( color ); }"}function hc(t){const e=[t.extensionDerivatives||t.envMapCubeUVHeight||t.bumpMap||t.tangentSpaceNormalMap||t.clearcoatNormalMap||t.flatShading||"physical"===t.shaderID?"#extension GL_OES_standard_derivatives : enable":"",(t.extensionFragDepth||t.logarithmicDepthBuffer)&&t.rendererExtensionFragDepth?"#extension GL_EXT_frag_depth : enable":"",t.extensionDrawBuffers&&t.rendererExtensionDrawBuffers?"#extension GL_EXT_draw_buffers : require":"",(t.extensionShaderTextureLOD||t.envMap||t.transmission)&&t.rendererExtensionShaderTextureLod?"#extension GL_EXT_shader_texture_lod : enable":""];return e.filter(pc).join("\n")}function uc(t){const e=[];for(const n in t){const i=t[n];!1!==i&&e.push("#define "+n+" "+i)}return e.join("\n")}function dc(t,e){const n={},i=t.getProgramParameter(e,35721);for(let r=0;r/gm;function _c(t){return t.replace(gc,vc)}function vc(t,e){const n=mo[e];if(void 0===n)throw new Error("Can not resolve #include <"+e+">");return _c(n)}const xc=/#pragma unroll_loop_start\s+for\s*\(\s*int\s+i\s*=\s*(\d+)\s*;\s*i\s*<\s*(\d+)\s*;\s*i\s*\+\+\s*\)\s*{([\s\S]+?)}\s+#pragma unroll_loop_end/g;function yc(t){return t.replace(xc,bc)}function bc(t,e,n,i){let r="";for(let a=parseInt(e);a0&&(g+="\n"),_=[p,f].filter(pc).join("\n"),_.length>0&&(_+="\n")):(g=[Mc(n),"#define SHADER_NAME "+n.shaderName,f,n.instancing?"#define USE_INSTANCING":"",n.instancingColor?"#define USE_INSTANCING_COLOR":"",n.supportsVertexTextures?"#define VERTEX_TEXTURES":"",n.useFog&&n.fog?"#define USE_FOG":"",n.useFog&&n.fogExp2?"#define FOG_EXP2":"",n.map?"#define USE_MAP":"",n.envMap?"#define USE_ENVMAP":"",n.envMap?"#define "+h:"",n.lightMap?"#define USE_LIGHTMAP":"",n.aoMap?"#define USE_AOMAP":"",n.emissiveMap?"#define USE_EMISSIVEMAP":"",n.bumpMap?"#define USE_BUMPMAP":"",n.normalMap?"#define USE_NORMALMAP":"",n.normalMap&&n.objectSpaceNormalMap?"#define OBJECTSPACE_NORMALMAP":"",n.normalMap&&n.tangentSpaceNormalMap?"#define TANGENTSPACE_NORMALMAP":"",n.clearcoatMap?"#define USE_CLEARCOATMAP":"",n.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",n.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",n.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",n.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",n.displacementMap&&n.supportsVertexTextures?"#define USE_DISPLACEMENTMAP":"",n.specularMap?"#define USE_SPECULARMAP":"",n.specularIntensityMap?"#define USE_SPECULARINTENSITYMAP":"",n.specularColorMap?"#define USE_SPECULARCOLORMAP":"",n.roughnessMap?"#define USE_ROUGHNESSMAP":"",n.metalnessMap?"#define USE_METALNESSMAP":"",n.alphaMap?"#define USE_ALPHAMAP":"",n.transmission?"#define USE_TRANSMISSION":"",n.transmissionMap?"#define USE_TRANSMISSIONMAP":"",n.thicknessMap?"#define USE_THICKNESSMAP":"",n.sheenColorMap?"#define USE_SHEENCOLORMAP":"",n.sheenRoughnessMap?"#define USE_SHEENROUGHNESSMAP":"",n.vertexTangents?"#define USE_TANGENT":"",n.vertexColors?"#define USE_COLOR":"",n.vertexAlphas?"#define USE_COLOR_ALPHA":"",n.vertexUvs?"#define USE_UV":"",n.uvsVertexOnly?"#define UVS_VERTEX_ONLY":"",n.flatShading?"#define FLAT_SHADED":"",n.skinning?"#define USE_SKINNING":"",n.morphTargets?"#define USE_MORPHTARGETS":"",n.morphNormals&&!1===n.flatShading?"#define USE_MORPHNORMALS":"",n.morphColors&&n.isWebGL2?"#define USE_MORPHCOLORS":"",n.morphTargetsCount>0&&n.isWebGL2?"#define MORPHTARGETS_TEXTURE":"",n.morphTargetsCount>0&&n.isWebGL2?"#define MORPHTARGETS_TEXTURE_STRIDE "+n.morphTextureStride:"",n.morphTargetsCount>0&&n.isWebGL2?"#define MORPHTARGETS_COUNT "+n.morphTargetsCount:"",n.doubleSided?"#define DOUBLE_SIDED":"",n.flipSided?"#define FLIP_SIDED":"",n.shadowMapEnabled?"#define USE_SHADOWMAP":"",n.shadowMapEnabled?"#define "+l:"",n.sizeAttenuation?"#define USE_SIZEATTENUATION":"",n.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",n.logarithmicDepthBuffer&&n.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING","\tattribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR","\tattribute vec3 instanceColor;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_TANGENT","\tattribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )","\tattribute vec4 color;","#elif defined( USE_COLOR )","\tattribute vec3 color;","#endif","#if ( defined( USE_MORPHTARGETS ) && ! defined( MORPHTARGETS_TEXTURE ) )","\tattribute vec3 morphTarget0;","\tattribute vec3 morphTarget1;","\tattribute vec3 morphTarget2;","\tattribute vec3 morphTarget3;","\t#ifdef USE_MORPHNORMALS","\t\tattribute vec3 morphNormal0;","\t\tattribute vec3 morphNormal1;","\t\tattribute vec3 morphNormal2;","\t\tattribute vec3 morphNormal3;","\t#else","\t\tattribute vec3 morphTarget4;","\t\tattribute vec3 morphTarget5;","\t\tattribute vec3 morphTarget6;","\t\tattribute vec3 morphTarget7;","\t#endif","#endif","#ifdef USE_SKINNING","\tattribute vec4 skinIndex;","\tattribute vec4 skinWeight;","#endif","\n"].filter(pc).join("\n"),_=[p,Mc(n),"#define SHADER_NAME "+n.shaderName,f,n.useFog&&n.fog?"#define USE_FOG":"",n.useFog&&n.fogExp2?"#define FOG_EXP2":"",n.map?"#define USE_MAP":"",n.matcap?"#define USE_MATCAP":"",n.envMap?"#define USE_ENVMAP":"",n.envMap?"#define "+c:"",n.envMap?"#define "+h:"",n.envMap?"#define "+u:"",d?"#define CUBEUV_TEXEL_WIDTH "+d.texelWidth:"",d?"#define CUBEUV_TEXEL_HEIGHT "+d.texelHeight:"",d?"#define CUBEUV_MAX_MIP "+d.maxMip+".0":"",n.lightMap?"#define USE_LIGHTMAP":"",n.aoMap?"#define USE_AOMAP":"",n.emissiveMap?"#define USE_EMISSIVEMAP":"",n.bumpMap?"#define USE_BUMPMAP":"",n.normalMap?"#define USE_NORMALMAP":"",n.normalMap&&n.objectSpaceNormalMap?"#define OBJECTSPACE_NORMALMAP":"",n.normalMap&&n.tangentSpaceNormalMap?"#define TANGENTSPACE_NORMALMAP":"",n.clearcoat?"#define USE_CLEARCOAT":"",n.clearcoatMap?"#define USE_CLEARCOATMAP":"",n.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",n.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",n.iridescence?"#define USE_IRIDESCENCE":"",n.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",n.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",n.specularMap?"#define USE_SPECULARMAP":"",n.specularIntensityMap?"#define USE_SPECULARINTENSITYMAP":"",n.specularColorMap?"#define USE_SPECULARCOLORMAP":"",n.roughnessMap?"#define USE_ROUGHNESSMAP":"",n.metalnessMap?"#define USE_METALNESSMAP":"",n.alphaMap?"#define USE_ALPHAMAP":"",n.alphaTest?"#define USE_ALPHATEST":"",n.sheen?"#define USE_SHEEN":"",n.sheenColorMap?"#define USE_SHEENCOLORMAP":"",n.sheenRoughnessMap?"#define USE_SHEENROUGHNESSMAP":"",n.transmission?"#define USE_TRANSMISSION":"",n.transmissionMap?"#define USE_TRANSMISSIONMAP":"",n.thicknessMap?"#define USE_THICKNESSMAP":"",n.decodeVideoTexture?"#define DECODE_VIDEO_TEXTURE":"",n.vertexTangents?"#define USE_TANGENT":"",n.vertexColors||n.instancingColor?"#define USE_COLOR":"",n.vertexAlphas?"#define USE_COLOR_ALPHA":"",n.vertexUvs?"#define USE_UV":"",n.uvsVertexOnly?"#define UVS_VERTEX_ONLY":"",n.gradientMap?"#define USE_GRADIENTMAP":"",n.flatShading?"#define FLAT_SHADED":"",n.doubleSided?"#define DOUBLE_SIDED":"",n.flipSided?"#define FLIP_SIDED":"",n.shadowMapEnabled?"#define USE_SHADOWMAP":"",n.shadowMapEnabled?"#define "+l:"",n.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",n.physicallyCorrectLights?"#define PHYSICALLY_CORRECT_LIGHTS":"",n.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",n.logarithmicDepthBuffer&&n.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",n.toneMapping!==K?"#define TONE_MAPPING":"",n.toneMapping!==K?mo["tonemapping_pars_fragment"]:"",n.toneMapping!==K?cc("toneMapping",n.toneMapping):"",n.dithering?"#define DITHERING":"",n.opaque?"#define OPAQUE":"",mo["encodings_pars_fragment"],lc("linearToOutputTexel",n.outputEncoding),n.useDepthPacking?"#define DEPTH_PACKING "+n.depthPacking:"","\n"].filter(pc).join("\n")),s=_c(s),s=fc(s,n),s=mc(s,n),o=_c(o),o=fc(o,n),o=mc(o,n),s=yc(s),o=yc(o),n.isWebGL2&&!0!==n.isRawShaderMaterial&&(v="#version 300 es\n",g=["precision mediump sampler2DArray;","#define attribute in","#define varying out","#define texture2D texture"].join("\n")+"\n"+g,_=["#define varying in",n.glslVersion===Le?"":"layout(location = 0) out highp vec4 pc_fragColor;",n.glslVersion===Le?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join("\n")+"\n"+_);const x=v+g+s,y=v+_+o,b=ic(r,35633,x),M=ic(r,35632,y);if(r.attachShader(m,b),r.attachShader(m,M),void 0!==n.index0AttributeName?r.bindAttribLocation(m,0,n.index0AttributeName):!0===n.morphTargets&&r.bindAttribLocation(m,0,"position"),r.linkProgram(m),t.debug.checkShaderErrors){const t=r.getProgramInfoLog(m).trim(),e=r.getShaderInfoLog(b).trim(),n=r.getShaderInfoLog(M).trim();let i=!0,a=!0;if(!1===r.getProgramParameter(m,35714)){i=!1;const e=oc(r,b,"vertex"),n=oc(r,M,"fragment");console.error("THREE.WebGLProgram: Shader Error "+r.getError()+" - VALIDATE_STATUS "+r.getProgramParameter(m,35715)+"\n\nProgram Info Log: "+t+"\n"+e+"\n"+n)}else""!==t?console.warn("THREE.WebGLProgram: Program Info Log:",t):""!==e&&""!==n||(a=!1);a&&(this.diagnostics={runnable:i,programLog:t,vertexShader:{log:e,prefix:g},fragmentShader:{log:n,prefix:_}})}let S,w;return r.deleteShader(b),r.deleteShader(M),this.getUniforms=function(){return void 0===S&&(S=new nc(r,m)),S},this.getAttributes=function(){return void 0===w&&(w=dc(r,m)),w},this.destroy=function(){i.releaseStatesOfProgram(this),r.deleteProgram(m),this.program=void 0},this.name=n.shaderName,this.id=rc++,this.cacheKey=e,this.usedTimes=1,this.program=m,this.vertexShader=b,this.fragmentShader=M,this}let Lc=0;class Pc{constructor(){this.shaderCache=new Map,this.materialCache=new Map}update(t){const e=t.vertexShader,n=t.fragmentShader,i=this._getShaderStage(e),r=this._getShaderStage(n),a=this._getShaderCacheForMaterial(t);return!1===a.has(i)&&(a.add(i),i.usedTimes++),!1===a.has(r)&&(a.add(r),r.usedTimes++),this}remove(t){const e=this.materialCache.get(t);for(const n of e)n.usedTimes--,0===n.usedTimes&&this.shaderCache.delete(n.code);return this.materialCache.delete(t),this}getVertexShaderID(t){return this._getShaderStage(t.vertexShader).id}getFragmentShaderID(t){return this._getShaderStage(t.fragmentShader).id}dispose(){this.shaderCache.clear(),this.materialCache.clear()}_getShaderCacheForMaterial(t){const e=this.materialCache;let n=e.get(t);return void 0===n&&(n=new Set,e.set(t,n)),n}_getShaderStage(t){const e=this.shaderCache;let n=e.get(t);return void 0===n&&(n=new Rc(t),e.set(t,n)),n}}class Rc{constructor(t){this.id=Lc++,this.code=t,this.usedTimes=0}}function Dc(t,e,n,i,r,a,s){const o=new ri,l=new Pc,c=[],h=r.isWebGL2,u=r.logarithmicDepthBuffer,d=r.vertexTextures;let p=r.precision;const f={MeshDepthMaterial:"depth",MeshDistanceMaterial:"distanceRGBA",MeshNormalMaterial:"normal",MeshBasicMaterial:"basic",MeshLambertMaterial:"lambert",MeshPhongMaterial:"phong",MeshToonMaterial:"toon",MeshStandardMaterial:"physical",MeshPhysicalMaterial:"physical",MeshMatcapMaterial:"matcap",LineBasicMaterial:"basic",LineDashedMaterial:"dashed",PointsMaterial:"points",ShadowMaterial:"shadow",SpriteMaterial:"sprite"};function _(a,o,c,_,x){const y=_.fog,b=x.geometry,M=a.isMeshStandardMaterial?_.environment:null,S=(a.isMeshStandardMaterial?n:e).get(a.envMap||M),w=S&&S.mapping===ot?S.image.height:null,T=f[a.type];null!==a.precision&&(p=r.getMaxPrecision(a.precision),p!==a.precision&&console.warn("THREE.WebGLProgram.getParameters:",a.precision,"not supported, using",p,"instead."));const E=b.morphAttributes.position||b.morphAttributes.normal||b.morphAttributes.color,A=void 0!==E?E.length:0;let C,L,P,R,D=0;if(void 0!==b.morphAttributes.position&&(D=1),void 0!==b.morphAttributes.normal&&(D=2),void 0!==b.morphAttributes.color&&(D=3),T){const t=_o[T];C=t.vertexShader,L=t.fragmentShader}else C=a.vertexShader,L=a.fragmentShader,l.update(a),P=l.getVertexShaderID(a),R=l.getFragmentShaderID(a);const I=t.getRenderTarget(),O=a.alphaTest>0,N=a.clearcoat>0,z=a.iridescence>0,U={isWebGL2:h,shaderID:T,shaderName:a.type,vertexShader:C,fragmentShader:L,defines:a.defines,customVertexShaderID:P,customFragmentShaderID:R,isRawShaderMaterial:!0===a.isRawShaderMaterial,glslVersion:a.glslVersion,precision:p,instancing:!0===x.isInstancedMesh,instancingColor:!0===x.isInstancedMesh&&null!==x.instanceColor,supportsVertexTextures:d,outputEncoding:null===I?t.outputEncoding:!0===I.isXRRenderTarget?I.texture.encoding:ve,map:!!a.map,matcap:!!a.matcap,envMap:!!S,envMapMode:S&&S.mapping,envMapCubeUVHeight:w,lightMap:!!a.lightMap,aoMap:!!a.aoMap,emissiveMap:!!a.emissiveMap,bumpMap:!!a.bumpMap,normalMap:!!a.normalMap,objectSpaceNormalMap:a.normalMapType===Se,tangentSpaceNormalMap:a.normalMapType===Me,decodeVideoTexture:!!a.map&&!0===a.map.isVideoTexture&&a.map.encoding===xe,clearcoat:N,clearcoatMap:N&&!!a.clearcoatMap,clearcoatRoughnessMap:N&&!!a.clearcoatRoughnessMap,clearcoatNormalMap:N&&!!a.clearcoatNormalMap,iridescence:z,iridescenceMap:z&&!!a.iridescenceMap,iridescenceThicknessMap:z&&!!a.iridescenceThicknessMap,displacementMap:!!a.displacementMap,roughnessMap:!!a.roughnessMap,metalnessMap:!!a.metalnessMap,specularMap:!!a.specularMap,specularIntensityMap:!!a.specularIntensityMap,specularColorMap:!!a.specularColorMap,opaque:!1===a.transparent&&a.blending===v,alphaMap:!!a.alphaMap,alphaTest:O,gradientMap:!!a.gradientMap,sheen:a.sheen>0,sheenColorMap:!!a.sheenColorMap,sheenRoughnessMap:!!a.sheenRoughnessMap,transmission:a.transmission>0,transmissionMap:!!a.transmissionMap,thicknessMap:!!a.thicknessMap,combine:a.combine,vertexTangents:!!a.normalMap&&!!b.attributes.tangent,vertexColors:a.vertexColors,vertexAlphas:!0===a.vertexColors&&!!b.attributes.color&&4===b.attributes.color.itemSize,vertexUvs:!!a.map||!!a.bumpMap||!!a.normalMap||!!a.specularMap||!!a.alphaMap||!!a.emissiveMap||!!a.roughnessMap||!!a.metalnessMap||!!a.clearcoatMap||!!a.clearcoatRoughnessMap||!!a.clearcoatNormalMap||!!a.iridescenceMap||!!a.iridescenceThicknessMap||!!a.displacementMap||!!a.transmissionMap||!!a.thicknessMap||!!a.specularIntensityMap||!!a.specularColorMap||!!a.sheenColorMap||!!a.sheenRoughnessMap,uvsVertexOnly:!(a.map||a.bumpMap||a.normalMap||a.specularMap||a.alphaMap||a.emissiveMap||a.roughnessMap||a.metalnessMap||a.clearcoatNormalMap||a.iridescenceMap||a.iridescenceThicknessMap||a.transmission>0||a.transmissionMap||a.thicknessMap||a.specularIntensityMap||a.specularColorMap||a.sheen>0||a.sheenColorMap||a.sheenRoughnessMap)&&!!a.displacementMap,fog:!!y,useFog:!0===a.fog,fogExp2:y&&y.isFogExp2,flatShading:!!a.flatShading,sizeAttenuation:a.sizeAttenuation,logarithmicDepthBuffer:u,skinning:!0===x.isSkinnedMesh,morphTargets:void 0!==b.morphAttributes.position,morphNormals:void 0!==b.morphAttributes.normal,morphColors:void 0!==b.morphAttributes.color,morphTargetsCount:A,morphTextureStride:D,numDirLights:o.directional.length,numPointLights:o.point.length,numSpotLights:o.spot.length,numSpotLightMaps:o.spotLightMap.length,numRectAreaLights:o.rectArea.length,numHemiLights:o.hemi.length,numDirLightShadows:o.directionalShadowMap.length,numPointLightShadows:o.pointShadowMap.length,numSpotLightShadows:o.spotShadowMap.length,numSpotLightShadowsWithMaps:o.numSpotLightShadowsWithMaps,numClippingPlanes:s.numPlanes,numClipIntersection:s.numIntersection,dithering:a.dithering,shadowMapEnabled:t.shadowMap.enabled&&c.length>0,shadowMapType:t.shadowMap.type,toneMapping:a.toneMapped?t.toneMapping:K,physicallyCorrectLights:t.physicallyCorrectLights,premultipliedAlpha:a.premultipliedAlpha,doubleSided:a.side===g,flipSided:a.side===m,useDepthPacking:!!a.depthPacking,depthPacking:a.depthPacking||0,index0AttributeName:a.index0AttributeName,extensionDerivatives:a.extensions&&a.extensions.derivatives,extensionFragDepth:a.extensions&&a.extensions.fragDepth,extensionDrawBuffers:a.extensions&&a.extensions.drawBuffers,extensionShaderTextureLOD:a.extensions&&a.extensions.shaderTextureLOD,rendererExtensionFragDepth:h||i.has("EXT_frag_depth"),rendererExtensionDrawBuffers:h||i.has("WEBGL_draw_buffers"),rendererExtensionShaderTextureLod:h||i.has("EXT_shader_texture_lod"),customProgramCacheKey:a.customProgramCacheKey()};return U}function x(e){const n=[];if(e.shaderID?n.push(e.shaderID):(n.push(e.customVertexShaderID),n.push(e.customFragmentShaderID)),void 0!==e.defines)for(const t in e.defines)n.push(t),n.push(e.defines[t]);return!1===e.isRawShaderMaterial&&(y(n,e),b(n,e),n.push(t.outputEncoding)),n.push(e.customProgramCacheKey),n.join()}function y(t,e){t.push(e.precision),t.push(e.outputEncoding),t.push(e.envMapMode),t.push(e.envMapCubeUVHeight),t.push(e.combine),t.push(e.vertexUvs),t.push(e.fogExp2),t.push(e.sizeAttenuation),t.push(e.morphTargetsCount),t.push(e.morphAttributeCount),t.push(e.numDirLights),t.push(e.numPointLights),t.push(e.numSpotLights),t.push(e.numSpotLightMaps),t.push(e.numHemiLights),t.push(e.numRectAreaLights),t.push(e.numDirLightShadows),t.push(e.numPointLightShadows),t.push(e.numSpotLightShadows),t.push(e.numSpotLightShadowsWithMaps),t.push(e.shadowMapType),t.push(e.toneMapping),t.push(e.numClippingPlanes),t.push(e.numClipIntersection),t.push(e.depthPacking)}function b(t,e){o.disableAll(),e.isWebGL2&&o.enable(0),e.supportsVertexTextures&&o.enable(1),e.instancing&&o.enable(2),e.instancingColor&&o.enable(3),e.map&&o.enable(4),e.matcap&&o.enable(5),e.envMap&&o.enable(6),e.lightMap&&o.enable(7),e.aoMap&&o.enable(8),e.emissiveMap&&o.enable(9),e.bumpMap&&o.enable(10),e.normalMap&&o.enable(11),e.objectSpaceNormalMap&&o.enable(12),e.tangentSpaceNormalMap&&o.enable(13),e.clearcoat&&o.enable(14),e.clearcoatMap&&o.enable(15),e.clearcoatRoughnessMap&&o.enable(16),e.clearcoatNormalMap&&o.enable(17),e.iridescence&&o.enable(18),e.iridescenceMap&&o.enable(19),e.iridescenceThicknessMap&&o.enable(20),e.displacementMap&&o.enable(21),e.specularMap&&o.enable(22),e.roughnessMap&&o.enable(23),e.metalnessMap&&o.enable(24),e.gradientMap&&o.enable(25),e.alphaMap&&o.enable(26),e.alphaTest&&o.enable(27),e.vertexColors&&o.enable(28),e.vertexAlphas&&o.enable(29),e.vertexUvs&&o.enable(30),e.vertexTangents&&o.enable(31),e.uvsVertexOnly&&o.enable(32),t.push(o.mask),o.disableAll(),e.fog&&o.enable(0),e.useFog&&o.enable(1),e.flatShading&&o.enable(2),e.logarithmicDepthBuffer&&o.enable(3),e.skinning&&o.enable(4),e.morphTargets&&o.enable(5),e.morphNormals&&o.enable(6),e.morphColors&&o.enable(7),e.premultipliedAlpha&&o.enable(8),e.shadowMapEnabled&&o.enable(9),e.physicallyCorrectLights&&o.enable(10),e.doubleSided&&o.enable(11),e.flipSided&&o.enable(12),e.useDepthPacking&&o.enable(13),e.dithering&&o.enable(14),e.specularIntensityMap&&o.enable(15),e.specularColorMap&&o.enable(16),e.transmission&&o.enable(17),e.transmissionMap&&o.enable(18),e.thicknessMap&&o.enable(19),e.sheen&&o.enable(20),e.sheenColorMap&&o.enable(21),e.sheenRoughnessMap&&o.enable(22),e.decodeVideoTexture&&o.enable(23),e.opaque&&o.enable(24),t.push(o.mask)}function M(t){const e=f[t.type];let n;if(e){const t=_o[e];n=_r.clone(t.uniforms)}else n=t.uniforms;return n}function S(e,n){let i;for(let t=0,r=c.length;t0?i.push(h):!0===a.transparent?r.push(h):n.push(h)}function l(t,e,a,o,l,c){const h=s(t,e,a,o,l,c);a.transmission>0?i.unshift(h):!0===a.transparent?r.unshift(h):n.unshift(h)}function c(t,e){n.length>1&&n.sort(t||Oc),i.length>1&&i.sort(e||Nc),r.length>1&&r.sort(e||Nc)}function h(){for(let n=e,i=t.length;n=i.length?(r=new zc,i.push(r)):r=i[n],r}function n(){t=new WeakMap}return{get:e,dispose:n}}function Fc(){const t={};return{get:function(e){if(void 0!==t[e.id])return t[e.id];let n;switch(e.type){case"DirectionalLight":n={direction:new gn,color:new rn};break;case"SpotLight":n={position:new gn,direction:new gn,color:new rn,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":n={position:new gn,color:new rn,distance:0,decay:0};break;case"HemisphereLight":n={direction:new gn,skyColor:new rn,groundColor:new rn};break;case"RectAreaLight":n={color:new rn,position:new gn,halfWidth:new gn,halfHeight:new gn};break}return t[e.id]=n,n}}}function kc(){const t={};return{get:function(e){if(void 0!==t[e.id])return t[e.id];let n;switch(e.type){case"DirectionalLight":n={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Ge};break;case"SpotLight":n={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Ge};break;case"PointLight":n={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Ge,shadowCameraNear:1,shadowCameraFar:1e3};break}return t[e.id]=n,n}}}let Bc=0;function Vc(t,e){return(e.castShadow?2:0)-(t.castShadow?2:0)+(e.map?1:0)-(t.map?1:0)}function Hc(t,e){const n=new Fc,i=kc(),r={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0};for(let h=0;h<9;h++)r.probe.push(new gn);const a=new gn,s=new qn,o=new qn;function l(a,s){let o=0,l=0,c=0;for(let t=0;t<9;t++)r.probe[t].set(0,0,0);let h=0,u=0,d=0,p=0,f=0,m=0,g=0,_=0,v=0,x=0;a.sort(Vc);const y=!0!==s?Math.PI:1;for(let t=0,e=a.length;t0&&(e.isWebGL2||!0===t.has("OES_texture_float_linear")?(r.rectAreaLTC1=go.LTC_FLOAT_1,r.rectAreaLTC2=go.LTC_FLOAT_2):!0===t.has("OES_texture_half_float_linear")?(r.rectAreaLTC1=go.LTC_HALF_1,r.rectAreaLTC2=go.LTC_HALF_2):console.error("THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.")),r.ambient[0]=o,r.ambient[1]=l,r.ambient[2]=c;const b=r.hash;b.directionalLength===h&&b.pointLength===u&&b.spotLength===d&&b.rectAreaLength===p&&b.hemiLength===f&&b.numDirectionalShadows===m&&b.numPointShadows===g&&b.numSpotShadows===_&&b.numSpotMaps===v||(r.directional.length=h,r.spot.length=d,r.rectArea.length=p,r.point.length=u,r.hemi.length=f,r.directionalShadow.length=m,r.directionalShadowMap.length=m,r.pointShadow.length=g,r.pointShadowMap.length=g,r.spotShadow.length=_,r.spotShadowMap.length=_,r.directionalShadowMatrix.length=m,r.pointShadowMatrix.length=g,r.spotLightMatrix.length=_+v-x,r.spotLightMap.length=v,r.numSpotLightShadowsWithMaps=x,b.directionalLength=h,b.pointLength=u,b.spotLength=d,b.rectAreaLength=p,b.hemiLength=f,b.numDirectionalShadows=m,b.numPointShadows=g,b.numSpotShadows=_,b.numSpotMaps=v,r.version=Bc++)}function c(t,e){let n=0,i=0,l=0,c=0,h=0;const u=e.matrixWorldInverse;for(let d=0,p=t.length;d=a.length?(s=new Gc(t,e),a.push(s)):s=a[r],s}function r(){n=new WeakMap}return{get:i,dispose:r}}class jc extends Ri{constructor(t){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=ye,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(t)}copy(t){return super.copy(t),this.depthPacking=t.depthPacking,this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this}}class Xc extends Ri{constructor(t){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.referencePosition=new gn,this.nearDistance=1,this.farDistance=1e3,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(t)}copy(t){return super.copy(t),this.referencePosition.copy(t.referencePosition),this.nearDistance=t.nearDistance,this.farDistance=t.farDistance,this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this}}const qc="void main() {\n\tgl_Position = vec4( position, 1.0 );\n}",Yc="uniform sampler2D shadow_pass;\nuniform vec2 resolution;\nuniform float radius;\n#include \nvoid main() {\n\tconst float samples = float( VSM_SAMPLES );\n\tfloat mean = 0.0;\n\tfloat squared_mean = 0.0;\n\tfloat uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 );\n\tfloat uvStart = samples <= 1.0 ? 0.0 : - 1.0;\n\tfor ( float i = 0.0; i < samples; i ++ ) {\n\t\tfloat uvOffset = uvStart + i * uvStride;\n\t\t#ifdef HORIZONTAL_PASS\n\t\t\tvec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) );\n\t\t\tmean += distribution.x;\n\t\t\tsquared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\n\t\t#else\n\t\t\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) );\n\t\t\tmean += depth;\n\t\t\tsquared_mean += depth * depth;\n\t\t#endif\n\t}\n\tmean = mean / samples;\n\tsquared_mean = squared_mean / samples;\n\tfloat std_dev = sqrt( squared_mean - mean * mean );\n\tgl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\n}";function Zc(t,e,n){let i=new Or;const r=new Ge,a=new Ge,s=new un,o=new jc({depthPacking:be}),l=new Xc,c={},h=n.maxTextureSize,d={0:m,1:f,2:g},v=new yr({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new Ge},radius:{value:4}},vertexShader:qc,fragmentShader:Yc}),x=v.clone();x.defines.HORIZONTAL_PASS=1;const y=new Xi;y.setAttribute("position",new Ni(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const b=new hr(y,v),M=this;function S(n,i){const a=e.update(b);v.defines.VSM_SAMPLES!==n.blurSamples&&(v.defines.VSM_SAMPLES=n.blurSamples,x.defines.VSM_SAMPLES=n.blurSamples,v.needsUpdate=!0,x.needsUpdate=!0),null===n.mapPass&&(n.mapPass=new dn(r.x,r.y)),v.uniforms.shadow_pass.value=n.map.texture,v.uniforms.resolution.value=n.mapSize,v.uniforms.radius.value=n.radius,t.setRenderTarget(n.mapPass),t.clear(),t.renderBufferDirect(i,null,a,v,b,null),x.uniforms.shadow_pass.value=n.mapPass.texture,x.uniforms.resolution.value=n.mapSize,x.uniforms.radius.value=n.radius,t.setRenderTarget(n.map),t.clear(),t.renderBufferDirect(i,null,a,x,b,null)}function w(e,n,i,r,a,s){let h=null;const u=!0===i.isPointLight?e.customDistanceMaterial:e.customDepthMaterial;if(h=void 0!==u?u:!0===i.isPointLight?l:o,t.localClippingEnabled&&!0===n.clipShadows&&Array.isArray(n.clippingPlanes)&&0!==n.clippingPlanes.length||n.displacementMap&&0!==n.displacementScale||n.alphaMap&&n.alphaTest>0){const t=h.uuid,e=n.uuid;let i=c[t];void 0===i&&(i={},c[t]=i);let r=i[e];void 0===r&&(r=h.clone(),i[e]=r),h=r}return h.visible=n.visible,h.wireframe=n.wireframe,h.side=s===p?null!==n.shadowSide?n.shadowSide:n.side:null!==n.shadowSide?n.shadowSide:d[n.side],h.alphaMap=n.alphaMap,h.alphaTest=n.alphaTest,h.clipShadows=n.clipShadows,h.clippingPlanes=n.clippingPlanes,h.clipIntersection=n.clipIntersection,h.displacementMap=n.displacementMap,h.displacementScale=n.displacementScale,h.displacementBias=n.displacementBias,h.wireframeLinewidth=n.wireframeLinewidth,h.linewidth=n.linewidth,!0===i.isPointLight&&!0===h.isMeshDistanceMaterial&&(h.referencePosition.setFromMatrixPosition(i.matrixWorld),h.nearDistance=r,h.farDistance=a),h}function T(n,r,a,s,o){if(!1===n.visible)return;const l=n.layers.test(r.layers);if(l&&(n.isMesh||n.isLine||n.isPoints)&&(n.castShadow||n.receiveShadow&&o===p)&&(!n.frustumCulled||i.intersectsObject(n))){n.modelViewMatrix.multiplyMatrices(a.matrixWorldInverse,n.matrixWorld);const i=e.update(n),r=n.material;if(Array.isArray(r)){const e=i.groups;for(let l=0,c=e.length;lh||r.y>h)&&(r.x>h&&(a.x=Math.floor(h/u.x),r.x=a.x*u.x,c.mapSize.x=a.x),r.y>h&&(a.y=Math.floor(h/u.y),r.y=a.y*u.y,c.mapSize.y=a.y)),null===c.map){const t=this.type!==p?{minFilter:ut,magFilter:ut}:{};c.map=new dn(r.x,r.y,t),c.map.texture.name=l.name+".shadowMap",c.camera.updateProjectionMatrix()}t.setRenderTarget(c.map),t.clear();const m=c.getViewportCount();for(let t=0;t=1):-1!==mt.indexOf("OpenGL ES")&&(ft=parseFloat(/^OpenGL ES (\d)/.exec(mt)[1]),pt=ft>=2);let gt=null,_t={};const vt=t.getParameter(3088),xt=t.getParameter(2978),yt=(new un).fromArray(vt),bt=(new un).fromArray(xt);function Mt(e,n,i){const r=new Uint8Array(4),a=t.createTexture();t.bindTexture(e,a),t.texParameteri(e,10241,9728),t.texParameteri(e,10240,9728);for(let s=0;si||t.height>i)&&(r=i/Math.max(t.width,t.height)),r<1||!0===e){if("undefined"!==typeof HTMLImageElement&&t instanceof HTMLImageElement||"undefined"!==typeof HTMLCanvasElement&&t instanceof HTMLCanvasElement||"undefined"!==typeof ImageBitmap&&t instanceof ImageBitmap){const i=e?Be:Math.floor,a=i(r*t.width),s=i(r*t.height);void 0===m&&(m=v(a,s));const o=n?v(a,s):m;o.width=a,o.height=s;const l=o.getContext("2d");return l.drawImage(t,0,0,a,s),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+t.width+"x"+t.height+") to ("+a+"x"+s+")."),o}return"data"in t&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+t.width+"x"+t.height+")."),t}return t}function y(t){return ke(t.width)&&ke(t.height)}function b(t){return!o&&(t.wrapS!==ct||t.wrapT!==ct||t.minFilter!==ut&&t.minFilter!==ft)}function M(t,e){return t.generateMipmaps&&e&&t.minFilter!==ut&&t.minFilter!==ft}function S(e){t.generateMipmap(e)}function w(n,i,r,a,s=!1){if(!1===o)return i;if(null!==n){if(void 0!==t[n])return t[n];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+n+"'")}let l=i;return 6403===i&&(5126===r&&(l=33326),5131===r&&(l=33325),5121===r&&(l=33321)),33319===i&&(5126===r&&(l=33328),5131===r&&(l=33327),5121===r&&(l=33323)),6408===i&&(5126===r&&(l=34836),5131===r&&(l=34842),5121===r&&(l=a===xe&&!1===s?35907:32856),32819===r&&(l=32854),32820===r&&(l=32855)),33325!==l&&33326!==l&&33327!==l&&33328!==l&&34842!==l&&34836!==l||e.get("EXT_color_buffer_float"),l}function T(t,e,n){return!0===M(t,n)||t.isFramebufferTexture&&t.minFilter!==ut&&t.minFilter!==ft?Math.log2(Math.max(e.width,e.height))+1:void 0!==t.mipmaps&&t.mipmaps.length>0?t.mipmaps.length:t.isCompressedTexture&&Array.isArray(t.image)?e.mipmaps.length:1}function E(t){return t===ut||t===dt||t===pt?9728:9729}function A(t){const e=t.target;e.removeEventListener("dispose",A),L(e),e.isVideoTexture&&f.delete(e)}function C(t){const e=t.target;e.removeEventListener("dispose",C),R(e)}function L(t){const e=i.get(t);if(void 0===e.__webglInit)return;const n=t.source,r=g.get(n);if(r){const i=r[e.__cacheKey];i.usedTimes--,0===i.usedTimes&&P(t),0===Object.keys(r).length&&g.delete(n)}i.remove(t)}function P(e){const n=i.get(e);t.deleteTexture(n.__webglTexture);const r=e.source,a=g.get(r);delete a[n.__cacheKey],s.memory.textures--}function R(e){const n=e.texture,r=i.get(e),a=i.get(n);if(void 0!==a.__webglTexture&&(t.deleteTexture(a.__webglTexture),s.memory.textures--),e.depthTexture&&e.depthTexture.dispose(),e.isWebGLCubeRenderTarget)for(let i=0;i<6;i++)t.deleteFramebuffer(r.__webglFramebuffer[i]),r.__webglDepthbuffer&&t.deleteRenderbuffer(r.__webglDepthbuffer[i]);else{if(t.deleteFramebuffer(r.__webglFramebuffer),r.__webglDepthbuffer&&t.deleteRenderbuffer(r.__webglDepthbuffer),r.__webglMultisampledFramebuffer&&t.deleteFramebuffer(r.__webglMultisampledFramebuffer),r.__webglColorRenderbuffer)for(let e=0;e=l&&console.warn("THREE.WebGLTextures: Trying to use "+t+" texture units while this GPU supports only "+l),D+=1,t}function N(t){const e=[];return e.push(t.wrapS),e.push(t.wrapT),e.push(t.magFilter),e.push(t.minFilter),e.push(t.anisotropy),e.push(t.internalFormat),e.push(t.format),e.push(t.type),e.push(t.generateMipmaps),e.push(t.premultiplyAlpha),e.push(t.flipY),e.push(t.unpackAlignment),e.push(t.encoding),e.join()}function z(t,e){const r=i.get(t);if(t.isVideoTexture&&nt(t),!1===t.isRenderTargetTexture&&t.version>0&&r.__version!==t.version){const n=t.image;if(null===n)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else{if(!1!==n.complete)return void W(r,t,e);console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete")}}n.activeTexture(33984+e),n.bindTexture(3553,r.__webglTexture)}function U(t,e){const r=i.get(t);t.version>0&&r.__version!==t.version?W(r,t,e):(n.activeTexture(33984+e),n.bindTexture(35866,r.__webglTexture))}function F(t,e){const r=i.get(t);t.version>0&&r.__version!==t.version?W(r,t,e):(n.activeTexture(33984+e),n.bindTexture(32879,r.__webglTexture))}function k(t,e){const r=i.get(t);t.version>0&&r.__version!==t.version?j(r,t,e):(n.activeTexture(33984+e),n.bindTexture(34067,r.__webglTexture))}const B={[lt]:10497,[ct]:33071,[ht]:33648},V={[ut]:9728,[dt]:9984,[pt]:9986,[ft]:9729,[mt]:9985,[gt]:9987};function H(n,a,s){if(s?(t.texParameteri(n,10242,B[a.wrapS]),t.texParameteri(n,10243,B[a.wrapT]),32879!==n&&35866!==n||t.texParameteri(n,32882,B[a.wrapR]),t.texParameteri(n,10240,V[a.magFilter]),t.texParameteri(n,10241,V[a.minFilter])):(t.texParameteri(n,10242,33071),t.texParameteri(n,10243,33071),32879!==n&&35866!==n||t.texParameteri(n,32882,33071),a.wrapS===ct&&a.wrapT===ct||console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping."),t.texParameteri(n,10240,E(a.magFilter)),t.texParameteri(n,10241,E(a.minFilter)),a.minFilter!==ut&&a.minFilter!==ft&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.")),!0===e.has("EXT_texture_filter_anisotropic")){const s=e.get("EXT_texture_filter_anisotropic");if(a.type===St&&!1===e.has("OES_texture_float_linear"))return;if(!1===o&&a.type===wt&&!1===e.has("OES_texture_half_float_linear"))return;(a.anisotropy>1||i.get(a).__currentAnisotropy)&&(t.texParameterf(n,s.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(a.anisotropy,r.getMaxAnisotropy())),i.get(a).__currentAnisotropy=a.anisotropy)}}function G(e,n){let i=!1;void 0===e.__webglInit&&(e.__webglInit=!0,n.addEventListener("dispose",A));const r=n.source;let a=g.get(r);void 0===a&&(a={},g.set(r,a));const o=N(n);if(o!==e.__cacheKey){void 0===a[o]&&(a[o]={texture:t.createTexture(),usedTimes:0},s.memory.textures++,i=!0),a[o].usedTimes++;const r=a[e.__cacheKey];void 0!==r&&(a[e.__cacheKey].usedTimes--,0===r.usedTimes&&P(n)),e.__cacheKey=o,e.__webglTexture=a[o].texture}return i}function W(e,i,r){let s=3553;i.isDataArrayTexture&&(s=35866),i.isData3DTexture&&(s=32879);const l=G(e,i),c=i.source;if(n.activeTexture(33984+r),n.bindTexture(s,e.__webglTexture),c.version!==c.__currentVersion||!0===l){t.pixelStorei(37440,i.flipY),t.pixelStorei(37441,i.premultiplyAlpha),t.pixelStorei(3317,i.unpackAlignment),t.pixelStorei(37443,0);const e=b(i)&&!1===y(i.image);let r=x(i.image,e,!1,h);r=it(i,r);const u=y(r)||o,d=a.convert(i.format,i.encoding);let p,f=a.convert(i.type),m=w(i.internalFormat,d,f,i.encoding,i.isVideoTexture);H(s,i,u);const g=i.mipmaps,_=o&&!0!==i.isVideoTexture,v=void 0===c.__currentVersion||!0===l,E=T(i,r,u);if(i.isDepthTexture)m=6402,o?m=i.type===St?36012:i.type===Mt?33190:i.type===At?35056:33189:i.type===St&&console.error("WebGLRenderer: Floating point depth texture requires WebGL2."),i.format===It&&6402===m&&i.type!==yt&&i.type!==Mt&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),i.type=Mt,f=a.convert(i.type)),i.format===Ot&&6402===m&&(m=34041,i.type!==At&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),i.type=At,f=a.convert(i.type))),v&&(_?n.texStorage2D(3553,1,m,r.width,r.height):n.texImage2D(3553,0,m,r.width,r.height,0,d,f,null));else if(i.isDataTexture)if(g.length>0&&u){_&&v&&n.texStorage2D(3553,E,m,g[0].width,g[0].height);for(let t=0,e=g.length;t>=1,e>>=1}}else if(g.length>0&&u){_&&v&&n.texStorage2D(3553,E,m,g[0].width,g[0].height);for(let t=0,e=g.length;t0&&b++,n.texStorage2D(34067,b,m,h[0].width,h[0].height));for(let t=0;t<6;t++)if(r){g?n.texSubImage2D(34069+t,0,0,0,h[t].width,h[t].height,p,f,h[t].data):n.texImage2D(34069+t,0,m,h[t].width,h[t].height,0,p,f,h[t].data);for(let e=0;e0&&!1===et(e)){const i=d?l:[l];c.__webglMultisampledFramebuffer=t.createFramebuffer(),c.__webglColorRenderbuffer=[],n.bindFramebuffer(36160,c.__webglMultisampledFramebuffer);for(let n=0;n0&&!1===et(e)){const r=e.isWebGLMultipleRenderTargets?e.texture:[e.texture],a=e.width,s=e.height;let o=16384;const l=[],c=e.stencilBuffer?33306:36096,h=i.get(e),u=!0===e.isWebGLMultipleRenderTargets;if(u)for(let e=0;e0&&!0===e.has("WEBGL_multisampled_render_to_texture")&&!1!==n.__useRenderToTexture}function nt(t){const e=s.render.frame;f.get(t)!==e&&(f.set(t,e),t.update())}function it(t,n){const i=t.encoding,r=t.format,a=t.type;return!0===t.isCompressedTexture||!0===t.isVideoTexture||t.format===Pe||i!==ve&&(i===xe?!1===o?!0===e.has("EXT_sRGB")&&r===Pt?(t.format=Pe,t.minFilter=ft,t.generateMipmaps=!1):n=sn.sRGBToLinear(n):r===Pt&&a===_t||console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture encoding:",i)),n}this.allocateTextureUnit=O,this.resetTextureUnits=I,this.setTexture2D=z,this.setTexture2DArray=U,this.setTexture3D=F,this.setTextureCube=k,this.rebindTextures=K,this.setupRenderTarget=J,this.updateRenderTargetMipmap=Q,this.updateMultisampleRenderTarget=$,this.setupDepthRenderbuffer=Z,this.setupFrameBufferTexture=X,this.useMultisampledRTT=et}function Qc(t,e,n){const i=n.isWebGL2;function r(n,r=null){let a;if(n===_t)return 5121;if(n===Tt)return 32819;if(n===Et)return 32820;if(n===vt)return 5120;if(n===xt)return 5122;if(n===yt)return 5123;if(n===bt)return 5124;if(n===Mt)return 5125;if(n===St)return 5126;if(n===wt)return i?5131:(a=e.get("OES_texture_half_float"),null!==a?a.HALF_FLOAT_OES:null);if(n===Ct)return 6406;if(n===Pt)return 6408;if(n===Rt)return 6409;if(n===Dt)return 6410;if(n===It)return 6402;if(n===Ot)return 34041;if(n===Nt)return 6403;if(n===Lt)return console.warn("THREE.WebGLRenderer: THREE.RGBFormat has been removed. Use THREE.RGBAFormat instead. https://github.com/mrdoob/three.js/pull/23228"),6408;if(n===Pe)return a=e.get("EXT_sRGB"),null!==a?a.SRGB_ALPHA_EXT:null;if(n===zt)return 36244;if(n===Ut)return 33319;if(n===Ft)return 33320;if(n===kt)return 36249;if(n===Bt||n===Vt||n===Ht||n===Gt)if(r===xe){if(a=e.get("WEBGL_compressed_texture_s3tc_srgb"),null===a)return null;if(n===Bt)return a.COMPRESSED_SRGB_S3TC_DXT1_EXT;if(n===Vt)return a.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;if(n===Ht)return a.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;if(n===Gt)return a.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}else{if(a=e.get("WEBGL_compressed_texture_s3tc"),null===a)return null;if(n===Bt)return a.COMPRESSED_RGB_S3TC_DXT1_EXT;if(n===Vt)return a.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(n===Ht)return a.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(n===Gt)return a.COMPRESSED_RGBA_S3TC_DXT5_EXT}if(n===Wt||n===jt||n===Xt||n===qt){if(a=e.get("WEBGL_compressed_texture_pvrtc"),null===a)return null;if(n===Wt)return a.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(n===jt)return a.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(n===Xt)return a.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(n===qt)return a.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}if(n===Yt)return a=e.get("WEBGL_compressed_texture_etc1"),null!==a?a.COMPRESSED_RGB_ETC1_WEBGL:null;if(n===Zt||n===Kt){if(a=e.get("WEBGL_compressed_texture_etc"),null===a)return null;if(n===Zt)return r===xe?a.COMPRESSED_SRGB8_ETC2:a.COMPRESSED_RGB8_ETC2;if(n===Kt)return r===xe?a.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:a.COMPRESSED_RGBA8_ETC2_EAC}if(n===Jt||n===Qt||n===$t||n===te||n===ee||n===ne||n===ie||n===re||n===ae||n===se||n===oe||n===le||n===ce||n===he){if(a=e.get("WEBGL_compressed_texture_astc"),null===a)return null;if(n===Jt)return r===xe?a.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:a.COMPRESSED_RGBA_ASTC_4x4_KHR;if(n===Qt)return r===xe?a.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:a.COMPRESSED_RGBA_ASTC_5x4_KHR;if(n===$t)return r===xe?a.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:a.COMPRESSED_RGBA_ASTC_5x5_KHR;if(n===te)return r===xe?a.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:a.COMPRESSED_RGBA_ASTC_6x5_KHR;if(n===ee)return r===xe?a.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:a.COMPRESSED_RGBA_ASTC_6x6_KHR;if(n===ne)return r===xe?a.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:a.COMPRESSED_RGBA_ASTC_8x5_KHR;if(n===ie)return r===xe?a.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:a.COMPRESSED_RGBA_ASTC_8x6_KHR;if(n===re)return r===xe?a.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:a.COMPRESSED_RGBA_ASTC_8x8_KHR;if(n===ae)return r===xe?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:a.COMPRESSED_RGBA_ASTC_10x5_KHR;if(n===se)return r===xe?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:a.COMPRESSED_RGBA_ASTC_10x6_KHR;if(n===oe)return r===xe?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:a.COMPRESSED_RGBA_ASTC_10x8_KHR;if(n===le)return r===xe?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:a.COMPRESSED_RGBA_ASTC_10x10_KHR;if(n===ce)return r===xe?a.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:a.COMPRESSED_RGBA_ASTC_12x10_KHR;if(n===he)return r===xe?a.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:a.COMPRESSED_RGBA_ASTC_12x12_KHR}if(n===ue){if(a=e.get("EXT_texture_compression_bptc"),null===a)return null;if(n===ue)return r===xe?a.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:a.COMPRESSED_RGBA_BPTC_UNORM_EXT}return n===At?i?34042:(a=e.get("WEBGL_depth_texture"),null!==a?a.UNSIGNED_INT_24_8_WEBGL:null):void 0!==t[n]?t[n]:null}return{convert:r}}class $c extends Mr{constructor(t=[]){super(),this.isArrayCamera=!0,this.cameras=t}}class th extends vi{constructor(){super(),this.isGroup=!0,this.type="Group"}}const eh={type:"move"};class nh{constructor(){this._targetRay=null,this._grip=null,this._hand=null}getHandSpace(){return null===this._hand&&(this._hand=new th,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand}getTargetRaySpace(){return null===this._targetRay&&(this._targetRay=new th,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new gn,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new gn),this._targetRay}getGripSpace(){return null===this._grip&&(this._grip=new th,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new gn,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new gn),this._grip}dispatchEvent(t){return null!==this._targetRay&&this._targetRay.dispatchEvent(t),null!==this._grip&&this._grip.dispatchEvent(t),null!==this._hand&&this._hand.dispatchEvent(t),this}disconnect(t){return this.dispatchEvent({type:"disconnected",data:t}),null!==this._targetRay&&(this._targetRay.visible=!1),null!==this._grip&&(this._grip.visible=!1),null!==this._hand&&(this._hand.visible=!1),this}update(t,e,n){let i=null,r=null,a=null;const s=this._targetRay,o=this._grip,l=this._hand;if(t&&"visible-blurred"!==e.session.visibilityState){if(l&&t.hand){a=!0;for(const a of t.hand.values()){const t=e.getJointPose(a,n);if(void 0===l.joints[a.jointName]){const t=new th;t.matrixAutoUpdate=!1,t.visible=!1,l.joints[a.jointName]=t,l.add(t)}const i=l.joints[a.jointName];null!==t&&(i.matrix.fromArray(t.transform.matrix),i.matrix.decompose(i.position,i.rotation,i.scale),i.jointRadius=t.radius),i.visible=null!==t}const i=l.joints["index-finger-tip"],r=l.joints["thumb-tip"],s=i.position.distanceTo(r.position),o=.02,c=.005;l.inputState.pinching&&s>o+c?(l.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:t.handedness,target:this})):!l.inputState.pinching&&s<=o-c&&(l.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:t.handedness,target:this}))}else null!==o&&t.gripSpace&&(r=e.getPose(t.gripSpace,n),null!==r&&(o.matrix.fromArray(r.transform.matrix),o.matrix.decompose(o.position,o.rotation,o.scale),r.linearVelocity?(o.hasLinearVelocity=!0,o.linearVelocity.copy(r.linearVelocity)):o.hasLinearVelocity=!1,r.angularVelocity?(o.hasAngularVelocity=!0,o.angularVelocity.copy(r.angularVelocity)):o.hasAngularVelocity=!1));null!==s&&(i=e.getPose(t.targetRaySpace,n),null===i&&null!==r&&(i=r),null!==i&&(s.matrix.fromArray(i.transform.matrix),s.matrix.decompose(s.position,s.rotation,s.scale),i.linearVelocity?(s.hasLinearVelocity=!0,s.linearVelocity.copy(i.linearVelocity)):s.hasLinearVelocity=!1,i.angularVelocity?(s.hasAngularVelocity=!0,s.angularVelocity.copy(i.angularVelocity)):s.hasAngularVelocity=!1,this.dispatchEvent(eh)))}return null!==s&&(s.visible=null!==i),null!==o&&(o.visible=null!==r),null!==l&&(l.visible=null!==a),this}}class ih extends hn{constructor(t,e,n,i,r,a,s,o,l,c){if(c=void 0!==c?c:It,c!==It&&c!==Ot)throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");void 0===n&&c===It&&(n=Mt),void 0===n&&c===Ot&&(n=At),super(null,i,r,a,s,o,c,n,l),this.isDepthTexture=!0,this.image={width:t,height:e},this.magFilter=void 0!==s?s:ut,this.minFilter=void 0!==o?o:ut,this.flipY=!1,this.generateMipmaps=!1}}class rh extends Re{constructor(t,e){super();const n=this;let i=null,r=1,a=null,s="local-floor",o=null,l=null,c=null,h=null,u=null,d=null;const p=e.getContextAttributes();let f=null,m=null;const g=[],_=[],v=new Mr;v.layers.enable(1),v.viewport=new un;const x=new Mr;x.layers.enable(2),x.viewport=new un;const y=[v,x],b=new $c;b.layers.enable(1),b.layers.enable(2);let M=null,S=null;function w(t){const e=_.indexOf(t.inputSource);if(-1===e)return;const n=g[e];void 0!==n&&n.dispatchEvent({type:t.type,data:t.inputSource})}function T(){i.removeEventListener("select",w),i.removeEventListener("selectstart",w),i.removeEventListener("selectend",w),i.removeEventListener("squeeze",w),i.removeEventListener("squeezestart",w),i.removeEventListener("squeezeend",w),i.removeEventListener("end",T),i.removeEventListener("inputsourceschange",E);for(let t=0;t=0&&(_[i]=null,g[i].dispatchEvent({type:"disconnected",data:n}))}for(let e=0;e=_.length){_.push(n),i=t;break}if(null===_[t]){_[t]=n,i=t;break}}if(-1===i)break}const r=g[i];r&&r.dispatchEvent({type:"connected",data:n})}}this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(t){let e=g[t];return void 0===e&&(e=new nh,g[t]=e),e.getTargetRaySpace()},this.getControllerGrip=function(t){let e=g[t];return void 0===e&&(e=new nh,g[t]=e),e.getGripSpace()},this.getHand=function(t){let e=g[t];return void 0===e&&(e=new nh,g[t]=e),e.getHandSpace()},this.setFramebufferScaleFactor=function(t){r=t,!0===n.isPresenting&&console.warn("THREE.WebXRManager: Cannot change framebuffer scale while presenting.")},this.setReferenceSpaceType=function(t){s=t,!0===n.isPresenting&&console.warn("THREE.WebXRManager: Cannot change reference space type while presenting.")},this.getReferenceSpace=function(){return o||a},this.setReferenceSpace=function(t){o=t},this.getBaseLayer=function(){return null!==h?h:u},this.getBinding=function(){return c},this.getFrame=function(){return d},this.getSession=function(){return i},this.setSession=async function(l){if(i=l,null!==i){if(f=t.getRenderTarget(),i.addEventListener("select",w),i.addEventListener("selectstart",w),i.addEventListener("selectend",w),i.addEventListener("squeeze",w),i.addEventListener("squeezestart",w),i.addEventListener("squeezeend",w),i.addEventListener("end",T),i.addEventListener("inputsourceschange",E),!0!==p.xrCompatible&&await e.makeXRCompatible(),void 0===i.renderState.layers||!1===t.capabilities.isWebGL2){const n={antialias:void 0!==i.renderState.layers||p.antialias,alpha:p.alpha,depth:p.depth,stencil:p.stencil,framebufferScaleFactor:r};u=new XRWebGLLayer(i,e,n),i.updateRenderState({baseLayer:u}),m=new dn(u.framebufferWidth,u.framebufferHeight,{format:Pt,type:_t,encoding:t.outputEncoding,stencilBuffer:p.stencil})}else{let n=null,a=null,s=null;p.depth&&(s=p.stencil?35056:33190,n=p.stencil?Ot:It,a=p.stencil?At:Mt);const o={colorFormat:32856,depthFormat:s,scaleFactor:r};c=new XRWebGLBinding(i,e),h=c.createProjectionLayer(o),i.updateRenderState({layers:[h]}),m=new dn(h.textureWidth,h.textureHeight,{format:Pt,type:_t,depthTexture:new ih(h.textureWidth,h.textureHeight,a,void 0,void 0,void 0,void 0,void 0,void 0,n),stencilBuffer:p.stencil,encoding:t.outputEncoding,samples:p.antialias?4:0});const l=t.properties.get(m);l.__ignoreDepthValues=h.ignoreDepthValues}m.isXRRenderTarget=!0,this.setFoveation(1),o=null,a=await i.requestReferenceSpace(s),I.setContext(i),I.start(),n.isPresenting=!0,n.dispatchEvent({type:"sessionstart"})}};const A=new gn,C=new gn;function L(t,e,n){A.setFromMatrixPosition(e.matrixWorld),C.setFromMatrixPosition(n.matrixWorld);const i=A.distanceTo(C),r=e.projectionMatrix.elements,a=n.projectionMatrix.elements,s=r[14]/(r[10]-1),o=r[14]/(r[10]+1),l=(r[9]+1)/r[5],c=(r[9]-1)/r[5],h=(r[8]-1)/r[0],u=(a[8]+1)/a[0],d=s*h,p=s*u,f=i/(-h+u),m=f*-h;e.matrixWorld.decompose(t.position,t.quaternion,t.scale),t.translateX(m),t.translateZ(f),t.matrixWorld.compose(t.position,t.quaternion,t.scale),t.matrixWorldInverse.copy(t.matrixWorld).invert();const g=s+f,_=o+f,v=d-m,x=p+(i-m),y=l*o/_*g,b=c*o/_*g;t.projectionMatrix.makePerspective(v,x,y,b,g,_)}function P(t,e){null===e?t.matrixWorld.copy(t.matrix):t.matrixWorld.multiplyMatrices(e.matrixWorld,t.matrix),t.matrixWorldInverse.copy(t.matrixWorld).invert()}this.updateCamera=function(t){if(null===i)return;b.near=x.near=v.near=t.near,b.far=x.far=v.far=t.far,M===b.near&&S===b.far||(i.updateRenderState({depthNear:b.near,depthFar:b.far}),M=b.near,S=b.far);const e=t.parent,n=b.cameras;P(b,e);for(let i=0;i0&&(n.alphaTest.value=i.alphaTest);const r=e.get(i).envMap;if(r&&(n.envMap.value=r,n.flipEnvMap.value=r.isCubeTexture&&!1===r.isRenderTargetTexture?-1:1,n.reflectivity.value=i.reflectivity,n.ior.value=i.ior,n.refractionRatio.value=i.refractionRatio),i.lightMap){n.lightMap.value=i.lightMap;const e=!0!==t.physicallyCorrectLights?Math.PI:1;n.lightMapIntensity.value=i.lightMapIntensity*e}let a,s;i.aoMap&&(n.aoMap.value=i.aoMap,n.aoMapIntensity.value=i.aoMapIntensity),i.map?a=i.map:i.specularMap?a=i.specularMap:i.displacementMap?a=i.displacementMap:i.normalMap?a=i.normalMap:i.bumpMap?a=i.bumpMap:i.roughnessMap?a=i.roughnessMap:i.metalnessMap?a=i.metalnessMap:i.alphaMap?a=i.alphaMap:i.emissiveMap?a=i.emissiveMap:i.clearcoatMap?a=i.clearcoatMap:i.clearcoatNormalMap?a=i.clearcoatNormalMap:i.clearcoatRoughnessMap?a=i.clearcoatRoughnessMap:i.iridescenceMap?a=i.iridescenceMap:i.iridescenceThicknessMap?a=i.iridescenceThicknessMap:i.specularIntensityMap?a=i.specularIntensityMap:i.specularColorMap?a=i.specularColorMap:i.transmissionMap?a=i.transmissionMap:i.thicknessMap?a=i.thicknessMap:i.sheenColorMap?a=i.sheenColorMap:i.sheenRoughnessMap&&(a=i.sheenRoughnessMap),void 0!==a&&(a.isWebGLRenderTarget&&(a=a.texture),!0===a.matrixAutoUpdate&&a.updateMatrix(),n.uvTransform.value.copy(a.matrix)),i.aoMap?s=i.aoMap:i.lightMap&&(s=i.lightMap),void 0!==s&&(s.isWebGLRenderTarget&&(s=s.texture),!0===s.matrixAutoUpdate&&s.updateMatrix(),n.uv2Transform.value.copy(s.matrix))}function a(t,e){t.diffuse.value.copy(e.color),t.opacity.value=e.opacity}function s(t,e){t.dashSize.value=e.dashSize,t.totalSize.value=e.dashSize+e.gapSize,t.scale.value=e.scale}function o(t,e,n,i){let r;t.diffuse.value.copy(e.color),t.opacity.value=e.opacity,t.size.value=e.size*n,t.scale.value=.5*i,e.map&&(t.map.value=e.map),e.alphaMap&&(t.alphaMap.value=e.alphaMap),e.alphaTest>0&&(t.alphaTest.value=e.alphaTest),e.map?r=e.map:e.alphaMap&&(r=e.alphaMap),void 0!==r&&(!0===r.matrixAutoUpdate&&r.updateMatrix(),t.uvTransform.value.copy(r.matrix))}function l(t,e){let n;t.diffuse.value.copy(e.color),t.opacity.value=e.opacity,t.rotation.value=e.rotation,e.map&&(t.map.value=e.map),e.alphaMap&&(t.alphaMap.value=e.alphaMap),e.alphaTest>0&&(t.alphaTest.value=e.alphaTest),e.map?n=e.map:e.alphaMap&&(n=e.alphaMap),void 0!==n&&(!0===n.matrixAutoUpdate&&n.updateMatrix(),t.uvTransform.value.copy(n.matrix))}function c(t,e){t.specular.value.copy(e.specular),t.shininess.value=Math.max(e.shininess,1e-4)}function h(t,e){e.gradientMap&&(t.gradientMap.value=e.gradientMap)}function u(t,n){t.roughness.value=n.roughness,t.metalness.value=n.metalness,n.roughnessMap&&(t.roughnessMap.value=n.roughnessMap),n.metalnessMap&&(t.metalnessMap.value=n.metalnessMap);const i=e.get(n).envMap;i&&(t.envMapIntensity.value=n.envMapIntensity)}function d(t,e,n){t.ior.value=e.ior,e.sheen>0&&(t.sheenColor.value.copy(e.sheenColor).multiplyScalar(e.sheen),t.sheenRoughness.value=e.sheenRoughness,e.sheenColorMap&&(t.sheenColorMap.value=e.sheenColorMap),e.sheenRoughnessMap&&(t.sheenRoughnessMap.value=e.sheenRoughnessMap)),e.clearcoat>0&&(t.clearcoat.value=e.clearcoat,t.clearcoatRoughness.value=e.clearcoatRoughness,e.clearcoatMap&&(t.clearcoatMap.value=e.clearcoatMap),e.clearcoatRoughnessMap&&(t.clearcoatRoughnessMap.value=e.clearcoatRoughnessMap),e.clearcoatNormalMap&&(t.clearcoatNormalScale.value.copy(e.clearcoatNormalScale),t.clearcoatNormalMap.value=e.clearcoatNormalMap,e.side===m&&t.clearcoatNormalScale.value.negate())),e.iridescence>0&&(t.iridescence.value=e.iridescence,t.iridescenceIOR.value=e.iridescenceIOR,t.iridescenceThicknessMinimum.value=e.iridescenceThicknessRange[0],t.iridescenceThicknessMaximum.value=e.iridescenceThicknessRange[1],e.iridescenceMap&&(t.iridescenceMap.value=e.iridescenceMap),e.iridescenceThicknessMap&&(t.iridescenceThicknessMap.value=e.iridescenceThicknessMap)),e.transmission>0&&(t.transmission.value=e.transmission,t.transmissionSamplerMap.value=n.texture,t.transmissionSamplerSize.value.set(n.width,n.height),e.transmissionMap&&(t.transmissionMap.value=e.transmissionMap),t.thickness.value=e.thickness,e.thicknessMap&&(t.thicknessMap.value=e.thicknessMap),t.attenuationDistance.value=e.attenuationDistance,t.attenuationColor.value.copy(e.attenuationColor)),t.specularIntensity.value=e.specularIntensity,t.specularColor.value.copy(e.specularColor),e.specularIntensityMap&&(t.specularIntensityMap.value=e.specularIntensityMap),e.specularColorMap&&(t.specularColorMap.value=e.specularColorMap)}function p(t,e){e.matcap&&(t.matcap.value=e.matcap)}function f(t,e){t.referencePosition.value.copy(e.referencePosition),t.nearDistance.value=e.nearDistance,t.farDistance.value=e.farDistance}return{refreshFogUniforms:n,refreshMaterialUniforms:i}}function sh(t,e,n,i){let r={},a={},s=[];const o=n.isWebGL2?t.getParameter(35375):0;function l(t,e){const n=e.program;i.uniformBlockBinding(t,n)}function c(t,n){let s=r[t.id];void 0===s&&(f(t),s=h(t),r[t.id]=s,t.addEventListener("dispose",g));const o=n.program;i.updateUBOMapping(t,o);const l=e.render.frame;a[t.id]!==l&&(d(t),a[t.id]=l)}function h(e){const n=u();e.__bindingPointIndex=n;const i=t.createBuffer(),r=e.__size,a=e.usage;return t.bindBuffer(35345,i),t.bufferData(35345,r,a),t.bindBuffer(35345,null),t.bindBufferBase(35345,n,i),i}function u(){for(let t=0;t0){r=n%i;const e=i-r;0!==r&&e-s.boundary<0&&(n+=i-r,t.__offset=n)}n+=s.storage}return r=n%i,r>0&&(n+=i-r),t.__size=n,t.__cache={},this}function m(t){const e=t.value,n={boundary:0,storage:0};return"number"===typeof e?(n.boundary=4,n.storage=4):e.isVector2?(n.boundary=8,n.storage=8):e.isVector3||e.isColor?(n.boundary=16,n.storage=12):e.isVector4?(n.boundary=16,n.storage=16):e.isMatrix3?(n.boundary=48,n.storage=48):e.isMatrix4?(n.boundary=64,n.storage=64):e.isTexture?console.warn("THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group."):console.warn("THREE.WebGLRenderer: Unsupported uniform value type.",e),n}function g(e){const n=e.target;n.removeEventListener("dispose",g);const i=s.indexOf(n.__bindingPointIndex);s.splice(i,1),t.deleteBuffer(r[n.id]),delete r[n.id],delete a[n.id]}function _(){for(const e in r)t.deleteBuffer(r[e]);s=[],r={},a={}}return{bind:l,update:c,dispose:_}}function oh(){const t=Xe("canvas");return t.style.display="block",t}function lh(t={}){this.isWebGLRenderer=!0;const e=void 0!==t.canvas?t.canvas:oh(),n=void 0!==t.context?t.context:null,i=void 0===t.depth||t.depth,r=void 0===t.stencil||t.stencil,s=void 0!==t.antialias&&t.antialias,o=void 0===t.premultipliedAlpha||t.premultipliedAlpha,l=void 0!==t.preserveDrawingBuffer&&t.preserveDrawingBuffer,c=void 0!==t.powerPreference?t.powerPreference:"default",h=void 0!==t.failIfMajorPerformanceCaveat&&t.failIfMajorPerformanceCaveat;let u;u=null!==n?n.getContextAttributes().alpha:void 0!==t.alpha&&t.alpha;let d=null,p=null;const _=[],v=[];this.domElement=e,this.debug={checkShaderErrors:!0},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this.outputEncoding=ve,this.physicallyCorrectLights=!1,this.toneMapping=K,this.toneMappingExposure=1,Object.defineProperties(this,{gammaFactor:{get:function(){return console.warn("THREE.WebGLRenderer: .gammaFactor has been removed."),2},set:function(){console.warn("THREE.WebGLRenderer: .gammaFactor has been removed.")}}});const x=this;let y=!1,b=0,M=0,S=null,w=-1,T=null;const E=new un,A=new un;let C=null,L=e.width,P=e.height,R=1,D=null,I=null;const O=new un(0,0,L,P),N=new un(0,0,L,P);let z=!1;const U=new Or;let F=!1,k=!1,B=null;const V=new qn,H=new Ge,G=new gn,W={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};function j(){return null===S?R:1}let X,q,Y,Z,J,Q,$,tt,et,nt,it,rt,at,st,ot,lt,ct,ht,ut,dt,pt,ft,mt,vt,xt=n;function yt(t,n){for(let i=0;i0&&kt(r,e,n),i&&Y.viewport(E.copy(i)),r.length>0&&Bt(r,e,n),a.length>0&&Bt(a,e,n),s.length>0&&Bt(s,e,n),Y.buffers.depth.setTest(!0),Y.buffers.depth.setMask(!0),Y.buffers.color.setMask(!0),Y.setPolygonOffset(!1)}function kt(t,e,n){const i=q.isWebGL2;null===B&&(B=new dn(1,1,{generateMipmaps:!0,type:X.has("EXT_color_buffer_half_float")?wt:_t,minFilter:gt,samples:i&&!0===s?4:0})),x.getDrawingBufferSize(H),i?B.setSize(H.x,H.y):B.setSize(Be(H.x),Be(H.y));const r=x.getRenderTarget();x.setRenderTarget(B),x.clear();const a=x.toneMapping;x.toneMapping=K,Bt(t,e,n),x.toneMapping=a,Q.updateMultisampleRenderTarget(B),Q.updateRenderTargetMipmap(B),x.setRenderTarget(r)}function Bt(t,e,n){const i=!0===e.isScene?e.overrideMaterial:null;for(let r=0,a=t.length;r0?v[v.length-1]:null,_.pop(),d=_.length>0?_[_.length-1]:null},this.getActiveCubeFace=function(){return b},this.getActiveMipmapLevel=function(){return M},this.getRenderTarget=function(){return S},this.setRenderTargetTextures=function(t,e,n){J.get(t.texture).__webglTexture=e,J.get(t.depthTexture).__webglTexture=n;const i=J.get(t);i.__hasExternalTextures=!0,i.__hasExternalTextures&&(i.__autoAllocateDepthBuffer=void 0===n,i.__autoAllocateDepthBuffer||!0===X.has("WEBGL_multisampled_render_to_texture")&&(console.warn("THREE.WebGLRenderer: Render-to-texture extension was disabled because an external texture was provided"),i.__useRenderToTexture=!1))},this.setRenderTargetFramebuffer=function(t,e){const n=J.get(t);n.__webglFramebuffer=e,n.__useDefaultFramebuffer=void 0===e},this.setRenderTarget=function(t,e=0,n=0){S=t,b=e,M=n;let i=!0;if(t){const e=J.get(t);void 0!==e.__useDefaultFramebuffer?(Y.bindFramebuffer(36160,null),i=!1):void 0===e.__webglFramebuffer?Q.setupRenderTarget(t):e.__hasExternalTextures&&Q.rebindTextures(t,J.get(t.texture).__webglTexture,J.get(t.depthTexture).__webglTexture)}let r=null,a=!1,s=!1;if(t){const n=t.texture;(n.isData3DTexture||n.isDataArrayTexture)&&(s=!0);const i=J.get(t).__webglFramebuffer;t.isWebGLCubeRenderTarget?(r=i[e],a=!0):r=q.isWebGL2&&t.samples>0&&!1===Q.useMultisampledRTT(t)?J.get(t).__webglMultisampledFramebuffer:i,E.copy(t.viewport),A.copy(t.scissor),C=t.scissorTest}else E.copy(O).multiplyScalar(R).floor(),A.copy(N).multiplyScalar(R).floor(),C=z;const o=Y.bindFramebuffer(36160,r);if(o&&q.drawBuffers&&i&&Y.drawBuffers(t,r),Y.viewport(E),Y.scissor(A),Y.setScissorTest(C),a){const i=J.get(t.texture);xt.framebufferTexture2D(36160,36064,34069+e,i.__webglTexture,n)}else if(s){const i=J.get(t.texture),r=e||0;xt.framebufferTextureLayer(36160,36064,i.__webglTexture,n||0,r)}w=-1},this.readRenderTargetPixels=function(t,e,n,i,r,a,s){if(!t||!t.isWebGLRenderTarget)return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");let o=J.get(t).__webglFramebuffer;if(t.isWebGLCubeRenderTarget&&void 0!==s&&(o=o[s]),o){Y.bindFramebuffer(36160,o);try{const s=t.texture,o=s.format,l=s.type;if(o!==Pt&&ft.convert(o)!==xt.getParameter(35739))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");const c=l===wt&&(X.has("EXT_color_buffer_half_float")||q.isWebGL2&&X.has("EXT_color_buffer_float"));if(l!==_t&&ft.convert(l)!==xt.getParameter(35738)&&(l!==St||!(q.isWebGL2||X.has("OES_texture_float")||X.has("WEBGL_color_buffer_float")))&&!c)return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");e>=0&&e<=t.width-i&&n>=0&&n<=t.height-r&&xt.readPixels(e,n,i,r,ft.convert(o),ft.convert(l),a)}finally{const t=null!==S?J.get(S).__webglFramebuffer:null;Y.bindFramebuffer(36160,t)}}},this.copyFramebufferToTexture=function(t,e,n=0){const i=Math.pow(2,-n),r=Math.floor(e.image.width*i),a=Math.floor(e.image.height*i);Q.setTexture2D(e,0),xt.copyTexSubImage2D(3553,n,0,0,t.x,t.y,r,a),Y.unbindTexture()},this.copyTextureToTexture=function(t,e,n,i=0){const r=e.image.width,a=e.image.height,s=ft.convert(n.format),o=ft.convert(n.type);Q.setTexture2D(n,0),xt.pixelStorei(37440,n.flipY),xt.pixelStorei(37441,n.premultiplyAlpha),xt.pixelStorei(3317,n.unpackAlignment),e.isDataTexture?xt.texSubImage2D(3553,i,t.x,t.y,r,a,s,o,e.image.data):e.isCompressedTexture?xt.compressedTexSubImage2D(3553,i,t.x,t.y,e.mipmaps[0].width,e.mipmaps[0].height,s,e.mipmaps[0].data):xt.texSubImage2D(3553,i,t.x,t.y,s,o,e.image),0===i&&n.generateMipmaps&&xt.generateMipmap(3553),Y.unbindTexture()},this.copyTextureToTexture3D=function(t,e,n,i,r=0){if(x.isWebGL1Renderer)return void console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.");const a=t.max.x-t.min.x+1,s=t.max.y-t.min.y+1,o=t.max.z-t.min.z+1,l=ft.convert(i.format),c=ft.convert(i.type);let h;if(i.isData3DTexture)Q.setTexture3D(i,0),h=32879;else{if(!i.isDataArrayTexture)return void console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");Q.setTexture2DArray(i,0),h=35866}xt.pixelStorei(37440,i.flipY),xt.pixelStorei(37441,i.premultiplyAlpha),xt.pixelStorei(3317,i.unpackAlignment);const u=xt.getParameter(3314),d=xt.getParameter(32878),p=xt.getParameter(3316),f=xt.getParameter(3315),m=xt.getParameter(32877),g=n.isCompressedTexture?n.mipmaps[0]:n.image;xt.pixelStorei(3314,g.width),xt.pixelStorei(32878,g.height),xt.pixelStorei(3316,t.min.x),xt.pixelStorei(3315,t.min.y),xt.pixelStorei(32877,t.min.z),n.isDataTexture||n.isData3DTexture?xt.texSubImage3D(h,r,e.x,e.y,e.z,a,s,o,l,c,g.data):n.isCompressedTexture?(console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture."),xt.compressedTexSubImage3D(h,r,e.x,e.y,e.z,a,s,o,l,g.data)):xt.texSubImage3D(h,r,e.x,e.y,e.z,a,s,o,l,c,g),xt.pixelStorei(3314,u),xt.pixelStorei(32878,d),xt.pixelStorei(3316,p),xt.pixelStorei(3315,f),xt.pixelStorei(32877,m),0===r&&i.generateMipmaps&&xt.generateMipmap(h),Y.unbindTexture()},this.initTexture=function(t){t.isCubeTexture?Q.setTextureCube(t,0):t.isData3DTexture?Q.setTexture3D(t,0):t.isDataArrayTexture?Q.setTexture2DArray(t,0):Q.setTexture2D(t,0),Y.unbindTexture()},this.resetState=function(){b=0,M=0,S=null,Y.reset(),mt.reset()},"undefined"!==typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}class ch extends lh{}ch.prototype.isWebGL1Renderer=!0;class hh extends vi{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.overrideMaterial=null,"undefined"!==typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(t,e){return super.copy(t,e),null!==t.background&&(this.background=t.background.clone()),null!==t.environment&&(this.environment=t.environment.clone()),null!==t.fog&&(this.fog=t.fog.clone()),null!==t.overrideMaterial&&(this.overrideMaterial=t.overrideMaterial.clone()),this.matrixAutoUpdate=t.matrixAutoUpdate,this}toJSON(t){const e=super.toJSON(t);return null!==this.fog&&(e.object.fog=this.fog.toJSON()),e}get autoUpdate(){return console.warn("THREE.Scene: autoUpdate was renamed to matrixWorldAutoUpdate in r144."),this.matrixWorldAutoUpdate}set autoUpdate(t){console.warn("THREE.Scene: autoUpdate was renamed to matrixWorldAutoUpdate in r144."),this.matrixWorldAutoUpdate=t}}class uh{constructor(t,e){this.isInterleavedBuffer=!0,this.array=t,this.stride=e,this.count=void 0!==t?t.length/e:0,this.usage=Ce,this.updateRange={offset:0,count:-1},this.version=0,this.uuid=Ne()}onUploadCallback(){}set needsUpdate(t){!0===t&&this.version++}setUsage(t){return this.usage=t,this}copy(t){return this.array=new t.array.constructor(t.array),this.count=t.count,this.stride=t.stride,this.usage=t.usage,this}copyAt(t,e,n){t*=this.stride,n*=e.stride;for(let i=0,r=this.stride;it.far||e.push({distance:o,point:gh.clone(),uv:Li.getUV(gh,Mh,Sh,wh,Th,Eh,Ah,new Ge),face:null,object:this})}copy(t,e){return super.copy(t,e),void 0!==t.center&&this.center.copy(t.center),this.material=t.material,this}}function Lh(t,e,n,i,r,a){xh.subVectors(t,n).addScalar(.5).multiply(i),void 0!==r?(yh.x=a*xh.x-r*xh.y,yh.y=r*xh.x+a*xh.y):yh.copy(xh),t.copy(e),t.x+=yh.x,t.y+=yh.y,t.applyMatrix4(bh)}class Ph extends Xi{constructor(t=1,e=32,n=16,i=0,r=2*Math.PI,a=0,s=Math.PI){super(),this.type="SphereGeometry",this.parameters={radius:t,widthSegments:e,heightSegments:n,phiStart:i,phiLength:r,thetaStart:a,thetaLength:s},e=Math.max(3,Math.floor(e)),n=Math.max(2,Math.floor(n));const o=Math.min(a+s,Math.PI);let l=0;const c=[],h=new gn,u=new gn,d=[],p=[],f=[],m=[];for(let g=0;g<=n;g++){const d=[],_=g/n;let v=0;0==g&&0==a?v=.5/e:g==n&&o==Math.PI&&(v=-.5/e);for(let n=0;n<=e;n++){const o=n/e;h.x=-t*Math.cos(i+o*r)*Math.sin(a+_*s),h.y=t*Math.cos(a+_*s),h.z=t*Math.sin(i+o*r)*Math.sin(a+_*s),p.push(h.x,h.y,h.z),u.copy(h).normalize(),f.push(u.x,u.y,u.z),m.push(o+v,1-_),d.push(l++)}c.push(d)}for(let g=0;g0)&&d.push(e,i,s),(g!==n-1||o=r)break t;{const s=e[1];t=r)break e}a=n,n=0}}while(n>>1;te)--a;if(++a,0!==r||a!==i){r>=a&&(a=Math.max(a,1),r=a-1);const t=this.getValueSize();this.times=Rh(n,r,a),this.values=Rh(this.values,r*t,a*t)}return this}validate(){let t=!0;const e=this.getValueSize();e-Math.floor(e)!==0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),t=!1);const n=this.times,i=this.values,r=n.length;0===r&&(console.error("THREE.KeyframeTrack: Track is empty.",this),t=!1);let a=null;for(let s=0;s!==r;s++){const e=n[s];if("number"===typeof e&&isNaN(e)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,s,e),t=!1;break}if(null!==a&&a>e){console.error("THREE.KeyframeTrack: Out of order keys.",this,s,e,a),t=!1;break}a=e}if(void 0!==i&&Ih(i))for(let s=0,o=i.length;s!==o;++s){const e=i[s];if(isNaN(e)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,s,e),t=!1;break}}return t}optimize(){const t=Rh(this.times),e=Rh(this.values),n=this.getValueSize(),i=this.getInterpolation()===fe,r=t.length-1;let a=1;for(let s=1;s0){t[a]=t[r];for(let t=r*n,i=a*n,s=0;s!==n;++s)e[i+s]=e[t+s];++a}return a!==t.length?(this.times=Rh(t,0,a),this.values=Rh(e,0,a*n)):(this.times=t,this.values=e),this}clone(){const t=Rh(this.times,0),e=Rh(this.values,0),n=this.constructor,i=new n(this.name,t,e);return i.createInterpolant=this.createInterpolant,i}}Fh.prototype.TimeBufferType=Float32Array,Fh.prototype.ValueBufferType=Float32Array,Fh.prototype.DefaultInterpolation=pe;class kh extends Fh{}kh.prototype.ValueTypeName="bool",kh.prototype.ValueBufferType=Array,kh.prototype.DefaultInterpolation=de,kh.prototype.InterpolantFactoryMethodLinear=void 0,kh.prototype.InterpolantFactoryMethodSmooth=void 0;class Bh extends Fh{}Bh.prototype.ValueTypeName="color";class Vh extends Fh{}Vh.prototype.ValueTypeName="number";class Hh extends Oh{constructor(t,e,n,i){super(t,e,n,i)}interpolate_(t,e,n,i){const r=this.resultBuffer,a=this.sampleValues,s=this.valueSize,o=(n-e)/(i-e);let l=t*s;for(let c=l+s;l!==c;l+=4)mn.slerpFlat(r,0,a,l-s,a,l,o);return r}}class Gh extends Fh{InterpolantFactoryMethodLinear(t){return new Hh(this.times,this.values,this.getValueSize(),t)}}Gh.prototype.ValueTypeName="quaternion",Gh.prototype.DefaultInterpolation=pe,Gh.prototype.InterpolantFactoryMethodSmooth=void 0;class Wh extends Fh{}Wh.prototype.ValueTypeName="string",Wh.prototype.ValueBufferType=Array,Wh.prototype.DefaultInterpolation=de,Wh.prototype.InterpolantFactoryMethodLinear=void 0,Wh.prototype.InterpolantFactoryMethodSmooth=void 0;class jh extends Fh{}jh.prototype.ValueTypeName="vector";const Xh={enabled:!1,files:{},add:function(t,e){!1!==this.enabled&&(this.files[t]=e)},get:function(t){if(!1!==this.enabled)return this.files[t]},remove:function(t){delete this.files[t]},clear:function(){this.files={}}};class qh{constructor(t,e,n){const i=this;let r=!1,a=0,s=0,o=void 0;const l=[];this.onStart=void 0,this.onLoad=t,this.onProgress=e,this.onError=n,this.itemStart=function(t){s++,!1===r&&void 0!==i.onStart&&i.onStart(t,a,s),r=!0},this.itemEnd=function(t){a++,void 0!==i.onProgress&&i.onProgress(t,a,s),a===s&&(r=!1,void 0!==i.onLoad&&i.onLoad())},this.itemError=function(t){void 0!==i.onError&&i.onError(t)},this.resolveURL=function(t){return o?o(t):t},this.setURLModifier=function(t){return o=t,this},this.addHandler=function(t,e){return l.push(t,e),this},this.removeHandler=function(t){const e=l.indexOf(t);return-1!==e&&l.splice(e,2),this},this.getHandler=function(t){for(let e=0,n=l.length;eMath.PI&&(g-=m),_<-Math.PI?_+=m:_>Math.PI&&(_-=m),l.theta=g<=_?Math.max(g,Math.min(_,l.theta)):l.theta>(g+_)/2?Math.max(g,l.theta):Math.min(_,l.theta)),l.phi=Math.max(n.minPolarAngle,Math.min(n.maxPolarAngle,l.phi)),l.makeSafe(),l.radius*=h,l.radius=Math.max(n.minDistance,Math.min(n.maxDistance,l.radius)),!0===n.enableDamping?n.target.addScaledVector(u,n.dampingFactor):n.target.add(u),e.setFromSpherical(l),e.applyQuaternion(o),t.copy(n.target).add(e),n.object.lookAt(n.target),!0===n.enableDamping?(c.theta*=1-n.dampingFactor,c.phi*=1-n.dampingFactor,u.multiplyScalar(1-n.dampingFactor)):(c.set(0,0,0),u.set(0,0,0)),h=1,!!(d||p.distanceToSquared(n.object.position)>a||8*(1-f.dot(n.object.quaternion))>a)&&(n.dispatchEvent(fu),p.copy(n.object.position),f.copy(n.object.quaternion),d=!1,!0)}}(),this.dispose=function(){n.domElement.removeEventListener("contextmenu",ot),n.domElement.removeEventListener("pointerdown",J),n.domElement.removeEventListener("pointercancel",tt),n.domElement.removeEventListener("wheel",it),n.domElement.removeEventListener("pointermove",Q),n.domElement.removeEventListener("pointerup",$),null!==n._domElementKeyEvents&&n._domElementKeyEvents.removeEventListener("keydown",rt)};const n=this,i={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6};let r=i.NONE;const a=1e-6,l=new pu,c=new pu;let h=1;const u=new gn;let d=!1;const p=new Ge,f=new Ge,m=new Ge,g=new Ge,_=new Ge,v=new Ge,x=new Ge,y=new Ge,b=new Ge,M=[],S={};function w(){return 2*Math.PI/60/60*n.autoRotateSpeed}function T(){return Math.pow(.95,n.zoomSpeed)}function E(t){c.theta-=t}function A(t){c.phi-=t}const C=function(){const t=new gn;return function(e,n){t.setFromMatrixColumn(n,0),t.multiplyScalar(-e),u.add(t)}}(),L=function(){const t=new gn;return function(e,i){!0===n.screenSpacePanning?t.setFromMatrixColumn(i,1):(t.setFromMatrixColumn(i,0),t.crossVectors(n.object.up,t)),t.multiplyScalar(e),u.add(t)}}(),P=function(){const t=new gn;return function(e,i){const r=n.domElement;if(n.object.isPerspectiveCamera){const a=n.object.position;t.copy(a).sub(n.target);let s=t.length();s*=Math.tan(n.object.fov/2*Math.PI/180),C(2*e*s/r.clientHeight,n.object.matrix),L(2*i*s/r.clientHeight,n.object.matrix)}else n.object.isOrthographicCamera?(C(e*(n.object.right-n.object.left)/n.object.zoom/r.clientWidth,n.object.matrix),L(i*(n.object.top-n.object.bottom)/n.object.zoom/r.clientHeight,n.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),n.enablePan=!1)}}();function R(t){n.object.isPerspectiveCamera?h/=t:n.object.isOrthographicCamera?(n.object.zoom=Math.max(n.minZoom,Math.min(n.maxZoom,n.object.zoom*t)),n.object.updateProjectionMatrix(),d=!0):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),n.enableZoom=!1)}function D(t){n.object.isPerspectiveCamera?h*=t:n.object.isOrthographicCamera?(n.object.zoom=Math.max(n.minZoom,Math.min(n.maxZoom,n.object.zoom/t)),n.object.updateProjectionMatrix(),d=!0):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),n.enableZoom=!1)}function I(t){p.set(t.clientX,t.clientY)}function O(t){x.set(t.clientX,t.clientY)}function N(t){g.set(t.clientX,t.clientY)}function z(t){f.set(t.clientX,t.clientY),m.subVectors(f,p).multiplyScalar(n.rotateSpeed);const e=n.domElement;E(2*Math.PI*m.x/e.clientHeight),A(2*Math.PI*m.y/e.clientHeight),p.copy(f),n.update()}function U(t){y.set(t.clientX,t.clientY),b.subVectors(y,x),b.y>0?R(T()):b.y<0&&D(T()),x.copy(y),n.update()}function F(t){_.set(t.clientX,t.clientY),v.subVectors(_,g).multiplyScalar(n.panSpeed),P(v.x,v.y),g.copy(_),n.update()}function k(t){t.deltaY<0?D(T()):t.deltaY>0&&R(T()),n.update()}function B(t){let e=!1;switch(t.code){case n.keys.UP:P(0,n.keyPanSpeed),e=!0;break;case n.keys.BOTTOM:P(0,-n.keyPanSpeed),e=!0;break;case n.keys.LEFT:P(n.keyPanSpeed,0),e=!0;break;case n.keys.RIGHT:P(-n.keyPanSpeed,0),e=!0;break}e&&(t.preventDefault(),n.update())}function V(){if(1===M.length)p.set(M[0].pageX,M[0].pageY);else{const t=.5*(M[0].pageX+M[1].pageX),e=.5*(M[0].pageY+M[1].pageY);p.set(t,e)}}function H(){if(1===M.length)g.set(M[0].pageX,M[0].pageY);else{const t=.5*(M[0].pageX+M[1].pageX),e=.5*(M[0].pageY+M[1].pageY);g.set(t,e)}}function G(){const t=M[0].pageX-M[1].pageX,e=M[0].pageY-M[1].pageY,n=Math.sqrt(t*t+e*e);x.set(0,n)}function W(){n.enableZoom&&G(),n.enablePan&&H()}function j(){n.enableZoom&&G(),n.enableRotate&&V()}function X(t){if(1==M.length)f.set(t.pageX,t.pageY);else{const e=ut(t),n=.5*(t.pageX+e.x),i=.5*(t.pageY+e.y);f.set(n,i)}m.subVectors(f,p).multiplyScalar(n.rotateSpeed);const e=n.domElement;E(2*Math.PI*m.x/e.clientHeight),A(2*Math.PI*m.y/e.clientHeight),p.copy(f)}function q(t){if(1===M.length)_.set(t.pageX,t.pageY);else{const e=ut(t),n=.5*(t.pageX+e.x),i=.5*(t.pageY+e.y);_.set(n,i)}v.subVectors(_,g).multiplyScalar(n.panSpeed),P(v.x,v.y),g.copy(_)}function Y(t){const e=ut(t),i=t.pageX-e.x,r=t.pageY-e.y,a=Math.sqrt(i*i+r*r);y.set(0,a),b.set(0,Math.pow(y.y/x.y,n.zoomSpeed)),R(b.y),x.copy(y)}function Z(t){n.enableZoom&&Y(t),n.enablePan&&q(t)}function K(t){n.enableZoom&&Y(t),n.enableRotate&&X(t)}function J(t){!1!==n.enabled&&(0===M.length&&(n.domElement.setPointerCapture(t.pointerId),n.domElement.addEventListener("pointermove",Q),n.domElement.addEventListener("pointerup",$)),lt(t),"touch"===t.pointerType?at(t):et(t))}function Q(t){!1!==n.enabled&&("touch"===t.pointerType?st(t):nt(t))}function $(t){ct(t),0===M.length&&(n.domElement.releasePointerCapture(t.pointerId),n.domElement.removeEventListener("pointermove",Q),n.domElement.removeEventListener("pointerup",$)),n.dispatchEvent(gu),r=i.NONE}function tt(t){ct(t)}function et(t){let e;switch(t.button){case 0:e=n.mouseButtons.LEFT;break;case 1:e=n.mouseButtons.MIDDLE;break;case 2:e=n.mouseButtons.RIGHT;break;default:e=-1}switch(e){case s.DOLLY:if(!1===n.enableZoom)return;O(t),r=i.DOLLY;break;case s.ROTATE:if(t.ctrlKey||t.metaKey||t.shiftKey){if(!1===n.enablePan)return;N(t),r=i.PAN}else{if(!1===n.enableRotate)return;I(t),r=i.ROTATE}break;case s.PAN:if(t.ctrlKey||t.metaKey||t.shiftKey){if(!1===n.enableRotate)return;I(t),r=i.ROTATE}else{if(!1===n.enablePan)return;N(t),r=i.PAN}break;default:r=i.NONE}r!==i.NONE&&n.dispatchEvent(mu)}function nt(t){switch(r){case i.ROTATE:if(!1===n.enableRotate)return;z(t);break;case i.DOLLY:if(!1===n.enableZoom)return;U(t);break;case i.PAN:if(!1===n.enablePan)return;F(t);break}}function it(t){!1!==n.enabled&&!1!==n.enableZoom&&r===i.NONE&&(t.preventDefault(),n.dispatchEvent(mu),k(t),n.dispatchEvent(gu))}function rt(t){!1!==n.enabled&&!1!==n.enablePan&&B(t)}function at(t){switch(ht(t),M.length){case 1:switch(n.touches.ONE){case o.ROTATE:if(!1===n.enableRotate)return;V(),r=i.TOUCH_ROTATE;break;case o.PAN:if(!1===n.enablePan)return;H(),r=i.TOUCH_PAN;break;default:r=i.NONE}break;case 2:switch(n.touches.TWO){case o.DOLLY_PAN:if(!1===n.enableZoom&&!1===n.enablePan)return;W(),r=i.TOUCH_DOLLY_PAN;break;case o.DOLLY_ROTATE:if(!1===n.enableZoom&&!1===n.enableRotate)return;j(),r=i.TOUCH_DOLLY_ROTATE;break;default:r=i.NONE}break;default:r=i.NONE}r!==i.NONE&&n.dispatchEvent(mu)}function st(t){switch(ht(t),r){case i.TOUCH_ROTATE:if(!1===n.enableRotate)return;X(t),n.update();break;case i.TOUCH_PAN:if(!1===n.enablePan)return;q(t),n.update();break;case i.TOUCH_DOLLY_PAN:if(!1===n.enableZoom&&!1===n.enablePan)return;Z(t),n.update();break;case i.TOUCH_DOLLY_ROTATE:if(!1===n.enableZoom&&!1===n.enableRotate)return;K(t),n.update();break;default:r=i.NONE}}function ot(t){!1!==n.enabled&&t.preventDefault()}function lt(t){M.push(t)}function ct(t){delete S[t.pointerId];for(let e=0;ea)s=s._prev}return s?(e._next=s._next,s._next=e):(e._next=t[n],t[n]=e),e._next?e._next._prev=e:t[i]=e,e._prev=s,e.parent=e._dp=t,e},Hd=function(t,e,n,i){void 0===n&&(n="_first"),void 0===i&&(i="_last");var r=e._prev,a=e._next;r?r._next=a:t[n]===e&&(t[n]=a),a?a._prev=r:t[i]===e&&(t[i]=r),e._next=e._prev=e.parent=null},Gd=function(t,e){t.parent&&(!e||t.parent.autoRemoveChildren)&&t.parent.remove(t),t._act=0},Wd=function(t,e){if(t&&(!e||e._end>t._dur||e._start<0)){var n=t;while(n)n._dirty=1,n=n.parent}return t},jd=function(t){var e=t.parent;while(e&&e.parent)e._dirty=1,e.totalDuration(),e=e.parent;return t},Xd=function(t,e,n,i){return t._startAt&&(bu?t._startAt.revert(dd):t.vars.immediateRender&&!t.vars.autoRevert||t._startAt.render(e,!0,i))},qd=function t(e){return!e||e._ts&&t(e.parent)},Yd=function(t){return t._repeat?Zd(t._tTime,t=t.duration()+t._rDelay)*t:0},Zd=function(t,e){var n=Math.floor(t/=e);return t&&n===t?n-1:n},Kd=function(t,e){return(t-e._start)*e._ts+(e._ts>=0?0:e._dirty?e.totalDuration():e._tDur)},Jd=function(t){return t._end=Ad(t._start+(t._tDur/Math.abs(t._ts||t._rts||Ou)||0))},Qd=function(t,e){var n=t._dp;return n&&n.smoothChildTiming&&t._ts&&(t._start=Ad(n._time-(t._ts>0?e/t._ts:((t._dirty?t.totalDuration():t._tDur)-e)/-t._ts)),Jd(t),n._dirty||Wd(n,t)),t},$d=function(t,e){var n;if((e._time||e._initted&&!e._dur)&&(n=Kd(t.rawTime(),e),(!e._dur||pp(0,e.totalDuration(),n)-e._tTime>Ou)&&e.render(n,!0)),Wd(t,e)._dp&&t._initted&&t._time>=t._dur&&t._ts){if(t._dur=0&&n.totalTime(n._tTime),n=n._dp}t._zTime=-Ou}},tp=function(t,e,n,i){return e.parent&&Gd(e),e._start=Ad((Gu(n)?n:n||t!==Su?hp(t,n,e):t._time)+e._delay),e._end=Ad(e._start+(e.totalDuration()/Math.abs(e.timeScale())||0)),Vd(t,e,"_first","_last",t._sort?"_start":0),rp(e)||(t._recent=e),i||$d(t,e),t._ts<0&&Qd(t,t._tTime),t},ep=function(t,e){return(rd.ScrollTrigger||od("scrollTrigger",e))&&rd.ScrollTrigger.create(e,t)},np=function(t,e,n,i,r){return xf(t,e,r),t._initted?!n&&t._pt&&!bu&&(t._dur&&!1!==t.vars.lazy||!t._dur&&t.vars.lazy)&&Cu!==Yp.frame?(md.push(t),t._lazy=[r,i],1):void 0:1},ip=function t(e){var n=e.parent;return n&&n._ts&&n._initted&&!n._lock&&(n.rawTime()<0||t(n))},rp=function(t){var e=t.data;return"isFromStart"===e||"isStart"===e},ap=function(t,e,n,i){var r,a,s,o=t.ratio,l=e<0||!e&&(!t._start&&ip(t)&&(t._initted||!rp(t))||(t._ts<0||t._dp._ts<0)&&!rp(t))?0:1,c=t._rDelay,h=0;if(c&&t._repeat&&(h=pp(0,t._tDur,e),a=Zd(h,c),t._yoyo&&1&a&&(l=1-l),a!==Zd(t._tTime,c)&&(o=1-l,t.vars.repeatRefresh&&t._initted&&t.invalidate())),l!==o||bu||i||t._zTime===Ou||!e&&t._zTime){if(!t._initted&&np(t,e,i,n,h))return;s=t._zTime,t._zTime=e||(n?Ou:0),n||(n=e&&!s),t.ratio=l,t._from&&(l=1-l),t._time=0,t._tTime=h,r=t._pt;while(r)r.r(l,r.d),r=r._next;e<0&&Xd(t,e,n,!0),t._onUpdate&&!n&&zp(t,"onUpdate"),h&&t._repeat&&!n&&t.parent&&zp(t,"onRepeat"),(e>=t._tDur||e<0)&&t.ratio===l&&(l&&Gd(t,1),n||bu||(zp(t,l?"onComplete":"onReverseComplete",!0),t._prom&&t._prom()))}else t._zTime||(t._zTime=e)},sp=function(t,e,n){var i;if(n>e){i=t._first;while(i&&i._start<=n){if("isPause"===i.data&&i._start>e)return i;i=i._next}}else{i=t._last;while(i&&i._start>=n){if("isPause"===i.data&&i._start0&&!i&&Qd(t,t._tTime=t._tDur*s),t.parent&&Jd(t),n||Wd(t.parent,t),t},lp=function(t){return t instanceof df?Wd(t):op(t,t._dur)},cp={_start:0,endTime:hd,totalDuration:hd},hp=function t(e,n,i){var r,a,s,o=e.labels,l=e._recent||cp,c=e.duration()>=Iu?l.endTime(!1):e._dur;return Vu(n)&&(isNaN(n)||n in o)?(a=n.charAt(0),s="%"===n.substr(-1),r=n.indexOf("="),"<"===a||">"===a?(r>=0&&(n=n.replace(/=/,"")),("<"===a?l._start:l.endTime(l._repeat>=0))+(parseFloat(n.substr(1))||0)*(s?(r<0?l:i).totalDuration()/100:1)):r<0?(n in o||(o[n]=c),o[n]):(a=parseFloat(n.charAt(r-1)+n.substr(r+1)),s&&i&&(a=a/100*(Ku(i)?i[0]:i).totalDuration()),r>1?t(e,n.substr(0,r-1),i)+a:c+a)):null==n?c:+n},up=function(t,e,n){var i,r,a=Gu(e[1]),s=(a?2:1)+(t<2?0:1),o=e[s];if(a&&(o.duration=e[1]),o.parent=n,t){i=o,r=n;while(r&&!("immediateRender"in i))i=r.vars.defaults||{},r=Xu(r.vars.inherit)&&r.parent;o.immediateRender=Xu(i.immediateRender),t<2?o.runBackwards=1:o.startAt=e[s-1]}return new Ef(e[0],o,e[s+1])},dp=function(t,e){return t||0===t?e(t):e},pp=function(t,e,n){return ne?e:n},fp=function(t,e){return Vu(t)&&(e=id.exec(t))?e[1]:""},mp=function(t,e,n){return dp(n,(function(n){return pp(t,e,n)}))},gp=[].slice,_p=function(t,e){return t&&ju(t)&&"length"in t&&(!e&&!t.length||t.length-1 in t&&ju(t[0]))&&!t.nodeType&&t!==wu},vp=function(t,e,n){return void 0===n&&(n=[]),t.forEach((function(t){var i;return Vu(t)&&!e||_p(t,1)?(i=n).push.apply(i,xp(t)):n.push(t)}))||n},xp=function(t,e,n){return Mu&&!e&&Mu.selector?Mu.selector(t):!Vu(t)||n||!Tu&&Zp()?Ku(t)?vp(t,n):_p(t)?gp.call(t,0):t?[t]:[]:gp.call((e||Eu).querySelectorAll(t),0)},yp=function(t){return t=xp(t)[0]||ld("Invalid scope")||{},function(e){var n=t.current||t.nativeElement||t;return xp(e,n.querySelectorAll?n:n===t?ld("Invalid scope")||Eu.createElement("div"):t)}},bp=function(t){return t.sort((function(){return.5-Math.random()}))},Mp=function(t){if(Hu(t))return t;var e=ju(t)?t:{each:t},n=af(e.ease),i=e.from||0,r=parseFloat(e.base)||0,a={},s=i>0&&i<1,o=isNaN(i)||s,l=e.axis,c=i,h=i;return Vu(i)?c=h={center:.5,edges:.5,end:1}[i]||0:!s&&o&&(c=i[0],h=i[1]),function(t,s,u){var d,p,f,m,g,_,v,x,y,b=(u||e).length,M=a[b];if(!M){if(y="auto"===e.grid?0:(e.grid||[1,Iu])[1],!y){v=-Iu;while(v<(v=u[y++].getBoundingClientRect().left)&&yv&&(v=g),gb?b-1:l?"y"===l?b/y:y:Math.max(y,b/y))||0)*("edges"===i?-1:1),M.b=b<0?r-b:r,M.u=fp(e.amount||e.each)||0,n=n&&b<0?nf(n):n}return b=(M[t]-M.min)/M.max||0,Ad(M.b+(n?n(b):b)*M.v)+M.u}},Sp=function(t){var e=Math.pow(10,((t+"").split(".")[1]||"").length);return function(n){var i=Ad(Math.round(parseFloat(n)/t)*t*e);return(i-i%1)/e+(Gu(n)?0:fp(n))}},wp=function(t,e){var n,i,r=Ku(t);return!r&&ju(t)&&(n=r=t.radius||Iu,t.values?(t=xp(t.values),(i=!Gu(t[0]))&&(n*=n)):t=Sp(t.increment)),dp(e,r?Hu(t)?function(e){return i=t(e),Math.abs(i-e)<=n?i:e}:function(e){var r,a,s=parseFloat(i?e.x:e),o=parseFloat(i?e.y:0),l=Iu,c=0,h=t.length;while(h--)i?(r=t[h].x-s,a=t[h].y-o,r=r*r+a*a):r=Math.abs(t[h]-s),rr?a-t:t)}))},Dp=function(t){var e,n,i,r,a=0,s="";while(~(e=t.indexOf("random(",a)))i=t.indexOf(")",e),r="["===t.charAt(e+7),n=t.substr(e+7,i-e-7).match(r?nd:Ju),s+=t.substr(a,e-a)+Tp(r?n:+n[0],r?0:+n[1],+n[2]||1e-5),a=i+1;return s+t.substr(a,t.length-a)},Ip=function(t,e,n,i,r){var a=e-t,s=i-n;return dp(r,(function(e){return n+((e-t)/a*s||0)}))},Op=function t(e,n,i,r){var a=isNaN(e+n)?0:function(t){return(1-t)*e+t*n};if(!a){var s,o,l,c,h,u=Vu(e),d={};if(!0===i&&(r=1)&&(i=null),u)e={p:e},n={p:n};else if(Ku(e)&&!Ku(n)){for(l=[],c=e.length,h=c-2,o=1;o(r=Math.abs(r))&&(a=i,o=r);return a},zp=function(t,e,n){var i,r,a,s=t.vars,o=s[e],l=Mu,c=t._ctx;if(o)return i=s[e+"Params"],r=s.callbackScope||t,n&&md.length&&Pd(),c&&(Mu=c),a=i?o.apply(r,i):o.call(r),Mu=l,a},Up=function(t){return Gd(t),t.scrollTrigger&&t.scrollTrigger.kill(!!bu),t.progress()<1&&zp(t,"onInterrupt"),t},Fp=function(t){t=!t.name&&t["default"]||t;var e=t.name,n=Hu(t),i=e&&!n&&t.init?function(){this._props=[]}:t,r={init:hd,render:Nf,add:gf,kill:Uf,modifier:zf,rawVars:0},a={targetTest:0,get:0,getSetter:Rf,aliases:{},register:0};if(Zp(),t!==i){if(_d[e])return;Od(i,Od(Fd(t,r),a)),zd(i.prototype,zd(r,Fd(t,a))),_d[i.prop=e]=i,t.targetTest&&(yd.push(i),fd[e]=1),e=("css"===e?"CSS":e.charAt(0).toUpperCase()+e.substr(1))+"Plugin"}cd(e,i),t.register&&t.register($f,i,Bf)},kp=255,Bp={aqua:[0,kp,kp],lime:[0,kp,0],silver:[192,192,192],black:[0,0,0],maroon:[128,0,0],teal:[0,128,128],blue:[0,0,kp],navy:[0,0,128],white:[kp,kp,kp],olive:[128,128,0],yellow:[kp,kp,0],orange:[kp,165,0],gray:[128,128,128],purple:[128,0,128],green:[0,128,0],red:[kp,0,0],pink:[kp,192,203],cyan:[0,kp,kp],transparent:[kp,kp,kp,0]},Vp=function(t,e,n){return t+=t<0?1:t>1?-1:0,(6*t<1?e+(n-e)*t*6:t<.5?n:3*t<2?e+(n-e)*(2/3-t)*6:e)*kp+.5|0},Hp=function(t,e,n){var i,r,a,s,o,l,c,h,u,d,p=t?Gu(t)?[t>>16,t>>8&kp,t&kp]:0:Bp.black;if(!p){if(","===t.substr(-1)&&(t=t.substr(0,t.length-1)),Bp[t])p=Bp[t];else if("#"===t.charAt(0)){if(t.length<6&&(i=t.charAt(1),r=t.charAt(2),a=t.charAt(3),t="#"+i+i+r+r+a+a+(5===t.length?t.charAt(4)+t.charAt(4):"")),9===t.length)return p=parseInt(t.substr(1,6),16),[p>>16,p>>8&kp,p&kp,parseInt(t.substr(7),16)/255];t=parseInt(t.substr(1),16),p=[t>>16,t>>8&kp,t&kp]}else if("hsl"===t.substr(0,3))if(p=d=t.match(Ju),e){if(~t.indexOf("="))return p=t.match(Qu),n&&p.length<4&&(p[3]=1),p}else s=+p[0]%360/360,o=+p[1]/100,l=+p[2]/100,r=l<=.5?l*(o+1):l+o-l*o,i=2*l-r,p.length>3&&(p[3]*=1),p[0]=Vp(s+1/3,i,r),p[1]=Vp(s,i,r),p[2]=Vp(s-1/3,i,r);else p=t.match(Ju)||Bp.transparent;p=p.map(Number)}return e&&!d&&(i=p[0]/kp,r=p[1]/kp,a=p[2]/kp,c=Math.max(i,r,a),h=Math.min(i,r,a),l=(c+h)/2,c===h?s=o=0:(u=c-h,o=l>.5?u/(2-c-h):u/(c+h),s=c===i?(r-a)/u+(ro&&(c+=x-l),h+=x,_=h-c,m=_-d,(m>0||y)&&(v=++i.frame,r=_-1e3*i.time,i.time=_/=1e3,d+=m+(m>=u?4:u-m),g=1),y||(t=e(n)),g)for(a=0;a=e&&a--},_listeners:p},i}(),Zp=function(){return!Pu&&Yp.wake()},Kp={},Jp=/^[\d.\-M][\d.\-,\s]/,Qp=/["']/g,$p=function(t){for(var e,n,i,r={},a=t.substr(1,t.length-3).split(":"),s=a[0],o=1,l=a.length;o1&&n.config?n.config.apply(null,~t.indexOf("{")?[$p(e[1])]:tf(t).split(",").map(Dd)):Kp._CE&&Jp.test(t)?Kp._CE("",t):n},nf=function(t){return function(e){return 1-t(1-e)}},rf=function t(e,n){var i,r=e._first;while(r)r instanceof df?t(r,n):!r.vars.yoyoEase||r._yoyo&&r._repeat||r._yoyo===n||(r.timeline?t(r.timeline,n):(i=r._ease,r._ease=r._yEase,r._yEase=i,r._yoyo=n)),r=r._next},af=function(t,e){return t&&(Hu(t)?t:Kp[t]||ef(t))||e},sf=function(t,e,n,i){void 0===n&&(n=function(t){return 1-e(1-t)}),void 0===i&&(i=function(t){return t<.5?e(2*t)/2:1-e(2*(1-t))/2});var r,a={easeIn:e,easeOut:n,easeInOut:i};return Td(t,(function(t){for(var e in Kp[t]=rd[t]=a,Kp[r=t.toLowerCase()]=n,a)Kp[r+("easeIn"===e?".in":"easeOut"===e?".out":".inOut")]=Kp[t+"."+e]=a[e]})),a},of=function(t){return function(e){return e<.5?(1-t(1-2*e))/2:.5+t(2*(e-.5))/2}},lf=function t(e,n,i){var r=n>=1?n:1,a=(i||(e?.3:.45))/(n<1?n:1),s=a/Nu*(Math.asin(1/r)||0),o=function(t){return 1===t?1:r*Math.pow(2,-10*t)*Bu((t-s)*a)+1},l="out"===e?o:"in"===e?function(t){return 1-o(1-t)}:of(o);return a=Nu/a,l.config=function(n,i){return t(e,n,i)},l},cf=function t(e,n){void 0===n&&(n=1.70158);var i=function(t){return t?--t*t*((n+1)*t+n)+1:0},r="out"===e?i:"in"===e?function(t){return 1-i(1-t)}:of(i);return r.config=function(n){return t(e,n)},r};Td("Linear,Quad,Cubic,Quart,Quint,Strong",(function(t,e){var n=e<5?e+1:e;sf(t+",Power"+(n-1),e?function(t){return Math.pow(t,n)}:function(t){return t},(function(t){return 1-Math.pow(1-t,n)}),(function(t){return t<.5?Math.pow(2*t,n)/2:1-Math.pow(2*(1-t),n)/2}))})),Kp.Linear.easeNone=Kp.none=Kp.Linear.easeIn,sf("Elastic",lf("in"),lf("out"),lf()),function(t,e){var n=1/e,i=2*n,r=2.5*n,a=function(a){return a0?t+(t+this._rDelay)*this._repeat:t):this.totalDuration()&&this._dur},e.totalDuration=function(t){return arguments.length?(this._dirty=0,op(this,this._repeat<0?t:(t-this._repeat*this._rDelay)/(this._repeat+1))):this._tDur},e.totalTime=function(t,e){if(Zp(),!arguments.length)return this._tTime;var n=this._dp;if(n&&n.smoothChildTiming&&this._ts){Qd(this,t),!n._dp||n.parent||$d(n,this);while(n&&n.parent)n.parent._time!==n._start+(n._ts>=0?n._tTime/n._ts:(n.totalDuration()-n._tTime)/-n._ts)&&n.totalTime(n._tTime,!0),n=n.parent;!this.parent&&this._dp.autoRemoveChildren&&(this._ts>0&&t0||!this._tDur&&!t)&&tp(this._dp,this,this._start-this._delay)}return(this._tTime!==t||!this._dur&&!e||this._initted&&Math.abs(this._zTime)===Ou||!t&&!this._initted&&(this.add||this._ptLookup))&&(this._ts||(this._pTime=t),Rd(this,t,e)),this},e.time=function(t,e){return arguments.length?this.totalTime(Math.min(this.totalDuration(),t+Yd(this))%(this._dur+this._rDelay)||(t?this._dur:0),e):this._time},e.totalProgress=function(t,e){return arguments.length?this.totalTime(this.totalDuration()*t,e):this.totalDuration()?Math.min(1,this._tTime/this._tDur):this.ratio},e.progress=function(t,e){return arguments.length?this.totalTime(this.duration()*(!this._yoyo||1&this.iteration()?t:1-t)+Yd(this),e):this.duration()?Math.min(1,this._time/this._dur):this.ratio},e.iteration=function(t,e){var n=this.duration()+this._rDelay;return arguments.length?this.totalTime(this._time+(t-1)*n,e):this._repeat?Zd(this._tTime,n)+1:1},e.timeScale=function(t){if(!arguments.length)return this._rts===-Ou?0:this._rts;if(this._rts===t)return this;var e=this.parent&&this._ts?Kd(this.parent._time,this):this._tTime;return this._rts=+t||0,this._ts=this._ps||t===-Ou?0:this._rts,this.totalTime(pp(-this._delay,this._tDur,e),!0),Jd(this),jd(this)},e.paused=function(t){return arguments.length?(this._ps!==t&&(this._ps=t,t?(this._pTime=this._tTime||Math.max(-this._delay,this.rawTime()),this._ts=this._act=0):(Zp(),this._ts=this._rts,this.totalTime(this.parent&&!this.parent.smoothChildTiming?this.rawTime():this._tTime||this._pTime,1===this.progress()&&Math.abs(this._zTime)!==Ou&&(this._tTime-=Ou)))),this):this._ps},e.startTime=function(t){if(arguments.length){this._start=t;var e=this.parent||this._dp;return e&&(e._sort||!this.parent)&&tp(e,this,t-this._delay),this}return this._start},e.endTime=function(t){return this._start+(Xu(t)?this.totalDuration():this.duration())/Math.abs(this._ts||1)},e.rawTime=function(t){var e=this.parent||this._dp;return e?t&&(!this._ts||this._repeat&&this._time&&this.totalProgress()<1)?this._tTime%(this._dur+this._rDelay):this._ts?Kd(e.rawTime(t),this):this._tTime:this._tTime},e.revert=function(t){void 0===t&&(t=pd);var e=bu;return bu=t,(this._initted||this._startAt)&&(this.timeline&&this.timeline.revert(t),this.totalTime(-.01,t.suppressEvents)),"nested"!==this.data&&!1!==t.kill&&this.kill(),bu=e,this},e.globalTime=function(t){var e=this,n=arguments.length?t:e.rawTime();while(e)n=e._start+n/(e._ts||1),e=e._dp;return!this.parent&&this.vars.immediateRender?-1:n},e.repeat=function(t){return arguments.length?(this._repeat=t===1/0?-2:t,lp(this)):-2===this._repeat?1/0:this._repeat},e.repeatDelay=function(t){if(arguments.length){var e=this._time;return this._rDelay=t,lp(this),e?this.time(e):this}return this._rDelay},e.yoyo=function(t){return arguments.length?(this._yoyo=t,this):this._yoyo},e.seek=function(t,e){return this.totalTime(hp(this,t),Xu(e))},e.restart=function(t,e){return this.play().totalTime(t?-this._delay:0,Xu(e))},e.play=function(t,e){return null!=t&&this.seek(t,e),this.reversed(!1).paused(!1)},e.reverse=function(t,e){return null!=t&&this.seek(t||this.totalDuration(),e),this.reversed(!0).paused(!1)},e.pause=function(t,e){return null!=t&&this.seek(t,e),this.paused(!0)},e.resume=function(){return this.paused(!1)},e.reversed=function(t){return arguments.length?(!!t!==this.reversed()&&this.timeScale(-this._rts||(t?-Ou:0)),this):this._rts<0},e.invalidate=function(){return this._initted=this._act=0,this._zTime=-Ou,this},e.isActive=function(){var t,e=this.parent||this._dp,n=this._start;return!(e&&!(this._ts&&this._initted&&e.isActive()&&(t=e.rawTime(!0))>=n&&t1?(e?(i[t]=e,n&&(i[t+"Params"]=n),"onUpdate"===t&&(this._onUpdate=e)):delete i[t],this):i[t]},e.then=function(t){var e=this;return new Promise((function(n){var i=Hu(t)?t:Id,r=function(){var t=e.then;e.then=null,Hu(i)&&(i=i(e))&&(i.then||i===e)&&(e.then=t),n(i),e.then=t};e._initted&&1===e.totalProgress()&&e._ts>=0||!e._tTime&&e._ts<0?r():e._prom=r}))},e.kill=function(){Up(this)},t}();Od(uf.prototype,{_time:0,_start:0,_end:0,_tTime:0,_tDur:0,_dirty:0,_repeat:0,_yoyo:!1,parent:null,_initted:!1,_rDelay:0,_ts:1,_dp:0,ratio:0,_zTime:-Ou,_prom:0,_ps:!1,_rts:1});var df=function(t){function e(e,n){var i;return void 0===e&&(e={}),i=t.call(this,e)||this,i.labels={},i.smoothChildTiming=!!e.smoothChildTiming,i.autoRemoveChildren=!!e.autoRemoveChildren,i._sort=Xu(e.sortChildren),Su&&tp(e.parent||Su,vu(i),n),e.reversed&&i.reverse(),e.paused&&i.paused(!0),e.scrollTrigger&&ep(vu(i),e.scrollTrigger),i}xu(e,t);var n=e.prototype;return n.to=function(t,e,n){return up(0,arguments,this),this},n.from=function(t,e,n){return up(1,arguments,this),this},n.fromTo=function(t,e,n,i){return up(2,arguments,this),this},n.set=function(t,e,n){return e.duration=0,e.parent=this,kd(e).repeatDelay||(e.repeat=0),e.immediateRender=!!e.immediateRender,new Ef(t,e,hp(this,n),1),this},n.call=function(t,e,n){return tp(this,Ef.delayedCall(0,t,e),n)},n.staggerTo=function(t,e,n,i,r,a,s){return n.duration=e,n.stagger=n.stagger||i,n.onComplete=a,n.onCompleteParams=s,n.parent=this,new Ef(t,n,hp(this,r)),this},n.staggerFrom=function(t,e,n,i,r,a,s){return n.runBackwards=1,kd(n).immediateRender=Xu(n.immediateRender),this.staggerTo(t,e,n,i,r,a,s)},n.staggerFromTo=function(t,e,n,i,r,a,s,o){return i.startAt=n,kd(i).immediateRender=Xu(i.immediateRender),this.staggerTo(t,e,i,r,a,s,o)},n.render=function(t,e,n){var i,r,a,s,o,l,c,h,u,d,p,f,m=this._time,g=this._dirty?this.totalDuration():this._tDur,_=this._dur,v=t<=0?0:Ad(t),x=this._zTime<0!==t<0&&(this._initted||!_);if(this!==Su&&v>g&&t>=0&&(v=g),v!==this._tTime||n||x){if(m!==this._time&&_&&(v+=this._time-m,t+=this._time-m),i=v,u=this._start,h=this._ts,l=!h,x&&(_||(m=this._zTime),(t||!e)&&(this._zTime=t)),this._repeat){if(p=this._yoyo,o=_+this._rDelay,this._repeat<-1&&t<0)return this.totalTime(100*o+t,e,n);if(i=Ad(v%o),v===g?(s=this._repeat,i=_):(s=~~(v/o),s&&s===v/o&&(i=_,s--),i>_&&(i=_)),d=Zd(this._tTime,o),!m&&this._tTime&&d!==s&&(d=s),p&&1&s&&(i=_-i,f=1),s!==d&&!this._lock){var y=p&&1&d,b=y===(p&&1&s);if(s=m&&t>=0){r=this._first;while(r){if(a=r._next,(r._act||i>=r._start)&&r._ts&&c!==r){if(r.parent!==this)return this.render(t,e,n);if(r.render(r._ts>0?(i-r._start)*r._ts:(r._dirty?r.totalDuration():r._tDur)+(i-r._start)*r._ts,e,n),i!==this._time||!this._ts&&!l){c=0,a&&(v+=this._zTime=-Ou);break}}r=a}}else{r=this._last;var M=t<0?t:i;while(r){if(a=r._prev,(r._act||M<=r._end)&&r._ts&&c!==r){if(r.parent!==this)return this.render(t,e,n);if(r.render(r._ts>0?(M-r._start)*r._ts:(r._dirty?r.totalDuration():r._tDur)+(M-r._start)*r._ts,e,n||bu&&(r._initted||r._startAt)),i!==this._time||!this._ts&&!l){c=0,a&&(v+=this._zTime=M?-Ou:Ou);break}}r=a}}if(c&&!e&&(this.pause(),c.render(i>=m?0:-Ou)._zTime=i>=m?1:-1,this._ts))return this._start=u,Jd(this),this.render(t,e,n);this._onUpdate&&!e&&zp(this,"onUpdate",!0),(v===g&&this._tTime>=this.totalDuration()||!v&&m)&&(u!==this._start&&Math.abs(h)===Math.abs(this._ts)||this._lock||((t||!_)&&(v===g&&this._ts>0||!v&&this._ts<0)&&Gd(this,1),e||t<0&&!m||!v&&!m&&g||(zp(this,v===g&&t>=0?"onComplete":"onReverseComplete",!0),this._prom&&!(v0)&&this._prom())))}return this},n.add=function(t,e){var n=this;if(Gu(e)||(e=hp(this,e,t)),!(t instanceof uf)){if(Ku(t))return t.forEach((function(t){return n.add(t,e)})),this;if(Vu(t))return this.addLabel(t,e);if(!Hu(t))return this;t=Ef.delayedCall(0,t)}return this!==t?tp(this,t,e):this},n.getChildren=function(t,e,n,i){void 0===t&&(t=!0),void 0===e&&(e=!0),void 0===n&&(n=!0),void 0===i&&(i=-Iu);var r=[],a=this._first;while(a)a._start>=i&&(a instanceof Ef?e&&r.push(a):(n&&r.push(a),t&&r.push.apply(r,a.getChildren(!0,e,n)))),a=a._next;return r},n.getById=function(t){var e=this.getChildren(1,1,1),n=e.length;while(n--)if(e[n].vars.id===t)return e[n]},n.remove=function(t){return Vu(t)?this.removeLabel(t):Hu(t)?this.killTweensOf(t):(Hd(this,t),t===this._recent&&(this._recent=this._last),Wd(this))},n.totalTime=function(e,n){return arguments.length?(this._forcing=1,!this._dp&&this._ts&&(this._start=Ad(Yp.time-(this._ts>0?e/this._ts:(this.totalDuration()-e)/-this._ts))),t.prototype.totalTime.call(this,e,n),this._forcing=0,this):this._tTime},n.addLabel=function(t,e){return this.labels[t]=hp(this,e),this},n.removeLabel=function(t){return delete this.labels[t],this},n.addPause=function(t,e,n){var i=Ef.delayedCall(0,e||hd,n);return i.data="isPause",this._hasPause=1,tp(this,i,hp(this,t))},n.removePause=function(t){var e=this._first;t=hp(this,t);while(e)e._start===t&&"isPause"===e.data&&Gd(e),e=e._next},n.killTweensOf=function(t,e,n){var i=this.getTweensOf(t,n),r=i.length;while(r--)pf!==i[r]&&i[r].kill(t,e);return this},n.getTweensOf=function(t,e){var n,i=[],r=xp(t),a=this._first,s=Gu(e);while(a)a instanceof Ef?Ld(a._targets,r)&&(s?(!pf||a._initted&&a._ts)&&a.globalTime(0)<=e&&a.globalTime(a.totalDuration())>e:!e||a.isActive())&&i.push(a):(n=a.getTweensOf(r,e)).length&&i.push.apply(i,n),a=a._next;return i},n.tweenTo=function(t,e){e=e||{};var n,i=this,r=hp(i,t),a=e,s=a.startAt,o=a.onStart,l=a.onStartParams,c=a.immediateRender,h=Ef.to(i,Od({ease:e.ease||"none",lazy:!1,immediateRender:!1,time:r,overwrite:"auto",duration:e.duration||Math.abs((r-(s&&"time"in s?s.time:i._time))/i.timeScale())||Ou,onStart:function(){if(i.pause(),!n){var t=e.duration||Math.abs((r-(s&&"time"in s?s.time:i._time))/i.timeScale());h._dur!==t&&op(h,t,0,1).render(h._time,!0,!0),n=1}o&&o.apply(h,l||[])}},e));return c?h.render(0):h},n.tweenFromTo=function(t,e,n){return this.tweenTo(e,Od({startAt:{time:hp(this,t)}},n))},n.recent=function(){return this._recent},n.nextLabel=function(t){return void 0===t&&(t=this._time),Np(this,hp(this,t))},n.previousLabel=function(t){return void 0===t&&(t=this._time),Np(this,hp(this,t),1)},n.currentLabel=function(t){return arguments.length?this.seek(t,!0):this.previousLabel(this._time+Ou)},n.shiftChildren=function(t,e,n){void 0===n&&(n=0);var i,r=this._first,a=this.labels;while(r)r._start>=n&&(r._start+=t,r._end+=t),r=r._next;if(e)for(i in a)a[i]>=n&&(a[i]+=t);return Wd(this)},n.invalidate=function(e){var n=this._first;this._lock=0;while(n)n.invalidate(e),n=n._next;return t.prototype.invalidate.call(this,e)},n.clear=function(t){void 0===t&&(t=!0);var e,n=this._first;while(n)e=n._next,this.remove(n),n=e;return this._dp&&(this._time=this._tTime=this._pTime=0),t&&(this.labels={}),Wd(this)},n.totalDuration=function(t){var e,n,i,r=0,a=this,s=a._last,o=Iu;if(arguments.length)return a.timeScale((a._repeat<0?a.duration():a.totalDuration())/(a.reversed()?-t:t));if(a._dirty){i=a.parent;while(s)e=s._prev,s._dirty&&s.totalDuration(),n=s._start,n>o&&a._sort&&s._ts&&!a._lock?(a._lock=1,tp(a,s,n-s._delay,1)._lock=0):o=n,n<0&&s._ts&&(r-=n,(!i&&!a._dp||i&&i.smoothChildTiming)&&(a._start+=n/a._ts,a._time-=n,a._tTime-=n),a.shiftChildren(-n,!1,-Infinity),o=0),s._end>r&&s._ts&&(r=s._end),s=e;op(a,a===Su&&a._time>r?a._time:r,1,1),a._dirty=0}return a._tDur},e.updateRoot=function(t){if(Su._ts&&(Rd(Su,Kd(t,Su)),Cu=Yp.frame),Yp.frame>=xd){xd+=Ru.autoSleep||120;var e=Su._first;if((!e||!e._ts)&&Ru.autoSleep&&Yp._listeners.length<2){while(e&&!e._ts)e=e._next;e||Yp.sleep()}}},e}(uf);Od(df.prototype,{_lock:0,_hasPause:0,_forcing:0});var pf,ff,mf=function(t,e,n,i,r,a,s){var o,l,c,h,u,d,p,f,m=new Bf(this._pt,t,e,0,1,Of,null,r),g=0,_=0;m.b=n,m.e=i,n+="",i+="",(p=~i.indexOf("random("))&&(i=Dp(i)),a&&(f=[n,i],a(f,t,e),n=f[0],i=f[1]),l=n.match(td)||[];while(o=td.exec(i))h=o[0],u=i.substring(g,o.index),c?c=(c+1)%5:"rgba("===u.substr(-5)&&(c=1),h!==l[_++]&&(d=parseFloat(l[_-1])||0,m._pt={_next:m._pt,p:u||1===_?u:",",s:d,c:"="===h.charAt(1)?Cd(d,h)-d:parseFloat(h)-d,m:c&&c<4?Math.round:0},g=td.lastIndex);return m.c=g")})),s.duration();else{for(h in l={},y)"ease"===h||"easeEach"===h||Mf(h,y[h],l,y.easeEach);for(h in l)for(E=l[h].sort((function(t,e){return t.t-e.t})),L=0,o=0;op-Ou&&!m?p:tf&&(i=f)),l=this._yoyo&&1&a,l&&(u=this._yEase,i=f-i),o=Zd(this._tTime,s),i===d&&!n&&this._initted)return this._tTime=g,this;a!==o&&(h&&this._yEase&&rf(h,l),!this.vars.repeatRefresh||l||this._lock||(this._lock=n=1,this.render(Ad(s*a),!0).invalidate()._lock=0))}if(!this._initted){if(np(this,m?t:i,n,e,g))return this._tTime=0,this;if(d!==this._time)return this;if(f!==this._dur)return this.render(t,e,n)}if(this._tTime=g,this._time=i,!this._act&&this._ts&&(this._act=1,this._lazy=0),this.ratio=c=(u||this._ease)(i/f),this._from&&(this.ratio=c=1-c),i&&!d&&!e&&(zp(this,"onStart"),this._tTime!==g))return this;r=this._pt;while(r)r.r(c,r.d),r=r._next;h&&h.render(t<0?t:!i&&l?-Ou:h._dur*h._ease(i/this._dur),e,n)||this._startAt&&(this._zTime=t),this._onUpdate&&!e&&(m&&Xd(this,t,e,n),zp(this,"onUpdate")),this._repeat&&a!==o&&this.vars.onRepeat&&!e&&this.parent&&zp(this,"onRepeat"),g!==this._tDur&&g||this._tTime!==g||(m&&!this._onUpdate&&Xd(this,t,!0,!0),(t||!f)&&(g===this._tDur&&this._ts>0||!g&&this._ts<0)&&Gd(this,1),e||m&&!d||!(g||d||l)||(zp(this,g===p?"onComplete":"onReverseComplete",!0),this._prom&&!(g0)&&this._prom()))}}else ap(this,t,e,n);return this},n.targets=function(){return this._targets},n.invalidate=function(e){return(!e||!this.vars.runBackwards)&&(this._startAt=0),this._pt=this._op=this._onUpdate=this._lazy=this.ratio=0,this._ptLookup=[],this.timeline&&this.timeline.invalidate(e),t.prototype.invalidate.call(this,e)},n.resetTo=function(t,e,n,i){Pu||Yp.wake(),this._ts||this.play();var r,a=Math.min(this._dur,(this._dp._time-this._start)*this._ts);return this._initted||xf(this,a),r=this._ease(a/this._dur),yf(this,t,e,n,i,r,a)?this.resetTo(t,e,n,i):(Qd(this,0),this.parent||Vd(this._dp,this,"_first","_last",this._dp._sort?"_start":0),this.render(0))},n.kill=function(t,e){if(void 0===e&&(e="all"),!t&&(!e||"all"===e))return this._lazy=this._pt=0,this.parent?Up(this):this;if(this.timeline){var n=this.timeline.totalDuration();return this.timeline.killTweensOf(t,e,pf&&!0!==pf.vars.overwrite)._first||Up(this),this.parent&&n!==this.timeline.totalDuration()&&op(this,this._dur*this.timeline._tDur/n,0,1),this}var i,r,a,s,o,l,c,h=this._targets,u=t?xp(t):h,d=this._ptLookup,p=this._pt;if((!e||"all"===e)&&Bd(h,u))return"all"===e&&(this._pt=0),Up(this);i=this._op=this._op||[],"all"!==e&&(Vu(e)&&(o={},Td(e,(function(t){return o[t]=1})),e=o),e=bf(h,e)),c=h.length;while(c--)if(~u.indexOf(h[c]))for(o in r=d[c],"all"===e?(i[c]=e,s=r,a={}):(a=i[c]=i[c]||{},s=e),s)l=r&&r[o],l&&("kill"in l.d&&!0!==l.d.kill(o)||Hd(this,l,"_pt"),delete r[o]),"all"!==a&&(a[o]=1);return this._initted&&!this._pt&&p&&Up(this),this},e.to=function(t,n){return new e(t,n,arguments[2])},e.from=function(t,e){return up(1,arguments)},e.delayedCall=function(t,n,i,r){return new e(n,0,{immediateRender:!1,lazy:!1,overwrite:!1,delay:t,onComplete:n,onReverseComplete:n,onCompleteParams:i,onReverseCompleteParams:i,callbackScope:r})},e.fromTo=function(t,e,n){return up(2,arguments)},e.set=function(t,n){return n.duration=0,n.repeatDelay||(n.repeat=0),new e(t,n)},e.killTweensOf=function(t,e,n){return Su.killTweensOf(t,e,n)},e}(uf);Od(Ef.prototype,{_targets:[],_lazy:0,_startAt:0,_op:0,_onInit:0}),Td("staggerTo,staggerFrom,staggerFromTo",(function(t){Ef[t]=function(){var e=new df,n=gp.call(arguments,0);return n.splice("staggerFromTo"===t?5:4,0,0),e[t].apply(e,n)}}));var Af=function(t,e,n){return t[e]=n},Cf=function(t,e,n){return t[e](n)},Lf=function(t,e,n,i){return t[e](i.fp,n)},Pf=function(t,e,n){return t.setAttribute(e,n)},Rf=function(t,e){return Hu(t[e])?Cf:Wu(t[e])&&t.setAttribute?Pf:Af},Df=function(t,e){return e.set(e.t,e.p,Math.round(1e6*(e.s+e.c*t))/1e6,e)},If=function(t,e){return e.set(e.t,e.p,!!(e.s+e.c*t),e)},Of=function(t,e){var n=e._pt,i="";if(!t&&e.b)i=e.b;else if(1===t&&e.e)i=e.e;else{while(n)i=n.p+(n.m?n.m(n.s+n.c*t):Math.round(1e4*(n.s+n.c*t))/1e4)+i,n=n._next;i+=e.c}e.set(e.t,e.p,i,e)},Nf=function(t,e){var n=e._pt;while(n)n.r(t,n.d),n=n._next},zf=function(t,e,n,i){var r,a=this._pt;while(a)r=a._next,a.p===i&&a.modifier(t,e,n),a=r},Uf=function(t){var e,n,i=this._pt;while(i)n=i._next,i.p===t&&!i.op||i.op===t?Hd(this,i,"_pt"):i.dep||(e=1),i=n;return!e},Ff=function(t,e,n,i){i.mSet(t,e,i.m.call(i.tween,n,i.mt),i)},kf=function(t){var e,n,i,r,a=t._pt;while(a){e=a._next,n=i;while(n&&n.pr>a.pr)n=n._next;(a._prev=n?n._prev:r)?a._prev._next=a:i=a,(a._next=n)?n._prev=a:r=a,a=e}t._pt=i},Bf=function(){function t(t,e,n,i,r,a,s,o,l){this.t=e,this.s=i,this.c=r,this.p=n,this.r=a||Df,this.d=s||this,this.set=o||Af,this.pr=l||0,this._next=t,t&&(t._prev=this)}var e=t.prototype;return e.modifier=function(t,e,n){this.mSet=this.mSet||this.set,this.set=Ff,this.m=t,this.mt=n,this.tween=e},t}();Td(bd+"parent,duration,ease,delay,overwrite,runBackwards,startAt,yoyo,immediateRender,repeat,repeatDelay,data,paused,reversed,lazy,callbackScope,stringFilter,id,yoyoEase,stagger,inherit,repeatRefresh,keyframes,autoRevert,scrollTrigger",(function(t){return fd[t]=1})),rd.TweenMax=rd.TweenLite=Ef,rd.TimelineLite=rd.TimelineMax=df,Su=new df({sortChildren:!1,defaults:Du,autoRemoveChildren:!0,id:"root",smoothChildTiming:!0}),Ru.stringFilter=qp;var Vf=[],Hf={},Gf=[],Wf=0,jf=function(t){return(Hf[t]||Gf).map((function(t){return t()}))},Xf=function(){var t=Date.now(),e=[];t-Wf>2&&(jf("matchMediaInit"),Vf.forEach((function(t){var n,i,r,a,s=t.queries,o=t.conditions;for(i in s)n=wu.matchMedia(s[i]).matches,n&&(r=1),n!==o[i]&&(o[i]=n,a=1);a&&(t.revert(),r&&e.push(t))})),jf("matchMediaRevert"),e.forEach((function(t){return t.onMatch(t)})),Wf=t,jf("matchMedia"))},qf=function(){function t(t,e){this.selector=e&&yp(e),this.data=[],this._r=[],this.isReverted=!1,t&&this.add(t)}var e=t.prototype;return e.add=function(t,e,n){Hu(t)&&(n=e,e=t,t=Hu);var i=this,r=function(){var t,r=Mu,a=i.selector;return r&&r!==i&&r.data.push(i),n&&(i.selector=yp(n)),Mu=i,t=e.apply(i,arguments),Hu(t)&&i._r.push(t),Mu=r,i.selector=a,i.isReverted=!1,t};return i.last=r,t===Hu?r(i):t?i[t]=r:r},e.ignore=function(t){var e=Mu;Mu=null,t(this),Mu=e},e.getTweens=function(){var e=[];return this.data.forEach((function(n){return n instanceof t?e.push.apply(e,n.getTweens()):n instanceof Ef&&!(n.parent&&"nested"===n.parent.data)&&e.push(n)})),e},e.clear=function(){this._r.length=this.data.length=0},e.kill=function(t,e){var n=this;if(t){var i=this.getTweens();this.data.forEach((function(t){"isFlip"===t.data&&(t.revert(),t.getChildren(!0,!0,!1).forEach((function(t){return i.splice(i.indexOf(t),1)})))})),i.map((function(t){return{g:t.globalTime(0),t:t}})).sort((function(t,e){return e.g-t.g||-1})).forEach((function(e){return e.t.revert(t)})),this.data.forEach((function(e){return!(e instanceof uf)&&e.revert&&e.revert(t)})),this._r.forEach((function(e){return e(t,n)})),this.isReverted=!0}else this.data.forEach((function(t){return t.kill&&t.kill()}));if(this.clear(),e){var r=Vf.indexOf(this);~r&&Vf.splice(r,1)}},e.revert=function(t){this.kill(t||{})},t}(),Yf=function(){function t(t){this.contexts=[],this.scope=t}var e=t.prototype;return e.add=function(t,e,n){ju(t)||(t={matches:t});var i,r,a,s=new qf(0,n||this.scope),o=s.conditions={};for(r in this.contexts.push(s),e=s.add("onMatch",e),s.queries=t,t)"all"===r?a=1:(i=wu.matchMedia(t[r]),i&&(Vf.indexOf(s)<0&&Vf.push(s),(o[r]=i.matches)&&(a=1),i.addListener?i.addListener(Xf):i.addEventListener("change",Xf)));return a&&e(s),this},e.revert=function(t){this.kill(t||{})},e.kill=function(t){this.contexts.forEach((function(e){return e.kill(t,!0)}))},t}(),Zf={registerPlugin:function(){for(var t=arguments.length,e=new Array(t),n=0;n1){var i=t.map((function(t){return $f.quickSetter(t,e,n)})),r=i.length;return function(t){var e=r;while(e--)i[e](t)}}t=t[0]||{};var a=_d[e],s=Sd(t),o=s.harness&&(s.harness.aliases||{})[e]||e,l=a?function(e){var i=new a;Lu._pt=0,i.init(t,n?e+n:e,Lu,0,[t]),i.render(1,i),Lu._pt&&Nf(1,Lu)}:s.set(t,o);return a?l:function(e){return l(t,o,n?e+n:e,s,1)}},quickTo:function(t,e,n){var i,r=$f.to(t,zd((i={},i[e]="+=0.1",i.paused=!0,i),n||{})),a=function(t,n,i){return r.resetTo(e,t,n,i)};return a.tween=r,a},isTweening:function(t){return Su.getTweensOf(t,!0).length>0},defaults:function(t){return t&&t.ease&&(t.ease=af(t.ease,Du.ease)),Ud(Du,t||{})},config:function(t){return Ud(Ru,t||{})},registerEffect:function(t){var e=t.name,n=t.effect,i=t.plugins,r=t.defaults,a=t.extendTimeline;(i||"").split(",").forEach((function(t){return t&&!_d[t]&&!rd[t]&&ld(e+" effect requires "+t+" plugin.")})),vd[e]=function(t,e,i){return n(xp(t),Od(e||{},r),i)},a&&(df.prototype[e]=function(t,n,i){return this.add(vd[e](t,ju(n)?n:(i=n)&&{},this),i)})},registerEase:function(t,e){Kp[t]=af(e)},parseEase:function(t,e){return arguments.length?af(t,e):Kp},getById:function(t){return Su.getById(t)},exportRoot:function(t,e){void 0===t&&(t={});var n,i,r=new df(t);r.smoothChildTiming=Xu(t.smoothChildTiming),Su.remove(r),r._dp=0,r._time=r._tTime=Su._time,n=Su._first;while(n)i=n._next,!e&&!n._dur&&n instanceof Ef&&n.vars.onComplete===n._targets[0]||tp(r,n,n._start-n._delay),n=i;return tp(Su,r,0),r},context:function(t,e){return t?new qf(t,e):Mu},matchMedia:function(t){return new Yf(t)},matchMediaRefresh:function(){return Vf.forEach((function(t){var e,n,i=t.conditions;for(n in i)i[n]&&(i[n]=!1,e=1);e&&t.revert()}))||Xf()},addEventListener:function(t,e){var n=Hf[t]||(Hf[t]=[]);~n.indexOf(e)||n.push(e)},removeEventListener:function(t,e){var n=Hf[t],i=n&&n.indexOf(e);i>=0&&n.splice(i,1)},utils:{wrap:Pp,wrapYoyo:Rp,distribute:Mp,random:Tp,snap:wp,normalize:Cp,getUnit:fp,clamp:mp,splitColor:Hp,toArray:xp,selector:yp,mapRange:Ip,pipe:Ep,unitize:Ap,interpolate:Op,shuffle:bp},install:sd,effects:vd,ticker:Yp,updateRoot:df.updateRoot,plugins:_d,globalTimeline:Su,core:{PropTween:Bf,globals:cd,Tween:Ef,Timeline:df,Animation:uf,getCache:Sd,_removeLinkedListItem:Hd,reverting:function(){return bu},context:function(t){return t&&Mu&&(Mu.data.push(t),t._ctx=Mu),Mu},suppressOverwrites:function(t){return yu=t}}};Td("to,from,fromTo,delayedCall,set,killTweensOf",(function(t){return Zf[t]=Ef[t]})),Yp.add(df.updateRoot),Lu=Zf.to({},{duration:0});var Kf=function(t,e){var n=t._pt;while(n&&n.p!==e&&n.op!==e&&n.fp!==e)n=n._next;return n},Jf=function(t,e){var n,i,r,a=t._targets;for(n in e){i=a.length;while(i--)r=t._ptLookup[i][n],r&&(r=r.d)&&(r._pt&&(r=Kf(r,n)),r&&r.modifier&&r.modifier(e[n],t,a[i],n))}},Qf=function(t,e){return{name:t,rawVars:1,init:function(t,n,i){i._onInit=function(t){var i,r;if(Vu(n)&&(i={},Td(n,(function(t){return i[t]=1})),n=i),e){for(r in i={},n)i[r]=e(n[r]);n=i}Jf(t,n)}}}},$f=Zf.registerPlugin({name:"attr",init:function(t,e,n,i,r){var a,s,o;for(a in this.tween=n,e)o=t.getAttribute(a)||"",s=this.add(t,"setAttribute",(o||0)+"",e[a],i,r,0,0,a),s.op=a,s.b=o,this._props.push(a)},render:function(t,e){var n=e._pt;while(n)bu?n.set(n.t,n.p,n.b,n):n.r(t,n.d),n=n._next}},{name:"endArray",init:function(t,e){var n=e.length;while(n--)this.add(t,n,t[n]||0,e[n],0,0,0,0,0,1)}},Qf("roundProps",Sp),Qf("modifiers"),Qf("snap",wp))||Zf;Ef.version=df.version=$f.version="3.11.2",Au=1,qu()&&Zp();Kp.Power0,Kp.Power1,Kp.Power2,Kp.Power3,Kp.Power4,Kp.Linear,Kp.Quad,Kp.Cubic,Kp.Quart,Kp.Quint,Kp.Strong,Kp.Elastic,Kp.Back,Kp.SteppedEase,Kp.Bounce,Kp.Sine,Kp.Expo,Kp.Circ; /*! * CSSPlugin 3.11.2 * https://greensock.com * * Copyright 2008-2022, GreenSock. All rights reserved. * Subject to the terms at https://greensock.com/standard-license or for * Club GreenSock members, the agreement issued with that membership. * @author: Jack Doyle, jack@greensock.com */var tm,em,nm,im,rm,am,sm,om,lm=function(){return"undefined"!==typeof window},cm={},hm=180/Math.PI,um=Math.PI/180,dm=Math.atan2,pm=1e8,fm=/([A-Z])/g,mm=/(left|right|width|margin|padding|x)/i,gm=/[\s,\(]\S/,_m={autoAlpha:"opacity,visibility",scale:"scaleX,scaleY",alpha:"opacity"},vm=function(t,e){return e.set(e.t,e.p,Math.round(1e4*(e.s+e.c*t))/1e4+e.u,e)},xm=function(t,e){return e.set(e.t,e.p,1===t?e.e:Math.round(1e4*(e.s+e.c*t))/1e4+e.u,e)},ym=function(t,e){return e.set(e.t,e.p,t?Math.round(1e4*(e.s+e.c*t))/1e4+e.u:e.b,e)},bm=function(t,e){var n=e.s+e.c*t;e.set(e.t,e.p,~~(n+(n<0?-.5:.5))+e.u,e)},Mm=function(t,e){return e.set(e.t,e.p,t?e.e:e.b,e)},Sm=function(t,e){return e.set(e.t,e.p,1!==t?e.b:e.e,e)},wm=function(t,e,n){return t.style[e]=n},Tm=function(t,e,n){return t.style.setProperty(e,n)},Em=function(t,e,n){return t._gsap[e]=n},Am=function(t,e,n){return t._gsap.scaleX=t._gsap.scaleY=n},Cm=function(t,e,n,i,r){var a=t._gsap;a.scaleX=a.scaleY=n,a.renderTransform(r,a)},Lm=function(t,e,n,i,r){var a=t._gsap;a[e]=n,a.renderTransform(r,a)},Pm="transform",Rm=Pm+"Origin",Dm=function(t,e){var n=this,i=this.target,r=i.style;if(t in cm){if(this.tfm=this.tfm||{},"transform"!==t&&(t=_m[t]||t,~t.indexOf(",")?t.split(",").forEach((function(t){return n.tfm[t]=Km(i,t)})):this.tfm[t]=i._gsap.x?i._gsap[t]:Km(i,t)),this.props.indexOf(Pm)>=0)return;i._gsap.svg&&(this.svgo=i.getAttribute("data-svg-origin"),this.props.push(Rm,e,"")),t=Pm}(r||e)&&this.props.push(t,e,r[t])},Im=function(t){t.translate&&(t.removeProperty("translate"),t.removeProperty("scale"),t.removeProperty("rotate"))},Om=function(){var t,e,n=this.props,i=this.target,r=i.style,a=i._gsap;for(t=0;t=0?Fm[a]:"")+t},Bm=function(){lm()&&window.document&&(tm=window,em=tm.document,nm=em.documentElement,rm=zm("div")||{style:{}},zm("div"),Pm=km(Pm),Rm=Pm+"Origin",rm.style.cssText="border-width:0;line-height:0;position:absolute;padding:0",om=!!km("perspective"),sm=$f.core.reverting,im=1)},Vm=function t(e){var n,i=zm("svg",this.ownerSVGElement&&this.ownerSVGElement.getAttribute("xmlns")||"http://www.w3.org/2000/svg"),r=this.parentNode,a=this.nextSibling,s=this.style.cssText;if(nm.appendChild(i),i.appendChild(this),this.style.display="block",e)try{n=this.getBBox(),this._gsapBBox=this.getBBox,this.getBBox=t}catch(o){}else this._gsapBBox&&(n=this._gsapBBox());return r&&(a?r.insertBefore(this,a):r.appendChild(this)),nm.removeChild(i),this.style.cssText=s,n},Hm=function(t,e){var n=e.length;while(n--)if(t.hasAttribute(e[n]))return t.getAttribute(e[n])},Gm=function(t){var e;try{e=t.getBBox()}catch(n){e=Vm.call(t,!0)}return e&&(e.width||e.height)||t.getBBox===Vm||(e=Vm.call(t,!0)),!e||e.width||e.x||e.y?e:{x:+Hm(t,["x","cx","x1"])||0,y:+Hm(t,["y","cy","y1"])||0,width:0,height:0}},Wm=function(t){return!(!t.getCTM||t.parentNode&&!t.ownerSVGElement||!Gm(t))},jm=function(t,e){if(e){var n=t.style;e in cm&&e!==Rm&&(e=Pm),n.removeProperty?("ms"!==e.substr(0,2)&&"webkit"!==e.substr(0,6)||(e="-"+e),n.removeProperty(e.replace(fm,"-$1").toLowerCase())):n.removeAttribute(e)}},Xm=function(t,e,n,i,r,a){var s=new Bf(t._pt,e,n,0,1,a?Sm:Mm);return t._pt=s,s.b=i,s.e=r,t._props.push(n),s},qm={deg:1,rad:1,turn:1},Ym={grid:1,flex:1},Zm=function t(e,n,i,r){var a,s,o,l,c=parseFloat(i)||0,h=(i+"").trim().substr((c+"").length)||"px",u=rm.style,d=mm.test(n),p="svg"===e.tagName.toLowerCase(),f=(p?"client":"offset")+(d?"Width":"Height"),m=100,g="px"===r,_="%"===r;return r===h||!c||qm[r]||qm[h]?c:("px"!==h&&!g&&(c=t(e,n,i,"px")),l=e.getCTM&&Wm(e),!_&&"%"!==h||!cm[n]&&!~n.indexOf("adius")?(u[d?"width":"height"]=m+(g?h:r),s=~n.indexOf("adius")||"em"===r&&e.appendChild&&!p?e:e.parentNode,l&&(s=(e.ownerSVGElement||{}).parentNode),s&&s!==em&&s.appendChild||(s=em.body),o=s._gsap,o&&_&&o.width&&d&&o.time===Yp.time&&!o.uncache?Ed(c/o.width*m):((_||"%"===h)&&!Ym[Um(s,"display")]&&(u.position=Um(e,"position")),s===e&&(u.position="static"),s.appendChild(rm),a=rm[f],s.removeChild(rm),u.position="absolute",d&&_&&(o=Sd(s),o.time=Yp.time,o.width=s[f]),Ed(g?a*c/m:a&&c?m/a*c:0))):(a=l?e.getBBox()[d?"width":"height"]:e[f],Ed(_?c/a*m:c/100*a)))},Km=function(t,e,n,i){var r;return im||Bm(),e in _m&&"transform"!==e&&(e=_m[e],~e.indexOf(",")&&(e=e.split(",")[0])),cm[e]&&"transform"!==e?(r=lg(t,i),r="transformOrigin"!==e?r[e]:r.svg?r.origin:cg(Um(t,Rm))+" "+r.zOrigin+"px"):(r=t.style[e],(!r||"auto"===r||i||~(r+"").indexOf("calc("))&&(r=eg[e]&&eg[e](t,e,n)||Um(t,e)||wd(t,e)||("opacity"===e?1:0))),n&&!~(r+"").trim().indexOf(" ")?Zm(t,e,r,n)+n:r},Jm=function(t,e,n,i){if(!n||"none"===n){var r=km(e,t,1),a=r&&Um(t,r,1);a&&a!==n?(e=r,n=a):"borderColor"===e&&(n=Um(t,"borderTopColor"))}var s,o,l,c,h,u,d,p,f,m,g,_,v=new Bf(this._pt,t.style,e,0,1,Of),x=0,y=0;if(v.b=n,v.e=i,n+="",i+="","auto"===i&&(t.style[e]=i,i=Um(t,e)||i,t.style[e]=n),s=[n,i],qp(s),n=s[0],i=s[1],l=n.match($u)||[],_=i.match($u)||[],_.length){while(o=$u.exec(i))d=o[0],f=i.substring(x,o.index),h?h=(h+1)%5:"rgba("!==f.substr(-5)&&"hsla("!==f.substr(-5)||(h=1),d!==(u=l[y++]||"")&&(c=parseFloat(u)||0,g=u.substr((c+"").length),"="===d.charAt(1)&&(d=Cd(c,d)+g),p=parseFloat(d),m=d.substr((p+"").length),x=$u.lastIndex-m.length,m||(m=m||Ru.units[e]||g,x===i.length&&(i+=m,v.e+=m)),g!==m&&(c=Zm(t,e,u,m)||0),v._pt={_next:v._pt,p:f||1===y?f:",",s:c,c:p-c,m:h&&h<4||"zIndex"===e?Math.round:0});v.c=x-1)n=o[r],cm[n]&&(i=1,n="transformOrigin"===n?Rm:Pm),jm(a,n)}i&&(jm(a,Pm),l&&(l.svg&&a.removeAttribute("transform"),lg(a,1),l.uncache=1,Im(s)))}},eg={clearProps:function(t,e,n,i,r){if("isFromStart"!==r.data){var a=t._pt=new Bf(t._pt,e,n,0,0,tg);return a.u=i,a.pr=-10,a.tween=r,t._props.push(n),1}}},ng=[1,0,0,1,0,0],ig={},rg=function(t){return"matrix(1, 0, 0, 1, 0, 0)"===t||"none"===t||!t},ag=function(t){var e=Um(t,Pm);return rg(e)?ng:e.substr(7).match(Qu).map(Ed)},sg=function(t,e){var n,i,r,a,s=t._gsap||Sd(t),o=t.style,l=ag(t);return s.svg&&t.getAttribute("transform")?(r=t.transform.baseVal.consolidate().matrix,l=[r.a,r.b,r.c,r.d,r.e,r.f],"1,0,0,1,0,0"===l.join(",")?ng:l):(l!==ng||t.offsetParent||t===nm||s.svg||(r=o.display,o.display="block",n=t.parentNode,n&&t.offsetParent||(a=1,i=t.nextElementSibling,nm.appendChild(t)),l=ag(t),r?o.display=r:jm(t,"display"),a&&(i?n.insertBefore(t,i):n?n.appendChild(t):nm.removeChild(t))),e&&l.length>6?[l[0],l[1],l[4],l[5],l[12],l[13]]:l)},og=function(t,e,n,i,r,a){var s,o,l,c,h=t._gsap,u=r||sg(t,!0),d=h.xOrigin||0,p=h.yOrigin||0,f=h.xOffset||0,m=h.yOffset||0,g=u[0],_=u[1],v=u[2],x=u[3],y=u[4],b=u[5],M=e.split(" "),S=parseFloat(M[0])||0,w=parseFloat(M[1])||0;n?u!==ng&&(o=g*x-_*v)&&(l=S*(x/o)+w*(-v/o)+(v*b-x*y)/o,c=S*(-_/o)+w*(g/o)-(g*b-_*y)/o,S=l,w=c):(s=Gm(t),S=s.x+(~M[0].indexOf("%")?S/100*s.width:S),w=s.y+(~(M[1]||M[0]).indexOf("%")?w/100*s.height:w)),i||!1!==i&&h.smooth?(y=S-d,b=w-p,h.xOffset=f+(y*g+b*v)-y,h.yOffset=m+(y*_+b*x)-b):h.xOffset=h.yOffset=0,h.xOrigin=S,h.yOrigin=w,h.smooth=!!i,h.origin=e,h.originIsAbsolute=!!n,t.style[Rm]="0px 0px",a&&(Xm(a,h,"xOrigin",d,S),Xm(a,h,"yOrigin",p,w),Xm(a,h,"xOffset",f,h.xOffset),Xm(a,h,"yOffset",m,h.yOffset)),t.setAttribute("data-svg-origin",S+" "+w)},lg=function(t,e){var n=t._gsap||new hf(t);if("x"in n&&!e&&!n.uncache)return n;var i,r,a,s,o,l,c,h,u,d,p,f,m,g,_,v,x,y,b,M,S,w,T,E,A,C,L,P,R,D,I,O,N=t.style,z=n.scaleX<0,U="px",F="deg",k=getComputedStyle(t),B=Um(t,Rm)||"0";return i=r=a=l=c=h=u=d=p=0,s=o=1,n.svg=!(!t.getCTM||!Wm(t)),k.translate&&("none"===k.translate&&"none"===k.scale&&"none"===k.rotate||(N[Pm]=("none"!==k.translate?"translate3d("+(k.translate+" 0 0").split(" ").slice(0,3).join(", ")+") ":"")+("none"!==k.rotate?"rotate("+k.rotate+") ":"")+("none"!==k.scale?"scale("+k.scale.split(" ").join(",")+") ":"")+("none"!==k[Pm]?k[Pm]:"")),N.scale=N.rotate=N.translate="none"),g=sg(t,n.svg),n.svg&&(n.uncache?(A=t.getBBox(),B=n.xOrigin-A.x+"px "+(n.yOrigin-A.y)+"px",E=""):E=!e&&t.getAttribute("data-svg-origin"),og(t,E||B,!!E||n.originIsAbsolute,!1!==n.smooth,g)),f=n.xOrigin||0,m=n.yOrigin||0,g!==ng&&(y=g[0],b=g[1],M=g[2],S=g[3],i=w=g[4],r=T=g[5],6===g.length?(s=Math.sqrt(y*y+b*b),o=Math.sqrt(S*S+M*M),l=y||b?dm(b,y)*hm:0,u=M||S?dm(M,S)*hm+l:0,u&&(o*=Math.abs(Math.cos(u*um))),n.svg&&(i-=f-(f*y+m*M),r-=m-(f*b+m*S))):(O=g[6],D=g[7],L=g[8],P=g[9],R=g[10],I=g[11],i=g[12],r=g[13],a=g[14],_=dm(O,R),c=_*hm,_&&(v=Math.cos(-_),x=Math.sin(-_),E=w*v+L*x,A=T*v+P*x,C=O*v+R*x,L=w*-x+L*v,P=T*-x+P*v,R=O*-x+R*v,I=D*-x+I*v,w=E,T=A,O=C),_=dm(-M,R),h=_*hm,_&&(v=Math.cos(-_),x=Math.sin(-_),E=y*v-L*x,A=b*v-P*x,C=M*v-R*x,I=S*x+I*v,y=E,b=A,M=C),_=dm(b,y),l=_*hm,_&&(v=Math.cos(_),x=Math.sin(_),E=y*v+b*x,A=w*v+T*x,b=b*v-y*x,T=T*v-w*x,y=E,w=A),c&&Math.abs(c)+Math.abs(l)>359.9&&(c=l=0,h=180-h),s=Ed(Math.sqrt(y*y+b*b+M*M)),o=Ed(Math.sqrt(T*T+O*O)),_=dm(w,T),u=Math.abs(_)>2e-4?_*hm:0,p=I?1/(I<0?-I:I):0),n.svg&&(E=t.getAttribute("transform"),n.forceCSS=t.setAttribute("transform","")||!rg(Um(t,Pm)),E&&t.setAttribute("transform",E))),Math.abs(u)>90&&Math.abs(u)<270&&(z?(s*=-1,u+=l<=0?180:-180,l+=l<=0?180:-180):(o*=-1,u+=u<=0?180:-180)),e=e||n.uncache,n.x=i-((n.xPercent=i&&(!e&&n.xPercent||(Math.round(t.offsetWidth/2)===Math.round(-i)?-50:0)))?t.offsetWidth*n.xPercent/100:0)+U,n.y=r-((n.yPercent=r&&(!e&&n.yPercent||(Math.round(t.offsetHeight/2)===Math.round(-r)?-50:0)))?t.offsetHeight*n.yPercent/100:0)+U,n.z=a+U,n.scaleX=Ed(s),n.scaleY=Ed(o),n.rotation=Ed(l)+F,n.rotationX=Ed(c)+F,n.rotationY=Ed(h)+F,n.skewX=u+F,n.skewY=d+F,n.transformPerspective=p+U,(n.zOrigin=parseFloat(B.split(" ")[2])||0)&&(N[Rm]=cg(B)),n.xOffset=n.yOffset=0,n.force3D=Ru.force3D,n.renderTransform=n.svg?gg:om?mg:ug,n.uncache=0,n},cg=function(t){return(t=t.split(" "))[0]+" "+t[1]},hg=function(t,e,n){var i=fp(e);return Ed(parseFloat(e)+parseFloat(Zm(t,"x",n+"px",i)))+i},ug=function(t,e){e.z="0px",e.rotationY=e.rotationX="0deg",e.force3D=0,mg(t,e)},dg="0deg",pg="0px",fg=") ",mg=function(t,e){var n=e||this,i=n.xPercent,r=n.yPercent,a=n.x,s=n.y,o=n.z,l=n.rotation,c=n.rotationY,h=n.rotationX,u=n.skewX,d=n.skewY,p=n.scaleX,f=n.scaleY,m=n.transformPerspective,g=n.force3D,_=n.target,v=n.zOrigin,x="",y="auto"===g&&t&&1!==t||!0===g;if(v&&(h!==dg||c!==dg)){var b,M=parseFloat(c)*um,S=Math.sin(M),w=Math.cos(M);M=parseFloat(h)*um,b=Math.cos(M),a=hg(_,a,S*b*-v),s=hg(_,s,-Math.sin(M)*-v),o=hg(_,o,w*b*-v+v)}m!==pg&&(x+="perspective("+m+fg),(i||r)&&(x+="translate("+i+"%, "+r+"%) "),(y||a!==pg||s!==pg||o!==pg)&&(x+=o!==pg||y?"translate3d("+a+", "+s+", "+o+") ":"translate("+a+", "+s+fg),l!==dg&&(x+="rotate("+l+fg),c!==dg&&(x+="rotateY("+c+fg),h!==dg&&(x+="rotateX("+h+fg),u===dg&&d===dg||(x+="skew("+u+", "+d+fg),1===p&&1===f||(x+="scale("+p+", "+f+fg),_.style[Pm]=x||"translate(0, 0)"},gg=function(t,e){var n,i,r,a,s,o=e||this,l=o.xPercent,c=o.yPercent,h=o.x,u=o.y,d=o.rotation,p=o.skewX,f=o.skewY,m=o.scaleX,g=o.scaleY,_=o.target,v=o.xOrigin,x=o.yOrigin,y=o.xOffset,b=o.yOffset,M=o.forceCSS,S=parseFloat(h),w=parseFloat(u);d=parseFloat(d),p=parseFloat(p),f=parseFloat(f),f&&(f=parseFloat(f),p+=f,d+=f),d||p?(d*=um,p*=um,n=Math.cos(d)*m,i=Math.sin(d)*m,r=Math.sin(d-p)*-g,a=Math.cos(d-p)*g,p&&(f*=um,s=Math.tan(p-f),s=Math.sqrt(1+s*s),r*=s,a*=s,f&&(s=Math.tan(f),s=Math.sqrt(1+s*s),n*=s,i*=s)),n=Ed(n),i=Ed(i),r=Ed(r),a=Ed(a)):(n=m,a=g,i=r=0),(S&&!~(h+"").indexOf("px")||w&&!~(u+"").indexOf("px"))&&(S=Zm(_,"x",h,"px"),w=Zm(_,"y",u,"px")),(v||x||y||b)&&(S=Ed(S+v-(v*n+x*r)+y),w=Ed(w+x-(v*i+x*a)+b)),(l||c)&&(s=_.getBBox(),S=Ed(S+l/100*s.width),w=Ed(w+c/100*s.height)),s="matrix("+n+","+i+","+r+","+a+","+S+","+w+")",_.setAttribute("transform",s),M&&(_.style[Pm]=s)},_g=function(t,e,n,i,r){var a,s,o=360,l=Vu(r),c=parseFloat(r)*(l&&~r.indexOf("rad")?hm:1),h=c-i,u=i+h+"deg";return l&&(a=r.split("_")[1],"short"===a&&(h%=o,h!==h%(o/2)&&(h+=h<0?o:-o)),"cw"===a&&h<0?h=(h+o*pm)%o-~~(h/o)*o:"ccw"===a&&h>0&&(h=(h-o*pm)%o-~~(h/o)*o)),t._pt=s=new Bf(t._pt,e,n,i,h,xm),s.e=u,s.u="deg",t._props.push(n),s},vg=function(t,e){for(var n in e)t[n]=e[n];return t},xg=function(t,e,n){var i,r,a,s,o,l,c,h,u=vg({},n._gsap),d="perspective,force3D,transformOrigin,svgOrigin",p=n.style;for(r in u.svg?(a=n.getAttribute("transform"),n.setAttribute("transform",""),p[Pm]=e,i=lg(n,1),jm(n,Pm),n.setAttribute("transform",a)):(a=getComputedStyle(n)[Pm],p[Pm]=e,i=lg(n,1),p[Pm]=a),cm)a=u[r],s=i[r],a!==s&&d.indexOf(r)<0&&(c=fp(a),h=fp(s),o=c!==h?Zm(n,r,a,h):parseFloat(a),l=parseFloat(s),t._pt=new Bf(t._pt,i,r,o,l-o,vm),t._pt.u=h||0,t._props.push(r));vg(i,u)};Td("padding,margin,Width,Radius",(function(t,e){var n="Top",i="Right",r="Bottom",a="Left",s=(e<3?[n,i,r,a]:[n+a,n+i,r+i,r+a]).map((function(n){return e<2?t+n:"border"+n+t}));eg[e>1?"border"+t:t]=function(t,e,n,i,r){var a,o;if(arguments.length<4)return a=s.map((function(e){return Km(t,e,n)})),o=a.join(" "),5===o.split(a[0]).length?a[0]:o;a=(i+"").split(" "),o={},s.forEach((function(t,e){return o[t]=a[e]=a[e]||a[(e-1)/2|0]})),t.init(e,o,r)}}));var yg={name:"css",register:Bm,targetTest:function(t){return t.style&&t.nodeType},init:function(t,e,n,i,r){var a,s,o,l,c,h,u,d,p,f,m,g,_,v,x,y,b=this._props,M=t.style,S=n.vars.startAt;for(u in im||Bm(),this.styles=this.styles||Nm(t),y=this.styles.props,this.tween=n,e)if("autoRound"!==u&&(s=e[u],!_d[u]||!vf(u,e,n,i,t,r)))if(c=typeof s,h=eg[u],"function"===c&&(s=s.call(n,i,t,r),c=typeof s),"string"===c&&~s.indexOf("random(")&&(s=Dp(s)),h)h(this,t,u,s,n)&&(x=1);else if("--"===u.substr(0,2))a=(getComputedStyle(t).getPropertyValue(u)+"").trim(),s+="",jp.lastIndex=0,jp.test(a)||(d=fp(a),p=fp(s)),p?d!==p&&(a=Zm(t,u,a,p)+p):d&&(s+=d),this.add(M,"setProperty",a,s,i,r,0,0,u),b.push(u),y.push(u,0,M[u]);else if("undefined"!==c){if(S&&u in S?(a="function"===typeof S[u]?S[u].call(n,i,t,r):S[u],Vu(a)&&~a.indexOf("random(")&&(a=Dp(a)),fp(a+"")||(a+=Ru.units[u]||fp(Km(t,u))||""),"="===(a+"").charAt(1)&&(a=Km(t,u))):a=Km(t,u),l=parseFloat(a),f="string"===c&&"="===s.charAt(1)&&s.substr(0,2),f&&(s=s.substr(2)),o=parseFloat(s),u in _m&&("autoAlpha"===u&&(1===l&&"hidden"===Km(t,"visibility")&&o&&(l=0),y.push("visibility",0,M.visibility),Xm(this,M,"visibility",l?"inherit":"hidden",o?"inherit":"hidden",!o)),"scale"!==u&&"transform"!==u&&(u=_m[u],~u.indexOf(",")&&(u=u.split(",")[0]))),m=u in cm,m)if(this.styles.save(u),g||(_=t._gsap,_.renderTransform&&!e.parseTransform||lg(t,e.parseTransform),v=!1!==e.smoothOrigin&&_.smooth,g=this._pt=new Bf(this._pt,M,Pm,0,1,_.renderTransform,_,0,-1),g.dep=1),"scale"===u)this._pt=new Bf(this._pt,_,"scaleY",l,(f?Cd(l,f+o):o)-l||0,vm),this._pt.u=0,b.push("scaleY",u),u+="X";else{if("transformOrigin"===u){y.push(Rm,0,M[Rm]),s=$m(s),_.svg?og(t,s,0,v,0,this):(p=parseFloat(s.split(" ")[2])||0,p!==_.zOrigin&&Xm(this,_,"zOrigin",_.zOrigin,p),Xm(this,M,u,cg(a),cg(s)));continue}if("svgOrigin"===u){og(t,s,1,v,0,this);continue}if(u in ig){_g(this,_,u,l,f?Cd(l,f+s):s);continue}if("smoothOrigin"===u){Xm(this,_,"smooth",_.smooth,s);continue}if("force3D"===u){_[u]=s;continue}if("transform"===u){xg(this,s,t);continue}}else u in M||(u=km(u)||u);if(m||(o||0===o)&&(l||0===l)&&!gm.test(s)&&u in M)d=(a+"").substr((l+"").length),o||(o=0),p=fp(s)||(u in Ru.units?Ru.units[u]:d),d!==p&&(l=Zm(t,u,a,p)),this._pt=new Bf(this._pt,m?_:M,u,l,(f?Cd(l,f+o):o)-l,m||"px"!==p&&"zIndex"!==u||!1===e.autoRound?vm:bm),this._pt.u=p||0,d!==p&&"%"!==p&&(this._pt.b=a,this._pt.r=ym);else if(u in M)Jm.call(this,t,u,a,f?f+s:s);else{if(!(u in t)){od(u,s);continue}this.add(t,u,a||t[u],f?f+s:s,i,r)}m||(u in M?y.push(u,0,M[u]):y.push(u,1,a||t[u])),b.push(u)}x&&kf(this)},render:function(t,e){if(e.tween._time||!sm()){var n=e._pt;while(n)n.r(t,n.d),n=n._next}else e.styles.revert()},get:Km,aliases:_m,getSetter:function(t,e,n){var i=_m[e];return i&&i.indexOf(",")<0&&(e=i),e in cm&&e!==Rm&&(t._gsap.x||Km(t,"x"))?n&&am===n?"scale"===e?Am:Em:(am=n||{})&&("scale"===e?Cm:Lm):t.style&&!Wu(t.style[e])?wm:~e.indexOf("-")?Tm:Rf(t,e)},core:{_removeProperty:jm,_getMatrix:sg}};$f.utils.checkPrefix=km,$f.core.getStyleSaver=Nm,function(t,e,n,i){var r=Td(t+","+e+","+n,(function(t){cm[t]=1}));Td(e,(function(t){Ru.units[t]="deg",ig[t]=1})),_m[r[13]]=t+","+e,Td(i,(function(t){var e=t.split(":");_m[e[1]]=r[e[0]]}))}("x,y,z,scale,scaleX,scaleY,xPercent,yPercent","rotation,rotationX,rotationY,skewX,skewY","transform,transformOrigin,svgOrigin,force3D,smoothOrigin,transformPerspective","0:translateX,1:translateY,2:translateZ,8:rotate,8:rotationZ,8:rotateZ,9:rotateX,10:rotateY"),Td("x,y,z,top,right,bottom,left,width,height,fontSize,padding,margin,perspective",(function(t){Ru.units[t]="px"})),$f.registerPlugin(yg);var bg=$f.registerPlugin(yg)||$f,Mg=(bg.core.Tween,{name:"Home",data:function(){return{scene:null,camera:null,controls:null,renderer:null,axisHelper:null,sphere:null,time:{value:0},timer:null,dataList:[{image:n("ff10"),tipsList:[{position:{x:-200,y:-4,z:-147},content:{title:"进入厨房",text:"",image:1,showTip:!1,showTitle:!0}},{position:{x:-100,y:0,z:-231},content:{title:"信息点2",text:"77989",showTip:!0,showTitle:!1}},{position:{x:150,y:-50,z:-198},content:{title:"信息点3",text:"qwdcz",showTip:!0,showTitle:!1}},{position:{x:210,y:11,z:-140},content:{title:"信息点4",text:"大豆食心虫侦察十大大苏打大大大大大大大",showTip:!0,showTitle:!1}},{position:{x:208,y:-12,z:140},content:{title:"信息点5",text:"eq",showTip:!0,showTitle:!1}}]},{image:n("c4a7"),tipsList:[{position:{x:-199,y:-24,z:145},content:{title:"进入大厅",text:"",image:0,showTip:!1,showTitle:!0}}]}],tipsSpriteList:[],tooltipPosition:{top:"-100%",left:"-100%"},titlePosition:{top:"-100%",left:"-100%"},tooltopContent:{}}},methods:{initScene:function(){this.scene=new hh,this.scene.background=new rn(1052688)},initCamera:function(t){this.camera=new Mr(45,t.clientWidth/t.clientHeight,.1,1e3),this.camera.position.set(50,0,40)},initControls:function(t){this.controls=new _u(this.camera,t),this.controls.minDistance=1,this.controls.maxDistance=100,this.controls.enablePan=!1},initRenderer:function(t){this.renderer=new lh,this.renderer.setSize(t.offsetWidth,t.offsetHeight),t.appendChild(this.renderer.domElement)},initContent:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=new Ph(16,50,50);e.scale(16,16,-16);var n=(new Jh).load(this.dataList[t].image),i=new Di({map:n});this.sphere=new hr(e,i),this.scene.add(this.sphere),this.addTipsSprite()},addTipsSprite:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,i=(new Jh).load(n("d3fd")),r=new fh({map:i});this.tipsSpriteList=[],this.dataList[e].tipsList.forEach((function(e){var n=new Ch(r);n.scale.set(10,10,10),n.position.set(e.position.x,e.position.y,e.position.z),n.content=e.content,t.tipsSpriteList.push(n),t.scene.add(n)}))},changeContentAndtips:function(t){this.scene.children=this.scene.children.filter((function(t){return"Sprite"!==String(t.type)})),this.tipsSpriteList=[];var e=(new Jh).load(this.dataList[t].image),n=new Di({map:e,transparent:!0,opacity:0});this.sphere.material=n,bg.to(n,{transparent:!0,opacity:1,duration:2}),this.camera.updateProjectionMatrix(),this.addTipsSprite(t)},render:function(){this.controls.update(),this.renderer.render(this.scene,this.camera),this.renderer.sortObjects=!1,this.timer=requestAnimationFrame(this.render),this.time.value+=.015},onResize:function(){var t=this.$refs.threeDBox;this.camera.aspect=t.clientWidth/t.clientHeight,this.camera.updateProjectionMatrix(),this.renderer.setSize(t.clientWidth,t.clientHeight)},onMouseClick:function(t){t.preventDefault();var e=this.$refs.threeDBox;console.log(e);var n=new hu,i=new Ge;i.x=t.clientX/e.clientWidth*2-1,i.y=-t.clientY/e.clientHeight*2+1,n.setFromCamera(i,this.camera);var r=n.intersectObjects(this.tipsSpriteList,!0);r.length>0&&r[0].object.content.showTitle&&(this.changeContentAndtips(r[0].object.content.image),this.handleTooltipHide(t))},onMousemove:function(t){t.preventDefault();var e=this.$refs.threeDBox,n=new hu,i=new Ge;i.x=t.clientX/e.clientWidth*2-1,i.y=-t.clientY/e.clientHeight*2+1,n.setFromCamera(i,this.camera);var r=n.intersectObjects(this.tipsSpriteList,!0);if(r.length>0){var a=e.clientWidth/2,s=e.clientHeight/2,o=new gn(r[0].object.position.x,r[0].object.position.y,r[0].object.position.z),l=o.project(this.camera);if(this.tooltopContent=r[0].object.content,r[0].object.content.showTip){var c=Math.round(a*l.x+a-this.$refs.tooltipBox.clientWidth/2),h=Math.round(-s*l.y+s-this.$refs.tooltipBox.clientHeight/2);this.tooltipPosition={left:"".concat(c,"px"),top:"".concat(h,"px")}}else if(r[0].object.content.showTitle){var u=Math.round(a*l.x+a-this.$refs.titleBox.clientWidth/2),d=Math.round(-s*l.y+s);this.titlePosition={left:"".concat(u,"px"),top:"".concat(d,"px")}}}else this.handleTooltipHide(t)},handleTooltipHide:function(t){t.preventDefault(),this.tooltipPosition={top:"-100%",left:"-100%"},this.titlePosition={top:"-100%",left:"-100%"},this.tooltopContent={}}},mounted:function(){var t=this.$refs.threeDBox;this.initScene(),this.initCamera(t),this.initControls(t),this.initContent(),this.initRenderer(t),this.render(),window.addEventListener("resize",this.onResize,!1),window.addEventListener("click",this.onMouseClick,!1),this.renderer.domElement.addEventListener("mousemove",this.onMousemove,!1),this.$refs.tooltipBox.addEventListener("mouseleave",this.handleTooltipHide,!1)},destroyed:function(){cancelAnimationFrame(this.timer)}}),Sg=Mg,wg=(n("2356"),n("2877")),Tg=Object(wg["a"])(Sg,i,r,!1,null,"19691ff7",null);e["default"]=Tg.exports},2356:function(t,e,n){"use strict";n("8c50")},"8c50":function(t,e,n){var i=n("b937");"string"===typeof i&&(i=[[t.i,i,""]]),i.locals&&(t.exports=i.locals);var r=n("499e").default;r("f61cfc4e",i,!0,{sourceMap:!0,shadowMode:!1})},b937:function(t,e,n){e=t.exports=n("2350")(!0),e.push([t.i,".home[data-v-19691ff7]{position:relative}.home[data-v-19691ff7],.home .view-container[data-v-19691ff7]{width:100%;height:100%;overflow:hidden}.home .title-text[data-v-19691ff7]{position:absolute;width:3.4375vw;color:#382129}.home .tooltip-box[data-v-19691ff7]{position:absolute;padding:0 0 2.08333vw 0;line-height:1.5625vw;border-radius:.20833vw;color:#fff;z-index:100;cursor:pointer}.home .tooltip-box .container[data-v-19691ff7]{position:relative;width:12.5vw;max-height:10.41667vw;padding:.52083vw;background-color:rgba(0,0,0,.6)}.home .tooltip-box .container .title[data-v-19691ff7]{width:100%;padding:.3125vw 0}.home .tooltip-box .container .explain[data-v-19691ff7]{width:100%;max-height:5.20833vw;font-size:.72917vw;overflow-y:auto}.home .tooltip-box .container .explain[data-v-19691ff7]::-webkit-scrollbar{width:.20833vw;height:.20833vw}.home .tooltip-box .container .explain[data-v-19691ff7]::-webkit-scrollbar-track{background:#353535;border-radius:.10417vw}.home .tooltip-box .container .explain[data-v-19691ff7]::-webkit-scrollbar-thumb{background:#cdcdcd;border-radius:.10417vw}.home .tooltip-box .container .explain[data-v-19691ff7]::-webkit-scrollbar-thumb:hover{background:#9c9c9c}.home .tooltip-box .container .explain[data-v-19691ff7]::-webkit-scrollbar-corner{background:#f6f6f6}","",{version:3,sources:["D:/jenkins/workspace/bzzgj-fvue/src/views/Device/D:/jenkins/workspace/bzzgj-fvue/src/views/Device/D:/jenkins/workspace/bzzgj-fvue/src/views/Device/D:/jenkins/workspace/bzzgj-fvue/src/views/Device/3DView.vue"],names:[],mappings:"AA6UA,uBACE,iBAGA,CACA,8DAHA,WACA,YACA,eAIE,CAEF,mCACE,kBACA,eACA,aAAA,CAEF,oCACE,kBACA,wBACA,qBACA,uBACA,WACA,YACA,cAAA,CACA,+CACE,kBACA,aACA,sBACA,iBACA,+BAAA,CAUA,sDACE,WACA,iBAAA,CAEF,wDACE,WACA,qBACA,mBACA,eAAA,CACA,2EACE,eACA,eAAA,CAEF,iFACE,mBACA,sBAAA,CAEF,iFACE,mBACA,sBAAA,CAEF,uFACE,kBAAA,CAEF,kFACE,kBAAA,CAAA",file:"3DView.vue?vue&type=style&index=0&id=19691ff7&lang=scss&scoped=true&",sourcesContent:['\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n.home {\n position: relative;\n width: 100%;\n height: 100%;\n overflow: hidden;\n .view-container {\n width: 100%;\n height: 100%;\n overflow: hidden;\n }\n .title-text {\n position: absolute;\n width: 66px;\n color: #382129;\n }\n .tooltip-box {\n position: absolute;\n padding: 0px 0px 40px 0px;\n line-height: 30px;\n border-radius: 4px;\n color: #ffffff;\n z-index: 100;\n cursor: pointer;\n .container {\n position: relative;\n width: 240px;\n max-height: 200px;\n padding: 10px;\n background-color: rgba(0, 0, 0, 0.6);\n // &::before {\n // content: "";\n // position: absolute;\n // bottom: -16px;\n // left: 20%;\n // border-top: 16px solid rgba(0, 0, 0, 0.8);\n // border-left: 10px solid transparent;\n // border-right: 10px solid transparent;\n // }\n .title {\n width: 100%;\n padding: 6px 0;\n }\n .explain {\n width: 100%;\n max-height: 100px;\n font-size: 14px;\n overflow-y: auto;\n &::-webkit-scrollbar {\n width: 4px;\n height: 4px;\n }\n &::-webkit-scrollbar-track {\n background: #353535;\n border-radius: 2px;\n }\n &::-webkit-scrollbar-thumb {\n background: #cdcdcd;\n border-radius: 2px;\n }\n &::-webkit-scrollbar-thumb:hover {\n background: #9c9c9c;\n }\n &::-webkit-scrollbar-corner {\n background: #f6f6f6;\n }\n }\n }\n }\n}\n'],sourceRoot:""}])},c4a7:function(t,e,n){t.exports=n.p+"img/kitchen.7d6af566.jpg"},d3fd:function(t,e,n){t.exports=n.p+"img/tip.1fcbc2bb.png"},ff10:function(t,e,n){t.exports=n.p+"img/livingRoom.daa88722.jpg"}}]);