{"version":3,"file":"PasswordGate.C3e5xtTD.mjs","names":["React.useState","React.useRef","React.useId","React.useCallback","_Fragment"],"sources":["https:/framerusercontent.com/modules/YA1ER7gkBio2OjTpUmr1/2SGGmPEyWKxHKfjieNSR/PasswordGate.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import*as React from\"react\";import{createPortal}from\"react-dom\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";// Only one live copy per storageKey may own the gate: Framer mounts\n// the component once per breakpoint replica, and stacked identical\n// overlays cause dead clicks (top copy swallows them).\nconst PG_ACTIVE={};/**\n * PasswordGate v8 — full-page side sheet that blocks a page until\n * the correct password is entered.\n *\n * All interaction is wired through NATIVE DOM listeners delegated on\n * the sheet element (not React synthetic events), because React\n * event delegation through portals has proven unreliable inside\n * Framer's runtime. Inputs are uncontrolled for the same reason.\n * React only paints state.\n *\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n */export default function PasswordGate(props){const{password=\"flu2023\",caseSensitive=false,storageKey=\"gp-gate\",title=\"Uh oh, this one's locked\",body=\"Client work lives behind this door, so it needs a password. If you're here, you probably have it already — if not, just drop me a message and I'll send it right over.\",inputLabel=\"Password\",placeholder=\"Enter password\",buttonLabel=\"Let me in\",errorMessage=\"Hmm, not quite. Give it another shot — typos happen.\",contactLabel=\"Message me\",contactTitle=\"Request access\",contactBody=\"Leave your details and I'll send the password over.\",contactMessage=\"Hi Gustavo — could you send me the password for your gated case studies?\",sendLabel=\"Send request\",successTitle=\"Request sent! ✓\",successBody=\"Thanks for reaching out — I'll send the password over soon.\",formEndpoint=\"https://formspree.io/f/xwvyvpbw\",closeLink=\"/\",zIndex=1e3,scrimColor=\"rgba(13, 13, 13, 0.55)\",sheetBackground=\"#FFFFFF\",textColor=\"#0D0D0D\",mutedColor=\"#505050\",borderColor=\"#DCDCDC\",accentColor=\"#0D0D0D\",accentTextColor=\"#FFFFFF\",errorColor=\"#C4320A\"}=props;const isCanvas=RenderTarget.current()===RenderTarget.canvas;const[unlocked,setUnlocked]=React.useState(false);const[active,setActive]=React.useState(false);const[view,setView]=React.useState(\"password\");const[showPassword,setShowPassword]=React.useState(false);const[error,setError]=React.useState(false);const[shake,setShake]=React.useState(false);const[cStatus,setCStatus]=React.useState(\"idle\");const sheetRef=React.useRef(null);const pwRef=React.useRef(null);const nameRef=React.useRef(null);const emailRef=React.useRef(null);const msgRef=React.useRef(null);const busyRef=React.useRef(false);const actionsRef=React.useRef({});const uid=React.useId();const normalize=React.useCallback(s=>{const trimmed=(s||\"\").trim();return caseSensitive?trimmed:trimmed.toLowerCase();},[caseSensitive]);// Claim the gate (singleton per storageKey), then restore a\n// previously unlocked session. Storing the validated password\n// means changing it in the Framer panel invalidates old sessions.\n// Both gated pages share the storageKey, so unlocking one unlocks\n// the other for the rest of the browser session (per tab).\nReact.useEffect(()=>{if(isCanvas)return;if(PG_ACTIVE[storageKey])return;PG_ACTIVE[storageKey]=true;try{const stored=window.sessionStorage.getItem(storageKey);if(stored!==null&&normalize(stored)===normalize(password)){setUnlocked(true);}}catch(e){}setActive(true);return()=>{delete PG_ACTIVE[storageKey];};},[isCanvas,storageKey,password,normalize]);// Lock background scroll while the gate is visible.\nReact.useEffect(()=>{if(isCanvas||!active||unlocked)return;const previous=document.body.style.overflow;document.body.style.overflow=\"hidden\";return()=>{document.body.style.overflow=previous;};},[isCanvas,active,unlocked]);// Focus follows the active view.\nReact.useEffect(()=>{if(isCanvas||!active||unlocked)return;const t=window.setTimeout(()=>{if(view===\"password\"&&pwRef.current)pwRef.current.focus();else if(view===\"contact\"&&nameRef.current)nameRef.current.focus();},380);return()=>window.clearTimeout(t);},[isCanvas,active,unlocked,view]);// ---- Actions (latest closures kept in a ref for native handlers)\nconst submitPassword=()=>{const el=pwRef.current;const typed=el?el.value:\"\";if(normalize(typed)===normalize(password)){try{window.sessionStorage.setItem(storageKey,typed.trim());}catch(e){}setError(false);setUnlocked(true);}else{setError(true);setShake(true);window.setTimeout(()=>setShake(false),500);if(el){el.focus();el.select();}}};const close=()=>{try{if(window.history.length>1){window.history.back();return;}}catch(e){}window.location.href=closeLink||\"/\";};const toggleShow=()=>setShowPassword(s=>!s);const openContactView=()=>{setCStatus(\"idle\");setView(\"contact\");};const backToPw=()=>setView(\"password\");const sendContact=async()=>{if(busyRef.current)return;const name=nameRef.current?nameRef.current.value.trim():\"\";const email=emailRef.current?emailRef.current.value.trim():\"\";const message=msgRef.current?msgRef.current.value.trim():\"\";if(!name){nameRef.current&&nameRef.current.focus();return;}if(!email){emailRef.current&&emailRef.current.focus();return;}if(!message){msgRef.current&&msgRef.current.focus();return;}busyRef.current=true;setCStatus(\"submitting\");try{const res=await fetch(formEndpoint,{method:\"POST\",headers:{\"Content-Type\":\"application/json\",Accept:\"application/json\"},body:JSON.stringify({name,email,message,reason:\"password_request\"})});const data=await res.json();setCStatus(res.ok&&data.ok?\"success\":\"error\");}catch(e){setCStatus(\"error\");}busyRef.current=false;};actionsRef.current={submitPassword,close,toggleShow,openContactView,backToPw,sendContact,view};// ---- Native, delegated interaction wiring (bypasses React\n// synthetic event delegation entirely).\nReact.useEffect(()=>{if(isCanvas||!active||unlocked)return;const el=sheetRef.current;if(!el)return;const onClick=e=>{const target=e.target;const btn=target.closest?target.closest(\"[data-pg]\"):null;if(!btn)return;e.preventDefault();e.stopPropagation();const a=actionsRef.current;switch(btn.getAttribute(\"data-pg\")){case\"close\":a.close();break;case\"show\":a.toggleShow();break;case\"unlock\":a.submitPassword();break;case\"contact\":a.openContactView();break;case\"back\":a.backToPw();break;case\"send\":a.sendContact();break;}};const onInput=e=>{if(e.target===pwRef.current)setError(false);};const onKey=e=>{const a=actionsRef.current;if(e.key===\"Enter\"&&e.target===pwRef.current){e.preventDefault();a.submitPassword();return;}if(e.key===\"Escape\"){e.preventDefault();if(a.view===\"contact\")a.backToPw();else a.close();return;}if(e.key===\"Tab\"){const focusables=el.querySelectorAll('input, button, textarea, select, a[href], [tabindex]:not([tabindex=\"-1\"])');if(focusables.length===0)return;const first=focusables[0];const last=focusables[focusables.length-1];if(e.shiftKey&&document.activeElement===first){e.preventDefault();last.focus();}else if(!e.shiftKey&&document.activeElement===last){e.preventDefault();first.focus();}}};el.addEventListener(\"click\",onClick,true);el.addEventListener(\"input\",onInput,true);el.addEventListener(\"keydown\",onKey,true);return()=>{el.removeEventListener(\"click\",onClick,true);el.removeEventListener(\"input\",onInput,true);el.removeEventListener(\"keydown\",onKey,true);};},[isCanvas,active,unlocked]);if(!isCanvas&&(unlocked||!active))return null;const bodyFont='\"Instrument Sans\", \"Instrument Sans Variable\", -apple-system, BlinkMacSystemFont, sans-serif';const fieldLabel={fontSize:12,fontWeight:600,letterSpacing:\"-0.01em\",color:\"#6E6E6E\",fontFamily:bodyFont,marginBottom:8};const fieldInput={width:\"100%\",padding:\"12px 16px\",fontSize:14,borderRadius:12,border:`1px solid ${borderColor}`,outline:\"none\",background:sheetBackground,color:textColor,boxSizing:\"border-box\",fontFamily:bodyFont};const passwordView=/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"h2\",{id:`${uid}-title`,style:{fontFamily:bodyFont,fontWeight:600,fontSize:40,lineHeight:1.15,letterSpacing:\"-0.01em\",margin:0,marginTop:24,marginBottom:12,color:textColor},children:title}),/*#__PURE__*/_jsx(\"p\",{id:`${uid}-body`,style:{fontSize:16,lineHeight:1.55,margin:0,marginBottom:40,color:mutedColor},children:body}),/*#__PURE__*/_jsx(\"label\",{htmlFor:`${uid}-input`,style:{fontSize:16,fontWeight:600,marginBottom:8,color:textColor},children:inputLabel}),/*#__PURE__*/_jsxs(\"div\",{style:{position:\"relative\",marginBottom:error?8:0,animation:shake?\"pgShake 0.4s ease both\":\"none\"},children:[/*#__PURE__*/_jsx(\"input\",{ref:pwRef,id:`${uid}-input`,type:showPassword?\"text\":\"password\",defaultValue:\"\",placeholder:placeholder,autoComplete:\"off\",autoCapitalize:\"off\",autoCorrect:\"off\",spellCheck:false,\"aria-invalid\":error?\"true\":\"false\",\"aria-describedby\":error?`${uid}-error`:undefined,className:\"pg-gate-input\",style:{width:\"100%\",fontFamily:bodyFont,fontSize:16,padding:\"16px 84px 16px 16px\",border:`1px solid ${error?errorColor:borderColor}`,borderRadius:12,background:sheetBackground,color:textColor,outline:\"none\",boxSizing:\"border-box\"}}),/*#__PURE__*/_jsx(\"button\",{type:\"button\",\"data-pg\":\"show\",\"aria-label\":showPassword?\"Hide password\":\"Show password\",\"aria-pressed\":showPassword,style:{position:\"absolute\",right:8,top:\"50%\",transform:\"translateY(-50%)\",fontFamily:bodyFont,fontSize:14,fontWeight:600,padding:\"8px 12px\",border:\"none\",borderRadius:8,background:\"transparent\",color:mutedColor,cursor:\"pointer\"},children:showPassword?\"Hide\":\"Show\"})]}),error&&/*#__PURE__*/_jsx(\"p\",{id:`${uid}-error`,role:\"alert\",style:{fontSize:14,lineHeight:1.4,margin:0,color:errorColor},children:errorMessage}),/*#__PURE__*/_jsx(\"button\",{type:\"button\",\"data-pg\":\"unlock\",style:{fontFamily:bodyFont,fontSize:16,fontWeight:600,width:\"100%\",height:56,border:\"none\",borderRadius:999,background:accentColor,color:accentTextColor,cursor:\"pointer\",marginTop:24},children:buttonLabel}),/*#__PURE__*/_jsx(\"button\",{type:\"button\",\"data-pg\":\"contact\",style:{fontFamily:bodyFont,fontSize:15,fontWeight:500,border:\"none\",background:\"transparent\",color:textColor,textDecoration:\"underline\",textUnderlineOffset:3,cursor:\"pointer\",alignSelf:\"center\",marginTop:24,padding:\"8px 12px\"},children:contactLabel})]});const contactView=cStatus===\"success\"?/*#__PURE__*/_jsxs(\"div\",{style:{textAlign:\"center\",padding:\"48px 0\",display:\"flex\",flexDirection:\"column\",gap:8},children:[/*#__PURE__*/_jsx(\"div\",{style:{fontSize:20,fontWeight:600,color:textColor,letterSpacing:\"-0.03em\",fontFamily:bodyFont},children:successTitle}),/*#__PURE__*/_jsx(\"div\",{style:{fontSize:14,color:\"#6E6E6E\",fontFamily:bodyFont},children:successBody})]}):/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"h2\",{style:{fontFamily:bodyFont,fontWeight:600,fontSize:40,lineHeight:1.15,letterSpacing:\"-0.01em\",margin:0,marginTop:24,marginBottom:12,color:textColor},children:contactTitle}),/*#__PURE__*/_jsx(\"p\",{style:{fontSize:16,lineHeight:1.55,margin:0,marginBottom:32,color:mutedColor},children:contactBody}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",gap:12,marginBottom:20},children:[/*#__PURE__*/_jsxs(\"div\",{style:{flex:1,display:\"flex\",flexDirection:\"column\"},children:[/*#__PURE__*/_jsx(\"label\",{htmlFor:`${uid}-cname`,style:fieldLabel,children:\"Name\"}),/*#__PURE__*/_jsx(\"input\",{ref:nameRef,id:`${uid}-cname`,type:\"text\",placeholder:\"Your name\",defaultValue:\"\",style:fieldInput})]}),/*#__PURE__*/_jsxs(\"div\",{style:{flex:1,display:\"flex\",flexDirection:\"column\"},children:[/*#__PURE__*/_jsx(\"label\",{htmlFor:`${uid}-cemail`,style:fieldLabel,children:\"Email\"}),/*#__PURE__*/_jsx(\"input\",{ref:emailRef,id:`${uid}-cemail`,type:\"email\",placeholder:\"your@email.com\",defaultValue:\"\",style:fieldInput})]})]}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",marginBottom:24},children:[/*#__PURE__*/_jsx(\"label\",{htmlFor:`${uid}-cmessage`,style:fieldLabel,children:\"Message\"}),/*#__PURE__*/_jsx(\"textarea\",{ref:msgRef,id:`${uid}-cmessage`,defaultValue:contactMessage,style:{...fieldInput,resize:\"vertical\",minHeight:120}})]}),/*#__PURE__*/_jsx(\"button\",{type:\"button\",\"data-pg\":\"send\",disabled:cStatus===\"submitting\",style:{fontFamily:bodyFont,fontSize:16,fontWeight:600,width:\"100%\",height:56,border:\"none\",borderRadius:999,background:accentColor,color:accentTextColor,cursor:cStatus===\"submitting\"?\"not-allowed\":\"pointer\",opacity:cStatus===\"submitting\"?.6:1},children:cStatus===\"submitting\"?\"Sending...\":sendLabel}),cStatus===\"error\"&&/*#__PURE__*/_jsx(\"p\",{role:\"alert\",style:{fontSize:13,textAlign:\"center\",margin:0,marginTop:12,color:errorColor,fontFamily:bodyFont},children:\"Something went wrong. Please email gusp1005@gmail.com directly.\"}),/*#__PURE__*/_jsx(\"button\",{type:\"button\",\"data-pg\":\"back\",style:{fontFamily:bodyFont,fontSize:15,fontWeight:500,border:\"none\",background:\"transparent\",color:textColor,textDecoration:\"underline\",textUnderlineOffset:3,cursor:\"pointer\",alignSelf:\"center\",marginTop:24,padding:\"8px 12px\"},children:\"← Back to password\"})]});const sheet=/*#__PURE__*/_jsxs(\"div\",{ref:sheetRef,role:\"dialog\",\"aria-modal\":\"true\",\"aria-labelledby\":`${uid}-title`,className:\"pg-gate-sheet\",style:{position:\"absolute\",top:0,right:0,bottom:0,width:\"100%\",maxWidth:560,background:sheetBackground,color:textColor,display:\"flex\",flexDirection:\"column\",padding:\"32px 48px 48px 48px\",boxSizing:\"border-box\",boxShadow:\"-24px 0 64px rgba(13, 13, 13, 0.18)\",animation:isCanvas?\"none\":\"pgSlideIn 0.45s cubic-bezier(0.32, 0.72, 0.24, 1) both\",fontFamily:bodyFont,overflowY:\"auto\"},children:[/*#__PURE__*/_jsx(\"button\",{type:\"button\",\"data-pg\":\"close\",\"aria-label\":\"Close and go back\",style:{alignSelf:\"flex-end\",width:40,height:40,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",border:\"none\",background:\"transparent\",color:textColor,cursor:\"pointer\",marginRight:-12,flexShrink:0},children:/*#__PURE__*/_jsx(\"svg\",{width:\"18\",height:\"18\",viewBox:\"0 0 18 18\",fill:\"none\",\"aria-hidden\":\"true\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M2 2L16 16M16 2L2 16\",stroke:\"currentColor\",strokeWidth:\"2\",strokeLinecap:\"round\"})})}),view===\"password\"?passwordView:contactView,/*#__PURE__*/_jsx(\"style\",{children:`\n                @keyframes pgSlideIn {\n                    from { transform: translateX(100%); }\n                    to { transform: translateX(0); }\n                }\n                @keyframes pgShake {\n                    0%, 100% { transform: translateX(0); }\n                    20% { transform: translateX(-6px); }\n                    40% { transform: translateX(6px); }\n                    60% { transform: translateX(-4px); }\n                    80% { transform: translateX(4px); }\n                }\n                .pg-gate-input:focus {\n                    border-color: ${textColor} !important;\n                }\n                .pg-gate-input::placeholder {\n                    color: #A0A0A0;\n                }\n                @media (prefers-reduced-motion: reduce) {\n                    .pg-gate-sheet,\n                    .pg-gate-sheet * { animation: none !important; }\n                }\n                @media (max-width: 620px) {\n                    .pg-gate-sheet {\n                        max-width: 100% !important;\n                        padding: 24px 24px 40px 24px !important;\n                    }\n                    .pg-gate-sheet h2 { font-size: 32px !important; }\n                }\n            `})]});if(isCanvas){return /*#__PURE__*/_jsx(\"div\",{style:{position:\"relative\",width:\"100%\",height:\"100%\",minHeight:560,background:scrimColor,overflow:\"hidden\"},children:sheet});}return /*#__PURE__*/createPortal(/*#__PURE__*/_jsx(\"div\",{style:{position:\"fixed\",inset:0,zIndex:zIndex,background:scrimColor,backdropFilter:\"blur(16px)\",WebkitBackdropFilter:\"blur(16px)\"},children:sheet}),document.body);}addPropertyControls(PasswordGate,{password:{type:ControlType.String,title:\"Password\",defaultValue:\"flu2023\"},caseSensitive:{type:ControlType.Boolean,title:\"Case sensitive\",defaultValue:false},storageKey:{type:ControlType.String,title:\"Session key\",defaultValue:\"gp-gate\"},title:{type:ControlType.String,title:\"Title\",defaultValue:\"Uh oh, this one's locked\"},body:{type:ControlType.String,title:\"Body\",displayTextArea:true,defaultValue:\"Client work lives behind this door, so it needs a password. If you're here, you probably have it already — if not, just drop me a message and I'll send it right over.\"},inputLabel:{type:ControlType.String,title:\"Input label\",defaultValue:\"Password\"},placeholder:{type:ControlType.String,title:\"Placeholder\",defaultValue:\"Enter password\"},buttonLabel:{type:ControlType.String,title:\"Button\",defaultValue:\"Let me in\"},errorMessage:{type:ControlType.String,title:\"Error message\",displayTextArea:true,defaultValue:\"Hmm, not quite. Give it another shot — typos happen.\"},contactLabel:{type:ControlType.String,title:\"Contact label\",defaultValue:\"Message me\"},contactTitle:{type:ControlType.String,title:\"Form title\",defaultValue:\"Request access\"},contactBody:{type:ControlType.String,title:\"Form body\",displayTextArea:true,defaultValue:\"Leave your details and I'll send the password over.\"},contactMessage:{type:ControlType.String,title:\"Prefilled msg\",displayTextArea:true,defaultValue:\"Hi Gustavo — could you send me the password for your gated case studies?\"},sendLabel:{type:ControlType.String,title:\"Send button\",defaultValue:\"Send request\"},successTitle:{type:ControlType.String,title:\"Success title\",defaultValue:\"Request sent! ✓\"},successBody:{type:ControlType.String,title:\"Success body\",displayTextArea:true,defaultValue:\"Thanks for reaching out — I'll send the password over soon.\"},formEndpoint:{type:ControlType.String,title:\"Form endpoint\",defaultValue:\"https://formspree.io/f/xwvyvpbw\"},closeLink:{type:ControlType.Link,title:\"Close link\"},zIndex:{type:ControlType.Number,title:\"Z-index\",defaultValue:1e3,min:1,max:99999,step:1,displayStepper:true},scrimColor:{type:ControlType.Color,title:\"Scrim\",defaultValue:\"rgba(13, 13, 13, 0.55)\"},sheetBackground:{type:ControlType.Color,title:\"Sheet bg\",defaultValue:\"#FFFFFF\"},textColor:{type:ControlType.Color,title:\"Text\",defaultValue:\"#0D0D0D\"},mutedColor:{type:ControlType.Color,title:\"Muted text\",defaultValue:\"#505050\"},borderColor:{type:ControlType.Color,title:\"Input border\",defaultValue:\"#DCDCDC\"},accentColor:{type:ControlType.Color,title:\"Button bg\",defaultValue:\"#0D0D0D\"},accentTextColor:{type:ControlType.Color,title:\"Button text\",defaultValue:\"#FFFFFF\"},errorColor:{type:ControlType.Color,title:\"Error color\",defaultValue:\"#C4320A\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"PasswordGate\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"any\",\"framerSupportedLayoutWidth\":\"any\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./PasswordGate.map"],"mappings":"wPAeG,SAAwB,EAAa,EAAM,CAAC,GAAK,CAAC,WAAS,UAAU,gBAAc,GAAM,aAAW,UAAU,QAAM,2BAA2B,OAAK,yKAAyK,aAAW,WAAW,cAAY,iBAAiB,cAAY,YAAY,eAAa,uDAAuD,gBAAa,aAAa,gBAAa,iBAAiB,eAAY,sDAAsD,kBAAe,2EAA2E,aAAU,eAAe,gBAAa,kBAAkB,eAAY,8DAA8D,gBAAa,kCAAkC,aAAU,IAAI,UAAO,IAAI,aAAW,yBAAyB,kBAAgB,UAAU,YAAU,UAAU,aAAW,UAAU,cAAY,UAAU,cAAY,UAAU,kBAAgB,UAAU,aAAW,WAAW,EAAY,EAAS,EAAa,QAAQ,IAAI,EAAa,OAAY,CAAC,EAAS,GAAaA,EAAe,EAAK,EAAO,CAAC,EAAO,IAAWA,EAAe,EAAK,EAAO,CAAC,EAAK,GAASA,EAAe,UAAU,EAAO,CAAC,EAAa,IAAiBA,EAAe,EAAK,EAAO,CAAC,EAAM,GAAUA,EAAe,EAAK,EAAO,CAAC,GAAM,GAAUA,EAAe,EAAK,EAAO,CAAC,EAAQ,GAAYA,EAAe,MAAM,EAAQ,EAASC,EAAa,IAAI,EAAQ,EAAMA,EAAa,IAAI,EAAQ,EAAQA,EAAa,IAAI,EAAQ,EAASA,EAAa,IAAI,EAAQ,EAAOA,EAAa,IAAI,EAAQ,EAAQA,EAAa,EAAK,EAAQ,EAAWA,EAAa,CAAC,CAAC,EAAQ,EAAIC,EAAY,EAAQ,EAAUC,EAAkB,GAAG,CAAC,IAAM,GAAS,GAAG,GAAA,CAAI,KAAK,EAAE,OAAO,EAAc,EAAQ,EAAQ,YAAY,CAAE,EAAE,CAAC,CAAa,CAAC,EAU1V,GALj/C,MAAoB,CAAI,OAAmB,GAAU,GAAmB,GAAU,GAAY,GAAK,GAAG,CAAC,IAAM,EAAO,EAAO,eAAe,QAAQ,CAAU,EAAK,IAAS,MAAM,EAAU,CAAM,IAAI,EAAU,CAAQ,GAAG,EAAY,EAAI,CAAG,MAAS,CAAC,CAAiB,OAAhB,GAAU,EAAI,MAAY,CAAC,OAAO,EAAU,EAAY,CAAjN,CAAmN,EAAE,CAAC,EAAS,EAAW,EAAS,CAAS,CAAC,EAC3V,MAAoB,CAAC,GAAG,GAAU,CAAC,GAAQ,EAAS,OAAO,IAAM,EAAS,SAAS,KAAK,MAAM,SAA+C,MAAtC,UAAS,KAAK,MAAM,SAAS,aAAmB,CAAC,SAAS,KAAK,MAAM,SAAS,CAAS,CAAE,EAAE,CAAC,EAAS,EAAO,CAAQ,CAAC,EAC5N,MAAoB,CAAC,GAAG,GAAU,CAAC,GAAQ,EAAS,OAAO,IAAM,EAAE,EAAO,eAAe,CAAI,IAAO,YAAY,EAAM,QAAQ,EAAM,QAAQ,MAAM,EAAU,IAAO,WAAW,EAAQ,SAAQ,EAAQ,QAAQ,MAAM,CAAE,EAAE,GAAG,EAAE,UAAU,EAAO,aAAa,CAAC,CAAE,EAAE,CAAC,EAAS,EAAO,EAAS,CAAI,CAAC,EACwlC,EAAW,QAAQ,CAAC,mBAAl3C,CAAC,IAAM,EAAG,EAAM,QAAc,EAAM,EAAG,EAAG,MAAM,GAAG,GAAG,EAAU,CAAK,IAAI,EAAU,CAAQ,EAAE,CAAC,GAAG,CAAC,EAAO,eAAe,QAAQ,EAAW,EAAM,KAAK,CAAC,CAAE,MAAS,CAAC,CAAC,EAAS,EAAK,EAAE,EAAY,EAAI,CAAE,MAAM,EAAS,EAAI,EAAE,EAAS,EAAI,EAAE,EAAO,eAAe,EAAS,EAAK,EAAE,GAAG,EAAK,IAAI,EAAG,MAAM,EAAE,EAAG,OAAO,EAAI,EAA4kC,UAA1jC,CAAC,GAAG,CAAC,GAAG,EAAO,QAAQ,OAAO,EAAE,CAAC,EAAO,QAAQ,KAAK,EAAE,MAAO,CAAC,MAAS,CAAC,CAAC,EAAO,SAAS,KAAK,IAAW,GAAI,EAAk9B,eAA37B,GAAgB,GAAG,CAAC,CAAC,EAAi7B,oBAAr5B,CAAC,EAAW,MAAM,EAAE,EAAQ,SAAS,CAAE,EAA83B,aAAz2B,EAAQ,UAAU,EAAg2B,qBAAn0B,CAAC,GAAG,EAAQ,QAAQ,OAAO,IAAM,EAAK,EAAQ,QAAQ,EAAQ,QAAQ,MAAM,KAAK,EAAE,GAAS,EAAM,EAAS,QAAQ,EAAS,QAAQ,MAAM,KAAK,EAAE,GAAS,EAAQ,EAAO,QAAQ,EAAO,QAAQ,MAAM,KAAK,EAAE,GAAG,GAAG,CAAC,EAAK,CAAC,EAAQ,SAAS,EAAQ,QAAQ,MAAM,EAAE,MAAO,CAAC,GAAG,CAAC,EAAM,CAAC,EAAS,SAAS,EAAS,QAAQ,MAAM,EAAE,MAAO,CAAC,GAAG,CAAC,EAAQ,CAAC,EAAO,SAAS,EAAO,QAAQ,MAAM,EAAE,MAAO,CAAC,EAAQ,QAAQ,GAAK,EAAW,YAAY,EAAE,GAAG,CAAC,IAAM,EAAI,MAAM,MAAM,GAAa,CAAC,OAAO,OAAO,QAAQ,CAAC,eAAe,mBAAmB,OAAO,kBAAkB,EAAE,KAAK,KAAK,UAAU,CAAC,OAAK,QAAM,UAAQ,OAAO,kBAAkB,CAAC,CAAC,CAAC,EAAQ,EAAK,MAAM,EAAI,KAAK,EAAE,EAAW,EAAI,IAAI,EAAK,GAAG,UAAU,OAAO,CAAE,MAAS,CAAC,EAAW,OAAO,CAAE,CAAC,EAAQ,QAAQ,EAAM,EAA2F,MAAI,EAEp9C,MAAoB,CAAC,GAAG,GAAU,CAAC,GAAQ,EAAS,OAAO,IAAM,EAAG,EAAS,QAAQ,GAAG,CAAC,EAAG,OAAO,IAAM,EAAQ,GAAG,CAAC,IAAM,EAAO,EAAE,OAAa,EAAI,EAAO,QAAQ,EAAO,QAAQ,WAAW,EAAE,KAAK,GAAG,CAAC,EAAI,OAAO,EAAE,eAAe,EAAE,EAAE,gBAAgB,EAAE,IAAM,EAAE,EAAW,QAAQ,OAAO,EAAI,aAAa,SAAS,EAAjC,CAAoC,IAAI,QAAQ,EAAE,MAAM,EAAE,MAAM,IAAI,OAAO,EAAE,WAAW,EAAE,MAAM,IAAI,SAAS,EAAE,eAAe,EAAE,MAAM,IAAI,UAAU,EAAE,gBAAgB,EAAE,MAAM,IAAI,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,OAAO,EAAE,YAAY,EAAE,KAAM,CAAC,EAAQ,EAAQ,GAAG,CAAI,EAAE,SAAS,EAAM,SAAQ,EAAS,EAAK,CAAE,EAAQ,EAAM,GAAG,CAAC,IAAM,EAAE,EAAW,QAAQ,GAAG,EAAE,MAAM,SAAS,EAAE,SAAS,EAAM,QAAQ,CAAC,EAAE,eAAe,EAAE,EAAE,eAAe,EAAE,MAAO,CAAC,GAAG,EAAE,MAAM,SAAS,CAAC,EAAE,eAAe,EAAK,EAAE,OAAO,UAAU,EAAE,SAAS,EAAO,EAAE,MAAM,EAAE,MAAO,CAAC,GAAG,EAAE,MAAM,MAAM,CAAC,IAAM,EAAW,EAAG,iBAAiB,2EAA2E,EAAE,GAAG,EAAW,SAAS,EAAE,OAAO,IAAM,EAAM,EAAW,GAAS,EAAK,EAAW,EAAW,OAAO,GAAM,EAAE,UAAU,SAAS,gBAAgB,GAAO,EAAE,eAAe,EAAE,EAAK,MAAM,GAAW,CAAC,EAAE,UAAU,SAAS,gBAAgB,IAAM,EAAE,eAAe,EAAE,EAAM,MAAM,EAAG,CAAC,EAAgI,OAA9H,EAAG,iBAAiB,QAAQ,EAAQ,EAAI,EAAE,EAAG,iBAAiB,QAAQ,EAAQ,EAAI,EAAE,EAAG,iBAAiB,UAAU,EAAM,EAAI,MAAY,CAAC,EAAG,oBAAoB,QAAQ,EAAQ,EAAI,EAAE,EAAG,oBAAoB,QAAQ,EAAQ,EAAI,EAAE,EAAG,oBAAoB,UAAU,EAAM,EAAI,CAAE,CAAE,EAAE,CAAC,EAAS,EAAO,CAAQ,CAAC,EAAK,CAAC,IAAW,GAAU,CAAC,GAAQ,OAAO,KAAK,IAAM,EAAS,+FAAqG,EAAW,CAAC,SAAS,GAAG,WAAW,IAAI,cAAc,UAAU,MAAM,UAAU,WAAW,EAAS,aAAa,CAAC,EAAQ,EAAW,CAAC,MAAM,OAAO,QAAQ,YAAY,SAAS,GAAG,aAAa,GAAG,OAAO,aAAa,IAAc,QAAQ,OAAO,WAAW,EAAgB,MAAM,EAAU,UAAU,aAAa,WAAW,CAAQ,EAAQ,GAA0B,EAAMC,EAAU,CAAC,SAAS,CAAc,EAAK,KAAK,CAAC,GAAG,GAAG,EAAI,QAAQ,MAAM,CAAC,WAAW,EAAS,WAAW,IAAI,SAAS,GAAG,WAAW,KAAK,cAAc,UAAU,OAAO,EAAE,UAAU,GAAG,aAAa,GAAG,MAAM,CAAS,EAAE,SAAS,CAAK,CAAC,EAAe,EAAK,IAAI,CAAC,GAAG,GAAG,EAAI,OAAO,MAAM,CAAC,SAAS,GAAG,WAAW,KAAK,OAAO,EAAE,aAAa,GAAG,MAAM,CAAU,EAAE,SAAS,CAAI,CAAC,EAAe,EAAK,QAAQ,CAAC,QAAQ,GAAG,EAAI,QAAQ,MAAM,CAAC,SAAS,GAAG,WAAW,IAAI,aAAa,EAAE,MAAM,CAAS,EAAE,SAAS,CAAU,CAAC,EAAe,EAAM,MAAM,CAAC,MAAM,CAAC,SAAS,WAAW,aAAa,EAAM,EAAE,EAAE,UAAU,GAAM,yBAAyB,MAAM,EAAE,SAAS,CAAc,EAAK,QAAQ,CAAC,IAAI,EAAM,GAAG,GAAG,EAAI,QAAQ,KAAK,EAAa,OAAO,WAAW,aAAa,GAAe,cAAY,aAAa,MAAM,eAAe,MAAM,YAAY,MAAM,WAAW,GAAM,eAAe,EAAM,OAAO,QAAQ,mBAAmB,EAAM,GAAG,EAAI,QAAQ,IAAA,GAAU,UAAU,gBAAgB,MAAM,CAAC,MAAM,OAAO,WAAW,EAAS,SAAS,GAAG,QAAQ,sBAAsB,OAAO,aAAa,EAAM,EAAW,IAAc,aAAa,GAAG,WAAW,EAAgB,MAAM,EAAU,QAAQ,OAAO,UAAU,YAAY,CAAC,CAAC,EAAe,EAAK,SAAS,CAAC,KAAK,SAAS,UAAU,OAAO,aAAa,EAAa,gBAAgB,gBAAgB,eAAe,EAAa,MAAM,CAAC,SAAS,WAAW,MAAM,EAAE,IAAI,MAAM,UAAU,mBAAmB,WAAW,EAAS,SAAS,GAAG,WAAW,IAAI,QAAQ,WAAW,OAAO,OAAO,aAAa,EAAE,WAAW,cAAc,MAAM,EAAW,OAAO,SAAS,EAAE,SAAS,EAAa,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,GAAoB,EAAK,IAAI,CAAC,GAAG,GAAG,EAAI,QAAQ,KAAK,QAAQ,MAAM,CAAC,SAAS,GAAG,WAAW,IAAI,OAAO,EAAE,MAAM,CAAU,EAAE,SAAS,CAAY,CAAC,EAAe,EAAK,SAAS,CAAC,KAAK,SAAS,UAAU,SAAS,MAAM,CAAC,WAAW,EAAS,SAAS,GAAG,WAAW,IAAI,MAAM,OAAO,OAAO,GAAG,OAAO,OAAO,aAAa,IAAI,WAAW,EAAY,MAAM,EAAgB,OAAO,UAAU,UAAU,EAAE,EAAE,SAAS,CAAW,CAAC,EAAe,EAAK,SAAS,CAAC,KAAK,SAAS,UAAU,UAAU,MAAM,CAAC,WAAW,EAAS,SAAS,GAAG,WAAW,IAAI,OAAO,OAAO,WAAW,cAAc,MAAM,EAAU,eAAe,YAAY,oBAAoB,EAAE,OAAO,UAAU,UAAU,SAAS,UAAU,GAAG,QAAQ,UAAU,EAAE,SAAS,EAAY,CAAC,CAAC,CAAC,CAAC,EAAQ,GAAY,IAAU,UAAuB,EAAM,MAAM,CAAC,MAAM,CAAC,UAAU,SAAS,QAAQ,SAAS,QAAQ,OAAO,cAAc,SAAS,IAAI,CAAC,EAAE,SAAS,CAAc,EAAK,MAAM,CAAC,MAAM,CAAC,SAAS,GAAG,WAAW,IAAI,MAAM,EAAU,cAAc,UAAU,WAAW,CAAQ,EAAE,SAAS,EAAY,CAAC,EAAe,EAAK,MAAM,CAAC,MAAM,CAAC,SAAS,GAAG,MAAM,UAAU,WAAW,CAAQ,EAAE,SAAS,EAAW,CAAC,CAAC,CAAC,CAAC,EAAe,EAAMA,EAAU,CAAC,SAAS,CAAc,EAAK,KAAK,CAAC,MAAM,CAAC,WAAW,EAAS,WAAW,IAAI,SAAS,GAAG,WAAW,KAAK,cAAc,UAAU,OAAO,EAAE,UAAU,GAAG,aAAa,GAAG,MAAM,CAAS,EAAE,SAAS,EAAY,CAAC,EAAe,EAAK,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,WAAW,KAAK,OAAO,EAAE,aAAa,GAAG,MAAM,CAAU,EAAE,SAAS,EAAW,CAAC,EAAe,EAAM,MAAM,CAAC,MAAM,CAAC,QAAQ,OAAO,IAAI,GAAG,aAAa,EAAE,EAAE,SAAS,CAAc,EAAM,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,OAAO,cAAc,QAAQ,EAAE,SAAS,CAAc,EAAK,QAAQ,CAAC,QAAQ,GAAG,EAAI,QAAQ,MAAM,EAAW,SAAS,MAAM,CAAC,EAAe,EAAK,QAAQ,CAAC,IAAI,EAAQ,GAAG,GAAG,EAAI,QAAQ,KAAK,OAAO,YAAY,YAAY,aAAa,GAAG,MAAM,CAAU,CAAC,CAAC,CAAC,CAAC,EAAe,EAAM,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,OAAO,cAAc,QAAQ,EAAE,SAAS,CAAc,EAAK,QAAQ,CAAC,QAAQ,GAAG,EAAI,SAAS,MAAM,EAAW,SAAS,OAAO,CAAC,EAAe,EAAK,QAAQ,CAAC,IAAI,EAAS,GAAG,GAAG,EAAI,SAAS,KAAK,QAAQ,YAAY,iBAAiB,aAAa,GAAG,MAAM,CAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAe,EAAM,MAAM,CAAC,MAAM,CAAC,QAAQ,OAAO,cAAc,SAAS,aAAa,EAAE,EAAE,SAAS,CAAc,EAAK,QAAQ,CAAC,QAAQ,GAAG,EAAI,WAAW,MAAM,EAAW,SAAS,SAAS,CAAC,EAAe,EAAK,WAAW,CAAC,IAAI,EAAO,GAAG,GAAG,EAAI,WAAW,aAAa,GAAe,MAAM,CAAC,GAAG,EAAW,OAAO,WAAW,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAe,EAAK,SAAS,CAAC,KAAK,SAAS,UAAU,OAAO,SAAS,IAAU,aAAa,MAAM,CAAC,WAAW,EAAS,SAAS,GAAG,WAAW,IAAI,MAAM,OAAO,OAAO,GAAG,OAAO,OAAO,aAAa,IAAI,WAAW,EAAY,MAAM,EAAgB,OAAO,IAAU,aAAa,cAAc,UAAU,QAAQ,IAAU,aAAa,GAAG,CAAC,EAAE,SAAS,IAAU,aAAa,aAAa,EAAS,CAAC,EAAE,IAAU,SAAsB,EAAK,IAAI,CAAC,KAAK,QAAQ,MAAM,CAAC,SAAS,GAAG,UAAU,SAAS,OAAO,EAAE,UAAU,GAAG,MAAM,EAAW,WAAW,CAAQ,EAAE,SAAS,iEAAiE,CAAC,EAAe,EAAK,SAAS,CAAC,KAAK,SAAS,UAAU,OAAO,MAAM,CAAC,WAAW,EAAS,SAAS,GAAG,WAAW,IAAI,OAAO,OAAO,WAAW,cAAc,MAAM,EAAU,eAAe,YAAY,oBAAoB,EAAE,OAAO,UAAU,UAAU,SAAS,UAAU,GAAG,QAAQ,UAAU,EAAE,SAAS,oBAAoB,CAAC,CAAC,CAAC,CAAC,EAAQ,EAAmB,EAAM,MAAM,CAAC,IAAI,EAAS,KAAK,SAAS,aAAa,OAAO,kBAAkB,GAAG,EAAI,QAAQ,UAAU,gBAAgB,MAAM,CAAC,SAAS,WAAW,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,OAAO,SAAS,IAAI,WAAW,EAAgB,MAAM,EAAU,QAAQ,OAAO,cAAc,SAAS,QAAQ,sBAAsB,UAAU,aAAa,UAAU,sCAAsC,UAAU,EAAS,OAAO,yDAAyD,WAAW,EAAS,UAAU,MAAM,EAAE,SAAS,CAAc,EAAK,SAAS,CAAC,KAAK,SAAS,UAAU,QAAQ,aAAa,oBAAoB,MAAM,CAAC,UAAU,WAAW,MAAM,GAAG,OAAO,GAAG,QAAQ,OAAO,WAAW,SAAS,eAAe,SAAS,OAAO,OAAO,WAAW,cAAc,MAAM,EAAU,OAAO,UAAU,YAAY,IAAI,WAAW,CAAC,EAAE,SAAsB,EAAK,MAAM,CAAC,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,OAAO,cAAc,OAAO,SAAsB,EAAK,OAAO,CAAC,EAAE,uBAAuB,OAAO,eAAe,YAAY,IAAI,cAAc,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAO,WAAW,GAAa,GAAyB,EAAK,QAAQ,CAAC,SAAS;;;;;;;;;;;;;oCAahkQ,EAAU;;;;;;;;;;;;;;;;aAgBjC,CAAC,CAAC,CAAC,CAAC,EAA8K,OAAzK,EAA8B,EAAK,MAAM,CAAC,MAAM,CAAC,SAAS,WAAW,MAAM,OAAO,OAAO,OAAO,UAAU,IAAI,WAAW,EAAW,SAAS,QAAQ,EAAE,SAAS,CAAK,CAAC,EAAuB,GAA0B,EAAK,MAAM,CAAC,MAAM,CAAC,SAAS,QAAQ,MAAM,EAAS,UAAO,WAAW,EAAW,eAAe,aAAa,qBAAqB,YAAY,EAAE,SAAS,CAAK,CAAC,EAAE,SAAS,IAAI,CAAE,uBAtD9U,IAA4B,IAAoC,IAAiE,EAGzM,EAAU,CAAC,EAmD4Y,EAAoB,EAAa,CAAC,SAAS,CAAC,KAAK,EAAY,OAAO,MAAM,WAAW,aAAa,SAAS,EAAE,cAAc,CAAC,KAAK,EAAY,QAAQ,MAAM,iBAAiB,aAAa,EAAK,EAAE,WAAW,CAAC,KAAK,EAAY,OAAO,MAAM,cAAc,aAAa,SAAS,EAAE,MAAM,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,aAAa,0BAA0B,EAAE,KAAK,CAAC,KAAK,EAAY,OAAO,MAAM,OAAO,gBAAgB,GAAK,aAAa,wKAAwK,EAAE,WAAW,CAAC,KAAK,EAAY,OAAO,MAAM,cAAc,aAAa,UAAU,EAAE,YAAY,CAAC,KAAK,EAAY,OAAO,MAAM,cAAc,aAAa,gBAAgB,EAAE,YAAY,CAAC,KAAK,EAAY,OAAO,MAAM,SAAS,aAAa,WAAW,EAAE,aAAa,CAAC,KAAK,EAAY,OAAO,MAAM,gBAAgB,gBAAgB,GAAK,aAAa,sDAAsD,EAAE,aAAa,CAAC,KAAK,EAAY,OAAO,MAAM,gBAAgB,aAAa,YAAY,EAAE,aAAa,CAAC,KAAK,EAAY,OAAO,MAAM,aAAa,aAAa,gBAAgB,EAAE,YAAY,CAAC,KAAK,EAAY,OAAO,MAAM,YAAY,gBAAgB,GAAK,aAAa,qDAAqD,EAAE,eAAe,CAAC,KAAK,EAAY,OAAO,MAAM,gBAAgB,gBAAgB,GAAK,aAAa,0EAA0E,EAAE,UAAU,CAAC,KAAK,EAAY,OAAO,MAAM,cAAc,aAAa,cAAc,EAAE,aAAa,CAAC,KAAK,EAAY,OAAO,MAAM,gBAAgB,aAAa,iBAAiB,EAAE,YAAY,CAAC,KAAK,EAAY,OAAO,MAAM,eAAe,gBAAgB,GAAK,aAAa,6DAA6D,EAAE,aAAa,CAAC,KAAK,EAAY,OAAO,MAAM,gBAAgB,aAAa,iCAAiC,EAAE,UAAU,CAAC,KAAK,EAAY,KAAK,MAAM,YAAY,EAAE,OAAO,CAAC,KAAK,EAAY,OAAO,MAAM,UAAU,aAAa,IAAI,IAAI,EAAE,IAAI,MAAM,KAAK,EAAE,eAAe,EAAI,EAAE,WAAW,CAAC,KAAK,EAAY,MAAM,MAAM,QAAQ,aAAa,wBAAwB,EAAE,gBAAgB,CAAC,KAAK,EAAY,MAAM,MAAM,WAAW,aAAa,SAAS,EAAE,UAAU,CAAC,KAAK,EAAY,MAAM,MAAM,OAAO,aAAa,SAAS,EAAE,WAAW,CAAC,KAAK,EAAY,MAAM,MAAM,aAAa,aAAa,SAAS,EAAE,YAAY,CAAC,KAAK,EAAY,MAAM,MAAM,eAAe,aAAa,SAAS,EAAE,YAAY,CAAC,KAAK,EAAY,MAAM,MAAM,YAAY,aAAa,SAAS,EAAE,gBAAgB,CAAC,KAAK,EAAY,MAAM,MAAM,cAAc,aAAa,SAAS,EAAE,WAAW,CAAC,KAAK,EAAY,MAAM,MAAM,cAAc,aAAa,SAAS,CAAC,CAAC"}