{"version":3,"file":"RopeToggle.DELO2e_F.mjs","names":["useState","useRef","useMemo","_Fragment","useLayoutEffect","useEffect"],"sources":["https:/framerusercontent.com/modules/9okIhCxA7vtXJbPfhn4a/qUKNjBCx5eD67TpXOW1q/RopeToggle.js"],"sourcesContent":["// [생성일] 2026-10-16\n// [경위] 달러벌기 19번 상품 — Rope Toggle. 전등 당김줄처럼 당겼다 놓으면 상태가 바뀌는 토글.\n//        기본 용도는 사이트 다크/라이트 모드 전환(프레이머 네이티브 색상 스타일), 일반 ON/OFF 로도 사용 (무료 상품)\n// [변경이력]\n//   - 2026-10-16: 최초 생성 (외부 라이브러리 없는 verlet 로프 물리, 당겨서 놓기·탭·키보드(Enter/Space) 토글,\n//                 손잡이 6종(공·막대·고리·술·전구·이미지), 줄 3종(로프·체인·끈), 프레이머 라이트/다크 색상 스타일 전환,\n//                 html 속성/클래스 모드, 이벤트 모드, localStorage 기억, 합성 클릭음(기본 꺼짐),\n//                 캔버스·정적 렌더에서는 정지 상태만 표시, 화면 밖·정착 시 루프 정지, reduced-motion 은 흔들림 없음)\nimport{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{useEffect,useLayoutEffect,useMemo,useRef,useState,startTransition}from\"react\";import{addPropertyControls,ControlType,RenderTarget,useIsStaticRenderer}from\"framer\";const SEGMENTS=16;const ITER=20// 길이 제약 반복 횟수 (16마디 × 20회 — 적으면 중력 처짐·꺾임이 남는다, 2026-10-16 시뮬레이션으로 결정)\n;const useIsoLayoutEffect=typeof document!==\"undefined\"?useLayoutEffect:useEffect;const THEME_STYLE_ID=\"rope-toggle-theme\";const THEME_ATTR=\"data-rope-theme\";const EVENT_NAME=\"ropetoggle\";// 로프 점들을 고정점에서 곧게 늘어뜨린 상태로 초기화\nfunction resetRope(r){const seg=r.len/SEGMENTS;r.pts=[];for(let i=0;i<=SEGMENTS;i++){const y=r.ay+seg*i;r.pts.push({x:r.ax,y,px:r.ax,py:y});}r.quiet=0;r.calm=0;}// verlet 한 스텝: 관성·중력 → 길이 제약 → 고정점·드래그 핀\nfunction stepRope(r,gravity,friction,stretch){const pts=r.pts;const seg=r.len/SEGMENTS;const g=gravity*.55;for(let i=1;i<pts.length;i++){const p=pts[i];let vx=(p.x-p.px)*friction;let vy=(p.y-p.py)*friction;// 마디 속도 상한 (프레임당 px): 놓는 순간 줄이 너무 빨리 수축해 고리처럼 말리는 것을 막는다\nconst sp=Math.hypot(vx,vy);if(sp>14){vx*=14/sp;vy*=14/sp;}p.px=p.x;p.py=p.y;p.x+=vx;p.y+=vy+g;}// 드래그 목표점: 고정점에서 (길이 + 늘어남 한계) 안으로 자른다 (고무줄처럼 조금만 늘어남)\nlet tx=r.tx,ty=r.ty;if(r.dragging){const dx=tx-r.ax,dy=ty-r.ay;const d=Math.hypot(dx,dy)||1;const max=r.len+stretch;if(d>max){tx=r.ax+dx/d*max;ty=r.ay+dy/d*max;}}const last=pts[pts.length-1];for(let k=0;k<ITER;k++){pts[0].x=r.ax;pts[0].y=r.ay;if(r.dragging){last.x=tx;last.y=ty;}for(let i=0;i<pts.length-1;i++){const a=pts[i],b=pts[i+1];let dx=b.x-a.x,dy=b.y-a.y;const d=Math.hypot(dx,dy)||1e-4;const diff=(d-seg)/d;// 끝점이 드래그 중이면 마지막 마디는 잡힌 쪽이 안 움직임\nconst wa=i===0?0:.5;const wb=r.dragging&&i===pts.length-2?0:i===0?1:.5;const s=wa+wb||1;dx*=diff;dy*=diff;a.x+=dx*(wa/s);a.y+=dy*(wa/s);b.x-=dx*(wb/s);b.y-=dy*(wb/s);}}pts[0].x=r.ax;pts[0].y=r.ay;if(r.dragging){last.x=tx;last.y=ty;}// 마무리 패스: 위에서부터 각 마디를 제 길이 쪽으로 당겨 중력 처짐을 줄인다 (k=1 이면 정확히 맞춤).\n// 현재 위치와 직전 위치를 같이 옮겨 속도를 바꾸지 않는다 (에너지 주입 없음 → 튀어오르지 않음)\nif(!r.dragging)tightenRope(r,.5);}// 각 마디를 제 길이 쪽으로 k 비율만큼 당긴다 (속도 보존)\nfunction tightenRope(r,k){const pts=r.pts;const seg=r.len/SEGMENTS;for(let i=0;i<pts.length-1;i++){const a=pts[i],b=pts[i+1];const dx=b.x-a.x,dy=b.y-a.y;const d=Math.hypot(dx,dy)||1e-4;const cx=(a.x+dx/d*seg-b.x)*k;const cy=(a.y+dy/d*seg-b.y)*k;b.x+=cx;b.y+=cy;b.px+=cx;b.py+=cy;}}// 점들을 지나는 부드러운 경로 (중점 2차 베지어)\nfunction ropePath(pts){if(pts.length<2)return\"\";let d=\"M\"+pts[0].x.toFixed(1)+\" \"+pts[0].y.toFixed(1);for(let i=1;i<pts.length-1;i++){const mx=(pts[i].x+pts[i+1].x)/2,my=(pts[i].y+pts[i+1].y)/2;d+=\" Q\"+pts[i].x.toFixed(1)+\" \"+pts[i].y.toFixed(1)+\" \"+mx.toFixed(1)+\" \"+my.toFixed(1);}const l=pts[pts.length-1];d+=\" L\"+l.x.toFixed(1)+\" \"+l.y.toFixed(1);return d;}// ─────────────────────────────────────────────\n// 프레이머 네이티브 라이트/다크 색상 스타일 강제 전환\n// 프레이머는 다크 토큰을 @media (prefers-color-scheme: dark) { body { --token… } } 로만 내보낸다.\n// 그 토큰 묶음을 읽어 html[data-rope-theme=…] 기준 스타일시트로 다시 써 넣으면 시스템 설정과 무관하게 전환된다.\n// ─────────────────────────────────────────────\nfunction collectTokens(rule,into){const sel=rule&&rule.selectorText;if(!sel||!(sel===\"body\"||sel===\":root\"||sel===\"html\"))return;const st=rule.style;for(let i=0;i<st.length;i++){const name=st[i];if(name.indexOf(\"--token\")===0)into.push(name+\":\"+st.getPropertyValue(name)+\";\");}}function ensureFramerThemeStyle(doc){const light=[];const dark=[];const sheets=doc.styleSheets;for(let s=0;s<sheets.length;s++){let rules;try{rules=sheets[s].cssRules;}catch(_){continue;}// 교차 출처 시트는 건너뜀\nif(!rules)continue;for(let i=0;i<rules.length;i++){const rule=rules[i];if(rule.conditionText&&rule.conditionText.replace(/\\s/g,\"\")===\"(prefers-color-scheme:dark)\"){const inner=rule.cssRules||[];for(let j=0;j<inner.length;j++)collectTokens(inner[j],dark);}else collectTokens(rule,light);}}let el=doc.getElementById(THEME_STYLE_ID);if(!el){el=doc.createElement(\"style\");el.id=THEME_STYLE_ID;doc.head.appendChild(el);}el.textContent=\"html[\"+THEME_ATTR+'=\"light\"] body{'+light.join(\"\")+\"}\"+\"html[\"+THEME_ATTR+'=\"dark\"] body{'+dark.join(\"\")+\"}\"+\"html[\"+THEME_ATTR+'=\"light\"]{color-scheme:light}'+\"html[\"+THEME_ATTR+'=\"dark\"]{color-scheme:dark}';}// 합성 클릭음 (외부 파일 없음) — 켤 때는 높게, 끌 때는 낮게 \"틱\"\nfunction playClick(ctxRef,on){const g=globalThis;const AC=g.AudioContext||g.webkitAudioContext;if(!AC)return;try{const ctx=ctxRef.current||(ctxRef.current=new AC);if(ctx.state===\"suspended\"&&ctx.resume)ctx.resume();const t=ctx.currentTime;const osc=ctx.createOscillator();const gain=ctx.createGain();osc.type=\"square\";osc.frequency.setValueAtTime(on?1900:1300,t);osc.frequency.exponentialRampToValueAtTime(on?700:350,t+.045);gain.gain.setValueAtTime(.12,t);gain.gain.exponentialRampToValueAtTime(1e-4,t+.07);osc.connect(gain);gain.connect(ctx.destination);osc.start(t);osc.stop(t+.08);}catch(_){}}/**\n * Rope Toggle — 천장에서 내려온 당김줄. 당겼다 놓으면(또는 탭·Enter/Space) 상태가 바뀌고 줄이 흔들린다.\n * 기본은 사이트 다크/라이트 모드 전환(프레이머 색상 스타일), html 속성/클래스나 이벤트만 쏘는 모드도 있다.\n *\n * @framerDisableUnlink\n * @framerIntrinsicWidth 160\n * @framerIntrinsicHeight 320\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n */export default function RopeToggle(props){const{knobStyle=\"bulb\",knobImage,knobSize=36,knobColorOff=\"#3A3A40\",knobColorOn=\"#FFD166\",glow=true,ropeStyle=\"rope\",ropeColor=\"#C9B79C\",ropeWidth=5,ropeMode=\"auto\",ropeLength=200,anchorX=50,mount=true,pullDistance=40,stretch=60,gravity=1,damping=.3,sound=false,action=\"framer\",onIsDark=true,attrName=\"data-theme\",valueOn=\"dark\",valueOff=\"light\",htmlClass=\"dark\",start=\"off\",remember=true,storeKey=\"rope-toggle\",showLabel=false,labelOff=\"Light\",labelOn=\"Dark\",labelColor=\"#8A8A8F\",font={fontFamily:\"Inter\",fontWeight:500,fontSize:13},style}=props;const isStatic=useIsStaticRenderer()// 정적 렌더(서버·내보내기): 곧게 늘어진 줄만\n;const isCanvas=RenderTarget.current()===RenderTarget.canvas// 캔버스: 정지 상태, 페이지 테마는 건드리지 않음\n;const interactive=!isStatic&&!isCanvas;// 시작 상태 (서버·캔버스에서는 System = Off 로 보임, 브라우저에서 mount 후 보정)\nconst[on,setOn]=useState(start===\"on\");const[pulling,setPulling]=useState(false)// 당김 한계를 넘겼는지 (손잡이 살짝 커짐)\n;const[size,setSize]=useState({W:160,H:320});const rootRef=useRef(null);const pathRef=useRef(null);const pathRef2=useRef(null);const pathRef3=useRef(null);const knobRef=useRef(null);const imgRef=useRef(null);const labelRef=useRef(null);const ropeRef=useRef({pts:[],ax:80,ay:0,len:200,W:160,H:320,dragging:false,tx:0,ty:0,quiet:0,calm:0});const rafRef=useRef(0);const runningRef=useRef(false);const inViewRef=useRef(true);const reducedRef=useRef(false);const audioRef=useRef(null);const onRef=useRef(on);onRef.current=on;const pointer=useRef({id:-1,downX:0,downY:0,knobX:0,knobY:0,moved:false,past:false});const paramsRef=useRef({gravity,damping,stretch,pullDistance});paramsRef.current={gravity,damping,stretch,pullDistance};const themeRef=useRef({action,onIsDark,attrName,valueOn,valueOff,htmlClass,remember,storeKey,sound});themeRef.current={action,onIsDark,attrName,valueOn,valueOff,htmlClass,remember,storeKey,sound};// 손잡이 치수 (스타일별로 세로 길이가 다름)\nconst knobH=knobStyle===\"bar\"?knobSize*.5:knobStyle===\"tassel\"?knobSize*1.6:knobStyle===\"bulb\"?knobSize*1.25:knobSize;const ropeLen=useMemo(()=>{const auto=Math.max(24,size.H-knobH-(showLabel?28:6));return ropeMode===\"custom\"?Math.max(20,ropeLength):auto;},[ropeMode,ropeLength,size.H,knobH,showLabel]);const ax=Math.max(0,Math.min(100,anchorX))/100*size.W;// ── 그리기: 로프 경로·손잡이·라벨 위치를 DOM 에 직접 반영 ──\nconst draw=()=>{const r=ropeRef.current;const pts=r.pts;if(pts.length<2)return;const d=ropePath(pts);if(pathRef.current)pathRef.current.setAttribute(\"d\",d);if(pathRef2.current)pathRef2.current.setAttribute(\"d\",d);if(pathRef3.current)pathRef3.current.setAttribute(\"d\",d);const a=pts[pts.length-2],b=pts[pts.length-1];const ang=Math.atan2(b.y-a.y,b.x-a.x)*180/Math.PI-90;const tr=\"translate(\"+b.x.toFixed(1)+\" \"+b.y.toFixed(1)+\") rotate(\"+ang.toFixed(1)+\")\";if(knobRef.current)knobRef.current.setAttribute(\"transform\",tr);if(imgRef.current)imgRef.current.style.transform=\"translate(\"+b.x.toFixed(1)+\"px,\"+b.y.toFixed(1)+\"px) rotate(\"+ang.toFixed(1)+\"deg)\";if(labelRef.current)labelRef.current.style.transform=\"translate(\"+(b.x-60).toFixed(1)+\"px,\"+(b.y+knobH+6).toFixed(1)+\"px)\";};// ── 루프 제어: 움직임이 있을 때만 돌고, 정착하면 멈춘다 (CPU 0) ──\nconst stopLoop=()=>{runningRef.current=false;if(rafRef.current)cancelAnimationFrame(rafRef.current);rafRef.current=0;};const loop=()=>{if(!runningRef.current)return;const r=ropeRef.current;const p=paramsRef.current;const friction=.985-Math.max(0,Math.min(1,p.damping))*.05;if(reducedRef.current){// 동작 줄이기: 흔들림 없이, 당기는 동안만 곧게 따라가고 놓으면 즉시 제자리\nlet ex=r.ax,ey=r.ay+r.len;if(r.dragging){const dx=r.tx-r.ax,dy=r.ty-r.ay;const d=Math.hypot(dx,dy)||1;const L=Math.min(d,r.len+p.stretch);ex=r.ax+dx/d*L;ey=r.ay+dy/d*L;}for(let i=0;i<=SEGMENTS;i++){const t=i/SEGMENTS;const q=r.pts[i];q.x=q.px=r.ax+(ex-r.ax)*t;q.y=q.py=r.ay+(ey-r.ay)*t;}draw();if(!r.dragging){stopLoop();return;}rafRef.current=requestAnimationFrame(loop);return;}stepRope(r,p.gravity,friction,p.stretch);let maxMove=0;for(const q of r.pts)maxMove=Math.max(maxMove,Math.abs(q.x-q.px),Math.abs(q.y-q.py));draw();// 정착 판정: 프레임당 0.1px 미만이 40프레임 이어지면 정지. 안전망: 0.5px 미만 잔떨림이 2초 이어져도 정지\nif(!r.dragging&&maxMove<.1)r.quiet++;else r.quiet=0;if(!r.dragging&&maxMove<.5)r.calm++;else r.calm=0;if(r.quiet>40||r.calm>120){tightenRope(r,1)// 멈출 때 길이를 정확히 맞춰 처짐 없이 곧게\n;for(const q of r.pts){q.px=q.x;q.py=q.y;}draw();stopLoop();return;}rafRef.current=requestAnimationFrame(loop);};const wake=()=>{if(runningRef.current||!interactive||!inViewRef.current)return;runningRef.current=true;ropeRef.current.quiet=0;ropeRef.current.calm=0;rafRef.current=requestAnimationFrame(loop);};// ── 테마 적용: 캔버스에서는 절대 페이지를 건드리지 않음 ──\nconst applyTheme=(next,emit)=>{if(!interactive||typeof document===\"undefined\")return;const t=themeRef.current;const html=document.documentElement;const theme=next===t.onIsDark?\"dark\":\"light\";try{if(t.action===\"framer\"){ensureFramerThemeStyle(document);html.setAttribute(THEME_ATTR,theme);}else if(t.action===\"attribute\"){if(t.attrName)html.setAttribute(t.attrName,next?t.valueOn:t.valueOff);if(t.htmlClass)html.classList.toggle(t.htmlClass,next);}if(t.remember&&t.storeKey)localStorage.setItem(t.storeKey,next?\"on\":\"off\");}catch(_){}if(emit){try{globalThis.dispatchEvent(new CustomEvent(EVENT_NAME,{detail:{on:next,theme}}));}catch(_){}}};const toggle=tug=>{const next=!onRef.current;onRef.current=next;startTransition(()=>setOn(next));applyTheme(next,true);if(themeRef.current.sound)playClick(audioRef,next);if(tug&&!reducedRef.current){// 키보드·탭: 끝점에 아래쪽 충격을 줘서 살짝 당겨졌다 돌아오는 느낌\nconst r=ropeRef.current;const last=r.pts[r.pts.length-1];if(last){last.py-=7;last.px-=1.5;}wake();}};// ── 브라우저 mount: 저장값·시스템 설정으로 시작 상태 보정 + 다른 인스턴스와 동기화 ──\nuseEffect(()=>{if(!interactive)return;const mq=typeof matchMedia===\"function\"?matchMedia(\"(prefers-reduced-motion: reduce)\"):null;reducedRef.current=!!(mq&&mq.matches);const t=themeRef.current;let initial=null;try{const saved=t.remember&&t.storeKey?localStorage.getItem(t.storeKey):null;if(saved===\"on\")initial=true;else if(saved===\"off\")initial=false;}catch(_){}if(initial===null){if(start===\"system\"){const dark=typeof matchMedia===\"function\"&&matchMedia(\"(prefers-color-scheme: dark)\").matches;initial=t.action===\"framer\"?dark===t.onIsDark:dark;}else initial=start===\"on\";}onRef.current=initial;startTransition(()=>setOn(initial));applyTheme(initial,false);// 같은 페이지의 다른 Rope Toggle 이 바뀌면 따라간다\nconst onEvt=e=>{const v=e&&e.detail&&typeof e.detail.on===\"boolean\"?e.detail.on:null;if(v===null||v===onRef.current)return;onRef.current=v;startTransition(()=>setOn(v));};globalThis.addEventListener(EVENT_NAME,onEvt);return()=>globalThis.removeEventListener(EVENT_NAME,onEvt);// eslint-disable-next-line react-hooks/exhaustive-deps\n},[interactive]);// ── 속성(모드·속성명 등)이 바뀌면 현재 상태를 다시 적용 ──\nuseEffect(()=>{if(!interactive)return;applyTheme(onRef.current,false);// eslint-disable-next-line react-hooks/exhaustive-deps\n},[action,onIsDark,attrName,valueOn,valueOff,htmlClass,interactive]);// ── 크기 측정 (ResizeObserver) ──\nuseIsoLayoutEffect(()=>{const root=rootRef.current;if(!root)return;const apply=(W,H)=>{if(Math.abs(W-size.W)<.5&&Math.abs(H-size.H)<.5)return;startTransition(()=>setSize({W,H}));};apply(root.clientWidth,root.clientHeight);if(typeof ResizeObserver===\"undefined\")return;const ro=new ResizeObserver(entries=>{const rc=entries[0].contentRect;apply(rc.width,rc.height);});ro.observe(root);return()=>ro.disconnect();// eslint-disable-next-line react-hooks/exhaustive-deps\n},[size.W,size.H]);// ── 로프 초기화 (크기·길이·고정점이 바뀔 때) ──\nuseIsoLayoutEffect(()=>{const r=ropeRef.current;r.W=size.W;r.H=size.H;r.ax=ax;r.ay=0;r.len=ropeLen;r.dragging=false;resetRope(r);draw();return()=>stopLoop();// eslint-disable-next-line react-hooks/exhaustive-deps\n},[size.W,size.H,ax,ropeLen,knobH]);// ── 화면에 보일 때만 재생 (마켓 AI 심사 요구사항) ──\nuseEffect(()=>{if(!interactive)return;const root=rootRef.current;if(!root||typeof IntersectionObserver===\"undefined\"){inViewRef.current=true;return;}const io=new IntersectionObserver(entries=>{inViewRef.current=entries[0].isIntersecting;if(!inViewRef.current)stopLoop();else if(ropeRef.current.dragging)wake();},{threshold:0});io.observe(root);return()=>io.disconnect();// eslint-disable-next-line react-hooks/exhaustive-deps\n},[interactive]);// ── 포인터: 어디를 잡아도 손잡이가 끌려온다 (이동량 기준) ──\nconst onPointerDown=e=>{if(!interactive||e.button>0)return;const r=ropeRef.current;const last=r.pts[r.pts.length-1];if(!last)return;const pr=pointer.current;pr.id=e.pointerId;pr.downX=e.clientX;pr.downY=e.clientY;pr.knobX=last.x;pr.knobY=last.y;pr.moved=false;pr.past=false;r.dragging=true;r.tx=last.x;r.ty=last.y;try{e.currentTarget.setPointerCapture(e.pointerId);}catch(_){}if(rootRef.current)rootRef.current.style.cursor=\"grabbing\";wake();};const onPointerMove=e=>{const r=ropeRef.current;const pr=pointer.current;if(!r.dragging||e.pointerId!==pr.id)return;const dx=e.clientX-pr.downX,dy=e.clientY-pr.downY;if(Math.hypot(dx,dy)>6)pr.moved=true;r.tx=pr.knobX+dx;r.ty=pr.knobY+dy;const past=r.ty-(r.ay+r.len)>paramsRef.current.pullDistance;if(past!==pr.past){pr.past=past;startTransition(()=>setPulling(past));}wake();};const onPointerUp=e=>{const r=ropeRef.current;const pr=pointer.current;if(!r.dragging||e.pointerId!==pr.id)return;r.dragging=false;pr.id=-1;if(rootRef.current)rootRef.current.style.cursor=\"grab\";// 한계를 넘겨 당겼다 놓으면 토글, 거의 안 움직인 탭도 토글, 조금만 당겼다 놓으면 그냥 흔들림\nif(pr.past||!pr.moved)toggle(!pr.moved);if(pr.past){pr.past=false;startTransition(()=>setPulling(false));}wake();};const onKeyDown=e=>{if(!interactive)return;if(e.key===\"Enter\"||e.key===\" \"||e.key===\"Spacebar\"){e.preventDefault();toggle(true);}};// ── 손잡이 그리기 (원점 = 줄 끝, 아래쪽 +y) ──\nconst knobColor=on?knobColorOn:knobColorOff;const glowFilter=glow&&on?\"drop-shadow(0 0 \"+Math.round(knobSize*.45)+\"px \"+knobColorOn+\")\":\"none\";const knobScale=pulling?1.08:1;const s=knobSize;const renderKnob=()=>{switch(knobStyle){case\"ball\":return /*#__PURE__*/_jsxs(\"g\",{children:[/*#__PURE__*/_jsx(\"circle\",{cx:0,cy:s/2,r:s/2,fill:knobColor}),/*#__PURE__*/_jsx(\"circle\",{cx:-s*.15,cy:s*.32,r:s*.18,fill:\"rgba(255,255,255,0.35)\"}),/*#__PURE__*/_jsx(\"circle\",{cx:0,cy:s/2,r:s/2,fill:\"none\",stroke:\"rgba(0,0,0,0.18)\",strokeWidth:1})]});case\"bar\":return /*#__PURE__*/_jsxs(\"g\",{children:[/*#__PURE__*/_jsx(\"rect\",{x:-s*.8,y:0,width:s*1.6,height:s*.5,rx:s*.25,fill:knobColor}),/*#__PURE__*/_jsx(\"rect\",{x:-s*.8,y:s*.06,width:s*1.6,height:s*.14,rx:s*.07,fill:\"rgba(255,255,255,0.3)\"}),/*#__PURE__*/_jsx(\"rect\",{x:-s*.8,y:0,width:s*1.6,height:s*.5,rx:s*.25,fill:\"none\",stroke:\"rgba(0,0,0,0.18)\",strokeWidth:1})]});case\"ring\":return /*#__PURE__*/_jsxs(\"g\",{children:[/*#__PURE__*/_jsx(\"circle\",{cx:0,cy:s/2,r:s/2-s*.12,fill:\"none\",stroke:knobColor,strokeWidth:s*.24}),/*#__PURE__*/_jsx(\"circle\",{cx:0,cy:s/2,r:s/2-s*.12,fill:\"none\",stroke:\"rgba(255,255,255,0.25)\",strokeWidth:s*.08,strokeDasharray:s*.6+\" \"+s*2})]});case\"tassel\":{const strands=[];const n=7;for(let i=0;i<n;i++){const t=i/(n-1)*2-1;strands.push(/*#__PURE__*/_jsx(\"path\",{d:\"M0 \"+s*.4+\" Q\"+t*s*.35+\" \"+s*1+\" \"+t*s*.42+\" \"+s*1.6,fill:\"none\",stroke:knobColor,strokeWidth:Math.max(1.5,s*.07),strokeLinecap:\"round\"},i));}return /*#__PURE__*/_jsxs(\"g\",{children:[/*#__PURE__*/_jsx(\"rect\",{x:-s*.18,y:0,width:s*.36,height:s*.42,rx:s*.08,fill:knobColor}),/*#__PURE__*/_jsx(\"rect\",{x:-s*.18,y:s*.14,width:s*.36,height:s*.06,fill:\"rgba(0,0,0,0.25)\"}),strands]});}case\"bulb\":return /*#__PURE__*/_jsxs(\"g\",{children:[/*#__PURE__*/_jsx(\"rect\",{x:-s*.2,y:0,width:s*.4,height:s*.3,rx:s*.05,fill:\"#8A8A8F\"}),/*#__PURE__*/_jsx(\"rect\",{x:-s*.2,y:s*.08,width:s*.4,height:s*.05,fill:\"rgba(0,0,0,0.3)\"}),/*#__PURE__*/_jsx(\"rect\",{x:-s*.2,y:s*.18,width:s*.4,height:s*.05,fill:\"rgba(0,0,0,0.3)\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M\"+-s*.2+\" \"+s*.3+\" L\"+-s*.28+\" \"+s*.5+\" A\"+s*.5+\" \"+s*.5+\" 0 1 0 \"+s*.28+\" \"+s*.5+\" L\"+s*.2+\" \"+s*.3+\" Z\",fill:knobColor}),/*#__PURE__*/_jsx(\"path\",{d:\"M\"+-s*.12+\" \"+s*.5+\" Q0 \"+s*.72+\" \"+s*.12+\" \"+s*.5,fill:\"none\",stroke:on?\"rgba(255,255,255,0.75)\":\"rgba(255,255,255,0.15)\",strokeWidth:Math.max(1,s*.05),strokeLinecap:\"round\"}),/*#__PURE__*/_jsx(\"circle\",{cx:-s*.16,cy:s*.72,r:s*.1,fill:\"rgba(255,255,255,0.3)\"})]});default:return null;}};// 자바스크립트 실행 전(정적 렌더)에도 곧게 늘어진 줄이 보이도록 초기 경로·위치를 넣어 둔다\nconst initialPath=\"M\"+ax.toFixed(1)+\" 0 L\"+ax.toFixed(1)+\" \"+ropeLen.toFixed(1);const initialKnob=\"translate(\"+ax.toFixed(1)+\" \"+ropeLen.toFixed(1)+\") rotate(0)\";// ── 줄 스타일별 겹침 선 ──\nconst w=Math.max(1,ropeWidth);const ropeLayers=(()=>{if(ropeStyle===\"chain\"){return /*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"path\",{ref:pathRef,d:initialPath,fill:\"none\",stroke:ropeColor,strokeOpacity:.55,strokeWidth:Math.max(1,w*.3),strokeLinecap:\"round\",strokeLinejoin:\"round\"}),/*#__PURE__*/_jsx(\"path\",{ref:pathRef2,d:initialPath,fill:\"none\",stroke:ropeColor,strokeWidth:w,strokeLinecap:\"round\",strokeLinejoin:\"round\",strokeDasharray:\"0.01 \"+w*1.35}),/*#__PURE__*/_jsx(\"path\",{ref:pathRef3,d:initialPath,fill:\"none\",stroke:\"rgba(255,255,255,0.35)\",strokeWidth:w*.4,strokeLinecap:\"round\",strokeDasharray:\"0.01 \"+w*1.35,strokeDashoffset:w*.2})]});}if(ropeStyle===\"cord\"){return /*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"path\",{ref:pathRef,d:initialPath,fill:\"none\",stroke:ropeColor,strokeWidth:w,strokeLinecap:\"round\",strokeLinejoin:\"round\"}),/*#__PURE__*/_jsx(\"path\",{ref:pathRef2,d:initialPath,fill:\"none\",stroke:\"rgba(255,255,255,0.22)\",strokeWidth:Math.max(.8,w*.3),strokeLinecap:\"round\",strokeLinejoin:\"round\"}),/*#__PURE__*/_jsx(\"path\",{ref:pathRef3,d:initialPath,fill:\"none\",stroke:\"none\"})]});}// rope: 바탕 + 밝은 사선 꼬임 + 어두운 꼬임\nreturn /*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"path\",{ref:pathRef,d:initialPath,fill:\"none\",stroke:ropeColor,strokeWidth:w,strokeLinecap:\"round\",strokeLinejoin:\"round\"}),/*#__PURE__*/_jsx(\"path\",{ref:pathRef2,d:initialPath,fill:\"none\",stroke:\"rgba(255,255,255,0.32)\",strokeWidth:w*.55,strokeLinecap:\"butt\",strokeDasharray:w*.9+\" \"+w*1.1}),/*#__PURE__*/_jsx(\"path\",{ref:pathRef3,d:initialPath,fill:\"none\",stroke:\"rgba(0,0,0,0.22)\",strokeWidth:w*.55,strokeLinecap:\"butt\",strokeDasharray:w*.9+\" \"+w*1.1,strokeDashoffset:w})]});})();const img=knobImage&&knobImage.src?knobImage:null;const label=on?labelOn:labelOff;const ariaLabel=action===\"framer\"?\"Toggle dark mode\":\"Toggle\";return /*#__PURE__*/_jsxs(\"div\",{ref:rootRef,className:\"rope-toggle-root\",role:\"switch\",\"aria-checked\":on,\"aria-label\":ariaLabel,tabIndex:interactive?0:-1,onPointerDown:onPointerDown,onPointerMove:onPointerMove,onPointerUp:onPointerUp,onPointerCancel:onPointerUp,onKeyDown:onKeyDown,style:{...style,position:\"relative\",boxSizing:\"border-box\",overflow:\"visible\",touchAction:\"none\",userSelect:\"none\",WebkitUserSelect:\"none\",cursor:interactive?\"grab\":\"default\",outline:\"none\"},children:[/*#__PURE__*/_jsx(\"style\",{children:\".rope-toggle-root:focus-visible{outline:2px solid \"+knobColorOn+\";outline-offset:4px;border-radius:8px}\"}),/*#__PURE__*/_jsxs(\"svg\",{width:\"100%\",height:\"100%\",style:{position:\"absolute\",inset:0,overflow:\"visible\",pointerEvents:\"none\",display:\"block\"},\"aria-hidden\":\"true\",children:[mount&&/*#__PURE__*/_jsxs(\"g\",{children:[/*#__PURE__*/_jsx(\"rect\",{x:ax-Math.max(8,w*2.2),y:0,width:Math.max(16,w*4.4),height:Math.max(5,w*1.4),rx:2,fill:knobColorOff}),/*#__PURE__*/_jsx(\"rect\",{x:ax-Math.max(8,w*2.2),y:0,width:Math.max(16,w*4.4),height:Math.max(1.5,w*.4),fill:\"rgba(255,255,255,0.25)\"})]}),ropeLayers,knobStyle!==\"image\"&&/*#__PURE__*/_jsx(\"g\",{ref:knobRef,transform:initialKnob,style:{filter:glowFilter,transition:\"filter 0.25s ease\"},children:/*#__PURE__*/_jsx(\"g\",{transform:\"scale(\"+knobScale+\")\",style:{transition:\"transform 0.15s ease\"},children:renderKnob()})})]}),knobStyle===\"image\"&&/*#__PURE__*/_jsx(\"div\",{ref:imgRef,style:{position:\"absolute\",left:0,top:0,width:0,height:0,pointerEvents:\"none\",willChange:\"transform\"},children:/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",left:-s/2,top:0,width:s,height:s,borderRadius:\"50%\",overflow:\"hidden\",background:knobColor,boxShadow:glow&&on?\"0 0 \"+Math.round(s*.5)+\"px \"+knobColorOn:\"0 1px 3px rgba(0,0,0,0.25)\",transform:\"scale(\"+knobScale+\")\",transition:\"transform 0.15s ease, box-shadow 0.25s ease, background 0.25s ease\"},children:img&&/*#__PURE__*/_jsx(\"img\",{src:img.src,srcSet:img.srcSet,alt:img.alt||\"\",draggable:false,style:{width:\"100%\",height:\"100%\",objectFit:\"cover\",display:\"block\",opacity:on?1:.75,transition:\"opacity 0.25s ease\"}})})}),showLabel&&/*#__PURE__*/_jsx(\"div\",{ref:labelRef,style:{...font,position:\"absolute\",left:0,top:0,width:120,textAlign:\"center\",color:labelColor,pointerEvents:\"none\",whiteSpace:\"nowrap\",willChange:\"transform\"},children:label})]});}RopeToggle.displayName=\"Rope Toggle\";addPropertyControls(RopeToggle,{knobStyle:{type:ControlType.Enum,title:\"Knob\",options:[\"bulb\",\"ball\",\"bar\",\"ring\",\"tassel\",\"image\"],optionTitles:[\"Bulb\",\"Ball\",\"Bar\",\"Ring\",\"Tassel\",\"Image\"],defaultValue:\"bulb\"},knobImage:{type:ControlType.ResponsiveImage,title:\"Knob Image\",hidden:p=>p.knobStyle!==\"image\"},knobSize:{type:ControlType.Number,title:\"Knob Size\",defaultValue:36,min:12,max:160,step:1,unit:\"px\"},knobColorOff:{type:ControlType.Color,title:\"Knob Off\",defaultValue:\"#3A3A40\"},knobColorOn:{type:ControlType.Color,title:\"Knob On\",defaultValue:\"#FFD166\"},glow:{type:ControlType.Boolean,title:\"Glow When On\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\"},ropeStyle:{type:ControlType.Enum,title:\"Rope\",options:[\"rope\",\"chain\",\"cord\"],optionTitles:[\"Rope\",\"Chain\",\"Cord\"],defaultValue:\"rope\",displaySegmentedControl:true},ropeColor:{type:ControlType.Color,title:\"Rope Color\",defaultValue:\"#C9B79C\"},ropeWidth:{type:ControlType.Number,title:\"Rope Width\",defaultValue:5,min:1,max:16,step:.5,unit:\"px\"},ropeMode:{type:ControlType.Enum,title:\"Length\",options:[\"auto\",\"custom\"],optionTitles:[\"Fill\",\"Custom\"],defaultValue:\"auto\",displaySegmentedControl:true},ropeLength:{type:ControlType.Number,title:\"Rope Length\",defaultValue:200,min:20,max:800,step:1,unit:\"px\",hidden:p=>p.ropeMode!==\"custom\"},anchorX:{type:ControlType.Number,title:\"Anchor X\",defaultValue:50,min:0,max:100,step:1,unit:\"%\"},mount:{type:ControlType.Boolean,title:\"Ceiling Mount\",defaultValue:true,enabledTitle:\"Show\",disabledTitle:\"Hide\"},pullDistance:{type:ControlType.Number,title:\"Pull to Toggle\",defaultValue:40,min:5,max:200,step:1,unit:\"px\"},stretch:{type:ControlType.Number,title:\"Stretch\",defaultValue:60,min:0,max:200,step:1,unit:\"px\"},gravity:{type:ControlType.Number,title:\"Gravity\",defaultValue:1,min:.2,max:3,step:.05},damping:{type:ControlType.Number,title:\"Damping\",defaultValue:.3,min:0,max:1,step:.05},sound:{type:ControlType.Boolean,title:\"Click Sound\",defaultValue:false,enabledTitle:\"On\",disabledTitle:\"Off\"},action:{type:ControlType.Enum,title:\"Controls\",options:[\"framer\",\"attribute\",\"none\"],optionTitles:[\"Framer Theme\",\"HTML Attribute\",\"Event Only\"],defaultValue:\"framer\"},onIsDark:{type:ControlType.Boolean,title:\"On Means\",defaultValue:true,enabledTitle:\"Dark\",disabledTitle:\"Light\",hidden:p=>p.action!==\"framer\"},attrName:{type:ControlType.String,title:\"Attribute\",defaultValue:\"data-theme\",placeholder:\"data-theme\",hidden:p=>p.action!==\"attribute\"},valueOn:{type:ControlType.String,title:\"Value On\",defaultValue:\"dark\",hidden:p=>p.action!==\"attribute\"},valueOff:{type:ControlType.String,title:\"Value Off\",defaultValue:\"light\",hidden:p=>p.action!==\"attribute\"},htmlClass:{type:ControlType.String,title:\"Class When On\",defaultValue:\"dark\",placeholder:\"leave empty to skip\",hidden:p=>p.action!==\"attribute\"},start:{type:ControlType.Enum,title:\"Start\",options:[\"off\",\"on\",\"system\"],optionTitles:[\"Off\",\"On\",\"System\"],defaultValue:\"off\",displaySegmentedControl:true},remember:{type:ControlType.Boolean,title:\"Remember\",defaultValue:true,enabledTitle:\"Yes\",disabledTitle:\"No\"},storeKey:{type:ControlType.String,title:\"Storage Key\",defaultValue:\"rope-toggle\",hidden:p=>!p.remember},showLabel:{type:ControlType.Boolean,title:\"Label\",defaultValue:false,enabledTitle:\"Show\",disabledTitle:\"Hide\"},labelOff:{type:ControlType.String,title:\"Label Off\",defaultValue:\"Light\",hidden:p=>!p.showLabel},labelOn:{type:ControlType.String,title:\"Label On\",defaultValue:\"Dark\",hidden:p=>!p.showLabel},labelColor:{type:ControlType.Color,title:\"Label Color\",defaultValue:\"#8A8A8F\",hidden:p=>!p.showLabel},font:{type:ControlType.Font,title:\"Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:\"13px\",variant:\"Medium\",lineHeight:\"1.2em\"},description:\"Created by BrandingUp\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"RopeToggle\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"320\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerDisableUnlink\":\"* @framerIntrinsicWidth 160\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./RopeToggle.map"],"mappings":"6OAUA,SAAS,GAAU,EAAE,CAAC,IAAM,EAAI,EAAE,IAAI,EAAS,EAAE,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,EAAS,IAAI,CAAC,IAAM,EAAE,EAAE,GAAG,EAAI,EAAE,EAAE,IAAI,KAAK,CAAC,EAAE,EAAE,GAAG,IAAE,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC,CAAE,CAAC,EAAE,MAAM,EAAE,EAAE,KAAK,CAAE,CAChK,SAAS,GAAS,EAAE,EAAQ,EAAS,EAAQ,CAAC,IAAM,EAAI,EAAE,IAAU,EAAI,EAAE,IAAI,EAAe,EAAE,EAAQ,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAI,OAAO,IAAI,CAAC,IAAM,EAAE,EAAI,GAAO,GAAI,EAAE,EAAE,EAAE,IAAI,EAAa,GAAI,EAAE,EAAE,EAAE,IAAI,EAC/L,EAAG,KAAK,MAAM,EAAG,CAAE,EAAK,EAAG,KAAI,GAAI,GAAG,EAAG,GAAI,GAAG,GAAI,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAG,EAAE,GAAG,EAAG,CAAE,CAC9F,IAAI,EAAG,EAAE,GAAG,EAAG,EAAE,GAAG,GAAG,EAAE,SAAS,CAAC,IAAM,EAAG,EAAG,EAAE,GAAG,EAAG,EAAG,EAAE,GAAS,EAAE,KAAK,MAAM,EAAG,CAAE,GAAG,EAAQ,EAAI,EAAE,IAAI,EAAW,EAAE,IAAK,EAAG,EAAE,GAAG,EAAG,EAAE,EAAI,EAAG,EAAE,GAAG,EAAG,EAAE,EAAK,CAAC,IAAM,EAAK,EAAI,EAAI,OAAO,GAAG,IAAI,IAAI,EAAE,EAAE,EAAE,GAAK,IAAI,CAAC,EAAI,EAAE,CAAC,EAAE,EAAE,GAAG,EAAI,EAAE,CAAC,EAAE,EAAE,GAAM,EAAE,WAAU,EAAK,EAAE,EAAG,EAAK,EAAE,GAAI,IAAI,IAAI,EAAE,EAAE,EAAE,EAAI,OAAO,EAAE,IAAI,CAAC,IAAM,EAAE,EAAI,GAAG,EAAE,EAAI,EAAE,GAAO,EAAG,EAAE,EAAE,EAAE,EAAE,EAAG,EAAE,EAAE,EAAE,EAAQ,EAAE,KAAK,MAAM,EAAG,CAAE,GAAG,KAAW,GAAM,EAAE,GAAK,EACxZ,EAAG,IAAI,EAAE,EAAE,GAAS,EAAG,EAAE,UAAU,IAAI,EAAI,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,GAAS,EAAE,EAAG,GAAI,EAAE,GAAI,EAAK,GAAI,EAAK,EAAE,GAAO,EAAG,EAAP,EAAU,EAAE,GAAO,EAAG,EAAP,EAAU,EAAE,GAAO,EAAG,EAAP,EAAU,EAAE,GAAO,EAAG,EAAP,CAAU,CAAC,CAAC,EAAI,EAAE,CAAC,EAAE,EAAE,GAAG,EAAI,EAAE,CAAC,EAAE,EAAE,GAAM,EAAE,WAAU,EAAK,EAAE,EAAG,EAAK,EAAE,GAEhO,EAAE,UAAS,GAAY,EAAE,EAAE,CAAE,CACjC,SAAS,GAAY,EAAE,EAAE,CAAC,IAAM,EAAI,EAAE,IAAU,EAAI,EAAE,IAAI,EAAS,IAAI,IAAI,EAAE,EAAE,EAAE,EAAI,OAAO,EAAE,IAAI,CAAC,IAAM,EAAE,EAAI,GAAG,EAAE,EAAI,EAAE,GAAS,EAAG,EAAE,EAAE,EAAE,EAAE,EAAG,EAAE,EAAE,EAAE,EAAQ,EAAE,KAAK,MAAM,EAAG,CAAE,GAAG,KAAW,GAAI,EAAE,EAAE,EAAG,EAAE,EAAI,EAAE,GAAG,EAAQ,GAAI,EAAE,EAAE,EAAG,EAAE,EAAI,EAAE,GAAG,EAAE,EAAE,GAAG,EAAG,EAAE,GAAG,EAAG,EAAE,IAAI,EAAG,EAAE,IAAI,CAAG,CAAC,CACxR,SAAS,GAAS,EAAI,CAAC,GAAG,EAAI,OAAO,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,EAAI,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,IAAI,EAAI,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,IAAI,IAAI,EAAE,EAAE,EAAE,EAAI,OAAO,EAAE,IAAI,CAAC,IAAM,GAAI,EAAI,EAAE,CAAC,EAAE,EAAI,EAAE,EAAE,CAAC,GAAG,EAAE,GAAI,EAAI,EAAE,CAAC,EAAE,EAAI,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,EAAI,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,IAAI,EAAI,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,IAAI,EAAG,QAAQ,CAAC,EAAE,IAAI,EAAG,QAAQ,CAAC,CAAE,CAAC,IAAM,EAAE,EAAI,EAAI,OAAO,GAA6C,MAA1C,IAAG,KAAK,EAAE,EAAE,QAAQ,CAAC,EAAE,IAAI,EAAE,EAAE,QAAQ,CAAC,EAAS,CAAE,CAKxW,SAAS,EAAc,EAAK,EAAK,CAAC,IAAM,EAAI,GAAM,EAAK,aAAa,GAAG,CAAC,GAAK,EAAE,IAAM,QAAQ,IAAM,SAAS,IAAM,QAAQ,OAAO,IAAM,EAAG,EAAK,MAAM,IAAI,IAAI,EAAE,EAAE,EAAE,EAAG,OAAO,IAAI,CAAC,IAAM,EAAK,EAAG,GAAM,EAAK,QAAQ,SAAS,IAAI,GAAE,EAAK,KAAK,EAAK,IAAI,EAAG,iBAAiB,CAAI,EAAE,GAAG,CAAE,CAAC,CAAC,SAAS,GAAuB,EAAI,CAAC,IAAM,EAAM,CAAC,EAAQ,EAAK,CAAC,EAAQ,EAAO,EAAI,YAAY,IAAI,IAAI,EAAE,EAAE,EAAE,EAAO,OAAO,IAAI,CAAC,IAAI,EAAM,GAAG,CAAC,EAAM,EAAO,EAAE,CAAC,QAAS,MAAS,CAAC,QAAS,CAC5c,KAAe,IAAI,IAAI,EAAE,EAAE,EAAE,EAAM,OAAO,IAAI,CAAC,IAAM,EAAK,EAAM,GAAG,GAAG,EAAK,eAAe,EAAK,cAAc,QAAQ,MAAM,EAAE,IAAI,8BAA8B,CAAC,IAAM,EAAM,EAAK,UAAU,CAAC,EAAE,IAAI,IAAI,EAAE,EAAE,EAAE,EAAM,OAAO,IAAI,EAAc,EAAM,GAAG,CAAI,CAAE,MAAM,EAAc,EAAK,CAAK,CAAE,CAAC,CAAC,IAAI,EAAG,EAAI,eAAe,CAAc,EAAM,IAAI,EAAG,EAAI,cAAc,OAAO,EAAE,EAAG,GAAG,EAAe,EAAI,KAAK,YAAY,CAAE,GAAG,EAAG,YAAY,sCAAqC,EAAM,KAAK,EAAE,EAAE,sCAAwC,EAAK,KAAK,EAAE,EAAE,mGAAwG,CAChoB,SAAS,GAAU,EAAO,EAAG,CAAC,IAAM,EAAE,WAAiB,EAAG,EAAE,cAAc,EAAE,mBAAuB,KAAU,GAAG,CAAC,IAAM,EAAI,AAAiB,EAAO,UAAQ,IAAI,EAAO,EAAI,QAAQ,aAAa,EAAI,QAAO,EAAI,OAAO,EAAE,IAAM,EAAE,EAAI,YAAkB,EAAI,EAAI,iBAAiB,EAAQ,EAAK,EAAI,WAAW,EAAE,EAAI,KAAK,SAAS,EAAI,UAAU,eAAe,EAAG,KAAK,KAAK,CAAC,EAAE,EAAI,UAAU,6BAA6B,EAAG,IAAI,IAAI,EAAE,IAAI,EAAE,EAAK,KAAK,eAAe,IAAI,CAAC,EAAE,EAAK,KAAK,6BAA6B,KAAK,EAAE,GAAG,EAAE,EAAI,QAAQ,CAAI,EAAE,EAAK,QAAQ,EAAI,WAAW,EAAE,EAAI,MAAM,CAAC,EAAE,EAAI,KAAK,EAAE,GAAG,CAAE,MAAS,CAAC,CAAC,CASjlB,SAAwB,EAAW,EAAM,CAAC,GAAK,CAAC,YAAU,OAAO,YAAU,WAAS,GAAG,gBAAa,UAAU,cAAY,UAAU,QAAK,GAAK,YAAU,OAAO,YAAU,UAAU,aAAU,EAAE,WAAS,OAAO,aAAW,IAAI,WAAQ,GAAG,SAAM,GAAK,gBAAa,GAAG,WAAQ,GAAG,WAAQ,EAAE,WAAQ,GAAG,SAAM,GAAM,SAAO,SAAS,WAAS,GAAK,WAAS,aAAa,UAAQ,OAAO,WAAS,QAAQ,aAAU,OAAO,SAAM,MAAM,YAAS,GAAK,YAAS,cAAc,aAAU,GAAM,YAAS,QAAQ,WAAQ,OAAO,cAAW,UAAU,QAAK,CAAC,WAAW,QAAQ,WAAW,IAAI,SAAS,EAAE,EAAE,UAAO,EAAY,GAAS,GAAoB,EAC5mB,GAAS,EAAa,QAAQ,IAAI,EAAa,OAC/C,EAAY,CAAC,IAAU,CAAC,GAC1B,CAAC,EAAG,GAAOA,EAAS,KAAQ,IAAI,EAAO,CAAC,GAAQ,IAAYA,EAAS,EAAK,EACzE,CAAC,EAAK,IAASA,EAAS,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,EAAQ,EAAQC,EAAO,IAAI,EAAQ,EAAQA,EAAO,IAAI,EAAQ,EAASA,EAAO,IAAI,EAAQ,EAASA,EAAO,IAAI,EAAQ,GAAQA,EAAO,IAAI,EAAQ,EAAOA,EAAO,IAAI,EAAQ,GAASA,EAAO,IAAI,EAAQ,EAAQA,EAAO,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,EAAE,IAAI,IAAI,EAAE,IAAI,EAAE,IAAI,SAAS,GAAM,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,EAAQ,EAAOA,EAAO,CAAC,EAAQ,EAAWA,EAAO,EAAK,EAAQ,EAAUA,EAAO,EAAI,EAAQ,EAAWA,EAAO,EAAK,EAAQ,GAASA,EAAO,IAAI,EAAQ,EAAMA,EAAO,CAAE,EAAE,EAAM,QAAQ,EAAG,IAAM,EAAQA,EAAO,CAAC,GAAG,GAAG,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAM,KAAK,EAAK,CAAC,EAAQ,EAAUA,EAAO,CAAC,WAAQ,WAAQ,WAAQ,eAAY,CAAC,EAAE,EAAU,QAAQ,CAAC,WAAQ,WAAQ,WAAQ,eAAY,EAAE,IAAM,EAASA,EAAO,CAAC,SAAO,WAAS,WAAS,UAAQ,WAAS,aAAU,YAAS,YAAS,QAAK,CAAC,EAAE,EAAS,QAAQ,CAAC,SAAO,WAAS,WAAS,UAAQ,WAAS,aAAU,YAAS,YAAS,QAAK,EACv5B,IAAM,EAAM,IAAY,MAAM,EAAS,GAAG,IAAY,SAAS,EAAS,IAAI,IAAY,OAAO,EAAS,KAAK,EAAe,EAAQC,MAAY,CAAC,IAAM,EAAK,KAAK,IAAI,GAAG,EAAK,EAAE,GAAO,GAAU,GAAG,EAAE,EAAE,OAAO,IAAW,SAAS,KAAK,IAAI,GAAG,CAAU,EAAE,CAAK,EAAE,CAAC,EAAS,EAAW,EAAK,EAAE,EAAM,EAAS,CAAC,EAAQ,EAAG,KAAK,IAAI,EAAE,KAAK,IAAI,IAAI,EAAO,CAAC,EAAE,IAAI,EAAK,EAC7V,MAAS,CAAyB,IAAM,EAAtB,EAAQ,QAAoB,IAAI,GAAG,EAAI,OAAO,EAAE,OAAO,IAAM,EAAE,GAAS,CAAG,EAAK,EAAQ,SAAQ,EAAQ,QAAQ,aAAa,IAAI,CAAC,EAAK,EAAS,SAAQ,EAAS,QAAQ,aAAa,IAAI,CAAC,EAAK,EAAS,SAAQ,EAAS,QAAQ,aAAa,IAAI,CAAC,EAAE,IAAM,EAAE,EAAI,EAAI,OAAO,GAAG,EAAE,EAAI,EAAI,OAAO,GAAS,EAAI,KAAK,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,KAAK,GAAG,GAAS,EAAG,aAAa,EAAE,EAAE,QAAQ,CAAC,EAAE,IAAI,EAAE,EAAE,QAAQ,CAAC,EAAE,YAAY,EAAI,QAAQ,CAAC,EAAE,IAAO,GAAQ,SAAQ,GAAQ,QAAQ,aAAa,YAAY,CAAE,EAAK,EAAO,UAAQ,EAAO,QAAQ,MAAM,UAAU,aAAa,EAAE,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,EAAE,QAAQ,CAAC,EAAE,cAAc,EAAI,QAAQ,CAAC,EAAE,QAAU,GAAS,UAAQ,GAAS,QAAQ,MAAM,UAAU,cAAc,EAAE,EAAE,GAAA,CAAI,QAAQ,CAAC,EAAE,OAAO,EAAE,EAAE,EAAM,EAAA,CAAG,QAAQ,CAAC,EAAE,MAAM,EACnwB,MAAa,CAAC,EAAW,QAAQ,GAAS,EAAO,SAAQ,qBAAqB,EAAO,OAAO,EAAE,EAAO,QAAQ,CAAE,EAAQ,OAAS,CAAC,GAAG,CAAC,EAAW,QAAQ,OAAO,IAAM,EAAE,EAAQ,QAAc,EAAE,EAAU,QAAc,EAAS,KAAK,KAAK,IAAI,EAAE,KAAK,IAAI,EAAE,EAAE,OAAO,CAAC,EAAE,IAAI,GAAG,EAAW,QAAQ,CACvS,IAAI,EAAG,EAAE,GAAG,EAAG,EAAE,GAAG,EAAE,IAAI,GAAG,EAAE,SAAS,CAAC,IAAM,EAAG,EAAE,GAAG,EAAE,GAAG,EAAG,EAAE,GAAG,EAAE,GAAS,EAAE,KAAK,MAAM,EAAG,CAAE,GAAG,EAAQ,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAG,EAAE,GAAG,EAAG,EAAE,EAAE,EAAG,EAAE,GAAG,EAAG,EAAE,CAAE,CAAC,IAAI,IAAI,EAAE,EAAE,GAAG,EAAS,IAAI,CAAC,IAAM,EAAE,EAAE,EAAe,EAAE,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAG,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAG,EAAE,IAAI,CAAE,CAAQ,GAAP,EAAK,EAAK,CAAC,EAAE,SAAS,CAAC,EAAS,EAAE,MAAO,CAAC,EAAO,QAAQ,sBAAsB,EAAI,EAAE,MAAO,CAAC,GAAS,EAAE,EAAE,QAAQ,EAAS,EAAE,OAAO,EAAE,IAAI,EAAQ,EAAE,IAAI,IAAM,KAAK,EAAE,IAAI,EAAQ,KAAK,IAAI,EAAQ,KAAK,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,EACha,GADka,EAAK,EAC1gB,CAAC,EAAE,UAAU,EAAQ,GAAG,EAAE,QAAa,EAAE,MAAM,EAAK,CAAC,EAAE,UAAU,EAAQ,GAAG,EAAE,OAAY,EAAE,KAAK,EAAK,EAAE,MAAM,IAAI,EAAE,KAAK,IAAI,CAAC,GAAY,EAAE,CAAC,EAC/I,IAAI,IAAM,KAAK,EAAE,IAAK,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAG,EAAK,EAAE,EAAS,EAAE,MAAO,CAAC,EAAO,QAAQ,sBAAsB,EAAI,CAAE,EAAQ,MAAS,CAAI,EAAW,SAAS,CAAC,GAAa,CAAC,EAAU,UAAe,EAAW,QAAQ,GAAK,EAAQ,QAAQ,MAAM,EAAE,EAAQ,QAAQ,KAAK,EAAE,EAAO,QAAQ,sBAAsB,EAAI,EAAE,EAC5S,IAAY,EAAK,IAAO,CAAC,GAAG,CAAC,GAAa,OAAO,SAAW,IAAY,OAAO,IAAM,EAAE,EAAS,QAAc,EAAK,SAAS,gBAAsB,EAAM,IAAO,EAAE,SAAS,OAAO,QAAQ,GAAG,CAAI,EAAE,SAAS,UAAU,GAAuB,QAAQ,EAAE,EAAK,aAAa,GAAW,CAAK,GAAW,EAAE,SAAS,cAAgB,EAAE,UAAS,EAAK,aAAa,EAAE,SAAS,EAAK,EAAE,QAAQ,EAAE,QAAQ,EAAK,EAAE,WAAU,EAAK,UAAU,OAAO,EAAE,UAAU,CAAI,GAAM,EAAE,UAAU,EAAE,UAAS,aAAa,QAAQ,EAAE,SAAS,EAAK,KAAK,KAAK,CAAE,MAAS,CAAC,CAAC,GAAG,EAAM,GAAG,CAAC,WAAW,cAAc,IAAI,YAAY,EAAW,CAAC,OAAO,CAAC,GAAG,EAAK,OAAK,CAAC,CAAC,CAAC,CAAE,MAAS,CAAC,CAAE,EAAQ,GAAO,GAAK,CAAC,IAAM,EAAK,CAAC,EAAM,QAAqI,GAA7H,EAAM,QAAQ,EAAK,MAAoB,EAAM,CAAI,CAAC,EAAE,GAAW,EAAK,EAAI,EAAK,EAAS,QAAQ,OAAM,GAAU,GAAS,CAAI,EAAK,GAAK,CAAC,EAAW,QAAQ,CACr0B,IAAM,EAAE,EAAQ,QAAc,EAAK,EAAE,IAAI,EAAE,IAAI,OAAO,GAAM,IAAM,EAAK,IAAI,EAAE,EAAK,IAAI,KAAK,EAAK,CAAE,CAAC,EACnG,MAAc,CAAC,GAAG,CAAC,EAAY,OAAO,IAAM,EAAG,OAAO,YAAa,WAAW,WAAW,kCAAkC,EAAE,KAAK,EAAW,QAAQ,CAAC,EAAE,GAAI,EAAG,SAAS,IAAM,EAAE,EAAS,QAAY,EAAQ,KAAK,GAAG,CAAC,IAAM,EAAM,EAAE,UAAU,EAAE,SAAS,aAAa,QAAQ,EAAE,QAAQ,EAAE,KAAQ,IAAQ,KAAK,EAAQ,GAAa,IAAQ,QAAM,EAAQ,GAAM,MAAS,CAAC,CAAC,GAAG,IAAU,KAAM,GAAG,KAAQ,SAAS,CAAC,IAAM,EAAK,OAAO,YAAa,YAAY,WAAW,8BAA8B,CAAC,CAAC,QAAQ,EAAQ,EAAE,SAAS,SAAS,IAAO,EAAE,SAAS,CAAK,KAAM,GAAQ,KAAQ,KAAM,EAAM,QAAQ,EAAQ,MAAoB,EAAM,CAAO,CAAC,EAAE,GAAW,EAAQ,EAAK,EAClpB,IAAM,EAAM,GAAG,CAAC,IAAM,EAAE,GAAG,EAAE,QAAQ,OAAO,EAAE,OAAO,IAAK,UAAU,EAAE,OAAO,GAAG,KAAQ,IAAI,MAAM,IAAI,EAAM,UAAe,EAAM,QAAQ,EAAE,MAAoB,EAAM,CAAC,CAAC,EAAE,EAAgD,OAA9C,WAAW,iBAAiB,EAAW,CAAK,MAAY,WAAW,oBAAoB,EAAW,CAAK,CAClR,EAAE,CAAC,CAAW,CAAC,EACf,MAAc,CAAK,GAAmB,GAAW,EAAM,QAAQ,EAAK,CACpE,EAAE,CAAC,EAAO,EAAS,EAAS,EAAQ,EAAS,GAAU,CAAW,CAAC,EACnE,OAAuB,CAAC,IAAM,EAAK,EAAQ,QAAQ,GAAG,CAAC,EAAK,OAAO,IAAM,GAAO,EAAE,IAAI,CAAI,KAAK,IAAI,EAAE,EAAK,CAAC,EAAE,IAAI,KAAK,IAAI,EAAE,EAAK,CAAC,EAAE,IAAU,MAAoB,GAAQ,CAAC,IAAE,GAAC,CAAC,CAAC,CAAE,EAA4C,GAA1C,EAAM,EAAK,YAAY,EAAK,YAAY,EAAK,OAAO,eAAiB,IAAY,OAAO,IAAM,EAAG,IAAI,eAAe,GAAS,CAAC,IAAM,EAAG,EAAQ,EAAE,CAAC,YAAY,EAAM,EAAG,MAAM,EAAG,MAAM,CAAE,CAAC,EAAmB,OAAjB,EAAG,QAAQ,CAAI,MAAY,EAAG,WAAW,CACxZ,EAAE,CAAC,EAAK,EAAE,EAAK,CAAC,CAAC,EACjB,OAAuB,CAAC,IAAM,EAAE,EAAQ,QAAgG,MAAxF,GAAE,EAAE,EAAK,EAAE,EAAE,EAAE,EAAK,EAAE,EAAE,GAAG,EAAG,EAAE,GAAG,EAAE,EAAE,IAAI,EAAQ,EAAE,SAAS,GAAM,GAAU,CAAC,EAAE,EAAK,MAAY,EAAS,CAC3J,EAAE,CAAC,EAAK,EAAE,EAAK,EAAE,EAAG,EAAQ,CAAK,CAAC,EAClC,MAAc,CAAC,GAAG,CAAC,EAAY,OAAO,IAAM,EAAK,EAAQ,QAAQ,GAAG,CAAC,GAAM,OAAO,qBAAuB,IAAY,CAAC,EAAU,QAAQ,GAAK,MAAO,CAAC,IAAM,EAAG,IAAI,qBAAqB,GAAS,CAAC,EAAU,QAAQ,EAAQ,EAAE,CAAC,eAAmB,EAAU,QAA2B,EAAQ,QAAQ,UAAS,EAAK,EAAjD,EAAS,CAA0C,EAAE,CAAC,UAAU,CAAC,CAAC,EAAmB,OAAjB,EAAG,QAAQ,CAAI,MAAY,EAAG,WAAW,CAChX,EAAE,CAAC,CAAW,CAAC,EACf,IAAM,GAAc,GAAG,CAAC,GAAG,CAAC,GAAa,EAAE,OAAO,EAAE,OAAO,IAAM,EAAE,EAAQ,QAAc,EAAK,EAAE,IAAI,EAAE,IAAI,OAAO,GAAG,GAAG,CAAC,EAAK,OAAO,IAAM,EAAG,EAAQ,QAAQ,EAAG,GAAG,EAAE,UAAU,EAAG,MAAM,EAAE,QAAQ,EAAG,MAAM,EAAE,QAAQ,EAAG,MAAM,EAAK,EAAE,EAAG,MAAM,EAAK,EAAE,EAAG,MAAM,GAAM,EAAG,KAAK,GAAM,EAAE,SAAS,GAAK,EAAE,GAAG,EAAK,EAAE,EAAE,GAAG,EAAK,EAAE,GAAG,CAAC,EAAE,cAAc,kBAAkB,EAAE,SAAS,CAAE,MAAS,CAAC,CAAI,EAAQ,UAAQ,EAAQ,QAAQ,MAAM,OAAO,YAAW,EAAK,CAAE,EAAQ,GAAc,GAAG,CAAC,IAAM,EAAE,EAAQ,QAAc,EAAG,EAAQ,QAAQ,GAAG,CAAC,EAAE,UAAU,EAAE,YAAY,EAAG,GAAG,OAAO,IAAM,EAAG,EAAE,QAAQ,EAAG,MAAM,EAAG,EAAE,QAAQ,EAAG,MAAS,KAAK,MAAM,EAAG,CAAE,EAAE,IAAE,EAAG,MAAM,IAAK,EAAE,GAAG,EAAG,MAAM,EAAG,EAAE,GAAG,EAAG,MAAM,EAAG,IAAM,EAAK,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAU,QAAQ,aAAgB,IAAO,EAAG,OAAM,EAAG,KAAK,EAAK,MAAoB,GAAW,CAAI,CAAC,GAAG,EAAK,CAAE,EAAQ,GAAY,GAAG,CAAC,IAAM,EAAE,EAAQ,QAAc,EAAG,EAAQ,QAAW,CAAC,EAAE,UAAU,EAAE,YAAY,EAAG,KAAU,EAAE,SAAS,GAAM,EAAG,GAAG,GAAM,EAAQ,UAAQ,EAAQ,QAAQ,MAAM,OAAO,SAC9+B,EAAG,MAAM,CAAC,EAAG,QAAM,GAAO,CAAC,EAAG,KAAK,EAAK,EAAG,OAAM,EAAG,KAAK,GAAM,MAAoB,GAAW,EAAK,CAAC,GAAG,EAAK,EAAE,EAAQ,GAAU,GAAG,CAAK,IAAsB,EAAE,MAAM,SAAS,EAAE,MAAM,KAAK,EAAE,MAAM,cAAY,EAAE,eAAe,EAAE,GAAO,EAAI,EAAG,EAC9O,EAAU,EAAG,EAAY,GAAmB,GAAW,IAAM,EAAG,mBAAmB,KAAK,MAAM,EAAS,GAAG,EAAE,MAAM,EAAY,IAAI,OAAa,GAAU,GAAQ,KAAK,EAAQ,EAAE,EAAe,OAAe,CAAC,OAAO,EAAP,CAAkB,IAAI,OAAO,OAAoB,EAAM,IAAI,CAAC,SAAS,CAAc,EAAK,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,CAAS,CAAC,EAAe,EAAK,SAAS,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,KAAK,wBAAwB,CAAC,EAAe,EAAK,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,OAAO,OAAO,mBAAmB,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,MAAM,OAAoB,EAAM,IAAI,CAAC,SAAS,CAAc,EAAK,OAAO,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,OAAO,EAAE,GAAG,GAAG,EAAE,IAAI,KAAK,CAAS,CAAC,EAAe,EAAK,OAAO,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,IAAI,MAAM,EAAE,IAAI,OAAO,EAAE,IAAI,GAAG,EAAE,IAAI,KAAK,uBAAuB,CAAC,EAAe,EAAK,OAAO,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,OAAO,EAAE,GAAG,GAAG,EAAE,IAAI,KAAK,OAAO,OAAO,mBAAmB,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,OAAO,OAAoB,EAAM,IAAI,CAAC,SAAS,CAAc,EAAK,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,KAAK,OAAO,OAAO,EAAU,YAAY,EAAE,GAAG,CAAC,EAAe,EAAK,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,KAAK,OAAO,OAAO,yBAAyB,YAAY,EAAE,IAAI,gBAAgB,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,SAAS,CAAC,IAAM,EAAQ,CAAC,EAAY,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,IAAM,EAAE,EAAG,EAAK,EAAE,EAAE,EAAQ,KAAkB,EAAK,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,EAAE,IAAI,KAAK,OAAO,OAAO,EAAU,YAAY,KAAK,IAAI,IAAI,EAAE,GAAG,EAAE,cAAc,OAAO,EAAE,CAAC,CAAC,CAAE,CAAC,OAAoB,EAAM,IAAI,CAAC,SAAS,CAAc,EAAK,OAAO,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,OAAO,EAAE,IAAI,GAAG,EAAE,IAAI,KAAK,CAAS,CAAC,EAAe,EAAK,OAAO,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,MAAM,EAAE,IAAI,OAAO,EAAE,IAAI,KAAK,kBAAkB,CAAC,EAAE,CAAO,CAAC,CAAC,CAAE,CAAC,IAAI,OAAO,OAAoB,EAAM,IAAI,CAAC,SAAS,CAAc,EAAK,OAAO,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,GAAG,GAAG,EAAE,IAAI,KAAK,SAAS,CAAC,EAAe,EAAK,OAAO,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,IAAI,MAAM,EAAE,GAAG,OAAO,EAAE,IAAI,KAAK,iBAAiB,CAAC,EAAe,EAAK,OAAO,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,IAAI,MAAM,EAAE,GAAG,OAAO,EAAE,IAAI,KAAK,iBAAiB,CAAC,EAAe,EAAK,OAAO,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC,EAAE,IAAI,IAAI,EAAE,GAAG,KAAK,EAAE,GAAG,IAAI,EAAE,GAAG,UAAU,EAAE,IAAI,IAAI,EAAE,GAAG,KAAK,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,KAAK,CAAS,CAAC,EAAe,EAAK,OAAO,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,GAAG,OAAO,EAAE,IAAI,IAAI,EAAE,IAAI,IAAI,EAAE,GAAG,KAAK,OAAO,OAAO,EAAG,yBAAyB,yBAAyB,YAAY,KAAK,IAAI,EAAE,EAAE,GAAG,EAAE,cAAc,OAAO,CAAC,EAAe,EAAK,SAAS,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,KAAK,uBAAuB,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,OAAO,IAAK,CAAC,EACj8E,EAAY,IAAI,EAAG,QAAQ,CAAC,EAAE,OAAO,EAAG,QAAQ,CAAC,EAAE,IAAI,EAAQ,QAAQ,CAAC,EAAQ,GAAY,aAAa,EAAG,QAAQ,CAAC,EAAE,IAAI,EAAQ,QAAQ,CAAC,EAAE,cAC9I,EAAE,KAAK,IAAI,EAAE,EAAS,EAAQ,GAAoB,IAAY,QAA6B,EAAMC,EAAU,CAAC,SAAS,CAAc,EAAK,OAAO,CAAC,IAAI,EAAQ,EAAE,EAAY,KAAK,OAAO,OAAO,EAAU,cAAc,IAAI,YAAY,KAAK,IAAI,EAAE,EAAE,EAAE,EAAE,cAAc,QAAQ,eAAe,OAAO,CAAC,EAAe,EAAK,OAAO,CAAC,IAAI,EAAS,EAAE,EAAY,KAAK,OAAO,OAAO,EAAU,YAAY,EAAE,cAAc,QAAQ,eAAe,QAAQ,gBAAgB,QAAQ,EAAE,IAAI,CAAC,EAAe,EAAK,OAAO,CAAC,IAAI,EAAS,EAAE,EAAY,KAAK,OAAO,OAAO,yBAAyB,YAAY,EAAE,GAAG,cAAc,QAAQ,gBAAgB,QAAQ,EAAE,KAAK,iBAAiB,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAM,IAAY,OAA4B,EAAMA,EAAU,CAAC,SAAS,CAAc,EAAK,OAAO,CAAC,IAAI,EAAQ,EAAE,EAAY,KAAK,OAAO,OAAO,EAAU,YAAY,EAAE,cAAc,QAAQ,eAAe,OAAO,CAAC,EAAe,EAAK,OAAO,CAAC,IAAI,EAAS,EAAE,EAAY,KAAK,OAAO,OAAO,yBAAyB,YAAY,KAAK,IAAI,GAAG,EAAE,EAAE,EAAE,cAAc,QAAQ,eAAe,OAAO,CAAC,EAAe,EAAK,OAAO,CAAC,IAAI,EAAS,EAAE,EAAY,KAAK,OAAO,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,EAC5lC,EAAMA,EAAU,CAAC,SAAS,CAAc,EAAK,OAAO,CAAC,IAAI,EAAQ,EAAE,EAAY,KAAK,OAAO,OAAO,EAAU,YAAY,EAAE,cAAc,QAAQ,eAAe,OAAO,CAAC,EAAe,EAAK,OAAO,CAAC,IAAI,EAAS,EAAE,EAAY,KAAK,OAAO,OAAO,yBAAyB,YAAY,EAAE,IAAI,cAAc,OAAO,gBAAgB,EAAE,GAAG,IAAI,EAAE,GAAG,CAAC,EAAe,EAAK,OAAO,CAAC,IAAI,EAAS,EAAE,EAAY,KAAK,OAAO,OAAO,mBAAmB,YAAY,EAAE,IAAI,cAAc,OAAO,gBAAgB,EAAE,GAAG,IAAI,EAAE,IAAI,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAa,EAAI,GAAW,EAAU,IAAI,EAAU,KAAW,GAAM,EAAG,GAAQ,GAAuE,OAAoB,EAAM,MAAM,CAAC,IAAI,EAAQ,UAAU,mBAAmB,KAAK,SAAS,eAAe,EAAG,aAAxJ,IAAS,SAAS,mBAAmB,SAA0I,SAAS,EAAY,EAAE,GAAiB,iBAA4B,iBAA0B,eAAY,gBAAgB,GAAsB,aAAU,MAAM,CAAC,GAAG,GAAM,SAAS,WAAW,UAAU,aAAa,SAAS,UAAU,YAAY,OAAO,WAAW,OAAO,iBAAiB,OAAO,OAAO,EAAY,OAAO,UAAU,QAAQ,MAAM,EAAE,SAAS,CAAc,EAAK,QAAQ,CAAC,SAAS,qDAAqD,EAAY,wCAAwC,CAAC,EAAe,EAAM,MAAM,CAAC,MAAM,OAAO,OAAO,OAAO,MAAM,CAAC,SAAS,WAAW,MAAM,EAAE,SAAS,UAAU,cAAc,OAAO,QAAQ,OAAO,EAAE,cAAc,OAAO,SAAS,CAAC,IAAoB,EAAM,IAAI,CAAC,SAAS,CAAc,EAAK,OAAO,CAAC,EAAE,EAAG,KAAK,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,KAAK,IAAI,GAAG,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAY,CAAC,EAAe,EAAK,OAAO,CAAC,EAAE,EAAG,KAAK,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,KAAK,IAAI,GAAG,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI,IAAI,EAAE,EAAE,EAAE,KAAK,wBAAwB,CAAC,CAAC,CAAC,CAAC,EAAE,GAAW,IAAY,SAAsB,EAAK,IAAI,CAAC,IAAI,GAAQ,UAAU,GAAY,MAAM,CAAC,OAAO,GAAW,WAAW,mBAAmB,EAAE,SAAsB,EAAK,IAAI,CAAC,UAAU,SAAS,GAAU,IAAI,MAAM,CAAC,WAAW,sBAAsB,EAAE,SAAS,GAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAY,SAAsB,EAAK,MAAM,CAAC,IAAI,EAAO,MAAM,CAAC,SAAS,WAAW,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,OAAO,WAAW,WAAW,EAAE,SAAsB,EAAK,MAAM,CAAC,MAAM,CAAC,SAAS,WAAW,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,MAAM,SAAS,SAAS,WAAW,EAAU,UAAU,IAAM,EAAG,OAAO,KAAK,MAAM,EAAE,EAAE,EAAE,MAAM,EAAY,6BAA6B,UAAU,SAAS,GAAU,IAAI,WAAW,oEAAoE,EAAE,SAAS,GAAkB,EAAK,MAAM,CAAC,IAAI,EAAI,IAAI,OAAO,EAAI,OAAO,IAAI,EAAI,KAAK,GAAG,UAAU,GAAM,MAAM,CAAC,MAAM,OAAO,OAAO,OAAO,UAAU,QAAQ,QAAQ,QAAQ,QAAQ,EAAG,EAAE,IAAI,WAAW,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAwB,EAAK,MAAM,CAAC,IAAI,GAAS,MAAM,CAAC,GAAG,GAAK,SAAS,WAAW,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,UAAU,SAAS,MAAM,GAAW,cAAc,OAAO,WAAW,SAAS,WAAW,WAAW,EAAE,SAAS,EAAK,CAAC,CAAC,CAAC,CAAC,CAAE,gCAvDh6F,IAAqF,KAAqF,EAAO,EAAS,GAAS,GAAK,GAC/Q,GAAmB,OAAO,SAAW,IAAYC,EAAgBC,EAAgB,EAAe,oBAA0B,GAAW,kBAAwB,EAAW,aAsDg0F,EAAW,YAAY,cAAc,GAAoB,EAAW,CAAC,UAAU,CAAC,KAAK,EAAY,KAAK,MAAM,OAAO,QAAQ,CAAC,OAAO,OAAO,MAAM,OAAO,SAAS,OAAO,EAAE,aAAa,CAAC,OAAO,OAAO,MAAM,OAAO,SAAS,OAAO,EAAE,aAAa,MAAM,EAAE,UAAU,CAAC,KAAK,EAAY,gBAAgB,MAAM,aAAa,OAAO,GAAG,EAAE,YAAY,OAAO,EAAE,SAAS,CAAC,KAAK,EAAY,OAAO,MAAM,YAAY,aAAa,GAAG,IAAI,GAAG,IAAI,IAAI,KAAK,EAAE,KAAK,IAAI,EAAE,aAAa,CAAC,KAAK,EAAY,MAAM,MAAM,WAAW,aAAa,SAAS,EAAE,YAAY,CAAC,KAAK,EAAY,MAAM,MAAM,UAAU,aAAa,SAAS,EAAE,KAAK,CAAC,KAAK,EAAY,QAAQ,MAAM,eAAe,aAAa,GAAK,aAAa,KAAK,cAAc,KAAK,EAAE,UAAU,CAAC,KAAK,EAAY,KAAK,MAAM,OAAO,QAAQ,CAAC,OAAO,QAAQ,MAAM,EAAE,aAAa,CAAC,OAAO,QAAQ,MAAM,EAAE,aAAa,OAAO,wBAAwB,EAAI,EAAE,UAAU,CAAC,KAAK,EAAY,MAAM,MAAM,aAAa,aAAa,SAAS,EAAE,UAAU,CAAC,KAAK,EAAY,OAAO,MAAM,aAAa,aAAa,EAAE,IAAI,EAAE,IAAI,GAAG,KAAK,GAAG,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,EAAY,KAAK,MAAM,SAAS,QAAQ,CAAC,OAAO,QAAQ,EAAE,aAAa,CAAC,OAAO,QAAQ,EAAE,aAAa,OAAO,wBAAwB,EAAI,EAAE,WAAW,CAAC,KAAK,EAAY,OAAO,MAAM,cAAc,aAAa,IAAI,IAAI,GAAG,IAAI,IAAI,KAAK,EAAE,KAAK,KAAK,OAAO,GAAG,EAAE,WAAW,QAAQ,EAAE,QAAQ,CAAC,KAAK,EAAY,OAAO,MAAM,WAAW,aAAa,GAAG,IAAI,EAAE,IAAI,IAAI,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,CAAC,KAAK,EAAY,QAAQ,MAAM,gBAAgB,aAAa,GAAK,aAAa,OAAO,cAAc,MAAM,EAAE,aAAa,CAAC,KAAK,EAAY,OAAO,MAAM,iBAAiB,aAAa,GAAG,IAAI,EAAE,IAAI,IAAI,KAAK,EAAE,KAAK,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAY,OAAO,MAAM,UAAU,aAAa,GAAG,IAAI,EAAE,IAAI,IAAI,KAAK,EAAE,KAAK,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAY,OAAO,MAAM,UAAU,aAAa,EAAE,IAAI,GAAG,IAAI,EAAE,KAAK,GAAG,EAAE,QAAQ,CAAC,KAAK,EAAY,OAAO,MAAM,UAAU,aAAa,GAAG,IAAI,EAAE,IAAI,EAAE,KAAK,GAAG,EAAE,MAAM,CAAC,KAAK,EAAY,QAAQ,MAAM,cAAc,aAAa,GAAM,aAAa,KAAK,cAAc,KAAK,EAAE,OAAO,CAAC,KAAK,EAAY,KAAK,MAAM,WAAW,QAAQ,CAAC,SAAS,YAAY,MAAM,EAAE,aAAa,CAAC,eAAe,iBAAiB,YAAY,EAAE,aAAa,QAAQ,EAAE,SAAS,CAAC,KAAK,EAAY,QAAQ,MAAM,WAAW,aAAa,GAAK,aAAa,OAAO,cAAc,QAAQ,OAAO,GAAG,EAAE,SAAS,QAAQ,EAAE,SAAS,CAAC,KAAK,EAAY,OAAO,MAAM,YAAY,aAAa,aAAa,YAAY,aAAa,OAAO,GAAG,EAAE,SAAS,WAAW,EAAE,QAAQ,CAAC,KAAK,EAAY,OAAO,MAAM,WAAW,aAAa,OAAO,OAAO,GAAG,EAAE,SAAS,WAAW,EAAE,SAAS,CAAC,KAAK,EAAY,OAAO,MAAM,YAAY,aAAa,QAAQ,OAAO,GAAG,EAAE,SAAS,WAAW,EAAE,UAAU,CAAC,KAAK,EAAY,OAAO,MAAM,gBAAgB,aAAa,OAAO,YAAY,sBAAsB,OAAO,GAAG,EAAE,SAAS,WAAW,EAAE,MAAM,CAAC,KAAK,EAAY,KAAK,MAAM,QAAQ,QAAQ,CAAC,MAAM,KAAK,QAAQ,EAAE,aAAa,CAAC,MAAM,KAAK,QAAQ,EAAE,aAAa,MAAM,wBAAwB,EAAI,EAAE,SAAS,CAAC,KAAK,EAAY,QAAQ,MAAM,WAAW,aAAa,GAAK,aAAa,MAAM,cAAc,IAAI,EAAE,SAAS,CAAC,KAAK,EAAY,OAAO,MAAM,cAAc,aAAa,cAAc,OAAO,GAAG,CAAC,EAAE,QAAQ,EAAE,UAAU,CAAC,KAAK,EAAY,QAAQ,MAAM,QAAQ,aAAa,GAAM,aAAa,OAAO,cAAc,MAAM,EAAE,SAAS,CAAC,KAAK,EAAY,OAAO,MAAM,YAAY,aAAa,QAAQ,OAAO,GAAG,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,KAAK,EAAY,OAAO,MAAM,WAAW,aAAa,OAAO,OAAO,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,CAAC,KAAK,EAAY,MAAM,MAAM,cAAc,aAAa,UAAU,OAAO,GAAG,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,KAAK,EAAY,KAAK,MAAM,OAAO,SAAS,WAAW,gBAAgB,aAAa,aAAa,CAAC,SAAS,OAAO,QAAQ,SAAS,WAAW,OAAO,EAAE,YAAY,uBAAuB,CAAC,CAAC"}