0x18b75119…b783sent to0x381233d5…7acd·#19,594,914·view on Etherscan
[0,()=>{console.log("Artist 39. Stefano Contiero -- platform 0");const e={width:3*window.innerWidth,height:3*window.innerHeight,colorSpace:"display-p3"};let t,r,a,n=(e,t)=>(void 0===e?(e=0,t=1):t=t||0,e+W.R.R()*(t-e)),i=(e,t)=>~~n(e,t),o=e=>e[i(e.length)],l=(e=1,a=0)=>{if(r){r=0;let n=t;return t=null,a+e*n}{let i=0,o=0,l=0;do{i=n(-1,1),o=n(-1,1),l=i*i+o*o}while(l>=1||0===l);let f=M.sqrt(-2*M.log(l)/l);return t=o*f,r=1,a+e*i*f}},f=e=>{let t=[...e],r=t.length,a=0;for(;0!=r;)a=~~(n()*r),r--,[t[r],t[a]]=[t[a],t[r]];return t},s=e=>n()<e,c=(e,t,r)=>M.max(M.min(e,r),t),d="fefdfb1d1517302332dd2e26f87d68fcc2cbf55b4dfcc79ef7d86ea0b8acb4aab2-f8f9fae9ecefdee2e6ced4daadb5bd6c757d495057343a40212529-de2c2cfff8e8fcd581d52941990d35-d726383f88c5f49d37140f2df22b29-183945116973F67C1FD82B03F2F2F2-a31621bfdbf7053c5e1f7a8cdb222a-1e90ffff514eff7700f7e3d569b6682b9091486abd282e39-b8b8d15b5f97319177ffc145ffe0a0fffffbffb5b4ff6b6c-1b3b4bd40000b68762eef2f6e6e0dae0b299eda67de2725b-0505041d34611f487d237ba133b2cce6e6e6fdd692fb3640-1d2f53ec5c23fdc449f5f1ebf8b8a03cb8a472c1c65898c1-ffbb33f1faeea8dadc457b9d1d3557031927424b54042a2b-26437fffcc00d2292effffff0000001884bffefddfd9381e-ccdbdc9ad1d480ced7007ea70032493d5a80ee6c4d293241-d00000fefefa3f88c5032b43136f6337323e96c8a2001242-05668d02809000a89602c39af0f3bdf7e7cefffaf000bbd8-3f3f37d6d6b1f2e0b6e6a100f24500-7500009e0000bd0000c70000d10000db0000e60000fa0000ff00007500009e0000bd0000c70000d10000db0000e60000fa0000ff00007500009e0000bd0000c70000d10000db0000e60000fa0000ff0000ffffff-f2bf58ffdd8ce37f445458737660654e342b45414a120d0e-247ba033b2ccfdd692ffcc33ff8c00fb364000563fff91af-d3cdc3F03000f78355ee7749F03C004b3934260c1a252422-40190617171af0a000f0c630f0d9a5f0d0c0ff0015cceeff-095c842e84a68eaccbe7eef5e1bf9bc48e1b876930241e05283224-7fa0c2336cbc60d7a2c8f354eee349ffffffe83b83e03a2eee8534e5d694-31b3936cde7ea0e6be6ad0be35ccc800a5cc60b3ef8a99e9ffbff4ff73d0-887499aba6c4d66e7fbb697ffe683cfca13bfcf115fbc9b2a244301b151".split`-`.map((e=>e.match(/.{6}/g).map((e=>"#"+e)))),u=e=>{let t=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);return[parseInt(t[1],16)/255,parseInt(t[2],16)/255,parseInt(t[3],16)/255,1]},m=e=>{let t,r,[a,n,i]=u(e),o=M.max(a,n,i),l=M.min(a,n,i),f=(o+l)/2;if(o==l)t=r=0;else{let e=o-l;switch(r=f>.5?e/(2-o-l):e/(o+l),o){case a:t=(n-i)/e+(i>n?6:0);break;case n:t=(i-a)/e+2;break;case i:t=(a-n)/e+4}t/=6}return t*=360,r*=100,f*=100,[t,r,f,1]},h=e=>{let t=e[0],r=e[1]/100,a=e[2]/100,n=e[3]||1,i=(1-M.abs(2*a-1))*r,o=i*(1-M.abs(t/60%2-1)),l=a-i/2,f=0,s=0,c=0;return t>=0&&60>t?(f=i,s=o,c=0):t>=60&&120>t?(f=o,s=i,c=0):t>=120&&180>t?(f=0,s=i,c=o):t>=180&&240>t?(f=0,s=o,c=i):t>=240&&300>t?(f=o,s=0,c=i):t>=300&&360>t&&(f=i,s=0,c=o),f+=l,s+=l,c+=l,[f,s,c,n]},b=(e=1)=>{let t=[];a=[];for(let r=0;e>r;r++){let e=i(d.length);a.push(...d[e]),t.push(e)}return a=f(a),t},p=e=>o(a),g=(e,t=.5,r,a)=>{let n=360+e[0],i=e[1],o=e[2];return r=r||e[3],n=l(t*=4,n)%360,i=c(l(t,i),.01,100),o=c(l(t,o),.01,100),a||(r=c(l(t/20,r),1e-4,1)),[n,i,o,r]},v=e=>{let t=e.map((e=>e>.03928?Math.pow((e+.055)/1.055,2.4):e/12.92));return.2126*t[0]+.7152*t[1]+.0722*t[2]},x=(e,t)=>{let r=v(e)+.05,a=v(t)+.05;return Math.max(r/a,a/r)},y={},E=e=>{return y={palettes:b(i(3)+1),background:u(s(.75)?p():"#ffffff")},y.sil=u((t=y.background,o(((e,t)=>{let r=[];do{r=a.filter((r=>x(e,u(r))>t)),t-=.1}while(0===r.length||t>1);return 0===r.length&&(r=a),r})(t,4)))),y;var t};const R=(t,r={})=>{let a={};a.canvas=D.createElement("canvas"),a.context=a.canvas.getContext(t,{colorSpace:e.colorSpace,alpha:1,...r});let{canvas:n,context:i}=a;return a.setSize=(t=1)=>{let r=e.width/e.height,i=W.innerWidth,o=W.innerHeight;a.density=W.devicePixelRatio,o*r>i?(a.width=i,a.height=i/r,a.scale=i/e.width):(a.width=o*r,a.height=o,a.scale=o/e.height),n.width=~~(a.width*a.density*t),n.height=~~(a.height*a.density*t);let l=n.style;l.width=~~a.width+"px",l.height=~~a.height+"px",l.imageRendering="pixelated"},a.save=e=>{n.toBlob((t=>{let r=URL.createObjectURL(t),a=D.createElement("a");a.href=r,a.download=`${tokenData.hash}.png`,a.click(),e&&e()}),"image/png",1)},a.destroy=e=>{a.width=a.height=n.width=n.height=1,a.clear(),n.remove(),delete a.canvas,delete a.context,n=i=a=null},a};let T,w=(e,t,r)=>(T||(T=U(n(98765,34567876))),T(e,t,r)),A=e=>{let t=new Uint32Array(1);return t[0]=1664525*e[0]+1013904223,t},_=(Math.sqrt(4)-1)/3,S=(1/Math.sqrt(4)-1)/3,F=(e,t,r,a)=>({dx:-t-e*_,dy:-r-e*_,dz:-a-e*_,xsb:t,ysb:r,zsb:a}),U=e=>{let t=[];for(let e=0;e<C.length;e+=9){let r=z[C[e]],a=null,n=null;for(let i=0;i<r.length;i+=4)n=F(r[i],r[i+1],r[i+2],r[i+3]),null===a?t[e/9]=n:a.next=n,a=n;n&&(n.next=F(C[e+1],C[e+2],C[e+3],C[e+4]),n.next.next=F(C[e+5],C[e+6],C[e+7],C[e+8]))}let r=[];for(let e=0;e<B.length;e+=2)r[B[e]]=t[B[e+1]];let a=new Uint8Array(256),n=new Uint8Array(256),i=new Uint8Array(256);for(let e=0;256>e;e++)i[e]=e;let o=new Uint32Array(1);o[0]=e,o=A(A(A(o)));for(let e=255;e>=0;e--){o=A(o);let t=new Uint32Array(1);t[0]=(o[0]+31)%(e+1),0>t[0]&&(t[0]+=e+1),a[e]=i[t[0]],n[e]=a[e]%24*3,i[t[0]]=i[e]}return(e,t,i)=>{let o=(e+t+i)*S,l=e+o,f=t+o,s=i+o,c=Math.floor(l),d=Math.floor(f),u=Math.floor(s),m=(c+d+u)*_,h=e-(c+m),b=t-(d+m),p=i-(u+m),g=l-c,v=f-d,x=s-u,y=g+v+x,E=0;for(let e=r[v-x+1|g-v+1<<1|g-x+1<<2|y<<3|y+x<<5|y+v<<7|y+g<<9];void 0!==e;e=e.next){let t=h+e.dx,r=b+e.dy,i=p+e.dz,o=2-t*t-r*r-i*i;if(o>0){let l=c+e.xsb,f=d+e.ysb,s=u+e.zsb,m=a[255&l],h=a[m+f&255],b=n[h+s&255];E+=o*o*o*o*(P[b]*t+P[b+1]*r+P[b+2]*i)}}return.009708737864077669*E}},z=[[0,0,0,0,1,1,0,0,1,0,1,0,1,0,0,1],[2,1,1,0,2,1,0,1,2,0,1,1,3,1,1,1],[1,1,0,0,1,0,1,0,1,0,0,1,2,1,1,0,2,1,0,1,2,0,1,1]],P=[-11,4,4,-4,11,4,-4,4,11,11,4,4,4,11,4,4,4,11,-11,-4,4,-4,-11,4,-4,-4,11,11,-4,4,4,-11,4,4,-4,11,-11,4,-4,-4,11,-4,-4,4,-11,11,4,-4,4,11,-4,4,4,-11,-11,-4,-4,-4,-11,-4,-4,-4,-11,11,-4,-4,4,-11,-4,4,-4,-11],B=[0,2,1,1,2,2,5,1,6,0,7,0,32,2,34,2,129,1,133,1,160,5,161,5,518,0,519,0,546,4,550,4,645,3,647,3,672,5,673,5,674,4,677,3,678,4,679,3,680,13,681,13,682,12,685,14,686,12,687,14,712,20,714,18,809,21,813,23,840,20,841,21,1198,19,1199,22,1226,18,1230,19,1325,23,1327,22,1352,15,1353,17,1354,15,1357,17,1358,16,1359,16,1360,11,1361,10,1362,11,1365,10,1366,9,1367,9,1392,11,1394,11,1489,10,1493,10,1520,8,1521,8,1878,9,1879,9,1906,7,1910,7,2005,6,2007,6,2032,8,2033,8,2034,7,2037,6,2038,7,2039,6],C=[0,0,1,-1,0,0,1,0,-1,0,0,-1,1,0,0,0,1,-1,0,0,-1,0,1,0,0,-1,1,0,2,1,1,0,1,1,1,-1,0,2,1,0,1,1,1,-1,1,0,2,0,1,1,1,-1,1,1,1,3,2,1,0,3,1,2,0,1,3,2,0,1,3,1,0,2,1,3,0,2,1,3,0,1,2,1,1,1,0,0,2,2,0,0,1,1,0,1,0,2,0,2,0,1,1,0,0,1,2,0,0,2,2,0,0,0,0,1,1,-1,1,2,0,0,0,0,1,-1,1,1,2,0,0,0,0,1,1,1,-1,2,3,1,1,1,2,0,0,2,2,3,1,1,1,2,2,0,0,2,3,1,1,1,2,0,2,0,2,1,1,-1,1,2,0,0,2,2,1,1,-1,1,2,2,0,0,2,1,-1,1,1,2,0,0,2,2,1,-1,1,1,2,0,2,0,2,1,1,1,-1,2,2,0,0,2,1,1,1,-1,2,0,2,0],k="#version 300 es",N=`${k}\nprecision highp float;in vec2 position;out vec4 color;uniform sampler2D image;uniform vec2 resolution;`,L="float hash13(vec2 p,float s,float t){vec3 p3=vec3(p.x,p.y,s+t);p3=fract(p3*.1031);p3+=dot(p3,p3.zyx+31.32);return fract((p3.x+p3.y)*p3.z);}",I=e=>{let t=2*M.PI,r=e=>e%1?e:e+".",a=(e=t)=>`vec3(${[0,0,0].map((t=>r(n(e))))})`,i=(e=1)=>`vec3(${[0,0,0].map((t=>r(e*2**(n(.6)-.3))))})`;return`float wobbly(vec3 p){return dot(sin(p.xyz*${i()}+2.*sin(p.yzx*${i()}+${a()})+${a()}),sin(p.zyx*${i()}+3.*sin(p.zxy*${i()}+${a()})+${a()}));}`};const $=`${k}\nin vec2 a_position,a_texCoord;uniform mat3 u_textureMatrix;out vec2 position;void main(){position=(u_textureMatrix*vec3(a_texCoord,1)).xy;gl_Position=vec4(a_position*2.-vec2(1),0,1);}`;let O=e=>`${N}uniform float dist,intensity;mat3 k=mat3(${e});float f=0.;void main(){vec2 i=position;vec4 v=vec4(0);for(int e=-1;e<2;e++)for(int m=-1;m<2;m++){vec4 b=texture(image,i+vec2(e,m)/(resolution/9.)*dist);float d=k[m+1][e+1];v+=b*d;f+=d;}color=mix(texture(image,i),v/f,intensity);}`;const X=(e,t)=>{let r="-1.,-.5,0.,-.5,1.,.5,0.,.5,1.",a="convolution";return"sharpen"===e&&(r="0.,-1.,0.,-1.,5.,-1.,0.,-1.,0.",a+="Sharpen"),"gaussian"===e&&(r=".00625,.125,.00625,.125,.25,.125,.00625,.125,.00625",a+="Gaussian"),t&&(a+=t),{name:a,vertex:$,fragment:O(r),uniforms:[{name:"dist",type:"uniform1f"},{name:"intensity",type:"uniform1f"}]}},G={name:"jittering",vertex:$,fragment:`${N}${L}uniform float intensity,jitterSize,seed;void main(){color=texture(image,position);vec2 i=position;i.x+=(hash13(gl_FragCoord.xy,1.,0.)*2.-1.)/resolution.x*jitterSize;i.y+=(hash13(gl_FragCoord.xy,1903.,0.)*2.-1.)/resolution.y*jitterSize;if(i.x<0.)i.x=abs(i.x);if(i.y<0.)i.y=abs(i.y);if(i.x>1.)i.x=1.-i.x+1.;if(i.y>1.)i.y=1.-i.y+1.;vec4 y=texture(image,i);if(y.w!=0.&&color.w!=0.)color=mix(color,y,intensity);}`,uniforms:[{name:"intensity",type:"uniform1f"},{name:"seed",type:"uniform1f"},{name:"jitterSize",type:"uniform1f"}]};let j=e=>`${N}${L}${e}float getNoise(int o,float p,float f,vec3 c){float a=1.;float m=0.;float s=0.;for(int i=0;i<o;++i){s+=a*wobbly(c*f);f*=2.;m+=a;a*=p;}return (s/m)*.5+.5;}uniform float intensity;vec4 e(vec4 n){float y=0.,v=0.,c=0.,p=n.x,g=n.y,z=n.z,r=min(p,min(g,z)),m=max(p,max(g,z));c=(m+r)/2.;if(m>r){float x=m-r;v=c<0.?x/(m+r):x/(2.-m-r);y=p==m?(g-z)/x:g==m?2.+(z-p)/x:4.+(p-g)/x;if(y<0.)y+=6.;y/=6.;}return vec4(y,v,c,n.w);}vec4 p(vec4 n){return vec4(vec3(n.z+n.y*(clamp(abs(mod(n.x*6.+vec3(0,4,2),6.)-3.)-1.,0.,1.)-.5)*(1.-abs(2.*n.z-1.))),n.w);}void main(){vec2 n=position;n.x+=(getNoise(8,1.,50.,vec3(n.xy,0))*2.-1.)/4e2;n.y+=(getNoise(8,1.,50.,vec3(n.xy,1))*2.-1.)/4e2;color=texture(image,position);vec4 v=texture(image,n);vec2 g=position,z=resolution;v.xyz+=(getNoise(8,10.,50.,vec3(position.x/7.,position.y/7.,color.x*color.y*color.z))*2.-1.)*.005;v=e(v);v.x=clamp(v.x+(getNoise(4,.8,25.,vec3(position.x/10.,position.y/10.,color))*2.-1.)*.01,0.,1.);v.y=clamp(v.y+(getNoise(4,1.,25.,vec3(position.x/10.,position.y/10.,color.y))*2.-.8)*.025,0.,1.);v.z=clamp(v.z+(getNoise(8,1.,25.,vec3(position.x/10.,position.y/10.,color.z))*2.-.5)*.015,0.,1.);v.xyz+=(hash13(floor(g*z)/z*1e3,0.,v.x*v.y*v.z)*2.-1.)/20.;color=mix(color,p(v),intensity);}`,H=(e,t,r)=>{let a=e.createShader(r);return e.shaderSource(a,t),e.compileShader(a),e.getShaderParameter(a,e.COMPILE_STATUS)||e.deleteShader(a),a},Y=Float32Array,q=e=>{let t=e.createTexture();return e.bindTexture(e.TEXTURE_2D,t),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.MIRRORED_REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.MIRRORED_REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.NEAREST),t};const K={name:"post",vertex:$,fragment:`${N}uniform float brightness,contrast,saturation;mat4 v(float m){return mat4(1,0,0,0,0,1,0,0,0,0,1,0,m,m,m,1);}mat4 m(float m){float b=(1.-m)/2.;return mat4(m,0,0,0,0,m,0,0,0,0,m,0,b,b,b,1);}mat4 b(float m){vec3 b=vec3(.3086,.6094,.082);float n=1.-m;vec3 f=vec3(b.x*n);f+=vec3(m,0,0);vec3 v=vec3(b.y*n);v+=vec3(0,m,0);vec3 r=vec3(b.z*n);r+=vec3(0,0,m);return mat4(f,0,v,0,r,0,0,0,0,1);}void main(){color=v(brightness)*m(contrast)*b(saturation)*texture(image,position);}`,uniforms:[{name:"brightness",type:"uniform1f"},{name:"contrast",type:"uniform1f"},{name:"saturation",type:"uniform1f"}]},V=(t,r=[])=>{let a,n=(e=>{let t=R("2d",void 0),{context:r}=t,a={fill:0,stroke:0,blend:"source-over"},n=(e,t,n)=>{a[e]=((e,t)=>`rgba(${255*e[0]}, ${255*e[1]}, ${255*e[2]}, ${t||e[3]||1})`)(t,n),r[`${e}Style`]=a[e]},i=e=>{a.fill&&r.fill(),a.stroke&&r.stroke()};return t.adjustDensity=e=>r.scale(t.density,t.density),t.draw=(e,a)=>{r.save(),t.adjustDensity();let n=e(t,a);return r.restore(),n},t.setOpacity=e=>r.globalAlpha=e,t.clear=e=>r.clearRect(0,0,t.width*t.density,t.height*t.density),t.fill=(e,t)=>n("fill",e,t),t.stroke=(e,t)=>n("stroke",e,t),t.noFill=e=>a.fill=0,t.noStroke=e=>a.stroke=0,t.strokeWeight=e=>r.lineWidth=e*((t.scale+t.scale)/2),t.translate=(e,a)=>r.translate(e*t.scale,a*t.scale),t.rotate=e=>r.rotate(e),t.push=e=>r.save(),t.pop=e=>r.restore(),t.shape=(e,a,n,o,l,f,s)=>{r.beginPath(),r[e](a*t.scale,n*t.scale,o*t.scale,(l||o)*t.scale,0,f,s),i()},t.rect=(e,r,a,n)=>t.shape("rect",e,r,a,n),t.ellipse=(e,r,a,n,i=0,o=2*M.PI)=>t.shape("ellipse",e,r,a,n,i,o),t.curvedPolygon=(e,a=1)=>{if(e.length>3){let n=[...e];a&&n.push(e[0],e[1],e[2]);let o,l=[];for(r.beginPath(),r.moveTo(n[1][0]*t.scale,n[1][1]*t.scale),o=1;o+2<n.length;o++){let e=n[o];l[0]=[e[0],e[1]],l[1]=[e[0]+(n[o+1][0]-n[o-1][0])/6,e[1]+(n[o+1][1]-n[o-1][1])/6],l[2]=[n[o+1][0]+(n[o][0]-n[o+2][0])/6,n[o+1][1]+(n[o][1]-n[o+2][1])/6],l[3]=[n[o+1][0],n[o+1][1]],r.bezierCurveTo(l[1][0]*t.scale,l[1][1]*t.scale,l[2][0]*t.scale,l[2][1]*t.scale,l[3][0]*t.scale,l[3][1]*t.scale)}i()}},t.image=(e,a=0,n=0,i,o)=>r.drawImage(e,a*t.scale,n*t.scale,t.canvas.width/t.density,t.canvas.height/t.density),t})(),i={engine:n,blendMode:"source-over",completed:0};return n.setSize(),r.length&&(a=(t=>{let r=R("webgl2",{colorSpace:"display-p3",powerPreference:"high-performance",preserveDrawingBuffer:1}),{context:a,canvas:n}=r;"drawingBufferColorSpace"in a&&(a.drawingBufferColorSpace=e.colorSpace),"unpackColorSpace"in a&&(a.unpackColorSpace=e.colorSpace);let i,o=[],l=(e,t)=>((e,t,r,a,n,i=1)=>{let{width:o,height:l}=e.canvas,f=new Y([0,0,1,0,0,1,0,1,1,0,1,1]),s=((e,t,r)=>{let a=e.createProgram(),n=H(e,t,e.VERTEX_SHADER),i=H(e,r,e.FRAGMENT_SHADER);return e.attachShader(a,n),e.attachShader(a,i),e.linkProgram(a),e.getProgramParameter(a,e.LINK_STATUS)||e.deleteProgram(a),a})(e,t,r);e.useProgram(s);let c=e.getAttribLocation(s,"a_position"),d=e.getAttribLocation(s,"a_texCoord"),u=e.getUniformLocation(s,"u_textureMatrix"),m=new Y([1,0,0,0,1,0,0,0,1]),h=e.createBuffer();e.bindBuffer(e.ARRAY_BUFFER,h),e.vertexAttribPointer(c,2,e.FLOAT,0,0,0),e.enableVertexAttribArray(c),e.vertexAttribPointer(d,2,e.FLOAT,0,0,0),e.enableVertexAttribArray(d),e.uniformMatrix3fv(u,0,m),e.bufferData(e.ARRAY_BUFFER,f,e.STATIC_DRAW);let b={};for(let t of a)b[t.name]={type:t.type,location:e.getUniformLocation(s,t.name),texture:t.texture};let p=[];for(let t=0;i>t;t++)p.push(q(e));let g=e.createFramebuffer();return e.bindFramebuffer(e.FRAMEBUFFER,g),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,o,l,0,e.RGBA,e.UNSIGNED_BYTE,null),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,p[0],0),{name:n,getTexture:(e=0)=>p[e],draw(t){e.useProgram(s);let r=1;for(let[a,n]of Object.entries(t))n=Array.isArray(n)?n:[n],b[a].texture?(e.activeTexture(e.TEXTURE0+r),e.bindTexture(e.TEXTURE_2D,p[r]),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,...n),e[b[a].type](b[a].location,r),r++):e[b[a].type](b[a].location,...n);e.bindBuffer(e.ARRAY_BUFFER,h),e.drawArrays(e.TRIANGLES,0,6)},set(){e.bindFramebuffer(e.FRAMEBUFFER,g)},clear(){e.bindFramebuffer(e.FRAMEBUFFER,g),e.clearColor(0,0,0,0),e.clear(e.COLOR_BUFFER_BIT)},reset(){({width:o,height:l}=e.canvas),g&&(e.bindTexture(e.TEXTURE_2D,p[0]),e.bindFramebuffer(e.FRAMEBUFFER,g),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,o,l,0,e.RGBA,e.UNSIGNED_BYTE,null),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,p[0],0))}}})(a,e.vertex,e.fragment,[{type:"uniform1i",name:"image"},{type:"uniform2f",name:"resolution"},...e.uniforms],e.name,t);a.clear(a.COLOR_BUFFER_BIT),a.disable(a.DEPTH_TEST),a.enable(a.BLEND),a.blendFunc(a.SRC_ALPHA,a.ONE_MINUS_SRC_ALPHA),a.pixelStorei(a.UNPACK_PREMULTIPLY_ALPHA_WEBGL,1),a.pixelStorei(a.UNPACK_COLORSPACE_CONVERSION_WEBGL,a.NONE),a.pixelStorei(a.UNPACK_FLIP_Y_WEBGL,1);for(let e=0;e<t.length;e++)o.push(l(t[e],t[e].textures));i=l(K);let f=r.setSize;return r.setSize=e=>{f(),a.viewport(0,0,r.width*r.density,r.height*r.density);for(let e of[...o,i])e.reset()},r.draw=(t,r)=>{let{uniforms:n,blendModeGL:l,post:f={}}=r,{brightness:s=0,contrast:c=1,saturation:d=1}=f,u={image:0,resolution:[e.width,e.height]};for(let e=0;e<o.length;e++)a.activeTexture(a.TEXTURE0),a.bindTexture(a.TEXTURE_2D,o[e].getTexture()),0===e&&a.texImage2D(a.TEXTURE_2D,0,a.RGBA,a.RGBA,a.UNSIGNED_BYTE,t),e+1<o.length?o[e+1].set():i.set(),o[e].draw({...u,...n[o[e].name]});i.set(),a.activeTexture(a.TEXTURE0),a.bindTexture(a.TEXTURE_2D,i.getTexture()),a.bindFramebuffer(a.FRAMEBUFFER,null),i.draw({...u,brightness:s,contrast:c,saturation:d})},r.clear=e=>{a.clearColor(0,0,0,0),a.clear(a.COLOR_BUFFER_BIT),[...o,i].forEach((e=>e.clear()))},r})(r),a.setSize(),i.engine=a,i.engine2D=n),i.draw=e=>{let{clear:r}=a||{},o=n.draw(t,{...e,clear:r});a&&a.draw(n.canvas,o);for(let[e,t]of Object.entries(o))i[e]=t},i.setSize=e=>{n.setSize(),a.setSize()},i.destroy=e=>{n.destroy(),a&&a.destroy()},i};let J=([e,t,r=0],[a,n,i=0])=>M.sqrt((a-e)**2+(n-t)**2+(i-r)**2),Q=(e,t)=>[e[0]+t[0],e[1]+t[1],e[2]+t[2]||0],Z=([e,t],[r,a]=[0,0])=>M.atan2(a-t,r-e);const ee=([t,r],a,i,o,f,s)=>{let{width:c,height:d}=e,u=M.max(c,d),b=i/o.length,p=a/2,v=i/2,x=n(231412),{background:E,sil:R}=y;return{draw(e){e.push(),e.translate(t,r),f&&(e.translate(p,v),e.rotate(f),e.translate(-p,-v)),e.noStroke();for(let n=0;n<o.length;n++){let i=m(o[n]),f=w(t/u,r/u,x+n)*a*.15,c=a+w(t/u,r/u,x**2+n)*a*.15;if(e.push(),e.translate(f,0),s)e.fill(E),e.stroke(R,.8),e.strokeWeight(l(.1,2)),e.rect(l(),b*n,c+l(),b);else{e.noStroke();for(let t=0;b>t;t++)e.fill(h(g(i,.5))),e.rect(l(),t+b*n,c+l(),2)}e.pop()}e.pop()}}},te=(t,r)=>{let{width:a,height:o}=e,l=M.max(a,o),c=[],d=s(.5),u=n()/(10*(i(10)+1)),m=1/(J(t,r)/l*u*5e3),h=n(98123765),b=l*(i(10)+1)/50,g=l*(i(10)+1)/50,v=5*(i(10)+1);for(let e=0;1>=e;e+=m){let a=(x=t,[(E=e)*((y=r)[0]-x[0])+x[0],E*(y[1]-x[1])+x[1],E*(y[2]-x[2])+x[2]||0]);a=Q(a,[w(a[0]/l*v,a[1]/l*v,h)*b,w(a[0]/l*v,a[1]/l*v,h+198765)*g]),c.push(a)}var x,y,E;let R=[],T=e=>{s(.01)&&(R=[]);let t=s(.5)?3:s(.75)?2:1;for(let e=0;t>e;e++)R.push(p())};T();let A=l/(i(15,60)+1),_=l/(i(15,60)+1),S=50*(i(10)+1),F=[];for(let e=1;e<c.length;e++){let t=c[e],r=Z(t,c[e-1]),a=ee(t,A+w(t[0]/l*S,t[1]/l*S,h)*A,_+w(t[0]/l*S,t[1]/l*S,h+198765)*_,R,r,d);F.push(a),s(.1)&&(R=f(R)),s(.1)&&T()}return{silouette:d,draw(e){for(let t of F)t.draw(e)}}},re=(e,t,r,a)=>{let n=s(.5),{background:i,sil:o}=y,f=n?i:u(p()),c=n?o:u(p());return{silouette:n,draw(i){i.push(),i.translate(e,t),n?(i.stroke(c,.8),i.strokeWeight(l(.5,3.5))):(i.noStroke(),i.strokeWeight(1)),i.fill(f),i.ellipse(0,0,r),i.noFill();let o=.5*M.PI;i.rotate(Z([e,t],a)+M.PI);for(let e=r/4;r>e;e++)i.stroke(c,M.max(.9*(e-(s=r/2))/(r-s)+.1)*(n?.05:1)),i.ellipse(0,0,e,r,-o,o);var s;i.pop()}}};(a=>{window.W=window,W.D=document,W.S=D.body.style,W.M=Math;let o,c,d,u,m,h,b,p,g=(e=>{let t=[];return{addLayers(e){t.push(...e),D.body.appendChild(t[t.length-1].engine.canvas)},render(e){let r=1;for(let a of t)a.completed||(r=0,a.draw(e));return r},reset(){t.forEach((e=>e.destroy())),t=[]},save(e){t[t.length-1].engine.save(e)}}})(),v=e=>{p||(b=W.requestAnimationFrame(v),u=e,h=u-m,h>c&&(m=u-h%c,p=g.render({frameCount:o}),o++))},x=a=>{e.width=3*window.innerWidth,e.height=3*window.innerHeight,b&&W.cancelAnimationFrame(b),tokenData.hash,t=r=null,W.R=Random(),T=null,g.reset();let u=E();o=0,c=1e3/60,m=W.performance.now(),d=m,p=0,g.addLayers((t=>{let{background:r,exposure:a}=t,{width:o,height:c}=e,d=[],u=[n(o),n(c)],m=M.max(o,c)/(10*(i(10)+1)),h=((e,t,r)=>{const a=r/M.sqrt(2),o=M.ceil(e/a),l=M.ceil(t/a),f=new Array(o*l),s=[],c=(n,i)=>{if(0>n||n>=e||0>i||i>=t)return 0;const s=~~(n/a),c=~~(i/a),d=M.max(0,s-2),u=M.max(0,c-2),m=M.min(o-1,s+2),h=M.min(l-1,c+2);for(let e=d;m>=e;e++)for(let t=u;h>=t;t++){const a=f[e+t*o];if(a&&J(a,[n,i])<r)return 0}return 1},d=e=>{const t=(r=e[0],n=e[1],~~(r/a)+~~(n/a)*o);var r,n;f[t]=e,s.push(e)};for(d([n(e),n(t)]);s.length>0;){const e=i(s.length),t=s[e];let a=0;for(let e=0;100>e;e++){const e=n(2*M.PI),i=M.sqrt(n(3))*r,o=[t[0]+i*M.cos(e),t[1]+i*M.sin(e)];if(c(o[0],o[1])){d(o),a=1;break}}a||s.splice(e,1)}return f.filter((e=>void 0!==e))})(o,c,m);h=f(h);let b=[];for(let e of h){let t=1,r=M.min(o,c)*n(.1,.5),a=M.abs(l(.3*r,r))/2;e[2]=a;for(let r of b)J(e,r)<e[2]+r[2]&&(t=0);t&&b.push(e)}for(let e of b)s(.5)&&d.push(re(...e,u));let p=i(2,9)+10,g=i(2,9)+1,v=c/p,x=o/g,y=[],E=i(7,16)+1;for(let e=0;E>e;e++){let e=s(.5),t=s(.5),r=(t?i(g/2):i(g/2,g)+1)*x,a=(t?i(p/2):i(p/2,p)+1)*v,n=(t?i(g/2,g)+1:i(g/2))*x,l=(t?i(p/2,p)+1:i(p/2))*v,f=[e?r:0,e?0:a],d=[e?n:o,e?c:l];y.push(te(f,d))}let R=e=>[e.slice(0,e.length/2),e.slice(e.length/2,e.length)],T=e=>{let t=[],r=[];for(let a of e)a.silouette?t.push(a):r.push(a);return[t,...R(r)]};d=T(d),y=T(y);let w=(e,t,r,a)=>{e.clear();let n=r[a.indexOf(t)]||[];for(let t of n)t.draw(e)},A=V(((e,{frameCount:t})=>(w(e,t,y,[1,2,4]),{completed:5===t}))),_=V(((e,{frameCount:t,clear:r})=>(r(),w(e,t,d,[0,3,5]),{completed:5===t,uniforms:{jittering:{seed:n(),intensity:.2,jitterSize:50}}})),[G]),S=V(((e,{frameCount:t})=>(t||(e.fill(r),e.rect(0,0,o,c)),[A,_].forEach((t=>e.image(t.engine.canvas))),{completed:5===t,post:{saturation:1.4,contrast:1.1,brightness:-.15},uniforms:{oilNoise:{intensity:.3},convolution:{dist:.2,intensity:.06},convolutionSharpen:{dist:.3,intensity:.03}}})),[{name:"oilNoise",vertex:$,fragment:j(I()),uniforms:[{name:"intensity",type:"uniform1f"}]},X(),X("sharpen")]);return[_,A,S]})(u)),v()};navigator.userAgent.includes("HeadlessChrome")||(W.addEventListener("resize",x),W.addEventListener("keydown",(e=>"s"===e.key?g.save():""))),x()})();
}],