{"version":3,"file":"AnimatedPatternBackground_Prod.DIuGf2zo.mjs","names":["useState","useMemo","useRef","useState","__esmMin","init_ssg_sandbox_shims","init_npm_react_18_3_1","window","pe","ce","init_jsx_runtime","_e","de","useInView","init_framer_motion_DhsWWWsN","RenderTarget","init_framer_BWFVvmND","addPropertyControls","Color","ControlType","useColors","colors","isCanvas","isOptimizing","darkMode","useDarkMode","styleValues","setStyleValues","extractStyleValues","extractCSSVariableName","div","observer","variableNames","extractDefaultValue","color","values","i","variableName","colorValues","result","lightVars","darkVars","style","vars","parseVariables","extractColorStyles","light","dark","varName","lightSection","darkSection","styles","rules","styleRules","rule","subrule","isDarkMedia","css","isDark","isLight","isPreview","isDarkMode","setIsDarkMode","mutations","mutation","theme","mediaQuery","handleChange","cssString","match","cssVariableRegex","section","name","value","declaration","s","cssVar","parts","init_useColors","AnimatedPatternBackground","playing","preview","characterSetValue","characterSet","customCharacterSet","characterSets","colorValue","color1Value","color2Value","colorInterpolatorRef","ref","canvasRef","contextRef","startTimeRef","timeRef","previousTimeRef","animationFrameRef","resizeObserverRef","isInView","getDesignParams","PATTERNS","pattern","frequencyA","frequencyB","centerASpeed","centerBSpeed","createSmoothEaseFunction","mapRange","easing","designParamsRef","forceUpdate","renderCanvas","invert","scale","font","styleType","pixelSize","canvas","resizeCanvas","pixelRatio","containerElement","cols","rows","canvasAspect","duotoneThreshold","colorThreshold","colorInterpolator","ctx","renderPixels","time","colorMode","fontSizeValue","parseCssDimension","DEFAULT_FONT","lineHeightValue","calculateRelativeLineHeight","fontFamily","fontWeight","lineHeight","letterSpacing","fontSize","aspectRatio","measureFontAspectRatio","charHeight","charWidth","m","aMod","map","bMod","y","x","coord","st","centerA","mulN","vec2","centerB","A","mode","dist","B","smoothEasing","char","designPixelSize","actualPixelSize","gridWidth","gridHeight","imageData","data","index","patternA","patternB","intensity","a","colorColor","color1Color","color2Color","tempCanvas","tempCtx","animate","updateTime","intervalId","interval","radius","v","n","dx","b","dy","start1","stop1","stop2","start2","temp","width","height","smoothing","t","power","fromLow","fromHigh","toLow","toHigh","getCssUnit","init_AnimatedPatternBackground_Prod","props","defaultValue","unit"],"sources":["https:/framerusercontent.com/modules/k76epLFsVsF4jlsF5pgg/vhK3G0ntf62fqS2tFDno/useColors.js","https:/framerusercontent.com/modules/QBu9EbwNJGzum10QxSoW/fhkEBhTU2qq8MJYui0H8/AnimatedPatternBackground_Prod.js"],"sourcesContent":["import{RenderTarget}from\"framer\";import{useEffect,useState,useMemo}from\"react\";const cssVariableRegex=/var\\s*\\(\\s*(--[\\w-]+)(?:\\s*,\\s*((?:[^)(]+|\\((?:[^)(]+|\\([^)(]*\\))*\\))*))?\\s*\\)/;export function useColors(...colors){const isCanvas=RenderTarget.current()===RenderTarget.canvas;const isOptimizing=typeof window===\"undefined\";const darkMode=useDarkMode();const[styleValues,setStyleValues]=useState(()=>extractStyleValues(colors.map(extractCSSVariableName)));useEffect(()=>{if(!isCanvas)return;const div=document.body.querySelector(\"main > div\");if(!div)return;const observer=new MutationObserver(()=>{setStyleValues(extractStyleValues(colors.map(extractCSSVariableName)));});observer.observe(div,{attributes:true,attributeFilter:[\"style\"]});return()=>observer.disconnect();},colors);const variableNames=useMemo(()=>colors.map(extractCSSVariableName),[colors]);if(isOptimizing){return colors.map(color=>extractDefaultValue(color));}let values=[];for(let i=0;i<colors.length;i++){const color=colors[i];// Return original value if not a string\nif(typeof color!==\"string\"){values.push(color);continue;}const variableName=variableNames[i];const colorValues=styleValues[variableName];if(variableName&&colorValues){values.push(darkMode?colorValues.dark||colorValues.light||color:colorValues.light||color);}else{values.push(color);}}return values;}////////////////////\nfunction extractStyleValues(variableNames){const isCanvas=RenderTarget.current()===RenderTarget.canvas;const result={};let lightVars={};let darkVars={};if(isCanvas&&typeof document!==\"undefined\"){const div=document.body.querySelector(\"main > div\");if(div){const style=div.getAttribute(\"style\");if(style){const vars=parseVariables(style);lightVars=vars;darkVars=vars;}}}else{const{light,dark}=extractColorStyles();lightVars=parseVariables(light);darkVars=parseVariables(dark);}// Include all variables\nconst allVarNames=new Set([...Object.keys(lightVars),...Object.keys(darkVars)]);allVarNames.forEach(varName=>{result[varName]={light:lightVars[varName]||\"\",dark:darkVars[varName]||\"\"};});return result;}function extractColorStyles(){let lightSection=\"\";let darkSection=\"\";if(typeof document!==\"undefined\"){const styles=document.head.querySelectorAll(\"style[data-framer-css], style[data-framer-css-ssr], style[data-framer-css-ssr-minified]\");for(const style of styles){const rules=style.sheet?.cssRules;if(!rules)continue;const styleRules=[];for(const rule of rules){if(rule instanceof CSSStyleRule){styleRules.push([rule,false]);}else if(rule instanceof CSSMediaRule){if(rule.conditionText===\"(prefers-color-scheme: dark)\"){for(const subrule of rule.cssRules){if(subrule instanceof CSSStyleRule){styleRules.push([subrule,true]);}}}}}for(const[rule,isDarkMedia]of styleRules){const css=rule.cssText;const hasVars=css.includes(\"--token-\");if(!hasVars)continue;const isDark=isDarkMedia?rule.selectorText===\"body\":rule.selectorText==='body[data-framer-theme=\"dark\"]';const isLight=!isDarkMedia&&rule.selectorText===\"body\";if(!isDark&&!isLight)continue;if(isDark){if(!darkSection){darkSection=css.substring(css.indexOf(\"{\")+1,css.lastIndexOf(\"}\")).trim();}}else{if(!lightSection){lightSection=css.substring(css.indexOf(\"{\")+1,css.lastIndexOf(\"}\")).trim();}}if(darkSection&&lightSection)break;}if(darkSection&&lightSection)break;}}return{light:lightSection,dark:darkSection};}export function useDarkMode(){const isPreview=typeof window!==\"undefined\"&&window.location.origin.endsWith(\"framercanvas.com\");const[isDarkMode,setIsDarkMode]=useState(()=>{if(typeof window===\"undefined\"){return false;}else if(isPreview&&typeof document!==\"undefined\"){return document.body.getAttribute(\"data-framer-theme\")===\"dark\";}else{return window.matchMedia(\"(prefers-color-scheme: dark)\").matches;}});useEffect(()=>{if(isPreview){const observer=new MutationObserver(mutations=>{mutations.forEach(mutation=>{if(mutation.attributeName===\"data-framer-theme\"){const theme=document.body.getAttribute(\"data-framer-theme\");setIsDarkMode(theme===\"dark\");}});});observer.observe(document.body,{attributes:true,attributeFilter:[\"data-framer-theme\"]});return()=>observer.disconnect();}else{const mediaQuery=window.matchMedia(\"(prefers-color-scheme: dark)\");const handleChange=e=>{setIsDarkMode(e.matches);};// Update initial value\nif(mediaQuery.matches!==isDarkMode){setIsDarkMode(mediaQuery.matches);}mediaQuery.addListener(handleChange);return()=>mediaQuery.removeListener(handleChange);}},[isPreview]);return isDarkMode;}function extractCSSVariableName(cssString){if(!cssString||!cssString.startsWith(\"var(\")){return\"\";}const match=cssVariableRegex.exec(cssString);if(match){const variableName=match[1];return variableName||\"\";}return\"\";}function parseVariables(section){const vars={};if(!section)return vars;const declarations=section.split(\";\").filter(Boolean);declarations.forEach(declaration=>{const[name,value]=declaration.split(\":\").map(s=>s.trim());if(name&&value){vars[name]=value;}});return vars;}function extractDefaultValue(cssVar){// Check if the string starts with \"var(\"\nif(!cssVar||!cssVar.startsWith(\"var(\")){return cssVar// Return the original value if it doesn't start with \"var(\"\n;}// Remove \"var(\" from the beginning and \")\" from the end\nconst content=cssVar.slice(4,-1);// Split the content by comma\nconst parts=content.split(\",\");// If there's more than one part, the second part is the default value\nif(parts.length>1){// Trim any whitespace from the default value\nreturn parts.slice(1).join(\",\").trim();}// If there's no comma, return an empty string or null\nreturn\"\";}\nexport const __FramerMetadata__ = {\"exports\":{\"useDarkMode\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useColors\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./useColors.map","import{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,RenderTarget,Color}from\"framer\";import{useEffect,useState,useRef}from\"react\";import{useColors}from\"https://framerusercontent.com/modules/k76epLFsVsF4jlsF5pgg/vhK3G0ntf62fqS2tFDno/useColors.js\";import{useInView}from\"framer-motion\";const characterSets={standard:\" ..._-:=+abcXW@#\",detailed:\" $@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\\\\|()1{}[]?-_+~<>i!lI;:,\\\"^`'.\",binary:\" 01\",hex:\" 0123456789ABCDEF\"};const DEFAULT_FONT={fontFamily:'\"Fragment Mono\", monospace',fontSize:\"12px\",fontStyle:\"normal\",fontWeight:400,letterSpacing:\"0em\",lineHeight:\"1em\"};const PATTERNS={\"1\":0,\"2\":1,\"3\":2};/**\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n *\n * @framerDisableUnlink\n *\n * @framerIntrinsicWidth 600\n * @framerIntrinsicHeight 400\n */export default function AnimatedPatternBackground({preview,styleType,font,characterSet,customCharacterSet,invert,color,frequencyA,frequencyB,centerASpeed,centerBSpeed,pattern,easing,scale,backgroundColor,radius,style,interval,pixelSize}){const isCanvas=RenderTarget.current()===RenderTarget.canvas;const playing=isCanvas?preview:true;const characterSetValue=characterSet==\"custom\"?customCharacterSet:characterSets[characterSet];const[colorValue,color1Value,color2Value]=useColors(color.color,color.color1,color.color2);const colorInterpolatorRef=useRef(()=>Color.interpolate(new Color(color1Value),new Color(color2Value)));const ref=useRef(null);const canvasRef=useRef(null);const contextRef=useRef(null);const startTimeRef=useRef(0);const timeRef=useRef(0);const previousTimeRef=useRef(-1)// Track if time has changed\n;const animationFrameRef=useRef(null);const resizeObserverRef=useRef(null);const isInView=useInView(ref,{once:false,amount:\"some\"});function getDesignParams(){return{mode:PATTERNS[pattern]??0,frequencyA:frequencyA/100,frequencyB:frequencyB/100,centerASpeed:centerASpeed/50,centerBSpeed:centerBSpeed/50,invert,smoothEasing:createSmoothEaseFunction(mapRange(easing,0,100,-1,1)),characterSet:characterSetValue,scale,colorMode:color.mode,colorThreshold:color.threshold,colorValue,color1Value,color2Value,pixelSize,styleType,font,colorColor:new Color(colorValue),color1Color:new Color(color1Value),color2Color:new Color(color2Value)};}const designParamsRef=useRef(getDesignParams);const[,forceUpdate]=useState({});useEffect(()=>{colorInterpolatorRef.current=Color.interpolate(new Color(color1Value),new Color(color2Value));},[color1Value,color2Value]);// Update design params when props change\nuseEffect(()=>{designParamsRef.current=getDesignParams();// Force a render when customization values change, without changing the time\nif(canvasRef.current&&contextRef.current){renderCanvas(contextRef.current,canvasRef.current,timeRef.current);}},[pattern,frequencyA,frequencyB,centerASpeed,centerBSpeed,invert,easing,characterSetValue,color.mode,color.threshold,colorValue,color1Value,color2Value,scale,font,styleType,pixelSize]);// Initialize canvas\nuseEffect(()=>{const canvas=canvasRef.current;if(!canvas)return;contextRef.current=canvas.getContext(\"2d\",{alpha:true});startTimeRef.current=performance.now();const resizeCanvas=()=>{const pixelRatio=window.devicePixelRatio||1;canvas.width=canvas.clientWidth*pixelRatio;canvas.height=canvas.clientHeight*pixelRatio;// Re-render after resize with current time value\nif(contextRef.current){renderCanvas(contextRef.current,canvas,timeRef.current);}};// Initialize ResizeObserver to detect container size changes\nconst containerElement=ref.current;if(containerElement){resizeObserverRef.current=new ResizeObserver(()=>{resizeCanvas();});resizeObserverRef.current.observe(containerElement);}resizeCanvas();return()=>{if(resizeObserverRef.current){resizeObserverRef.current.disconnect();}};},[]);// Separate rendering function that can be called with a specific time value\nconst renderCanvas=(ctx,canvas,time)=>{const{scale,colorMode,colorThreshold,colorValue,color1Value,color2Value,font,mode,frequencyA,frequencyB,centerASpeed,centerBSpeed,invert,smoothEasing,characterSet,styleType}=designParamsRef.current;const cols=canvas.width;const rows=canvas.height;const pixelRatio=window.devicePixelRatio||1;const canvasAspect=canvas.width/canvas.height;const duotoneThreshold=colorThreshold/100;const colorInterpolator=colorInterpolatorRef.current;// Clear the canvas before drawing new content\nctx.clearRect(0,0,canvas.width,canvas.height);// If pixel mode, use the pixel rendering method\nif(styleType===\"pixel\"){renderPixels(ctx,canvas,time);return;}// Set text rendering properties\nctx.textBaseline=\"top\";ctx.textAlign=\"left\";if(colorMode===\"color\"){ctx.fillStyle=colorValue;}// Parse font size first as we need it for px-to-em conversions\nconst fontSizeValue=parseCssDimension(font.fontSize,parseCssDimension(DEFAULT_FONT.fontSize,12));// Simplified line height calculation\nconst lineHeightValue=calculateRelativeLineHeight(font.lineHeight||DEFAULT_FONT.lineHeight,fontSizeValue);// Use font settings from the font property with DEFAULT_FONT as fallback\nconst fontFamily=font.fontFamily||DEFAULT_FONT.fontFamily;const fontWeight=font.fontWeight||DEFAULT_FONT.fontWeight;const lineHeight=lineHeightValue;const letterSpacing=parseCssDimension(font.letterSpacing,parseCssDimension(DEFAULT_FONT.letterSpacing,0));const fontSize=fontSizeValue*scale*pixelRatio;// Set the font with all properties\nctx.font=`${fontWeight} ${fontSize}px ${fontFamily}`;ctx.imageSmoothingEnabled=false;// Calculate character size with proper spacing using measureFontAspectRatio\nconst aspectRatio=measureFontAspectRatio({fontFamily,fontWeight,fontSize,lineHeight,letterSpacing});const charHeight=fontSize*lineHeightValue;const charWidth=charHeight*aspectRatio;const m=Math.min(cols,rows);const aMod=map(Math.cos(time*frequencyA),-1,1,6,60);const bMod=map(Math.cos(time*frequencyB),-1,1,6,60);// Render ASCII art\nfor(let y=0;y<rows;y+=charHeight){for(let x=0;x<cols;x+=charWidth){const coord=[Math.floor(x),Math.floor(y)];const st=[2*(coord[0]-cols/2)/m,2*(coord[1]-rows/2)/m];st[0]*=canvasAspect;const centerA=mulN(vec2(Math.cos(time*3*centerASpeed),Math.sin(time*7*centerASpeed)),.5);const centerB=mulN(vec2(Math.cos(time*5*centerBSpeed),Math.sin(time*4*centerBSpeed)),.5);const A=mode%2===0?Math.atan2(centerA[1]-st[1],centerA[0]-st[0]):dist(st,centerA);const B=mode===0?Math.atan2(centerB[1]-st[1],centerB[0]-st[0]):dist(st,centerB);const a=Math.cos(A*aMod);const b=Math.cos(B*bMod);let i=smoothEasing((a*b+1)/2);if(invert){i=1-i;}const char=characterSet[Math.floor(i*characterSet.length)];if(colorMode===\"duotone\"){ctx.fillStyle=i<duotoneThreshold?color1Value:color2Value;}else if(colorMode===\"gradient\"){ctx.fillStyle=colorInterpolator(i).toValue();}ctx.fillText(char,coord[0],coord[1]);}}};// New function to render pixels using putImageData\nconst renderPixels=(ctx,canvas,time)=>{const{colorMode,colorThreshold,colorColor,color1Color,color2Color,mode,frequencyA,frequencyB,centerASpeed,centerBSpeed,invert,smoothEasing,pixelSize:designPixelSize}=designParamsRef.current;const pixelRatio=window.devicePixelRatio||1;const actualPixelSize=designPixelSize*pixelRatio;// Calculate the pixel grid dimensions based on the component size and pixel size\nconst gridWidth=Math.ceil(canvas.width/actualPixelSize);const gridHeight=Math.ceil(canvas.height/actualPixelSize);// Create an ImageData object for the pixel grid\nconst imageData=ctx.createImageData(gridWidth,gridHeight);const data=imageData.data;const canvasAspect=gridWidth/gridHeight;const m=Math.min(gridWidth,gridHeight);const aMod=map(Math.cos(time*frequencyA),-1,1,6,60);const bMod=map(Math.cos(time*frequencyB),-1,1,6,60);const duotoneThreshold=colorThreshold/100;const colorInterpolator=colorInterpolatorRef.current;// Fill the pixel data array\nfor(let y=0;y<gridHeight;y++){for(let x=0;x<gridWidth;x++){const index=(y*gridWidth+x)*4;// Calculate normalized coordinates\nconst st=[2*(x-gridWidth/2)/m,2*(y-gridHeight/2)/m];st[0]*=canvasAspect;const centerA=mulN(vec2(Math.cos(time*3*centerASpeed),Math.sin(time*7*centerASpeed)),.5);const centerB=mulN(vec2(Math.cos(time*5*centerBSpeed),Math.sin(time*4*centerBSpeed)),.5);const patternA=mode%2===0?Math.atan2(centerA[1]-st[1],centerA[0]-st[0]):dist(st,centerA);const patternB=mode===0?Math.atan2(centerB[1]-st[1],centerB[0]-st[0]):dist(st,centerB);const cosA=Math.cos(patternA*aMod);const cosB=Math.cos(patternB*bMod);let intensity=smoothEasing((cosA*cosB+1)/2);if(invert){intensity=1-intensity;}// Set pixel color based on color mode\nlet color;let a=intensity;if(colorMode===\"color\"){color=colorColor;a=invert?1-intensity:intensity;}else if(colorMode===\"duotone\"){color=intensity<duotoneThreshold?color1Color:color2Color;a=color.a;}else if(colorMode===\"gradient\"){color=colorInterpolator(intensity);a=color.a;}data[index]=Math.round(color.r);data[index+1]=Math.round(color.g);data[index+2]=Math.round(color.b);data[index+3]=Math.round(a*255);}}// Create a temporary canvas for the pixel grid\nconst tempCanvas=document.createElement(\"canvas\");tempCanvas.width=gridWidth;tempCanvas.height=gridHeight;const tempCtx=tempCanvas.getContext(\"2d\");// Put the image data on the temporary canvas\nif(tempCtx){tempCtx.putImageData(imageData,0,0);// Scale up the temporary canvas to the full size\nctx.imageSmoothingEnabled=false// Keep pixels sharp\n;ctx.drawImage(tempCanvas,0,0,gridWidth,gridHeight,0,0,canvas.width,canvas.height);}};// Main animation loop\nuseEffect(()=>{const canvas=canvasRef.current;const ctx=contextRef.current;if(!canvas||!ctx)return;// Animation frame function that checks if time has changed\nconst animate=()=>{if(previousTimeRef.current!==timeRef.current){renderCanvas(ctx,canvas,timeRef.current);previousTimeRef.current=timeRef.current;}animationFrameRef.current=requestAnimationFrame(animate);};// Interval function that updates the time value\nconst updateTime=()=>{timeRef.current=(performance.now()-startTimeRef.current)*.1*1e-4;};let intervalId;if(isInView){// Start animation frame loop\nanimationFrameRef.current=requestAnimationFrame(animate);// Only set up the interval if playing is true and component is in view\nif(playing){// Update time immediately for first render\nupdateTime();intervalId=setInterval(updateTime,interval*1e3);}}return()=>{if(intervalId!==undefined){clearInterval(intervalId);}if(animationFrameRef.current!==null){cancelAnimationFrame(animationFrameRef.current);animationFrameRef.current=null;}};},[interval,playing,isInView]);return /*#__PURE__*/_jsx(\"div\",{ref:ref,style:{...style,backgroundColor,borderRadius:radius,overflow:\"hidden\"},children:/*#__PURE__*/_jsx(\"canvas\",{ref:canvasRef,style:{...style}})});}AnimatedPatternBackground.displayName=\"Animated Pattern Background\";addPropertyControls(AnimatedPatternBackground,{preview:{type:ControlType.Boolean,defaultValue:true,description:\"Play in editor\"},styleType:{type:ControlType.Enum,defaultValue:\"ascii\",options:[\"ascii\",\"pixel\"],optionTitles:[\"ASCII\",\"Pixel\"],displaySegmentedControl:true,title:\"Style\"},pixelSize:{type:ControlType.Number,defaultValue:20,min:5,step:1,hidden:props=>props.styleType!==\"pixel\"},font:{type:\"font\",defaultFontType:\"monospace\",displayTextAlignment:false,controls:\"extended\",defaultValue:{fontSize:12,lineHeight:1},hidden:props=>props.styleType!==\"ascii\"},characterSet:{type:ControlType.Enum,defaultValue:\"standard\",options:[\"standard\",\"detailed\",\"binary\",\"hex\",\"custom\"],optionTitles:[`Standard (${characterSets.standard})`,`Detailed (${characterSets.detailed})`,`Binary (${characterSets.binary})`,`Hex (${characterSets.hex})`,\"Custom\"],title:\"Characters\",hidden:props=>props.styleType!==\"ascii\"},customCharacterSet:{type:ControlType.String,defaultValue:\"        FramerUniversity\",placeholder:\"Character set\",title:\"Custom\",hidden:props=>props.characterSet!==\"custom\"||props.styleType!==\"ascii\"},scale:{type:ControlType.Number,defaultValue:1,min:.5,max:5,step:.1,hidden:props=>props.styleType!==\"ascii\"},color:{type:ControlType.Object,controls:{mode:{type:ControlType.Enum,options:[\"color\",\"gradient\",\"duotone\"],optionTitles:[\"Color\",\"Gradient\",\"Duotone\"],displaySegmentedControl:true,segmentedControlDirection:\"vertical\"},color:{type:ControlType.Color,defaultValue:\"#FFFFFF\",hidden:props=>props.mode!==\"color\"},color1:{type:ControlType.Color,defaultValue:\"#0059FF\",hidden:props=>props.mode!==\"gradient\"&&props.mode!==\"duotone\"},color2:{type:ControlType.Color,defaultValue:\"#FFFFFF\",hidden:props=>props.mode!==\"gradient\"&&props.mode!==\"duotone\"},threshold:{type:ControlType.Number,defaultValue:50,min:0,max:100,step:1,unit:\"%\",hidden:props=>props.mode!==\"duotone\"}}},pattern:{type:ControlType.Enum,defaultValue:\"1\",options:[\"1\",\"2\",\"3\"],displaySegmentedControl:true},easing:{type:ControlType.Number,defaultValue:50,min:0,max:100,step:1},invert:{type:ControlType.Boolean,defaultValue:false},frequencyA:{type:ControlType.Number,defaultValue:40,min:0,max:100,step:1,title:\"Morph 1\"},frequencyB:{type:ControlType.Number,defaultValue:60,min:0,max:100,step:1,title:\"Morph 2\"},centerASpeed:{type:ControlType.Number,defaultValue:25,min:0,max:100,step:1,title:\"Speed 1\"},centerBSpeed:{type:ControlType.Number,defaultValue:25,min:0,max:100,step:1,title:\"Speed 2\"},interval:{type:ControlType.Number,defaultValue:.1,min:.01,max:10,step:.01,unit:\"s\"},backgroundColor:{type:ControlType.Color,defaultValue:\"#000000\",optional:true,title:\"Background\"},radius:{type:ControlType.BorderRadius,defaultValue:\"0px\",description:\"More components at [Framer University](https://frameruni.link/cc).\"}});function vec2(x,y){return[x,y];}function mulN(v,n){return[v[0]*n,v[1]*n];}function dist(a,b){const dx=b[0]-a[0];const dy=b[1]-a[1];return Math.sqrt(dx*dx+dy*dy);}function map(value,start1,stop1,start2,stop2){return(value-start1)/(stop1-start1)*(stop2-start2)+start2;}// Measure font aspect ratio by creating a temporary element\nfunction measureFontAspectRatio(font){font=font||DEFAULT_FONT;const temp=document.createElement(\"div\");temp.style.position=\"absolute\";temp.style.visibility=\"hidden\";temp.style.whiteSpace=\"nowrap\";temp.style.fontFamily=font.fontFamily;temp.style.fontWeight=font.fontWeight;temp.style.fontSize=font.fontSize;temp.style.lineHeight=font.lineHeight;temp.style.letterSpacing=font.letterSpacing;temp.textContent=\"W\";document.body.appendChild(temp);const width=temp.offsetWidth;const height=temp.offsetHeight;document.body.removeChild(temp);return width/height;}// Helper function to parse CSS dimension values\nconst parseCssDimension=(value,defaultValue)=>{if(!value)return defaultValue;// Extract numeric part from values like \"12px\", \"1.2em\", etc.\nconst match=String(value).match(/^([\\d.]+)([a-z%]*)$/i);if(!match)return defaultValue;const numValue=parseFloat(match[1]);return numValue;};// Extract unit from CSS value\nconst getCssUnit=value=>{if(!value)return\"\";const match=String(value).match(/^([\\d.]+)([a-z%]*)$/i);return match?match[2].toLowerCase():\"\";};// Calculate relative line height (as a multiplier of font size)\nconst calculateRelativeLineHeight=(lineHeight,fontSizeValue)=>{if(!lineHeight)return 1// Default to 1 if no line height provided\n;const unit=getCssUnit(lineHeight);const value=parseCssDimension(lineHeight,1);// Handle different units in one consolidated function\nswitch(unit){case\"%\":return value/100;case\"px\":return value/fontSizeValue;default:return value// For em and unitless values, use as is\n;}};function createSmoothEaseFunction(smoothing){if(smoothing===0){return t=>t;}else{smoothing=Math.max(-1,Math.min(1,smoothing));// Calculate the power based on the smoothing value\nconst power=1+Math.abs(smoothing)*2;if(smoothing>0){return t=>{// Ensure t is between 0 and 1\nt=Math.max(0,Math.min(1,t));return Math.pow(t,power);};}else{return t=>{// Ensure t is between 0 and 1\nt=Math.max(0,Math.min(1,t));return 1-Math.pow(1-t,power);};}}}function mapRange(value,fromLow,fromHigh,toLow,toHigh){if(fromLow===fromHigh){return toLow;}const percentage=(value-fromLow)/(fromHigh-fromLow);return toLow+percentage*(toHigh-toLow);}\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"AnimatedPatternBackground\",\"slots\":[],\"annotations\":{\"framerDisableUnlink\":\"*\",\"framerSupportedLayoutHeight\":\"fixed\",\"framerIntrinsicWidth\":\"600\",\"framerContractVersion\":\"1\",\"framerIntrinsicHeight\":\"400\",\"framerSupportedLayoutWidth\":\"fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./AnimatedPatternBackground_Prod.map"],"mappings":"A,wQAAuL,SAAgBoB,EAAU,GAAGC,EAAO,CAAC,IAAMC,EAASP,EAAa,QAAQ,IAAIA,EAAa,OAAaQ,EAAoBhB,IAAS,OAAkBiB,EAASC,EAAY,EAAO,CAACC,EAAYC,GAAgB3B,MAAa4B,EAAmBP,EAAO,IAAIQ,CAAsB,CAAC,CAAC,EAAEpB,MAAc,CAAC,GAAG,CAACa,EAAS,OAAO,IAAMQ,EAAI,SAAS,KAAK,cAAc,YAAY,EAAE,GAAG,CAACA,EAAI,OAAO,IAAMC,EAAS,IAAI,qBAAqB,CAACJ,EAAeC,EAAmBP,EAAO,IAAIQ,CAAsB,CAAC,CAAC,CAAE,CAAC,EAAoE,OAAlEE,EAAS,QAAQD,EAAI,CAAC,WAAW,GAAK,gBAAgB,CAAC,OAAO,CAAC,CAAC,MAAYC,EAAS,WAAW,CAAE,EAAEV,CAAM,EAAE,IAAMW,EAAc/B,MAAYoB,EAAO,IAAIQ,CAAsB,EAAE,CAACR,CAAM,CAAC,EAAE,GAAGE,EAAc,OAAOF,EAAO,IAAI,GAAOY,EAAoBC,CAAK,CAAC,EAAG,IAAIC,EAAO,CAAC,EAAE,IAAI,IAAIC,EAAE,EAAEA,EAAEf,EAAO,OAAO,IAAI,CAAC,IAAMa,EAAMb,EAAOe,GACt+B,GAAG,OAAOF,GAAQ,SAAS,CAACC,EAAO,KAAKD,CAAK,EAAE,QAAS,CAAC,IAAMG,EAAaL,EAAcI,GAASE,EAAYZ,EAAYW,GAAiBA,GAAcC,EAAaH,EAAO,KAAKX,EAASc,EAAY,MAAMA,EAAY,OAAOJ,EAAMI,EAAY,OAAOJ,CAAK,EAAQC,EAAO,KAAKD,CAAK,CAAG,CAAC,OAAOC,CAAO,CAC1S,SAASP,EAAmB,EAAc,CAAC,IAAMN,EAASP,EAAa,QAAQ,IAAIA,EAAa,OAAawB,EAAO,CAAC,EAAMC,EAAU,CAAC,EAAMC,EAAS,CAAC,EAAE,GAAGnB,GAAU,OAAO,SAAW,IAAY,CAAC,IAAMQ,EAAI,SAAS,KAAK,cAAc,YAAY,EAAE,GAAGA,EAAI,CAAC,IAAMY,EAAMZ,EAAI,aAAa,OAAO,EAAE,GAAGY,EAAM,CAAC,IAAMC,EAAKC,EAAeF,CAAK,EAAE,EAAUC,EAAK,EAASA,CAAK,CAAC,CAAC,KAAK,CAAC,GAAK,CAAC,QAAM,QAAME,EAAmB,EAAE,EAAUD,EAAeE,CAAK,EAAE,EAASF,EAAeG,CAAI,CAAE,CAChS,uBAA3G,IAA1D,IAAI,CAAC,GAAG,OAAO,KAAKP,CAAS,EAAE,GAAG,OAAO,KAAKC,CAAQ,CAAC,CAAa,EAAA,CAAE,QAAQ,GAAS,CAAC,EAAOO,GAAS,CAAC,MAAMR,EAAUQ,IAAU,GAAG,KAAKP,EAASO,IAAU,EAAE,CAAE,CAAC,EAAST,CAAO,CAAC,SAASM,GAAoB,CAAC,IAAII,EAAa,GAAOC,EAAY,GAAG,GAAG,OAAO,SAAW,IAAY,CAAC,IAAMC,EAAO,SAAS,KAAK,iBAAiB,yFAAyF,EAAE,IAAI,IAAMT,KAASS,EAAO,CAAC,IAAMC,EAAMV,EAAM,OAAO,SAAS,GAAG,CAACU,EAAM,SAAS,IAAMC,EAAW,CAAC,EAAE,IAAI,IAAMC,KAAQF,EAAO,GAAGE,aAAgB,aAAcD,EAAW,KAAK,CAACC,EAAK,EAAK,CAAC,OAAQ,GAAGA,aAAgB,cAAiBA,EAAK,gBAAgB,+BAAoC,IAAA,IAAMC,KAAWD,EAAK,SAAaC,aAAmB,cAAcF,EAAW,KAAK,CAACE,EAAQ,EAAI,CAAC,EAAO,IAAI,GAAK,CAACD,EAAKE,KAAeH,EAAW,CAAC,IAAMI,EAAIH,EAAK,QAA+C,GAAG,CAA5BG,EAAI,SAAS,UAAsB,EAAE,SAAS,IAAMC,EAAOF,EAAYF,EAAK,eAAe,OAAOA,EAAK,eAAe,iCAAuCK,EAAQ,CAACH,GAAaF,EAAK,eAAe,OAAO,IAAII,GAASC,KAAoBD,EAAW,AAAcR,IAAYO,EAAI,UAAUA,EAAI,QAAQ,GAAG,EAAE,EAAEA,EAAI,YAAY,GAAG,CAAC,CAAC,CAAC,KAAK,EAAS,AAAkBR,IAAaQ,EAAI,UAAUA,EAAI,QAAQ,GAAG,EAAE,EAAEA,EAAI,YAAY,GAAG,CAAC,CAAC,CAAC,KAAK,EAAOP,GAAaD,GAAa,KAAM,CAAC,GAAGC,GAAaD,EAAa,KAAM,CAAC,CAAC,MAAM,CAAC,MAAMA,EAAa,KAAKC,CAAW,CAAE,CAAC,SAAgBzB,GAAa,CAAC,IAAMmC,EAAiBrD,IAAS,QAAaA,EAAO,SAAS,OAAO,SAAS,kBAAkB,EAAO,CAACsD,EAAWC,GAAe9D,MAAwBO,IAAS,OAAoB,GAAeqD,GAAW,OAAO,SAAW,IAAoB,SAAS,KAAK,aAAa,mBAAmB,IAAI,OAAoBrD,EAAO,WAAW,8BAA8B,CAAC,CAAC,OAAU,EACrqD,OADuqDE,MAAc,CAAC,GAAGmD,EAAU,CAAC,IAAM7B,EAAS,IAAI,iBAAiB,GAAW,CAACgC,EAAU,QAAQ,GAAU,CAAC,GAAGC,EAAS,gBAAgB,oBAAoB,CAAC,IAAMC,EAAM,SAAS,KAAK,aAAa,mBAAmB,EAAEH,EAAcG,IAAQ,MAAM,CAAE,CAAC,CAAC,CAAE,CAAC,EAA0F,OAAxFlC,EAAS,QAAQ,SAAS,KAAK,CAAC,WAAW,GAAK,gBAAgB,CAAC,mBAAmB,CAAC,CAAC,MAAYA,EAAS,WAAW,CAAE,CAAK,CAAC,IAAMmC,EAAW3D,EAAO,WAAW,8BAA8B,EAAQ4D,EAAa,GAAG,CAACL,EAAc,EAAE,OAAO,CAAE,EACttE,OAAzGI,EAAW,UAAUL,GAAYC,EAAcI,EAAW,OAAO,EAAGA,EAAW,YAAYC,CAAY,MAAYD,EAAW,eAAeC,CAAY,CAAE,CAAC,EAAE,CAACP,CAAS,CAAC,EAASC,CAAW,CAAC,SAAShC,EAAuB,EAAU,CAAC,GAAG,CAACuC,GAAW,CAACA,EAAU,WAAW,MAAM,EAAG,MAAM,GAAI,IAAMC,EAAMC,EAAiB,KAAKF,CAAS,EAAiE,OAA5DC,GAA0BA,EAAM,IAAwB,EAAa,CAAC,SAASzB,EAAe,EAAQ,CAAC,IAAMD,EAAK,CAAC,EAAkN,OAA5M4B,GAA0EA,EAA3B,MAAM,GAAG,CAAC,CAAC,OAAO,OAAoB,CAAC,CAAC,QAAQ,GAAa,CAAC,GAAK,CAACC,EAAKC,GAAOC,EAAY,MAAM,GAAG,CAAC,CAAC,IAAI,GAAGC,EAAE,KAAK,CAAC,EAAKH,GAAMC,IAAO,EAAKD,GAAMC,EAAO,CAAC,EAAS9B,CAAK,CAAC,SAASV,EAAoB,EAAO,CAC1sB,GAAG,CAAC2C,GAAQ,CAACA,EAAO,WAAW,MAAM,EAAG,OAAOA,EAG/C,IAAMC,EADQD,EAAO,MAAM,EAAE,EACX,CAAC,CAAC,MAAM,GAAG,EAG7B,OAFGC,EAAM,OAAO,EACTA,EAAM,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,EAC/B,EAAG,C,gDAX4E,EAAiB,gF,OCQnG,SAAwBE,EAA0B,CAAC,UAAQ,YAAU,OAAK,eAAa,qBAAmB,SAAO,QAAM,aAAW,aAAW,eAAa,eAAa,UAAQ,SAAO,QAAM,kBAAgB,SAAO,QAAM,WAAS,aAAW,CAA6D,IAAMC,EAAnDjE,EAAa,QAAQ,IAAIA,EAAa,QAA8BkE,EAAmBC,EAAkBC,GAAc,SAASC,EAAmBC,EAAcF,GAAmB,CAACG,EAAWC,EAAYC,GAAapE,EAAUc,EAAM,MAAMA,EAAM,OAAOA,EAAM,MAAM,EAAQuD,EAAqBvF,MAAWgB,EAAM,YAAY,IAAIA,EAAMqE,CAAW,EAAE,IAAIrE,EAAMsE,CAAW,CAAC,CAAC,EAAQE,EAAIxF,EAAO,IAAI,EAAQyF,EAAUzF,EAAO,IAAI,EAAQ0F,EAAW1F,EAAO,IAAI,EAAQ2F,GAAa3F,EAAO,CAAC,EAAQ4F,EAAQ5F,EAAO,CAAC,EAAQ6F,GAAgB7F,EAAO,EAAE,EACjxB8F,EAAkB9F,EAAO,IAAI,EAAQ+F,EAAkB/F,EAAO,IAAI,EAAQgG,GAASrF,EAAU6E,EAAI,CAAC,KAAK,GAAM,OAAO,MAAM,CAAC,EAAE,SAASS,IAAiB,CAAC,MAAM,CAAC,KAAKC,EAASC,IAAU,EAAE,WAAWC,EAAW,IAAI,WAAWC,EAAW,IAAI,aAAaC,EAAa,GAAG,aAAaC,EAAa,GAAG,SAAO,aAAaC,EAAyBC,EAASC,EAAO,EAAE,IAAI,GAAG,CAAC,CAAC,EAAE,aAAa1B,EAAkB,QAAM,UAAUhD,EAAM,KAAK,eAAeA,EAAM,UAAU,aAAW,cAAY,cAAY,YAAU,YAAU,OAAK,WAAW,IAAIhB,EAAMoE,CAAU,EAAE,YAAY,IAAIpE,EAAMqE,CAAW,EAAE,YAAY,IAAIrE,EAAMsE,CAAW,CAAC,CAAE,CAAC,IAAMqB,EAAgB3G,EAAOiG,EAAe,EAAO,EAAEW,IAAa3G,EAAS,CAAC,CAAC,EAAEM,MAAc,CAAC,EAAqB,QAAQS,EAAM,YAAY,IAAIA,EAAMqE,CAAW,EAAE,IAAIrE,EAAMsE,CAAW,CAAC,CAAE,EAAE,CAACD,EAAYC,CAAW,CAAC,EAC70B/E,MAAc,CAAC,EAAgB,QAAQ0F,GAAgB,EACpDR,EAAU,SAASC,EAAW,SAASmB,EAAanB,EAAW,QAAQD,EAAU,QAAQG,EAAQ,OAAO,CAAG,EAAE,CAACO,EAAQC,EAAWC,EAAWC,EAAaC,EAAaO,EAAOJ,EAAO1B,EAAkBhD,EAAM,KAAKA,EAAM,UAAUoD,EAAWC,EAAYC,EAAYyB,EAAMC,EAAKC,EAAUC,CAAS,CAAC,EACtS3G,MAAc,CAAC,IAAM4G,EAAO1B,EAAU,QAAQ,GAAG,CAAC0B,EAAO,OAAO,EAAW,QAAQA,EAAO,WAAW,KAAK,CAAC,MAAM,EAAI,CAAC,EAAE,GAAa,QAAQ,YAAY,IAAI,EAAE,IAAMC,MAAiB,CAAC,IAAMC,EAAWhH,EAAO,kBAAkB,EAAE,EAAO,MAAM8G,EAAO,YAAYE,EAAW,EAAO,OAAOF,EAAO,aAAaE,EAC7S3B,EAAW,SAASmB,EAAanB,EAAW,QAAQyB,EAAOvB,EAAQ,OAAO,CAAG,EAC1E0B,EAAiB9B,EAAI,QAAqK,OAA1J8B,IAAkB,EAAkB,QAAQ,IAAI,mBAAmB,CAACF,EAAa,CAAE,CAAC,EAAErB,EAAkB,QAAQ,QAAQuB,CAAgB,GAAGF,EAAa,MAAY,CAAIrB,EAAkB,SAASA,EAAkB,QAAQ,WAAW,CAAG,CAAE,EAAE,CAAC,CAAC,EACvR,IAAMc,GAAc,EAAI,EAAO,IAAO,CAAC,GAAK,CAAC,QAAM,YAAU,iBAAe,aAAW,cAAY,cAAY,OAAK,OAAK,aAAW,aAAW,eAAa,eAAa,SAAO,eAAa,eAAa,aAAWF,EAAgB,QAAcY,EAAKJ,EAAO,MAAYK,EAAKL,EAAO,OAAaE,EAAWhH,EAAO,kBAAkB,EAAQoH,EAAaN,EAAO,MAAMA,EAAO,OAAaO,EAAiBC,EAAe,IAAUC,EAAkBrC,EAAqB,QAE/c,GADAsC,EAAI,UAAU,EAAE,EAAEV,EAAO,MAAMA,EAAO,MAAM,EACzCF,IAAY,QAAQ,CAACa,GAAaD,EAAIV,EAAOY,CAAI,EAAE,MAAO,CAC7D,EAAI,aAAa,MAAM,EAAI,UAAU,OAAUC,IAAY,UAAS,EAAI,UAAU5C,GAClF,IAAM6C,EAAcC,EAAkBlB,EAAK,SAASkB,EAAkBC,EAAa,SAAS,EAAE,CAAC,EACzFC,EAAgBC,EAA4BrB,EAAK,YAAYmB,EAAa,WAAWF,CAAa,EAClGK,EAAWtB,EAAK,YAAYmB,EAAa,WAAiBI,EAAWvB,EAAK,YAAYmB,EAAa,WAAiBK,EAAWJ,EAAsBK,EAAcP,EAAkBlB,EAAK,cAAckB,EAAkBC,EAAa,cAAc,CAAC,CAAC,EAAQO,EAAST,EAAclB,EAAMM,EAClS,EAAI,KAAK,GAAGkB,EAAW,GAAGG,EAAS,KAAKJ,IAAa,EAAI,sBAAsB,GAC/E,IAAMK,EAAYC,EAAuB,CAAC,aAAW,aAAW,WAAS,aAAW,eAAa,CAAC,EAAQC,EAAWH,EAASN,EAAsBU,EAAUD,EAAWF,EAAkBI,EAAE,KAAK,IAAIxB,EAAKC,CAAI,EAAQwB,EAAKC,EAAI,KAAK,IAAIlB,EAAK3B,CAAU,EAAE,GAAG,EAAE,EAAE,EAAE,EAAQ8C,EAAKD,EAAI,KAAK,IAAIlB,EAAK1B,CAAU,EAAE,GAAG,EAAE,EAAE,EAAE,EACvT,IAAI,IAAI8C,EAAE,EAAEA,EAAE3B,EAAK,GAAGqB,EAAY,IAAI,IAAIO,EAAE,EAAEA,EAAE7B,EAAK,GAAGuB,EAAU,CAAC,IAAMO,EAAM,CAAC,KAAK,MAAMD,CAAC,EAAE,KAAK,MAAMD,CAAC,CAAC,EAAQG,EAAG,CAAC,GAAGD,EAAM,GAAG9B,EAAK,GAAGwB,EAAE,GAAGM,EAAM,GAAG7B,EAAK,GAAGuB,CAAC,EAAE,EAAG,IAAItB,EAAa,IAAM8B,EAAQC,EAAKC,EAAK,KAAK,IAAI1B,EAAK,EAAEzB,CAAY,EAAE,KAAK,IAAIyB,EAAK,EAAEzB,CAAY,CAAC,EAAE,EAAE,EAAQoD,EAAQF,EAAKC,EAAK,KAAK,IAAI1B,EAAK,EAAExB,CAAY,EAAE,KAAK,IAAIwB,EAAK,EAAExB,CAAY,CAAC,EAAE,EAAE,EAAQoD,EAAEC,EAAK,GAAI,EAAE,KAAK,MAAML,EAAQ,GAAGD,EAAG,GAAGC,EAAQ,GAAGD,EAAG,EAAE,EAAEO,EAAKP,EAAGC,CAAO,EAAQO,EAAEF,IAAO,EAAE,KAAK,MAAMF,EAAQ,GAAGJ,EAAG,GAAGI,EAAQ,GAAGJ,EAAG,EAAE,EAAEO,EAAKP,EAAGI,CAAO,EAAwDxH,EAAE6H,GAAhD,KAAK,IAAIJ,EAAEX,CAAmD,EAArC,KAAK,IAAIc,EAAEZ,CAA4B,EAAE,GAAG,CAAC,EAAKpC,IAAQ,EAAE,EAAE5E,GAAG,IAAM8H,EAAK/E,EAAa,KAAK,MAAM/C,EAAE+C,EAAa,MAAM,GAAM+C,IAAY,UAAW,EAAI,UAAU9F,EAAEwF,EAAiBrC,EAAYC,EAAqB0C,IAAY,aAAY,EAAI,UAAUJ,EAAkB1F,CAAC,CAAC,CAAC,QAAQ,GAAG2F,EAAI,SAASmC,EAAKX,EAAM,GAAGA,EAAM,EAAE,CAAE,CAAE,EAC52BvB,IAAc,EAAI,EAAO,IAAO,CAAC,GAAK,CAAC,YAAU,iBAAe,aAAW,cAAY,cAAY,OAAK,aAAW,aAAW,eAAa,eAAa,SAAO,eAAa,UAAUmC,GAAiBtD,EAAgB,QAA0DuD,EAAgBD,GAAjD5J,EAAO,kBAAkB,GACzQ8J,EAAU,KAAK,KAAKhD,EAAO,MAAM+C,CAAe,EAAQE,EAAW,KAAK,KAAKjD,EAAO,OAAO+C,CAAe,EAC1GG,EAAUxC,EAAI,gBAAgBsC,EAAUC,CAAU,EAAQE,EAAKD,EAAU,KAAW5C,EAAa0C,EAAUC,EAAiBrB,EAAE,KAAK,IAAIoB,EAAUC,CAAU,EAAQpB,EAAKC,EAAI,KAAK,IAAIlB,EAAK3B,CAAU,EAAE,GAAG,EAAE,EAAE,EAAE,EAAQ8C,EAAKD,EAAI,KAAK,IAAIlB,EAAK1B,CAAU,EAAE,GAAG,EAAE,EAAE,EAAE,EAAQqB,EAAiBC,EAAe,IAAUC,EAAkBrC,EAAqB,QAClW,IAAI,IAAI4D,EAAE,EAAEA,EAAEiB,EAAW,IAAK,IAAI,IAAIhB,EAAE,EAAEA,EAAEe,EAAU,IAAI,CAAC,IAAMI,GAAOpB,EAAEgB,EAAUf,GAAG,EACjFE,EAAG,CAAC,GAAGF,EAAEe,EAAU,GAAGpB,EAAE,GAAGI,EAAEiB,EAAW,GAAGrB,CAAC,EAAE,EAAG,IAAItB,EAAa,IAAM8B,EAAQC,EAAKC,EAAK,KAAK,IAAI1B,EAAK,EAAEzB,CAAY,EAAE,KAAK,IAAIyB,EAAK,EAAEzB,CAAY,CAAC,EAAE,EAAE,EAAQoD,EAAQF,EAAKC,EAAK,KAAK,IAAI1B,EAAK,EAAExB,CAAY,EAAE,KAAK,IAAIwB,EAAK,EAAExB,CAAY,CAAC,EAAE,EAAE,EAAQiE,EAASZ,EAAK,GAAI,EAAE,KAAK,MAAML,EAAQ,GAAGD,EAAG,GAAGC,EAAQ,GAAGD,EAAG,EAAE,EAAEO,EAAKP,EAAGC,CAAO,EAAQkB,EAASb,IAAO,EAAE,KAAK,MAAMF,EAAQ,GAAGJ,EAAG,GAAGI,EAAQ,GAAGJ,EAAG,EAAE,EAAEO,EAAKP,EAAGI,CAAO,EAA4EgB,EAAUX,GAAzE,KAAK,IAAIS,EAASxB,CAAwE,EAAvD,KAAK,IAAIyB,EAASvB,CAA0C,EAAE,GAAG,CAAC,EAAKpC,IAAQ,EAAU,EAAE4D,GACnjB,IAAI1I,EAAU2I,EAAED,EAAa1C,IAAY,SAAS,EAAM4C,EAAW,EAAE9D,EAAO,EAAE4D,EAAUA,GAAmB1C,IAAY,WAAW,EAAM0C,EAAUhD,EAAiBmD,EAAYC,EAAY,EAAE9I,EAAM,GAAWgG,IAAY,aAAY,EAAMJ,EAAkB8C,CAAS,EAAE,EAAE1I,EAAM,GAAG,EAAKuI,GAAO,KAAK,MAAMvI,EAAM,CAAC,EAAE,EAAKuI,EAAM,GAAG,KAAK,MAAMvI,EAAM,CAAC,EAAE,EAAKuI,EAAM,GAAG,KAAK,MAAMvI,EAAM,CAAC,EAAE,EAAKuI,EAAM,GAAG,KAAK,MAAMI,EAAE,GAAG,CAAE,CACxZ,IAAMI,EAAW,SAAS,cAAc,QAAQ,EAAE,EAAW,MAAMZ,EAAU,EAAW,OAAOC,EAAW,IAAMY,EAAQD,EAAW,WAAW,IAAI,EAC/IC,IAASA,EAAQ,aAAaX,EAAU,EAAE,CAAC,EAC9C,EAAI,sBAAsB,GACzBxC,EAAI,UAAUkD,EAAW,EAAE,EAAEZ,EAAUC,EAAW,EAAE,EAAEjD,EAAO,MAAMA,EAAO,MAAM,EAAG,EAMkM,OALtR5G,MAAc,CAAC,IAAM4G,EAAO1B,EAAU,QAAcoC,EAAInC,EAAW,QAAQ,GAAG,CAACyB,GAAQ,CAACU,EAAI,OAC5F,IAAMoD,MAAY,CAAIpF,GAAgB,UAAUD,EAAQ,UAASiB,EAAagB,EAAIV,EAAOvB,EAAQ,OAAO,EAAE,GAAgB,QAAQA,EAAQ,SAAS,EAAkB,QAAQ,sBAAsBqF,CAAO,CAAE,EACtMC,MAAe,CAAC,EAAQ,SAAS,YAAY,IAAI,EAAEvF,GAAa,SAAS,GAAG,IAAK,EAAMwF,EAG9B,OAH4CnF,KAC3G,EAAkB,QAAQ,sBAAsBiF,CAAO,EACpDnG,IACHoG,EAAW,EAAE,EAAW,YAAYA,EAAWE,EAAS,GAAG,QAAc,CAAID,IAAa,IAAA,IAAW,cAAcA,CAAU,EAAMrF,EAAkB,UAAU,OAAM,qBAAqBA,EAAkB,OAAO,EAAE,EAAkB,QAAQ,KAAM,CAAE,EAAE,CAACsF,EAAStG,EAAQkB,EAAQ,CAAC,EAAsB,gBAAK,MAAM,CAAK,MAAI,MAAM,CAAC,GAAGxD,EAAM,kBAAgB,aAAa6I,EAAO,SAAS,QAAQ,EAAE,SAAsB,gBAAK,SAAS,CAAC,IAAI5F,EAAU,MAAM,CAAC,GAAGjD,CAAK,CAAC,CAAC,CAAC,CAAC,CAAE,CAAqyF,SAASiH,EAAK,EAAE,EAAE,CAAC,MAAM,CAACL,EAAED,CAAC,CAAE,CAAC,SAASK,EAAK,EAAE,EAAE,CAAC,MAAM,CAAC8B,EAAE,GAAGC,EAAED,EAAE,GAAGC,CAAC,CAAE,CAAC,SAAS1B,EAAK,EAAE,EAAE,CAAC,IAAM2B,EAAGC,EAAE,GAAGd,EAAE,GAASe,EAAGD,EAAE,GAAGd,EAAE,GAAG,OAAO,KAAK,KAAKa,EAAGA,EAAGE,EAAGA,CAAE,CAAE,CAAC,SAASzC,EAAI,EAAM,EAAO,EAAM,EAAO,EAAM,CAAC,OAAO1E,EAAMoH,IAASC,EAAMD,IAASE,EAAMC,GAAQA,CAAO,CAC5/G,SAASlD,EAAuB,EAAK,CAAC,IAAWT,EAAa,IAAM4D,EAAK,SAAS,cAAc,KAAK,EAAE,EAAK,MAAM,SAAS,WAAW,EAAK,MAAM,WAAW,SAAS,EAAK,MAAM,WAAW,SAAS,EAAK,MAAM,WAAW/E,EAAK,WAAW,EAAK,MAAM,WAAWA,EAAK,WAAW,EAAK,MAAM,SAASA,EAAK,SAAS,EAAK,MAAM,WAAWA,EAAK,WAAW,EAAK,MAAM,cAAcA,EAAK,cAAc,EAAK,YAAY,IAAI,SAAS,KAAK,YAAY+E,CAAI,EAAE,IAAMC,EAAMD,EAAK,YAAkBE,EAAOF,EAAK,aAA6C,OAAhC,SAAS,KAAK,YAAYA,CAAI,EAASC,EAAMC,CAAO,CAOriB,SAASzF,EAAyB,EAAU,CAAC,GAAG0F,IAAY,EAAG,MAAO,IAAGC,EAAO,CAAC,EAAU,KAAK,IAAI,GAAG,KAAK,IAAI,EAAED,CAAS,CAAC,EAChI,IAAME,EAAM,EAAE,KAAK,IAAIF,CAAS,EAAE,EAC2B,OADtBA,EAAU,EAAU,IAC3D,EAAE,KAAK,IAAI,EAAE,KAAK,IAAI,EAAEC,CAAC,CAAC,EAAkBA,IAAEC,GAAsB,IACpE,EAAE,KAAK,IAAI,EAAE,KAAK,IAAI,EAAED,CAAC,CAAC,EAAS,GAAW,EAAEA,IAAEC,EAAU,CAAC,CAAC,SAAS3F,EAAS,EAAM,EAAQ,EAAS,EAAM,EAAO,CAA0F,OAAtF4F,IAAUC,EAAiBC,EAAkEA,GAAzChI,EAAM8H,IAAUC,EAASD,IAAkCG,EAAOD,EAAO,C,sEAnDyE,EAAc,CAAC,SAAS,mBAAmB,SAAS,2EAA2E,OAAO,MAAM,IAAI,mBAAmB,EAAQ,EAAa,CAAC,WAAW,6BAA6B,SAAS,OAAO,UAAU,SAAS,WAAW,IAAI,cAAc,MAAM,WAAW,KAAK,EAAQ,EAAS,CAAC,EAAI,EAAE,EAAI,EAAE,EAAI,CAAC,EAwC1M,EAA0B,YAAY,8BAA8BxL,EAAoB8D,EAA0B,CAAC,QAAQ,CAAC,KAAK5D,EAAY,QAAQ,aAAa,GAAK,YAAY,gBAAgB,EAAE,UAAU,CAAC,KAAKA,EAAY,KAAK,aAAa,QAAQ,QAAQ,CAAC,QAAQ,OAAO,EAAE,aAAa,CAAC,QAAQ,OAAO,EAAE,wBAAwB,GAAK,MAAM,OAAO,EAAE,UAAU,CAAC,KAAKA,EAAY,OAAO,aAAa,GAAG,IAAI,EAAE,KAAK,EAAE,OAAO,GAAO0L,EAAM,YAAY,OAAO,EAAE,KAAK,CAAC,KAAK,OAAO,gBAAgB,YAAY,qBAAqB,GAAM,SAAS,WAAW,aAAa,CAAC,SAAS,GAAG,WAAW,CAAC,EAAE,OAAO,GAAOA,EAAM,YAAY,OAAO,EAAE,aAAa,CAAC,KAAK1L,EAAY,KAAK,aAAa,WAAW,QAAQ,CAAC,WAAW,WAAW,SAAS,MAAM,QAAQ,EAAE,aAAa,CAAC,aAAakE,EAAc,SAAS,GAAG,aAAaA,EAAc,SAAS,GAAG,WAAWA,EAAc,OAAO,GAAG,QAAQA,EAAc,IAAI,GAAG,QAAQ,EAAE,MAAM,aAAa,OAAO,GAAOwH,EAAM,YAAY,OAAO,EAAE,mBAAmB,CAAC,KAAK1L,EAAY,OAAO,aAAa,2BAA2B,YAAY,gBAAgB,MAAM,SAAS,OAAO,GAAO0L,EAAM,eAAe,UAAUA,EAAM,YAAY,OAAO,EAAE,MAAM,CAAC,KAAK1L,EAAY,OAAO,aAAa,EAAE,IAAI,GAAG,IAAI,EAAE,KAAK,GAAG,OAAO,GAAO0L,EAAM,YAAY,OAAO,EAAE,MAAM,CAAC,KAAK1L,EAAY,OAAO,SAAS,CAAC,KAAK,CAAC,KAAKA,EAAY,KAAK,QAAQ,CAAC,QAAQ,WAAW,SAAS,EAAE,aAAa,CAAC,QAAQ,WAAW,SAAS,EAAE,wBAAwB,GAAK,0BAA0B,UAAU,EAAE,MAAM,CAAC,KAAKA,EAAY,MAAM,aAAa,UAAU,OAAO,GAAO0L,EAAM,OAAO,OAAO,EAAE,OAAO,CAAC,KAAK1L,EAAY,MAAM,aAAa,UAAU,OAAO,GAAO0L,EAAM,OAAO,YAAYA,EAAM,OAAO,SAAS,EAAE,OAAO,CAAC,KAAK1L,EAAY,MAAM,aAAa,UAAU,OAAO,GAAO0L,EAAM,OAAO,YAAYA,EAAM,OAAO,SAAS,EAAE,UAAU,CAAC,KAAK1L,EAAY,OAAO,aAAa,GAAG,IAAI,EAAE,IAAI,IAAI,KAAK,EAAE,KAAK,IAAI,OAAO,GAAO0L,EAAM,OAAO,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,KAAK1L,EAAY,KAAK,aAAa,IAAI,QAAQ,CAAC,IAAI,IAAI,GAAG,EAAE,wBAAwB,EAAI,EAAE,OAAO,CAAC,KAAKA,EAAY,OAAO,aAAa,GAAG,IAAI,EAAE,IAAI,IAAI,KAAK,CAAC,EAAE,OAAO,CAAC,KAAKA,EAAY,QAAQ,aAAa,EAAK,EAAE,WAAW,CAAC,KAAKA,EAAY,OAAO,aAAa,GAAG,IAAI,EAAE,IAAI,IAAI,KAAK,EAAE,MAAM,SAAS,EAAE,WAAW,CAAC,KAAKA,EAAY,OAAO,aAAa,GAAG,IAAI,EAAE,IAAI,IAAI,KAAK,EAAE,MAAM,SAAS,EAAE,aAAa,CAAC,KAAKA,EAAY,OAAO,aAAa,GAAG,IAAI,EAAE,IAAI,IAAI,KAAK,EAAE,MAAM,SAAS,EAAE,aAAa,CAAC,KAAKA,EAAY,OAAO,aAAa,GAAG,IAAI,EAAE,IAAI,IAAI,KAAK,EAAE,MAAM,SAAS,EAAE,SAAS,CAAC,KAAKA,EAAY,OAAO,aAAa,GAAG,IAAI,IAAI,IAAI,GAAG,KAAK,IAAI,KAAK,GAAG,EAAE,gBAAgB,CAAC,KAAKA,EAAY,MAAM,aAAa,UAAU,SAAS,GAAK,MAAM,YAAY,EAAE,OAAO,CAAC,KAAKA,EAAY,aAAa,aAAa,MAAM,YAAY,oEAAoE,CAAC,CAAC,EAE1uG,GAAmB,EAAM,IAAe,CAAC,GAAG,CAACsD,EAAM,OAAOqI,EAChE,IAAMzI,EAAM,OAAOI,CAAK,CAAC,CAAC,MAAM,sBAAsB,EAAoE,OAA9DJ,EAAyC,WAAWA,EAAM,EAAkB,EAA/DyI,CAAiE,EACpI,EAAW,GAAO,CAAC,GAAG,CAACrI,EAAM,MAAM,GAAG,IAAMJ,EAAM,OAAOI,CAAK,CAAC,CAAC,MAAM,sBAAsB,EAAE,OAAOJ,EAAMA,EAAM,EAAE,CAAC,YAAY,EAAE,EAAG,EACrI,GAA6B,EAAW,IAAgB,CAAC,GAAG,CAACqE,EAAW,MAAO,GACpF,IAAMqE,EAAKJ,EAAWjE,CAAU,EAAQjE,EAAM2D,EAAkBM,EAAW,CAAC,EAC7E,OAAOqE,EAAP,CAAa,IAAI,IAAI,OAAOtI,EAAM,IAAI,IAAI,KAAK,OAAOA,EAAM0D,EAAc,QAAQ,OAAO1D,CACxF,CAAC,C"}