0x3b1383e0…50dasent to0x1353fd9d…e4e8·#17,090,961·view on Etherscan
.t=0},_bdAG:(t,e)=>{var r=void 0===e.scl?.001:e.scl;if((0!==e.x||0!==e.y)&&0!==r)for(var n,a=0;a<t.length;a++)(n=t[a]).iSt||(n.f.y+=n.m*e.y*r,n.f.x+=n.m*e.x*r)},_bdU:(t,e,r,n)=>{for(var a,o=0;o<t.length;o++)(a=t[o]).iSt||M.ud(a,e,r,n)}},W={cr:t=>{var e={};return e.el=t||document.body,e.abs={x:0,y:0},e.pos={x:0,y:0},e.md={x:0,y:0},e.mu={x:0,y:0},e.offset={x:0,y:0},e.scl={x:1,y:1},e.button=-1,e.pixelRatio=parseInt(e.el.getAttribute("data-pixel-ratio"),10)||1,e.sourceEvents={mousemove:null,mousedown:null,mouseup:null},e.mousemove=t=>{var r=W._gRlM(t,e.el,e.pixelRatio);t.changedTouches&&(e.button=0,t.preventDefault()),e.abs.x=r.x,e.abs.y=r.y,e.pos.x=e.abs.x*e.scl.x+e.offset.x,e.pos.y=e.abs.y*e.scl.y+e.offset.y,e.sourceEvents.mousemove=t},e.mousedown=t=>{var r=W._gRlM(t,e.el,e.pixelRatio);t.changedTouches?(e.button=0,t.preventDefault()):e.button=t.button,e.abs.x=r.x,e.abs.y=r.y,e.pos.x=e.abs.x*e.scl.x+e.offset.x,e.pos.y=e.abs.y*e.scl.y+e.offset.y,e.md.x=e.pos.x,e.md.y=e.pos.y,e.sourceEvents.mousedown=t},e.mouseup=t=>{var r=W._gRlM(t,e.el,e.pixelRatio);t.changedTouches&&t.preventDefault(),e.button=-1,e.abs.x=r.x,e.abs.y=r.y,e.pos.x=e.abs.x*e.scl.x+e.offset.x,e.pos.y=e.abs.y*e.scl.y+e.offset.y,e.mu.x=e.pos.x,e.mu.y=e.pos.y,e.sourceEvents.mouseup=t},W.sEl(e,e.el),e},sEl:(t,e)=>{t.el=e,e.addEventListener("mousedown",t.mousedown),document.addEventListener("mousemove",t.mousemove),document.addEventListener("mouseup",t.mouseup),e.addEventListener("touchstart",t.mousedown),document.addEventListener("touchmove",t.mousemove),document.addEventListener("touchend",t.mouseup)},clSrcE:t=>{t.sourceEvents.mousemove=null,t.sourceEvents.mousedown=null,t.sourceEvents.mouseup=null},sO:(t,e)=>{t.offset.x=e.x,t.offset.y=e.y,t.pos.x=t.abs.x*t.scl.x+t.offset.x,t.pos.y=t.abs.y*t.scl.y+t.offset.y},sScl:(t,e)=>{t.scl.x=e.x,t.scl.y=e.y,t.pos.x=t.abs.x*t.scl.x+t.offset.x,t.pos.y=t.abs.y*t.scl.y+t.offset.y},_gRlM:(t,e,r)=>{var n,a,o=e.getBoundingClientRect(),s=document.documentElement||document.body.prNode||document.body,i=void 0===window.pageXOffset?s.scrollLeft:window.pageXOffset,l=void 0===window.pageYOffset?s.scrollTop:window.pageYOffset,c=t.changedTouches;return c?(n=c[0].pageX-o.left-i,a=c[0].pageY-o.top-l):(n=t.pageX-o.left-i,a=t.pageY-o.top-l),{x:n/(e.clientWidth/(e.width||e.clientWidth)*r),y:a/(e.clientHeight/(e.height||e.clientHeight)*r)}}},$={cr:(t,e)=>{var r=(t?t.mouse:null)||(e?e.mouse:null);r||(r=t&&t.render&&t.render.canvas?W.cr(t.render.canvas):e&&e.el?W.cr(e.el):W.cr());var n={type:"mouseConstraint",mouse:r,el:null,body:null,constraint:N.cr({l:"Mouse Constraint",ptA:r.pos,ptB:{x:0,y:0},length:.01,st:.1,aSt:1}),cF:{category:1,mask:4294967295,group:0}},a=C.xt(n,e);return((t,e,r)=>{for(var n,a=e.split(" "),o=0;o<a.length;o++)n=a[o],t.events=t.events||{},t.events[n]=t.events[n]||[],t.events[n].push(r)})(t,"beforeUpdate",(()=>{var e=X.allBd(t.world);$.ud(a,e),$._tE(a)})),a},ud:(t,e)=>{var r=t.mouse,n=t.constraint,a=t.body;if(0!==r.button)n.bdB=t.body=null,n.ptB=null,a&&z(t,"enddrag",{mouse:r,body:a});else if(n.bdB)n.ptA=r.pos;else for(var o=0;o<e.length;o++)if(a=e[o],T.cont(a.b,r.pos)&&Y.cCol(a.cF,t.cF))for(var s,i=1<a.pt.length?1:0;i<a.pt.length;i++)if(s=a.pt[i],I.cont(s.vt,r.pos)){n.ptA=r.pos,n.bdB=t.body=a,n.ptB={x:r.pos.x-a.pos.x,y:r.pos.y-a.pos.y},n.aB=a.a,z(t,"startdrag",{mouse:r,body:a});break}},_tE:t=>{var e=t.mouse,r=e.sourceEvents;r.mousemove&&z(t,"mousemove",{mouse:e}),r.mousedown&&z(t,"mousedown",{mouse:e}),r.mouseup&&z(t,"mouseup",{mouse:e}),W.clSrcE(e)}};const H=(t,e,r,n,a)=>{t.width=e,t.height=r,f(t,{width:`${n}px`,height:`${a}px`})},q=(t,e)=>{t.save(),e(),t.restore()},K=(t,e,r=[1,1])=>{t.moveTo(e[0].x*r[0],e[0].y*r[1]);for(let n=1,a=e.length;n<a;n++)t.lineTo(e[n].x*r[0],e[n].y*r[1])},Z=t=>t.clearRect(0,0,t.canvas.width,t.canvas.height);const J=(t,e,r)=>{const n=t.createShader(e);return t.shaderSource(n,r),t.compileShader(n),t.getShaderParameter(n,t.COMPILE_STATUS)?n:void t.deleteShader(n)},Q=(t,e,r=0,n=t.CLAMP_TO_EDGE,a=t.NEAREST)=>{const o=t.createTexture();return t.activeTexture(t.TEXTURE0+r),t.bindTexture(t.TEXTURE_2D,o),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,n),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,n),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,a),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,a),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,e),o};var tt=(t,e,r,n)=>{const a=t.getContext("webgl2",n);a.drawingBufferColorSpace="display-p3",a.pixelStorei(a.UNPACK_FLIP_Y_WEBGL,!0);const o=((t,e,r)=>{const n=t.createProgram();return t.attachShader(n,e),t.attachShader(n,r),t.linkProgram(n),t.getProgramParameter(n,t.LINK_STATUS)?n:void t.deleteProgram(n)})(a,J(a,a.VERTEX_SHADER,e),J(a,a.FRAGMENT_SHADER,r)),s=a.getAttribLocation(o,"aPos"),i=a.createBuffer();a.bindBuffer(a.ARRAY_BUFFER,i),a.bufferData(a.ARRAY_BUFFER,new Float32Array([-1,-1,-1,3,3,-1]),a.STATIC_DRAW);const l=a.createVertexArray();a.bindVertexArray(l),a.enableVertexAttribArray(s),a.bindBuffer(a.ARRAY_BUFFER,i),a.vertexAttribPointer(s,2,a.FLOAT,!1,0,0),a.bindVertexArray(null);const c=[];let p,x=()=>{},u=()=>{};const v=()=>a.clear(a.COLOR_BUFFER_BIT);return{resize:(...e)=>x=((e,r,n,a)=>(x(),H(t,e,r,n||e,a||r),p=[e,r,e/r],v(),()=>{}))(...e),frame:(...t)=>u=((t,e)=>{u(),a.viewport(0,0,p[0],p[1]),a.clearColor(0,0,0,0),a.clear(a.COLOR_BUFFER_BIT),a.useProgram(o),a.bindVertexArray(l);let r=0;return[["uVp","v3",p],["uT","f",t[1]],...e.map((t=>("t"===t[1]&&(c[t[0]]=[Q(a,t[2],r,a[t[3]],a[t[4]]),r++]),"t[]"===t[1]&&(c[t[0]]=[[],[]],t[2].forEach((e=>{c[t[0]][0].push(Q(a,e,r,a[t[3]],a[t[4]])),c[t[0]][1].push(r++)}))),t)))].forEach((([t,e,r])=>((t,[e,r,n,a])=>{"b"===e?t.uniform1i(n,!0===r?1:0):"i"===e?t.uniform1i(n,r):"i[]"===e?t.uniform1iv(n,r):"f"===e?t.uniform1f(n,r):"f[]"===e?t.uniform1fv(n,r):"v2"===e?t.uniform2f(n,...r):"v2[]"===e?t.uniform2fv(n,r):"v3"===e?t.uniform3f(n,...r):"v3[]"===e?t.uniform3fv(n,r):"v4"===e?t.uniform4f(n,...r):"v4[]"===e?t.uniform4fv(n,r):"t"===e?t.uniform1i(n,a):"t[]"===e&&t.uniform1iv(n,a)})(a,[e,"t"===e||"t[]"===e?c[t][0]:r,a.getUniformLocation(o,t),"t"===e||"t[]"===e?c[t][1]:-1]))),a.drawArrays(a.TRIANGLES,0,3),()=>{}})(...t),clear:v}};const et="#version 300 es\nin vec2 aPos;\nout vec2 vUv;\nvoid main(){gl_Position=vec4(aPos*2.-1.,0.,1.);vUv=aPos;}\n",rt={FEW:"Few",SOME:"Some",MANY:"Many",LOADED:"Loaded",GREEDY:"Greedy"},nt="Full",at="Uniform",ot="Split",st="Full",it="Uniform",lt="Split",ct="Crystal",pt="Ribbed",xt="Knurly",ut="Lenticular",vt="Mixed",dt="Split",ft="Dark",yt="Amber",mt="Bright",ht="Crystal",bt="Colour",gt="None",At="Left",St="Right",wt="Dark",Bt=[["Count",[[rt.FEW,40],[rt.SOME,40],[rt.MANY,10],[rt.LOADED,7],[rt.GREEDY,3]]],["Lengths",[["Mixed",50],[nt,30],[at,10],[ot,10]]],["Breadths",[[st,80],[it,5],["Mixed",5],[lt,10]]],["Surfaces",[["Squared",40],[ct,20],[pt,5],[xt,5],[ut,5],[vt,15],[dt,10]]],["Tint",[["Mixed",20],[ft,10],[yt,5],[mt,20],[ht,5],[bt,40]]],["Side",[["None",90],[At,5],[St,5]]],["Gravity",[["Down",70],[gt,25],["Up",5]]],["Base",[["Light",60],[wt,40]]]];var Pt=(t,e,r)=>{const n=(t=>{const e=Object.values(rt).indexOf(t),r=0<e?((t,e,r)=>Math.max(s(t,4),2))(e*e):1;return[c[e],p[e],r]})(r[0][1]),[a,o]=n,l=()=>X.allBd(t.world).filter((t=>!t.iSt));let x,u,v,d,f,y,m,h,b=[i,i],g=[],S=[],P=[],C=[],_=!1,I=0,T=()=>{};let U=()=>{};return{config:n,resize:(...n)=>T=(n=>{T(),_=!1,I=0;const l=!!S.length;x=n[4],v=1<=x,d=i*(v?x:1),f=d/2,y=i/(v?1:x),m=y/2,h=.1*s(d,y);const c=x>u?1:-1;u=x,b=[d,y];const p=(t=0,e=0,r,n)=>R(t,e,r,n,{iSt:!0,fr:0});g=[p(-f+h,m,d,4*y),p(d+f-h,m,d,4*y),p(f,-m+h,2*d,y),p(f,y+m-h,2*d,y)],X.add(t.world,g);const U=B(.75,.9),L=B(.75,.9),D=t=>{var e=Math.PI;const n=s(...b)*o,a=l?C[t][1]:(u=r[1][1])===nt?1:u===at?U:u===ot?w()?.4:1:B(.33,1),i=l?C[t][0]:.2*(t=>t===st?1:t===it?L:t===lt?w()?B(.75,.8):B(.95,1):B(.75,1))(r[2][1]),p=l?[S[t][0]*d,S[t][1]*y]:[B(0,d),B(0,y)],x=R(...p,n*i,n*a,{r:.2,fr:.2,a:l?P[t]:A()*e*2});var u;return x.__index=t,x.__size=[i,a],l&&M.af(x,x.pos,E.cr(0,-(0<c?.02:.005)*x.m*B(.5,1))),x},k=[];for(let t=0;t<a;t++)k.push(D(t));X.add(t.world,k);const F=W.cr(e),O=$.cr(t,{mouse:F,constraint:{st:.05,da:.9}});return W.sScl(F,E.cr(d/n[0],y/n[1])),X.add(t.world,O),()=>{S=k.map((t=>[t.pos.x/d,t.pos.y/y])),P=k.map((t=>t.a)),C=k.map((t=>t.__size)),X.rm(t.world,[...g,...k,O])}})(...n),frame:(...t)=>U=((t,e)=>{U();const r=l();_=!0,I=e?0:I+t[0],I<=1e3&&(_=!1);for(let e=0,n=r.length;e<n;e++){const n=r[e];if(n.s>.5){_=!1,I=0;break}t[2]<450&&M.af(n,n.pos,E.cr(.03*d*B(-1,1),.03*d*B(-1,1)))}return()=>{}})(...t),size:()=>[...b],bodies:l,resting:()=>_}};const Et="undefined"==typeof tokenData?(()=>{let t="0x";for(let e=64;0<e;--e)t+="0123456789abcdef"[~~(16*Math.random())];return t})():"string"==typeof tokenData?tokenData:tokenData.hash;(t=>{const e=~~((t.length-2)/2),r=[];for(let n=0;n<e;n++){const e=2+2*n;r.push(parseInt(t.slice(e,e+2),16))}const n=S(r,1690382925),a=S(r,72970470);g.setUint32(0,n),g.setUint32(4,a)})(Et);const Ct=Bt.map((t=>{const e=t[1].map((t=>t[1]));return[t[0],t[1][P(e)][0]]}));console.log(`${Et}\n`,...Ct.map((t=>`\n${t[0]}: ${t[1]}`))),(()=>{const t=window,e=document,r=e.body,n=(t="canvas")=>e.createElement(t),a=(t,e)=>t.appendChild(e),i=(t,e,r)=>t.addEventListener(e,r),c=e=>t.requestAnimationFrame(e),p=a(r,n("main")),y=a(p,n()),m=a(p,n()),h=a(r,n()),b=a(r,n("div")),g=a(b,n("div")),S=j.cr({gravity:((t,e,r)=>{const n=r===rt.GREEDY?.2:r===rt.LOADED?.33:1;return{x:n*(t===At?-1:t===St?1:0),y:n*(e===gt?0:"Up"===e?-1:1)}})(Ct[5][1],Ct[6][1],Ct[0][1])}),P=Pt(S,p,Ct),E=(t=>{const e=t.getContext("2d");let r=()=>{},n=()=>{};return{resize:(...e)=>r=((e,n,a,o)=>(r(),H(t,e,n,a,o),()=>{}))(...e),frame:(...t)=>n=((t,r,a,o,s)=>{n(),Z(e),q(e,(()=>{e.fillStyle=s?d:v,e.globalAlpha=.7,e.fillRect(0,0,t,r)}));for(let t=0,r=o.length;t<r;t++){const r=o[t];q(e,(()=>{r.iSt||(e.beginPath(),K(e,[...r.vt,r.vt[0]],a),e.closePath(),e.fillStyle=s?v:d,e.fill())}))}return()=>{}})(...t),clear:()=>Z(e)}})(m),C=tt(y,et,`#version 300 es\nprecision highp float;\n#define COUNT ${P.config[0]}\n#define PI 3.1415926535\n#define F .0005\nin vec2 vUv;\nuniform vec2 uBdS[COUNT];\nuniform vec3 uVp,uBdP[COUNT];\nuniform float uT,uB,uBr,uTl,uI;\nuniform sampler2D uTx[8];\nout vec4 fc;\nvec2 rUV(vec2 st,float t){float sr=sin(t),cr=cos(t);re