"),v.print("")}v.close(),v.clear()},u.default.prototype.writeFile=function(v,y,b){var g="application/octet-stream",v=(u.default.prototype._isSafari()&&(g="text/plain"),new Blob(v,{type:g}));u.default.prototype.downloadFile(v,y,b)},u.default.prototype.downloadFile=function(m,v,x){var g,v=p(v,x),x=v[0];m instanceof Blob?c.default.saveAs(m,x):((g=document.createElement("a")).href=m,g.download=x,g.onclick=function(S){document.body.removeChild(S.target),S.stopPropagation()},g.style.display="none",document.body.appendChild(g),u.default.prototype._isSafari()&&(m=(m=`Hello, Safari user! To download this file... 1. Go to File --> Save As. 2. Choose "Page Source" as the Format. `)+'3. Name it with this extension: ."'.concat(v[1],'"'),alert(m)),g.click())},u.default.prototype._checkFileExtension=p,u.default.prototype._isSafari=function(){return window.HTMLElement.toString().includes("Constructor")},r=u.default,a.default=r},{"../core/friendly_errors/fes_core":271,"../core/friendly_errors/file_errors":272,"../core/friendly_errors/validate_params":275,"../core/main":280,"core-js/modules/es.array.concat":152,"core-js/modules/es.array.includes":162,"core-js/modules/es.array.iterator":164,"core-js/modules/es.array.last-index-of":166,"core-js/modules/es.array.map":167,"core-js/modules/es.array.slice":168,"core-js/modules/es.array.splice":170,"core-js/modules/es.function.name":173,"core-js/modules/es.object.from-entries":182,"core-js/modules/es.object.to-string":187,"core-js/modules/es.promise":188,"core-js/modules/es.regexp.exec":192,"core-js/modules/es.regexp.to-string":193,"core-js/modules/es.string.includes":196,"core-js/modules/es.string.iterator":197,"core-js/modules/es.string.replace":201,"core-js/modules/es.string.split":203,"core-js/modules/es.symbol":209,"core-js/modules/es.symbol.description":207,"core-js/modules/es.symbol.iterator":208,"core-js/modules/es.typed-array.copy-within":210,"core-js/modules/es.typed-array.every":211,"core-js/modules/es.typed-array.fill":212,"core-js/modules/es.typed-array.filter":213,"core-js/modules/es.typed-array.find":215,"core-js/modules/es.typed-array.find-index":214,"core-js/modules/es.typed-array.for-each":218,"core-js/modules/es.typed-array.includes":219,"core-js/modules/es.typed-array.index-of":220,"core-js/modules/es.typed-array.iterator":223,"core-js/modules/es.typed-array.join":224,"core-js/modules/es.typed-array.last-index-of":225,"core-js/modules/es.typed-array.map":226,"core-js/modules/es.typed-array.reduce":228,"core-js/modules/es.typed-array.reduce-right":227,"core-js/modules/es.typed-array.reverse":229,"core-js/modules/es.typed-array.set":230,"core-js/modules/es.typed-array.slice":231,"core-js/modules/es.typed-array.some":232,"core-js/modules/es.typed-array.sort":233,"core-js/modules/es.typed-array.subarray":234,"core-js/modules/es.typed-array.to-locale-string":235,"core-js/modules/es.typed-array.to-string":236,"core-js/modules/es.typed-array.uint8-array":239,"core-js/modules/web.dom-collections.iterator":243,"core-js/modules/web.url":245,"es6-promise/auto":246,"fetch-jsonp":248,"file-saver":249,"whatwg-fetch":258}],307:[function(r,s,a){r("core-js/modules/es.array.concat"),r("core-js/modules/es.array.index-of"),r("core-js/modules/es.array.join"),r("core-js/modules/es.array.splice"),r("core-js/modules/es.regexp.constructor"),r("core-js/modules/es.regexp.exec"),r("core-js/modules/es.regexp.to-string"),r("core-js/modules/es.string.match"),r("core-js/modules/es.string.replace"),r("core-js/modules/es.array.concat"),r("core-js/modules/es.array.index-of"),r("core-js/modules/es.array.join"),r("core-js/modules/es.array.splice"),r("core-js/modules/es.regexp.constructor"),r("core-js/modules/es.regexp.exec"),r("core-js/modules/es.regexp.to-string"),r("core-js/modules/es.string.match"),r("core-js/modules/es.string.replace"),Object.defineProperty(a,"__esModule",{value:!0}),a.default=void 0;var o=(r=r("../core/main"))&&r.__esModule?r:{default:r};function u(l,c){for(var h=0;h>>0},getSeed:function(){return p},rand:function(){return(m=(1664525*m+1013904223)%y)/y}};b.setSeed(d),u=new Array(4096);for(var g=0;g<4096;g++)u[g]=b.rand()},f.default);a.default=f},{"../core/main":280}],313:[function(r,s,a){function o(p){return(o=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(m){return typeof m}:function(m){return m&&typeof Symbol=="function"&&m.constructor===Symbol&&m!==Symbol.prototype?"symbol":typeof m})(p)}function u(p){return(u=typeof Symbol=="function"&&o(Symbol.iterator)==="symbol"?function(m){return o(m)}:function(m){return m&&typeof Symbol=="function"&&m.constructor===Symbol&&m!==Symbol.prototype?"symbol":o(m)})(p)}r("core-js/modules/es.symbol"),r("core-js/modules/es.symbol.description"),r("core-js/modules/es.symbol.iterator"),r("core-js/modules/es.array.concat"),r("core-js/modules/es.array.every"),r("core-js/modules/es.array.iterator"),r("core-js/modules/es.array.some"),r("core-js/modules/es.math.sign"),r("core-js/modules/es.number.constructor"),r("core-js/modules/es.number.is-finite"),r("core-js/modules/es.object.get-own-property-descriptor"),r("core-js/modules/es.object.to-string"),r("core-js/modules/es.string.iterator"),r("core-js/modules/es.string.sub"),r("core-js/modules/es.weak-map"),r("core-js/modules/web.dom-collections.iterator"),r("core-js/modules/es.array.concat"),r("core-js/modules/es.array.every"),r("core-js/modules/es.array.some"),r("core-js/modules/es.math.sign"),r("core-js/modules/es.number.constructor"),r("core-js/modules/es.number.is-finite"),r("core-js/modules/es.string.sub"),Object.defineProperty(a,"__esModule",{value:!0}),a.default=void 0;var l=(d=r("../core/main"))&&d.__esModule?d:{default:d},c=function(p){if(p&&p.__esModule)return p;if(p===null||u(p)!=="object"&&typeof p!="function")return{default:p};var m=h();if(m&&m.has(p))return m.get(p);var y,b={},g=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(y in p){var v;Object.prototype.hasOwnProperty.call(p,y)&&((v=g?Object.getOwnPropertyDescriptor(p,y):null)&&(v.get||v.set)?Object.defineProperty(b,y,v):b[y]=p[y])}return b.default=p,m&&m.set(p,b),b}(r("../core/constants"));function h(){var p;return typeof WeakMap!="function"?null:(p=new WeakMap,h=function(){return p},p)}function f(p,m){for(var y=0;y>>0},o.default.prototype.randomSeed=function(f){this._lcgSetSeed(u,f),this._gaussian_previous=!1},o.default.prototype.random=function(f,d){var p,m;return o.default._validateParameters("random",arguments),p=this[u]!=null?this._lcg(u):Math.random(),f===void 0?p:d===void 0?Array.isArray(f)?f[Math.floor(p*f.length)]:p*f:(dU&&(he=B,te=F,se=H,B=le+U*(Q&&le=l?c.substring(c.length-l,c.length):c}},o.default.prototype.unhex=function(u){return u instanceof Array?u.map(o.default.prototype.unhex):parseInt("0x".concat(u),16)},r=o.default,a.default=r},{"../core/main":280,"core-js/modules/es.array.map":167,"core-js/modules/es.number.constructor":178,"core-js/modules/es.object.to-string":187,"core-js/modules/es.regexp.to-string":193,"core-js/modules/es.string.repeat":200}],321:[function(r,s,a){r("core-js/modules/es.symbol"),r("core-js/modules/es.symbol.description"),r("core-js/modules/es.symbol.iterator"),r("core-js/modules/es.array.filter"),r("core-js/modules/es.array.index-of"),r("core-js/modules/es.array.iterator"),r("core-js/modules/es.array.join"),r("core-js/modules/es.array.map"),r("core-js/modules/es.array.slice"),r("core-js/modules/es.number.to-fixed"),r("core-js/modules/es.object.to-string"),r("core-js/modules/es.regexp.constructor"),r("core-js/modules/es.regexp.exec"),r("core-js/modules/es.regexp.to-string"),r("core-js/modules/es.string.iterator"),r("core-js/modules/es.string.match"),r("core-js/modules/es.string.pad-start"),r("core-js/modules/es.string.replace"),r("core-js/modules/es.string.split"),r("core-js/modules/es.string.trim"),r("core-js/modules/web.dom-collections.iterator"),r("core-js/modules/es.array.filter"),r("core-js/modules/es.array.index-of"),r("core-js/modules/es.array.join"),r("core-js/modules/es.array.map"),r("core-js/modules/es.array.slice"),r("core-js/modules/es.number.to-fixed"),r("core-js/modules/es.object.to-string"),r("core-js/modules/es.regexp.constructor"),r("core-js/modules/es.regexp.exec"),r("core-js/modules/es.regexp.to-string"),r("core-js/modules/es.string.match"),r("core-js/modules/es.string.pad-start"),r("core-js/modules/es.string.replace"),r("core-js/modules/es.string.split"),r("core-js/modules/es.string.trim"),Object.defineProperty(a,"__esModule",{value:!0}),a.default=void 0;var o=(d=r("../core/main"))&&d.__esModule?d:{default:d};function u(p,m){return function(y){if(Array.isArray(y))return y}(p)||function(y,b){if(Symbol.iterator in Object(y)||Object.prototype.toString.call(y)==="[object Arguments]"){var g=[],v=!0,x=!1,S=void 0;try{for(var _,A=y[Symbol.iterator]();!(v=(_=A.next()).done)&&(g.push(_.value),!b||g.length!==b);v=!0);}catch(T){x=!0,S=T}finally{try{v||A.return==null||A.return()}finally{if(x)throw S}}return g}}(p,m)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function l(p,m,y){var g=u(p.toString().split("."),2),b=g[0],g=g[1];return y===void 0?(b=b.padStart(m,"0"),g?b+"."+g:b):(b=(p=u(p.toFixed(y).toString().split("."),2))[0],g=p[1],b=b.padStart(m,"0"),g===void 0?b:b+"."+g)}function c(g,m){var y=(g=g.toString()).indexOf("."),b=y!==-1?g.substring(y):"",g=(g=y!==-1?g.substring(0,y):g).toString().replace(/\B(?=(\d{3})+(?!\d))/g,",");if(m===0)b="";else if(m!==void 0)if(m>b.length)for(var v=m-(b+=y===-1?".":"").length+1,x=0;x=c.TWO_PI?"".concat(T="ellipse","|"):"".concat(T="arc","|").concat(v,"|").concat(x,"|").concat(S,"|")).concat(_,"|"),T=(this.geometryInHash(A)||((p=new l.default.Geometry(_,1,function(){if(v.toFixed(10)!==x.toFixed(10)){S!==c.PIE&&S!==void 0||(this.vertices.push(new l.default.Vector(.5,.5,0)),this.uvs.push([.5,.5]));for(var E=0;E<=_;E++){var j=(x-v)*(E/_)+v,C=.5+Math.cos(j)/2,j=.5+Math.sin(j)/2;this.vertices.push(new l.default.Vector(C,j,0)),this.uvs.push([C,j]),E<_-1&&(this.faces.push([0,E+1,E+2]),this.edges.push([E+1,E+2]))}switch(S){case c.PIE:this.faces.push([0,this.vertices.length-2,this.vertices.length-1]),this.edges.push([0,1]),this.edges.push([this.vertices.length-2,this.vertices.length-1]),this.edges.push([0,this.vertices.length-1]);break;case c.CHORD:this.edges.push([0,1]),this.edges.push([0,this.vertices.length-1]);break;case c.OPEN:this.edges.push([0,1]);break;default:this.faces.push([0,this.vertices.length-2,this.vertices.length-1]),this.edges.push([this.vertices.length-2,this.vertices.length-1])}}})).computeNormals(),_<=50?p._edgesToVertices(p):this._doStroke&&console.log("Cannot apply a stroke to an ".concat(T," with more than 50 detail")),this.createBuffers(A,p)),this.uMVMatrix.copy());try{this.uMVMatrix.translate([m,y,0]),this.uMVMatrix.scale(b,g,1),this.drawBuffers(A)}finally{this.uMVMatrix=T}return this},l.default.RendererGL.prototype.rect=function(p){var m=p[0],y=p[1],b=p[2],g=p[3];if(p[4]===void 0){var S=this._pInst._glAttributes.perPixelLighting,v=p[4]||(S?1:24),x=p[5]||(S?1:16),S="rect|".concat(v,"|").concat(x),_=(this.geometryInHash(S)||((_=new l.default.Geometry(v,x,function(){for(var G=0;G<=this.detailY;G++)for(var B=G/this.detailY,$=0;$<=this.detailX;$++){var Z=$/this.detailX,ne=new l.default.Vector(Z,B,0);this.vertices.push(ne),this.uvs.push(Z,B)}0>5&31)/31,(W>>10&31)/31)),new u.default.Vector(te,se,he)),fe=1;fe<=3;fe++){var le=Q+12*fe,le=new u.default.Vector(Z.getFloat32(le,!0),Z.getFloat32(4+le,!0),Z.getFloat32(8+le,!0));O.vertices.push(le),O.vertexNormals.push(ae),L&&z.push(N,F,H)}O.faces.push([3*U,3*U+1,3*U+2]),O.uvs.push([0,0],[0,0],[0,0])}})(j,I);else{if(I=new DataView(I),!("TextDecoder"in window))return console.warn("Sorry, ASCII STL loading only works in browsers that support TextDecoder (https://caniuse.com/#feat=textencoder)");I=new TextDecoder("utf-8").decode(I).split(` `),function(O,P){for(var N,F,H="",z=[],G=0;Gthis.cameraFar&&(m=this.cameraFar),Math.acos(Math.max(-1,Math.min(1,o.default.Vector.dot(y,b))))+S),S=f;(x<=0||x>=Math.PI)&&(this.upX*=-1,this.upY*=-1,this.upZ*=-1),b.mult(Math.cos(x)),v.mult(Math.cos(S)*Math.sin(x)),g.mult(Math.sin(S)*Math.sin(x)),y.set(b).add(v).add(g),this.eyeX=m*y.x+this.centerX,this.eyeY=m*y.y+this.centerY,this.eyeZ=m*y.z+this.centerZ,this.camera(this.eyeX,this.eyeY,this.eyeZ,this.centerX,this.centerY,this.centerZ,this.upX,this.upY,this.upZ)}},{key:"_orbitFree",value:function(x,S,A){var y=this.eyeX-this.centerX,b=this.eyeY-this.centerY,g=this.eyeZ-this.centerZ,m=Math.hypot(y,b,g),y=new o.default.Vector(y,b,g).normalize(),b=new o.default.Vector(this.upX,this.upY,this.upZ),g=o.default.Vector.cross(b,y).normalize(),v=o.default.Vector.cross(y,g),T=Math.atan2(S,x),T=(v.mult(Math.sin(T)),g.mult(Math.cos(T)).add(v),Math.sqrt(x*x+S*S)),v=o.default.Vector.cross(y,g),x=((m=(m*=Math.pow(10,A))this.cameraFar&&(m=this.cameraFar),Math.cos(T)),S=Math.sin(T),A=b.dot(y),T=b.dot(g),_=A*x+T*S,A=-A*S+T*x,T=b.dot(v);b.x=_*y.x+A*g.x+T*v.x,b.y=_*y.y+A*g.y+T*v.y,b.z=_*y.z+A*g.z+T*v.z,g.mult(-S),y.mult(x).add(g).mult(m),this.camera(y.x+this.centerX,y.y+this.centerY,y.z+this.centerZ,this.centerX,this.centerY,this.centerZ,b.x,b.y,b.z)}},{key:"_isActive",value:function(){return this===this._renderer._curCamera}}])&&u(c.prototype,h),l}(),o.default.prototype.setCamera=function(l){this._renderer._curCamera=l,this._renderer.uPMatrix.set(l.projMatrix)},r=o.default.Camera,a.default=r},{"../core/main":280,"core-js/modules/es.array.slice":168,"core-js/modules/es.math.hypot":175,"core-js/modules/es.string.sub":205}],330:[function(r,s,a){r("core-js/modules/es.array.iterator"),r("core-js/modules/es.array.slice"),r("core-js/modules/es.math.log2"),r("core-js/modules/es.object.to-string"),r("core-js/modules/es.typed-array.float32-array"),r("core-js/modules/es.typed-array.copy-within"),r("core-js/modules/es.typed-array.every"),r("core-js/modules/es.typed-array.fill"),r("core-js/modules/es.typed-array.filter"),r("core-js/modules/es.typed-array.find"),r("core-js/modules/es.typed-array.find-index"),r("core-js/modules/es.typed-array.for-each"),r("core-js/modules/es.typed-array.includes"),r("core-js/modules/es.typed-array.index-of"),r("core-js/modules/es.typed-array.iterator"),r("core-js/modules/es.typed-array.join"),r("core-js/modules/es.typed-array.last-index-of"),r("core-js/modules/es.typed-array.map"),r("core-js/modules/es.typed-array.reduce"),r("core-js/modules/es.typed-array.reduce-right"),r("core-js/modules/es.typed-array.reverse"),r("core-js/modules/es.typed-array.set"),r("core-js/modules/es.typed-array.slice"),r("core-js/modules/es.typed-array.some"),r("core-js/modules/es.typed-array.sort"),r("core-js/modules/es.typed-array.subarray"),r("core-js/modules/es.typed-array.to-locale-string"),r("core-js/modules/es.typed-array.to-string"),r("core-js/modules/es.array.iterator"),r("core-js/modules/es.array.slice"),r("core-js/modules/es.math.log2"),r("core-js/modules/es.object.to-string"),r("core-js/modules/es.typed-array.float32-array"),r("core-js/modules/es.typed-array.copy-within"),r("core-js/modules/es.typed-array.every"),r("core-js/modules/es.typed-array.fill"),r("core-js/modules/es.typed-array.filter"),r("core-js/modules/es.typed-array.find"),r("core-js/modules/es.typed-array.find-index"),r("core-js/modules/es.typed-array.for-each"),r("core-js/modules/es.typed-array.includes"),r("core-js/modules/es.typed-array.index-of"),r("core-js/modules/es.typed-array.iterator"),r("core-js/modules/es.typed-array.join"),r("core-js/modules/es.typed-array.last-index-of"),r("core-js/modules/es.typed-array.map"),r("core-js/modules/es.typed-array.reduce"),r("core-js/modules/es.typed-array.reduce-right"),r("core-js/modules/es.typed-array.reverse"),r("core-js/modules/es.typed-array.set"),r("core-js/modules/es.typed-array.slice"),r("core-js/modules/es.typed-array.some"),r("core-js/modules/es.typed-array.sort"),r("core-js/modules/es.typed-array.subarray"),r("core-js/modules/es.typed-array.to-locale-string"),r("core-js/modules/es.typed-array.to-string"),Object.defineProperty(a,"__esModule",{value:!0}),a.default=void 0,r=(r=r("../core/main"))&&r.__esModule?r:{default:r};function o(u,l){for(var c=0;c=this.width||O>=this.height)&&(console.warn("The x and y values passed to p5.Framebuffer.get are outside of its range and will be clamped."),I=this.target.constrain(I,0,this.width-1),O=this.target.constrain(O,0,this.height-1)),(0,f.readPixelWebGL)(this.gl,this.framebuffer,I*this.density,O*this.density,F.format,F.type);I=this.target.constrain(I,0,this.width-1),O=this.target.constrain(O,0,this.height-1),P=this.target.constrain(P,1,this.width-I),N=this.target.constrain(N,1,this.height-O);for(var H=(0,f.readPixelsWebGL)(void 0,this.gl,this.framebuffer,I*this.density,O*this.density,P*this.density,N*this.density,F.format,F.type),z=new Uint8ClampedArray(P*N*this.density*this.density*4),G=(z.fill(255),F.type===this.gl.RGB?3:4),B=0;Bthis.vertices.length-1-this.detailX;S--)g.add(this.vertexNormals[S]);g=l.default.Vector.div(g,this.detailX);for(var _=this.vertices.length-1;_>this.vertices.length-1-this.detailX;_--)this.vertexNormals[_]=g;return this}},{key:"_makeTriangleEdges",value:function(){for(var g=this.edges.length=0;g 65535 triangles. Your web browser does not support the WebGL Extension OES_element_index_uint.");y.drawElements(y.TRIANGLES,m.vertexCount,m.indexBufferType,0)}else y.drawArrays(d||y.TRIANGLES,0,m.vertexCount)},l.default.RendererGL.prototype._drawPoints=function(d,p){var m=this.GL,y=this._getImmediatePointShader();this._setPointUniforms(y),this._bindBuffer(p,m.ARRAY_BUFFER,this._vToNArray(d),Float32Array,m.STATIC_DRAW),y.enableAttrib(y.attributes.aPosition,3),this._applyColorBlend(this.curStrokeColor),m.drawArrays(m.Points,0,d.length),y.unbindShader()};var f=l.default.RendererGL;a.default=f},{"../core/constants":269,"../core/main":280,"./p5.RenderBuffer":334,"./p5.RendererGL":337,"core-js/modules/es.array.fill":155,"core-js/modules/es.array.iterator":164,"core-js/modules/es.array.some":169,"core-js/modules/es.object.get-own-property-descriptor":183,"core-js/modules/es.object.keys":186,"core-js/modules/es.object.to-string":187,"core-js/modules/es.string.iterator":197,"core-js/modules/es.symbol":209,"core-js/modules/es.symbol.description":207,"core-js/modules/es.symbol.iterator":208,"core-js/modules/es.typed-array.copy-within":210,"core-js/modules/es.typed-array.every":211,"core-js/modules/es.typed-array.fill":212,"core-js/modules/es.typed-array.filter":213,"core-js/modules/es.typed-array.find":215,"core-js/modules/es.typed-array.find-index":214,"core-js/modules/es.typed-array.float32-array":216,"core-js/modules/es.typed-array.for-each":218,"core-js/modules/es.typed-array.includes":219,"core-js/modules/es.typed-array.index-of":220,"core-js/modules/es.typed-array.iterator":223,"core-js/modules/es.typed-array.join":224,"core-js/modules/es.typed-array.last-index-of":225,"core-js/modules/es.typed-array.map":226,"core-js/modules/es.typed-array.reduce":228,"core-js/modules/es.typed-array.reduce-right":227,"core-js/modules/es.typed-array.reverse":229,"core-js/modules/es.typed-array.set":230,"core-js/modules/es.typed-array.slice":231,"core-js/modules/es.typed-array.some":232,"core-js/modules/es.typed-array.sort":233,"core-js/modules/es.typed-array.subarray":234,"core-js/modules/es.typed-array.to-locale-string":235,"core-js/modules/es.typed-array.to-string":236,"core-js/modules/es.typed-array.uint16-array":237,"core-js/modules/es.typed-array.uint32-array":238,"core-js/modules/es.weak-map":241,"core-js/modules/web.dom-collections.iterator":243}],337:[function(P,s,a){function o(B){return(o=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function($){return typeof $}:function($){return $&&typeof Symbol=="function"&&$.constructor===Symbol&&$!==Symbol.prototype?"symbol":typeof $})(B)}function u(B){return(u=typeof Symbol=="function"&&o(Symbol.iterator)==="symbol"?function($){return o($)}:function($){return $&&typeof Symbol=="function"&&$.constructor===Symbol&&$!==Symbol.prototype?"symbol":o($)})(B)}P("core-js/modules/es.symbol"),P("core-js/modules/es.symbol.description"),P("core-js/modules/es.symbol.iterator"),P("core-js/modules/es.array.concat"),P("core-js/modules/es.array.copy-within"),P("core-js/modules/es.array.every"),P("core-js/modules/es.array.fill"),P("core-js/modules/es.array.flat"),P("core-js/modules/es.array.flat-map"),P("core-js/modules/es.array.from"),P("core-js/modules/es.array.includes"),P("core-js/modules/es.array.iterator"),P("core-js/modules/es.array.map"),P("core-js/modules/es.array.slice"),P("core-js/modules/es.array.some"),P("core-js/modules/es.array.unscopables.flat"),P("core-js/modules/es.array.unscopables.flat-map"),P("core-js/modules/es.map"),P("core-js/modules/es.object.assign"),P("core-js/modules/es.object.get-own-property-descriptor"),P("core-js/modules/es.object.get-prototype-of"),P("core-js/modules/es.object.to-string"),P("core-js/modules/es.reflect.construct"),P("core-js/modules/es.reflect.get"),P("core-js/modules/es.regexp.to-string"),P("core-js/modules/es.set"),P("core-js/modules/es.string.includes"),P("core-js/modules/es.string.iterator"),P("core-js/modules/es.typed-array.float32-array"),P("core-js/modules/es.typed-array.float64-array"),P("core-js/modules/es.typed-array.int16-array"),P("core-js/modules/es.typed-array.uint8-array"),P("core-js/modules/es.typed-array.uint16-array"),P("core-js/modules/es.typed-array.uint32-array"),P("core-js/modules/es.typed-array.copy-within"),P("core-js/modules/es.typed-array.every"),P("core-js/modules/es.typed-array.fill"),P("core-js/modules/es.typed-array.filter"),P("core-js/modules/es.typed-array.find"),P("core-js/modules/es.typed-array.find-index"),P("core-js/modules/es.typed-array.for-each"),P("core-js/modules/es.typed-array.includes"),P("core-js/modules/es.typed-array.index-of"),P("core-js/modules/es.typed-array.iterator"),P("core-js/modules/es.typed-array.join"),P("core-js/modules/es.typed-array.last-index-of"),P("core-js/modules/es.typed-array.map"),P("core-js/modules/es.typed-array.reduce"),P("core-js/modules/es.typed-array.reduce-right"),P("core-js/modules/es.typed-array.reverse"),P("core-js/modules/es.typed-array.set"),P("core-js/modules/es.typed-array.slice"),P("core-js/modules/es.typed-array.some"),P("core-js/modules/es.typed-array.sort"),P("core-js/modules/es.typed-array.subarray"),P("core-js/modules/es.typed-array.to-locale-string"),P("core-js/modules/es.typed-array.to-string"),P("core-js/modules/es.weak-map"),P("core-js/modules/web.dom-collections.iterator"),P("core-js/modules/es.symbol"),P("core-js/modules/es.symbol.description"),P("core-js/modules/es.symbol.iterator"),P("core-js/modules/es.array.concat"),P("core-js/modules/es.array.copy-within"),P("core-js/modules/es.array.every"),P("core-js/modules/es.array.fill"),P("core-js/modules/es.array.flat"),P("core-js/modules/es.array.flat-map"),P("core-js/modules/es.array.from"),P("core-js/modules/es.array.includes"),P("core-js/modules/es.array.iterator"),P("core-js/modules/es.array.map"),P("core-js/modules/es.array.slice"),P("core-js/modules/es.array.some"),P("core-js/modules/es.array.unscopables.flat"),P("core-js/modules/es.array.unscopables.flat-map"),P("core-js/modules/es.map"),P("core-js/modules/es.object.assign"),P("core-js/modules/es.object.to-string"),P("core-js/modules/es.set"),P("core-js/modules/es.string.includes"),P("core-js/modules/es.string.iterator"),P("core-js/modules/es.typed-array.float32-array"),P("core-js/modules/es.typed-array.float64-array"),P("core-js/modules/es.typed-array.int16-array"),P("core-js/modules/es.typed-array.uint8-array"),P("core-js/modules/es.typed-array.uint16-array"),P("core-js/modules/es.typed-array.uint32-array"),P("core-js/modules/es.typed-array.copy-within"),P("core-js/modules/es.typed-array.every"),P("core-js/modules/es.typed-array.fill"),P("core-js/modules/es.typed-array.filter"),P("core-js/modules/es.typed-array.find"),P("core-js/modules/es.typed-array.find-index"),P("core-js/modules/es.typed-array.for-each"),P("core-js/modules/es.typed-array.includes"),P("core-js/modules/es.typed-array.index-of"),P("core-js/modules/es.typed-array.iterator"),P("core-js/modules/es.typed-array.join"),P("core-js/modules/es.typed-array.last-index-of"),P("core-js/modules/es.typed-array.map"),P("core-js/modules/es.typed-array.reduce"),P("core-js/modules/es.typed-array.reduce-right"),P("core-js/modules/es.typed-array.reverse"),P("core-js/modules/es.typed-array.set"),P("core-js/modules/es.typed-array.slice"),P("core-js/modules/es.typed-array.some"),P("core-js/modules/es.typed-array.sort"),P("core-js/modules/es.typed-array.subarray"),P("core-js/modules/es.typed-array.to-locale-string"),P("core-js/modules/es.typed-array.to-string"),P("core-js/modules/web.dom-collections.iterator"),Object.defineProperty(a,"__esModule",{value:!0}),a.readPixelsWebGL=z,a.readPixelWebGL=G,a.default=void 0;var l=m(P("../core/main")),c=function(B){if(B&&B.__esModule)return B;if(B===null||u(B)!=="object"&&typeof B!="function")return{default:B};var $=p();if($&&$.has(B))return $.get(B);var Z,ne={},L=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(Z in B){var R;Object.prototype.hasOwnProperty.call(B,Z)&&((R=L?Object.getOwnPropertyDescriptor(B,Z):null)&&(R.get||R.set)?Object.defineProperty(ne,Z,R):ne[Z]=B[Z])}return ne.default=B,$&&$.set(B,ne),ne}(P("../core/constants")),h=m(P("./GeometryBuilder")),f=m(P("libtess")),d=(P("./p5.Shader"),P("./p5.Camera"),P("../core/p5.Renderer"),P("./p5.Matrix"),P("./p5.Framebuffer"),P("path"),P("./p5.Texture"));function p(){var B;return typeof WeakMap!="function"?null:(B=new WeakMap,p=function(){return B},B)}function m(B){return B&&B.__esModule?B:{default:B}}function y(B){return function($){if(Array.isArray($)){for(var Z=0,ne=new Array($.length);Z<$.length;Z++)ne[Z]=$[Z];return ne}}(B)||function($){if(Symbol.iterator in Object($)||Object.prototype.toString.call($)==="[object Arguments]")return Array.from($)}(B)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}function b(B,$){for(var Z=0;Z<$.length;Z++){var ne=$[Z];ne.enumerable=ne.enumerable||!1,ne.configurable=!0,"value"in ne&&(ne.writable=!0),Object.defineProperty(B,ne.key,ne)}}function g(B,$,Z){return(g=typeof Reflect<"u"&&Reflect.get?Reflect.get:function(U,L,R){var U=function(W,Q){for(;!Object.prototype.hasOwnProperty.call(W,Q)&&(W=_(W))!==null;);return W}(U,L);if(U)return(U=Object.getOwnPropertyDescriptor(U,L)).get?U.get.call(R):U.value})(B,$,Z||B)}function v(B,$){return(v=Object.setPrototypeOf||function(Z,ne){return Z.__proto__=ne,Z})(B,$)}function x(B){return function(){var $,Z,ne=_(B);return $=function(){if(typeof Reflect<"u"&&Reflect.construct&&!Reflect.construct.sham){if(typeof Proxy=="function")return 1;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),1}catch{}}}()?($=_(this).constructor,Reflect.construct(ne,arguments,$)):ne.apply(this,arguments),ne=this,!(Z=$)||u(Z)!=="object"&&typeof Z!="function"?S(ne):Z}}function S(B){if(B===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return B}function _(B){return(_=Object.setPrototypeOf?Object.getPrototypeOf:function($){return $.__proto__||Object.getPrototypeOf($)})(B)}function A(B,$,Z){$ in B?Object.defineProperty(B,$,{value:Z,enumerable:!0,configurable:!0,writable:!0}):B[$]=Z}function T(B,$){O+="#define STROKE_CAP_".concat(B," ").concat($,` `),j[c[B]]=$}function E(B,$){O+="#define STROKE_JOIN_".concat(B," ").concat($,` `),I[c[B]]=$}var C,j={},I={},O="",P=(T("ROUND",0),T("PROJECT",1),T("SQUARE",2),E("ROUND",0),E("MITER",1),E("BEVEL",2),`#define PI 3.141592 precision highp float; precision highp int; uniform mat4 uViewMatrix; uniform bool uUseLighting; uniform int uAmbientLightCount; uniform vec3 uAmbientColor[5]; uniform mat3 uCameraRotation; uniform int uDirectionalLightCount; uniform vec3 uLightingDirection[5]; uniform vec3 uDirectionalDiffuseColors[5]; uniform vec3 uDirectionalSpecularColors[5]; uniform int uPointLightCount; uniform vec3 uPointLightLocation[5]; uniform vec3 uPointLightDiffuseColors[5]; uniform vec3 uPointLightSpecularColors[5]; uniform int uSpotLightCount; uniform float uSpotLightAngle[5]; uniform float uSpotLightConc[5]; uniform vec3 uSpotLightDiffuseColors[5]; uniform vec3 uSpotLightSpecularColors[5]; uniform vec3 uSpotLightLocation[5]; uniform vec3 uSpotLightDirection[5]; uniform bool uSpecular; uniform float uShininess; uniform float metallic; uniform float uConstantAttenuation; uniform float uLinearAttenuation; uniform float uQuadraticAttenuation; // setting from _setImageLightUniforms() // boolean to initiate the calculateImageDiffuse and calculateImageSpecular uniform bool uUseImageLight; // texture for use in calculateImageDiffuse uniform sampler2D environmentMapDiffused; // texture for use in calculateImageSpecular uniform sampler2D environmentMapSpecular; // roughness for use in calculateImageSpecular uniform float levelOfDetail; const float specularFactor = 2.0; const float diffuseFactor = 0.73; struct LightResult { float specular; float diffuse; }; float _phongSpecular( vec3 lightDirection, vec3 viewDirection, vec3 surfaceNormal, float shininess) { vec3 R = reflect(lightDirection, surfaceNormal); return pow(max(0.0, dot(R, viewDirection)), shininess); } float _lambertDiffuse(vec3 lightDirection, vec3 surfaceNormal) { return max(0.0, dot(-lightDirection, surfaceNormal)); } LightResult _light(vec3 viewDirection, vec3 normal, vec3 lightVector) { vec3 lightDir = normalize(lightVector); //compute our diffuse & specular terms LightResult lr; float specularIntensity = mix(1.0, 0.4, metallic); float diffuseIntensity = mix(1.0, 0.1, metallic); if (uSpecular) lr.specular = (_phongSpecular(lightDir, viewDirection, normal, uShininess)) * specularIntensity; lr.diffuse = _lambertDiffuse(lightDir, normal) * diffuseIntensity; return lr; } // converts the range of "value" from [min1 to max1] to [min2 to max2] float map(float value, float min1, float max1, float min2, float max2) { return min2 + (value - min1) * (max2 - min2) / (max1 - min1); } vec2 mapTextureToNormal( vec3 v ){ // x = r sin(phi) cos(theta) // y = r cos(phi) // z = r sin(phi) sin(theta) float phi = acos( v.y ); // if phi is 0, then there are no x, z components float theta = 0.0; // else theta = acos(v.x / sin(phi)); float sinTheta = v.z / sin(phi); if (sinTheta < 0.0) { // Turn it into -theta, but in the 0-2PI range theta = 2.0 * PI - theta; } theta = theta / (2.0 * 3.14159); phi = phi / 3.14159 ; vec2 angles = vec2( fract(theta + 0.25), 1.0 - phi ); return angles; } vec3 calculateImageDiffuse( vec3 vNormal, vec3 vViewPosition ){ // make 2 seperate builds vec3 worldCameraPosition = vec3(0.0, 0.0, 0.0); // hardcoded world camera position vec3 worldNormal = normalize(vNormal * uCameraRotation); vec2 newTexCoor = mapTextureToNormal( worldNormal ); vec4 texture = TEXTURE( environmentMapDiffused, newTexCoor ); // this is to make the darker sections more dark // png and jpg usually flatten the brightness so it is to reverse that return mix(smoothstep(vec3(0.0), vec3(1.0), texture.xyz), vec3(0.0), metallic); } vec3 calculateImageSpecular( vec3 vNormal, vec3 vViewPosition ){ vec3 worldCameraPosition = vec3(0.0, 0.0, 0.0); vec3 worldNormal = normalize(vNormal); vec3 lightDirection = normalize( vViewPosition - worldCameraPosition ); vec3 R = reflect(lightDirection, worldNormal) * uCameraRotation; vec2 newTexCoor = mapTextureToNormal( R ); #ifdef WEBGL2 vec4 outColor = textureLod(environmentMapSpecular, newTexCoor, levelOfDetail); #else vec4 outColor = TEXTURE(environmentMapSpecular, newTexCoor); #endif // this is to make the darker sections more dark // png and jpg usually flatten the brightness so it is to reverse that return mix( pow(outColor.xyz, vec3(10)), pow(outColor.xyz, vec3(1.2)), metallic ); } void totalLight( vec3 modelPosition, vec3 normal, out vec3 totalDiffuse, out vec3 totalSpecular ) { totalSpecular = vec3(0.0); if (!uUseLighting) { totalDiffuse = vec3(1.0); return; } totalDiffuse = vec3(0.0); vec3 viewDirection = normalize(-modelPosition); for (int j = 0; j < 5; j++) { if (j < uDirectionalLightCount) { vec3 lightVector = (uViewMatrix * vec4(uLightingDirection[j], 0.0)).xyz; vec3 lightColor = uDirectionalDiffuseColors[j]; vec3 specularColor = uDirectionalSpecularColors[j]; LightResult result = _light(viewDirection, normal, lightVector); totalDiffuse += result.diffuse * lightColor; totalSpecular += result.specular * lightColor * specularColor; } if (j < uPointLightCount) { vec3 lightPosition = (uViewMatrix * vec4(uPointLightLocation[j], 1.0)).xyz; vec3 lightVector = modelPosition - lightPosition; //calculate attenuation float lightDistance = length(lightVector); float lightFalloff = 1.0 / (uConstantAttenuation + lightDistance * uLinearAttenuation + (lightDistance * lightDistance) * uQuadraticAttenuation); vec3 lightColor = lightFalloff * uPointLightDiffuseColors[j]; vec3 specularColor = lightFalloff * uPointLightSpecularColors[j]; LightResult result = _light(viewDirection, normal, lightVector); totalDiffuse += result.diffuse * lightColor; totalSpecular += result.specular * lightColor * specularColor; } if(j < uSpotLightCount) { vec3 lightPosition = (uViewMatrix * vec4(uSpotLightLocation[j], 1.0)).xyz; vec3 lightVector = modelPosition - lightPosition; float lightDistance = length(lightVector); float lightFalloff = 1.0 / (uConstantAttenuation + lightDistance * uLinearAttenuation + (lightDistance * lightDistance) * uQuadraticAttenuation); vec3 lightDirection = (uViewMatrix * vec4(uSpotLightDirection[j], 0.0)).xyz; float spotDot = dot(normalize(lightVector), normalize(lightDirection)); float spotFalloff; if(spotDot < uSpotLightAngle[j]) { spotFalloff = 0.0; } else { spotFalloff = pow(spotDot, uSpotLightConc[j]); } lightFalloff *= spotFalloff; vec3 lightColor = uSpotLightDiffuseColors[j]; vec3 specularColor = uSpotLightSpecularColors[j]; LightResult result = _light(viewDirection, normal, lightVector); totalDiffuse += result.diffuse * lightColor * lightFalloff; totalSpecular += result.specular * lightColor * specularColor * lightFalloff; } } if( uUseImageLight ){ totalDiffuse += calculateImageDiffuse(normal, modelPosition); totalSpecular += calculateImageSpecular(normal, modelPosition); } totalDiffuse *= diffuseFactor; totalSpecular *= specularFactor; } `),N={sphereMappingFrag:`#define PI 3.141592 precision highp float; uniform sampler2D uSampler; uniform mat3 uNewNormalMatrix; uniform float uFovY; uniform float uAspect; varying vec2 vTexCoord; void main() { float uFovX = uFovY * uAspect; vec4 newTexColor = texture2D(uSampler, vTexCoord); float angleY = mix(uFovY/2.0, -uFovY/2.0, vTexCoord.y); float angleX = mix(uFovX/2.0, -uFovX/2.0, vTexCoord.x); vec3 rotatedNormal = vec3( angleX, angleY, 1.0 ); rotatedNormal = uNewNormalMatrix * normalize(rotatedNormal); vec2 suv; suv.y = 0.5 + 0.5 * (-rotatedNormal.y); suv.x = atan(rotatedNormal.z, rotatedNormal.x) / (2.0 * PI) + 0.5; newTexColor = texture2D(uSampler, suv.xy); gl_FragColor = newTexColor; } `,immediateVert:`IN vec3 aPosition; IN vec4 aVertexColor; uniform mat4 uModelViewMatrix; uniform mat4 uProjectionMatrix; uniform float uResolution; uniform float uPointSize; OUT vec4 vColor; void main(void) { vec4 positionVec4 = vec4(aPosition, 1.0); gl_Position = uProjectionMatrix * uModelViewMatrix * positionVec4; vColor = aVertexColor; gl_PointSize = uPointSize; } `,vertexColorVert:`IN vec3 aPosition; IN vec4 aVertexColor; uniform mat4 uModelViewMatrix; uniform mat4 uProjectionMatrix; OUT vec4 vColor; void main(void) { vec4 positionVec4 = vec4(aPosition, 1.0); gl_Position = uProjectionMatrix * uModelViewMatrix * positionVec4; vColor = aVertexColor; } `,vertexColorFrag:`IN vec4 vColor; void main(void) { OUT_COLOR = vec4(vColor.rgb, 1.) * vColor.a; } `,normalVert:`IN vec3 aPosition; IN vec3 aNormal; IN vec2 aTexCoord; IN vec4 aVertexColor; uniform mat4 uModelViewMatrix; uniform mat4 uProjectionMatrix; uniform mat3 uNormalMatrix; uniform vec4 uMaterialColor; uniform bool uUseVertexColor; OUT vec3 vVertexNormal; OUT highp vec2 vVertTexCoord; OUT vec4 vColor; void main(void) { vec4 positionVec4 = vec4(aPosition, 1.0); gl_Position = uProjectionMatrix * uModelViewMatrix * positionVec4; vVertexNormal = normalize(vec3( uNormalMatrix * aNormal )); vVertTexCoord = aTexCoord; vColor = (uUseVertexColor ? aVertexColor : uMaterialColor); } `,normalFrag:`IN vec3 vVertexNormal; void main(void) { OUT_COLOR = vec4(vVertexNormal, 1.0); } `,basicFrag:`IN vec4 vColor; void main(void) { OUT_COLOR = vec4(vColor.rgb, 1.) * vColor.a; } `,lightVert:P+`// include lighting.glgl IN vec3 aPosition; IN vec3 aNormal; IN vec2 aTexCoord; IN vec4 aVertexColor; uniform mat4 uModelViewMatrix; uniform mat4 uProjectionMatrix; uniform mat3 uNormalMatrix; uniform bool uUseVertexColor; uniform vec4 uMaterialColor; OUT highp vec2 vVertTexCoord; OUT vec3 vDiffuseColor; OUT vec3 vSpecularColor; OUT vec4 vColor; void main(void) { vec4 viewModelPosition = uModelViewMatrix * vec4(aPosition, 1.0); gl_Position = uProjectionMatrix * viewModelPosition; vec3 vertexNormal = normalize(uNormalMatrix * aNormal); vVertTexCoord = aTexCoord; totalLight(viewModelPosition.xyz, vertexNormal, vDiffuseColor, vSpecularColor); for (int i = 0; i < 8; i++) { if (i < uAmbientLightCount) { vDiffuseColor += uAmbientColor[i]; } } vColor = (uUseVertexColor ? aVertexColor : uMaterialColor); } `,lightTextureFrag:`uniform vec4 uTint; uniform sampler2D uSampler; uniform bool isTexture; uniform bool uEmissive; IN highp vec2 vVertTexCoord; IN vec3 vDiffuseColor; IN vec3 vSpecularColor; IN vec4 vColor; void main(void) { if(uEmissive && !isTexture) { OUT_COLOR = vColor; } else { vec4 baseColor = isTexture // Textures come in with premultiplied alpha. To apply tint and still have // premultiplied alpha output, we need to multiply the RGB channels by the // tint RGB, and all channels by the tint alpha. ? TEXTURE(uSampler, vVertTexCoord) * vec4(uTint.rgb/255., 1.) * (uTint.a/255.) // Colors come in with unmultiplied alpha, so we need to multiply the RGB // channels by alpha to convert it to premultiplied alpha. : vec4(vColor.rgb * vColor.a, vColor.a); OUT_COLOR = vec4(baseColor.rgb * vDiffuseColor + vSpecularColor, baseColor.a); } } `,phongVert:`precision highp int; IN vec3 aPosition; IN vec3 aNormal; IN vec2 aTexCoord; IN vec4 aVertexColor; uniform vec3 uAmbientColor[5]; uniform mat4 uModelViewMatrix; uniform mat4 uProjectionMatrix; uniform mat3 uNormalMatrix; uniform int uAmbientLightCount; uniform bool uUseVertexColor; uniform vec4 uMaterialColor; OUT vec3 vNormal; OUT vec2 vTexCoord; OUT vec3 vViewPosition; OUT vec3 vAmbientColor; OUT vec4 vColor; void main(void) { vec4 viewModelPosition = uModelViewMatrix * vec4(aPosition, 1.0); // Pass varyings to fragment shader vViewPosition = viewModelPosition.xyz; gl_Position = uProjectionMatrix * viewModelPosition; vNormal = uNormalMatrix * aNormal; vTexCoord = aTexCoord; // TODO: this should be a uniform vAmbientColor = vec3(0.0); for (int i = 0; i < 5; i++) { if (i < uAmbientLightCount) { vAmbientColor += uAmbientColor[i]; } } vColor = (uUseVertexColor ? aVertexColor : uMaterialColor); } `,phongFrag:P+`// include lighting.glsl precision highp int; uniform bool uHasSetAmbient; uniform vec4 uSpecularMatColor; uniform vec4 uAmbientMatColor; uniform vec4 uEmissiveMatColor; uniform vec4 uTint; uniform sampler2D uSampler; uniform bool isTexture; IN vec3 vNormal; IN vec2 vTexCoord; IN vec3 vViewPosition; IN vec3 vAmbientColor; IN vec4 vColor; void main(void) { vec3 diffuse; vec3 specular; totalLight(vViewPosition, normalize(vNormal), diffuse, specular); // Calculating final color as result of all lights (plus emissive term). vec4 baseColor = isTexture // Textures come in with premultiplied alpha. To apply tint and still have // premultiplied alpha output, we need to multiply the RGB channels by the // tint RGB, and all channels by the tint alpha. ? TEXTURE(uSampler, vTexCoord) * vec4(uTint.rgb/255., 1.) * (uTint.a/255.) // Colors come in with unmultiplied alpha, so we need to multiply the RGB // channels by alpha to convert it to premultiplied alpha. : vec4(vColor.rgb * vColor.a, vColor.a); OUT_COLOR = vec4(diffuse * baseColor.rgb + vAmbientColor * ( uHasSetAmbient ? uAmbientMatColor.rgb : baseColor.rgb ) + specular * uSpecularMatColor.rgb + uEmissiveMatColor.rgb, baseColor.a); } `,fontVert:`IN vec3 aPosition; IN vec2 aTexCoord; uniform mat4 uModelViewMatrix; uniform mat4 uProjectionMatrix; uniform vec4 uGlyphRect; uniform float uGlyphOffset; OUT vec2 vTexCoord; OUT float w; void main() { vec4 positionVec4 = vec4(aPosition, 1.0); // scale by the size of the glyph's rectangle positionVec4.xy *= uGlyphRect.zw - uGlyphRect.xy; // Expand glyph bounding boxes by 1px on each side to give a bit of room // for antialiasing vec3 newOrigin = (uModelViewMatrix * vec4(0., 0., 0., 1.)).xyz; vec3 newDX = (uModelViewMatrix * vec4(1., 0., 0., 1.)).xyz; vec3 newDY = (uModelViewMatrix * vec4(0., 1., 0., 1.)).xyz; vec2 pixelScale = vec2( 1. / length(newOrigin - newDX), 1. / length(newOrigin - newDY) ); vec2 offset = pixelScale * normalize(aTexCoord - vec2(0.5, 0.5)) * vec2(1., -1.); vec2 textureOffset = offset * (1. / vec2( uGlyphRect.z - uGlyphRect.x, uGlyphRect.w - uGlyphRect.y )); // move to the corner of the glyph positionVec4.xy += uGlyphRect.xy; // move to the letter's line offset positionVec4.x += uGlyphOffset; positionVec4.xy += offset; gl_Position = uProjectionMatrix * uModelViewMatrix * positionVec4; vTexCoord = aTexCoord + textureOffset; w = gl_Position.w; } `,fontFrag:`#ifndef WEBGL2 #extension GL_OES_standard_derivatives : enable #endif #if 0 // simulate integer math using floats #define int float #define ivec2 vec2 #define INT(x) float(x) int ifloor(float v) { return floor(v); } ivec2 ifloor(vec2 v) { return floor(v); } #else // use native integer math precision highp int; #define INT(x) x int ifloor(float v) { return int(v); } int ifloor(int v) { return v; } ivec2 ifloor(vec2 v) { return ivec2(v); } #endif uniform sampler2D uSamplerStrokes; uniform sampler2D uSamplerRowStrokes; uniform sampler2D uSamplerRows; uniform sampler2D uSamplerColStrokes; uniform sampler2D uSamplerCols; uniform ivec2 uStrokeImageSize; uniform ivec2 uCellsImageSize; uniform ivec2 uGridImageSize; uniform ivec2 uGridOffset; uniform ivec2 uGridSize; uniform vec4 uMaterialColor; IN vec2 vTexCoord; // some helper functions int ROUND(float v) { return ifloor(v + 0.5); } ivec2 ROUND(vec2 v) { return ifloor(v + 0.5); } float saturate(float v) { return clamp(v, 0.0, 1.0); } vec2 saturate(vec2 v) { return clamp(v, 0.0, 1.0); } int mul(float v1, int v2) { return ifloor(v1 * float(v2)); } ivec2 mul(vec2 v1, ivec2 v2) { return ifloor(v1 * vec2(v2) + 0.5); } // unpack a 16-bit integer from a float vec2 int getInt16(vec2 v) { ivec2 iv = ROUND(v * 255.0); return iv.x * INT(128) + iv.y; } vec2 pixelScale; vec2 coverage = vec2(0.0); vec2 weight = vec2(0.5); const float minDistance = 1.0/8192.0; const float hardness = 1.05; // amount of antialias // the maximum number of curves in a glyph const int N = INT(250); // retrieves an indexed pixel from a sampler vec4 getTexel(sampler2D sampler, int pos, ivec2 size) { int width = size.x; int y = ifloor(pos / width); int x = pos - y * width; // pos % width return TEXTURE(sampler, (vec2(x, y) + 0.5) / vec2(size)); } void calulateCrossings(vec2 p0, vec2 p1, vec2 p2, out vec2 C1, out vec2 C2) { // get the coefficients of the quadratic in t vec2 a = p0 - p1 * 2.0 + p2; vec2 b = p0 - p1; vec2 c = p0 - vTexCoord; // found out which values of 't' it crosses the axes vec2 surd = sqrt(max(vec2(0.0), b * b - a * c)); vec2 t1 = ((b - surd) / a).yx; vec2 t2 = ((b + surd) / a).yx; // approximate straight lines to avoid rounding errors if (abs(a.y) < 0.001) t1.x = t2.x = c.y / (2.0 * b.y); if (abs(a.x) < 0.001) t1.y = t2.y = c.x / (2.0 * b.x); // plug into quadratic formula to find the corrdinates of the crossings C1 = ((a * t1 - b * 2.0) * t1 + c) * pixelScale; C2 = ((a * t2 - b * 2.0) * t2 + c) * pixelScale; } void coverageX(vec2 p0, vec2 p1, vec2 p2) { vec2 C1, C2; calulateCrossings(p0, p1, p2, C1, C2); // determine on which side of the x-axis the points lie bool y0 = p0.y > vTexCoord.y; bool y1 = p1.y > vTexCoord.y; bool y2 = p2.y > vTexCoord.y; // could web be under the curve (after t1)? if (y1 ? !y2 : y0) { // add the coverage for t1 coverage.x += saturate(C1.x + 0.5); // calculate the anti-aliasing for t1 weight.x = min(weight.x, abs(C1.x)); } // are we outside the curve (after t2)? if (y1 ? !y0 : y2) { // subtract the coverage for t2 coverage.x -= saturate(C2.x + 0.5); // calculate the anti-aliasing for t2 weight.x = min(weight.x, abs(C2.x)); } } // this is essentially the same as coverageX, but with the axes swapped void coverageY(vec2 p0, vec2 p1, vec2 p2) { vec2 C1, C2; calulateCrossings(p0, p1, p2, C1, C2); bool x0 = p0.x > vTexCoord.x; bool x1 = p1.x > vTexCoord.x; bool x2 = p2.x > vTexCoord.x; if (x1 ? !x2 : x0) { coverage.y -= saturate(C1.y + 0.5); weight.y = min(weight.y, abs(C1.y)); } if (x1 ? !x0 : x2) { coverage.y += saturate(C2.y + 0.5); weight.y = min(weight.y, abs(C2.y)); } } void main() { // calculate the pixel scale based on screen-coordinates pixelScale = hardness / fwidth(vTexCoord); // which grid cell is this pixel in? ivec2 gridCoord = ifloor(vTexCoord * vec2(uGridSize)); // intersect curves in this row { // the index into the row info bitmap int rowIndex = gridCoord.y + uGridOffset.y; // fetch the info texel vec4 rowInfo = getTexel(uSamplerRows, rowIndex, uGridImageSize); // unpack the rowInfo int rowStrokeIndex = getInt16(rowInfo.xy); int rowStrokeCount = getInt16(rowInfo.zw); for (int iRowStroke = INT(0); iRowStroke < N; iRowStroke++) { if (iRowStroke >= rowStrokeCount) break; // each stroke is made up of 3 points: the start and control point // and the start of the next curve. // fetch the indices of this pair of strokes: vec4 strokeIndices = getTexel(uSamplerRowStrokes, rowStrokeIndex++, uCellsImageSize); // unpack the stroke index int strokePos = getInt16(strokeIndices.xy); // fetch the two strokes vec4 stroke0 = getTexel(uSamplerStrokes, strokePos + INT(0), uStrokeImageSize); vec4 stroke1 = getTexel(uSamplerStrokes, strokePos + INT(1), uStrokeImageSize); // calculate the coverage coverageX(stroke0.xy, stroke0.zw, stroke1.xy); } } // intersect curves in this column { int colIndex = gridCoord.x + uGridOffset.x; vec4 colInfo = getTexel(uSamplerCols, colIndex, uGridImageSize); int colStrokeIndex = getInt16(colInfo.xy); int colStrokeCount = getInt16(colInfo.zw); for (int iColStroke = INT(0); iColStroke < N; iColStroke++) { if (iColStroke >= colStrokeCount) break; vec4 strokeIndices = getTexel(uSamplerColStrokes, colStrokeIndex++, uCellsImageSize); int strokePos = getInt16(strokeIndices.xy); vec4 stroke0 = getTexel(uSamplerStrokes, strokePos + INT(0), uStrokeImageSize); vec4 stroke1 = getTexel(uSamplerStrokes, strokePos + INT(1), uStrokeImageSize); coverageY(stroke0.xy, stroke0.zw, stroke1.xy); } } weight = saturate(1.0 - weight * 2.0); float distance = max(weight.x + weight.y, minDistance); // manhattan approx. float antialias = abs(dot(coverage, weight) / distance); float cover = min(abs(coverage.x), abs(coverage.y)); OUT_COLOR = vec4(uMaterialColor.rgb, 1.) * uMaterialColor.a; OUT_COLOR *= saturate(max(antialias, cover)); } `,lineVert:O+`/* Part of the Processing project - http://processing.org Copyright (c) 2012-15 The Processing Foundation Copyright (c) 2004-12 Ben Fry and Casey Reas Copyright (c) 2001-04 Massachusetts Institute of Technology This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, version 2.1. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #define PROCESSING_LINE_SHADER precision mediump int; uniform mat4 uModelViewMatrix; uniform mat4 uProjectionMatrix; uniform float uStrokeWeight; uniform bool uUseLineColor; uniform vec4 uMaterialColor; uniform vec4 uViewport; uniform int uPerspective; uniform int uStrokeJoin; IN vec4 aPosition; IN vec3 aTangentIn; IN vec3 aTangentOut; IN float aSide; IN vec4 aVertexColor; OUT vec4 vColor; OUT vec2 vTangent; OUT vec2 vCenter; OUT vec2 vPosition; OUT float vMaxDist; OUT float vCap; OUT float vJoin; vec2 lineIntersection(vec2 aPoint, vec2 aDir, vec2 bPoint, vec2 bDir) { // Rotate and translate so a starts at the origin and goes out to the right bPoint -= aPoint; vec2 rotatedBFrom = vec2( bPoint.x*aDir.x + bPoint.y*aDir.y, bPoint.y*aDir.x - bPoint.x*aDir.y ); vec2 bTo = bPoint + bDir; vec2 rotatedBTo = vec2( bTo.x*aDir.x + bTo.y*aDir.y, bTo.y*aDir.x - bTo.x*aDir.y ); float intersectionDistance = rotatedBTo.x + (rotatedBFrom.x - rotatedBTo.x) * rotatedBTo.y / (rotatedBTo.y - rotatedBFrom.y); return aPoint + aDir * intersectionDistance; } void main() { // Caps have one of either the in or out tangent set to 0 vCap = (aTangentIn == vec3(0.)) != (aTangentOut == (vec3(0.))) ? 1. : 0.; // Joins have two unique, defined tangents vJoin = ( aTangentIn != vec3(0.) && aTangentOut != vec3(0.) && aTangentIn != aTangentOut ) ? 1. : 0.; vec4 posp = uModelViewMatrix * aPosition; vec4 posqIn = uModelViewMatrix * (aPosition + vec4(aTangentIn, 0)); vec4 posqOut = uModelViewMatrix * (aPosition + vec4(aTangentOut, 0)); float facingCamera = pow( // The word space tangent's z value is 0 if it's facing the camera abs(normalize(posqIn-posp).z), // Using pow() here to ramp \`facingCamera\` up from 0 to 1 really quickly // so most lines get scaled and don't get clipped 0.25 ); // using a scale <1 moves the lines towards the camera // in order to prevent popping effects due to half of // the line disappearing behind the geometry faces. float scale = mix(1., 0.995, facingCamera); // Moving vertices slightly toward the camera // to avoid depth-fighting with the fill triangles. // Discussed here: // http://www.opengl.org/discussion_boards/ubbthreads.php?ubb=showflat&Number=252848 posp.xyz = posp.xyz * scale; posqIn.xyz = posqIn.xyz * scale; posqOut.xyz = posqOut.xyz * scale; vec4 p = uProjectionMatrix * posp; vec4 qIn = uProjectionMatrix * posqIn; vec4 qOut = uProjectionMatrix * posqOut; vCenter = p.xy; // formula to convert from clip space (range -1..1) to screen space (range 0..[width or height]) // screen_p = (p.xy/p.w + <1,1>) * 0.5 * uViewport.zw // prevent division by W by transforming the tangent formula (div by 0 causes // the line to disappear, see https://github.com/processing/processing/issues/5183) // t = screen_q - screen_p // // tangent is normalized and we don't care which aDirection it points to (+-) // t = +- normalize( screen_q - screen_p ) // t = +- normalize( (q.xy/q.w+<1,1>)*0.5*uViewport.zw - (p.xy/p.w+<1,1>)*0.5*uViewport.zw ) // // extract common factor, <1,1> - <1,1> cancels out // t = +- normalize( (q.xy/q.w - p.xy/p.w) * 0.5 * uViewport.zw ) // // convert to common divisor // t = +- normalize( ((q.xy*p.w - p.xy*q.w) / (p.w*q.w)) * 0.5 * uViewport.zw ) // // remove the common scalar divisor/factor, not needed due to normalize and +- // (keep uViewport - can't remove because it has different components for x and y // and corrects for aspect ratio, see https://github.com/processing/processing/issues/5181) // t = +- normalize( (q.xy*p.w - p.xy*q.w) * uViewport.zw ) vec2 tangentIn = normalize((qIn.xy*p.w - p.xy*qIn.w) * uViewport.zw); vec2 tangentOut = normalize((qOut.xy*p.w - p.xy*qOut.w) * uViewport.zw); vec2 curPerspScale; if(uPerspective == 1) { // Perspective --- // convert from world to clip by multiplying with projection scaling factor // to get the right thickness (see https://github.com/processing/processing/issues/5182) // The y value of the projection matrix may be flipped if rendering to a Framebuffer. // Multiplying again by its sign here negates the flip to get just the scale. curPerspScale = (uProjectionMatrix * vec4(1, sign(uProjectionMatrix[1][1]), 0, 0)).xy; } else { // No Perspective --- // multiply by W (to cancel out division by W later in the pipeline) and // convert from screen to clip (derived from clip to screen above) curPerspScale = p.w / (0.5 * uViewport.zw); } vec2 offset; if (vJoin == 1.) { vTangent = normalize(tangentIn + tangentOut); vec2 normalIn = vec2(-tangentIn.y, tangentIn.x); vec2 normalOut = vec2(-tangentOut.y, tangentOut.x); float side = sign(aSide); float sideEnum = abs(aSide); // We generate vertices for joins on either side of the centerline, but // the "elbow" side is the only one needing a join. By not setting the // offset for the other side, all its vertices will end up in the same // spot and not render, effectively discarding it. if (sign(dot(tangentOut, vec2(-tangentIn.y, tangentIn.x))) != side) { // Side enums: // 1: the side going into the join // 2: the middle of the join // 3: the side going out of the join if (sideEnum == 2.) { // Calculate the position + tangent on either side of the join, and // find where the lines intersect to find the elbow of the join vec2 c = (posp.xy/posp.w + vec2(1.,1.)) * 0.5 * uViewport.zw; vec2 intersection = lineIntersection( c + (side * normalIn * uStrokeWeight / 2.), tangentIn, c + (side * normalOut * uStrokeWeight / 2.), tangentOut ); offset = (intersection - c); // When lines are thick and the angle of the join approaches 180, the // elbow might be really far from the center. We'll apply a limit to // the magnitude to avoid lines going across the whole screen when this // happens. float mag = length(offset); float maxMag = 3. * uStrokeWeight; if (mag > maxMag) { offset *= maxMag / mag; } } else if (sideEnum == 1.) { offset = side * normalIn * uStrokeWeight / 2.; } else if (sideEnum == 3.) { offset = side * normalOut * uStrokeWeight / 2.; } } if (uStrokeJoin == STROKE_JOIN_BEVEL) { vec2 avgNormal = vec2(-vTangent.y, vTangent.x); vMaxDist = abs(dot(avgNormal, normalIn * uStrokeWeight / 2.)); } else { vMaxDist = uStrokeWeight / 2.; } } else { vec2 tangent = aTangentIn == vec3(0.) ? tangentOut : tangentIn; vTangent = tangent; vec2 normal = vec2(-tangent.y, tangent.x); float normalOffset = sign(aSide); // Caps will have side values of -2 or 2 on the edge of the cap that // extends out from the line float tangentOffset = abs(aSide) - 1.; offset = (normal * normalOffset + tangent * tangentOffset) * uStrokeWeight * 0.5; vMaxDist = uStrokeWeight / 2.; } vPosition = vCenter + offset; gl_Position.xy = p.xy + offset.xy * curPerspScale; gl_Position.zw = p.zw; vColor = (uUseLineColor ? aVertexColor : uMaterialColor); } `,lineFrag:O+`precision mediump int; uniform vec4 uMaterialColor; uniform int uStrokeCap; uniform int uStrokeJoin; uniform float uStrokeWeight; IN vec4 vColor; IN vec2 vTangent; IN vec2 vCenter; IN vec2 vPosition; IN float vMaxDist; IN float vCap; IN float vJoin; float distSquared(vec2 a, vec2 b) { vec2 aToB = b - a; return dot(aToB, aToB); } void main() { if (vCap > 0.) { if ( uStrokeCap == STROKE_CAP_ROUND && distSquared(vPosition, vCenter) > uStrokeWeight * uStrokeWeight * 0.25 ) { discard; } else if ( uStrokeCap == STROKE_CAP_SQUARE && dot(vPosition - vCenter, vTangent) > 0. ) { discard; } // Use full area for PROJECT } else if (vJoin > 0.) { if ( uStrokeJoin == STROKE_JOIN_ROUND && distSquared(vPosition, vCenter) > uStrokeWeight * uStrokeWeight * 0.25 ) { discard; } else if (uStrokeJoin == STROKE_JOIN_BEVEL) { vec2 normal = vec2(-vTangent.y, vTangent.x); if (abs(dot(vPosition - vCenter, normal)) > vMaxDist) { discard; } } // Use full area for MITER } OUT_COLOR = vec4(vColor.rgb, 1.) * vColor.a; } `,pointVert:`IN vec3 aPosition; uniform float uPointSize; OUT float vStrokeWeight; uniform mat4 uModelViewMatrix; uniform mat4 uProjectionMatrix; void main() { vec4 positionVec4 = vec4(aPosition, 1.0); gl_Position = uProjectionMatrix * uModelViewMatrix * positionVec4; gl_PointSize = uPointSize; vStrokeWeight = uPointSize; } `,pointFrag:`precision mediump int; uniform vec4 uMaterialColor; IN float vStrokeWeight; void main(){ float mask = 0.0; // make a circular mask using the gl_PointCoord (goes from 0 - 1 on a point) // might be able to get a nicer edge on big strokeweights with smoothstep but slightly less performant mask = step(0.98, length(gl_PointCoord * 2.0 - 1.0)); // if strokeWeight is 1 or less lets just draw a square // this prevents weird artifacting from carving circles when our points are really small // if strokeWeight is larger than 1, we just use it as is mask = mix(0.0, mask, clamp(floor(vStrokeWeight - 0.5),0.0,1.0)); // throw away the borders of the mask // otherwise we get weird alpha blending issues if(mask > 0.98){ discard; } OUT_COLOR = vec4(uMaterialColor.rgb, 1.) * uMaterialColor.a; } `,imageLightVert:`precision highp float; attribute vec3 aPosition; attribute vec3 aNormal; attribute vec2 aTexCoord; varying vec3 localPos; varying vec3 vWorldNormal; varying vec3 vWorldPosition; varying vec2 vTexCoord; uniform mat4 uModelViewMatrix; uniform mat4 uProjectionMatrix; uniform mat3 uNormalMatrix; void main() { // Multiply the position by the matrix. vec4 viewModelPosition = uModelViewMatrix * vec4(aPosition, 1.0); gl_Position = uProjectionMatrix * viewModelPosition; // orient the normals and pass to the fragment shader vWorldNormal = uNormalMatrix * aNormal; // send the view position to the fragment shader vWorldPosition = (uModelViewMatrix * vec4(aPosition, 1.0)).xyz; localPos = vWorldPosition; vTexCoord = aTexCoord; } /* in the vertex shader we'll compute the world position and world oriented normal of the vertices and pass those to the fragment shader as varyings. */ `,imageLightDiffusedFrag:`precision highp float; varying vec3 localPos; // the HDR cubemap converted (can be from an equirectangular environment map.) uniform sampler2D environmentMap; varying vec2 vTexCoord; const float PI = 3.14159265359; vec2 nTOE( vec3 v ){ // x = r sin(phi) cos(theta) // y = r cos(phi) // z = r sin(phi) sin(theta) float phi = acos( v.y ); // if phi is 0, then there are no x, z components float theta = 0.0; // else theta = acos(v.x / sin(phi)); float sinTheta = v.z / sin(phi); if (sinTheta < 0.0) { // Turn it into -theta, but in the 0-2PI range theta = 2.0 * PI - theta; } theta = theta / (2.0 * 3.14159); phi = phi / 3.14159 ; vec2 angles = vec2( phi, theta ); return angles; } float random(vec2 p) { vec3 p3 = fract(vec3(p.xyx) * .1031); p3 += dot(p3, p3.yzx + 33.33); return fract((p3.x + p3.y) * p3.z); } void main() { // the sample direction equals the hemisphere's orientation float phi = vTexCoord.x * 2.0 * PI; float theta = vTexCoord.y * PI; float x = sin(theta) * cos(phi); float y = sin(theta) * sin(phi); float z = cos(theta); vec3 normal = vec3( x, y, z); // Discretely sampling the hemisphere given the integral's // spherical coordinates translates to the following fragment code: vec3 irradiance = vec3(0.0); vec3 up = vec3(0.0, 1.0, 0.0); vec3 right = normalize(cross(up, normal)); up = normalize(cross(normal, right)); // We specify a fixed sampleDelta delta value to traverse // the hemisphere; decreasing or increasing the sample delta // will increase or decrease the accuracy respectively. const float sampleDelta = 0.100; float nrSamples = 0.0; float randomOffset = random(gl_FragCoord.xy) * sampleDelta; for(float rawPhi = 0.0; rawPhi < 2.0 * PI; rawPhi += sampleDelta) { float phi = rawPhi + randomOffset; for(float rawTheta = 0.0; rawTheta < ( 0.5 ) * PI; rawTheta += sampleDelta) { float theta = rawTheta + randomOffset; // spherical to cartesian (in tangent space) // tangent space to world // add each sample result to irradiance float x = sin(theta) * cos(phi); float y = sin(theta) * sin(phi); float z = cos(theta); vec3 tangentSample = vec3( x, y, z); vec3 sampleVec = tangentSample.x * right + tangentSample.y * up + tangentSample.z * normal; irradiance += (texture2D(environmentMap, nTOE(sampleVec)).xyz) * cos(theta) * sin(theta); nrSamples++; } } // divide by the total number of samples taken, giving us the average sampled irradiance. irradiance = PI * irradiance * (1.0 / float(nrSamples )) ; gl_FragColor = vec4(irradiance, 1.0); }`,imageLightSpecularFrag:`precision highp float;\r varying vec3 localPos;\r varying vec2 vTexCoord;\r \r // our texture\r uniform sampler2D environmentMap;\r uniform float roughness;\r \r const float PI = 3.14159265359;\r \r float VanDerCorput(int bits);\r vec2 HammersleyNoBitOps(int i, int N);\r vec3 ImportanceSampleGGX(vec2 Xi, vec3 N, float roughness);\r \r \r vec2 nTOE( vec3 v ){\r // x = r sin(phi) cos(theta) \r // y = r cos(phi) \r // z = r sin(phi) sin(theta)\r float phi = acos( v.y );\r // if phi is 0, then there are no x, z components\r float theta = 0.0;\r // else \r theta = acos(v.x / sin(phi));\r float sinTheta = v.z / sin(phi);\r if (sinTheta < 0.0) {\r // Turn it into -theta, but in the 0-2PI range\r theta = 2.0 * PI - theta;\r }\r theta = theta / (2.0 * 3.14159);\r phi = phi / 3.14159 ;\r \r vec2 angles = vec2( phi, theta );\r return angles;\r }\r \r \r void main(){\r const int SAMPLE_COUNT = 400; // 4096\r int lowRoughnessLimit = int(pow(2.0,(roughness+0.1)*20.0));\r float totalWeight = 0.0;\r vec3 prefilteredColor = vec3(0.0);\r float phi = vTexCoord.x * 2.0 * PI;\r float theta = vTexCoord.y * PI;\r float x = sin(theta) * cos(phi);\r float y = sin(theta) * sin(phi);\r float z = cos(theta);\r vec3 N = vec3(x,y,z);\r vec3 V = N;\r for (int i = 0; i < SAMPLE_COUNT; ++i)\r {\r // break at smaller sample numbers for low roughness levels\r if(i == lowRoughnessLimit)\r {\r break;\r }\r vec2 Xi = HammersleyNoBitOps(i, SAMPLE_COUNT);\r vec3 H = ImportanceSampleGGX(Xi, N, roughness);\r vec3 L = normalize(2.0 * dot(V, H) * H - V);\r \r float NdotL = max(dot(N, L), 0.0);\r if (NdotL > 0.0)\r {\r prefilteredColor += texture2D(environmentMap, nTOE(L)).xyz * NdotL;\r totalWeight += NdotL;\r }\r }\r prefilteredColor = prefilteredColor / totalWeight;\r \r gl_FragColor = vec4(prefilteredColor, 1.0);\r }\r \r vec3 ImportanceSampleGGX(vec2 Xi, vec3 N, float roughness){\r float a = roughness * roughness;\r \r float phi = 2.0 * PI * Xi.x;\r float cosTheta = sqrt((1.0 - Xi.y) / (1.0 + (a * a - 1.0) * Xi.y));\r float sinTheta = sqrt(1.0 - cosTheta * cosTheta);\r // from spherical coordinates to cartesian coordinates\r vec3 H;\r H.x = cos(phi) * sinTheta;\r H.y = sin(phi) * sinTheta;\r H.z = cosTheta;\r \r // from tangent-space vector to world-space sample vector\r vec3 up = abs(N.z) < 0.999 ? vec3(0.0, 0.0, 1.0) : vec3(1.0, 0.0, 0.0);\r vec3 tangent = normalize(cross(up, N));\r vec3 bitangent = cross(N, tangent);\r \r vec3 sampleVec = tangent * H.x + bitangent * H.y + N * H.z;\r return normalize(sampleVec);\r }\r \r \r float VanDerCorput(int n, int base)\r {\r #ifdef WEBGL2\r \r uint bits = uint(n);\r bits = (bits << 16u) | (bits >> 16u);\r bits = ((bits & 0x55555555u) << 1u) | ((bits & 0xAAAAAAAAu) >> 1u);\r bits = ((bits & 0x33333333u) << 2u) | ((bits & 0xCCCCCCCCu) >> 2u);\r bits = ((bits & 0x0F0F0F0Fu) << 4u) | ((bits & 0xF0F0F0F0u) >> 4u);\r bits = ((bits & 0x00FF00FFu) << 8u) | ((bits & 0xFF00FF00u) >> 8u);\r return float(bits) * 2.3283064365386963e-10; // / 0x100000000\r \r #else\r \r float invBase = 1.0 / float(base);\r float denom = 1.0;\r float result = 0.0;\r \r \r for (int i = 0; i < 32; ++i)\r {\r if (n > 0)\r {\r denom = mod(float(n), 2.0);\r result += denom * invBase;\r invBase = invBase / 2.0;\r n = int(float(n) / 2.0);\r }\r }\r \r \r return result;\r \r #endif\r }\r \r vec2 HammersleyNoBitOps(int i, int N)\r {\r return vec2(float(i) / float(N), VanDerCorput(i, 2));\r }\r `},F=N.sphereMappingFrag;for(C in N)N[C]=`#ifdef WEBGL2 #define IN in #define OUT out #ifdef FRAGMENT_SHADER out vec4 outColor; #define OUT_COLOR outColor #endif #define TEXTURE texture #else #ifdef FRAGMENT_SHADER #define IN varying #else #define IN attribute #endif #define OUT varying #define TEXTURE texture2D #ifdef FRAGMENT_SHADER #define OUT_COLOR gl_FragColor #endif #endif `+N[C];A(P={},c.GRAY,`precision highp float; varying vec2 vTexCoord; uniform sampler2D tex0; float luma(vec3 color) { // weighted grayscale with luminance values return dot(color, vec3(0.2126, 0.7152, 0.0722)); } void main() { vec4 tex = texture2D(tex0, vTexCoord); float gray = luma(tex.rgb); gl_FragColor = vec4(gray, gray, gray, tex.a); } `),A(P,c.ERODE,`// Reduces the bright areas in an image precision highp float; varying vec2 vTexCoord; uniform sampler2D tex0; uniform vec2 texelSize; float luma(vec3 color) { // weighted grayscale with luminance values // weights 77, 151, 28 taken from src/image/filters.js return dot(color, vec3(0.300781, 0.589844, 0.109375)); } void main() { vec4 color = texture2D(tex0, vTexCoord); float lum = luma(color.rgb); // set current color as the darkest neighbor color vec4 neighbors[4]; neighbors[0] = texture2D(tex0, vTexCoord + vec2( texelSize.x, 0.0)); neighbors[1] = texture2D(tex0, vTexCoord + vec2(-texelSize.x, 0.0)); neighbors[2] = texture2D(tex0, vTexCoord + vec2(0.0, texelSize.y)); neighbors[3] = texture2D(tex0, vTexCoord + vec2(0.0, -texelSize.y)); for (int i = 0; i < 4; i++) { vec4 neighborColor = neighbors[i]; float neighborLum = luma(neighborColor.rgb); if (neighborLum < lum) { color = neighborColor; lum = neighborLum; } } gl_FragColor = color; } `),A(P,c.DILATE,`// Increase the bright areas in an image precision highp float; varying vec2 vTexCoord; uniform sampler2D tex0; uniform vec2 texelSize; float luma(vec3 color) { // weighted grayscale with luminance values // weights 77, 151, 28 taken from src/image/filters.js return dot(color, vec3(0.300781, 0.589844, 0.109375)); } void main() { vec4 color = texture2D(tex0, vTexCoord); float lum = luma(color.rgb); // set current color as the brightest neighbor color vec4 neighbors[4]; neighbors[0] = texture2D(tex0, vTexCoord + vec2( texelSize.x, 0.0)); neighbors[1] = texture2D(tex0, vTexCoord + vec2(-texelSize.x, 0.0)); neighbors[2] = texture2D(tex0, vTexCoord + vec2(0.0, texelSize.y)); neighbors[3] = texture2D(tex0, vTexCoord + vec2(0.0, -texelSize.y)); for (int i = 0; i < 4; i++) { vec4 neighborColor = neighbors[i]; float neighborLum = luma(neighborColor.rgb); if (neighborLum > lum) { color = neighborColor; lum = neighborLum; } } gl_FragColor = color; } `),A(P,c.BLUR,`precision highp float; // Two-pass blur filter, unweighted kernel. // See also a similar blur at Adam Ferriss' repo of shader examples: // https://github.com/aferriss/p5jsShaderExamples/blob/gh-pages/4_image-effects/4-9_single-pass-blur/effect.frag uniform sampler2D tex0; varying vec2 vTexCoord; uniform vec2 direction; uniform vec2 canvasSize; uniform float radius; float random(vec2 p) { vec3 p3 = fract(vec3(p.xyx) * .1031); p3 += dot(p3, p3.yzx + 33.33); return fract((p3.x + p3.y) * p3.z); } // This isn't a real Gaussian weight, it's a quadratic weight. It's what the // CPU mode's blur uses though, so we also use it here to match. float quadWeight(float x, float e) { return pow(e-abs(x), 2.); } void main(){ vec2 uv = vTexCoord; // A reasonable maximum number of samples const float maxSamples = 64.0; float numSamples = floor(7. * radius); if (fract(numSamples / 2.) == 0.) { numSamples++; } vec4 avg = vec4(0.0); float total = 0.0; // Calculate the spacing to avoid skewing if numSamples > maxSamples float spacing = 1.0; if (numSamples > maxSamples) { spacing = numSamples / maxSamples; numSamples = maxSamples; } float randomOffset = (spacing - 1.0) * mix(-0.5, 0.5, random(gl_FragCoord.xy)); for (float i = 0.0; i < maxSamples; i++) { if (i >= numSamples) break; float sample = i * spacing - (numSamples - 1.0) * 0.5 * spacing + randomOffset; vec2 sampleCoord = uv + vec2(sample, sample) / canvasSize * direction; float weight = quadWeight(sample, (numSamples - 1.0) * 0.5 * spacing); avg += weight * texture2D(tex0, sampleCoord); total += weight; } avg /= total; gl_FragColor = avg; } `),A(P,c.POSTERIZE,`// Limit color space for a stylized cartoon / poster effect precision highp float; varying vec2 vTexCoord; uniform sampler2D tex0; uniform float filterParameter; vec3 quantize(vec3 color, float n) { // restrict values to N options/bins // and floor each channel to nearest value // // eg. when N = 5, values = 0.0, 0.25, 0.50, 0.75, 1.0 // then quantize (0.1, 0.7, 0.9) -> (0.0, 0.5, 1.0) color = color * n; color = floor(color); color = color / (n - 1.0); return color; } void main() { vec4 color = texture2D(tex0, vTexCoord); vec3 restrictedColor = quantize(color.rgb / color.a, filterParameter); gl_FragColor = vec4(restrictedColor.rgb * color.a, color.a); } `),A(P,c.OPAQUE,`// Set alpha channel to entirely opaque precision highp float; varying vec2 vTexCoord; uniform sampler2D tex0; void main() { vec4 color = texture2D(tex0, vTexCoord); gl_FragColor = vec4(color.rgb / color.a, 1.0); } `),A(P,c.INVERT,`// Set each pixel to inverse value // Note that original INVERT does not change the opacity, so this follows suit precision highp float; varying vec2 vTexCoord; uniform sampler2D tex0; void main() { vec4 color = texture2D(tex0, vTexCoord); vec3 origColor = color.rgb / color.a; vec3 invertedColor = vec3(1.0) - origColor; gl_FragColor = vec4(invertedColor * color.a, color.a); } `),A(P,c.THRESHOLD,`// Convert pixels to either white or black, // depending on if their luma is above or below filterParameter precision highp float; varying vec2 vTexCoord; uniform sampler2D tex0; uniform float filterParameter; float luma(vec3 color) { // weighted grayscale with luminance values return dot(color, vec3(0.2126, 0.7152, 0.0722)); } void main() { vec4 color = texture2D(tex0, vTexCoord); float gray = luma(color.rgb / color.a); // floor() used to match src/image/filters.js float threshold = floor(filterParameter * 255.0) / 255.0; float blackOrWhite = step(threshold, gray); gl_FragColor = vec4(vec3(blackOrWhite) * color.a, color.a); } `);var H=P;function z(B,$,he,ne,L,R,U,W,Q,te){var se=$.getParameter($.FRAMEBUFFER_BINDING),he=($.bindFramebuffer($.FRAMEBUFFER,he),W===$.RGBA?4:3),ae=R*U*he,fe=Q===$.UNSIGNED_BYTE?Uint8Array:Float32Array;if(B instanceof fe&&B.length===ae||(B=new fe(ae)),$.readPixels(ne,te?te-L-U:L,R,U,W,Q,B),$.bindFramebuffer($.FRAMEBUFFER,se),te)for(var le=Math.floor(U/2),J=new fe(R*he),ce=0;ce>7,127&ve,oe>>7,127&oe);for(var ke=0;ke>7,127&Fe,0,0)}}return{cellImageInfo:ee,dimOffset:Xe,dimImageInfo:we}}}}]),x}();c.default.RendererGL.prototype._renderText=function(x,S,_,A,T){if(this._textFont&&typeof this._textFont!="string"){if(!(T<=A)&&this._doFill){if(this._isOpenType()){x.push();var T=this._doStroke,E=this.drawMode,C=(this._doStroke=!1,this.drawMode=h.TEXTURE,this._textFont.font),j=(j=this._textFont._fontInfo)||(this._textFont._fontInfo=new v(C)),_=this._textFont._handleAlignment(this,S,_,A),A=this._textSize/C.unitsPerEm,I=(this.translate(_.x,_.y,0),this.scale(A,A,1),this.GL),_=!this._defaultFontShader,O=this._getFontShader(),P=(O.init(),O.bindShader(),_&&(O.setUniform("uGridImageSize",[64,64]),O.setUniform("uCellsImageSize",[64,64]),O.setUniform("uStrokeImageSize",[64,64]),O.setUniform("uGridSize",[9,9])),this._applyColorBlend(this.curFillColor),this.retainedMode.geometry.glyph),N=(P||((A=this._textGeom=new c.default.Geometry(1,1,function(){for(var fe=0;fe<=1;fe++)for(var le=0;le<=1;le++)this.vertices.push(new c.default.Vector(le,fe,0)),this.uvs.push(le,fe)})).computeFaces().computeNormals(),P=this.createBuffers("glyph",A)),!0),_=!1,A=void 0;try{for(var F,H=this.retainedMode.buffers.text[Symbol.iterator]();!(N=(F=H.next()).done);N=!0)F.value._prepareBuffer(P,O)}catch(fe){_=!0,A=fe}finally{try{N||H.return==null||H.return()}finally{if(_)throw A}}this._bindBuffer(P.indexBuffer,I.ELEMENT_ARRAY_BUFFER),O.setUniform("uMaterialColor",this.curFillColor),I.pixelStorei(I.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1);try{var z=0,G=null,B=C.stringToGlyphs(S),$=!0,Z=!1,ne=void 0;try{for(var L,R=B[Symbol.iterator]();!($=(L=R.next()).done);$=!0){var U,W,Q=L.value,te=(G&&(z+=C.getKerningValue(G,Q)),j.getGlyphInfo(Q));te.uGlyphRect&&(U=te.rowInfo,W=te.colInfo,O.setUniform("uSamplerStrokes",te.strokeImageInfo.imageData),O.setUniform("uSamplerRowStrokes",U.cellImageInfo.imageData),O.setUniform("uSamplerRows",U.dimImageInfo.imageData),O.setUniform("uSamplerColStrokes",W.cellImageInfo.imageData),O.setUniform("uSamplerCols",W.dimImageInfo.imageData),O.setUniform("uGridOffset",te.uGridOffset),O.setUniform("uGlyphRect",te.uGlyphRect),O.setUniform("uGlyphOffset",z),O.bindTextures(),I.drawElements(I.TRIANGLES,6,this.GL.UNSIGNED_SHORT,0)),z+=Q.advanceWidth,G=Q}}catch(fe){Z=!0,ne=fe}finally{try{$||R.return==null||R.return()}finally{if(Z)throw ne}}}finally{O.unbindShader(),this._doStroke=T,this.drawMode=E,I.pixelStorei(I.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),x.pop()}}else console.log("WEBGL: only Opentype (.otf) and Truetype (.ttf) fonts are supported");return x}}else console.log("WEBGL: you must load and set a font before drawing text. See `loadFont` and `textFont` for more details.")}},{"../core/constants":269,"../core/main":280,"./p5.RendererGL.Retained":336,"./p5.Shader":338,"core-js/modules/es.array.iterator":164,"core-js/modules/es.object.get-own-property-descriptor":183,"core-js/modules/es.object.to-string":187,"core-js/modules/es.regexp.exec":192,"core-js/modules/es.string.iterator":197,"core-js/modules/es.string.split":203,"core-js/modules/es.string.sub":205,"core-js/modules/es.symbol":209,"core-js/modules/es.symbol.description":207,"core-js/modules/es.symbol.iterator":208,"core-js/modules/es.weak-map":241,"core-js/modules/web.dom-collections.iterator":243}]},{},[264])(264)})})(z_);var RP=z_.exports,FP=PP(RP);function NP(i,t){return new FP(i,t)}function B_(i){var t;(t=i.current)==null||t.remove(),i.current=null}function HP(i){let{sketch:t,children:n,...r}=i,s=(0,Us.useRef)(null),a=(0,Us.useRef)(null);return(0,Us.useEffect)(()=>{s.current!==null&&(B_(a),a.current=NP(t,s.current))},[t]),(0,Us.useEffect)(()=>{var o,u;(u=(o=a.current)==null?void 0:o.updateWithProps)==null||u.call(o,r)},[r,s]),(0,Us.useEffect)(()=>()=>B_(a),[]),Mm.jsx("div",{ref:s,className:OP,children:n})}function UP(i){let{sketch:t,fallback:n}=i;return t===void 0?(console.error("[ReactP5Wrapper] The `sketch` prop is required."),n!==void 0?Mm.jsx(Mm.Fragment,{children:n}):null):Mm.jsx(HP,{...i})}var $_=(0,Us.memo)(UP,jP);var Xd={columns:75,rows:18,showGridLines:!1},Yo={freeformRectAmount:9,constrained:!1,constrainedRectAmount:6,wScale:1,hScale:1,maxHeight:50,maxWidth:75,colorSet:["blue","yellow","green","orange","pink","purple","red"],colorOpposites:!0},Uu={restartDelay:0,lifeSpan:5,showSpeed:.1,hideSpeed:.1},W_={north:[["topRight","origin","originPoint","line","DIM-01",8,1],["topRight","bottomRight","b-1","portrait","DIM-02",4,6],["topRight","topLeft","b-1","landscape","DIM-03",4,2],["bottomRight","origin","originPoint","landscape","BRIGHT-01",8,4],["bottomRight","topRight","b-1","landscape","BRIGHT-01",3,2],["bottomRight","bottomLeft","b-1","landscape","BRIGHT-01",3,2],["bottomRight","topRight","b-2","portrait","BRIGHT-01",4,5],["bottomRight","topRight","b-1","portrait","BRIGHT-02",4,6],["bottomRight","topRight","b-1","portrait","BRIGHT-03",2,5]],northEast:[["topLeft","origin","originPoint","line","DIM-01",10,1],["topRight","origin","originPoint","landscape","DIM-02",10,3],["topRight","bottomRight","b-1","landscape","DIM-03",5,4],["bottomLeft","origin","originPoint","landscape","BRIGHT-01",15,3],["bottomLeft","topLeft","b-1","portrait","BRIGHT-01",5,8],["bottomLeft","bottomRight","b-1","landscape","BRIGHT-01",14,4],["bottomRight","topRight","b-1","landscape","BRIGHT-02",4,3],["bottomLeft","bottomRight","b-2","portrait","BRIGHT-02",2,10],["topLeft","topRight","b-1","portrait","BRIGHT-03",5,6]],east:[["topLeft","origin","originPoint","line","DIM-01",4,1],["bottomRight","origin","originPoint","landscape","DIM-02",5,4],["bottomRight","topRight","b-1","landscape","DIM-03",2,1],["bottomLeft","origin","originPoint","portrait","BRIGHT-01",4,6],["bottomLeft","bottomRight","b-1","landscape","BRIGHT-01",4,2],["bottomLeft","topLeft","b-1","landscape","BRIGHT-01",11,6],["bottomLeft","bottomRight","b-1","portrait","BRIGHT-02",4,5],["bottomLeft","topLeft","b-1","landscape","BRIGHT-02",6,1],["topLeft","topRight","b-2","landscape","BRIGHT-03",6,2]],southEast:[["topLeft","origin","originPoint","line","DIM-01",9,1],["topLeft","bottomLeft","b-1","landscape","BRIGHT-01",9,6],["bottomLeft","bottomRight","b-1","landscape","BRIGHT-01",5,3],["topLeft","bottomLeft","b-2","portrait","BRIGHT-01",2,9],["topLeft","topRight","b-1","portrait","BRIGHT-02",4,5],["topLeft","topRight","b-1","landscape","BRIGHT-02",12,3],["topLeft","bottomLeft","b-1","portrait","BRIGHT-03",4,6],["topRight","origin","originPoint","portrait","DIM-02",3,11],["bottomLeft","origin","originPoint","landscape","DIM-02",5,3]],south:[["bottomLeft","origin","originPoint","line","DIM-01",10,1],["bottomLeft","topLeft","b-1","portrait","DIM-02",4,5],["bottomLeft","bottomRight","b-1","portrait","DIM-03",6,2],["topLeft","origin","originPoint","portrait","BRIGHT-01",3,15],["topLeft","topRight","b-1","landscape","BRIGHT-01",9,2],["topLeft","bottomLeft","b-1","portrait","BRIGHT-01",2,11],["topLeft","bottomLeft","b-1","portrait","BRIGHT-02",3,4],["topLeft","topRight","b-1","landscape","BRIGHT-02",4,6],["topLeft","bottomLeft","b-1","landscape","BRIGHT-03",4,1]],southWest:[["topRight","origin","originPoint","line","DIM-01",17,1],["topRight","bottomRight","b-1","portrait","BRIGHT-01",5,12],["topRight","topLeft","b-1","landscape","BRIGHT-01",12,3],["topRight","bottomRight","b-1","landscape","BRIGHT-01",12,6],["topRight","topLeft","b-1","portrait","BRIGHT-01",3,6],["topRight","bottomRight","b-2","portrait","BRIGHT-02",3,8],["topRight","topLeft","b-1","landscape","BRIGHT-03",21,6],["bottomLeft","origin","originPoint","landscape","DIM-02",10,7],["topLeft","origin","originPoint","portrait","DIM-03",3,6]],west:[["topRight","origin","originPoint","line","DIM-01",8,1],["bottomLeft","origin","originPoint","portrait","DIM-02",3,4],["bottomLeft","bottomRight","b-1","portrait","DIM-03",3,2],["bottomRight","origin","originPoint","landscape","BRIGHT-01",8,6],["bottomRight","bottomLeft","b-1","landscape","BRIGHT-01",6,2],["bottomRight","topRight","b-1","landscape","BRIGHT-01",14,4],["topRight","topLeft","b-2","landscape","BRIGHT-02",12,1],["bottomRight","bottomLeft","b-2","landscape","BRIGHT-02",6,2],["bottomRight","topRight","b-1","landscape","BRIGHT-03",3,2]],northWest:[["bottomLeft","origin","originPoint","line","DIM-01",15,1],["bottomLeft","topLeft","b-1","landscape","DIM-02",12,4],["topRight","origin","originPoint","portrait","DIM-03",4,6],["bottomRight","origin","originPoint","landscape","BRIGHT-01",7,4],["topRight","topLeft","b-1","portrait","BRIGHT-01",2,4],["topRight","topLeft","b-1","landscape","BRIGHT-01",7,4],["bottomRight","topRight","b-3","landscape","BRIGHT-01",12,4],["bottomRight","bottomLeft","b-1","landscape","BRIGHT-02",8,4],["bottomRight","topRight","b-1","landscape","BRIGHT-03",15,2]],constrainedOne:[["topLeft","origin","originPoint","landscape","DIM-03",42,6],["topRight","origin","originPoint","landscape","DIM-02",29,6],["topLeft","origin","originPoint","line","DIM-01",28,1],["bottomRight","topRight","b-1","landscape","BRIGHT-02",57,12],["bottomLeft","origin","originPoint","landscape","BRIGHT-01",28,6],["bottomLeft","bottomRight","b-2","landscape","BRIGHT-03",14,12]],constrainedTwo:[["topRight","origin","originPoint","line","DIM-01",28,1],["bottomRight","origin","originPoint","landscape","BRIGHT-01",28,6],["bottomRight","topRight","b-1","landscape","BRIGHT-02",57,6],["bottomLeft","origin","originPoint","landscape","BRIGHT-03",14,12],["topRight","origin","originPoint","landscape","DIM-02",29,6],["topLeft","origin","originPoint","landscape","DIM-03",42,6]],constrainedThree:[["topLeft","origin","originPoint","landscape","DIM-03",42,6],["bottomLeft","origin","originPoint","line","DIM-01",29,1],["bottomLeft","topLeft","b-1","landscape","BRIGHT-01",2,6],["topLeft","origin","originPoint","landscape","BRIGHT-03",57,12],["bottomRight","topRight","b-1","landscape","BRIGHT-02",57,6],["topRight","origin","originPoint","landscape","DIM-02",29,6]],constrainedFour:[["topLeft","origin","originPoint","portrait","DIM-03",42,18],["bottomLeft","origin","originPoint","line","DIM-01",29,18],["bottomLeft","topLeft","b-1","portrait","BRIGHT-01",2,18],["topLeft","origin","originPoint","portrait","BRIGHT-03",57,18],["bottomRight","topRight","b-1","portrait","BRIGHT-02",18,6],["topRight","origin","originPoint","portrait","DIM-02",12,6]]},Y_={orange:[{strength:"DIM-01",hex:"#995137",rgb:{r:204,g:102,b:61}},{strength:"DIM-02",hex:"#B8692C",rgb:{r:209,g:105,b:46}},{strength:"DIM-03",hex:"#EB9154",rgb:{r:235,g:145,b:84}},{strength:"BRIGHT-01",hex:"#FE8C3F",rgb:{r:254,g:140,b:63}},{strength:"BRIGHT-02",hex:"#FFBC5E",rgb:{r:255,g:188,b:94}},{strength:"BRIGHT-03",hex:"#FFD28F",rgb:{r:255,g:210,b:143}}],yellow:[{strength:"DIM-01",hex:"#996600",rgb:{r:153,g:102,b:0}},{strength:"DIM-02",hex:"#D39427",rgb:{r:211,g:148,b:39}},{strength:"DIM-03",hex:"#E5B82E",rgb:{r:229,g:184,b:46}},{strength:"BRIGHT-01",hex:"#E9FF1F",rgb:{r:233,g:255,b:31}},{strength:"BRIGHT-02",hex:"#FFDD00",rgb:{r:255,g:221,b:0}},{strength:"BRIGHT-03",hex:"#FFEC8F",rgb:{r:255,g:236,b:143}}],green:[{strength:"DIM-01",hex:"#235C48",rgb:{r:35,g:92,b:72}},{strength:"DIM-02",hex:"#258558",rgb:{r:37,g:133,b:88}},{strength:"DIM-03",hex:"#B2C437",rgb:{r:178,g:196,b:55}},{strength:"BRIGHT-01",hex:"#26BF26",rgb:{r:38,g:191,b:38}},{strength:"BRIGHT-02",hex:"#33FF33",rgb:{r:51,g:255,b:51}},{strength:"BRIGHT-03",hex:"#C8FF8A",rgb:{r:200,g:255,b:138}}],blue:[{strength:"DIM-01",hex:"#25335C",rgb:{r:37,g:51,b:92}},{strength:"DIM-02",hex:"#24468A",rgb:{r:36,g:70,b:138}},{strength:"DIM-03",hex:"#62A6CC",rgb:{r:98,g:166,b:204}},{strength:"BRIGHT-01",hex:"#1F44FF",rgb:{r:31,g:68,b:255}},{strength:"BRIGHT-02",hex:"#85D6FF",rgb:{r:133,g:214,b:255}},{strength:"BRIGHT-03",hex:"#CCE0FF",rgb:{r:204,g:224,b:255}}],purple:[{strength:"DIM-01",hex:"#4C2D61",rgb:{r:76,g:45,b:97}},{strength:"DIM-02",hex:"#63378A",rgb:{r:99,g:55,b:138}},{strength:"DIM-03",hex:"#9270CC",rgb:{r:146,g:112,b:204}},{strength:"BRIGHT-01",hex:"#8D33FF",rgb:{r:141,g:51,b:255}},{strength:"BRIGHT-02",hex:"#AC82FF",rgb:{r:172,g:130,b:255}},{strength:"BRIGHT-03",hex:"#DFD1FF",rgb:{r:223,g:209,b:255}}],pink:[{strength:"DIM-01",hex:"#70315B",rgb:{r:112,g:49,b:91}},{strength:"DIM-02",hex:"#A8439E",rgb:{r:168,g:67,b:158}},{strength:"DIM-03",hex:"#CC6ACC",rgb:{r:204,g:106,b:204}},{strength:"BRIGHT-01",hex:"#FF52EE",rgb:{r:255,g:82,b:238}},{strength:"BRIGHT-02",hex:"#FF80FA",rgb:{r:255,g:128,b:250}},{strength:"BRIGHT-03",hex:"#F7CDF0",rgb:{r:247,g:205,b:240}}],red:[{strength:"DIM-01",hex:"#7A2822",rgb:{r:122,g:40,b:34}},{strength:"DIM-02",hex:"#AD4337",rgb:{r:173,g:67,b:55}},{strength:"DIM-03",hex:"#DB594B",rgb:{r:219,g:89,b:75}},{strength:"BRIGHT-01",hex:"#FF3C00",rgb:{r:255,g:60,b:0}},{strength:"BRIGHT-02",hex:"#FE6E5B",rgb:{r:254,g:110,b:91}},{strength:"BRIGHT-03",hex:"#FFC1B8",rgb:{r:255,g:193,b:184}}],grey:[{strength:"DIM-01",hex:"#504F5F",rgb:{r:80,g:79,b:95}},{strength:"DIM-02",hex:"#666573",rgb:{r:102,g:101,b:115}},{strength:"DIM-03",hex:"#868691",rgb:{r:134,g:134,b:145}},{strength:"BRIGHT-01",hex:"#F2F2F5",rgb:{r:242,g:242,b:245}},{strength:"BRIGHT-02",hex:"#D3D3D7",rgb:{r:211,g:211,b:215}},{strength:"BRIGHT-03",hex:"#F2F2F5",rgb:{r:242,g:242,b:245}}]};var jm=class{constructor(t,n,r,s){this.p5=t,this.columns=n,this.constrained=r,this.cSize=s,this.setColumns(this.columns,this.cSize)}setColumns(){this.cellSize=this.cSize||this.p5.floor(this.p5.width/this.columns),this.rows=this.p5.floor(this.p5.height/this.cellSize),this.constrained&&(this.cellSize=this.cSize||this.p5.floor(this.p5.width/71),this.rows=Xd.rows,this.p5.resizeCanvas(this.p5.width,this.rows*this.cellSize)),this.indices=this.createGridIndices()}createGridIndices(){return Array.from({length:this.columns*this.rows},(n,r)=>r)}showGridLines(){this.p5.push(),this.p5.stroke(0,0,33),this.p5.strokeWeight(.5),this.drawGridLines(),this.p5.pop()}drawGridLines(){for(let t=0;t<=this.p5.width;t+=this.cellSize)this.p5.line(t,0,t,this.p5.height);for(let t=0;t<=this.p5.height;t+=this.cellSize)this.p5.line(0,t,this.p5.width,t)}getRandomPosition(){let t=Math.floor(Math.random()*this.indices.length),n=this.indices[t],r=Math.floor(n/this.columns),a=(n%this.columns+.5)*(width/this.columns),o=(r+.5)*(height/this.rows);return{x:a,y:o}}};var Pm=class i{static ANIMATION_DELAY=160;static SHOW_ANIMATION_SPEED=Uu.showSpeed;static HIDE_ANIMATION_SPEED=Uu.hideSpeed;constructor(t,n,r,s,a,o,u,l,c){this.p5=c,this.groupX=t,this.groupY=n,this.x=this.groupX,this.y=this.groupY,this.targetWidth=r,this.targetHeight=s,this.width=0,this.height=0,this.color=a,this.originCorner=o,this.orientation=u,this.alive=l,this.showAnimationCompleted=!1,this.hideInitiated=!1,this.hideAnimationCompleted=!1,this.animationCompleted=!1,this.strips=[],this.currentStripIndex=0}update(){return!!this.animationCompleted}show(){this.p5.push();let t=this.setOriginPosition();this.p5.translate(t.translateX,t.translateY),this.p5.scale(t.scaleX,t.scaleY),this.showAnimationCompleted||this.animateShow(),this.hideInitiated&&!this.hideAnimationCompleted&&this.animateHide(),this.p5.noStroke(),this.p5.fill(this.color.rgb.r,this.color.rgb.g,this.color.rgb.b),this.strips.length===0&&this.initializeStrips(),this.strips.forEach(n=>{this.p5.rect(n.x,n.y,n.width,n.height)}),this.p5.pop()}initializeStrips(){if(this.strips=[],this.orientation==="landscape"||this.orientation==="line"){let t=0;for(;t=this.p5.grid.cellSize*4?r=this.p5.floor(this.p5.random(2,5))*this.p5.grid.cellSize:n>=this.p5.grid.cellSize*3?r=this.p5.floor(this.p5.random(2,4))*this.p5.grid.cellSize:n>=this.p5.grid.cellSize*2?r=this.p5.floor(this.p5.random(2,3))*this.p5.grid.cellSize:r=1*this.p5.grid.cellSize,this.strips.push({x:0,y:t,width:0,height:r}),t+=r}}else if(this.orientation==="portrait"){let t=0;for(;t=this.p5.grid.cellSize*4?r=this.p5.floor(this.p5.random(2,5))*this.p5.grid.cellSize:n>=this.p5.grid.cellSize*3?r=this.p5.floor(this.p5.random(2,4))*this.p5.grid.cellSize:n>=this.p5.grid.cellSize*2?r=this.p5.floor(this.p5.random(2,3))*this.p5.grid.cellSize:r=1*this.p5.grid.cellSize,this.strips.push({x:t,y:0,width:r,height:0}),t+=r}}}animateShow(){for(let r=0;r{s.width{s.height{s.width>0&&(s.width-=this.p5.grid.cellSize*t)},a):this.orientation==="portrait"&&setTimeout(()=>{s.height>0&&(s.height-=this.p5.grid.cellSize*t)},a)}let n=!1;for(let r=0;r=i.HIDE_FRAME_DELAY*t&&this.rects[t].initiateHide());this.rectsHideDelay++}show(){if(this.p5.frameCount%i.SHOW_ANIMATION_DELAY===0&&this.rectsToShow=i.SHOW_FRAME_DELAY*t&&this.rects[t].show());else for(let t=0;t=i.SHOW_FRAME_DELAY*t&&this.rects[t].show();this.rectsShowDelay++}createRectsForDirection(t){let n=0;for(;this.rectsCreateda.strength===n);if(s)return{strength:s.strength,hex:s.hex,rgb:s.rgb}}return null}calculatePositionInfo(t,n,r,s,a){let o,u,l,c,h;a==="b-1"?h=this.rects[this.rects.length-1]:a==="b-2"?h=this.rects[this.rects.length-2]:a==="b-3"&&(h=this.rects[this.rects.length-3]);let f=h?this.getPositionBasedOnOrigin(t,n,r,s,a,h):this.getPositionBasedOnOrigin(t,n,r,s,a);return o=f.rectX,u=f.rectY,r==="Left"?(o+t>this.canvasWidth&&(t=this.canvasWidth-o,o=this.canvasWidth-t),o<0&&(t+=o,o=0)):r==="Right"&&(o<0&&(t+=o,o==0),o-t<0&&t==o),r==="Top"?(u+n>this.canvasHeight&&(n=this.canvasHeight-u,u=this.canvasHeight-n),u<0&&(n+=u,u=0)):r==="Bottom"&&(u<0&&(n+=u,u=0),u-n<0&&(n=u)),{rectX:o,rectY:u,rectW:t,rectH:n}}getPositionBasedOnOrigin(t,n,r,s,a,o){let l={topLeft:{offsetX:0,offsetY:0},topRight:{offsetX:0-t,offsetY:0},bottomLeft:{offsetX:0,offsetY:0-n},bottomRight:{offsetX:0-t,offsetY:0-n}}[r];if(o&&a=="b-1"||a=="b-2"||a=="b-3"){let{offsetX:c,offsetY:h}=l,f,d;return s=="bottomRight"?(f=o.x+o.targetWidth,d=o.y+o.targetHeight):s=="bottomLeft"?(f=o.x,d=o.y+o.targetHeight):s=="topLeft"?(f=o.x,d=o.y):s=="topRight"?(f=o.x+o.targetWidth,d=o.y):(d=this.y,f=this.x),{rectX:f+c,rectY:d+h}}if(a=="originPoint"){let{offsetX:c,offsetY:h}=l;return{rectX:this.x+c,rectY:this.y+h}}return{rectX:this.x,rectY:this.y}}};var Om=class i{static RESTART_DELAY_SECONDS=Uu.restartDelay;static RESTART_DELAY_FRAMES=i.RESTART_DELAY_SECONDS*60;static FREEFORM_GROUP_MIN_DELAY_SECONDS=Math.floor(Math.random()*4);static FREEFORM_GROUP_MAX_DELAY_SECONDS=Math.floor(Math.random()*8);static FREEFORM_GROUP_DELAY_FRAMES=Math.floor(Math.random()*(i.FREEFORM_GROUP_MAX_DELAY_SECONDS-i.FREEFORM_GROUP_MIN_DELAY_SECONDS+1)+i.FREEFORM_GROUP_MIN_DELAY_SECONDS)*60;constructor(t){this.p5=t,this.groupsArray=[],this.restartFrameCount=0,this.lifeSpan=Uu.lifeSpan,this.elapsedTime,this.isFirstGroupCreated=!1,this.isSecondGroupCreated=!1,this.isThirdGroupCreated=!1,this.isSequenceInProgress=!1,this.allGroupsShown=!1,this.startHiding=!1}updateGroups(){for(let[t,n]of this.groupsArray.entries())n.update(),n.show(),n.hide();this.handleGroupRemoval()}createNewGroup(t,n,r,s,a){let o=this.nearestGridPosition(t),u=new Dm(o.x,o.y,n,s,a,r,this.p5);u.startTime=this.p5.frameCount,this.groupsArray.push(u)}nearestGridPosition(t){let n=this.p5.round(t.x/this.p5.grid.cellSize)*this.p5.grid.cellSize,r=this.p5.round(t.y/this.p5.grid.cellSize)*this.p5.grid.cellSize;return this.p5.createVector(n,r)}handleGroupRemoval(){this.groupsArray=this.groupsArray.filter(t=>t.alive?!0:t.rects.length>0)}freeformGroups(t){let n=this.groupsArray.length===0,r=this.groupsArray.length===1,s=this.groupsArray.length===2,a=Yo.colorSet,o=["northEast","northWest","southEast","southWest"],u=Yo.freeformRectAmount,l=i.FREEFORM_GROUP_DELAY_FRAMES;if(n&&this.p5.frameCount-this.restartFrameCount>=i.RESTART_DELAY_FRAMES&&!this.isSequenceInProgress&&!this.isFirstGroupCreated&&(this.isSequenceInProgress=!0,this.createNewGroup(t,u,this.p5.random(o),this.p5.random(a)),this.isFirstGroupCreated=!0,this.restartFrameCount=this.p5.frameCount),r&&this.isFirstGroupCreated&&!this.isSecondGroupCreated&&this.groupsArray[0].rects.length>3&&this.groupsArray[0].rects[3].showAnimationCompleted){let c=this.groupsArray[0];c.startTime=this.p5.frameCount,this.createNewGroup(t,u,this.getOppositeDirection(c.direction),this.getOppositeColor(c.colorSet)),this.isSecondGroupCreated=!0,this.restartFrameCount=this.p5.frameCount}if(s&&this.isSecondGroupCreated&&!this.isThirdGroupCreated){let c=this.groupsArray[0],h=this.groupsArray[1],f=h.rects.length-1,d=h.rects;h.startTime=this.p5.frameCount;let p=null;for(let m=d.length-1;m>=0;m--){let y=d[m];if(y.color.strength.includes("BRIGHT")){p=y;break}}if(h.rects[f].showAnimationCompleted){c.lifeSpan=0,h.lifeSpan=this.lifeSpan;let m=["north","east","west","south"],y={x:p.x,y:p.y},b=this.p5.random(m);this.restartFrameCount=this.p5.frameCount,this.createNewGroup(y,u,b,this.getOppositeColor(h.colorSet)),this.isThirdGroupCreated=!0}}this.groupsArray.length===1&&this.isThirdGroupCreated&&(this.allGroupsShown=this.groupsArray[0].rectCount===this.groupsArray[0].rects.filter(c=>c.showAnimationCompleted).length),this.groupsArray.length===1&&this.allGroupsShown&&this.isThirdGroupCreated&&(this.groupsArray[0].lifeSpan=this.lifeSpan),this.groupsArray.length===0&&this.isSequenceInProgress&&this.isThirdGroupCreated&&this.p5.frameCount-this.restartFrameCount>=l&&(this.isFirstGroupCreated=!1,this.isSequenceInProgress=!1,this.isSecondGroupCreated=!1,this.isThirdGroupCreated=!1,this.allGroupsShown=!1)}constrainedGroups(){let t=this.groupsArray.length===0,n=this.groupsArray.length===1,r=this.groupsArray.length===2,s=Yo.constrainedRectAmount,a=(this.p5.width-11*this.p5.grid.cellSize)/12*5;a=this.p5.round(a/this.p5.grid.cellSize)*this.p5.grid.cellSize;let o={x:a,y:this.p5.height/3*this.p5.random([1,2,3])},u=["blue","yellow","green","orange","pink","purple","red"];if(t&&this.p5.frameCount-this.restartFrameCount>=i.RESTART_DELAY_FRAMES&&!this.isSequenceInProgress&&!this.isFirstGroupCreated&&(this.isSequenceInProgress=!0,this.createNewGroup(o,s,this.p5.random(["constrainedOne","constrainedThree","constrainedFour"]),this.p5.random(u)),this.isFirstGroupCreated=!0,this.restartFrameCount=this.p5.frameCount),n&&this.isFirstGroupCreated&&!this.isSecondGroupCreated&&this.groupsArray[0].rects.length>3&&this.groupsArray[0].rects[3].showAnimationCompleted){let l=this.groupsArray[0],c=l.rects,h=null;for(let f=c.length-1;f>=0;f--){let d=c[f];if(d.color.strength.includes("DIM-01")){h=d;break}}if(h&&l.rects[0].showAnimationCompleted){let f={x:this.p5.random(1,this.p5.grid.columns)*this.p5.grid.cellSize,y:this.p5.height/3*2};this.createNewGroup(f,s,this.p5.random(["constrainedOne","constrainedFour"]),this.getOppositeColor(l.colorSet)),this.isSecondGroupCreated=!0}}if(r&&this.isSecondGroupCreated&&!this.isThirdGroupCreated){let l=this.groupsArray[1],c=l.rects.length-1,h=l.rects,f=null;for(let d=0;dl.rectCount===l.rects.filter(c=>c.showAnimationCompleted).length)),this.allGroupsShown&&(this.startHiding=!0),this.startHiding&&this.isSequenceInProgress&&this.isThirdGroupCreated){if(this.groupsArray.length===3){let l=this.groupsArray[2];l.lifeSpan=this.lifeSpan,this.isFirstGroupCreated=!1}if(this.groupsArray.length===2){let l=this.groupsArray[1];l.lifeSpan=this.lifeSpan,this.isSecondGroupCreated=!1}if(this.groupsArray.length===1){let l=this.groupsArray[0];l.lifeSpan=this.lifeSpan}this.groupsArray.length===0&&(this.startHiding=!1,this.allGroupsShown=!1,this.isSequenceInProgress=!1,this.isThirdGroupCreated=!1)}}getOppositeDirection(t){return{north:"south",northEast:"southWest",east:"west",southEast:"northWest",south:"north",southWest:"northEast",west:"east",northWest:"southEast"}[t]}getOppositeColor(t){return{green:"purple",blue:"green",purple:"green",pink:"blue",red:"blue",orange:"green",yellow:"purple"}[t]}};var dn=({style:i,constrained:t=!1,width:n,height:r,columns:s=75,cellSize:a})=>{let o=Bu.default.useRef(null);(0,Bu.useEffect)(()=>{let l=o.current?.firstChild?.firstChild;l&&l.setAttribute("viewBox","0 0 500 500")},[o]);function u(l){let c;function h(){l.createCanvas(window.innerWidth,window.innerHeight),l.frameRate(60),l.colorMode(l.RGB),l.grid=new jm(l,s,t,a),l.groupManager=new Om(l),c={x:l.width/2,y:l.height/2}}function f(){}function d(){l.clear(),Xd.showGridLines&&l.grid.showGridLines(),l.groupManager.updateGroups(),l.groupManager.groupsArray.length===0&&l.groupManager.restartFrame===0&&(l.groupManager.restartFrame=l.frameCount);let m=l.frameCount;for(let y=0;yRm.default.createElement(Se.div,null,Rm.default.createElement("div",{className:"bb cp aj aw a2 d3 p bt d4",style:{animationName:BP}},[...Array(12)].map((r,s)=>Rm.default.createElement("div",{className:"b0 bb n bt bj aw",key:s,style:{background:Vr(`${i}-bright-3`),animationName:VP,animationDuration:`${.14*s}s`}}))),t);var ci=Pe(Oe(),1);var Ie=Pe(Oe(),1);var q_=()=>Ie.default.createElement(Se.svg,{id:"Layer_1","data-name":"Layer 1",xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",version:"1.1",viewBox:"0 0 1440 836",style:{"& .cls-1":{clipPath:"url(#clippath)"},"& .cls-2":{fill:"none"},"& .cls-2, .cls-3, .cls-4, .cls-5, .cls-6, .cls-7, .cls-8, .cls-9":{strokeWidth:"1px"},"& .cls-3":{fill:"#a7a7a7",stroke:"#a7a7a7"},"& .cls-4":{fill:"#666573",stroke:"#666573"},"& .cls-5":{fill:"#f2f2f5",stroke:"#f2f2f5"},"& .cls-6":{fill:"#868691",stroke:"#868691"},"& .cls-7":{fill:"#d3d3d7",stroke:"#d3d3d7"},"& .cls-8":{fill:"#dadae0",stroke:"#dadae0"},"& .cls-9":{fill:"#36363d",stroke:"#36363d"}}},Ie.default.createElement("defs",null,Ie.default.createElement("clipPath",{id:"clippath"},Ie.default.createElement("rect",{className:"cls-2",width:"1440",height:"836"}))),Ie.default.createElement("g",{className:"cls-1"},Ie.default.createElement("g",{id:"map-europe-v1.0"},Ie.default.createElement("g",{id:"XK"},Ie.default.createElement("rect",{id:"rect-01",className:"cls-5",x:"1018",y:"551",width:"19",height:"19"})),Ie.default.createElement("g",{id:"GB"},Ie.default.createElement("path",{id:"rect-03",className:"cls-3",d:"M691,418h-38v-152h38v152Z"}),Ie.default.createElement("path",{id:"rect-02",className:"cls-3",d:"M653,418h-19v-152h19v152Z"}),Ie.default.createElement("path",{id:"rect-01_2","data-name":"rect-01 2",className:"cls-3",d:"M634,418h-39v-152h39v152Z"})),Ie.default.createElement("g",{id:"UA"},Ie.default.createElement("path",{id:"rect-06",className:"cls-4",d:"M1190,532h154v38h-154v-38Z"}),Ie.default.createElement("path",{id:"rect-05",className:"cls-4",d:"M1190,494h154v38h-154v-38Z"}),Ie.default.createElement("path",{id:"rect-04",className:"cls-4",d:"M1190,475h154v19h-154v-19Z"}),Ie.default.createElement("path",{id:"rect-03_2","data-name":"rect-03 2",className:"cls-4",d:"M1133,475h19v19h-19v-19Z"}),Ie.default.createElement("path",{id:"rect-02_2","data-name":"rect-02 2",className:"cls-4",d:"M1133,456h211v19h-211v-19Z"}),Ie.default.createElement("path",{id:"rect-01_3","data-name":"rect-01 3",className:"cls-4",d:"M1133,456h211v-57h-211v57Z"})),Ie.default.createElement("g",{id:"SK"},Ie.default.createElement("rect",{id:"rect-01_4","data-name":"rect-01 4",className:"cls-6",x:"978",y:"475",width:"78",height:"38"})),Ie.default.createElement("g",{id:"SI"},Ie.default.createElement("rect",{id:"rect-01_5","data-name":"rect-01 5",className:"cls-6",x:"902",y:"513",width:"39",height:"19"})),Ie.default.createElement("g",{id:"SE"},Ie.default.createElement("rect",{id:"rect-07",className:"cls-9",x:"941",y:"304",width:"96",height:"38"}),Ie.default.createElement("rect",{id:"rect-06_2","data-name":"rect-06 2",className:"cls-9",x:"941",y:"285",width:"96",height:"19"}),Ie.default.createElement("path",{id:"rect-05_2","data-name":"rect-05 2",className:"cls-9",d:"M941,285h-39v-114h39v114Z"}),Ie.default.createElement("path",{id:"rect-04_2","data-name":"rect-04 2",className:"cls-9",d:"M979,285h-38v-114h38v114Z"}),Ie.default.createElement("path",{id:"rect-03_3","data-name":"rect-03 3",className:"cls-9",d:"M1018,285h-39v-114h39v114Z"}),Ie.default.createElement("path",{id:"rect-02_3","data-name":"rect-02 3",className:"cls-9",d:"M1056,285h-38V95h38v190Z"}),Ie.default.createElement("rect",{id:"rect-01_6","data-name":"rect-01 6",className:"cls-9",x:"1056",y:"95",width:"38",height:"133"})),Ie.default.createElement("g",{id:"RS"},Ie.default.createElement("path",{id:"rect-01_7","data-name":"rect-01 7",className:"cls-4",d:"M1075,589h-38v-57h38v57Z"})),Ie.default.createElement("g",{id:"RO"},Ie.default.createElement("rect",{id:"rect-03_4","data-name":"rect-03 4",className:"cls-9",x:"1075",y:"551",width:"115",height:"38"}),Ie.default.createElement("rect",{id:"rect-02_4","data-name":"rect-02 4",className:"cls-9",x:"1075",y:"532",width:"77",height:"19"}),Ie.default.createElement("rect",{id:"rect-01_8","data-name":"rect-01 8",className:"cls-9",x:"1056",y:"494",width:"96",height:"38"})),Ie.default.createElement("g",{id:"PT"},Ie.default.createElement("rect",{id:"rect-01_9","data-name":"rect-01 9",className:"cls-6",x:"499",y:"570",width:"39",height:"134"})),Ie.default.createElement("g",{id:"PL"},Ie.default.createElement("path",{id:"rect-05_3","data-name":"rect-05 3",className:"cls-8",d:"M1133,494h-96v-19h96v19Z"}),Ie.default.createElement("path",{id:"rect-04_3","data-name":"rect-04 3",className:"cls-8",d:"M1133,475h-96v-19h96v19Z"}),Ie.default.createElement("path",{id:"rect-03_5","data-name":"rect-03 5",className:"cls-8",d:"M1133,456h-96v-19h96v19Z"}),Ie.default.createElement("path",{id:"rect-02_5","data-name":"rect-02 5",className:"cls-8",d:"M1133,437h-173v-19h173v19Z"}),Ie.default.createElement("path",{id:"rect-01_10","data-name":"rect-01 10",className:"cls-8",d:"M1133,418h-173v-38h173v38Z"})),Ie.default.createElement("g",{id:"FI"},Ie.default.createElement("path",{id:"rect-02_6","data-name":"rect-02 6",className:"cls-4",d:"M1133,95h-39v171h39V95Z"}),Ie.default.createElement("path",{id:"rect-01_11","data-name":"rect-01 11",className:"cls-4",d:"M1171,95h-38v171h38V95Z"})),Ie.default.createElement("g",{id:"NO"},Ie.default.createElement("path",{id:"rect-07_2","data-name":"rect-07 2",className:"cls-3",d:"M902,285h-115v-57h115v57Z"}),Ie.default.createElement("path",{id:"rect-06_3","data-name":"rect-06 3",className:"cls-3",d:"M902,228h-115v-38h115v38Z"}),Ie.default.createElement("path",{id:"rect-05_4","data-name":"rect-05 4",className:"cls-3",d:"M902,190h-115v-57h115v57Z"}),Ie.default.createElement("path",{id:"rect-04_4","data-name":"rect-04 4",className:"cls-3",d:"M960,171h-58v-38h58v38Z"}),Ie.default.createElement("rect",{id:"rect-03_6","data-name":"rect-03 6",className:"cls-3",x:"960",y:"133",width:"58",height:"38"}),Ie.default.createElement("path",{id:"rect-02_7","data-name":"rect-02 7",className:"cls-3",d:"M960,133h58v-38h-58v38Z"}),Ie.default.createElement("path",{id:"rect-01_12","data-name":"rect-01 12",className:"cls-3",d:"M1152,95h-192v-19h192v19Z"})),Ie.default.createElement("g",{id:"NL"},Ie.default.createElement("rect",{id:"rect-01_13","data-name":"rect-01 13",className:"cls-6",x:"768",y:"380",width:"58",height:"38"})),Ie.default.createElement("g",{id:"MK"},Ie.default.createElement("path",{id:"rect-01_14","data-name":"rect-01 14",className:"cls-7",d:"M1075,608h-38v-19h38v19Z"})),Ie.default.createElement("g",{id:"MD"},Ie.default.createElement("rect",{id:"rect-01_15","data-name":"rect-01 15",className:"cls-3",x:"1152",y:"475",width:"38",height:"76"})),Ie.default.createElement("g",{id:"LV"},Ie.default.createElement("rect",{id:"rect-01_16","data-name":"rect-01 16",className:"cls-6",x:"1114",y:"304",width:"57",height:"38"})),Ie.default.createElement("g",{id:"LT"},Ie.default.createElement("rect",{id:"rect-02_8","data-name":"rect-02 8",className:"cls-7",x:"1133",y:"361",width:"38",height:"19"}),Ie.default.createElement("rect",{id:"rect-01_17","data-name":"rect-01 17",className:"cls-7",x:"1086",y:"342",width:"85",height:"19"})),Ie.default.createElement("g",{id:"IT"},Ie.default.createElement("rect",{id:"rect-05_5","data-name":"rect-05 5",className:"cls-3",x:"960",y:"627",width:"58",height:"76"}),Ie.default.createElement("path",{id:"rect-04_5","data-name":"rect-04 5",className:"cls-3",d:"M960,589h-19v76h19v-76Z"}),Ie.default.createElement("path",{id:"rect-03_7","data-name":"rect-03 7",className:"cls-3",d:"M941,570h-19v95h19v-95Z"}),Ie.default.createElement("path",{id:"rect-02_9","data-name":"rect-02 9",className:"cls-3",d:"M864,627h58v-95h-58v95Z"}),Ie.default.createElement("path",{id:"rect-01_18","data-name":"rect-01 18",className:"cls-3",d:"M864,570h-58v-38h58v38Z"})),Ie.default.createElement("g",{id:"IS"},Ie.default.createElement("path",{id:"rect-05_6","data-name":"rect-05 6",className:"cls-3",d:"M249,190h77v-19h-77v19Z"}),Ie.default.createElement("path",{id:"rect-04_6","data-name":"rect-04 6",className:"cls-3",d:"M288,171h38v-38h-38v38Z"}),Ie.default.createElement("path",{id:"rect-03_8","data-name":"rect-03 8",className:"cls-3",d:"M230,171h58v-38h-58v38Z"}),Ie.default.createElement("path",{id:"rect-02_10","data-name":"rect-02 10",className:"cls-3",d:"M288,114h19v19h-19v-19Z"}),Ie.default.createElement("path",{id:"rect-01_19","data-name":"rect-01 19",className:"cls-3",d:"M211,114h38v19h-38v-19Z"})),Ie.default.createElement("g",{id:"IE"},Ie.default.createElement("path",{id:"rect-02_11","data-name":"rect-02 11",className:"cls-8",d:"M538,437h38v-94h-38v94Z"}),Ie.default.createElement("path",{id:"rect-01_20","data-name":"rect-01 20",className:"cls-8",d:"M499,437h39v-94h-39v94Z"})),Ie.default.createElement("g",{id:"HR"},Ie.default.createElement("rect",{id:"rect-02_12","data-name":"rect-02 12",className:"cls-9",x:"941",y:"513",width:"57",height:"19"}),Ie.default.createElement("rect",{id:"rect-01_21","data-name":"rect-01 21",className:"cls-9",x:"941",y:"532",width:"19",height:"19"})),Ie.default.createElement("g",{id:"HK"},Ie.default.createElement("rect",{id:"rect-01_22","data-name":"rect-01 22",className:"cls-3",x:"998",y:"513",width:"58",height:"19"})),Ie.default.createElement("g",{id:"GR"},Ie.default.createElement("path",{id:"Rectangle_687","data-name":"Rectangle 687",className:"cls-6",d:"M1115,627h-40v95h40v-95Z"}),Ie.default.createElement("path",{id:"Rectangle_741","data-name":"Rectangle 741",className:"cls-6",d:"M1152,627h-38v95h38v-95Z"}),Ie.default.createElement("path",{id:"Rectangle_721","data-name":"Rectangle 721",className:"cls-6",d:"M1152,627h19v38h-19v-38Z"}),Ie.default.createElement("rect",{id:"Rectangle_715","data-name":"Rectangle 715",className:"cls-6",x:"1056",y:"608",width:"19",height:"114"})),Ie.default.createElement("g",{id:"FR"},Ie.default.createElement("rect",{id:"rect-06_4","data-name":"rect-06 4",className:"cls-9",x:"691",y:"570",width:"154",height:"38"}),Ie.default.createElement("rect",{id:"rect-05_7","data-name":"rect-05 7",className:"cls-9",x:"653",y:"551",width:"153",height:"19"}),Ie.default.createElement("rect",{id:"rect-04_7","data-name":"rect-04 7",className:"cls-9",x:"653",y:"513",width:"153",height:"38"}),Ie.default.createElement("rect",{id:"rect-03_9","data-name":"rect-03 9",className:"cls-9",x:"653",y:"494",width:"153",height:"19"}),Ie.default.createElement("rect",{id:"rect-02_13","data-name":"rect-02 13",className:"cls-9",x:"653",y:"475",width:"173",height:"19"}),Ie.default.createElement("rect",{id:"rect-01_23","data-name":"rect-01 23",className:"cls-9",x:"653",y:"437",width:"173",height:"38"})),Ie.default.createElement("g",{id:"ES"},Ie.default.createElement("path",{id:"rect-04_8","data-name":"rect-04 8",className:"cls-8",d:"M691,704h-153v-20h153v20Z"}),Ie.default.createElement("path",{id:"rect-03_10","data-name":"rect-03 10",className:"cls-8",d:"M691,684h-153v-38h153v38Z"}),Ie.default.createElement("path",{id:"rect-02_14","data-name":"rect-02 14",className:"cls-8",d:"M768,646h-230v-38h230v38Z"}),Ie.default.createElement("path",{id:"rect-01_24","data-name":"rect-01 24",className:"cls-8",d:"M691,608h-153v-38h153v38Z"})),Ie.default.createElement("g",{id:"EE"},Ie.default.createElement("rect",{id:"rect-01_25","data-name":"rect-01 25",className:"cls-4",x:"1133",y:"285",width:"38",height:"19"})),Ie.default.createElement("g",{id:"DK"},Ie.default.createElement("rect",{id:"rect-02_15","data-name":"rect-02 15",className:"cls-4",x:"883",y:"304",width:"19",height:"76"}),Ie.default.createElement("rect",{id:"rect-01_26","data-name":"rect-01 26",className:"cls-4",x:"845",y:"304",width:"38",height:"76"})),Ie.default.createElement("g",{id:"DE"},Ie.default.createElement("path",{id:"rect-06_5","data-name":"rect-06 5",className:"cls-3",d:"M922,494h-96v-19h96v19Z"}),Ie.default.createElement("path",{id:"rect-05_8","data-name":"rect-05 8",className:"cls-3",d:"M960,475h-134v-19h134v19Z"}),Ie.default.createElement("path",{id:"rect-04_9","data-name":"rect-04 9",className:"cls-3",d:"M960,456h-134v-38h134v38Z"}),Ie.default.createElement("path",{id:"rect-03_11","data-name":"rect-03 11",className:"cls-3",d:"M960,418h-134v-38h134v38Z"}),Ie.default.createElement("path",{id:"rect-02_16","data-name":"rect-02 16",className:"cls-3",d:"M960,380h-58v-19h58v19Z"}),Ie.default.createElement("path",{id:"rect-01_27","data-name":"rect-01 27",className:"cls-3",d:"M845,380h-19v-19h19v19Z"})),Ie.default.createElement("g",{id:"CZ"},Ie.default.createElement("path",{id:"rect-01_28","data-name":"rect-01 28",className:"cls-4",d:"M1037,475h-77v-38h77v38Z"})),Ie.default.createElement("g",{id:"CH"},Ie.default.createElement("path",{id:"rect-02_17","data-name":"rect-02 17",className:"cls-4",d:"M902,513h-96v19h96v-19Z"}),Ie.default.createElement("path",{id:"rect-01_29","data-name":"rect-01 29",className:"cls-4",d:"M902,494h-96v19h96v-19Z"})),Ie.default.createElement("g",{id:"BY"},Ie.default.createElement("rect",{id:"rect-03_12","data-name":"rect-03 12",className:"cls-9",x:"1133",y:"380",width:"96",height:"19"}),Ie.default.createElement("rect",{id:"rect-02_18","data-name":"rect-02 18",className:"cls-9",x:"1171",y:"361",width:"58",height:"19"}),Ie.default.createElement("rect",{id:"rect-01_30","data-name":"rect-01 30",className:"cls-9",x:"1171",y:"323",width:"58",height:"38"})),Ie.default.createElement("g",{id:"BG"},Ie.default.createElement("rect",{id:"rect-02_19","data-name":"rect-02 19",className:"cls-3",x:"1171",y:"589",width:"19",height:"57"}),Ie.default.createElement("path",{id:"rect-01_31","data-name":"rect-01 31",className:"cls-3",d:"M1171,627h-96v-38h96v38Z"})),Ie.default.createElement("g",{id:"BE"},Ie.default.createElement("rect",{id:"rect-01_32","data-name":"rect-01 32",className:"cls-4",x:"731",y:"418",width:"76",height:"19"})),Ie.default.createElement("g",{id:"BA"},Ie.default.createElement("path",{id:"rect-03_13","data-name":"rect-03 13",className:"cls-6",d:"M1018,608h-20v-76h20v76Z"}),Ie.default.createElement("path",{id:"rect-03_14","data-name":"rect-03 14",className:"cls-6",d:"M1037,551h-19v-19h19v19Z"}),Ie.default.createElement("path",{id:"rect-02_20","data-name":"rect-02 20",className:"cls-6",d:"M998,608h-19v-76h19v76Z"}),Ie.default.createElement("rect",{id:"rect-01_33","data-name":"rect-01 33",className:"cls-6",x:"960",y:"532",width:"19",height:"19"})),Ie.default.createElement("g",{id:"AT"},Ie.default.createElement("rect",{id:"rect-02_21","data-name":"rect-02 21",className:"cls-7",x:"902",y:"494",width:"76",height:"19"}),Ie.default.createElement("rect",{id:"rect-01_34","data-name":"rect-01 34",className:"cls-7",x:"922",y:"475",width:"56",height:"19"})),Ie.default.createElement("g",{id:"AL"},Ie.default.createElement("path",{id:"rect-01_35","data-name":"rect-01 35",className:"cls-3",d:"M1037,608h-19v-38h19v38Z"})),Ie.default.createElement("g",{id:"CY"},Ie.default.createElement("rect",{id:"rect-01_36","data-name":"rect-01 36",className:"cls-4",x:"1210",y:"703",width:"38",height:"19"})),Ie.default.createElement("g",{id:"MT"},Ie.default.createElement("rect",{id:"rect-01_37","data-name":"rect-01 37",className:"cls-9",x:"941",y:"722",width:"19",height:"19"})),Ie.default.createElement("g",{id:"SM"},Ie.default.createElement("rect",{id:"rect-01_38","data-name":"rect-01 38",className:"cls-8",x:"922",y:"589",width:"19",height:"19"})),Ie.default.createElement("g",{id:"IL"},Ie.default.createElement("rect",{id:"rect-02_22","data-name":"rect-02 22",className:"cls-3",x:"1267",y:"760",width:"19",height:"57"}),Ie.default.createElement("rect",{id:"rect-01_39","data-name":"rect-01 39",className:"cls-3",x:"1248",y:"779",width:"19",height:"38"}),Ie.default.createElement("rect",{id:"rect-01_40","data-name":"rect-01 40",className:"cls-3",x:"1229",y:"817",width:"38",height:"19"})),Ie.default.createElement("g",{id:"RU"},Ie.default.createElement("path",{id:"rect-19",className:"cls-8",d:"M1458,608h-76v38h76v-38Z"}),Ie.default.createElement("path",{id:"rect-18",className:"cls-8",d:"M1458,589h-95v19h95v-19Z"}),Ie.default.createElement("path",{id:"rect-17",className:"cls-8",d:"M1458,570h-114v19h114v-19Z"}),Ie.default.createElement("path",{id:"rect-16",className:"cls-8",d:"M1458,399h-56v171h56v-171Z"}),Ie.default.createElement("path",{id:"rect-15",className:"cls-8",d:"M1402,399h-58v171h58v-171Z"}),Ie.default.createElement("path",{id:"rect-14",className:"cls-8",d:"M1458,361h-229v38h229v-38Z"}),Ie.default.createElement("path",{id:"rect-13",className:"cls-8",d:"M1458,323h-229v38h229v-38Z"}),Ie.default.createElement("path",{id:"rect-12",className:"cls-8",d:"M1458,285h-287v38h287v-38Z"}),Ie.default.createElement("path",{id:"rect-11",className:"cls-8",d:"M1458,266h-268v19h268v-19Z"}),Ie.default.createElement("path",{id:"rect-10",className:"cls-8",d:"M1458,247h-287v19h287v-19Z"}),Ie.default.createElement("path",{id:"rect-09",className:"cls-8",d:"M1458,190h-229v57h229v-57Z"}),Ie.default.createElement("path",{id:"rect-08",className:"cls-8",d:"M1458,133h-229v57h229v-57Z"}),Ie.default.createElement("path",{id:"rect-07_3","data-name":"rect-07 3",className:"cls-8",d:"M1229,114h-58v133h58V114Z"}),Ie.default.createElement("path",{id:"rect-06_6","data-name":"rect-06 6",className:"cls-8",d:"M1458,95h-152v38h152v-38Z"}),Ie.default.createElement("path",{id:"rect-05_9","data-name":"rect-05 9",className:"cls-8",d:"M1286,95h-115v19h115v-19Z"}),Ie.default.createElement("path",{id:"rect-04_10","data-name":"rect-04 10",className:"cls-8",d:"M1286,76h-134v19h134v-19Z"}),Ie.default.createElement("path",{id:"rect-03_15","data-name":"rect-03 15",className:"cls-8",d:"M1458,57h-133v38h133v-38Z"}),Ie.default.createElement("path",{id:"rect-02_23","data-name":"rect-02 23",className:"cls-8",d:"M1458,38h-114v19h114v-19Z"}),Ie.default.createElement("path",{id:"rect-01_41","data-name":"rect-01 41",className:"cls-8",d:"M1458,19h-76v19h76v-19Z"})),Ie.default.createElement("g",{id:"LU"},Ie.default.createElement("rect",{id:"rect-01_42","data-name":"rect-01 42",className:"cls-8",x:"807",y:"418",width:"19",height:"19"})))));var Bs=[{ISO:"CY",AL:2,AU:2,AT:2,BY:1,BE:1,BA:1,BG:2,HR:1,CY:null,CZ:3,DK:2,EE:2,FI:2,FR:1,DE:2,GR:4,HU:2,IS:2,IE:2,IL:1,IT:1,XK:0,LV:2,LT:3,LU:2,MT:2,MD:1,ME:1,NL:1,MK:1,NO:2,PL:2,PT:2,RO:3,RU:1,SM:0,RS:1,SK:2,SI:2,ES:3,SE:2,CH:2,UA:1,GB:1,Time:"21:10",Name:"Cyprus"},{ISO:"AL",AL:null,AU:0,AT:2,BY:0,BE:0,BA:1,BG:2,HR:2,CY:0,CZ:2,DK:1,EE:1,FI:1,FR:1,DE:2,GR:2,HU:2,IS:1,IE:1,IL:0,IT:2,XK:4,LV:0,LT:1,LU:2,MT:0,MD:0,ME:1,NL:1,MK:4,NO:1,PL:1,PT:1,RO:2,RU:0,SM:1,RS:1,SK:1,SI:2,ES:1,SE:1,CH:2,UA:1,GB:1,Time:"21:14",Name:"Albania"},{ISO:"IL",AL:0,AU:2,AT:3,BY:2,BE:1,BA:0,BG:2,HR:2,CY:2,CZ:3,DK:2,EE:2,FI:2,FR:2,DE:2,GR:2,HU:2,IS:2,IE:2,IL:null,IT:1,XK:0,LV:2,LT:2,LU:2,MT:1,MD:2,ME:0,NL:2,MK:2,NO:2,PL:2,PT:2,RO:3,RU:2,SM:0,RS:1,SK:2,SI:2,ES:2,SE:2,CH:2,UA:2,GB:1,Time:"21:18",Name:"Israel"},{ISO:"BE",AL:0,AU:1,AT:2,BY:2,BE:null,BA:1,BG:1,HR:1,CY:1,CZ:2,DK:1,EE:2,FI:2,FR:2,DE:2,GR:2,HU:1,IS:1,IE:2,IL:0,IT:1,XK:0,LV:2,LT:3,LU:2,MT:0,MD:2,ME:0,NL:2,MK:2,NO:1,PL:2,PT:2,RO:2,RU:2,SM:0,RS:1,SK:1,SI:2,ES:2,SE:2,CH:2,UA:2,GB:1,Time:"21:22",Name:"Belgium"},{ISO:"RU",AL:2,AU:2,AT:3,BY:4,BE:2,BA:2,BG:2,HR:3,CY:3,CZ:3,DK:2,EE:4,FI:3,FR:2,DE:3,GR:3,HU:3,IS:2,IE:2,IL:2,IT:3,XK:0,LV:4,LT:4,LU:2,MT:1,MD:4,ME:2,NL:2,MK:3,NO:2,PL:3,PT:2,RO:4,RU:null,SM:0,RS:3,SK:3,SI:3,ES:2,SE:3,CH:2,UA:2,GB:2,Time:"21:26",Name:"Russia"},{ISO:"MT",AL:2,AU:3,AT:4,BY:2,BE:2,BA:1,BG:2,HR:2,CY:3,CZ:3,DK:3,EE:3,FI:3,FR:2,DE:3,GR:3,HU:3,IS:3,IE:3,IL:2,IT:2,XK:0,LV:3,LT:3,LU:3,MT:null,MD:2,ME:1,NL:3,MK:2,NO:3,PL:3,PT:2,RO:3,RU:2,SM:3,RS:1,SK:2,SI:3,ES:3,SE:3,CH:3,UA:2,GB:2,Time:"21:30",Name:"Malta"},{ISO:"PT",AL:1,AU:1,AT:3,BY:2,BE:2,BA:0,BG:1,HR:1,CY:2,CZ:2,DK:2,EE:2,FI:2,FR:2,DE:3,GR:2,HU:2,IS:2,IE:2,IL:1,IT:1,XK:0,LV:2,LT:3,LU:4,MT:0,MD:2,ME:0,NL:3,MK:2,NO:2,PL:2,PT:null,RO:2,RU:1,SM:0,RS:1,SK:2,SI:2,ES:3,SE:3,CH:3,UA:2,GB:2,Time:"21:34",Name:"Portugal"},{ISO:"RS",AL:2,AU:1,AT:4,BY:1,BE:1,BA:4,BG:2,HR:4,CY:2,CZ:2,DK:2,EE:2,FI:2,FR:2,DE:2,GR:2,HU:2,IS:1,IE:2,IL:1,IT:2,XK:4,LV:1,LT:1,LU:1,MT:1,MD:1,ME:4,NL:1,MK:4,NO:1,PL:1,PT:1,RO:3,RU:1,SM:0,RS:null,SK:3,SI:4,ES:2,SE:2,CH:3,UA:1,GB:1,Time:"21:38",Name:"Serbia"},{ISO:"GB",AL:0,AU:1,AT:3,BY:1,BE:2,BA:0,BG:2,HR:0,CY:2,CZ:2,DK:2,EE:2,FI:2,FR:2,DE:2,GR:1,HU:1,IS:1,IE:2,IL:1,IT:1,XK:0,LV:2,LT:2,LU:2,MT:1,MD:1,ME:1,NL:2,MK:2,NO:2,PL:1,PT:1,RO:2,RU:1,SM:0,RS:0,SK:2,SI:2,ES:2,SE:2,CH:2,UA:1,GB:null,Time:"21:45",Name:"United Kingdom"},{ISO:"GR",AL:2,AU:2,AT:3,BY:1,BE:2,BA:2,BG:3,HR:1,CY:4,CZ:3,DK:2,EE:2,FI:2,FR:2,DE:2,GR:null,HU:2,IS:2,IE:2,IL:1,IT:2,XK:2,LV:2,LT:2,LU:3,MT:1,MD:1,ME:2,NL:4,MK:2,NO:2,PL:2,PT:2,RO:3,RU:1,SM:0,RS:2,SK:1,SI:2,ES:2,SE:2,CH:2,UA:2,GB:1,Time:"21:49",Name:"Greece"},{ISO:"CH",AL:4,AU:2,AT:4,BY:3,BE:2,BA:2,BG:2,HR:2,CY:3,CZ:3,DK:3,EE:3,FI:3,FR:3,DE:3,GR:2,HU:3,IS:3,IE:3,IL:2,IT:2,XK:3,LV:3,LT:4,LU:2,MT:2,MD:3,ME:2,NL:3,MK:3,NO:2,PL:3,PT:3,RO:4,RU:3,SM:0,RS:2,SK:3,SI:4,ES:3,SE:3,CH:null,UA:3,GB:2,Time:"21:54",Name:"Switzerland"},{ISO:"IS",AL:1,AU:4,AT:4,BY:3,BE:3,BA:2,BG:3,HR:3,CY:3,CZ:4,DK:4,EE:4,FI:4,FR:3,DE:4,GR:3,HU:3,IS:null,IE:4,IL:2,IT:3,XK:0,LV:4,LT:4,LU:3,MT:2,MD:2,ME:3,NL:4,MK:3,NO:4,PL:4,PT:3,RO:4,RU:3,SM:2,RS:3,SK:4,SI:4,ES:3,SE:4,CH:3,UA:3,GB:4,Time:"21:58",Name:"Iceland"},{ISO:"ES",AL:0,AU:0,AT:2,BY:0,BE:1,BA:0,BG:1,HR:1,CY:1,CZ:1,DK:1,EE:2,FI:1,FR:2,DE:2,GR:2,HU:2,IS:0,IE:1,IL:1,IT:0,XK:0,LV:0,LT:2,LU:2,MT:0,MD:1,ME:1,NL:1,MK:1,NO:1,PL:0,PT:1,RO:2,RU:0,SM:0,RS:0,SK:1,SI:1,ES:null,SE:2,CH:2,UA:0,GB:1,Time:"22:02",Name:"Spain"},{ISO:"MD",AL:0,AU:0,AT:1,BY:0,BE:0,BA:0,BG:2,HR:0,CY:1,CZ:1,DK:1,EE:1,FI:1,FR:1,DE:0,GR:1,HU:1,IS:0,IE:1,IL:1,IT:1,XK:0,LV:1,LT:1,LU:1,MT:0,MD:null,ME:0,NL:0,MK:2,NO:1,PL:1,PT:1,RO:4,RU:1,SM:0,RS:1,SK:0,SI:0,ES:0,SE:1,CH:0,UA:1,GB:0,Time:"22:06",Name:"Moldova"},{ISO:"DE",AL:1,AU:2,AT:4,BY:2,BE:2,BA:1,BG:2,HR:2,CY:2,CZ:2,DK:2,EE:2,FI:2,FR:2,DE:null,GR:2,HU:2,IS:2,IE:2,IL:2,IT:2,XK:2,LV:2,LT:3,LU:3,MT:1,MD:1,ME:0,NL:2,MK:2,NO:2,PL:2,PT:2,RO:2,RU:2,SM:0,RS:1,SK:2,SI:2,ES:2,SE:2,CH:3,UA:2,GB:2,Time:"22:10",Name:"Germany"},{ISO:"FI",AL:2,AU:3,AT:4,BY:4,BE:3,BA:2,BG:3,HR:3,CY:3,CZ:4,DK:4,EE:4,FI:null,FR:3,DE:4,GR:4,HU:4,IS:4,IE:4,IL:2,IT:3,XK:1,LV:4,LT:4,LU:3,MT:2,MD:3,ME:2,NL:3,MK:3,NO:3,PL:4,PT:3,RO:4,RU:4,SM:0,RS:4,SK:3,SI:4,ES:3,SE:4,CH:3,UA:4,GB:3,Time:"22:14",Name:"Finland"},{ISO:"BG",AL:0,AU:2,AT:3,BY:0,BE:2,BA:1,BG:null,HR:1,CY:2,CZ:2,DK:2,EE:2,FI:1,FR:2,DE:2,GR:2,HU:2,IS:2,IE:2,IL:1,IT:1,XK:0,LV:2,LT:2,LU:2,MT:1,MD:1,ME:1,NL:2,MK:2,NO:2,PL:2,PT:2,RO:3,RU:1,SM:0,RS:2,SK:2,SI:2,ES:2,SE:2,CH:2,UA:1,GB:2,Time:"22:21",Name:"Bulgaria"},{ISO:"LT",AL:1,AU:3,AT:4,BY:3,BE:3,BA:1,BG:2,HR:2,CY:2,CZ:3,DK:4,EE:4,FI:3,FR:2,DE:3,GR:3,HU:3,IS:4,IE:4,IL:2,IT:2,XK:0,LV:4,LT:null,LU:4,MT:2,MD:2,ME:0,NL:3,MK:2,NO:4,PL:3,PT:3,RO:4,RU:3,SM:0,RS:2,SK:3,SI:3,ES:3,SE:4,CH:3,UA:3,GB:4,Time:"22:25",Name:"Lithuania"},{ISO:"UA",AL:2,AU:3,AT:4,BY:4,BE:3,BA:2,BG:3,HR:4,CY:3,CZ:4,DK:3,EE:4,FI:3,FR:3,DE:3,GR:3,HU:4,IS:3,IE:3,IL:2,IT:3,XK:0,LV:4,LT:4,LU:2,MT:2,MD:3,ME:1,NL:3,MK:3,NO:3,PL:4,PT:3,RO:4,RU:4,SM:0,RS:2,SK:4,SI:4,ES:3,SE:3,CH:3,UA:null,GB:2,Time:"22:30",Name:"Ukraine"},{ISO:"FR",AL:1,AU:2,AT:3,BY:2,BE:2,BA:1,BG:2,HR:2,CY:2,CZ:2,DK:2,EE:3,FI:2,FR:null,DE:2,GR:3,HU:2,IS:2,IE:2,IL:2,IT:1,XK:0,LV:3,LT:3,LU:3,MT:1,MD:2,ME:1,NL:3,MK:2,NO:2,PL:2,PT:3,RO:3,RU:2,SM:0,RS:2,SK:3,SI:3,ES:3,SE:2,CH:2,UA:1,GB:1,Time:"22:34",Name:"France"},{ISO:"AZ",AL:1,AU:2,AT:3,BY:1,BE:2,BA:2,BG:3,HR:3,CY:2,CZ:3,DK:2,EE:3,FI:2,FR:2,DE:2,GR:3,HU:3,IS:2,IE:2,IL:2,IT:2,XK:0,LV:2,LT:2,LU:2,MT:2,MD:2,ME:1,NL:2,MK:2,NO:3,PL:2,PT:2,RO:4,RU:2,SM:0,RS:2,SK:3,SI:3,ES:2,SE:2,CH:2,UA:2,GB:1,Time:"22:38",Name:"Azerbaijan"},{ISO:"NO",AL:0,AU:2,AT:3,BY:1,BE:2,BA:0,BG:2,HR:2,CY:2,CZ:2,DK:3,EE:3,FI:3,FR:1,DE:3,GR:2,HU:3,IS:2,IE:2,IL:2,IT:2,XK:0,LV:2,LT:3,LU:2,MT:2,MD:1,ME:0,NL:2,MK:1,NO:null,PL:2,PT:2,RO:3,RU:2,SM:0,RS:1,SK:2,SI:3,ES:2,SE:4,CH:2,UA:2,GB:2,Time:"22:41",Name:"Norway"},{ISO:"NL",AL:0,AU:1,AT:2,BY:0,BE:2,BA:0,BG:1,HR:0,CY:1,CZ:1,DK:1,EE:1,FI:1,FR:1,DE:2,GR:1,HU:2,IS:1,IE:1,IL:1,IT:0,XK:0,LV:0,LT:1,LU:2,MT:0,MD:0,ME:0,NL:null,MK:1,NO:1,PL:0,PT:0,RO:1,RU:0,SM:4,RS:0,SK:1,SI:1,ES:1,SE:1,CH:2,UA:0,GB:1,Time:"22:46",Name:"Netherlands"},{ISO:"IT",AL:3,AU:3,AT:4,BY:4,BE:3,BA:3,BG:4,HR:4,CY:4,CZ:3,DK:3,EE:4,FI:4,FR:3,DE:3,GR:4,HU:4,IS:3,IE:3,IL:2,IT:null,XK:2,LV:4,LT:4,LU:4,MT:2,MD:3,ME:3,NL:3,MK:4,NO:3,PL:4,PT:3,RO:4,RU:4,SM:0,RS:3,SK:4,SI:4,ES:3,SE:3,CH:4,UA:4,GB:2,Time:"22:50",Name:"Italy"},{ISO:"SE",AL:1,AU:1,AT:3,BY:1,BE:2,BA:0,BG:2,HR:1,CY:2,CZ:2,DK:3,EE:3,FI:3,FR:2,DE:2,GR:2,HU:2,IS:3,IE:2,IL:1,IT:1,XK:0,LV:2,LT:3,LU:2,MT:1,MD:2,ME:0,NL:2,MK:2,NO:3,PL:1,PT:1,RO:2,RU:1,SM:4,RS:1,SK:2,SI:3,ES:2,SE:null,CH:2,UA:1,GB:2,Time:"22:54",Name:"Sweden"},{ISO:"SM",AL:2,AU:2,AT:3,BY:1,BE:1,BA:2,BG:2,HR:2,CY:2,CZ:2,DK:2,EE:3,FI:2,FR:1,DE:2,GR:2,HU:3,IS:2,IE:2,IL:1,IT:2,XK:1,LV:2,LT:2,LU:1,MT:1,MD:1,ME:2,NL:2,MK:2,NO:2,PL:2,PT:2,RO:3,RU:1,SM:null,RS:2,SK:2,SI:3,ES:2,SE:2,CH:1,UA:1,GB:2,Time:"22:59",Name:"San Marino"}],qo=[{1:"#4C2D61",2:"#63378A",3:"#8D33FF",4:"#AC82FF",P:"#FE8C3F"},{1:"#996600",2:"#D39427",3:"#FFDD00",4:"#E9FF1F",P:"#FF47ED"},{1:"#235C48",2:"#258558",3:"#26BF26",4:"#33FF33",P:"#E9FF1F"},{1:"#25335C",2:"#24468A",3:"#1F44FF",4:"#85D6FF",P:"#AC82FF"},{1:"#70315B",2:"#A8439E",3:"#FF47ED",4:"#FF80FA",P:"#33FF33"},{1:"#995137",2:"#B8692C",3:"#FE8C3F",4:"#FFBC5E",P:"#FF47ED"},{1:"#7A2822",2:"#AD4337",3:"#FA5137",4:"#FE7A66",P:"#85D6FF"}];var T_=()=>{let[i,t]=(0,ci.useState)(0),[n,r]=(0,ci.useState)(5),[s,a]=(0,ci.useState)(0),[o,u]=(0,ci.useState)(0),[l,c]=(0,ci.useState)(!1);return(0,ci.useEffect)(()=>{l||setTimeout(()=>{o<5?u(o+1):(u(0),c(!0))},500)},[o,l]),(0,ci.useEffect)(()=>{l&&setTimeout(()=>{n<4?r(n+1):n===4?(r(n+1),i!["ISO","Time","Name"].includes(h)).map(h=>{let f=document.getElementById(h)?.childNodes;for(var d in f){if(!l&&Bs[i][h]==null){let p=Bs[i].ISO;o%2===0?f[d[0]]?.setAttribute("style",`fill:${qo[s].P}; stroke:${qo[s].P||""}`):f[d[0]]?.setAttribute("style",`fill:'inherit'; stroke:${qo[s][Bs[i][p]]||""}`)}Bs[i][h]>=n&&l?Bs[i].ISO===h?f[d[0]]?.setAttribute("style",`fill:${qo[s].P}; stroke:${qo[s].P}`):f[d[0]]?.setAttribute("style",`fill:${qo[s][n]||""} ; stroke:${qo[s][n]||""}`):n===5&&Bs[i][h]!==null&&f[d[0]]?.setAttribute("style",`fill:'inherit'; stroke: 'inherit' }`)}})))};var Rn=Pe(Oe(),1);var GP=hr({"0%":{transform:"scaleY(0.1)"},"40%":{transform:"scaleY(1)"},"100%":{transform:"scaleY(1)"}}),I2=({data:i,color:t="blue",alignment:n="left",style:r})=>{let[s,a]=(0,Rn.useState)(0),[o,u]=(0,Rn.useState)(1),l={blue:{mainColor:Vr("blue-dim-3"),highlight:Vr("blue-bright-2")},"blue-bright":{mainColor:Vr("blue-bright-1"),highlight:Vr("pink-bright-2")},green:{mainColor:Vr("green-dim-3"),highlight:Vr("green-bright-2")},purple:{mainColor:Vr("purple-dim-3"),highlight:Vr("purple-bright-2")}},c=Rn.default.useMemo(()=>{let h=Math.max(...i[s].data.map(d=>Array.isArray(d.value)?d.value.reduce((p,m)=>p+m.value,0):d.value)),f=[...i[s].data];for(let d=0;dm+y.value,0);f[d]={...f[d],total:p,percentage:p/h*100,nestedPercentages:f[d].value.map(m=>({...m,percentage:m.value/p*100}))}}else f[d]={...f[d],percentage:f[d].value/h*100};return f},[s]);return(0,Rn.useEffect)(()=>{setTimeout(()=>{s{u(o+1)},[s]),Rn.default.createElement(Se.div,{className:"d9 p da b0",style:{paddingLeft:n==="center"?"84px":"0px",...r}},o&&c.map((h,f)=>Rn.default.createElement(Se.div,{className:"db dc d4 dd",key:f,style:{height:`${h.percentage}%`,backgroundColor:l[t].mainColor,animationIterationCount:i.length>1?"infinite":1,animationName:GP,"&:hover":{backgroundColor:l[t].highlight},[it]:{width:"64px"}}})),Rn.default.createElement("div",{className:"aj de ai",style:{marginLeft:n==="center"?"-84px":"0px"}},Rn.default.createElement(Ne,{variant:"h1",style:{pointerEvents:"none"}},i[s].label),i[s].description&&Rn.default.createElement("div",{className:"n df"},Rn.default.createElement(et,{size:4}),Rn.default.createElement(Ne,{variant:"M2"},i[s].description),Rn.default.createElement(et,{size:1}))))};var tT=Pe(Gi(),1);var Z_={org:"saulx",project:"once-website",env:"production"};var $P=Pe(Oe(),1);var qi=Pe(Oe(),1);var K_=()=>{let{data:i,loading:t}=Ct("get-page",{id:"pad6cd9ffd"}),{data:n,loading:r}=Ct("get-services",{}),{data:s,loading:a}=Ct("get-approach",{}),{data:o,loading:u}=Ct("get-technologies",{}),{data:l,loading:c}=Ct("get-other-translations",{id:"ot2aa48523"});if(t||r||a||u||c)return null;let h=l?.servicesAndSpec.toUpperCase().split(" ");return qi.default.createElement(Se.div,{className:"u p y ao",style:{[_t]:{padding:"0 var(--spacing-horizontal-mobile)"}}},qi.default.createElement(YS,{title:i.title,intro:i.intro}),qi.default.createElement(Zt,null,qi.default.createElement(qS,{data:Object.values(s)}),qi.default.createElement(km,{data:Object.values(n).reverse(),style:{},label:qi.default.createElement(qi.default.Fragment,null,qi.default.createElement(Ne,{variant:"h2"},h[0]),qi.default.createElement(Ne,{variant:"h2",style:{textIndent:pr()}},qi.default.createElement("i",null,h.slice(Math.max(h.length-2,1)).join(" "))))}),qi.default.createElement(Am,{data:Object.values(o).reverse(),title:"Technologies",showCounter:!0})))};var Zo=Pe(Oe(),1);var i6=Pe(Gi(),1);var pt=Pe(Oe(),1);var xr=Pe(Oe(),1);var Q_=Pe(Gi(),1),X_=Se("div",{fontFamily:"Avenue-Mono",fontSize:"13px",textTransform:"uppercase",fontWeight:500,backgroundColor:"#AC82FF",marginRight:6,display:"inline-block",padding:6,lineHeight:"24px",color:"black",[it]:{lineHeight:"14px",padding:"2px 4px",fontSize:"11px",marginRight:"0px"}}),J_=({theme:i="light"})=>{let t=(0,Q_.useRoute)(),{data:n,loading:r}=Ct("get-other-translations",{id:"ot2aa48523"});return r?null:xr.default.createElement(Se.div,{className:"b0 bv",style:{"& img":{userSelect:"none"},[it]:{paddingLeft:"16px"}}},[...Array(5).keys()].map((s,a)=>xr.default.createElement(Se.div,{className:"n dq aj ei ak bj",key:a,style:{backgroundColor:i==="dark"?"#36363d":"#dadae0",top:116+a*154,[_r]:{top:`${112+a*142}px`},[it]:{top:`${36+a*92}px`}}})),xr.default.createElement(Ne,{variant:"SH2",style:{color:i==="dark"?"#fff":"#000"}},xr.default.createElement("b",null,n?.workWeProud)),xr.default.createElement(et,{size:4}),xr.default.createElement(Se.div,{style:{"& > div":{color:i==="dark"?"white":"inherit"}}},xr.default.createElement(et,{size:6}),xr.default.createElement("div",{className:"b0"},xr.default.createElement(Se.div,{className:"fe fz b0",style:{[it]:{paddingBottom:"300px"},"&:hover":{"& .euro-1":{top:"440px !important",userSelect:"none"},"& .euro-2":{left:"240px !important",top:"300px !important",userSelect:"none"},"& .euro-3":{left:"794px !important",userSelect:"none"}}}},xr.default.createElement(Lt,{gap:6,justify:"start"},xr.default.createElement(X_,null,"Voting"),xr.default.createElement(X_,null,"Interactive")),xr.default.createElement(et,{size:3}),xr.default.createElement(Se.div,{onClick:()=>{t.setLocation("/our-work/eurovision"),window.scrollTo(0,0)}},xr.default.createElement(Ne,{variant:"h2"},"EUROVISION"),xr.default.createElement(Ne,{variant:"h2"},"SONG CONTEST"),xr.default.createElement(et,{size:4}),xr.default.createElement(Ne,{variant:"B1"},n?.millionsVotes)),xr.default.createElement(Se.div,{className:"euro-3 aj fg fh fi fj fk",style:{[_r]:{width:"256px",height:"256px"},[it]:{width:"108px",height:"108px",left:"220px",top:"274px"}}},xr.default.createElement(Bt,{showControls:!1,autoPlay:!0,loop:!0,thumbnail:"https://files-production-saulx-once-website-production-en-c-cq-nt-hx0.based.dev/fi7712a611/f66932bb-7889-46da-a02d-233a0e05d4a1-db07392f-c23a-4024-8423-832fd82c84f8-a39ef597-ab48-4627-8379-5afe1b41aab4.jpeg",src:"https://customer-rb4scmumy816frfn.cloudflarestream.com/25e6d3c1f2fff2933a52c65ef924f9b3/manifest/video.m3u8"})),xr.default.createElement(Se.img,{className:"euro-2 aj fl fm fn fk",onClick:()=>{t.setLocation("/our-work/eurovision"),window.scrollTo(0,0)},draggable:"false",src:"https://files-production-saulx-once-website-production-en-c-cq-nt-hx0.based.dev/fi9463aade/44618948-2522-4ff3-91db-2460c9693b30-1e5313c1-984f-44e6-9cff-7cb0f83b0e50-3dea7142-d526-40f9-98ec-473e51cc8d83.jpeg",style:{[_r]:{maxWidth:"424px"},[it]:{maxWidth:"274px",left:"0px",top:"178px"}}}),xr.default.createElement(Se.div,{className:"euro-1 aj a2 fo fk fp",draggable:"false",style:{[_r]:{maxWidth:"186px"},[it]:{display:"none"}}},xr.default.createElement(Bt,{showControls:!1,autoPlay:!0,loop:!0,thumbnail:"https://files-production-saulx-once-website-production-en-c-cq-nt-hx0.based.dev/fi426b42a9/371ebf02-8f74-4357-8f23-55b396d9bc99-c66d4cd4-adcc-412a-808e-42951c408dd5-34b09961-d9b0-488a-8895-360043937d56.png",src:"https://customer-rb4scmumy816frfn.cloudflarestream.com/5bb99add46a41399fff45544230b50d0/manifest/video.m3u8"})))),xr.default.createElement(et,{size:10})))};var WP=hr({"0%":{opacity:0},"99%":{opacity:0},"100%":{opacity:1}}),YP=hr({"0%":{marginTop:300,opacity:0},"70%":{marginTop:300,opacity:0},"100%":{marginTop:0,opacity:1}}),e6=()=>{let{width:i,height:t}=ll();return Sm(!0),(0,pt.useEffect)(()=>{setTimeout(()=>{Wd()},2e3)},[]),pt.default.createElement(wm,{color:"blue"},pt.default.createElement("div",{className:"a4 b0"},pt.default.createElement("div",{className:"aj aw a2 ak bs bt bu",style:{background:Vr("blue-bright-2"),zIndex:-1,minHeight:i>640?760:354,animation:`${WP} 2s ease-in`}}),pt.default.createElement(et,{size:10}),pt.default.createElement(Se.div,{className:"bv bw",style:{[it]:{paddingLeft:"16px",paddingRight:"16px"}}},pt.default.createElement(tr,{string:"RTL GERMANY"}),pt.default.createElement(et,{size:2}),pt.default.createElement(tr,{string:"Pioneering Interactive TV Experiences",variant:"SH2"})),pt.default.createElement(et,{size:8}),pt.default.createElement("div",{className:"bt bx",style:{animation:`${YP} 1.5s ease-in`}},pt.default.createElement("img",{className:"n",src:"https://files-production-saulx-once-website-production-en-c-cq-nt-hx0.based.dev/fib18c5dc7/831bace8-00ee-40ab-b2ec-924b8fa2188d-2c618d50-ed04-4581-90f6-d12affef928f-728a6e6c-5739-4d89-92d8-57f6ba6c967e.jpeg"}),pt.default.createElement(et,{size:4}),pt.default.createElement(Zt,{style:{maxWidth:"1196px"}},pt.default.createElement(Lt,{justify:"start",style:{[it]:{flexDirection:"column"}}},pt.default.createElement(Ne,{variant:"M2",style:{textTransform:"uppercase",flex:1}},"Client: RTL Germany"),pt.default.createElement(Ne,{variant:"M2",style:{textTransform:"uppercase",flex:1}},"Voting / Media / Fintech")),pt.default.createElement(et,{size:5}),pt.default.createElement(Ne,{variant:"SH1",style:{textIndent:pr()}},"In the ever-evolving landscape of television, captivating and maintaining audience engagement is paramount. RTL Germany, a premier European entertainment broadcaster, excels in this art. For over two decades, Once has been privileged to partner with RTL Germany, spearheading interactive initiatives that propel their programming to unprecedented levels of engagement and innovation."),pt.default.createElement(et,{size:6})))),pt.default.createElement(et,{size:6}),pt.default.createElement(Se.div,{className:"by bz c0 c1",style:{[_r]:{paddingLeft:"32px",paddingRight:"32px"},[it]:{paddingLeft:"16px",paddingRight:"16px"}}},pt.default.createElement(Bt,{autoPlay:!0,loop:!0,src:"https://files-production-saulx-once-website-production-en-c-cq-nt-hx0.based.dev/fi2f1e0903/e6e68e79-78d2-4e4a-aedc-be1be13aa1d1-f1d5276b-6cdb-403c-a304-8d49bd6dbe80-c2a8bffc-17d9-407e-9701-d80c4b424f46.mp4"})),pt.default.createElement(et,{size:5}),pt.default.createElement(Zt,{style:{maxWidth:"1228px"}},pt.default.createElement(Lt,{grid:!0,style:{[it]:{flexDirection:"column"}}},pt.default.createElement(Se.div,{className:"ah c2",style:{[it]:{marginTop:"24px"}}},pt.default.createElement(Ne,{variant:"SH1",style:{textTransform:"uppercase"}},"ADAPTING TO THE"),pt.default.createElement(Ne,{variant:"SH1",style:{textTransform:"uppercase"}},pt.default.createElement("i",null,"DIGITAL AGE")),pt.default.createElement(et,{size:5}),pt.default.createElement(Ne,null,"As the digital revolution reshapes the media landscape, with social media, streaming services, and online platforms becoming ubiquitous, Once and RTL have remained at the vanguard of innovation. Our relentless pursuit of cutting-edge interactive solutions has led to the creation of Tally, a state-of-the-art SaaS platform designed to redefine viewer engagement for the modern era.",pt.default.createElement("br",null),pt.default.createElement("br",null),"Tally, built upon Once's robust live data platform Based, is engineered to manage millions of concurrent users while delivering real-time data seamlessly. This revolutionary web application empowers RTL to craft complex, interactive experiences, making it easier than ever to connect with their audience.")),pt.default.createElement(Se.div,{className:"ah c3",style:{[it]:{marginTop:"54px"}}},pt.default.createElement(Ne,{variant:"SH1",style:{textTransform:"uppercase"}},"A JOURNEY FROM"),pt.default.createElement(Ne,{variant:"SH1",style:{textTransform:"uppercase"}},pt.default.createElement("i",null,"the '90s to now")),pt.default.createElement(et,{size:5}),pt.default.createElement(Ne,{style:{paddingLeft:"64px"}},"Our collaboration dates back to the 1990s, beginning with the integration of pioneering voice and SMS technology into RTL's shows. This breakthrough led to the creation of a universal platform for viewer interaction, marking the dawn of real-time audience engagement in television history.",pt.default.createElement("br",null),pt.default.createElement("br",null),"This technology was a game-changer, introducing interactive formats that allowed viewers to influence show outcomes, participate in contests, and become an active part of the television experience. From gripping reality TV competitions to captivating late-night quizzes, our partnership transformed passive viewers into active participants, enriching the viewing experience across RTL\u2019s diverse programming slate"))),pt.default.createElement(Lt,{gap:64,style:{marginTop:128,paddingBottom:128,[it]:{flexDirection:"column",marginTop:"64px"}},align:"start"},pt.default.createElement("div",{className:"ah"},pt.default.createElement(Ne,{variant:"SH1",style:{textTransform:"uppercase"}},"Frictionless"),pt.default.createElement(Ne,{variant:"SH1",style:{textTransform:"uppercase",marginBottom:64}},pt.default.createElement("i",null,"interaction")),pt.default.createElement("div",{className:"c4"},pt.default.createElement(Bt,{showControls:!1,autoPlay:!0,loop:!0,thumbnail:"https://files-production-saulx-once-website-production-en-c-cq-nt-hx0.based.dev/fi687170f6/913c2a32-7844-4925-b3d7-83c6302d54a5-027529d4-a9b3-4093-9517-32de85964016-b71b5ace-c36c-4161-bf9c-aa4728192b0a.png",src:"https://customer-rb4scmumy816frfn.cloudflarestream.com/4272d9567db6244080afceaa44ee711f/manifest/video.m3u8"}))),pt.default.createElement(Se.div,{className:"ah c5",style:{[it]:{marginTop:"0px"}}},pt.default.createElement(Se.div,{className:"c4 c6 c7",style:{[it]:{marginTop:"0px",marginBottom:"64px"}}},pt.default.createElement(Bt,{showControls:!1,autoPlay:!0,loop:!0,src:"https://customer-rb4scmumy816frfn.cloudflarestream.com/80ff826bf2ba84bc627bbd9ce2356a1f/manifest/video.m3u8"})),pt.default.createElement(Ne,{variant:"SH1",style:{textTransform:"uppercase"}},"Redefining television"),pt.default.createElement(Ne,{variant:"SH1",style:{textTransform:"uppercase"}},pt.default.createElement("i",null,"for the digital")),pt.default.createElement(Ne,{variant:"SH1",style:{textTransform:"uppercase"}},pt.default.createElement("i",null,"generation")),pt.default.createElement(et,{size:5}),pt.default.createElement(Ne,{style:{paddingLeft:"64px"}},"With Tally, RTL Germany is not just engaging its audience; it's revolutionizing the very fabric of television formats. This platform enables an array of interactive experiences, from immersive play-along quizzes and live polling during talk shows to fostering community through real-time chatting. The possibilities for engagement are limitless.",pt.default.createElement("br",null),pt.default.createElement("br",null),"The adoption of Tally across RTL\u2019s programming has been transformative, enabling shows to captivate hearts and minds like never before. Our partnership continues to break new ground, setting new standards for digital engagement in the television industry. We're excited to forge ahead, continuing to innovate and inspire together with RTL Germany."))),pt.default.createElement(J_,null)))};var go=Pe(Oe(),1);var t6=Se("div",{height:"176px",[MS]:{height:"128px"},[jS]:{height:"96px"},[PS]:{height:"96x"},[DS]:{height:"64x"},[OS]:{height:"48px"}});var r6=({src:i,thumbnail:t,title:n,description:r,link:s})=>go.default.createElement("div",{className:"n"},go.default.createElement(Bt,{src:i,thumbnail:t,link:s,shadow:!0,style:{marginBottom:"18px",aspectRatio:"4/3",height:"auto",overflow:"hidden",cursor:"pointer","& video":{objectFit:"cover !important",aspectRatio:"4/3",transform:"scale(1.4)"}},showControls:!1,playOnHover:!0,loop:!0}),go.default.createElement(wn,{theme:"dark",animate:!1,style:{justifyContent:"start",minWidth:"136px"},onClick:()=>{window.open(`${s}`,"_self")}},n),go.default.createElement(Se.p,{className:"c8 c9 ca",style:{[Mt]:{fontSize:"15px"}}},r)),n6=()=>go.default.createElement(Se.div,null,go.default.createElement(Se.div,{className:"bd cb cc",style:{[Mt]:{gap:"16px"}}},go.default.createElement(r6,{src:"https://customer-rb4scmumy816frfn.cloudflarestream.com/bbbeec6e223d8691ad2965e1aada0dc5/manifest/video.m3u8",thumbnail:"https://files-production-saulx-once-website-production-en-c-cq-nt-hx0.based.dev/cdn-cgi/image/w=1024/fi3ba67918/614c722a-706f-4338-8a96-fbcda1d2496c-42a8713c-5359-409a-8f55-1980c712dc1b-abf01772-3add-4a53-b278-f50c64f651e3.png",title:"Eurovision",description:"Supporting 1.3 million concurrent users from 189 countries",link:"/our-work/eurovision"}),go.default.createElement(r6,{src:"",thumbnail:"https://files-production-saulx-once-website-production-en-c-cq-nt-hx0.based.dev/fib18c5dc7/831bace8-00ee-40ab-b2ec-924b8fa2188d-2c618d50-ed04-4581-90f6-d12affef928f-728a6e6c-5739-4d89-92d8-57f6ba6c967e.jpeg",title:"RTL Germany",description:"Pioneering interactive TV experiences.",link:"/our-work/rtl-germany"})),go.default.createElement(t6,null));var s6=()=>{let i=(0,i6.useRoute)("[section]/[job]"),{section:t,job:n}=i.path,{data:r,loading:s}=Ct("get-page",{id:"pa031cdd42"}),{data:a,loading:o}=Ct("get-work",{id:"pa031cdd42"});if(s||o)return null;let u=document.querySelector("body");return u.style.background="black",Zo.default.createElement(Zt,{style:{backgroundColor:n?"var(--color-white)":"var(--color-black)",padding:n?0:"var(--spacing-horizontal-desktop)",[_t]:{padding:"var(--spacing-horizontal-mobile)"}}},n?n==="eurovision"?Zo.default.createElement(__,null):n==="rtl-germany"?Zo.default.createElement(e6,null):null:Zo.default.createElement(Zo.default.Fragment,null,Zo.default.createElement(QS,{title:r.title,intro:r.intro}),Zo.default.createElement(n6,null),a&&Zo.default.createElement(R_,{data:Object.values(a),theme:"dark"})))};var Zi=Pe(Oe(),1);var o6=()=>{let{data:i,loading:t}=Ct("get-page",{id:"pa83305193"}),{data:n,loading:r}=Ct("get-connections",{}),{data:s,loading:a}=Ct("get-other-translations",{id:"ot2aa48523"});if(t||r||a)return null;let o=s?.connectionsAtCore.toUpperCase().split(" "),u=s?.wantToJoinOurTeam.toUpperCase().split(" ");return Zi.default.createElement(Se.div,{className:"ao",style:{[_t]:{padding:"0 var(--spacing-horizontal-mobile)"}}},Zi.default.createElement(KS,{title:i.title}),Zi.default.createElement(XS,{intro:i.intro,paragraph:i.paragraph}),Zi.default.createElement("img",{className:"ap n",src:"https://files-production-saulx-once-website-production-en-c-cq-nt-hx0.based.dev/fi9b6e8021/bb7ddfc9-59dd-4a9d-931f-f85857f930a9-144fb43e-1f72-4559-8c02-9f06cc4631e9-38907708-37fe-436f-b9b9-ee10997c0339.jpeg"}),Zi.default.createElement(Zt,null,Zi.default.createElement(km,{data:Object.values(n).reverse(),style:{position:"relative",[Mt]:{marginTop:"54px"}},label:Zi.default.createElement(Zi.default.Fragment,null,Zi.default.createElement(Ne,{variant:"h2"},Zi.default.createElement("i",null,o[0])),Zi.default.createElement(Ne,{variant:"h2",style:{textIndent:pr()}},o[1]," ",o[2]," ",o[3])),description:s.andNotJustDigital})))};var bl=Pe(Oe(),1);var a6=Pe(Gi(),1);var l6=()=>{let i=(0,a6.useRoute)("[section]/[job]"),{section:t,job:n}=i.path,{data:r,loading:s}=Ct("get-page",{id:"pa70cc7fd7"}),{data:a,loading:o}=Ct("get-careers",{}),{data:u,loading:l}=Ct("get-other-translations",{id:"ot2aa48523"});if(s||o||l)return null;let c=Object.values(a).map(h=>({project:h.title,location:h.offices.join(", "),link:`/careers/${h.title.split(" ").join("-").toLowerCase()}`,linkLabel:"View Job"}));return bl.default.createElement(Zt,null,n?bl.default.createElement(A_,null):bl.default.createElement(Se.div,{className:"ao",style:{[_t]:{padding:"0 var(--spacing-horizontal-mobile)"}}},bl.default.createElement(E_,{title:r.title,intro:r.intro,parSubTitle:r.parSubTitle,paragraph:r.paragraph}),c&&bl.default.createElement(Am,{title:u.openings,showCounter:!0,data:c}),bl.default.createElement(k_,null)))};var M2=Pe(Oe(),1);var u6=()=>{let{data:i,loading:t}=Ct("get-page",{id:"pa3e8930b6"});return t?null:M2.default.createElement(Se.div,{className:"a3 ao",style:{[_t]:{padding:"0 var(--spacing-horizontal-mobile)"}}},M2.default.createElement(M_,{title:i.title,intro:i.intro}))};var Qd=Pe(Oe(),1);var c6=()=>{let{data:i,loading:t}=Ct("get-page",{id:"prcee05de4"});return t?null:Qd.default.createElement(Zt,null,Qd.default.createElement("div",{className:"aq ar"},Qd.default.createElement(Ne,{variant:"SH1"},"Privacy")),Qd.default.createElement(Se.div,{className:"aq as",style:{"& p":{fontSize:18,fontWeight:400,lineHeight:"24px",marginBottom:16},"& h3":{fontSize:32,fontWeight:600,marginBottom:12}},dangerouslySetInnerHTML:{__html:i?.content}}))};var Vu=Pe(Oe(),1);var d6=()=>{let{data:i,loading:t}=Ct("get-page",{id:"im6b4040fb"});return t?null:Vu.default.createElement(Se.div,{className:"p ab ac ad ae af ag",style:{[_t]:{paddingLeft:"var(--spacing-horizontal-mobile)",paddingRight:"var(--spacing-horizontal-mobile)"},[Mt]:{flexDirection:"column",gap:"var(--spacing-vertical)"}}},Vu.default.createElement(Ne,{variant:"SH1",style:{flex:1,textTransform:"uppercase",zIndex:1}},"Imprint"),Vu.default.createElement(Se.div,{className:"ah ai a4",style:{"& p":{marginBottom:24,"@media only screen and (max-width: 480px)":{marginTop:"16px"}},"& h3":{fontSize:32,fontWeight:600,marginBottom:12}},dangerouslySetInnerHTML:{__html:i?.content}}),Vu.default.createElement(Se.div,{className:"aj a1 ak al am an",style:{"& canvas":{width:"50vw !important",height:"100% !important",transform:"translateX(0%)"}}},Vu.default.createElement(dn,{columns:48})))};var Fn=Pe(Oe(),1);var f6=Pe(Gi(),1);var Fm=({children:i,onClick:t})=>Fn.default.createElement("div",{className:"n o p q r s t u v",onClick:t},i),h6=({setMobileMenu:i})=>{let t=(0,f6.useRoute)(),{data:n,loading:r}=Ct("get-other-translations",{id:"ot2aa48523"});if(r)return;let s=n?.whatWeDo.toUpperCase().split(" "),a=n?.ourWork.toUpperCase().split(" "),o=n?.aboutUs.toUpperCase().split(" ");return(0,Fn.useEffect)(()=>(document.documentElement.style.overflow="hidden",()=>document.documentElement.style.overflow="auto"),[]),Fn.default.createElement(Se.div,{className:"w n x p y z a0 a1 a2 a3 a4 a5 a6 a7 a8 a9",style:{"& h2":{color:"var(--color-white)"},"@keyframes":{"0%":{opacity:1,transform:"translateY(-100vw)"},"100%":{opacity:1,transform:"translateY(0vw)"}},[Tr]:{display:"flex"}}},Fn.default.createElement(Fm,{onClick:()=>{t.setLocation("/what-we-do"),i(!1),window.scrollTo(0,0)}},Fn.default.createElement("h2",{className:"S-H2"},s[0]," ",Fn.default.createElement("i",null,s[1]," ",s[2]))),Fn.default.createElement(Fm,{onClick:()=>{t.setLocation("/our-work"),i(!1),window.scrollTo(0,0)}},Fn.default.createElement("h2",{className:"S-H2"},a[0]," ",Fn.default.createElement("i",null,a[1]))),Fn.default.createElement(Fm,{onClick:()=>{t.setLocation("/about-us"),i(!1),window.scrollTo(0,0)}},Fn.default.createElement("h2",{className:"S-H2"},o[0]," ",Fn.default.createElement("i",null,o[1]))),Fn.default.createElement(Fm,{onClick:()=>{t.setLocation("/contact"),i(!1),window.scrollTo(0,0)}},Fn.default.createElement("h2",{className:"S-H2",style:{textTransform:"uppercase"}},"Contact")))};var Ys=Pe(Oe(),1);var Gu=Pe(Oe(),1);var Nm=({text:i,variant:t="default",animation:n=!0})=>{let r={default:{container:{},heading:{textIndent:"var(--spacing-indent)",maxWidth:"var(--fraction-twothirds)",[Tr]:{textIndent:"10vw",maxWidth:"none"}},animationContainer:{}},alt:{container:{display:"flex",justifyContent:"right"},heading:{textIndent:"var(--spacing-indent)",maxWidth:"var(--fraction-twothirds)",[Tr]:{textIndent:"10vw",maxWidth:"none"}},animationContainer:{position:"absolute",right:"auto",left:"0","& canvas":{width:"50vw !important",height:"100% !important",transform:"translateX(-33%)"}}}},s=r[t]||r.default;return Gu.default.createElement("div",{style:{display:"flex",justifyContent:"center",position:"relative",overflow:"hidden"}},Gu.default.createElement(Se.div,{className:"a4 au av",style:{[_t]:{padding:"var(--spacing-vertical) var(--spacing-horizontal-mobile)"},...s.container}},Gu.default.createElement(Se.h3,{style:{...s.heading}},i)),n&&Gu.default.createElement(Se.div,{className:"aj aw ak al am an",style:{"& canvas":{width:"50vw !important",height:"100% !important",transform:"translateX(0%)"},...s.animationContainer}},Gu.default.createElement(dn,{columns:48})))};var Lr=Pe(Oe(),1);var qP=()=>{let i=Array.from({length:16},(n,r)=>25+r*5);return`${i[Math.floor(Math.random()*i.length)]}%`},ZP=({color:i="var(--color-grey6)",delay:t=0,trigger:n=!1})=>{let r=(0,Lr.useRef)(qP()),[s,a]=(0,Lr.useState)(!1);return(0,Lr.useEffect)(()=>{if(n){let o=setTimeout(()=>a(!0),t);return()=>clearTimeout(o)}},[n,t]),Lr.default.createElement("div",{className:"ah n ax ay",style:{backgroundColor:i,height:s?r.current:"0%"}})},KP=i=>{let t=i.match(/^([\d.,]+)\s*(.*)$/);if(!t)return{number:0,suffix:""};let n=parseFloat(t[1].replace(",","")),r=t[2];return{number:n,suffix:r}},XP=(i,t=10,n=800,r=!1)=>{let[s,a]=(0,Lr.useState)(0);return(0,Lr.useEffect)(()=>{if(!r)return;let o=Math.max(Number((i/t).toFixed(i%1===0?0:1)),1),u=0,l=n/t,c=setInterval(()=>{u+=o,u>=i?(a(i),clearInterval(c)):a(Number(u.toFixed(i%1===0?0:1)))},l);return()=>clearInterval(c)},[i,t,n,r]),s},j2=({color:i="lightgray",label:t="",description:n="",children:r})=>{let s=(0,Lr.useRef)(null),[a,o]=(0,Lr.useState)(!1),[u,l]=(0,Lr.useState)(!1);(0,Lr.useEffect)(()=>{let d=new IntersectionObserver(([p])=>{p.isIntersecting&&!u&&(o(!0),l(!0))},{threshold:1});return s.current&&d.observe(s.current),()=>{s.current&&d.unobserve(s.current)}},[u]);let{number:c,suffix:h}=KP(t),f=XP(c,40,1600,u);return Lr.default.createElement("div",{className:"p y az ah n b0",ref:s},Lr.default.createElement(Se.div,{className:"p ab ah n b1 b2 b0 b3",style:{[_t]:{minHeight:"15vw",maxHeight:"15vw"},[ji]:{minHeight:"35vw",maxHeight:"35vw"}}},Lr.default.createElement("h3",{className:"aj b4 a2"},f,h?` ${h}`:""),[0,1,2,3].map(d=>Lr.default.createElement(ZP,{key:d,color:i,delay:d*300,trigger:a}))),Lr.default.createElement(Ne,{variant:"M2",style:{}},n),r)},p6=()=>Lr.default.createElement("div",{style:{display:"flex",justifyContent:"center"}},Lr.default.createElement(Se.div,{className:"p ab ac n au av",style:{[_t]:{padding:"var(--spacing-vertical) var(--spacing-horizontal-mobile)"},[ji]:{flexDirection:"column",gap:"calc(var(--spacing-vertical) / 2)"}}},Lr.default.createElement(j2,{color:"var(--color-purple6)",label:"1.3 million",description:"peak concurrent users"}),Lr.default.createElement(j2,{color:"var(--color-yellow6)",label:"189",description:"countries' traffic served"}),Lr.default.createElement(j2,{color:"var(--color-orange6)",label:"32 ms",description:"queries"})));var Qt=Pe(Oe(),1);var ir=Pe(Oe(),1);var Yu=Pe(Oe(),1);var Vs=Pe(Oe(),1),P2=()=>Vs.default.createElement(Vs.default.Fragment,null,Vs.default.createElement("path",{d:"M0 600H110V0L0 0.15V600Z",fill:"black"}),Vs.default.createElement("path",{d:"M520 600H410V0.15L520 0V600Z",fill:"black"}),Vs.default.createElement("path",{d:"M210.086 0H110.086V99.8438H210.086V0Z",fill:"black"}),Vs.default.createElement("path",{d:"M410.031 299.859H310.031V399.859H410.031V299.859Z",fill:"black"}),Vs.default.createElement("path",{d:"M310.059 99.8496H210.059V199.85H310.059V99.8496Z",fill:"black"}),Vs.default.createElement("path",{d:"M210.086 99.8496H110.086V199.85H210.086V99.8496Z",fill:"black"}),Vs.default.createElement("path",{d:"M210.086 399.832H110.086V499.832H210.086V399.832Z",fill:"black"}),Vs.default.createElement("path",{d:"M310.059 199.822H210.059V299.822H310.059V199.822Z",fill:"black"}));var Ki=Pe(Oe(),1),m6=()=>Ki.default.createElement(Ki.default.Fragment,null,Ki.default.createElement("path",{d:"M0 600H110V0L0 0.15V600Z",fill:"black"}),Ki.default.createElement("path",{d:"M520 600H410V0.15L520 0V600Z",fill:"black"}),Ki.default.createElement("path",{d:"M310 99.8516H210V199.852H310V99.8516Z",fill:"black"}),Ki.default.createElement("path",{d:"M310 399.832H210V499.832H310V399.832Z",fill:"black"}),Ki.default.createElement("path",{d:"M209.963 99.8516H109.963V199.852H209.963V99.8516Z",fill:"black"}),Ki.default.createElement("path",{d:"M209.963 399.832H109.963V499.832H209.963V399.832Z",fill:"black"}),Ki.default.createElement("path",{d:"M409.973 199.824H309.973V299.824H409.973V199.824Z",fill:"black"}),Ki.default.createElement("path",{d:"M409.973 499.805H309.973V599.805H409.973V499.805Z",fill:"black"}),Ki.default.createElement("path",{d:"M310 199.824H210V299.824H310V199.824Z",fill:"black"}));var Xi=Pe(Oe(),1),g6=()=>Xi.default.createElement(Xi.default.Fragment,null,Xi.default.createElement("path",{d:"M0 600H110V0L0 0.15V600Z",fill:"black"}),Xi.default.createElement("path",{d:"M520 600H410V0.15L520 0V600Z",fill:"black"}),Xi.default.createElement("path",{d:"M210.03 299.859H110.027V399.859H210.03V299.859Z",fill:"black"}),Xi.default.createElement("path",{d:"M410.034 299.859H310.031V399.859H410.034V299.859Z",fill:"black"}),Xi.default.createElement("path",{d:"M310.003 399.861H210V499.861H310.003V399.861Z",fill:"black"}),Xi.default.createElement("path",{d:"M410.034 99.8516H310.031V199.852H410.034V99.8516Z",fill:"black"}),Xi.default.createElement("path",{d:"M210.03 99.8516H110.027V199.852H210.03V99.8516Z",fill:"black"}),Xi.default.createElement("path",{d:"M410.034 499.863H310.031V599.863H410.034V499.863Z",fill:"black"}),Xi.default.createElement("path",{d:"M310.003 199.855H210V299.855H310.003V199.855Z",fill:"black"}));var Hm=Pe(Oe(),1),y6=()=>Hm.default.createElement(Hm.default.Fragment,null,Hm.default.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M210 0H110V0.156209L0 0.30617V600H110V599.844H210V499.87H110V399.896H310V599.844H410V600H520V0.156209L410 0.30617V399.896H310V199.948H210V0ZM210 199.948V299.922H110V199.948H210Z",fill:"black"}));var Qi=Pe(Oe(),1),v6=()=>Qi.default.createElement(Qi.default.Fragment,null,Qi.default.createElement("path",{d:"M0 600H110V0L0 0.15V600Z",fill:"black"}),Qi.default.createElement("path",{d:"M520 600H410V0.15L520 0V600Z",fill:"black"}),Qi.default.createElement("path",{d:"M210.03 299.859H110.027V399.859H210.03V299.859Z",fill:"black"}),Qi.default.createElement("path",{d:"M310.003 299.859H210V399.859H310.003V299.859Z",fill:"black"}),Qi.default.createElement("path",{d:"M410.034 299.859H310.031V399.859H410.034V299.859Z",fill:"black"}),Qi.default.createElement("path",{d:"M410.034 399.861H310.031V499.861H410.034V399.861Z",fill:"black"}),Qi.default.createElement("path",{d:"M410.034 199.855H310.031V299.855H410.034V199.855Z",fill:"black"}),Qi.default.createElement("path",{d:"M310.003 499.863H210V599.863H310.003V499.863Z",fill:"black"}),Qi.default.createElement("path",{d:"M210.03 199.855H110.027V299.855H210.03V199.855Z",fill:"black"}));var Ji=Pe(Oe(),1),b6=()=>Ji.default.createElement(Ji.default.Fragment,null,Ji.default.createElement("path",{d:"M0 600.001H110V0.152344L0 0.302306V600.001Z",fill:"black"}),Ji.default.createElement("path",{d:"M520 600.001H410V0.302306L520 0.152344V600.001Z",fill:"black"}),Ji.default.createElement("path",{d:"M210.028 299.934H110.025V399.908H210.028V299.934Z",fill:"black"}),Ji.default.createElement("path",{d:"M310.002 299.934H210V399.908H310.002V299.934Z",fill:"black"}),Ji.default.createElement("path",{d:"M410.036 0H310.033V99.9748H410.036V0Z",fill:"black"}),Ji.default.createElement("path",{d:"M310.002 399.909H210V499.884H310.002V399.909Z",fill:"black"}),Ji.default.createElement("path",{d:"M410.036 399.909H310.033V499.884H410.036V399.909Z",fill:"black"}),Ji.default.createElement("path",{d:"M210.028 99.9785H110.025V199.953H210.028V99.9785Z",fill:"black"}),Ji.default.createElement("path",{d:"M410.036 199.957H310.033V299.932H410.036V199.957Z",fill:"black"}));var Jd=Pe(Oe(),1),x6=()=>Jd.default.createElement(Jd.default.Fragment,null,Jd.default.createElement("path",{d:"M110 600H0V0.15L110 0V99.8438H210V199.844H110V299.844H210V399.844H110V499.844H310V599.844H110V600Z",fill:"black"}),Jd.default.createElement("path",{d:"M210 299.844V199.844H410V0.15L520 0V600H410V399.844H310V299.844H210Z",fill:"black"}));var es=Pe(Oe(),1),S6=()=>es.default.createElement(es.default.Fragment,null,es.default.createElement("path",{d:"M0 600H110V0L0 0.15V600Z",fill:"black"}),es.default.createElement("path",{d:"M520 600H410V0.15L520 0V600Z",fill:"black"}),es.default.createElement("path",{d:"M210.03 0H110.027V99.8438H210.03V0Z",fill:"black"}),es.default.createElement("path",{d:"M310.003 299.859H210V399.859H310.003V299.859Z",fill:"black"}),es.default.createElement("path",{d:"M410.034 399.861H310.031V499.861H410.034V399.861Z",fill:"black"}),es.default.createElement("path",{d:"M210.03 99.8516H110.027V199.852H210.03V99.8516Z",fill:"black"}),es.default.createElement("path",{d:"M410.034 499.863H310.031V599.863H410.034V499.863Z",fill:"black"}),es.default.createElement("path",{d:"M310.003 199.855H210V299.855H310.003V199.855Z",fill:"black"}),es.default.createElement("path",{d:"M210.03 499.863H110.027V599.863H210.03V499.863Z",fill:"black"}));var ts=Pe(Oe(),1),w6=()=>ts.default.createElement(ts.default.Fragment,null,ts.default.createElement("path",{d:"M0 600.001H110V0.152344L0 0.302306V600.001Z",fill:"black"}),ts.default.createElement("path",{d:"M520 600.001H410V0.302306L520 0.152344V600.001Z",fill:"black"}),ts.default.createElement("path",{d:"M310.002 299.934H210V399.908H310.002V299.934Z",fill:"black"}),ts.default.createElement("path",{d:"M410.036 0H310.033V99.9748H410.036V0Z",fill:"black"}),ts.default.createElement("path",{d:"M410.036 299.934H310.033V399.908H410.036V299.934Z",fill:"black"}),ts.default.createElement("path",{d:"M410.036 399.909H310.033V499.884H410.036V399.909Z",fill:"black"}),ts.default.createElement("path",{d:"M210.028 99.9785H110.025V199.953H210.028V99.9785Z",fill:"black"}),ts.default.createElement("path",{d:"M410.036 499.89H310.033V599.864H410.036V499.89Z",fill:"black"}),ts.default.createElement("path",{d:"M210.028 199.957H110.025V299.932H210.028V199.957Z",fill:"black"}));var rs=Pe(Oe(),1),_6=()=>rs.default.createElement(rs.default.Fragment,null,rs.default.createElement("path",{d:"M0 600.002H110V0.00195312L0 0.151953V600.002Z",fill:"black"}),rs.default.createElement("path",{d:"M520 600.002H410V0.151953L520 0.00195312V600.002Z",fill:"black"}),rs.default.createElement("path",{d:"M310.003 299.861H210V399.861H310.003V299.861Z",fill:"black"}),rs.default.createElement("path",{d:"M410.034 299.861H310.031V399.861H410.034V299.861Z",fill:"black"}),rs.default.createElement("path",{d:"M410.034 99.8535H310.031V199.854H410.034V99.8535Z",fill:"black"}),rs.default.createElement("path",{d:"M210.03 99.8535H110.027V199.854H210.03V99.8535Z",fill:"black"}),rs.default.createElement("path",{d:"M210.03 399.863H110.027V499.863H210.03V399.863Z",fill:"black"}),rs.default.createElement("path",{d:"M310.003 199.857H210V299.857H310.003V199.857Z",fill:"black"}),rs.default.createElement("path",{d:"M310.003 499.865H210V599.865H310.003V499.865Z",fill:"black"}));var zu=Pe(Oe(),1),T6=()=>zu.default.createElement(zu.default.Fragment,null,zu.default.createElement("path",{d:"M110 600.002H0V0.151953L110 0.00195312V99.8457H310V199.846H210V299.846H110V600.002Z",fill:"black"}),zu.default.createElement("path",{d:"M310 499.846V399.846H210V299.846H410V0.151953L520 0.00195312V600.002H410V499.846H310Z",fill:"black"}),zu.default.createElement("path",{d:"M310 499.846H210V599.846H310V499.846Z",fill:"black"}));var Um=Pe(Oe(),1),Gs=()=>Um.default.createElement(Um.default.Fragment,null,Um.default.createElement("path",{d:"M0 600.002H110V199.846H210V499.846H410V600.002H520V0.00195312L410 0.151953V399.846H310V99.8457H110V0.00195312L0 0.151953V600.002Z",fill:"black"}));var zs=Pe(Oe(),1),E6=()=>zs.default.createElement(zs.default.Fragment,null,zs.default.createElement("path",{d:"M0 600.002H110V0.00195312L0 0.151953V600.002Z",fill:"black"}),zs.default.createElement("path",{d:"M520 600.002H410V0.151953L520 0.00195312V600.002Z",fill:"black"}),zs.default.createElement("path",{d:"M209.963 0.00195312H109.963V99.8457H209.963V0.00195312Z",fill:"black"}),zs.default.createElement("path",{d:"M409.973 299.861H309.973V399.861H409.973V299.861Z",fill:"black"}),zs.default.createElement("path",{d:"M310 99.8545H210V199.854H310V99.8545Z",fill:"black"}),zs.default.createElement("path",{d:"M209.963 99.8545H109.963V199.854H209.963V99.8545Z",fill:"black"}),zs.default.createElement("path",{d:"M209.963 399.863H109.963V499.863H209.963V399.863Z",fill:"black"}),zs.default.createElement("path",{d:"M310 199.856H210V299.856H310V199.856Z",fill:"black"}));var ns=Pe(Oe(),1),k6=()=>ns.default.createElement(ns.default.Fragment,null,ns.default.createElement("path",{d:"M0 600.002H110V0.00195312L0 0.151953V600.002Z",fill:"black"}),ns.default.createElement("path",{d:"M520 600.002H410V0.151953L520 0.00195312V600.002Z",fill:"black"}),ns.default.createElement("path",{d:"M310 99.8545H210V199.854H310V99.8545Z",fill:"black"}),ns.default.createElement("path",{d:"M310 399.863H210V499.863H310V399.863Z",fill:"black"}),ns.default.createElement("path",{d:"M209.963 99.8545H109.963V199.854H209.963V99.8545Z",fill:"black"}),ns.default.createElement("path",{d:"M209.963 399.863H109.963V499.863H209.963V399.863Z",fill:"black"}),ns.default.createElement("path",{d:"M409.973 199.856H309.973V299.856H409.973V199.856Z",fill:"black"}),ns.default.createElement("path",{d:"M409.973 499.865H309.973V599.865H409.973V499.865Z",fill:"black"}),ns.default.createElement("path",{d:"M310 199.856H210V299.856H310V199.856Z",fill:"black"}));var is=Pe(Oe(),1),L6=()=>is.default.createElement(is.default.Fragment,null,is.default.createElement("path",{d:"M0 600.002H110V0.00195312L0 0.151953V600.002Z",fill:"black"}),is.default.createElement("path",{d:"M520 600.002H410V0.151953L520 0.00195312V600.002Z",fill:"black"}),is.default.createElement("path",{d:"M210.03 299.861H110.027V399.861H210.03V299.861Z",fill:"black"}),is.default.createElement("path",{d:"M410.034 299.861H310.031V399.861H410.034V299.861Z",fill:"black"}),is.default.createElement("path",{d:"M310.003 399.863H210V499.863H310.003V399.863Z",fill:"black"}),is.default.createElement("path",{d:"M410.034 99.8545H310.031V199.854H410.034V99.8545Z",fill:"black"}),is.default.createElement("path",{d:"M210.03 99.8545H110.027V199.854H210.03V99.8545Z",fill:"black"}),is.default.createElement("path",{d:"M410.034 499.865H310.031V599.865H410.034V499.865Z",fill:"black"}),is.default.createElement("path",{d:"M310.003 199.856H210V299.856H310.003V199.856Z",fill:"black"}));var Bm=Pe(Oe(),1),A6=()=>Bm.default.createElement(Bm.default.Fragment,null,Bm.default.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M210 0.00195312H110V0.158162L0 0.308123V600.002H110V599.846H210V499.872H110V399.898H310V599.846H410V600.002H520V0.158162L410 0.308123V399.898H310V199.95H210V0.00195312ZM210 199.95V299.924H110V199.95H210Z",fill:"black"}));var ss=Pe(Oe(),1),I6=()=>ss.default.createElement(ss.default.Fragment,null,ss.default.createElement("path",{d:"M0 600.002H110V0.00195312L0 0.151953V600.002Z",fill:"black"}),ss.default.createElement("path",{d:"M520 600.002H410V0.151953L520 0.00195312V600.002Z",fill:"black"}),ss.default.createElement("path",{d:"M210.03 299.861H110.027V399.861H210.03V299.861Z",fill:"black"}),ss.default.createElement("path",{d:"M310.003 299.861H210V399.861H310.003V299.861Z",fill:"black"}),ss.default.createElement("path",{d:"M410.034 299.861H310.031V399.861H410.034V299.861Z",fill:"black"}),ss.default.createElement("path",{d:"M410.034 399.863H310.031V499.863H410.034V399.863Z",fill:"black"}),ss.default.createElement("path",{d:"M410.034 199.856H310.031V299.856H410.034V199.856Z",fill:"black"}),ss.default.createElement("path",{d:"M310.003 499.865H210V599.865H310.003V499.865Z",fill:"black"}),ss.default.createElement("path",{d:"M210.03 199.856H110.027V299.856H210.03V199.856Z",fill:"black"}));var os=Pe(Oe(),1),C6=()=>os.default.createElement(os.default.Fragment,null,os.default.createElement("path",{d:"M0 600.003H110V0.154297L0 0.304259V600.003Z",fill:"black"}),os.default.createElement("path",{d:"M520 600.003H410V0.304259L520 0.154297V600.003Z",fill:"black"}),os.default.createElement("path",{d:"M210.028 299.933H110.025V399.908H210.028V299.933Z",fill:"black"}),os.default.createElement("path",{d:"M310.002 299.933H210V399.908H310.002V299.933Z",fill:"black"}),os.default.createElement("path",{d:"M410.036 0.00195312H310.033V99.9767H410.036V0.00195312Z",fill:"black"}),os.default.createElement("path",{d:"M310.002 399.91H210V499.885H310.002V399.91Z",fill:"black"}),os.default.createElement("path",{d:"M410.036 399.91H310.033V499.885H410.036V399.91Z",fill:"black"}),os.default.createElement("path",{d:"M210.028 99.9805H110.025V199.955H210.028V99.9805Z",fill:"black"}),os.default.createElement("path",{d:"M410.036 199.959H310.033V299.934H410.036V199.959Z",fill:"black"}));var ef=Pe(Oe(),1),M6=()=>ef.default.createElement(ef.default.Fragment,null,ef.default.createElement("path",{d:"M110 600.003H0V0.15293L110 0.00292969V99.8467H210V199.847H110V299.847H210V399.847H110V499.847H310V599.847H110V600.003Z",fill:"black"}),ef.default.createElement("path",{d:"M210 299.847V199.847H410V0.15293L520 0.00292969V600.003H410V399.847H310V299.847H210Z",fill:"black"}));var as=Pe(Oe(),1),j6=()=>as.default.createElement(as.default.Fragment,null,as.default.createElement("path",{d:"M0 600.003H110V0.00292969L0 0.15293V600.003Z",fill:"black"}),as.default.createElement("path",{d:"M520 600.003H410V0.15293L520 0.00292969V600.003Z",fill:"black"}),as.default.createElement("path",{d:"M210.03 0.00292969H110.027V99.8467H210.03V0.00292969Z",fill:"black"}),as.default.createElement("path",{d:"M310.003 299.862H210V399.862H310.003V299.862Z",fill:"black"}),as.default.createElement("path",{d:"M410.034 399.864H310.031V499.864H410.034V399.864Z",fill:"black"}),as.default.createElement("path",{d:"M210.03 99.8555H110.027V199.855H210.03V99.8555Z",fill:"black"}),as.default.createElement("path",{d:"M410.034 499.866H310.031V599.866H410.034V499.866Z",fill:"black"}),as.default.createElement("path",{d:"M310.003 199.857H210V299.857H310.003V199.857Z",fill:"black"}),as.default.createElement("path",{d:"M210.03 499.866H110.027V599.866H210.03V499.866Z",fill:"black"}));var ls=Pe(Oe(),1),P6=()=>ls.default.createElement(ls.default.Fragment,null,ls.default.createElement("path",{d:"M0 600.004H110V0.155273L0 0.305235V600.004Z",fill:"black"}),ls.default.createElement("path",{d:"M520 600.004H410V0.305235L520 0.155273V600.004Z",fill:"black"}),ls.default.createElement("path",{d:"M310.002 299.934H210V399.909H310.002V299.934Z",fill:"black"}),ls.default.createElement("path",{d:"M410.036 0.00292969H310.033V99.9777H410.036V0.00292969Z",fill:"black"}),ls.default.createElement("path",{d:"M410.036 299.934H310.033V399.909H410.036V299.934Z",fill:"black"}),ls.default.createElement("path",{d:"M410.036 399.911H310.033V499.886H410.036V399.911Z",fill:"black"}),ls.default.createElement("path",{d:"M210.028 99.9814H110.025V199.956H210.028V99.9814Z",fill:"black"}),ls.default.createElement("path",{d:"M410.036 499.89H310.033V599.865H410.036V499.89Z",fill:"black"}),ls.default.createElement("path",{d:"M210.028 199.96H110.025V299.934H210.028V199.96Z",fill:"black"}));var us=Pe(Oe(),1),D6=()=>us.default.createElement(us.default.Fragment,null,us.default.createElement("path",{d:"M0 600.004H110V0.00390625L0 0.153906V600.004Z",fill:"black"}),us.default.createElement("path",{d:"M520 600.004H410V0.153906L520 0.00390625V600.004Z",fill:"black"}),us.default.createElement("path",{d:"M310.003 299.863H210V399.863H310.003V299.863Z",fill:"black"}),us.default.createElement("path",{d:"M410.034 299.863H310.031V399.863H410.034V299.863Z",fill:"black"}),us.default.createElement("path",{d:"M410.034 99.8564H310.031V199.856H410.034V99.8564Z",fill:"black"}),us.default.createElement("path",{d:"M210.03 99.8564H110.027V199.856H210.03V99.8564Z",fill:"black"}),us.default.createElement("path",{d:"M210.03 399.865H110.027V499.865H210.03V399.865Z",fill:"black"}),us.default.createElement("path",{d:"M310.003 199.858H210V299.858H310.003V199.858Z",fill:"black"}),us.default.createElement("path",{d:"M310.003 499.867H210V599.867H310.003V499.867Z",fill:"black"}));var $u=Pe(Oe(),1),O6=()=>$u.default.createElement($u.default.Fragment,null,$u.default.createElement("path",{d:"M110 600.004H0V0.153906L110 0.00390625V99.8477H310V199.848H210V299.848H110V600.004Z",fill:"black"}),$u.default.createElement("path",{d:"M310 499.848V399.848H210V299.848H410V0.153906L520 0.00390625V600.004H410V499.848H310Z",fill:"black"}),$u.default.createElement("path",{d:"M310 499.848H210V599.848H310V499.848Z",fill:"black"}));var Vm=Pe(Oe(),1),$s=()=>Vm.default.createElement(Vm.default.Fragment,null,Vm.default.createElement("path",{d:"M0 600.004H110V199.848H210V399.848H310V499.848H410V600.004H520V0.00390625L410 0.153906V399.848H310V199.848H210V99.8477H110V0.00390625L0 0.153906V600.004Z",fill:"black"}));var Ws=Pe(Oe(),1),R6=()=>Ws.default.createElement(Ws.default.Fragment,null,Ws.default.createElement("path",{d:"M0 600.004H110V0.00390625L0 0.153906V600.004Z",fill:"black"}),Ws.default.createElement("path",{d:"M520 600.004H410V0.153906L520 0.00390625V600.004Z",fill:"black"}),Ws.default.createElement("path",{d:"M209.963 0.00390625H109.963V99.8477H209.963V0.00390625Z",fill:"black"}),Ws.default.createElement("path",{d:"M409.973 299.863H309.973V399.863H409.973V299.863Z",fill:"black"}),Ws.default.createElement("path",{d:"M310 99.8564H210V199.856H310V99.8564Z",fill:"black"}),Ws.default.createElement("path",{d:"M209.963 99.8564H109.963V199.856H209.963V99.8564Z",fill:"black"}),Ws.default.createElement("path",{d:"M209.963 399.865H109.963V499.865H209.963V399.865Z",fill:"black"}),Ws.default.createElement("path",{d:"M310 199.858H210V299.858H310V199.858Z",fill:"black"}));var cs=Pe(Oe(),1),F6=()=>cs.default.createElement(cs.default.Fragment,null,cs.default.createElement("path",{d:"M0 600.004H110V0.00390625L0 0.153906V600.004Z",fill:"black"}),cs.default.createElement("path",{d:"M520 600.004H410V0.153906L520 0.00390625V600.004Z",fill:"black"}),cs.default.createElement("path",{d:"M310 99.8564H210V199.856H310V99.8564Z",fill:"black"}),cs.default.createElement("path",{d:"M310 399.865H210V499.865H310V399.865Z",fill:"black"}),cs.default.createElement("path",{d:"M209.963 99.8564H109.963V199.856H209.963V99.8564Z",fill:"black"}),cs.default.createElement("path",{d:"M209.963 399.865H109.963V499.865H209.963V399.865Z",fill:"black"}),cs.default.createElement("path",{d:"M409.973 199.858H309.973V299.858H409.973V199.858Z",fill:"black"}),cs.default.createElement("path",{d:"M409.973 499.867H309.973V599.867H409.973V499.867Z",fill:"black"}),cs.default.createElement("path",{d:"M310 199.858H210V299.858H310V199.858Z",fill:"black"}));var ds=Pe(Oe(),1),N6=()=>ds.default.createElement(ds.default.Fragment,null,ds.default.createElement("path",{d:"M0 600.004H110V0.00390625L0 0.153906V600.004Z",fill:"black"}),ds.default.createElement("path",{d:"M520 600.004H410V0.153906L520 0.00390625V600.004Z",fill:"black"}),ds.default.createElement("path",{d:"M210.03 299.863H110.027V399.863H210.03V299.863Z",fill:"black"}),ds.default.createElement("path",{d:"M410.034 299.863H310.031V399.863H410.034V299.863Z",fill:"black"}),ds.default.createElement("path",{d:"M310.003 399.865H210V499.865H310.003V399.865Z",fill:"black"}),ds.default.createElement("path",{d:"M410.034 99.8564H310.031V199.856H410.034V99.8564Z",fill:"black"}),ds.default.createElement("path",{d:"M210.03 99.8564H110.027V199.856H210.03V99.8564Z",fill:"black"}),ds.default.createElement("path",{d:"M410.034 499.867H310.031V599.867H410.034V499.867Z",fill:"black"}),ds.default.createElement("path",{d:"M310.003 199.858H210V299.858H310.003V199.858Z",fill:"black"}));var Gm=Pe(Oe(),1),H6=()=>Gm.default.createElement(Gm.default.Fragment,null,Gm.default.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M210 0.00390625H110V0.160116L0 0.310076V600.004H110V599.848H210V499.874H110V399.9H310V599.848H410V600.004H520V0.160116L410 0.310076V399.9H310V199.952H210V0.00390625ZM210 199.952V299.926H110V199.952H210Z",fill:"black"}));var fs=Pe(Oe(),1),U6=()=>fs.default.createElement(fs.default.Fragment,null,fs.default.createElement("path",{d:"M0 600.004H110V0.00390625L0 0.153906V600.004Z",fill:"black"}),fs.default.createElement("path",{d:"M520 600.004H410V0.153906L520 0.00390625V600.004Z",fill:"black"}),fs.default.createElement("path",{d:"M210.03 299.863H110.027V399.863H210.03V299.863Z",fill:"black"}),fs.default.createElement("path",{d:"M310.003 299.863H210V399.863H310.003V299.863Z",fill:"black"}),fs.default.createElement("path",{d:"M410.034 299.863H310.031V399.863H410.034V299.863Z",fill:"black"}),fs.default.createElement("path",{d:"M410.034 399.865H310.031V499.865H410.034V399.865Z",fill:"black"}),fs.default.createElement("path",{d:"M410.034 199.859H310.031V299.859H410.034V199.859Z",fill:"black"}),fs.default.createElement("path",{d:"M310.003 499.869H210V599.869H310.003V499.869Z",fill:"black"}),fs.default.createElement("path",{d:"M210.03 199.858H110.027V299.858H210.03V199.858Z",fill:"black"}));var hs=Pe(Oe(),1),B6=()=>hs.default.createElement(hs.default.Fragment,null,hs.default.createElement("path",{d:"M0 600.004H110V0.155273L0 0.305235V600.004Z",fill:"black"}),hs.default.createElement("path",{d:"M520 600.004H410V0.305235L520 0.155273V600.004Z",fill:"black"}),hs.default.createElement("path",{d:"M210.028 299.938H110.025V399.912H210.028V299.938Z",fill:"black"}),hs.default.createElement("path",{d:"M310.002 299.938H210V399.912H310.002V299.938Z",fill:"black"}),hs.default.createElement("path",{d:"M410.036 0.00390625H310.033V99.9787H410.036V0.00390625Z",fill:"black"}),hs.default.createElement("path",{d:"M310.002 399.915H210V499.89H310.002V399.915Z",fill:"black"}),hs.default.createElement("path",{d:"M410.036 399.915H310.033V499.89H410.036V399.915Z",fill:"black"}),hs.default.createElement("path",{d:"M210.028 99.9824H110.025V199.957H210.028V99.9824Z",fill:"black"}),hs.default.createElement("path",{d:"M410.036 199.959H310.033V299.934H410.036V199.959Z",fill:"black"}));var tf=Pe(Oe(),1),V6=()=>tf.default.createElement(tf.default.Fragment,null,tf.default.createElement("path",{d:"M110 600.004H0V0.153906L110 0.00390625V99.8477H210V199.848H110V299.848H210V399.848H110V499.848H310V599.848H110V600.004Z",fill:"black"}),tf.default.createElement("path",{d:"M210 299.848V199.848H410V0.153906L520 0.00390625V600.004H410V399.848H310V299.848H210Z",fill:"black"}));var ps=Pe(Oe(),1),G6=()=>ps.default.createElement(ps.default.Fragment,null,ps.default.createElement("path",{d:"M0 600.004H110V0.00390625L0 0.153906V600.004Z",fill:"black"}),ps.default.createElement("path",{d:"M520 600.004H410V0.153906L520 0.00390625V600.004Z",fill:"black"}),ps.default.createElement("path",{d:"M210.03 0.00390625H110.027V99.8477H210.03V0.00390625Z",fill:"black"}),ps.default.createElement("path",{d:"M310.003 299.861H210V399.861H310.003V299.861Z",fill:"black"}),ps.default.createElement("path",{d:"M410.034 399.865H310.031V499.865H410.034V399.865Z",fill:"black"}),ps.default.createElement("path",{d:"M210.03 99.8555H110.027V199.855H210.03V99.8555Z",fill:"black"}),ps.default.createElement("path",{d:"M410.034 499.869H310.031V599.869H410.034V499.869Z",fill:"black"}),ps.default.createElement("path",{d:"M310.003 199.858H210V299.858H310.003V199.858Z",fill:"black"}),ps.default.createElement("path",{d:"M210.03 499.869H110.027V599.869H210.03V499.869Z",fill:"black"}));var ms=Pe(Oe(),1),z6=()=>ms.default.createElement(ms.default.Fragment,null,ms.default.createElement("path",{d:"M0 600.003H110V0.154297L0 0.304259V600.003Z",fill:"black"}),ms.default.createElement("path",{d:"M520 600.003H410V0.304259L520 0.154297V600.003Z",fill:"black"}),ms.default.createElement("path",{d:"M310.002 299.939H210V399.914H310.002V299.939Z",fill:"black"}),ms.default.createElement("path",{d:"M410.036 0.00390625H310.033V99.9787H410.036V0.00390625Z",fill:"black"}),ms.default.createElement("path",{d:"M410.036 299.939H310.033V399.914H410.036V299.939Z",fill:"black"}),ms.default.createElement("path",{d:"M410.036 399.917H310.033V499.892H410.036V399.917Z",fill:"black"}),ms.default.createElement("path",{d:"M210.028 99.9824H110.025V199.957H210.028V99.9824Z",fill:"black"}),ms.default.createElement("path",{d:"M410.036 499.896H310.033V599.871H410.036V499.896Z",fill:"black"}),ms.default.createElement("path",{d:"M210.028 199.96H110.025V299.935H210.028V199.96Z",fill:"black"}));var gs=Pe(Oe(),1),$6=()=>gs.default.createElement(gs.default.Fragment,null,gs.default.createElement("path",{d:"M0 600.003H110V0.00292969L0 0.15293V600.003Z",fill:"black"}),gs.default.createElement("path",{d:"M520 600.003H410V0.15293L520 0.00292969V600.003Z",fill:"black"}),gs.default.createElement("path",{d:"M310.003 299.86H210V399.86H310.003V299.86Z",fill:"black"}),gs.default.createElement("path",{d:"M410.034 299.86H310.031V399.86H410.034V299.86Z",fill:"black"}),gs.default.createElement("path",{d:"M410.034 99.8545H310.031V199.854H410.034V99.8545Z",fill:"black"}),gs.default.createElement("path",{d:"M210.03 99.8545H110.027V199.854H210.03V99.8545Z",fill:"black"}),gs.default.createElement("path",{d:"M210.03 399.864H110.027V499.864H210.03V399.864Z",fill:"black"}),gs.default.createElement("path",{d:"M310.003 199.857H210V299.857H310.003V199.857Z",fill:"black"}),gs.default.createElement("path",{d:"M310.003 499.868H210V599.868H310.003V499.868Z",fill:"black"}));var Wu=Pe(Oe(),1),W6=()=>Wu.default.createElement(Wu.default.Fragment,null,Wu.default.createElement("path",{d:"M110 600.003H0V0.15293L110 0.00292969V99.8467H310V199.847H210V299.847H110V600.003Z",fill:"black"}),Wu.default.createElement("path",{d:"M310 499.847V399.847H210V299.847H410V0.15293L520 0.00292969V600.003H410V499.847H310Z",fill:"black"}),Wu.default.createElement("path",{d:"M310 499.847H210V599.847H310V499.847Z",fill:"black"}));var zm=Pe(Oe(),1),ys=()=>zm.default.createElement(zm.default.Fragment,null,zm.default.createElement("path",{d:"M210 100.003H110V600.003H0V0.15293L105.85 0.00292969H210V100.003ZM520 0.00292969L410 0.15293V500.003H310V600.003H520V0.00292969ZM210 100.003V500.003H310V100.003H210Z",fill:"black"}));var Y6=[P2,m6,g6,y6,v6,b6,x6,S6,w6,_6,T6,Gs,Gs,Gs,Gs,Gs,Gs,Gs,Gs,Gs,Gs,E6,k6,L6,A6,I6,C6,M6,j6,P6,D6,O6,$s,$s,$s,$s,$s,$s,$s,$s,$s,$s,R6,F6,N6,H6,U6,B6,V6,G6,z6,$6,W6,ys,ys,ys,ys,ys,ys,ys,ys,ys,ys,ys],q6=({style:i,color:t})=>{let n=a=>new Promise(o=>setTimeout(o,a)),[r,s]=(0,Yu.useState)(P2);return(0,Yu.useEffect)(()=>{let a=0,o=setInterval(()=>{a+=1,s(Y6[a]),a===Y6.length-1&&(a=0)},100);return()=>clearInterval(o)},[]),Yu.default.createElement(Se.svg,{className:"n at",width:"520",height:"601",viewBox:"0 0 520 601",fill:"none",xmlns:"http://www.w3.org/2000/svg",style:{"& path":{fill:t||"black"},...i}},r)};var QP=hr({"10%":{transform:"translate(-50%, -50%) scale(2.5)",opacity:0},"30%":{opacity:1},"80%":{opacity:1},"99%":{opacity:0},"100%":{opacity:0,transform:"translate(-50%, -50%) scale(1)"}}),xl=hr({"0%":{transform:"scale(1.2)",opacity:0},"20%":{transform:"scale(1)",opacity:1},"70%":{transform:"scale(1)",opacity:1},"90%":{transform:"scale(0.9)",opacity:0},"100%":{transform:"scale(0.9)",opacity:0}}),qu=hr({"0%":{transform:"scale(1.2)",opacity:0},"20%":{transform:"scale(1.2)",opacity:0},"40%":{transform:"scale(1.1)",opacity:1},"80%":{transform:"scale(1.1)",opacity:1},"100%":{transform:"scale(0.9)",opacity:0}}),$m=hr({"0%":{transform:"scale(1.1)",opacity:0},"10%":{transform:"scale(1.1)",opacity:0},"30%":{transform:"scale(1)",opacity:1},"60%":{transform:"scale(1)",opacity:1},"80%":{transform:"scale(0.9)",opacity:0},"100%":{transform:"scale(0.9)",opacity:0}}),Z6=({vidCounter:i,setVidCounter:t,style:n})=>ir.default.createElement(Se.div,{className:"aj bi",style:{...n}},i<5&&ir.default.createElement("div",{className:"p aa bg cp bb cq b8 aj aw a2 cr cs"},ir.default.createElement(q6,{color:"black",style:{width:"4vw",minWidth:"24px"}})),ir.default.createElement("div",{className:"aj ct cu cv b8 cw p cc a4 cx",style:{animationTimingFunction:i>5&&"cubic-bezier(0.51, 1.15, 0.56, 0.47)",animationDuration:i>5&&"5s",animationName:i>5&&QP}},ir.default.createElement(Se.div,{className:"cy",style:{[_y]:{display:"none"}}},ir.default.createElement(Bt,{style:{"& video":{width:"20vh !important",maxHeight:"24vh",aspectRatio:"3/4",objectFit:"cover",animationTimingFunction:i>5&&"ease-in-out",animationDuration:i>5&&"5s",animationName:i>5&&xl}},showControls:!1,autoPlay:!0,loop:!0,thumbnail:"https://files-production-saulx-once-website-production-en-c-cq-nt-hx0.based.dev/cdn-cgi/image/w=480/fia4a16ac7/e0b443fd-7dc5-4894-9753-9ef539963708-6207910b-52dd-4910-b088-45afd5e0b530-1a9aef6d-54a3-4812-9220-bebb4dc707e3.png",src:""})),ir.default.createElement(Se.div,{className:"p y cc cz cy",style:{"@media only screen and (max-width: 767px)":{display:"none"}}},ir.default.createElement(Bt,{style:{"& video":{width:"24vh !important",maxHeight:"24vh !important",aspectRatio:"1/1 !important",objectFit:"cover !important",animationTimingFunction:i>5&&"ease-in-out",animationDuration:i>5&&"5s",animationName:i>5&&qu}},showControls:!1,autoPlay:!0,loop:!0,thumbnail:"https://files-production-saulx-once-website-production-en-c-cq-nt-hx0.based.dev/cdn-cgi/image/w=480/fi552b74f9/6b3a9efe-e3e5-45f2-8847-d7e76e293e32-3e1068e5-f988-4a55-bbbd-2f03a908c32c-b061466e-309f-4b17-a7e5-6dffc2cb73fc.png",src:"https://customer-rb4scmumy816frfn.cloudflarestream.com/784e9f14447f8db692230027542d28f6/manifest/video.m3u8"}),ir.default.createElement(Bt,{style:{"& video":{width:"20vh !important",aspectRatio:"1/2 !important",objectFit:"cover !important",animationTimingFunction:i>5&&"ease-in-out",animationDuration:i>5&&"5s",animationName:i>5&&$m}},showControls:!1,autoPlay:!0,loop:!0,thumbnail:"https://files-production-saulx-once-website-production-en-c-cq-nt-hx0.based.dev/cdn-cgi/image/w=480/fi6f143ddb/02783e6c-9dfb-4ce6-b7fd-c3caa8752d03-c077d05a-1cb3-4196-9668-f151fec4cb9c-3290bfb4-58ad-4eb4-adc8-ead7e478882c.png",src:"https://customer-rb4scmumy816frfn.cloudflarestream.com/4f1ad67611c64698732fc8ecd31c0d71/manifest/video.m3u8"}),ir.default.createElement(Bt,{style:{"& video":{width:"18vh !important",aspectRatio:"1/2 !important",objectFit:"cover !important",animationTimingFunction:i>5&&"ease-in-out",animationDuration:i>5&&"5s",animationName:i>5&&xl}},showControls:!1,autoPlay:!0,loop:!0,thumbnail:"https://customer-rb4scmumy816frfn.cloudflarestream.com/83a7ff1e590b9d1a56b2ae3b70f0627e/thumbnails/thumbnail.jpg",src:"https://customer-rb4scmumy816frfn.cloudflarestream.com/83a7ff1e590b9d1a56b2ae3b70f0627e/manifest/video.m3u8"})),ir.default.createElement(Se.div,{className:"p y cc",style:{"& div:nth-child(1)":{marginLeft:"24px"},"& div:nth-child(3)":{marginLeft:"24px"}}},ir.default.createElement(Bt,{style:{"& video":{width:"20vh !important",aspectRatio:"2/3 !important",objectFit:"cover !important",animationTimingFunction:i>5&&"ease-in-out",animationDuration:i>5&&"5s",animationName:i>5&&xl}},onLoad:()=>{t(i+1)},showControls:!1,autoPlay:!0,loop:!0,thumbnail:"https://files-production-saulx-once-website-production-en-c-cq-nt-hx0.based.dev/cdn-cgi/image/w=480/ficdd7ad35/366e5e6a-03bd-4124-b289-c0bcfa951256-6c613c59-1661-4083-b857-bcc22259a7e2-b5995f99-1175-44f8-b4cd-ca526c6724fc.png",src:"https://customer-rb4scmumy816frfn.cloudflarestream.com/d34486724af00bbc53e4d5a84efa72c4/manifest/video.m3u8"}),ir.default.createElement(Bt,{style:{"& video":{width:"20vh !important",aspectRatio:"1/2 !important",objectFit:"cover !important",animationTimingFunction:i>5&&"ease-in-out",animationDuration:i>5&&"5s",animationName:i>5&&qu}},onLoad:()=>{t(i+1)},showControls:!1,autoPlay:!0,loop:!0,thumbnail:"https://files-production-saulx-once-website-production-en-c-cq-nt-hx0.based.dev/cdn-cgi/image/w=480/fi3ba67918/614c722a-706f-4338-8a96-fbcda1d2496c-42a8713c-5359-409a-8f55-1980c712dc1b-abf01772-3add-4a53-b278-f50c64f651e3.png",src:"https://customer-rb4scmumy816frfn.cloudflarestream.com/bbbeec6e223d8691ad2965e1aada0dc5/manifest/video.m3u8"}),ir.default.createElement(Bt,{style:{overflow:"hidden ","& video":{width:"20vh !important",aspectRatio:"1/1 !important",objectFit:"cover !important",animationTimingFunction:i>5&&"ease-in-out",animationDuration:i>5&&"5s",animationName:i>5&&$m}},showControls:!1,autoPlay:!0,loop:!0,thumbnail:"https://files-production-saulx-once-website-production-en-c-cq-nt-hx0.based.dev/cdn-cgi/image/w=480/fi426b42a9/371ebf02-8f74-4357-8f23-55b396d9bc99-c66d4cd4-adcc-412a-808e-42951c408dd5-34b09961-d9b0-488a-8895-360043937d56.png",src:"https://customer-rb4scmumy816frfn.cloudflarestream.com/5bb99add46a41399fff45544230b50d0/manifest/video.m3u8"})),ir.default.createElement("div",{style:{display:"flex",flexDirection:"column",alignSelf:"center",gap:"36px"}},ir.default.createElement(Bt,{style:{"& video":{width:"20vh !important",maxHeight:"20vh !important",aspectRatio:"1/1 !important",objectFit:"cover !important",animationTimingFunction:i>5&&"ease-in-out",animationDuration:i>5&&"5s",animationName:i>5&&xl}},onLoad:()=>{t(i+1)},showControls:!1,autoPlay:!0,loop:!0,thumbnail:"https://files-production-saulx-once-website-production-en-c-cq-nt-hx0.based.dev/cdn-cgi/image/w=480/fi1b9e5b3e/500f9353-970b-49ac-8039-c3780c178f21-e6e64ac3-6532-4050-a523-a03bc54f6d0d-3c02ea6c-45fa-4f8a-b533-79cb946da819.png",src:"https://customer-rb4scmumy816frfn.cloudflarestream.com/5c6479714a52696caa130f8dfc6c1dd0/manifest/video.m3u8"}),ir.default.createElement(Bt,{style:{"& video":{width:"20vh !important",maxHeight:"20vh !important",aspectRatio:"1/1 !important",objectFit:"cover !important",animationTimingFunction:i>5&&"ease-in-out",animationDuration:i>5&&"5s",animationName:i>5&&qu}},onLoad:()=>{t(i+1)},showControls:!1,autoPlay:!0,loop:!0,thumbnail:"https://customer-rb4scmumy816frfn.cloudflarestream.com/6646d44e6b8c972fc1677d59891ee5a3/thumbnails/thumbnail.jpg",src:"https://customer-rb4scmumy816frfn.cloudflarestream.com/6646d44e6b8c972fc1677d59891ee5a3/manifest/video.m3u8"}),ir.default.createElement(Bt,{style:{overflow:"hidden ",marginTop:"18px","& video":{width:"20vh !important",aspectRatio:"1/2 !important",objectFit:"cover !important",animationTimingFunction:i>5&&"ease-in-out",animationDuration:i>5&&"5s",animationName:i>5&&$m}},showControls:!1,autoPlay:!0,loop:!0,thumbnail:"https://files-production-saulx-once-website-production-en-c-cq-nt-hx0.based.dev/cdn-cgi/image/w=480/fi3d22190a/333530c3-5f5c-4274-b498-4f95afc26203-03435d6a-5324-446c-a43f-678cc29fe916-239d4605-5a79-40ed-a4ae-2bc4f198108d.png",src:"https://customer-rb4scmumy816frfn.cloudflarestream.com/589278c75eafb0ee071b485019d22d9c/manifest/video.m3u8"})),ir.default.createElement("div",{style:{display:"flex",flexDirection:"column",alignSelf:"center",gap:"36px",marginTop:"-36px",maxHeight:"80vh"}},ir.default.createElement(Bt,{style:{"& video":{width:"20vh !important",maxHeight:"20vh !important",aspectRatio:"1/1 !important",objectFit:"cover !important",animationTimingFunction:i>5&&"ease-in-out",animationDuration:i>5&&"5s",animationName:i>5&&qu}},showControls:!1,autoPlay:!0,loop:!0,thumbnail:"https://customer-rb4scmumy816frfn.cloudflarestream.com/4272d9567db6244080afceaa44ee711f/thumbnails/thumbnail.jpg",src:""}),ir.default.createElement(Bt,{style:{"& video":{width:"20vh !important",aspectRatio:"2/3 !important",objectFit:"cover !important",animationTimingFunction:i>5&&"ease-in-out",animationDuration:i>5&&"5s",animationName:i>5&&xl}},onLoad:()=>{t(i+1)},showControls:!1,autoPlay:!0,loop:!0,thumbnail:"https://customer-rb4scmumy816frfn.cloudflarestream.com/dfd0d1dde0695a2e248395691d64bb8e/thumbnails/thumbnail.jpg",src:"https://customer-rb4scmumy816frfn.cloudflarestream.com/dfd0d1dde0695a2e248395691d64bb8e/manifest/video.m3u8"}),ir.default.createElement(Bt,{style:{"& video":{width:"25vh !important",maxHeight:"25vh !important",aspectRatio:"1/1 !important",objectFit:"cover !important",marginTop:"18px",marginLeft:"36px",animationTimingFunction:i>5&&"ease-in-out",animationDuration:i>5&&"5s",animationName:i>5&&qu}},showControls:!1,autoPlay:!0,loop:!0,thumbnail:"https://customer-rb4scmumy816frfn.cloudflarestream.com/25e6d3c1f2fff2933a52c65ef924f9b3/thumbnails/thumbnail.jpg",src:""})),ir.default.createElement(Se.div,{className:"p y cc cy d0",style:{"@media only screen and (max-width: 767px)":{display:"none"}}},ir.default.createElement(Bt,{style:{"& video":{width:"24vh !important",maxHeight:"24vh !important",aspectRatio:"1/1 !important",objectFit:"cover !important",animationTimingFunction:i>5&&"ease-in-out",animationDuration:i>5&&"5s",animationName:i>5&&xl}},showControls:!1,onLoad:()=>{t(i+1)},autoPlay:!0,loop:!0,thumbnail:"https://customer-rb4scmumy816frfn.cloudflarestream.com/1e4ef765786973bdc43105f0dbfbc50d/thumbnails/thumbnail.jpg",src:"https://customer-rb4scmumy816frfn.cloudflarestream.com/1e4ef765786973bdc43105f0dbfbc50d/manifest/video.m3u8"}),ir.default.createElement(Bt,{style:{width:"20vh !important",aspectRatio:"1/2 !important",objectFit:"cover !important",animationTimingFunction:i>5&&"ease-in-out",animationDuration:i>5&&"5s",animationName:i>5&&$m},showControls:!1,autoPlay:!0,loop:!0,thumbnail:"https://files-production-saulx-once-website-production-en-c-cq-nt-hx0.based.dev/cdn-cgi/image/w=480/fib1fb46da/a1265ece-4af1-4732-aa15-9677b8fc2b82-a5ce5b28-d7ad-4ec2-bf30-f0e2e2b96538-8e875a4c-b004-42f9-be96-efed9b230fd8.png",src:""}),ir.default.createElement(Bt,{style:{"& video":{width:"18vh !important",aspectRatio:"1/1 !important",objectFit:"cover !important",animationTimingFunction:i>5&&"ease-in-out",animationDuration:i>5&&"5s",animationName:i>5&&qu}},showControls:!1,autoPlay:!0,loop:!0,thumbnail:"https://customer-rb4scmumy816frfn.cloudflarestream.com/1d0a6a77e67916e6d7936dc5306afe38/thumbnails/thumbnail.jpg",src:"https://customer-rb4scmumy816frfn.cloudflarestream.com/1d0a6a77e67916e6d7936dc5306afe38/manifest/video.m3u8"})),ir.default.createElement(Se.div,{className:"cy",style:{[_y]:{display:"none"}}},ir.default.createElement(Bt,{style:{"& video":{width:"20vh !important",maxHeight:"24vh !important",aspectRatio:"3/4 !important",objectFit:"cover !important",animationTimingFunction:i>5&&"ease-in-out",animationDuration:i>5&&"5s",animationName:i>5&&xl}},showControls:!1,autoPlay:!0,loop:!0,thumbnail:"https://customer-rb4scmumy816frfn.cloudflarestream.com/cad24c0034cdb3d40dacc4ca69cb307a/thumbnails/thumbnail.jpg",src:"https://customer-rb4scmumy816frfn.cloudflarestream.com/cad24c0034cdb3d40dacc4ca69cb307a/manifest/video.m3u8"}))));var Fa=Pe(Oe(),1);var JP=hr({"0%":{opacity:0},"70%":{opacity:0},"100%":{opacity:1}}),eD=hr({"0%":{transform:"scale(1.5)"},"100%":{transform:"scale(1)"}}),Zu=({string:i,variant:t="h1",style:n,startDelay:r=0})=>{let[s,a]=(0,Fa.useState)(!1);return(0,Fa.useEffect)(()=>{let o=setTimeout(()=>a(!0),r);return()=>clearTimeout(o)},[r]),Fa.default.createElement("div",{className:"d1 d2 a8",style:{animationName:eD,animationDelay:`${r}ms`}},s&&Fa.default.createElement(Ne,{variant:t,style:{color:"var(--color-black)",...n}},i.split("").map((o,u)=>Fa.default.createElement("span",{key:u,style:{opacity:1,padding:"0 10px",margin:"0 -10px",transition:"opacity ease-in",animationDuration:`${(Math.random()*2).toFixed(2)}s`,animationName:JP}},o))))};var Wm=Se("div",{height:1,width:"100%",background:"var(--color-grey5)",zIndex:0}),K6=()=>{let i="Everyone Everywhere All At Once".toUpperCase().split(" "),[t,n]=(0,Qt.useState)(!1),[r,s]=(0,Qt.useState)(!1),[a,o]=(0,Qt.useState)(0),[u,l]=(0,Qt.useState)(!1),[c,h]=(0,Qt.useState)(!1);return(0,Qt.useEffect)(()=>{let f=setTimeout(()=>{c||(n(!0),l(!0),s(!0))},3e3);return()=>clearTimeout(f)},[c]),(0,Qt.useEffect)(()=>{a>=1&&h(!0)},[a]),(0,Qt.useEffect)(()=>{c&&setTimeout(()=>{n(!0)},7e3)},[c]),(0,Qt.useEffect)(()=>{setTimeout(()=>{s(!0)},5600)},[]),Qt.default.createElement("div",{className:"b0 b8 ba"},Qt.default.createElement(Se.div,{className:"bb bc n bd be bf bg b0 af ag a4",style:{[_t]:{paddingLeft:"var(--spacing-horizontal-mobile)",paddingRight:"var(--spacing-horizontal-mobile)"}}},r&&Qt.default.createElement(Qt.default.Fragment,null,Qt.default.createElement(Zu,{string:i[0],style:{"& h1":{fontFamily:"OnceArizona-Italics !important"}}}),Qt.default.createElement(Zu,{string:i[1],style:{textAlign:"right",zIndex:1}}),Qt.default.createElement("div",{className:"p bh"},Qt.default.createElement(Zu,{string:i[2]}),Qt.default.createElement(Zu,{string:i[3]})),Qt.default.createElement(Zu,{string:i[4],style:{textAlign:"center",transform:"translateX(-12%)","& h1":{fontFamily:"OnceArizona-Italics !important"}}}))),Qt.default.createElement("div",{className:"be bf aj bi bd bg bj"},Qt.default.createElement(Wm,null),Qt.default.createElement(Wm,null),Qt.default.createElement(Wm,null),Qt.default.createElement(Wm,null)),!u&&Qt.default.createElement(Z6,{vidCounter:a,setVidCounter:a<6?o:()=>{},style:{display:t&&a<5&&"none"}}),t&&Qt.default.createElement(Se.div,{className:"aj bi p bg aa",style:{"& canvas":{width:"100vw !important",height:"100vh !important"}}},Qt.default.createElement(dn,null)))};var di=Pe(Oe(),1);var Ym=({title:i,paragraph:t,link:n,category:r,image:s,video:a,thumbnail:o,variant:u="default"})=>{let l={default:{container:{flexDirection:"row",alignItems:"flex-start"},image:{marginTop:"var(--spacing-horizontal-desktop)"},video:{},textContainer:{}},inverted:{container:{flexDirection:"row-reverse"},image:{marginTop:"var(--spacing-horizontal-desktop)",aspectRatio:"1/1"},video:{},textContainer:{}},alt:{container:{flexDirection:"row"},image:{marginTop:"var(--spacing-horizontal-desktop)",aspectRatio:"1/1"},video:{},textContainer:{alignItems:"bottom"}}},c=l[u]||l.default;return di.default.createElement("div",{style:{display:"flex",justifyContent:"center"}},di.default.createElement(Se.div,{className:"p n ac au av",style:{...c.container,[_t]:{padding:"var(--spacing-vertical) var(--spacing-horizontal-mobile)"},[Tr]:{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:"24px"}}},di.default.createElement(Se.div,{className:"ah n b5 b6 b7",style:{backgroundImage:`url(${s})`,...c.image,[_t]:{display:"none"}}}),di.default.createElement(Se.div,{className:"ah n b5 b0 b8",style:{...c.video,[Tr]:{aspectRatio:"3/2"}}},a&&di.default.createElement(Bt,{src:a,thumbnail:o,autoPlay:!0,loop:!0,showControls:!1,cover:!0,style:{pointerEvents:"none",position:"absolute",width:"100%",height:"100%"}})),di.default.createElement(Se.div,{className:"p y b9 ah n am",style:{...c.textContainer,[Tr]:{flex:"none",height:"auto"},[ji]:{gap:"16px"}}},di.default.createElement("div",{style:{display:"flex",justifyContent:"start",gap:"8px",whiteSpace:"nowrap"}},r?.map((h,f)=>di.default.createElement(di.default.Fragment,{key:f},di.default.createElement(Ne,{variant:"M2",style:{textTransform:"uppercase",flex:0,color:"var(--color-grey3)"}},h),fwindow.open(`${n}`,"_self")},"Take a look"))))};var Nn=Pe(Oe(),1);var tD=({heading:i,paragraph:t,index:n,first:r})=>{let[s,a]=(0,Nn.useState)(!1),o=(0,Nn.useRef)(null),[u,l]=(0,Nn.useState)(!1);return Nn.default.createElement(Se.div,{className:"n bk bl t",style:{borderTop:r?"1px solid var(--color-grey5)":void 0,[Tr]:{maxWidth:"none"}}},Nn.default.createElement("div",{className:"p ab bg bm",onClick:()=>{a(c=>!c),l(!1)},onMouseEnter:()=>l(!0),onMouseLeave:()=>l(!1)},Nn.default.createElement("h5",{className:"ah bn",style:{transform:u?"translateX(2vw)":"translateX(0)"}},i),Nn.default.createElement(Ne,{variant:"M2",style:{color:"var(--color-grey3)"}},String(n+1).padStart(2,"0"))),Nn.default.createElement("div",{className:"b8 bo",ref:o,style:{maxHeight:s?o.current?.scrollHeight:0,opacity:s?1:0}},Nn.default.createElement("p",{className:"bp"},t),Nn.default.createElement(wn,{animate:!1,onClick:()=>{window.open("/contact","_self")},style:{marginBottom:"24px"}},"Get in touch")))},X6=()=>{let i=[{heading:"Foundational Tech",paragraph:"Our foundational technology forms the core of everything we do. Built in-house, it includes database systems, orchestration infrastructure, APIs, CLI tools, SDKs, and documentation. Designed for extreme scalability, high performance, and a frictionless developer experience, these tools serve as the backbone for all our services. We are working to bring this technology to the wider developer community. Learn more at based.io."},{heading:"Design Kit",paragraph:"Our UI library offers ready-to-use components designed with live data in mind. It empowers developers to easily build visually engaging applications like content management systems and dashboards, purpose-built for dynamic and collaborative experiences."},{heading:"Back Office Apps",paragraph:"We build operational applications tailored to the specific needs of our customers. Leveraging our UI Library, we create content management systems, dashboards, and other back-office tools with a low turnaround time, ensuring seamless integration and a perfect fit for your workflows."},{heading:"End-to-end Apps",paragraph:"When the scope goes beyond operational tools, we step in to build fully customized, user-facing applications. These apps are crafted to honor your brand's unique identity, leveraging our expertise in scalability and live data. From design to development, we deliver experiences tailored to engage and inspire your audience."},{heading:"In-house Platforms",paragraph:"To meet recurring customer demands, we\u2019ve developed a suite of in-house platforms. Purpose-built to deliver seamless, scalable experiences for millions of users, these platforms range from televoting systems to interactive live show tools, supporting the unique needs of modern experiences. Check out Tally, our audience engagement platform for live media, at tally.tv."},{heading:"Managed Services",paragraph:"For customers seeking end-to-end support, we offer fully managed services. From concept to execution, we handle every aspect of engaging large audiences, ensuring seamless operations and flawless delivery. With state-of-the-art digital security and anti-fraud systems, we guarantee reliability and peace of mind, even at massive scale."}];return Nn.default.createElement("div",{className:"b0 p aa"},Nn.default.createElement(Se.div,{className:"p y bq au br",style:{[_t]:{padding:"var(--spacing-vertical) var(--spacing-horizontal-mobile)"}}},i.map((t,n)=>Nn.default.createElement(tD,{key:n,heading:t.heading,paragraph:t.paragraph,index:n,first:n===0}))))};var Q6=()=>Ys.default.createElement(Se.div,{className:"p y aa",style:{[Mt]:{overflowX:"hidden"}}},Ys.default.createElement(K6,null),Ys.default.createElement(Nm,{animation:!1,text:"We are a creative media & technology agency. For some 30 years, we've mastered scalable systems to enable millions of people to engage with live information."}),Ys.default.createElement(Ym,{variant:"default",title:"20 years with the Eurovision Song Contest",paragraph:"We\u2019ve been the Eurovision Song Contest\u2019s pan-European voting partner for over 20 years, managing televoting from its early days with phone lines and SMS to the introduction of online voting in 2022. At the peaks, we've supported 1.3 million concurrent users from 189 countries, enabling seamless and secure live engagement.",link:"/our-work/eurovision",category:["Television","Voting"],image:"https://files-production-saulx-once-website-production-en-c-cq-nt-hx0.based.dev/fic82a6532/1f0b49d9-4cd0-423c-bf2f-eff4c8abd4f5-a73c98d1-643b-4798-b4e0-a036d43c4ea8-1ce0041b-7f21-4f82-953e-d0a478e48f07.webp",video:"https://customer-rb4scmumy816frfn.cloudflarestream.com/2ca454aff6c6248f9606d24df3ff065b/manifest/video.m3u8",thumbnail:"https://customer-rb4scmumy816frfn.cloudflarestream.com/2ca454aff6c6248f9606d24df3ff065b/thumbnails/thumbnail.jpg"}),Ys.default.createElement(Ym,{variant:"inverted",title:"Turbo-charging drone operations with AirHub",paragraph:"Airhub relies on our foundational technology, Based, to power its platform for live drone operations. Our flexible infrastructure manages critical flight and operational data while supporting both cloud and on-premise deployments for diverse customers, including government.",category:["Security","Fleet management"],image:"https://files-production-saulx-once-website-production-en-c-cq-nt-hx0.based.dev/fibd10bdd4/f38db78f-a863-42e5-8e78-1606e93745dd-85898e33-167a-4f8d-9040-98d6cc942f08-41254dec-2dcf-4a8c-a41b-d6d94ee577e9.webp",video:"https://customer-rb4scmumy816frfn.cloudflarestream.com/24f9bcd991f7ee5a682c29ca22414eeb/manifest/video.m3u8",thumbnail:"https://customer-rb4scmumy816frfn.cloudflarestream.com/24f9bcd991f7ee5a682c29ca22414eeb/thumbnails/thumbnail.jpg"}),Ys.default.createElement(Ym,{variant:"alt",title:"Redefining publishing with EUobserver",paragraph:"We built an end-to-end platform for EUobserver, including a custom CMS and website, tailored to their specific needs. The bespoke CMS aligns seamlessly with their editorial workflows, offering flexibility and scalability that off-the-shelf solutions can\u2019t match. Together, we\u2019re also exploring innovative live data features to bring new dimensions to their news delivery.",category:["Publishing","CMS"],image:"https://files-production-saulx-once-website-production-en-c-cq-nt-hx0.based.dev/fi71c6efe1/23dd4549-1e5f-40ff-a235-ff3c43422aca-187b675b-ddb1-441c-a5f5-c1eecc00833a-b92bdccd-4045-4765-b913-0105dbf90ed8.webp",video:"https://customer-rb4scmumy816frfn.cloudflarestream.com/b72906efee239d3c873e1fae9573717f/manifest/video.m3u8",thumbnail:"https://customer-rb4scmumy816frfn.cloudflarestream.com/b72906efee239d3c873e1fae9573717f/thumbnails/thumbnail.jpg"}),Ys.default.createElement(Nm,{variant:"alt",text:"At Once, we connect companies to large amounts of live information, people and things. Creating an endless flow of possibilities. There, the biggest ideas sprout, take root, grow."}),Ys.default.createElement(p6,null),Ys.default.createElement(Nm,{text:"Our unified service framework builds layer by layer, expanding in scope while remaining deeply interconnected. You can engage with us at the layer that best fits your needs."}),Ys.default.createElement(X6,null));var Ar=Pe(Oe(),1);var rD=["I","II","III","IV","V","VI","VII","VIII","IX","X","XI","XII","XIII","XIV","XV"];function nD(i){let t=i.split(` `),n=[];for(let r=0;r{let[i,t]=(0,Ar.useState)(),n=-1;(0,Ar.useEffect)(()=>{fetch("https://raw.githubusercontent.com/atelier-saulx/once-web/refs/heads/main/README.md?token=GHSAT0AAAAAAC43ZYFJ4XT7A5OYIQDZTDRWZ6YFM7Q").then(a=>a.text()).then(a=>{console.log(a),t(nD(a))})},[]);let[r,s]=(0,Ar.useState)("");return console.log(i),console.log(r,"\u{1F438}"),i?Ar.default.createElement(Ar.default.Fragment,null,Ar.default.createElement(tr,{variant:"SH1",string:i.data[0].replace("# ",""),style:{position:"relative",maxWidth:1204,marginLeft:"auto",marginRight:"auto",padding:"196px 24px",marginBottom:"56px",[it]:{paddingLeft:"16px",paddingRight:"16px"}}}),Ar.default.createElement("div",{className:"a b c d e"},i?.data.map((a,o)=>(a.startsWith("## ")&&n++,Ar.default.createElement("div",{style:{position:"relative"},key:o},a.startsWith("## ")&&Ar.default.createElement(Ar.default.Fragment,null,Ar.default.createElement(Se.p,{className:"f g h i j k l m",onClick:()=>s(r===o?null:i.indexes[i.indexes.indexOf(o)]),style:{backgroundColor:r===o?Fu(a):"transparent","&:hover":{backgroundColor:Fu(a)},[_r]:{fontSize:"42px",lineHeight:"46px"},[it]:{maxWidth:"226px",fontSize:"32px",lineHeight:"36px"}}},rD[n],". ",a.replace("## ","")),Ar.default.createElement("div",{style:{height:1,width:"100%",backgroundColor:"#dadae1",marginTop:36,marginBottom:36}})),Ar.default.createElement("p",{style:{width:"50%",minWidth:300,marginLeft:"auto",fontSize:18,lineHeight:"24px"}},o>r&&o<=i.indexes[i.indexes.indexOf(r)+1]&&a.startsWith("***")&&Ar.default.createElement(Ar.default.Fragment,null,Ar.default.createElement("b",{style:{marginTop:16,display:"block",marginBottom:4}},a.substr(0,a.length-3).replace("***",""))),o>r&&o<=i.indexes[i.indexes.indexOf(r)+1]&&a&&!a.startsWith("***")&&!a.startsWith("# ")&&!a.startsWith("## ")&&Ar.default.createElement(Ar.default.Fragment,null,Ar.default.createElement("span",null,a),Ar.default.createElement("br",null))),o===r&&a.startsWith("## ")&&Ar.default.createElement(wn,{animate:!1,style:{fontSize:"14px !important",minWidth:124,position:"absolute",zIndex:1}},"examples")))))):null};var iD=G1(Z_),sD=()=>{let i=(0,tT.useRoute)("[section]/[job]"),{section:t,job:n}=i.path,[r,s]=(0,zr.useState)(!1),{data:a,loading:o}=Ct("get-other-translations",{id:"ot2aa48523"});if(o)return;let u=[{path:"what-we-do",label:a.whatWeDo},{path:"our-work",label:a.ourWork},{path:"about-us",label:a.aboutUs}],l=[{path:"contact",label:a.contact}],c=document.querySelector("body");return t==="our-work"?c.style.background="black":c.style.background="white",zr.default.createElement(zr.default.Fragment,null,zr.default.createElement("div",{style:{minHeight:t==="contact"?"50vh":"100vh",position:"relative"}},t==="what-we-do"?zr.default.createElement(K_,null):t==="our-work"?zr.default.createElement(s6,null):t==="about-us"?zr.default.createElement(o6,null):t==="careers"?zr.default.createElement(l6,null):t==="contact"?zr.default.createElement(u6,null):t==="privacy"?zr.default.createElement(c6,null):t==="imprint"?zr.default.createElement(d6,null):t==="brand"?zr.default.createElement(J6,null):zr.default.createElement(Q6,null)),t==="contact"?zr.default.createElement(j_,null):zr.default.createElement(NS,null),r&&zr.default.createElement(h6,{setMobileMenu:s}),zr.default.createElement(BS,{navLeft:u,navRight:l,section:t,job:n,setMobileMenu:s,mobileMenu:r}))};(0,eT.render)(zr.default.createElement(r5,{client:iD},zr.default.createElement(sD,null)),document.body);})(); /*! Bundled license information: react/cjs/react.production.min.js: (** * @license React * react.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. *) scheduler/cjs/scheduler.production.min.js: (** * @license React * scheduler.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. *) react-dom/cjs/react-dom.production.min.js: (** * @license React * react-dom.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. *) @p5-wrapper/react/dist/component/react.js: (** * @license React * react-jsx-runtime.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. *) @p5-wrapper/react/dist/component/react.js: (** * @license React * react-jsx-runtime.development.js * * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. *) @p5-wrapper/react/dist/component/react.js: (*! p5.js v1.9.4 May 21, 2024 *) */