0x911463fa…dc5csent to0xa7d8d9ef…d270·#11,847,804·view on Etherscan
let shader={},gl,uniforms,attributes,values,time=0;const makeTable=e=>{e=e.substr(2);let r=[];for(let a=0;a<16;a++)r[a]=parseInt("0x"+(e.substr(a+8,1)+e.substr(a+24,1)+e.substr(a+40,1)),16)/4096;return r},init=()=>{shader={frag_code:spectronShader.fragment,vert_code:spectronShader.vertex},values=makeTable(tokenData.hash);let a=document.getElementsByTagName("canvas")[0];if(gl=a.getContext("webgl"),gl.canvas.width=window.innerWidth,gl.canvas.height=window.innerHeight,shader.frag=gl.createShader(gl.FRAGMENT_SHADER),gl.shaderSource(shader.frag,shader.frag_code),gl.compileShader(shader.frag),!gl.getShaderParameter(shader.frag,gl.COMPILE_STATUS))throw"Fragment shader:"+gl.getShaderInfoLog(shader.frag);if(shader.vert=gl.createShader(gl.VERTEX_SHADER),gl.shaderSource(shader.vert,shader.vert_code),gl.compileShader(shader.vert),!gl.getShaderParameter(shader.vert,gl.COMPILE_STATUS))throw"Vertex shader:"+gl.getShaderInfoLog(shader.vert);if(shader.prog=gl.createProgram(),gl.attachShader(shader.prog,shader.vert),gl.attachShader(shader.prog,shader.frag),gl.linkProgram(shader.prog),!gl.getProgramParameter(shader.prog,gl.LINK_STATUS))throw"Failed to link shaders:"+gl.getProgramInfoLog(shader.prog);gl.detachShader(shader.prog,shader.vert),gl.detachShader(shader.prog,shader.frag),gl.deleteShader(shader.frag),gl.deleteShader(shader.vert),gl.useProgram(shader.prog),uniforms={u_resolution:gl.getUniformLocation(shader.prog,"D"),u_time:gl.getUniformLocation(shader.prog,"m"),u_generating:gl.getUniformLocation(shader.prog,"I"),u_hash:gl.getUniformLocation(shader.prog,"c")},attributes={a_position:gl.getAttribLocation(shader.prog,"position")},shader.buffer=gl.createBuffer(),gl.bindBuffer(gl.ARRAY_BUFFER,shader.buffer),gl.bufferData(gl.ARRAY_BUFFER,new Float32Array([-1,-1,-1,1,1,1,1,1,1,-1,-1,-1]),gl.STATIC_DRAW),window.addEventListener("resize",function(){gl.canvas.width=window.innerWidth,gl.canvas.height=window.innerHeight}),render()},render=()=>{time+=.025,gl.uniform2f(uniforms.u_resolution,gl.canvas.width,gl.canvas.height),gl.uniform1f(uniforms.u_time,time),gl.uniform1f(uniforms.u_generating,0),gl.uniform1fv(uniforms.u_hash,values),gl.enableVertexAttribArray(attributes.a_position),gl.vertexAttribPointer(attributes.a_position,2,gl.FLOAT,!1,0,0),gl.viewport(0,0,gl.canvas.width,gl.canvas.height),gl.clearColor(0,0,0,0),gl.drawArrays(gl.TRIANGLES,0,6),requestAnimationFrame(render)},spectronShader={fragment:"precision mediump float;const vec3 x=vec3(.299,.587,.114);uniform vec2 D;uniform float m,I,c[32];float J(float a,float b,float d){return sin(6.28318*b*a+d);}float K(float a,float b,float d,float e,float g){return atan(J(a,b,d)*e)*.63662;}float o(vec2 a,float e,float b,float k){b*=.03;float g=mix(a.x,a.y,e),d=mod(g+b*.5,1.);d=max(2.*d-1.,0.);return 6.28318*k*(d-b);}float j(vec2 a,float d,float e,float k,float g){float b=mix(a.x,a.y,d);g/=e,b=K(e,b,k,g,0.)*.5+.5;return b;}float p(vec2 a,float d,float b,float k){b*=.03;float e=mix(a.x,a.y,d),g=mod(e+b*.5,1.);return .5+atan(sin(g*2.*3.14159)*120.)/3.14159;}float h(float a){return 1.-a;}float L(float a,float b){return a*b;}float M(float a,float b){return 1.-(1.-a)*(1.-b);}float E(float a,float b,float d){return mix(L(a,b),M(a,b),d);}vec3 l(in float a,in vec3 b,in vec3 d,in vec3 e,in vec3 g){return b+d*cos(6.28318*(e*a+g));}float n(float b,float a,float d){return b*(d-a)+a;}float i(float b,float a,float d){return floor(b*(d-a)+a+.5);}float f(float a){return floor(a+.5);}void main(){vec2 b=gl_FragCoord.st/D.xy;vec3 y,z,e;float d=f(c[10]),g=i(c[2],1.,35.),q=n(c[14],0.,.5)+m*(2./g),r=p(b,d,q,1.);vec2 A=vec2(j(b,d,i(c[1],2.,4.),o(b,d,q,g),50.*r+150./g*h(r)),j(b,h(d),i(c[3],1.,2.),f(c[14])*1.570795,180.));float k=i(c[5],1.,3.+f(c[14]-.45)*5.),s=-1.*(m/k),t=p(b,d,s,1.);vec2 u=vec2(j(b,h(d),i(c[4],1.,3.),0.,100.),j(b,d,i(c[6],1.,2.),o(b,d,s,k),80.*t+150./k*h(t)));vec3 a[4];float v=f((c[12]+c[15])*.5+.2);a[0]=mix(vec3(.1),vec3(.4),v),a[1]=mix(vec3(.9),vec3(.6),v),a[2]=mix(vec3(.3),vec3(.6),v),a[3]=mix(mix(vec3(.92,.99,.98),vec3(1.02,.95,.96),f(c[11])),mix(vec3(.82,.7,.68+n(c[5],0.,.07)),vec3(.8,.81,.68),f(c[11]-.25)),v);float w=mix(j(b,0.,i(c[8],1.,2.),m*-.2,80.),1.,f(c[12]-.4));vec3 F=l(c[7],a[0],a[1],a[2],a[3])*w,G=l(c[6],a[0],a[1],a[2],a[3]),B=l(c[9],a[0],a[1],a[2],a[3])*h(w),C=l(c[2],a[0],a[1],a[2],a[3]);y=E(A.x,A.y,f(c[11]))*F,B*=h(dot(x,F)),y+=h(A.y)*B*B,z=E(u.y,u.x,f(c[3]+.1))*G,C*=h(dot(x,G)),z+=mix(u.y,u.y,f(c[7]))*C*C;float H=j(b,mix(h(d),d,f(c[12]-.35)),n(c[11],.5,2.),1.570795+f(c[12])*.785397,120.);e=y*H+z*h(H),e=mix(e,vec3(dot(e,x))*.5,I),e*=(.65+.35*sqrt(4.*b.y*(1.-b.y)))*.95,gl_FragColor=vec4(e,1.);}",vertex:"attribute vec4 position;void main() { gl_Position = position;}"};document.addEventListener("DOMContentLoaded",init);