<!-- SOLID CITY · part 3365 -->
acementBias=C.displacementBias,I.wireframeLinewidth=C.wireframeLinewidth,I.linewidth=C.linewidth,x.isPointLight===!0&&I.isMeshDistanceMaterial===!0){let O=i.properties.get(I);O.light=x}return I}function v(E,C,x,w,I){if(E.visible===!1)return;if(E.layers.test(C.layers)&&(E.isMesh||E.isLine||E.isPoints)&&(E.castShadow||E.receiveShadow&&I===tr)&&(!E.frustumCulled||E.intersectsFrustum(n))){E.modelViewMatrix.multiplyMatrices(x.matrixWorldInverse,E.matrixWorld);let V=e.update(E),N=E.material;if(Array.isArray(N)){let z=V.groups;for(let q=0,X=z.length;q<X;q++){let ie=z[q],Y=N[ie.materialIndex];if(Y&&Y.visible){let j=A(E,Y,w,I);E.onBeforeShadow(i,E,C,x,V,j,ie),i.renderBufferDirect(x,null,V,j,E,ie),E.onAfterShadow(i,E,C,x,V,j,ie)}}}else if(N.visible){let z=A(E,N,w,I);E.onBeforeShadow(i,E,C,x,V,z,null),i.renderBufferDirect(x,null,V,z,E,null),E.onAfterShadow(i,E,C,x,V,z,null)}}let O=E.children;for(let V=0,N=O.length;V<N;V++)v(O[V],C,x,w,I)}function T(E){E.target.removeEventListener("dispose",T);for(let x in c){let w=c[x],I=E.target.uuid;I in w&&(w[I].dispose(),delete w[I])}}}function pv(i,e){function t(){let F=!1,pe=new Ct,K=null,me=new Ct(0,0,0,0);return{setMask:function(Se){K!==Se&&!F&&(i.colorMask(Se,Se,Se,Se),K=Se)},setLocked:function(Se){F=Se},setClear:function(Se,se,Ue,Ce,Et){Et===!0&&(Se*=Ce,se*=Ce,Ue*=Ce),pe.set(Se,se,Ue,Ce),me.equals(pe)===!1&&(i.clearColor(Se,se,Ue,Ce),me.copy(pe))},reset:function(){F=!1,K=null,me.set(-1,0,0,0)}}}function n(){let F=!1,pe=!1,K=null,me=null,Se=null;return{setReversed:function(se){if(pe!==se){let Ue=e.get("EXT_clip_control");se?Ue.clipControlEXT(Ue.LOWER_LEFT_EXT,Ue.ZERO_TO_ONE_EXT):Ue.clipControlEXT(Ue.LOWER_LEFT_EXT,Ue.NEGATIVE_ONE_TO_ONE_EXT),pe=se;let Ce=Se;Se=null,this.setClear(Ce)}},getReversed:function(){return pe},setTest:function(se){se?ee(i.DEPTH_TEST):ve(i.DEPTH_TEST)},setMask:function(se){K!==se&&!F&&(i.depthMask(se),K=se)},setFunc:function(se){if(pe&&(se=Yd[se]),me!==se){switch(se){case uo:i.depthFunc(i.NEVER);break;case fo:i.depthFunc(i.ALWAYS);break;case po:i.depthFunc(i.LESS);break;case ks:i.depthFunc(i.LEQUAL);break;case mo:i.depthFunc(i.EQUAL);break;case go:i.depthFunc(i.GEQUAL);break;case _o:i.depthFunc(i.GREATER);break;case xo:i.depthFunc(i.NOTEQUAL);break;default:i.depthFunc(i.LEQUAL)}me=se}},setLocked:function(se){F=se},setClear:function(se){Se!==se&&(Se=se,pe&&(se=1-se),i.clearDepth(se))},reset:function(){F=!1,K=null,me=null,Se=null,pe=!1}}}function s(){let F=!1,pe=null,K=null,me=null,Se=null,se=null,Ue=null,Ce=null,Et=null;return{setTest:function(mt){F||(mt?ee(i.STENCIL_TEST):ve(i.STENCIL_TEST))},setMask:function(mt){pe!==mt&&!F&&(i.stencilMask(mt),pe=mt)},setFunc:function(mt,kn,ei){(K!==mt||me!==kn||Se!==ei)&&(i.stencilFunc(mt,kn,ei),K=mt,me=kn,Se=ei)},setOp:function(mt,kn,ei){(se!==mt||Ue!==kn||Ce!==ei)&&(i.stencilOp(mt,kn,ei),se=mt,Ue=kn,Ce=ei)},setLocked:function(mt){F=mt},setClear:function(mt){Et!==mt&&(i.clearStencil(mt),Et=mt)},reset:function(){F=!1,pe=null,K=null,me=null,Se=null,se=null,Ue=null,Ce=null,Et=null}}}let r=new t,a=new n,o=new s,l=new WeakMap,c=new WeakMap,h={},f={},u={},d=new WeakMap,g=[],M=null,m=!1,p=null,b=null,A=null,v=null,T=null,E=null,C=null,x=new ge(0,0,0),w=0,I=!1,D=null,O=null,V=null,N=null,z=null,q=i.getParameter(i.MAX_COMBINED_TEXTURE_IMAGE_UNITS),X=!1,ie=0,Y=i.getParameter(i.VERSION);Y.indexOf("WebGL")!==-1?(ie=parseFloat(/^WebGL (\d)/.exec(Y)[1]),X=ie>=1):Y.indexOf("OpenGL ES")!==-1&&(ie=parseFloat(/^OpenGL ES (\d)/.exec(Y)[1]),X=ie>=2);let j=null,ne={},Pe=i.getParameter(i.SCISSOR_BOX),we=i.getParameter(i.VIEWPORT),dt=new Ct().fromArray(Pe),tt=new Ct().fromArray(we);function ot(F,pe,K,me){let Se=new Uint8Array(4),se=i.createTexture();i.bindTexture(F,se),i.texParameteri(F,i.TEXTURE_MIN_FILTER,i.NEAREST),i.texParameteri(F,i.TEXTURE_MAG_FILTER,i.NEAREST);for(let Ue=0;Ue<K;Ue++)F===i.TEXTURE_3D||F===i.TEXTURE_2D_ARRAY?i.texImage3D(pe,0,i.RGBA,1,1,me,0,i.RGBA,i.UNSIGNED_BYTE,Se):i.texImage2D(pe+Ue,0,i.RGBA,1,1,0,i.RGBA,i.UNSIGNED_BYTE,Se);return se}let $={};$[i.TEXTURE_2D]=ot(i.TEXTURE_2D,i.TEXTURE_2D,1),$[i.TEXTURE_CUBE_MAP]=ot(i.TEXTURE_CUBE_MAP,i.TEXTURE_CUBE_MAP_POSITIVE_X,6),$[i.TEXTURE_2D_ARRAY]=ot(i.TEXTURE_2D_ARRAY,i.TEXTURE_2D_ARRAY,1,1),$[i.TEXTURE_3D]=ot(i.TEXTURE_3D,i.TEXTURE_3D,1,1),r.setClear(0,0,0,1),a.setClear(1),o.setClear(0),ee(i.DEPTH_TEST),a.setFunc(ks),oe(!1),ue(oh),ee(i.CULL_FACE),re(ui);function ee(F){h[F]!==!0&&(i.enable(F),h[F]=!0)}function ve(F){h[F]!==!1&&(i.disable(F),h[F]=!1)}function Ve(F,pe){return u[F]!==pe?(i.bindFramebuffer(F,pe),u[F]=pe,F===i.DRAW_FRAMEBUFFER&&(u[i.FRAMEBUFFER]=pe),F===i.FRAMEBUFFER&&(u[i.DRAW_FRAMEBUFFER]=pe),!0):!1}function be(F,pe){let K=g,me=!1;if(F){K=d.get(pe),K===void 0&&(K=[],d.set(pe,K));let Se=F.textures;if(K.length!==Se.length||K[0]!==i.COLOR_ATTACHMENT0){for(let se=0,Ue=Se.length;se<Ue;se++)K[se]=i.COLOR_ATTACHMENT0+se;K.length=Se.length,me=!0}}else K[0]!==i.BACK&&(K[0]=i.BACK,me=!0);me&&i.drawBuffers(K)}function Ge(F){return M!==F?