1function e(e,t,r){r=r||new Float32Array(3),t|=1;var n=Math.sqrt(e[0]*e[0]+e[1]*e[1]+e[2]*e[2]);return n>1e-5&&(r[0]=e[0]/n*t,r[1]=e[1]/n*t,r[2]=e[2]/n*t),r}function t(e,t,r){return(r=r||new Float32Array(3))[0]=e[1]*t[2]-e[2]*t[1],r[1]=e[2]*t[0]-e[0]*t[2],r[2]=e[0]*t[1]-e[1]*t[0],r}function r(r,n,a,o){o=o||new Float32Array(16);var i=e(function(e,t,r){return(r=r||new Float32Array(3))[0]=e[0]-t[0],r[1]=e[1]-t[1],r[2]=e[2]-t[2],r}(r,n)),u=e(t(a,i)),c=e(t(i,u));return o[0]=u[0],o[1]=u[1],o[2]=u[2],o[3]=0,o[4]=c[0],o[5]=c[1],o[6]=c[2],o[7]=0,o[8]=i[0],o[9]=i[1],o[10]=i[2],o[11]=0,o[12]=r[0],o[13]=r[1],o[14]=r[2],o[15]=1,o}function n(e,t,r){var n=e.createShader(t);if(e.shaderSource(n,r),e.compileShader(n),e.getShaderParameter(n,e.COMPILE_STATUS))return n;{let t=e.getShaderInfoLog(n);throw e.deleteShader(n),new Error("Shader compile error: "+t)}}let a=(1+Math.sqrt(5))/2,o=[[1,a,0],[-1,a,0],[1,-a,0],[-1,-a,0],[0,1,a],[0,-1,a],[0,1,-a],[0,-1,-a],[a,0,1],[-a,0,1],[a,0,-1],[-a,0,-1]],i=[0,1,4,1,9,4,4,9,5,5,9,3,2,3,7,3,2,5,7,10,2,0,8,10,0,4,8,8,2,10,8,4,5,8,5,2,1,0,6,11,1,6,3,9,11,6,10,7,3,11,7,11,6,7,6,0,10,9,1,11];function u(t){let r=function(t,r,n){let a=0,u=[],c=[];for(var l=0;l<i.length;l+=3)h(e(o[i[l]],t),e(o[i[l+1]],t),e(o[i[l+2]],t),n);return{vertex:new Float32Array(c),index:new Uint16Array(u)};function h(r,n,o,i){if(i<=0)return c.push(r[0]),c.push(r[1]),c.push(r[2]),c.push(n[0]),c.push(n[1]),c.push(n[2]),c.push(o[0]),c.push(o[1]),c.push(o[2]),u.push(a),u.push(a+1),u.push(a+1),u.push(a+2),u.push(a+2),u.push(a),void(a+=3);let l=[],f=[],s=[];for(let e=0;e<3;e++)l[e]=r[e]+n[e],f[e]=n[e]+o[e],s[e]=o[e]+r[e];l=e(l,t),f=e(f,t),s=e(s,t),h(r,l,s,i-1),h(n,f,l,i-1),h(o,s,f,i-1),h(l,f,s,i-1)}}(.5,0,2);return t.bufferData(t.ARRAY_BUFFER,r.vertex,t.STATIC_DRAW),t.bufferData(t.ELEMENT_ARRAY_BUFFER,r.index,t.STATIC_DRAW),r.index.length}let c=document.getElementById("canvas");var l=c.getContext("webgl2");if(!l)throw new Error("gl init error");let h=document.body.clientWidth<360?4:5.5,f=.01;c.addEventListener("wheel",(function(e){e.deltaY>0?h-=.1:h+=.1,h<=0?h=f:h>=8.8&&(h=8.8)}));let s=0,v=Math.PI/2,m=.1;c.addEventListener("mousemove",(function(e){E&&(s+=e.movementX/100,v-=e.movementY/100)}));let d=0,A=0;c.addEventListener("touchmove",(function(e){let t=e.changedTouches[0];s+=(t.clientX-d)/300,v-=(t.clientY-A)/300,d=t.clientX,A=t.clientY,e.preventDefault()}));let E=!1;c.addEventListener("mouseup",(function(){E=!1})),c.addEventListener("mousedown",(function(){E=!0}));let _=function(e,t,r){var n=e.createProgram();if(e.attachShader(n,t),e.attachShader(n,r),e.linkProgram(n),e.getProgramParameter(n,e.LINK_STATUS))return n;throw e.deleteProgram(n),new Error("Program link error: "+e.getProgramInfoLog(n))}(l,n(l,l.VERTEX_SHADER,"#version 300 es\nin vec4 a_position; out vec4 normal; uniform mat4 u_matrix; void main() { normal = normalize(a_position); gl_Position = u_matrix * a_position; }"),n(l,l.FRAGMENT_SHADER,"#version 300 es\nprecision mediump float; in vec4 normal; out vec4 outColor; uniform vec3 u_color; uniform vec3 u_camera_position; void main() { float light = (dot(normal, vec4(u_camera_position, 1)) / 5.0) + 0.7; outColor = vec4(mix(vec3(0.0, 0.0, 0.0), u_color, light), 1); }"));!function(e){var t=l.getAttribLocation(e,"a_position"),n=l.getUniformLocation(e,"u_matrix"),a=l.getUniformLocation(e,"u_color"),o=l.getUniformLocation(e,"u_camera_position"),i=l.createBuffer();l.bindBuffer(l.ARRAY_BUFFER,i);var c=l.createBuffer();l.bindBuffer(l.ELEMENT_ARRAY_BUFFER,c);let d=u(l);var A=l.createVertexArray();l.bindVertexArray(A),l.enableVertexAttribArray(t),l.vertexAttribPointer(t,3,l.FLOAT,!1,0,0),l.useProgram(e),l.uniform3fv(a,[.1,1,.1]),requestAnimationFrame((function a(u){var g=(u*=.001)-_;_=u,function(e){var t=window.devicePixelRatio,r=Math.floor(e.canvas.clientWidth*t),n=Math.floor(e.canvas.clientHeight*t);e.canvas.width===r&&e.canvas.height===n||(e.canvas.width=r,e.canvas.height=n)}(l),l.viewport(0,0,l.canvas.width,l.canvas.height),l.enable(l.DEPTH_TEST),l.clearColor(0,0,0,0),l.clear(l.COLOR_BUFFER_BIT|l.DEPTH_BUFFER_BIT),l.useProgram(e),l.bindVertexArray(A),l.enableVertexAttribArray(t),E||(s=(s+m*g)%(2*Math.PI)+1e-5);v>Math.PI?v=Math.PI-1e-4:v<0&&(v=1e-4);var p=l.canvas.clientWidth/l.canvas.clientHeight;let F=function(e,t,r,n,a){a=a||new Float32Array(16);var o=Math.tan(.5*Math.PI-.5*e),i=1/(r-n);return a[0]=o/t,a[1]=0,a[2]=0,a[3]=0,a[4]=0,a[5]=o,a[6]=0,a[7]=0,a[8]=0,a[9]=0,a[10]=(r+n)*i,a[11]=-1,a[12]=0,a[13]=0,a[14]=r*n*i*2,a[15]=0,a}
1(Math.PI/5,p,.001,10),R=[4*Math.sin(v)*Math.cos(s),4*Math.cos(v),4*Math.sin(v)*Math.sin(s)];var w=r(R,[0,0,0],[0,1,0]);w=function(e,t){t=t||new Float32Array(16);var r=e[0],n=e[1],a=e[2],o=e[3],i=e[4],u=e[5],c=e[6],l=e[7],h=e[8],f=e[9],s=e[10],v=e[11],m=e[12],d=e[13],A=e[14],E=e[15],_=s*E,g=A*v,p=c*E,F=A*l,R=c*v,w=s*l,M=a*E,P=A*o,T=a*v,S=s*o,L=a*l,x=c*o,b=h*d,y=m*f,B=i*d,I=m*u,U=i*f,D=h*u,Y=r*d,C=m*n,N=r*f,H=h*n,V=r*u,O=i*n,W=_*u+F*f+R*d-(g*u+p*f+w*d),q=g*n+M*f+S*d-(_*n+P*f+T*d),X=p*n+P*u+L*d-(F*n+M*u+x*d),k=w*n+T*u+x*f-(R*n+S*u+L*f),G=1/(r*W+i*q+h*X+m*k);return t[0]=G*W,t[1]=G*q,t[2]=G*X,t[3]=G*k,t[4]=G*(g*i+p*h+w*m-(_*i+F*h+R*m)),t[5]=G*(_*r+P*h+T*m-(g*r+M*h+S*m)),t[6]=G*(F*r+M*i+x*m-(p*r+P*i+L*m)),t[7]=G*(R*r+S*i+L*h-(w*r+T*i+x*h)),t[8]=G*(b*l+I*v+U*E-(y*l+B*v+D*E)),t[9]=G*(y*o+Y*v+H*E-(b*o+C*v+N*E)),t[10]=G*(B*o+C*l+V*E-(I*o+Y*l+O*E)),t[11]=G*(D*o+N*l+O*v-(U*o+H*l+V*v)),t[12]=G*(B*s+D*A+y*c-(U*A+b*c+I*s)),t[13]=G*(N*A+b*a+C*s-(Y*s+H*A+y*a)),t[14]=G*(Y*c+O*A+I*a-(V*A+B*a+C*c)),t[15]=G*(V*s+U*a+H*c-(N*c+O*s+D*a)),t}(w),F=function(e,t,r){r=r||new Float32Array(16);var n=t[0],a=t[1],o=t[2],i=t[3],u=t[4],c=t[5],l=t[6],h=t[7],f=t[8],s=t[9],v=t[10],m=t[11],d=t[12],A=t[13],E=t[14],_=t[15],g=e[0],p=e[1],F=e[2],R=e[3],w=e[4],M=e[5],P=e[6],T=e[7],S=e[8],L=e[9],x=e[10],b=e[11],y=e[12],B=e[13],I=e[14],U=e[15];return r[0]=n*g+a*w+o*S+i*y,r[1]=n*p+a*M+o*L+i*B,r[2]=n*F+a*P+o*x+i*I,r[3]=n*R+a*T+o*b+i*U,r[4]=u*g+c*w+l*S+h*y,r[5]=u*p+c*M+l*L+h*B,r[6]=u*F+c*P+l*x+h*I,r[7]=u*R+c*T+l*b+h*U,r[8]=f*g+s*w+v*S+m*y,r[9]=f*p+s*M+v*L+m*B,r[10]=f*F+s*P+v*x+m*I,r[11]=f*R+s*T+v*b+m*U,r[12]=d*g+A*w+E*S+_*y,r[13]=d*p+A*M+E*L+_*B,r[14]=d*F+A*P+E*x+_*I,r[15]=d*R+A*T+E*b+_*U,r}(F,w);let M=.001*Math.pow(h,4)+f;P=F,T=M,S=M,L=M,(x=x||new Float32Array(16))[0]=T*P[0],x[1]=T*P[1],x[2]=T*P[2],x[3]=T*P[3],x[4]=S*P[4],x[5]=S*P[5],x[6]=S*P[6],x[7]=S*P[7],x[8]=L*P[8],x[9]=L*P[9],x[10]=L*P[10],x[11]=L*P[11],P!==x&&(x[12]=P[12],x[13]=P[13],x[14]=P[14],x[15]=P[15]),F=x,l.uniformMatrix4fv(n,!1,F),l.uniform3fv(o,R),l.bindBuffer(l.ELEMENT_ARRAY_BUFFER,c),l.bindBuffer(l.ARRAY_BUFFER,i),l.drawElements(l.LINES,d,l.UNSIGNED_SHORT,0),requestAnimationFrame(a);var P,T,S,L,x}));let _=0}(_);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.