0x4d92…bdf3

All memos sent from and to 0x4d92…bdf3.

a,i,r])t.getWorldPosition(l),l.project(e),(l.x<-1||l.x>1||l.y<-1||l.y>1)&&(c=!1),o.remove(t);return[80,100,260,280,240,300,60,120].includes(t.selected.xz)&&(c=!1),c}const x=new THREE.Scene,w=new THREE.PerspectiveCamera(10,1,10,8e3),y=new THREE.WebGLRenderer({preserveDrawingBuffer:!0,antialiasing:!0});function g(){let e=Math.min(window.innerWidth,window.innerHeight);y.domElement.style.width=e+"px",y.domElement.style.height=e+"px"}y.setSize(t,t),y.setPixelRatio(2),document.body.appendChild(y.domElement),g(),window.addEventListener("resize",g,!0);let M,R,v,T=!1,H=!1;window.addEventListener("keyup",(e=>{if("s"==e.key){let n,a="image/png",i="tennis.png";try{n=y.domElement.toDataURL(a)}catch(c){return void console.log("Browser does not support taking screenshot of 3d context")}let r=document.createElement("a");"string"==typeof r.download?(document.body.appendChild(r),r.style.display="none",r.download=i,r.href=n,r.click(),document.body.removeChild(r)):location.replace(uri)}function o(e){w.position.copy(M),w.quaternion.copy(R),w.zoom=v.x,w.fov=v.y,w.updateProjectionMatrix(),w.updateMatrixWorld(),y.render(x,w),A(S,k,z.angleY,z.angleXZ,z,z.ballDirection,z.ballSpeed),h(w,j),y.render(x,w),y.setPixelRatio(e);let o=_(t*e,t*e);for(let n of j)n.material.uniforms.noise.value=o,n.material.uniforms.uSize.value=t*e;y.render(x,w),g(),H=!1}if("1"==e.key&&o(2),"2"==e.key&&o(3),"t"==e.key){if(T||H)return;requestAnimationFrame((()=>{w.position.set(0,2500,0),w.lookAt(0,0,0),w.zoom=1,w.fov=55,w.updateProjectionMatrix(),w.updateMatrixWorld(),y.render(x,w),A(S,k,0,0,z,z.ballDirection,z.ballSpeed),h(w,j),y.render(x,w),H=!0}))}if("a"==e.key){if(T||H)return;T=!0,M=w.position.clone(),R=w.quaternion.clone(),v=new THREE.Vector3(w.zoom,w.fov,0);let l=new THREE.Quaternion,s=new THREE.Vector3,F=new THREE.Vector3(0,2500,0),E=(new THREE.Quaternion).setFromEuler(new THREE.Euler(-1.57069632679523,0,0)),d=new THREE.Vector3(1,55,0);function f(e){return e*e*e*e*e}let u=0;function p(){var e;if(u<1&&requestAnimationFrame(p),w.position.lerpVectors(M,F,f(u)),THREE.Quaternion.slerp(R,E,l,f(u)),w.quaternion.copy(l),s.lerpVectors(v,d,(e=u,1-Math.pow(1-e,3))),w.zoom=s.x,w.fov=s.y,w.updateProjectionMatrix(),y.render(x,w),u>=1)return requestAnimationFrame((()=>{A(S,k,0,0,z,z.ballDirection,z.ballSpeed),h(w,j),y.render(x,w)})),H=!0,void(T=!1);u+=.005}p()}}));const[z,S,k,j,I]=function(){let l=[];for(let e of c)for(let t=0;t<e[8];t++)l.push(e);let s=u(l);s=function(e){let t=[];for(let o=0;o<e[7].length;o+=3)t.push([e[7][o],e[7][o+1],e[7][o+2]]);return{ball:r[e[0]],lines:r[e[1]],shadow:{color:r[e[2]],opacity:e[3]},colors:t.map((e=>e.map((e=>r[e])))),outside:[e[4],e[5],e[6]].map((e=>r[e])),weight:e[8]}}(s);let[d,f]=function(e,r){const c=_(t*r,t*r),l=[],s=[];for(let[t,[o,a,i,s]]of n.entries()){const n=new THREE.Mesh(new THREE.PlaneGeometry(o,a),b(e.colors[t],c,r));n.position.set(i,0,s),n.rotation.x-=E(90),l.push(n)}const F=new THREE.BufferGeometry;F.setAttribute("position",new THREE.Float32BufferAttribute(a,3)),F.setIndex(i);const d=new THREE.Mesh(F,b(e.outside,c,r));d.outside=!0,l.push(d);const f=new THREE.MeshBasicMaterial({color:e.lines,depthTest:!1});for(let[e,t,n,a]of o){const o=new THREE.Mesh(new THREE.PlaneGeometry(e,t),f);o.position.set(n,0,a),o.rotation.x-=E(90),s.push(o)}return[l,s]}(s,y.getPixelRatio()),[p,m,C]=function(t){const o=new THREE.Mesh(new THREE.SphereGeometry(e,64,32),new THREE.MeshBasicMaterial({color:t.ball}));let n=1.5*e;const a=new THREE.Mesh(new THREE.ShapeGeometry((new THREE.Shape).absellipse(0,n,3.43,n,0,2*Math.PI,!1,0),64),new THREE.MeshBasicMaterial({color:t.shadow.color,opacity:t.shadow.opacity}));a.rotation.x-=E(90);const i=new THREE.Object3D;return i.rotation.x-=E(90),i.position.y=-3.43,i.selected={y:-1,xz:-1},i.ea=3.43,i.eb=n,o.add(i),[o,a,i]}(s);function D(e){return e.match(/(.{4})/g).map((e=>[e.slice(0,1),e.slice(1,4)])).map((e=>parseInt(e[1],16)*("0"==e[0]?-1:1)))}x.add(p,m,...f,...d);let h=tokenData.tokenId%1e3;const A=D(F.substr(10).slice(0,1200))[h],B=D(F.substr(10).slice(1200,2400))[h],w=(M=F.substr(10).slice(2400,3300),M.match(/(.{3})/g).map((e=>(parseInt(e,16)+180)%360)))[h],g=function(e){return[...e].map((e=>parseInt(e,16)))}(F.substr(10).substr(3300))[h];var M;return requestAnimationFrame((()=>{P(A,B,w,g,10)})),[p,m,C,d,f]}();function P(t,o,n,a,i){z.position.set(t,e,o),z.ballDirection=n,z.ballSpeed=a,z.updateMatrixWorld(!0,!0),z.updateWorldMatrix(!0,!0),z.updateMatrix();const r={1200:[80,40,22,15,11,8,6,5,5,5]};let c=[],l=[],s=[];for(let[e,t,o]of function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:30,o=[],n=new THREE.Vector3;for(let a=e;a<=90-t;a+=10)for(let e=0;e<360;e+=20)n.set(Math.sin(E(a))*Math.cos(E(e)),Math.cos(E(a)),Math.sin(E(a))*Math.sin(E(e))).normalize(),o.push([n.clone(),a,e]);return o}())for(let n of Object.keys(r))for(let a of r[n].keys())[5,6,7,8,9,10].includes(a+1)?c.push([e,n,a+1,t,o]):[1,2].includes(a+1)?s.push([e,n,a+1,t,o]):l.push([e,n,a+1,t,o]);p(c),p(l),p(s);let F=[...s,...c];p(F);let d,_,b,C,g,T=[...l,...F],H=!1;for(;T.length>0;){[d,_,b,C,g]=T.pop();for(let e=1;e<=i;e++)if(m(w,z,S,d,_,b,f(0,360),f(0,r[_][b-1]),r[_][b-1]),H=D(w),H)if(A(S,k,C,g,z,n,a),B(w,k,z)){if(y.render(x,w),h(w,j))break;H=!1}else H=!1;if(H)break}if(!H){C=0,g=0;for(let e=0;e<1e3;e++){m(w,z,S,z.up,f(1500,1800),1,f(0,360),f(0,90),90);let e=u([1,-1]),t=f(70,100);if(w.position.x+=t*e,w.rotation.z=E(10*f(1,34)),H=D(w),H)break}A(S,k,C,g,z,n,a),y.render(x,w),h(w,j)}z.angleY=C,z.angleXZ=g,M=w.position.clone(),R=w.quaternion.clone(),v=new THREE.Vector3(w.zoom,w.fov,0),y.render(x,w)}})();
0":[-.59,2.55,.96,1.24],"30_40":[-.4,2.15,.964,1.255],"30_60":[-.19,2,.958,1.3],"30_80":[.4,1.83,.92,1.38],"30_200":[.47,3.2,.92,1.21],"30_220":[.44,4,.92,1.27],"30_240":[.26,5.08,.91,1.39],"30_260":[-.51,5.4,.905,1.45],"40_0":[-1.13,2.84,1,1.25],"40_20":[-1.04,2.38,1.02,1.26],"40_40":[-.75,1.93,1,1.27],"40_60":[-.29,1.65,.963,1.385],"40_80":[.42,1.44,.91,1.53],"40_200":[1.25,3.6,1.01,1.255],"40_220":[1.24,4.7,1.005,1.298],"40_240":[.62,5.6,.955,1.42],"40_260":[-.301,6.67,.9,1.62],"50_0":[-1.707,2.77,1.1,1.25],"50_20":[-1.34,1.99,1.08,1.23],"50_40":[-.88,1.5,1.04,1.31],"50_60":[-.467,1.3,.98,1.47],"50_80":[.38,.99,.88,1.7],"50_200":[1.7,3.5,1.06,1.25],"50_220":[1.76,5.1,1.045,1.375],"50_240":[1,6.6,.93,1.55],"50_260":[-.27,8.3,.84,1.85],"60_0":[-2.42,2.66,1.25,1.25],"60_20":[-2,1.85,1.22,1.25],"60_40":[-1.209,1.2,1.185,1.34],"60_60":[-.6,.89,1.04,1.55],"60_80":[.17,.8,.885,2.14],"60_200":[2.56,3.73,1.19,1.235],"60_220":[2.74,5.4,1.18,1.34],"60_240":[1.77,7.4,1.01,1.58],"60_260":[-.1,10,.85,2.13],"0_0":[0,3.35,1.005,1.27]}],s={180:0,160:20,140:40,120:60,100:80,340:200,320:220,300:240,280:260},F="1a1a856798019400181134110f11710147100511850179114b104b1171111d01610152117d0197101010e2001f1175016610fe0189100100040177000d1007112e115510ad017d011e013f018c1048111301420153014b106a012c01961193119200f90119100b00ae017a0184018e0188118f11860092013801691186018300be001e0176001f11501189119900e7100801911110001a00ff1025013000670131011311760121018c00c4015e018b01261137010d017c001b013e1099104a1053112e018f115b114110ee019b1003017700f4114a105d10d8110200ff01790029016b0150017a018f119b11960158116e0017019a115410470077017b116e102f0182114c0180016111161158101300ea10eb00900165101b1141119b0180000c117c10ac1192014c113d119310140148016e00e001860127100c118c0184017911491098111f01200166106b101d11520108001b01690142010e01910022018a118c014c10011111019500e2111a00081166106b016b110310381005101c113f1118015e019400ce1184116f005500f80188115e017500430171104b01680022019d115601890003003110b41180017d0128016e1185017c117711630184011510a711060144118d01760179102401521133015f001f1004017f117b11951028114c0162019011521152017810eb001c10b81181019b1166112a1192118a1188116800f300be014b114801681119000511120102116300fb112000b711111199118c000c11410163012c00fd00e3111a116e1143013b1006118411561136115e015711371189017e010300250156012f01261168019c01850034118401bd0222138d10db01fc03040220132c1305130d120601fa02f6044a02a5023712a512011356122813be03bd138313d902440485133e0212020703e5136e13ed126402fd144b137d125011e203a7005512c7125412ed039b11fe129e13871457126b016b120611c0127203ea12eb1288012a02750423130311a511b0125701d31243141712b301e211501265032f12b91215138c1239042b134f01cc139711fc1227122e019113231210031801e7012001ad125711d901e611fd024f12af038e13b71387139402240219143b01c21400144b12701182129901e111d9029302c2036b141803211336126101d11225044312841216139101a0127411bd03d903141314136b11af137501d200fe1233139313a7124e130f01bc120f11d7038412e7129e02e912d9121e1271046b022c12e103a4129c01f611b20313042913a9027013b4127603bd1209022b03ab110d11db0423121702cc14010258040f1218131102581313048d02c1141d125513f2126413ef036811ed121c021002f01361132304460136036d14180256133a01b5044f020702a10116120211e301f2042612dd01e312d81242112a039303ec029301d801ef03a4148b147814a002f9129110ad02de01d8018502580223040012a913f514590267121713f302b611cc134812141280139402ba12001223025702f601d5020f03c904731331030a1280143800e311b0122e13fd129411a811dd12c804070269140d116f01a9029613ee026812de03f3132e02fc03c103581487136e144c014d11d911e7140211b303ee142e140002dc1249013401ff115e12b803190230141b1227122e014a0480560fb0e706805c0560f511011110706706005305006b12510a10b11110e04e11311405c04d11a05605c05710710711c04711a1141080fa04e01311d10712304f0fc10711f10d10b04211f12a11f04210f10a0400500580fc11f12911204911011110c06b12b10b04910911111b10805b1160481140fe13111d04e11111d0520640550491100fe06510806110904710b10410f04905e11b03e10110510a0f212e04a11005604d05c10c06f0fd11e06a10f05710610b11004810e10804806e1101201020fc05e0380fb10e11710a10806c11f1120651081070440fd0fd10a05704a11a05511c05e0fe05d04f10d05711212504e0f505e05c10811105811e04d10c05504c0fe1090570fc0480530f31121070fc11706510910a05e06a0f211105005406d11104411d04906304c04f03210811d05605710304a10f11110406305604804a06c0560ff11011804f0fa0f905206905904d05f05d10510f10805711d10d06410910411c11c10106611c0f805606306804906a06610a05d10a10205c12912510d11a10010a11604b06e10d10503c06110c07211006d10e05104f0541030f910805310b0fb11110006911d11006811e04a05511811d04807411411d11107a121121211122111212121111211221102111211012112111202120110111202221120211212101120211211012212211111221011000221111111221120102101111201112122211111221211122111110112112111121212111021110222101111111212112221121201112211111101202211112211212211212122111111001110211110111111101111102111111120201111220";function E(e){return e/180*Math.PI}let d=new class{constructor(){this.useA=!1;let e=function(e){let t=parseInt(e.substr(0,8),16),o=parseInt(e.substr(8,8),16),n=parseInt(e.substr(16,8),16),a=parseInt(e.substr(24,8),16);return function(){t|=0,o|=0,n|=0,a|=0;let e=(t+o|0)+a|0;return a=a+1|0,t=o^o>>>9,o=n+(n<<3)|0,n=n<<21|n>>>11,n=n+e|0,(e>>>0)/4294967296}};this.prngA=new e(tokenData.hash.substr(2,32)),this.prngB=new e(tokenData.hash.substr(34,32));for(let e=0;e<1e6;e+=2)this.prngA(),this.prngB()}random(){return this.useA=!this.useA,this.useA?this.prngA():this.prngB()}};function f(e,t){return Math.floor(d.random()*(Math.floor(t)-Math.ceil(e)+1)+Math.ceil(e))}function u(e){return e[f(0,e.length-1)]}function p(e){let t,o,n=e.length;for(;0!==n;)o=Math.floor(d.random()*n),n-=1,t=e[n],e[n]=e[o],e[o]=t;return e}function _(e,t){function o(e){const t=document.createElement("canvas");t.width=e,t.height=e;const o=t.getContext("2d");return o.imageSmoothingEnabled=!1,o.webkitImageSmoothingEnabled=!1,o.msImageSmoothingEnabled=!1,[t,o]}const[n,a]=o(e),[i,r]=o(t),c=Uint32Array.from({length:t*t},(()=>[4294967295,0][Math.random()>.5?0:1])),l=new ImageData(new Uint8ClampedArray(c.buffer),t,t);r.putImageData(l,0,0),r.globalCompositeOperation="hue",r.fillRect(0,0,t,t),a.drawImage(i,0,0,t,t,0,0,e,e);let s=new THREE.CanvasTexture(n);return s.magFilter=THREE.NearestFilter,s}function b(e,o,n){return new THREE.ShaderMaterial({depthTest:!1,uniforms:{uColorA:{value:new THREE.Color(e[0])},uColorB:{value:new THREE.Color(e[1])},uColorS:{value:new THREE.Color(e[2])},uSize:{value:t*n},uDir:{value:u([0,1])},uMin:{value:0},uMax:{value:1},noise:{type:"t",value:o}},vertexShader:"void main() {gl_Position=projectionMatrix*modelViewMatrix*vec4(position, 1.0);}",fragmentShader:"\nuniform vec3 uColorA,uColorB,uColorS;uniform float uSize,uMin,uMax;uniform int uDir;uniform sampler2D noise;void main() {vec2 uv=gl_FragCoord.xy/uSize;float m=1.0/(uMax-uMin);float y=(m*uv[uDir])+(-1.0*uMin*m);vec4 gbw=mix(vec4(0,0,0,1.0),vec4(vec3(152.0/255.0),0.6),y);float npixel=texture(noise,uv).r;gbw=(gbw*npixel)+(vec4(0,0,0,0)*(1.0-npixel));vec4 om=vec4(mix(uColorA,uColorB,y).rgb,gbw.a);vec4 color=vec4(mix(uColorS,om.rgb,om.a),1.0);gl_FragColor=color;}"})}function m(e,t,o,n,a,i,r,c,l){e.position.copy(t.position).add(n.clone().multiplyScalar(a)),e.lookAt(t.position),e.updateProjectionMatrix(),e.updateMatrixWorld();let s=t.position.clone().sub(e.position).normalize(),F=-e.position.y/s.y,d=new THREE.Vector3(e.position.x+F*s.x,0,e.position.z+F*s.z),f=t.position.clone().sub(e.position).normalize(),u=f.clone().cross(e.up).normalize().cross(f).normalize().applyAxisAngle(f,E(r)).multiplyScalar(c);e.position.add(u),e.zoom=i,e.updateProjectionMatrix(),e.updateMatrixWorld();let p=t.position.clone().sub(e.position).normalize();F=-e.position.y/p.y;let _=new THREE.Vector3(e.position.x+F*p.x,-0,e.position.z+F*p.z);o.parallaxDir=_.sub(d).normalize().multiplyScalar(Math.abs(c)/l/5/(2.5*i-1.5))}let C=[];for(let[e,t,n,a]of o)C.push([Math.min(n-e/2,n+e/2),Math.max(n-e/2,n+e/2),Math.min(a-t/2,a+t/2),Math.max(a-t/2,a+t/2)]);function D(e){let t,o,n,a,i,r,c,l=arguments.length>1&&void 0!==arguments[1]?arguments[1]:3,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:.4,F=new THREE.Vector3,E=u([1,-1]),d=u([1,-1]);for(let f=-10+l;f<=10-l;f+=s)for(let u=-10+l;u<=10-l;u+=s)for([a,r,i,c]of(F.set(f*E/10,u*d/10,0).unproject(e).sub(e.position).normalize(),t=-e.position.y/F.y,o=e.position.x+t*F.x,n=e.position.z+t*F.z,C))if(o>=a&&o<=r&&n>=i&&n<=c)return!0;return!1}function h(e,o){const n=new THREE.Raycaster;let a={};for(let i=0;i<t;i+=5)for(let r=0;r<t;r+=5){n.setFromCamera({x:i/t*2-1,y:r/t*2-1},e);const c=n.intersectObjects(o);if(0==c.length)continue;const l=c[0];a[l.object.id]||(a[l.object.id]=[]),a[l.object.id].push([{x:i,y:r},l])}let i=!1;for(let[e,n]of Object.entries(a)){const a=Math.min(...n.map((e=>e[0].x))),r=Math.min(...n.map((e=>e[0].y))),c=Math.max(...n.map((e=>e[0].x))),l=Math.max(...n.map((e=>e[0].y))),s=o.filter((t=>t.id==e))[0],F=c-a,E=l-r;if((F<22||E<22||F*E<2e4)&&(i=!0),a==c||r==l)continue;let d,f;0==s.material.uniforms.uDir.value?(d=a/t,f=c/t):(d=r/t,f=l/t),s.material.uniforms.uMin.value=d,s.material.uniforms.uMax.value=f}return!i}function A(e,t,o,n,a,i,r){t.updateMatrixWorld(!0,!0),t.updateWorldMatrix(!0,!0),t.updateMatrix();let c=new THREE.Vector3(-10,0,0).applyAxisAngle(a.up,-1*E(i)).normalize();const F=new THREE.Vector3(0,0,-10),d=c.clone().cross(F).normalize().negate().round().y;let f=c.angleTo(F)/Math.PI*180;f=20*Math.round(f/20)*d,a.rotation.y=0,a.rotation.y+=E(f);let u=(360+(n+f))%360;t.selected.y=o,t.selected.xz=u;let p=1;Object.keys(s).map((e=>parseInt(e))).includes(u)&&(p=-1,u=s[u]),0==o&&(u=0);let _=l[r]["".concat(o,"_").concat(u)];t.position.x=_[0]*p,t.position.z=_[1],t.scale.set(_[2],_[3],1);let b=new THREE.Vector3;t.getWorldPosition(b),e.position.copy(b).add(e.parallaxDir),e.scale.set(_[2],_[3],1),e.rotation.z=E(f)}function B(e,t,o){const n=new THREE.Object3D;n.position.copy(t.position),n.position.x+=t.ea*t.scale.x+2,n.position.z-=t.eb*t.scale.y,o.add(n);const a=new THREE.Object3D;a.position.copy(t.position),a.position.x-=t.ea*t.scale.x+2,a.position.z-=t.eb*t.scale.y,o.add(a);const i=new THREE.Object3D;i.position.copy(t.position),i.position.x-=t.ea*t.scale.x+2,i.position.z-=t.eb*t.scale.y*2+2,o.add(i);const r=new THREE.Object3D;r.position.copy(t.position),r.position.x+=t.ea*t.scale.x+2,r.position.z-=t.eb*t.scale.y*2+2,o.add(r);let c=!0,l=new THREE.Vector3;for(let t of[n,
(()=>{"use strict";const e=3.43,t=1500,o=[[1097,8,0,1184.5],[1097,8,0,-1184.5],[5,2361,-546,0],[5,2361,546,0],[5,2361,-409,0],[5,2361,409,0],[5,1270,0,0],[813,5,0,637.5],[813,5,0,-637.5],[5,5,0,1178],[5,5,0,-1178]],n=[[813,540.5,0,910.25],[813,540.5,0,-910.25],[132,1180.5,-477.5,590.25],[132,1180.5,477.5,590.25],[132,1180.5,-477.5,-590.25],[132,1180.5,477.5,-590.25],[404,635,-204.5,317.5],[404,635,204.5,317.5],[404,635,-204.5,-317.5],[404,635,204.5,-317.5]],a=[-2742.5,0,-5942.5,2742.5,0,-5942.5,-548.5,0,-1188.5,548.5,0,-1188.5,-2742.5,0,5942.5,2742.5,0,5942.5,-548.5,0,1188.5,548.5,0,1188.5],i=[0,2,1,1,2,3,1,3,5,3,7,5,4,7,6,4,5,7,0,6,2,0,4,6],r="E0FE00FF6E00FF4200E52000FF6A00FF6400FF1E00000407E03C00FF3E0000000A19000930000000140400080A000C0FE51A10FF460F009611000E0F0004140F00141314160000160000111718193CA300080A141B1C1C0B141E000E1F110400218400061823170023001C23002428E6E500FF702922242BFF602E00083A0047FF49444001000D243A44FF40442A2A47151647003849002A49514E4D464C4F004251424260210C000020604A4A66C1006600126F6D74770000E5CEA684FF5001D3AA8C0A508C00008CD6B292288894E0BC95FF73001E709E979CA00400A0FF78A2E0BCA498A0A50E96A5DDBCA6FFC4A6F754A63225E5CCBEAEA3A8AFFFD2B0DDC8B19EC6E50096B4E22100002CB7FF66BAB7BCBCEDD4BDFFCAC0199800CCC8C8EDDAC80059FF1B2ACC0000CEFFE2CF78C0D1FF22D5F8EAD7DBCCD8133ED8EBEADACED8DBECE4DCF1E6DCFFC8DC1226DDDCDEE0C61C000000E0005A02F2E2E22E5EE5F4EAE6FFB6E7F4C2E6FFF4E9F4ECEAFFF8EBFFF0EB91B6ED7F9CE5F2F0ED0000EAADCEEA479E00FDFEFFCEECF40C7F001E1EFA688EFC256EFFFF4500FF9100FF5500FFA700FF5F00538AFFEEF2FF0001070042FF006307004F041B810000030C0D0D0F0E0F0F000711000511F665FA030D16131316002319EF2F1B191B1C00051E252526FF572C270130131D30FF4531000B330021332929350067302F67FF443F3C383B3F0D293F00280056A8002248FF001B42FF7D432589004A4F540B07540063578ACB0027275B00295B486BFFE2E0DEFF855FFF3160003760001166E00D006CBDE500156BFBFCFF696D702F5F751E1EE60F297A00AFFF000F01797F82C79F83005D840550FF003189005B8924B1FF8D8D8E00738E9393935A7D93E0B994112D938C9599E5C19AED299991C3E5EDE4E41E639EE83F9FEAC3A0678DA0658DA0F73400EAC9A4FF7400BB54FF005BAAFFC7ABCEBBAE81ABB5E5CBB5FCD7007AADBCAFB7BFEFBFBFBCBFC1FF78007CB800D1F800FFE3C8F2DFC9F7E5CB0079FF0045CEFFE3D1003A00D8E5D3FFDBD4DCE5D6F9E9D71B1BDAF2EAE7EDFFDCE8E3DF82BFE0FF3C00007C00008FE3AACDE2E1E3E5FFC7E5F2E9E7D3E5E8D8CDE81C67EAFAFDFFFDFDFFF4EFEDEFEDEDF4F1EF007C03F9D7F4FFFBF5FFF5F55CC5F7FDFFFE0083F9FFFBFAFFFFFFFFFDFDFFF3FEFDABFF".match(/(.{6})/g).map((e=>parseInt(e,16))),c=[[0,262,155,1,180,52,196,[202,60,72,22,25,172,22,25,172,76,215,238,202,60,72,180,52,196,76,215,238,22,25,172,180,52,196,202,60,72],1],[0,28,20,1,211,209,95,[211,209,95,236,236,122,236,236,122,83,83,256,211,209,95,236,236,270,83,83,256,236,236,122,236,236,270,211,209,95],1],[0,265,33,1,204,204,36,[87,77,101,199,49,182,199,49,182,53,53,210,87,77,101,204,204,36,204,204,36,199,49,182,53,53,210,87,77,101],1],[0,159,144,1,203,62,85,[67,64,92,222,222,252,222,222,252,78,75,244,67,64,92,203,62,85,203,62,85,222,222,252,78,75,244,67,64,92],2],[0,121,144,1,203,62,85,[67,64,92,222,222,252,222,222,252,78,75,244,67,64,92,203,62,85,203,62,85,222,222,252,78,75,244,67,64,92],1],[0,275,152,1,158,158,1,[137,2,138,4,4,140,4,4,140,3,16,139,137,2,138,158,158,1,158,158,1,4,4,140,3,16,139,137,2,138],2],[0,28,7,1,223,212,112,[232,235,107,231,82,272,231,82,272,57,54,91,232,235,107,223,224,112,223,224,112,231,82,272,57,54,91,232,235,107],2],[0,28,15,1,68,104,264,[71,220,118,197,45,108,68,104,264,197,45,108,71,220,118,68,104,264,197,45,108,68,104,264,104,68,264,71,220,118],1],[0,123,41,1,5,17,6,[8,9,113,141,239,258,5,17,6,141,239,258,8,9,113,5,17,6,141,239,258,5,17,6,5,17,6,8,9,113],2],[0,109,194,1,79,74,93,[84,284,100,119,230,250,79,74,93,119,230,250,84,284,100,79,74,93,119,230,250,79,74,93,79,74,93,84,284,100],2],[0,282,157,1,110,266,276,[120,242,124,263,247,283,110,266,276,263,247,283,120,242,124,110,266,276,263,247,283,110,266,276,110,266,276,242,120,124],1],[0,281,10,1,98,253,73,[208,260,277,136,142,42,98,253,73,136,142,42,208,260,277,98,253,73,136,142,42,98,253,73,98,253,73,208,260,277],2],[0,143,34,1,117,267,125,[145,205,126,111,105,135,117,267,125,111,105,135,145,205,126,117,267,125,111,105,135,117,267,125,117,267,125,145,205,126],2],[0,268,166,1,279,279,127,[200,200,271,246,246,271,279,279,271,246,246,271,200,200,271,279,279,271,246,246,271,279,279,271,279,279,271,200,200,271],1],[0,269,11,1,114,128,55,[99,61,12,198,134,163,114,128,55,198,134,163,99,61,12,114,128,55,198,134,163,114,128,55,114,128,55,99,61,12],1],[0,249,13,1,94,18,146,[115,115,174,133,273,248,94,18,146,133,273,248,115,115,174,94,18,146,133,273,248,94,18,146,94,18,146,115,115,174],2],[0,97,31,1,47,47,150,[181,181,168,184,184,156,47,47,150,184,184,156,181,181,168,47,47,150,184,184,156,47,47,150,47,47,150,181,181,168],1],[0,216,30,1,171,171,39,[151,151,161,43,51,164,171,171,39,43,51,164,151,151,161,171,171,39,43,51,164,171,171,39,171,171,39,151,151,161],2],[0,258,35,1,233,233,103,[226,226,243,69,213,96,233,233,103,69,213,96,226,226,243,233,233,103,69,213,96,233,233,103,233,233,103,226,226,243],2],[0,255,21,1,32,32,175,[179,179,240,26,26,183,32,32,175,26,26,183,179,179,240,32,32,175,26,26,183,32,32,175,32,32,175,179,179,240],2],[0,280,19,1,206,89,229,[162,188,225,185,173,167,206,89,229,185,173,167,162,188,225,206,89,229,185,173,167,206,89,229,206,89,229,162,188,225],3],[0,251,153,1,147,147,259,[56,56,207,192,192,40,147,147,259,192,192,40,56,56,207,147,147,259,192,192,40,147,147,259,147,147,259,56,56,207],3],[0,131,14,1,217,58,237,[80,90,116,221,217,274,217,58,237,221,217,274,80,90,116,217,58,237,221,217,274,217,58,237,217,58,237,80,90,116],1],[0,245,23,1,218,193,219,[86,261,264,129,257,254,218,193,219,129,257,254,86,261,264,218,193,219,129,257,254,218,193,219,218,193,219,86,261,264],1],[0,195,24,1,70,154,102,[70,154,102,227,63,102,227,63,102,70,154,102,70,154,102,227,63,102,227,63,102,70,154,102,70,154,102,227,63,102],2],[0,106,191,1,241,241,234,[241,241,37,241,241,234,241,241,234,241,241,37,241,241,37,241,241,234,241,241,234,241,241,37,241,241,37,241,241,234],2],[0,132,160,1,176,48,186,[170,228,81,176,48,186,176,48,186,170,228,81,170,228,81,176,48,186,176,48,186,170,228,81,170,228,81,176,48,186],1],[0,187,177,1,189,46,178,[189,46,178,88,165,38,88,165,38,189,46,178,189,46,178,88,165,38,88,165,38,189,46,178,189,46,178,88,165,38],2],[0,97,149,1,190,65,29,[190,65,29,44,27,50,44,27,50,190,65,29,190,65,29,44,27,50,44,27,50,190,65,29,190,65,29,44,27,50],1],[0,278,201,1,148,169,130,[148,169,130,66,59,214,66,59,214,148,169,130,148,169,130,66,59,214,66,59,214,148,169,130,148,169,130,66,59,214],3]],l=[{"10_0":[.13,3,.939,1.07],"10_20":[.04,3.02,.939,1.05],"10_40":[.18,2.83,.936,1.05],"10_60":[.32,2.7,.939,1.049],"10_80":[.44,2.7,.938,1.023],"10_200":[-.05,3.34,.938,1.06],"10_220":[-.16,3.58,.939,1.075],"10_240":[-.34,3.7,.939,1.085],"10_260":[-.55,3.8,.939,1.1],"20_0":[-.24,3.08,.89,1.1],"20_20":[-.24,2.75,.93,1.06],"20_40":[-.12,2.5,.945,1.06],"20_60":[.07,2.27,.96,1.063],"20_80":[.41,2.2,.95,1.124],"20_200":[.3,3.47,.93,1.1],"20_220":[.25,3.9,.945,1.1],"20_240":[-.07,4.23,.945,1.163],"20_260":[-.43,4.55,.94,1.209],"30_0":[-.712,3,.925,1.1],"30_20":[-.67,2.5,.96,1.043],"30_40":[-.53,2.24,.969,1.055],"30_60":[0,1.76,.958,1.1],"30_80":[.39,1.8,.92,1.2],"30_200":[.65,3.4,.935,1.09],"30_220":[.66,4.2,.94,1.11],"30_240":[.4,5.1,.947,1.233],"30_260":[-.35,5.5,.92,1.3],"40_0":[-1.29,2.9,1,1.09],"40_20":[-1.1,2.34,1.02,1.08],"40_40":[-.59,1.8,1,1.09],"40_60":[-.36,1.62,.968,1.22],"40_80":[.32,1.39,.91,1.34],"40_200":[1.2,3.4,1,1.08],"40_220":[1.24,4.5,1,1.149],"40_240":[.77,5.8,.955,1.269],"40_260":[-.315,6.53,.91,1.43],"50_0":[-1.76,2.6,1.1,1.05],"50_20":[-1.23,1.9,1.08,1.05],"50_40":[-1.1,1.6,1.04,1.13],"50_60":[-.55,1.28,.99,1.27],"50_80":[.34,.99,.885,1.5],"50_200":[1.79,3.39,1.05,1.05],"50_220":[1.83,4.9,1.02,1.15],"50_240":[1.08,6.3,.93,1.33],"50_260":[-.16,8.2,.85,1.63],"60_0":[-2.64,2.68,1.25,1.055],"60_20":[-1.9,1.8,1.22,1.1],"60_40":[-1.27,1.28,1.185,1.17],"60_60":[-.16,.8,1.04,1.32],"60_80":[.2,.8,.885,1.95],"60_200":[2.82,3.8,1.18,1.05],"60_220":[2.56,4.47,1.185,1.09],"60_240":[1.52,6.46,.969,1.359],"60_260":[-.1,10,.84,1.92],"0_0":[0,3.35,.96,1.09]},{"10_0":[.11,3.17,.939,1.15],"10_20":[.13,3,.945,1.14],"10_40":[.18,2.85,.95,1.135],"10_60":[.33,2.7,.953,1.14],"10_80":[.477,2.7,.944,1.13],"10_200":[-.14,3.34,.938,1.155],"10_220":[-.14,3.6,.944,1.17],"10_240":[-.33,3.73,.95,1.18],"10_260":[-.46,3.87,.95,1.19],"20_0":[-.176,3.04,.89,1.16],"20_20":[-.2,2.7,.93,1.145],"20_40":[-.07,2.5,.945,1.14],"20_60":[.03,2.38,.96,1.163],"20_80":[.4,2.23,.95,1.184],"20_200":[.07,3.3,.9,1.153],"20_220":[.23,3.9,.93,1.2],"20_240":[0,4.2,.94,1.223],"20_260":[-.6,4.5,.91,1.269],"30_0":[-.67,3,.925,1.16],"30_20":[-.68,2.6,.96,1.134],"30_40":[-.51,2.23,.969,1.165],"30_60":[-.17,2,.958,1.2],"30_80":[.39,1.8,.92,1.28],"30_200":[.67,3.5,.92,1.16],"30_220":[.51,4.1,.92,1.19],"30_240":[.24,5,.91,1.29],"30_260":[-.68,4.9,.9,1.35],"40_0":[-1.22,2.94,1,1.15],"40_20":[-1.15,2.4,1.02,1.17],"40_40":[-.74,1.85,1,1.18],"40_60":[-.36,1.65,.968,1.3],"40_80":[.34,1.43,.91,1.43],"40_200":[1.44,3.7,1.03,1.16],"40_220":[1.28,4.66,1,1.23],"40_240":[.66,5.6,.955,1.36],"40_260":[-.21,6.7,.9,1.5],"50_0":[-1.793,2.77,1.1,1.15],"50_20":[-1.35,1.96,1.08,1.14],"50_40":[-.9,1.6,1.04,1.225],"50_60":[-.54,1.3,.99,1.37],"50_80":[.36,.99,.885,1.6],"50_200":[1.9,3.7,1.05,1.16],"50_220":[1.68,4.7,1.02,1.21],"50_240":[1.1,6.66,.94,1.43],"50_260":[-.24,8.2,.84,1.71],"60_0":[-2.5,2.7,1.25,1.155],"60_20":[-1.89,1.8,1.22,1.17],"60_40":[-1.26,1.25,1.185,1.24],"60_60":[-.59,.9,1.04,1.39],"60_80":[.19,.73,.885,2.03],"60_200":[2.63,3.56,1.18,1.11],"60_220":[2.85,5.4,1.185,1.22],"60_240":[1.75,7.2,.996,1.47],"60_260":[-.03,10.2,.819,2.04],"0_0":[0,3.36,.98,1.18]},{"10_0":[.26,3.05,.939,1.25],"10_20":[.27,2.9,.945,1.24],"10_40":[.19,2.8,.95,1.23],"10_60":[.38,2.78,.953,1.23],"10_80":[.58,2.68,.944,1.23],"10_200":[-.16,3.34,.94,1.24],"10_220":[-.164,3.62,.944,1.26],"10_240":[-.45,3.7,.94,1.27],"10_260":[-.58,3.83,.95,1.295],"20_0":[-.15,3,.89,1.25],"20_20":[-.19,2.79,.93,1.225],"20_40":[-.08,2.52,.945,1.23],"20_60":[.03,2.38,.95,1.263],"20_80":[.46,2.25,.95,1.284],"20_200":[.15,3.4,.91,1.233],"20_220":[.15,3.92,.935,1.3],"20_240":[-.17,4.2,.93,1.31],"20_260":[-.55,4.5,.93,1.369],"30_0":[-.62,2.98,.925,1.26],"30_2
A collaboration between the ATP Tour, Art Blocks Engine, and Martin Grasser, LOVE is a collection of unique digital artworks that uses in-match sports data to celebrate impactful moments from the 2022 Nitto ATP Finals in Turin, Italy.