0x2776…43f9

All memos sent from and to 0x2776…43f9.

(()=>{"use strict";{const o=t=>new Float32Array(t),l=Math.PI,f=2*l,c=Math.cos,s=Math.sin,u=Math.pow,v=Math.sqrt,b=Math.floor,h=Math.abs,p=Math.min,x=Math.max,m=1/3,A=1/6,d=new Float32Array([1,1,0,-1,1,0,1,-1,0,-1,-1,0,1,0,1,-1,0,1,1,0,-1,-1,0,-1,0,1,1,0,-1,1,0,1,-1,0,-1,-1]);class g{constructor(t,e,r,a,i){this.bump=!1,this.x=t,this.y=e,this.frac=r,this.s=a,this.angle=i,this.frac2=1,this.frac4=1,this.fc=0}}const y={init(t){this.r=this.alea(t),this.p=this.bp(this.r),this.perm=new Uint8Array(512),this.p12=new Uint8Array(512);for(var e=0;e<512;e++)this.perm[e]=this.p[255&e],this.p12[e]=this.perm[e]%12},bp(t){var e,r=new Uint8Array(256);for(e=0;e<256;e++)r[e]=e;for(e=0;e<255;e++){var a=e+~~(t()*(256-e)),i=r[e];r[e]=r[a],r[a]=i}return r},masher(){var t=4022871197;return function(e){e=e.toString();for(var r=0;r<e.length;r++){var a=.02519603282416938*(t+=e.charCodeAt(r));a-=t=a>>>0,t=(a*=t)>>>0,t+=4294967296*(a-=t)}return 2.3283064365386963e-10*(t>>>0)}},alea(){var t=0,e=0,r=0,a=1,i=this.masher();t=i(" "),e=i(" "),r=i(" ");for(var n=0;n<arguments.length;n++)(t-=i(arguments[n]))<0&&(t+=1),(e-=i(arguments[n]))<0&&(e+=1),(r-=i(arguments[n]))<0&&(r+=1);return i=null,function(){var i=2091639*t+2.3283064365386963e-10*a;return t=e,e=r,r=i-(a=0|i)}},n3(t,e,r){var a,i,n,o,l,f,c,s,u,v,h=this.p12,p=this.perm,x=(t+e+r)*m,g=b(t+x),y=b(e+x),_=b(r+x),E=(g+y+_)*A,D=t-(g-E),T=e-(y-E),R=r-(_-E);D>=T?T>=R?(l=1,f=0,c=0,s=1,u=1,v=0):D>=R?(l=1,f=0,c=0,s=1,u=0,v=1):(l=0,f=0,c=1,s=1,u=0,v=1):T<R?(l=0,f=0,c=1,s=0,u=1,v=1):D<R?(l=0,f=1,c=0,s=0,u=1,v=1):(l=0,f=1,c=0,s=1,u=1,v=0);var w=D-l+A,F=T-f+A,P=R-c+A,B=D-s+2*A,M=T-u+2*A,U=R-v+2*A,N=D-1+3*A,S=T-1+3*A,I=R-1+3*A,C=255&g,L=255&y,H=255&_,O=.6-D*D-T*T-R*R;if(O<0)a=0;else{var V=3*h[C+p[L+p[H]]];a=(O*=O)*O*(d[V]*D+d[V+1]*T+d[V+2]*R)}var z=.6-w*w-F*F-P*P;if(z<0)i=0;else{var G=3*h[C+l+p[L+f+p[H+c]]];i=(z*=z)*z*(d[G]*w+d[G+1]*F+d[G+2]*P)}var X=.6-B*B-M*M-U*U;if(X<0)n=0;else{var k=3*h[C+s+p[L+u+p[H+v]]];n=(X*=X)*X*(d[k]*B+d[k+1]*M+d[k+2]*U)}var W=.6-N*N-S*S-I*I;if(W<0)o=0;else{var q=3*h[C+1+p[L+1+p[H+1]]];o=(W*=W)*W*(d[q]*N+d[q+1]*S+d[q+2]*I)}return 32*(a+i+n+o)}},_=(i=[[3546,3490,3456,1364,0],[3822,4095,3549,2457,4095],[0,4095,3549,0],[18,375,1688,4041,3619],[0,679,120,3324,341,50,34],[3892,3106,2050,1536,768,512],[618,72,38,19,18,2],[3171,2131,3478,4023,4093,2455,546,308,18],[4095,3985,2541,715,869,18],[19,1110,2218,2505,3290,3943],[3838,3021,1675,1145,600,54,2],[1589,3977,2749,89,36],[3021,682,120,86,2236,4044,3805,3959,4072,4023,546],[2982,2710,2728,3511,3780,3800,2728,1638,1124,2184,1638,0,105,71,0,1024,1856,2144,1600,2144,1888,2692],[4042,3447,2425,1111,563,2748],[0,291,4001,3822,4095,869,1465],[785,1552,4090,2624,3459,4090,120],[3994,3976,514,3419,4015,1338,514,787,3766],[512,1794,3141,3957,3989,3635],[3654,4054,218,395,52],[311,2815,3920,4095,0],[0,4095,190,106,3936],[4078,2988,70,154,2543,3567,138,4060],[3685,4084,2507,1450,3822,530,1604]],n=[],{g:function(t){t<0&&(t*=-1),t%=1;let e=n.length,r=b(e*t),a=(r+1)%e,i=e*t-r,o=n[r],l=n[a],f=1-i,c=1/2.2;return[u(u(l[0],c)*i+f*u(o[0],c),2.2),u(u(l[1],c)*i+f*u(o[1],c),2.2),u(u(l[2],c)*i+f*u(o[2],c),2.2)]},i:function(t,e){for(var r=0;r<i[t].length;++r){let a=i[t][r],o=(15&a)/16,l=(a>>4&15)/16,f=(a>>8&15)/16;e&&(o=x(0,p(1,o+.05*it()-.025)),l=x(0,p(1,l+.05*it()-.025)),f=x(0,p(1,f+.05*it()-.025))),n.push([f,l,o])}}}),E=document.createElement("canvas");E.style="position:absolute;top:0;left:0;right:0;bottom:0;margin:0 auto;",document.body.prepend(E);let D=window.innerWidth,T=window.innerHeight,R=16/9,w=D*R;T>w?T=w:D=T/R,E.width=D,E.height=T;const F=E.clientWidth,P=E.clientHeight;let B=Math.min(F,P),M=F,U=P;const N=E.getContext("webgl2",{alpha:!1});N.getExtension("EXT_color_buffer_float"),N.getExtension("OES_texture_float_linear"),N.getExtension("EXT_float_blend");const S=N.TRIANGLES,I=N.FRAMEBUFFER,C=N.FLOAT,L=(N.UNSIGNED_BYTE,N.RGBA,N.TEXTURE_2D),H=N.COLOR_ATTACHMENT0,O=N.COLOR_BUFFER_BIT|N.DEPTH_BUFFER_BIT,V=N.ARRAY_BUFFER,z=N.STATIC_DRAW,G=N.DYNAMIC_DRAW,X=N.ONE,k=N.ONE_MINUS_SRC_ALPHA,W=N.SRC_ALPHA,q=(t,e,r)=>t.getAttribLocation(e,r),Y=(t,e,r)=>t.getUniformLocation(e,r),j=()=>N.createBuffer();let J,K,Q,Z,$,tt,et=[],rt=[],at=[];tokenData.tokenId,y.init(tokenData.hash);let it=y.r,nt=2+b(22*it()),ot=it()>.4?4:6,lt=it()>.5,ft=b(it()*it()*9)+5,ct=b(it()*it()*12)+3,st=it()>.7?.98:.9,ut=it()>.8,vt=it()>.5,bt=it()>.4,ht=b(4*it()),pt=it()>.4,xt=2+b(20*it()),mt=10+it()*it()*30,At=1+b(4*it()),dt=it()>.5,gt=it()>.8?.2:.8,yt=it()>.9,_t=it()*f,Et=it()>.95,Dt=it()-.5,Tt=it()-.5,Rt=-2,wt=2,Ft=it()-.5,Pt=it()-.5,Bt=-2,Mt=2;vt&&(Dt=-2,Tt=2,Rt=(it()-.5)*R,wt=(it()-.5)*R,Ft=-2,Pt=2,Bt=(it()-.5)*R,Mt=(it()-.5)*R);let Ut=.02+.04*it(),Nt=.02+.04*it(),St=.25+.5*it(),It=.1+.6*it(),Ct=it(),Lt=.15+.2*it(),Ht=.05+.1*it(),Ot=.15+it()*it()*.4,Vt=.05+it()*it()*.3,zt=[],Gt=100,Xt=180;for(var t=0;t<Gt*Xt;++t)zt.push([]);function kt(t,e,r){let a=b((t+1)/2*Gt),i=b((e+R)/(2*R)*Xt);a>=0&&a<Gt&&i>=0&&i<Xt&&zt[a*Xt+i].push(r)}function Wt(t,e,r,a){if(h(t)>1||h(e)>R)return!1;let i=[],n=b((t+1)/2*Gt),o=b((e+R)/(2*R)*Xt),l=x(0,n-2),f=x(0,o-2),c=p(Gt-1,n+2),s=p(Xt-1,o+2);for(var u=l;u<=c;++u)for(var m=f;m<=s;++m)for(var A=0;A<zt[u*Xt+m].length;++A)i.push(zt[u*Xt+m][A]);for(A=0;A<i.length;++A){let n=i[A];if(n!=a){let a=ye[n].x,i=ye[n].y,o=ye[n].s;if(v((t-a)*(t-a)+(e-i)*(e-i))-r-o<0)return!1}}return!0}function qt(){let t=N.createTexture();N.bindTexture(L,t),N.texImage2D(L,0,N.RGBA32F,$,tt,0,N.RGBA,C,null),N.texParameteri(L,N.TEXTURE_MIN_FILTER,N.LINEAR),N.texParameteri(L,N.TEXTURE_MAG_FILTER,N.LINEAR),N.texParameteri(L,N.TEXTURE_WRAP_S,N.CLAMP_TO_EDGE),N.texParameteri(L,N.TEXTURE_WRAP_T,N.CLAMP_TO_EDGE);let e=N.createFramebuffer();N.bindFramebuffer(I,e),N.framebufferTexture2D(I,H,L,t,0);const r=N.createRenderbuffer();return N.bindRenderbuffer(N.RENDERBUFFER,r),N.renderbufferStorage(N.RENDERBUFFER,N.DEPTH_COMPONENT16,$,tt),N.framebufferRenderbuffer(N.FRAMEBUFFER,N.DEPTH_ATTACHMENT,N.RENDERBUFFER,r),N.checkFramebufferStatus(N.FRAMEBUFFER),[t,e]}class Yt{constructor(t,e,r,a=[],i=[]){let n=jt(t,t.VERTEX_SHADER,e),o=jt(t,t.FRAGMENT_SHADER,r);this.p=t.createProgram(),t.attachShader(this.p,n),t.attachShader(this.p,o),t.linkProgram(this.p),this.a=[];for(var l=0;l<a.length;++l)this.a[a[l]]=q(t,this.p,a[l]);for(this.u=[],l=0;l<i.length;++l)this.u[i[l]]=Y(t,this.p,i[l])}}function jt(t,e,r){let a=t.createShader(e);return t.shaderSource(a,r),t.compileShader(a),a}function Jt(t,e){N.disable(N.DEPTH_TEST),N.bindBuffer(V,ie),N.bufferData(V,o(pe),G),N.useProgram(Qt.p),N.bindBuffer(V,ue),N.enableVertexAttribArray(Qt.a.ap),N.vertexAttribPointer(Qt.a.ap,2,C,!1,0,0),N.bindBuffer(V,ie),N.enableVertexAttribArray(Qt.a.c0),N.vertexAttribPointer(Qt.a.c0,3,C,!1,0,0),N.vertexAttribDivisor(Qt.a.c0,1),N.uniform1f(Qt.u.b,t),N.uniform1f(Qt.u.l,e);let r=[];for(var a=0;a<he;++a){let t=(a+.5)/he;r.push(2*t-1,1.1/he)}N.bindBuffer(V,re),N.bufferData(V,o(r),G),N.enableVertexAttribArray(Qt.a.as),N.vertexAttribPointer(Qt.a.as,2,C,!1,0,0),N.vertexAttribDivisor(Qt.a.as,1),N.drawArraysInstanced(S,0,6,he),N.vertexAttribDivisor(Qt.a.ap,0),N.vertexAttribDivisor(Qt.a.c0,0),N.vertexAttribDivisor(Qt.a.as,0)}var e="precision highp float;varying vec4 vc;void main(){gl_FragColor=vc;}";const Kt=new Yt(N,"precision highp float;attribute vec4 ap;attribute vec4 ac;attribute vec4 as;attribute vec2 al;varying vec4 vc;uniform vec2 d;uniform vec4 cols[30];uniform vec4 cols2[30];vec4 get(float l,float m){l=30.0*l;float i0=(mod(l,30.0));int i1=int(mod(i0+1.0,30.0));float f=fract(l);vec4 col0=cols[int(i0)];vec4 col1=cols[i1];if(m>0.5){ col0=cols2[int(i0)];col1=cols2[i1];}return mix(col0, col1,f);}vec3 so(vec3 c){float l=0.4122214708*c.r+0.5363325363*c.g+0.0514459929*c.b;float m=0.2119034982*c.r+0.6806995451*c.g+0.1073969566*c.b;float s=0.0883024619*c.r+0.2817188376*c.g+0.6299787005*c.b;float l_=pow(l,1.0/3.0);float m_=pow(m,1.0/3.0);float s_=pow(s,1.0/3.0);return vec3(0.2104542553*l_+0.7936177850*m_-0.0040720468*s_,1.9779984951*l_-2.4285922050*m_+0.4505937099*s_,0.0259040371*l_+0.7827717662*m_-0.8086757660*s_);}vec3 os(vec3 c){ float l_=c.x+0.3963377774*c.y+0.2158037573*c.z;float m_=c.x-0.1055613458*c.y-0.0638541728*c.z;float s_=c.x-0.0894841775*c.y-1.2914855480*c.z;float l=l_*l_*l_;float m=m_*m_*m_;float s =s_*s_*s_;return vec3(4.0767416621*l-3.3077115913*m+0.2309699292*s,-1.2684380046*l+2.6097574011*m-0.3413193965*s,-0.0041960863*l-0.7034186147*m+1.7076147010*s);}void main(){ vec4 c=get(fract(ac.x+ap.z*ac.z),al.y);vec3 w=so(c.xyz);vc.xyz=os(vec3(w.r*al.x,w.gb*1.1));vc.a=ac.w;mat2 rot=mat2(cos(ac.y),sin(ac.y),-sin(ac.y),cos(ac.y));vec2 pos = rot*ap.xy;gl_Position=vec4((as.w*pos.x+as.x)/d.x,(as.w*pos.y+as.y)/d.y,as.z,1.0);}",e,["ap","ac","as","al"],["d","cols","cols2"]),Qt=new Yt(N,"attribute vec2 ap;attribute vec3 c0;attribute vec2 as;uniform float b;uniform float l;varying vec4 vc;void main(){ vc=vec4(c0,b);gl_Position=vec4(ap.x*l,(ap.y*as.y+as.x)*l,1.0,1.0);}",e,["ap","c0","as"],["b","l"]),Zt=new Yt(N,"precision highp float;attribute vec4 ap;attribute vec2 at;varying vec2 t;void main(){ gl_Position=vec4(ap.xyz,1.0);t=at;}","precision highp float;varying vec2 t;uniform sampler2D u;uniform vec4 d;uniform float b;void main(){float l=min(1.0,2.8*length(t.xy-d.zw));float h=d.x*b*l;float v=d.y*b*l;vec4 s=vec4(0.0);s+=texture2D(u,vec2(t.x-4.0*h,t.y-4.0*v))*0.016216;s+=texture2D(u,vec2(t.x-3.0*h,t.y-3.0*v))*0.054054;s+=texture2D(u,vec2(t.x-2.0*h,t.y-2.0*v))*0.121621;s+=texture2D(u,vec2(t.x-1.0*h,t.y-1.0*v))*0.194594;s+=texture2D(u,vec2(t.x,t.y))*0.227027;s+=texture2D(u,vec2(t.x+1.0*h,t.y+1.0*v))*0.194594;s+=texture2D(u,vec2(t.x+2.0*h,t.y+2.0*v))*0.121621;s+=texture2D(u,vec2(t.x+3.0*h,t.y+3.0*v))*0.054054;s+=texture2D(u,vec2(t.x+4.0*h,t.y+4.0*v))*0.016216;gl_FragColor=clamp(s,0.,1.);}",["ap","at"],["d","b"]),$t=new Yt(N,"precision highp float;attribute vec2 ap;attribute vec2 at;varying vec2 v;void main(){ gl_Position=vec4(ap,0.0,1.0);v=at;}","precision highp float;varying vec2 v;uniform sampler2D t;void main(){ gl_FragColor=texture2D(t,v);}",["ap","at"]),te=j(),ee=j(),re=j(),ae=j(),ie=j();$=2*M,tt=2*U,[J,K]=qt(),[Q,Z]=qt();let ne=[],oe=60,le=3*oe;for(t=0;t<oe;++t){let je=t/oe*f,Je=2*t/oe;Je>1&&(Je=2-Je);let Ke=2*(t+1)/oe;Ke>1&&(Ke=2-Ke);let Qe=(t+1)/oe*f;ne.push(0,0,0,0,c(je),s(je),Je,Je,c(Qe),s(Qe),Ke,Ke)}let fe=o(ne);const ce=j();N.bindBuffer(V,ce);const se=o([-1,-1,-1,1,1,-1,1,1,-1,1,1,-1]);N.bufferData(V,se,z);const ue=j();N.bindBuffer(V,ue),N.bufferData(V,se,z);const ve=j();N.bindBuffer(V,ve),N.bufferData(V,o([0,0,0,1,1,0,1,1,0,1,1,0]),z),_.i(nt,yt);let be=[];for(t=0;t<30;++t){let Ze=t/30,$e=_.g(Ze);be.push($e[0],$e[1],$e[2],1)}let he=200,pe=[];for(t=0;t<he;++t){let tr=t/he,er=_.g(Ct+tr);pe.push(.2*er[0],.2*er[1],.2*er[2])}_.i(Et?1:0);let xe=[];for(t=0;t<30;++t){let rr=t/30,ar=_.g(rr);xe.push(ar[0],ar[1],ar[2],1)}rt=[],at=[],et=[];let me=o(rt),Ae=o(at),de=o(et),ge=0,ye=[];N.clearColor(1,1,1,1),N.clear(O),N.enable(N.BLEND),N.blendFuncSeparate(W,k,X,k);let _e=0,Ee=0,De=ft,Te=ct,Re=2/De,we=Re,Fe=Re;6==ot&&(Re/=2,we=Re*v(3),Fe=1.5*Re);let Pe=10,Be=[];for(t=0;t<Pe;++t){let ir=1.7*(it()-.5),nr=(it()-.5)*(2*R-.3),or=it()*f,lr=.5*u(it(),2);it()>.5&&(lr=10+20*it());let fr=ir+lr*c(or),cr=nr+lr*s(or),sr=new g(fr,cr,it(),lr,or);Be.push(sr)}let Me=[];for(t=0;t<ht;++t){let ur=1.5*(it()-.5),vr=(it()-.5)*(1.5*R-.2),br=.02*u(it(),2)+5e-4,hr=new g(ur,vr,it(),br,0);Me.push(hr)}let Ue=[];for(t=0;t<xt;++t){let pr=1.8*(it()-.5),xr=(it()-.5)*(1.8*R-.1),mr=.1+.2*u(it(),2),Ar=new g(pr,xr,it(),mr,0);Ue.push(Ar)}let Ne=6==ot||lt?.5*we:0,Se=4==ot?.125*f:0,Ie=4==ot?v(2)/De:1/De,Ce=c(_t),Le=s(_t),He=.1,Oe=[];for(;Oe.length<8;)for(Oe=[],t=-2;t<De+3;++t)for(var r=-2;r<Te+3;++r){let dr=-De/2*Fe+t*Fe,gr=-Te/2*we+r*we-Ne;t%2==0&&(gr+=Ne);let yr=Ce*dr+Le*gr,_r=-Le*dr+Ce*gr;yr+=.1*y.n3(yr*He,_r*He,8.87),_r+=.1*y.n3(yr*He,_r*He,2.47);let Er=new g(yr,_r,it(),Ie,Se-_t);Er.frac2=.5*it()+.1,Er.frac4=it(),it()>.65&&h(yr)<1.2&&h(_r)<1.2*R&&Oe.push(Er)}let Ve=4==ot?.25*l:0,ze=1e3/p(De,Te),Ge=dt?.5:2.2;4==ot&&(ze*=2);let Xe=[];Re=.005/x(De,Te);for(var a=0;a<ze;++a){let Dr=it()*f/ot,Tr=c(l/ot)/c(Dr%(f/ot)-l/ot),Rr=st*u(it(),Ge)*Tr,wr=Rr;for(t=0;t<ot;++t){let Fr=Dr+f*t/ot-_t+Ve,Pr=Rr*c(Fr),Br=Rr*s(Fr),Mr=!0;for(r=0;r<Xe.length;++r){let Ur=Xe[r].x-Pr,Nr=Xe[r].y-Br;if(v(Ur*Ur+Nr*Nr)<.04){Mr=!1;break}}Mr&&Xe.push(new g(Pr,Br,wr,Re,Fr))}}Oe.forEach((t=>{let e=b(7*it())-3,r=b(3*it());e+r==0&&(it()>.5?e=1:r=1);let a=it()>gt?1:0;for(let i of Xe){let n=t.x+i.x*t.s,o=t.y+i.y*t.s;if(h(n)<.94&&h(o)<R-.06){let l=y.n3(n*Ot*5,o*Vt*5,6*t.frac),c=new g(n,o,a*l+(1-a)*(r*i.frac+e*i.angle/f)+t.frac,Re,i.angle);c.frac4=1+.1*y.n3(n*Ot*10,o*Ht*10,4.987),ye.push(c),kt(n,o,Ee),Ee++,pt&&t.frac4>.5&&(c.bump=!0)}}}));let ke=ye.length;for(a=0;a<ke;++a)ye[a].s*=20;for(ze=1e5,t=0;t<ze;++t){let Sr=1.7*(it()-.5)+.08*(it()-.5),Ir=(it()-.5)*(2*R-.3)+.04*(it()-.5),Cr=.0021,Lr=new g(Sr,Ir,.5,Cr,0),Hr=it()-.5,Or=b(y.n3(Lt*Sr,Ht*Ir,.5)*mt),Vr=b(y.n3(Lt*(Sr+.01),Ht*Ir,.5)*mt),zr=b(y.n3(Lt*Sr,Ht*(Ir+.01),.5)*mt),Gr=b(y.n3(Lt*Sr,Ht*Ir,.5)*mt+.5*Hr);Lr.frac=Gr/(mt/At);let Xr=!1;Lr.frac2=.002+.02*it(),Or==Vr&&Or==zr||(Xr=!0,Lr.frac2+=.2);let kr=Cr;ut&&it()>.5&&(kr*=1+b(3*it())),Lr.s=kr,Wt(Sr,Ir,kr,Ee)&&(Xr&&it()>.85||.5*y.n3(3*Ot*Sr,3*Vt*Ir,2.5)+.2)>it()&&(ye.push(Lr),kt(Sr,Ir,Ee),Ee++)}for(a=0;a<ke;++a)ye[a].s*=.05;for(De=ye.length,r=0;r<De;++r){let Wr=ye[r];for(a=0;a<Pe;++a)v((Be[a].x-Wr.x)*(Be[a].x-Wr.x)+(Be[a].y-Wr.y)*(Be[a].y-Wr.y))<Be[a].s&&(Wr.frac+=.1);let qr=0,Yr=0;for(t=0;t<ht;++t){let Jr=Me[t].x-Wr.x,Kr=Me[t].y-Wr.y,Qr=v(Jr*Jr+Kr*Kr),Zr=.9*it()+.05;qr-=Me[t].s*Jr/(Qr*Qr*Qr)*Zr,Yr-=Me[t].s*Kr/(Qr*Qr*Qr)*Zr}let jr=v(qr*qr+Yr*Yr);if(jr>.03&&jr<.1)if(Wr.frac4>=.3){let $r=5+b(5*it());for(a=0;a<$r;++a){let ta=.5+.5*a/$r,ea=new g(Wr.x+ta*qr,Wr.y+ta*Yr,Wr.frac,Wr.s,Wr.angle);ea.frac2=.5*ta*Wr.frac2,ea.frac4=Wr.frac4,ea.fc=Wr.fc,ea.bump=Wr.bump,ye.push(ea)}}else ye.splice(r,1),r--;Wr.x+=qr,Wr.y+=Yr}for(De=ye.length,r=0;r<De;++r){let ra=ye[r];if(ra.bump){let aa=new g(ra.x+.001,ra.y-.001,ra.frac,ra.s,ra.angle);aa.frac2=.2,aa.frac4=.2,ye.push(aa),Ee++}}for(t=0;t<1e4;++t){let ia=b(it()*ye.length);ye[ia].frac+=.1*it()}let We=(Tt-Dt)*(Tt-Dt)+(wt-Rt)*(wt-Rt),qe=(Pt-Ft)*(Pt-Ft)+(Mt-Bt)*(Mt-Bt);for(t=0;t<ye.length;++t){let na=ye[t].x,oa=ye[t].y;for(r=0;r<xt;++r){let xa=na-Ue[r].x,ma=oa-Ue[r].y;v(xa*xa+ma*ma)<Ue[r].s*(.8+.4*it())&&(ye[t].fc=1,ye[t].frac2+=.02)}let la=na-Dt,fa=oa-Rt,ca=na-Tt,sa=oa-wt,ua=(la*(Tt-Dt)+fa*(wt-Rt))/We,va=(la*(Tt-Dt)+fa*(wt-Rt))/We,ba=Dt+va*(Tt-Dt),ha=Rt+va*(wt-Rt),pa=v((na-ba)*(na-ba)+(oa-ha)*(oa-ha));pa<Ut*(.8+.5*it())&&(ye[t].fc=1,ye[t].frac2+=.04),bt&&(la=na-Ft,fa=oa-Bt,ca=na-Pt,sa=oa-Mt,ua=(la*(Pt-Ft)+fa*(Mt-Bt))/qe,va=(la*(Pt-Ft)+fa*(Mt-Bt))/qe,ba=Ft+va*(Pt-Ft),ha=Bt+va*(Mt-Bt),pa=v((na-ba)*(na-ba)+(oa-ha)*(oa-ha)),pa<Nt*(.8+.5*it())&&(ye[t].fc=1,ye[t].frac2+=.04))}function Ye(t){requestAnimationFrame(Ye),rt=[],at=[],et=[],N.bindFramebuffer(I,K),N.viewport(0,0,$,tt),N.clear(N.DEPTH_BUFFER_BIT),Jt(1e-4,1),0==ge&&Jt(1,1),ge+=p(.1*(t-_e),.0333),_e=t;let e=1*B/4e3;N.bindFramebuffer(I,Z),N.viewport(0,0,$,tt),N.clear(O),N.useProgram(Zt.p),N.bindTexture(L,J),N.bindBuffer(V,ce),N.vertexAttribPointer(Zt.a.ap,2,C,!1,0,0),N.enableVertexAttribArray(Zt.a.ap),N.enableVertexAttribArray(Zt.a.at),N.bindBuffer(V,ve),N.vertexAttribPointer(Zt.a.at,2,C,!1,0,0),N.uniform4f(Zt.u.d,.5/$,0,St,.5*It+.5),N.uniform1f(Zt.u.b,e),N.drawArrays(S,0,6),N.bindFramebuffer(I,K),N.viewport(0,0,$,tt),N.clear(O),N.bindTexture(L,Q),N.uniform4f(Zt.u.d,0,.5/tt,St,.5*It+.5),N.drawArrays(S,0,6);for(let t=0;t<ye.length;++t){let e=ye[t];et.push((e.frac+.01*ge)%1,e.angle,0,e.frac2),rt.push(e.x,e.y,0,e.s),at.push(e.frac4,e.fc)}Ee=rt.length/4,me=o(rt),de=o(et),Ae=o(at),N.clear(N.DEPTH_BUFFER_BIT),N.enable(N.DEPTH_TEST),N.useProgram(Kt.p),N.bindBuffer(V,te),N.bufferData(V,fe,G),N.enableVertexAttribArray(Kt.a.ap),N.vertexAttribPointer(Kt.a.ap,4,C,!1,0,0),N.bindBuffer(V,ee),N.bufferData(V,de,G),N.enableVertexAttribArray(Kt.a.ac),N.vertexAttribPointer(Kt.a.ac,4,C,!1,0,0),N.vertexAttribDivisor(Kt.a.ac,1),N.bindBuffer(V,re),N.bufferData(V,me,G),N.enableVertexAttribArray(Kt.a.as),N.vertexAttribPointer(Kt.a.as,4,C,!1,0,0),N.vertexAttribDivisor(Kt.a.as,1),N.bindBuffer(V,ae),N.bufferData(V,Ae,G),N.enableVertexAttribArray(Kt.a.al),N.vertexAttribPointer(Kt.a.al,2,C,!1,0,0),N.vertexAttribDivisor(Kt.a.al,1),N.uniform4fv(Kt.u.cols,be),N.uniform4fv(Kt.u.cols2,xe),N.uniform2f(Kt.u.d,M/B,U/B),N.drawArraysInstanced(S,0,le,Ee),N.vertexAttribDivisor(Kt.a.ap,0),N.vertexAttribDivisor(Kt.a.as,0),N.vertexAttribDivisor(Kt.a.ac,0),N.vertexAttribDivisor(Kt.a.al,0),N.bindFramebuffer(I,null),N.viewport(0,0,N.canvas.width,N.canvas.height),N.useProgram($t.p),N.bindTexture(L,J),N.enableVertexAttribArray($t.a.ap),N.bindBuffer(V,ce),N.vertexAttribPointer($t.a.ap,2,C,!1,0,0),N.enableVertexAttribArray($t.a.at),N.bindBuffer(V,ve),N.vertexAttribPointer($t.a.at,2,C,!1,0,0),N.disable(N.BLEND),N.drawArrays(S,0,6),N.enable(N.BLEND)}document.body.style.backgroundColor="#000",window.requestAnimationFrame(Ye)}var i,n})();
When duty calls and the Departed need to form ranks, who will heed the call? "L'appel" explores order in the chaos of a battlefield - making sense of the unknown and fleeting world that lies beyond. Randomness, repetition, grids and overarching shapes pull the colors around, hoping to find a sense of wonder through the void. Following "Décorés", the final act of the Departed series reflects on the fleeting nature of existence, inviting viewers to contemplate how our struggles give shape and meaning to our time on earth.
(()=>{"use strict";{const o=Math.PI,s=2*o,f=Math.cos,c=Math.sin,d=Math.pow,g=Math.sqrt,u=Math.floor,v=Math.abs,w=Math.min,p=Math.max,m=1/3,y=1/6,b=new Float32Array([1,1,0,-1,1,0,1,-1,0,-1,-1,0,1,0,1,-1,0,1,1,0,-1,-1,0,-1,0,1,1,0,-1,1,0,1,-1,0,-1,-1]);class x{constructor(t,e,r,n,i,a){this.x=t,this.y=e,this.frac=n,this.s=r,this.angle=i,this.frac2=1,this.frac3=1,this.frac4=1,this.t=0,this.n_sides=a,this.fc=0,this.done=!1}}const M={init(t){this.r=this.alea(t),this.p=this.bp(this.r),this.perm=new Uint8Array(512),this.p12=new Uint8Array(512);for(var e=0;e<512;e++)this.perm[e]=this.p[255&e],this.p12[e]=this.perm[e]%12},bp(t){var e,r=new Uint8Array(256);for(e=0;e<256;e++)r[e]=e;for(e=0;e<255;e++){var n=e+~~(t()*(256-e)),i=r[e];r[e]=r[n],r[n]=i}return r},masher(){var t=4022871197;return function(e){e=e.toString();for(var r=0;r<e.length;r++){var n=.02519603282416938*(t+=e.charCodeAt(r));n-=t=n>>>0,t=(n*=t)>>>0,t+=4294967296*(n-=t)}return 2.3283064365386963e-10*(t>>>0)}},alea(){var t=0,e=0,r=0,n=1,i=this.masher();t=i(" "),e=i(" "),r=i(" ");for(var a=0;a<arguments.length;a++)(t-=i(arguments[a]))<0&&(t+=1),(e-=i(arguments[a]))<0&&(e+=1),(r-=i(arguments[a]))<0&&(r+=1);return i=null,function(){var i=2091639*t+2.3283064365386963e-10*n;return t=e,e=r,r=i-(n=0|i)}},n3(t,e,r){var n,i,a,l,h,o,s,f,c,d,g=this.p12,v=this.perm,w=(t+e+r)*m,p=u(t+w),x=u(e+w),M=u(r+w),R=(p+x+M)*y,S=t-(p-R),A=e-(x-R),k=r-(M-R);S>=A?A>=k?(h=1,o=0,s=0,f=1,c=1,d=0):S>=k?(h=1,o=0,s=0,f=1,c=0,d=1):(h=0,o=0,s=1,f=1,c=0,d=1):A<k?(h=0,o=0,s=1,f=0,c=1,d=1):S<k?(h=0,o=1,s=0,f=0,c=1,d=1):(h=0,o=1,s=0,f=1,c=1,d=0);var q=S-h+y,C=A-o+y,E=k-s+y,U=S-f+2*y,F=A-c+2*y,I=k-d+2*y,H=S-1+3*y,L=A-1+3*y,P=k-1+3*y,W=255&p,_=255&x,z=255&M,D=.6-S*S-A*A-k*k;if(D<0)n=0;else{var j=3*g[W+v[_+v[z]]];n=(D*=D)*D*(b[j]*S+b[j+1]*A+b[j+2]*k)}var B=.6-q*q-C*C-E*E;if(B<0)i=0;else{var G=3*g[W+h+v[_+o+v[z+s]]];i=(B*=B)*B*(b[G]*q+b[G+1]*C+b[G+2]*E)}var J=.6-U*U-F*F-I*I;if(J<0)a=0;else{var K=3*g[W+f+v[_+c+v[z+d]]];a=(J*=J)*J*(b[K]*U+b[K+1]*F+b[K+2]*I)}var N=.6-H*H-L*L-P*P;if(N<0)l=0;else{var O=3*g[W+1+v[_+1+v[z+1]]];l=(N*=N)*N*(b[O]*H+b[O+1]*L+b[O+2]*P)}return 32*(n+i+a+l)}},R=(a=[[54,875,410,1692,4017,2269,2734],[0,4095,3549,1365,546],[18,375,1688,4041,3619],[0,679,120,3324,341,50,34],[3892,3106,2050,1536,768,512],[618,72,38,19,18,2],[3171,2131,3478,4023,4093,2455,308,18],[4095,3985,2541,715,869,18],[3838,3021,1675,1145,600,54,2],[2115,3685,3990,4041,3547,3566],[4042,3447,2425,1111,563,2748],[869,1465,0,291,4001,3822,4095],[785,1552,4090,2624,3459,4090,120],[3994,3976,3419,4015,1338,514,3766],[512,1794,3141,3957,3989,3635],[3654,4054,218,395,52],[4078,2988,70,154,2543,3567,138,4060],[3685,4084,2507,1450,3822,530,1604]],l=[],h=[[1,1,0],[0,1,1],[1,0,1],[.5,1,0],[1,.5,0],[0,.5,1],[0,1,.5],[.5,0,1],[1,0,.5],[1,1,.5]],{g:function(t,e,r){let n=u(l.length*(v(t)%1)),i=l[n];return 1==r?A?[0,0,1]:[.83,.83,.83]:2==r?A?[1,0,0]:[1,.84,0]:e?h[n]:i},i:function(t){l=[],A||(h=[]);for(var e=0;e<a[t].length;++e){let r=a[t][e],n=(15&r)/16,i=(r>>4&15)/16,o=(r>>8&15)/16;l.push([o,i,n]),A||h.push([o,i,n])}},s:function(){return l.length}}),S=window.location.search;let A=new URLSearchParams(S).has("loom");const k=document.createElement("canvas");k.style="position:absolute;background:white;top:0;left:0;right:0;bottom:0;margin:0 auto;",document.body.prepend(k);const q=k.getContext("2d"),C=document.createElement("canvas"),E=C.getContext("2d");if(A){var t=document.createElement("canvas");t.style="position:absolute;background:white;top:8000px;left:0;right:0;bottom:0;margin:0 auto;",document.body.append(t),t.width=1e3,t.height=100;var e=t.getContext("2d")}M.init(tokenData.hash);let U=M.r,F=u(18*U()),I=1+10*U(),H=u(10+30*U()),L=u(1+40*U()),P=u(1+25*U()),W=U(),_=U()*s,z=U()>.8?30:U()>.4?0:10+u(5*U()),D=U()>.5,j=U()>.5,B=U()>.4?3:U(),G=U()>.8;G&&(H*=3);let J=U()>.5?100:3+u(4*U()),K=U()>.92,N=50+u(50*U()),O=.02+.08*U(),Q=U()>.9,T=2+u(8*U()),V=.03*(.5+U()),X=.5*d(2*(U()-.5),3),Y=.5+U(),Z=.5+U(),$=U()-.5,tt=U()-.5,et=U()-.5,rt=U()-.5,nt=0;for(;M.n3(0,-4.9-nt,0)<-.8;)nt=100*U();R.i(F);let it=1/R.s(),at=5*u(window.innerWidth/5),lt=window.innerHeight,ht=25/17,ot=at*ht;function st(){let t=5*u(window.innerWidth/5),e=window.innerHeight,r=25/17,n=t*r;e>n?e=n:t=5*u(e/r/5),k.width=t,k.height=e,q.drawImage(C,0,0,k.width,k.height)}lt>ot?lt=ot:at=5*u(lt/ht/5),k.width=at,k.height=lt,at=5350,lt=7868,A&&(at/=5,k.width=at,k.height=lt),C.width=at,C.height=lt,p(at,lt),window.addEventListener("resize",st);let ft=at,ct=lt;A||(ft/=5);let dt=[];for(var r=0;r<H;++r){let bt=1.7*(U()-.5),xt=1.7*(U()-.5)*ht,Mt=.01+.4*U(),Rt=Mt;for(var n=0;n<dt.length;++n){let St=bt-dt[n].x,At=xt-dt[n].y,kt=g(St*St+At*At)-dt[n].s;if(kt<0){Rt=0;break}Rt=w(Rt,kt)}if(Rt>.05*Mt){let qt=U()>.5?100:3+u(4*U());G&&(qt=J);let Ct=new x(bt,xt,Rt,U(),U()*s,qt);Ct.frac2=U(),Ct.frac3=.5+1.5*U(),Ct.frac4=U(),Ct.t=U()>.9?1:0,dt.push(Ct)}}E.clearRect(0,0,at,lt),E.strokeStyle="none";let gt=[],ut=[];for(var i=0;i<ct;i++)ut[i]=U()>.95?.2*U()-.1:0;for(i=1;i<ct-1;i++)gt[i]=.33*(ut[i-1]+ut[i]+ut[i+1]);gt[0]=0,gt[ct-1]=0;let vt=[];for(i=0;i<P;++i)vt[i]=U()>.9?.2*(U()-.5):0;let wt=0,pt=[];for(i=0;i<z;++i){let Et=U()*s,Ut=2*f(Et),Ft=2*c(Et);Et=Et+o+(U()-.5)*o;let It=2*f(Et)-Ut,Ht=2*c(Et)-Ft,Lt=It*It+Ht*Ht,Pt=.9+.2*U(),Wt=U()>.5?1:0,_t=.4*U();pt.push({x:Ut,y:Ft,dx:It,dy:Ht,l:Lt,p:Pt,t:Wt,q:_t})}function mt(t,e,r){let n=t,i=e;for(var a=0;a<pt.length;++a){let t=n-pt[a].x,e=i-pt[a].y,l=(t*pt[a].dx+e*pt[a].dy)/pt[a].l,h=pt[a].x+pt[a].dx*l,o=pt[a].y+pt[a].dy*l,s=n-h,c=i-o,d=c*c+s*s;-t*pt[a].dy+e*pt[a].dx>0&&(r+=pt[a].q,0==pt[a].t?(n=h+s*pt[a].p,i=o+c*pt[a].p):(n+=pt[a].dx/pt[a].l*.02,i+=pt[a].dy/pt[a].l*.02,r+=f(.4*d)*pt[a].p*.2))}return[n,i,r]}function yt(t){if(!(wt>=ft)){requestAnimationFrame(yt);for(var e=wt;e<w(wt+20,ft);e++){let t=e/ft,i=(e+1)/ft,a=(e-1)/ft;for(var r=0;r<ct;r++){let l=2*(t-.5),h=2*(.5-r/ct)*ht,w=2*(i-.5),m=2*(.5-(r+5)/ct)*ht,y=2*(a-.5),b=2*(.5-(r-5)/ct)*ht,x=0;[l,h,x]=mt(l,h,x);let S=!1,k=0,q=M.n3(3*l,3*h,8.45),C=M.n3(9*l,9*h,4.87)*V*q,F=M.n3(9*l,9*h,4.27)*V*q,H=u((h+2)*P),z=(u((m+2)*P),u((b+2)*P),(h+2)*P-H),G=(H+.5)/P-2,J=u((l+1)*L),at=(u((w+1)*L),u((y+1)*L),(J+.5)/L-1),lt=z-.5;p(2*v(h-G)*P,2*v(l-at)*L),l+=vt[H%P];let ot=v(2*lt),st=.5*M.n3(5*l,5*h,.18)+.5;st=d(st,3),x+=1*h+W+2+U()*O;let ft=10427*H+10429*J;K&&(x+=ft%N/N),ft%9==0&&(x+=H*it+J*I*it),D&&ft%13==0&&(x+=j?.2*f(100*l):.2*f(100*h));let ut=$,wt=tt;Q&&(7*H+5*J)%2==0&&(ut=et,wt=rt);let pt=l,yt=h;l+=C,h+=F;let bt=Math.atan2(h-wt,l-ut);bt=(bt+o+_)/s*T;let xt=(l-ut)*(l-ut)+(h-wt)*(h-wt),Mt=bt-u(bt)+d(xt,Y)*X;for(;Mt<0;)Mt+=1;Mt%=1;let Rt=(u(Mt/it)+.5)*it;ot=v(Mt-Rt)/it*2*Z,ft%7!=0?U()<g(xt)*ot&&(x+=Mt):x+=U()*O;let St=nt;for(var n=0;n<dt.length;++n){let t=dt[n].x,e=dt[n].y,i=g((pt-t)*(pt-t)+(yt-e)*(yt-e)),a=f(dt[n].angle),l=c(dt[n].angle),h=(pt-t)*a+(yt-e)*l+t,d=-(pt-t)*l+(yt-e)*a+e,u=Math.atan2(d-e,h-t)+s+i/dt[n].s*1*dt[n].frac4,v=dt[n].n_sides;if(i/=f(o/v)/f(u%(s/v)-o/v),i<dt[n].s){let t=i/dt[n].s;St+=t,x=dt[n].frac3*(1-t*t)+dt[n].frac2,1==dt[n].t&&(x*=3),S=!0,dt[n].frac2>.5&&(x+=gt[r]),St+=950}}l+=C,h+=F;let At=M.n3(st*B*3*l,st*B*2*h,.3+St);At>0&&(x+=it),U()>At+1.72&&(k=1),At=M.n3(st*B*l,-.9-St,st*B*h),At<.5&&(x-=it),At=M.n3(.2*st*B*l,-4.9-St,.2*st*B*h),At<0&&(x+=.5),U()>At+1.72&&(k=2);let kt=R.g(x,S,k);E.fillStyle="rgb("+u(255*kt[0])+","+u(255*kt[1])+","+u(255*kt[2])+")",A?E.fillRect(e,r,1,1):E.fillRect(5*e,r,5,1)}}wt+=20,q.drawImage(C,0,0,k.width,k.height)}}if(window.requestAnimationFrame(yt),A){e.clearRect(0,0,1e3,200),e.strokeStyle="none";let zt=1e3/(R.s()+2);for(n=0;n<R.s();++n){let jt=n/R.s(),Bt=R.g(jt,!1,0);e.fillStyle="rgb("+u(255*Bt[0])+","+u(255*Bt[1])+","+u(255*Bt[2])+")",e.fillRect(n*zt,0,zt,50),Bt=R.g(jt,!0,0),e.fillStyle="rgb("+u(255*Bt[0])+","+u(255*Bt[1])+","+u(255*Bt[2])+")",e.fillRect(n*zt,50,zt,50)}let Dt=R.g(0,!1,1);e.fillStyle="rgb("+u(255*Dt[0])+","+u(255*Dt[1])+","+u(255*Dt[2])+")",e.fillRect(1e3-2*zt,50,zt,50),Dt=R.g(0,!1,2),e.fillStyle="rgb("+u(255*Dt[0])+","+u(255*Dt[1])+","+u(255*Dt[2])+")",e.fillRect(1e3-1*zt,50,zt,50)}}var a,l,h})();
*Navette* explores a juxtaposition of the virtual and reality by fusing a digital generative process and a physical loom. This collection offers a voyage between the worlds, a shuttle weaving between the two. Using a combination of digital techniques adapted for the physical world, *Navette* plays with the notions of series and unique pieces, but also of the inherent randomness of the digital realm—featuring the infamous “glitch.” Generative art thus becomes a way of taking a shuttle to the edge of a new universe…
(()=>{"use strict";{const n=t=>new Float32Array(t),o=2*Math.PI,c=Math.cos,f=Math.sin,l=Math.pow,s=Math.sqrt,u=Math.floor,v=Math.abs,b=Math.min,h=Math.max;class A{constructor(t,e,r,a,i,n,o,c=!1){this.x=t,this.y=e,this.z=r,this.frac=a,this.s=i,this.angle=n,this.frac2=1,this.frac4=1,this.fc=0,this.active=c,this.done=!1}}const p={init(t){this.r=this.alea(t),this.p=this.bp(this.r),this.perm=new Uint8Array(512),this.p12=new Uint8Array(512);for(var e=0;e<512;e++)this.perm[e]=this.p[255&e],this.p12[e]=this.perm[e]%12},bp(t){var e,r=new Uint8Array(256);for(e=0;e<256;e++)r[e]=e;for(e=0;e<255;e++){var a=e+~~(t()*(256-e)),i=r[e];r[e]=r[a],r[a]=i}return r},masher(){var t=4022871197;return function(e){e=e.toString();for(var r=0;r<e.length;r++){var a=.02519603282416938*(t+=e.charCodeAt(r));a-=t=a>>>0,t=(a*=t)>>>0,t+=4294967296*(a-=t)}return 2.3283064365386963e-10*(t>>>0)}},alea(){var t=0,e=0,r=0,a=1,i=this.masher();t=i(" "),e=i(" "),r=i(" ");for(var n=0;n<arguments.length;n++)(t-=i(arguments[n]))<0&&(t+=1),(e-=i(arguments[n]))<0&&(e+=1),(r-=i(arguments[n]))<0&&(r+=1);return i=null,function(){var i=2091639*t+2.3283064365386963e-10*a;return t=e,e=r,r=i-(a=0|i)}}},x=(a=[[3546,3490,3456,1364,0],[3822,4095,3549,2457,4095],[0,4095,3549,0],[18,375,1688,4041,3619],[0,679,120,3324,341,50,34],[3892,3106,2050,1536,768,512],[618,72,38,19,18,2],[3171,2131,3478,4023,4093,2455,546,308,18],[4095,3985,2541,715,869,18],[19,1110,2218,2505,3290,3943],[3838,3021,1675,1145,600,54,2],[2115,3685,3990,4041,3547,3566],[1589,3977,2749,89,36],[3021,682,120,86,2236,4044,3805,3959,4072,4023,546],[2982,2710,2728,3511,3780,3800,2728,1638,1124,2184,1638,0,105,71,0,1024,1856,2144,1600,2144,1888,2692],[4042,3447,2425,1111,563,2748],[0,291,4001,3822,4095,869,1465],[785,1552,4090,2624,3459,4090,120],[3994,3976,514,3419,4015,1338,514,787,3766],[512,1794,3141,3957,3989,3635],[3654,4054,218,395,52],[311,2815,3920,4095,0],[0,4095,190,106,3936],[4078,2988,70,154,2543,3567,138,4060],[3685,4084,2507,1450,3822,530,1604]],i=[],{g:function(t){t<0&&(t*=-1),t%=1;let e=i.length,r=u(e*t),a=(r+1)%e,n=e*t-r,o=i[r],c=i[a],f=1-n,s=1/2.2;return[l(l(c[0],s)*n+f*l(o[0],s),2.2),l(l(c[1],s)*n+f*l(o[1],s),2.2),l(l(c[2],s)*n+f*l(o[2],s),2.2)]},i:function(t,e){for(var r=0;r<a[t].length;++r){let n=a[t][r];console.log(n);let o=(15&n)/16,c=(n>>4&15)/16,f=(n>>8&15)/16;e&&(o=h(0,b(1,o+.05*Y()-.025)),c=h(0,b(1,c+.05*Y()-.025)),f=h(0,b(1,f+.05*Y()-.025))),i.push([f,c,o])}}}),m=document.createElement("canvas");m.style="position:absolute;top:0;left:0;right:0;bottom:0;margin:0 auto;",document.body.prepend(m);const d=m.getContext("webgl",{alpha:!1}),E=d.getExtension("ANGLE_instanced_arrays"),g=d.TRIANGLES,_=d.FRAMEBUFFER,y=d.FLOAT,D=d.UNSIGNED_BYTE,T=d.RGBA,R=d.TEXTURE_2D,F=d.COLOR_ATTACHMENT0,w=d.COLOR_BUFFER_BIT|d.DEPTH_BUFFER_BIT,P=d.ARRAY_BUFFER,B=d.STATIC_DRAW,N=d.DYNAMIC_DRAW,L=d.ONE,M=d.ONE_MINUS_SRC_ALPHA,G=d.SRC_ALPHA,U=(t,e,r)=>t.getAttribLocation(e,r),S=(t,e,r)=>t.getUniformLocation(e,r),I=()=>d.createBuffer();let C,H,z,V,O,k,W=[],X=[],q=[];tokenData.tokenId,p.init(tokenData.hash);let Y=p.r,j=2+u(23*Y()),J=Y()>.9,K=Y()>.5,Q=Y()>.7,Z=Y()>.9,$=u(4*Y()),tt=.5+1.2*l(Y(),2),et=Y()>.5,rt=Y()>.9,at=Y()>.7,it=.25+.5*Y(),nt=.1+.7*Y(),ot=Y();x.i(j,J);let ct=[];for(var t=0;t<30;++t){let ve=t/30,be=x.g(ve);ct.push(be[0],be[1],be[2],1)}let ft=200,lt=[];for(t=0;t<ft;++t){let he=t/ft,Ae=x.g(ot+he);lt.push(.6+.4*Ae[0],.6+.4*Ae[1],.6+.4*Ae[2])}x.i(K?1:0);let st=[];for(t=0;t<30;++t){let pe=t/30,xe=x.g(pe);st.push(xe[0],xe[1],xe[2],1)}let ut=window.innerWidth,vt=window.innerHeight,bt=16/9,ht=ut*bt;vt>ht?vt=ht:ut=vt/bt,m.width=ut,m.height=vt;const At=m.clientWidth,pt=m.clientHeight;let xt=Math.min(At,pt),mt=At,dt=pt,Et=[],gt=100,_t=180;for(t=0;t<gt*_t;++t)Et.push([]);function yt(t,e,r){let a=u((t+1)/2*gt),i=u((e+bt)/(2*bt)*_t);a>=0&&a<gt&&i>=0&&i<_t&&Et[a*_t+i].push(r)}function Dt(t,e,r=-1){let a=[],i=u((t+1)/2*gt),n=u((e+bt)/(2*bt)*_t),o=h(0,i-5),c=h(0,n-5),f=b(gt-1,i+5),l=b(_t-1,n+5);for(var s=o;s<=f;++s)for(var v=c;v<=l;++v)for(var A=0;A<Et[s*_t+v].length;++A)a.push(Et[s*_t+v][A]);let p=-1,x=81;for(A=0;A<a.length;++A){let i=a[A];if(i!=r&&0==ee[i].done){let r=ee[i].x,a=ee[i].y,n=(t-r)*(t-r)+(e-a)*(e-a);n<x&&(x=n,p=i)}}return p}function Tt(t,e,r,a){if(v(t)>1||v(e)>bt)return!1;let i=[],n=u((t+1)/2*gt),o=u((e+bt)/(2*bt)*_t),c=h(0,n-2),f=h(0,o-2),l=b(gt-1,n+2),A=b(_t-1,o+2);for(var p=c;p<=l;++p)for(var x=f;x<=A;++x)for(var m=0;m<Et[p*_t+x].length;++m)i.push(Et[p*_t+x][m]);for(m=0;m<i.length;++m){let n=i[m];if(n!=a){let a=ee[n].x,i=ee[n].y,o=ee[n].s;if(s((t-a)*(t-a)+(e-i)*(e-i))-r-o<0)return!1}}return!0}function Rt(){let t=d.createTexture();d.bindTexture(R,t),d.texImage2D(R,0,T,O,k,0,T,D,null),d.texParameteri(R,d.TEXTURE_MIN_FILTER,d.LINEAR),d.texParameteri(R,d.TEXTURE_MAG_FILTER,d.LINEAR),d.texParameteri(R,d.TEXTURE_WRAP_S,d.CLAMP_TO_EDGE),d.texParameteri(R,d.TEXTURE_WRAP_T,d.CLAMP_TO_EDGE);let e=d.createFramebuffer();d.bindFramebuffer(_,e),d.framebufferTexture2D(_,F,R,t,0);const r=d.createRenderbuffer();return d.bindRenderbuffer(d.RENDERBUFFER,r),d.renderbufferStorage(d.RENDERBUFFER,d.DEPTH_COMPONENT16,O,k),d.framebufferRenderbuffer(d.FRAMEBUFFER,d.DEPTH_ATTACHMENT,d.RENDERBUFFER,r),d.checkFramebufferStatus(d.FRAMEBUFFER),[t,e]}class Ft{constructor(t,e,r,a=[],i=[]){let n=wt(t,t.VERTEX_SHADER,e),o=wt(t,t.FRAGMENT_SHADER,r);this.p=t.createProgram(),t.attachShader(this.p,n),t.attachShader(this.p,o),t.linkProgram(this.p),this.a=[];for(var c=0;c<a.length;++c)this.a[a[c]]=U(t,this.p,a[c]);for(this.u=[],c=0;c<i.length;++c)this.u[i[c]]=S(t,this.p,i[c])}}function wt(t,e,r){let a=t.createShader(e);return t.shaderSource(a,r),t.compileShader(a),a}function Pt(t,e){d.disable(d.DEPTH_TEST),d.bindBuffer(P,Ht),d.bufferData(P,n(lt),N),d.useProgram(Lt.p),d.bindBuffer(P,Jt),d.enableVertexAttribArray(Lt.a.ap),d.vertexAttribPointer(Lt.a.ap,2,y,!1,0,0),d.bindBuffer(P,Ht),d.enableVertexAttribArray(Lt.a.c0),d.vertexAttribPointer(Lt.a.c0,3,y,!1,0,0),E.vertexAttribDivisorANGLE(Lt.a.c0,1),d.uniform1f(Lt.u.b,t),d.uniform1f(Lt.u.l,e);let r=[];for(var a=0;a<ft;++a){let t=(a+.5)/ft;r.push(2*t-1,1.1/ft)}d.bindBuffer(P,It),d.bufferData(P,n(r),N),d.enableVertexAttribArray(Lt.a.as),d.vertexAttribPointer(Lt.a.as,2,y,!1,0,0),E.vertexAttribDivisorANGLE(Lt.a.as,1),E.drawArraysInstancedANGLE(g,0,6,ft),E.vertexAttribDivisorANGLE(Lt.a.ap,0),E.vertexAttribDivisorANGLE(Lt.a.c0,0),E.vertexAttribDivisorANGLE(Lt.a.as,0)}function Bt(t){d.clear(d.DEPTH_BUFFER_BIT),d.enable(d.DEPTH_TEST),d.useProgram(Nt.p),d.bindBuffer(P,Ut),d.bufferData(P,t?qt:Xt,N),d.enableVertexAttribArray(Nt.a.ap),d.vertexAttribPointer(Nt.a.ap,4,y,!1,0,0),d.bindBuffer(P,St),d.bufferData(P,$t,N),d.enableVertexAttribArray(Nt.a.ac),d.vertexAttribPointer(Nt.a.ac,4,y,!1,0,0),E.vertexAttribDivisorANGLE(Nt.a.ac,1),d.bindBuffer(P,It),d.bufferData(P,Qt,N),d.enableVertexAttribArray(Nt.a.as),d.vertexAttribPointer(Nt.a.as,4,y,!1,0,0),E.vertexAttribDivisorANGLE(Nt.a.as,1),d.bindBuffer(P,Ct),d.bufferData(P,Zt,N),d.enableVertexAttribArray(Nt.a.al),d.vertexAttribPointer(Nt.a.al,2,y,!1,0,0),E.vertexAttribDivisorANGLE(Nt.a.al,1),d.uniform4fv(Nt.u.cols,ct),d.uniform4fv(Nt.u.cols2,st),d.uniform2f(Nt.u.d,mt/xt,dt/xt),E.drawArraysInstancedANGLE(g,0,t?Wt:kt,ie),E.vertexAttribDivisorANGLE(Nt.a.ap,0),E.vertexAttribDivisorANGLE(Nt.a.as,0),E.vertexAttribDivisorANGLE(Nt.a.ac,0),E.vertexAttribDivisorANGLE(Nt.a.al,0)}var e="precision highp float;varying vec4 vc;void main(){gl_FragColor=vc;}";const Nt=new Ft(d,"precision highp float;attribute vec4 ap;attribute vec4 ac;attribute vec4 as;attribute vec2 al;varying vec4 vc;uniform vec2 d;uniform vec4 cols[30];uniform vec4 cols2[30];vec4 get(float l,float m){l=30.0*l;float i0=(mod(l,30.0));int i1=int(mod(i0+1.0,30.0));float f=fract(l);vec4 col0=cols[int(i0)];vec4 col1=cols[i1];if(m>0.5){col0=cols2[int(i0)];col1=cols2[i1];} return mix(col0, col1,f);}vec3 so(vec3 c){float l=0.4122214708*c.r+0.5363325363*c.g+0.0514459929*c.b;float m=0.2119034982*c.r+0.6806995451*c.g+0.1073969566*c.b;float s=0.0883024619*c.r+0.2817188376*c.g+0.6299787005*c.b;float l_=pow(l,1.0/3.0);float m_=pow(m,1.0/3.0);float s_=pow(s,1.0/3.0);return vec3(0.2104542553*l_+0.7936177850*m_-0.0040720468*s_,1.9779984951*l_-2.4285922050*m_+0.4505937099*s_,0.0259040371*l_+0.7827717662*m_-0.8086757660*s_);}vec3 os(vec3 c){float l_=c.x+0.3963377774*c.y+0.2158037573*c.z;float m_=c.x-0.1055613458*c.y-0.0638541728*c.z;float s_=c.x-0.0894841775*c.y-1.2914855480*c.z;float l=l_*l_*l_;float m=m_*m_*m_;float s =s_*s_*s_;return vec3(4.0767416621*l-3.3077115913*m+0.2309699292*s,-1.2684380046*l+2.6097574011*m-0.3413193965*s,-0.0041960863*l-0.7034186147*m+1.7076147010*s);}void main(){vec4 c=get(fract(ac.x+ap.z*ac.z),al.y);vec3 w=so(c.xyz);vc.xyz=os(vec3(w.r*al.x,w.gb));vc.a=ac.w;mat2 rot=mat2(cos(ac.y),sin(ac.y),-sin(ac.y),cos(ac.y));vec2 pos = rot*ap.xy;gl_Position=vec4((as.w*pos.x+as.x)/d.x,(as.w*pos.y+as.y)/d.y,as.z,1.0);}",e,["ap","ac","as","al"],["d","cols","cols2"]),Lt=new Ft(d,"attribute vec2 ap;attribute vec3 c0;attribute vec2 as;uniform float b;uniform float l;varying vec4 vc;void main(){ vc=vec4(c0,b);gl_Position=vec4(ap.x*l,(ap.y*as.y+as.x)*l,1.0,1.0);}",e,["ap","c0","as"],["b","l"]),Mt=new Ft(d,"precision highp float;attribute vec4 ap;attribute vec2 at;varying vec2 t;void main(){ gl_Position=vec4(ap.xyz,1.0);t=at;}","precision highp float;varying vec2 t;uniform sampler2D u;uniform vec4 d;uniform float b;void main(){float l=length(t.xy-d.zw);float h=d.x*b*l;float v=d.y*b*l;vec4 s=vec4(0.0);s+=texture2D(u,vec2(t.x-4.0*h,t.y-4.0*v))*0.016216;s+=texture2D(u,vec2(t.x-3.0*h,t.y-3.0*v))*0.054054;s+=texture2D(u,vec2(t.x-2.0*h,t.y-2.0*v))*0.121621;s+=texture2D(u,vec2(t.x-1.0*h,t.y-1.0*v))*0.194594;s+=texture2D(u,vec2(t.x,t.y))*0.227027;s+=texture2D(u,vec2(t.x+1.0*h,t.y+1.0*v))*0.194594;s+=texture2D(u,vec2(t.x+2.0*h,t.y+2.0*v))*0.121621;s+=texture2D(u,vec2(t.x+3.0*h,t.y+3.0*v))*0.054054;s+=texture2D(u,vec2(t.x+4.0*h,t.y+4.0*v))*0.016216;gl_FragColor=clamp(s,0.,1.);}",["ap","at"],["d","b"]),Gt=new Ft(d,"precision highp float;attribute vec2 ap;attribute vec2 at;varying vec2 v;void main(){ gl_Position=vec4(ap,0.0,1.0);v=at;}","precision highp float;varying vec2 v;uniform sampler2D t;void main(){ gl_FragColor=texture2D(t,v);}",["ap","at"]),Ut=I(),St=I(),It=I(),Ct=I(),Ht=I();O=2*mt,k=2*dt,[C,H]=Rt(),[z,V]=Rt();let zt=[],Vt=[],Ot=Q?4:60,kt=3*Ot,Wt=6*Ot;for(t=0;t<Ot;++t){let me=t/Ot*o,de=2*t/Ot;de>1&&(de=2-de);let Ee=2*(t+1)/Ot;Ee>1&&(Ee=2-Ee);let ge=(t+1)/Ot*o;zt.push(0,0,0,0,c(me),f(me),de,de,c(ge),f(ge),Ee,Ee),Vt.push(c(me),f(me),de,de,c(ge),f(ge),Ee,Ee,.8*c(ge),.8*f(ge),Ee,Ee,c(me),f(me),de,de,.8*c(ge),.8*f(ge),Ee,Ee,.8*c(me),.8*f(me),de,de)}let Xt=n(zt),qt=n(Vt);const Yt=I();d.bindBuffer(P,Yt);const jt=n([-1,-1,-1,1,1,-1,1,1,-1,1,1,-1]);d.bufferData(P,jt,B);const Jt=I();d.bindBuffer(P,Jt),d.bufferData(P,jt,B);const Kt=I();d.bindBuffer(P,Kt),d.bufferData(P,n([0,0,0,1,1,0,1,1,0,1,1,0]),B),X=[],q=[],W=[];let Qt=n(X),Zt=n(q),$t=n(W),te=0,ee=[];d.clearColor(1,1,1,1),d.clear(w),d.enable(d.BLEND),d.blendFuncSeparate(G,M,L,M);let re=0,ae=15e4,ie=0,ne=.1+Y()*Y()*.1,oe=0,ce=0,fe=20+30*Y();for(t=0;t<fe;++t){let _e=1.6*(Y()-.5),ye=(Y()-.5)*(2*bt-.4);Y()>.5&&(_e=oe,ye=ce),oe=_e,ce=ye;let De=Y()>.5?2:1,Te=.004,Re=Te,Fe=Y(),we=Y()*o,Pe=.1*(Y()-.5),Be=200+500*Y();for(r=0;r<Be;++r){let Ne=new A(_e,ye,.001,.5,Re,Y(),1);yt(_e,ye,ie),ie++,_e+=c(we)*Te*1.2,ye+=f(we)*Te*1.2,Ne.done=!0,Z?Y()>.99&&(we+=50*Pe*Y()):we+=Pe*Y(),Re*=.995,Ne.frac=Fe+1-.001*r,Ne.frac2=.041,Ne.frac4=De,ee.push(Ne)}}for(t=0;t<ae;++t){let Le=1.8*(Y()-.5),Me=(Y()-.5)*(2*bt-.2),Ge=.0021,Ue=new A(Le,Me,.11,.5,Ge,Y(),1);Ue.frac=Me/4*tt+2+Y()*ne,1==$?Ue.frac+=v(Le)/4:2==$?Ue.frac+=Le/4:3==$&&(Ue.frac+=1-Le/4),Ue.frac2=.05+.1*Y();let Se=Ge;at&&Y()>.5&&(Se*=2+u(3*Y())),Ue.s=Se,Tt(Le,Me,Se,ie-1)&&(ee.push(Ue),Ue.frac4=.9,yt(Le,Me,ie),ie++)}let le=20+40*Y();for(var r=0;r<le;++r){let Ie=[],Ce=Dt(Y()-.5,2.3*(Y()-.5));if(0==r&&(Ce=Dt(2*it-1,nt*bt)),-1==Ce)continue;Ie.push(Ce);let He=r/le;ee[Ce].frac=He,ee[Ce].frac2=.5,ee[Ce].done=!0,ae=1e3+Y()*Y()*4e3;let ze=l(Y(),3.5),Ve=(.002*Y()+5e-4)*(.1+.9*Y()),Oe=0,ke=Y()>.6?1.05+Y()*Y()*.06:1;et&&Y()>.5&&(Oe=.2+.6*Y(),ke=1);let We=Y()>.5;for(We&&(ee[Ce].fc=1),t=0;t<ae;++t){let Xe=u(l(Y(),ze)*(Ie.length-1));if(Ie[Xe],Ce=Ie[Xe],ee[Ce].x,ee[Ce].y,ee[Ce].frac,Ce=Dt(ee[Ce].x,ee[Ce].y,Ce),-1==Ce)break;ee[Ce].x,ee[Ce].y,Y()>Oe&&(ee[Ce].frac=(He+3-t*Ve)%1),ee[Ce].frac2=.8,ee[Ce].frac4=ke,ee[Ce].done=!0,We&&(ee[Ce].fc=1),Ie.push(Ce)}}for(t=0;t<5e3;++t){let qe=u(Y()*ee.length);ee[qe].frac+=.05*Y()}for(t=0;t<50;++t){let Ye=1.6*(Y()-.5),je=(Y()-.5)*(2*bt-.4),Je=new A(Ye,je,.01,.5,.02+.18*Y(),Y(),1);Je.frac=je/4*tt+2+Y()*ne,Je.frac2=.015,Je.frac4=.95,ee.push(Je)}let se=!0;function ue(t){requestAnimationFrame(ue),te+=b(.001*(t-re),.0333),re=t,X=[],q=[],W=[],d.bindFramebuffer(_,H),d.viewport(0,0,O,k),d.clear(d.DEPTH_BUFFER_BIT),se&&Pt(1,1),se=!1;let e=8*xt/1e3;d.bindFramebuffer(_,V),d.viewport(0,0,O,k),d.clear(w),d.useProgram(Mt.p),d.bindTexture(R,C),d.bindBuffer(P,Yt),d.vertexAttribPointer(Mt.a.ap,2,y,!1,0,0),d.enableVertexAttribArray(Mt.a.ap),d.enableVertexAttribArray(Mt.a.at),d.bindBuffer(P,Kt),d.vertexAttribPointer(Mt.a.at,2,y,!1,0,0),d.uniform4f(Mt.u.d,.5/O,0,it,.5*nt+.5),d.uniform1f(Mt.u.b,e),d.drawArrays(g,0,6),d.bindFramebuffer(_,H),d.viewport(0,0,O,k),d.clear(w),d.bindTexture(R,z),d.uniform4f(Mt.u.d,0,.5/k,it,.5*nt+.5),d.drawArrays(g,0,6);for(let t=0;t<ee.length;++t){let e=ee[t];W.push((e.frac+.01*te)%1,e.angle,0,e.frac2),X.push(e.x,e.y,e.z,e.s),q.push(e.frac4,e.fc)}ie=X.length/4,Qt=n(X),$t=n(W),Zt=n(q),Bt(rt),d.bindFramebuffer(_,null),d.viewport(0,0,d.canvas.width,d.canvas.height),d.useProgram(Gt.p),d.bindTexture(R,C),d.enableVertexAttribArray(Gt.a.ap),d.bindBuffer(P,Yt),d.vertexAttribPointer(Gt.a.ap,2,y,!1,0,0),d.enableVertexAttribArray(Gt.a.at),d.bindBuffer(P,Kt),d.vertexAttribPointer(Gt.a.at,2,y,!1,0,0),d.disable(d.BLEND),d.drawArrays(g,0,6),d.enable(d.BLEND)}window.requestAnimationFrame(ue)}var a,i})();
When one pays homage to the _departed_, what unfolds? "Décorés" - a French word meaning "awarded" or "gilded" - delves into the realm of fleeting beings who are bestowed with the precious metals of gold and silver. Through a fortuitous yet deliberate interplay, figurative entities emerge, bearing organic characteristics that defy all sense of proportion. From extraterrestrial beings to minuscule cellular organisms, this collection encompasses both the monumental and the infinitesimal.
Since founding Art Blocks in 2020, artist Erick Calderon (a.k.a. Snowfro) has been intrigued by the idea of representing digital artwork in the physical world in the form of an ephemeral physical object with meaning, but with no inherent value. Donald Judd has long been an inspiration for Art Blocks. One aspect we admire most about Judd’s artistic practice is the elegance of design he effortlessly paired with the accessibility of materials that could be found at a hardware store. With Judd as inspiration, we hatched a plan to create a unique generative art friendship bracelet that includes instructions to make, in minutes, a simple bracelet using a few dollars’ worth of embroidery floss. Donald Judd believed that what surrounds us in our day-to-day life is already so beautiful, and that ultimately the experience of creating art is as important as owning it. Erick was incredibly excited to collaborate with renowned artist Alexis André (a.k.a. MacTuitui) to bring generative art and ephemeral physical objects together in the form of friendship bracelets. Conceptualized by Erick and aesthetically and programmatically designed by Alexis, this project pairs creative coding with a beautiful spectrum of embroidery floss colors. The project was a true team effort, as each member of the Art Blocks team designed and named their own color palette! The project is a token of our appreciation to the creators, makers, builders, and collectors who have all contributed to making the Art Blocks community what it is today. Participating in this project is a signal, both online and IRL, that you’re a participant in this evolution of art + community. You are pushing the best ideas forward. You are the reason all of these imaginative projects come to life. Our community is what makes all of this possible. So, to say it plainly, we appreciate you, and we hope that you’ll accept this bracelet as a token of our special friendship! The owner of any wallet with an Art Blocks piece at the time of snapshot (October 26, 2022, at 3pm US Central time) is eligible to claim two mints from this special generative art project. We would love to see you keep one bracelet and share your love for generative art by gifting your second mint! These mints are free to claim (you pay only the gas) and exist on L1 Ethereum. Please note that we may in the future release additional modified iterations of the Friendship Bracelets project, ideally on an L2 scaling solution, that may substantially increase the total supply of tokens related to the project, with the intent of being a more accessible entry point to a larger audience. But this version is what we're here to celebrate today, and this gift is for you in gratitude for your support along the way. Please enjoy this token of our friendship and explore the wonderful artwork created by Alexis André. Then, let's all make bracelets together! Warmly, Alexis + Erick + the Art Blocks team The claim window expires on January 10, 2023, at noon US Central time. Click into the Display Notes for information about making your bracelet.
let vi=1;for(let gi=0;gi<xr.length;++gi){let Ti=Jr-xr[gi][0],yi=Kr-xr[gi][1],mi=s(Ti*Ti+yi*yi)-Dr+.1*re();mi<vi&&(vi=mi)}for(let xi=0;xi<gr.length;++xi)for(let Ai=0;Ai<gr[xi].length;Ai+=5){let ki=gr[xi][Ai][0]-Jr,Si=gr[xi][Ai][1]-Kr,Di=s(ki*ki+Si*Si)-Er;Di<vi&&(vi=Di)}if(!(vi>.007)){Zr=!1;break}Xr.unshift([Jr,Kr,-di[1]/pi,di[0]/pi])}}(Zr||Xr.length>10)&&(gr.push(Xr),Tr.push(1+h(4*f(re(),2))),yr.push(Qr))}}else if(0==be){let Ei=20,Pi=he?.02:.01;if(me){let wi=!1;for(let Bi=0;Bi<Ei||0==wi;++Bi){let Ri=(re()-.5)*ge,Li=(re()-.5)*ve,Ni=h(4*re()),Ci=Ri,Fi=Li;for(;(Ri-Ci)*(Ri-Ci)+(Li-Fi)*(Li-Fi)<.4;)Ci=2*(re()-.5),Fi=2*(re()-.5);let _i=s((Ri-Ci)*(Ri-Ci)+(Li-Fi)*(Li-Fi)),Ii=h(40*re())+3,Gi=h(3*re())+1;for(let Mi=0;Mi<Ii;Mi+=Gi){let Ui=Mi/(Ii-1),Vi=Ri+(Ci-Ri)*Ui,Oi=Li+(Fi-Li)*Ui,Wi=_i/Ii*.5;for(let zi=0;zi<xr.length;++zi){let Hi=Vi-xr[zi][0],Yi=Oi-xr[zi][1],qi=s(Hi*Hi+Yi*Yi)-Dr;qi<Wi&&(Wi=qi)}if(Wi>0){for(let Xi=0;Xi<mr.length;++Xi){let ji=mr[Xi][0]-Vi,Ji=mr[Xi][1]-Oi,Ki=mr[Xi][2],Qi=s(ji*ji+Ji*Ji)-Ki;if(Ki>.1&&Qi<.3*-Ki)u(Qi+.3*Ki)<Wi&&(Wi=u(Qi+.3*Ki));else{if(!(Qi>0)){Wi=0;break}if(u(Qi)<Wi){Wi=u(Qi),Wi=0;break}}}if(y.n3(Vi,Oi,.654)<0)continue;if(Wi>Pi){wi=!0;let Zi=10+h(10*re()),$i=re()>.1?100:h(3*re())+3;if(mr.push([Vi,Oi,Wi,Zi,0,Ni,$i]),Wi<10*Pi&&re()>pe){let el=new T(Vi,Oi,0,re(),c(.3*Wi,.01),0,0);ee.push(el)}Wi>10*Pi&&re()>.5&&(re()>.5?mr.push([Vi,Oi,.5*Wi,h(Zi/2)+1,0,Ni,$i]):(mr.push([Vi,Oi,.6*Wi,h(Zi/2)+1,0,Ni,$i]),mr.push([Vi,Oi,.3*Wi,h(Zi/2)+1,0,Ni,$i])))}}}}}Ei=1e5;for(let tl=0;tl<Ei;++tl){let rl=(re()-.5)*ge,il=(re()-.5)*ve;Le&&(rl=(h(50*re())/50-.5)*ge,il=(h(50*re())/50-.5)*ve);let ll=kr(rl,il,ze);rl=ll[0],il=ll[1];let nl=Sr(rl,il,We);rl=nl[0],il=nl[1];let al=f(rl*rl+il*il,.2);Pe&&(al=0);let ol=c(.3*re()+.1,de*(1-.8*al));ye&&(ol=.2*(.5*y.n3(rl*r*3,il*r*3,2.5)+.5)*de+.01);let fl=.11;for(let sl=0;sl<xr.length;++sl){let hl=rl-xr[sl][0],ul=il-xr[sl][1],cl=s(hl*hl+ul*ul)-Dr;cl<ol&&(ol=cl,fl=cl)}if(ol>0){for(let bl=0;bl<mr.length;++bl){let dl=mr[bl][0]-rl,pl=mr[bl][1]-il,vl=mr[bl][2],gl=s(dl*dl+pl*pl)-vl;if(vl>.1&&gl<.3*-vl)u(gl+.3*vl)<ol&&(ol=u(gl+.3*vl));else{if(!(gl>0)){ol=0;break}if(u(gl)<ol&&(ol=u(gl),ye)){ol=0;break}}}if(y.n3(rl,il,.654)<0&&fl>.1){if(re()>.99&&ol>.02){let Tl=.001,yl=new T(rl,il,-.01,re(),Tl,0);pr.push(yl)}continue}if(ol>Pi){let ml=10+h(10*re()),xl=h(4*(y.n3(rl*r*.1,il*r*5.1,2.54)+1));Te&&(xl=h(15*wr(rl,il)));let Al=re()>.1?100:h(3*re())+3;if(mr.push([rl,il,ol,ml,0,xl,Al]),ol<10*Pi&&re()>pe){let kl=new T(rl,il,0,re(),c(.3*ol,.01),0,0);Ae&&(kl.s*=2.5),ee.push(kl)}ol>10*Pi&&re()>.5&&(re()>.5?mr.push([rl,il,.5*ol,h(ml/2)+1,0,xl,Al]):(mr.push([rl,il,.6*ol,h(ml/2)+1,0,xl,Al]),mr.push([rl,il,.3*ol,h(ml/2)+1,0,xl,Al])))}}}}let Pr=500;for(let Sl=0;Sl<Pr;++Sl){let Dl=2*(re()-.5),El=2*(re()-.5),Pl=.5*re()+.01,wl=new T(Dl,El,-.005,re(),Pl,0);wl.frac2=Ne?.02:.05,pr.push(wl)}Pr=100+4e3*re();for(let Bl=0;Bl<Pr;++Bl){let Rl=2*(re()-.5),Ll=2*(re()-.5);if(y.n3(Rl,Ll,.654)<0){let Nl=.001,Cl=new T(Rl,Ll,-.01,re(),Nl,0);pr.push(Cl)}}function wr(e,t){let r=5;for(let i=0;i<xr.length;++i){let l=e-xr[i][0],n=t-xr[i][1],a=s(l*l+n*n)-.1;a<r&&(r=a)}return r}function Br(e,t,i=5.87){let l=Math.atan2(t,e),n=s(e*e+t*t),f=wr(e,t),h=wr(e+.001,t)-f,u=wr(e,t+.001)-f,c=s(h*h+u*u)*Ee*(1+20*f),b=.6*y.n3(e*r,t*r,i),d=.6*y.n3(e*r,t*r,-i);return Se&&(b*=5),De&&(d*=5),ke&&(b+=-o(l)/(1+n)+.2*a(l),d+=a(l)/(1+n)+.2*o(l)),Pe?[b+u/c,d-h/c]:[b-h/c,d-u/c]}function Rr(e){let t=e*n,i=a(l/ce)/a(t%(n/ce)-l/ce),f=a(ae*t)*i,s=o(oe*t)*i;f+=y.n3(a(t)*r,o(t)*r,.57)*fe*1,s+=y.n3(a(t)*r,o(t)*r,1.57)*fe*1,0!=se&&(f*=e*(1-e)*4,f+=5*(-.5+e));let h=Sr(f,s,Oe);return[.6*h[0],.6*h[1]]}function Lr(e,t,r,i,h){let c=Nr(e),d=Nr(e+.01),p=e*n*t+r+.5*l/4,v=a(p)*h,g=o(p)*h,T=c[0]+c[2]*v,y=c[1]+c[3]*v,m=100*(d[0]+d[2]*v-T),x=100*(d[1]+d[3]*v-y),A=s(m*m+x*x);return[T,y,g-.02*f(b(u(T),u(y)),3.8),-x/A,m/A]}function Nr(e){let t=Rr(e),r=Rr(e+.01),i=100*(r[0]-t[0]),l=100*(r[1]-t[1]),n=s(i*i+l*l);return[t[0],t[1],-l/n,i/n]}function Cr(e,t,r,i){let s=gr[r].length,h=(8*s+2)*(1+1*a(.001*dr+y.n3(r,.5,952.5)));for(let u=0;u<t;++u){let b=u/t*n+1*dr,d=[],p=(u+i)%t;for(let i=0;i<s;++i){let u=i/(s-1),v=f(u*(1-u)*4,.8)*e*c(1,s/20)*t/4,g=gr[r][i],T=u*n*h+b+.5*l/t,y=a(T)*v,m=o(T)*v,x=g[0]+g[2]*y,A=g[1]+g[3]*y;d.push(x,A,m,p)}at(d,r%3?.001:.002)}}function Fr(e){for(let t=0;t<e.length;++t)D.fillText(e[t],.5*Ye,(.62+.04*t)*qe)}function _r(e,t,r,i){D.strokeStyle="rgba(0,0,0,1)",D.lineWidth=Ke,D.beginPath(),D.moveTo(e+.2*r,t),D.lineTo(e,t+2*i),D.lineTo(e-r,t+3*i),D.lineTo(e-.7*r,t+3.7*i),D.lineTo(e,t+3*i),D.lineTo(e,t+5.7*i),D.lineTo(e+.5*r,t+5.7*i),D.lineTo(e+.5*r,t+3.2*i),D.moveTo(e+.5*r,t+5*i),D.lineTo(e+r,t+5*i),D.lineTo(e+r,t+3.5*i),D.moveTo(e+r,t+4.7*i),D.lineTo(e+1.5*r,t+4.7*i),D.lineTo(e+1.5*r,t+3.2*i),D.moveTo(e+1.5*r,t+4.3*i),D.lineTo(e+2*r,t+4.3*i),D.lineTo(e+2*r,t+2*i),D.lineTo(e+1.5*r,t+i),D.lineTo(e+1.5*r,t),D.stroke()}function Ir(e){if(requestAnimationFrame(Ir),D.clearRect(0,0,S.width,S.height),dr+=c(.001*(e-vr),.0333),vr=e,Z=[],$=[],Q=[],-1==Ge){for(let e=0;e<pr.length;++e){let t=pr[e];Q.push(t.frac,t.angle,0,t.frac2),Z.push(t.x,t.y,t.z,t.s),$.push(t.frac4)}for(let e=0;e<ee.length;++e){let t=ee[e],r=t.life/8;Q.push(t.frac%1,t.angle,t.range,t.frac2),Z.push(t.x,t.y,t.z,t.s*r),$.push(t.frac3),t.active&&(ee[e].life-=1)}}hr=Z.length/4,ee=ee.filter((e=>e.life>0));{E.bindFramebuffer(B,q),E.viewport(0,0,J,K);let e=Ge>=0?1:Ne?.1:.3;E.clear(E.DEPTH_BUFFER_BIT),Fe=-1!=Ge,nt(e,Ge>=0?1:.92)}{let e=-1!=Ge?0:8*$e/1e3;E.bindFramebuffer(B,j),E.viewport(0,0,J,K),E.clear(_),E.useProgram(mt),E.bindTexture(C,Y),E.bindBuffer(I,ar),E.vertexAttribPointer(Ct,2,R,!1,0,0),E.enableVertexAttribArray(Ct),E.enableVertexAttribArray(Ft),E.bindBuffer(I,sr),E.vertexAttribPointer(Ft,2,R,!1,0,0),E.uniform2f(_t,.5/J,0),E.uniform1f(It,e),E.drawArrays(w,0,6),E.bindFramebuffer(B,q),E.viewport(0,0,J,K),E.clear(_),E.bindTexture(C,X),E.uniform2f(_t,0,.5/K),E.drawArrays(w,0,6)}if(-1==Ge){let e=[],t=(h($e/200*(ae+oe)*ne),he?.015:.01);if(1==be)for(let e=0;e<gr.length;++e)Cr(t,Tr[e],e,yr[e]);else if(0==be)for(let e=0;e<mr.length;++e){let i=mr[e][0],l=mr[e][1],s=mr[e][5],b=.85*mr[e][2],d=h(2e3*b)+1,p=mr[e][3];mr[e][5],mr[e][4]+=.1*y.n3(i*r*5,l*r*5,e-.1*dr);let v=c(4,h(40*b)+1);for(let r=0;r<v;++r){let h=[],c=r/v*n+mr[e][4];for(let e=0;e<d;++e){let v=e/(d-1),g=v*n,T=i+a(g)*b,y=l+o(g)*b,m=a(g),x=-o(g),A=(f(u(v*(1-v)*4),.8),10*b*t),k=v*n*p+c,S=a(k)*A,D=o(k)*A;T+=-m*S,y+=x*S,h.push(T,y,D,(s+r)%4)}at(h,e%3?.001:.002)}}t=ue?.06:.04;for(let r=0;r<4;++r){let i=r/4,s=i*n+1*dr;for(let h=0;h<4;++h){let c=h/4*n+1*dr;e=[];let d=$e/10*(ae+oe)*ne,p=4*(ae+oe);for(let h=0;h<d;++h){let v=h/(d-1),g=1.5*t*(.8+.2*a(v*n+.1*dr)),y=Lr(1*v,p,c,0,g);g*=.3;let m=v*n*p*5+s+.5*l/4,x=a(m)*g,A=o(m)*g,k=y[0]+y[3]*x,S=y[1]+y[4]*x,D=f(b(u(k),u(S)),3.8),E=y[2]+A-.02*D;if(e.push(k,S,E,r),3==r&&re()<.08){let e=new T(k+.001*(re()-.5),S+.001*(re()-.5),-.01,i,.003,0,0,!0);e.life=8,e.frac3=850,ee.push(e)}}at(e,.001)}}}else{let e=dr-t,r=200,i=30;switch(D.font=Je+"px sans-serif",D.textAlign="center",D.textBaseline="middle",Ge){case 0:{let t=.15,r=d(c(1,e/2));D.fillStyle="black";for(let i=0;i<4;++i){let l=[],n=(i+1)/5,a=1.2*(1-r)+r*(2*n-1);l.push(-1,a,0,i),l.push(1,a,0,i),at(l,t),e>2&&D.fillText(A.name[i],.5*Ye,(1-n+.1)*qe)}e>2&&(D.fillText("INSTRUCTIONS (Step 1 of 10)",.5*Ye,.05*qe),D.fillText("Gather the following threads:",.5*Ye,.1*qe))}break;case 1:{let t=d(c(1,e/2)),r=.15*(1-t)+.01*t;if(e<2)for(let e=0;e<4;++e){let i=[],l=(e+1)/5,n=(1-t)*(2*l-1)+t*(.1*(2*l-1)+.05);i.push(-1,n,0,e),i.push(1,n,0,e),at(i,r)}else if(e>=2){let t=d(c(1,(e-2)/2));for(let e=0;e<4;++e){let i=[],l=.1*((e+1)/5*2-1)+.05;i.push(-.8,l,0,e),i.push(.8,l,0,e),at(i,r),i=[],i.push(-1.2,l,0,e),i.push(-.8-.2*t,l,0,e),at(i,r),i=[],i.push(.8+.2*t,l,0,e),i.push(1.2,l,0,e),at(i,r)}D.beginPath(),D.moveTo(.1*Ye,.4*qe),D.lineTo(.1*Ye,.55*qe),D.moveTo(.9*Ye,.4*qe),D.lineTo(.9*Ye,.55*qe),D.moveTo(.11*Ye,.55*qe),D.lineTo(.89*Ye,.55*qe),D.moveTo(.12*Ye,.54*qe),D.lineTo(.11*Ye,.55*qe),D.lineTo(.12*Ye,.56*qe),D.moveTo(.88*Ye,.54*qe),D.lineTo(.89*Ye,.55*qe),D.lineTo(.88*Ye,.56*qe),D.strokeStyle="rgba(0,0,0,"+t+")",D.lineWidth=Ke,D.stroke(),D.beginPath(),D.moveTo((.1-.01)*Ye,.57*qe),D.lineTo(.11*Ye,.6*qe),D.arc((.1+.02/3)*Ye,.59475*qe,.005*Ye,l/3,2*-l/3,!0),D.moveTo(.11*Ye,.57*qe),D.lineTo((.1-.01)*Ye,.6*qe),D.arc((.1-.02/3)*Ye,.59475*qe,.005*Ye,2*l/3,-l/3),D.moveTo(.89*Ye,.57*qe),D.lineTo(.91*Ye,.6*qe),D.arc((.9+.02/3)*Ye,.59475*qe,.005*Ye,l/3,2*-l/3,!0),D.moveTo(.91*Ye,.57*qe),D.lineTo(.89*Ye,.6*qe),D.arc((.9-.02/3)*Ye,.59475*qe,.005*Ye,2*l/3,-l/3),D.stroke(),D.strokeStyle="none",D.fillStyle="rgba(0,0,0,"+t+")",D.fillText("INSTRUCTIONS (Step 2 of 10)",.5*Ye,.05*qe),D.fillText("Cut the four strands at the desired length for your bracelet.",.5*Ye,.66*qe),D.fillText("Small: 105 cm / 42 inches",.5*Ye,.7*qe),D.fillText("Large: 120 cm / 48 inches",.5*Ye,.74*qe)}}break;case 2:let h=d(c(1,e/2));1==h&&(Ge+=1,t=dr);let u=.01*(1-h)+.005*h;for(let e=0;e<4;++e){let t=[],r=(.1*(2*((e+1)/5)-1)+.05)*(1-h)+.2*a(e/4*n+.125*l)*h;t.push(-.8-.1*h,r,0,e),t.push(.8+.1*h,r,0,e),at(t,u),t=[]}break;case 3:{let t=d(c(1,e/8)),s=(f(t,.25),f(t,2.5)),h=.005*(1-t)+.003*t;for(let e=0;e<4;++e){let f=[],s=e/4*n;for(let h=0;h<3*r;++h){let u=h/(3*r),c=t,b=u*(1.8*(1-t)+1.6*t)-.9,d=a(u*n*i*c+s+.125*l)*(.2*(1-t)+.01*t),p=.01*o(u*n*i*c+s+.125*l)*t;f.push(b,d,p,e)}at(f,h,!0)}let u=.85*Ye+.05*qe*a(.05*n),b=.5*qe+.05*qe*o(.05*n);D.strokeStyle="rgba(0,0,0,"+s+")",D.lineWidth=Ke,D.beginPath(),D.arc(.85*Ye,.5*qe,.05*qe,.05*n,.95*n,!1),D.moveTo(u-.01*qe,b),D.lineTo(u,b),D.lineTo(u+.005*qe,b+.01*qe),D.stroke(),D.strokeStyle="none",D.fillStyle="rgba(0,0,0,"+t+")",D.fillText("INSTRUCTIONS (Step 3 of 10)",.5*Ye,.05*qe),Fr(["","Secure one end of the bracelet, either by taping it","to a hard surface or by having a friend hold one end.","Twist the other end until the entire length is","twisted very tightly (until it starts to kink)."])}break;case 4:{let t=d(c(1,e/3)),r=.003,f=t*l*.99,s=t*l*.01;for(let e=0;e<4;++e){let t=[],h=e/4*n+.125*l;for(let r=0;r<300;++r){let l=r/600,f=1.6*l-.9-.1,u=.01*a(l*n*i+h),c=f*a(s)+u*o(s)+.1,b=-f*o(s)+u*a(s),d=.01*o(l*n*i+h);t.push(c,b,d,e)}for(let r=0;r<300;++r){let l=(r+300)/600,s=1.6*l-.9+.1,u=.01*a(l*n*i+h),c=s*a(f)+u*o(f)-.1,b=-s*o(f)+u*a(f),d=.01*o(l*n*i+h);t.push(c,b,d,e)}at(t,r,!0)}_r(.445*Ye,.4*qe-.02*(1-t)*qe,.015*Ye,.015*qe),D.strokeStyle="none",D.fillStyle="rgba(0,0,0,"+t+")",D.fillText("INSTRUCTIONS (Step 4 of 10)",.5*Ye,.05*qe),Fr(["Place a finger in the middle. Fold in half over","your finger, bringing the two ends together while","maintaining tension in the bracelet."])}break;case 5:{d(c(1,e/3));let r=c(1,e/4),f=d(r),s=b(0,c(1,(e-4)/2));1==f&&(f+=s*y.n3(.654,.654,4*e)*.02),1==s&&(Ge+=1,t=dr);let h=.003,u=.99*l,p=.01*l;for(let e=0;e<4;++e){let t=[],r=e/4*n+.125*l;for(let l=0;l<300;++l){let s=l/600,h=1.6*s-.9-.1,u=.01*a(s*n*i+r),c=h*a(p)+u*o(p)+.1,b=-h*o(p)+u*a(p);b*=a(s*n*2*f);let d=.01*o(s*n*i+r);t.push(c,b,d,e)}for(let l=0;l<300;++l){let s=(l+300)/600,h=1.6*s-.9+.1,c=.01*a(s*n*i+r),b=h*a(u)+c*o(u)-.1,d=-h*o(u)+c*a(u);d*=a((1-s)*n*2*f);let p=.01*o(s*n*i+r);t.push(b,d,p,e)}at(t,h,!0)}let v=.05*n*f+.95*(1-f)*n,g=.45*Ye+.05*qe*a(v),T=.5*qe+.05*qe*o(v),m=a(v+1*l/4+l/2),x=o(v+1*l/4+l/2),A=a(v-1*l/4+l/2),k=o(v-1*l/4+l/2);D.strokeStyle="rgba(0,0,0,1)",D.lineWidth=Ke,D.beginPath(),D.arc(.45*Ye,.5*qe,.05*qe,v,.95*n,!1),D.moveTo(g+.01*m*Ye,T+.01*x*qe),D.lineTo(g,T),D.lineTo(g+.01*A*Ye,T+.01*k*qe),D.stroke(),D.strokeStyle="none",D.fillStyle="rgba(0,0,0,1.0)",D.fillText("INSTRUCTIONS (Step 5 of 10)",.5*Ye,.05*qe),Fr(["While holding the two end pieces in one hand,","release the center so that the bracelet can","spring into shape. You may need to hold it","upright and smooth it to remove any kinks."])}break;case 6:{let t=d(c(1,b(0,(e-2)/3))),r=d(c(1,e/.5)),s=.003,h=5,u=.01*(1+t),p=.02*(1+.5*t);for(let e=0;e<2;++e){let c=e*l;for(let e=0;e<4;++e){let l=[],b=e/4*n;for(let r=0;r<600;++r){let s=r/600,d=s*(.8*(1-t)+1.8*t)-.9,v=f((1-s)*s*4,.2)*(a(s*n*i+b)*u+a(s*n*h+c)*p),g=o(s*n*i+b)*u+o(s*n*h+c)*p;l.push(d,v,g,e)}at(l,s,!0,r)}}D.strokeStyle="none",D.fillStyle="rgba(0,0,0,1.0)",D.fillText("INSTRUCTIONS (Step 5 of 10)",.5*Ye,.05*qe),Fr(["While holding the two end pieces in one hand,","release the center so that the bracelet can","spring into shape. You may need to hold it","upright and smooth it to remove any kinks."])}break;case 7:{let t=d(c(1,e/3)),r=c(1,e/4),s=d(r),h=.003,u=5,b=.02,p=.03;for(let e=0;e<2;++e){let t=e*l;for(let e=0;e<4;++e){let r=[],l=e/4*n;for(let h=0;h<600;++h){let c=h/600,d=1.8*c-.9,v=f((1-c)*c*4,.2)*(a(c*n*i+l)*b+a(c*n*u+t)*p)*a(c*n*6*s),g=o(c*n*i+l)*b+o(c*n*u+t)*p;r.push(d,v,g,e)}at(r,h,!0)}}D.strokeStyle="none",D.fillStyle="rgba(0,0,0,"+t+")",D.fillText("INSTRUCTIONS (Step 6 of 10)",.5*Ye,.05*qe),Fr(["While holding the two end pieces in one hand,","use your other hand to twist the bracelet","in the opposite direction.","","Twist until the entire length is twisted","very tightly (until it starts to kink)."])}break;case 8:{let t=d(c(1,e/3)),r=.003,s=5,h=.02*(1-.5*t),u=.03*(1-t/3),b=t*l*.99,p=t*l*.01;for(let e=0;e<2;++e){let t=e*l;for(let e=0;e<4;++e){let l=[],c=e/4*n;for(let r=0;r<300;++r){let b=r/600,d=1.8*b-.9,v=f((1-b)*b*4,.2)*(a(b*n*i+c)*h+a(b*n*s+t)*u);v*=a(b*n*6);let g=d*a(p)+v*o(p),T=-d*o(p)+v*a(p),y=o(b*n*i+c)*h+o(b*n*s+t)*u;l.push(g,T,y,e)}for(let r=0;r<300;++r){let d=(r+300)/600,p=1.8*d-.9,v=f((1-d)*d*4,.2)*(a(d*n*i+c)*h+a(d*n*s+t)*u);v*=a(d*n*6);let g=p*a(b)+v*o(b),T=-p*o(b)+v*a(b),y=o(d*n*i+c)*h+o(d*n*s+t)*u;l.push(g,T,y,e)}at(l,r,!0)}}_r(.495*Ye,.4*qe-.02*(1-t)*qe,.015*Ye,.015*qe),D.strokeStyle="none",D.fillStyle="rgba(0,0,0,"+t+")",D.fillText("INSTRUCTIONS (Step 7 of 10)",.5*Ye,.05*qe),Fr(["Place a finger in the middle. Fold in half over","your finger, bringing the two ends together while","maintaining tension in the bracelet."])}break;case 9:{d(c(1,e/3));let r=c(1,e/4),s=d(r),h=b(0,c(1,(e-4)/2));1==s&&(s+=h*y.n3(.654,.654,4*e)*.02),1==h&&(Ge+=1,t=dr);let u=.003,p=5,v=.01,g=.02,T=.99*l,m=.01*l;for(let e=0;e<2;++e){let t=e*l;for(let e=0;e<4;++e){let r=[],l=e/4*n;for(let h=0;h<300;++h){let u=h/600,c=1.8*u-.9,b=f((1-u)*u*4,.2)*(a(u*n*i+l)*v+a(u*n*p+t)*g);b*=a(u*n*6);let d=c*a(m)+b*o(m),T=-c*o(m)+b*a(m);T*=a(u*n*2*s);let y=o(u*n*i+l)*v+o(u*n*p+t)*g;r.push(d,T,y,e)}for(let h=0;h<300;++h){let u=(h+300)/600,c=1.8*u-.9,b=f((1-u)*u*4,.2)*(a(u*n*i+l)*v+a(u*n*p+t)*g);b*=a(u*n*6);let d=c*a(T)+b*o(T),y=-c*o(T)+b*a(T);y*=a((1-u)*n*2*s);let m=o(u*n*i+l)*v+o(u*n*p+t)*g;r.push(d,y,m,e)}at(r,u,!0)}}let x=.05*n*s+.95*(1-s)*n,A=.5*Ye+.05*qe*a(x),k=.5*qe+.05*qe*o(x),S=a(x+1*l/4+l/2),E=o(x+1*l/4+l/2),P=a(x-1*l/4+l/2),w=o(x-1*l/4+l/2);D.strokeStyle="rgba(0,0,0,1)",D.lineWidth=Ke,D.beginPath(),D.arc(.5*Ye,.5*qe,.05*qe,x,.95*n,!1),D.moveTo(A+.01*S*Ye,k+.01*E*qe),D.lineTo(A,k),D.lineTo(A+.01*P*Ye,k+.01*w*qe),D.stroke(),D.strokeStyle="none",D.fillStyle="rgba(0,0,0,1.0)",D.fillText("INSTRUCTIONS (Step 8 of 10)",.5*Ye,.05*qe),Fr(["While holding the two end pieces in one hand,","release the center so that the bracelet can","spring into shape. You may need to hold it","upright and smooth it to remove any kinks."])}break;case 10:{let t=d(c(1,b(0,(e-2)/3))),r=d(c(1,e/.5)),s=.0015,h=3,u=.015*(1+t),p=.03*(1+.5*t);for(let e=0;e<4;++e){let c=e*l*.5;for(let e=0;e<4;++e){let l=[],b=e/4*n;for(let r=0;r<600;++r){let s=r/600,d=s*(.8*(1-t)+1.8*t)-.9,v=f((1-s)*s*4,.2)*(a(s*n*i+b)*u+a(s*n*h+c)*p),g=o(s*n*i+b)*u+o(s*n*h+c)*p;l.push(d,v,g,e)}at(l,s,!0,r)}}D.strokeStyle="none",D.fillStyle="rgba(0,0,0,1.0)",D.fillText("INSTRUCTIONS (Step 8 of 10)",.5*Ye,.05*qe),Fr(["While holding the two end pieces in one hand,","release the center so that the bracelet can","spring into shape. You may need to hold it","upright and smooth it to remove any kinks."])}break;case 11:if(d(c(1,e/2)),e>2){let t=d(c(1,(e-2)/2)),i=d(c(1,b(0,(e-4)/2))),l=.8-.5*i,n=200-300*t;for(let e=0;e<8;++e){let t=[],a=.05*((e+1)/9*2-1);for(let o=n;o<r+1;++o){let n=o/r*4-2,s=f(n,3)-3*n,h=f(n,4)-4*n*n+2,u=.2*f(n,5)-2*n,c=o/r*5-2,b=0,d=0,p=f(o/r,10),v=f(o/r,2);s=s*(1-p)+c*p,h=h*(1-v)+b*v,u=u*(1-p)+d*p,t.push(.1*s*l-.8*(1-i)-.67*i,.05*-h*l+a*l,.1*u,e%4)}at(t,.005,!1)}}{let t=d(c(1,b(0,e/2))),r=(d(c(1,e/.5)),.0015),s=3,h=.03,u=.045;for(let e=0;e<4;++e){let c=e*l*.5;for(let e=0;e<4;++e){let l=[],b=e/4*n;for(let r=0;r<600;++r){let d=r/600,p=-.9*(1-t)-.6*t+d*(1.8*(1-t)+1.4*t),v=f((1-d)*d*4,.2)*(a(d*n*i+b)*h+a(d*n*s+c)*u),g=o(d*n*i+b)*h+o(d*n*s+c)*u;l.push(p,v,g,e)}at(l,r,!0)}}}D.strokeStyle="none",D.fillStyle="rgba(0,0,0,1.0)",D.fillText("INSTRUCTIONS (Step 9 of 10)",.5*Ye,.05*qe),Fr(["Tie a double knot in the cut end."]);break;case 12:{d(c(1,e/2));let t=.3,i=-100;for(let e=0;e<8;++e){let l=[],n=.05*((e+1)/9*2-1);for(let a=i;a<r+1;++a){let i=a/r*4-2,o=f(i,3)-3*i,s=f(i,4)-4*i*i+2,h=.2*f(i,5)-2*i,u=a/r*5-2,c=0,b=0,d=f(a/r,10),p=f(a/r,2);o=o*(1-d)+u*d,s=s*(1-p)+c*p,h=h*(1-d)+b*d,l.push(.1*o*t-.67,.05*-s*t+n*t,.1*h,e%4)}at(l,.005,!1)}}{let t=d(c(1,b(0,e/2))),r=(d(c(1,e/.5)),.0015),h=3,u=.03,p=.045;for(let e=0;e<4;++e){let t=e*l*.5;for(let e=0;e<4;++e){let l=[],s=e/4*n;for(let r=0;r<600;++r){let c=r/600,b=1.4*c-.6,d=f((1-c)*c*4,.2)*(a(c*n*i+s)*u+a(c*n*h+t)*p),v=o(c*n*i+s)*u+o(c*n*h+t)*p;l.push(b,d,v,e)}at(l,r,!0)}}D.strokeStyle="rgba(0,0,0,1)",D.lineWidth=Ke,D.beginPath(),D.arc(.52*Ye,.5*qe,.35*qe,-.97*l,-.05*l,!1);let v=.52*Ye+.35*qe*a(-.05*l),g=.5*qe+.35*qe*o(-.05*l);D.moveTo(v-.02*Ye,g-.02*qe),D.lineTo(v,g),D.lineTo(v+.013*Ye,g-.022*qe),D.stroke(),D.beginPath(),D.arc(.5*Ye,.3*qe,.12*qe,0,n),D.stroke(),D.beginPath(),D.arc(.45*Ye,.32*qe,.13*qe,.45*-l,.05*-l),D.stroke(),v=.45*Ye+.13*qe*a(-.05*l),g=.32*qe+.13*qe*o(-.05*l),D.beginPath(),D.moveTo(v-.015*Ye,g-.015*qe),D.lineTo(v,g),D.lineTo(v+.008*Ye,g-.018*qe),D.stroke();let T=25;for(let e=0;e<4;++e){let t=[],i=e/4*n;for(let r=0;r<600;++r){let f=r/600,h=(r+1)/600,u=o(l*f)-.5,c=a(3*l*f)*f*(1-f),b=o(l*h)-.5-u,d=a(3*l*h)*h*(1-h)-c,v=s(b*b+d*d),g=f*n*T,y=a(g+i)*p*.5;u+=-d/v*y,c+=b/v*y;let m=o(g+i)*p*.5;t.push(.45*u-.01,.45*c+.4,m,e)}at(t,r,!0)}D.strokeStyle="none",D.fillStyle="rgba(0,0,0,"+t+")",D.fillText("INSTRUCTIONS (Step 10 of 10)",.5*Ye,.05*qe),Fr(["Create a small loop in the unknotted end","by pushing your finger through.","Wrap the bracelet around your wrist.","","Push the knotted end through the small loop you created.","Adjust the tightness of the bracelet as desired."])}}}ur=i(Z),br=i(Q),cr=i($),E.clear(E.DEPTH_BUFFER_BIT),E.enable(E.DEPTH_TEST),E.useProgram(gt),E.bindBuffer(I,Xt),E.bufferData(I,nr,M),E.enableVertexAttribArray(At),E.vertexAttribPointer(At,4,R,!1,0,0),E.bindBuffer(I,jt),E.bufferData(I,br,M),E.enableVertexAttribArray(kt),E.vertexAttribPointer(kt,4,R,!1,0,0),P.vertexAttribDivisorANGLE(kt,1),E.bindBuffer(I,Jt),E.bufferData(I,ur,M),E.enableVertexAttribArray(St),E.vertexAttribPointer(St,4,R,!1,0,0),P.vertexAttribDivisorANGLE(St,1),E.bindBuffer(I,Kt),E.bufferData(I,cr,M),E.enableVertexAttribArray(Dt),E.vertexAttribPointer(Dt,1,R,!1,0,0),P.vertexAttribDivisorANGLE(Dt,1),E.uniform4fv(Pt,He),E.uniform2f(Et,et/$e,tt/$e),P.drawArraysInstancedANGLE(w,0,lr,hr),P.vertexAttribDivisorANGLE(kt,0),P.vertexAttribDivisorANGLE(St,0),P.vertexAttribDivisorANGLE(Dt,0),E.bindFramebuffer(B,null),E.viewport(0,0,E.canvas.width,E.canvas.height),E.useProgram(xt),E.bindTexture(C,Y),E.enableVertexAttribArray(Yt),E.bindBuffer(I,ar),E.vertexAttribPointer(Yt,2,R,!1,0,0),E.enableVertexAttribArray(qt),E.bindBuffer(I,sr),E.vertexAttribPointer(qt,2,R,!1,0,0),E.disable(E.BLEND),E.drawArrays(w,0,6),E.enable(E.BLEND)}document.body.style.backgroundColor="#000",window.requestAnimationFrame(Ir)}})();
(()=>{"use strict";{const i=e=>new Float32Array(e),l=Math.PI,n=2*l,a=Math.cos,o=Math.sin,f=Math.pow,s=Math.sqrt,h=Math.floor,u=(Math.ceil,Math.abs),c=Math.min,b=Math.max,d=e=>e*e*(3-2*e),p=1/3,v=1/6,g=new Float32Array([1,1,0,-1,1,0,1,-1,0,-1,-1,0,1,0,1,-1,0,1,1,0,-1,-1,0,-1,0,1,1,0,-1,1,0,1,-1,0,-1,-1]);class T{constructor(e,t,r,i,l,n,a,o=!1){this.x=e,this.y=t,this.z=r,this.life=8,this.frac=i,this.s=l,this.angle=n,this.range=a,this.frac2=1,this.frac3=1,this.frac4=1,this.active=o}}const y={init(e){this.r=this.alea(e),this.p=this.bp(this.r),this.perm=new Uint8Array(512),this.p12=new Uint8Array(512);for(var t=0;t<512;t++)this.perm[t]=this.p[255&t],this.p12[t]=this.perm[t]%12},bp(e){var t,r=new Uint8Array(256);for(t=0;t<256;t++)r[t]=t;for(t=0;t<255;t++){var i=t+~~(e()*(256-t)),l=r[t];r[t]=r[i],r[i]=l}return r},masher(){var e=4022871197;return function(t){t=t.toString();for(var r=0;r<t.length;r++){var i=.02519603282416938*(e+=t.charCodeAt(r));i-=e=i>>>0,e=(i*=e)>>>0,e+=4294967296*(i-=e)}return 2.3283064365386963e-10*(e>>>0)}},alea(){var e=0,t=0,r=0,i=1,l=this.masher();e=l(" "),t=l(" "),r=l(" ");for(var n=0;n<arguments.length;n++)(e-=l(arguments[n]))<0&&(e+=1),(t-=l(arguments[n]))<0&&(t+=1),(r-=l(arguments[n]))<0&&(r+=1);return l=null,function(){var l=2091639*e+2.3283064365386963e-10*i;return e=t,t=r,r=l-(i=0|l)}},n3(e,t,r){var i,l,n,a,o,f,s,u,c,b,d=this.p12,T=this.perm,y=(e+t+r)*p,m=h(e+y),x=h(t+y),A=h(r+y),k=(m+x+A)*v,S=e-(m-k),D=t-(x-k),E=r-(A-k);S>=D?D>=E?(o=1,f=0,s=0,u=1,c=1,b=0):S>=E?(o=1,f=0,s=0,u=1,c=0,b=1):(o=0,f=0,s=1,u=1,c=0,b=1):D<E?(o=0,f=0,s=1,u=0,c=1,b=1):S<E?(o=0,f=1,s=0,u=0,c=1,b=1):(o=0,f=1,s=0,u=1,c=1,b=0);var P=S-o+v,w=D-f+v,B=E-s+v,R=S-u+2*v,L=D-c+2*v,N=E-b+2*v,C=S-1+3*v,F=D-1+3*v,_=E-1+3*v,I=255&m,G=255&x,M=255&A,U=.6-S*S-D*D-E*E;if(U<0)i=0;else{var V=3*d[I+T[G+T[M]]];i=(U*=U)*U*(g[V]*S+g[V+1]*D+g[V+2]*E)}var O=.6-P*P-w*w-B*B;if(O<0)l=0;else{var W=3*d[I+o+T[G+f+T[M+s]]];l=(O*=O)*O*(g[W]*P+g[W+1]*w+g[W+2]*B)}var z=.6-R*R-L*L-N*N;if(z<0)n=0;else{var H=3*d[I+u+T[G+c+T[M+b]]];n=(z*=z)*z*(g[H]*R+g[H+1]*L+g[H+2]*N)}var Y=.6-C*C-F*F-_*_;if(Y<0)a=0;else{var q=3*d[I+1+T[G+1+T[M+1]]];a=(Y*=Y)*Y*(g[q]*C+g[q+1]*F+g[q+2]*_)}return 32*(i+l+n+a)}};function m(e){let t=f(.4122214708*e[0]+.5363325363*e[1]+.0514459929*e[2],1/3),r=f(.2119034982*e[0]+.6806995451*e[1]+.1073969566*e[2],1/3),i=f(.0883024619*e[0]+.2817188376*e[1]+.6299787005*e[2],1/3);return[.2104542553*t+.793617785*r-.0040720468*i,1.9779984951*t-2.428592205*r+.4505937099*i,.0259040371*t+.7827717662*r-.808675766*i]}let x=[19,18,14,77,88,88,88,87,68,96,42,87,15,45,41,71,20,12,37,80,67,14,22,70,13,20,3,75,7,88,48,70,68,54,97,72,58,59,60,83,97,96,0,74,67,66,69,84,23,40,42,70,46,46,29,78,26,56,27,78,61,18,27,83,49,49,29,82,8,24,47,70,49,49,6,75,53,28,67,81,11,21,34,75,11,35,50,81,65,63,62,85,56,24,10,75,60,57,64,81,36,39,4,80,20,55,44,75,56,50,51,84,67,16,17,86,97,97,25,74,52,5,1,76,22,8,47,70,18,43,32,77,33,6,31,79,2,95,38,73,38,9,30,80,7,97,69,74];const A=function(){let e=[],t=[],r=[],i="3865,Winter White,fffdf9,712,Cream,f6efda,822,Beige Gray - Light,e8dfc7,945,Tawny,f6c19a,422,Hazelnut Brown - Light,c99a67,407,Desert Sand Dark,b77159,3820,Straw Dark,dba53e,321,Red,bd1136,666,Bright Red,ce1b33,353,Peach,fdb4a1,3340,Apricot - Medium,fd6b4f,3706,Melon - Medium,fd6e70,722,Orange Spice - Light,f98756,741,Tangerine - Medium,fc8b10,740,Tangerine,fd6f1a,350,Coral - Medium,de3f40,E1020,Effects - Neon Orange,f73f00,606,Orange-red - Bright,f70f00,946,Burnt Orange - Medium,ed4115,900,Burnt Orange - Dark,c63117,720,Orange Spice - Dark,c83a24,727,Topaz - Very Light,fde98b,744,Yellow - Pale,fee88d,19,Autumn Gold - Medium Light,f7c95f,307,Lemon,fde949,E980,Neon Yellow,f0ff00,17,Yellow Plum - Light,e5e272,725,Topaz - Medium Light,f9c15b,973,Canary - Bright,fccd2d,444,Lemon - Dark,f5bc13,972,Canary - Deep,fb9f11,966,Baby Green - Medium,bff6e0,13,Medium Light Nile Green,94d28a,3348,Yellow Green - Light,bedf74,16,Chartreuse Light,a4d67c,906,Parrot Green - Medium,6c9e29,987,Forest Green - Dark,436838,3053,Green Grey,999d75,926,Gray Green - Medium,617674,747,Sky Blue - Very Light,cee9ea,3849,Teal Green - Light,35b193,3844,Bright Turquoise - Dark,1f7fa0,3847,Teal Green - Dark,186358,3809,Turquoise - Very Dark,136a75,3808,Turquoise - Ultra Very Dark,03535c,3846,Bright Turquoise - Light,5eccec,3843,Electric Blue,28a3de,311,Blue Medium,002a64,336,Navy Blue,0c275e,823,Blue - Dark,000b44,30,Blueberry - Medium Light,6d54d3,155,Forget-me-not Blue,9774b6,161,Petrol Blue Dark,60568b,32,Blueberry - Dark,4d2e8a,158,Cornflower Blue - Medium Very Dark,393068,3041,Antique Violet - Medium,866a76,25,Lavender - Ultra Light,dad2e9,211,Lavender - Light,e5bded,210,Lavender - Medium,d49fe1,209,Lavender - Dark,ba72c6,208,Lavender - Very Dark,9442a7,327,Violet,5e0f77,225,Shell Pink - Ultra Very Light,f8d9cd,151,Dusty Rose - Very Light,ffcbd7,604,Cranberry - Light,f793b2,33,Fuchsia,d9539f,718,Plum,cb2089,E1010,Effects - Neon Pink,ff008c,326,Rose - Very Dark,ac1c37,150,Dusty Rose - Ultra Very Dark,bf1c48,CBLANC,Étoile - Blanc,ffffff,C415,Étoile - Pearl Gray,b8b9bd,C318,Étoile - Steel Gray - Light,999b9d,C3799,Étoile - Pewter Gray - Very Dark,39393d,C310,Étoile - Black,000000,ECRU,Étoile - Ecru,fff7e7,C738,Étoile - Tan - Very Light,e2b783,C725,Étoile - Topaz,f9c15b,C444,Étoile - Lemon - Dark,f5bc13,C471,Étoile - Avocado Green - Very Light,9eb357,C890,Étoile - Pistachio Green - Ultra Dark,324233,C995,Étoile - Electric Blue - Dark,0061b0,C823,Étoile - Blue - Dark,000b44,C554,Étoile - Violet - Light,dc9cde,C550,Étoile - Violet - Very Dark,580e5c,C603,Étoile - Cranberry - Light Medium,fb4b7c,C600,Étoile - Cranberry - Very Dark,cf0053,C666,Étoile - Red - Bright,ce1b33,Blanc,White,fcfcff,01,White Tin,efeef0,762,Pearl Gray - Very Light,d1d0d2,02,Tin,c5c4c9,03,Tin - Medium,b0b0b5,04,Tin - Dark,9c9b9d,535,Ash Gray - Very Light,4b4b49,413,Pewter Gray - Dark,4a4749,3799,Pewter Gray - Very Dark,39393d,310,Black,000000".split(",");for(let l=0;l<i.length;l+=3){let n=i[l],a=i[l+1],o=i[l+2];r.push(n),t.push(n+" - "+a),e.push(Number("0x"+o))}var l=[],n=[],a=[];return{geti:function(e){e<0&&(e*=-1),e%=1;let t=l.length,r=h(t*e),i=(r+1)%t,n=t*e-r,a=l[r],o=l[i],s=1-n,u=1/2.2;return[f(f(o[0],u)*n+s*f(a[0],u),2.2),f(f(o[1],u)*n+s*f(a[1],u),2.2),f(f(o[2],u)*n+s*f(a[2],u),2.2)]},gt:function(e){return l[e]},init:function(r){let i=h(7*f(re(),1.5))+89,o=1+h(5*re()),s=0;for(var u=0;u<r;++u){let c=h(69*re());for(u>0&&(c=(n[0]+u*o)%69);-1!=n.indexOf(c);)c=h(69*re());u>=Ie&&(c=i+u),u==r-1&&(c=h(5*re())+70),ie&&(c=x[4*le+u]),n.push(c),a.push(t[c]);let b=e[c],d=(255&b)/256,p=(b>>8&255)/256,v=(b>>16&255)/256,g=2.2,T=m([f(v,g),f(p,g),f(d,g)])[0];s+=.25*T,T<=.2&&(Me+=1),T>.96&&(Ue=!1),l.push([v,p,d])}Me>1||s<.15?Ce=.4:0==Ue&&s>.6&&(Ce=-.6),Me>0&&!Ue&&(_e=!0)},name:a}}(),k=document.createElement("canvas");k.style="z-index:1; background: rgba(255,255,255,255);position:absolute;top:0;left:0;right:0;bottom:0;margin:0 auto;";const S=document.createElement("canvas");S.style="z-index:2; background: rgba(255,255,255,0);position:absolute;top:0;left:0;right:0;bottom:0;margin:0 auto;";const D=S.getContext("2d");document.body.prepend(S),document.body.prepend(k);const E=k.getContext("webgl",{alpha:!1}),P=E.getExtension("ANGLE_instanced_arrays"),w=E.TRIANGLES,B=E.FRAMEBUFFER,R=E.FLOAT,L=E.UNSIGNED_BYTE,N=E.RGBA,C=E.TEXTURE_2D,F=E.COLOR_ATTACHMENT0,_=E.COLOR_BUFFER_BIT|E.DEPTH_BUFFER_BIT,I=E.ARRAY_BUFFER,G=E.STATIC_DRAW,M=E.DYNAMIC_DRAW,U=E.ONE,V=E.ONE_MINUS_SRC_ALPHA,O=E.SRC_ALPHA,W=(e,t,r)=>e.getAttribLocation(t,r),z=(e,t,r)=>e.getUniformLocation(t,r),H=()=>E.createBuffer();let Y,q,X,j,J,K,Q=[],Z=[],$=[],ee=[],te=tokenData.tokenId%1e6;y.init(tokenData.hash);let re=y.r;for(let Gr=0;Gr<1e6;++Gr)re();let ie=te<x.length/4,le=te;!ie&&re()>.8&&(ie=!0,le=h(re()*x.length/4));let ne=2.5+2*s(re());re()>.5&&(ne+=1+1*re());let ae=1+h(2*f(re(),3)),oe=1+h(2*f(re(),3)),fe=re()>.5?.05:.3,se=re()>.5,he=re()>.7,ue=re()>.8,ce=re()>.7?100:3+h(4*re()),be=h(2*re()),de=.6-.55*re(),pe=re(),ve=re()>.5?2:1.5,ge=re()>.5?2:1.5,Te=re()>.5,ye=re()>.5,me=re()>.5,xe=re()>.9,Ae=re()>.5,ke=re()>.8,Se=re()>.5,De=re()>.5,Ee=.5+4*f(re(),4),Pe=re()>.5,we=re()>.5,Be=re()>.5?200:re()>.2?40:h(10*re())+5,Re=.5+1.2*f(re(),2),Le=re()>.5,Ne=re()>.5,Ce=-.5,Fe=!1,_e=!1,Ie=h(3*f(re(),2))+1;re()>.98&&(Ie=0);let Ge=-1,Me=0,Ue=!0;A.init(4);let Ve=re(),Oe=re()*n,We=(re()-.5)*l*.5,ze=re()>.2?.3*re():0,He=[];for(var e=0;e<4;++e){let Mr=A.gt(e);He.push(Mr[0],Mr[1],Mr[2],1)}let Ye=window.innerWidth,qe=window.innerHeight,Xe=1,je=Ye/Xe;qe>je?qe=je:Ye=qe*Xe,k.width=Ye,k.height=qe,S.width=Ye,S.height=qe;let Je=h(30*Ye/1e3),Ke=h(3*Ye/1e3)+1;const Qe=S.clientWidth,Ze=S.clientHeight;let $e=Math.min(Qe,Ze),et=Qe,tt=Ze;function rt(){let e=E.createTexture();E.bindTexture(C,e),E.texImage2D(C,0,N,J,K,0,N,L,null),E.texParameteri(C,E.TEXTURE_MIN_FILTER,E.LINEAR),E.texParameteri(C,E.TEXTURE_MAG_FILTER,E.LINEAR),E.texParameteri(C,E.TEXTURE_WRAP_S,E.CLAMP_TO_EDGE),E.texParameteri(C,E.TEXTURE_WRAP_T,E.CLAMP_TO_EDGE);let t=E.createFramebuffer();E.bindFramebuffer(B,t),E.framebufferTexture2D(B,F,C,e,0);const r=E.createRenderbuffer();return E.bindRenderbuffer(E.RENDERBUFFER,r),E.renderbufferStorage(E.RENDERBUFFER,E.DEPTH_COMPONENT16,J,K),E.framebufferRenderbuffer(E.FRAMEBUFFER,E.DEPTH_ATTACHMENT,E.RENDERBUFFER,r),E.checkFramebufferStatus(E.FRAMEBUFFER),[e,t]}function it(e,t,r){let i=e.createShader(t);return e.shaderSource(i,r),e.compileShader(i),i}function lt(e,t,r){let i=e.createProgram();return e.attachShader(i,t),e.attachShader(i,r),e.linkProgram(i),i}function nt(e,t){E.disable(E.DEPTH_TEST);let r=(Ve+.01*dr)%1,l=200,n=[];for(var a=0;a<l;++a){let e=a/l,t=A.geti(r+e*Re);Fe?Ue?n.push(1,.98,.96):n.push(.9,.88,.86):_e?n.push(.4,.4,.4):n.push(c(1,b(0,t[0]+Ce)),c(1,b(0,t[1]+Ce)),c(1,b(0,t[2]+Ce)))}E.bindBuffer(I,Qt),E.bufferData(I,i(n),M),E.useProgram(yt),E.bindBuffer(I,fr),E.enableVertexAttribArray(wt),E.vertexAttribPointer(wt,2,R,!1,0,0),E.bindBuffer(I,Qt),E.enableVertexAttribArray(Bt),E.vertexAttribPointer(Bt,3,R,!1,0,0),P.vertexAttribDivisorANGLE(Bt,1),E.uniform1f(Lt,e),E.uniform1f(Nt,t);let o=[];for(a=0;a<l;++a){let e=(a+.5)/l;o.push(2*e-1,1.1/l)}E.bindBuffer(I,Jt),E.bufferData(I,i(o),M),E.enableVertexAttribArray(Rt),E.vertexAttribPointer(Rt,2,R,!1,0,0),P.vertexAttribDivisorANGLE(Rt,1),P.drawArraysInstancedANGLE(w,0,6,l),P.vertexAttribDivisorANGLE(Bt,0),P.vertexAttribDivisorANGLE(Rt,0)}function at(e,t,r=!0,l=1){E.enable(E.DEPTH_TEST),E.useProgram(Tt);let n=[],a=[],o=[],f=[],s=e.length/4;a.push(2*e[0]-e[4]),a.push(2*e[1]-e[5]),a.push(2*e[2]-e[6]),a.push(2*e[0]-e[4]),a.push(2*e[1]-e[5]),a.push(2*e[2]-e[6]);for(let t=0;t<s;++t){let r=t/s;n.push(e[4*t],e[4*t+1],e[4*t+2],e[4*t+3]),n.push(e[4*t],e[4*t+1],e[4*t+2],e[4*t+3]),t>0&&(a.push(e[4*t-4],e[4*t-3],e[4*t-2]),a.push(e[4*t-4],e[4*t-3],e[4*t-2])),t<s-1&&(o.push(e[4*t+4],e[4*t+5],e[4*t+6],r),o.push(e[4*t+4],e[4*t+5],e[4*t+6],r)),f.push(-1,1)}let h=(s-1)/s;o.push(e[4*(s-1)]+e[4*(s-1)]-e[4*(s-2)]),o.push(e[4*(s-1)+1]+e[4*(s-1)+1]-e[4*(s-2)+1]),o.push(e[4*(s-1)+2]+e[4*(s-1)+2]-e[4*(s-2)+2],h),o.push(e[4*(s-1)]+e[4*(s-1)]-e[4*(s-2)]),o.push(e[4*(s-1)+1]+e[4*(s-1)+1]-e[4*(s-2)+1]),o.push(e[4*(s-1)+2]+e[4*(s-1)+2]-e[4*(s-2)+2],h),E.bindBuffer(I,Zt),E.bufferData(I,i(n),M),E.enableVertexAttribArray(Gt),E.vertexAttribPointer(Gt,4,R,!1,0,0),E.bindBuffer(I,$t),E.bufferData(I,i(o),M),E.enableVertexAttribArray(Ut),E.vertexAttribPointer(Ut,4,R,!1,0,0),E.bindBuffer(I,er),E.bufferData(I,i(a),M),E.enableVertexAttribArray(Mt),E.vertexAttribPointer(Mt,3,R,!1,0,0),E.bindBuffer(I,tr),E.bufferData(I,i(f),M),E.enableVertexAttribArray(Vt),E.vertexAttribPointer(Vt,1,R,!1,0,0),E.uniform4fv(Ht,He),E.uniform1f(Ot,t);let u=r?1:0;E.uniform1f(Wt,u),E.uniform1f(zt,l),E.drawArrays(E.TRIANGLE_STRIP,0,e.length/4*2)}const ot=E.VERTEX_SHADER,ft=E.FRAGMENT_SHADER,st=it(E,ot,"precision highp float;attribute vec4 ap;attribute vec4 ac;attribute vec4 as;attribute float al;varying vec4 vc;uniform vec2 d;uniform vec4 cols[4];vec4 get(float l) { l=4.0*l;float i0 = (mod(l,4.0));int i1 = int(mod(i0+1.0,4.0));float f = fract(l);vec4 col0 = cols[int(i0)];vec4 col1 = cols[i1];return mix(col0, col1,f);} void main(){ vc=get(fract(ac.x+ap.z*ac.z));if(al>1.0){ vc.xyz=vec3(1.0);} vc.a=ac.w;if(al>10.0) vc=vec4(1.0,1.0,1.0,0.5);mat2 rot = mat2(cos(ac.y), sin(ac.y), -sin(ac.y), cos(ac.y));vec2 pos = rot*ap.xy;gl_Position=vec4((as.w*pos.x+as.x)/d.x,(as.w*pos.y+as.y)/d.y,as.z,1.0);}"),ht=it(E,ot,"precision highp float;attribute vec4 point;attribute vec4 next;attribute vec3 previous;attribute float direction;uniform float width;uniform float influencez;uniform float alpha;uniform vec4 cols[4];varying vec4 vc;vec4 get(float l) { vec4 col0 = cols[int(l)];return col0;} void main(){ vc=get(point.w);vc.a=alpha;vec4 nextscreen = vec4(next.xyz,1.0);vec4 prevscreen = vec4(previous,1.0);float f = next.a;float f2 = (1.0-f)*f*4.0;vec2 dir = normalize(nextscreen.xy-prevscreen.xy);float w2 = width;vec4 t = vec4(point.xyz,1.0);gl_Position= t + vec4(-dir.y,dir.x,0.0,0.0)*w2*direction*abs(1.0-influencez*50.0*t.z);}"),ut=it(E,ft,"precision highp float;varying vec4 vc;void main(){gl_FragColor=vc;}"),ct=it(E,ot,"precision highp float;attribute vec4 ap;attribute vec2 at;varying vec2 t;void main(){ gl_Position=vec4(ap.xyz,1.0);t=at;}"),bt=it(E,ft,"precision highp float;varying vec2 t;uniform sampler2D u;uniform vec2 d;uniform float b;void main(){ float h=d.x*b;float v=d.y*b;vec4 s=vec4(0.0);s+=texture2D(u,vec2(t.x-4.0*h,t.y-4.0*v))*0.016216;s+=texture2D(u,vec2(t.x-3.0*h,t.y-3.0*v))*0.054054;s+=texture2D(u,vec2(t.x-2.0*h,t.y-2.0*v))*0.121621;s+=texture2D(u,vec2(t.x-1.0*h,t.y-1.0*v))*0.194594;s+=texture2D(u,vec2(t.x,t.y))*0.227027;s+=texture2D(u,vec2(t.x+1.0*h,t.y+1.0*v))*0.194594;s+=texture2D(u,vec2(t.x+2.0*h,t.y+2.0*v))*0.121621;s+=texture2D(u,vec2(t.x+3.0*h,t.y+3.0*v))*0.054054;s+=texture2D(u,vec2(t.x+4.0*h,t.y+4.0*v))*0.016216;gl_FragColor=clamp(s,0.,1.);}"),dt=it(E,ot,"precision highp float;attribute vec2 ap;attribute vec2 at;varying vec2 v;void main(){ gl_Position=vec4(ap,0.0,1.0);v=at;}"),pt=it(E,ft,"precision highp float;varying vec2 v;uniform sampler2D t;void main(){ gl_FragColor=texture2D(t,v);}"),vt=it(E,ot," attribute vec2 ap;attribute vec3 c0;attribute vec2 as;uniform float b;uniform float l;varying vec4 vc;void main(){ vc=vec4(c0,b);gl_Position=vec4(ap.x*l,(ap.y*as.y+as.x)*l,1.0,1.0);}"),gt=lt(E,st,ut),Tt=lt(E,ht,ut),yt=lt(E,vt,ut),mt=lt(E,ct,bt),xt=lt(E,dt,pt),At=W(E,gt,"ap"),kt=W(E,gt,"ac"),St=W(E,gt,"as"),Dt=W(E,gt,"al"),Et=z(E,gt,"d"),Pt=z(E,gt,"cols"),wt=W(E,yt,"ap"),Bt=W(E,yt,"c0"),Rt=W(E,yt,"as"),Lt=z(E,yt,"b"),Nt=z(E,yt,"l"),Ct=W(E,mt,"ap"),Ft=W(E,mt,"at"),_t=z(E,mt,"d"),It=z(E,mt,"b"),Gt=W(E,Tt,"point"),Mt=W(E,Tt,"previous"),Ut=W(E,Tt,"next"),Vt=W(E,Tt,"direction"),Ot=z(E,Tt,"width"),Wt=z(E,Tt,"influencez"),zt=z(E,Tt,"alpha"),Ht=z(E,Tt,"cols"),Yt=W(E,xt,"ap"),qt=W(E,xt,"at"),Xt=H(),jt=H(),Jt=H(),Kt=H(),Qt=H(),Zt=H(),$t=H(),er=H(),tr=H();J=2*et,K=2*tt,[Y,q]=rt(),[X,j]=rt();let rr=[],ir=60,lr=3*ir;for(e=0;e<ir;++e){let Ur=e/ir*n,Vr=2*e/ir;Vr>1&&(Vr=2-Vr);let Or=2*(e+1)/ir;Or>1&&(Or=2-Or);let Wr=(e+1)/ir*n;rr.push(0,0,0,0,a(Ur),o(Ur),Vr,Vr,a(Wr),o(Wr),Or,Or)}E.bindBuffer(I,Xt);let nr=i(rr);E.bufferData(I,nr,M);const ar=H();E.bindBuffer(I,ar);const or=i([-1,-1,-1,1,1,-1,1,1,-1,1,1,-1]);E.bufferData(I,or,G);const fr=H();E.bindBuffer(I,fr),E.bufferData(I,or,G);const sr=H();E.bindBuffer(I,sr),E.bufferData(I,i([0,0,0,1,1,0,1,1,0,1,1,0]),G);let hr=0;Z=[],$=[],Q=[];let ur=i(Z),cr=i($),br=i(Q),dr=0;var t=0;S.style.pointerEvents="none",k.addEventListener("pointerup",(e=>{2!=e.button&&dr>t+.2&&(t=dr,Ge+=1,Ge>12&&(Ge=-1))}));let pr=[];var r=.2*ne;E.clearColor(1,1,1,1),E.clear(_),E.enable(E.BLEND),E.blendFuncSeparate(O,V,U,V);let vr=0,gr=[],Tr=[],yr=[],mr=[],xr=[],Ar=2e3;for(let zr=0;zr<Ar;++zr){let Hr=Rr(zr/Ar);xr.push(Hr)}function kr(e,t,i){return[e+y.n3(e*r,t*r,5.78)*i,t+y.n3(e*r,t*r,5.78)*i]}function Sr(e,t,r){return[a(r)*e-o(r)*t,o(r)*e+a(r)*t]}let Dr=ue?.15:.1,Er=he?.02:.007;if(1==be){let Yr=we?800:1600;Be<20&&(Yr*=3);for(let qr=0;qr<Yr;++qr){let Xr=[],jr=5.87;xe&&re()>.5&&(jr=12.25);let Jr=(re()-.5)*ge,Kr=(re()-.5)*ve;Le&&(Jr=(h(50*re())/50-.5)*ge,Kr=(h(50*re())/50-.5)*ve);let Qr=h(10*wr(Jr,Kr));Qr%=4;let Zr=!0,$r=Be;Be<20&&re()<.1&&($r*=5);for(let ei=0;ei<$r;++ei){let ti=Br(Jr,Kr,jr),ri=s(ti[0]*ti[0]+ti[1]*ti[1]);if(Jr+=ti[0]/ri*.0081,Kr+=ti[1]/ri*.0081,ri<.001)break;if(u(Jr)>1.1||u(Kr)>1.1)break;let ii=1;for(let li=0;li<xr.length;++li){let ni=Jr-xr[li][0],ai=Kr-xr[li][1],oi=s(ni*ni+ai*ai)-Dr+.1*re();oi<ii&&(ii=oi)}for(let fi=0;fi<gr.length;++fi)for(let si=0;si<gr[fi].length;si+=5){let hi=gr[fi][si][0]-Jr,ui=gr[fi][si][1]-Kr,ci=s(hi*hi+ui*ui)-Er;ci<ii&&(ii=ci)}if(!(ii>.007)){Zr=!1;break}Xr.push([Jr,Kr,-ti[1]/ri,ti[0]/ri])}if(we&&Xr.length>0){Jr=Xr[0][0],Kr=Xr[0][1];for(let bi=0;bi<$r;++bi){let di=Br(Jr,Kr,jr),pi=s(di[0]*di[0]+di[1]*di[1]);if(Jr-=di[0]/pi*.0081,Kr-=di[1]/pi*.0081,pi<.001)break;if(u(Jr)>1.1||u(Kr)>1.1)break;
const ze=w.VERTEX_SHADER,He=w.FRAGMENT_SHADER,Xe=Le(w,ze,t),ke=Le(w,He,"#version 300 es\n precision highp float;in vec4 vc;out vec4 outc;void main(){outc=vc;}"),We=Le(w,ze,"attribute vec2 ap;attribute vec2 at;varying vec2 t;void main(){gl_Position=vec4(ap,0.0,1.0);t=at;}"),Ge=Le(w,He,"precision highp float;varying vec2 t;uniform sampler2D u;uniform vec2 d;uniform float b;void main(){float h=d.x;float v=d.y;vec4 s=vec4(0.0);s+=texture2D(u,vec2(t.x-4.0*b*h,t.y-4.0*b*v))*0.016216;s+=texture2D(u,vec2(t.x-3.0*b*h,t.y-3.0*b*v))*0.054054;s+=texture2D(u,vec2(t.x-2.0*b*h,t.y-2.0*b*v))*0.121621;s+=texture2D(u,vec2(t.x-1.0*b*h,t.y-1.0*b*v))*0.194594;s+=texture2D(u,vec2(t.x,t.y))*0.227027;s+=texture2D(u,vec2(t.x+1.0*b*h,t.y+1.0*b*v))*0.194594;s+=texture2D(u,vec2(t.x+2.0*b*h,t.y+2.0*b*v))*0.121621;s+=texture2D(u,vec2(t.x+3.0*b*h,t.y+3.0*b*v))*0.054054;s+=texture2D(u,vec2(t.x+4.0*b*h,t.y+4.0*b*v))*0.016216;gl_FragColor=clamp(s,0.,1.);}"),$e=Le(w,ze,"attribute vec2 ap;attribute vec2 at;varying vec2 v;void main(){gl_Position=vec4(ap,0.0,1.0);v=at;}"),qe=Le(w,He,"precision highp float;varying vec2 v;uniform sampler2D t;void main(){gl_FragColor=texture2D(t,v);}"),Ye=Le(w,ze,"#version 300 es\n in vec3 ap;in vec4 c0;in vec4 c1;in vec2 as;out vec4 vc;uniform float b;void main(){if(ap.z==0.0){vc=c0;}else{vc=c1;}vc.a=b;gl_Position=vec4(0.938*ap.x,0.9*(ap.y*as.y+as.x),1.0,1.0);}"),Ze=Ue(w,Xe,ke),je=Ue(w,Ye,ke),Je=Ue(w,We,Ge),Ke=Ue(w,$e,qe),Qe=O(w,Ze,"ap"),et=O(w,Ze,"ac"),tt=O(w,Ze,"as"),rt=O(w,Ze,"al"),at=V(w,Ze,"d"),it=V(w,Ze,"cols"),nt=O(w,je,"ap"),lt=O(w,je,"c0"),ot=O(w,je,"c1"),ft=O(w,je,"as"),ct=V(w,je,"b"),st=O(w,Je,"ap"),ut=O(w,Je,"at"),vt=V(w,Je,"d"),bt=V(w,Je,"b"),ht=O(w,Ke,"ap"),xt=O(w,Ke,"at"),At=z(),gt=z(),pt=z(),mt=z(),dt=z(),yt=z();let _t=.3;G=Me,$=Ie,[H,X]=Ce(),[k,W]=Ce();let Dt=[],Et=[],wt=se?4:60,Rt=3*wt,Tt=6*wt;for(e=0;e<wt;++e){let br=e/wt*f,hr=2*e/wt;hr>1&&(hr=2-hr);let xr=2*(e+1)/wt;xr>1&&(xr=2-xr);let Ar=(e+1)/wt*f;Dt.push(0,0,0,0,c(br),s(br),hr,hr,c(Ar),s(Ar),xr,xr),Et.push(c(br),s(br),hr,hr,c(Ar),s(Ar),xr,xr,.8*c(Ar),.8*s(Ar),xr,xr,c(br),s(br),hr,hr,.8*c(Ar),.8*s(Ar),xr,xr,.8*c(br),.8*s(br),hr,hr)}w.bindBuffer(I,At);let Pt=l(Dt),Bt=l(Et);w.bufferData(I,Pt,C),w.bufferData(I,l(Et),C);const Ft=z();w.bindBuffer(I,Ft);const Mt=l([-1,-1,-1,1,1,-1,1,1,-1,1,1,-1]);w.bufferData(I,Mt,S);const It=z();w.bindBuffer(I,It);const St=l([-1,-1,0,-1,1,0,1,-1,1,1,1,1,-1,1,0,1,-1,1]);w.bufferData(I,St,S);const Ct=z();w.bindBuffer(I,Ct),w.bufferData(I,l([0,0,0,1,1,0,1,1,0,1,1,0]),S);let Lt=0,Ut=[],Nt=[],Ot=l([]),Vt=l(Ut),zt=l(Nt),Ht=0,Xt=[],kt=[],Wt=[];var r=.03*J;function Gt(e,t){return(.4*_.n3(e*r,t*r,1.687)+.5)*r*ee+.2}for(e=0;e<8e5;++e){let gr=(Z()-.5)*Re*1.87,pr=1.8*(Z()-.5),mr=.001*Z()+5e-4,dr=new y(gr,pr,Z(),mr,0,0);Wt.push(dr)}let $t=90;for(e=0;e<=$t;++e){let yr=(Z()-.5)*Re*1.7,_r=1.5*(Z()-.5),Dr=.55*Z()+.1;for(var a=0;a<kt.length;++a){let Er=kt[a].x-yr,wr=kt[a].y-_r,Rr=v(Er*Er+wr*wr)-kt[a].s;if(Rr<Dr&&(Dr=Rr),Rr<.1)break}if(Dr>.1){let Tr=new y(yr,_r,Z(),Dr,Z()*f,Z());kt.push(Tr)}}for($t=ve?30:10,e=0;e<=$t||Xt.length<2;++e){let Pr=(Z()-.5)*Re*1.6,Br=1.6*(Z()-.5),Fr=.35*u(Z(),4)+.01;for(a=0;a<Xt.length;++a){let Mr=Xt[a].x-Pr,Ir=Xt[a].y-Br,Sr=v(Mr*Mr+Ir*Ir)-Xt[a].s;if(Sr<Fr&&(Fr=Sr),Sr<0)break}if(Fr>.1){let Cr=new y(Pr,Br,Z(),Fr,Z()*f,Z());Cr.frac2=.1,Cr.frac4=.1*Z()+.95,Cr.variant=Z()>.5?1:-1,Xt.push(Cr)}}function qt(e,t,r,a,i,n){let l=r-e,o=a-t,f=v(l*l+o*o),c=h(f/i*2);for(let r=0;r<c;++r){let a=r/(c-1),f=new y(e+a*l,t+a*o,n,i*(.5+a*(1-a)*2),0,0);f.frac2=.02,f.frac3=.65,q.push(f)}}w.clearColor(0,0,0,0),w.clear(w.COLOR_BUFFER_BIT),w.clear(M),w.disable(w.DEPTH_TEST),w.enable(w.BLEND),w.blendFuncSeparate(N,U,L,U);let Yt=Z()*f,Zt=c(Yt),jt=s(Yt),Jt=(Z()-.5)*o*.3,Kt=c(Jt),Qt=s(Jt),er=2.87,tr=.6*(Z()-.5),rr=.6*(Z()-.5),ar=Gt(tr,rr);for(;_.n3(tr*ar,rr*ar,er)>.32;)er=5+1e3*Z();let ir=1/ee,nr=[];for(let Lr=0;Lr<5e4;++Lr){let Ur=Z(),Nr=Z(),Or=.25*v(-2*Math.log(Ur))*c(Nr*f)*Re*xe,Vr=.25*v(-2*Math.log(Ur))*s(Nr*f),zr=Or*Kt-Vr*Qt,Hr=Vr*Kt+Or*Qt,Xr=zr*Zt-Hr*jt,kr=Hr*Zt+zr*jt,Wr=b(.5+(Xr+20)*ee)/ee-20,Gr=b(.5+(kr+20)*ee)/ee-20;le&&(oe?Wr=0:Gr=0);let $r=Xr-Wr,qr=kr-Gr,Yr=2*g(x($r),x(qr))/ir;le&&(Yr=oe?2*x(qr)/ir:2*x($r)/ir);let Zr=g(0,ir*(1-Yr)*.5),jr=.01*(1+3*u(Z(),20));ne&&(jr=A(jr,Zr)),ie||(Yr=0);let Jr=Gt(Xr,kr),Kr=_.n3(Wr*Jr,Gr*Jr,2)+lr(Wr,Gr),Qr=_.n3(Wr*Jr,Gr*Jr,4),ea=_.n3(Wr*Jr,Gr*Jr,er),ta=.5*_.n3(Wr*Jr,Gr*Jr,27.587)+.5,ra=_.n3(Wr*Jr*2,Gr*Jr*2,-4.71)*_e+1;Kr=Kr*ta+(_.n3(zr*Jr,Hr*Jr,2)+lr(zr,Hr))*(1-ta);let aa=_.n3(Wr*Jr,Gr*Jr,98.57);zr+=.2*_.n3(zr*r,Hr*r*2,-2.87),Hr+=.2*_.n3(zr*r,Hr*r*2,-4.27);let ia=.04;if(be&&.5*_.n3(Wr*Jr,Gr*Jr,12.342)+.5>.5){let na=_.n3(Wr*Jr,Gr*Jr,21.43)*f*20;ia=.001,zr+=.05*c(na),Hr+=.05*s(na)}if(fr(zr,Hr)-.01>0)if(ea<.3&&x(zr)<.95*Re&&x(Hr)<.95){Z()>.95&&(Kr+=.5);let la=new y(zr,Hr,Kr+.2*Yr,jr,Qr*f*2,.5*Qr+.5);la.frac2=ia,ce&&Z()>.8&&(la.frac3=.2),la.frac4=ra,aa<.5?q.push(la):Y.push(la)}else ea>.35&&nr.push([zr,Hr])}if(nr.length>0){let oa=Z()>.5?200:500;for(let fa=0;fa<oa;++fa){let ca=nr[b(Z()*(nr.length-1))],sa=ca[0],ua=ca[1],va=ir*(1+3*Z()),ba=-Yt+b(4*Z())*o*.5,ha=ca[0]+c(ba)*va,xa=ca[1]+s(ba)*va,Aa=ha*Zt-xa*jt,ga=xa*Zt+ha*jt,pa=Gt(Aa,ga);_.n3(Aa*pa,ga*pa,er)>.35&&g(x(sa),x(ha))<.95*Re&&g(x(ua),x(xa))<.95&&qt(sa,ua,ha,xa,.002,Z())}}function lr(e,t){let r=0;for(let a=0;a<Xt.length;++a){let i=e-Xt[a].x,n=t-Xt[a].y;r+=.01/g(.001,i*i+n*n)*Xt[a].variant}return r}function or(e,t){let r=e*Zt-t*jt,a=t*Zt+e*jt,i=(e+.01)*Zt-t*jt,n=t*Zt+(e+.01)*jt,l=e*Zt-(t+.01)*jt,o=(t+.01)*Zt+e*jt,f=Gt(r,a),c=Gt(i,n),s=Gt(l,o),u=_.n3(r*f,a*f,2)+lr(e,t),b=_.n3(i*c,n*c,2)+lr(e+.01,t)-u,h=_.n3(l*s,o*s,2)+lr(e,t+.01)-u,x=v(b*b+h*h);return[Math.atan2(h/x,b/x),x]}function fr(e,t,r=1){let a=10;for(let i=0;i<Xt.length;++i){let n=Xt[i].x-e,l=Xt[i].y-t,o=g(0,v(n*n+l*l)-Xt[i].s*r);a=A(a,o)}return a}let cr=200,sr=Ae?.06:.12;for(let ma=0;ma<cr;++ma){let da=.2*Z()+1,ya=Z(),_a=Z(),Da=K,Ea=Q;Ae&&Z()>.5&&(Da=ge,Ea=pe);let wa=(Da+sr*v(-2*Math.log(ya))*c(_a*f))*Re,Ra=Ea+sr*v(-2*Math.log(ya))*s(_a*f);ma>.9*cr&&(wa=(Z()-.5)*Re,Ra=Z()-.5);let Ta=Z();{let Ca=wa*Zt-Ra*jt,La=Ra*Zt+wa*jt,Ua=b((Ca+20)*ee)/ee-20,Na=b((La+20)*ee)/ee-20,Oa=Gt(Ca,La);Ta=_.n3(Ua*Oa,Na*Oa,2)}let Pa=Z()>.5?1:-1,Ba=Z(),Fa=2*(100+300*Ba),Ma=1,Ia=Z();Ia>.97?Ma=.51:Ia>.94&&(Ma=.1);let Sa=1+20*Z();for(let Va=0;Va<Fa;++Va){let za=Va/Fa,Ha=or(wa,Ra)[0]+.5*o;1==re?Ha=b((Ha+2*f+Yt)/f*8+.5)*f/8-Yt:2==re&&(Ha=b((Ha+2*f+Yt)/f*8)*f/8-Yt);let Xa=A(A(x(x(wa)-Re),x(x(Ra)-1))*Sa,1),ka=A(1,30*fr(wa,Ra,.6)),Wa=new y(wa,Ra,Ta+.5*za,ka*Xa*za*(1-za)*.05*(1-.5*Ba),Ha,za);Wa.frac4=da,wa+=.0025*c(Ha)*Pa,Ra+=.0025*s(Ha)*Pa,Wa.frac2=za*(1-za)*4*.025,1!=Ma&&(Wa.frac2+=.1),Wa.frac3=Ma,q.push(Wa)}}function ur(){if(requestAnimationFrame(ur),Ht+=.01,Ht>2)return;let e=[],t=[],r=[],a=[],i=[],n=[];if(Ht>1&Ht<1.03)for(let e=0;e<Wt.length;++e){let t=Wt[e];n.push(t.frac,t.angle,0,.02),a.push(t.x,t.y,t.s,t.frac3),i.push(1.1*t.frac4)}for(let e=0;e<kt.length;++e)for(let t=0;t<50;++t){let r=t/50,l=kt[e];n.push(l.frac,l.angle+r*o,0,1e-4*r),a.push(l.x,l.y,.5*l.s*(1-r),l.frac3),i.push(l.frac4)}for(let e=0;e<Xt.length;++e)for(let t=0;t<20;++t){let r=t/20,l=Xt[e];n.push(l.frac,l.angle,l.range*(.5*c(r*f+l.frac*f)+.5),l.frac2),a.push(l.x,l.y,.5*l.s*(1-r),l.frac3),i.push(l.frac4)}for(let e=0;e<q.length;++e){let t=q[e];n.push(t.frac%1,t.angle,t.range,t.frac2),v(t.x*t.x+t.y*t.y),a.push(t.x,t.y,t.s,t.frac3),i.push(t.frac4)}Lt=a.length/4;for(let a=0;a<Y.length;++a){let i=Y[a];r.push(i.frac%1,i.angle,i.range,i.frac2),e.push(i.x,i.y,i.s,i.frac3),t.push(i.frac4)}w.bindFramebuffer(T,X),w.viewport(0,0,G,$),Ne(Ht<.02?1:2e-5);let s=5e-5*Fe;Ht>1&&(s/=4),w.bindFramebuffer(T,W),w.viewport(0,0,G,$),w.clear(M),w.useProgram(Je),w.bindTexture(B,H),w.bindBuffer(I,Ft),w.vertexAttribPointer(st,2,P,!1,0,0),w.enableVertexAttribArray(st),w.enableVertexAttribArray(ut),w.bindBuffer(I,Ct),w.vertexAttribPointer(ut,2,P,!1,0,0),w.uniform2f(vt,.5/G,0),w.uniform1f(bt,s),w.drawArrays(R,0,6),w.bindFramebuffer(T,X),w.viewport(0,0,G,$),w.clear(M),w.bindTexture(B,k),w.uniform2f(vt,0,.5/$),w.drawArrays(R,0,6),w.bindFramebuffer(T,X),w.viewport(0,0,G,$),Ot=l(a),zt=l(n),Vt=l(i),Oe(),Lt=e.length/4,Lt>0&&(Ot=l(e),zt=l(r),Vt=l(t),Oe(!0)),w.bindFramebuffer(T,null),w.viewport(0,0,w.canvas.width,w.canvas.height),w.useProgram(Ke),w.bindTexture(B,H),w.enableVertexAttribArray(ht),w.bindBuffer(I,Ft),w.vertexAttribPointer(ht,2,P,!1,0,0),w.enableVertexAttribArray(xt),w.bindBuffer(I,Ct),w.vertexAttribPointer(xt,2,P,!1,0,0),w.disable(w.BLEND),w.drawArrays(R,0,6),w.enable(w.BLEND)}document.body.style.backgroundColor=fe?"#fff":`rgb(${255*Se[0]},${255*Se[1]},${255*Se[2]})`,window.requestAnimationFrame(ur)}var i,n})();
(()=>{"use strict";{const l=e=>new Float32Array(e),o=Math.PI,f=2*o,c=Math.cos,s=Math.sin,u=Math.pow,v=Math.sqrt,b=Math.floor,h=Math.ceil,x=Math.abs,A=Math.min,g=Math.max,p=1/3,m=1/6,d=new Float32Array([1,1,0,-1,1,0,1,-1,0,-1,-1,0,1,0,1,-1,0,1,1,0,-1,-1,0,-1,0,1,1,0,-1,1,0,1,-1,0,-1,-1]);class y{constructor(e,t,r,a,i,n){this.x=e,this.y=t,this.ox=e,this.oy=t,this.life=200,this.frac=r,this.s=a,this.angle=i,this.range=n,this.frac2=1,this.frac3=1,this.frac4=1,this.variant=0}}const _={init(e){this.r=this.alea(e),this.p=this.bp(this.r),this.perm=new Uint8Array(512),this.p12=new Uint8Array(512);for(var t=0;t<512;t++)this.perm[t]=this.p[255&t],this.p12[t]=this.perm[t]%12},bp(e){var t,r=new Uint8Array(256);for(t=0;t<256;t++)r[t]=t;for(t=0;t<255;t++){var a=t+~~(e()*(256-t)),i=r[t];r[t]=r[a],r[a]=i}return r},masher(){var e=4022871197;return function(t){t=t.toString();for(var r=0;r<t.length;r++){var a=.02519603282416938*(e+=t.charCodeAt(r));a-=e=a>>>0,e=(a*=e)>>>0,e+=4294967296*(a-=e)}return 2.3283064365386963e-10*(e>>>0)}},alea(){var e=0,t=0,r=0,a=1,i=this.masher();e=i(" "),t=i(" "),r=i(" ");for(var n=0;n<arguments.length;n++)(e-=i(arguments[n]))<0&&(e+=1),(t-=i(arguments[n]))<0&&(t+=1),(r-=i(arguments[n]))<0&&(r+=1);return i=null,function(){var i=2091639*e+2.3283064365386963e-10*a;return e=t,t=r,r=i-(a=0|i)}},n3(e,t,r){var a,i,n,l,o,f,c,s,u,v,h=this.p12,x=this.perm,A=(e+t+r)*p,g=b(e+A),y=b(t+A),_=b(r+A),D=(g+y+_)*m,E=e-(g-D),w=t-(y-D),R=r-(_-D);E>=w?w>=R?(o=1,f=0,c=0,s=1,u=1,v=0):E>=R?(o=1,f=0,c=0,s=1,u=0,v=1):(o=0,f=0,c=1,s=1,u=0,v=1):w<R?(o=0,f=0,c=1,s=0,u=1,v=1):E<R?(o=0,f=1,c=0,s=0,u=1,v=1):(o=0,f=1,c=0,s=1,u=1,v=0);var T=E-o+m,P=w-f+m,B=R-c+m,F=E-s+2*m,M=w-u+2*m,I=R-v+2*m,S=E-1+3*m,C=w-1+3*m,L=R-1+3*m,U=255&g,N=255&y,O=255&_,V=.6-E*E-w*w-R*R;if(V<0)a=0;else{var z=3*h[U+x[N+x[O]]];a=(V*=V)*V*(d[z]*E+d[z+1]*w+d[z+2]*R)}var H=.6-T*T-P*P-B*B;if(H<0)i=0;else{var X=3*h[U+o+x[N+f+x[O+c]]];i=(H*=H)*H*(d[X]*T+d[X+1]*P+d[X+2]*B)}var k=.6-F*F-M*M-I*I;if(k<0)n=0;else{var W=3*h[U+s+x[N+u+x[O+v]]];n=(k*=k)*k*(d[W]*F+d[W+1]*M+d[W+2]*I)}var G=.6-S*S-C*C-L*L;if(G<0)l=0;else{var $=3*h[U+1+x[N+1+x[O+1]]];l=(G*=G)*G*(d[$]*S+d[$+1]*C+d[$+2]*L)}return 32*(a+i+n+l)}},D=(i=[[2982,2710,2728,3511,3780,3800,2728,1638,1124,2184,1638,0,105,71,0,1024,1856,2144,1600,2144,1888,2692],[1961,1706,170,153,120,1094,4,4,1895,1639,1542,2663,2564,2822,2696,3398,3654,3703,3753,3734,2676,3530,3238,3748,2982,2746],[3216,1604,2184,3528,3548,2730,3003,3822,1092,0,136,0,103,102,68,0,1856,2400,2672,2944,1088,1638,1911],[2912,3184,3472,3232,2182,2468,1928,73,1030,4,1028,1863,1604,1540,1540,1894,2116,2304,2560,3136,2662,3392,2916,3168],[3546,3490,3456,1364,0],[0,679,120,3324,341,50,34],[3892,3106,2050,1536,768,512],[4095,3985,2541,715,869,18],[3392,1210,135,17,3566],[0,4095,3549,0],[19,1110,2218,2505,3290,3943],[2115,3685,3990,4041,3547,3566],[1589,3977,2749,89,36],[3021,682,120,86,2236,4044,3805,3959,4072,4023,546],[3171,2131,3478,4023,4093,2455,546,308,18],[4042,3447,2425,1111,563,2748],[0,291,4001,3822,4095,869,1465],[785,1552,4090,2624,3459,4090,120],[3994,3976,514,3419,4015,1338,514,787,3766],[3838,3021,1675,1145,600,54,2],[512,1794,3141,3957,3989,3635],[3654,4054,218,395,52],[18,375,1688,4041,3619],[311,2815,3920,4095,0],[3937,3894,750,532,2]],n=[],{geti:function(e){e<0&&(e*=-1),e%=1;let t=n.length,r=b(t*e),a=(r+1)%t,i=t*e-r,l=n[r],o=n[a],f=1-i,c=1/2.2;return[u(u(o[0],c)*i+f*u(l[0],c),2.2),u(u(o[1],c)*i+f*u(l[1],c),2.2),u(u(o[2],c)*i+f*u(l[2],c),2.2)]},init:function(e,t){for(var r=0;r<i[e].length;++r){let a=i[e][r],l=(15&a)/16,o=(a>>4&15)/16,f=(a>>8&15)/16;t&&(l=g(0,A(1,l+.05*Z()-.025)),o=g(0,A(1,o+.05*Z()-.025)),f=g(0,A(1,f+.05*Z()-.025))),n.push([f,o,l])}}}),E=document.createElement("canvas");E.width=0,E.height=0,E.style="z-index:-1; background: rgba(0,0,0,0); position:absolute; top:0; left:0; bottom:0; right:0; margin:auto;",document.body.prepend(E);const w=E.getContext("webgl2",{alpha:!1});w.getExtension("EXT_color_buffer_float"),w.getExtension("OES_texture_float_linear"),w.getExtension("EXT_float_blend");const R=w.TRIANGLES,T=w.FRAMEBUFFER,P=w.FLOAT,B=w.TEXTURE_2D,F=w.COLOR_ATTACHMENT0,M=w.DEPTH_BUFFER_BIT,I=w.ARRAY_BUFFER,S=w.STATIC_DRAW,C=w.DYNAMIC_DRAW,L=w.ONE,U=(w.ZERO,w.ONE_MINUS_SRC_ALPHA),N=w.SRC_ALPHA,O=(e,t,r)=>e.getAttribLocation(t,r),V=(e,t,r)=>e.getUniformLocation(t,r),z=()=>w.createBuffer();let H,X,k,W,G,$,q=[],Y=[];_.init(tokenData.hash);let Z=_.r,j=b(25*Z()),J=2.5+2*v(Z()),K=Z()-.5,Q=Z()-.5;Z()>.5&&(J+=2+5*u(Z(),3)),Z()>.95&&(J+=5);let ee=5+b(10*Z());Z()>.5&&(ee+=b(10+10*Z()));let te=Z(),re=te<.7?0:te<.85?1:2,ae=Z()>.9,ie=Z()>.7,ne=Z()>.8,le=Z()>.9,oe=Z()>.5,fe=Z()>.1,ce=Z()>.5,se=Z()>.95,ue=Z()>.5,ve=Z()>.9,be=Z()>.6,he=Z()>.7,xe=Z()>.7?2:1,Ae=Z()>.8,ge=K,pe=Q;for(;x(ge-K)<.4;)ge=Z()-.5;for(;x(pe-Q)<.4;)pe=Z()-.5;let me=Z(),de=Z(),ye=Z(),_e=he?.2:.1;D.init(j,ue);let De=[];for(var e=0;e<30;++e){let vr=D.geti(me+e/30);De.push(vr[0],vr[1],vr[2],1)}let Ee=window.innerWidth,we=window.innerHeight,Re=16/9,Te=Ee/Re;we>Te?we=Te:Ee=we*Re,E.width=Ee,E.height=we;const Pe=E.clientWidth,Be=E.clientHeight;let Fe=Math.min(Pe,Be),Me=Pe,Ie=Be,Se=[];function Ce(){let e=w.createTexture();w.bindTexture(B,e),w.texImage2D(B,0,w.RGBA32F,G,$,0,w.RGBA,P,null),w.texParameteri(B,w.TEXTURE_MIN_FILTER,w.LINEAR),w.texParameteri(B,w.TEXTURE_MAG_FILTER,w.LINEAR),w.texParameteri(B,w.TEXTURE_WRAP_S,w.MIRRORED_REPEAT),w.texParameteri(B,w.TEXTURE_WRAP_T,w.MIRRORED_REPEAT);let t=w.createFramebuffer();return w.bindFramebuffer(T,t),w.framebufferTexture2D(T,F,B,e,0),fe?w.clearColor(1,1,1,1):(Se=D.geti(me),Se[0]=Se[0]/20,Se[1]=Se[1]/20,Se[2]=Se[2]/20,w.clearColor(Se[0],Se[1],Se[2],1)),w.clear(w.COLOR_BUFFER_BIT),[e,t]}function Le(e,t,r){let a=e.createShader(t);return e.shaderSource(a,r),e.compileShader(a),a}function Ue(e,t,r){let a=e.createProgram();return e.attachShader(a,t),e.attachShader(a,r),e.linkProgram(a),a}function Ne(e){let t=200;w.bindBuffer(I,dt);let r=[];for(var a=0;a<t;++a){let e=a/t,i=D.geti(me+de+e*(ye-de));r.push(i[0]*_t,i[1]*_t,i[2]*_t)}w.bufferData(I,l(r),C),w.bindBuffer(I,yt);let i=[];for(a=0;a<t;++a){let e=(a+1)/t,r=D.geti(me+de+e*(ye-de));i.push(r[0]*_t,r[1]*_t,r[2]*_t)}w.bufferData(I,l(i),C),w.useProgram(je),w.bindBuffer(I,It),w.enableVertexAttribArray(nt),w.vertexAttribPointer(nt,3,P,!1,0,0),w.bindBuffer(I,dt),w.enableVertexAttribArray(lt),w.vertexAttribPointer(lt,3,P,!1,0,0),w.vertexAttribDivisor(lt,1),w.bindBuffer(I,yt),w.enableVertexAttribArray(ot),w.vertexAttribPointer(ot,3,P,!1,0,0),w.vertexAttribDivisor(ot,1),w.uniform1f(ct,e);let n=[];for(a=0;a<t;++a){let e=(a+.5)/t;n.push(2*e-1,.005)}w.bindBuffer(I,pt),w.bufferData(I,l(n),C),w.enableVertexAttribArray(ft),w.vertexAttribPointer(ft,2,P,!1,0,0),w.vertexAttribDivisor(ft,1),w.drawArraysInstanced(R,0,6,t),w.vertexAttribDivisor(nt,0),w.vertexAttribDivisor(lt,0),w.vertexAttribDivisor(ot,0),w.vertexAttribDivisor(ft,0)}function Oe(e=!1){w.useProgram(Ze),w.bindBuffer(I,At),e?w.bufferData(I,Bt,C):w.bufferData(I,Pt,C),w.enableVertexAttribArray(Qe),w.vertexAttribPointer(Qe,4,P,!1,0,0),w.bindBuffer(I,gt),w.bufferData(I,zt,C),w.enableVertexAttribArray(et),w.vertexAttribPointer(et,4,P,!1,0,0),w.vertexAttribDivisor(et,1),w.bindBuffer(I,pt),w.bufferData(I,Ot,C),w.enableVertexAttribArray(tt),w.vertexAttribPointer(tt,4,P,!1,0,0),w.vertexAttribDivisor(tt,1),w.bindBuffer(I,mt),w.bufferData(I,Vt,C),w.enableVertexAttribArray(rt),w.vertexAttribPointer(rt,1,P,!1,0,0),w.vertexAttribDivisor(rt,1),w.uniform4fv(it,De),w.uniform2f(at,Me/Fe,Ie/Fe),e?w.drawArraysInstanced(R,0,Tt,Lt):w.drawArraysInstanced(R,0,Rt,Lt),w.vertexAttribDivisor(et,0),w.vertexAttribDivisor(tt,0),w.vertexAttribDivisor(rt,0)}let Ve="30.0";ae&&(Ve="60.0");var t=`#version 300 es\n in vec4 ap;in vec4 ac;in vec4 as;in float al;out vec4 vc;uniform vec2 d;uniform vec4 cols[30];vec3 so(vec3 c) {float l = 0.4122214708*c.r+0.5363325363*c.g+0.0514459929*c.b;float m=0.2119034982*c.r+0.6806995451*c.g+0.1073969566*c.b;float s=0.0883024619*c.r+0.2817188376*c.g+0.6299787005*c.b;float l_=pow(l,1.0/3.0);float m_=pow(m,1.0/3.0);float s_=pow(s,1.0/3.0);return vec3(0.2104542553*l_+0.7936177850*m_-0.0040720468*s_,1.9779984951*l_-2.4285922050*m_+0.4505937099*s_,0.0259040371*l_+0.7827717662*m_-0.8086757660*s_);}vec3 os(vec3 c){float l_=c.x+0.3963377774*c.y+0.2158037573*c.z;float m_=c.x-0.1055613458*c.y-0.0638541728*c.z;float s_=c.x-0.0894841775*c.y-1.2914855480*c.z;float l=l_*l_*l_;float m=m_*m_*m_;float s =s_*s_*s_;return vec3(4.0767416621*l-3.3077115913*m+0.2309699292*s,-1.2684380046*l+2.6097574011*m-0.3413193965*s,-0.0041960863*l-0.7034186147*m+1.7076147010*s);}\n vec4 get(float l){l=${Ve}*l;int i0=int(l)%30;int i1=(i0+1)%30;float f=fract(l);vec4 col0=cols[i0];vec4 col1=cols[i1];return mix(col0,col1,f);}\n void main(){vc=get(fract(ac.x+ap.z*ac.z));vec3 lab=so(vc.xyz);vc.xyz=os(vec3(min(1.0,lab.r*al),lab.g,lab.b));if(as.w > 0.5){vc=mix(vec4(1.0,1.0,1.0,ac.w),vc,2.0*(as.w-0.5));}else{vc=mix(vec4(0.0,0.0,0.0,ac.w),vc,as.w*2.0);}vc.a=ac.w;mat2 rot=mat2(cos(ac.y),sin(ac.y),-sin(ac.y),cos(ac.y));vec2 pos=rot*ap.xy;gl_Position=vec4((as.z*pos.x+as.x)/d.x,(as.z*pos.y+as.y)/d.y,1.0,1.0);}`;
*For everyone that should still be there.* *For everyone that went through hell and came back.* *For everyone that stood on the sidelines, helpless.* *For everyone that fights, day in and day out.* We all deal with unexpected events in different ways - you can never be ready for the worst. What happens to the soul when you get too close to the end? How will you perceive the crossing to whatever awaits? Will you be alone? Or will you see the souls of the other *Departed?* --- &nbsp; *Departed* deals with the uncertainty of life, feelings of helplessness and how we might be losing touch with our humanity when everything is online, when you are not allowed to see your relatives, when you are not allowed to be with them - even at the worst of times, when you can not even know what is happening. *Departed* is a representation of what the people close to me might be going through. An experiment in composition that pushes everything I do to new extremes (with familiar elements), *Departed* works around creating various layers with different centers of interest, from colours to shapes, textures to frame.
(()=>{"use strict";{const s=e=>new Float32Array(e),l=Math.PI,f=2*l,o=Math.cos,c=Math.sin,u=Math.pow,v=Math.sqrt,x=Math.floor,h=(Math.ceil,Math.abs,Math.min),b=Math.max,y=1/3,d=1/6,p=new Float32Array([1,1,0,-1,1,0,1,-1,0,-1,-1,0,1,0,1,-1,0,1,1,0,-1,-1,0,-1,0,1,1,0,-1,1,0,1,-1,0,-1,-1]);class A{constructor(e,t,r,i,a,n,s,l,f=!1){this.x=e,this.y=t,this.sx=r,this.sy=i,this.px=r,this.py=i,this.life=200,this.frac=a,this.c=n,this.index=s,this.special=f,this.w=!1,this.s=l}}const g={init(e){this.r=this.alea(e),this.p=this.bp(this.r),this.perm=new Uint8Array(512),this.p12=new Uint8Array(512);for(var t=0;t<512;t++)this.perm[t]=this.p[255&t],this.p12[t]=this.perm[t]%12},bp(e){var t,r=new Uint8Array(256);for(t=0;t<256;t++)r[t]=t;for(t=0;t<255;t++){var i=t+~~(e()*(256-t)),a=r[t];r[t]=r[i],r[i]=a}return r},masher(){var e=4022871197;return function(t){t=t.toString();for(var r=0;r<t.length;r++){var i=.02519603282416938*(e+=t.charCodeAt(r));i-=e=i>>>0,e=(i*=e)>>>0,e+=4294967296*(i-=e)}return 2.3283064365386963e-10*(e>>>0)}},alea(){var e=0,t=0,r=0,i=1,a=this.masher();e=a(" "),t=a(" "),r=a(" ");for(var n=0;n<arguments.length;n++)(e-=a(arguments[n]))<0&&(e+=1),(t-=a(arguments[n]))<0&&(t+=1),(r-=a(arguments[n]))<0&&(r+=1);return a=null,function(){var a=2091639*e+2.3283064365386963e-10*i;return e=t,t=r,r=a-(i=0|a)}},n3(e,t,r){var i,a,n,s,l,f,o,c,u,v,h=this.p12,b=this.perm,A=(e+t+r)*y,g=x(e+A),m=x(t+A),E=x(r+A),_=(g+m+E)*d,w=e-(g-_),D=t-(m-_),R=r-(E-_);w>=D?D>=R?(l=1,f=0,o=0,c=1,u=1,v=0):w>=R?(l=1,f=0,o=0,c=1,u=0,v=1):(l=0,f=0,o=1,c=1,u=0,v=1):D<R?(l=0,f=0,o=1,c=0,u=1,v=1):w<R?(l=0,f=1,o=0,c=0,u=1,v=1):(l=0,f=1,o=0,c=1,u=1,v=0);var T=w-l+d,P=D-f+d,F=R-o+d,B=w-c+2*d,k=D-u+2*d,M=R-v+2*d,S=w-1+3*d,I=D-1+3*d,L=R-1+3*d,U=255&g,C=255&m,N=255&E,V=.6-w*w-D*D-R*R;if(V<0)i=0;else{var H=3*h[U+b[C+b[N]]];i=(V*=V)*V*(p[H]*w+p[H+1]*D+p[H+2]*R)}var O=.6-T*T-P*P-F*F;if(O<0)a=0;else{var X=3*h[U+l+b[C+f+b[N+o]]];a=(O*=O)*O*(p[X]*T+p[X+1]*P+p[X+2]*F)}var q=.6-B*B-k*k-M*M;if(q<0)n=0;else{var G=3*h[U+c+b[C+u+b[N+v]]];n=(q*=q)*q*(p[G]*B+p[G+1]*k+p[G+2]*M)}var W=.6-S*S-I*I-L*L;if(W<0)s=0;else{var z=3*h[U+1+b[C+1+b[N+1]]];s=(W*=W)*W*(p[z]*S+p[z+1]*I+p[z+2]*L)}return 32*(i+a+n+s)}},m=(a=[[0,4095,141,38,3872],[311,2815,3920,4095,0],[3822,4044,3942,3908,0,4044,2628],[37,54,4095,2966,4017,4095,54],[3685,4084,2507,1450,3822,530,1604],[4092,3801,529,2900,3379,1892],[3327,2193,1664,2303,546,2458,3529,2180,531,1898],[867,40,2180,4015,514,787,3766],[4095,1695,2810,2751,3822,1695,2185,546,3874],[257,1656,3020,3004,3822,3943],[785,1552,4090,2624,3459,4090,120],[3171,2131,3478,4023,4093,2455,546,308,18],[3021,682,120,86,2236,4044,3805,3959,4072,4023,546],[4042,3447,2425,1111,563,2748],[512,1794,3141,3957,3989,3635],[820,3476,3956,4073,3837,167],[19,1110,2218,2505,3290,3943],[18,375,1688,4041,3619],[0,291,4001,3822,4095,869,1465],[3654,4054,218,395,52],[3994,3976,514,3419,4015,1338,514,787,3766],[0,4095,0],[3838,3021,1675,1145,600,54,2],[1589,3977,2749,89,36],[4090,3800,3988,3921,2,20]],n=[],{geti:function(e){e<0&&(e*=-1),e%=1;let t=n.length,r=x(t*e),i=(r+1)%t,a=t*e-r,s=n[r],l=n[i],f=1-a,o=1/2.2;return[u(l[0],o)*a+f*u(s[0],o),u(l[1],o)*a+f*u(s[1],o),u(l[2],o)*a+f*u(s[2],o),.5]},init:function(e,t){for(var r=0;r<a[e].length;++r){let t=a[e][r],i=(15&t)/16,s=(t>>4&15)/16,l=(t>>8&15)/16;n.push([l,s,i])}}}),E=document.querySelector("canvas"),_=E.getContext("webgl2",{alpha:!1});_.getExtension("EXT_color_buffer_float"),_.getExtension("OES_texture_float_linear"),_.getExtension("EXT_float_blend");const w=_.TRIANGLES,D=_.FRAMEBUFFER,R=_.FLOAT,T=(_.UNSIGNED_BYTE,_.RGBA,_.TEXTURE_2D),P=_.COLOR_ATTACHMENT0,F=_.DEPTH_BUFFER_BIT,B=_.ARRAY_BUFFER,k=_.STATIC_DRAW,M=_.DYNAMIC_DRAW,S=_.ONE,I=_.ONE_MINUS_SRC_ALPHA,L=_.SRC_ALPHA,U=(e,t,r)=>e.getAttribLocation(t,r),C=(e,t,r)=>e.getUniformLocation(t,r),N=()=>_.createBuffer();let V,H,O,X,q,G,W=[],z=[],Y=[];g.init(tokenData.hash);let $=g.r,j=x(25*$());m.init(j);let J=$(),K=$()>.6,Q=$()>.5,Z=$()>.5,ee=$()>.6,te=2+x(3*$()),re=$()>.5;re&&(te=10);let ie=$()>.8,ae=$()*f,ne=.007*o(ae),se=.007*c(ae),le=$()>.5,fe=.002*$(),oe=.1+$(),ce=$()>.5,ue=$()>.5,ve=1.1;ue&&(ve=1.000001);let xe=[],he=1;re&&(he=.7);for(var e=0;e<te;++e)xe.push(he*(.5+u($(),2)));let be=$()>.5;be&&(oe+=.3);let ye=$()>.8,de=$()>.8?100:3+x(5*$()),pe=$()*f,Ae=$()>.9,ge=window.innerWidth,me=window.innerHeight,Ee=!0;if(ge>me){let e=9*ge/16;me>e?me=e:ge=16*me/9}else{Ee=!1;let e=9*me/16;ge>e?ge=e:me=16*ge/9}let _e=b(ge,me),we=h(ge,me);E.width=ge,E.height=me,document.body.style.backgroundColor="#111";const De=E.clientWidth,Re=E.clientHeight;let Te=Math.min(De,Re),Pe=De,Fe=Re,Be=Date.now();function ke(){let e=_.createTexture();_.bindTexture(T,e),_.texImage2D(T,0,_.RGBA32F,q,G,0,_.RGBA,R,null),_.texParameteri(T,_.TEXTURE_MIN_FILTER,_.LINEAR),_.texParameteri(T,_.TEXTURE_MAG_FILTER,_.LINEAR),_.texParameteri(T,_.TEXTURE_WRAP_S,_.MIRRORED_REPEAT),_.texParameteri(T,_.TEXTURE_WRAP_T,_.MIRRORED_REPEAT);let t=_.createFramebuffer();return _.bindFramebuffer(D,t),_.framebufferTexture2D(D,P,T,e,0),[e,t]}function Me(e,t,r){let i=e.createShader(t);return e.shaderSource(i,r),e.compileShader(i),i}function Se(e,t,r){let i=e.createProgram();return e.attachShader(i,t),e.attachShader(i,r),e.linkProgram(i),i}function Ie(){_.useProgram(Ge),_.bindBuffer(B,ot),_.bufferData(B,mt,M),_.bindBuffer(B,ct),_.bufferData(B,gt,M),_.bindBuffer(B,ft),_.enableVertexAttribArray($e),_.vertexAttribPointer($e,2,R,!1,0,0),_.bindBuffer(B,ot),_.enableVertexAttribArray(je),_.vertexAttribPointer(je,4,R,!1,0,0),_.vertexAttribDivisor(je,1),_.bindBuffer(B,ct),_.enableVertexAttribArray(Je),_.vertexAttribPointer(Je,3,R,!1,0,0),_.vertexAttribDivisor(Je,1),_.uniform2f(Ke,Pe/Te,Fe/Te),_.drawArraysInstanced(w,0,vt,yt),_.vertexAttribDivisor(je,0),_.vertexAttribDivisor(Je,0),_.blendFuncSeparate(L,I,S,I)}var t=`precision highp float;varying vec2 v;uniform sampler2D t;void main(){vec4 c=texture2D(t,v);vec2 q=v*(vec2(1.0)-v.yx);float g=q.x*q.y*100.0;g=min(1.0,pow(g,0.1));gl_FragColor=pow(c*g*${ve},vec4(2,2,2,1));}`,r=`attribute vec4 ap;attribute vec4 ac;attribute vec3 as;varying vec4 vc;uniform vec2 d;void main(){vc=ac;gl_Position=vec4((as.z*ap.x+as.${Ee?"x":"y"})/d.x,(as.z*ap.y${Ee?"+as.y":"-as.x"})/d.y,ap.zw);}`;const Le=_.VERTEX_SHADER,Ue=_.FRAGMENT_SHADER,Ce=Me(_,Le,r),Ne=Me(_,Ue,"precision highp float;varying vec4 vc;void main(){gl_FragColor=vc;}"),Ve=Me(_,Le,"attribute vec4 ap;attribute vec2 at;varying vec2 t;void main(){gl_Position=vec4(ap.xyz,1.0);t=at;}"),He=Me(_,Ue,"precision highp float;varying vec2 t;uniform sampler2D u;uniform vec2 d;uniform float b;void main(){float d_c=length(t-vec2(0.5)); float k=b*d_c;float h=d.x;float v=d.y;vec4 s=vec4(0.0);s+=texture2D(u,vec2(t.x-4.0*k*h,t.y-4.0*k*v))*0.016216;s+=texture2D(u,vec2(t.x-3.0*k*h,t.y-3.0*k*v))*0.054054;s+=texture2D(u,vec2(t.x-2.0*k*h,t.y-2.0*k*v))*0.121621;s+=texture2D(u,vec2(t.x-1.0*k*h,t.y-1.0*k*v))*0.194594;s+=texture2D(u,vec2(t.x,t.y))*0.227027;s+=texture2D(u,vec2(t.x+1.0*k*h,t.y+1.0*k*v))*0.194594;s+=texture2D(u,vec2(t.x+2.0*k*h,t.y+2.0*k*v))*0.121621;s+=texture2D(u,vec2(t.x+3.0*k*h,t.y+3.0*k*v))*0.054054;s+=texture2D(u,vec2(t.x+4.0*k*h,t.y+4.0*k*v))*0.016216;gl_FragColor=clamp(s,0.,1.);}"),Oe=Me(_,Le,"attribute vec4 ap;attribute vec2 at;varying vec2 v;void main(){gl_Position=vec4(ap.xyz,1.0);v=at;}"),Xe=Me(_,Ue,t),qe=Me(_,Ue,"precision highp float;varying vec2 v;uniform vec4 c0,c1;void main(){gl_FragColor=mix(c0,c1,v.y);}"),Ge=Se(_,Ce,Ne),We=Se(_,Ve,He),ze=Se(_,Oe,Xe),Ye=Se(_,Oe,qe),$e=U(_,Ge,"ap"),je=U(_,Ge,"ac"),Je=U(_,Ge,"as"),Ke=C(_,Ge,"d"),Qe=U(_,We,"ap"),Ze=U(_,We,"at"),et=C(_,We,"d"),tt=C(_,We,"b"),rt=U(_,ze,"ap"),it=U(_,ze,"at"),at=U(_,Ye,"ap"),nt=U(_,Ye,"at"),st=C(_,Ye,"c0"),lt=C(_,Ye,"c1"),ft=N(),ot=N(),ct=N();q=Pe,G=Fe,[V,H]=ke(),[O,X]=ke();let ut=[],vt=180;for(e=0;e<60;++e){let t=e/60*f,r=(e+1)/60*f;ut.push(0,0,o(t),c(t),o(r),c(r))}_.bindBuffer(B,ft),_.bufferData(B,s(ut),M);const xt=N();_.bindBuffer(B,xt);const ht=s([-1,-1,-1,1,1,-1,1,1,-1,1,1,-1]);_.bufferData(B,ht,k);const bt=N();_.bindBuffer(B,bt),_.bufferData(B,s([0,0,0,1,1,0,1,1,0,1,1,0]),k);let yt=0,dt=m.geti(J),pt=m.geti(J+.05+.2*$()),At=.5;if(Ae){At=1.1;let e=.85;dt[0]=b(e,h(dt[0]*At,1)),dt[1]=b(e,h(dt[1]*At,1)),dt[2]=b(e,h(dt[2]*At,1)),pt[0]=b(e,h(pt[0]*At,1)),pt[1]=b(e,h(pt[1]*At,1)),pt[2]=b(e,h(pt[2]*At,1))}else dt[0]=dt[0]*At,dt[1]=dt[1]*At,dt[2]=dt[2]*At,pt[0]=pt[0]*At,pt[1]=pt[1]*At,pt[2]=pt[2]*At;_.clear(F),_.disable(_.DEPTH_TEST),_.enable(_.BLEND),_.blendFuncSeparate(L,I,S,I),z=[],W=[];let gt=s(z),mt=s(W),Et=0,_t=0,wt=!1;E.addEventListener("pointerdown",(e=>{_t=Et})),window.addEventListener("keydown",(e=>{wt=!wt}));let Dt=[];for(var i=0;i<te;++i){let e=1*i/te;Dt.push(new A(0,0,-200,0,e,null,0,0))}let Rt=2*$()-1,Tt=2*$()-1;function Pt(e){if(e=(e+f)%f,ye){let t=o(l/de)/o(e%(f/de)-l/de);return[o(e-pe)*t,c(e-pe)*t]}if(be){let t=e/f%1,r=4*t-2,i=Rt*t+(1-t)*Tt;return r+=g.n3(2.0687,.5*oe*o(t*f),.5*oe*c(t*f)),i+=g.n3(-4.87,.5*oe*o(t*f),.5*oe*c(t*f)),[r,i]}return[g.n3(2.0687,.5*oe*o(e),.5*oe*c(e)),g.n3(-4.87,.5*oe*o(e),.5*oe*c(e))]}let Ft=10,Bt=-10,kt=10,Mt=-10;for(e=0;e<400;e++){let t=Pt(e/400*f);Ft=h(t[0],Ft),kt=h(t[1],kt),Bt=b(t[0],Bt),Mt=b(t[1],Mt)}let St=b(Bt-Ft,Mt-kt)/1.5;if(!ye&&be){let e=Pt(0),t=Pt(f-.001);Ft=e[0],Bt=t[0],St=(Bt-Ft)/2.1}let It=.5*(Bt+Ft),Lt=.5*(Mt+kt);function Ut(e){if(requestAnimationFrame(Ut),wt)return;Et+=.01;let t=Date.now()-Be,r=864e5,i=t>r&&t<8646e4,a=t-r,n=i?a/1e3:0,u=(m.geti(a/1e3),g.n3(1,2.54,.0042*Et)),h=g.n3(2,2.54,.0012*Et),b=.2*g.n3(8,.0012*Et,1.8),y=(g.n3(4.87,.002*Et,2.08)+1)*f;z=[],W=[];for(var d=0;d<te;++d){let e=Dt[d],t=1*d/te,r=.1*t,i=g.n3(.01*Et,d+24.547,1.054)*l,a=.15*Et+i+t*f,n=Pt(a);e.x=(n[0]-It)/St*_e/Te+g.n3(.1*Et,2.5,1+r)*b,e.y=(n[1]-Lt)/St*we/Te+g.n3(.1*Et,1,4.2+r)*b;let s=Pt(a+.02),o=(s[0]-It)/St*_e/Te+g.n3(.1*Et,2.5,1+r)*b,c=(s[1]-Lt)/St*we/Te+g.n3(.1*Et,1,4.2+r)*b,v=.5-.5*c,x=[dt[0]*v+(1-v)*pt[0],dt[1]*v+(1-v)*pt[1],dt[2]*v+(1-v)*pt[2]];for(var p=0;p<10;p++){let e=1-.1*p;9==p?W.push(1,1,1,1):W.push(x[0],x[1],x[2],.03*e),z.push(o,c,.025*e)}e.frac=J+.2*Et/f+$()*u+t,-200==Dt[d].px&&(e.px=e.x,e.py=e.y),e.sx=e.x-e.px,e.sy=e.y-e.py,e.px=e.x,e.py=e.y,ce?(e.sx+=.002*($()-.5),e.sy+=.002*($()-.5)):(e.sx+=5e-4*($()-.5),e.sy+=5e-4*($()-.5)),$()>.5&&(e.sx*=-1,e.sy*=-1)}let E=.005;for(re&&(E*=.3),d=0;d<te;++d){let e=Dt[d];for(var P=d+1;P<te;++P){let t=Dt[P],r=t.x-e.x,i=t.y-e.y,a=v(r*r+i*i);if(a<.5){let s=2*(.5-a);e.sx-=s*r/a*E,e.sy-=s*i/a*E,t.sx+=s*r/a*E,t.sy+=s*i/a*E,s=.01*(.5-a);let l=x(100*a*$())+10;if(Y.length<2e4||$()>.8)for(p=0;p<=l;++p){let a=1*p/l,f=e.x+r*a,o=e.y+i*a,c=a*(1-a)*.2,u=m.geti(e.frac+(t.frac-e.frac)*a+n);u[3]=s;let v=new A(f,o,0,0,c,u,0,1,!0);v.life=100,Y.push(v)}}}let t=e.frac;$()>.95&&(t+=.5);let r=m.geti(t);$()>.95&&(r[0]*=.5,r[1]*=.5,r[2]*=.5);let i=d;for(;i==d;)i=x($()*te);if(re&&$()>.9||$()>.2+.1*te){let t=new A(e.x,e.y,e.sx,e.sy,e.frac,r,i,xe[d]);le&&$()>.95&&(t.w=!0,t.c[3]*=.4),Y.push(t)}}for(p=0;p<Y.length;++p){let e=Y[p],t=e.life/200;if(e.life-=1,0==e.special){if(ie){let t=Math.atan2(e.sy,e.sx),r=v(e.sx*e.sx+e.sy*e.sy);t=x(5*(t+f-y)/f)*f/5+y,e.x+=r*o(t),e.y+=r*c(t)}else e.x+=e.sx,e.y+=e.sy;e.sx*=.99,e.sy*=.99,e.frac+=fe;let t=e.frac;Z&&(t+=.05*$());let r=m.geti(t+n);if(e.c[0]=r[0],e.c[1]=r[1],e.c[2]=r[2],e.w&&(e.c=[1,1,1,e.c[3]]),Q){let t=g.n3(.1*e.x,.1*e.y,.05*Et)*f*2;e.sx+=61e-6*o(t)*h,e.sy+=61e-6*c(t)*h}else e.sx+=2e-4*g.n3(e.x,e.y,.05*Et)*h,e.sy+=2e-4*g.n3(e.x,e.y,.05*-Et)*h;if(K){let t=Dt[e.index].x-e.x,r=Dt[e.index].y-e.y,i=v(t*t+r*r);e.sx+=t/i*2e-5,e.sy+=r/i*2e-5}}if(ee){z.push(e.x+ne,e.y+se,.04*t*(1-t)*e.s);let r=.2;if(W.push(e.c[0]*r,e.c[1]*r,e.c[2]*r,.3*e.c[3]),z.push(e.x,e.y,.04*t*(1-t)*e.s),ue)W.push(t+e.c[0]*(1-t),t+e.c[1]*(1-t),t+e.c[2]*(1-t),e.c[3]);else{let r=.4*t+1.1*(1-t);W.push(e.c[0]*r,e.c[1]*r,e.c[2]*r,e.c[3])}}else{z.push(e.x,e.y,.04*t*(1-t)*e.s);let r=.2*t+1.1*(1-t);ue?W.push(t+e.c[0]*(1-t),t+e.c[1]*(1-t),t+e.c[2]*(1-t),e.c[3]):W.push(e.c[0]*r,e.c[1]*r,e.c[2]*r,e.c[3])}}Y=Y.filter((e=>e.life>0)),yt=z.length/3,gt=s(z),mt=s(W),_.bindFramebuffer(D,H),_.viewport(0,0,q,G),_.useProgram(Ye),_.enableVertexAttribArray(at),_.bindBuffer(B,xt),_.vertexAttribPointer(at,2,R,!1,0,0),_.enableVertexAttribArray(nt),_.bindBuffer(B,bt),_.vertexAttribPointer(nt,2,R,!1,0,0);let k=i?.01:1e-4;Et<.1&&(k=1),_.uniform4f(st,dt[0],dt[1],dt[2],k),_.uniform4f(lt,pt[0],pt[1],pt[2],k),_.drawArrays(w,0,6);let M=.025*Te/1e3;if(_.bindFramebuffer(D,X),_.viewport(0,0,q,G),_.clear(F),_.useProgram(We),_.bindTexture(T,V),_.bindBuffer(B,xt),_.vertexAttribPointer(Qe,2,R,!1,0,0),_.enableVertexAttribArray(Qe),_.enableVertexAttribArray(Ze),_.bindBuffer(B,bt),_.vertexAttribPointer(Ze,2,R,!1,0,0),_.uniform2f(et,.5/q,0),_.uniform1f(tt,M),_.drawArrays(w,0,6),_.bindFramebuffer(D,H),_.viewport(0,0,q,G),_.clear(F),_.bindTexture(T,O),_.uniform2f(et,0,.5/G),_.drawArrays(w,0,6),_.bindFramebuffer(D,H),_.viewport(0,0,q,G),Ie(),_.bindFramebuffer(D,null),_.viewport(0,0,_.canvas.width,_.canvas.height),_.useProgram(ze),_.bindTexture(T,V),_.enableVertexAttribArray(rt),_.bindBuffer(B,xt),_.vertexAttribPointer(rt,2,R,!1,0,0),_.enableVertexAttribArray(it),_.bindBuffer(B,bt),_.vertexAttribPointer(it,2,R,!1,0,0),_.drawArrays(w,0,6),Et<_t+5){for(z=[],W=[],p=0;p<800;p++){let e=Pt(p/800*f),t=(e[0]-It)/St*_e/Te,r=(e[1]-Lt)/St*we/Te,i=(_t+5-Et)/5;z.push(t,r,.01*i),Ae?W.push(0,0,0,.1*i):W.push(1,1,1,.1*i)}gt=s(z),mt=s(W),yt=z.length/3,Ie()}}window.requestAnimationFrame(Ut)}var a,n})();
(()=>{"use strict";{const b=e=>new Float32Array(e),p=2*Math.PI,A=Math.cos,g=Math.sin,x=Math.pow,d=Math.sqrt,m=Math.floor,E=(Math.ceil,Math.abs),y=Math.min,_=Math.max,D={init(e){this.r=this.alea(e)},masher(){var e=4022871197;return function(t){t=t.toString();for(var r=0;r<t.length;r++){var a=.02519603282416938*(e+=t.charCodeAt(r));a-=e=a>>>0,e=(a*=e)>>>0,e+=4294967296*(a-=e)}return 2.3283064365386963e-10*(e>>>0)}},alea(){var e=0,t=0,r=0,a=1,i=this.masher();e=i(" "),t=i(" "),r=i(" ");for(var n=0;n<arguments.length;n++)(e-=i(arguments[n]))<0&&(e+=1),(t-=i(arguments[n]))<0&&(t+=1),(r-=i(arguments[n]))<0&&(r+=1);return i=null,function(){var i=2091639*e+2.3283064365386963e-10*a;return e=t,t=r,r=i-(a=0|i)}}},T=(h=[[0,4095],[257,1656,3020,3004,3822,3943],[4090,3800,3988,3921,2,20],[785,1552,4090,2624,3459,4090,120],[273,875,410,1692,4037,2269,2798],[1589,3977,3021,89,36],[3838,3021,2220,1675,1145,600,54,2],[3171,2131,3478,4023,4093,2455,546,308,18],[3021,682,120,86,2236,4044,3805,3993,4074,4025,546],[1739,1417,1914,3942,4042,4076],[4078,2988,70,154,2543,3567,138,4060],[2149,3685,3990,4041,3547,3566],[4059,3481,2425,1111,563,2748],[512,1794,3141,3957,3989,3635],[1366,2234,3053,4095,4059,4012],[820,3476,3956,4073,3837,167],[19,1110,2218,2505,3290,3943],[18,375,1688,4041,3619],[1722,2779,3836,3978,1109],[2633,3434,3754,4075,3309,2558],[3685,4091,2507,1450,3822,530,1604],[0,291,4001,3822,4095,869,1465],[3654,4054,218,395,52],[3994,3976,514,3419,4015,1338,514,787,3766],[532,1593,4093,2396,3439,2030]],c=[],{geti:function(e){e<0&&(e*=-1),e%=1;let t=c.length,r=m(t*e),a=(r+1)%t,i=t*e-r,n=c[r],u=c[a],o=1-i;return[u[0]*i+o*n[0],u[1]*i+o*n[1],u[2]*i+o*n[2],1]},init:function(e){for(var t=0;t<h[e].length;++t){let r=h[e][t],a=(15&r)/16,i=(r>>4&15)/16,n=(r>>8&15)/16;c.push([n,i,a])}}}),P=document.querySelector("canvas").getContext("webgl",{alpha:!1}),R=P.getExtension("ANGLE_instanced_arrays"),F=P.TRIANGLES,B=P.FRAMEBUFFER,w=P.FLOAT,L=P.UNSIGNED_BYTE,M=P.RGBA,N=P.TEXTURE_2D,S=P.COLOR_ATTACHMENT0,I=P.COLOR_BUFFER_BIT|P.DEPTH_BUFFER_BIT,C=P.ARRAY_BUFFER,G=P.STATIC_DRAW,U=P.DYNAMIC_DRAW,O=P.ONE,V=P.ONE_MINUS_SRC_ALPHA,H=P.SRC_ALPHA,X=(e,t,r)=>e.getAttribLocation(t,r),z=(e,t,r)=>e.getUniformLocation(t,r),W=()=>P.createBuffer();let k,Y,q,j,J,K=[],Q=[];D.init(42);let Z=D.r,$=23,ee=[],te=[],re=[],ae=[],ie=[],ne=[],ue=[];for(var e=0;e<$;++e)for(var t=0;t<$;++t){let r=1;11==e&&11==t&&(r=0),ee.push(e/23+.5/23+r*(Z()-.5)/40),te.push(t/23+.5/23+r*(Z()-.5)/40),re.push(.3+.5*Z()),ae.push(Z()),ie.push(200),ne.push(-1),ue.push(e*$+t)}for(var r=0;r<200;++r)ee.push(.05+.9*Z()),te.push(.05+.9*Z()),re.push(.3+.5*Z()),ae.push(Z()),ie.push(200),ne.push(-1),ue.push($*$+r);let oe=[],fe=0;for(ne[0]=0,ie[0]=0;ue.length>0&&fe<5e3;){let e=-1,t=300;for(r=0;r<ue.length;++r){let a=ie[ue[r]];a<t&&(t=a,e=r)}let a=ue.splice(e,1)[0];for(ne[a],r=0;r<ue.length;++r){let e=ue[r],t=d((ee[a]-ee[e])*(ee[a]-ee[e])+(te[a]-te[e])*(te[a]-te[e]));t<ie[e]&&(ne[e]=a,ie[e]=t)}fe+=1}let le=[];for(let e=0;e<529;++e)le.push(e);let se=le.length;for(;0!==se;){let e=m(Z()*se);se-=1;let t=le[se];le[se]=le[e],le[e]=t}let ve=le.indexOf(0);le[ve]=le[0],le[0]=0;let he=le[tokenData.tokenId%1e3],ce=$-1-m(he/$),be=he%$,pe=[],Ae=[],ge=[],xe=[],de=0,me=[],Ee=ee.length;for(r=0;r<Ee;++r)ee[r]=46*ee[r]-(1+2*be),te[r]=46*te[r]-(1+2*ce),E(ee[r])<2&&E(te[r])<2&&(pe.push(ee[r]),Ae.push(te[r]),ge.push(re[r]),xe.push(ae[r]),oe.push([r,ne[r]]),me.push(de),de++);for(r=0;r<Ee;++r)E(ee[r])<3&&E(te[r])<3&&(E(ee[r])>=2||E(te[r])>=2)&&(pe.push(ee[r]),Ae.push(te[r]),ge.push(re[r]),xe.push(ae[r]),oe.push([r,ne[r]]));me.sort((function(e,t){let r=pe[e]*pe[e]+Ae[e]*Ae[e],a=pe[t]*pe[t]+Ae[t]*Ae[t];return r<a?-1:r>a?1:0})),D.init(tokenData.hash),Z=D.r;let ye=Z()>.5,_e=Z()>.6,De=Z()>.6,Te=Z()>.4,Pe=!Te&&Z()>.8,Re=!Te&&!Pe&&Z()>.9,Fe=Z()>.98,Be=!Fe&&Z()>.4,we=!Fe&&Z()>.8,Le=Z()>.3,Me=Z()>.5,Ne=Z()>.05,Se=.1+.1*Z();Z()<.3&&(Se=0);let Ie=.05+.05*Z(),Ce=0,Ge=1;Te&&(Ce=1,Ge=0),Pe&&(Ce=2,Ge=2),Re&&(Ce=5+m(5*Z()),Ge=.2),Fe&&(Ce=1,Ge=-2);let Ue=0;if(be>0&&be<22&&ce>0&&ce<22){let e=m((be-1)/3),t=m((ce-1)/3);Ue=3==e&&3==t?0:(m((be-1)/3)+7*m((ce-1)/3))%24+1}T.init(Ue);let Oe=Z();function a(){let e=P.createTexture();P.bindTexture(N,e),P.texImage2D(N,0,M,J,J,0,M,L,null),P.texParameteri(N,P.TEXTURE_MIN_FILTER,P.LINEAR),P.texParameteri(N,P.TEXTURE_MAG_FILTER,P.LINEAR),P.texParameteri(N,P.TEXTURE_WRAP_S,P.CLAMP_TO_EDGE),P.texParameteri(N,P.TEXTURE_WRAP_T,P.CLAMP_TO_EDGE);let t=P.createFramebuffer();return P.bindFramebuffer(B,t),P.framebufferTexture2D(B,S,N,e,0),[e,t]}function i(e,t,r){let a=e.createShader(t);return e.shaderSource(a,r),e.compileShader(a),a}function n(e,t,r){let a=e.createProgram();return e.attachShader(a,t),e.attachShader(a,r),e.linkProgram(a),a}function u(){P.enable(P.BLEND),P.blendFuncSeparate(H,V,O,V),P.useProgram(Je),P.bindBuffer(C,bt),P.bufferData(C,Rt,U),P.bindBuffer(C,pt),P.bufferData(C,Pt,U),P.bindBuffer(C,ct),P.enableVertexAttribArray($e),P.vertexAttribPointer($e,2,w,!1,0,0),P.bindBuffer(C,bt),P.enableVertexAttribArray(et),P.vertexAttribPointer(et,4,w,!1,0,0),R.vertexAttribDivisorANGLE(et,1),P.bindBuffer(C,pt),P.enableVertexAttribArray(tt),P.vertexAttribPointer(tt,3,w,!1,0,0),R.vertexAttribDivisorANGLE(tt,1),R.drawArraysInstancedANGLE(F,0,xt,yt),R.vertexAttribDivisorANGLE(et,0),R.vertexAttribDivisorANGLE(tt,0)}function o(e,t=1){P.bindFramebuffer(B,j),P.viewport(0,0,J,J),P.clear(I),P.useProgram(Ke),P.bindTexture(N,k),P.bindBuffer(C,dt),P.vertexAttribPointer(rt,2,w,!1,0,0),P.enableVertexAttribArray(rt),P.enableVertexAttribArray(at),P.bindBuffer(C,Et),P.vertexAttribPointer(at,2,w,!1,0,0),P.uniform2f(it,1/At,0),P.uniform1f(nt,e),P.uniform1f(ut,t),P.drawArrays(F,0,6),P.bindFramebuffer(B,Y),P.viewport(0,0,J,J),P.clear(I),P.bindTexture(N,q),P.uniform2f(it,0,1/At),P.drawArrays(F,0,6)}Z();const Ve=P.VERTEX_SHADER,He=P.FRAGMENT_SHADER,Xe=i(P,Ve,"attribute vec4 ap;attribute vec4 ac;attribute vec3 as;varying vec4 vc;void main(){vc=ac;gl_Position=vec4(as.z*ap.x+as.x,as.z*ap.y+as.y,ap.zw);}"),ze=i(P,He,"precision highp float;varying vec4 vc;void main(){gl_FragColor=vc;}"),We=i(P,Ve,"attribute vec4 ap;attribute vec2 at;varying vec2 vt;void main(){gl_Position=vec4(ap.xyz,1.0);vt=at;}"),ke=i(P,He,"precision highp float;varying vec2 vt;uniform sampler2D u;uniform vec2 d;uniform float b;uniform float sc;void main(){float h=d.x;float v=d.y;vec4 s=vec4(0.0);vec2 t=(vt-vec2(0.5))*sc+vec2(0.5);s+=texture2D(u,vec2(t.x-4.0*b*h,t.y-4.0*b*v))*0.016216;s+=texture2D(u,vec2(t.x-3.0*b*h,t.y-3.0*b*v))*0.054054;s+=texture2D(u,vec2(t.x-2.0*b*h,t.y-2.0*b*v))*0.121621;s+=texture2D(u,vec2(t.x-1.0*b*h,t.y-1.0*b*v))*0.194594;s+=texture2D(u,vec2(t.x,t.y))*0.227027;s+=texture2D(u,vec2(t.x+1.0*b*h,t.y+1.0*b*v))*0.194594;s+=texture2D(u,vec2(t.x+2.0*b*h,t.y+2.0*b*v))*0.121621;s+=texture2D(u,vec2(t.x+3.0*b*h,t.y+3.0*b*v))*0.054054;s+=texture2D(u,vec2(t.x+4.0*b*h,t.y+4.0*b*v))*0.016216;gl_FragColor=s;}"),Ye=i(P,Ve,"attribute vec4 ap;attribute vec2 at;varying vec2 v;void main(){gl_Position=vec4(ap.xyz,1.0);v=at;}"),qe=i(P,He,"precision highp float;varying vec2 v;uniform sampler2D t;void main(){vec4 c=texture2D(t,v);gl_FragColor=c;}"),je=i(P,He,"precision highp float;varying vec2 v;uniform vec4 c0,c1;void main(){gl_FragColor=mix(pow(c0,vec4(1.1)),pow(c1,vec4(0.9)),v.y);}"),Je=n(P,Xe,ze),Ke=n(P,We,ke),Qe=n(P,Ye,qe),Ze=n(P,Ye,je),$e=X(P,Je,"ap"),et=X(P,Je,"ac"),tt=X(P,Je,"as"),rt=X(P,Ke,"ap"),at=X(P,Ke,"at"),it=z(P,Ke,"d"),nt=z(P,Ke,"b"),ut=z(P,Ke,"sc"),ot=X(P,Qe,"ap"),ft=X(P,Qe,"at"),lt=X(P,Ze,"ap"),st=X(P,Ze,"at"),vt=z(P,Ze,"c0"),ht=z(P,Ze,"c1"),ct=W(),bt=W(),pt=W();let At=y(window.innerWidth,window.innerHeight);J=2*At,P.canvas.width=At,P.canvas.height=At,[k,Y]=a(),[q,j]=a();let gt=[],xt=180;if(Ne)for(r=0;r<60;++r){let e=r/60*p,t=(r+1)/60*p;gt.push(0,0,A(e),g(e),A(t),g(t))}else for(xt=360,r=0;r<60;++r){let e=r/60*p,t=(r+1)/60*p;gt.push(A(e),g(e),A(t),g(t),.8*A(t),.8*g(t),.8*A(t),.8*g(t),A(e),g(e),.8*A(e),.8*g(e))}P.bindBuffer(C,ct),P.bufferData(C,b(gt),U);const dt=W();P.bindBuffer(C,dt);const mt=b([-1,-1,-1,1,1,-1,1,1,-1,1,1,-1]);P.bufferData(C,mt,G);const Et=W();P.bindBuffer(C,Et),P.bufferData(C,b([0,0,0,1,1,0,1,1,0,1,1,0]),G);let yt=0;Ue=m(Z());let _t=T.geti(Oe),Dt=T.geti(Oe+.15+.3*Z()),Tt=1;for(ye&&(Tt=.5,_t[0]*=Tt,_t[1]*=Tt,_t[2]*=Tt,Dt[0]*=Tt,Dt[1]*=Tt,Dt[2]*=Tt),P.clear(I),P.bindFramebuffer(B,Y),P.viewport(0,0,J,J),P.useProgram(Ze),P.enableVertexAttribArray(lt),P.bindBuffer(C,dt),P.vertexAttribPointer(lt,2,w,!1,0,0),P.enableVertexAttribArray(st),P.bindBuffer(C,Et),P.vertexAttribPointer(st,2,w,!1,0,0),P.uniform4f(ht,_t[0],_t[1],_t[2],1),P.uniform4f(vt,Dt[0],Dt[1],Dt[2],1),P.drawArrays(F,0,6),Q=[],K=[],yt=0,r=0;r<80;++r){Q.push(1.5*(Z()-.5),1.5*(Z()-.5),.1+.1*Z());let e=T.geti(Z());K.push(1.2*e[0],1.2*e[1],1.2*e[2],.2+.04*Z()),yt++}for(r=0;r<800;++r){Q.push(1.7*Z()-.85,1.7*Z()-.85,.1+.1*Z());let e=T.geti(Z());K.push(.8*e[0],.8*e[1],.8*e[2],.04+.04*Z()),yt++}let Pt=b(Q),Rt=b(K);u();for(let e=0;e<20;++e)o(1*At/1e3,.999);Q=[],K=[],yt=0;let Ft=[],Bt=100;for(r=0;r<Bt*Bt;++r)Ft.push([]);function f(e,t,r,a){let i=oe[a][0],n=oe[a][1];if(i==n)return 1e4;let u=ee[i],o=te[i],f=ee[n],l=te[n],s=(e-u)*(f-u)+(t-o)*(l-o);s/=(f-u)*(f-u)+(l-o)*(l-o),s=_(0,y(1,s));let v=u+(f-u)*s,h=o+(l-o)*s;return d((e-v)*(e-v)+(t-h)*(t-h))}function l(e,t,r){let a=m((e+1)/2*Bt),i=m((t+1)/2*Bt);a>=0&&a<Bt&&i>=0&&i<Bt&&Ft[a*Bt+i].push(r)}function s(e,t,r,a){if(E(e)>1||E(t)>1)return!1;let i=[],n=m((e+1)/2*Bt),u=m((t+1)/2*Bt),o=_(0,n-2),f=_(0,u-2),l=y(Bt-1,n+2),s=y(Bt-1,u+2);for(var v=o;v<=l;++v)for(var h=f;h<=s;++h)for(var c=0;c<Ft[v*Bt+h].length;++c)i.push(Ft[v*Bt+h][c]);for(c=0;c<i.length;++c){let n=i[c];if(n!=a){let a=Q[3*n],i=Q[3*n+1],u=Q[3*n+2];if(d((e-a)*(e-a)+(t-i)*(t-i))-r-u<0)return!1}}return!0}let wt=.5,Lt=Z()*p,Mt=0,Nt=1,St=0,It=0,Ct=0,Gt=[];for(r=0;r<de;++r)Gt.push(Z());for(var v=0;v<60;++v){let e=v/60;for(r=0;r<de;++r){let t=Gt[r];Q.push(pe[r],Ae[r],(.3+.3*t)*(1-e));let a=T.geti(t+Oe+e+.1*Z());K.push(a[0],a[1],a[2],.05+.051*e),yt++}}Z();let Ut=0,Ot=0;for(;Ot<1e5;){let e=!1,t=!1,r=!1,a=!0,i=.01*Z()+5e-4,n=0,u=!1;_e&&Z()<.2&&(e=!0),e&&Z()<.2&&(t=!0),De&&Z()<.1&&(r=!0),r&&Z()<.2&&(t=!0),Me&&Z()<.3&&(u=!0);let o=we||Be&&Z()>.8,h=[],c=!1,b=(.5+.5*Z())*i+1e-4,_=b,D=wt,P=Z();for(;Ut<.5&&E(Mt)<.5;){let l=_;It=pe[St]+A(Mt+Lt)*(wt+_),Ct=Ae[St]+g(Mt+Lt)*(wt+_);let m=2*E(Mt),R=s(It,Ct,1*l,yt-1),F=1,B=!1;for(v=0;v<oe.length;++v)F=y(F,f(It,Ct,0,v));F<.1&&(B=Z()>10*F,l*=.2*(1-10*F)+1);let w=0;if(!B){let e=830;for(v=0;v<de;++v){let t=d((It-pe[v])*(It-pe[v])+(Ct-Ae[v])*(Ct-Ae[v]));e=y(e,E(t-ge[v])/.05)}e<Z()&&(R=!1,c=!0),e<1&&(w=.4*(1-e))}n=(Mt+Lt)*Ce/p+w+Oe+Ge*wt+.2*St+Z()*Se,0!=Se||Re||(n+=.2*P),o&&(n+=.1),E(wt-1.5*ge[St])/Ie<Z()&&(n+=.5*Z());let L=T.geti(n);if(F<.1&&(L=T.geti(n+.1*(1-10*F))),B&&(L[0]=y(L[0]+.1+.5*(1-10*F),1),L[1]=y(L[1]+.1+.5*(1-10*F),1),L[2]=y(L[2]+.1+.5*(1-10*F),1)),R){if(u&&!t){let e=T.geti(n+.1+.1*Z());e[3]=.05,h.push([It,Ct,2*l,e,!1])}if(t||h.push([It,Ct,l,L,!0]),Le&&Z()>.8||e||r){let t=T.geti(Oe+wt+.2+.2*St+.1*Z());r&&(t[0]=0,t[1]=0,t[2]=0),e&&(t[0]=y(t[0]+.4,1),t[1]=y(t[1]+.4,1),t[2]=y(t[2]+.4,1)),h.push([It,Ct,.5*l,t,!1])}if(b=_,_=(.5+.5*Z())*(1-m)*i+1e-4,Fe)wt+=.8*l*Nt,Mt+=2*l/wt*Nt,Ut+=.1*l;else if(o)wt+=2*l,Ut+=2*l;else{let e=-(x(b+_,2)-x(D+_,2)-x(D+b,2))/(2*(D+b)*(D+_));Mt+=Nt*Math.acos(e),Ut+=l*wt}}else a=!1,Ut=.5}if(h.length>2||c)for(v=0;v<h.length;++v){let e=h[v][0],t=h[v][1],r=h[v][2],a=h[v][3],i=h[v][4];Q.push(e,t,r),K.push(a[0],a[1],a[2],a[3]),i&&l(e,t,yt),yt++}if(h=[],Ut=0,Mt=0,Z()>.5&&(Nt*=-1),a&&de>1){let e=St;for(;St==e;)St=m(Z()*de);Lt=Math.atan2(Ct-Ae[St],It-pe[St]),wt=d((It-pe[St])*(It-pe[St])+(Ct-Ae[St])*(Ct-Ae[St])),v++,(E(It)>1||E(Ct)>1)&&(St=m(Z()*de),wt=.2,Lt=Z()*p)}else St=me[m(x(Z(),3)*de)],Lt=Z()*p,wt=Z()*Z()*Z()*Z()*2.5*(.75+.5*xe[St]);Ot++}Pt=b(Q),Rt=b(K);for(let e=0;e<8;++e)u(),o(.7*At/1e3,1);u(),o(.1*At/1e3,1),P.bindFramebuffer(B,null),P.viewport(0,0,P.canvas.width,P.canvas.height),P.clear(I),P.useProgram(Qe),P.bindTexture(N,k),P.enableVertexAttribArray(ot),P.bindBuffer(C,dt),P.vertexAttribPointer(ot,2,w,!1,0,0),P.enableVertexAttribArray(ft),P.bindBuffer(C,Et),P.vertexAttribPointer(ft,2,w,!1,0,0),P.drawArrays(F,0,6)}var h,c})();
(()=>{"use strict";{const v=e=>new Float32Array(e),l=Math.PI,u=2*l,c=Math.cos,b=Math.sin,s=Math.pow,h=Math.sqrt,A=Math.floor,x=(Math.ceil,Math.abs),m=.5*(h(3)-1),d=(3-h(3))/6,g=new Float32Array([1,1,0,-1,1,0,1,-1,0,-1,-1,0,1,0,1,-1,0,1,1,0,-1,-1,0,-1,0,1,1,0,-1,1,0,1,-1,0,-1,-1]),p={init(e){this.r=this.alea(e),this.p=this.bp(this.r),this.perm=new Uint8Array(512),this.p12=new Uint8Array(512);for(var t=0;t<512;t++)this.perm[t]=this.p[255&t],this.p12[t]=this.perm[t]%12},bp(e){var t,r=new Uint8Array(256);for(t=0;t<256;t++)r[t]=t;for(t=0;t<255;t++){var a=t+~~(e()*(256-t)),i=r[t];r[t]=r[a],r[a]=i}return r},masher(){var e=4022871197;return function(t){t=t.toString();for(var r=0;r<t.length;r++){var a=.02519603282416938*(e+=t.charCodeAt(r));a-=e=a>>>0,e=(a*=e)>>>0,e+=4294967296*(a-=e)}return 2.3283064365386963e-10*(e>>>0)}},alea(){var e=0,t=0,r=0,a=1,i=this.masher();e=i(" "),t=i(" "),r=i(" ");for(var n=0;n<arguments.length;n++)(e-=i(arguments[n]))<0&&(e+=1),(t-=i(arguments[n]))<0&&(t+=1),(r-=i(arguments[n]))<0&&(r+=1);return i=null,function(){var i=2091639*e+2.3283064365386963e-10*a;return e=t,t=r,r=i-(a=0|i)}},n2(e,t){var r,a,i=this.p12,n=this.perm,o=0,f=0,v=0,l=(e+t)*m,u=A(e+l),c=A(t+l),b=(u+c)*d,s=e-(u-b),h=t-(c-b);s>h?(r=1,a=0):(r=0,a=1);var x=s-r+d,p=h-a+d,y=s-1+2*d,E=h-1+2*d,_=255&u,D=255&c,T=.5-s*s-h*h;if(T>=0){var P=3*i[_+n[D]];o=(T*=T)*T*(g[P]*s+g[P+1]*h)}var R=.5-x*x-p*p;if(R>=0){var F=3*i[_+r+n[D+a]];f=(R*=R)*R*(g[F]*x+g[F+1]*p)}var w=.5-y*y-E*E;if(w>=0){var B=3*i[_+1+n[D+1]];v=(w*=w)*w*(g[B]*y+g[B+1]*E)}return 70*(o+f+v)}},y=(o=[[4009,3958,2133,2813,4095,1286],[257,1656,3020,3004,3822,3943],[4090,3800,3988,3921,2,20],[785,1552,4090,2624,3459,4090,120],[3994,3976,514,3419,4015,1338,514,787,3766],[273,875,410,1692,4037,2269,2798],[0,4095],[581,664,4095,3782,4006,3685],[1589,3977,3021,89,36],[3838,3021,2220,1675,1145,600,54,2],[3171,2131,3478,4023,4093,2455,546,308,18],[3021,682,120,86,2236,4044,3805,3993,4074,4025,546],[1739,1417,1914,3942,4042,4076],[4078,2988,70,154,2543,3567,138,4060],[2149,3685,3990,4041,3547,3566],[4059,3481,2425,1111,563,2748],[512,1794,3141,3957,3989,3635],[1366,2234,3053,4095,4059,4012],[820,3476,3956,4073,3837,167],[19,1110,2218,2505,3290,3943],[18,375,1688,4041,3619],[2780,4074,296,2267,3942,4037,2267],[1722,2779,3836,3978,1109],[2633,3434,3754,4075,3309,2558],[3669,819,3349,4093,3293,3583,959],[3685,4091,2507,1450,3822,530,1604],[0,291,4001,3822,4095,869,1465]],f=[],{geti:function(e){e<0&&(e*=-1),e%=1;let t=f.length,r=A(t*e),a=(r+1)%t,i=t*e-r,n=f[r],o=f[a],v=1-i;return[o[0]*i+v*n[0],o[1]*i+v*n[1],o[2]*i+v*n[2]]},init:function(e){let t=parseInt(A(e*o.length));console.log(t);for(var r=0;r<o[t].length;++r){let e=o[t][r],a=(15&e)/16,i=(e>>4&15)/16,n=(e>>8&15)/16;f.push([n,i,a])}}}),E=document.querySelector("canvas").getContext("webgl",{alpha:!1}),_=E.getExtension("ANGLE_instanced_arrays"),D=E.TRIANGLES,T=E.FRAMEBUFFER,P=E.FLOAT,R=E.UNSIGNED_BYTE,F=E.RGBA,w=E.TEXTURE_2D,B=E.COLOR_ATTACHMENT0,L=E.COLOR_BUFFER_BIT|E.DEPTH_BUFFER_BIT,M=E.ARRAY_BUFFER,N=E.STATIC_DRAW,S=E.DYNAMIC_DRAW,I=E.ONE,C=E.ONE_MINUS_SRC_ALPHA,U=E.SRC_ALPHA,G=(e,t,r)=>e.getAttribLocation(t,r),V=(e,t,r)=>e.getUniformLocation(t,r),O=()=>E.createBuffer();let H=[],X=[];const z=v(300),W=v(300);let Y,k,q,j,J;p.init(tokenData.hash);let K=p.r,Q=K(),Z=K()>.5,$=K()>.5,ee=K()>.7,te=K()>.5,re=K()>.5,ae=K()>.7,ie=1;K()>.5&&(ie=0);let ne=K()>.5,oe=K()>.5,fe=K()>.5,ve=K()>.7,le=K()>.6,ue=K()>.6,ce=K()>.8,be=15;ee&&(be=8);let se=3+K()*be,he=1+K()*be,Ae=K()>.9,xe=.3+.4*K();Z&&(xe*=.3),!Z&&K()>.5&&(xe*=-1);let me=8;K()>.8&&(me=12);let de=K()>.95,ge=K()*u,pe=.001*s(K(),2);y.init(Q);let ye=K(),Ee=K()*u;function e(){let e=E.createTexture();E.bindTexture(w,e),E.texImage2D(w,0,F,J,J,0,F,R,null),E.texParameteri(w,E.TEXTURE_MIN_FILTER,E.LINEAR),E.texParameteri(w,E.TEXTURE_MAG_FILTER,E.LINEAR),E.texParameteri(w,E.TEXTURE_WRAP_S,E.CLAMP_TO_EDGE),E.texParameteri(w,E.TEXTURE_WRAP_T,E.CLAMP_TO_EDGE);let t=E.createFramebuffer();return E.bindFramebuffer(T,t),E.framebufferTexture2D(T,B,w,e,0),[e,t]}function t(e,t,r){let a=e.createShader(t);return e.shaderSource(a,r),e.compileShader(a),a}function r(e,t,r){let a=e.createProgram();return e.attachShader(a,t),e.attachShader(a,r),e.linkProgram(a),a}function a(){E.enable(E.BLEND),E.blendFuncSeparate(U,C,I,C),E.useProgram(Me),E.bindBuffer(M,Ze),E.bufferData(M,Rt,S),E.bindBuffer(M,$e),E.bufferData(M,Pt,S),E.bindBuffer(M,Qe),E.enableVertexAttribArray(Ce),E.vertexAttribPointer(Ce,2,P,!1,0,0),E.bindBuffer(M,Ze),E.enableVertexAttribArray(Ue),E.vertexAttribPointer(Ue,4,P,!1,0,0),_.vertexAttribDivisorANGLE(Ue,1),E.bindBuffer(M,$e),E.enableVertexAttribArray(Ge),E.vertexAttribPointer(Ge,3,P,!1,0,0),_.vertexAttribDivisorANGLE(Ge,1),_.drawArraysInstancedANGLE(D,0,rt,ot),_.vertexAttribDivisorANGLE(Ue,0),_.vertexAttribDivisorANGLE(Ge,0)}function i(e,t,r=1){E.bindFramebuffer(T,j),E.viewport(0,0,J,J),E.clear(L),E.useProgram(Ne),E.bindTexture(w,Y),E.bindBuffer(M,at),E.vertexAttribPointer(Ve,2,P,!1,0,0),E.enableVertexAttribArray(Ve),E.enableVertexAttribArray(Oe),E.bindBuffer(M,nt),E.vertexAttribPointer(Oe,2,P,!1,0,0),E.uniform2f(He,1/et,0),E.uniform1f(Xe,e),E.uniform1f(ze,r),E.uniform2f(We,t[0],t[1]),E.drawArrays(D,0,6),E.bindFramebuffer(T,k),E.viewport(0,0,J,J),E.clear(L),E.bindTexture(w,q),E.uniform2f(He,0,1/et),E.drawArrays(D,0,6)}const _e=E.VERTEX_SHADER,De=E.FRAGMENT_SHADER,Te=t(E,_e,"attribute vec4 ap;attribute vec4 ac;attribute vec3 as;varying vec4 vc;void main(){vc=ac;gl_Position=vec4(as.z*ap.x+as.x,as.z*ap.y+as.y,ap.zw);}"),Pe=t(E,De,"precision highp float;varying vec4 vc;void main(){gl_FragColor=vc;}"),Re=t(E,_e,"attribute vec4 ap;attribute vec2 at;varying vec2 vt;void main(){gl_Position=vec4(ap.xyz,1.0);vt=at;}"),Fe=t(E,De,"precision highp float;varying vec2 vt;uniform sampler2D u;uniform vec2 d;uniform float b;uniform float sc;uniform vec2 r;void main(){float h=d.x;float v=d.y;mat2 m=mat2(r.x,-r.y,r.y,r.x); vec4 s=vec4(0.0);vec2 t=(vt-vec2(0.5))*m*sc+vec2(0.5);s+=texture2D(u,vec2(t.x-4.0*b*h,t.y-4.0*b*v))*0.016216;s+=texture2D(u,vec2(t.x-3.0*b*h,t.y-3.0*b*v))*0.054054;s+=texture2D(u,vec2(t.x-2.0*b*h,t.y-2.0*b*v))*0.121621;s+=texture2D(u,vec2(t.x-1.0*b*h,t.y-1.0*b*v))*0.194594;s+=texture2D(u,vec2(t.x,t.y))*0.227027;s+=texture2D(u,vec2(t.x+1.0*b*h,t.y+1.0*b*v))*0.194594;s+=texture2D(u,vec2(t.x+2.0*b*h,t.y+2.0*b*v))*0.121621;s+=texture2D(u,vec2(t.x+3.0*b*h,t.y+3.0*b*v))*0.054054;s+=texture2D(u,vec2(t.x+4.0*b*h,t.y+4.0*b*v))*0.016216;gl_FragColor=s;}"),we=t(E,_e,"attribute vec4 ap;attribute vec2 at;varying vec2 v;void main(){gl_Position=vec4(ap.xyz,1.0);v=at;}"),Be=t(E,De,"precision highp float;varying vec2 v;uniform sampler2D t;void main(){vec4 c=texture2D(t,v);gl_FragColor=c;}"),Le=t(E,De,"precision highp float;varying vec2 v;uniform vec4 c0,c1;void main(){gl_FragColor=mix(pow(c0,vec4(1.1)),pow(c1,vec4(0.9)),v.y);}"),Me=r(E,Te,Pe),Ne=r(E,Re,Fe),Se=r(E,we,Be),Ie=r(E,we,Le),Ce=G(E,Me,"ap"),Ue=G(E,Me,"ac"),Ge=G(E,Me,"as"),Ve=G(E,Ne,"ap"),Oe=G(E,Ne,"at"),He=V(E,Ne,"d"),Xe=V(E,Ne,"b"),ze=V(E,Ne,"sc"),We=V(E,Ne,"r"),Ye=G(E,Se,"ap"),ke=G(E,Se,"at"),qe=G(E,Ie,"ap"),je=G(E,Ie,"at"),Je=V(E,Ie,"c0"),Ke=V(E,Ie,"c1"),Qe=O(),Ze=O(),$e=O();let et=Math.min(window.innerWidth,window.innerHeight);J=2*et,E.canvas.width=et,E.canvas.height=et,[Y,k]=e(),[q,j]=e();let tt=[],rt=180;for(var n=0;n<60;++n){let e=n/60*u,t=(n+1)/60*u;tt.push(0,0,c(e),b(e),c(t),b(t))}E.bindBuffer(M,Qe),E.bufferData(M,v(tt),S);const at=O();E.bindBuffer(M,at);const it=v([-1,-1,-1,1,1,-1,1,1,-1,1,1,-1]);E.bufferData(M,it,N);const nt=O();E.bindBuffer(M,nt),E.bufferData(M,v([0,0,0,1,1,0,1,1,0,1,1,0]),N);let ot=0,ft=c(ge)*pe,vt=b(ge)*pe,lt=y.geti(ye),ut=y.geti(ye+.15+.3*K());ne&&(lt[0]*=.6,lt[1]*=.6,lt[2]*=.6,ut[0]*=.6,ut[1]*=.6,ut[2]*=.6),E.clear(L),E.bindFramebuffer(T,k),E.viewport(0,0,J,J),E.useProgram(Ie),E.enableVertexAttribArray(qe),E.bindBuffer(M,at),E.vertexAttribPointer(qe,2,P,!1,0,0),E.enableVertexAttribArray(je),E.bindBuffer(M,nt),E.vertexAttribPointer(je,2,P,!1,0,0),E.uniform4f(Ke,lt[0],lt[1],lt[2],1),E.uniform4f(Je,ut[0],ut[1],ut[2],1),E.drawArrays(D,0,6);let ct=Ee+.5*l,bt=.5*c(ct),st=.5*b(ct),ht=-bt,At=-st,xt=10*K(),mt=10*K(),dt=100,gt=10+A(50*K());for(n=0;n<dt;++n){let e=1*n/dt;if(de){let t=e*u*1+ct;z[n]=.3*c(t)+.3*p.n2(2*c(t),2*b(t)),W[n]=.3*b(t)+.3*p.n2(2*c(t)+4,2*b(t))}else{let t=bt+e*(ht-bt)-50*ft,r=st+e*(At-st)-50*vt;z[n]=t+.4*p.n2(-xt,e*se),W[n]=r+.3*p.n2(mt,e*se)}}for(n=0;n<gt;++n)z[dt+n]=K()-.5,W[dt+n]=K()-.5;let pt=2e3;lt=y.geti(ye+.1),ut=y.geti(ye+.2+.3*K());let yt=1;ee&&(yt=2);let Et=.1;ve&&(Et=.2,ee&&(Et=.15));let _t=1;le&&(_t=.2);let Dt=1;ce&&(Dt=0);let Tt=0;for(Ae&&(Tt=xe),n=0;n<pt/2;++n){let e=K(),t=A(e*dt-1),r=e*(dt-1)-t,a=z[t],i=W[t],n=z[t+1],o=W[t+1],f=a+(n-a)*r,v=i+(o-i)*r;for(let e=0;e<2;++e){let t=.9+.5*K(),r=f-(o-i)*(2*e-1)*13.3*t,l=v+(n-a)*(2*e-1)*13.3*t;for(let e=0;e<200;++e){let t=e/200;X.push(r,l,.004*(1-.8*t)),H.push(lt[0]*(1-t)+ut[0]*t,lt[1]*(1-t)+ut[1]*t,lt[2]*(1-t)+ut[2]*t,.4*(1-t)),ot++;let a=ft,i=vt;for(let e=0;e<dt;++e){let t=100*-(z[e]-r),n=100*-(W[e]-l),o=100*(t*t+n*n);a+=t/o*.02*8,i+=n/o*.02*8}r+=a,l+=i,r+=i*Tt,l-=a*Tt}}}let Pt=v(X),Rt=v(H);for(a(),X=[],H=[],ot=0,n=0;n<pt;++n){let e=K(),t=A(e*(dt-1)),r=e*(dt-1)-t,a=z[t],i=W[t],n=z[t+1],o=W[t+1],f=a+(n-a)*r,v=i+(o-i)*r,l=1;te&&K()<.08&&(l=0);let s=0;re&&K()<.06&&(s=1);let m=1;fe&&(m=.5+K());for(let t=0;t<2;++t){let r=.2;$&&(r+=.9*K());let d=f-(o-i)*(2*t-1)*r,g=v+(n-a)*(2*t-1)*r,E=0,_=0;for(let t=0;t<200;++t){let r=t/200;X.push(d,g,.003*yt*(1-.8*r));let a=0;ae&&(a=.1*A(5*r));let i=g+1,n=y.geti(i*(1-Dt)+ye+(Dt+.3*(1-Dt))*(2*e*he+ie*r+a+.5*l)+Et*K());H.push(n[0]*l*(1-s)+l*s,n[1]*l*(1-s)+l*s,n[2]*l*(1-s)+l*s,_t*(.3*(1-l)+.8*l)*(1-r)),ue&&(H[H.length-1]*=4*r),ot++,E=ft,_=vt;for(let e=0;e<dt;++e){let t=100*-(z[e]-d),r=100*-(W[e]-g),a=100*(t*t+r*r);E+=t/a*.02*(5+2*(1-l)+3*s)*m,_+=r/a*.02*(5+2*(1-l)+3*s)*m}for(let e=0;e<gt;++e){let t=100*-(z[dt+e]-d),r=100*-(W[dt+e]-g),a=100*(t*t+r*r);E+=t/a*.02*(5+2*(1-l))*m,_+=r/a*.02*(5+2*(1-l))*m}if(Z){let e=A((Math.atan2(_,E)+2*u-Ee)/u*me)*u/me+Ee,t=h(E*E+_*_);E=t*c(e),_=t*b(e)}d+=E,g+=_,d+=_*Tt,g-=E*Tt}if(oe&&K()>.5&&p.n2(20*x(1-2*e),.5)>.3){let t=100*(.2+.5*K()),r=.01*(.5+1*K()),a=y.geti(ye+2*e*he+.02*K());K(),X.push(d+E*t,g+_*t,r),H.push(a[0],a[1],a[2],.152),ot++}}}Pt=v(X),Rt=v(H);for(let e=0;e<6;++e)i(2*et/1e3,[1,0],1),a();E.bindFramebuffer(T,null),E.viewport(0,0,E.canvas.width,E.canvas.height),E.clear(L),E.useProgram(Se),E.bindTexture(w,Y),E.enableVertexAttribArray(Ye),E.bindBuffer(M,at),E.vertexAttribPointer(Ye,2,P,!1,0,0),E.enableVertexAttribArray(ke),E.bindBuffer(M,nt),E.vertexAttribPointer(ke,2,P,!1,0,0),E.drawArrays(D,0,6)}var o,f})();
(()=>{"use strict";{const o=1/3,v=1/6,u=new Float32Array([1,1,0,-1,1,0,1,-1,0,-1,-1,0,1,0,1,-1,0,1,1,0,-1,-1,0,-1,0,1,1,0,-1,1,0,1,-1,0,-1,-1]),b={init(e){this.r=this.alea(e),this.p=this.bp(this.r),this.perm=new Uint8Array(512),this.p12=new Uint8Array(512);for(var t=0;t<512;t++)this.perm[t]=this.p[255&t],this.p12[t]=this.perm[t]%12},bp(e){var t,r=new Uint8Array(256);for(t=0;t<256;t++)r[t]=t;for(t=0;t<255;t++){var a=t+~~(e()*(256-t)),i=r[t];r[t]=r[a],r[a]=i}return r},masher(){var e=4022871197;return function(t){t=t.toString();for(var r=0;r<t.length;r++){var a=.02519603282416938*(e+=t.charCodeAt(r));a-=e=a>>>0,e=(a*=e)>>>0,e+=4294967296*(a-=e)}return 2.3283064365386963e-10*(e>>>0)}},alea(){var e=0,t=0,r=0,a=1,i=this.masher();e=i(" "),t=i(" "),r=i(" ");for(var n=0;n<arguments.length;n++)(e-=i(arguments[n]))<0&&(e+=1),(t-=i(arguments[n]))<0&&(t+=1),(r-=i(arguments[n]))<0&&(r+=1);return i=null,function(){var i=2091639*e+2.3283064365386963e-10*a;return e=t,t=r,r=i-(a=0|i)}},n3(e,t,r){var a,i,n,f,b,l,c,s,A,h,x=this.p12,d=this.perm,m=(e+t+r)*o,y=p(e+m),g=p(t+m),E=p(r+m),D=(y+g+E)*v,_=e-(y-D),T=t-(g-D),P=r-(E-D);_>=T?T>=P?(b=1,l=0,c=0,s=1,A=1,h=0):_>=P?(b=1,l=0,c=0,s=1,A=0,h=1):(b=0,l=0,c=1,s=1,A=0,h=1):T<P?(b=0,l=0,c=1,s=0,A=1,h=1):_<P?(b=0,l=1,c=0,s=0,A=1,h=1):(b=0,l=1,c=0,s=1,A=1,h=0);var B=_-b+v,M=T-l+v,R=P-c+v,F=_-s+2*v,w=T-A+2*v,L=P-h+2*v,N=_-1+3*v,I=T-1+3*v,S=P-1+3*v,G=255&y,C=255&g,U=255&E,V=.6-_*_-T*T-P*P;if(V<0)a=0;else{var O=3*x[G+d[C+d[U]]];a=(V*=V)*V*(u[O]*_+u[O+1]*T+u[O+2]*P)}var H=.6-B*B-M*M-R*R;if(H<0)i=0;else{var X=3*x[G+b+d[C+l+d[U+c]]];i=(H*=H)*H*(u[X]*B+u[X+1]*M+u[X+2]*R)}var z=.6-F*F-w*w-L*L;if(z<0)n=0;else{var W=3*x[G+s+d[C+A+d[U+h]]];n=(z*=z)*z*(u[W]*F+u[W+1]*w+u[W+2]*L)}var k=.6-N*N-I*I-S*S;if(k<0)f=0;else{var Y=3*x[G+1+d[C+1+d[U+1]]];f=(k*=k)*k*(u[Y]*N+u[Y+1]*I+u[Y+2]*S)}return 32*(a+i+n+f)}},l=(n=[[2731,2460,1645,1087,0,4054],[3754,1661,1518,1224,307,290],[3994,3976,3419,1338,787,3766],[875,410,1692,4037,2269,2798],[0,4095],[581,664,3782,4006,3685],[1331,1875,2150,2677,2949,2440,2967,3477,3222,3787,3275,1160,2731,1946,1400,1947,1109,1146,274,547,1895],[1589,3977,3021,89,36],[3838,3021,2220,1675,1145,600,54,546],[3171,2131,3733,1075,2949,3478,4023,2421,3239,4057,1636,4090,4093,2455,1926,1654,853,870,341,564,546,308,18],[2611,2355,1314,1842,2626,3171,2386,3459,3764,786,1075,2135,3226,1605,802,2373,3448,1587,3158,2612,1843,1058,3380],[3021,682,120,86,2236,4044,3805,3993,4074,4025,546],[1739,1417,1914,3959,4042,4076],[4078,2988,154,2543,3567,4094],[2149,3685,3990,4041,3547,3566],[3259,804,1706,2252,2781,3037],[4059,3481,2425,1111,563,2748],[1024,1794,3141,3957,3989,3779],[1366,2234,3053,4095,4059,4012],[820,3476,3956,4073,3837,167],[1327,3151,3946,4092,4094,1282],[19,1110,2218,2505,3290,3943],[18,375,1688,4041,3619],[2507,4074,3942,4037,2267],[1722,2779,3836,3978,1109],[2633,3434,3754,4075,3309,2558],[1499,2813,1882,3549,3943,3959]],f=[],{geti:function(e){e<0&&(e*=-1),e%=1;let t=f.length,r=p(t*e),a=(r+1)%t,i=t*e-r,n=f[r],o=f[a],v=1-i;return[o[0]*i+v*n[0],o[1]*i+v*n[1],o[2]*i+v*n[2]]},init:function(e,t){let r=parseInt(p(e*n.length));for(var a=0;a<t;++a)for(var i=0;i<n[r].length;++i){let e=n[r][i],t=(15&e)/16,a=(e>>4&15)/16,o=(e>>8&15)/16;f.push([o,a,t])}}}),c=e=>new Float32Array(e),s=Math.PI,A=2*s,h=Math.cos,x=Math.pow,d=Math.sin,m=Math.sqrt,p=Math.floor,y=(Math.ceil,Math.abs,(e,t,r,a)=>{const i=e-r,n=t-a;return m(i*i+n*n)}),g=document.querySelector("canvas").getContext("webgl",{alpha:!1}),E=g.getExtension("ANGLE_instanced_arrays"),D=g.TRIANGLES,_=g.FRAMEBUFFER,T=g.FLOAT,P=g.UNSIGNED_BYTE,B=g.RGBA,M=g.TEXTURE_2D,R=g.COLOR_ATTACHMENT0,F=g.COLOR_BUFFER_BIT|g.DEPTH_BUFFER_BIT,w=g.ARRAY_BUFFER,L=g.STATIC_DRAW,N=g.DYNAMIC_DRAW,I=g.ONE,S=g.ONE_MINUS_SRC_ALPHA,G=g.SRC_ALPHA,C=(e,t,r)=>e.getAttribLocation(t,r),U=(e,t,r)=>e.getUniformLocation(t,r),V=()=>g.createBuffer(),O=15e3,H=c(4*O),X=c(3*O),z=c(O),W=c(O),k=c(O);let Y,q,j,J,K,Q,Z=0;b.init(tokenData.hash);let $=b.r,ee=$(),te=1;$()>.95&&(te=2);let re=.5+1.5*$(),ae=100,ie=$();ie>.8?ae=0:ie>.3&&(ae=p(3*x($(),2))+4);let ne=$()>.5,fe=$()>.7,oe=$()>.5,ve=$()>.6,ue=$()>.95,be=!ue&&$()>.7,le=!ue&&!be&&!oe&&$()>.95,ce=$()>.6,se=$()>.3,Ae=$()>.9;function e(){let e=g.createTexture();g.bindTexture(M,e),g.texImage2D(M,0,B,K,Q,0,B,P,null),g.texParameteri(M,g.TEXTURE_MIN_FILTER,g.LINEAR),g.texParameteri(M,g.TEXTURE_MAG_FILTER,g.LINEAR),g.texParameteri(M,g.TEXTURE_WRAP_S,g.CLAMP_TO_EDGE),g.texParameteri(M,g.TEXTURE_WRAP_T,g.CLAMP_TO_EDGE);let t=g.createFramebuffer();return g.bindFramebuffer(_,t),g.framebufferTexture2D(_,R,M,e,0),[e,t]}function t(e,t,r){let a=e.createShader(t);return e.shaderSource(a,r),e.compileShader(a),a}function r(e,t,r){let a=e.createProgram();return e.attachShader(a,t),e.attachShader(a,r),e.linkProgram(a),a}l.init(ee,te);const he=g.VERTEX_SHADER,xe=g.FRAGMENT_SHADER,de=t(g,he,"attribute vec4 ap;attribute vec4 ac;attribute vec3 as;varying vec4 vc;uniform vec2 d;void main(){vc=ac;gl_Position=vec4((as.z*ap.x+as.x)/d.x,(as.z*ap.y+as.y)/d.y,ap.zw);}"),me=t(g,xe,"precision highp float;varying vec4 vc;void main(){gl_FragColor=vc;}"),pe=t(g,he,"attribute vec4 ap;attribute vec2 at;varying vec2 vt;void main(){gl_Position=vec4(ap.xyz,1.0);vt=at;}"),ye=t(g,xe,"precision highp float;varying vec2 vt;uniform sampler2D u;uniform vec2 d;uniform float b;uniform float sc;uniform vec2 r;void main(){float h=d.x;float v=d.y;mat2 m=mat2(r.x,-r.y,r.y,r.x); vec4 s=vec4(0.0);vec2 t=(vt-vec2(0.5))*m*sc+vec2(0.5);s+=texture2D(u,vec2(t.x-4.0*b*h,t.y-4.0*b*v))*0.016216;s+=texture2D(u,vec2(t.x-3.0*b*h,t.y-3.0*b*v))*0.054054;s+=texture2D(u,vec2(t.x-2.0*b*h,t.y-2.0*b*v))*0.121621;s+=texture2D(u,vec2(t.x-1.0*b*h,t.y-1.0*b*v))*0.194594;s+=texture2D(u,vec2(t.x,t.y))*0.227027;s+=texture2D(u,vec2(t.x+1.0*b*h,t.y+1.0*b*v))*0.194594;s+=texture2D(u,vec2(t.x+2.0*b*h,t.y+2.0*b*v))*0.121621;s+=texture2D(u,vec2(t.x+3.0*b*h,t.y+3.0*b*v))*0.054054;s+=texture2D(u,vec2(t.x+4.0*b*h,t.y+4.0*b*v))*0.016216;gl_FragColor=s;}"),ge=t(g,he,"attribute vec4 ap;attribute vec2 at;varying vec2 v;void main(){gl_Position=vec4(ap.xyz,1.0);v=at;}"),Ee=t(g,xe,"precision highp float;varying vec2 v;uniform sampler2D t;void main(){vec4 c=texture2D(t,v);gl_FragColor=c;}"),De=t(g,xe,"precision highp float;varying vec2 v;uniform vec4 c0,c1;void main(){gl_FragColor=mix(c0,c1,v.y);}"),_e=r(g,de,me),Te=r(g,pe,ye),Pe=r(g,ge,Ee),Be=r(g,ge,De),Me=C(g,_e,"ap"),Re=C(g,_e,"ac"),Fe=C(g,_e,"as"),we=U(g,_e,"d"),Le=C(g,Te,"ap"),Ne=C(g,Te,"at"),Ie=U(g,Te,"d"),Se=U(g,Te,"b"),Ge=U(g,Te,"sc"),Ce=U(g,Te,"r"),Ue=C(g,Pe,"ap"),Ve=C(g,Pe,"at"),Oe=C(g,Be,"ap"),He=C(g,Be,"at"),Xe=U(g,Be,"c0"),ze=U(g,Be,"c1"),We=V(),ke=V(),Ye=V(),qe=V();Z=Math.min(window.innerWidth,window.innerHeight),K=Z,Q=Z,g.canvas.width=Z,g.canvas.height=Z,[Y,q]=e(),[j,J]=e();let je=[],Je=180;for(var a=0;a<60;++a){let e=a/60*A,t=(a+1)/60*A;je.push(0,0,h(e),d(e),h(t),d(t))}let Ke=[],Qe=360;for(a=0;a<60;++a){let e=a/60*A,t=(a+1)/60*A;Ke.push(.8*h(e),.8*d(e),h(e),d(e),h(t),d(t)),Ke.push(.8*h(e),.8*d(e),h(t),d(t),.8*h(t),.8*d(t))}g.bindBuffer(w,We),g.bufferData(w,c(je),N),g.bindBuffer(w,ke),g.bufferData(w,c(Ke),N);const Ze=V();g.bindBuffer(w,Ze);const $e=c([-1,-1,-1,1,1,-1,1,1,-1,1,1,-1]);g.bufferData(w,$e,L);const et=V();g.bindBuffer(w,et),g.bufferData(w,c([0,0,0,1,1,0,1,1,0,1,1,0]),L);let tt=0,rt=$(),at=$()*A,it=50,nt=[];for(let e=0;e<it;++e){nt[e]=[];for(let t=0;t<it;++t)nt[e][t]=[]}let ft=$()*A,ot=h(ft)*Z*.26,vt=d(ft)*Z*.26;ft=$()*A;let ut=h(ft)*Z*.24,bt=d(ft)*Z*.24,lt=y(ot,vt,ut,bt);lt*=lt;let ct=.4*Z;ve&&(ct=.5*Z);let st=0,At=0,ht=0,xt=0;if(be){ct=2*Z;let e=$()*A;ae<10&&(e=-at),st=h(e)*ct,At=d(e)*ct,ct=ae<10?2.3*Z:2.2*Z}let dt=.2+.6*$();if(ue){let e=-at;st=h(e)*ct*(.2+dt),At=d(e)*ct*(.2+dt),ht=-h(e)*ct*2.7,xt=-d(e)*ct*2.7}for(let e=0;e<O/2;++e){let t=0,r=!1,a=0,i=0,n=0,f=0,o=-1,v=1,u=0,c=0,g=0,E=0;for(;!r&&t<1e4;){if(0==ae)a=($()-.5)*Z,i=($()-.5)*Z,n=Math.atan2(i,a)+s;else if(be){let e=!1;for(;!1===e;){a=($()-.5)*Z,i=($()-.5)*Z,n=Math.atan2(i-At,a-st)+s+at;let t=(a-st)*(a-st)+(i-At)*(i-At);ae<10&&(v=h(s/ae)/h(n%(A/ae)-s/ae)),t<v*v*ct*ct&&(e=!0)}}else if(ue){let e=!1;for(;!1===e;){a=($()-.5)*Z,i=($()-.5)*Z,n=Math.atan2(i-At,a-st)+s+at;let t=(a-st)*(a-st)+(i-At)*(i-At),r=(a-ht)*(a-ht)+(i-xt)*(i-xt);ae<10&&(v=h(s/ae)/h(n%(A/ae)-s/ae)),t<v*v*ct*ct*dt*dt&&(e=!0),r<ct*ct*2.5*2.5&&(e=!0,E=1)}}else{let e=m($())*ct;n=$()*A,ae<10&&(v=h(s/ae)/h(n%(A/ae)-s/ae)),n+=at,a=v*e*h(n),i=v*e*d(n)}f=ne?(10+80*x($(),8))*Z*.001:4*$()*6*Z*.001,o=-1,u=parseInt(p((a/Z+.5)*it)),c=parseInt(p((i/Z+.5)*it));let e=Math.max(0,u-7),b=Math.max(0,c-7),l=Math.min(it-1,u+7),D=Math.min(it-1,c+7);e:for(let t=b;t<=D;++t)for(let r=e;r<=l;++r)for(const e of nt[r][t]){let t=y(z[e],W[e],a,i)-X[3*e+2];if(t<f&&(f=t,o=e),f<4*Z*.001)break e}if(oe){let e=((a-ot)*(ut-ot)+(i-vt)*(bt-vt))/lt;g=y(a,i,ot+e*(ut-ot),vt+e*(bt-vt)),g<.05*Z&&(f=0)}f>4*Z*.001&&(r=!0),t+=1}if(!r)break;{if(nt[u][c].push(e),z[e]=a,W[e]=i,X[3*e]=z[e],X[3*e+1]=W[e],X[3*e+2]=f,le){let t=m(a*a+i*i)/v/(.4*Z);k[e]=n/s+1.2*t+rt}else k[e]=.5*b.n3(a/Z*re,i/Z*re,.05+.5*E)+.5;if(oe){let t=g/Z;t=Math.min(1,.004/(t*t)),k[e]=t+(1-t)*k[e]}-1!=o&&(k[e]=k[o]+.01);let t=l.geti(k[e]);H[4*e]=t[0],H[4*e+1]=t[1],H[4*e+2]=t[2],H[4*e+3]=.3,tt++}}let mt=($()-.5)*Z,pt=($()-.5)*Z,yt=Z,gt=-Z,Et=Z,Dt=-Z;for(let e=0;e<tt;++e){yt=Math.min(yt,z[e]),Et=Math.min(Et,W[e]),gt=Math.max(gt,z[e]),Dt=Math.max(Dt,W[e]);let t=e+tt;k[t]=$();let r=X[3*e+2],a=z[e]-mt,i=W[e]-pt,n=m(a*a+i*i);a/=n,i/=n,fe?(z[t]=z[e]-a*r*.25,W[t]=W[e]-i*r*.25):(z[t]=z[e]-a*r*.5,W[t]=W[e]-i*r*.5),X[3*t]=z[t],X[3*t+1]=W[t],X[3*t+2]=.5*r;let f=l.geti(.051*n/Z+k[e]);H[4*t]=f[0],H[4*t+1]=f[1],H[4*t+2]=f[2],H[4*t+3]=.8}tt*=2;let _t=.5*(yt+gt),Tt=.5*(Et+Dt);for(let e=0;e<tt;++e)be||ue||(X[3*e]-=_t,X[3*e+1]-=Tt),fe&&(X[3*e+2]*=.5);g.bindBuffer(w,Ye),g.bufferData(w,H,N);let Pt=l.geti(rt),Bt=l.geti(rt+.1+.3*$());for(se||(Bt=Pt),ce&&(Pt[0]*=.6,Pt[1]*=.6,Pt[2]*=.6,Bt[0]*=.6,Bt[1]*=.6,Bt[2]*=.6),g.clear(F),g.bindFramebuffer(_,q),g.viewport(0,0,K,Q),g.useProgram(Be),g.enableVertexAttribArray(Oe),g.bindBuffer(w,Ze),g.vertexAttribPointer(Oe,2,T,!1,0,0),g.enableVertexAttribArray(He),g.bindBuffer(w,et),g.vertexAttribPointer(He,2,T,!1,0,0),g.uniform4f(Xe,Pt[0],Pt[1],Pt[2],1),g.uniform4f(ze,Bt[0],Bt[1],Bt[2],1),g.drawArrays(D,0,6),a=0;a<50;++a)i();function i(e){!function(e,t,r=1){g.bindFramebuffer(_,J),g.viewport(0,0,K,Q),g.clear(F),g.useProgram(Te),g.bindTexture(M,Y),g.bindBuffer(w,Ze),g.vertexAttribPointer(Le,2,T,!1,0,0),g.enableVertexAttribArray(Le),g.enableVertexAttribArray(Ne),g.bindBuffer(w,et),g.vertexAttribPointer(Ne,2,T,!1,0,0),g.uniform2f(Ie,1/Z,0),g.uniform1f(Se,e),g.uniform1f(Ge,r),g.uniform2f(Ce,t[0],t[1]),g.drawArrays(D,0,6),g.bindFramebuffer(_,q),g.viewport(0,0,K,Q),g.clear(F),g.bindTexture(M,j),g.uniform2f(Ie,0,1/Z),g.drawArrays(D,0,6)}(2*Z/1e3,[1,0],.999),g.enable(g.BLEND),g.blendFuncSeparate(G,S,I,S),g.useProgram(_e),g.bindBuffer(w,Ye),g.bufferData(w,H,N),g.bindBuffer(w,qe),g.bufferData(w,X,N),g.uniform2f(we,Z/2,Z/2);let t=tt,r=Je;Ae?(t=tt/2,g.bindBuffer(w,We),g.enableVertexAttribArray(Me),g.vertexAttribPointer(Me,2,T,!1,0,0),g.bindBuffer(w,qe),g.enableVertexAttribArray(Fe),g.vertexAttribPointer(Fe,3,T,!1,0,tt/2*12),E.vertexAttribDivisorANGLE(Fe,1),g.bindBuffer(w,Ye),g.enableVertexAttribArray(Re),g.vertexAttribPointer(Re,4,T,!1,0,tt/2*16),E.vertexAttribDivisorANGLE(Re,1),E.drawArraysInstancedANGLE(D,0,r,t),g.bindBuffer(w,ke),r=Qe):g.bindBuffer(w,We),g.enableVertexAttribArray(Me),g.vertexAttribPointer(Me,2,T,!1,0,0),g.bindBuffer(w,Ye),g.enableVertexAttribArray(Re),g.vertexAttribPointer(Re,4,T,!1,0,0),E.vertexAttribDivisorANGLE(Re,1),g.bindBuffer(w,qe),g.enableVertexAttribArray(Fe),g.vertexAttribPointer(Fe,3,T,!1,0,0),E.vertexAttribDivisorANGLE(Fe,1),E.drawArraysInstancedANGLE(D,0,r,t),E.vertexAttribDivisorANGLE(Re,0),E.vertexAttribDivisorANGLE(Fe,0),g.blendFuncSeparate(G,S,I,S)}g.bindFramebuffer(_,null),g.viewport(0,0,g.canvas.width,g.canvas.height),g.clear(F),g.useProgram(Pe),g.bindTexture(M,Y),g.enableVertexAttribArray(Ue),g.bindBuffer(w,Ze),g.vertexAttribPointer(Ue,2,T,!1,0,0),g.enableVertexAttribArray(Ve),g.bindBuffer(w,et),g.vertexAttribPointer(Ve,2,T,!1,0,0),g.drawArrays(D,0,6)}var n,f})();
console.log("Your minute happens at "+Ge+":"+Ue),D.style.touchAction="none",D.addEventListener("pointerdown",(e=>{ne=e.offsetX-.5*ae,oe=.5*ie-e.offsetY,he()>.5&&(le*=-1),fe=!0})),D.addEventListener("pointermove",(e=>{!0===fe&&(ne=e.offsetX-.5*ae,oe=.5*ie-e.offsetY)})),window.addEventListener("pointerup",(e=>{!0===fe&&(fe=!1)})),s.init(me,xe,Ae);const Ve=_.VERTEX_SHADER,He=_.FRAGMENT_SHADER,Xe=r(_,Ve,"attribute vec4 ap;attribute vec4 ac;varying vec4 vc;uniform vec2 d;void main(){vc=ac;gl_Position=vec4(ap.x/d.x,ap.y/d.y,ap.zw);}"),ke=r(_,He,"precision highp float;uniform vec4 c;uniform bool uu;varying vec4 vc;void main(){if(uu){gl_FragColor=c;}else{gl_FragColor=vec4(vc.xyz,c.w);}}"),We=r(_,Ve,"attribute vec4 ap;attribute vec4 ac;attribute vec3 as;varying vec4 vc;uniform vec2 d;void main(){vc=ac;gl_Position=vec4((as.z*ap.x+as.x)/d.x,(as.z*ap.y+as.y)/d.y,ap.zw);}"),Ye=r(_,He,"precision highp float;uniform vec4 c;varying vec4 vc;void main(){gl_FragColor=vec4(vc.xyz,c.w);}"),qe=r(_,Ve,"attribute vec4 ap;attribute vec2 at;varying vec2 vt;void main(){gl_Position=vec4(ap.xyz,1.0);vt=at;}"),je=r(_,He,"precision highp float;varying vec2 vt;uniform sampler2D u;uniform vec2 d;uniform float b;uniform float sc;uniform vec2 r;void main(){float h=d.x;float v=d.y;mat2 m=mat2(r.x,-r.y,r.y,r.x); vec4 s=vec4(0.0);vec2 t=(vt-vec2(0.5))*m*sc+vec2(0.5);s+=texture2D(u,vec2(t.x-4.0*b*h,t.y-4.0*b*v))*0.016216;s+=texture2D(u,vec2(t.x-3.0*b*h,t.y-3.0*b*v))*0.054054;s+=texture2D(u,vec2(t.x-2.0*b*h,t.y-2.0*b*v))*0.121621;s+=texture2D(u,vec2(t.x-1.0*b*h,t.y-1.0*b*v))*0.194594;s+=texture2D(u,vec2(t.x,t.y))*0.227027;s+=texture2D(u,vec2(t.x+1.0*b*h,t.y+1.0*b*v))*0.194594;s+=texture2D(u,vec2(t.x+2.0*b*h,t.y+2.0*b*v))*0.121621;s+=texture2D(u,vec2(t.x+3.0*b*h,t.y+3.0*b*v))*0.054054;s+=texture2D(u,vec2(t.x+4.0*b*h,t.y+4.0*b*v))*0.016216;gl_FragColor=s;}"),Je=r(_,Ve,"attribute vec4 ap;attribute vec2 at;varying vec2 v;void main(){gl_Position=vec4(ap.xyz,1.0);v=at;}"),Ke=r(_,He,"precision highp float;varying vec2 v;uniform sampler2D t;void main(){vec4 c=texture2D(t,v);gl_FragColor=c;}"),Qe=a(_,Xe,ke),Ze=a(_,We,Ye),$e=a(_,qe,je),et=a(_,Je,Ke),tt=O(_,Qe,"ap"),rt=O(_,Qe,"ac"),at=V(_,Qe,"c"),it=V(_,Qe,"uu"),nt=V(_,Qe,"d"),ot=O(_,Ze,"ap"),ft=O(_,Ze,"ac"),lt=O(_,Ze,"as"),ut=V(_,Ze,"c"),ct=V(_,Ze,"d"),vt=O(_,$e,"ap"),st=O(_,$e,"at"),bt=V(_,$e,"d"),dt=V(_,$e,"b"),ht=V(_,$e,"sc"),mt=V(_,$e,"r"),At=O(_,et,"ap"),xt=O(_,et,"at"),pt=(H(),H(),H()),gt=H(),yt=H();t(_.canvas);let Et=[];for(var i=0;i<8;++i){let e=i/8*h,t=(i+1)/8*h;Et.push(0,0,m(e),A(e),m(t),A(t))}_.bindBuffer(S,pt),_.bufferData(S,b(Et),I);const Dt=H();_.bindBuffer(S,Dt);const _t=b([-1,-1,-1,1,1,-1,1,1,-1,1,1,-1]);_.bufferData(S,_t,C);const Tt=H();_.bindBuffer(S,Tt),_.bufferData(S,b([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),C);const wt=H();_.bindBuffer(S,wt),_.bufferData(S,b([0,0,0,1,1,0,1,1,0,1,1,0]),C);for(let e=0;e<X;++e){let t=.1*g(10*x(he()))*re*.4,r=he()*h;Y[e]=t*m(r),q[e]=t*A(r),j[e]=he(),J[e]=he()}function n(e,t,r=1){_.bindFramebuffer(F,$),_.viewport(0,0,ee,te),_.clear(N),_.useProgram($e),_.bindTexture(B,K),_.bindBuffer(S,Dt),_.vertexAttribPointer(vt,2,P,!1,0,0),_.enableVertexAttribArray(st),_.bindBuffer(S,wt),_.vertexAttribPointer(st,2,P,!1,0,0),_.uniform2f(bt,1/ae,0),_.uniform1f(dt,e),_.uniform1f(ht,r),_.uniform2f(mt,t[0],t[1]),_.drawArrays(w,0,6),_.bindFramebuffer(F,Q),_.viewport(0,0,ee,te),_.clear(N),_.bindTexture(B,Z),_.uniform2f(bt,0,1/ie),_.drawArrays(w,0,6)}_.bindBuffer(S,gt),_.bufferData(S,k,I),_.clearColor(0,0,0,1),_.clear(N),window.addEventListener("resize",(function(){_.deleteTexture(K),_.deleteTexture(Z),_.deleteFramebuffer(Q),_.deleteFramebuffer($),t(_.canvas)})),window.requestAnimationFrame((function e(t){requestAnimationFrame(e),ze?n(3*re/1e3,[.98,.01],pe):Le&&ze?n(4*re/1e3,[.8,.1],pe):Le?n(4*re/1e3,[.9,.1],pe):n(3*re/1e3,[1,0],pe);let r=Math.max(re/350,1);we&&(r*=1.4),ye<0&&(r*=1.2);let a=t/1e3,i=Date.now();i-=se;let o=p(i/1e3),f=p(o/60),l=p(f/60)%24;f%=60,ze=f==Ue&&l%12==Ge,Oe=f==Ue,l=l%12+f/60;let u=.5*d-l*d/6,c=.5*d-f*d/30,b=o%60,D=(i-1e3*o)/1e3,R=Math.pow(D,1.5),L=v.n3(R,o,0)*ae*.4,M=v.n3(R,o,1)*ie*.4,C=(m(a),A(a),(1-R)*re*.7/100*Math.min(50*R,1)),O=.5*d-b/60*h,V=1;we&&(V=1.3);let H=!1;if(o>ue){if(ce=!ce&&he()<.01,ve=!ce&&!ve&&he()<.1,he()>.1||0===ue){H=!0;for(let e=0;e<X;++e)if(e%2==o%2||0===ue||!Ce){let t=g(x(he())*_e)/_e,r=t*re*.4*V,a=(he()+b/60)*h;if(Me&&(t=x(he()),r=t*re*.4*V,a=(p(80*he())/80+b/60)*h,Ne&&ye<0&&(a+=t*d*.3)),-1===_e&&(t=x(he()),a=t*d*40+b/60*h,r=t*re*.4*V),(2===Be||1===Be&&r>.2*re)&&(r+=.1*re),0===ye)Y[e]=r*m(a),q[e]=r*A(a);else if(-1===ye){if(Y[e]=(he()-.5)*ae,q[e]=(he()-.5)*ie,2===Be)for(;E(e)<.1*re;)Y[e]=(he()-.5)*ae,q[e]=(he()-.5)*ie;else if(1===Be)for(;E(e)<.3*re&&E(e)>.2*re;)Y[e]=(he()-.5)*ae,q[e]=(he()-.5)*ie;a=Math.atan2(q[e],Y[e])+h+b/60;let r=m(d/De)/m(a%(h/De)-d/De);t=E(e)/re/r%1,Ne&&(t+=a/d)}else{let i=m(d/ye)/m(a%(h/ye)-d/ye);if(3==ye&&(i*=1.2),Se){i=m(d/De)/m(a%(h/De)-d/De)*(1-t)+i*t}Ne&&(a+=t*d),Y[e]=i*r*m(a+O),q[e]=i*r*A(a+O)}j[e]=2===Re?(t+2*a/h)%1:1===Re?2*a/h%1:t%1;let i=.9;3==ye&&(i=.95);let n=0;(Te||!xe)&&J[e]>i&&(n=.1);let o=s.geti(j[e]+b/60+n);k[3*e]=o[0],k[3*e+1]=o[1],k[3*e+2]=o[2]}}ue=o}let Z=ge;ce&&(Z=30),Fe>0&&(Z*=.5,ce&&(Z=4),C*=.3);let $=m(.01),be=A(.01);for(let e=0;e<X;++e){let t=1,i=1;if(Oe&&!ze&&(i=-1),ze||Oe){let t=.9;3==ye&&(t=.95);let r=0;(Te||!xe)&&J[e]>t&&(r=.1);let a=s.geti(1-.5*D*i+j[e]+b/60+r);k[3*e]=1.2*a[0],k[3*e+1]=1.2*a[1],k[3*e+2]=1.2*a[2],Y[e]*=1.004,q[e]*=1.004}switch(C*=t,Fe){case 0:let t=C*(.2+2*E(e)/re);Y[e]+=v.n3(Y[e]/re*Z,q[e]/re*Z,a)*t,q[e]+=v.n3(Y[e]/re*Z,q[e]/re*Z,-a)*t;break;case 1:let r=v.n3(Y[e]/re*Z,q[e]/re*Z,.5*a)*h*2;Y[e]+=m(r)*C,q[e]+=A(r)*C;break;case 2:let i=v.n3(Y[e]/re*Z,q[e]/re*Z,a)*h;i=p((i+h)/d*2)*d*.5,Y[e]+=m(i)*C,q[e]+=A(i)*C;break;case 3:let n=v.n3(Z*E(e)/re,a,j[e])*h;Y[e]+=m(n)*C,q[e]+=A(n)*C}ce&&(Y[e]=1.02*(Y[e]*$+q[e]*be),q[e]=1.02*(-Y[e]*be+q[e]*$));let n=Math.atan2(q[e],Y[e]),o=n-u;o>d&&(o-=h),o<-d&&(o+=h);let f=n-c;f>d&&(f-=h),f<-d&&(f+=h);let l=y(f)/.18,g=r,_=E(e),T=250;xe&&(T=150);let w=1,F=1;if(xe&&(F=.6,w=.6),l<1){let t=_*m(c),r=_*A(c),a=T/re*(1-l);Y[e]+=(t-Y[e])*a,q[e]+=(r-q[e])*a,Y[e]*=1.01,q[e]*=1.01,g*=1+F*(1-l)}let P=y(o)/.18;if(P<1){let t=_*m(u),r=_*A(u),a=T/re*(1-P);Y[e]+=(t-Y[e])*a,q[e]+=(r-q[e])*a,Y[e]*=.99,q[e]*=.99,g*=1+w*(1-P)}if(fe){let r=ne-Y[e],a=oe-q[e],i=x(r*r+a*a),n=5e-4*re*re/(i*i)*le*t;i/re>.02&&(Y[e]+=r*n,q[e]+=a*n)}if(ve||ze){let r=L-Y[e],a=M-q[e],i=x(r*r+a*a),n=5e-4*re*re/(i*i)*t;i/re>.02&&(Y[e]+=r*n,q[e]+=a*n)}if(ze){let r=-L-Y[e],a=-M-q[e],i=x(r*r+a*a),n=5e-4*re*re/(i*i)*t;i/re>.02&&(Y[e]+=r*n,q[e]+=a*n)}2==Be&&-1!=ye&&(Y[e]*=1-.005*(1-R),q[e]*=1-.005*(1-R));let B=.9;3===ye&&(B=.95),W[3*e]=Y[e],W[3*e+1]=q[e],Te&&J[e]>B?W[3*e+2]=Math.min(3*g,3*r):W[3*e+2]=g}H=H||ze||Oe,_.bindFramebuffer(F,Q),_.viewport(0,0,ee,te),_.useProgram(Qe),_.enable(_.BLEND),_.blendFuncSeparate(z,G,U,G);let de=.151;ce&&(de=.021),Le&&xe&&(de=.545),(ye>2||xe)&&(de=.2),ze&&(de*=.5),_.uniform4f(at,0,0,0,de),_.uniform2f(nt,1,1),_.uniform1f(it,1),_.enableVertexAttribArray(tt),_.bindBuffer(S,Dt),_.vertexAttribPointer(tt,2,P,!1,0,0),_.enableVertexAttribArray(rt),_.bindBuffer(S,Tt),_.vertexAttribPointer(rt,3,P,!1,0,0),_.drawArrays(w,0,6);var me=.2;we&&(me=.15),-1==ye&&(me=.3),Le&&xe&&(me-=.02),xe?_.blendFuncSeparate(z,U,U,U):(_.blendFuncSeparate(z,G,U,G),me=.5),_.useProgram(Ze),_.enable(_.BLEND),_.bindBuffer(S,pt),_.enableVertexAttribArray(ot),_.vertexAttribPointer(ot,2,P,!1,0,0),_.bindBuffer(S,gt),H&&_.bufferData(S,k,I),_.enableVertexAttribArray(ft),_.vertexAttribPointer(ft,3,P,!1,0,0),T.vertexAttribDivisorANGLE(ft,1),_.bindBuffer(S,yt),_.bufferData(S,W,I),_.enableVertexAttribArray(lt),_.vertexAttribPointer(lt,3,P,!1,0,0),T.vertexAttribDivisorANGLE(lt,1),_.uniform4f(ut,1,1,1,me),_.uniform2f(ct,ae/2,ie/2),T.drawArraysInstancedANGLE(w,0,24,X),T.vertexAttribDivisorANGLE(ft,0),T.vertexAttribDivisorANGLE(lt,0),_.blendFuncSeparate(z,G,U,G),_.bindFramebuffer(F,null),_.viewport(0,0,_.canvas.width,_.canvas.height),_.clear(N),_.useProgram(et),_.bindTexture(B,K),_.enableVertexAttribArray(At),_.bindBuffer(S,Dt),_.vertexAttribPointer(At,2,P,!1,0,0),_.enableVertexAttribArray(xt),_.bindBuffer(S,wt),_.vertexAttribPointer(xt,2,P,!1,0,0),_.drawArrays(w,0,6)}))}var o,f})();
(()=>{"use strict";{const l=1/3,u=1/6,c=new Float32Array([1,1,0,-1,1,0,1,-1,0,-1,-1,0,1,0,1,-1,0,1,1,0,-1,-1,0,-1,0,1,1,0,-1,1,0,1,-1,0,-1,-1]),v={init(e){this.r=this.alea(e),this.p=this.bp(this.r),this.perm=new Uint8Array(512),this.p12=new Uint8Array(512);for(var t=0;t<512;t++)this.perm[t]=this.p[255&t],this.p12[t]=this.perm[t]%12},bp(e){var t,r=new Uint8Array(256);for(t=0;t<256;t++)r[t]=t;for(t=0;t<255;t++){var a=t+~~(e()*(256-t)),i=r[t];r[t]=r[a],r[a]=i}return r},masher(){var e=4022871197;return function(t){t=t.toString();for(var r=0;r<t.length;r++){var a=.02519603282416938*(e+=t.charCodeAt(r));a-=e=a>>>0,e=(a*=e)>>>0,e+=4294967296*(a-=e)}return 2.3283064365386963e-10*(e>>>0)}},alea(){var e=0,t=0,r=0,a=1,i=this.masher();e=i(" "),t=i(" "),r=i(" ");for(var n=0;n<arguments.length;n++)(e-=i(arguments[n]))<0&&(e+=1),(t-=i(arguments[n]))<0&&(t+=1),(r-=i(arguments[n]))<0&&(r+=1);return i=null,function(){var i=2091639*e+2.3283064365386963e-10*a;return e=t,t=r,r=i-(a=0|i)}},n3(e,t,r){var a,i,n,o,f,v,s,b,d,h,m=this.p12,A=this.perm,x=(e+t+r)*l,g=p(e+x),y=p(t+x),E=p(r+x),D=(g+y+E)*u,_=e-(g-D),T=t-(y-D),w=r-(E-D);_>=T?T>=w?(f=1,v=0,s=0,b=1,d=1,h=0):_>=w?(f=1,v=0,s=0,b=1,d=0,h=1):(f=0,v=0,s=1,b=1,d=0,h=1):T<w?(f=0,v=0,s=1,b=0,d=1,h=1):_<w?(f=0,v=1,s=0,b=0,d=1,h=1):(f=0,v=1,s=0,b=1,d=1,h=0);var F=_-f+u,P=T-v+u,R=w-s+u,L=_-b+2*u,B=T-d+2*u,M=w-h+2*u,N=_-1+3*u,S=T-1+3*u,C=w-1+3*u,I=255&g,U=255&y,G=255&E,z=.6-_*_-T*T-w*w;if(z<0)a=0;else{var O=3*m[I+A[U+A[G]]];a=(z*=z)*z*(c[O]*_+c[O+1]*T+c[O+2]*w)}var V=.6-F*F-P*P-R*R;if(V<0)i=0;else{var H=3*m[I+f+A[U+v+A[G+s]]];i=(V*=V)*V*(c[H]*F+c[H+1]*P+c[H+2]*R)}var X=.6-L*L-B*B-M*M;if(X<0)n=0;else{var k=3*m[I+b+A[U+d+A[G+h]]];n=(X*=X)*X*(c[k]*L+c[k+1]*B+c[k+2]*M)}var W=.6-N*N-S*S-C*C;if(W<0)o=0;else{var Y=3*m[I+1+A[U+1+A[G+1]]];o=(W*=W)*W*(c[Y]*N+c[Y+1]*S+c[Y+2]*C)}return 32*(a+i+n+o)}},s=(o=[[0,546,0,4095,546,4095],[581,664,3782,4006,3685],[2661,1603,3480,4043,2131,3769,3478,2948,2402,3767,1872,2689,3509,2706,1361,1906,2728,3541,2725,1379,1941,2791,1107,1702,1397,1497,1175,970,1125,903,682,1740,2508,581,1178,615,2202,342,1418,3277,70,1658,1625,1062,2714,1849,1542,2103,2328,1845,3789,3755,3175],[1297,2098,2934,3719,3429,3480,2968,3768,3786,3804,801,4059,1677,1114,550,275,805,1079,1641,3550,1334,2988,787,1863,2698,2664,1588,2134,3259,2423,785,3482,3208,2116,3174],[2950,1074,3531,3237,3801,3290,883,578,2505,3035,1223,562,612,662,1944,596,970,630,937,2508,921,614,955,581,632,2253,1742,923,2747,873,1930,1147,1661,2204,1369,1095,1611,2430,1337,2429,2414,803,804,1062,2123,1881,1849,3165,2362,1366,2907,2939,546,3228,2102,2632,3533,1316,2936,2613],[1331,1875,2150,2677,2949,2440,2967,3477,3222,3787,3275,1160,2731,1946,1400,1947,1109,1146,274,547,1895],[2969,1041,2679,1859,2097,2882,2661,819,3698,3461,2642,1857,2167,3186,2148,2933,1073,2695,3730,3496,3749,1364,2146,2690,3763,1346,4067,3002,2181,3820,1637,1922,2200,561,1105,3016,3839,3294,2748,2475,2185,274,1639,1093,1929,1384,547,1094,2424,1878,546],[2116,1075,2645,3191,2625,3173,3700,1858,3697,4043,1330,4002,4065,4092,4087,546,340,307,291,1127,290,838,564,2186,1111,1350,1879,803,1333,2424,3242,1861,2663],[2867,1842,2627,1058,3156,1586,2900,2115,3446,2677,2133,1331,2968,3752,1603,3787,3513,2404,3205,2966,2421,3803,3785,1621,3257,2439,2693,2983,3510,545,4076,1891,4094,3546,834,2743,1923,1653,1214,923,616,582,291,274,546,274,819,786,546,2834,2066,1297],[1589,3977,3021,89,36],[2423,3396,2900,3787,3992,3958,2951,4025,3479,4060,4023,4057,4092,4094,2730,2015,1436,1710,856,565,1147,18,291,2221,1129,837,566,3822,1111,1913,2442,1366,547,1895,1076,1879,2971,2938,1572,2664,3722,2374,1621,1058,3191,2083,3430,2133,3481],[3686,2167,3720,2133,3173,4009,2951,3973,4007,3478,2712,4025,3240,4059,3768,4058,4075,2456,1672,1144,599,1366,565,546,820,275,1059,1828,1605,2869,2902,3670,3636,1041,2082,3123],[3838,3021,2220,1675,1145,600,54,546],[1569,2370,3171,3460,2404,801,3822,1346,3221,3258,2712,2711,3276,3784,3803,2437,1637,819,3e3,2230,2472,1140,273,578,1398,1448,630,613,307],[3171,2131,3733,1075,2949,3478,4023,2421,3239,4057,1636,4090,4093,2455,1926,1654,853,870,341,564,546,308,18],[2645,2064,3424,801,2928,3728,1874,4032,956,819,650,345,326,292,311,294,275,3005,2121,1558,770,1059,3625,2821,1539,2820,3330],[1860,801,1057,2644,3207,1585,2369,1329,2131,2113,2913,2932,3202,3747,3768,3493,4037,4095,4072,4091,546,332,843,550,1097,1371,548,1352,2154,530,1607,2391,273,1332,2662],[3510,2983,4076,3803,4037,3801,3002,3799,2436,2182,3016,3291,3292,2763,2764,2235,2185,2730,1416,1366,1981,1144,1453,1181,838,1930,2476,1402,547,1112,564,1130,839,823,547,549],[546,2132,529,1330,3497,2712,2950,2675,1636,3509,3255,2182,2451,1907,2726,818,2740,3030,3048,1957,1669,3050,1992,1430,1125,2266,1431,1159,1738,1177,887,2202,1913,1638,1623,2153,1349,2698,2168,1621,1075,2134,2936],[2611,2355,1314,1842,2626,3171,2386,3459,3764,786,1075,2135,3226,1605,802,2373,3448,1587,3158,2612,1843,1058,3380],[3464,3719,3753,4007,4042,4041,4094,4072,4091,1693,1404,841,1115,823,1865,546,1061,2939,2376,3483,2904,1844,3192,3771,1041,2628,3174],[2370,3170,3462,2951,1602,3458,2403,2931,3223,818,2949,3493,3495,3746,1893,1347,3765,2166,4040,2456,3529,4033,1620,1909,2438,3001,2711,2448,3838,3054,2527,1999,1471,943,1164,1948,415,346,2714],[3921,3155,2371,3955,3973,3189,2661,3953,1876,2695,801,3988,4004,4001,3494,4038,1075,2436,3783,4033,1635,2998,3272,2486,2778,578,1992,711,184,714,169,853,598,18],[3872,3105,3937,3973,4026,3968,4004,4040,4016,4038,4048,1088,4088,4085,4090,2448,4082,4092,3058,3061,3064,1777,946,336,385,2811,711,374,2301,34,974,703,343,943,546,398,347,20,22,2189,24,1100,1301,546,3998,786,3930,4045,3961,2597,3895,1810,3893,2116,3859],[3173,50,3294,2203,19,1913,1077,804,546,3243,2134,1572,1298,3755,2920,2373,1538,3481,1827],[1570,2389,2098,2916,2898,2712,2695,3205,3219,3239,2985,3512,3530,3819,4093,3275,2747,1981,1436,2475,1675,1146,601,839,294,38,1640,548,1094,1622,2168,1059,2134],[2320,2389,3156,3136,1841,2897,3696,2385,3186,2933,3984,802,3457,1601,3496,1620,2947,4016,2146,3507,2725,1926,562,50,427,1980,871,411,326,361,395,292,344,363,310,586,2204,276,551,1082,1628,2172,1352,1350,1849,1317,546,2682,2616,2086,3434,1042,802,3384,1861,3499,1812,2598,3350,2440,2579,3090,1297]],f=[],{geti:function(e){e<0&&(e*=-1),e%=1;let t=f.length,r=p(t*e),a=(r+1)%t,i=t*e-r,n=f[r],o=f[a],l=1-i;return[o[0]*i+l*n[0],o[1]*i+l*n[1],o[2]*i+l*n[2]]},init:function(e,t,r){let a=e%o.length;for(var i=0;i<r;++i)for(var n=0;n<o[a].length;++n){let e=o[a][n],r=(15&e)/16,i=(e>>4&15)/16,l=(e>>8&15)/16;t?f.push([.5*l,.5*i,.5*r]):f.push([l,i,r])}}}),b=e=>new Float32Array(e),d=Math.PI,h=2*d,m=Math.cos,A=Math.sin,x=Math.sqrt,p=Math.floor,g=Math.ceil,y=Math.abs,E=e=>{const t=Y[e],r=q[e];return x(t*t+r*r)},D=document.querySelector("canvas"),_=D.getContext("webgl",{alpha:!1}),T=_.getExtension("ANGLE_instanced_arrays"),w=_.TRIANGLES,F=_.FRAMEBUFFER,P=_.FLOAT,R=_.UNSIGNED_BYTE,L=_.RGBA,B=_.TEXTURE_2D,M=_.COLOR_ATTACHMENT0,N=_.COLOR_BUFFER_BIT|_.DEPTH_BUFFER_BIT,S=_.ARRAY_BUFFER,C=_.STATIC_DRAW,I=_.DYNAMIC_DRAW,U=_.ONE,G=_.ONE_MINUS_SRC_ALPHA,z=_.SRC_ALPHA,O=(e,t,r)=>e.getAttribLocation(t,r),V=(e,t,r)=>e.getUniformLocation(t,r),H=()=>_.createBuffer(),X=3e4,k=b(3*X),W=b(3*X),Y=b(X),q=b(X),j=b(X),J=b(X);let K,Q,Z,$,ee,te,re=0,ae=0,ie=0,ne=0,oe=0,fe=!1,le=1,ue=0,ce=!1,ve=!1,se=60*(new Date).getTimezoneOffset()*1e3;v.init(42);let be=[];for(let e=0;e<720;++e)be.push(e);let de=be.length;for(;0!==de;){let e=p(v.r()*de);de-=1;let t=be[de];be[de]=be[e],be[e]=t}v.init(tokenData.hash);const he=v.r;let me=p(27*he()),Ae=1;he()>.95&&(Ae=2);let xe=he()>.3,pe=.99;he()>.6&&(pe=1.01);let ge=2+2.5*he(),ye=100,Ee=he();Ee>.9?ye=-1:Ee>.3&&(ye=p(4*he())+3);let De=100;(he()>.5||100==ye)&&(De=p(4*he())+3);let _e=20;he()>.95?_e=400:he()>.9&&(_e=-1);let Te=he()>.7,we=!(he()>.2||-1==ye),Fe=0,Pe=he();Pe>.8?Fe=1:Pe>.6?Fe=2:Pe>.5&&(Fe=3);let Re=0;Pe=he(),Pe>.9?Re=2:Pe>.8&&(Re=1);let Le=he()>.95&&ye>=0,Be=0;he()>.7&&(Be=he()>.333?2:1);let Me=he()>.6&&_e<30,Ne=he()>.5,Se=he()>.3,Ce=he()>.9,Ie=be[parseInt((tokenData.tokenId+"").substr(-4))%720],Ue=Ie%60,Ge=(Ie-Ue)/60,ze=!1,Oe=!1;function e(){let e=_.createTexture();_.bindTexture(B,e),_.texImage2D(B,0,L,ee,te,0,L,R,null),_.texParameteri(B,_.TEXTURE_MIN_FILTER,_.LINEAR),_.texParameteri(B,_.TEXTURE_MAG_FILTER,_.LINEAR),_.texParameteri(B,_.TEXTURE_WRAP_S,_.CLAMP_TO_EDGE),_.texParameteri(B,_.TEXTURE_WRAP_T,_.CLAMP_TO_EDGE);let t=_.createFramebuffer();return _.bindFramebuffer(F,t),_.framebufferTexture2D(F,M,B,e,0),[e,t]}function t(t){t.width=document.body.clientWidth,t.height=document.body.clientHeight;const r=t.clientWidth,a=t.clientHeight;re=Math.min(r,a),ae=r,ie=a,ee=r,te=a,t.width===r&&t.height===a||(t.width=r,t.height=a),[K,Q]=e(),[Z,$]=e()}function r(e,t,r){let a=e.createShader(t);return e.shaderSource(a,r),e.compileShader(a),a}function a(e,t,r){let a=e.createProgram();return e.attachShader(a,t),e.attachShader(a,r),e.linkProgram(a),a}
A real-time live interactive piece that also acts as a clock. 720 unique ways to show the current time, one per minute over twelve hours. Each clock will activate on its given minute, giving you a special moment every twelve hours to consider what one minute means to you.