{"version":3,"file":"MailerLiteIntegrationControl.DAiwF7kr.mjs","names":["useMemo","useState","useRef","useState","useRef","useState","useRef","useMemo","useCallback","_Fragment","useRef","useState","useMemo","useCallback","_Fragment"],"sources":["https:/framerusercontent.com/modules/0JuNU6vRZh5f2pfy5Xql/AOYmaVy75OxtRNtJELHN/SourceTrackerControl.js","https:/framerusercontent.com/modules/fBY7K5QM2pcfPmulIEIE/3i69Aw20ukDiSnYJtxST/ConditionalLogicUtil.js","https:/framer.com/m/ConditionalLogicUtil-69lIOW.js","https:/framerusercontent.com/modules/dQ6bVFU0fJ7wkQGNMKOF/EMZ5uF2PlujROACIkeKR/PhoneNumberControl.js","https:/framerusercontent.com/modules/SZzIlDitetshHWRUGcTe/a3lAlACxNwdbm5ZKFzca/MailerLiteIntegrationControl.js"],"sourcesContent":["/**\n * SourceTrackerControl — Hidden form field that captures visitor-source\n * data from the URL and submits it alongside the rest of the form.\n *\n * Capture modes (one mode per instance):\n *   - currentUrl      → current page URL (window.location.href)\n *   - referrerUrl     → previous page the visitor came from (document.referrer)\n *   - utmTags         → all utm_* params + optional ad-click IDs (gclid, fbclid, …)\n *   - urlParameter    → single named query param the user provides\n *   - customValue     → literal value baked into the component\n *\n * Enterprise differentiator: first-touch persistence via localStorage.\n * When enabled (utmTags / referrerUrl only), the value captured on the\n * first visit is stored and re-submitted on later visits — preserving\n * attribution across internal navigation and return visits.\n *\n * Renders nothing visible on the published site. Shows a labelled pill\n * on the Framer canvas so designers can see and select it.\n */import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{useEffect,useMemo,useRef,useState}from\"react\";// ─── Constants ──────────────────────────────────────────────\nconst STORAGE_PREFIX=\"fm_src_\";/** Standard UTM keys captured whenever mode = \"utmTags\". */const UTM_KEYS=[\"utm_source\",\"utm_medium\",\"utm_campaign\",\"utm_content\",\"utm_term\"];/**\n * Ad-platform click IDs. Optional per-platform toggles on the\n * utmTags mode so the designer only emits what their stack cares\n * about. Each maps to the param name the platform sets on its URLs.\n */const AD_CLICK_GROUPS={google:[\"gclid\",\"gad_source\",\"gclsrc\",\"dclid\",\"gbraid\",\"wbraid\"],facebook:[\"fbclid\"],microsoft:[\"msclkid\"],linkedin:[\"li_fat_id\"],tiktok:[\"ttclid\"],twitter:[\"twclid\"]};// ─── Helpers ────────────────────────────────────────────────\n/**\n * Reads the requested params from the current URL. Empty values are\n * dropped so we don't emit `<input value=\"\">` for absent params.\n */function readParams(keys){if(typeof window===\"undefined\")return{};try{const search=new URLSearchParams(window.location.search);const out={};for(const key of keys){const value=search.get(key);if(value!==null&&value!==\"\"){out[key]=value;}}return out;}catch{return{};}}/**\n * Safely reads a persisted first-touch payload from localStorage.\n * Returns null if storage is unavailable or the value is malformed.\n */function readStorage(key){if(typeof localStorage===\"undefined\")return null;try{const raw=localStorage.getItem(key);if(!raw)return null;return JSON.parse(raw);}catch{return null;}}function writeStorage(key,value){if(typeof localStorage===\"undefined\")return;try{localStorage.setItem(key,JSON.stringify(value));}catch{/* swallow — storage quota or private mode, values just won't persist */}}// ─── Component ──────────────────────────────────────────────\n/**\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight auto\n * @framerIntrinsicWidth 220\n * @framerIntrinsicHeight 40\n * @framerDisableUnlink\n */export default function SourceTrackerControl(props){const{mode=\"utmTags\",fieldName=\"source\",urlParameter=\"\",customValue=\"\",fallback=\"\",persistFirstTouch=true,includeGclid=true,includeFbclid=true,includeMsclkid=false,includeLinkedIn=false,includeTikTok=false,includeTwitter=false,style}=props;const isCanvas=RenderTarget.current()===RenderTarget.canvas;/**\n     * Build the list of extra query keys to harvest when mode is\n     * `utmTags`. Memoised so the effect below doesn't re-run on every\n     * unrelated prop change.\n     */const extraKeys=useMemo(()=>{if(mode!==\"utmTags\")return[];const keys=[];if(includeGclid)keys.push(...AD_CLICK_GROUPS.google);if(includeFbclid)keys.push(...AD_CLICK_GROUPS.facebook);if(includeMsclkid)keys.push(...AD_CLICK_GROUPS.microsoft);if(includeLinkedIn)keys.push(...AD_CLICK_GROUPS.linkedin);if(includeTikTok)keys.push(...AD_CLICK_GROUPS.tiktok);if(includeTwitter)keys.push(...AD_CLICK_GROUPS.twitter);return keys;},[mode,includeGclid,includeFbclid,includeMsclkid,includeLinkedIn,includeTikTok,includeTwitter]);/**\n     * Captured payload. Shape depends on mode:\n     *   - string         → single value (currentUrl, referrerUrl, urlParameter, customValue)\n     *   - object         → multiple key/value pairs (utmTags)\n     */const[captured,setCaptured]=useState(\"\");const containerRef=useRef(null);// Dispatch native change event on each emitted hidden input so conditional\n// logic watchers detect the captured value(s).\nuseEffect(()=>{const root=containerRef.current;if(!root)return;const nativeInputValueSetter=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,\"value\")?.set;const nodes=root.querySelectorAll('input[data-source-tracker=\"true\"]');nodes.forEach(el=>{nativeInputValueSetter?.call(el,el.value);el.dispatchEvent(new Event(\"change\",{bubbles:true}));});},[captured]);useEffect(()=>{if(isCanvas)return;const storageKey=STORAGE_PREFIX+mode;// ── Capture ─────────────────────────────────────────\nlet value=\"\";switch(mode){case\"currentUrl\":value=typeof window!==\"undefined\"?window.location.href:\"\";break;case\"referrerUrl\":value=typeof document!==\"undefined\"?document.referrer:\"\";break;case\"utmTags\":{const keys=[...UTM_KEYS,...extraKeys];value=readParams(keys);break;}case\"urlParameter\":value=urlParameter&&typeof window!==\"undefined\"?new URLSearchParams(window.location.search).get(urlParameter)||\"\":\"\";break;case\"customValue\":value=customValue;break;}// ── First-touch persistence ─────────────────────────\n// Only applies to modes that can be empty AND where the value\n// represents a marketing touch we want to preserve. Custom\n// values and the current URL are deterministic (not persisted).\nif(persistFirstTouch&&(mode===\"utmTags\"||mode===\"referrerUrl\")){const stored=readStorage(storageKey);const hasStoredValue=stored!==null&&(typeof stored===\"string\"?stored.length>0:Object.keys(stored).length>0);const hasCurrentValue=typeof value===\"string\"?value.length>0:Object.keys(value).length>0;if(hasStoredValue){// First-touch wins — re-use persisted value.\nvalue=stored;}else if(hasCurrentValue){// First visit with a meaningful value — persist it.\nwriteStorage(storageKey,value);}}// ── Fallback ────────────────────────────────────────\nif(fallback){if(typeof value===\"string\"&&!value){value=fallback;}else if(typeof value===\"object\"&&Object.keys(value).length===0){// For utmTags with no params and a fallback, emit a single\n// `utm_source=<fallback>` entry — aligns with the common\n// \"direct\" attribution convention.\nvalue={utm_source:fallback};}}setCaptured(value);},[isCanvas,mode,urlParameter,customValue,fallback,persistFirstTouch,extraKeys]);// ─── Canvas Label ───────────────────────────────────────\nif(isCanvas){const label=(()=>{switch(mode){case\"currentUrl\":return\"Current URL\";case\"referrerUrl\":return\"Referrer URL\";case\"utmTags\":return\"UTM Tags\";case\"urlParameter\":return`URL Param \\xb7 ${urlParameter||\"(unset)\"}`;case\"customValue\":return`Custom \\xb7 ${customValue||\"(empty)\"}`;default:return\"Source Tracker\";}})();return /*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",alignItems:\"center\",gap:8,padding:\"8px 12px\",background:\"rgba(158, 232, 111, 0.12)\",border:\"1px dashed rgba(158, 232, 111, 0.6)\",borderRadius:8,fontFamily:\"Inter, system-ui, sans-serif\",fontSize:11,fontWeight:500,color:\"#0f172a\",width:\"100%\",boxSizing:\"border-box\",...style},children:[/*#__PURE__*/_jsx(\"span\",{\"aria-hidden\":\"true\",style:{display:\"inline-flex\",width:16,height:16,alignItems:\"center\",justifyContent:\"center\",borderRadius:4,background:\"#9EE86F\",color:\"#0f172a\",fontWeight:700,fontSize:10},children:\"S\"}),/*#__PURE__*/_jsx(\"span\",{style:{fontWeight:600},children:\"Source Tracker\"}),/*#__PURE__*/_jsxs(\"span\",{style:{opacity:.65,overflow:\"hidden\",textOverflow:\"ellipsis\",whiteSpace:\"nowrap\"},children:[\"\\xb7 \",label]})]});}// ─── Published Render — hidden inputs only ───────────────\n/** Common props on every emitted hidden <input>. */const commonAttrs={type:\"hidden\",tabIndex:-1,\"data-source-tracker\":\"true\",\"data-framerforms-no-prefill\":\"true\"};const inputs=[];if(mode===\"utmTags\"&&typeof captured===\"object\"){// One hidden input per captured param — keeps the submit\n// payload flat and matches downstream analytics conventions.\nfor(const[key,value]of Object.entries(captured)){inputs.push(/*#__PURE__*/_jsx(\"input\",{...commonAttrs,name:key,value:value,readOnly:true},key));}}else if(fieldName){const value=typeof captured===\"string\"?captured:\"\";// Emit even when value is empty so the field always exists in\n// the submission — backends can distinguish \"visited but had\n// no source\" from \"tracker not installed at all\".\ninputs.push(/*#__PURE__*/_jsx(\"input\",{...commonAttrs,name:fieldName,value:value,readOnly:true}));}return /*#__PURE__*/_jsx(\"div\",{ref:containerRef,style:{position:\"absolute\",width:0,height:0,overflow:\"hidden\",pointerEvents:\"none\",...style},\"aria-hidden\":\"true\",children:inputs});}SourceTrackerControl.displayName=\"URL Source Collector\";SourceTrackerControl.defaultProps={mode:\"utmTags\",fieldName:\"source\",urlParameter:\"\",customValue:\"\",fallback:\"\",persistFirstTouch:true,includeGclid:true,includeFbclid:true,includeMsclkid:false,includeLinkedIn:false,includeTikTok:false,includeTwitter:false,_meta:\"\",style:{}};addPropertyControls(SourceTrackerControl,{mode:{type:ControlType.Enum,title:\"Capture\",defaultValue:\"utmTags\",options:[\"utmTags\",\"currentUrl\",\"referrerUrl\",\"urlParameter\",\"customValue\"],optionTitles:[\"UTM Tags\",\"Current URL\",\"Referrer URL\",\"URL Parameter\",\"Custom Value\"],description:\"What to capture from the visitor's URL and submit alongside the form.\"},fieldName:{type:ControlType.String,title:\"Field Name\",defaultValue:\"source\",placeholder:\"e.g. page_url\",description:\"Form field name this value submits as. Hidden in UTM Tags mode because every UTM key becomes its own field.\",hidden(props){return props.mode===\"utmTags\";}},urlParameter:{type:ControlType.String,title:\"Parameter\",defaultValue:\"\",placeholder:\"e.g. promo\",description:\"Query-string parameter name to read from the URL.\",hidden(props){return props.mode!==\"urlParameter\";}},customValue:{type:ControlType.String,title:\"Value\",defaultValue:\"\",placeholder:\"e.g. Homepage Hero\",description:\"Literal value submitted as-is. Useful for per-page source tags.\",hidden(props){return props.mode!==\"customValue\";}},fallback:{type:ControlType.String,title:\"Fallback\",defaultValue:\"\",placeholder:\"e.g. direct\",description:\"Value submitted when the URL/referrer has nothing to capture.\",hidden(props){return props.mode===\"customValue\";}},persistFirstTouch:{type:ControlType.Boolean,title:\"First-Touch\",defaultValue:true,enabledTitle:\"Yes\",disabledTitle:\"No\",description:\"Remember the value captured on the visitor's first visit so attribution survives internal navigation and return visits.\",hidden(props){return props.mode!==\"utmTags\"&&props.mode!==\"referrerUrl\";}},includeGclid:{type:ControlType.Boolean,title:\"Google Ads\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\",description:\"Include gclid, gad_source, gbraid, wbraid, dclid.\",hidden(props){return props.mode!==\"utmTags\";}},includeFbclid:{type:ControlType.Boolean,title:\"Meta (Facebook)\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\",description:\"Include fbclid.\",hidden(props){return props.mode!==\"utmTags\";}},includeMsclkid:{type:ControlType.Boolean,title:\"Microsoft Ads\",defaultValue:false,enabledTitle:\"On\",disabledTitle:\"Off\",description:\"Include msclkid (Bing/Microsoft Ads click ID).\",hidden(props){return props.mode!==\"utmTags\";}},includeLinkedIn:{type:ControlType.Boolean,title:\"LinkedIn\",defaultValue:false,enabledTitle:\"On\",disabledTitle:\"Off\",description:\"Include li_fat_id (LinkedIn Ads click ID).\",hidden(props){return props.mode!==\"utmTags\";}},includeTikTok:{type:ControlType.Boolean,title:\"TikTok\",defaultValue:false,enabledTitle:\"On\",disabledTitle:\"Off\",description:\"Include ttclid (TikTok Ads click ID).\",hidden(props){return props.mode!==\"utmTags\";}},includeTwitter:{type:ControlType.Boolean,title:\"X (Twitter)\",defaultValue:false,enabledTitle:\"On\",disabledTitle:\"Off\",description:\"Include twclid (X/Twitter Ads click ID).\",hidden(props){return props.mode!==\"utmTags\";}},_meta:{type:ControlType.String,defaultValue:\"\",description:\"by [Forms Plugin](https://formsplugin.com/?ref=source-tracker)\",hidden(){return true;}}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"SourceTrackerControl\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"40\",\"framerSupportedLayoutWidth\":\"any\",\"framerSupportedLayoutHeight\":\"auto\",\"framerIntrinsicWidth\":\"220\",\"framerDisableUnlink\":\"\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./SourceTrackerControl.map","import{jsx as _jsx}from\"react/jsx-runtime\";import{ControlType}from\"framer\";import{useCallback,useEffect,useRef,useState,forwardRef}from\"react\";export const DEFAULT_CONDITION_ITEM={type:\"visibility\",logic:\"and\",sourceField:\"\",fieldType:\"text\",operator:\"is_not_empty\",numberOperator:\"is_not_empty\",dateOperator:\"is_not_empty\",value:\"\",value2:\"\",numberValue:\"\",numberValue2:\"\",dateValue:\"\",dateValue2:\"\"};/** Resolves the active operator from a ConditionItem based on its fieldType */export function resolveOperator(item){switch(item.fieldType){case\"number\":return item.numberOperator||\"is_not_empty\";case\"date\":return item.dateOperator||\"is_not_empty\";default:return item.operator||\"is_not_empty\";}}/** Resolves value/value2 from the correct field based on fieldType */export function resolveValues(item){switch(item.fieldType){case\"number\":return{value:item.numberValue||item.value||\"\",value2:item.numberValue2||item.value2||\"\"};case\"date\":return{value:item.dateValue||item.value||\"\",value2:item.dateValue2||item.value2||\"\"};default:return{value:item.value||\"\",value2:item.value2||\"\"};}}// ============================================================================\n// DEFAULTS\n// ============================================================================\nexport const DEFAULT_CONDITION={enabled:false,sourceField:\"\",fieldType:\"text\",operator:\"is_not_empty\",value:\"\",value2:\"\",logic:\"and\",enableRule2:false,sourceFieldR2:\"\",fieldTypeR2:\"text\",operatorR2:\"is_not_empty\",valueR2:\"\",value2R2:\"\"};// ============================================================================\n// OPERATOR OPTIONS BY FIELD TYPE\n// ============================================================================\nexport const OPERATOR_OPTIONS={all:[{value:\"is_empty\",label:\"Is Empty\"},{value:\"is_not_empty\",label:\"Is Not Empty\"}],text:[{value:\"contains\",label:\"Contains\"},{value:\"not_contains\",label:\"Not Contains\"},{value:\"exact_match\",label:\"Exact Match (Case Sensitive)\"},{value:\"match\",label:\"Match (Case Insensitive)\"},{value:\"starts_with\",label:\"Starts With\"},{value:\"ends_with\",label:\"Ends With\"},{value:\"length_greater_than\",label:\"Length Greater Than\"},{value:\"length_less_than\",label:\"Length Less Than\"},{value:\"regex\",label:\"Regex\"}],number:[{value:\"equals\",label:\"Equals\"},{value:\"not_equals\",label:\"Not Equals\"},{value:\"greater_than\",label:\"Greater Than\"},{value:\"less_than\",label:\"Less Than\"},{value:\"greater_than_equals\",label:\"Greater Than or Equals\"},{value:\"less_than_equals\",label:\"Less Than or Equals\"},{value:\"between\",label:\"Between\"},{value:\"not_between\",label:\"Not Between\"}],date:[{value:\"equals\",label:\"Equals\"},{value:\"not_equals\",label:\"Not Equals\"},{value:\"before\",label:\"Before\"},{value:\"after\",label:\"After\"},{value:\"between\",label:\"Between\"},{value:\"not_between\",label:\"Not Between\"}]};// Build flat lists for property controls\nconst ALL_OPERATOR_VALUES=[...OPERATOR_OPTIONS.all,...OPERATOR_OPTIONS.text,...OPERATOR_OPTIONS.number,...OPERATOR_OPTIONS.date].reduce((acc,op)=>{if(!acc.find(o=>o.value===op.value))acc.push(op);return acc;},[]);export const ALL_OPERATOR_IDS=ALL_OPERATOR_VALUES.map(o=>o.value);export const ALL_OPERATOR_LABELS=ALL_OPERATOR_VALUES.map(o=>o.label);// Per-type operator lists (including \"all\" operators)\nconst TEXT_OPERATOR_LIST=[...OPERATOR_OPTIONS.all,...OPERATOR_OPTIONS.text];const NUMBER_OPERATOR_LIST=[...OPERATOR_OPTIONS.all,...OPERATOR_OPTIONS.number];const DATE_OPERATOR_LIST=[...OPERATOR_OPTIONS.all,...OPERATOR_OPTIONS.date];export const TEXT_OPERATOR_IDS=TEXT_OPERATOR_LIST.map(o=>o.value);export const TEXT_OPERATOR_LABELS=TEXT_OPERATOR_LIST.map(o=>o.label);export const NUMBER_OPERATOR_IDS=NUMBER_OPERATOR_LIST.map(o=>o.value);export const NUMBER_OPERATOR_LABELS=NUMBER_OPERATOR_LIST.map(o=>o.label);export const DATE_OPERATOR_IDS=DATE_OPERATOR_LIST.map(o=>o.value);export const DATE_OPERATOR_LABELS=DATE_OPERATOR_LIST.map(o=>o.label);// Sets for fast lookup per field type (including \"all\" operators)\nconst TEXT_OPS=new Set([...OPERATOR_OPTIONS.all,...OPERATOR_OPTIONS.text].map(o=>o.value));const NUMBER_OPS=new Set([...OPERATOR_OPTIONS.all,...OPERATOR_OPTIONS.number].map(o=>o.value));const DATE_OPS=new Set([...OPERATOR_OPTIONS.all,...OPERATOR_OPTIONS.date].map(o=>o.value));export function isOperatorValidForType(operator,fieldType){switch(fieldType){case\"number\":return NUMBER_OPS.has(operator);case\"date\":return DATE_OPS.has(operator);default:return TEXT_OPS.has(operator);}}// Operators that need no value input\nexport const NO_VALUE_OPS=new Set([\"is_empty\",\"is_not_empty\"]);// Operators that need a second value input (between / not_between)\nexport const RANGE_OPS=new Set([\"between\",\"not_between\"]);// Operators that need a special value input (length or regex pattern)\nexport const SPECIAL_VALUE_OPS=new Set([\"length_greater_than\",\"length_less_than\",\"regex\"]);// ============================================================================\n// FIELD VALUE READER\n// ============================================================================\n/**\n * Reads the comparable string value from a form element.\n * Checkboxes need special handling: a native checkbox's `.value` is always \"on\"\n * regardless of checked state, so condition operators (is_empty / is_not_empty /\n * equals) can't tell checked from unchecked. We normalize:\n *   - unchecked checkbox → \"\" (so is_empty is true)\n *   - checked checkbox → its explicit value attr, or \"true\" if none was set\n * Radios use the same rule per element so the currently-checked radio in a\n * group provides the value.\n */function readFieldValue(el){if(el instanceof HTMLInputElement&&(el.type===\"checkbox\"||el.type===\"radio\")){if(!el.checked)return\"\";return el.value&&el.value!==\"on\"?el.value:\"true\";}return el.value;}// ============================================================================\n// DATE PARSER\n// ============================================================================\n/**\n * Parses a date string into a comparable timestamp.\n * Supports YYYY-MM-DD (from HTML date inputs) and other Date-parsable formats.\n * Uses UTC noon to avoid timezone/DST edge cases with YYYY-MM-DD.\n */function parseDate(s){if(!s)return NaN;// YYYY-MM-DD format — parse as UTC noon to avoid off-by-one timezone issues\nconst isoMatch=s.match(/^(\\d{4})-(\\d{2})-(\\d{2})$/);if(isoMatch){return Date.UTC(Number(isoMatch[1]),Number(isoMatch[2])-1,Number(isoMatch[3]),12);}return new Date(s).getTime();}// ============================================================================\n// CONDITION EVALUATOR\n// ============================================================================\nexport function evaluateCondition(fieldValue,config){// If operator is invalid for the selected fieldType, pass through\nif(!isOperatorValidForType(config.operator,config.fieldType))return true;const v=fieldValue||\"\";const target=config.value||\"\";const target2=config.value2||\"\";switch(config.operator){// All types\ncase\"is_empty\":return v.trim()===\"\";case\"is_not_empty\":return v.trim()!==\"\";// Text operators\ncase\"contains\":return v.toLowerCase().includes(target.toLowerCase());case\"not_contains\":return!v.toLowerCase().includes(target.toLowerCase());case\"exact_match\":return v===target;case\"match\":return v.toLowerCase()===target.toLowerCase();case\"starts_with\":return v.toLowerCase().startsWith(target.toLowerCase());case\"ends_with\":return v.toLowerCase().endsWith(target.toLowerCase());case\"length_greater_than\":return v.length>(parseInt(target,10)||0);case\"length_less_than\":return v.length<(parseInt(target,10)||0);case\"regex\":try{return new RegExp(target).test(v);}catch{return false;}// Number operators\ncase\"equals\":{if(config.fieldType===\"date\")return parseDate(v)===parseDate(target);return parseFloat(v)===parseFloat(target);}case\"not_equals\":{if(config.fieldType===\"date\")return parseDate(v)!==parseDate(target);return parseFloat(v)!==parseFloat(target);}case\"greater_than\":return parseFloat(v)>parseFloat(target);case\"less_than\":return parseFloat(v)<parseFloat(target);case\"greater_than_equals\":return parseFloat(v)>=parseFloat(target);case\"less_than_equals\":return parseFloat(v)<=parseFloat(target);case\"between\":{if(config.fieldType===\"date\"){const d=parseDate(v);return d>=parseDate(target)&&d<=parseDate(target2);}const num=parseFloat(v);return num>=parseFloat(target)&&num<=parseFloat(target2);}case\"not_between\":{if(config.fieldType===\"date\"){const d=parseDate(v);return d<parseDate(target)||d>parseDate(target2);}const num=parseFloat(v);return num<parseFloat(target)||num>parseFloat(target2);}// Date operators\ncase\"before\":return parseDate(v)<parseDate(target);case\"after\":return parseDate(v)>parseDate(target);default:return true;}}// ============================================================================\n// CONDITION EFFECT HOOK\n// ============================================================================\n/**\n * Hook that manages all 5 condition types (visibility, required, readOnly, disable, valueReset).\n * Watches source fields in the DOM, evaluates conditions, and returns reactive state.\n *\n * @param configs - Object containing all condition configs\n * @param fallbackSourceField - Fallback source field name if condition's own sourceField is empty\n * @param isCanvas - Whether rendering on Framer canvas (disables watchers)\n * @param onValueReset - Callback fired when valueReset condition transitions to true\n */export function useConditionalLogic(configs,fallbackSourceField,isCanvas,onValueReset){const[isVisible,setIsVisible]=useState(!configs.visibility.enabled);const[isRequired,setIsRequired]=useState(false);const[isReadOnly,setIsReadOnly]=useState(false);const[isDisabled,setIsDisabled]=useState(false);// Shared compound condition watcher logic\nconst conditionEffect=useCallback((config,defaultState,onResult)=>{if(!config.enabled){onResult(defaultState);return undefined;}if(isCanvas){onResult(defaultState);return undefined;}const cleanups=[];let result1=false;let result2=false;const hasRule2=Boolean(config.enableRule2);const combine=()=>{if(!hasRule2){onResult(result1);}else if(config.logic===\"or\"){onResult(result1||result2);}else{onResult(result1&&result2);}};const rule2Config={...config,sourceField:config.sourceFieldR2,fieldType:config.fieldTypeR2,operator:config.operatorR2,value:config.valueR2,value2:config.value2R2};const getSelector=name=>`input[name=\"${name}\"], select[name=\"${name}\"], textarea[name=\"${name}\"]`;const watchSource=(sourceName,ruleConfig,setResult)=>{const resolved=sourceName||fallbackSourceField||\"\";if(!resolved)return;const selector=getSelector(resolved);let currentEl=null;let currentCleanup=null;const attachListener=sourceEl=>{if(currentEl===sourceEl)return;if(currentCleanup)currentCleanup();currentEl=sourceEl;const check=()=>{setResult(evaluateCondition(readFieldValue(sourceEl),ruleConfig));combine();};check();sourceEl.addEventListener(\"input\",check);sourceEl.addEventListener(\"change\",check);currentCleanup=()=>{sourceEl.removeEventListener(\"input\",check);sourceEl.removeEventListener(\"change\",check);};};const existing=document.querySelector(selector);if(existing){attachListener(existing);}// Keep watching so we re-attach when a source field is\n// removed (hidden) and later re-added (shown) in the DOM.\nconst observer=new MutationObserver(()=>{const el=document.querySelector(selector);if(el&&el!==currentEl){attachListener(el);}else if(!el&&currentEl){if(currentCleanup)currentCleanup();currentEl=null;currentCleanup=null;}});observer.observe(document.body,{childList:true,subtree:true});cleanups.push(()=>{observer.disconnect();if(currentCleanup)currentCleanup();});};watchSource(config.sourceField,config,r=>{result1=r;});if(hasRule2){watchSource(config.sourceFieldR2,rule2Config,r=>{result2=r;});}return()=>cleanups.forEach(fn=>fn());},[isCanvas,fallbackSourceField]);// Shared deps builder\nconst conditionDeps=cfg=>[cfg.enabled,cfg.sourceField,cfg.fieldType,cfg.operator,cfg.value,cfg.value2,cfg.logic,cfg.enableRule2,cfg.sourceFieldR2,cfg.fieldTypeR2,cfg.operatorR2,cfg.valueR2,cfg.value2R2];// Visibility\nuseEffect(()=>{return conditionEffect(configs.visibility,true,setIsVisible);// eslint-disable-next-line react-hooks/exhaustive-deps\n},[conditionEffect,...conditionDeps(configs.visibility)]);// Required\nuseEffect(()=>{return conditionEffect(configs.requiredCondition,false,setIsRequired);// eslint-disable-next-line react-hooks/exhaustive-deps\n},[conditionEffect,...conditionDeps(configs.requiredCondition)]);// Read-only\nuseEffect(()=>{return conditionEffect(configs.readOnlyCondition,false,setIsReadOnly);// eslint-disable-next-line react-hooks/exhaustive-deps\n},[conditionEffect,...conditionDeps(configs.readOnlyCondition)]);// Disable\nuseEffect(()=>{return conditionEffect(configs.disableCondition,false,setIsDisabled);// eslint-disable-next-line react-hooks/exhaustive-deps\n},[conditionEffect,...conditionDeps(configs.disableCondition)]);// Value reset — fires callback when condition transitions to true\nconst valueResetPrevRef=useRef(false);useEffect(()=>{return conditionEffect(configs.valueResetCondition,false,result=>{if(result&&!valueResetPrevRef.current){onValueReset?.();}valueResetPrevRef.current=result;});// eslint-disable-next-line react-hooks/exhaustive-deps\n},[conditionEffect,...conditionDeps(configs.valueResetCondition),onValueReset]);return{isVisible,isRequired,isReadOnly,isDisabled};}// ============================================================================\n// PROPERTY CONTROLS HELPER\n// ============================================================================\n/**\n * Generates a Framer property control object for a single condition section.\n * Spread into `addPropertyControls`: `...conditionControl(\"visibility\", \"Visibility\", \"...\")`\n */export function conditionControl(propKey,title,enableDesc){return{[propKey]:{type:ControlType.Object,title,controls:{enabled:{type:ControlType.Boolean,title:\"Enable\",defaultValue:false,enabledTitle:\"On\",disabledTitle:\"Off\",description:enableDesc},sourceField:{type:ControlType.String,title:\"Source Field\",defaultValue:\"\",description:\"Field name to watch (e.g. 'Email'). Falls back to the top-level Source Field if empty.\",hidden(props){return!props.enabled;}},fieldType:{type:ControlType.Enum,title:\"Field Type\",defaultValue:\"text\",options:[\"text\",\"number\",\"date\"],optionTitles:[\"Text\",\"Number\",\"Date\"],description:\"Type of the source field. Determines which operators are valid.\",hidden(props){return!props.enabled;}},operator:{type:ControlType.Enum,title:\"Operator\",defaultValue:\"is_not_empty\",options:ALL_OPERATOR_IDS,optionTitles:ALL_OPERATOR_LABELS,description:\"Pick an operator that matches the Field Type. Invalid combos are ignored at runtime.\",hidden(props){return!props.enabled;}},value:{type:ControlType.String,title:\"Value\",defaultValue:\"\",description:\"Compare value. For length operators enter a number. For regex enter a pattern.\",hidden(props){return!props.enabled||NO_VALUE_OPS.has(props.operator);}},value2:{type:ControlType.String,title:\"Value 2 (Max)\",defaultValue:\"\",description:\"Second value for Between / Not Between operators.\",hidden(props){return!props.enabled||!RANGE_OPS.has(props.operator);}},// ── Compound rule ──\nenableRule2:{type:ControlType.Boolean,title:\"Add Rule 2\",defaultValue:false,enabledTitle:\"On\",disabledTitle:\"Off\",description:\"Add a second condition rule combined with AND / OR logic.\",hidden(props){return!props.enabled;}},logic:{type:ControlType.Enum,title:\"Logic\",defaultValue:\"and\",options:[\"and\",\"or\"],optionTitles:[\"AND\",\"OR\"],displaySegmentedControl:true,description:\"How to combine Rule 1 and Rule 2.\",hidden(props){return!props.enabled||!props.enableRule2;}},sourceFieldR2:{type:ControlType.String,title:\"Source Field (R2)\",defaultValue:\"\",description:\"Source field for Rule 2. Falls back to the top-level Source Field if empty.\",hidden(props){return!props.enabled||!props.enableRule2;}},fieldTypeR2:{type:ControlType.Enum,title:\"Field Type (R2)\",defaultValue:\"text\",options:[\"text\",\"number\",\"date\"],optionTitles:[\"Text\",\"Number\",\"Date\"],hidden(props){return!props.enabled||!props.enableRule2;}},operatorR2:{type:ControlType.Enum,title:\"Operator (R2)\",defaultValue:\"is_not_empty\",options:ALL_OPERATOR_IDS,optionTitles:ALL_OPERATOR_LABELS,description:\"Operator for Rule 2. Pick one that matches the Rule 2 Field Type.\",hidden(props){return!props.enabled||!props.enableRule2;}},valueR2:{type:ControlType.String,title:\"Value (R2)\",defaultValue:\"\",description:\"Compare value for Rule 2. For length operators enter a number. For regex enter a pattern.\",hidden(props){return!props.enabled||!props.enableRule2||NO_VALUE_OPS.has(props.operatorR2);}},value2R2:{type:ControlType.String,title:\"Value 2 (R2 Max)\",defaultValue:\"\",description:\"Second value for Rule 2 Between / Not Between.\",hidden(props){return!props.enabled||!props.enableRule2||!RANGE_OPS.has(props.operatorR2);}}}}};}// ============================================================================\n// STANDARD CONDITION PROPERTY CONTROLS (pre-built for common usage)\n// ============================================================================\nexport const CONDITION_CONTROLS={...conditionControl(\"visibility\",\"Visibility\",\"Show or hide this field based on another field's value.\"),...conditionControl(\"requiredCondition\",\"Required\",\"Make this field required based on another field's value. Overrides the static Required toggle.\"),...conditionControl(\"readOnlyCondition\",\"Read-Only\",\"Make this field read-only based on another field's value.\"),...conditionControl(\"disableCondition\",\"Disable\",\"Disable this field based on another field's value. Disabled fields are greyed out and excluded from form submission.\"),...conditionControl(\"valueResetCondition\",\"Value Reset\",\"Clear this field's value when the condition on another field becomes true.\")};/**\n * Source field property control — add before CONDITION_CONTROLS in addPropertyControls.\n */export const SOURCE_FIELD_CONTROL={sourceField:{type:ControlType.String,title:\"Source Field\",defaultValue:\"\",description:\"Field name to read value from (e.g. 'Email'). Used as the default source for all conditions below.\"}};// ============================================================================\n// ARRAY-BASED CONDITION SYSTEM\n// ============================================================================\n/**\n * Hook that evaluates a dynamic array of ConditionItem[].\n * Groups conditions by type, combines per-type with AND/OR logic,\n * and returns reactive ConditionState.\n */export function useConditionArray(conditions,fallbackSourceField,isCanvas,onValueReset){const[state,setState]=useState({isVisible:true,isRequired:false,isReadOnly:false,isDisabled:false});const valueResetPrevRef=useRef(false);const onValueResetRef=useRef(onValueReset);onValueResetRef.current=onValueReset;// Serialize conditions for stable effect dependency\nconst conditionsKey=JSON.stringify(conditions);useEffect(()=>{if(!conditions?.length||isCanvas){setState({isVisible:true,isRequired:false,isReadOnly:false,isDisabled:false});valueResetPrevRef.current=false;return;}const fieldValues=new Map;const cleanups=[];// Collect all unique source field names\nconst sourceFields=new Set(conditions.map(c=>c.sourceField||fallbackSourceField||\"\").filter(Boolean));const evaluate=()=>{// Accumulate per-type results\nconst results={visibility:null,required:null,readOnly:null,disable:null,valueReset:null};for(const condition of conditions){const resolved=condition.sourceField||fallbackSourceField||\"\";const fieldValue=fieldValues.get(resolved)||\"\";const activeOperator=resolveOperator(condition);const resolvedVals=resolveValues(condition);const result=evaluateCondition(fieldValue,{fieldType:condition.fieldType||\"text\",operator:activeOperator,value:resolvedVals.value,value2:resolvedVals.value2});const t=condition.type;if(results[t]===null){results[t]=result;}else if(condition.logic===\"or\"){results[t]=results[t]||result;}else{results[t]=results[t]&&result;}}setState({isVisible:results.visibility===null?true:results.visibility,isRequired:results.required===null?false:results.required,isReadOnly:results.readOnly===null?false:results.readOnly,isDisabled:results.disable===null?false:results.disable});// Value reset — edge-triggered\nconst vr=results.valueReset===null?false:results.valueReset;if(vr&&!valueResetPrevRef.current){onValueResetRef.current?.();}valueResetPrevRef.current=vr;};// Watch each unique source field in the DOM\nfor(const fieldName of sourceFields){const selector=`input[name=\"${fieldName}\"], select[name=\"${fieldName}\"], textarea[name=\"${fieldName}\"]`;let currentEl=null;let currentCleanup=null;const attachListener=sourceEl=>{if(currentEl===sourceEl)return;if(currentCleanup)currentCleanup();currentEl=sourceEl;const check=()=>{fieldValues.set(fieldName,readFieldValue(sourceEl));evaluate();};fieldValues.set(fieldName,readFieldValue(sourceEl));sourceEl.addEventListener(\"input\",check);sourceEl.addEventListener(\"change\",check);currentCleanup=()=>{sourceEl.removeEventListener(\"input\",check);sourceEl.removeEventListener(\"change\",check);};};const existing=document.querySelector(selector);if(existing){attachListener(existing);}// Keep watching so we re-attach when a source field is\n// removed (hidden) and later re-added (shown) in the DOM.\nconst observer=new MutationObserver(()=>{const el=document.querySelector(selector);if(el&&el!==currentEl){attachListener(el);evaluate();}else if(!el&&currentEl){if(currentCleanup)currentCleanup();currentEl=null;currentCleanup=null;}});observer.observe(document.body,{childList:true,subtree:true});cleanups.push(()=>{observer.disconnect();if(currentCleanup)currentCleanup();});}// Initial evaluation after all watchers attached\nevaluate();return()=>cleanups.forEach(fn=>fn());// eslint-disable-next-line react-hooks/exhaustive-deps\n},[conditionsKey,fallbackSourceField,isCanvas]);return state;}/**\n * Framer property control for a conditions array.\n * Usage: `...CONDITION_ARRAY_CONTROL` spread into addPropertyControls.\n *//** Helper: get the active operator from array item props based on fieldType */function getActiveOp(props){if(props.fieldType===\"number\")return props.numberOperator||\"is_not_empty\";if(props.fieldType===\"date\")return props.dateOperator||\"is_not_empty\";return props.operator||\"is_not_empty\";}export const CONDITION_ARRAY_CONTROL={conditions:{type:ControlType.Array,title:\"Conditions\",description:\"Add rules to control this field based on other fields' values.\",control:{type:ControlType.Object,controls:{type:{type:ControlType.Enum,title:\"Action\",defaultValue:\"visibility\",options:[\"visibility\",\"required\",\"readOnly\",\"disable\",\"valueReset\"],optionTitles:[\"Show / Hide\",\"Required\",\"Read-Only\",\"Disable\",\"Value Reset\"]},logic:{type:ControlType.Enum,title:\"Logic\",defaultValue:\"and\",options:[\"and\",\"or\"],optionTitles:[\"AND\",\"OR\"],displaySegmentedControl:true},sourceField:{type:ControlType.String,title:\"Source Field\",defaultValue:\"\",description:\"Field name to watch (e.g. 'email', 'phone'). Must match the field's Name property.\"},fieldType:{type:ControlType.Enum,title:\"Field Type\",defaultValue:\"text\",options:[\"text\",\"number\",\"date\"],optionTitles:[\"Text\",\"Number\",\"Date\"]},operator:{type:ControlType.Enum,title:\"Operator\",defaultValue:\"is_not_empty\",options:TEXT_OPERATOR_IDS,optionTitles:TEXT_OPERATOR_LABELS,hidden(props){return props.fieldType!==\"text\";}},numberOperator:{type:ControlType.Enum,title:\"Operator\",defaultValue:\"is_not_empty\",options:NUMBER_OPERATOR_IDS,optionTitles:NUMBER_OPERATOR_LABELS,hidden(props){return props.fieldType!==\"number\";}},dateOperator:{type:ControlType.Enum,title:\"Operator\",defaultValue:\"is_not_empty\",options:DATE_OPERATOR_IDS,optionTitles:DATE_OPERATOR_LABELS,hidden(props){return props.fieldType!==\"date\";}},value:{type:ControlType.String,title:\"Value\",defaultValue:\"\",description:\"Text to compare. For length operators: a number. For regex: a pattern.\",hidden(props){return props.fieldType!==\"text\"||NO_VALUE_OPS.has(getActiveOp(props));}},numberValue:{type:ControlType.String,title:\"Value\",defaultValue:\"\",description:\"Enter a number (e.g. 42, 3.14).\",hidden(props){return props.fieldType!==\"number\"||NO_VALUE_OPS.has(getActiveOp(props));}},dateValue:{type:ControlType.String,title:\"Value\",defaultValue:\"\",description:\"Date format: YYYY-MM-DD (e.g. 2025-06-15).\",hidden(props){return props.fieldType!==\"date\"||NO_VALUE_OPS.has(getActiveOp(props));}},value2:{type:ControlType.String,title:\"Value 2 (Max)\",defaultValue:\"\",description:\"End text value for Between / Not Between.\",hidden(props){return props.fieldType!==\"text\"||!RANGE_OPS.has(getActiveOp(props));}},numberValue2:{type:ControlType.String,title:\"Value 2 (Max)\",defaultValue:\"\",description:\"End number for Between / Not Between range.\",hidden(props){return props.fieldType!==\"number\"||!RANGE_OPS.has(getActiveOp(props));}},dateValue2:{type:ControlType.String,title:\"Value 2 (Max)\",defaultValue:\"\",description:\"End date for range. Format: YYYY-MM-DD.\",hidden(props){return props.fieldType!==\"date\"||!RANGE_OPS.has(getActiveOp(props));}}}},defaultValue:[]}};// ============================================================================\n// DEFAULT EXPORT (required for Framer module upload)\n// ============================================================================\n/**\n * Placeholder component — required for Framer to register this as a module.\n * Not intended for direct canvas use. Import named exports in other components.\n */const ConditionalLogic=/*#__PURE__*/forwardRef((_,ref)=>{return /*#__PURE__*/_jsx(\"div\",{ref:ref,style:{display:\"none\"}});});ConditionalLogic.displayName=\"Conditional Logic\";export default ConditionalLogic;\nexport const __FramerMetadata__ = {\"exports\":{\"ConditionType\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"DEFAULT_CONDITION\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ConditionConfig\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"RANGE_OPS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"NUMBER_OPERATOR_LABELS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"NUMBER_OPERATOR_IDS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"isOperatorValidForType\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"CONDITION_CONTROLS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"NO_VALUE_OPS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"CONDITION_ARRAY_CONTROL\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"resolveValues\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ConditionState\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TEXT_OPERATOR_LABELS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SOURCE_FIELD_CONTROL\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"DATE_OPERATOR_IDS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"evaluateCondition\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useConditionArray\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"DATE_OPERATOR_LABELS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ALL_OPERATOR_IDS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ConditionItem\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ALL_OPERATOR_LABELS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useConditionalLogic\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"DEFAULT_CONDITION_ITEM\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"OPERATOR_OPTIONS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TEXT_OPERATOR_IDS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"conditionControl\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"EvalConfig\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SPECIAL_VALUE_OPS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"resolveOperator\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ConditionalLogicUtil.map","/*\n * ConditionalLogicUtil\n *\n * Learn More: https://www.framer.com/asset-urls\n */\n\nexport * from \"https://framerusercontent.com/modules/fBY7K5QM2pcfPmulIEIE/3i69Aw20ukDiSnYJtxST/ConditionalLogicUtil.js\"\nexport { default } from \"https://framerusercontent.com/modules/fBY7K5QM2pcfPmulIEIE/3i69Aw20ukDiSnYJtxST/ConditionalLogicUtil.js\"\n","import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{AnimatePresence,motion}from\"framer-motion\";import{useCallback,useEffect,useMemo,useRef,useState}from\"react\";import{useConditionArray,CONDITION_ARRAY_CONTROL}from\"https://framer.com/m/ConditionalLogicUtil-69lIOW.js\";// ============================================================================\n// COUNTRY DATA\n// Format: [name, iso2, dialCode, format?]\n// ============================================================================\nconst COUNTRIES=[[\"Afghanistan\",\"af\",\"93\",\"XX XXX XXXX\"],[\"Albania\",\"al\",\"355\",\"XX XXX XXXX\"],[\"Algeria\",\"dz\",\"213\",\"XXX XX XX XX\"],[\"American Samoa\",\"as\",\"1684\"],[\"Andorra\",\"ad\",\"376\",\"XX XX XX\"],[\"Angola\",\"ao\",\"244\",\"XXX XXX XXX\"],[\"Anguilla\",\"ai\",\"1264\"],[\"Antigua and Barbuda\",\"ag\",\"1268\"],[\"Argentina\",\"ar\",\"54\",\"XX XXXX-XXXX\"],[\"Armenia\",\"am\",\"374\",\"XX XXX XXX\"],[\"Aruba\",\"aw\",\"297\",\"XXX XXXX\"],[\"Australia\",\"au\",\"61\",\"XXX XXX XXX\"],[\"Austria\",\"at\",\"43\",\"XXX XXXXXX\"],[\"Azerbaijan\",\"az\",\"994\",\"XX XXX XX XX\"],[\"Bahamas\",\"bs\",\"1242\"],[\"Bahrain\",\"bh\",\"973\",\"XXXX XXXX\"],[\"Bangladesh\",\"bd\",\"880\",\"XXXX-XXXXXX\"],[\"Barbados\",\"bb\",\"1246\"],[\"Belarus\",\"by\",\"375\",\"XX XXX-XX-XX\"],[\"Belgium\",\"be\",\"32\",\"XXX XX XX XX\"],[\"Belize\",\"bz\",\"501\",\"XXX-XXXX\"],[\"Benin\",\"bj\",\"229\",\"XX XXX XXX\"],[\"Bermuda\",\"bm\",\"1441\"],[\"Bhutan\",\"bt\",\"975\",\"XX XX XX XX\"],[\"Bolivia\",\"bo\",\"591\",\"X XXX XXXX\"],[\"Bosnia and Herzegovina\",\"ba\",\"387\",\"XX XXX-XXX\"],[\"Botswana\",\"bw\",\"267\",\"XX XXX XXX\"],[\"Brazil\",\"br\",\"55\",\"(XX) XXXXX-XXXX\"],[\"Brunei\",\"bn\",\"673\",\"XXX XXXX\"],[\"Bulgaria\",\"bg\",\"359\",\"XX XXX XXXX\"],[\"Burkina Faso\",\"bf\",\"226\",\"XX XX XX XX\"],[\"Burundi\",\"bi\",\"257\",\"XX XX XX XX\"],[\"Cambodia\",\"kh\",\"855\",\"XX XXX XXX\"],[\"Cameroon\",\"cm\",\"237\",\"X XX XX XX XX\"],[\"Canada\",\"ca\",\"1\",\"(XXX) XXX-XXXX\"],[\"Cape Verde\",\"cv\",\"238\",\"XXX XX XX\"],[\"Cayman Islands\",\"ky\",\"1345\"],[\"Central African Republic\",\"cf\",\"236\",\"XX XX XX XX\"],[\"Chad\",\"td\",\"235\",\"XX XX XX XX\"],[\"Chile\",\"cl\",\"56\",\"X XXXX XXXX\"],[\"China\",\"cn\",\"86\",\"XXX XXXX XXXX\"],[\"Colombia\",\"co\",\"57\",\"XXX XXX XXXX\"],[\"Comoros\",\"km\",\"269\",\"XXX XX XX\"],[\"Congo\",\"cg\",\"242\",\"XX XXX XXXX\"],[\"Congo, Democratic Republic\",\"cd\",\"243\",\"XX XXX XXXX\"],[\"Cook Islands\",\"ck\",\"682\"],[\"Costa Rica\",\"cr\",\"506\",\"XXXX XXXX\"],[\"Croatia\",\"hr\",\"385\",\"XX XXX XXXX\"],[\"Cuba\",\"cu\",\"53\",\"X XXX XXXX\"],[\"Curacao\",\"cw\",\"599\"],[\"Cyprus\",\"cy\",\"357\",\"XX XXXXXX\"],[\"Czech Republic\",\"cz\",\"420\",\"XXX XXX XXX\"],[\"Denmark\",\"dk\",\"45\",\"XX XX XX XX\"],[\"Djibouti\",\"dj\",\"253\",\"XX XX XX XX\"],[\"Dominica\",\"dm\",\"1767\"],[\"Dominican Republic\",\"do\",\"1809\"],[\"Ecuador\",\"ec\",\"593\",\"XX XXX XXXX\"],[\"Egypt\",\"eg\",\"20\",\"XX XXXX XXXX\"],[\"El Salvador\",\"sv\",\"503\",\"XXXX XXXX\"],[\"Equatorial Guinea\",\"gq\",\"240\",\"XXX XXX XXX\"],[\"Eritrea\",\"er\",\"291\",\"X XXX XXX\"],[\"Estonia\",\"ee\",\"372\",\"XXXX XXXX\"],[\"Eswatini\",\"sz\",\"268\",\"XXXX XXXX\"],[\"Ethiopia\",\"et\",\"251\",\"XX XXX XXXX\"],[\"Falkland Islands\",\"fk\",\"500\"],[\"Faroe Islands\",\"fo\",\"298\",\"XXXXXX\"],[\"Fiji\",\"fj\",\"679\",\"XXX XXXX\"],[\"Finland\",\"fi\",\"358\",\"XX XXX XX XX\"],[\"France\",\"fr\",\"33\",\"X XX XX XX XX\"],[\"French Guiana\",\"gf\",\"594\"],[\"French Polynesia\",\"pf\",\"689\",\"XX XX XX\"],[\"Gabon\",\"ga\",\"241\",\"X XX XX XX\"],[\"Gambia\",\"gm\",\"220\",\"XXX XXXX\"],[\"Georgia\",\"ge\",\"995\",\"XXX XX XX XX\"],[\"Germany\",\"de\",\"49\",\"XXX XXXXXXX\"],[\"Ghana\",\"gh\",\"233\",\"XX XXX XXXX\"],[\"Gibraltar\",\"gi\",\"350\",\"XXXXXXXX\"],[\"Greece\",\"gr\",\"30\",\"XXX XXX XXXX\"],[\"Greenland\",\"gl\",\"299\",\"XXXXXX\"],[\"Grenada\",\"gd\",\"1473\"],[\"Guadeloupe\",\"gp\",\"590\"],[\"Guam\",\"gu\",\"1671\"],[\"Guatemala\",\"gt\",\"502\",\"XXXX XXXX\"],[\"Guernsey\",\"gg\",\"44\"],[\"Guinea\",\"gn\",\"224\",\"XXX XX XX XX\"],[\"Guinea-Bissau\",\"gw\",\"245\",\"XXX XXXX\"],[\"Guyana\",\"gy\",\"592\",\"XXX XXXX\"],[\"Haiti\",\"ht\",\"509\",\"XXXX XXXX\"],[\"Honduras\",\"hn\",\"504\",\"XXXX-XXXX\"],[\"Hong Kong\",\"hk\",\"852\",\"XXXX XXXX\"],[\"Hungary\",\"hu\",\"36\",\"XX XXX XXXX\"],[\"Iceland\",\"is\",\"354\",\"XXX XXXX\"],[\"India\",\"in\",\"91\",\"XXXXX XXXXX\"],[\"Indonesia\",\"id\",\"62\",\"XXX-XXXX-XXXX\"],[\"Iran\",\"ir\",\"98\",\"XXX XXX XXXX\"],[\"Iraq\",\"iq\",\"964\",\"XXX XXX XXXX\"],[\"Ireland\",\"ie\",\"353\",\"XX XXX XXXX\"],[\"Isle of Man\",\"im\",\"44\"],[\"Israel\",\"il\",\"972\",\"XX-XXX-XXXX\"],[\"Italy\",\"it\",\"39\",\"XXX XXX XXXX\"],[\"Ivory Coast\",\"ci\",\"225\",\"XX XX XX XX XX\"],[\"Jamaica\",\"jm\",\"1876\"],[\"Japan\",\"jp\",\"81\",\"XX-XXXX-XXXX\"],[\"Jersey\",\"je\",\"44\"],[\"Jordan\",\"jo\",\"962\",\"X XXXX XXXX\"],[\"Kazakhstan\",\"kz\",\"7\",\"XXX XXX XX XX\"],[\"Kenya\",\"ke\",\"254\",\"XXX XXXXXX\"],[\"Kiribati\",\"ki\",\"686\"],[\"Kosovo\",\"xk\",\"383\",\"XX XXX XXX\"],[\"Kuwait\",\"kw\",\"965\",\"XXXX XXXX\"],[\"Kyrgyzstan\",\"kg\",\"996\",\"XXX XXXXXX\"],[\"Laos\",\"la\",\"856\",\"XX XX XXX XXX\"],[\"Latvia\",\"lv\",\"371\",\"XX XXX XXX\"],[\"Lebanon\",\"lb\",\"961\",\"XX XXX XXX\"],[\"Lesotho\",\"ls\",\"266\",\"XXXX XXXX\"],[\"Liberia\",\"lr\",\"231\",\"XX XXX XXXX\"],[\"Libya\",\"ly\",\"218\",\"XX-XXXXXXX\"],[\"Liechtenstein\",\"li\",\"423\",\"XXX XXX XXX\"],[\"Lithuania\",\"lt\",\"370\",\"XXX XXXXX\"],[\"Luxembourg\",\"lu\",\"352\",\"XXX XXX XXX\"],[\"Macao\",\"mo\",\"853\",\"XXXX XXXX\"],[\"Madagascar\",\"mg\",\"261\",\"XX XX XXX XX\"],[\"Malawi\",\"mw\",\"265\",\"X XXXX XXXX\"],[\"Malaysia\",\"my\",\"60\",\"XX-XXX XXXX\"],[\"Maldives\",\"mv\",\"960\",\"XXX-XXXX\"],[\"Mali\",\"ml\",\"223\",\"XX XX XX XX\"],[\"Malta\",\"mt\",\"356\",\"XXXX XXXX\"],[\"Marshall Islands\",\"mh\",\"692\"],[\"Martinique\",\"mq\",\"596\"],[\"Mauritania\",\"mr\",\"222\",\"XX XX XX XX\"],[\"Mauritius\",\"mu\",\"230\",\"XXXX XXXX\"],[\"Mayotte\",\"yt\",\"262\"],[\"Mexico\",\"mx\",\"52\",\"XX XXXX XXXX\"],[\"Micronesia\",\"fm\",\"691\"],[\"Moldova\",\"md\",\"373\",\"XXXX XXXX\"],[\"Monaco\",\"mc\",\"377\",\"XX XX XX XX\"],[\"Mongolia\",\"mn\",\"976\",\"XX XX XXXX\"],[\"Montenegro\",\"me\",\"382\",\"XX XXX XXX\"],[\"Montserrat\",\"ms\",\"1664\"],[\"Morocco\",\"ma\",\"212\",\"XX-XXXXXXX\"],[\"Mozambique\",\"mz\",\"258\",\"XX XXX XXXX\"],[\"Myanmar\",\"mm\",\"95\",\"XX XXX XXXX\"],[\"Namibia\",\"na\",\"264\",\"XX XXX XXXX\"],[\"Nauru\",\"nr\",\"674\"],[\"Nepal\",\"np\",\"977\",\"XX-XXXXXXXX\"],[\"Netherlands\",\"nl\",\"31\",\"X XXXXXXXX\"],[\"New Caledonia\",\"nc\",\"687\"],[\"New Zealand\",\"nz\",\"64\",\"XX XXX XXXX\"],[\"Nicaragua\",\"ni\",\"505\",\"XXXX XXXX\"],[\"Niger\",\"ne\",\"227\",\"XX XX XX XX\"],[\"Nigeria\",\"ng\",\"234\",\"XXX XXX XXXX\"],[\"Niue\",\"nu\",\"683\"],[\"Norfolk Island\",\"nf\",\"672\"],[\"North Korea\",\"kp\",\"850\"],[\"North Macedonia\",\"mk\",\"389\",\"XX XXX XXX\"],[\"Northern Mariana Islands\",\"mp\",\"1670\"],[\"Norway\",\"no\",\"47\",\"XXX XX XXX\"],[\"Oman\",\"om\",\"968\",\"XXXX XXXX\"],[\"Pakistan\",\"pk\",\"92\",\"XXX XXXXXXX\"],[\"Palau\",\"pw\",\"680\"],[\"Palestine\",\"ps\",\"970\",\"XXX XX XXXX\"],[\"Panama\",\"pa\",\"507\",\"XXXX-XXXX\"],[\"Papua New Guinea\",\"pg\",\"675\"],[\"Paraguay\",\"py\",\"595\",\"XXX XXXXXX\"],[\"Peru\",\"pe\",\"51\",\"XXX XXX XXX\"],[\"Philippines\",\"ph\",\"63\",\"XXX XXX XXXX\"],[\"Poland\",\"pl\",\"48\",\"XXX XXX XXX\"],[\"Portugal\",\"pt\",\"351\",\"XXX XXX XXX\"],[\"Puerto Rico\",\"pr\",\"1787\"],[\"Qatar\",\"qa\",\"974\",\"XXXX XXXX\"],[\"Reunion\",\"re\",\"262\"],[\"Romania\",\"ro\",\"40\",\"XXX XXX XXX\"],[\"Russia\",\"ru\",\"7\",\"XXX XXX-XX-XX\"],[\"Rwanda\",\"rw\",\"250\",\"XXX XXX XXX\"],[\"Saint Kitts and Nevis\",\"kn\",\"1869\"],[\"Saint Lucia\",\"lc\",\"1758\"],[\"Saint Vincent and the Grenadines\",\"vc\",\"1784\"],[\"Samoa\",\"ws\",\"685\"],[\"San Marino\",\"sm\",\"378\"],[\"Sao Tome and Principe\",\"st\",\"239\"],[\"Saudi Arabia\",\"sa\",\"966\",\"XX XXX XXXX\"],[\"Senegal\",\"sn\",\"221\",\"XX XXX XX XX\"],[\"Serbia\",\"rs\",\"381\",\"XX XXX XXXX\"],[\"Seychelles\",\"sc\",\"248\",\"X XXX XXX\"],[\"Sierra Leone\",\"sl\",\"232\",\"XX XXXXXX\"],[\"Singapore\",\"sg\",\"65\",\"XXXX XXXX\"],[\"Sint Maarten\",\"sx\",\"1721\"],[\"Slovakia\",\"sk\",\"421\",\"XXX XXX XXX\"],[\"Slovenia\",\"si\",\"386\",\"XX XXX XXX\"],[\"Solomon Islands\",\"sb\",\"677\"],[\"Somalia\",\"so\",\"252\",\"XX XXX XXX\"],[\"South Africa\",\"za\",\"27\",\"XX XXX XXXX\"],[\"South Korea\",\"kr\",\"82\",\"XX-XXXX-XXXX\"],[\"South Sudan\",\"ss\",\"211\",\"XX XXX XXXX\"],[\"Spain\",\"es\",\"34\",\"XXX XX XX XX\"],[\"Sri Lanka\",\"lk\",\"94\",\"XX XXX XXXX\"],[\"Sudan\",\"sd\",\"249\",\"XX XXX XXXX\"],[\"Suriname\",\"sr\",\"597\",\"XXX-XXXX\"],[\"Sweden\",\"se\",\"46\",\"XX-XXX XX XX\"],[\"Switzerland\",\"ch\",\"41\",\"XX XXX XX XX\"],[\"Syria\",\"sy\",\"963\",\"XXX XXX XXX\"],[\"Taiwan\",\"tw\",\"886\",\"XXX XXX XXX\"],[\"Tajikistan\",\"tj\",\"992\",\"XX XXX XXXX\"],[\"Tanzania\",\"tz\",\"255\",\"XXX XXX XXX\"],[\"Thailand\",\"th\",\"66\",\"XX XXX XXXX\"],[\"Timor-Leste\",\"tl\",\"670\"],[\"Togo\",\"tg\",\"228\",\"XX XX XX XX\"],[\"Tokelau\",\"tk\",\"690\"],[\"Tonga\",\"to\",\"676\"],[\"Trinidad and Tobago\",\"tt\",\"1868\"],[\"Tunisia\",\"tn\",\"216\",\"XX XXX XXX\"],[\"Turkey\",\"tr\",\"90\",\"XXX XXX XX XX\"],[\"Turkmenistan\",\"tm\",\"993\",\"XX XXXXXX\"],[\"Turks and Caicos Islands\",\"tc\",\"1649\"],[\"Tuvalu\",\"tv\",\"688\"],[\"Uganda\",\"ug\",\"256\",\"XXX XXXXXXX\"],[\"Ukraine\",\"ua\",\"380\",\"XX XXX XX XX\"],[\"United Arab Emirates\",\"ae\",\"971\",\"XX XXX XXXX\"],[\"United Kingdom\",\"gb\",\"44\",\"XXXX XXXXXX\"],[\"United States\",\"us\",\"1\",\"(XXX) XXX-XXXX\"],[\"Uruguay\",\"uy\",\"598\",\"X XXX XX XX\"],[\"Uzbekistan\",\"uz\",\"998\",\"XX XXX XX XX\"],[\"Vanuatu\",\"vu\",\"678\"],[\"Vatican City\",\"va\",\"379\"],[\"Venezuela\",\"ve\",\"58\",\"XXX-XXXXXXX\"],[\"Vietnam\",\"vn\",\"84\",\"XX XXXX XXX\"],[\"Virgin Islands, British\",\"vg\",\"1284\"],[\"Virgin Islands, U.S.\",\"vi\",\"1340\"],[\"Wallis and Futuna\",\"wf\",\"681\"],[\"Yemen\",\"ye\",\"967\",\"XXX XXX XXX\"],[\"Zambia\",\"zm\",\"260\",\"XX XXXXXXX\"],[\"Zimbabwe\",\"zw\",\"263\",\"XX XXX XXXX\"]];// ============================================================================\n// HELPERS\n// ============================================================================\nfunction stripNonDigits(str){return str.replace(/\\D/g,\"\");}function formatPhone(digits,format){if(!format||!digits)return digits;let idx=0;let result=\"\";for(let i=0;i<format.length&&idx<digits.length;i++){if(format[i]===\"X\"){result+=digits[idx];idx++;}else{result+=format[i];}}// Append remaining digits beyond format length\nif(idx<digits.length){result+=digits.slice(idx);}return result;}function getFormatPlaceholder(format){if(!format)return\"\";return format.replace(/X/g,\"0\");}function findCountryByIso(iso){return COUNTRIES.find(c=>c[1]===iso);}// Parse an E.164 value (e.g. \"+15551234\") back into a country ISO + the\n// national-number digits. Uses the longest matching dial-code prefix.\n// Used to rehydrate the control from a restored (autosaved) submit value.\nfunction parseE164(e164){if(!e164||typeof e164!==\"string\")return null;const trimmed=e164.trim();if(trimmed[0]!==\"+\")return null;const digits=stripNonDigits(trimmed.slice(1));if(!digits)return null;let best=null;for(const c of COUNTRIES){const dc=c[2];if(dc&&digits.startsWith(dc)){if(!best||dc.length>best[2].length)best=c;}}if(!best)return null;return{iso:best[1],national:digits.slice(best[2].length)};}function getMaxDigitsFromFormat(format){if(!format)return 15;return(format.match(/X/g)||[]).length;}// ============================================================================\n// FLAG COLOR DATA — CSS gradient definitions per country ISO code\n// Format: \"direction#color1,#color2[,#color3]\" (h=horizontal, v=vertical)\n// ============================================================================\nconst FLAG_COLORS={af:\"h#000000,#DD0000,#008000\",al:\"h#E41E20,#000000,#E41E20\",dz:\"v#006233,#FFFFFF,#D21034\",as:\"h#003893,#FFFFFF,#CE1126\",ad:\"v#003DA5,#FFCD00,#C7001D\",ao:\"h#CC0000,#000000,#CC0000\",ai:\"h#003893,#FFFFFF,#003893\",ag:\"h#CE1126,#000000,#CE1126\",ar:\"h#74ACDF,#FFFFFF,#74ACDF\",am:\"h#D90012,#0033A0,#F2A800\",aw:\"h#418FDE,#FFFFFF,#418FDE\",au:\"h#00008B,#FFFFFF,#CC0000\",at:\"h#ED2939,#FFFFFF,#ED2939\",az:\"h#0092BC,#E8192C,#3D9A00\",bs:\"h#00778B,#000000,#FFC72C\",bh:\"h#CE1126,#FFFFFF,#CE1126\",bd:\"h#006A4E,#F42A41,#006A4E\",bb:\"h#00267F,#FFC726,#00267F\",by:\"h#CF101A,#FFFFFF,#009A44\",be:\"v#000000,#FAE042,#EF3340\",bz:\"h#003F87,#FFFFFF,#003F87\",bj:\"v#008751,#FCD116,#E8112D\",bm:\"h#CE1126,#FFFFFF,#CE1126\",bt:\"h#FF8000,#FFFFFF,#FF3300\",bo:\"h#D52B1E,#F9E300,#007A3D\",ba:\"h#002395,#FFCD00,#002395\",bw:\"h#75AADB,#FFFFFF,#000000\",br:\"h#009C3B,#FFDF00,#002776\",bn:\"h#F7E017,#000000,#FFFFFF\",bg:\"h#FFFFFF,#009B77,#D01C1F\",bf:\"h#EF2B2D,#009A00,#EF2B2D\",bi:\"h#CE1126,#FFFFFF,#1EB53A\",kh:\"h#032EA1,#E00025,#032EA1\",cm:\"v#007A5E,#CE1126,#FCD116\",ca:\"h#FF0000,#FFFFFF,#FF0000\",cv:\"h#003893,#FFFFFF,#F7D116\",ky:\"h#003893,#FFFFFF,#003893\",cf:\"h#003082,#FFFFFF,#289728\",td:\"v#002664,#FECB00,#C60C30\",cl:\"h#D52B1E,#FFFFFF,#003580\",cn:\"h#DE2910,#FFDE00,#DE2910\",co:\"h#FCD116,#003893,#CE1126\",km:\"h#3A75C4,#FFFFFF,#3A75C4\",cg:\"h#009543,#FFCD00,#DC241F\",cd:\"h#007FFF,#F9D616,#CE1021\",ck:\"h#003893,#FFFFFF,#003893\",cr:\"h#002B7F,#FFFFFF,#CF142B\",hr:\"h#FF0000,#FFFFFF,#171796\",cu:\"h#002A8F,#FFFFFF,#CF142B\",cw:\"h#003893,#FFFFFF,#F9E814\",cy:\"h#FFFFFF,#D57800,#FFFFFF\",cz:\"h#D7141A,#FFFFFF,#11457E\",dk:\"h#C60C30,#FFFFFF,#C60C30\",dj:\"h#6AB2E7,#12AD2B,#FFFFFF\",dm:\"h#006B3F,#000000,#FCD116\",do:\"h#002D62,#FFFFFF,#CE1126\",ec:\"h#FFD100,#003893,#CE1126\",eg:\"h#CE1126,#FFFFFF,#000000\",sv:\"h#0F47AF,#FFFFFF,#0F47AF\",gq:\"h#3E9A00,#FFFFFF,#E32118\",er:\"h#4189DD,#009A44,#EA0437\",ee:\"h#0072CE,#000000,#FFFFFF\",sz:\"h#3E5EB9,#FFD900,#B10C0C\",et:\"h#078930,#FCDD09,#DA121A\",fk:\"h#003893,#FFFFFF,#003893\",fo:\"h#FFFFFF,#003897,#FFFFFF\",fj:\"h#68BFE5,#FFFFFF,#003893\",fi:\"h#FFFFFF,#003580,#FFFFFF\",fr:\"v#002395,#FFFFFF,#ED2939\",gf:\"v#009A3A,#FFCD00,#CC0001\",pf:\"h#CE1126,#FFFFFF,#CE1126\",ga:\"h#009E60,#FCD116,#3A75C4\",gm:\"h#3A7728,#FFFFFF,#CE1126\",ge:\"h#FFFFFF,#FF0000,#FFFFFF\",de:\"h#000000,#DD0000,#FFCE00\",gh:\"h#006B3F,#FCD116,#CE1126\",gi:\"h#FFFFFF,#DA291C,#FFFFFF\",gr:\"h#0D5EAF,#FFFFFF,#0D5EAF\",gl:\"h#FFFFFF,#D00C33,#FFFFFF\",gd:\"h#CE1126,#FCD116,#009E60\",gp:\"h#003893,#FFFFFF,#CE1126\",gu:\"h#003893,#CE1126,#003893\",gt:\"v#4997D0,#FFFFFF,#4997D0\",gg:\"h#FFFFFF,#E8112D,#FFFFFF\",gn:\"v#CE1126,#FCD116,#009460\",gw:\"h#CE1126,#FCD116,#009E60\",gy:\"h#009E60,#FFFFFF,#000000\",ht:\"h#00209F,#D21034,#00209F\",hn:\"h#0073CF,#FFFFFF,#0073CF\",hk:\"h#DE2910,#FFFFFF,#DE2910\",hu:\"h#CE2939,#FFFFFF,#477050\",is:\"h#003897,#FFFFFF,#DC2030\",in:\"h#FF9933,#FFFFFF,#138808\",id:\"h#CE1126,#FFFFFF,#CE1126\",ir:\"h#239F40,#FFFFFF,#DA0000\",iq:\"h#CE1126,#FFFFFF,#000000\",ie:\"v#169B62,#FFFFFF,#FF883E\",im:\"h#CC0000,#FFFFFF,#CC0000\",il:\"h#FFFFFF,#0038B8,#FFFFFF\",it:\"v#009246,#FFFFFF,#CE2B37\",ci:\"v#F77F00,#FFFFFF,#009A44\",jm:\"h#000000,#FDB71A,#007749\",jp:\"h#FFFFFF,#BC002D,#FFFFFF\",je:\"h#FFFFFF,#DA291C,#FFFFFF\",jo:\"h#007A3D,#FFFFFF,#000000\",kz:\"h#00AFCA,#FFC72C,#00AFCA\",ke:\"h#006600,#FFFFFF,#BB0000\",ki:\"h#CE1126,#003F87,#CE1126\",xk:\"h#244AA5,#E4A72F,#244AA5\",kw:\"h#007A3D,#FFFFFF,#CE1126\",kg:\"h#E8112D,#FFEF00,#E8112D\",la:\"h#CE1126,#002868,#CE1126\",lv:\"h#9E3039,#FFFFFF,#9E3039\",lb:\"h#FFFFFF,#CE1126,#FFFFFF\",ls:\"h#009543,#FFFFFF,#009543\",lr:\"h#BF0A30,#FFFFFF,#002868\",ly:\"h#000000,#229E45,#000000\",li:\"h#002B7F,#CE1126,#002B7F\",lt:\"h#FDB913,#006A44,#C1272D\",lu:\"h#EF3340,#FFFFFF,#00A3E0\",mo:\"h#009A44,#FFFFFF,#009A44\",mg:\"v#FC3D32,#FFFFFF,#007E3A\",mw:\"h#000000,#CE1126,#339E35\",my:\"h#CC0001,#FFFFFF,#010066\",mv:\"h#D21034,#007E3A,#D21034\",ml:\"v#14B53A,#FDEF42,#CE1126\",mt:\"h#FFFFFF,#CF142B,#FFFFFF\",mh:\"h#003893,#FFFFFF,#E4002B\",mq:\"h#003893,#FFFFFF,#CE1126\",mr:\"h#006233,#FFD700,#006233\",mu:\"h#EA2839,#1A206D,#FFD500\",yt:\"h#003893,#FFFFFF,#CE1126\",mx:\"v#006847,#FFFFFF,#CE1126\",fm:\"h#75B2DD,#FFFFFF,#75B2DD\",md:\"v#003DA5,#FFD200,#CC0001\",mc:\"h#CE1126,#FFFFFF,#CE1126\",mn:\"v#C4272F,#F9CF02,#C4272F\",me:\"h#D4AF37,#024FA2,#D4AF37\",ms:\"h#003893,#FFFFFF,#003893\",ma:\"h#C1272D,#006233,#C1272D\",mz:\"h#009A44,#FFFFFF,#000000\",mm:\"h#FECB00,#34B233,#EA2839\",na:\"h#009A44,#FFFFFF,#003580\",nr:\"h#002B7F,#FFC61E,#002B7F\",np:\"h#BC0020,#FFFFFF,#003893\",nl:\"h#AE1C28,#FFFFFF,#21468B\",nc:\"h#003893,#FFFFFF,#CE1126\",nz:\"h#00247D,#FFFFFF,#CC142B\",ni:\"h#FFFFFF,#3F6CB1,#FFFFFF\",ne:\"h#E05206,#FFFFFF,#009A00\",ng:\"v#008751,#FFFFFF,#008751\",nu:\"h#FFD100,#003893,#FFD100\",nf:\"h#008751,#FFFFFF,#008751\",kp:\"h#024FA2,#FFFFFF,#C60C30\",mk:\"h#CE2028,#FFE600,#CE2028\",mp:\"h#003893,#FFFFFF,#003893\",no:\"h#EF2B2D,#FFFFFF,#002868\",om:\"h#DB161B,#FFFFFF,#008000\",pk:\"h#01411C,#FFFFFF,#01411C\",pw:\"h#4AADD6,#FFDE00,#4AADD6\",ps:\"h#000000,#FFFFFF,#009736\",pa:\"h#FFFFFF,#DA121A,#002B7F\",pg:\"h#000000,#CE1126,#FCD116\",py:\"h#D52B1E,#FFFFFF,#0038A8\",pe:\"v#D91023,#FFFFFF,#D91023\",ph:\"h#0038A8,#FFFFFF,#CE1126\",pl:\"h#FFFFFF,#DC143C,#FFFFFF\",pt:\"v#006600,#FF0000,#006600\",pr:\"h#BF0A30,#FFFFFF,#003087\",qa:\"h#8D1B3D,#FFFFFF,#8D1B3D\",re:\"h#003893,#FFFFFF,#CE1126\",ro:\"v#002B7F,#FBDE2F,#CE1126\",ru:\"h#FFFFFF,#0039A6,#D52B1E\",rw:\"h#20603D,#FAD201,#20A0D2\",kn:\"h#009E60,#000000,#CC0001\",lc:\"h#65CFFF,#F4C430,#65CFFF\",vc:\"h#009E60,#FFD100,#009E60\",ws:\"h#CE1126,#003087,#CE1126\",sm:\"h#5EB6E4,#FFFFFF,#5EB6E4\",st:\"h#12AD2B,#FFCE00,#12AD2B\",sa:\"h#006C35,#FFFFFF,#006C35\",sn:\"v#00853F,#FDEF42,#E31B23\",rs:\"h#C6363C,#0C4076,#FFFFFF\",sc:\"h#003F87,#FFD700,#D62828\",sl:\"h#1EB53A,#FFFFFF,#0072C6\",sg:\"h#EF3340,#FFFFFF,#EF3340\",sx:\"h#003893,#AE1C28,#FFFFFF\",sk:\"h#FFFFFF,#0B4EA2,#EE1C25\",si:\"h#003DA5,#FFFFFF,#EC1920\",sb:\"h#0120B9,#FFD100,#007140\",so:\"h#4189DD,#FFFFFF,#4189DD\",za:\"h#007A4D,#000000,#DE3831\",kr:\"h#FFFFFF,#CD2E3A,#003478\",ss:\"h#078930,#FFFFFF,#000000\",es:\"h#AA151B,#F1BF00,#AA151B\",lk:\"h#8D153A,#F5A623,#006400\",sd:\"h#D21034,#FFFFFF,#000000\",sr:\"h#377E3F,#FFFFFF,#B40A2D\",se:\"h#006AA7,#FECC02,#006AA7\",ch:\"h#FF0000,#FFFFFF,#FF0000\",sy:\"h#CE1126,#FFFFFF,#000000\",tw:\"h#FE0000,#FFFFFF,#000095\",tj:\"h#CC0000,#FFFFFF,#006600\",tz:\"h#1EB53A,#000000,#FFC726\",th:\"h#A51931,#FFFFFF,#2D2A4A\",tl:\"h#DC241F,#000000,#F8C105\",tg:\"h#006A4E,#FFCE00,#D21034\",tk:\"h#006B54,#FFCE00,#006B54\",to:\"h#C10000,#FFFFFF,#C10000\",tt:\"h#CE1126,#000000,#FFFFFF\",tn:\"h#E70013,#FFFFFF,#E70013\",tr:\"h#E30A17,#FFFFFF,#E30A17\",tm:\"h#1DBB5D,#CC0001,#1DBB5D\",tc:\"h#003893,#FFFFFF,#003893\",tv:\"h#009FCA,#FFFFFF,#009FCA\",ug:\"h#000000,#FCD116,#DE3108\",ua:\"h#005BBB,#FFD500,#005BBB\",ae:\"v#00732F,#FFFFFF,#FF0000\",gb:\"h#012169,#FFFFFF,#C8102E\",us:\"h#B31942,#FFFFFF,#0A3161\",uy:\"h#FFFFFF,#5994C5,#FFFFFF\",uz:\"h#1EB53A,#FFFFFF,#CE1126\",vu:\"h#009543,#D21034,#000000\",va:\"v#FFE000,#FFFFFF,#FFE000\",ve:\"h#CF142B,#003893,#009A44\",vn:\"h#DA251D,#FFFF00,#DA251D\",vg:\"h#003893,#FFFFFF,#003893\",vi:\"h#003893,#FFFFFF,#CE1126\",wf:\"h#003893,#FFFFFF,#CE1126\",ye:\"h#CE1126,#FFFFFF,#000000\",zm:\"h#198A00,#EF7D00,#DE2010\",zw:\"h#006400,#FFD200,#EF0000\"};function getFlagGradient(def){const dir=def.charAt(0);const colors=def.substring(1).split(\",\");const n=colors.length;const stops=colors.map((c,i)=>`${c} ${i/n*100}% ${(i+1)/n*100}%`);return`linear-gradient(${dir===\"v\"?\"to right\":\"to bottom\"}, ${stops.join(\", \")})`;}// ============================================================================\n// BROWSER-BASED GEO DETECT — zero API calls, instant, unlimited, free forever\n// Uses navigator.language locale + Intl timezone to detect country\n// ============================================================================\nconst TZ_COUNTRY={// India\n\"Asia/Kolkata\":\"in\",\"Asia/Calcutta\":\"in\",// United States\n\"America/New_York\":\"us\",\"America/Chicago\":\"us\",\"America/Denver\":\"us\",\"America/Los_Angeles\":\"us\",\"America/Phoenix\":\"us\",\"America/Anchorage\":\"us\",\"America/Boise\":\"us\",\"America/Detroit\":\"us\",\"America/Indiana/Indianapolis\":\"us\",\"America/Kentucky/Louisville\":\"us\",\"Pacific/Honolulu\":\"us\",// United Kingdom\n\"Europe/London\":\"gb\",// Canada\n\"America/Toronto\":\"ca\",\"America/Vancouver\":\"ca\",\"America/Edmonton\":\"ca\",\"America/Winnipeg\":\"ca\",\"America/Halifax\":\"ca\",\"America/St_Johns\":\"ca\",\"America/Regina\":\"ca\",// Australia\n\"Australia/Sydney\":\"au\",\"Australia/Melbourne\":\"au\",\"Australia/Brisbane\":\"au\",\"Australia/Perth\":\"au\",\"Australia/Adelaide\":\"au\",\"Australia/Hobart\":\"au\",\"Australia/Darwin\":\"au\",// Germany\n\"Europe/Berlin\":\"de\",// France\n\"Europe/Paris\":\"fr\",// Japan\n\"Asia/Tokyo\":\"jp\",// China\n\"Asia/Shanghai\":\"cn\",\"Asia/Chongqing\":\"cn\",\"Asia/Urumqi\":\"cn\",// South Korea\n\"Asia/Seoul\":\"kr\",// Brazil\n\"America/Sao_Paulo\":\"br\",\"America/Rio_Branco\":\"br\",\"America/Manaus\":\"br\",\"America/Bahia\":\"br\",\"America/Fortaleza\":\"br\",\"America/Recife\":\"br\",// Russia\n\"Europe/Moscow\":\"ru\",\"Asia/Yekaterinburg\":\"ru\",\"Asia/Novosibirsk\":\"ru\",\"Asia/Vladivostok\":\"ru\",\"Europe/Samara\":\"ru\",// Mexico\n\"America/Mexico_City\":\"mx\",\"America/Cancun\":\"mx\",\"America/Tijuana\":\"mx\",// Italy\n\"Europe/Rome\":\"it\",// Spain\n\"Europe/Madrid\":\"es\",// Netherlands\n\"Europe/Amsterdam\":\"nl\",// Belgium\n\"Europe/Brussels\":\"be\",// Switzerland\n\"Europe/Zurich\":\"ch\",// Austria\n\"Europe/Vienna\":\"at\",// Sweden\n\"Europe/Stockholm\":\"se\",// Norway\n\"Europe/Oslo\":\"no\",// Denmark\n\"Europe/Copenhagen\":\"dk\",// Finland\n\"Europe/Helsinki\":\"fi\",// Poland\n\"Europe/Warsaw\":\"pl\",// Czech Republic\n\"Europe/Prague\":\"cz\",// Portugal\n\"Europe/Lisbon\":\"pt\",// Ireland\n\"Europe/Dublin\":\"ie\",// Greece\n\"Europe/Athens\":\"gr\",// Turkey\n\"Europe/Istanbul\":\"tr\",// Saudi Arabia\n\"Asia/Riyadh\":\"sa\",// UAE\n\"Asia/Dubai\":\"ae\",// Israel\n\"Asia/Jerusalem\":\"il\",// Pakistan\n\"Asia/Karachi\":\"pk\",// Bangladesh\n\"Asia/Dhaka\":\"bd\",// Sri Lanka\n\"Asia/Colombo\":\"lk\",// Nepal\n\"Asia/Kathmandu\":\"np\",// Thailand\n\"Asia/Bangkok\":\"th\",// Vietnam\n\"Asia/Ho_Chi_Minh\":\"vn\",// Indonesia\n\"Asia/Jakarta\":\"id\",\"Asia/Makassar\":\"id\",\"Asia/Jayapura\":\"id\",// Malaysia\n\"Asia/Kuala_Lumpur\":\"my\",// Singapore\n\"Asia/Singapore\":\"sg\",// Philippines\n\"Asia/Manila\":\"ph\",// Taiwan\n\"Asia/Taipei\":\"tw\",// Hong Kong\n\"Asia/Hong_Kong\":\"hk\",// New Zealand\n\"Pacific/Auckland\":\"nz\",// South Africa\n\"Africa/Johannesburg\":\"za\",// Egypt\n\"Africa/Cairo\":\"eg\",// Nigeria\n\"Africa/Lagos\":\"ng\",// Kenya\n\"Africa/Nairobi\":\"ke\",// Argentina\n\"America/Argentina/Buenos_Aires\":\"ar\",// Colombia\n\"America/Bogota\":\"co\",// Chile\n\"America/Santiago\":\"cl\",// Peru\n\"America/Lima\":\"pe\",// Ukraine\n\"Europe/Kiev\":\"ua\",\"Europe/Kyiv\":\"ua\",// Romania\n\"Europe/Bucharest\":\"ro\",// Hungary\n\"Europe/Budapest\":\"hu\",// Qatar\n\"Asia/Qatar\":\"qa\",// Kuwait\n\"Asia/Kuwait\":\"kw\",// Oman\n\"Asia/Muscat\":\"om\",// Bahrain\n\"Asia/Bahrain\":\"bh\",// Jordan\n\"Asia/Amman\":\"jo\",// Lebanon\n\"Asia/Beirut\":\"lb\",// Iraq\n\"Asia/Baghdad\":\"iq\",// Iran\n\"Asia/Tehran\":\"ir\",// Morocco\n\"Africa/Casablanca\":\"ma\",// Tunisia\n\"Africa/Tunis\":\"tn\",// Ghana\n\"Africa/Accra\":\"gh\",// Ethiopia\n\"Africa/Addis_Ababa\":\"et\",// Tanzania\n\"Africa/Dar_es_Salaam\":\"tz\",// Myanmar\n\"Asia/Yangon\":\"mm\",// Cambodia\n\"Asia/Phnom_Penh\":\"kh\"};function detectCountryFromBrowser(){if(typeof window===\"undefined\")return null;// Method 1 (most reliable): Map Intl timezone to country\ntry{const tz=Intl.DateTimeFormat().resolvedOptions().timeZone;if(tz&&TZ_COUNTRY[tz])return TZ_COUNTRY[tz];}catch{}// Method 2: Extract country from navigator.language locale\n// e.g., \"en-IN\" → \"in\", \"hi-IN\" → \"in\", \"de-DE\" → \"de\"\ntry{const langs=navigator.languages?Array.from(navigator.languages):[navigator.language];for(const lang of langs){if(!lang)continue;// Match \"en-IN\", \"hi-IN\", \"en-US\" etc.\nconst match=lang.match(/[-_]([A-Z]{2})$/i);if(match){const iso=match[1].toLowerCase();if(COUNTRIES.find(c=>c[1]===iso))return iso;}}}catch{}// Method 3: Use Intl locale to extract region\ntry{const locale=new Intl.Locale(navigator.language);if(locale.region){const iso=locale.region.toLowerCase();if(COUNTRIES.find(c=>c[1]===iso))return iso;}}catch{}return null;}// Detect once at module load — instant, no async\nlet _geoCountry=null;if(typeof window!==\"undefined\"){_geoCountry=detectCountryFromBrowser();}// ============================================================================\n// DEFAULT VALUES\n// ============================================================================\nconst DEFAULT_PHONE_CONFIG={defaultCountry:\"us\",autoGeoDetect:true,geoWorkerUrl:\"\",showBadge:true,showDialCode:true,pinnedCountries:\"us,gb,ca,au,de,fr,in\",formatNumber:true,enforceCountryLength:false};const DEFAULT_VALIDATION={requiredMessage:\"\",minDigits:0,minDigitsMessage:\"\",maxDigits:14,maxDigitsMessage:\"\"};const DEFAULT_LABEL={show:true,requiredMark:\"*\",font:{fontSize:12,fontWeight:\"500\",lineHeight:\"1.2em\"},color:\"#888888\"};const DEFAULT_LAYOUT={direction:\"vertical\",gap:8,labelWidth:120};const DEFAULT_INPUT_STYLE={font:{fontSize:14,lineHeight:1.2},color:\"#333333\",placeholderColor:\"#999999\",background:\"rgba(187,187,187,0.15)\",padding:\"12px 15px 12px 12px\",border:{borderWidth:1,borderStyle:\"solid\",borderColor:\"rgba(0,0,0,0.06)\"},radius:\"10px\",shadow:\"\",height:44};const DEFAULT_SELECTOR_STYLE={background:\"transparent\",padding:\"10px\",dividerColor:\"rgba(0,0,0,0.1)\",dividerWidth:1};const DEFAULT_DROPDOWN_STYLE={background:\"#FFFFFF\",border:{borderWidth:1,borderStyle:\"solid\",borderColor:\"#E5E7EB\"},radius:\"8px\",shadow:\"0 4px 16px rgba(0,0,0,0.12)\",maxHeight:220,itemGap:2,padding:\"6px\"};const DEFAULT_OPTION_STYLE={font:{fontSize:14,lineHeight:1.4},color:\"#374151\",background:\"transparent\",hoverColor:\"#374151\",hoverBackground:\"#F3F4F6\",selectedColor:\"#1D4ED8\",selectedBackground:\"#DBEAFE\",padding:\"10px\",radius:\"6px\"};const DEFAULT_SEARCH={show:true,placeholder:\"Search countries...\",font:{fontSize:14,lineHeight:1.4},color:\"#374151\",background:\"#F9FAFB\",border:{borderWidth:1,borderStyle:\"solid\",borderColor:\"#E5E7EB\"},radius:\"6px\",padding:\"10px\"};const DEFAULT_BADGE_STYLE={background:\"#F0F0F0\",borderColor:\"#E0E0E0\",color:\"#444444\"};const DEFAULT_FOCUS_STYLE={borderColor:\"#3B82F6\",shadow:\"\",scale:1};const DEFAULT_ERROR_STYLE={color:\"#dc2626\",font:{fontSize:12,lineHeight:1.4}};// ============================================================================\n// MAIN COMPONENT\n// ============================================================================\n/**\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight auto\n * @framerIntrinsicWidth 300\n * @framerIntrinsicHeight 92\n * @framerDisableUnlink\n */export default function PhoneNumberControl(props){const{name,labelText,placeholder,required,conditions,phoneConfig,validation,label,layout,inputStyle,selectorStyle,dropdownStyle,optionStyle,search,badgeStyle,focusStyle,errorStyle,_meta,style}=props;// Merge configs with defaults\nconst phoneConfigMerged={...DEFAULT_PHONE_CONFIG,...phoneConfig||{}};const validationConfig={...DEFAULT_VALIDATION,...validation||{}};const labelConfig={...DEFAULT_LABEL,...label||{},font:{...DEFAULT_LABEL.font,...label&&label.font||{}}};const layoutConfig={...DEFAULT_LAYOUT,...layout||{}};const inputStyleConfig={...DEFAULT_INPUT_STYLE,...inputStyle||{},font:{...DEFAULT_INPUT_STYLE.font,...inputStyle&&inputStyle.font||{}},border:{...DEFAULT_INPUT_STYLE.border,...inputStyle&&inputStyle.border||{}}};const selectorStyleConfig={...DEFAULT_SELECTOR_STYLE,...selectorStyle||{}};const dropdownStyleConfig={...DEFAULT_DROPDOWN_STYLE,...dropdownStyle||{},border:{...DEFAULT_DROPDOWN_STYLE.border,...dropdownStyle&&dropdownStyle.border||{}}};const optionStyleConfig={...DEFAULT_OPTION_STYLE,...optionStyle||{},font:{...DEFAULT_OPTION_STYLE.font,...optionStyle&&optionStyle.font||{}}};const searchConfig={...DEFAULT_SEARCH,...search||{},font:{...DEFAULT_SEARCH.font,...search&&search.font||{}},border:{...DEFAULT_SEARCH.border,...search&&search.border||{}}};const badgeStyleConfig={...DEFAULT_BADGE_STYLE,...badgeStyle||{}};const focusStyleConfig={...DEFAULT_FOCUS_STYLE,...focusStyle||{}};const errorStyleConfig={...DEFAULT_ERROR_STYLE,...errorStyle||{},font:{...DEFAULT_ERROR_STYLE.font,...errorStyle&&errorStyle.font||{}}};const fieldName=name||\"phone\";const currentLabelText=labelText||\"Phone Number\";const inputId=`field-${fieldName}`;const errorId=`error-${fieldName}`;// Geo-detected default — mirrors CountryDropdownControl's pattern.\n// Computed at render time (not via effect) so the initial useState\n// value is already correct. Both the initial state and the sync\n// effect below read from this single source of truth, so geo never\n// gets clobbered by a later render or Strict Mode double-invocation.\nconst geoDefault=phoneConfigMerged.autoGeoDetect&&_geoCountry?_geoCountry:\"\";const effectiveDefaultCountry=geoDefault||phoneConfigMerged.defaultCountry;const[selectedCountry,setSelectedCountry]=useState(effectiveDefaultCountry);const[phoneValue,setPhoneValue]=useState(\"\");const[isOpen,setIsOpen]=useState(false);const[searchQuery,setSearchQuery]=useState(\"\");const[highlightedIndex,setHighlightedIndex]=useState(-1);const[error,setError]=useState(\"\");const[isFocused,setIsFocused]=useState(false);// Refs\nconst containerRef=useRef(null);const parentRef=useRef(null);const phoneInputRef=useRef(null);const searchInputRef=useRef(null);const hiddenInputRef=useRef(null);const listRef=useRef(null);const isCanvas=RenderTarget.current()===RenderTarget.canvas;const Wrapper=isCanvas?\"div\":motion.div;const conditionItems=useMemo(()=>conditions||[],[conditions]);const handleValueReset=useCallback(()=>{setPhoneValue(\"\");setError(\"\");},[]);const{isVisible,isRequired,isReadOnly,isDisabled}=useConditionArray(conditionItems,\"\",isCanvas,handleValueReset);// Capture the Framer-generated parent wrapper once on mount so we\n// can still collapse it after the component returns null.\nuseEffect(()=>{if(containerRef.current&&!parentRef.current){parentRef.current=containerRef.current.parentElement;}});// Collapse the parent slot when a visibility condition hides\n// this field, so it takes no space in the form layout.\nuseEffect(()=>{const parent=parentRef.current;if(!parent)return;if(!isVisible){const prevDisplay=parent.style.display;parent.style.display=\"none\";return()=>{parent.style.display=prevDisplay;};}},[isVisible]);const hasRequiredConditions=conditionItems.some(c=>c.type===\"required\");const hasReadOnlyConditions=conditionItems.some(c=>c.type===\"readOnly\");const hasDisableConditions=conditionItems.some(c=>c.type===\"disable\");const effectiveRequired=hasRequiredConditions?isRequired:required;const effectiveReadOnly=hasReadOnlyConditions?isReadOnly:false;const effectiveDisabled=hasDisableConditions?isDisabled:false;const parsedMeta=useMemo(()=>{if(!_meta)return null;try{return JSON.parse(_meta);}catch{return null;}},[_meta]);void parsedMeta;// Sync default country — uses effectiveDefaultCountry (geo-aware) so\n// re-renders and React Strict Mode double-invocations don't overwrite\n// a geo-detected value with the user's fallback default.\nuseEffect(()=>{setSelectedCountry(effectiveDefaultCountry);},[effectiveDefaultCountry]);// Apply geo-detected country on mount — fires in both canvas and\n// preview/published so detection isn't dependent on module-level\n// state being populated correctly. Re-runs detectCountryFromBrowser\n// locally in case the module-load cache missed (SSR, cold mount,\n// or Framer serving a bundle where the module-level var was null).\nconst geoAppliedRef=useRef(false);useEffect(()=>{if(!phoneConfigMerged.autoGeoDetect||geoAppliedRef.current)return;geoAppliedRef.current=true;const detected=detectCountryFromBrowser()||_geoCountry;if(detected){_geoCountry=detected;setSelectedCountry(detected);}},[phoneConfigMerged.autoGeoDetect]);// Optional IP-based detect via Cloudflare Worker. No session cache\n// (stale data would override the visitor's current timezone on\n// later visits). Only overrides when the worker returns a country\n// different from what timezone/locale detection produced.\nconst ipCheckedRef=useRef(false);useEffect(()=>{if(!phoneConfigMerged.autoGeoDetect||ipCheckedRef.current)return;const workerUrl=phoneConfigMerged.geoWorkerUrl?.trim();if(!workerUrl)return;ipCheckedRef.current=true;let cancelled=false;fetch(workerUrl).then(r=>r.json()).then(d=>{if(cancelled||!d?.country)return;const iso=d.country.toLowerCase();if(!COUNTRIES.find(c=>c[1]===iso))return;if(iso!==_geoCountry){_geoCountry=iso;setSelectedCountry(iso);}}).catch(()=>{});return()=>{cancelled=true;};},[phoneConfigMerged.autoGeoDetect,phoneConfigMerged.geoWorkerUrl]);// Selected country data\nconst selectedCountryData=useMemo(()=>{return findCountryByIso(selectedCountry)||findCountryByIso(\"us\");},[selectedCountry]);// Max digits allowed based on country format\nconst countryMaxDigits=useMemo(()=>{return getMaxDigitsFromFormat(selectedCountryData?.[3]);},[selectedCountryData]);// Dial codes sorted by length (longest first) for auto-detect\nconst dialCodesSorted=useMemo(()=>{return COUNTRIES.map(c=>({iso:c[1],dialCode:c[2]})).sort((a,b)=>b.dialCode.length-a.dialCode.length);},[]);// Pinned and remaining countries\nconst pinnedList=useMemo(()=>{const pinned=phoneConfigMerged.pinnedCountries.split(\",\").map(s=>s.trim().toLowerCase()).filter(Boolean);return pinned.map(iso=>COUNTRIES.find(c=>c[1]===iso)).filter(Boolean);},[phoneConfigMerged.pinnedCountries]);const remainingCountries=useMemo(()=>{const pinnedSet=new Set(pinnedList.map(c=>c[1]));return COUNTRIES.filter(c=>!pinnedSet.has(c[1]));},[pinnedList]);// Filtered countries for search\nconst filteredPinned=useMemo(()=>{if(!searchQuery.trim())return pinnedList;const q=searchQuery.toLowerCase();return pinnedList.filter(c=>c[0].toLowerCase().includes(q)||c[1].toLowerCase().includes(q)||c[2].includes(q)||(\"+\"+c[2]).includes(q));},[pinnedList,searchQuery]);const filteredRemaining=useMemo(()=>{if(!searchQuery.trim())return remainingCountries;const q=searchQuery.toLowerCase();return remainingCountries.filter(c=>c[0].toLowerCase().includes(q)||c[1].toLowerCase().includes(q)||c[2].includes(q)||(\"+\"+c[2]).includes(q));},[remainingCountries,searchQuery]);const allFilteredCountries=useMemo(()=>{const combined=[];filteredPinned.forEach(c=>combined.push(c));filteredRemaining.forEach(c=>combined.push(c));return combined;},[filteredPinned,filteredRemaining]);// Raw digits from phone input\nconst rawDigits=useMemo(()=>stripNonDigits(phoneValue),[phoneValue]);// E.164 value for hidden input\nconst e164Value=useMemo(()=>{if(!rawDigits||!selectedCountryData)return\"\";return\"+\"+selectedCountryData[2]+rawDigits;},[rawDigits,selectedCountryData]);// Dispatch native change event so conditional logic watchers detect value updates\nuseEffect(()=>{const el=hiddenInputRef.current;if(el){const nativeInputValueSetter=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,\"value\")?.set;nativeInputValueSetter?.call(el,e164Value);el.dispatchEvent(new Event(\"change\",{bubbles:true}));}},[e164Value]);// Dynamic placeholder from country format\nconst dynamicPlaceholder=useMemo(()=>{if(placeholder)return placeholder;if(selectedCountryData&&selectedCountryData[3]){return getFormatPlaceholder(selectedCountryData[3]);}return\"\";},[placeholder,selectedCountryData]);// Token replacement for validation messages\nconst applyTokens=useCallback((template,fallback)=>{const source=template?.trim()?template:fallback;const tokens={label:currentLabelText||fieldName,name:fieldName,min:`${validationConfig.minDigits}`,max:`${validationConfig.maxDigits}`,count:`${rawDigits.length}`};return source.replace(/\\{(label|name|min|max|count)\\}/g,(_,key)=>{return tokens[key]??\"\";});},[currentLabelText,fieldName,validationConfig.minDigits,validationConfig.maxDigits,rawDigits.length]);const hasCustomMessages=Boolean(validationConfig.requiredMessage.trim()||validationConfig.minDigitsMessage.trim()||validationConfig.maxDigitsMessage.trim());// Validation\nconst validate=useCallback(()=>{const el=hiddenInputRef.current;if(!el)return;el.setCustomValidity(\"\");if(effectiveRequired&&!rawDigits){const message=applyTokens(validationConfig.requiredMessage,`${currentLabelText||fieldName} is required`);setError(message);if(hasCustomMessages){el.setCustomValidity(message);}return;}// Country-specific length validation\nif(phoneConfigMerged.enforceCountryLength&&countryMaxDigits<15&&rawDigits.length>0&&rawDigits.length<countryMaxDigits){const countryName=selectedCountryData?.[0]||\"selected country\";const message=`Enter ${countryMaxDigits} digits for ${countryName}`;setError(message);el.setCustomValidity(message);return;}if(validationConfig.minDigits>0&&rawDigits.length>0&&rawDigits.length<validationConfig.minDigits){const message=applyTokens(validationConfig.minDigitsMessage,`Minimum ${validationConfig.minDigits} digits required`);setError(message);if(hasCustomMessages){el.setCustomValidity(message);}return;}if(validationConfig.maxDigits>0&&rawDigits.length>validationConfig.maxDigits){const message=applyTokens(validationConfig.maxDigitsMessage,`Maximum ${validationConfig.maxDigits} digits allowed`);setError(message);if(hasCustomMessages){el.setCustomValidity(message);}return;}setError(\"\");},[effectiveRequired,rawDigits,applyTokens,validationConfig,currentLabelText,fieldName,hasCustomMessages,phoneConfigMerged.enforceCountryLength,countryMaxDigits,selectedCountryData]);// Auto-detect country from typed dial code\nconst autoDetectCountry=useCallback(input=>{if(!input.startsWith(\"+\"))return;const digits=stripNonDigits(input);if(!digits)return;for(const entry of dialCodesSorted){if(digits.startsWith(entry.dialCode)){if(entry.iso!==selectedCountry){setSelectedCountry(entry.iso);const country=findCountryByIso(entry.iso);let remaining=digits.slice(entry.dialCode.length);// Enforce country length\nif(phoneConfigMerged.enforceCountryLength&&country){const maxLen=getMaxDigitsFromFormat(country[3]);remaining=remaining.slice(0,maxLen);}if(phoneConfigMerged.formatNumber&&country&&country[3]){setPhoneValue(formatPhone(remaining,country[3]));}else{setPhoneValue(remaining);}}return;}}},[dialCodesSorted,selectedCountry,phoneConfigMerged.formatNumber,phoneConfigMerged.enforceCountryLength]);// Handlers\nconst handlePhoneChange=useCallback(e=>{const raw=e.target.value;// Check for auto-detect\nif(raw.startsWith(\"+\")){autoDetectCountry(raw);return;}let digits=stripNonDigits(raw);// Enforce country-specific max length\nif(phoneConfigMerged.enforceCountryLength&&countryMaxDigits>0){digits=digits.slice(0,countryMaxDigits);}if(phoneConfigMerged.formatNumber&&selectedCountryData&&selectedCountryData[3]){setPhoneValue(formatPhone(digits,selectedCountryData[3]));}else if(phoneConfigMerged.enforceCountryLength){setPhoneValue(digits);}else{setPhoneValue(raw);}if(error){// Clear error if now valid\nif(effectiveRequired&&digits){setError(\"\");if(hiddenInputRef.current){hiddenInputRef.current.setCustomValidity(\"\");}}else if(!effectiveRequired){setError(\"\");if(hiddenInputRef.current){hiddenInputRef.current.setCustomValidity(\"\");}}}},[autoDetectCountry,phoneConfigMerged.formatNumber,phoneConfigMerged.enforceCountryLength,countryMaxDigits,selectedCountryData,error,effectiveRequired]);const handlePhoneFocus=useCallback(()=>{setIsFocused(true);setError(\"\");},[]);const handlePhoneBlur=useCallback(()=>{if(!isOpen){setIsFocused(false);validate();}},[isOpen,validate]);const handleSelectorClick=useCallback(()=>{if(isCanvas)return;setIsOpen(prev=>!prev);setSearchQuery(\"\");setHighlightedIndex(-1);setError(\"\");},[isCanvas]);const handleCountrySelect=useCallback(iso=>{setSelectedCountry(iso);setIsOpen(false);setSearchQuery(\"\");setHighlightedIndex(-1);setError(\"\");// Re-format and trim existing digits for new country.\n// Only rewrite the stored value when formatting or length\n// enforcement is on — otherwise we'd clobber the user's\n// separators on a pure country change.\nif(rawDigits&&(phoneConfigMerged.formatNumber||phoneConfigMerged.enforceCountryLength)){const country=findCountryByIso(iso);let digits=rawDigits;if(phoneConfigMerged.enforceCountryLength&&country){const maxLen=getMaxDigitsFromFormat(country[3]);digits=digits.slice(0,maxLen);}if(phoneConfigMerged.formatNumber&&country&&country[3]){setPhoneValue(formatPhone(digits,country[3]));}else{setPhoneValue(digits);}}// Focus phone input after selecting\nsetTimeout(()=>{phoneInputRef.current?.focus();},50);},[phoneConfigMerged.formatNumber,phoneConfigMerged.enforceCountryLength,rawDigits]);const handleSearchChange=useCallback(e=>{setSearchQuery(e.target.value);setHighlightedIndex(0);},[]);const handleKeyDown=useCallback(e=>{if(!isOpen){if(e.key===\"Enter\"||e.key===\" \"||e.key===\"ArrowDown\"){e.preventDefault();e.stopPropagation();setIsOpen(true);}return;}switch(e.key){case\"Escape\":e.preventDefault();e.stopPropagation();setIsOpen(false);setSearchQuery(\"\");setHighlightedIndex(-1);phoneInputRef.current?.focus();break;case\"ArrowDown\":e.preventDefault();e.stopPropagation();setHighlightedIndex(prev=>prev<allFilteredCountries.length-1?prev+1:0);break;case\"ArrowUp\":e.preventDefault();e.stopPropagation();setHighlightedIndex(prev=>prev>0?prev-1:allFilteredCountries.length-1);break;case\"Enter\":e.preventDefault();e.stopPropagation();if(highlightedIndex>=0&&allFilteredCountries[highlightedIndex]){handleCountrySelect(allFilteredCountries[highlightedIndex][1]);}break;case\"Tab\":setIsOpen(false);setSearchQuery(\"\");setHighlightedIndex(-1);break;}},[isOpen,allFilteredCountries,highlightedIndex,handleCountrySelect]);const handleInvalid=useCallback(event=>{event.preventDefault();validate();},[validate]);// Click outside handler\nuseEffect(()=>{const handleClickOutside=event=>{if(containerRef.current&&!containerRef.current.contains(event.target)){setIsOpen(false);setSearchQuery(\"\");setHighlightedIndex(-1);}};if(isOpen){document.addEventListener(\"mousedown\",handleClickOutside);}return()=>{document.removeEventListener(\"mousedown\",handleClickOutside);};},[isOpen]);// Focus search input when dropdown opens\nuseEffect(()=>{if(isOpen&&searchConfig.show&&searchInputRef.current){setTimeout(()=>{searchInputRef.current?.focus();},50);}},[isOpen,searchConfig.show]);// Scroll highlighted item into view\nuseEffect(()=>{if(highlightedIndex>=0&&listRef.current){const items=listRef.current.querySelectorAll(\"[data-country-item]\");if(items[highlightedIndex]){items[highlightedIndex].scrollIntoView({block:\"nearest\"});}}},[highlightedIndex]);// Animation variants\nconst wrapperVariants={idle:{borderColor:inputStyleConfig.border?.borderColor||\"#D1D5DB\",boxShadow:inputStyleConfig.shadow||\"none\",scale:1},focused:{borderColor:focusStyleConfig.borderColor,boxShadow:focusStyleConfig.shadow||\"none\",scale:focusStyleConfig.scale},error:{borderColor:errorStyleConfig.color,boxShadow:\"0 0 0 3px rgba(239,68,68,0.2)\",scale:1}};const dropdownVariants={hidden:{opacity:0,y:-8,scale:.95},visible:{opacity:1,y:0,scale:1}};const wrapperState=error?\"error\":isFocused?\"focused\":\"idle\";const describedBy=error?errorId:undefined;// ============================================================================\n// STYLES\n// ============================================================================\nconst containerStyle={display:\"flex\",flexDirection:layoutConfig.direction===\"horizontal\"?\"row\":\"column\",alignItems:layoutConfig.direction===\"horizontal\"?\"center\":\"stretch\",gap:`${layoutConfig.gap}px`,width:\"100%\",...style};const normalizedLabelFontWeight=(()=>{const current=labelConfig.font?.fontWeight;if(current===undefined||current===null||current===\"\"||current===\"normal\"||current===\"regular\"||current===400||current===\"400\"){return 500;}return current;})();const labelStyle={...labelConfig.font,fontWeight:normalizedLabelFontWeight,color:labelConfig.color,flexShrink:0,...layoutConfig.direction===\"horizontal\"?{width:`${layoutConfig.labelWidth}px`}:{}};const fieldWrapperStyle={position:\"relative\",flex:1,minWidth:0,width:\"100%\"};const inputContainerStyle={...inputStyleConfig.border,borderWidth:inputStyleConfig.border?.borderWidth||1,borderStyle:inputStyleConfig.border?.borderStyle||\"solid\",borderColor:inputStyleConfig.border?.borderColor||\"#D1D5DB\",borderRadius:inputStyleConfig.radius,backgroundColor:inputStyleConfig.background,boxShadow:inputStyleConfig.shadow||\"none\",minHeight:`${inputStyleConfig.height}px`,width:\"100%\",display:\"flex\",alignItems:\"center\",overflow:\"hidden\",boxSizing:\"border-box\"};const selectorButtonStyle={display:\"flex\",alignItems:\"center\",gap:\"6px\",padding:selectorStyleConfig.padding,backgroundColor:selectorStyleConfig.background,border:\"none\",outline:\"none\",cursor:\"pointer\",flexShrink:0,height:\"100%\",boxSizing:\"border-box\"};const dividerStyle={width:`${selectorStyleConfig.dividerWidth}px`,alignSelf:\"stretch\",backgroundColor:selectorStyleConfig.dividerColor,flexShrink:0,margin:\"8px 0\"};const phoneInputStyle={...inputStyleConfig.font,color:inputStyleConfig.color,opacity:1,border:\"none\",outline:\"none\",width:\"100%\",flex:1,minWidth:0,boxSizing:\"border-box\",backgroundColor:\"transparent\",padding:inputStyleConfig.padding,margin:0};const dialCodeStyle={...inputStyleConfig.font,color:inputStyleConfig.color,whiteSpace:\"nowrap\",flexShrink:0,opacity:.7};const chevronStyle={width:\"12px\",height:\"12px\",flexShrink:0,transition:\"transform 0.2s ease\",transform:isOpen?\"rotate(180deg)\":\"rotate(0deg)\"};const dropdownPanelStyle={position:\"absolute\",top:\"100%\",left:0,right:0,marginTop:\"4px\",...dropdownStyleConfig.border,borderWidth:dropdownStyleConfig.border?.borderWidth||1,borderStyle:dropdownStyleConfig.border?.borderStyle||\"solid\",borderColor:dropdownStyleConfig.border?.borderColor||\"#E5E7EB\",borderRadius:dropdownStyleConfig.radius,backgroundColor:dropdownStyleConfig.background,boxShadow:dropdownStyleConfig.shadow,padding:dropdownStyleConfig.padding,zIndex:1e3,overflow:\"hidden\",boxSizing:\"border-box\"};const searchInputStyle={...searchConfig.font,color:searchConfig.color,backgroundColor:searchConfig.background,...searchConfig.border,borderWidth:searchConfig.border?.borderWidth||1,borderStyle:searchConfig.border?.borderStyle||\"solid\",borderColor:searchConfig.border?.borderColor||\"#E5E7EB\",borderRadius:searchConfig.radius,padding:searchConfig.padding,width:\"100%\",outline:\"none\",marginBottom:\"8px\",boxSizing:\"border-box\"};const optionsListStyle={maxHeight:`${dropdownStyleConfig.maxHeight}px`,overflowY:\"auto\",overflowX:\"hidden\",display:\"flex\",flexDirection:\"column\",gap:`${dropdownStyleConfig.itemGap}px`};const getOptionStyle=(isSelected,isHighlighted)=>({...optionStyleConfig.font,color:isSelected?optionStyleConfig.selectedColor:isHighlighted?optionStyleConfig.hoverColor:optionStyleConfig.color,backgroundColor:isSelected?optionStyleConfig.selectedBackground:isHighlighted?optionStyleConfig.hoverBackground:optionStyleConfig.background,padding:optionStyleConfig.padding,borderRadius:optionStyleConfig.radius,cursor:\"pointer\",transition:\"background-color 0.15s ease, color 0.15s ease\",display:\"flex\",alignItems:\"center\",gap:\"10px\"});const separatorStyle={height:\"1px\",backgroundColor:\"#E5E7EB\",margin:\"4px 0\",flexShrink:0};const noResultsStyle={...optionStyleConfig.font,color:\"#999999\",padding:optionStyleConfig.padding,textAlign:\"center\"};const errorMessageStyle={...errorStyleConfig.font,color:errorStyleConfig.color,marginTop:\"6px\",overflow:\"hidden\"};// Badge component — renders real SVG flag from flagcdn.com (free, unlimited)\nconst CountryBadge=({iso})=>{const[imgFailed,setImgFailed]=useState(false);if(!imgFailed){return /*#__PURE__*/_jsx(\"img\",{src:`https://flagcdn.com/${iso}.svg`,alt:iso.toUpperCase(),onError:()=>setImgFailed(true),style:{width:28,height:20,borderRadius:3,objectFit:\"cover\",border:`1px solid ${badgeStyleConfig.borderColor}`,flexShrink:0,display:\"block\"}});}// Fallback to ISO code text if flag fails to load\nreturn /*#__PURE__*/_jsx(\"span\",{style:{display:\"inline-flex\",alignItems:\"center\",justifyContent:\"center\",width:28,height:20,borderRadius:3,backgroundColor:badgeStyleConfig.background,border:`1px solid ${badgeStyleConfig.borderColor}`,fontSize:10,fontWeight:700,fontFamily:\"system-ui, -apple-system, sans-serif\",letterSpacing:\"0.5px\",color:badgeStyleConfig.color,lineHeight:1,textTransform:\"uppercase\",flexShrink:0},children:iso});};// Country option row\nconst CountryRow=({country,isSelected,isHighlighted,index,onClick,onMouseEnter})=>/*#__PURE__*/_jsxs(\"div\",{\"data-country-item\":true,role:\"option\",\"aria-selected\":isSelected,onClick:onClick,onMouseEnter:onMouseEnter,style:getOptionStyle(isSelected,isHighlighted),children:[phoneConfigMerged.showBadge&&/*#__PURE__*/_jsx(CountryBadge,{iso:country[1]}),/*#__PURE__*/_jsx(\"span\",{style:{flex:1,overflow:\"hidden\",textOverflow:\"ellipsis\",whiteSpace:\"nowrap\"},children:country[0]}),/*#__PURE__*/_jsxs(\"span\",{style:{flexShrink:0,opacity:.6},children:[\"+\",country[2]]})]});// ============================================================================\n// RENDER\n// ============================================================================\n// Build the flat index for the combined list used in keyboard nav\nconst pinnedOffset=0;const remainingOffset=filteredPinned.length;if(!isVisible)return null;return /*#__PURE__*/_jsxs(\"div\",{style:containerStyle,ref:containerRef,children:[labelConfig.show&&currentLabelText&&/*#__PURE__*/_jsxs(\"label\",{htmlFor:inputId,style:labelStyle,children:[currentLabelText,effectiveRequired&&/*#__PURE__*/_jsx(\"span\",{style:{color:errorStyleConfig.color,marginLeft:\"2px\"},children:labelConfig.requiredMark||\"*\"})]}),/*#__PURE__*/_jsxs(\"div\",{style:fieldWrapperStyle,children:[/*#__PURE__*/_jsx(\"style\",{children:`.fp-phone-control__input::placeholder { color: ${inputStyleConfig.placeholderColor}; opacity: 1; }`}),/*#__PURE__*/_jsxs(Wrapper,{...!isCanvas&&{animate:wrapperState,variants:wrapperVariants,transition:{duration:.2,ease:\"easeOut\"}},style:inputContainerStyle,children:[/*#__PURE__*/_jsxs(\"button\",{type:\"button\",onClick:handleSelectorClick,onKeyDown:handleKeyDown,disabled:effectiveDisabled,\"aria-haspopup\":\"listbox\",\"aria-expanded\":isOpen,\"aria-label\":\"Select country code\",style:{...selectorButtonStyle,...effectiveDisabled?{opacity:.5,cursor:\"not-allowed\"}:{}},children:[phoneConfigMerged.showBadge&&selectedCountryData&&/*#__PURE__*/_jsx(CountryBadge,{iso:selectedCountryData[1]}),phoneConfigMerged.showDialCode&&selectedCountryData&&/*#__PURE__*/_jsxs(\"span\",{style:dialCodeStyle,children:[\"+\",selectedCountryData[2]]}),/*#__PURE__*/_jsx(\"svg\",{style:chevronStyle,viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"#666666\",strokeWidth:\"2.5\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:/*#__PURE__*/_jsx(\"polyline\",{points:\"6 9 12 15 18 9\"})})]}),/*#__PURE__*/_jsx(\"div\",{style:dividerStyle}),/*#__PURE__*/_jsx(\"input\",{ref:phoneInputRef,id:inputId,type:\"tel\",value:phoneValue,placeholder:dynamicPlaceholder,autoComplete:\"tel-national\",disabled:effectiveDisabled,readOnly:effectiveReadOnly,onFocus:handlePhoneFocus,onBlur:handlePhoneBlur,onInput:handlePhoneChange,onChange:handlePhoneChange,\"aria-invalid\":error?\"true\":undefined,\"aria-describedby\":describedBy,className:\"fp-phone-control__input\",style:{...phoneInputStyle,...effectiveDisabled?{opacity:.5,cursor:\"not-allowed\"}:{},...effectiveReadOnly?{cursor:\"default\"}:{}}}),/*#__PURE__*/_jsx(\"input\",{ref:hiddenInputRef,type:\"text\",name:effectiveDisabled?undefined:fieldName,value:e164Value,required:effectiveRequired,disabled:effectiveDisabled,readOnly:true,tabIndex:-1,\"aria-hidden\":\"true\",onChange:e=>{// Only act on the initial restore; ignore the\n// echo from the sync effect above.\nif(phoneValue!==\"\")return;const parsed=parseE164(e.target.value);if(!parsed)return;setSelectedCountry(parsed.iso);const c=findCountryByIso(parsed.iso);setPhoneValue(formatPhone(parsed.national,c?.[3]));},onInvalid:handleInvalid,style:{position:\"absolute\",opacity:0,width:0,height:0,padding:0,margin:0,border:\"none\",pointerEvents:\"none\",overflow:\"hidden\"}})]}),/*#__PURE__*/_jsx(AnimatePresence,{children:isOpen&&!isCanvas&&/*#__PURE__*/_jsxs(motion.div,{initial:\"hidden\",animate:\"visible\",exit:\"hidden\",variants:dropdownVariants,transition:{duration:.15,ease:\"easeOut\"},style:dropdownPanelStyle,role:\"listbox\",onKeyDown:handleKeyDown,children:[searchConfig.show&&/*#__PURE__*/_jsx(\"input\",{ref:searchInputRef,type:\"text\",value:searchQuery,onChange:handleSearchChange,onKeyDown:handleKeyDown,placeholder:searchConfig.placeholder,style:searchInputStyle,autoComplete:\"off\"}),/*#__PURE__*/_jsx(\"div\",{ref:listRef,style:optionsListStyle,children:allFilteredCountries.length>0?/*#__PURE__*/_jsxs(_Fragment,{children:[filteredPinned.map((country,index)=>{const flatIndex=pinnedOffset+index;const isSelected=country[1]===selectedCountry;const isHighlighted=flatIndex===highlightedIndex;return /*#__PURE__*/_jsx(CountryRow,{country:country,isSelected:isSelected,isHighlighted:isHighlighted,index:flatIndex,onClick:()=>handleCountrySelect(country[1]),onMouseEnter:()=>setHighlightedIndex(flatIndex)},`pinned-${country[1]}`);}),filteredPinned.length>0&&filteredRemaining.length>0&&!searchQuery.trim()&&/*#__PURE__*/_jsx(\"div\",{style:separatorStyle}),filteredRemaining.map((country,index)=>{const flatIndex=remainingOffset+index;const isSelected=country[1]===selectedCountry;const isHighlighted=flatIndex===highlightedIndex;return /*#__PURE__*/_jsx(CountryRow,{country:country,isSelected:isSelected,isHighlighted:isHighlighted,index:flatIndex,onClick:()=>handleCountrySelect(country[1]),onMouseEnter:()=>setHighlightedIndex(flatIndex)},`remaining-${country[1]}`);})]}):/*#__PURE__*/_jsx(\"div\",{style:noResultsStyle,children:\"No countries found\"})})]})}),/*#__PURE__*/_jsx(AnimatePresence,{children:error&&!isCanvas&&/*#__PURE__*/_jsx(motion.div,{id:errorId,role:\"alert\",initial:{opacity:0,y:-4,height:0},animate:{opacity:1,y:0,height:\"auto\"},exit:{opacity:0,y:-4,height:0},transition:{duration:.2,ease:\"easeOut\"},style:errorMessageStyle,children:error},\"error-message\")})]})]});}PhoneNumberControl.displayName=\"Phone Number\";PhoneNumberControl.defaultProps={name:\"phone\",labelText:\"Phone Number\",placeholder:\"\",required:false,conditions:[],phoneConfig:DEFAULT_PHONE_CONFIG,validation:DEFAULT_VALIDATION,label:DEFAULT_LABEL,layout:DEFAULT_LAYOUT,inputStyle:DEFAULT_INPUT_STYLE,selectorStyle:DEFAULT_SELECTOR_STYLE,dropdownStyle:DEFAULT_DROPDOWN_STYLE,optionStyle:DEFAULT_OPTION_STYLE,search:DEFAULT_SEARCH,badgeStyle:DEFAULT_BADGE_STYLE,focusStyle:DEFAULT_FOCUS_STYLE,errorStyle:DEFAULT_ERROR_STYLE,_meta:\"\",style:{}};// ============================================================================\n// PROPERTY CONTROLS\n// ============================================================================\naddPropertyControls(PhoneNumberControl,{name:{type:ControlType.String,title:\"Field Name\",defaultValue:\"phone\",description:\"Unique name used in submitted form data.\"},labelText:{type:ControlType.String,title:\"Label Text\",defaultValue:\"Phone Number\"},placeholder:{type:ControlType.String,title:\"Placeholder\",defaultValue:\"\",description:\"Leave empty to auto-generate from country format.\"},required:{type:ControlType.Boolean,title:\"Required\",defaultValue:false,enabledTitle:\"Yes\",disabledTitle:\"No\"},phoneConfig:{type:ControlType.Object,title:\"Phone Settings\",controls:{defaultCountry:{type:ControlType.String,title:\"Default Country\",defaultValue:\"us\",description:\"ISO 3166-1 alpha-2 code (e.g., us, gb, de). Used as fallback if geo-detect fails.\"},autoGeoDetect:{type:ControlType.Boolean,title:\"Auto Detect Country\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\",description:\"Auto-detect visitor's country via timezone + IP. Off by default so the Default Country isn't silently overridden.\"},geoWorkerUrl:{type:ControlType.String,title:\"Geo Worker URL\",defaultValue:\"\",placeholder:\"https://geo.yoursite.workers.dev\",description:\"Cloudflare Worker URL for IP-based country detection. Leave empty to use timezone only.\",hidden(props){return props.autoGeoDetect===false;}},showBadge:{type:ControlType.Boolean,title:\"Show Badge\",defaultValue:true,enabledTitle:\"Show\",disabledTitle:\"Hide\"},showDialCode:{type:ControlType.Boolean,title:\"Show Dial Code\",defaultValue:true,enabledTitle:\"Show\",disabledTitle:\"Hide\"},pinnedCountries:{type:ControlType.String,title:\"Pinned Countries\",defaultValue:\"us,gb,ca,au,de,fr,in\",description:\"Comma-separated ISO codes to pin at top of dropdown.\"},formatNumber:{type:ControlType.Boolean,title:\"Format Number\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\",description:\"Auto-format phone number based on country pattern.\"},enforceCountryLength:{type:ControlType.Boolean,title:\"Enforce Length\",defaultValue:false,enabledTitle:\"On\",disabledTitle:\"Off\",description:\"Limit input to the selected country's phone number length and fail validation when shorter. Off by default to keep previously-valid submissions passing.\"}}},validation:{type:ControlType.Object,title:\"Validation\",controls:{requiredMessage:{type:ControlType.String,title:\"Required Error\",defaultValue:\"\",description:\"Message when field is required. Supports {label}, {name}.\"},minDigits:{type:ControlType.Number,title:\"Min Digits\",defaultValue:0,min:0,step:1,displayStepper:true},minDigitsMessage:{type:ControlType.String,title:\"Min Error\",defaultValue:\"\",description:\"Message for min digits validation. Supports {min}, {count}, {label}.\",hidden(props){return!props.minDigits||props.minDigits===0;}},maxDigits:{type:ControlType.Number,title:\"Max Digits\",defaultValue:0,min:0,step:1,displayStepper:true},maxDigitsMessage:{type:ControlType.String,title:\"Max Error\",defaultValue:\"\",description:\"Message for max digits validation. Supports {max}, {count}, {label}.\",hidden(props){return!props.maxDigits||props.maxDigits===0;}}}},label:{type:ControlType.Object,title:\"Label Style\",controls:{show:{type:ControlType.Boolean,title:\"Show Label\",defaultValue:true,enabledTitle:\"Show\",disabledTitle:\"Hide\"},requiredMark:{type:ControlType.String,title:\"Required Mark\",defaultValue:\"*\",hidden(props){return props.show===false;}},font:{type:ControlType.Font,title:\"Label Font\",controls:\"basic\",displayFontSize:true,defaultFontType:\"sans-serif\",defaultValue:{fontSize:12,fontWeight:\"500\",lineHeight:\"1.2em\"},hidden(props){return props.show===false;}},color:{type:ControlType.Color,title:\"Label Color\",defaultValue:\"#888888\",hidden(props){return props.show===false;}}}},layout:{type:ControlType.Object,title:\"Layout\",controls:{direction:{type:ControlType.Enum,title:\"Direction\",defaultValue:\"vertical\",options:[\"vertical\",\"horizontal\"],optionTitles:[\"Vertical\",\"Horizontal\"],optionIcons:[\"direction-vertical\",\"direction-horizontal\"],displaySegmentedControl:true},gap:{type:ControlType.Number,title:\"Gap\",defaultValue:8,min:0,max:40,step:2,unit:\"px\"},labelWidth:{type:ControlType.Number,title:\"Label Width\",defaultValue:120,min:40,max:300,step:4,unit:\"px\",hidden(props){return props.direction!==\"horizontal\";}}}},inputStyle:{type:ControlType.Object,title:\"Input Style\",controls:{height:{type:ControlType.Number,title:\"Height\",defaultValue:44,min:32,max:80,step:2,unit:\"px\"},font:{type:ControlType.Font,title:\"Font\",controls:\"basic\",displayFontSize:true,defaultFontType:\"sans-serif\",defaultValue:{fontSize:14,lineHeight:1.2}},color:{type:ControlType.Color,title:\"Text Color\",defaultValue:\"#333333\"},placeholderColor:{type:ControlType.Color,title:\"Placeholder\",defaultValue:\"#999999\"},background:{type:ControlType.Color,title:\"Background\",defaultValue:\"rgba(187,187,187,0.15)\"},padding:{type:ControlType.Padding,title:\"Padding\",defaultValue:\"12px 15px 12px 12px\"},border:{type:ControlType.Border,title:\"Border\",defaultValue:{borderWidth:1,borderStyle:\"solid\",borderColor:\"rgba(0,0,0,0.06)\"}},radius:{type:ControlType.BorderRadius,title:\"Radius\",defaultValue:\"10px\"},shadow:{type:ControlType.BoxShadow,title:\"Shadow\"}}},selectorStyle:{type:ControlType.Object,title:\"Selector Style\",controls:{background:{type:ControlType.Color,title:\"Background\",defaultValue:\"transparent\"},padding:{type:ControlType.Padding,title:\"Padding\",defaultValue:\"0 8px 0 12px\"},dividerColor:{type:ControlType.Color,title:\"Divider Color\",defaultValue:\"rgba(0,0,0,0.1)\"},dividerWidth:{type:ControlType.Number,title:\"Divider Width\",defaultValue:1,min:0,max:4,step:1,unit:\"px\"}}},dropdownStyle:{type:ControlType.Object,title:\"Dropdown Style\",controls:{background:{type:ControlType.Color,title:\"Background\",defaultValue:\"#FFFFFF\"},border:{type:ControlType.Border,title:\"Border\",defaultValue:{borderWidth:1,borderStyle:\"solid\",borderColor:\"#E5E7EB\"}},radius:{type:ControlType.BorderRadius,title:\"Radius\",defaultValue:\"8px\"},shadow:{type:ControlType.BoxShadow,title:\"Shadow\",defaultValue:\"0 4px 16px rgba(0,0,0,0.12)\"},maxHeight:{type:ControlType.Number,title:\"Max Height\",defaultValue:220,min:100,max:500,step:10,unit:\"px\",description:\"Maximum height before scrolling.\"},itemGap:{type:ControlType.Number,title:\"Item Gap\",defaultValue:2,min:0,max:16,step:1,unit:\"px\"},padding:{type:ControlType.Padding,title:\"Padding\",defaultValue:\"6px\"}}},optionStyle:{type:ControlType.Object,title:\"Option Style\",controls:{font:{type:ControlType.Font,title:\"Font\",controls:\"basic\",displayFontSize:true,defaultFontType:\"sans-serif\",defaultValue:{fontSize:14,lineHeight:1.4}},color:{type:ControlType.Color,title:\"Text Color\",defaultValue:\"#374151\"},background:{type:ControlType.Color,title:\"Background\",defaultValue:\"transparent\"},hoverColor:{type:ControlType.Color,title:\"Hover Text\",defaultValue:\"#374151\"},hoverBackground:{type:ControlType.Color,title:\"Hover BG\",defaultValue:\"#F3F4F6\"},selectedColor:{type:ControlType.Color,title:\"Selected Text\",defaultValue:\"#1D4ED8\"},selectedBackground:{type:ControlType.Color,title:\"Selected BG\",defaultValue:\"#DBEAFE\"},padding:{type:ControlType.Padding,title:\"Padding\",defaultValue:\"10px\"},radius:{type:ControlType.BorderRadius,title:\"Radius\",defaultValue:\"6px\"}}},search:{type:ControlType.Object,title:\"Search Style\",controls:{show:{type:ControlType.Boolean,title:\"Show Search\",defaultValue:true,enabledTitle:\"Show\",disabledTitle:\"Hide\"},placeholder:{type:ControlType.String,title:\"Placeholder\",defaultValue:\"Search countries...\",hidden(props){return props.show===false;}},font:{type:ControlType.Font,title:\"Font\",controls:\"basic\",displayFontSize:true,defaultFontType:\"sans-serif\",defaultValue:{fontSize:14,lineHeight:1.4},hidden(props){return props.show===false;}},color:{type:ControlType.Color,title:\"Text Color\",defaultValue:\"#374151\",hidden(props){return props.show===false;}},background:{type:ControlType.Color,title:\"Background\",defaultValue:\"#F9FAFB\",hidden(props){return props.show===false;}},border:{type:ControlType.Border,title:\"Border\",defaultValue:{borderWidth:1,borderStyle:\"solid\",borderColor:\"#E5E7EB\"},hidden(props){return props.show===false;}},radius:{type:ControlType.BorderRadius,title:\"Radius\",defaultValue:\"6px\",hidden(props){return props.show===false;}},padding:{type:ControlType.Padding,title:\"Padding\",defaultValue:\"10px\",hidden(props){return props.show===false;}}}},// badgeStyle: {\n//     type: ControlType.Object,\n//     title: \"Badge Style\",\n//     controls: {\n//         background: {\n//             type: ControlType.Color,\n//             title: \"Background\",\n//             defaultValue: \"#F0F0F0\",\n//         },\n//         borderColor: {\n//             type: ControlType.Color,\n//             title: \"Border\",\n//             defaultValue: \"#E0E0E0\",\n//         },\n//         color: {\n//             type: ControlType.Color,\n//             title: \"Text Color\",\n//             defaultValue: \"#444444\",\n//         },\n//     },\n//     hidden(props) {\n//         return props.phoneConfig?.showBadge === false\n//     },\n// },\nfocusStyle:{type:ControlType.Object,title:\"Focus Style\",controls:{borderColor:{type:ControlType.Color,title:\"Border\",defaultValue:\"#3B82F6\"},shadow:{type:ControlType.BoxShadow,title:\"Shadow\"},scale:{type:ControlType.Number,title:\"Scale\",defaultValue:1,min:1,max:1.05,step:.005}}},errorStyle:{type:ControlType.Object,title:\"Error Style\",description:\"by [Forms Plugin](https://formsplugin.com/?ref=field_setting)\",controls:{color:{type:ControlType.Color,title:\"Color\",defaultValue:\"#dc2626\"},font:{type:ControlType.Font,title:\"Font\",controls:\"basic\",displayFontSize:true,defaultFontType:\"sans-serif\",defaultValue:{fontSize:12,lineHeight:1.4}}}},...CONDITION_ARRAY_CONTROL,_meta:{type:ControlType.String,defaultValue:\"\",hidden(){return true;}}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"PhoneNumberControl\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"any\",\"framerContractVersion\":\"1\",\"framerIntrinsicHeight\":\"92\",\"framerSupportedLayoutHeight\":\"auto\",\"framerDisableUnlink\":\"\",\"framerIntrinsicWidth\":\"300\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./PhoneNumberControl.map","import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{useCallback,useEffect,useMemo,useRef,useState}from\"react\";// ---------------------------------------------------------------------------\n// Defaults\n// ---------------------------------------------------------------------------\nconst DEFAULT_API_CONFIG={apiKey:\"\",updateEnabled:true,groupIds:[]};const DEFAULT_FIELDS_CONFIG={mappings:[{formFieldName:\"email\",mailerliteField:\"email\"}]};const BASE_URL=\"https://api.framergeeks.com/plugin/api/v1\";// Shared encryption key (must match server INTEGRATION_ENCRYPT_KEY)\nconst ENCRYPT_KEY_HEX=\"a3f2b8c1d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1\";/**\n * AES-256-GCM encrypt using Web Crypto API.\n * Output: base64( IV 12 bytes + ciphertext + authTag 16 bytes )\n */async function encryptPayload(data){const iv=crypto.getRandomValues(new Uint8Array(12));const keyBytes=new Uint8Array(ENCRYPT_KEY_HEX.match(/.{2}/g).map(b=>parseInt(b,16)));const cryptoKey=await crypto.subtle.importKey(\"raw\",keyBytes,\"AES-GCM\",false,[\"encrypt\"]);const encoded=new TextEncoder().encode(JSON.stringify(data));const encrypted=await crypto.subtle.encrypt({name:\"AES-GCM\",iv},cryptoKey,encoded);// GCM appends 16-byte auth tag to ciphertext automatically\nconst result=new Uint8Array(iv.length+encrypted.byteLength);result.set(iv,0);result.set(new Uint8Array(encrypted),iv.length);// Base64 encode\nlet binary=\"\";for(let i=0;i<result.length;i++){binary+=String.fromCharCode(result[i]);}return btoa(binary);}// ---------------------------------------------------------------------------\n// Canvas badge\n// ---------------------------------------------------------------------------\nfunction MailerLiteLogo(){return /*#__PURE__*/_jsxs(\"svg\",{width:\"40\",height:\"40\",viewBox:\"0 0 40 40\",fill:\"none\",children:[/*#__PURE__*/_jsx(\"rect\",{width:\"40\",height:\"40\",rx:\"12\",fill:\"#09C269\",fillOpacity:\"0.1\"}),/*#__PURE__*/_jsx(\"g\",{clipPath:\"url(#mailerlite_clip)\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M5.37157 17.6068L3.33488 18.8148C3.05859 18.9965 3.18484 19.3088 3.33488 19.3717L11.2447 23.8037C11.7119 24.0655 12.2875 24.0655 12.7548 23.8037L20.7693 19.313C21.0122 19.1692 20.9723 18.8769 20.7693 18.7782L18.6159 17.6147C18.4341 17.4947 18.0288 17.5346 17.8852 17.6323L12.7548 20.5069C12.2875 20.7687 11.7119 20.7687 11.2447 20.5069L6.06883 17.6068C5.87588 17.4881 5.57023 17.4949 5.37157 17.6068ZM11.245 0.196342C11.7123 -0.0654475 12.2878 -0.0654475 12.7551 0.196342L19.1247 3.7653C19.379 3.89395 19.402 4.23934 19.1247 4.39509C18.7048 4.62951 18.1416 4.94364 17.6743 5.20425C17.1283 5.50871 16.4637 5.50782 15.9184 5.20224L12.7551 3.42984C12.2878 3.16805 11.7123 3.16805 11.245 3.42984L8.07802 5.20434C7.53225 5.51011 6.86706 5.51068 6.32075 5.20597C5.83492 4.935 5.24556 4.60646 4.82087 4.37031C4.5853 4.26914 4.53626 3.96882 4.82087 3.79583L11.245 0.196342ZM21.9691 5.56843C22.4363 5.83022 22.7241 6.31404 22.7241 6.8376V17.1629C22.7241 17.6739 22.4041 17.7692 22.0627 17.5907L19.7039 16.3176V9.37593L12.7551 13.2694C12.2879 13.5312 11.7123 13.5312 11.2451 13.2694L4.29629 9.37593V16.3167L2.15291 17.5892C1.89746 17.7516 1.27612 17.8028 1.27612 17.1629V6.8376C1.27612 6.31404 1.56394 5.83021 2.03116 5.56843C2.7829 5.17477 3.55965 5.56843 3.55965 5.56843L12.0001 10.308L20.4273 5.56843C20.4273 5.56843 21.1757 5.11706 21.9691 5.56843Z\",fill:\"#09C269\",transform:\"translate(8 8)\"})}),/*#__PURE__*/_jsx(\"defs\",{children:/*#__PURE__*/_jsx(\"clipPath\",{id:\"mailerlite_clip\",children:/*#__PURE__*/_jsx(\"rect\",{width:\"24\",height:\"24\",fill:\"white\",transform:\"translate(8 8)\"})})})]});}function StatusIcon({connected}){if(connected){return /*#__PURE__*/_jsxs(\"svg\",{width:\"20\",height:\"20\",viewBox:\"0 0 24 24\",fill:\"none\",children:[/*#__PURE__*/_jsx(\"path\",{d:\"M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z\",stroke:\"#10B77F\",strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M9 12L11 14L15 10\",stroke:\"#10B77F\",strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\"})]});}return /*#__PURE__*/_jsxs(\"svg\",{width:\"20\",height:\"20\",viewBox:\"0 0 24 24\",fill:\"none\",children:[/*#__PURE__*/_jsx(\"path\",{d:\"M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z\",stroke:\"#6B7280\",strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M12 16V12\",stroke:\"#6B7280\",strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M12 8H12.01\",stroke:\"#6B7280\",strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\"})]});}function CanvasBadge({configured,error}){const subtitle=error?error:configured?\"Integration active\":\"Connect API key\";const subtitleColor=error?\"#dc2626\":configured?\"#10B77F\":\"#6B7280\";return /*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",alignItems:\"center\",gap:\"12px\",padding:\"10px 14px\",background:\"#FFFFFF\",border:`1px solid ${error?\"rgba(220,38,38,0.15)\":\"rgba(0,0,0,0.06)\"}`,borderRadius:\"12px\",fontFamily:\"system-ui, -apple-system, sans-serif\",userSelect:\"none\",boxShadow:\"0 1px 3px rgba(0,0,0,0.04)\"},children:[/*#__PURE__*/_jsx(MailerLiteLogo,{}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:\"2px\",flex:1,minWidth:0},children:[/*#__PURE__*/_jsx(\"span\",{style:{fontSize:\"14px\",fontWeight:600,color:\"#111827\",lineHeight:1.3},children:\"MailerLite\"}),/*#__PURE__*/_jsx(\"span\",{style:{fontSize:\"12px\",fontWeight:400,color:subtitleColor,lineHeight:1.3},children:subtitle})]}),/*#__PURE__*/_jsx(StatusIcon,{connected:configured&&!error})]});}// ---------------------------------------------------------------------------\n// Component\n// ---------------------------------------------------------------------------\n/**\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight auto\n * @framerIntrinsicWidth 220\n * @framerIntrinsicHeight 40\n * @framerDisableUnlink\n */export default function MailerLiteIntegrationControl(props){const{apiConfig,fieldsConfig,_meta,style}=props;const apiCfg={...DEFAULT_API_CONFIG,...apiConfig||{}};const fieldsCfg={...DEFAULT_FIELDS_CONFIG,...fieldsConfig||{}};const isCanvas=RenderTarget.current()===RenderTarget.canvas;const containerRef=useRef(null);const formRef=useRef(null);const pendingRef=useRef(false);const[status,setStatus]=useState(\"idle\");const[statusMessage,setStatusMessage]=useState(\"\");const[setupDone,setSetupDone]=useState(false);const parsedMeta=useMemo(()=>{if(!_meta)return null;try{return JSON.parse(_meta);}catch{return null;}},[_meta]);const userId=parsedMeta?.userId;const projectId=parsedMeta?.projectId;// --- Upsert integration setup on API key change ---\nuseEffect(()=>{if(!apiCfg.apiKey){setSetupDone(false);return;}if(!userId||!projectId)return;fetch(`${BASE_URL}/integration/setup/mailerlite`,{method:\"POST\",headers:{\"Content-Type\":\"application/json\"},body:JSON.stringify({int_user_fk_user_id:userId,int_fk_project_id:projectId,int_tp_api_key:apiCfg.apiKey,int_domain_prod:parsedMeta?.publishInfo?.production||\"\",int_domain_test:parsedMeta?.publishInfo?.staging||\"\",int_config:{}})}).then(async res=>{const data=await res.json();if(res.ok&&(data.status===true||data.success!==false)){setSetupDone(true);setStatus(\"success\");setStatusMessage(\"Integration active\");}else{setSetupDone(false);setStatus(\"error\");setStatusMessage(data.message||data.error?.[0]||\"Setup failed\");}}).catch(()=>{setSetupDone(false);setStatus(\"error\");setStatusMessage(\"Connection error\");});},[apiCfg.apiKey,userId,projectId]);// --- Find parent form ---\nconst findParentForm=useCallback(()=>{let el=containerRef.current;while(el){if(el.tagName===\"FORM\")return el;el=el.parentElement;}return null;},[]);// --- Collect form data & map to payload ---\nconst buildPayload=useCallback(form=>{const formData=new FormData(form);const dataObj={};formData.forEach((val,key)=>{if(typeof val===\"string\")dataObj[key]=val;});let email=\"\";const attributes={};const mappings=fieldsCfg.mappings||[];for(const mapping of mappings){const formField=mapping.formFieldName?.trim();const mlField=mapping.mailerliteField?.trim().toLowerCase();if(!formField||!mlField)continue;// Case-insensitive lookup\nlet formValue=\"\";for(const[key,value]of Object.entries(dataObj)){if(key.toLowerCase()===formField.toLowerCase()){formValue=value;break;}}if(!formValue)continue;if(mlField===\"email\"){email=formValue;}else{attributes[mlField]=formValue;}}if(!email)return null;// Only include groupIds when the user actually configured any,\n// so old integrations without this field send an identical\n// payload and server behavior is unchanged.\nconst cleanGroupIds=(apiCfg.groupIds||[]).map(g=>String(g).trim()).filter(Boolean);return{int_user_fk_user_id:userId||\"\",int_fk_project_id:projectId||\"\",email,attributes:Object.keys(attributes).length>0?attributes:undefined,config:{updateEnabled:apiCfg.updateEnabled,...cleanGroupIds.length>0?{groupIds:cleanGroupIds}:{}}};},[fieldsCfg.mappings,userId,projectId,apiCfg.updateEnabled,apiCfg.groupIds]);// --- Submit handler (calls our server, not MailerLite directly) ---\nconst handleSubmit=useCallback(async()=>{// Guard: prevent double-fire from submit + Enter\nif(pendingRef.current)return;if(!setupDone)return;const form=formRef.current;if(!form)return;pendingRef.current=true;const payload=buildPayload(form);if(!payload){setStatus(\"error\");setStatusMessage(\"No email field mapped\");pendingRef.current=false;return;}setStatus(\"sending\");setStatusMessage(\"\");// Encrypt entire payload so nothing is visible in network tab\nconst encrypted=await encryptPayload(payload);// Use keepalive so the request completes even if the page\n// navigates away (external redirect after form submit).\ntry{const response=await fetch(`${BASE_URL}/integration/use/mailerlite`,{method:\"POST\",keepalive:true,headers:{\"Content-Type\":\"application/json\"},body:JSON.stringify({data:encrypted})});const data=await response.json().catch(()=>({status:false,message:\"Unknown error\"}));if(data.status===true){setStatus(\"success\");setStatusMessage(\"Subscriber synced\");}else{setStatus(\"error\");setStatusMessage(data.message||`Error ${response.status}`);}}catch(err){if(err instanceof TypeError&&err.message.includes(\"abort\")){pendingRef.current=false;return;}setStatus(\"error\");setStatusMessage(\"Network error\");}finally{pendingRef.current=false;}},[setupDone,buildPayload]);// --- Attach to parent form ---\nuseEffect(()=>{if(isCanvas)return;const form=findParentForm();formRef.current=form;if(!form)return;const onKeydown=e=>{if(e.key!==\"Enter\"||e.shiftKey)return;const tag=e.target?.tagName;if(tag===\"TEXTAREA\"||tag===\"SELECT\")return;handleSubmit();};form.addEventListener(\"submit\",handleSubmit);form.addEventListener(\"keydown\",onKeydown);return()=>{form.removeEventListener(\"submit\",handleSubmit);form.removeEventListener(\"keydown\",onKeydown);};},[isCanvas,findParentForm,handleSubmit]);// --- Auto-clear status ---\nuseEffect(()=>{if(status===\"success\"||status===\"error\"){// On canvas keep error visible so user sees the issue\nif(isCanvas&&status===\"error\")return;const timer=setTimeout(()=>{setStatus(\"idle\");setStatusMessage(\"\");},5e3);return()=>clearTimeout(timer);}},[status,isCanvas]);// --- Render ---\nconst containerStyle={position:\"relative\",width:\"100%\",...style};if(isCanvas){return /*#__PURE__*/_jsx(\"div\",{style:containerStyle,children:/*#__PURE__*/_jsx(CanvasBadge,{configured:setupDone,error:status===\"error\"?statusMessage:undefined})});}// Hidden in preview — CSS :has() hides the Framer wrapper\nreturn /*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"style\",{children:`div:has(> .formsplugin-hide-mailerlite) { display: none; }`}),/*#__PURE__*/_jsx(\"div\",{ref:containerRef,className:\"formsplugin-hide-mailerlite\",style:containerStyle})]});}MailerLiteIntegrationControl.displayName=\"MailerLite Integration\";MailerLiteIntegrationControl.defaultProps={apiConfig:DEFAULT_API_CONFIG,fieldsConfig:DEFAULT_FIELDS_CONFIG,_meta:\"\",style:{}};addPropertyControls(MailerLiteIntegrationControl,{// ------------------------------------------------------------------\n// API Config\n// ------------------------------------------------------------------\napiConfig:{type:ControlType.Object,title:\"API Settings\",controls:{apiKey:{type:ControlType.String,title:\"API Key\",defaultValue:\"\",description:\"Your MailerLite API token.\",obscured:true},updateEnabled:{type:ControlType.Boolean,title:\"Update Existing\",defaultValue:true,enabledTitle:\"Yes\",disabledTitle:\"No\",description:\"Update existing subscribers if email already exists.\"},groupIds:{type:ControlType.Array,title:\"Groups\",description:'Optional. Add one or more MailerLite Group IDs to auto-assign new subscribers. Find the ID in the group\\'s URL (e.g. \"185244934057494195\").',defaultValue:[],control:{type:ControlType.String,placeholder:\"e.g. 185244934057494195\"}}}},// ------------------------------------------------------------------\n// Field Mappings\n// ------------------------------------------------------------------\nfieldsConfig:{type:ControlType.Object,title:\"Field Mappings\",controls:{mappings:{type:ControlType.Array,title:\"Mappings\",description:\"Map form field names to MailerLite subscriber fields. One mapping must target email.\",defaultValue:[{formFieldName:\"email\",mailerliteField:\"email\"}],control:{type:ControlType.Object,controls:{formFieldName:{type:ControlType.String,title:\"Form Field\",defaultValue:\"\",description:\"The name attribute of your form field.\"},mailerliteField:{type:ControlType.String,title:\"ML Field\",defaultValue:\"\",description:\"MailerLite field name (email, name, last_name, company, etc).\"}}}}}},// ------------------------------------------------------------------\n// Hidden Meta\n// ------------------------------------------------------------------\n_meta:{type:ControlType.String,defaultValue:\"\",hidden(){return true;}}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"MailerLiteIntegrationControl\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"any\",\"framerIntrinsicWidth\":\"220\",\"framerSupportedLayoutHeight\":\"auto\",\"framerIntrinsicHeight\":\"40\",\"framerDisableUnlink\":\"\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./MailerLiteIntegrationControl.map"],"mappings":"kTA2BG,SAAS,GAAW,EAAK,CAAC,GAAU,IAAS,OAAY,MAAM,EAAE,CAAC,GAAG,CAAC,IAAM,EAAO,IAAI,gBAAgB,EAAO,SAAS,OAAO,CAAO,EAAI,EAAE,CAAC,IAAI,IAAM,KAAO,EAAK,CAAC,IAAM,EAAM,EAAO,IAAI,EAAI,CAAI,IAAQ,MAAM,IAAQ,KAAI,EAAI,GAAK,GAAQ,OAAO,OAAU,CAAC,MAAM,EAAE,EAGvQ,SAAS,EAAY,EAAI,CAAC,GAAG,OAAO,aAAe,IAAY,OAAO,KAAK,GAAG,CAAC,IAAM,EAAI,aAAa,QAAQ,EAAI,CAAqB,OAAhB,EAAuB,KAAK,MAAM,EAAI,CAA3B,UAAkC,CAAC,OAAO,MAAO,SAAS,GAAa,EAAI,EAAM,CAAI,YAAO,aAAe,KAAmB,GAAG,CAAC,aAAa,QAAQ,EAAI,KAAK,UAAU,EAAM,CAAC,MAAO,GAO1T,SAAwB,EAAqB,EAAM,CAAC,GAAK,CAAC,OAAK,UAAU,YAAU,SAAS,eAAa,GAAG,cAAY,GAAG,WAAS,GAAG,oBAAkB,GAAK,gBAAa,GAAK,gBAAc,GAAK,kBAAe,GAAM,kBAAgB,GAAM,gBAAc,GAAM,iBAAe,GAAM,SAAO,EAAY,EAAS,GAAa,SAAS,GAAG,GAAa,OAI/U,EAAUA,MAAY,CAAC,GAAG,IAAO,UAAU,MAAM,EAAE,CAAC,IAAM,EAAK,EAAE,CAAgV,OAA5U,IAAa,EAAK,KAAK,GAAG,EAAgB,OAAO,CAAI,GAAc,EAAK,KAAK,GAAG,EAAgB,SAAS,CAAI,IAAe,EAAK,KAAK,GAAG,EAAgB,UAAU,CAAI,GAAgB,EAAK,KAAK,GAAG,EAAgB,SAAS,CAAI,GAAc,EAAK,KAAK,GAAG,EAAgB,OAAO,CAAI,GAAe,EAAK,KAAK,GAAG,EAAgB,QAAQ,CAAQ,GAAO,CAAC,EAAK,GAAa,EAAc,GAAe,EAAgB,EAAc,EAAe,CAAC,CAI9f,CAAC,EAAS,IAAaC,EAAS,GAAG,CAAO,EAAaC,EAAO,KAAK,CAc/E,GAZA,MAAc,CAAC,IAAM,EAAK,EAAa,QAAQ,GAAG,CAAC,EAAK,OAAO,IAAM,EAAuB,OAAO,yBAAyB,EAAO,iBAAiB,UAAU,QAAQ,EAAE,IAAgB,EAAK,iBAAiB,oCAAoC,CAAO,QAAQ,GAAI,CAAC,GAAwB,KAAK,EAAG,EAAG,MAAM,CAAC,EAAG,cAAc,IAAI,MAAM,SAAS,CAAC,QAAQ,GAAK,CAAC,CAAC,EAAG,EAAG,CAAC,EAAS,CAAC,CAAC,MAAc,CAAC,GAAG,EAAS,OAAO,IAAM,EAAW,EAAe,EACpb,EAAM,GAAG,OAAO,EAAP,CAAa,IAAI,aAAa,EAAa,IAAS,OAAiC,GAArB,EAAO,SAAS,KAAQ,MAAM,IAAI,cAAc,EAAM,OAAO,SAAW,IAAY,SAAS,SAAS,GAAG,MAAM,IAAI,UAAiD,EAAM,GAAjC,CAAC,GAAG,EAAS,GAAG,EAAU,CAAuB,CAAC,MAAO,IAAI,eAAe,EAAM,GAAqB,IAAS,QAAY,IAAI,gBAAgB,EAAO,SAAS,OAAO,CAAC,IAAI,EAAa,EAAK,GAAG,MAAM,IAAI,cAAc,EAAM,EAAY,MAIjc,GAAG,IAAoB,IAAO,WAAW,IAAO,eAAe,CAAC,IAAM,EAAO,EAAY,EAAW,CAAO,EAAe,IAAS,OAAO,OAAO,GAAS,SAAS,EAAO,OAAO,EAAE,OAAO,KAAK,EAAO,CAAC,OAAO,GAAS,EAAgB,OAAO,GAAQ,SAAS,EAAM,OAAO,EAAE,OAAO,KAAK,EAAM,CAAC,OAAO,EAAK,EAC7S,EAAM,EAAgB,GACtB,GAAa,EAAW,EAAM,CAC3B,IAAa,OAAO,GAAQ,UAAU,CAAC,EAAO,EAAM,EAAkB,OAAO,GAAQ,UAAU,OAAO,KAAK,EAAM,CAAC,SAAS,IAG9H,EAAM,CAAC,WAAW,EAAS,GAAG,GAAY,EAAM,EAAG,CAAC,EAAS,EAAK,EAAa,EAAY,EAAS,EAAkB,EAAU,CAAC,CAC9H,EAAS,CAAC,IAAM,OAAW,CAAC,OAAO,EAAP,CAAa,IAAI,aAAa,MAAM,cAAc,IAAI,cAAc,MAAM,eAAe,IAAI,UAAU,MAAM,WAAW,IAAI,eAAe,MAAM,kBAAkB,GAAc,YAAY,IAAI,cAAc,MAAM,eAAe,GAAa,YAAY,QAAQ,MAAM,qBAAsB,CAAC,OAAoB,EAAM,MAAM,CAAC,MAAM,CAAC,QAAQ,OAAO,WAAW,SAAS,IAAI,EAAE,QAAQ,WAAW,WAAW,4BAA4B,OAAO,sCAAsC,aAAa,EAAE,WAAW,+BAA+B,SAAS,GAAG,WAAW,IAAI,MAAM,UAAU,MAAM,OAAO,UAAU,aAAa,GAAG,EAAM,CAAC,SAAS,CAAc,EAAK,OAAO,CAAC,cAAc,OAAO,MAAM,CAAC,QAAQ,cAAc,MAAM,GAAG,OAAO,GAAG,WAAW,SAAS,eAAe,SAAS,aAAa,EAAE,WAAW,UAAU,MAAM,UAAU,WAAW,IAAI,SAAS,GAAG,CAAC,SAAS,IAAI,CAAC,CAAc,EAAK,OAAO,CAAC,MAAM,CAAC,WAAW,IAAI,CAAC,SAAS,iBAAiB,CAAC,CAAc,EAAM,OAAO,CAAC,MAAM,CAAC,QAAQ,IAAI,SAAS,SAAS,aAAa,WAAW,WAAW,SAAS,CAAC,SAAS,CAAC,KAAQ,EAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CACliC,IAAM,EAAY,CAAC,KAAK,SAAS,SAAS,GAAG,sBAAsB,OAAO,8BAA8B,OAAO,CAAO,EAAO,EAAE,CAAC,GAAG,IAAO,WAAW,OAAO,GAAW,SAE3N,IAAI,GAAK,CAAC,EAAI,KAAS,OAAO,QAAQ,EAAS,CAAE,EAAO,KAAkB,EAAK,QAAQ,CAAC,GAAG,EAAY,KAAK,EAAU,QAAM,SAAS,GAAK,CAAC,EAAI,CAAC,SAAW,EAAU,CAAC,IAAM,EAAM,OAAO,GAAW,SAAS,EAAS,GAGtN,EAAO,KAAkB,EAAK,QAAQ,CAAC,GAAG,EAAY,KAAK,EAAgB,QAAM,SAAS,GAAK,CAAC,CAAC,CAAE,OAAoB,EAAK,MAAM,CAAC,IAAI,EAAa,MAAM,CAAC,SAAS,WAAW,MAAM,EAAE,OAAO,EAAE,SAAS,SAAS,cAAc,OAAO,GAAG,EAAM,CAAC,cAAc,OAAO,SAAS,EAAO,CAAC,4BA/C3N,IAAiE,IAAqD,CAC5K,EAAe,UAA4E,EAAS,CAAC,aAAa,aAAa,eAAe,cAAc,WAAW,CAIpK,EAAgB,CAAC,OAAO,CAAC,QAAQ,aAAa,SAAS,QAAQ,SAAS,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CA0CwF,EAAqB,YAAY,uBAAuB,EAAqB,aAAa,CAAC,KAAK,UAAU,UAAU,SAAS,aAAa,GAAG,YAAY,GAAG,SAAS,GAAG,kBAAkB,GAAK,aAAa,GAAK,cAAc,GAAK,eAAe,GAAM,gBAAgB,GAAM,cAAc,GAAM,eAAe,GAAM,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC,EAAoB,EAAqB,CAAC,KAAK,CAAC,KAAK,EAAY,KAAK,MAAM,UAAU,aAAa,UAAU,QAAQ,CAAC,UAAU,aAAa,cAAc,eAAe,cAAc,CAAC,aAAa,CAAC,WAAW,cAAc,eAAe,gBAAgB,eAAe,CAAC,YAAY,wEAAwE,CAAC,UAAU,CAAC,KAAK,EAAY,OAAO,MAAM,aAAa,aAAa,SAAS,YAAY,gBAAgB,YAAY,8GAA8G,OAAO,EAAM,CAAC,OAAO,EAAM,OAAO,WAAY,CAAC,aAAa,CAAC,KAAK,EAAY,OAAO,MAAM,YAAY,aAAa,GAAG,YAAY,aAAa,YAAY,oDAAoD,OAAO,EAAM,CAAC,OAAO,EAAM,OAAO,gBAAiB,CAAC,YAAY,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,aAAa,GAAG,YAAY,qBAAqB,YAAY,kEAAkE,OAAO,EAAM,CAAC,OAAO,EAAM,OAAO,eAAgB,CAAC,SAAS,CAAC,KAAK,EAAY,OAAO,MAAM,WAAW,aAAa,GAAG,YAAY,cAAc,YAAY,gEAAgE,OAAO,EAAM,CAAC,OAAO,EAAM,OAAO,eAAgB,CAAC,kBAAkB,CAAC,KAAK,EAAY,QAAQ,MAAM,cAAc,aAAa,GAAK,aAAa,MAAM,cAAc,KAAK,YAAY,0HAA0H,OAAO,EAAM,CAAC,OAAO,EAAM,OAAO,WAAW,EAAM,OAAO,eAAgB,CAAC,aAAa,CAAC,KAAK,EAAY,QAAQ,MAAM,aAAa,aAAa,GAAK,aAAa,KAAK,cAAc,MAAM,YAAY,oDAAoD,OAAO,EAAM,CAAC,OAAO,EAAM,OAAO,WAAY,CAAC,cAAc,CAAC,KAAK,EAAY,QAAQ,MAAM,kBAAkB,aAAa,GAAK,aAAa,KAAK,cAAc,MAAM,YAAY,kBAAkB,OAAO,EAAM,CAAC,OAAO,EAAM,OAAO,WAAY,CAAC,eAAe,CAAC,KAAK,EAAY,QAAQ,MAAM,gBAAgB,aAAa,GAAM,aAAa,KAAK,cAAc,MAAM,YAAY,iDAAiD,OAAO,EAAM,CAAC,OAAO,EAAM,OAAO,WAAY,CAAC,gBAAgB,CAAC,KAAK,EAAY,QAAQ,MAAM,WAAW,aAAa,GAAM,aAAa,KAAK,cAAc,MAAM,YAAY,6CAA6C,OAAO,EAAM,CAAC,OAAO,EAAM,OAAO,WAAY,CAAC,cAAc,CAAC,KAAK,EAAY,QAAQ,MAAM,SAAS,aAAa,GAAM,aAAa,KAAK,cAAc,MAAM,YAAY,wCAAwC,OAAO,EAAM,CAAC,OAAO,EAAM,OAAO,WAAY,CAAC,eAAe,CAAC,KAAK,EAAY,QAAQ,MAAM,cAAc,aAAa,GAAM,aAAa,KAAK,cAAc,MAAM,YAAY,2CAA2C,OAAO,EAAM,CAAC,OAAO,EAAM,OAAO,WAAY,CAAC,MAAM,CAAC,KAAK,EAAY,OAAO,aAAa,GAAG,YAAY,iEAAiE,QAAQ,CAAC,MAAO,IAAO,CAAC,CAAC,ICjEjoG,SAAgB,EAAgB,EAAK,CAAC,OAAO,EAAK,UAAZ,CAAuB,IAAI,SAAS,OAAO,EAAK,gBAAgB,eAAe,IAAI,OAAO,OAAO,EAAK,cAAc,eAAe,QAAQ,OAAO,EAAK,UAAU,gBAAuF,SAAgB,GAAc,EAAK,CAAC,OAAO,EAAK,UAAZ,CAAuB,IAAI,SAAS,MAAM,CAAC,MAAM,EAAK,aAAa,EAAK,OAAO,GAAG,OAAO,EAAK,cAAc,EAAK,QAAQ,GAAG,CAAC,IAAI,OAAO,MAAM,CAAC,MAAM,EAAK,WAAW,EAAK,OAAO,GAAG,OAAO,EAAK,YAAY,EAAK,QAAQ,GAAG,CAAC,QAAQ,MAAM,CAAC,MAAM,EAAK,OAAO,GAAG,OAAO,EAAK,QAAQ,GAAG,EAStyB,SAAgB,EAAuB,EAAS,EAAU,CAAC,OAAO,EAAP,CAAkB,IAAI,SAAS,OAAO,EAAW,IAAI,EAAS,CAAC,IAAI,OAAO,OAAO,EAAS,IAAI,EAAS,CAAC,QAAQ,OAAO,GAAS,IAAI,EAAS,EAe1d,SAAS,EAAe,EAAG,CAAyJ,OAArJ,aAAc,mBAAmB,EAAG,OAAO,YAAY,EAAG,OAAO,SAAc,EAAG,QAAwB,EAAG,OAAO,EAAG,QAAQ,KAAK,EAAG,MAAM,OAA7C,GAA4D,EAAG,MAO9L,SAAS,EAAU,EAAE,CAAC,GAAG,CAAC,EAAE,MAAO,KACtC,IAAM,EAAS,EAAE,MAAM,4BAA4B,CAAiG,OAA7F,EAAiB,KAAK,IAAI,OAAO,EAAS,GAAG,CAAC,OAAO,EAAS,GAAG,CAAC,EAAE,OAAO,EAAS,GAAG,CAAC,GAAG,CAAS,IAAI,KAAK,EAAE,CAAC,SAAS,CAGhL,SAAgB,GAAkB,EAAW,EAAO,CACpD,GAAG,CAAC,EAAuB,EAAO,SAAS,EAAO,UAAU,CAAC,MAAO,GAAK,IAAM,EAAE,GAAY,GAAS,EAAO,EAAO,OAAO,GAAS,EAAQ,EAAO,QAAQ,GAAG,OAAO,EAAO,SAAd,CAC9J,IAAI,WAAW,OAAO,EAAE,MAAM,GAAG,GAAG,IAAI,eAAe,OAAO,EAAE,MAAM,GAAG,GACzE,IAAI,WAAW,OAAO,EAAE,aAAa,CAAC,SAAS,EAAO,aAAa,CAAC,CAAC,IAAI,eAAe,MAAM,CAAC,EAAE,aAAa,CAAC,SAAS,EAAO,aAAa,CAAC,CAAC,IAAI,cAAc,OAAO,IAAI,EAAO,IAAI,QAAQ,OAAO,EAAE,aAAa,GAAG,EAAO,aAAa,CAAC,IAAI,cAAc,OAAO,EAAE,aAAa,CAAC,WAAW,EAAO,aAAa,CAAC,CAAC,IAAI,YAAY,OAAO,EAAE,aAAa,CAAC,SAAS,EAAO,aAAa,CAAC,CAAC,IAAI,sBAAsB,OAAO,EAAE,QAAQ,SAAS,EAAO,GAAG,EAAE,GAAG,IAAI,mBAAmB,OAAO,EAAE,QAAQ,SAAS,EAAO,GAAG,EAAE,GAAG,IAAI,QAAQ,GAAG,CAAC,OAAO,IAAI,OAAO,EAAO,CAAC,KAAK,EAAE,MAAO,CAAC,MAAO,GAC/jB,IAAI,SAA+E,OAAlE,EAAO,YAAY,OAAc,EAAU,EAAE,GAAG,EAAU,EAAO,CAAQ,WAAW,EAAE,GAAG,WAAW,EAAO,CAAE,IAAI,aAAmF,OAAlE,EAAO,YAAY,OAAc,EAAU,EAAE,GAAG,EAAU,EAAO,CAAQ,WAAW,EAAE,GAAG,WAAW,EAAO,CAAE,IAAI,eAAe,OAAO,WAAW,EAAE,CAAC,WAAW,EAAO,CAAC,IAAI,YAAY,OAAO,WAAW,EAAE,CAAC,WAAW,EAAO,CAAC,IAAI,sBAAsB,OAAO,WAAW,EAAE,EAAE,WAAW,EAAO,CAAC,IAAI,mBAAmB,OAAO,WAAW,EAAE,EAAE,WAAW,EAAO,CAAC,IAAI,UAAU,CAAC,GAAG,EAAO,YAAY,OAAO,CAAC,IAAM,EAAE,EAAU,EAAE,CAAC,OAAO,GAAG,EAAU,EAAO,EAAE,GAAG,EAAU,EAAQ,CAAE,IAAM,EAAI,WAAW,EAAE,CAAC,OAAO,GAAK,WAAW,EAAO,EAAE,GAAK,WAAW,EAAQ,CAAE,IAAI,cAAc,CAAC,GAAG,EAAO,YAAY,OAAO,CAAC,IAAM,EAAE,EAAU,EAAE,CAAC,OAAO,EAAE,EAAU,EAAO,EAAE,EAAE,EAAU,EAAQ,CAAE,IAAM,EAAI,WAAW,EAAE,CAAC,OAAO,EAAI,WAAW,EAAO,EAAE,EAAI,WAAW,EAAQ,CACp4B,IAAI,SAAS,OAAO,EAAU,EAAE,CAAC,EAAU,EAAO,CAAC,IAAI,QAAQ,OAAO,EAAU,EAAE,CAAC,EAAU,EAAO,CAAC,QAAQ,MAAO,IA+BjH,SAAgB,EAAiB,EAAQ,EAAM,EAAW,CAAC,MAAM,EAAE,GAAS,CAAC,KAAK,EAAY,OAAO,QAAM,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAY,QAAQ,MAAM,SAAS,aAAa,GAAM,aAAa,KAAK,cAAc,MAAM,YAAY,EAAW,CAAC,YAAY,CAAC,KAAK,EAAY,OAAO,MAAM,eAAe,aAAa,GAAG,YAAY,yFAAyF,OAAO,EAAM,CAAC,MAAM,CAAC,EAAM,SAAU,CAAC,UAAU,CAAC,KAAK,EAAY,KAAK,MAAM,aAAa,aAAa,OAAO,QAAQ,CAAC,OAAO,SAAS,OAAO,CAAC,aAAa,CAAC,OAAO,SAAS,OAAO,CAAC,YAAY,kEAAkE,OAAO,EAAM,CAAC,MAAM,CAAC,EAAM,SAAU,CAAC,SAAS,CAAC,KAAK,EAAY,KAAK,MAAM,WAAW,aAAa,eAAe,QAAQ,EAAiB,aAAa,EAAoB,YAAY,uFAAuF,OAAO,EAAM,CAAC,MAAM,CAAC,EAAM,SAAU,CAAC,MAAM,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,aAAa,GAAG,YAAY,iFAAiF,OAAO,EAAM,CAAC,MAAM,CAAC,EAAM,SAAS,EAAa,IAAI,EAAM,SAAS,EAAG,CAAC,OAAO,CAAC,KAAK,EAAY,OAAO,MAAM,gBAAgB,aAAa,GAAG,YAAY,oDAAoD,OAAO,EAAM,CAAC,MAAM,CAAC,EAAM,SAAS,CAAC,EAAU,IAAI,EAAM,SAAS,EAAG,CAC/4C,YAAY,CAAC,KAAK,EAAY,QAAQ,MAAM,aAAa,aAAa,GAAM,aAAa,KAAK,cAAc,MAAM,YAAY,4DAA4D,OAAO,EAAM,CAAC,MAAM,CAAC,EAAM,SAAU,CAAC,MAAM,CAAC,KAAK,EAAY,KAAK,MAAM,QAAQ,aAAa,MAAM,QAAQ,CAAC,MAAM,KAAK,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,wBAAwB,GAAK,YAAY,oCAAoC,OAAO,EAAM,CAAC,MAAM,CAAC,EAAM,SAAS,CAAC,EAAM,aAAc,CAAC,cAAc,CAAC,KAAK,EAAY,OAAO,MAAM,oBAAoB,aAAa,GAAG,YAAY,8EAA8E,OAAO,EAAM,CAAC,MAAM,CAAC,EAAM,SAAS,CAAC,EAAM,aAAc,CAAC,YAAY,CAAC,KAAK,EAAY,KAAK,MAAM,kBAAkB,aAAa,OAAO,QAAQ,CAAC,OAAO,SAAS,OAAO,CAAC,aAAa,CAAC,OAAO,SAAS,OAAO,CAAC,OAAO,EAAM,CAAC,MAAM,CAAC,EAAM,SAAS,CAAC,EAAM,aAAc,CAAC,WAAW,CAAC,KAAK,EAAY,KAAK,MAAM,gBAAgB,aAAa,eAAe,QAAQ,EAAiB,aAAa,EAAoB,YAAY,oEAAoE,OAAO,EAAM,CAAC,MAAM,CAAC,EAAM,SAAS,CAAC,EAAM,aAAc,CAAC,QAAQ,CAAC,KAAK,EAAY,OAAO,MAAM,aAAa,aAAa,GAAG,YAAY,4FAA4F,OAAO,EAAM,CAAC,MAAM,CAAC,EAAM,SAAS,CAAC,EAAM,aAAa,EAAa,IAAI,EAAM,WAAW,EAAG,CAAC,SAAS,CAAC,KAAK,EAAY,OAAO,MAAM,mBAAmB,aAAa,GAAG,YAAY,iDAAiD,OAAO,EAAM,CAAC,MAAM,CAAC,EAAM,SAAS,CAAC,EAAM,aAAa,CAAC,EAAU,IAAI,EAAM,WAAW,EAAG,CAAC,CAAC,CAAC,CAY9oD,SAAgB,GAAkB,EAAW,EAAoB,EAAS,EAAa,CAAC,GAAK,CAAC,EAAM,GAAUC,EAAS,CAAC,UAAU,GAAK,WAAW,GAAM,WAAW,GAAM,WAAW,GAAM,CAAC,CAAO,EAAkBC,EAAO,GAAM,CAAO,EAAgBA,EAAO,EAAa,CAS/N,MATgO,GAAgB,QAAQ,EACzP,MAAc,CAAC,GAAG,CAAC,GAAY,QAAQ,EAAS,CAAC,EAAS,CAAC,UAAU,GAAK,WAAW,GAAM,WAAW,GAAM,WAAW,GAAM,CAAC,CAAC,EAAkB,QAAQ,GAAM,OAAQ,IAAM,EAAY,IAAI,IAAU,EAAS,EAAE,CAC3P,EAAa,IAAI,IAAI,EAAW,IAAI,GAAG,EAAE,aAAa,GAAqB,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAO,MAAa,CACzH,IAAM,EAAQ,CAAC,WAAW,KAAK,SAAS,KAAK,SAAS,KAAK,QAAQ,KAAK,WAAW,KAAK,CAAC,IAAI,IAAM,KAAa,EAAW,CAAC,IAAM,EAAS,EAAU,aAAa,GAAqB,GAAS,EAAW,EAAY,IAAI,EAAS,EAAE,GAAS,EAAe,EAAgB,EAAU,CAAO,EAAa,GAAc,EAAU,CAAO,EAAO,GAAkB,EAAW,CAAC,UAAU,EAAU,WAAW,OAAO,SAAS,EAAe,MAAM,EAAa,MAAM,OAAO,EAAa,OAAO,CAAC,CAAO,EAAE,EAAU,KAAQ,EAAQ,KAAK,KAAM,EAAQ,GAAG,EAAgB,EAAU,QAAQ,KAAM,EAAQ,GAAG,EAAQ,IAAI,EAAa,EAAQ,GAAG,EAAQ,IAAI,EAAS,EAAS,CAAC,UAAU,EAAQ,aAAa,KAAK,GAAK,EAAQ,WAAW,WAAW,EAAQ,WAAW,KAAK,GAAM,EAAQ,SAAS,WAAW,EAAQ,WAAW,KAAK,GAAM,EAAQ,SAAS,WAAW,EAAQ,UAAU,KAAK,GAAM,EAAQ,QAAQ,CAAC,CAC33B,IAAM,EAAG,EAAQ,aAAa,KAAK,GAAM,EAAQ,WAAc,GAAI,CAAC,EAAkB,SAAS,EAAgB,WAAW,CAAE,EAAkB,QAAQ,GACtJ,IAAI,IAAM,KAAa,EAAa,CAAC,IAAM,EAAS,eAAe,EAAU,mBAAmB,EAAU,qBAAqB,EAAU,IAAQ,EAAU,KAAS,EAAe,KAAW,EAAe,GAAU,CAAC,GAAG,IAAY,EAAS,OAAU,GAAe,GAAgB,CAAC,EAAU,EAAS,IAAM,MAAU,CAAC,EAAY,IAAI,EAAU,EAAe,EAAS,CAAC,CAAC,GAAU,EAAG,EAAY,IAAI,EAAU,EAAe,EAAS,CAAC,CAAC,EAAS,iBAAiB,QAAQ,EAAM,CAAC,EAAS,iBAAiB,SAAS,EAAM,CAAC,MAAmB,CAAC,EAAS,oBAAoB,QAAQ,EAAM,CAAC,EAAS,oBAAoB,SAAS,EAAM,GAAW,EAAS,SAAS,cAAc,EAAS,CAAI,GAAU,EAAe,EAAS,CAE5sB,IAAM,EAAS,IAAI,qBAAqB,CAAC,IAAM,EAAG,SAAS,cAAc,EAAS,CAAI,GAAI,IAAK,GAAW,EAAe,EAAG,CAAC,GAAU,EAAU,CAAC,GAAI,IAAc,GAAe,GAAgB,CAAC,EAAU,KAAK,EAAe,OAAQ,CAAC,EAAS,QAAQ,SAAS,KAAK,CAAC,UAAU,GAAK,QAAQ,GAAK,CAAC,CAAC,EAAS,SAAS,CAAC,EAAS,YAAY,CAAI,GAAe,GAAgB,EAAG,CAC5W,OAAX,GAAU,KAAW,EAAS,QAAQ,GAAI,GAAI,CAAC,EAC7C,CARkB,KAAK,UAAU,EAAW,CAQ7B,EAAoB,EAAS,CAAC,CAAQ,EAG2B,SAAS,EAAY,EAAM,CAAiJ,OAA7I,EAAM,YAAY,SAAgB,EAAM,gBAAgB,eAAkB,EAAM,YAAY,OAAc,EAAM,cAAc,eAAsB,EAAM,UAAU,8EAhG1O,IAAgC,IAAoE,CAMlI,EAAiB,CAAC,IAAI,CAAC,CAAC,MAAM,WAAW,MAAM,WAAW,CAAC,CAAC,MAAM,eAAe,MAAM,eAAe,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,WAAW,MAAM,WAAW,CAAC,CAAC,MAAM,eAAe,MAAM,eAAe,CAAC,CAAC,MAAM,cAAc,MAAM,+BAA+B,CAAC,CAAC,MAAM,QAAQ,MAAM,2BAA2B,CAAC,CAAC,MAAM,cAAc,MAAM,cAAc,CAAC,CAAC,MAAM,YAAY,MAAM,YAAY,CAAC,CAAC,MAAM,sBAAsB,MAAM,sBAAsB,CAAC,CAAC,MAAM,mBAAmB,MAAM,mBAAmB,CAAC,CAAC,MAAM,QAAQ,MAAM,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,SAAS,MAAM,SAAS,CAAC,CAAC,MAAM,aAAa,MAAM,aAAa,CAAC,CAAC,MAAM,eAAe,MAAM,eAAe,CAAC,CAAC,MAAM,YAAY,MAAM,YAAY,CAAC,CAAC,MAAM,sBAAsB,MAAM,yBAAyB,CAAC,CAAC,MAAM,mBAAmB,MAAM,sBAAsB,CAAC,CAAC,MAAM,UAAU,MAAM,UAAU,CAAC,CAAC,MAAM,cAAc,MAAM,cAAc,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,SAAS,MAAM,SAAS,CAAC,CAAC,MAAM,aAAa,MAAM,aAAa,CAAC,CAAC,MAAM,SAAS,MAAM,SAAS,CAAC,CAAC,MAAM,QAAQ,MAAM,QAAQ,CAAC,CAAC,MAAM,UAAU,MAAM,UAAU,CAAC,CAAC,MAAM,cAAc,MAAM,cAAc,CAAC,CAAC,CAC1kC,EAAoB,CAAC,GAAG,EAAiB,IAAI,GAAG,EAAiB,KAAK,GAAG,EAAiB,OAAO,GAAG,EAAiB,KAAK,CAAC,QAAQ,EAAI,KAAU,EAAI,KAAK,GAAG,EAAE,QAAQ,EAAG,MAAM,EAAC,EAAI,KAAK,EAAG,CAAQ,GAAM,EAAE,CAAC,CAAc,EAAiB,EAAoB,IAAI,GAAG,EAAE,MAAM,CAAc,EAAoB,EAAoB,IAAI,GAAG,EAAE,MAAM,CACrV,GAAmB,CAAC,GAAG,EAAiB,IAAI,GAAG,EAAiB,KAAK,CAAO,GAAqB,CAAC,GAAG,EAAiB,IAAI,GAAG,EAAiB,OAAO,CAAO,EAAmB,CAAC,GAAG,EAAiB,IAAI,GAAG,EAAiB,KAAK,CAAc,EAAkB,GAAmB,IAAI,GAAG,EAAE,MAAM,CAAc,GAAqB,GAAmB,IAAI,GAAG,EAAE,MAAM,CAAc,GAAoB,GAAqB,IAAI,GAAG,EAAE,MAAM,CAAc,GAAuB,GAAqB,IAAI,GAAG,EAAE,MAAM,CAAc,EAAkB,EAAmB,IAAI,GAAG,EAAE,MAAM,CAAc,EAAqB,EAAmB,IAAI,GAAG,EAAE,MAAM,CAC9nB,GAAS,IAAI,IAAI,CAAC,GAAG,EAAiB,IAAI,GAAG,EAAiB,KAAK,CAAC,IAAI,GAAG,EAAE,MAAM,CAAC,CAAO,EAAW,IAAI,IAAI,CAAC,GAAG,EAAiB,IAAI,GAAG,EAAiB,OAAO,CAAC,IAAI,GAAG,EAAE,MAAM,CAAC,CAAO,EAAS,IAAI,IAAI,CAAC,GAAG,EAAiB,IAAI,GAAG,EAAiB,KAAK,CAAC,IAAI,GAAG,EAAE,MAAM,CAAC,CACvQ,EAAa,IAAI,IAAI,CAAC,WAAW,eAAe,CAAC,CACjD,EAAU,IAAI,IAAI,CAAC,UAAU,cAAc,CAAC,CAgEzB,CAAC,GAAG,EAAiB,aAAa,aAAa,0DAA0D,CAAC,GAAG,EAAiB,oBAAoB,WAAW,iGAAiG,CAAC,GAAG,EAAiB,oBAAoB,YAAY,4DAA4D,CAAC,GAAG,EAAiB,mBAAmB,UAAU,uHAAuH,CAAC,GAAG,EAAiB,sBAAsB,cAAc,6EAA6E,CAAC,CAEvoB,EAAY,OAmB8O,EAAwB,CAAC,WAAW,CAAC,KAAK,EAAY,MAAM,MAAM,aAAa,YAAY,iEAAiE,QAAQ,CAAC,KAAK,EAAY,OAAO,SAAS,CAAC,KAAK,CAAC,KAAK,EAAY,KAAK,MAAM,SAAS,aAAa,aAAa,QAAQ,CAAC,aAAa,WAAW,WAAW,UAAU,aAAa,CAAC,aAAa,CAAC,cAAc,WAAW,YAAY,UAAU,cAAc,CAAC,CAAC,MAAM,CAAC,KAAK,EAAY,KAAK,MAAM,QAAQ,aAAa,MAAM,QAAQ,CAAC,MAAM,KAAK,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,wBAAwB,GAAK,CAAC,YAAY,CAAC,KAAK,EAAY,OAAO,MAAM,eAAe,aAAa,GAAG,YAAY,qFAAqF,CAAC,UAAU,CAAC,KAAK,EAAY,KAAK,MAAM,aAAa,aAAa,OAAO,QAAQ,CAAC,OAAO,SAAS,OAAO,CAAC,aAAa,CAAC,OAAO,SAAS,OAAO,CAAC,CAAC,SAAS,CAAC,KAAK,EAAY,KAAK,MAAM,WAAW,aAAa,eAAe,QAAQ,EAAkB,aAAa,GAAqB,OAAO,EAAM,CAAC,OAAO,EAAM,YAAY,QAAS,CAAC,eAAe,CAAC,KAAK,EAAY,KAAK,MAAM,WAAW,aAAa,eAAe,QAAQ,GAAoB,aAAa,GAAuB,OAAO,EAAM,CAAC,OAAO,EAAM,YAAY,UAAW,CAAC,aAAa,CAAC,KAAK,EAAY,KAAK,MAAM,WAAW,aAAa,eAAe,QAAQ,EAAkB,aAAa,EAAqB,OAAO,EAAM,CAAC,OAAO,EAAM,YAAY,QAAS,CAAC,MAAM,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,aAAa,GAAG,YAAY,yEAAyE,OAAO,EAAM,CAAC,OAAO,EAAM,YAAY,QAAQ,EAAa,IAAI,EAAY,EAAM,CAAC,EAAG,CAAC,YAAY,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,aAAa,GAAG,YAAY,kCAAkC,OAAO,EAAM,CAAC,OAAO,EAAM,YAAY,UAAU,EAAa,IAAI,EAAY,EAAM,CAAC,EAAG,CAAC,UAAU,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,aAAa,GAAG,YAAY,6CAA6C,OAAO,EAAM,CAAC,OAAO,EAAM,YAAY,QAAQ,EAAa,IAAI,EAAY,EAAM,CAAC,EAAG,CAAC,OAAO,CAAC,KAAK,EAAY,OAAO,MAAM,gBAAgB,aAAa,GAAG,YAAY,4CAA4C,OAAO,EAAM,CAAC,OAAO,EAAM,YAAY,QAAQ,CAAC,EAAU,IAAI,EAAY,EAAM,CAAC,EAAG,CAAC,aAAa,CAAC,KAAK,EAAY,OAAO,MAAM,gBAAgB,aAAa,GAAG,YAAY,8CAA8C,OAAO,EAAM,CAAC,OAAO,EAAM,YAAY,UAAU,CAAC,EAAU,IAAI,EAAY,EAAM,CAAC,EAAG,CAAC,WAAW,CAAC,KAAK,EAAY,OAAO,MAAM,gBAAgB,aAAa,GAAG,YAAY,0CAA0C,OAAO,EAAM,CAAC,OAAO,EAAM,YAAY,QAAQ,CAAC,EAAU,IAAI,EAAY,EAAM,CAAC,EAAG,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CAMv+F,EAA8B,GAAY,EAAE,IAA2B,EAAK,MAAM,CAAK,MAAI,MAAM,CAAC,QAAQ,OAAO,CAAC,CAAC,CAAG,CAAC,EAAiB,YAAY,wCC/F5B,ICAjI,SAAS,GAAe,EAAI,CAAC,OAAO,EAAI,QAAQ,MAAM,GAAG,CAAE,SAAS,GAAY,EAAO,EAAO,CAAC,GAAG,CAAC,GAAQ,CAAC,EAAO,OAAO,EAAO,IAAI,EAAI,EAAM,EAAO,GAAG,IAAI,IAAI,EAAE,EAAE,EAAE,EAAO,QAAQ,EAAI,EAAO,OAAO,IAAQ,EAAO,KAAK,KAAK,GAAQ,EAAO,GAAK,KAAY,GAAQ,EAAO,GAC/N,OAA9C,EAAI,EAAO,SAAQ,GAAQ,EAAO,MAAM,EAAI,EAAS,EAAQ,SAAS,GAAqB,EAAO,CAAqB,OAAhB,EAAuB,EAAO,QAAQ,KAAK,IAAI,CAAlC,GAAoC,SAAS,GAAiB,EAAI,CAAC,OAAO,EAAU,KAAK,GAAG,EAAE,KAAK,EAAI,CAG9N,SAAS,GAAU,EAAK,CAAC,GAAG,CAAC,GAAM,OAAO,GAAO,SAAS,OAAO,KAAK,IAAM,EAAQ,EAAK,MAAM,CAAC,GAAG,EAAQ,KAAK,IAAI,OAAO,KAAK,IAAM,EAAO,GAAe,EAAQ,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,EAAO,OAAO,KAAK,IAAI,EAAK,KAAK,IAAI,IAAM,KAAK,EAAU,CAAC,IAAM,EAAG,EAAE,GAAM,GAAI,EAAO,WAAW,EAAG,GAAK,CAAC,GAAM,EAAG,OAAO,EAAK,GAAG,UAAO,EAAK,GAAyB,OAAjB,EAAuB,CAAC,IAAI,EAAK,GAAG,SAAS,EAAO,MAAM,EAAK,GAAG,OAAO,CAAC,CAA9D,KAAgE,SAAS,GAAuB,EAAO,CAAsB,OAAjB,GAAwB,EAAO,MAAM,KAAK,EAAE,EAAE,EAAE,OAAlC,GA+Evb,SAAS,IAA0B,CAAC,GAAU,IAAS,OAAY,OAAO,KAClG,GAAG,CAAC,IAAM,EAAG,KAAK,gBAAgB,CAAC,iBAAiB,CAAC,SAAS,GAAG,GAAI,GAAW,GAAI,OAAO,GAAW,QAAU,EAEhH,GAAG,CAAC,IAAM,EAAM,EAAU,UAAU,MAAM,KAAK,EAAU,UAAU,CAAC,CAAC,EAAU,SAAS,CAAC,IAAI,IAAM,KAAQ,EAAM,CAAC,GAAG,CAAC,EAAK,SAC3H,IAAM,EAAM,EAAK,MAAM,mBAAmB,CAAC,GAAG,EAAM,CAAC,IAAM,EAAI,EAAM,GAAG,aAAa,CAAC,GAAG,EAAU,KAAK,GAAG,EAAE,KAAK,EAAI,CAAC,OAAO,SAAY,EAC1I,GAAG,CAAC,IAAM,EAAO,IAAI,KAAK,OAAO,EAAU,SAAS,CAAC,GAAG,EAAO,OAAO,CAAC,IAAM,EAAI,EAAO,OAAO,aAAa,CAAC,GAAG,EAAU,KAAK,GAAG,EAAE,KAAK,EAAI,CAAC,OAAO,QAAW,EAAE,OAAO,KAatK,SAAwB,EAAmB,EAAM,CAAC,GAAK,CAAC,OAAK,YAAU,cAAY,WAAS,aAAW,eAAY,aAAW,QAAM,SAAO,cAAW,gBAAc,iBAAc,cAAY,SAAO,aAAW,aAAW,aAAW,QAAM,UAAO,EAChP,EAAkB,CAAC,GAAG,GAAqB,GAAG,IAAa,EAAE,CAAC,CAAO,EAAiB,CAAC,GAAG,GAAmB,GAAG,GAAY,EAAE,CAAC,CAAO,EAAY,CAAC,GAAG,GAAc,GAAG,GAAO,EAAE,CAAC,KAAK,CAAC,GAAG,GAAc,KAAK,GAAG,GAAO,EAAM,MAAM,EAAE,CAAC,CAAC,CAAO,GAAa,CAAC,GAAG,GAAe,GAAG,GAAQ,EAAE,CAAC,CAAO,EAAiB,CAAC,GAAG,GAAoB,GAAG,IAAY,EAAE,CAAC,KAAK,CAAC,GAAG,GAAoB,KAAK,GAAG,IAAY,GAAW,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,GAAoB,OAAO,GAAG,IAAY,GAAW,QAAQ,EAAE,CAAC,CAAC,CAAO,EAAoB,CAAC,GAAG,GAAuB,GAAG,GAAe,EAAE,CAAC,CAAO,EAAoB,CAAC,GAAG,GAAuB,GAAG,IAAe,EAAE,CAAC,OAAO,CAAC,GAAG,GAAuB,OAAO,GAAG,IAAe,GAAc,QAAQ,EAAE,CAAC,CAAC,CAAO,EAAkB,CAAC,GAAG,GAAqB,GAAG,GAAa,EAAE,CAAC,KAAK,CAAC,GAAG,GAAqB,KAAK,GAAG,GAAa,EAAY,MAAM,EAAE,CAAC,CAAC,CAAO,EAAa,CAAC,GAAG,GAAe,GAAG,GAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,GAAe,KAAK,GAAG,GAAQ,EAAO,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,GAAe,OAAO,GAAG,GAAQ,EAAO,QAAQ,EAAE,CAAC,CAAC,CAAO,EAAiB,CAAC,GAAG,GAAoB,GAAG,GAAY,EAAE,CAAC,CAAO,GAAiB,CAAC,GAAG,GAAoB,GAAG,GAAY,EAAE,CAAC,CAAO,GAAiB,CAAC,GAAG,GAAoB,GAAG,GAAY,EAAE,CAAC,KAAK,CAAC,GAAG,GAAoB,KAAK,GAAG,GAAY,EAAW,MAAM,EAAE,CAAC,CAAC,CAAO,EAAU,GAAM,QAAc,EAAiB,GAAW,eAAqB,GAAQ,SAAS,IAAkB,GAAQ,SAAS,IAK/1C,IAAlE,EAAkB,eAAe,EAAY,EAAY,KAA6C,EAAkB,eAAoB,CAAC,EAAgB,GAAoBC,EAAS,GAAwB,CAAM,CAAC,GAAW,GAAeA,EAAS,GAAG,CAAM,CAAC,EAAO,GAAWA,EAAS,GAAM,CAAM,CAAC,EAAY,GAAgBA,EAAS,GAAG,CAAM,CAAC,EAAiB,GAAqBA,EAAS,GAAG,CAAM,CAAC,EAAM,GAAUA,EAAS,GAAG,CAAM,CAAC,GAAU,IAAcA,EAAS,GAAM,CAC3e,GAAaC,EAAO,KAAK,CAAO,GAAUA,EAAO,KAAK,CAAO,GAAcA,EAAO,KAAK,CAAO,GAAeA,EAAO,KAAK,CAAO,EAAeA,EAAO,KAAK,CAAO,GAAQA,EAAO,KAAK,CAAO,EAAS,GAAa,SAAS,GAAG,GAAa,OAAa,GAAQ,EAAS,MAAM,EAAO,IAAU,GAAeC,MAAY,GAAY,EAAE,CAAC,CAAC,EAAW,CAAC,CAAmF,CAAC,aAAU,cAAW,cAAW,eAAY,GAAkB,GAAe,GAAG,EAA5IC,MAAgB,CAAC,EAAc,GAAG,CAAC,EAAS,GAAG,EAAG,EAAE,CAAC,CAAiH,CAE5hB,MAAc,CAAI,GAAa,SAAS,CAAC,GAAU,UAAS,GAAU,QAAQ,GAAa,QAAQ,gBAAiB,CAEpH,MAAc,CAAC,IAAM,EAAO,GAAU,QAAY,MAAiB,CAAC,GAAU,CAAC,IAAM,EAAY,EAAO,MAAM,QAAoC,MAA5B,GAAO,MAAM,QAAQ,WAAiB,CAAC,EAAO,MAAM,QAAQ,KAAiB,CAAC,GAAU,CAAC,CAAC,IAAM,GAAsB,GAAe,KAAK,GAAG,EAAE,OAAO,WAAW,CAAO,GAAsB,GAAe,KAAK,GAAG,EAAE,OAAO,WAAW,CAAO,GAAqB,GAAe,KAAK,GAAG,EAAE,OAAO,UAAU,CAAO,GAAkB,GAAsB,GAAW,EAAe,GAAkB,GAAsB,GAAW,GAAY,GAAkB,GAAqB,GAAW,GAAuB,MAAY,CAAC,GAAG,CAAC,EAAM,OAAO,KAAK,GAAG,CAAC,OAAO,KAAK,MAAM,EAAM,MAAO,CAAC,OAAO,OAAQ,CAAC,EAAM,CAAC,CAGptB,MAAc,CAAC,EAAmB,GAAwB,EAAG,CAAC,GAAwB,CAAC,CAKvF,IAAM,GAAcF,EAAO,GAAM,CAAC,MAAc,CAAC,GAAG,CAAC,EAAkB,eAAe,GAAc,QAAQ,OAAO,GAAc,QAAQ,GAAK,IAAM,EAAS,IAA0B,EAAE,EAAe,IAAU,EAAY,EAAS,EAAmB,EAAS,GAAI,CAAC,EAAkB,cAAc,CAAC,CAIzS,IAAM,GAAaA,EAAO,GAAM,CAAC,MAAc,CAAC,GAAG,CAAC,EAAkB,eAAe,GAAa,QAAQ,OAAO,IAAM,EAAU,EAAkB,cAAc,MAAM,CAAC,GAAG,CAAC,EAAU,OAAO,GAAa,QAAQ,GAAK,IAAI,EAAU,GAA8O,OAAxO,MAAM,EAAU,CAAC,KAAK,GAAG,EAAE,MAAM,CAAC,CAAC,KAAK,GAAG,CAAC,GAAG,GAAW,CAAC,GAAG,QAAQ,OAAO,IAAM,EAAI,EAAE,QAAQ,aAAa,CAAK,EAAU,KAAK,GAAG,EAAE,KAAK,EAAI,EAAW,IAAM,IAAa,EAAY,EAAI,EAAmB,EAAI,GAAI,CAAC,UAAU,GAAG,KAAW,CAAC,EAAU,KAAS,CAAC,EAAkB,cAAc,EAAkB,aAAa,CAAC,CACljB,IAAM,EAAoBC,MAAoB,GAAiB,EAAgB,EAAE,GAAiB,KAAK,CAAG,CAAC,EAAgB,CAAC,CACtH,GAAiBA,MAAoB,GAAuB,IAAsB,GAAG,CAAG,CAAC,EAAoB,CAAC,CAC9G,GAAgBA,MAAoB,EAAU,IAAI,IAAI,CAAC,IAAI,EAAE,GAAG,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,OAAO,EAAE,SAAS,OAAO,CAAG,EAAE,CAAC,CACvI,GAAWA,MAA0B,EAAkB,gBAAgB,MAAM,IAAI,CAAC,IAAI,GAAG,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC,OAAO,QAAQ,CAAe,IAAI,GAAK,EAAU,KAAK,GAAG,EAAE,KAAK,EAAI,CAAC,CAAC,OAAO,QAAQ,CAAG,CAAC,EAAkB,gBAAgB,CAAC,CAAO,GAAmBA,MAAY,CAAC,IAAM,EAAU,IAAI,IAAI,GAAW,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,OAAO,EAAU,OAAO,GAAG,CAAC,EAAU,IAAI,EAAE,GAAG,CAAC,EAAG,CAAC,GAAW,CAAC,CACrY,GAAeA,MAAY,CAAC,GAAG,CAAC,EAAY,MAAM,CAAC,OAAO,GAAW,IAAM,EAAE,EAAY,aAAa,CAAC,OAAO,GAAW,OAAO,GAAG,EAAE,GAAG,aAAa,CAAC,SAAS,EAAE,EAAE,EAAE,GAAG,aAAa,CAAC,SAAS,EAAE,EAAE,EAAE,GAAG,SAAS,EAAE,GAAG,IAAI,EAAE,IAAI,SAAS,EAAE,CAAC,EAAG,CAAC,GAAW,EAAY,CAAC,CAAO,GAAkBA,MAAY,CAAC,GAAG,CAAC,EAAY,MAAM,CAAC,OAAO,GAAmB,IAAM,EAAE,EAAY,aAAa,CAAC,OAAO,GAAmB,OAAO,GAAG,EAAE,GAAG,aAAa,CAAC,SAAS,EAAE,EAAE,EAAE,GAAG,aAAa,CAAC,SAAS,EAAE,EAAE,EAAE,GAAG,SAAS,EAAE,GAAG,IAAI,EAAE,IAAI,SAAS,EAAE,CAAC,EAAG,CAAC,GAAmB,EAAY,CAAC,CAAO,GAAqBA,MAAY,CAAC,IAAM,EAAS,EAAE,CAA4F,OAA3F,GAAe,QAAQ,GAAG,EAAS,KAAK,EAAE,CAAC,CAAC,GAAkB,QAAQ,GAAG,EAAS,KAAK,EAAE,CAAC,CAAQ,GAAW,CAAC,GAAe,GAAkB,CAAC,CAC7vB,EAAUA,MAAY,GAAe,GAAW,CAAC,CAAC,GAAW,CAAC,CAC9D,GAAUA,MAAgB,CAAC,GAAW,CAAC,EAA0B,GAAS,IAAI,EAAoB,GAAG,EAAY,CAAC,EAAU,EAAoB,CAAC,CACvJ,MAAc,CAAC,IAAM,EAAG,EAAe,QAAW,KAAiC,OAAO,yBAAyB,EAAO,iBAAiB,UAAU,QAAQ,EAAE,MAA4B,KAAK,EAAG,GAAU,CAAC,EAAG,cAAc,IAAI,MAAM,SAAS,CAAC,QAAQ,GAAK,CAAC,CAAC,GAAI,CAAC,GAAU,CAAC,CAClR,IAAM,GAAmBA,MAAgB,IAAkC,GAAqB,EAAoB,GAAW,GAAqB,EAAoB,GAAG,CAAQ,IAAK,CAAC,EAAY,EAAoB,CAAC,CACpN,GAAYC,GAAa,EAAS,IAAW,CAAC,IAAM,EAAO,GAAU,MAAM,CAAC,EAAS,EAAe,EAAO,CAAC,MAAM,GAAkB,EAAU,KAAK,EAAU,IAAI,GAAG,EAAiB,YAAY,IAAI,GAAG,EAAiB,YAAY,MAAM,GAAG,EAAU,SAAS,CAAC,OAAO,EAAO,QAAQ,mCAAmC,EAAE,IAAc,EAAO,IAAM,GAAK,EAAG,CAAC,EAAiB,EAAU,EAAiB,UAAU,EAAiB,UAAU,EAAU,OAAO,CAAC,CAAO,GAAkB,GAAQ,EAAiB,gBAAgB,MAAM,EAAE,EAAiB,iBAAiB,MAAM,EAAE,EAAiB,iBAAiB,MAAM,EAChmB,GAASA,MAAgB,CAAC,IAAM,EAAG,EAAe,QAAY,KAAmC,IAAzB,EAAG,kBAAkB,GAAG,CAAI,IAAmB,CAAC,EAAU,CAAC,IAAM,EAAQ,GAAY,EAAiB,gBAAgB,GAAG,GAAkB,EAAU,cAAc,CAAC,EAAS,EAAQ,CAAI,IAAmB,EAAG,kBAAkB,EAAQ,CAAE,OACzT,GAAG,EAAkB,sBAAsB,GAAiB,IAAI,EAAU,OAAO,GAAG,EAAU,OAAO,GAAiB,CAAgE,IAAM,EAAQ,SAAS,GAAiB,cAArF,IAAsB,IAAI,qBAAuF,EAAS,EAAQ,CAAC,EAAG,kBAAkB,EAAQ,CAAC,OAAQ,GAAG,EAAiB,UAAU,GAAG,EAAU,OAAO,GAAG,EAAU,OAAO,EAAiB,UAAU,CAAC,IAAM,EAAQ,GAAY,EAAiB,iBAAiB,WAAW,EAAiB,UAAU,kBAAkB,CAAC,EAAS,EAAQ,CAAI,IAAmB,EAAG,kBAAkB,EAAQ,CAAE,OAAQ,GAAG,EAAiB,UAAU,GAAG,EAAU,OAAO,EAAiB,UAAU,CAAC,IAAM,EAAQ,GAAY,EAAiB,iBAAiB,WAAW,EAAiB,UAAU,iBAAiB,CAAC,EAAS,EAAQ,CAAI,IAAmB,EAAG,kBAAkB,EAAQ,CAAE,OAAQ,EAAS,GAAG,GAAG,CAAC,GAAkB,EAAU,GAAY,EAAiB,EAAiB,EAAU,GAAkB,EAAkB,qBAAqB,GAAiB,EAAoB,CAAC,CACtiC,GAAkBA,EAAY,GAAO,CAAC,GAAG,CAAC,EAAM,WAAW,IAAI,CAAC,OAAO,IAAM,EAAO,GAAe,EAAM,CAAK,KAAc,KAAI,IAAM,KAAS,GAAiB,GAAG,EAAO,WAAW,EAAM,SAAS,CAAC,CAAC,GAAG,EAAM,MAAM,EAAgB,CAAC,EAAmB,EAAM,IAAI,CAAC,IAAM,EAAQ,GAAiB,EAAM,IAAI,CAAK,EAAU,EAAO,MAAM,EAAM,SAAS,OAAO,CACrW,GAAG,EAAkB,sBAAsB,EAAQ,CAAC,IAAM,EAAO,GAAuB,EAAQ,GAAG,CAAC,EAAU,EAAU,MAAM,EAAE,EAAO,CAAK,EAAkB,cAAc,GAAS,EAAQ,GAAI,EAAc,GAAY,EAAU,EAAQ,GAAG,CAAC,CAAO,EAAc,EAAU,CAAG,UAAW,CAAC,GAAgB,EAAgB,EAAkB,aAAa,EAAkB,qBAAqB,CAAC,CAChY,GAAkBA,EAAY,GAAG,CAAC,IAAM,EAAI,EAAE,OAAO,MAC3D,GAAG,EAAI,WAAW,IAAI,CAAC,CAAC,GAAkB,EAAI,CAAC,OAAQ,IAAI,EAAO,GAAe,EAAI,CAClF,EAAkB,sBAAsB,GAAiB,IAAG,EAAO,EAAO,MAAM,EAAE,GAAiB,EAAK,EAAkB,cAAc,GAAqB,EAAoB,GAAI,EAAc,GAAY,EAAO,EAAoB,GAAG,CAAC,CAAU,EAAkB,qBAAsB,EAAc,EAAO,CAAO,EAAc,EAAI,CAAK,IACnV,IAAmB,GAAQ,EAAS,GAAG,CAAI,EAAe,SAAS,EAAe,QAAQ,kBAAkB,GAAG,EAAY,KAAmB,EAAS,GAAG,CAAI,EAAe,SAAS,EAAe,QAAQ,kBAAkB,GAAG,IAAM,CAAC,GAAkB,EAAkB,aAAa,EAAkB,qBAAqB,GAAiB,EAAoB,EAAM,GAAkB,CAAC,CAAO,GAAiBA,MAAgB,CAAC,GAAa,GAAK,CAAC,EAAS,GAAG,EAAG,EAAE,CAAC,CAAO,GAAgBA,MAAgB,CAAK,IAAQ,GAAa,GAAM,CAAC,IAAU,GAAI,CAAC,EAAO,GAAS,CAAC,CAAO,GAAoBA,MAAgB,CAAI,IAAgB,EAAU,GAAM,CAAC,EAAK,CAAC,EAAe,GAAG,CAAC,EAAoB,GAAG,CAAC,EAAS,GAAG,GAAG,CAAC,EAAS,CAAC,CAAO,GAAoBA,EAAY,GAAK,CAI/vB,GAJgwB,EAAmB,EAAI,CAAC,EAAU,GAAM,CAAC,EAAe,GAAG,CAAC,EAAoB,GAAG,CAAC,EAAS,GAAG,CAI71B,IAAY,EAAkB,cAAc,EAAkB,sBAAsB,CAAC,IAAM,EAAQ,GAAiB,EAAI,CAAK,EAAO,EAAU,GAAG,EAAkB,sBAAsB,EAAQ,CAAC,IAAM,EAAO,GAAuB,EAAQ,GAAG,CAAC,EAAO,EAAO,MAAM,EAAE,EAAO,CAAK,EAAkB,cAAc,GAAS,EAAQ,GAAI,EAAc,GAAY,EAAO,EAAQ,GAAG,CAAC,CAAO,EAAc,EAAO,CACrZ,eAAe,CAAC,GAAc,SAAS,OAAO,EAAG,GAAG,EAAG,CAAC,EAAkB,aAAa,EAAkB,qBAAqB,EAAU,CAAC,CAAO,GAAmBA,EAAY,GAAG,CAAC,EAAe,EAAE,OAAO,MAAM,CAAC,EAAoB,EAAE,EAAG,EAAE,CAAC,CAAO,GAAcA,EAAY,GAAG,CAAC,GAAG,CAAC,EAAO,EAAI,EAAE,MAAM,SAAS,EAAE,MAAM,KAAK,EAAE,MAAM,eAAa,EAAE,gBAAgB,CAAC,EAAE,iBAAiB,CAAC,EAAU,GAAK,EAAE,OAAQ,OAAO,EAAE,IAAT,CAAc,IAAI,SAAS,EAAE,gBAAgB,CAAC,EAAE,iBAAiB,CAAC,EAAU,GAAM,CAAC,EAAe,GAAG,CAAC,EAAoB,GAAG,CAAC,GAAc,SAAS,OAAO,CAAC,MAAM,IAAI,YAAY,EAAE,gBAAgB,CAAC,EAAE,iBAAiB,CAAC,EAAoB,GAAM,EAAK,GAAqB,OAAO,EAAE,EAAK,EAAE,EAAE,CAAC,MAAM,IAAI,UAAU,EAAE,gBAAgB,CAAC,EAAE,iBAAiB,CAAC,EAAoB,GAAM,EAAK,EAAE,EAAK,EAAE,GAAqB,OAAO,EAAE,CAAC,MAAM,IAAI,QAAQ,EAAE,gBAAgB,CAAC,EAAE,iBAAiB,CAAI,GAAkB,GAAG,GAAqB,IAAmB,GAAoB,GAAqB,GAAkB,GAAG,CAAE,MAAM,IAAI,MAAM,EAAU,GAAM,CAAC,EAAe,GAAG,CAAC,EAAoB,GAAG,CAAC,QAAS,CAAC,EAAO,GAAqB,EAAiB,GAAoB,CAAC,CAAO,GAAcA,EAAY,GAAO,CAAC,EAAM,gBAAgB,CAAC,IAAU,EAAG,CAAC,GAAS,CAAC,CACjuC,MAAc,CAAC,IAAM,EAAmB,GAAO,CAAI,GAAa,SAAS,CAAC,GAAa,QAAQ,SAAS,EAAM,OAAO,GAAE,EAAU,GAAM,CAAC,EAAe,GAAG,CAAC,EAAoB,GAAG,GAA0E,OAAnE,GAAQ,SAAS,iBAAiB,YAAY,EAAmB,KAAY,CAAC,SAAS,oBAAoB,YAAY,EAAmB,GAAK,CAAC,EAAO,CAAC,CACjV,MAAc,CAAI,GAAQ,EAAa,MAAM,GAAe,SAAS,eAAe,CAAC,GAAe,SAAS,OAAO,EAAG,GAAG,EAAI,CAAC,EAAO,EAAa,KAAK,CAAC,CACzJ,MAAc,CAAC,GAAG,GAAkB,GAAG,GAAQ,QAAQ,CAAC,IAAM,EAAM,GAAQ,QAAQ,iBAAiB,sBAAsB,CAAI,EAAM,IAAmB,EAAM,GAAkB,eAAe,CAAC,MAAM,UAAU,CAAC,GAAK,CAAC,EAAiB,CAAC,CACzO,IAAM,GAAgB,CAAC,KAAK,CAAC,YAAY,EAAiB,QAAQ,aAAa,UAAU,UAAU,EAAiB,QAAQ,OAAO,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,GAAiB,YAAY,UAAU,GAAiB,QAAQ,OAAO,MAAM,GAAiB,MAAM,CAAC,MAAM,CAAC,YAAY,GAAiB,MAAM,UAAU,gCAAgC,MAAM,EAAE,CAAC,CAAO,GAAiB,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAO,GAAa,EAAM,QAAQ,GAAU,UAAU,OAAa,GAAY,EAAM,GAAQ,IAAA,GAGrhB,GAAe,CAAC,QAAQ,OAAO,cAAc,GAAa,YAAY,aAAa,MAAM,SAAS,WAAW,GAAa,YAAY,aAAa,SAAS,UAAU,IAAI,GAAG,GAAa,IAAI,IAAI,MAAM,OAAO,GAAG,GAAM,CAAO,QAA+B,CAAC,IAAM,EAAQ,EAAY,MAAM,WAAsJ,OAAxI,GAA+B,MAAM,IAAU,IAAI,IAAU,UAAU,IAAU,WAAW,IAAU,KAAK,IAAU,MAAc,IAAY,KAAY,CAAO,GAAW,CAAC,GAAG,EAAY,KAAK,WAAW,GAA0B,MAAM,EAAY,MAAM,WAAW,EAAE,GAAG,GAAa,YAAY,aAAa,CAAC,MAAM,GAAG,GAAa,WAAW,IAAI,CAAC,EAAE,CAAC,CAAO,GAAkB,CAAC,SAAS,WAAW,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAO,GAAoB,CAAC,GAAG,EAAiB,OAAO,YAAY,EAAiB,QAAQ,aAAa,EAAE,YAAY,EAAiB,QAAQ,aAAa,QAAQ,YAAY,EAAiB,QAAQ,aAAa,UAAU,aAAa,EAAiB,OAAO,gBAAgB,EAAiB,WAAW,UAAU,EAAiB,QAAQ,OAAO,UAAU,GAAG,EAAiB,OAAO,IAAI,MAAM,OAAO,QAAQ,OAAO,WAAW,SAAS,SAAS,SAAS,UAAU,aAAa,CAAO,GAAoB,CAAC,QAAQ,OAAO,WAAW,SAAS,IAAI,MAAM,QAAQ,EAAoB,QAAQ,gBAAgB,EAAoB,WAAW,OAAO,OAAO,QAAQ,OAAO,OAAO,UAAU,WAAW,EAAE,OAAO,OAAO,UAAU,aAAa,CAAO,GAAa,CAAC,MAAM,GAAG,EAAoB,aAAa,IAAI,UAAU,UAAU,gBAAgB,EAAoB,aAAa,WAAW,EAAE,OAAO,QAAQ,CAAO,GAAgB,CAAC,GAAG,EAAiB,KAAK,MAAM,EAAiB,MAAM,QAAQ,EAAE,OAAO,OAAO,QAAQ,OAAO,MAAM,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,aAAa,gBAAgB,cAAc,QAAQ,EAAiB,QAAQ,OAAO,EAAE,CAAO,GAAc,CAAC,GAAG,EAAiB,KAAK,MAAM,EAAiB,MAAM,WAAW,SAAS,WAAW,EAAE,QAAQ,GAAG,CAAO,GAAa,CAAC,MAAM,OAAO,OAAO,OAAO,WAAW,EAAE,WAAW,sBAAsB,UAAU,EAAO,iBAAiB,eAAe,CAAO,GAAmB,CAAC,SAAS,WAAW,IAAI,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,MAAM,GAAG,EAAoB,OAAO,YAAY,EAAoB,QAAQ,aAAa,EAAE,YAAY,EAAoB,QAAQ,aAAa,QAAQ,YAAY,EAAoB,QAAQ,aAAa,UAAU,aAAa,EAAoB,OAAO,gBAAgB,EAAoB,WAAW,UAAU,EAAoB,OAAO,QAAQ,EAAoB,QAAQ,OAAO,IAAI,SAAS,SAAS,UAAU,aAAa,CAAO,GAAiB,CAAC,GAAG,EAAa,KAAK,MAAM,EAAa,MAAM,gBAAgB,EAAa,WAAW,GAAG,EAAa,OAAO,YAAY,EAAa,QAAQ,aAAa,EAAE,YAAY,EAAa,QAAQ,aAAa,QAAQ,YAAY,EAAa,QAAQ,aAAa,UAAU,aAAa,EAAa,OAAO,QAAQ,EAAa,QAAQ,MAAM,OAAO,QAAQ,OAAO,aAAa,MAAM,UAAU,aAAa,CAAO,GAAiB,CAAC,UAAU,GAAG,EAAoB,UAAU,IAAI,UAAU,OAAO,UAAU,SAAS,QAAQ,OAAO,cAAc,SAAS,IAAI,GAAG,EAAoB,QAAQ,IAAI,CAAO,IAAgB,EAAW,KAAiB,CAAC,GAAG,EAAkB,KAAK,MAAM,EAAW,EAAkB,cAAc,EAAc,EAAkB,WAAW,EAAkB,MAAM,gBAAgB,EAAW,EAAkB,mBAAmB,EAAc,EAAkB,gBAAgB,EAAkB,WAAW,QAAQ,EAAkB,QAAQ,aAAa,EAAkB,OAAO,OAAO,UAAU,WAAW,gDAAgD,QAAQ,OAAO,WAAW,SAAS,IAAI,OAAO,EAAQ,GAAe,CAAC,OAAO,MAAM,gBAAgB,UAAU,OAAO,QAAQ,WAAW,EAAE,CAAO,GAAe,CAAC,GAAG,EAAkB,KAAK,MAAM,UAAU,QAAQ,EAAkB,QAAQ,UAAU,SAAS,CAAO,GAAkB,CAAC,GAAG,GAAiB,KAAK,MAAM,GAAiB,MAAM,UAAU,MAAM,SAAS,SAAS,CACpgI,IAAc,CAAC,SAAO,CAAC,GAAK,CAAC,EAAU,GAAcH,EAAS,GAAM,CAC1E,OAD+E,EAC3D,EAAK,OAAO,CAAC,MAAM,CAAC,QAAQ,cAAc,WAAW,SAAS,eAAe,SAAS,MAAM,GAAG,OAAO,GAAG,aAAa,EAAE,gBAAgB,EAAiB,WAAW,OAAO,aAAa,EAAiB,cAAc,SAAS,GAAG,WAAW,IAAI,WAAW,uCAAuC,cAAc,QAAQ,MAAM,EAAiB,MAAM,WAAW,EAAE,cAAc,YAAY,WAAW,EAAE,CAAC,SAAS,EAAI,CAAC,CADhU,EAAK,MAAM,CAAC,IAAI,uBAAuB,EAAI,MAAM,IAAI,EAAI,aAAa,CAAC,YAAY,EAAa,GAAK,CAAC,MAAM,CAAC,MAAM,GAAG,OAAO,GAAG,aAAa,EAAE,UAAU,QAAQ,OAAO,aAAa,EAAiB,cAAc,WAAW,EAAE,QAAQ,QAAQ,CAAC,CAAC,EAE3V,IAAY,CAAC,UAAQ,aAAW,gBAAc,QAAM,UAAQ,kBAA6B,EAAM,MAAM,CAAC,oBAAoB,GAAK,KAAK,SAAS,gBAAgB,EAAmB,UAAqB,eAAa,MAAM,GAAe,EAAW,EAAc,CAAC,SAAS,CAAC,EAAkB,WAAwB,EAAK,GAAa,CAAC,IAAI,EAAQ,GAAG,CAAC,CAAc,EAAK,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,SAAS,aAAa,WAAW,WAAW,SAAS,CAAC,SAAS,EAAQ,GAAG,CAAC,CAAc,EAAM,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,QAAQ,GAAG,CAAC,SAAS,CAAC,IAAI,EAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAI1hB,GAAgB,GAAe,OAAiC,OAAtB,GAA0C,EAAM,MAAM,CAAC,MAAM,GAAe,IAAI,GAAa,SAAS,CAAC,EAAY,MAAM,GAA+B,EAAM,QAAQ,CAAC,QAAQ,GAAQ,MAAM,GAAW,SAAS,CAAC,EAAiB,IAAgC,EAAK,OAAO,CAAC,MAAM,CAAC,MAAM,GAAiB,MAAM,WAAW,MAAM,CAAC,SAAS,EAAY,cAAc,IAAI,CAAC,CAAC,CAAC,CAAC,CAAc,EAAM,MAAM,CAAC,MAAM,GAAkB,SAAS,CAAc,EAAK,QAAQ,CAAC,SAAS,kDAAkD,EAAiB,iBAAiB,iBAAiB,CAAC,CAAc,EAAM,GAAQ,CAAC,GAAG,CAAC,GAAU,CAAC,QAAQ,GAAa,SAAS,GAAgB,WAAW,CAAC,SAAS,GAAG,KAAK,UAAU,CAAC,CAAC,MAAM,GAAoB,SAAS,CAAc,EAAM,SAAS,CAAC,KAAK,SAAS,QAAQ,GAAoB,UAAU,GAAc,SAAS,GAAkB,gBAAgB,UAAU,gBAAgB,EAAO,aAAa,sBAAsB,MAAM,CAAC,GAAG,GAAoB,GAAG,GAAkB,CAAC,QAAQ,GAAG,OAAO,cAAc,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,EAAkB,WAAW,GAAkC,EAAK,GAAa,CAAC,IAAI,EAAoB,GAAG,CAAC,CAAC,EAAkB,cAAc,GAAkC,EAAM,OAAO,CAAC,MAAM,GAAc,SAAS,CAAC,IAAI,EAAoB,GAAG,CAAC,CAAC,CAAc,EAAK,MAAM,CAAC,MAAM,GAAa,QAAQ,YAAY,KAAK,OAAO,OAAO,UAAU,YAAY,MAAM,cAAc,QAAQ,eAAe,QAAQ,SAAsB,EAAK,WAAW,CAAC,OAAO,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,EAAK,MAAM,CAAC,MAAM,GAAa,CAAC,CAAc,EAAK,QAAQ,CAAC,IAAI,GAAc,GAAG,GAAQ,KAAK,MAAM,MAAM,GAAW,YAAY,GAAmB,aAAa,eAAe,SAAS,GAAkB,SAAS,GAAkB,QAAQ,GAAiB,OAAO,GAAgB,QAAQ,GAAkB,SAAS,GAAkB,eAAe,EAAM,OAAO,IAAA,GAAU,mBAAmB,GAAY,UAAU,0BAA0B,MAAM,CAAC,GAAG,GAAgB,GAAG,GAAkB,CAAC,QAAQ,GAAG,OAAO,cAAc,CAAC,EAAE,CAAC,GAAG,GAAkB,CAAC,OAAO,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAc,EAAK,QAAQ,CAAC,IAAI,EAAe,KAAK,OAAO,KAAK,GAAkB,IAAA,GAAU,EAAU,MAAM,GAAU,SAAS,GAAkB,SAAS,GAAkB,SAAS,GAAK,SAAS,GAAG,cAAc,OAAO,SAAS,GAAG,CAE31E,GAAG,KAAa,GAAG,OAAO,IAAM,EAAO,GAAU,EAAE,OAAO,MAAM,CAAC,GAAG,CAAC,EAAO,OAAO,EAAmB,EAAO,IAAI,CAAC,IAAM,EAAE,GAAiB,EAAO,IAAI,CAAC,EAAc,GAAY,EAAO,SAAS,IAAI,GAAG,CAAC,EAAG,UAAU,GAAc,MAAM,CAAC,SAAS,WAAW,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,OAAO,cAAc,OAAO,SAAS,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,EAAK,EAAgB,CAAC,SAAS,GAAQ,CAAC,GAAuB,EAAM,EAAO,IAAI,CAAC,QAAQ,SAAS,QAAQ,UAAU,KAAK,SAAS,SAAS,GAAiB,WAAW,CAAC,SAAS,IAAI,KAAK,UAAU,CAAC,MAAM,GAAmB,KAAK,UAAU,UAAU,GAAc,SAAS,CAAC,EAAa,MAAmB,EAAK,QAAQ,CAAC,IAAI,GAAe,KAAK,OAAO,MAAM,EAAY,SAAS,GAAmB,UAAU,GAAc,YAAY,EAAa,YAAY,MAAM,GAAiB,aAAa,MAAM,CAAC,CAAc,EAAK,MAAM,CAAC,IAAI,GAAQ,MAAM,GAAiB,SAAS,GAAqB,OAAO,EAAe,EAAMI,GAAU,CAAC,SAAS,CAAC,GAAe,KAAK,EAAQ,IAAQ,CAAC,IAAM,EAAU,EAAa,EAAqG,OAAoB,EAAK,GAAW,CAAS,UAAQ,WAAnI,EAAQ,KAAK,EAA4I,cAAxG,IAAY,EAAwH,MAAM,EAAU,YAAY,GAAoB,EAAQ,GAAG,CAAC,iBAAiB,EAAoB,EAAU,CAAC,CAAC,UAAU,EAAQ,KAAK,EAAG,CAAC,GAAe,OAAO,GAAG,GAAkB,OAAO,GAAG,CAAC,EAAY,MAAM,EAAe,EAAK,MAAM,CAAC,MAAM,GAAe,CAAC,CAAC,GAAkB,KAAK,EAAQ,IAAQ,CAAC,IAAM,EAAU,GAAgB,EAAqG,OAAoB,EAAK,GAAW,CAAS,UAAQ,WAAnI,EAAQ,KAAK,EAA4I,cAAxG,IAAY,EAAwH,MAAM,EAAU,YAAY,GAAoB,EAAQ,GAAG,CAAC,iBAAiB,EAAoB,EAAU,CAAC,CAAC,aAAa,EAAQ,KAAK,EAAG,CAAC,CAAC,CAAC,CAAc,EAAK,MAAM,CAAC,MAAM,GAAe,SAAS,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,EAAK,EAAgB,CAAC,SAAS,GAAO,CAAC,GAAuB,EAAK,EAAO,IAAI,CAAC,GAAG,GAAQ,KAAK,QAAQ,QAAQ,CAAC,QAAQ,EAAE,EAAE,GAAG,OAAO,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,GAAG,OAAO,EAAE,CAAC,WAAW,CAAC,SAAS,GAAG,KAAK,UAAU,CAAC,MAAM,GAAkB,SAAS,EAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAFvuE,sEAxKP,IAAiE,KAAkD,IAAiE,IAA2G,CAIxW,EAAU,CAAC,CAAC,cAAc,KAAK,KAAK,cAAc,CAAC,CAAC,UAAU,KAAK,MAAM,cAAc,CAAC,CAAC,UAAU,KAAK,MAAM,eAAe,CAAC,CAAC,iBAAiB,KAAK,OAAO,CAAC,CAAC,UAAU,KAAK,MAAM,WAAW,CAAC,CAAC,SAAS,KAAK,MAAM,cAAc,CAAC,CAAC,WAAW,KAAK,OAAO,CAAC,CAAC,sBAAsB,KAAK,OAAO,CAAC,CAAC,YAAY,KAAK,KAAK,eAAe,CAAC,CAAC,UAAU,KAAK,MAAM,aAAa,CAAC,CAAC,QAAQ,KAAK,MAAM,WAAW,CAAC,CAAC,YAAY,KAAK,KAAK,cAAc,CAAC,CAAC,UAAU,KAAK,KAAK,aAAa,CAAC,CAAC,aAAa,KAAK,MAAM,eAAe,CAAC,CAAC,UAAU,KAAK,OAAO,CAAC,CAAC,UAAU,KAAK,MAAM,YAAY,CAAC,CAAC,aAAa,KAAK,MAAM,cAAc,CAAC,CAAC,WAAW,KAAK,OAAO,CAAC,CAAC,UAAU,KAAK,MAAM,eAAe,CAAC,CAAC,UAAU,KAAK,KAAK,eAAe,CAAC,CAAC,SAAS,KAAK,MAAM,WAAW,CAAC,CAAC,QAAQ,KAAK,MAAM,aAAa,CAAC,CAAC,UAAU,KAAK,OAAO,CAAC,CAAC,SAAS,KAAK,MAAM,cAAc,CAAC,CAAC,UAAU,KAAK,MAAM,aAAa,CAAC,CAAC,yBAAyB,KAAK,MAAM,aAAa,CAAC,CAAC,WAAW,KAAK,MAAM,aAAa,CAAC,CAAC,SAAS,KAAK,KAAK,kBAAkB,CAAC,CAAC,SAAS,KAAK,MAAM,WAAW,CAAC,CAAC,WAAW,KAAK,MAAM,cAAc,CAAC,CAAC,eAAe,KAAK,MAAM,cAAc,CAAC,CAAC,UAAU,KAAK,MAAM,cAAc,CAAC,CAAC,WAAW,KAAK,MAAM,aAAa,CAAC,CAAC,WAAW,KAAK,MAAM,gBAAgB,CAAC,CAAC,SAAS,KAAK,IAAI,iBAAiB,CAAC,CAAC,aAAa,KAAK,MAAM,YAAY,CAAC,CAAC,iBAAiB,KAAK,OAAO,CAAC,CAAC,2BAA2B,KAAK,MAAM,cAAc,CAAC,CAAC,OAAO,KAAK,MAAM,cAAc,CAAC,CAAC,QAAQ,KAAK,KAAK,cAAc,CAAC,CAAC,QAAQ,KAAK,KAAK,gBAAgB,CAAC,CAAC,WAAW,KAAK,KAAK,eAAe,CAAC,CAAC,UAAU,KAAK,MAAM,YAAY,CAAC,CAAC,QAAQ,KAAK,MAAM,cAAc,CAAC,CAAC,6BAA6B,KAAK,MAAM,cAAc,CAAC,CAAC,eAAe,KAAK,MAAM,CAAC,CAAC,aAAa,KAAK,MAAM,YAAY,CAAC,CAAC,UAAU,KAAK,MAAM,cAAc,CAAC,CAAC,OAAO,KAAK,KAAK,aAAa,CAAC,CAAC,UAAU,KAAK,MAAM,CAAC,CAAC,SAAS,KAAK,MAAM,YAAY,CAAC,CAAC,iBAAiB,KAAK,MAAM,cAAc,CAAC,CAAC,UAAU,KAAK,KAAK,cAAc,CAAC,CAAC,WAAW,KAAK,MAAM,cAAc,CAAC,CAAC,WAAW,KAAK,OAAO,CAAC,CAAC,qBAAqB,KAAK,OAAO,CAAC,CAAC,UAAU,KAAK,MAAM,cAAc,CAAC,CAAC,QAAQ,KAAK,KAAK,eAAe,CAAC,CAAC,cAAc,KAAK,MAAM,YAAY,CAAC,CAAC,oBAAoB,KAAK,MAAM,cAAc,CAAC,CAAC,UAAU,KAAK,MAAM,YAAY,CAAC,CAAC,UAAU,KAAK,MAAM,YAAY,CAAC,CAAC,WAAW,KAAK,MAAM,YAAY,CAAC,CAAC,WAAW,KAAK,MAAM,cAAc,CAAC,CAAC,mBAAmB,KAAK,MAAM,CAAC,CAAC,gBAAgB,KAAK,MAAM,SAAS,CAAC,CAAC,OAAO,KAAK,MAAM,WAAW,CAAC,CAAC,UAAU,KAAK,MAAM,eAAe,CAAC,CAAC,SAAS,KAAK,KAAK,gBAAgB,CAAC,CAAC,gBAAgB,KAAK,MAAM,CAAC,CAAC,mBAAmB,KAAK,MAAM,WAAW,CAAC,CAAC,QAAQ,KAAK,MAAM,aAAa,CAAC,CAAC,SAAS,KAAK,MAAM,WAAW,CAAC,CAAC,UAAU,KAAK,MAAM,eAAe,CAAC,CAAC,UAAU,KAAK,KAAK,cAAc,CAAC,CAAC,QAAQ,KAAK,MAAM,cAAc,CAAC,CAAC,YAAY,KAAK,MAAM,WAAW,CAAC,CAAC,SAAS,KAAK,KAAK,eAAe,CAAC,CAAC,YAAY,KAAK,MAAM,SAAS,CAAC,CAAC,UAAU,KAAK,OAAO,CAAC,CAAC,aAAa,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,YAAY,KAAK,MAAM,YAAY,CAAC,CAAC,WAAW,KAAK,KAAK,CAAC,CAAC,SAAS,KAAK,MAAM,eAAe,CAAC,CAAC,gBAAgB,KAAK,MAAM,WAAW,CAAC,CAAC,SAAS,KAAK,MAAM,WAAW,CAAC,CAAC,QAAQ,KAAK,MAAM,YAAY,CAAC,CAAC,WAAW,KAAK,MAAM,YAAY,CAAC,CAAC,YAAY,KAAK,MAAM,YAAY,CAAC,CAAC,UAAU,KAAK,KAAK,cAAc,CAAC,CAAC,UAAU,KAAK,MAAM,WAAW,CAAC,CAAC,QAAQ,KAAK,KAAK,cAAc,CAAC,CAAC,YAAY,KAAK,KAAK,gBAAgB,CAAC,CAAC,OAAO,KAAK,KAAK,eAAe,CAAC,CAAC,OAAO,KAAK,MAAM,eAAe,CAAC,CAAC,UAAU,KAAK,MAAM,cAAc,CAAC,CAAC,cAAc,KAAK,KAAK,CAAC,CAAC,SAAS,KAAK,MAAM,cAAc,CAAC,CAAC,QAAQ,KAAK,KAAK,eAAe,CAAC,CAAC,cAAc,KAAK,MAAM,iBAAiB,CAAC,CAAC,UAAU,KAAK,OAAO,CAAC,CAAC,QAAQ,KAAK,KAAK,eAAe,CAAC,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,SAAS,KAAK,MAAM,cAAc,CAAC,CAAC,aAAa,KAAK,IAAI,gBAAgB,CAAC,CAAC,QAAQ,KAAK,MAAM,aAAa,CAAC,CAAC,WAAW,KAAK,MAAM,CAAC,CAAC,SAAS,KAAK,MAAM,aAAa,CAAC,CAAC,SAAS,KAAK,MAAM,YAAY,CAAC,CAAC,aAAa,KAAK,MAAM,aAAa,CAAC,CAAC,OAAO,KAAK,MAAM,gBAAgB,CAAC,CAAC,SAAS,KAAK,MAAM,aAAa,CAAC,CAAC,UAAU,KAAK,MAAM,aAAa,CAAC,CAAC,UAAU,KAAK,MAAM,YAAY,CAAC,CAAC,UAAU,KAAK,MAAM,cAAc,CAAC,CAAC,QAAQ,KAAK,MAAM,aAAa,CAAC,CAAC,gBAAgB,KAAK,MAAM,cAAc,CAAC,CAAC,YAAY,KAAK,MAAM,YAAY,CAAC,CAAC,aAAa,KAAK,MAAM,cAAc,CAAC,CAAC,QAAQ,KAAK,MAAM,YAAY,CAAC,CAAC,aAAa,KAAK,MAAM,eAAe,CAAC,CAAC,SAAS,KAAK,MAAM,cAAc,CAAC,CAAC,WAAW,KAAK,KAAK,cAAc,CAAC,CAAC,WAAW,KAAK,MAAM,WAAW,CAAC,CAAC,OAAO,KAAK,MAAM,cAAc,CAAC,CAAC,QAAQ,KAAK,MAAM,YAAY,CAAC,CAAC,mBAAmB,KAAK,MAAM,CAAC,CAAC,aAAa,KAAK,MAAM,CAAC,CAAC,aAAa,KAAK,MAAM,cAAc,CAAC,CAAC,YAAY,KAAK,MAAM,YAAY,CAAC,CAAC,UAAU,KAAK,MAAM,CAAC,CAAC,SAAS,KAAK,KAAK,eAAe,CAAC,CAAC,aAAa,KAAK,MAAM,CAAC,CAAC,UAAU,KAAK,MAAM,YAAY,CAAC,CAAC,SAAS,KAAK,MAAM,cAAc,CAAC,CAAC,WAAW,KAAK,MAAM,aAAa,CAAC,CAAC,aAAa,KAAK,MAAM,aAAa,CAAC,CAAC,aAAa,KAAK,OAAO,CAAC,CAAC,UAAU,KAAK,MAAM,aAAa,CAAC,CAAC,aAAa,KAAK,MAAM,cAAc,CAAC,CAAC,UAAU,KAAK,KAAK,cAAc,CAAC,CAAC,UAAU,KAAK,MAAM,cAAc,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,QAAQ,KAAK,MAAM,cAAc,CAAC,CAAC,cAAc,KAAK,KAAK,aAAa,CAAC,CAAC,gBAAgB,KAAK,MAAM,CAAC,CAAC,cAAc,KAAK,KAAK,cAAc,CAAC,CAAC,YAAY,KAAK,MAAM,YAAY,CAAC,CAAC,QAAQ,KAAK,MAAM,cAAc,CAAC,CAAC,UAAU,KAAK,MAAM,eAAe,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,iBAAiB,KAAK,MAAM,CAAC,CAAC,cAAc,KAAK,MAAM,CAAC,CAAC,kBAAkB,KAAK,MAAM,aAAa,CAAC,CAAC,2BAA2B,KAAK,OAAO,CAAC,CAAC,SAAS,KAAK,KAAK,aAAa,CAAC,CAAC,OAAO,KAAK,MAAM,YAAY,CAAC,CAAC,WAAW,KAAK,KAAK,cAAc,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,YAAY,KAAK,MAAM,cAAc,CAAC,CAAC,SAAS,KAAK,MAAM,YAAY,CAAC,CAAC,mBAAmB,KAAK,MAAM,CAAC,CAAC,WAAW,KAAK,MAAM,aAAa,CAAC,CAAC,OAAO,KAAK,KAAK,cAAc,CAAC,CAAC,cAAc,KAAK,KAAK,eAAe,CAAC,CAAC,SAAS,KAAK,KAAK,cAAc,CAAC,CAAC,WAAW,KAAK,MAAM,cAAc,CAAC,CAAC,cAAc,KAAK,OAAO,CAAC,CAAC,QAAQ,KAAK,MAAM,YAAY,CAAC,CAAC,UAAU,KAAK,MAAM,CAAC,CAAC,UAAU,KAAK,KAAK,cAAc,CAAC,CAAC,SAAS,KAAK,IAAI,gBAAgB,CAAC,CAAC,SAAS,KAAK,MAAM,cAAc,CAAC,CAAC,wBAAwB,KAAK,OAAO,CAAC,CAAC,cAAc,KAAK,OAAO,CAAC,CAAC,mCAAmC,KAAK,OAAO,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,aAAa,KAAK,MAAM,CAAC,CAAC,wBAAwB,KAAK,MAAM,CAAC,CAAC,eAAe,KAAK,MAAM,cAAc,CAAC,CAAC,UAAU,KAAK,MAAM,eAAe,CAAC,CAAC,SAAS,KAAK,MAAM,cAAc,CAAC,CAAC,aAAa,KAAK,MAAM,YAAY,CAAC,CAAC,eAAe,KAAK,MAAM,YAAY,CAAC,CAAC,YAAY,KAAK,KAAK,YAAY,CAAC,CAAC,eAAe,KAAK,OAAO,CAAC,CAAC,WAAW,KAAK,MAAM,cAAc,CAAC,CAAC,WAAW,KAAK,MAAM,aAAa,CAAC,CAAC,kBAAkB,KAAK,MAAM,CAAC,CAAC,UAAU,KAAK,MAAM,aAAa,CAAC,CAAC,eAAe,KAAK,KAAK,cAAc,CAAC,CAAC,cAAc,KAAK,KAAK,eAAe,CAAC,CAAC,cAAc,KAAK,MAAM,cAAc,CAAC,CAAC,QAAQ,KAAK,KAAK,eAAe,CAAC,CAAC,YAAY,KAAK,KAAK,cAAc,CAAC,CAAC,QAAQ,KAAK,MAAM,cAAc,CAAC,CAAC,WAAW,KAAK,MAAM,WAAW,CAAC,CAAC,SAAS,KAAK,KAAK,eAAe,CAAC,CAAC,cAAc,KAAK,KAAK,eAAe,CAAC,CAAC,QAAQ,KAAK,MAAM,cAAc,CAAC,CAAC,SAAS,KAAK,MAAM,cAAc,CAAC,CAAC,aAAa,KAAK,MAAM,cAAc,CAAC,CAAC,WAAW,KAAK,MAAM,cAAc,CAAC,CAAC,WAAW,KAAK,KAAK,cAAc,CAAC,CAAC,cAAc,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,MAAM,cAAc,CAAC,CAAC,UAAU,KAAK,MAAM,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,sBAAsB,KAAK,OAAO,CAAC,CAAC,UAAU,KAAK,MAAM,aAAa,CAAC,CAAC,SAAS,KAAK,KAAK,gBAAgB,CAAC,CAAC,eAAe,KAAK,MAAM,YAAY,CAAC,CAAC,2BAA2B,KAAK,OAAO,CAAC,CAAC,SAAS,KAAK,MAAM,CAAC,CAAC,SAAS,KAAK,MAAM,cAAc,CAAC,CAAC,UAAU,KAAK,MAAM,eAAe,CAAC,CAAC,uBAAuB,KAAK,MAAM,cAAc,CAAC,CAAC,iBAAiB,KAAK,KAAK,cAAc,CAAC,CAAC,gBAAgB,KAAK,IAAI,iBAAiB,CAAC,CAAC,UAAU,KAAK,MAAM,cAAc,CAAC,CAAC,aAAa,KAAK,MAAM,eAAe,CAAC,CAAC,UAAU,KAAK,MAAM,CAAC,CAAC,eAAe,KAAK,MAAM,CAAC,CAAC,YAAY,KAAK,KAAK,cAAc,CAAC,CAAC,UAAU,KAAK,KAAK,cAAc,CAAC,CAAC,0BAA0B,KAAK,OAAO,CAAC,CAAC,uBAAuB,KAAK,OAAO,CAAC,CAAC,oBAAoB,KAAK,MAAM,CAAC,CAAC,QAAQ,KAAK,MAAM,cAAc,CAAC,CAAC,SAAS,KAAK,MAAM,aAAa,CAAC,CAAC,WAAW,KAAK,MAAM,cAAc,CAAC,CAe/9P,GAAW,CACjB,eAAe,KAAK,gBAAgB,KACpC,mBAAmB,KAAK,kBAAkB,KAAK,iBAAiB,KAAK,sBAAsB,KAAK,kBAAkB,KAAK,oBAAoB,KAAK,gBAAgB,KAAK,kBAAkB,KAAK,+BAA+B,KAAK,8BAA8B,KAAK,mBAAmB,KACtR,gBAAgB,KAChB,kBAAkB,KAAK,oBAAoB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,kBAAkB,KAAK,mBAAmB,KAAK,iBAAiB,KAChK,mBAAmB,KAAK,sBAAsB,KAAK,qBAAqB,KAAK,kBAAkB,KAAK,qBAAqB,KAAK,mBAAmB,KAAK,mBAAmB,KACzK,gBAAgB,KAChB,eAAe,KACf,aAAa,KACb,gBAAgB,KAAK,iBAAiB,KAAK,cAAc,KACzD,aAAa,KACb,oBAAoB,KAAK,qBAAqB,KAAK,iBAAiB,KAAK,gBAAgB,KAAK,oBAAoB,KAAK,iBAAiB,KACxI,gBAAgB,KAAK,qBAAqB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,gBAAgB,KAC/G,sBAAsB,KAAK,iBAAiB,KAAK,kBAAkB,KACnE,cAAc,KACd,gBAAgB,KAChB,mBAAmB,KACnB,kBAAkB,KAClB,gBAAgB,KAChB,gBAAgB,KAChB,mBAAmB,KACnB,cAAc,KACd,oBAAoB,KACpB,kBAAkB,KAClB,gBAAgB,KAChB,gBAAgB,KAChB,gBAAgB,KAChB,gBAAgB,KAChB,gBAAgB,KAChB,kBAAkB,KAClB,cAAc,KACd,aAAa,KACb,iBAAiB,KACjB,eAAe,KACf,aAAa,KACb,eAAe,KACf,iBAAiB,KACjB,eAAe,KACf,mBAAmB,KACnB,eAAe,KAAK,gBAAgB,KAAK,gBAAgB,KACzD,oBAAoB,KACpB,iBAAiB,KACjB,cAAc,KACd,cAAc,KACd,iBAAiB,KACjB,mBAAmB,KACnB,sBAAsB,KACtB,eAAe,KACf,eAAe,KACf,iBAAiB,KACjB,iCAAiC,KACjC,iBAAiB,KACjB,mBAAmB,KACnB,eAAe,KACf,cAAc,KAAK,cAAc,KACjC,mBAAmB,KACnB,kBAAkB,KAClB,aAAa,KACb,cAAc,KACd,cAAc,KACd,eAAe,KACf,aAAa,KACb,cAAc,KACd,eAAe,KACf,cAAc,KACd,oBAAoB,KACpB,eAAe,KACf,eAAe,KACf,qBAAqB,KACrB,uBAAuB,KACvB,cAAc,KACd,kBAAkB,KAAK,CAMnB,EAAY,KAAe,IAAS,SAAa,EAAY,IAA0B,EAGrF,GAAqB,CAAC,eAAe,KAAK,cAAc,GAAK,aAAa,GAAG,UAAU,GAAK,aAAa,GAAK,gBAAgB,uBAAuB,aAAa,GAAK,qBAAqB,GAAM,CAAO,GAAmB,CAAC,gBAAgB,GAAG,UAAU,EAAE,iBAAiB,GAAG,UAAU,GAAG,iBAAiB,GAAG,CAAO,GAAc,CAAC,KAAK,GAAK,aAAa,IAAI,KAAK,CAAC,SAAS,GAAG,WAAW,MAAM,WAAW,QAAQ,CAAC,MAAM,UAAU,CAAO,GAAe,CAAC,UAAU,WAAW,IAAI,EAAE,WAAW,IAAI,CAAO,GAAoB,CAAC,KAAK,CAAC,SAAS,GAAG,WAAW,IAAI,CAAC,MAAM,UAAU,iBAAiB,UAAU,WAAW,yBAAyB,QAAQ,sBAAsB,OAAO,CAAC,YAAY,EAAE,YAAY,QAAQ,YAAY,mBAAmB,CAAC,OAAO,OAAO,OAAO,GAAG,OAAO,GAAG,CAAO,GAAuB,CAAC,WAAW,cAAc,QAAQ,OAAO,aAAa,kBAAkB,aAAa,EAAE,CAAO,GAAuB,CAAC,WAAW,UAAU,OAAO,CAAC,YAAY,EAAE,YAAY,QAAQ,YAAY,UAAU,CAAC,OAAO,MAAM,OAAO,8BAA8B,UAAU,IAAI,QAAQ,EAAE,QAAQ,MAAM,CAAO,GAAqB,CAAC,KAAK,CAAC,SAAS,GAAG,WAAW,IAAI,CAAC,MAAM,UAAU,WAAW,cAAc,WAAW,UAAU,gBAAgB,UAAU,cAAc,UAAU,mBAAmB,UAAU,QAAQ,OAAO,OAAO,MAAM,CAAO,GAAe,CAAC,KAAK,GAAK,YAAY,sBAAsB,KAAK,CAAC,SAAS,GAAG,WAAW,IAAI,CAAC,MAAM,UAAU,WAAW,UAAU,OAAO,CAAC,YAAY,EAAE,YAAY,QAAQ,YAAY,UAAU,CAAC,OAAO,MAAM,QAAQ,OAAO,CAAO,GAAoB,CAAC,WAAW,UAAU,YAAY,UAAU,MAAM,UAAU,CAAO,GAAoB,CAAC,YAAY,UAAU,OAAO,GAAG,MAAM,EAAE,CAAO,GAAoB,CAAC,MAAM,UAAU,KAAK,CAAC,SAAS,GAAG,WAAW,IAAI,CAAC,CAuE8jB,EAAmB,YAAY,eAAe,EAAmB,aAAa,CAAC,KAAK,QAAQ,UAAU,eAAe,YAAY,GAAG,SAAS,GAAM,WAAW,EAAE,CAAC,YAAY,GAAqB,WAAW,GAAmB,MAAM,GAAc,OAAO,GAAe,WAAW,GAAoB,cAAc,GAAuB,cAAc,GAAuB,YAAY,GAAqB,OAAO,GAAe,WAAW,GAAoB,WAAW,GAAoB,WAAW,GAAoB,MAAM,GAAG,MAAM,EAAE,CAAC,CAGx1F,EAAoB,EAAmB,CAAC,KAAK,CAAC,KAAK,EAAY,OAAO,MAAM,aAAa,aAAa,QAAQ,YAAY,2CAA2C,CAAC,UAAU,CAAC,KAAK,EAAY,OAAO,MAAM,aAAa,aAAa,eAAe,CAAC,YAAY,CAAC,KAAK,EAAY,OAAO,MAAM,cAAc,aAAa,GAAG,YAAY,oDAAoD,CAAC,SAAS,CAAC,KAAK,EAAY,QAAQ,MAAM,WAAW,aAAa,GAAM,aAAa,MAAM,cAAc,KAAK,CAAC,YAAY,CAAC,KAAK,EAAY,OAAO,MAAM,iBAAiB,SAAS,CAAC,eAAe,CAAC,KAAK,EAAY,OAAO,MAAM,kBAAkB,aAAa,KAAK,YAAY,oFAAoF,CAAC,cAAc,CAAC,KAAK,EAAY,QAAQ,MAAM,sBAAsB,aAAa,GAAK,aAAa,KAAK,cAAc,MAAM,YAAY,oHAAoH,CAAC,aAAa,CAAC,KAAK,EAAY,OAAO,MAAM,iBAAiB,aAAa,GAAG,YAAY,mCAAmC,YAAY,0FAA0F,OAAO,EAAM,CAAC,OAAO,EAAM,gBAAgB,IAAQ,CAAC,UAAU,CAAC,KAAK,EAAY,QAAQ,MAAM,aAAa,aAAa,GAAK,aAAa,OAAO,cAAc,OAAO,CAAC,aAAa,CAAC,KAAK,EAAY,QAAQ,MAAM,iBAAiB,aAAa,GAAK,aAAa,OAAO,cAAc,OAAO,CAAC,gBAAgB,CAAC,KAAK,EAAY,OAAO,MAAM,mBAAmB,aAAa,uBAAuB,YAAY,uDAAuD,CAAC,aAAa,CAAC,KAAK,EAAY,QAAQ,MAAM,gBAAgB,aAAa,GAAK,aAAa,KAAK,cAAc,MAAM,YAAY,qDAAqD,CAAC,qBAAqB,CAAC,KAAK,EAAY,QAAQ,MAAM,iBAAiB,aAAa,GAAM,aAAa,KAAK,cAAc,MAAM,YAAY,2JAA2J,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,EAAY,OAAO,MAAM,aAAa,SAAS,CAAC,gBAAgB,CAAC,KAAK,EAAY,OAAO,MAAM,iBAAiB,aAAa,GAAG,YAAY,4DAA4D,CAAC,UAAU,CAAC,KAAK,EAAY,OAAO,MAAM,aAAa,aAAa,EAAE,IAAI,EAAE,KAAK,EAAE,eAAe,GAAK,CAAC,iBAAiB,CAAC,KAAK,EAAY,OAAO,MAAM,YAAY,aAAa,GAAG,YAAY,uEAAuE,OAAO,EAAM,CAAC,MAAM,CAAC,EAAM,WAAW,EAAM,YAAY,GAAI,CAAC,UAAU,CAAC,KAAK,EAAY,OAAO,MAAM,aAAa,aAAa,EAAE,IAAI,EAAE,KAAK,EAAE,eAAe,GAAK,CAAC,iBAAiB,CAAC,KAAK,EAAY,OAAO,MAAM,YAAY,aAAa,GAAG,YAAY,uEAAuE,OAAO,EAAM,CAAC,MAAM,CAAC,EAAM,WAAW,EAAM,YAAY,GAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAY,OAAO,MAAM,cAAc,SAAS,CAAC,KAAK,CAAC,KAAK,EAAY,QAAQ,MAAM,aAAa,aAAa,GAAK,aAAa,OAAO,cAAc,OAAO,CAAC,aAAa,CAAC,KAAK,EAAY,OAAO,MAAM,gBAAgB,aAAa,IAAI,OAAO,EAAM,CAAC,OAAO,EAAM,OAAO,IAAQ,CAAC,KAAK,CAAC,KAAK,EAAY,KAAK,MAAM,aAAa,SAAS,QAAQ,gBAAgB,GAAK,gBAAgB,aAAa,aAAa,CAAC,SAAS,GAAG,WAAW,MAAM,WAAW,QAAQ,CAAC,OAAO,EAAM,CAAC,OAAO,EAAM,OAAO,IAAQ,CAAC,MAAM,CAAC,KAAK,EAAY,MAAM,MAAM,cAAc,aAAa,UAAU,OAAO,EAAM,CAAC,OAAO,EAAM,OAAO,IAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAY,OAAO,MAAM,SAAS,SAAS,CAAC,UAAU,CAAC,KAAK,EAAY,KAAK,MAAM,YAAY,aAAa,WAAW,QAAQ,CAAC,WAAW,aAAa,CAAC,aAAa,CAAC,WAAW,aAAa,CAAC,YAAY,CAAC,qBAAqB,uBAAuB,CAAC,wBAAwB,GAAK,CAAC,IAAI,CAAC,KAAK,EAAY,OAAO,MAAM,MAAM,aAAa,EAAE,IAAI,EAAE,IAAI,GAAG,KAAK,EAAE,KAAK,KAAK,CAAC,WAAW,CAAC,KAAK,EAAY,OAAO,MAAM,cAAc,aAAa,IAAI,IAAI,GAAG,IAAI,IAAI,KAAK,EAAE,KAAK,KAAK,OAAO,EAAM,CAAC,OAAO,EAAM,YAAY,cAAe,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,EAAY,OAAO,MAAM,cAAc,SAAS,CAAC,OAAO,CAAC,KAAK,EAAY,OAAO,MAAM,SAAS,aAAa,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,EAAE,KAAK,KAAK,CAAC,KAAK,CAAC,KAAK,EAAY,KAAK,MAAM,OAAO,SAAS,QAAQ,gBAAgB,GAAK,gBAAgB,aAAa,aAAa,CAAC,SAAS,GAAG,WAAW,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,EAAY,MAAM,MAAM,aAAa,aAAa,UAAU,CAAC,iBAAiB,CAAC,KAAK,EAAY,MAAM,MAAM,cAAc,aAAa,UAAU,CAAC,WAAW,CAAC,KAAK,EAAY,MAAM,MAAM,aAAa,aAAa,yBAAyB,CAAC,QAAQ,CAAC,KAAK,EAAY,QAAQ,MAAM,UAAU,aAAa,sBAAsB,CAAC,OAAO,CAAC,KAAK,EAAY,OAAO,MAAM,SAAS,aAAa,CAAC,YAAY,EAAE,YAAY,QAAQ,YAAY,mBAAmB,CAAC,CAAC,OAAO,CAAC,KAAK,EAAY,aAAa,MAAM,SAAS,aAAa,OAAO,CAAC,OAAO,CAAC,KAAK,EAAY,UAAU,MAAM,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,EAAY,OAAO,MAAM,iBAAiB,SAAS,CAAC,WAAW,CAAC,KAAK,EAAY,MAAM,MAAM,aAAa,aAAa,cAAc,CAAC,QAAQ,CAAC,KAAK,EAAY,QAAQ,MAAM,UAAU,aAAa,eAAe,CAAC,aAAa,CAAC,KAAK,EAAY,MAAM,MAAM,gBAAgB,aAAa,kBAAkB,CAAC,aAAa,CAAC,KAAK,EAAY,OAAO,MAAM,gBAAgB,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,EAAY,OAAO,MAAM,iBAAiB,SAAS,CAAC,WAAW,CAAC,KAAK,EAAY,MAAM,MAAM,aAAa,aAAa,UAAU,CAAC,OAAO,CAAC,KAAK,EAAY,OAAO,MAAM,SAAS,aAAa,CAAC,YAAY,EAAE,YAAY,QAAQ,YAAY,UAAU,CAAC,CAAC,OAAO,CAAC,KAAK,EAAY,aAAa,MAAM,SAAS,aAAa,MAAM,CAAC,OAAO,CAAC,KAAK,EAAY,UAAU,MAAM,SAAS,aAAa,8BAA8B,CAAC,UAAU,CAAC,KAAK,EAAY,OAAO,MAAM,aAAa,aAAa,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,GAAG,KAAK,KAAK,YAAY,mCAAmC,CAAC,QAAQ,CAAC,KAAK,EAAY,OAAO,MAAM,WAAW,aAAa,EAAE,IAAI,EAAE,IAAI,GAAG,KAAK,EAAE,KAAK,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAY,QAAQ,MAAM,UAAU,aAAa,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,EAAY,OAAO,MAAM,eAAe,SAAS,CAAC,KAAK,CAAC,KAAK,EAAY,KAAK,MAAM,OAAO,SAAS,QAAQ,gBAAgB,GAAK,gBAAgB,aAAa,aAAa,CAAC,SAAS,GAAG,WAAW,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,EAAY,MAAM,MAAM,aAAa,aAAa,UAAU,CAAC,WAAW,CAAC,KAAK,EAAY,MAAM,MAAM,aAAa,aAAa,cAAc,CAAC,WAAW,CAAC,KAAK,EAAY,MAAM,MAAM,aAAa,aAAa,UAAU,CAAC,gBAAgB,CAAC,KAAK,EAAY,MAAM,MAAM,WAAW,aAAa,UAAU,CAAC,cAAc,CAAC,KAAK,EAAY,MAAM,MAAM,gBAAgB,aAAa,UAAU,CAAC,mBAAmB,CAAC,KAAK,EAAY,MAAM,MAAM,cAAc,aAAa,UAAU,CAAC,QAAQ,CAAC,KAAK,EAAY,QAAQ,MAAM,UAAU,aAAa,OAAO,CAAC,OAAO,CAAC,KAAK,EAAY,aAAa,MAAM,SAAS,aAAa,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAY,OAAO,MAAM,eAAe,SAAS,CAAC,KAAK,CAAC,KAAK,EAAY,QAAQ,MAAM,cAAc,aAAa,GAAK,aAAa,OAAO,cAAc,OAAO,CAAC,YAAY,CAAC,KAAK,EAAY,OAAO,MAAM,cAAc,aAAa,sBAAsB,OAAO,EAAM,CAAC,OAAO,EAAM,OAAO,IAAQ,CAAC,KAAK,CAAC,KAAK,EAAY,KAAK,MAAM,OAAO,SAAS,QAAQ,gBAAgB,GAAK,gBAAgB,aAAa,aAAa,CAAC,SAAS,GAAG,WAAW,IAAI,CAAC,OAAO,EAAM,CAAC,OAAO,EAAM,OAAO,IAAQ,CAAC,MAAM,CAAC,KAAK,EAAY,MAAM,MAAM,aAAa,aAAa,UAAU,OAAO,EAAM,CAAC,OAAO,EAAM,OAAO,IAAQ,CAAC,WAAW,CAAC,KAAK,EAAY,MAAM,MAAM,aAAa,aAAa,UAAU,OAAO,EAAM,CAAC,OAAO,EAAM,OAAO,IAAQ,CAAC,OAAO,CAAC,KAAK,EAAY,OAAO,MAAM,SAAS,aAAa,CAAC,YAAY,EAAE,YAAY,QAAQ,YAAY,UAAU,CAAC,OAAO,EAAM,CAAC,OAAO,EAAM,OAAO,IAAQ,CAAC,OAAO,CAAC,KAAK,EAAY,aAAa,MAAM,SAAS,aAAa,MAAM,OAAO,EAAM,CAAC,OAAO,EAAM,OAAO,IAAQ,CAAC,QAAQ,CAAC,KAAK,EAAY,QAAQ,MAAM,UAAU,aAAa,OAAO,OAAO,EAAM,CAAC,OAAO,EAAM,OAAO,IAAQ,CAAC,CAAC,CAwB9kQ,WAAW,CAAC,KAAK,EAAY,OAAO,MAAM,cAAc,SAAS,CAAC,YAAY,CAAC,KAAK,EAAY,MAAM,MAAM,SAAS,aAAa,UAAU,CAAC,OAAO,CAAC,KAAK,EAAY,UAAU,MAAM,SAAS,CAAC,MAAM,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,aAAa,EAAE,IAAI,EAAE,IAAI,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,EAAY,OAAO,MAAM,cAAc,YAAY,gEAAgE,SAAS,CAAC,MAAM,CAAC,KAAK,EAAY,MAAM,MAAM,QAAQ,aAAa,UAAU,CAAC,KAAK,CAAC,KAAK,EAAY,KAAK,MAAM,OAAO,SAAS,QAAQ,gBAAgB,GAAK,gBAAgB,aAAa,aAAa,CAAC,SAAS,GAAG,WAAW,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAwB,MAAM,CAAC,KAAK,EAAY,OAAO,aAAa,GAAG,QAAQ,CAAC,MAAO,IAAO,CAAC,CAAC,IC9LnuB,eAAe,GAAe,EAAK,CAAC,IAAM,EAAG,OAAO,gBAAgB,IAAI,WAAW,GAAG,CAAC,CAAO,EAAS,IAAI,WAAW,GAAgB,MAAM,QAAQ,CAAC,IAAI,GAAG,SAAS,EAAE,GAAG,CAAC,CAAC,CAAO,EAAU,MAAM,OAAO,OAAO,UAAU,MAAM,EAAS,UAAU,GAAM,CAAC,UAAU,CAAC,CAAO,EAAQ,IAAI,aAAa,CAAC,OAAO,KAAK,UAAU,EAAK,CAAC,CAAO,EAAU,MAAM,OAAO,OAAO,QAAQ,CAAC,KAAK,UAAU,KAAG,CAAC,EAAU,EAAQ,CACnZ,EAAO,IAAI,WAAW,EAAG,OAAO,EAAU,WAAW,CAAC,EAAO,IAAI,EAAG,EAAE,CAAC,EAAO,IAAI,IAAI,WAAW,EAAU,CAAC,EAAG,OAAO,CAC5H,IAAI,EAAO,GAAG,IAAI,IAAI,EAAE,EAAE,EAAE,EAAO,OAAO,IAAK,GAAQ,OAAO,aAAa,EAAO,GAAG,CAAE,OAAO,KAAK,EAAO,CAG1G,SAAS,IAAgB,CAAC,OAAoB,EAAM,MAAM,CAAC,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,OAAO,SAAS,CAAc,EAAK,OAAO,CAAC,MAAM,KAAK,OAAO,KAAK,GAAG,KAAK,KAAK,UAAU,YAAY,MAAM,CAAC,CAAc,EAAK,IAAI,CAAC,SAAS,wBAAwB,SAAsB,EAAK,OAAO,CAAC,EAAE,i0CAAi0C,KAAK,UAAU,UAAU,iBAAiB,CAAC,CAAC,CAAC,CAAc,EAAK,OAAO,CAAC,SAAsB,EAAK,WAAW,CAAC,GAAG,kBAAkB,SAAsB,EAAK,OAAO,CAAC,MAAM,KAAK,OAAO,KAAK,KAAK,QAAQ,UAAU,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,SAAS,GAAW,CAAC,aAAW,CAAqd,OAAjd,EAA+B,EAAM,MAAM,CAAC,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,OAAO,SAAS,CAAc,EAAK,OAAO,CAAC,EAAE,oHAAoH,OAAO,UAAU,YAAY,IAAI,cAAc,QAAQ,eAAe,QAAQ,CAAC,CAAc,EAAK,OAAO,CAAC,EAAE,oBAAoB,OAAO,UAAU,YAAY,IAAI,cAAc,QAAQ,eAAe,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAsB,EAAM,MAAM,CAAC,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,OAAO,SAAS,CAAc,EAAK,OAAO,CAAC,EAAE,oHAAoH,OAAO,UAAU,YAAY,IAAI,cAAc,QAAQ,eAAe,QAAQ,CAAC,CAAc,EAAK,OAAO,CAAC,EAAE,YAAY,OAAO,UAAU,YAAY,IAAI,cAAc,QAAQ,eAAe,QAAQ,CAAC,CAAc,EAAK,OAAO,CAAC,EAAE,cAAc,OAAO,UAAU,YAAY,IAAI,cAAc,QAAQ,eAAe,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAE,SAAS,GAAY,CAAC,aAAW,SAAO,CAAiJ,OAAoB,EAAM,MAAM,CAAC,MAAM,CAAC,QAAQ,OAAO,WAAW,SAAS,IAAI,OAAO,QAAQ,YAAY,WAAW,UAAU,OAAO,aAAa,EAAM,uBAAuB,qBAAqB,aAAa,OAAO,WAAW,uCAAuC,WAAW,OAAO,UAAU,6BAA6B,CAAC,SAAS,CAAc,EAAK,GAAe,EAAE,CAAC,CAAc,EAAM,MAAM,CAAC,MAAM,CAAC,QAAQ,OAAO,cAAc,SAAS,IAAI,MAAM,KAAK,EAAE,SAAS,EAAE,CAAC,SAAS,CAAc,EAAK,OAAO,CAAC,MAAM,CAAC,SAAS,OAAO,WAAW,IAAI,MAAM,UAAU,WAAW,IAAI,CAAC,SAAS,aAAa,CAAC,CAAc,EAAK,OAAO,CAAC,MAAM,CAAC,SAAS,OAAO,WAAW,IAAI,MAAzsB,EAAM,UAAU,EAAW,UAAU,UAAwrB,WAAW,IAAI,CAAC,SAA/zB,IAAY,EAAW,qBAAqB,mBAAqyB,CAAC,CAAC,CAAC,CAAC,CAAc,EAAK,GAAW,CAAC,UAAU,GAAY,CAAC,EAAM,CAAC,CAAC,CAAC,CAAC,CAS71H,SAAwB,EAA6B,EAAM,CAAC,GAAK,CAAC,YAAU,eAAa,QAAM,SAAO,EAAY,EAAO,CAAC,GAAG,GAAmB,GAAG,GAAW,EAAE,CAAC,CAAO,EAAU,CAAC,GAAG,EAAsB,GAAG,GAAc,EAAE,CAAC,CAAO,EAAS,GAAa,SAAS,GAAG,GAAa,OAAa,GAAaC,EAAO,KAAK,CAAO,EAAQA,EAAO,KAAK,CAAO,EAAWA,EAAO,GAAM,CAAM,CAAC,EAAO,GAAWC,EAAS,OAAO,CAAM,CAAC,GAAc,GAAkBA,EAAS,GAAG,CAAM,CAAC,GAAU,GAAcA,EAAS,GAAM,CAAO,EAAWC,MAAY,CAAC,GAAG,CAAC,EAAM,OAAO,KAAK,GAAG,CAAC,OAAO,KAAK,MAAM,EAAM,MAAO,CAAC,OAAO,OAAQ,CAAC,EAAM,CAAC,CAAO,EAAO,GAAY,OAAa,EAAU,GAAY,UAChrB,MAAc,CAAC,GAAG,CAAC,EAAO,OAAO,CAAC,EAAa,GAAM,CAAC,OAAW,CAAC,GAAQ,CAAC,GAAiB,MAAM,GAAG,GAAS,+BAA+B,CAAC,OAAO,OAAO,QAAQ,CAAC,eAAe,mBAAmB,CAAC,KAAK,KAAK,UAAU,CAAC,oBAAoB,EAAO,kBAAkB,EAAU,eAAe,EAAO,OAAO,gBAAgB,GAAY,aAAa,YAAY,GAAG,gBAAgB,GAAY,aAAa,SAAS,GAAG,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,KAAM,IAAK,CAAC,IAAM,EAAK,MAAM,EAAI,MAAM,CAAI,EAAI,KAAK,EAAK,SAAS,IAAM,EAAK,UAAU,KAAQ,EAAa,GAAK,CAAC,EAAU,UAAU,CAAC,EAAiB,qBAAqB,GAAO,EAAa,GAAM,CAAC,EAAU,QAAQ,CAAC,EAAiB,EAAK,SAAS,EAAK,QAAQ,IAAI,eAAe,GAAI,CAAC,UAAU,CAAC,EAAa,GAAM,CAAC,EAAU,QAAQ,CAAC,EAAiB,mBAAmB,EAAG,EAAG,CAAC,EAAO,OAAO,EAAO,EAAU,CAAC,CACj1B,IAAM,EAAeC,MAAgB,CAAC,IAAI,EAAG,GAAa,QAAQ,KAAM,GAAG,CAAC,GAAG,EAAG,UAAU,OAAO,OAAO,EAAG,EAAG,EAAG,cAAe,OAAO,MAAO,EAAE,CAAC,CAC7I,EAAaA,EAAY,GAAM,CAAC,IAAM,EAAS,IAAI,SAAS,EAAK,CAAO,EAAQ,EAAE,CAAC,EAAS,SAAS,EAAI,IAAM,CAAI,OAAO,GAAM,WAAS,EAAQ,GAAK,IAAM,CAAC,IAAI,EAAM,GAAS,EAAW,EAAE,CAAO,EAAS,EAAU,UAAU,EAAE,CAAC,IAAI,IAAM,KAAW,EAAS,CAAC,IAAM,EAAU,EAAQ,eAAe,MAAM,CAAO,EAAQ,EAAQ,iBAAiB,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,GAAW,CAAC,EAAQ,SAC3Y,IAAI,EAAU,GAAG,IAAI,GAAK,CAAC,EAAI,KAAS,OAAO,QAAQ,EAAQ,CAAE,GAAG,EAAI,aAAa,GAAG,EAAU,aAAa,CAAC,CAAC,EAAU,EAAM,MAAY,IAAsB,IAAU,QAAS,EAAM,EAAgB,EAAW,GAAS,GAAY,GAAG,CAAC,EAAM,OAAO,KAG7P,IAAM,GAAe,EAAO,UAAU,EAAE,EAAE,IAAI,GAAG,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,OAAO,QAAQ,CAAC,MAAM,CAAC,oBAAoB,GAAQ,GAAG,kBAAkB,GAAW,GAAG,QAAM,WAAW,OAAO,KAAK,EAAW,CAAC,OAAO,EAAE,EAAW,IAAA,GAAU,OAAO,CAAC,cAAc,EAAO,cAAc,GAAG,EAAc,OAAO,EAAE,CAAC,SAAS,EAAc,CAAC,EAAE,CAAC,CAAC,EAAG,CAAC,EAAU,SAAS,EAAO,EAAU,EAAO,cAAc,EAAO,SAAS,CAAC,CAC1Y,GAAaA,EAAY,SAAS,CACX,GAA1B,EAAW,SAAkB,CAAC,GAAU,OAAO,IAAM,EAAK,EAAQ,QAAQ,GAAG,CAAC,EAAK,OAAO,EAAW,QAAQ,GAAK,IAAM,EAAQ,EAAa,EAAK,CAAC,GAAG,CAAC,EAAQ,CAAC,EAAU,QAAQ,CAAC,EAAiB,wBAAwB,CAAC,EAAW,QAAQ,GAAM,OAAQ,EAAU,UAAU,CAAC,EAAiB,GAAG,CAC1S,IAAM,EAAU,MAAM,GAAe,EAAQ,CAE7C,GAAG,CAAC,IAAM,EAAS,MAAM,MAAM,GAAG,GAAS,6BAA6B,CAAC,OAAO,OAAO,UAAU,GAAK,QAAQ,CAAC,eAAe,mBAAmB,CAAC,KAAK,KAAK,UAAU,CAAC,KAAK,EAAU,CAAC,CAAC,CAAC,CAAO,EAAK,MAAM,EAAS,MAAM,CAAC,WAAW,CAAC,OAAO,GAAM,QAAQ,gBAAgB,EAAE,CAAI,EAAK,SAAS,IAAM,EAAU,UAAU,CAAC,EAAiB,oBAAoB,GAAO,EAAU,QAAQ,CAAC,EAAiB,EAAK,SAAS,SAAS,EAAS,SAAS,QAAS,EAAI,CAAC,GAAG,aAAe,WAAW,EAAI,QAAQ,SAAS,QAAQ,CAAC,CAAC,EAAW,QAAQ,GAAM,OAAQ,EAAU,QAAQ,CAAC,EAAiB,gBAAgB,QAAS,CAAC,EAAW,QAAQ,KAAS,CAAC,GAAU,EAAa,CAAC,CAClpB,MAAc,CAAC,GAAG,EAAS,OAAO,IAAM,EAAK,GAAgB,CAAsB,GAArB,EAAQ,QAAQ,EAAQ,CAAC,EAAK,OAAO,IAAM,EAAU,GAAG,CAAC,GAAG,EAAE,MAAM,SAAS,EAAE,SAAS,OAAO,IAAM,EAAI,EAAE,QAAQ,QAAW,IAAM,YAAY,IAAM,UAAgB,IAAc,EAA2F,OAAxF,EAAK,iBAAiB,SAAS,GAAa,CAAC,EAAK,iBAAiB,UAAU,EAAU,KAAW,CAAC,EAAK,oBAAoB,SAAS,GAAa,CAAC,EAAK,oBAAoB,UAAU,EAAU,GAAK,CAAC,EAAS,EAAe,GAAa,CAAC,CACje,MAAc,CAAC,GAAG,IAAS,WAAW,IAAS,QAAQ,CACvD,GAAG,GAAU,IAAS,QAAQ,OAAO,IAAM,EAAM,eAAe,CAAC,EAAU,OAAO,CAAC,EAAiB,GAAG,EAAG,IAAI,CAAC,UAAU,aAAa,EAAM,GAAI,CAAC,EAAO,EAAS,CAAC,CAClK,IAAM,EAAe,CAAC,SAAS,WAAW,MAAM,OAAO,GAAG,EAAM,CAChE,OADoE,EAA8B,EAAK,MAAM,CAAC,MAAM,EAAe,SAAsB,EAAK,GAAY,CAAC,WAAW,GAAU,MAAM,IAAS,QAAQ,GAAc,IAAA,GAAU,CAAC,CAAC,CAAC,CAC9N,EAAMC,GAAU,CAAC,SAAS,CAAc,EAAK,QAAQ,CAAC,SAAS,6DAA6D,CAAC,CAAc,EAAK,MAAM,CAAC,IAAI,GAAa,UAAU,8BAA8B,MAAM,EAAe,CAAC,CAAC,CAAC,CAAC,8BAtC9K,IAAiE,IAAiE,CAG3M,GAAmB,CAAC,OAAO,GAAG,cAAc,GAAK,SAAS,EAAE,CAAC,CAAO,EAAsB,CAAC,SAAS,CAAC,CAAC,cAAc,QAAQ,gBAAgB,QAAQ,CAAC,CAAC,CAAO,GAAS,4CACtK,GAAgB,mEAkCyO,EAA6B,YAAY,yBAAyB,EAA6B,aAAa,CAAC,UAAU,GAAmB,aAAa,EAAsB,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC,EAAoB,EAA6B,CAGhf,UAAU,CAAC,KAAK,EAAY,OAAO,MAAM,eAAe,SAAS,CAAC,OAAO,CAAC,KAAK,EAAY,OAAO,MAAM,UAAU,aAAa,GAAG,YAAY,6BAA6B,SAAS,GAAK,CAAC,cAAc,CAAC,KAAK,EAAY,QAAQ,MAAM,kBAAkB,aAAa,GAAK,aAAa,MAAM,cAAc,KAAK,YAAY,uDAAuD,CAAC,SAAS,CAAC,KAAK,EAAY,MAAM,MAAM,SAAS,YAAY,6IAA8I,aAAa,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAY,OAAO,YAAY,0BAA0B,CAAC,CAAC,CAAC,CAG1pB,aAAa,CAAC,KAAK,EAAY,OAAO,MAAM,iBAAiB,SAAS,CAAC,SAAS,CAAC,KAAK,EAAY,MAAM,MAAM,WAAW,YAAY,uFAAuF,aAAa,CAAC,CAAC,cAAc,QAAQ,gBAAgB,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAY,OAAO,SAAS,CAAC,cAAc,CAAC,KAAK,EAAY,OAAO,MAAM,aAAa,aAAa,GAAG,YAAY,yCAAyC,CAAC,gBAAgB,CAAC,KAAK,EAAY,OAAO,MAAM,WAAW,aAAa,GAAG,YAAY,gEAAgE,CAAC,CAAC,CAAC,CAAC,CAAC,CAGjmB,MAAM,CAAC,KAAK,EAAY,OAAO,aAAa,GAAG,QAAQ,CAAC,MAAO,IAAO,CAAC,CAAC"}