{"version":3,"file":"shared-lib.CK18A5O2.mjs","names":["fonts","css","className","cycleOrder","serializationHash","variantClassNames","transitions","Transition","React.useContext","React.useMemo","Variants","React.Fragment","getProps","createLayoutDependency","React.useRef","React.useId","className","Image","addPropertyOverrides","overrides","enabledGestures","cycleOrder","serializationHash","variantClassNames","transition1","Transition","React.useContext","React.useMemo","Variants","React.Fragment","humanReadableVariantMap","getProps","createLayoutDependency","React.useRef","React.useId","className","addPropertyOverrides","overrides","cycleOrder","serializationHash","variantClassNames","transition1","Transition","React.useContext","React.useMemo","Variants","React.Fragment","humanReadableVariantMap","getProps","createLayoutDependency","React.useRef","React.useId","className","NavBarMenuLink","serializationHash","variantClassNames","transition1","animation","Transition","React.useContext","React.useMemo","Variants","React.Fragment","getProps","createLayoutDependency","useRef","React.useId","className","addPropertyOverrides","overrides","ComponentsLogoFonts","ComponentsLogo","NavbarDropdown","ComponentsButton","cycleOrder","serializationHash","variantClassNames","transition1","Transition","React.useContext","React.useMemo","Variants","React.Fragment","humanReadableVariantMap","getProps","createLayoutDependency","Component","useRef","React.useId","sharedStyle.className","React.useRef","className","_Fragment","css","sharedStyle.css","sharedStyle.fonts","css","addPropertyOverrides","overrides","enabledGestures","cycleOrder","serializationHash","variantClassNames","transition1","Transition","React.useContext","React.useMemo","Variants","React.Fragment","humanReadableVariantMap","getProps","createLayoutDependency","React.useRef","React.useId","className","useRef","useMemo","useRef","animation","useCallback","animate","i","p","t","l","x","_a","global","flatten","prng","seed","j","s","browser","C","window","id","animationData","addFonts","index","name","heading","modifiers","renderer","loadAnimation","animation","searchAnimations","standalone","Math","document","content","wiggle","propertyName","len","TextExpressionSelectorPropFactory","pair","useRef","useCallback","lottie","addPropertyOverrides","overrides","cycleOrder","variantClassNames","t","Transition","React.useContext","React.useMemo","humanReadableVariantMap","getProps","createLayoutDependency","React.useRef","React.useId","className","addPropertyOverrides","overrides","FooterStatusDot","cycleOrder","serializationHash","variantClassNames","transition1","Transition","React.useContext","React.useMemo","Variants","React.Fragment","getProps","createLayoutDependency","React.useRef","React.useId","className","overrides","ComponentsLogo","FooterSocialIcons","FooterStatus","React.useContext","React.useMemo","React.Fragment","useRef","React.useId","sharedStyle.className","className","sharedStyle.css","sharedStyle.fonts","i","code","sameArray","p","content","_a","asArray","string","l","top","number","doc","process","x","id","base","scrollIntoView","name","Range","name","x","i","code","insert","flatten","l","_a","content","extend","StyleModule","meta","re","number","C","COUNT","SET","top","id","StyleSet","adoptedSet","p","t","cx","_a","p","i","nodeSet","types","id","base","pair","name","string","FragmentCursor","x","i","base","hasChild","i","cx","base","decorations","bracket","string","inside","readToken","name","id","l","doc","p","self","Parse","i","cx","p","_a","base","top","nodeSet","insert","x","t","prec","name"],"sources":["https:/framerusercontent.com/modules/3EpwaMNu3dgnixNIBPgS/ijdM3WbKPTm6YWKf1ShI/zp_pH5qZB.js","https:/framerusercontent.com/modules/5gC5k1B9WsqLP6EKkufg/IU59BpD92ZDZ8wUBkXrY/DFuNbTlyP.js","https:/framerusercontent.com/modules/qUx0bg6dYoQhhlsjBNI3/MlAKylrvGgifd23bT08u/i0egtVe18.js","https:/framerusercontent.com/modules/jZDymKNbFrevxTH0bSNx/1PKv2dAR33gtGndNGSt5/n7QxVDeta.js","https:/framerusercontent.com/modules/C2HLbQBeigiWL0WIaKfw/F5GHTANRF28lu6ulslrD/WnsRJooZS.js","https:/framerusercontent.com/modules/vDPdjAPYD54boEIvpKjx/gClT4hg1mf60D4u7zfge/FOOO2YyO1.js","https:/framerusercontent.com/modules/yo13E6Qg0zyDgGbocHLi/QX90xNAcFgSt8QULAZZX/d2C9kOxg9.js","https:/framerusercontent.com/modules/eruxoze6LVsT2VTFUDEa/L711kgCDANzKoAjN0Hea/NbNQ041Jk.js","https:/framerusercontent.com/modules/VTUDdizacRHpwbkOamr7/AykinQJbgwl92LvMGZwu/constants.js","https:/framerusercontent.com/modules/D4TWeLfcxT6Tysr2BlYg/iZjmqdxVx1EOiM3k1FaW/useOnNavigationTargetChange.js","https:/framerusercontent.com/modules/ExNgrA7EJTKUPpH6vIlN/eiOrSJ2Ab5M9jPCvVwUz/useConstant.js","https:/framerusercontent.com/modules/D2Lz5CmnNVPZFFiZXalt/QaCzPbriZBfXWZIIycFI/colorFromToken.js","https:/framerusercontent.com/modules/3mKFSGQqKHV82uOV1eBc/5fbRLvOpxZC0JOXugvwm/isMotionValue.js","https:/framerusercontent.com/modules/xDiQsqBGXzmMsv7AlEVy/uhunpMiNsbXxzjlXsg1y/useUniqueClassName.js","https:/framerusercontent.com/modules/ETACN5BJyFTSo0VVDJfu/NHRqowOiXkF9UwOzczF7/variantUtils.js","https:/framerusercontent.com/modules/eMBrwoqQK7h6mEeGQUH8/GuplvPJVjmxpk9zqOTcb/isBrowser.js","https:/framerusercontent.com/modules/v9AWX2URmiYsHf7GbctE/XxKAZ9KlhWqf5x1JMyyF/useOnChange.js","https:/framerusercontent.com/modules/kNDwabfjDEb3vUxkQlZS/fSIr3AOAYbGlfSPgXpYu/useAutoMotionValue.js","https:/framerusercontent.com/modules/cuQH4dmpDnV8YK1mSgQX/KqRXqunFjE6ufhpc7ZRu/useFontControls.js","https:/framerusercontent.com/modules/afBE9Yx1W6bY5q32qPxe/m3q7puE2tbo1S2C0s0CT/useRenderTarget.js","https:/framerusercontent.com/modules/zGkoP8tPDCkoBzMdt5uq/0zFSjxIYliHxrQQnryFX/useControlledState.js","https:/framerusercontent.com/modules/5SM58HxZHxjjv7aLMOgQ/WXz9i6mVki0bBCrKdqB3/propUtils.js","https:/framer.com/m/framer/default-utils.js@^0.45.0","https:/framerusercontent.com/modules/3mKFSGQqKHV82uOV1eBc/TbXI1XaZFNevVKcgIt7G/isMotionValue.js","https:/framer.com/m/framer/useAutoMotionValue.js@0.3.0","https:/jspm.dev/npm:lottie-web@5.7.8!cjs","https:/jspm.dev/lottie-web@5.7.8","https:/framerusercontent.com/modules/YbkSqZ7STzW5WsMb1yan/7oWoX9MqdnxameM59dqC/Lottie.js","https:/framerusercontent.com/modules/vSJtPEWTXklXdu92pyF1/H89BN9yhcE8dsFIpQW34/xQbROYV_s.js","https:/framerusercontent.com/modules/AaDoWH4LqfGmoNh6MI3p/gkYznt8kq3b8b9ia6usm/QmTh9PxQ3.js","https:/framerusercontent.com/modules/uomLa9JXQQ1kFeqa4FuZ/faVgUxMhHVfT0h4ZzS2X/i_DY9JftS.js","https:/framerusercontent.com/modules/wFkXxZqfKOPeEQtsYrsa/Xcw7qvncyogRPQtf9aNn/codemirror_state.js","https:/framerusercontent.com/modules/wKCR2JyUW8wZdYweJrou/EndxaPZLF2o4GndkIvF9/codemirror_view.js","https:/framerusercontent.com/modules/CO9ruPlVDRTCLVInyri7/dIK6ma4pzS0qSHWtJ4s1/lezer_common.js","https:/framerusercontent.com/modules/rOWwbZHN39cczduPnzmw/OTf12FftmvJsuTNsZb3G/lezer_highlight.js","https:/framerusercontent.com/modules/aJsTBlWNkIaM900KNIXT/TeoF57xeGMuVMjiI2ooR/codemirror_language.js","https:/framerusercontent.com/modules/MiFWyNBz6FaRwOOEYJ4H/RMT2Q4ScDAUq3xYhahWs/lezer_lr.js"],"sourcesContent":["import{fontStore}from\"framer\";fontStore.loadFonts([]);export const fonts=[];export const css=[\".framer-Fw6oD .framer-styles-preset-blcz8v:not(.rich-text-wrapper), .framer-Fw6oD .framer-styles-preset-blcz8v.rich-text-wrapper a { --framer-link-current-text-decoration: none; --framer-link-hover-text-color: var(--token-014f44b0-4365-49a2-a3e1-43e76509186b, #adff85); --framer-link-hover-text-decoration: none; --framer-link-text-color: var(--token-f07bd819-3132-4b59-b01d-c794567fa989, #ffffff); --framer-link-text-decoration: none; }\"];export const className=\"framer-Fw6oD\";\nexport const __FramerMetadata__ = {\"exports\":{\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (e1022ef)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addFonts,cx,Image,Link,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";const cycleOrder=[\"VLEJy3JJ7\"];const serializationHash=\"framer-AtFuu\";const variantClassNames={VLEJy3JJ7:\"framer-v-8rrhlj\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants===null||variants===void 0?void 0:variants.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transitions={default:{damping:60,delay:0,mass:1,stiffness:500,type:\"spring\"}};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value!==null&&value!==void 0?value:config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion(React.Fragment);const getProps=({height,id,width,...props})=>{return{...props};};const createLayoutDependency=(props,variants)=>variants.join(\"-\")+props.layoutDependency;const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const{activeLocale,setLocale}=useLocaleInfo();const{style,className,layoutId,variant,...restProps}=getProps(props);const{baseVariant,classNames,gestureVariant,setGestureState,setVariant,transition,variants}=useVariantState({cycleOrder,defaultVariant:\"VLEJy3JJ7\",transitions,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const ref1=React.useRef(null);const defaultLayoutId=React.useId();const sharedStyleClassNames=[];return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId!==null&&layoutId!==void 0?layoutId:defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition,children:/*#__PURE__*/_jsx(Link,{href:{webPageId:\"augiA20Il\"},children:/*#__PURE__*/_jsx(motion.a,{...restProps,className:`${cx(serializationHash,...sharedStyleClassNames,\"framer-8rrhlj\",className,classNames)} framer-7e2yfd`,\"data-framer-name\":\"Logo\",layoutDependency:layoutDependency,layoutId:\"VLEJy3JJ7\",onHoverEnd:()=>setGestureState({isHovered:false}),onHoverStart:()=>setGestureState({isHovered:true}),onTap:()=>setGestureState({isPressed:false}),onTapCancel:()=>setGestureState({isPressed:false}),onTapStart:()=>setGestureState({isPressed:true}),ref:ref!==null&&ref!==void 0?ref:ref1,style:{...style},children:/*#__PURE__*/_jsx(Image,{background:{alt:\"\",fit:\"fill\",intrinsicHeight:62,intrinsicWidth:256,pixelHeight:124,pixelWidth:512,src:\"https://framerusercontent.com/images/0plmACER6JxPIMHotjFXrSxgnc.png\"},className:\"framer-vu5w0q\",\"data-framer-name\":\"image\",layoutDependency:layoutDependency,layoutId:\"VzolDlxVs\"})})})})})});});const css=['.framer-AtFuu[data-border=\"true\"]::after, .framer-AtFuu [data-border=\"true\"]::after { content: \"\"; border-width: var(--border-top-width, 0) var(--border-right-width, 0) var(--border-bottom-width, 0) var(--border-left-width, 0); border-color: var(--border-color, none); border-style: var(--border-style, none); width: 100%; height: 100%; position: absolute; box-sizing: border-box; left: 0; top: 0; border-radius: inherit; pointer-events: none; }',\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-AtFuu.framer-7e2yfd, .framer-AtFuu .framer-7e2yfd { display: block; }\",\".framer-AtFuu.framer-8rrhlj { align-content: center; align-items: center; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 8px; height: 40px; justify-content: center; overflow: hidden; padding: 0px 0px 0px 0px; position: relative; text-decoration: none; width: 165px; }\",\".framer-AtFuu .framer-vu5w0q { aspect-ratio: 4.129032258064516 / 1; flex: 1 0 0px; height: var(--framer-aspect-ratio-supported, 40px); overflow: visible; position: relative; width: 1px; }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-AtFuu.framer-8rrhlj { gap: 0px; } .framer-AtFuu.framer-8rrhlj > * { margin: 0px; margin-left: calc(8px / 2); margin-right: calc(8px / 2); } .framer-AtFuu.framer-8rrhlj > :first-child { margin-left: 0px; } .framer-AtFuu.framer-8rrhlj > :last-child { margin-right: 0px; } }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 40\n * @framerIntrinsicWidth 165\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"fixed\"]}}}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n */const FramerDFuNbTlyP=withCSS(Component,css,\"framer-AtFuu\");export default FramerDFuNbTlyP;FramerDFuNbTlyP.displayName=\"Components / Logo\";FramerDFuNbTlyP.defaultProps={height:40,width:165};addFonts(FramerDFuNbTlyP,[]);\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerDFuNbTlyP\",\"slots\":[],\"annotations\":{\"framerImmutableVariables\":\"true\",\"framerDisplayContentsDiv\":\"false\",\"framerIntrinsicWidth\":\"165\",\"framerIntrinsicHeight\":\"40\",\"framerContractVersion\":\"1\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]}}}\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./DFuNbTlyP.map","// Generated by Framer (6124c77)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ControlType,cx,Link,RichText,SVG,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";const enabledGestures={dgGQgVUD5:{hover:true},fZ2yZydwR:{hover:true},IItl4lDJq:{hover:true},kRdQDSTg2:{hover:true},oEWTPHfTM:{hover:true},oeyNKs7ss:{hover:true},T5b_fO3Iy:{hover:true},vCxzOb0M7:{hover:true},VJn9CYSYK:{hover:true},YPNA0Zd6Y:{hover:true}};const cycleOrder=[\"T5b_fO3Iy\",\"VJn9CYSYK\",\"oEWTPHfTM\",\"oeyNKs7ss\",\"fZ2yZydwR\",\"dgGQgVUD5\",\"YPNA0Zd6Y\",\"IItl4lDJq\",\"kRdQDSTg2\",\"vCxzOb0M7\"];const serializationHash=\"framer-dw23G\";const variantClassNames={dgGQgVUD5:\"framer-v-8nnk52\",fZ2yZydwR:\"framer-v-1hwqnfu\",IItl4lDJq:\"framer-v-y3qq01\",kRdQDSTg2:\"framer-v-byqtxi\",oEWTPHfTM:\"framer-v-f9xi3h\",oeyNKs7ss:\"framer-v-1m0xyz7\",T5b_fO3Iy:\"framer-v-2qwvod\",vCxzOb0M7:\"framer-v-1frkgvi\",VJn9CYSYK:\"framer-v-10nb6s0\",YPNA0Zd6Y:\"framer-v-sqx21q\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants===null||variants===void 0?void 0:variants.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={damping:60,delay:0,mass:1,stiffness:500,type:\"spring\"};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value!==null&&value!==void 0?value:config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion(React.Fragment);const humanReadableVariantMap={\"Button 1\":\"T5b_fO3Iy\",\"Button 10\":\"vCxzOb0M7\",\"Button 2\":\"VJn9CYSYK\",\"Button 3\":\"oEWTPHfTM\",\"Button 4\":\"oeyNKs7ss\",\"Button 5\":\"fZ2yZydwR\",\"Button 6\":\"dgGQgVUD5\",\"Button 7\":\"YPNA0Zd6Y\",\"Button 8\":\"IItl4lDJq\",\"Button 9\":\"kRdQDSTg2\"};const getProps=({height,id,link,title,width,...props})=>{var _ref,_humanReadableVariantMap_props_variant,_ref1;return{...props,oTkhntfqp:(_ref=title!==null&&title!==void 0?title:props.oTkhntfqp)!==null&&_ref!==void 0?_ref:\"Get started\",rDIYciChz:link!==null&&link!==void 0?link:props.rDIYciChz,variant:(_ref1=(_humanReadableVariantMap_props_variant=humanReadableVariantMap[props.variant])!==null&&_humanReadableVariantMap_props_variant!==void 0?_humanReadableVariantMap_props_variant:props.variant)!==null&&_ref1!==void 0?_ref1:\"T5b_fO3Iy\"};};const createLayoutDependency=(props,variants)=>variants.join(\"-\")+props.layoutDependency;const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const{activeLocale,setLocale}=useLocaleInfo();const{style,className,layoutId,variant,oTkhntfqp,rDIYciChz,...restProps}=getProps(props);const{baseVariant,classNames,gestureVariant,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"T5b_fO3Iy\",enabledGestures,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const ref1=React.useRef(null);const isDisplayed=()=>{if([\"oEWTPHfTM-hover\",\"fZ2yZydwR-hover\",\"dgGQgVUD5-hover\",\"IItl4lDJq-hover\"].includes(gestureVariant))return false;if([\"oEWTPHfTM\",\"fZ2yZydwR\",\"dgGQgVUD5\",\"IItl4lDJq\"].includes(baseVariant))return false;return true;};const defaultLayoutId=React.useId();const sharedStyleClassNames=[];const componentViewport=useComponentViewport();return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId!==null&&layoutId!==void 0?layoutId:defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsx(Link,{href:rDIYciChz,openInNewTab:true,children:/*#__PURE__*/_jsxs(motion.a,{...restProps,className:`${cx(serializationHash,...sharedStyleClassNames,\"framer-2qwvod\",className,classNames)} framer-1pq9l2x`,\"data-framer-name\":\"Button 1\",layoutDependency:layoutDependency,layoutId:\"T5b_fO3Iy\",onHoverEnd:()=>setGestureState({isHovered:false}),onHoverStart:()=>setGestureState({isHovered:true}),onTap:()=>setGestureState({isPressed:false}),onTapCancel:()=>setGestureState({isPressed:false}),onTapStart:()=>setGestureState({isPressed:true}),ref:ref!==null&&ref!==void 0?ref:ref1,style:{\"--border-bottom-width\":\"0px\",\"--border-color\":\"rgba(0, 0, 0, 0)\",\"--border-left-width\":\"0px\",\"--border-right-width\":\"0px\",\"--border-style\":\"solid\",\"--border-top-width\":\"0px\",backgroundColor:\"var(--token-014f44b0-4365-49a2-a3e1-43e76509186b, rgb(173, 255, 133))\",borderBottomLeftRadius:14,borderBottomRightRadius:14,borderTopLeftRadius:14,borderTopRightRadius:14,...style},variants:{\"dgGQgVUD5-hover\":{backgroundColor:\"rgb(217, 217, 217)\"},\"fZ2yZydwR-hover\":{backgroundColor:\"rgb(143, 219, 105)\"},\"IItl4lDJq-hover\":{backgroundColor:\"rgb(18, 26, 28)\"},\"kRdQDSTg2-hover\":{backgroundColor:\"rgb(217, 217, 217)\"},\"oEWTPHfTM-hover\":{backgroundColor:\"rgb(217, 217, 217)\"},\"oeyNKs7ss-hover\":{backgroundColor:\"rgba(0, 0, 0, 0)\"},\"T5b_fO3Iy-hover\":{backgroundColor:\"rgb(143, 219, 105)\"},\"vCxzOb0M7-hover\":{backgroundColor:\"rgb(18, 26, 28)\"},\"VJn9CYSYK-hover\":{backgroundColor:\"rgba(0, 0, 0, 0)\"},\"YPNA0Zd6Y-hover\":{backgroundColor:\"rgba(0, 0, 0, 0)\"},dgGQgVUD5:{backgroundColor:\"var(--token-f07bd819-3132-4b59-b01d-c794567fa989, rgb(255, 255, 255))\"},IItl4lDJq:{\"--border-bottom-width\":\"1px\",\"--border-color\":\"var(--token-c55792fe-13b9-4f9a-ade0-295b1c41380b, rgb(33, 46, 49))\",\"--border-left-width\":\"1px\",\"--border-right-width\":\"1px\",\"--border-style\":\"solid\",\"--border-top-width\":\"1px\",backgroundColor:\"var(--token-49581d6a-7694-4733-bc6f-fd82c9e0713e, rgb(20, 29, 31))\"},kRdQDSTg2:{backgroundColor:\"var(--token-f07bd819-3132-4b59-b01d-c794567fa989, rgb(255, 255, 255))\"},oEWTPHfTM:{backgroundColor:\"rgb(255, 255, 255)\",borderBottomLeftRadius:12,borderBottomRightRadius:12,borderTopLeftRadius:12,borderTopRightRadius:12},oeyNKs7ss:{backgroundColor:\"rgba(0, 0, 0, 0)\"},vCxzOb0M7:{\"--border-bottom-width\":\"1px\",\"--border-color\":\"var(--token-c55792fe-13b9-4f9a-ade0-295b1c41380b, rgb(33, 46, 49))\",\"--border-left-width\":\"1px\",\"--border-right-width\":\"1px\",\"--border-style\":\"solid\",\"--border-top-width\":\"1px\",backgroundColor:\"var(--token-49581d6a-7694-4733-bc6f-fd82c9e0713e, rgb(20, 29, 31))\"},VJn9CYSYK:{backgroundColor:\"rgba(0, 0, 0, 0)\"},YPNA0Zd6Y:{backgroundColor:\"rgba(0, 0, 0, 0)\"}},...addPropertyOverrides({\"dgGQgVUD5-hover\":{\"data-framer-name\":undefined},\"fZ2yZydwR-hover\":{\"data-framer-name\":undefined},\"IItl4lDJq-hover\":{\"data-framer-name\":undefined},\"kRdQDSTg2-hover\":{\"data-framer-name\":undefined},\"oEWTPHfTM-hover\":{\"data-framer-name\":undefined},\"oeyNKs7ss-hover\":{\"data-framer-name\":undefined},\"T5b_fO3Iy-hover\":{\"data-framer-name\":undefined},\"vCxzOb0M7-hover\":{\"data-framer-name\":undefined},\"VJn9CYSYK-hover\":{\"data-framer-name\":undefined},\"YPNA0Zd6Y-hover\":{\"data-framer-name\":undefined},dgGQgVUD5:{\"data-framer-name\":\"Button 6\"},fZ2yZydwR:{\"data-framer-name\":\"Button 5\"},IItl4lDJq:{\"data-border\":true,\"data-framer-name\":\"Button 8\"},kRdQDSTg2:{\"data-framer-name\":\"Button 9\"},oEWTPHfTM:{\"data-framer-name\":\"Button 3\"},oeyNKs7ss:{\"data-framer-name\":\"Button 4\"},vCxzOb0M7:{\"data-border\":true,\"data-framer-name\":\"Button 10\"},VJn9CYSYK:{\"data-framer-name\":\"Button 2\"},YPNA0Zd6Y:{\"data-framer-name\":\"Button 7\"}},baseVariant,gestureVariant),children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7Um9ib3RvIE1vbm8tNzAw\",\"--framer-font-family\":'\"Roboto Mono\", monospace',\"--framer-font-weight\":\"700\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-7bd9e81f-2829-4778-a07d-4ccc13f0b72e, rgb(27, 46, 15)))\",\"--framer-text-transform\":\"uppercase\"},children:\"Get started\"})}),className:\"framer-f9fsyn\",fonts:[\"GF;Roboto Mono-700\"],layoutDependency:layoutDependency,layoutId:\"laIBk04Vk\",style:{\"--extracted-r6o4lv\":\"var(--token-7bd9e81f-2829-4778-a07d-4ccc13f0b72e, rgb(27, 46, 15))\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},text:oTkhntfqp,variants:{\"IItl4lDJq-hover\":{\"--extracted-r6o4lv\":\"var(--token-014f44b0-4365-49a2-a3e1-43e76509186b, rgb(173, 255, 133))\"},\"oeyNKs7ss-hover\":{\"--extracted-r6o4lv\":\"var(--token-f07bd819-3132-4b59-b01d-c794567fa989, rgb(255, 255, 255))\"},\"vCxzOb0M7-hover\":{\"--extracted-r6o4lv\":\"var(--token-014f44b0-4365-49a2-a3e1-43e76509186b, rgb(173, 255, 133))\"},\"VJn9CYSYK-hover\":{\"--extracted-r6o4lv\":\"var(--token-014f44b0-4365-49a2-a3e1-43e76509186b, rgb(173, 255, 133))\"},\"YPNA0Zd6Y-hover\":{\"--extracted-r6o4lv\":\"var(--token-f07bd819-3132-4b59-b01d-c794567fa989, rgb(255, 255, 255))\"},IItl4lDJq:{\"--extracted-r6o4lv\":\"var(--token-f07bd819-3132-4b59-b01d-c794567fa989, rgb(255, 255, 255))\"},oeyNKs7ss:{\"--extracted-r6o4lv\":\"var(--token-014f44b0-4365-49a2-a3e1-43e76509186b, rgb(173, 255, 133))\"},vCxzOb0M7:{\"--extracted-r6o4lv\":\"var(--token-f07bd819-3132-4b59-b01d-c794567fa989, rgb(255, 255, 255))\"},VJn9CYSYK:{\"--extracted-r6o4lv\":\"var(--token-f07bd819-3132-4b59-b01d-c794567fa989, rgb(255, 255, 255))\"},YPNA0Zd6Y:{\"--extracted-r6o4lv\":\"var(--token-014f44b0-4365-49a2-a3e1-43e76509186b, rgb(173, 255, 133))\"}},verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({\"IItl4lDJq-hover\":{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7Um9ib3RvIE1vbm8tNzAw\",\"--framer-font-family\":'\"Roboto Mono\", monospace',\"--framer-font-weight\":\"700\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-014f44b0-4365-49a2-a3e1-43e76509186b, rgb(173, 255, 133)))\",\"--framer-text-transform\":\"uppercase\"},children:\"Get started\"})})},\"oeyNKs7ss-hover\":{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7Um9ib3RvIE1vbm8tNzAw\",\"--framer-font-family\":'\"Roboto Mono\", monospace',\"--framer-font-weight\":\"700\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-f07bd819-3132-4b59-b01d-c794567fa989, rgb(255, 255, 255)))\",\"--framer-text-transform\":\"uppercase\"},children:\"Get started\"})})},\"vCxzOb0M7-hover\":{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7Um9ib3RvIE1vbm8tNzAw\",\"--framer-font-family\":'\"Roboto Mono\", monospace',\"--framer-font-size\":\"14px\",\"--framer-font-weight\":\"700\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-014f44b0-4365-49a2-a3e1-43e76509186b, rgb(173, 255, 133)))\",\"--framer-text-transform\":\"uppercase\"},children:\"Get started\"})})},\"VJn9CYSYK-hover\":{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7Um9ib3RvIE1vbm8tNzAw\",\"--framer-font-family\":'\"Roboto Mono\", monospace',\"--framer-font-weight\":\"700\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-014f44b0-4365-49a2-a3e1-43e76509186b, rgb(173, 255, 133)))\",\"--framer-text-transform\":\"uppercase\"},children:\"Get started\"})})},\"YPNA0Zd6Y-hover\":{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7Um9ib3RvIE1vbm8tNzAw\",\"--framer-font-family\":'\"Roboto Mono\", monospace',\"--framer-font-size\":\"14px\",\"--framer-font-weight\":\"700\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-f07bd819-3132-4b59-b01d-c794567fa989, rgb(255, 255, 255)))\",\"--framer-text-transform\":\"uppercase\"},children:\"Get started\"})})},IItl4lDJq:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7Um9ib3RvIE1vbm8tNzAw\",\"--framer-font-family\":'\"Roboto Mono\", monospace',\"--framer-font-weight\":\"700\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-f07bd819-3132-4b59-b01d-c794567fa989, rgb(255, 255, 255)))\",\"--framer-text-transform\":\"uppercase\"},children:\"Get started\"})})},oEWTPHfTM:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7Um9ib3RvIE1vbm8tNzAw\",\"--framer-font-family\":'\"Roboto Mono\", monospace',\"--framer-font-size\":\"14px\",\"--framer-font-weight\":\"700\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-7bd9e81f-2829-4778-a07d-4ccc13f0b72e, rgb(27, 46, 15)))\",\"--framer-text-transform\":\"uppercase\"},children:\"Get started\"})})},oeyNKs7ss:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7Um9ib3RvIE1vbm8tNzAw\",\"--framer-font-family\":'\"Roboto Mono\", monospace',\"--framer-font-weight\":\"700\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-014f44b0-4365-49a2-a3e1-43e76509186b, rgb(173, 255, 133)))\",\"--framer-text-transform\":\"uppercase\"},children:\"Get started\"})})},vCxzOb0M7:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7Um9ib3RvIE1vbm8tNzAw\",\"--framer-font-family\":'\"Roboto Mono\", monospace',\"--framer-font-size\":\"14px\",\"--framer-font-weight\":\"700\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-f07bd819-3132-4b59-b01d-c794567fa989, rgb(255, 255, 255)))\",\"--framer-text-transform\":\"uppercase\"},children:\"Get started\"})})},VJn9CYSYK:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7Um9ib3RvIE1vbm8tNzAw\",\"--framer-font-family\":'\"Roboto Mono\", monospace',\"--framer-font-weight\":\"700\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-f07bd819-3132-4b59-b01d-c794567fa989, rgb(255, 255, 255)))\",\"--framer-text-transform\":\"uppercase\"},children:\"Get started\"})})},YPNA0Zd6Y:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7Um9ib3RvIE1vbm8tNzAw\",\"--framer-font-family\":'\"Roboto Mono\", monospace',\"--framer-font-size\":\"14px\",\"--framer-font-weight\":\"700\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-014f44b0-4365-49a2-a3e1-43e76509186b, rgb(173, 255, 133)))\",\"--framer-text-transform\":\"uppercase\"},children:\"Get started\"})})}},baseVariant,gestureVariant)}),isDisplayed()&&/*#__PURE__*/_jsx(SVG,{className:\"framer-1b4xu9n\",\"data-framer-name\":\"chevron_right\",layout:\"position\",layoutDependency:layoutDependency,layoutId:\"LQ5U9YfN7\",opacity:1,style:{backgroundColor:\"rgba(0, 0, 0, 0)\"},svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 18 18\"><path d=\"M 6.75 13.5 L 11.25 9 L 6.75 4.5\" fill=\"transparent\" stroke-width=\"1.5\" stroke=\"#1B2E0F\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path></svg>',svgContentId:4186908768,variants:{YPNA0Zd6Y:{backgroundColor:\"rgba(0, 0, 0, 0)\"}},withExternalLayout:true,...addPropertyOverrides({\"oeyNKs7ss-hover\":{svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 18 18\"><path d=\"M 6.75 13.5 L 11.25 9 L 6.75 4.5\" fill=\"transparent\" stroke-width=\"1.5\" stroke=\"var(--token-f07bd819-3132-4b59-b01d-c794567fa989, rgb(255, 255, 255)) /* {&quot;name&quot;:&quot;Base / White [50]&quot;} */\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path></svg>',svgContentId:3233698712},\"vCxzOb0M7-hover\":{svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 18 18\"><path d=\"M 6.75 13.5 L 11.25 9 L 6.75 4.5\" fill=\"transparent\" stroke-width=\"1.5\" stroke=\"var(--token-014f44b0-4365-49a2-a3e1-43e76509186b, rgb(173, 255, 133)) /* {&quot;name&quot;:&quot;Accent / Acid Green&quot;} */\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path></svg>',svgContentId:2538973466},\"VJn9CYSYK-hover\":{svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 18 18\"><path d=\"M 6.75 13.5 L 11.25 9 L 6.75 4.5\" fill=\"transparent\" stroke-width=\"1.5\" stroke=\"var(--token-014f44b0-4365-49a2-a3e1-43e76509186b, rgb(173, 255, 133)) /* {&quot;name&quot;:&quot;Accent / Acid Green&quot;} */\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path></svg>',svgContentId:2538973466},\"YPNA0Zd6Y-hover\":{svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 12 18\"><path d=\"M 6.75 13.5 L 11.25 9 L 6.75 4.5\" fill=\"transparent\" stroke-width=\"1.5\" stroke=\"var(--token-f07bd819-3132-4b59-b01d-c794567fa989, rgb(255, 255, 255)) /* {&quot;name&quot;:&quot;Base / White [50]&quot;} */\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path></svg>',svgContentId:3538525668},kRdQDSTg2:{svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 18 18\"><path d=\"M 6.75 13.5 L 11.25 9 L 6.75 4.5\" fill=\"transparent\" stroke-width=\"1.5\" stroke=\"var(--token-7bd9e81f-2829-4778-a07d-4ccc13f0b72e, rgb(27, 46, 15)) /* {&quot;name&quot;:&quot;Accent / Green&quot;} */\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path></svg>',svgContentId:129252088},oeyNKs7ss:{svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 18 18\"><path d=\"M 6.75 13.5 L 11.25 9 L 6.75 4.5\" fill=\"transparent\" stroke-width=\"1.5\" stroke=\"var(--token-014f44b0-4365-49a2-a3e1-43e76509186b, rgb(173, 255, 133)) /* {&quot;name&quot;:&quot;Accent / Acid Green&quot;} */\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path></svg>',svgContentId:2538973466},vCxzOb0M7:{svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 18 18\"><path d=\"M 6.75 13.5 L 11.25 9 L 6.75 4.5\" fill=\"transparent\" stroke-width=\"1.5\" stroke=\"var(--token-f07bd819-3132-4b59-b01d-c794567fa989, rgb(255, 255, 255)) /* {&quot;name&quot;:&quot;Base / White [50]&quot;} */\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path></svg>',svgContentId:3233698712},VJn9CYSYK:{svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 18 18\"><path d=\"M 6.75 13.5 L 11.25 9 L 6.75 4.5\" fill=\"transparent\" stroke-width=\"1.5\" stroke=\"var(--token-f07bd819-3132-4b59-b01d-c794567fa989, rgb(255, 255, 255)) /* {&quot;name&quot;:&quot;Base / White [50]&quot;} */\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path></svg>',svgContentId:3233698712},YPNA0Zd6Y:{svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 12 18\"><path d=\"M 6.75 13.5 L 11.25 9 L 6.75 4.5\" fill=\"transparent\" stroke-width=\"1.5\" stroke=\"var(--token-014f44b0-4365-49a2-a3e1-43e76509186b, rgb(173, 255, 133)) /* {&quot;name&quot;:&quot;Accent / Acid Green&quot;} */\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path></svg>',svgContentId:663747217}},baseVariant,gestureVariant)})]})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-dw23G.framer-1pq9l2x, .framer-dw23G .framer-1pq9l2x { display: block; }\",\".framer-dw23G.framer-2qwvod { align-content: center; align-items: center; cursor: pointer; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 4px; height: min-content; justify-content: center; overflow: hidden; padding: 16px 17px 16px 24px; position: relative; text-decoration: none; width: min-content; will-change: var(--framer-will-change-override, transform); }\",\".framer-dw23G .framer-f9fsyn { flex: none; height: auto; position: relative; white-space: pre; width: auto; }\",\".framer-dw23G .framer-1b4xu9n { flex: none; height: 18px; position: relative; width: 18px; }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-dw23G.framer-2qwvod { gap: 0px; } .framer-dw23G.framer-2qwvod > * { margin: 0px; margin-left: calc(4px / 2); margin-right: calc(4px / 2); } .framer-dw23G.framer-2qwvod > :first-child { margin-left: 0px; } .framer-dw23G.framer-2qwvod > :last-child { margin-right: 0px; } }\",\".framer-dw23G.framer-v-f9xi3h.framer-2qwvod { padding: 12px 16px 12px 16px; }\",\".framer-dw23G.framer-v-1m0xyz7.framer-2qwvod, .framer-dw23G.framer-v-sqx21q.framer-2qwvod { padding: 4px 9px 4px 0px; }\",\".framer-dw23G.framer-v-1hwqnfu.framer-2qwvod, .framer-dw23G.framer-v-8nnk52.framer-2qwvod, .framer-dw23G.framer-v-y3qq01.framer-2qwvod { padding: 16px 24px 16px 24px; }\",\".framer-dw23G.framer-v-sqx21q .framer-1b4xu9n { width: 12px; }\",'.framer-dw23G[data-border=\"true\"]::after, .framer-dw23G [data-border=\"true\"]::after { content: \"\"; border-width: var(--border-top-width, 0) var(--border-right-width, 0) var(--border-bottom-width, 0) var(--border-left-width, 0); border-color: var(--border-color, none); border-style: var(--border-style, none); width: 100%; height: 100%; position: absolute; box-sizing: border-box; left: 0; top: 0; border-radius: inherit; pointer-events: none; }'];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 51\n * @framerIntrinsicWidth 168.5\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"auto\",\"auto\"]},\"VJn9CYSYK\":{\"layout\":[\"auto\",\"auto\"]},\"oEWTPHfTM\":{\"layout\":[\"auto\",\"auto\"]},\"oeyNKs7ss\":{\"layout\":[\"auto\",\"auto\"]},\"fZ2yZydwR\":{\"layout\":[\"auto\",\"auto\"]},\"dgGQgVUD5\":{\"layout\":[\"auto\",\"auto\"]},\"YPNA0Zd6Y\":{\"layout\":[\"auto\",\"auto\"]},\"IItl4lDJq\":{\"layout\":[\"auto\",\"auto\"]},\"kRdQDSTg2\":{\"layout\":[\"auto\",\"auto\"]},\"vCxzOb0M7\":{\"layout\":[\"auto\",\"auto\"]},\"c7Tv8hM9c\":{\"layout\":[\"auto\",\"auto\"]},\"ZGeR8z755\":{\"layout\":[\"auto\",\"auto\"]},\"PLxVoFfrC\":{\"layout\":[\"auto\",\"auto\"]},\"E8ryJhIAo\":{\"layout\":[\"auto\",\"auto\"]},\"rOC_xnORE\":{\"layout\":[\"auto\",\"auto\"]},\"ZFASJW3mi\":{\"layout\":[\"auto\",\"auto\"]},\"ShFx6Jb33\":{\"layout\":[\"auto\",\"auto\"]},\"Gr5yRPZu1\":{\"layout\":[\"auto\",\"auto\"]},\"jTKBzmdhZ\":{\"layout\":[\"auto\",\"auto\"]},\"LQYZEjORM\":{\"layout\":[\"auto\",\"auto\"]}}}\n * @framerVariables {\"oTkhntfqp\":\"title\",\"rDIYciChz\":\"link\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerComponentViewportWidth true\n */const Frameri0egtVe18=withCSS(Component,css,\"framer-dw23G\");export default Frameri0egtVe18;Frameri0egtVe18.displayName=\"Components / Button\";Frameri0egtVe18.defaultProps={height:51,width:168.5};addPropertyControls(Frameri0egtVe18,{variant:{options:[\"T5b_fO3Iy\",\"VJn9CYSYK\",\"oEWTPHfTM\",\"oeyNKs7ss\",\"fZ2yZydwR\",\"dgGQgVUD5\",\"YPNA0Zd6Y\",\"IItl4lDJq\",\"kRdQDSTg2\",\"vCxzOb0M7\"],optionTitles:[\"Button 1\",\"Button 2\",\"Button 3\",\"Button 4\",\"Button 5\",\"Button 6\",\"Button 7\",\"Button 8\",\"Button 9\",\"Button 10\"],title:\"Variant\",type:ControlType.Enum},oTkhntfqp:{defaultValue:\"Get started\",displayTextArea:false,title:\"Title\",type:ControlType.String},rDIYciChz:{title:\"Link\",type:ControlType.Link}});addFonts(Frameri0egtVe18,[{explicitInter:true,fonts:[{family:\"Roboto Mono\",source:\"google\",style:\"normal\",url:\"https://fonts.gstatic.com/s/robotomono/v23/L0xuDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_Of2PRu-5Ip2sSQ.woff2\",weight:\"700\"}]}],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Frameri0egtVe18\",\"slots\":[],\"annotations\":{\"framerIntrinsicWidth\":\"168.5\",\"framerImmutableVariables\":\"true\",\"framerDisplayContentsDiv\":\"false\",\"framerComponentViewportWidth\":\"true\",\"framerIntrinsicHeight\":\"51\",\"framerContractVersion\":\"1\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"VJn9CYSYK\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"oEWTPHfTM\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"oeyNKs7ss\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"fZ2yZydwR\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"dgGQgVUD5\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"YPNA0Zd6Y\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"IItl4lDJq\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"kRdQDSTg2\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"vCxzOb0M7\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"c7Tv8hM9c\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"ZGeR8z755\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"PLxVoFfrC\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"E8ryJhIAo\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"rOC_xnORE\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"ZFASJW3mi\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"ShFx6Jb33\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"Gr5yRPZu1\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"jTKBzmdhZ\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"LQYZEjORM\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]}}}\",\"framerVariables\":\"{\\\"oTkhntfqp\\\":\\\"title\\\",\\\"rDIYciChz\\\":\\\"link\\\"}\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./i0egtVe18.map","// Generated by Framer (2923eb5)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ControlType,cx,Link,RichText,useActiveVariantCallback,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";const cycleOrder=[\"DdWkCJr60\",\"p4VZjob_y\"];const serializationHash=\"framer-RF0yo\";const variantClassNames={DdWkCJr60:\"framer-v-12ccxlw\",p4VZjob_y:\"framer-v-1pm138f\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants===null||variants===void 0?void 0:variants.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={bounce:.2,delay:0,duration:.4,type:\"spring\"};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value!==null&&value!==void 0?value:config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const humanReadableVariantMap={Default:\"DdWkCJr60\",Hover:\"p4VZjob_y\"};const getProps=({height,id,link,title,width,...props})=>{var _ref,_humanReadableVariantMap_props_variant,_ref1;return{...props,qw_AdzeyT:(_ref=title!==null&&title!==void 0?title:props.qw_AdzeyT)!==null&&_ref!==void 0?_ref:\"DATA\",sghX8JOCt:link!==null&&link!==void 0?link:props.sghX8JOCt,variant:(_ref1=(_humanReadableVariantMap_props_variant=humanReadableVariantMap[props.variant])!==null&&_humanReadableVariantMap_props_variant!==void 0?_humanReadableVariantMap_props_variant:props.variant)!==null&&_ref1!==void 0?_ref1:\"DdWkCJr60\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const{activeLocale,setLocale}=useLocaleInfo();const{style,className,layoutId,variant,qw_AdzeyT,sghX8JOCt,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"DdWkCJr60\",variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const{activeVariantCallback,delay}=useActiveVariantCallback(baseVariant);const onMouseEnteraoo6ln=activeVariantCallback(async(...args)=>{setGestureState({isHovered:true});setVariant(\"p4VZjob_y\");});const onMouseLeavefc4p6h=activeVariantCallback(async(...args)=>{setGestureState({isHovered:false});setVariant(\"DdWkCJr60\");});const ref1=React.useRef(null);const defaultLayoutId=React.useId();const sharedStyleClassNames=[];const componentViewport=useComponentViewport();return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId!==null&&layoutId!==void 0?layoutId:defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsx(Link,{href:sghX8JOCt,openInNewTab:false,children:/*#__PURE__*/_jsx(motion.a,{...restProps,...gestureHandlers,className:`${cx(serializationHash,...sharedStyleClassNames,\"framer-12ccxlw\",className,classNames)} framer-zowlim`,\"data-framer-name\":\"Default\",\"data-highlight\":true,layoutDependency:layoutDependency,layoutId:\"DdWkCJr60\",onMouseEnter:onMouseEnteraoo6ln,onMouseLeave:onMouseLeavefc4p6h,ref:ref!==null&&ref!==void 0?ref:ref1,style:{...style},...addPropertyOverrides({p4VZjob_y:{\"data-framer-name\":\"Hover\"}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7Um9ib3RvIE1vbm8tNTAw\",\"--framer-font-family\":'\"Roboto Mono\", monospace',\"--framer-font-size\":\"14px\",\"--framer-font-weight\":\"500\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-f07bd819-3132-4b59-b01d-c794567fa989, rgb(255, 255, 255)))\"},children:\"DATA\"})}),className:\"framer-kix3pk\",fonts:[\"GF;Roboto Mono-500\"],layoutDependency:layoutDependency,layoutId:\"WsQiK9Q3a\",style:{\"--extracted-r6o4lv\":\"var(--token-f07bd819-3132-4b59-b01d-c794567fa989, rgb(255, 255, 255))\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},text:qw_AdzeyT,variants:{p4VZjob_y:{\"--extracted-r6o4lv\":\"var(--token-014f44b0-4365-49a2-a3e1-43e76509186b, rgb(173, 255, 133))\"}},verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({p4VZjob_y:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7Um9ib3RvIE1vbm8tNTAw\",\"--framer-font-family\":'\"Roboto Mono\", monospace',\"--framer-font-size\":\"14px\",\"--framer-font-weight\":\"500\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-014f44b0-4365-49a2-a3e1-43e76509186b, rgb(173, 255, 133)))\"},children:\"DATA\"})})}},baseVariant,gestureVariant)})})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-RF0yo.framer-zowlim, .framer-RF0yo .framer-zowlim { display: block; }\",\".framer-RF0yo.framer-12ccxlw { align-content: center; align-items: center; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; text-decoration: none; width: min-content; }\",\".framer-RF0yo .framer-kix3pk { flex: none; height: auto; position: relative; white-space: pre; width: auto; }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-RF0yo.framer-12ccxlw { gap: 0px; } .framer-RF0yo.framer-12ccxlw > * { margin: 0px; margin-left: calc(10px / 2); margin-right: calc(10px / 2); } .framer-RF0yo.framer-12ccxlw > :first-child { margin-left: 0px; } .framer-RF0yo.framer-12ccxlw > :last-child { margin-right: 0px; } }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 17\n * @framerIntrinsicWidth 33.5\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"auto\",\"auto\"]},\"p4VZjob_y\":{\"layout\":[\"auto\",\"auto\"]}}}\n * @framerVariables {\"qw_AdzeyT\":\"title\",\"sghX8JOCt\":\"link\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerComponentViewportWidth true\n */const Framern7QxVDeta=withCSS(Component,css,\"framer-RF0yo\");export default Framern7QxVDeta;Framern7QxVDeta.displayName=\"Nav bar menu link\";Framern7QxVDeta.defaultProps={height:17,width:33.5};addPropertyControls(Framern7QxVDeta,{variant:{options:[\"DdWkCJr60\",\"p4VZjob_y\"],optionTitles:[\"Default\",\"Hover\"],title:\"Variant\",type:ControlType.Enum},qw_AdzeyT:{defaultValue:\"DATA\",displayTextArea:false,title:\"Title\",type:ControlType.String},sghX8JOCt:{title:\"Link\",type:ControlType.Link}});addFonts(Framern7QxVDeta,[{explicitInter:true,fonts:[{family:\"Roboto Mono\",source:\"google\",style:\"normal\",url:\"https://fonts.gstatic.com/s/robotomono/v23/L0xuDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_7PqPRu-5Ip2sSQ.woff2\",weight:\"500\"}]}],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Framern7QxVDeta\",\"slots\":[],\"annotations\":{\"framerImmutableVariables\":\"true\",\"framerComponentViewportWidth\":\"true\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"p4VZjob_y\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]}}}\",\"framerIntrinsicWidth\":\"33.5\",\"framerContractVersion\":\"1\",\"framerDisplayContentsDiv\":\"false\",\"framerIntrinsicHeight\":\"17\",\"framerVariables\":\"{\\\"qw_AdzeyT\\\":\\\"title\\\",\\\"sghX8JOCt\\\":\\\"link\\\"}\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./n7QxVDeta.map","// Generated by Framer (3d3d426)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,ControlType,cx,getFonts,ResolveLinks,SmartComponentScopedContainer,useActiveVariantCallback,useComponentViewport,useLocaleInfo,useRouter,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import NavBarMenuLink from\"https://framerusercontent.com/modules/jZDymKNbFrevxTH0bSNx/1PKv2dAR33gtGndNGSt5/n7QxVDeta.js\";const NavBarMenuLinkFonts=getFonts(NavBarMenuLink);const serializationHash=\"framer-E2E8f\";const variantClassNames={bk9OfCrcx:\"framer-v-b2nkgt\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={bounce:.2,delay:0,duration:.4,type:\"spring\"};const transition2={bounce:.25,delay:0,duration:.45,type:\"spring\"};const animation={opacity:1,rotate:0,rotateX:0,rotateY:0,scale:1.1,skewX:0,skewY:0,transition:transition2};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const getProps=({click2,height,id,width,...props})=>{return{...props,e4q_eb4LI:click2??props.e4q_eb4LI};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,e4q_eb4LI,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({defaultVariant:\"bk9OfCrcx\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const{activeVariantCallback,delay}=useActiveVariantCallback(baseVariant);const onTap3k7bhe=activeVariantCallback(async(...args)=>{setGestureState({isPressed:false});if(e4q_eb4LI){const res=await e4q_eb4LI(...args);if(res===false)return false;}});const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);const router=useRouter();return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsxs(motion.div,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-b2nkgt\",className,classNames),\"data-framer-name\":\"Default\",\"data-highlight\":true,layoutDependency:layoutDependency,layoutId:\"bk9OfCrcx\",onTap:onTap3k7bhe,ref:refBinding,style:{backgroundColor:\"rgba(33, 46, 49, 0.5)\",borderBottomLeftRadius:12,borderBottomRightRadius:12,borderTopLeftRadius:12,borderTopRightRadius:12,...style},children:[/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{webPageId:\"cOwb_OreY\"},implicitPathVariables:undefined}],children:resolvedLinks=>/*#__PURE__*/_jsx(ComponentViewportProvider,{height:19,y:(componentViewport?.y||0)+20+(((componentViewport?.height||137)-40-97)/2+0+0),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-ua5fjo-container\",layoutDependency:layoutDependency,layoutId:\"swMaKFPwA-container\",nodeId:\"swMaKFPwA\",rendersWithMotion:true,scopeId:\"WnsRJooZS\",whileHover:animation,children:/*#__PURE__*/_jsx(NavBarMenuLink,{height:\"100%\",id:\"swMaKFPwA\",layoutId:\"swMaKFPwA\",qw_AdzeyT:\"DATA\",sghX8JOCt:resolvedLinks[0],style:{height:\"100%\"},variant:\"DdWkCJr60\",width:\"100%\"})})})}),/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{webPageId:\"FDWAc3X9F\"},implicitPathVariables:undefined}],children:resolvedLinks1=>/*#__PURE__*/_jsx(ComponentViewportProvider,{height:19,y:(componentViewport?.y||0)+20+(((componentViewport?.height||137)-40-97)/2+19+20),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1noid3o-container\",layoutDependency:layoutDependency,layoutId:\"Ix5Jedycv-container\",nodeId:\"Ix5Jedycv\",rendersWithMotion:true,scopeId:\"WnsRJooZS\",whileHover:animation,children:/*#__PURE__*/_jsx(NavBarMenuLink,{height:\"100%\",id:\"Ix5Jedycv\",layoutId:\"Ix5Jedycv\",qw_AdzeyT:\"DEVOPS\",sghX8JOCt:resolvedLinks1[0],style:{height:\"100%\"},variant:\"DdWkCJr60\",width:\"100%\"})})})}),/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{webPageId:\"nNPCGl7f3\"},implicitPathVariables:undefined}],children:resolvedLinks2=>/*#__PURE__*/_jsx(ComponentViewportProvider,{height:19,y:(componentViewport?.y||0)+20+(((componentViewport?.height||137)-40-97)/2+38+40),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-9qrw3v-container\",layoutDependency:layoutDependency,layoutId:\"lxAEYQtHO-container\",nodeId:\"lxAEYQtHO\",rendersWithMotion:true,scopeId:\"WnsRJooZS\",whileHover:animation,children:/*#__PURE__*/_jsx(NavBarMenuLink,{height:\"100%\",id:\"lxAEYQtHO\",layoutId:\"lxAEYQtHO\",qw_AdzeyT:\"APP DEV\",sghX8JOCt:resolvedLinks2[0],style:{height:\"100%\"},variant:\"DdWkCJr60\",width:\"100%\"})})})})]})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-E2E8f.framer-aalen2, .framer-E2E8f .framer-aalen2 { display: block; }\",\".framer-E2E8f.framer-b2nkgt { align-content: flex-start; align-items: flex-start; cursor: pointer; display: flex; flex-direction: column; flex-wrap: nowrap; gap: 20px; height: min-content; justify-content: center; overflow: hidden; padding: 20px; position: relative; width: min-content; will-change: var(--framer-will-change-override, transform); }\",\".framer-E2E8f .framer-ua5fjo-container, .framer-E2E8f .framer-1noid3o-container, .framer-E2E8f .framer-9qrw3v-container { flex: none; height: 19px; position: relative; width: auto; will-change: var(--framer-will-change-effect-override, transform); }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 137\n * @framerIntrinsicWidth 98.8\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"auto\",\"auto\"]}}}\n * @framerVariables {\"e4q_eb4LI\":\"click2\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerWnsRJooZS=withCSS(Component,css,\"framer-E2E8f\");export default FramerWnsRJooZS;FramerWnsRJooZS.displayName=\"Navbar Dropdown\";FramerWnsRJooZS.defaultProps={height:137,width:98.8};addPropertyControls(FramerWnsRJooZS,{e4q_eb4LI:{title:\"Click 2\",type:ControlType.EventHandler}});addFonts(FramerWnsRJooZS,[{explicitInter:true,fonts:[]},...NavBarMenuLinkFonts],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerWnsRJooZS\",\"slots\":[],\"annotations\":{\"framerColorSyntax\":\"true\",\"framerAutoSizeImages\":\"true\",\"framerDisplayContentsDiv\":\"false\",\"framerContractVersion\":\"1\",\"framerIntrinsicHeight\":\"137\",\"framerComponentViewportWidth\":\"true\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]}}}\",\"framerImmutableVariables\":\"true\",\"framerVariables\":\"{\\\"e4q_eb4LI\\\":\\\"click2\\\"}\",\"framerIntrinsicWidth\":\"98.8\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./WnsRJooZS.map","// Generated by Framer (3d3d426)\nimport{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,ControlType,cx,Floating,getFonts,getFontsFromSharedStyle,Link,ResolveLinks,RichText,SmartComponentScopedContainer,useActiveVariantCallback,useComponentViewport,useLocaleInfo,useOverlayState,useRouter,useVariantState,withCSS,withFX}from\"framer\";import{AnimatePresence,LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import*as sharedStyle from\"https://framerusercontent.com/modules/3EpwaMNu3dgnixNIBPgS/ijdM3WbKPTm6YWKf1ShI/zp_pH5qZB.js\";import ComponentsLogo from\"https://framerusercontent.com/modules/5gC5k1B9WsqLP6EKkufg/IU59BpD92ZDZ8wUBkXrY/DFuNbTlyP.js\";import ComponentsButton from\"https://framerusercontent.com/modules/qUx0bg6dYoQhhlsjBNI3/MlAKylrvGgifd23bT08u/i0egtVe18.js\";import NavbarDropdown from\"https://framerusercontent.com/modules/C2HLbQBeigiWL0WIaKfw/F5GHTANRF28lu6ulslrD/WnsRJooZS.js\";const ComponentsLogoFonts=getFonts(ComponentsLogo);const NavbarDropdownFonts=getFonts(NavbarDropdown);const MotionDivWithFX=withFX(motion.div);const ComponentsButtonFonts=getFonts(ComponentsButton);const cycleOrder=[\"X5Yti9xYs\",\"G5KRMRfow\",\"Nh0i5m4cI\"];const serializationHash=\"framer-YIeB1\";const variantClassNames={G5KRMRfow:\"framer-v-15auuhe\",Nh0i5m4cI:\"framer-v-zseczu\",X5Yti9xYs:\"framer-v-kpk27y\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={damping:60,delay:0,mass:1,stiffness:500,type:\"spring\"};const transition2={damping:60,delay:0,mass:.1,stiffness:500,type:\"spring\"};const transition3={duration:0,type:\"tween\"};const transition4={bounce:.2,delay:0,duration:.4,type:\"spring\"};const animation={opacity:0,rotate:0,rotateX:0,rotateY:0,scale:1,skewX:0,skewY:0,transition:transition4,x:0,y:0};const animation1={opacity:1,rotate:0,rotateX:0,rotateY:0,scale:1,skewX:0,skewY:0,transition:transition4,x:0,y:0};const animation2={opacity:0,rotate:0,rotateX:0,rotateY:0,scale:1,skewX:0,skewY:0,x:0,y:0};const Overlay=({children,blockDocumentScrolling,enabled=true})=>{const[visible,setVisible]=useOverlayState({blockDocumentScrolling});return children({hide:()=>setVisible(false),show:()=>setVisible(true),toggle:()=>setVisible(!visible),visible:enabled&&visible});};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const humanReadableVariantMap={\"Mobile Open\":\"Nh0i5m4cI\",Desktop:\"X5Yti9xYs\",Mobile:\"G5KRMRfow\"};const getProps=({height,id,nAVBARITEMHOVER,width,...props})=>{return{...props,I9gduMs6X:nAVBARITEMHOVER??props.I9gduMs6X,variant:humanReadableVariantMap[props.variant]??props.variant??\"X5Yti9xYs\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,I9gduMs6X,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"X5Yti9xYs\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const{activeVariantCallback,delay}=useActiveVariantCallback(baseVariant);const onTapuikelt=activeVariantCallback(async(...args)=>{setVariant(\"Nh0i5m4cI\");});const onTapeo0uuw=activeVariantCallback(async(...args)=>{setVariant(\"G5KRMRfow\");});const onTap148p1tv=activeVariantCallback(async(...args)=>{if(I9gduMs6X){const res=await I9gduMs6X(...args);if(res===false)return false;}});const onMouseEntertxyyif=({overlay,loadMore})=>activeVariantCallback(async(...args)=>{overlay.show();});const sharedStyleClassNames=[sharedStyle.className];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);const isDisplayed=()=>{if([\"G5KRMRfow\",\"Nh0i5m4cI\"].includes(baseVariant))return true;return false;};const isDisplayed1=()=>{if(baseVariant===\"Nh0i5m4cI\")return false;return true;};const isDisplayed2=()=>{if(baseVariant===\"G5KRMRfow\")return false;return true;};const ref1=React.useRef(null);const ref2=React.useRef(null);const isDisplayed3=()=>{if(baseVariant===\"Nh0i5m4cI\")return true;return false;};const router=useRouter();return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,...addPropertyOverrides({G5KRMRfow:{value:transition2},Nh0i5m4cI:{value:transition3}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(motion.header,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-kpk27y\",className,classNames),\"data-framer-name\":\"Desktop\",layoutDependency:layoutDependency,layoutId:\"X5Yti9xYs\",ref:refBinding,style:{backgroundColor:\"rgba(8, 15, 17, 0.8)\",...style},variants:{Nh0i5m4cI:{backgroundColor:\"var(--token-b69a2820-65b0-4428-9394-a203b35ae7ac, rgb(6, 15, 17))\"}},...addPropertyOverrides({G5KRMRfow:{\"data-framer-name\":\"Mobile\"},Nh0i5m4cI:{\"data-framer-name\":\"Mobile Open\",\"data-highlight\":true}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsxs(motion.div,{className:\"framer-5nks7q\",\"data-framer-name\":\"Container\",layoutDependency:layoutDependency,layoutId:\"c2xT_H0C9\",children:[/*#__PURE__*/_jsxs(motion.div,{className:\"framer-gnbxvx\",layoutDependency:layoutDependency,layoutId:\"tsZKfjFJH\",children:[/*#__PURE__*/_jsx(motion.nav,{className:\"framer-1oblfky\",\"data-framer-name\":\"Logo Block\",layoutDependency:layoutDependency,layoutId:\"jG47LZIwa\",children:/*#__PURE__*/_jsxs(motion.div,{className:\"framer-qturrh\",\"data-framer-name\":\"Logo\",layoutDependency:layoutDependency,layoutId:\"yGwHcHnxE\",children:[/*#__PURE__*/_jsx(motion.div,{className:\"framer-5kge0y\",layoutDependency:layoutDependency,layoutId:\"u0eNN7bRG\",children:/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1ywyd75-container\",layoutDependency:layoutDependency,layoutId:\"eqCu5hEJO-container\",nodeId:\"eqCu5hEJO\",rendersWithMotion:true,scopeId:\"FOOO2YyO1\",children:/*#__PURE__*/_jsx(ComponentsLogo,{height:\"100%\",id:\"eqCu5hEJO\",layoutId:\"eqCu5hEJO\",width:\"100%\"})})})}),isDisplayed()&&/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1vkc1kp\",\"data-framer-name\":\"Icon\",layoutDependency:layoutDependency,layoutId:\"xCvTYM8gg\",style:{backgroundColor:\"rgb(232, 232, 232)\",borderBottomLeftRadius:12,borderBottomRightRadius:12,borderTopLeftRadius:12,borderTopRightRadius:12},variants:{G5KRMRfow:{backgroundColor:\"var(--token-f07bd819-3132-4b59-b01d-c794567fa989, rgb(255, 255, 255))\",borderBottomLeftRadius:8,borderBottomRightRadius:8,borderTopLeftRadius:8,borderTopRightRadius:8},Nh0i5m4cI:{backgroundColor:\"var(--token-f07bd819-3132-4b59-b01d-c794567fa989, rgb(255, 255, 255))\",borderBottomLeftRadius:8,borderBottomRightRadius:8,borderTopLeftRadius:8,borderTopRightRadius:8}},...addPropertyOverrides({G5KRMRfow:{\"data-highlight\":true,onTap:onTapuikelt},Nh0i5m4cI:{\"data-highlight\":true,onTap:onTapeo0uuw}},baseVariant,gestureVariant),children:[/*#__PURE__*/_jsx(motion.div,{className:\"framer-1jo4u4g\",\"data-framer-name\":\"Bottom\",layoutDependency:layoutDependency,layoutId:\"kYSsQ2jg5\",style:{backgroundColor:\"var(--token-30882c94-f0d7-4676-a31c-4e1d40152456, rgb(33, 49, 36))\",borderBottomLeftRadius:1,borderBottomRightRadius:1,borderTopLeftRadius:1,borderTopRightRadius:1,rotate:0},variants:{G5KRMRfow:{backgroundColor:\"var(--token-b69a2820-65b0-4428-9394-a203b35ae7ac, rgb(6, 15, 17))\"},Nh0i5m4cI:{backgroundColor:\"var(--token-b69a2820-65b0-4428-9394-a203b35ae7ac, rgb(6, 15, 17))\",rotate:-45}}}),isDisplayed1()&&/*#__PURE__*/_jsx(motion.div,{className:\"framer-146ql5w\",\"data-framer-name\":\"Center\",layoutDependency:layoutDependency,layoutId:\"Qibmi4ArA\",style:{backgroundColor:\"var(--token-b69a2820-65b0-4428-9394-a203b35ae7ac, rgb(6, 15, 17))\",borderBottomLeftRadius:1,borderBottomRightRadius:1,borderTopLeftRadius:1,borderTopRightRadius:1}}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-m96nr9\",\"data-framer-name\":\"Top\",layoutDependency:layoutDependency,layoutId:\"w5LZL5twf\",style:{backgroundColor:\"var(--token-30882c94-f0d7-4676-a31c-4e1d40152456, rgb(33, 49, 36))\",borderBottomLeftRadius:1,borderBottomRightRadius:1,borderTopLeftRadius:1,borderTopRightRadius:1,rotate:0},variants:{G5KRMRfow:{backgroundColor:\"var(--token-b69a2820-65b0-4428-9394-a203b35ae7ac, rgb(6, 15, 17))\"},Nh0i5m4cI:{backgroundColor:\"var(--token-b69a2820-65b0-4428-9394-a203b35ae7ac, rgb(6, 15, 17))\",rotate:45}}})]})]})}),isDisplayed2()&&/*#__PURE__*/_jsxs(motion.div,{className:\"framer-tmrfg4\",\"data-framer-name\":\"Links\",layoutDependency:layoutDependency,layoutId:\"d1WjOu5e_\",style:{borderBottomLeftRadius:64,borderBottomRightRadius:64,borderTopLeftRadius:64,borderTopRightRadius:64},children:[/*#__PURE__*/_jsx(motion.div,{className:\"framer-yzer3k\",\"data-framer-name\":\"Nav Link\",layoutDependency:layoutDependency,layoutId:\"KUETCQfEP\",children:/*#__PURE__*/_jsx(Overlay,{blockDocumentScrolling:false,enabled:isDisplayed1(),children:overlay=>/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7Um9ib3RvIE1vbm8tNTAw\",\"--framer-font-family\":'\"Roboto Mono\", monospace',\"--framer-font-size\":\"14px\",\"--framer-font-weight\":\"500\",\"--framer-line-height\":\"1.4em\",\"--framer-text-alignment\":\"left\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-f07bd819-3132-4b59-b01d-c794567fa989, rgb(255, 255, 255)))\",\"--framer-text-transform\":\"uppercase\"},children:/*#__PURE__*/_jsx(Link,{href:{webPageId:\"iKSOJJpmM\"},motionChild:true,nodeId:\"xpqSUCoGv\",openInNewTab:false,scopeId:\"FOOO2YyO1\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-blcz8v\",\"data-styles-preset\":\"zp_pH5qZB\",children:\"Services\"})})})}),className:\"framer-p1j1u7\",\"data-highlight\":true,fonts:[\"GF;Roboto Mono-500\"],id:`${layoutId}-p1j1u7`,layoutDependency:layoutDependency,layoutId:\"xpqSUCoGv\",onMouseEnter:onMouseEntertxyyif({overlay}),onTap:onTap148p1tv,ref:ref1,style:{\"--extracted-r6o4lv\":\"var(--token-f07bd819-3132-4b59-b01d-c794567fa989, rgb(255, 255, 255))\"},verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({Nh0i5m4cI:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7Um9ib3RvIE1vbm8tNTAw\",\"--framer-font-family\":'\"Roboto Mono\", monospace',\"--framer-font-size\":\"21px\",\"--framer-font-weight\":\"500\",\"--framer-line-height\":\"1.4em\",\"--framer-text-alignment\":\"left\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-f07bd819-3132-4b59-b01d-c794567fa989, rgb(255, 255, 255)))\",\"--framer-text-transform\":\"uppercase\"},children:/*#__PURE__*/_jsx(Link,{href:{webPageId:\"iKSOJJpmM\"},motionChild:true,nodeId:\"xpqSUCoGv\",openInNewTab:false,scopeId:\"FOOO2YyO1\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-blcz8v\",\"data-styles-preset\":\"zp_pH5qZB\",children:\"Services\"})})})}),onTap:undefined}},baseVariant,gestureVariant)}),isDisplayed1()&&/*#__PURE__*/_jsx(AnimatePresence,{children:overlay.visible&&/*#__PURE__*/_jsx(Floating,{alignment:\"start\",anchorRef:ref1,className:cx(scopingClassNames,classNames),collisionDetection:true,collisionDetectionPadding:20,\"data-framer-portal-id\":`${layoutId}-p1j1u7`,offsetX:0,offsetY:10,onDismiss:overlay.hide,placement:\"bottom\",safeArea:true,zIndex:11,children:/*#__PURE__*/_jsx(MotionDivWithFX,{__perspectiveFX:false,__smartComponentFX:true,__targetOpacity:1,animate:animation1,className:\"framer-1bul9bo\",exit:animation,initial:animation2,layoutDependency:layoutDependency,layoutId:\"KHYKhnPwZ\",ref:ref2,role:\"dialog\",style:{borderBottomLeftRadius:10,borderBottomRightRadius:10,borderTopLeftRadius:10,borderTopRightRadius:10,boxShadow:\"0px 10px 20px 0px rgba(0, 0, 0, 0.05)\"},children:/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-8bejid-container\",layoutDependency:layoutDependency,layoutId:\"Qc9Qr_EDx-container\",nodeId:\"Qc9Qr_EDx\",rendersWithMotion:true,scopeId:\"FOOO2YyO1\",children:/*#__PURE__*/_jsx(NavbarDropdown,{height:\"100%\",id:\"Qc9Qr_EDx\",layoutId:\"Qc9Qr_EDx\",width:\"100%\"})})})})})})]})})}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-1qh7dfe\",\"data-framer-name\":\"Nav Link\",layoutDependency:layoutDependency,layoutId:\"s_zg7SC0t\",children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7Um9ib3RvIE1vbm8tNTAw\",\"--framer-font-family\":'\"Roboto Mono\", monospace',\"--framer-font-size\":\"14px\",\"--framer-font-weight\":\"500\",\"--framer-line-height\":\"1.4em\",\"--framer-text-alignment\":\"left\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-6014b03e-96b6-44fc-a8fe-1c6402d9a85e, rgb(180, 185, 177)))\",\"--framer-text-transform\":\"uppercase\"},children:/*#__PURE__*/_jsx(Link,{href:{webPageId:\"rCh0gpRWY\"},motionChild:true,nodeId:\"S4RBFa47x\",openInNewTab:false,scopeId:\"FOOO2YyO1\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-blcz8v\",\"data-styles-preset\":\"zp_pH5qZB\",children:\"AWS\"})})})}),className:\"framer-1wmi0h9\",fonts:[\"GF;Roboto Mono-500\"],layoutDependency:layoutDependency,layoutId:\"S4RBFa47x\",style:{\"--extracted-r6o4lv\":\"var(--token-6014b03e-96b6-44fc-a8fe-1c6402d9a85e, rgb(180, 185, 177))\"},verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({Nh0i5m4cI:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7Um9ib3RvIE1vbm8tNTAw\",\"--framer-font-family\":'\"Roboto Mono\", monospace',\"--framer-font-size\":\"21px\",\"--framer-font-weight\":\"500\",\"--framer-line-height\":\"1.4em\",\"--framer-text-alignment\":\"left\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-6014b03e-96b6-44fc-a8fe-1c6402d9a85e, rgb(180, 185, 177)))\",\"--framer-text-transform\":\"uppercase\"},children:/*#__PURE__*/_jsx(Link,{href:{webPageId:\"rCh0gpRWY\"},motionChild:true,nodeId:\"S4RBFa47x\",openInNewTab:false,scopeId:\"FOOO2YyO1\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-blcz8v\",\"data-styles-preset\":\"zp_pH5qZB\",children:\"AWS\"})})})})}},baseVariant,gestureVariant)})}),isDisplayed3()&&/*#__PURE__*/_jsx(motion.div,{className:\"framer-it359a\",\"data-framer-name\":\"Nav Link\",layoutDependency:layoutDependency,layoutId:\"DnVvXB6hw\",children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7Um9ib3RvIE1vbm8tNTAw\",\"--framer-font-family\":'\"Roboto Mono\", monospace',\"--framer-font-size\":\"21px\",\"--framer-font-weight\":\"500\",\"--framer-line-height\":\"1.4em\",\"--framer-text-alignment\":\"left\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-6014b03e-96b6-44fc-a8fe-1c6402d9a85e, rgb(180, 185, 177)))\",\"--framer-text-transform\":\"uppercase\"},children:/*#__PURE__*/_jsx(Link,{href:{webPageId:\"FDWAc3X9F\"},motionChild:true,nodeId:\"P_GYWobd_\",openInNewTab:false,scopeId:\"FOOO2YyO1\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-blcz8v\",\"data-styles-preset\":\"zp_pH5qZB\",children:\"INFRASTRUCTURE\"})})})}),className:\"framer-1fm4s44\",fonts:[\"GF;Roboto Mono-500\"],layoutDependency:layoutDependency,layoutId:\"P_GYWobd_\",style:{\"--extracted-r6o4lv\":\"var(--token-6014b03e-96b6-44fc-a8fe-1c6402d9a85e, rgb(180, 185, 177))\"},verticalAlignment:\"top\",withExternalLayout:true})}),isDisplayed3()&&/*#__PURE__*/_jsx(motion.div,{className:\"framer-6jz3qw\",\"data-framer-name\":\"Nav Link\",layoutDependency:layoutDependency,layoutId:\"hgYfLFkFe\",children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7Um9ib3RvIE1vbm8tNTAw\",\"--framer-font-family\":'\"Roboto Mono\", monospace',\"--framer-font-size\":\"21px\",\"--framer-font-weight\":\"500\",\"--framer-line-height\":\"1.4em\",\"--framer-text-alignment\":\"left\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-6014b03e-96b6-44fc-a8fe-1c6402d9a85e, rgb(180, 185, 177)))\",\"--framer-text-transform\":\"uppercase\"},children:/*#__PURE__*/_jsx(Link,{href:{webPageId:\"nNPCGl7f3\"},motionChild:true,nodeId:\"rlxBMV0O4\",openInNewTab:false,scopeId:\"FOOO2YyO1\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-blcz8v\",\"data-styles-preset\":\"zp_pH5qZB\",children:\"APP DEV\"})})})}),className:\"framer-1lyrmgl\",fonts:[\"GF;Roboto Mono-500\"],layoutDependency:layoutDependency,layoutId:\"rlxBMV0O4\",style:{\"--extracted-r6o4lv\":\"var(--token-6014b03e-96b6-44fc-a8fe-1c6402d9a85e, rgb(180, 185, 177))\"},verticalAlignment:\"top\",withExternalLayout:true})}),isDisplayed3()&&/*#__PURE__*/_jsx(motion.div,{className:\"framer-yjiedf\",\"data-framer-name\":\"Nav Link\",layoutDependency:layoutDependency,layoutId:\"kKKWsQsMe\",children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7Um9ib3RvIE1vbm8tNTAw\",\"--framer-font-family\":'\"Roboto Mono\", monospace',\"--framer-font-size\":\"21px\",\"--framer-font-weight\":\"500\",\"--framer-line-height\":\"1.4em\",\"--framer-text-alignment\":\"left\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-6014b03e-96b6-44fc-a8fe-1c6402d9a85e, rgb(180, 185, 177)))\",\"--framer-text-transform\":\"uppercase\"},children:/*#__PURE__*/_jsx(Link,{href:{webPageId:\"cOwb_OreY\"},motionChild:true,nodeId:\"iM2XPjQ3_\",openInNewTab:false,scopeId:\"FOOO2YyO1\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-blcz8v\",\"data-styles-preset\":\"zp_pH5qZB\",children:\"DATA\"})})})}),className:\"framer-xipqjp\",fonts:[\"GF;Roboto Mono-500\"],layoutDependency:layoutDependency,layoutId:\"iM2XPjQ3_\",style:{\"--extracted-r6o4lv\":\"var(--token-6014b03e-96b6-44fc-a8fe-1c6402d9a85e, rgb(180, 185, 177))\"},verticalAlignment:\"top\",withExternalLayout:true})}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-xk0v9q\",\"data-framer-name\":\"Nav Link\",layoutDependency:layoutDependency,layoutId:\"XRsUOiJx4\",children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7Um9ib3RvIE1vbm8tNTAw\",\"--framer-font-family\":'\"Roboto Mono\", monospace',\"--framer-font-size\":\"14px\",\"--framer-font-weight\":\"500\",\"--framer-line-height\":\"1.4em\",\"--framer-text-alignment\":\"left\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-f07bd819-3132-4b59-b01d-c794567fa989, rgb(255, 255, 255)))\",\"--framer-text-transform\":\"uppercase\"},children:/*#__PURE__*/_jsx(Link,{href:{webPageId:\"KEaS4HibG\"},motionChild:true,nodeId:\"cL9zUm28J\",openInNewTab:false,scopeId:\"FOOO2YyO1\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-blcz8v\",\"data-styles-preset\":\"zp_pH5qZB\",children:\"about us\"})})})}),className:\"framer-1fviink\",fonts:[\"GF;Roboto Mono-500\"],layoutDependency:layoutDependency,layoutId:\"cL9zUm28J\",style:{\"--extracted-r6o4lv\":\"var(--token-f07bd819-3132-4b59-b01d-c794567fa989, rgb(255, 255, 255))\"},verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({Nh0i5m4cI:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7Um9ib3RvIE1vbm8tNTAw\",\"--framer-font-family\":'\"Roboto Mono\", monospace',\"--framer-font-size\":\"21px\",\"--framer-font-weight\":\"500\",\"--framer-line-height\":\"1.4em\",\"--framer-text-alignment\":\"left\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-f07bd819-3132-4b59-b01d-c794567fa989, rgb(255, 255, 255)))\",\"--framer-text-transform\":\"uppercase\"},children:/*#__PURE__*/_jsx(Link,{href:{webPageId:\"KEaS4HibG\"},motionChild:true,nodeId:\"cL9zUm28J\",openInNewTab:false,scopeId:\"FOOO2YyO1\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-blcz8v\",\"data-styles-preset\":\"zp_pH5qZB\",children:\"about us\"})})})})}},baseVariant,gestureVariant)})}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-1cq4l3p\",\"data-framer-name\":\"Nav Link\",layoutDependency:layoutDependency,layoutId:\"UdkVJp40K\",children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7Um9ib3RvIE1vbm8tNTAw\",\"--framer-font-family\":'\"Roboto Mono\", monospace',\"--framer-font-size\":\"14px\",\"--framer-font-weight\":\"500\",\"--framer-line-height\":\"1.4em\",\"--framer-text-alignment\":\"left\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-6014b03e-96b6-44fc-a8fe-1c6402d9a85e, rgb(180, 185, 177)))\",\"--framer-text-transform\":\"uppercase\"},children:/*#__PURE__*/_jsx(Link,{href:{webPageId:\"aw67gyJIs\"},motionChild:true,nodeId:\"l4RxFIh6H\",openInNewTab:false,scopeId:\"FOOO2YyO1\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-blcz8v\",\"data-styles-preset\":\"zp_pH5qZB\",children:\"Blog\"})})})}),className:\"framer-p1zx0x\",fonts:[\"GF;Roboto Mono-500\"],layoutDependency:layoutDependency,layoutId:\"l4RxFIh6H\",style:{\"--extracted-r6o4lv\":\"var(--token-6014b03e-96b6-44fc-a8fe-1c6402d9a85e, rgb(180, 185, 177))\"},verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({Nh0i5m4cI:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7Um9ib3RvIE1vbm8tNTAw\",\"--framer-font-family\":'\"Roboto Mono\", monospace',\"--framer-font-size\":\"21px\",\"--framer-font-weight\":\"500\",\"--framer-line-height\":\"1.4em\",\"--framer-text-alignment\":\"left\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-6014b03e-96b6-44fc-a8fe-1c6402d9a85e, rgb(180, 185, 177)))\",\"--framer-text-transform\":\"uppercase\"},children:/*#__PURE__*/_jsx(Link,{href:{webPageId:\"aw67gyJIs\"},motionChild:true,nodeId:\"l4RxFIh6H\",openInNewTab:false,scopeId:\"FOOO2YyO1\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-blcz8v\",\"data-styles-preset\":\"zp_pH5qZB\",children:\"Blog\"})})})})}},baseVariant,gestureVariant)})})]})]}),isDisplayed2()&&/*#__PURE__*/_jsx(motion.div,{className:\"framer-v6s633\",layoutDependency:layoutDependency,layoutId:\"DouyTbJws\",children:isDisplayed1()&&/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{webPageId:\"PmR5GbcO8\"},implicitPathVariables:undefined}],children:resolvedLinks=>/*#__PURE__*/_jsx(ComponentViewportProvider,{height:51,y:(componentViewport?.y||0)+(16+((componentViewport?.height||75.6)-32-51)/2)+0+0,children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1w3orcw-container\",layoutDependency:layoutDependency,layoutId:\"F3M44DL58-container\",nodeId:\"F3M44DL58\",rendersWithMotion:true,scopeId:\"FOOO2YyO1\",children:/*#__PURE__*/_jsx(ComponentsButton,{height:\"100%\",id:\"F3M44DL58\",layoutId:\"F3M44DL58\",oTkhntfqp:\"GET STARTED\",rDIYciChz:resolvedLinks[0],variant:\"oEWTPHfTM\",width:\"100%\"})})})})})]})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-YIeB1.framer-1o0ilw, .framer-YIeB1 .framer-1o0ilw { display: block; }\",\".framer-YIeB1.framer-kpk27y { align-content: center; align-items: center; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; overflow: visible; padding: 16px 0px 16px 0px; position: relative; width: 1280px; }\",\".framer-YIeB1 .framer-5nks7q { align-content: center; align-items: center; display: flex; flex: 1 0 0px; flex-direction: row; flex-wrap: nowrap; height: min-content; justify-content: space-between; max-width: 1280px; overflow: visible; padding: 0px 40px 0px 40px; position: relative; width: 1px; }\",\".framer-YIeB1 .framer-gnbxvx { align-content: center; align-items: center; display: flex; flex: 1 0 0px; flex-direction: row; flex-wrap: nowrap; height: min-content; justify-content: space-between; overflow: visible; padding: 0px; position: relative; width: 1px; }\",\".framer-YIeB1 .framer-1oblfky, .framer-YIeB1 .framer-qturrh, .framer-YIeB1 .framer-5kge0y { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 16px; height: min-content; justify-content: flex-start; overflow: visible; padding: 0px; position: relative; width: min-content; }\",\".framer-YIeB1 .framer-1ywyd75-container, .framer-YIeB1 .framer-1w3orcw-container { flex: none; height: auto; position: relative; width: auto; }\",\".framer-YIeB1 .framer-1vkc1kp { flex: none; height: 40px; overflow: visible; position: relative; width: 40px; }\",\".framer-YIeB1 .framer-1jo4u4g { bottom: 13px; flex: none; height: 2px; left: calc(50.00000000000002% - 18px / 2); overflow: visible; position: absolute; width: 18px; }\",\".framer-YIeB1 .framer-146ql5w { flex: none; height: 2px; left: calc(50.00000000000002% - 18px / 2); overflow: visible; position: absolute; top: calc(50.00000000000002% - 2px / 2); width: 18px; }\",\".framer-YIeB1 .framer-m96nr9 { flex: none; height: 2px; left: calc(50.00000000000002% - 18px / 2); overflow: visible; position: absolute; top: 13px; width: 18px; }\",\".framer-YIeB1 .framer-tmrfg4 { align-content: center; align-items: center; display: flex; flex: 1 0 0px; flex-direction: row; flex-wrap: nowrap; gap: 8px; height: min-content; justify-content: center; overflow: visible; padding: 4px; position: relative; width: 1px; }\",\".framer-YIeB1 .framer-yzer3k, .framer-YIeB1 .framer-1qh7dfe, .framer-YIeB1 .framer-xk0v9q, .framer-YIeB1 .framer-1cq4l3p { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; overflow: visible; padding: 8px; position: relative; width: min-content; }\",\".framer-YIeB1 .framer-p1j1u7 { cursor: pointer; flex: none; height: auto; position: relative; white-space: pre; width: auto; }\",\".framer-YIeB1 .framer-1bul9bo { align-content: center; align-items: center; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; overflow: hidden; padding: 0px; position: relative; width: min-content; will-change: var(--framer-will-change-override, transform); }\",\".framer-YIeB1 .framer-8bejid-container { flex: none; height: auto; position: relative; width: auto; z-index: 1; }\",\".framer-YIeB1 .framer-1wmi0h9, .framer-YIeB1 .framer-1fm4s44, .framer-YIeB1 .framer-1lyrmgl, .framer-YIeB1 .framer-xipqjp, .framer-YIeB1 .framer-1fviink, .framer-YIeB1 .framer-p1zx0x { flex: none; height: auto; position: relative; white-space: pre; width: auto; }\",\".framer-YIeB1 .framer-it359a, .framer-YIeB1 .framer-6jz3qw { align-content: center; align-items: center; display: flex; flex: 1 0 0px; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: flex-start; overflow: visible; padding: 8px 8px 8px 16px; position: relative; width: 1px; }\",\".framer-YIeB1 .framer-yjiedf { align-content: flex-start; align-items: flex-start; display: flex; flex: 1 0 0px; flex-direction: column; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: flex-start; overflow: visible; padding: 8px 0px 8px 16px; position: relative; width: 1px; }\",\".framer-YIeB1 .framer-v6s633 { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 40px; height: min-content; justify-content: flex-end; overflow: visible; padding: 0px; position: relative; width: min-content; }\",\".framer-YIeB1.framer-v-15auuhe.framer-kpk27y { justify-content: flex-start; width: 390px; }\",\".framer-YIeB1.framer-v-15auuhe .framer-5nks7q { padding: 0px 20px 0px 20px; }\",\".framer-YIeB1.framer-v-15auuhe .framer-1oblfky { flex: 1 0 0px; width: 1px; }\",\".framer-YIeB1.framer-v-15auuhe .framer-qturrh { flex: 1 0 0px; gap: unset; justify-content: space-between; width: 1px; }\",\".framer-YIeB1.framer-v-15auuhe .framer-1vkc1kp, .framer-YIeB1.framer-v-zseczu .framer-1vkc1kp { cursor: pointer; }\",\".framer-YIeB1.framer-v-zseczu.framer-kpk27y { flex-direction: column; justify-content: flex-start; width: 390px; }\",\".framer-YIeB1.framer-v-zseczu .framer-5nks7q { flex: none; flex-direction: column; gap: 64px; justify-content: center; padding: 0px 20px 0px 20px; width: 100%; }\",\".framer-YIeB1.framer-v-zseczu .framer-gnbxvx { flex: none; flex-direction: column; width: 100%; }\",\".framer-YIeB1.framer-v-zseczu .framer-1oblfky { flex-direction: column; width: 100%; }\",\".framer-YIeB1.framer-v-zseczu .framer-qturrh { gap: unset; justify-content: space-between; width: 100%; }\",\".framer-YIeB1.framer-v-zseczu .framer-1jo4u4g { bottom: unset; top: calc(50.00000000000002% - 2px / 2); }\",\".framer-YIeB1.framer-v-zseczu .framer-m96nr9 { top: calc(50.00000000000002% - 2px / 2); }\",\".framer-YIeB1.framer-v-zseczu .framer-tmrfg4 { align-content: flex-start; align-items: flex-start; flex: none; flex-direction: column; justify-content: flex-start; padding: 0px; width: 100%; }\",\".framer-YIeB1.framer-v-zseczu .framer-yzer3k { justify-content: flex-start; order: 0; padding: 8px 8px 8px 0px; width: 100%; }\",\".framer-YIeB1.framer-v-zseczu .framer-p1j1u7 { cursor: unset; }\",\".framer-YIeB1.framer-v-zseczu .framer-1qh7dfe { justify-content: flex-start; order: 4; padding: 8px 8px 8px 0px; width: 100%; }\",\".framer-YIeB1.framer-v-zseczu .framer-it359a { flex: none; order: 2; width: 100%; }\",\".framer-YIeB1.framer-v-zseczu .framer-6jz3qw { flex: none; order: 3; width: 100%; }\",\".framer-YIeB1.framer-v-zseczu .framer-yjiedf { flex: none; order: 1; width: 100%; }\",\".framer-YIeB1.framer-v-zseczu .framer-xk0v9q { justify-content: flex-start; order: 5; padding: 8px 8px 8px 0px; width: 100%; }\",\".framer-YIeB1.framer-v-zseczu .framer-1cq4l3p { justify-content: flex-start; order: 6; padding: 8px 8px 8px 0px; width: 100%; }\",\".framer-YIeB1.framer-v-zseczu .framer-v6s633 { flex-direction: column; gap: 16px; justify-content: center; min-height: 167px; width: 100%; }\",...sharedStyle.css];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 75.6\n * @framerIntrinsicWidth 1280\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"auto\"]},\"G5KRMRfow\":{\"layout\":[\"fixed\",\"auto\"]},\"Nh0i5m4cI\":{\"layout\":[\"fixed\",\"auto\"]}}}\n * @framerVariables {\"I9gduMs6X\":\"nAVBARITEMHOVER\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerFOOO2YyO1=withCSS(Component,css,\"framer-YIeB1\");export default FramerFOOO2YyO1;FramerFOOO2YyO1.displayName=\"Nav Bar / Nav Bar\";FramerFOOO2YyO1.defaultProps={height:75.6,width:1280};addPropertyControls(FramerFOOO2YyO1,{variant:{options:[\"X5Yti9xYs\",\"G5KRMRfow\",\"Nh0i5m4cI\"],optionTitles:[\"Desktop\",\"Mobile\",\"Mobile Open\"],title:\"Variant\",type:ControlType.Enum},I9gduMs6X:{title:\"NAVBAR ITEM HOVER\",type:ControlType.EventHandler}});addFonts(FramerFOOO2YyO1,[{explicitInter:true,fonts:[{family:\"Roboto Mono\",source:\"google\",style:\"normal\",url:\"https://fonts.gstatic.com/s/robotomono/v23/L0xuDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_7PqPRu-5Ip2sSQ.woff2\",weight:\"500\"}]},...ComponentsLogoFonts,...NavbarDropdownFonts,...ComponentsButtonFonts,...getFontsFromSharedStyle(sharedStyle.fonts)],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerFOOO2YyO1\",\"slots\":[],\"annotations\":{\"framerAutoSizeImages\":\"true\",\"framerIntrinsicHeight\":\"75.6\",\"framerColorSyntax\":\"true\",\"framerDisplayContentsDiv\":\"false\",\"framerImmutableVariables\":\"true\",\"framerContractVersion\":\"1\",\"framerComponentViewportWidth\":\"true\",\"framerIntrinsicWidth\":\"1280\",\"framerVariables\":\"{\\\"I9gduMs6X\\\":\\\"nAVBARITEMHOVER\\\"}\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"G5KRMRfow\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"Nh0i5m4cI\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]}}}\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","import{fontStore}from\"framer\";fontStore.loadFonts([]);export const fonts=[];export const css=[\".framer-lqUAu .framer-styles-preset-4pa8r7:not(.rich-text-wrapper), .framer-lqUAu .framer-styles-preset-4pa8r7.rich-text-wrapper a { --framer-link-current-text-decoration: none; --framer-link-hover-text-color: var(--token-f07bd819-3132-4b59-b01d-c794567fa989, #ffffff); --framer-link-hover-text-decoration: none; --framer-link-text-color: var(--token-6014b03e-96b6-44fc-a8fe-1c6402d9a85e, #b5bdc5); --framer-link-text-decoration: none; }\"];export const className=\"framer-lqUAu\";\nexport const __FramerMetadata__ = {\"exports\":{\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (38fb4ea)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ControlType,cx,Link,SVG,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";const enabledGestures={ge71xTqnO:{hover:true},mb7VjMu9v:{hover:true},MNlN4ic6D:{hover:true},Osrp3S38P:{hover:true},W1a1cRLw8:{hover:true}};const cycleOrder=[\"Osrp3S38P\",\"W1a1cRLw8\",\"ge71xTqnO\",\"mb7VjMu9v\",\"MNlN4ic6D\"];const serializationHash=\"framer-0C9iD\";const variantClassNames={ge71xTqnO:\"framer-v-1vbl85s\",mb7VjMu9v:\"framer-v-gkvaen\",MNlN4ic6D:\"framer-v-1ojojd8\",Osrp3S38P:\"framer-v-ji7akg\",W1a1cRLw8:\"framer-v-1s4dypk\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants===null||variants===void 0?void 0:variants.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={damping:60,delay:0,mass:1,stiffness:500,type:\"spring\"};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value!==null&&value!==void 0?value:config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion(React.Fragment);const humanReadableVariantMap={\"Copy Link\":\"MNlN4ic6D\",Discord:\"ge71xTqnO\",Github:\"Osrp3S38P\",Linkedin:\"mb7VjMu9v\",X:\"W1a1cRLw8\"};const getProps=({height,id,link,width,...props})=>{var _humanReadableVariantMap_props_variant,_ref;return{...props,variant:(_ref=(_humanReadableVariantMap_props_variant=humanReadableVariantMap[props.variant])!==null&&_humanReadableVariantMap_props_variant!==void 0?_humanReadableVariantMap_props_variant:props.variant)!==null&&_ref!==void 0?_ref:\"Osrp3S38P\",vPbP3u8UG:link!==null&&link!==void 0?link:props.vPbP3u8UG};};const createLayoutDependency=(props,variants)=>variants.join(\"-\")+props.layoutDependency;const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const{activeLocale,setLocale}=useLocaleInfo();const{style,className,layoutId,variant,vPbP3u8UG,...restProps}=getProps(props);const{baseVariant,classNames,gestureVariant,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"Osrp3S38P\",enabledGestures,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const ref1=React.useRef(null);const isDisplayed=()=>{if(gestureVariant===\"MNlN4ic6D-hover\")return true;if(baseVariant===\"MNlN4ic6D\")return true;return false;};const isDisplayed1=()=>{if(gestureVariant===\"mb7VjMu9v-hover\")return true;if(baseVariant===\"mb7VjMu9v\")return true;return false;};const isDisplayed2=()=>{if(gestureVariant===\"ge71xTqnO-hover\")return true;if(baseVariant===\"ge71xTqnO\")return true;return false;};const isDisplayed3=()=>{if([\"ge71xTqnO-hover\",\"mb7VjMu9v-hover\",\"W1a1cRLw8-hover\",\"MNlN4ic6D-hover\"].includes(gestureVariant))return false;if([\"W1a1cRLw8\",\"ge71xTqnO\",\"mb7VjMu9v\",\"MNlN4ic6D\"].includes(baseVariant))return false;return true;};const isDisplayed4=()=>{if(gestureVariant===\"W1a1cRLw8-hover\")return true;if(baseVariant===\"W1a1cRLw8\")return true;return false;};const defaultLayoutId=React.useId();const sharedStyleClassNames=[];const componentViewport=useComponentViewport();return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId!==null&&layoutId!==void 0?layoutId:defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsx(Link,{href:vPbP3u8UG,openInNewTab:true,...addPropertyOverrides({mb7VjMu9v:{href:\"https://www.linkedin.com/company/buildstr\"}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsxs(motion.a,{...restProps,className:`${cx(serializationHash,...sharedStyleClassNames,\"framer-ji7akg\",className,classNames)} framer-sgd2m`,\"data-framer-name\":\"Github\",layoutDependency:layoutDependency,layoutId:\"Osrp3S38P\",onHoverEnd:()=>setGestureState({isHovered:false}),onHoverStart:()=>setGestureState({isHovered:true}),onTap:()=>setGestureState({isPressed:false}),onTapCancel:()=>setGestureState({isPressed:false}),onTapStart:()=>setGestureState({isPressed:true}),ref:ref!==null&&ref!==void 0?ref:ref1,style:{...style},...addPropertyOverrides({\"ge71xTqnO-hover\":{\"data-framer-name\":undefined},\"mb7VjMu9v-hover\":{\"data-framer-name\":undefined},\"MNlN4ic6D-hover\":{\"data-framer-name\":undefined},\"Osrp3S38P-hover\":{\"data-framer-name\":undefined},\"W1a1cRLw8-hover\":{\"data-framer-name\":undefined},ge71xTqnO:{\"data-framer-name\":\"Discord\"},mb7VjMu9v:{\"data-framer-name\":\"Linkedin\"},MNlN4ic6D:{\"data-framer-name\":\"Copy Link\"},W1a1cRLw8:{\"data-framer-name\":\"X\"}},baseVariant,gestureVariant),children:[isDisplayed()&&/*#__PURE__*/_jsx(SVG,{className:\"framer-d2zghn\",\"data-framer-name\":\"link\",layout:\"position\",layoutDependency:layoutDependency,layoutId:\"AdUh5R4bW\",opacity:1,svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 16 16\"><path d=\"M 5.469 9.47 L 9.469 5.47 C 9.762 5.177 10.238 5.177 10.532 5.47 C 10.825 5.763 10.825 6.239 10.532 6.533 L 6.532 10.533 C 6.238 10.826 5.762 10.826 5.469 10.533 C 5.175 10.239 5.175 9.764 5.469 9.47 Z M 13.655 2.345 C 12.19 0.883 9.817 0.883 8.351 2.345 L 6.469 4.226 C 6.272 4.414 6.192 4.694 6.261 4.958 C 6.329 5.222 6.535 5.428 6.799 5.496 C 7.063 5.565 7.343 5.485 7.531 5.288 L 9.411 3.41 C 10.29 2.531 11.715 2.53 12.594 3.409 C 13.473 4.288 13.473 5.713 12.594 6.592 L 10.712 8.47 C 10.43 8.765 10.435 9.232 10.724 9.52 C 11.013 9.809 11.479 9.814 11.774 9.533 L 13.654 7.654 C 15.118 6.187 15.117 3.813 13.652 2.347 Z M 8.47 10.713 L 6.591 12.593 C 5.946 13.235 4.979 13.427 4.139 13.078 C 3.298 12.73 2.75 11.91 2.749 11.001 C 2.749 10.404 2.986 9.831 3.408 9.41 L 5.287 7.53 C 5.559 7.233 5.549 6.775 5.265 6.49 C 4.98 6.205 4.521 6.195 4.225 6.468 L 2.347 8.349 C 0.882 9.814 0.883 12.189 2.348 13.654 C 3.812 15.118 6.187 15.118 7.652 13.653 L 9.531 11.774 C 9.812 11.478 9.807 11.012 9.518 10.723 C 9.23 10.434 8.763 10.429 8.468 10.711 Z\" fill=\"var(--token-6014b03e-96b6-44fc-a8fe-1c6402d9a85e, rgb(181, 189, 197))\"></path></svg>',svgContentId:187857770,withExternalLayout:true,...addPropertyOverrides({\"MNlN4ic6D-hover\":{svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 16 16\"><path d=\"M 5.469 9.47 L 9.469 5.47 C 9.762 5.177 10.238 5.177 10.532 5.47 C 10.825 5.763 10.825 6.239 10.532 6.533 L 6.532 10.533 C 6.238 10.826 5.762 10.826 5.469 10.533 C 5.175 10.239 5.175 9.764 5.469 9.47 Z M 13.655 2.345 C 12.19 0.883 9.817 0.883 8.351 2.345 L 6.469 4.226 C 6.272 4.414 6.192 4.694 6.261 4.958 C 6.329 5.222 6.535 5.428 6.799 5.496 C 7.063 5.565 7.343 5.485 7.531 5.288 L 9.411 3.41 C 10.29 2.531 11.715 2.53 12.594 3.409 C 13.473 4.288 13.473 5.713 12.594 6.592 L 10.712 8.47 C 10.43 8.765 10.435 9.232 10.724 9.52 C 11.013 9.809 11.479 9.814 11.774 9.533 L 13.654 7.654 C 15.118 6.187 15.117 3.813 13.652 2.347 Z M 8.47 10.713 L 6.591 12.593 C 5.946 13.235 4.979 13.427 4.139 13.078 C 3.298 12.73 2.75 11.91 2.749 11.001 C 2.749 10.404 2.986 9.831 3.408 9.41 L 5.287 7.53 C 5.559 7.233 5.549 6.775 5.265 6.49 C 4.98 6.205 4.521 6.195 4.225 6.468 L 2.347 8.349 C 0.882 9.814 0.883 12.189 2.348 13.654 C 3.812 15.118 6.187 15.118 7.652 13.653 L 9.531 11.774 C 9.812 11.478 9.807 11.012 9.518 10.723 C 9.23 10.434 8.763 10.429 8.468 10.711 Z\" fill=\"var(--token-014f44b0-4365-49a2-a3e1-43e76509186b, rgb(173, 255, 133))\"></path></svg>',svgContentId:4159233898},MNlN4ic6D:{svgContentId:1468252506}},baseVariant,gestureVariant)}),isDisplayed1()&&/*#__PURE__*/_jsx(SVG,{className:\"framer-7nfmj7\",\"data-framer-name\":\"linkedin\",layout:\"position\",layoutDependency:layoutDependency,layoutId:\"mqscoiHgO\",opacity:1,svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 18 18\"><path d=\"M 4 2 C 2.895 2 2 2.895 2 4 L 2 14 C 2 15.105 2.895 16 4 16 L 14 16 C 15.105 16 16 15.105 16 14 L 16 4 C 16 2.895 15.105 2 14 2 Z M 6.56 7.155 L 6.56 12.85 L 4.79 12.85 L 4.79 7.155 Z M 6.596 5.832 C 6.405 6.157 6.052 6.351 5.675 6.34 C 5.105 6.341 4.642 5.879 4.641 5.309 C 4.641 4.738 5.103 4.276 5.673 4.275 C 6.049 4.263 6.403 4.457 6.595 4.781 C 6.787 5.105 6.787 5.508 6.596 5.832 Z M 13.2 9.726 L 13.2 12.85 L 11.432 12.85 L 11.432 10.08 C 11.432 9.42 11.419 8.57 10.512 8.57 C 9.591 8.57 9.449 9.29 9.449 10.033 L 9.449 12.85 L 7.68 12.85 L 7.68 7.155 L 9.378 7.155 L 9.378 7.933 L 9.402 7.933 C 9.638 7.485 10.216 7.013 11.076 7.013 C 12.869 7.013 13.2 8.193 13.2 9.726 Z\" fill=\"var(--token-6014b03e-96b6-44fc-a8fe-1c6402d9a85e, rgb(181, 189, 197))\"></path></svg>',svgContentId:1432320781,withExternalLayout:true,...addPropertyOverrides({\"mb7VjMu9v-hover\":{svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 18 18\"><path d=\"M 4 2 C 2.895 2 2 2.895 2 4 L 2 14 C 2 15.105 2.895 16 4 16 L 14 16 C 15.105 16 16 15.105 16 14 L 16 4 C 16 2.895 15.105 2 14 2 Z M 6.56 7.155 L 6.56 12.85 L 4.79 12.85 L 4.79 7.155 Z M 6.596 5.832 C 6.405 6.157 6.052 6.351 5.675 6.34 C 5.105 6.341 4.642 5.879 4.641 5.309 C 4.641 4.738 5.103 4.276 5.673 4.275 C 6.049 4.263 6.403 4.457 6.595 4.781 C 6.787 5.105 6.787 5.508 6.596 5.832 Z M 13.2 9.726 L 13.2 12.85 L 11.432 12.85 L 11.432 10.08 C 11.432 9.42 11.419 8.57 10.512 8.57 C 9.591 8.57 9.449 9.29 9.449 10.033 L 9.449 12.85 L 7.68 12.85 L 7.68 7.155 L 9.378 7.155 L 9.378 7.933 L 9.402 7.933 C 9.638 7.485 10.216 7.013 11.076 7.013 C 12.869 7.013 13.2 8.193 13.2 9.726 Z\" fill=\"var(--token-014f44b0-4365-49a2-a3e1-43e76509186b, rgb(173, 255, 133))\"></path></svg>',svgContentId:4134182972},mb7VjMu9v:{svgContentId:1881435871}},baseVariant,gestureVariant)}),isDisplayed2()&&/*#__PURE__*/_jsx(SVG,{className:\"framer-ndc5bm\",\"data-framer-name\":\"discord_icon\",layout:\"position\",layoutDependency:layoutDependency,layoutId:\"UXRkhibhl\",opacity:1,svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 18 18\"><path d=\"M 14.544 3.995 C 13.506 3.526 12.411 3.191 11.288 3 C 11.267 2.996 11.246 3.005 11.235 3.024 C 11.086 3.29 10.951 3.564 10.83 3.844 C 9.617 3.663 8.385 3.663 7.172 3.844 C 7.05 3.563 6.912 3.289 6.76 3.024 C 6.749 3.006 6.729 2.997 6.708 3 C 5.583 3.19 4.488 3.525 3.451 3.994 C 3.442 3.998 3.435 4.004 3.43 4.012 C 1.355 7.062 0.787 10.036 1.066 12.973 C 1.067 12.988 1.075 13.001 1.086 13.01 C 2.297 13.892 3.648 14.563 5.082 14.997 C 5.103 15.003 5.125 14.996 5.138 14.979 C 5.447 14.567 5.72 14.129 5.955 13.671 C 5.965 13.652 5.961 13.628 5.945 13.613 C 5.94 13.608 5.934 13.604 5.928 13.601 C 5.497 13.439 5.08 13.243 4.68 13.016 C 4.665 13.008 4.656 12.992 4.655 12.975 C 4.654 12.958 4.661 12.942 4.675 12.932 C 4.758 12.87 4.842 12.806 4.922 12.742 C 4.936 12.73 4.957 12.727 4.974 12.734 C 7.593 13.911 10.427 13.911 13.015 12.734 C 13.023 12.73 13.033 12.729 13.042 12.73 C 13.051 12.731 13.06 12.734 13.067 12.74 C 13.147 12.805 13.231 12.87 13.316 12.932 C 13.329 12.942 13.337 12.958 13.336 12.975 C 13.335 12.992 13.326 13.007 13.311 13.016 C 12.913 13.246 12.495 13.441 12.063 13.601 C 12.049 13.606 12.038 13.616 12.033 13.63 C 12.028 13.643 12.029 13.658 12.036 13.67 C 12.276 14.126 12.548 14.563 12.852 14.978 C 12.864 14.996 12.887 15.004 12.908 14.998 C 14.344 14.565 15.697 13.893 16.91 13.01 C 16.922 13.001 16.93 12.988 16.931 12.973 C 17.265 9.578 16.372 6.628 14.565 4.013 C 14.561 4.004 14.554 3.997 14.545 3.993 Z M 6.346 11.185 C 5.558 11.185 4.909 10.473 4.909 9.599 C 4.909 8.724 5.546 8.012 6.346 8.012 C 7.154 8.012 7.797 8.731 7.785 9.599 C 7.785 10.473 7.147 11.185 6.346 11.185 Z M 11.663 11.185 C 10.875 11.185 10.225 10.473 10.225 9.599 C 10.225 8.724 10.862 8.012 11.663 8.012 C 12.47 8.012 13.113 8.731 13.101 9.599 C 13.101 10.473 12.47 11.185 11.663 11.185 Z\" fill=\"var(--token-6014b03e-96b6-44fc-a8fe-1c6402d9a85e, rgb(180, 185, 177))\"></path></svg>',svgContentId:3552078523,withExternalLayout:true,...addPropertyOverrides({\"ge71xTqnO-hover\":{svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 18 18\"><path d=\"M 14.544 3.995 C 13.506 3.526 12.411 3.191 11.288 3 C 11.267 2.996 11.246 3.005 11.235 3.024 C 11.086 3.29 10.951 3.564 10.83 3.844 C 9.617 3.663 8.385 3.663 7.172 3.844 C 7.05 3.563 6.912 3.289 6.76 3.024 C 6.749 3.006 6.729 2.997 6.708 3 C 5.583 3.19 4.488 3.525 3.451 3.994 C 3.442 3.998 3.435 4.004 3.43 4.012 C 1.355 7.062 0.787 10.036 1.066 12.973 C 1.067 12.988 1.075 13.001 1.086 13.01 C 2.297 13.892 3.648 14.563 5.082 14.997 C 5.103 15.003 5.125 14.996 5.138 14.979 C 5.447 14.567 5.72 14.129 5.955 13.671 C 5.965 13.652 5.961 13.628 5.945 13.613 C 5.94 13.608 5.934 13.604 5.928 13.601 C 5.497 13.439 5.08 13.243 4.68 13.016 C 4.665 13.008 4.656 12.992 4.655 12.975 C 4.654 12.958 4.661 12.942 4.675 12.932 C 4.758 12.87 4.842 12.806 4.922 12.742 C 4.936 12.73 4.957 12.727 4.974 12.734 C 7.593 13.911 10.427 13.911 13.015 12.734 C 13.023 12.73 13.033 12.729 13.042 12.73 C 13.051 12.731 13.06 12.734 13.067 12.74 C 13.147 12.805 13.231 12.87 13.316 12.932 C 13.329 12.942 13.337 12.958 13.336 12.975 C 13.335 12.992 13.326 13.007 13.311 13.016 C 12.913 13.246 12.495 13.441 12.063 13.601 C 12.049 13.606 12.038 13.616 12.033 13.63 C 12.028 13.643 12.029 13.658 12.036 13.67 C 12.276 14.126 12.548 14.563 12.852 14.978 C 12.864 14.996 12.887 15.004 12.908 14.998 C 14.344 14.565 15.697 13.893 16.91 13.01 C 16.922 13.001 16.93 12.988 16.931 12.973 C 17.265 9.578 16.372 6.628 14.565 4.013 C 14.561 4.004 14.554 3.997 14.545 3.993 Z M 6.346 11.185 C 5.558 11.185 4.909 10.473 4.909 9.599 C 4.909 8.724 5.546 8.012 6.346 8.012 C 7.154 8.012 7.797 8.731 7.785 9.599 C 7.785 10.473 7.147 11.185 6.346 11.185 Z M 11.663 11.185 C 10.875 11.185 10.225 10.473 10.225 9.599 C 10.225 8.724 10.862 8.012 11.663 8.012 C 12.47 8.012 13.113 8.731 13.101 9.599 C 13.101 10.473 12.47 11.185 11.663 11.185 Z\" fill=\"var(--token-014f44b0-4365-49a2-a3e1-43e76509186b, rgb(173, 255, 133))\"></path></svg>',svgContentId:455352468},ge71xTqnO:{svgContentId:2409887620}},baseVariant,gestureVariant)}),isDisplayed3()&&/*#__PURE__*/_jsx(SVG,{className:\"framer-x580qg\",\"data-framer-name\":\"github_icon\",layout:\"position\",layoutDependency:layoutDependency,layoutId:\"OMWaImMup\",opacity:1,svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 18 18\"><path d=\"M 12.512 2.962 C 11.452 2.324 10.237 1.991 9 2 C 7.763 1.991 6.547 2.324 5.487 2.962 C 4.424 3.595 3.546 4.495 2.941 5.573 C 2.311 6.674 2 7.874 2 9.176 C 2 10.738 2.445 12.145 3.335 13.393 C 4.225 14.64 5.374 15.506 6.784 15.984 C 6.949 16.016 7.071 15.994 7.148 15.919 C 7.226 15.847 7.27 15.745 7.267 15.639 L 7.263 15.134 C 7.26 14.816 7.258 14.539 7.258 14.302 L 7.049 14.339 C 6.882 14.366 6.712 14.377 6.543 14.371 C 6.33 14.368 6.118 14.346 5.909 14.306 C 5.687 14.263 5.478 14.167 5.301 14.026 C 5.113 13.879 4.973 13.679 4.9 13.452 L 4.809 13.236 C 4.732 13.066 4.636 12.907 4.522 12.761 C 4.39 12.586 4.259 12.467 4.125 12.404 L 4.061 12.358 C 4.018 12.325 3.978 12.288 3.942 12.247 C 3.909 12.208 3.882 12.163 3.862 12.116 C 3.844 12.071 3.858 12.036 3.906 12.008 C 3.955 11.978 4.043 11.966 4.17 11.966 L 4.354 11.994 C 4.474 12.019 4.625 12.093 4.804 12.217 C 4.984 12.342 5.131 12.504 5.245 12.704 C 5.385 12.958 5.554 13.153 5.752 13.287 C 5.949 13.421 6.148 13.489 6.35 13.489 C 6.548 13.489 6.722 13.472 6.868 13.441 C 7.014 13.411 7.151 13.363 7.278 13.301 C 7.334 12.884 7.482 12.563 7.724 12.339 C 7.409 12.307 7.098 12.25 6.791 12.17 C 6.491 12.086 6.203 11.963 5.935 11.805 C 5.651 11.648 5.401 11.435 5.201 11.179 C 5.007 10.932 4.847 10.604 4.723 10.201 C 4.592 9.745 4.53 9.273 4.537 8.799 C 4.537 8.046 4.776 7.404 5.257 6.874 C 5.032 6.307 5.052 5.672 5.321 4.967 C 5.496 4.912 5.757 4.953 6.104 5.093 C 6.45 5.233 6.703 5.353 6.865 5.452 C 7.026 5.552 7.155 5.636 7.252 5.706 C 7.821 5.545 8.409 5.464 9 5.465 C 9.602 5.465 10.185 5.546 10.75 5.708 L 11.096 5.483 C 11.333 5.335 11.613 5.198 11.935 5.072 C 12.258 4.948 12.504 4.915 12.675 4.97 C 12.948 5.674 12.972 6.308 12.747 6.877 C 13.227 7.406 13.467 8.047 13.467 8.8 C 13.467 9.33 13.405 9.798 13.28 10.206 C 13.156 10.615 12.995 10.943 12.796 11.189 C 12.592 11.441 12.342 11.652 12.059 11.81 C 11.765 11.978 11.478 12.099 11.203 12.174 C 10.926 12.249 10.616 12.306 10.268 12.341 C 10.584 12.621 10.742 13.063 10.742 13.668 L 10.742 15.64 C 10.739 15.745 10.78 15.847 10.856 15.92 C 10.932 15.995 11.052 16.016 11.216 15.985 C 12.627 15.504 13.776 14.641 14.665 13.391 C 15.554 12.145 16 10.738 16 9.175 C 16.01 7.913 15.686 6.671 15.061 5.574 C 14.455 4.496 13.577 3.596 12.515 2.963 L 12.513 2.963 Z\" fill=\"var(--token-6014b03e-96b6-44fc-a8fe-1c6402d9a85e, rgb(180, 185, 177))\"></path></svg>',svgContentId:1300802001,withExternalLayout:true,...addPropertyOverrides({\"Osrp3S38P-hover\":{svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 18 18\"><path d=\"M 12.512 2.962 C 11.452 2.324 10.237 1.991 9 2 C 7.763 1.991 6.547 2.324 5.487 2.962 C 4.424 3.595 3.546 4.495 2.941 5.573 C 2.311 6.674 2 7.874 2 9.176 C 2 10.738 2.445 12.145 3.335 13.393 C 4.225 14.64 5.374 15.506 6.784 15.984 C 6.949 16.016 7.071 15.994 7.148 15.919 C 7.226 15.847 7.27 15.745 7.267 15.639 L 7.263 15.134 C 7.26 14.816 7.258 14.539 7.258 14.302 L 7.049 14.339 C 6.882 14.366 6.712 14.377 6.543 14.371 C 6.33 14.368 6.118 14.346 5.909 14.306 C 5.687 14.263 5.478 14.167 5.301 14.026 C 5.113 13.879 4.973 13.679 4.9 13.452 L 4.809 13.236 C 4.732 13.066 4.636 12.907 4.522 12.761 C 4.39 12.586 4.259 12.467 4.125 12.404 L 4.061 12.358 C 4.018 12.325 3.978 12.288 3.942 12.247 C 3.909 12.208 3.882 12.163 3.862 12.116 C 3.844 12.071 3.858 12.036 3.906 12.008 C 3.955 11.978 4.043 11.966 4.17 11.966 L 4.354 11.994 C 4.474 12.019 4.625 12.093 4.804 12.217 C 4.984 12.342 5.131 12.504 5.245 12.704 C 5.385 12.958 5.554 13.153 5.752 13.287 C 5.949 13.421 6.148 13.489 6.35 13.489 C 6.548 13.489 6.722 13.472 6.868 13.441 C 7.014 13.411 7.151 13.363 7.278 13.301 C 7.334 12.884 7.482 12.563 7.724 12.339 C 7.409 12.307 7.098 12.25 6.791 12.17 C 6.491 12.086 6.203 11.963 5.935 11.805 C 5.651 11.648 5.401 11.435 5.201 11.179 C 5.007 10.932 4.847 10.604 4.723 10.201 C 4.592 9.745 4.53 9.273 4.537 8.799 C 4.537 8.046 4.776 7.404 5.257 6.874 C 5.032 6.307 5.052 5.672 5.321 4.967 C 5.496 4.912 5.757 4.953 6.104 5.093 C 6.45 5.233 6.703 5.353 6.865 5.452 C 7.026 5.552 7.155 5.636 7.252 5.706 C 7.821 5.545 8.409 5.464 9 5.465 C 9.602 5.465 10.185 5.546 10.75 5.708 L 11.096 5.483 C 11.333 5.335 11.613 5.198 11.935 5.072 C 12.258 4.948 12.504 4.915 12.675 4.97 C 12.948 5.674 12.972 6.308 12.747 6.877 C 13.227 7.406 13.467 8.047 13.467 8.8 C 13.467 9.33 13.405 9.798 13.28 10.206 C 13.156 10.615 12.995 10.943 12.796 11.189 C 12.592 11.441 12.342 11.652 12.059 11.81 C 11.765 11.978 11.478 12.099 11.203 12.174 C 10.926 12.249 10.616 12.306 10.268 12.341 C 10.584 12.621 10.742 13.063 10.742 13.668 L 10.742 15.64 C 10.739 15.745 10.78 15.847 10.856 15.92 C 10.932 15.995 11.052 16.016 11.216 15.985 C 12.627 15.504 13.776 14.641 14.665 13.391 C 15.554 12.145 16 10.738 16 9.175 C 16.01 7.913 15.686 6.671 15.061 5.574 C 14.455 4.496 13.577 3.596 12.515 2.963 L 12.513 2.963 Z\" fill=\"var(--token-014f44b0-4365-49a2-a3e1-43e76509186b, rgb(173, 255, 133))\"></path></svg>',svgContentId:175391568}},baseVariant,gestureVariant)}),isDisplayed4()&&/*#__PURE__*/_jsx(SVG,{className:\"framer-11c70eh\",\"data-framer-name\":\"x\",layout:\"position\",layoutDependency:layoutDependency,layoutId:\"Hy3Pb_Ynr\",opacity:1,svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 18 18\"><path d=\"M 4 2 C 2.895 2 2 2.895 2 4 L 2 14 C 2 15.105 2.895 16 4 16 L 14 16 C 15.105 16 16 15.105 16 14 L 16 4 C 16 2.895 15.105 2 14 2 Z M 9.871 8.337 L 13 13 L 10.528 13 L 8.498 9.974 L 5.942 13 L 5 13 L 8.08 9.353 L 5.16 5 L 7.632 5 L 9.457 7.72 L 11.755 5 L 12.698 5 L 9.877 8.342 Z M 11.648 12.273 L 7.258 5.727 L 6.508 5.727 L 10.901 12.273 Z\" fill=\"rgb(181,189,197)\"></path></svg>',svgContentId:3043104068,withExternalLayout:true,...addPropertyOverrides({\"W1a1cRLw8-hover\":{svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 18 18\"><path d=\"M 4 2 C 2.895 2 2 2.895 2 4 L 2 14 C 2 15.105 2.895 16 4 16 L 14 16 C 15.105 16 16 15.105 16 14 L 16 4 C 16 2.895 15.105 2 14 2 Z M 9.871 8.337 L 13 13 L 10.528 13 L 8.498 9.974 L 5.942 13 L 5 13 L 8.08 9.353 L 5.16 5 L 7.632 5 L 9.457 7.72 L 11.755 5 L 12.698 5 L 9.877 8.342 Z M 11.648 12.273 L 7.258 5.727 L 6.508 5.727 L 10.901 12.273 Z\" fill=\"var(--token-014f44b0-4365-49a2-a3e1-43e76509186b, rgb(173, 255, 133))\"></path></svg>',svgContentId:722978626},W1a1cRLw8:{svgContentId:314443971}},baseVariant,gestureVariant)})]})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-0C9iD.framer-sgd2m, .framer-0C9iD .framer-sgd2m { display: block; }\",\".framer-0C9iD.framer-ji7akg { align-content: center; align-items: center; cursor: pointer; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: 18px; justify-content: center; overflow: visible; padding: 0px; position: relative; text-decoration: none; width: 18px; }\",\".framer-0C9iD .framer-d2zghn { flex: none; height: 16px; position: relative; width: 16px; }\",\".framer-0C9iD .framer-7nfmj7, .framer-0C9iD .framer-ndc5bm, .framer-0C9iD .framer-x580qg, .framer-0C9iD .framer-11c70eh { flex: none; height: 18px; position: relative; width: 18px; }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-0C9iD.framer-ji7akg { gap: 0px; } .framer-0C9iD.framer-ji7akg > * { margin: 0px; margin-left: calc(10px / 2); margin-right: calc(10px / 2); } .framer-0C9iD.framer-ji7akg > :first-child { margin-left: 0px; } .framer-0C9iD.framer-ji7akg > :last-child { margin-right: 0px; } }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 18\n * @framerIntrinsicWidth 18\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"fixed\"]},\"W1a1cRLw8\":{\"layout\":[\"fixed\",\"fixed\"]},\"ge71xTqnO\":{\"layout\":[\"fixed\",\"fixed\"]},\"mb7VjMu9v\":{\"layout\":[\"fixed\",\"fixed\"]},\"MNlN4ic6D\":{\"layout\":[\"fixed\",\"fixed\"]},\"QEYhufXpl\":{\"layout\":[\"fixed\",\"fixed\"]},\"B4MjXe6IH\":{\"layout\":[\"fixed\",\"fixed\"]},\"ZlENDWGjV\":{\"layout\":[\"fixed\",\"fixed\"]},\"KNTvhce2O\":{\"layout\":[\"fixed\",\"fixed\"]},\"jlQg3j8oe\":{\"layout\":[\"fixed\",\"fixed\"]}}}\n * @framerVariables {\"vPbP3u8UG\":\"link\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerComponentViewportWidth true\n */const FramerNbNQ041Jk=withCSS(Component,css,\"framer-0C9iD\");export default FramerNbNQ041Jk;FramerNbNQ041Jk.displayName=\"Footer / Social Icons\";FramerNbNQ041Jk.defaultProps={height:18,width:18};addPropertyControls(FramerNbNQ041Jk,{variant:{options:[\"Osrp3S38P\",\"W1a1cRLw8\",\"ge71xTqnO\",\"mb7VjMu9v\",\"MNlN4ic6D\"],optionTitles:[\"Github\",\"X\",\"Discord\",\"Linkedin\",\"Copy Link\"],title:\"Variant\",type:ControlType.Enum},vPbP3u8UG:{title:\"Link\",type:ControlType.Link}});addFonts(FramerNbNQ041Jk,[{explicitInter:true,fonts:[]}],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerNbNQ041Jk\",\"slots\":[],\"annotations\":{\"framerComponentViewportWidth\":\"true\",\"framerIntrinsicHeight\":\"18\",\"framerDisplayContentsDiv\":\"false\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"W1a1cRLw8\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"ge71xTqnO\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"mb7VjMu9v\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"MNlN4ic6D\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"QEYhufXpl\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"B4MjXe6IH\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"ZlENDWGjV\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"KNTvhce2O\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"jlQg3j8oe\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]}}}\",\"framerIntrinsicWidth\":\"18\",\"framerContractVersion\":\"1\",\"framerImmutableVariables\":\"true\",\"framerVariables\":\"{\\\"vPbP3u8UG\\\":\\\"link\\\"}\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./NbNQ041Jk.map","import { ControlType } from \"framer\";\nexport const fontStack = `\"Inter\", system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"`;\nexport const containerStyles = {\n    position: \"relative\",\n    width: \"100%\",\n    height: \"100%\",\n    display: \"flex\",\n    justifyContent: \"center\",\n    alignItems: \"center\"\n};\nexport const emptyStateStyle = {\n    ...containerStyles,\n    borderRadius: 6,\n    background: \"rgba(136, 85, 255, 0.3)\",\n    color: \"#85F\",\n    border: \"1px dashed #85F\",\n    flexDirection: \"column\"\n};\nexport const defaultEvents = {\n    onClick: {\n        type: ControlType.EventHandler\n    },\n    onMouseEnter: {\n        type: ControlType.EventHandler\n    },\n    onMouseLeave: {\n        type: ControlType.EventHandler\n    }\n};\nexport const fontSizeOptions = {\n    type: ControlType.Number,\n    title: \"Font Size\",\n    min: 2,\n    max: 200,\n    step: 1,\n    displayStepper: true\n};\nexport const fontControls = {\n    font: {\n        type: ControlType.Boolean,\n        title: \"Font\",\n        defaultValue: false,\n        disabledTitle: \"Default\",\n        enabledTitle: \"Custom\"\n    },\n    fontFamily: {\n        type: ControlType.String,\n        title: \"Family\",\n        placeholder: \"Inter\",\n        hidden: ({ font  })=>!font\n    },\n    fontWeight: {\n        type: ControlType.Enum,\n        title: \"Weight\",\n        options: [\n            100,\n            200,\n            300,\n            400,\n            500,\n            600,\n            700,\n            800,\n            900\n        ],\n        optionTitles: [\n            \"Thin\",\n            \"Extra-light\",\n            \"Light\",\n            \"Regular\",\n            \"Medium\",\n            \"Semi-bold\",\n            \"Bold\",\n            \"Extra-bold\",\n            \"Black\", \n        ],\n        hidden: ({ font  })=>!font\n    }\n};\n// @TODO check if we're missing anything here — there doesn't seem to be a reliable browser API for this\nexport const localeOptions = {\n    af: \"Afrikaans\",\n    sq: \"Albanian\",\n    an: \"Aragonese\",\n    ar: \"Arabic (Standard)\",\n    \"ar-dz\": \"Arabic (Algeria)\",\n    \"ar-bh\": \"Arabic (Bahrain)\",\n    \"ar-eg\": \"Arabic (Egypt)\",\n    \"ar-iq\": \"Arabic (Iraq)\",\n    \"ar-jo\": \"Arabic (Jordan)\",\n    \"ar-kw\": \"Arabic (Kuwait)\",\n    \"ar-lb\": \"Arabic (Lebanon)\",\n    \"ar-ly\": \"Arabic (Libya)\",\n    \"ar-ma\": \"Arabic (Morocco)\",\n    \"ar-om\": \"Arabic (Oman)\",\n    \"ar-qa\": \"Arabic (Qatar)\",\n    \"ar-sa\": \"Arabic (Saudi Arabia)\",\n    \"ar-sy\": \"Arabic (Syria)\",\n    \"ar-tn\": \"Arabic (Tunisia)\",\n    \"ar-ae\": \"Arabic (U.A.E.)\",\n    \"ar-ye\": \"Arabic (Yemen)\",\n    hy: \"Armenian\",\n    as: \"Assamese\",\n    ast: \"Asturian\",\n    az: \"Azerbaijani\",\n    eu: \"Basque\",\n    bg: \"Bulgarian\",\n    be: \"Belarusian\",\n    bn: \"Bengali\",\n    bs: \"Bosnian\",\n    br: \"Breton\",\n    my: \"Burmese\",\n    ca: \"Catalan\",\n    ch: \"Chamorro\",\n    ce: \"Chechen\",\n    zh: \"Chinese\",\n    \"zh-hk\": \"Chinese (Hong Kong)\",\n    \"zh-cn\": \"Chinese (PRC)\",\n    \"zh-sg\": \"Chinese (Singapore)\",\n    \"zh-tw\": \"Chinese (Taiwan)\",\n    cv: \"Chuvash\",\n    co: \"Corsican\",\n    cr: \"Cree\",\n    hr: \"Croatian\",\n    cs: \"Czech\",\n    da: \"Danish\",\n    nl: \"Dutch (Standard)\",\n    \"nl-be\": \"Dutch (Belgian)\",\n    en: \"English\",\n    \"en-au\": \"English (Australia)\",\n    \"en-bz\": \"English (Belize)\",\n    \"en-ca\": \"English (Canada)\",\n    \"en-ie\": \"English (Ireland)\",\n    \"en-jm\": \"English (Jamaica)\",\n    \"en-nz\": \"English (New Zealand)\",\n    \"en-ph\": \"English (Philippines)\",\n    \"en-za\": \"English (South Africa)\",\n    \"en-tt\": \"English (Trinidad & Tobago)\",\n    \"en-gb\": \"English (United Kingdom)\",\n    \"en-us\": \"English (United States)\",\n    \"en-zw\": \"English (Zimbabwe)\",\n    eo: \"Esperanto\",\n    et: \"Estonian\",\n    fo: \"Faeroese\",\n    fa: \"Farsi\",\n    fj: \"Fijian\",\n    fi: \"Finnish\",\n    fr: \"French (Standard)\",\n    \"fr-be\": \"French (Belgium)\",\n    \"fr-ca\": \"French (Canada)\",\n    \"fr-fr\": \"French (France)\",\n    \"fr-lu\": \"French (Luxembourg)\",\n    \"fr-mc\": \"French (Monaco)\",\n    \"fr-ch\": \"French (Switzerland)\",\n    fy: \"Frisian\",\n    fur: \"Friulian\",\n    gd: \"Gaelic (Scots)\",\n    \"gd-ie\": \"Gaelic (Irish)\",\n    gl: \"Galacian\",\n    ka: \"Georgian\",\n    de: \"German (Standard)\",\n    \"de-at\": \"German (Austria)\",\n    \"de-de\": \"German (Germany)\",\n    \"de-li\": \"German (Liechtenstein)\",\n    \"de-lu\": \"German (Luxembourg)\",\n    \"de-ch\": \"German (Switzerland)\",\n    el: \"Greek\",\n    gu: \"Gujurati\",\n    ht: \"Haitian\",\n    he: \"Hebrew\",\n    hi: \"Hindi\",\n    hu: \"Hungarian\",\n    is: \"Icelandic\",\n    id: \"Indonesian\",\n    iu: \"Inuktitut\",\n    ga: \"Irish\",\n    it: \"Italian (Standard)\",\n    \"it-ch\": \"Italian (Switzerland)\",\n    ja: \"Japanese\",\n    kn: \"Kannada\",\n    ks: \"Kashmiri\",\n    kk: \"Kazakh\",\n    km: \"Khmer\",\n    ky: \"Kirghiz\",\n    tlh: \"Klingon\",\n    ko: \"Korean\",\n    \"ko-kp\": \"Korean (North Korea)\",\n    \"ko-kr\": \"Korean (South Korea)\",\n    la: \"Latin\",\n    lv: \"Latvian\",\n    lt: \"Lithuanian\",\n    lb: \"Luxembourgish\",\n    mk: \"FYRO Macedonian\",\n    ms: \"Malay\",\n    ml: \"Malayalam\",\n    mt: \"Maltese\",\n    mi: \"Maori\",\n    mr: \"Marathi\",\n    mo: \"Moldavian\",\n    nv: \"Navajo\",\n    ng: \"Ndonga\",\n    ne: \"Nepali\",\n    no: \"Norwegian\",\n    nb: \"Norwegian (Bokmal)\",\n    nn: \"Norwegian (Nynorsk)\",\n    oc: \"Occitan\",\n    or: \"Oriya\",\n    om: \"Oromo\",\n    \"fa-ir\": \"Persian/Iran\",\n    pl: \"Polish\",\n    pt: \"Portuguese\",\n    \"pt-br\": \"Portuguese (Brazil)\",\n    pa: \"Punjabi\",\n    \"pa-in\": \"Punjabi (India)\",\n    \"pa-pk\": \"Punjabi (Pakistan)\",\n    qu: \"Quechua\",\n    rm: \"Rhaeto-Romanic\",\n    ro: \"Romanian\",\n    \"ro-mo\": \"Romanian (Moldavia)\",\n    ru: \"Russian\",\n    \"ru-mo\": \"Russian (Moldavia)\",\n    sz: \"Sami (Lappish)\",\n    sg: \"Sango\",\n    sa: \"Sanskrit\",\n    sc: \"Sardinian\",\n    sd: \"Sindhi\",\n    si: \"Singhalese\",\n    sr: \"Serbian\",\n    sk: \"Slovak\",\n    sl: \"Slovenian\",\n    so: \"Somani\",\n    sb: \"Sorbian\",\n    es: \"Spanish\",\n    \"es-ar\": \"Spanish (Argentina)\",\n    \"es-bo\": \"Spanish (Bolivia)\",\n    \"es-cl\": \"Spanish (Chile)\",\n    \"es-co\": \"Spanish (Colombia)\",\n    \"es-cr\": \"Spanish (Costa Rica)\",\n    \"es-do\": \"Spanish (Dominican Republic)\",\n    \"es-ec\": \"Spanish (Ecuador)\",\n    \"es-sv\": \"Spanish (El Salvador)\",\n    \"es-gt\": \"Spanish (Guatemala)\",\n    \"es-hn\": \"Spanish (Honduras)\",\n    \"es-mx\": \"Spanish (Mexico)\",\n    \"es-ni\": \"Spanish (Nicaragua)\",\n    \"es-pa\": \"Spanish (Panama)\",\n    \"es-py\": \"Spanish (Paraguay)\",\n    \"es-pe\": \"Spanish (Peru)\",\n    \"es-pr\": \"Spanish (Puerto Rico)\",\n    \"es-es\": \"Spanish (Spain)\",\n    \"es-uy\": \"Spanish (Uruguay)\",\n    \"es-ve\": \"Spanish (Venezuela)\",\n    sx: \"Sutu\",\n    sw: \"Swahili\",\n    sv: \"Swedish\",\n    \"sv-fi\": \"Swedish (Finland)\",\n    \"sv-sv\": \"Swedish (Sweden)\",\n    ta: \"Tamil\",\n    tt: \"Tatar\",\n    te: \"Teluga\",\n    th: \"Thai\",\n    tig: \"Tigre\",\n    ts: \"Tsonga\",\n    tn: \"Tswana\",\n    tr: \"Turkish\",\n    tk: \"Turkmen\",\n    uk: \"Ukrainian\",\n    hsb: \"Upper Sorbian\",\n    ur: \"Urdu\",\n    ve: \"Venda\",\n    vi: \"Vietnamese\",\n    vo: \"Volapuk\",\n    wa: \"Walloon\",\n    cy: \"Welsh\",\n    xh: \"Xhosa\",\n    ji: \"Yiddish\",\n    zu: \"Zulu\"\n};\n\nexport const __FramerMetadata__ = {\"exports\":{\"fontSizeOptions\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fontControls\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"localeOptions\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fontStack\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"emptyStateStyle\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"containerStyles\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"defaultEvents\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./constants.map","import { useIsInCurrentNavigationTarget } from \"framer\";\nimport { useEffect } from \"react\";\nexport function useOnEnter(onEnter, enabled) {\n    return useOnSpecificTargetChange(true, onEnter, enabled);\n}\nexport function useOnExit(onExit, enabled) {\n    return useOnSpecificTargetChange(false, onExit, enabled);\n}\nfunction useOnSpecificTargetChange(goal, callback, enabled = true) {\n    const isInTarget = useIsInCurrentNavigationTarget();\n    useEffect(()=>{\n        if (enabled && isInTarget === goal) callback();\n    }, [\n        isInTarget\n    ]);\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"useOnEnter\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useOnExit\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./useOnNavigationTargetChange.map","import { useRef } from \"react\";\n/**\n * Creates a constant value over the lifecycle of a component.\n *\n * Even if `useMemo` is provided an empty array as its final argument, it doesn't offer\n * a guarantee that it won't re-run for performance reasons later on. By using `useConstant`\n * you can ensure that initialisers don't execute twice or more.\n */ export function useConstant(init) {\n    const ref = useRef(null);\n    if (ref.current === null) {\n        ref.current = init();\n    }\n    return ref.current;\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"useConstant\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./useConstant.map","import { Color } from \"framer\";\nexport function colorFromToken(color) {\n    if (color.startsWith(\"var(--token-\")) return \"rgb\" + color.split(\") /*\")[0].split(\", rgb\")[1];\n    return color;\n}\nexport function colorTokentoValue(color) {\n    return Color(colorFromToken(color)).toValue();\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"colorFromToken\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"colorTokentoValue\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./colorFromToken.map","import { MotionValue } from \"framer\";\nexport const isMotionValue = (v)=>v instanceof MotionValue\n;\n\nexport const __FramerMetadata__ = {\"exports\":{\"isMotionValue\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./isMotionValue.map","import * as React from \"react\";\nconst letters = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\";\nconst l = ()=>letters[Math.floor(Math.random() * letters.length)]\n;\nexport const randomID = ()=>l() + l() + l() + l() + l() + l() + l() + l() + l()\n;\nfunction createUniqueClass(suffix) {\n    return `framer-${suffix}-${randomID()}`;\n}\nexport function useUniqueClassName(suffix, deps) {\n    const [className, setClassName] = React.useState(createUniqueClass(suffix));\n    React.useEffect(()=>{\n        setClassName(createUniqueClass(suffix));\n    }, [\n        suffix,\n        ...deps\n    ]);\n    return className;\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"useUniqueClassName\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"randomID\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./useUniqueClassName.map","import { ControlType } from \"framer\";\n// I realize this only applies to select right now\n// but we can work on it in here\nexport function getVariantControls(Component, variant, additionalControls = {\n}) {\n    return {\n        [`${variant}TextColor`]: {\n            type: ControlType.Color,\n            title: \"Text Color\",\n            defaultValue: Component.defaultProps[`${variant}TextColor`],\n            hidden: (props)=>props.variant !== variant\n        },\n        [`${variant}IconColor`]: {\n            type: ControlType.Color,\n            title: \"Icon Color\",\n            defaultValue: Component.defaultProps[`${variant}IconColor`],\n            hidden: (props)=>props.variant !== variant\n        },\n        [`${variant}BackgroundColor`]: {\n            type: ControlType.Color,\n            title: \"Bg Color\",\n            defaultValue: Component.defaultProps[`${variant}BackgroundColor`],\n            hidden: (props)=>props.variant !== variant\n        },\n        [`${variant}BorderColor`]: {\n            type: ControlType.Color,\n            title: \"Border Color\",\n            defaultValue: Component.defaultProps[`${variant}BorderColor`],\n            hidden: (props)=>props.variant !== variant\n        },\n        [`${variant}BorderWidth`]: {\n            type: ControlType.Number,\n            title: \" \",\n            min: 0,\n            max: 5,\n            displayStepper: true,\n            defaultValue: Component.defaultProps[`${variant}BorderWidth`],\n            hidden: (props)=>props.variant !== variant\n        },\n        ...additionalControls\n    };\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"getVariantControls\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./variantUtils.map","import { useMemo } from \"react\";\nexport const isBrowserSafari = ()=>{\n    if (typeof navigator !== `undefined`) {\n        const userAgent = navigator.userAgent.toLowerCase();\n        const isSafari = (userAgent.indexOf(\"safari\") > -1 || userAgent.indexOf(\"framermobile\") > -1 || userAgent.indexOf(\"framerx\") > -1) && userAgent.indexOf(\"chrome\") < 0;\n        return isSafari;\n    } else return false;\n};\nexport const useIsBrowserSafari = ()=>useMemo(()=>isBrowserSafari()\n    , [])\n;\n\nexport const __FramerMetadata__ = {\"exports\":{\"useIsBrowserSafari\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"isBrowserSafari\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./isBrowser.map","import { useEffect } from \"react\";\n//@ts-ignore\nimport { isMotionValue } from \"https://framerusercontent.com/modules/3mKFSGQqKHV82uOV1eBc/5fbRLvOpxZC0JOXugvwm/isMotionValue.js\";\nexport function useOnChange(value, callback) {\n    useEffect(()=>// @ts-ignore this should be detected as a MV :shrug:\n        isMotionValue(value) ? value.onChange(callback) : undefined\n    );\n}\nexport function useMultiOnChange(values, handler) {\n    useEffect(()=>{\n        const subscriptions = values.map((value)=>value.onChange(handler)\n        );\n        return ()=>subscriptions.forEach((unsubscribe)=>unsubscribe()\n            )\n        ;\n    });\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"Subscriber\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useOnChange\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useMultiOnChange\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./useOnChange.map","import { useCallback, useEffect, useRef } from \"react\";\nimport { motionValue, animate, RenderTarget } from \"framer\";\n// @ts-ignore\nimport { isMotionValue } from \"https://framerusercontent.com/modules/3mKFSGQqKHV82uOV1eBc/5fbRLvOpxZC0JOXugvwm/isMotionValue.js\";\n// @ts-ignore\nimport { useConstant } from \"https://framerusercontent.com/modules/ExNgrA7EJTKUPpH6vIlN/eiOrSJ2Ab5M9jPCvVwUz/useConstant.js\";\nexport function useAutoMotionValue(inputValue, options) {\n    var ref;\n    // Put options on a local ref\n    // Might wanna just memo instead but it works for now\n    const optionsRef = useRef(options);\n    const animation = useRef();\n    const didInitialMount = useRef(false);\n    const isOnCanvas = RenderTarget.current() === RenderTarget.canvas;\n    // in-progress - trying to figure out effect hooks\n    const onChangeDeps = (options === null || options === void 0 ? void 0 : options.onChangeDeps) ? options.onChangeDeps : [];\n    // Memoize the onChange handler\n    const onChange = useCallback(options === null || options === void 0 ? void 0 : options.onChange, [\n        ...onChangeDeps, \n    ]);\n    // Optionally scale the value from props\n    const transformer = useCallback((value)=>((ref = optionsRef.current) === null || ref === void 0 ? void 0 : ref.transform) ? optionsRef.current.transform(value) : value\n    , []);\n    // Create new MotionValue from inputValue\n    const value = useConstant(()=>isMotionValue(inputValue) ? inputValue : motionValue(transformer(inputValue))\n    );\n    // Setting value from prop change\n    useEffect(()=>{\n        if (!isMotionValue(inputValue) && didInitialMount.current) {\n            var ref1, ref2;\n            const newValue = transformer(inputValue);\n            (ref1 = animation.current) === null || ref1 === void 0 ? void 0 : ref1.stop();\n            // Call change callback\n            if (onChange) onChange(newValue, value);\n            // Trigger animation to new value\n            if (((ref2 = optionsRef.current) === null || ref2 === void 0 ? void 0 : ref2.animate) && !isOnCanvas) {\n                var ref3;\n                // @ts-ignore\n                animation.current = animate(value, newValue, (ref3 = optionsRef.current) === null || ref3 === void 0 ? void 0 : ref3.transition);\n            } else {\n                value.set(newValue);\n            }\n        }\n        didInitialMount.current = true;\n    }, [\n        inputValue,\n        ...onChangeDeps\n    ]);\n    return value;\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"useAutoMotionValue\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}","// @ts-ignore\nimport{fontStore}from\"framer\";import{useEffect}from\"react\";import{fontStack}from\"https://framerusercontent.com/modules/VTUDdizacRHpwbkOamr7/AykinQJbgwl92LvMGZwu/constants.js\";const fontWeights={100:\"Thin\",200:\"Extra-light\",300:\"Light\",400:\"Regular\",500:\"Medium\",600:\"Semi-bold\",700:\"Bold\",800:\"Extra-bold\",900:\"Black\"};export function useFontControls(props){const{fontFamily=\"Inter\",fontSize=16,fontWeight=400,font=false}=props;const fontWeightName=fontWeights[fontWeight];const customFontStack=`\"${fontFamily} ${fontWeightName}\", \"${fontFamily}\", ${fontStack}`;const fontFamilyStyle=fontFamily?{fontSize,fontWeight,fontFamily:customFontStack}:{fontSize,fontWeight};const fetchCustomFonts=async()=>{await fontStore.loadWebFontsFromSelectors([`CUSTOM;${fontFamily}`,`CUSTOM;${fontFamily} ${fontWeightName}`,`GF;${fontFamily}-${fontWeightName.toLowerCase()}`,]).catch(e=>console.error(e));};useEffect(()=>{if(font)fetchCustomFonts();},[font,fontFamily,fontWeight]);return fontFamilyStyle;}\nexport const __FramerMetadata__ = {\"exports\":{\"useFontControls\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./useFontControls.map","import { useMemo } from \"react\";\nimport { RenderTarget } from \"framer\";\nexport function useRenderTarget() {\n    const currentRenderTarget = useMemo(()=>RenderTarget.current()\n    , []);\n    return currentRenderTarget;\n}\nexport function useIsInPreview() {\n    const inPreview = useMemo(()=>RenderTarget.current() === RenderTarget.preview\n    , []);\n    return inPreview;\n}\nexport function useIsOnCanvas() {\n    const onCanvas = useMemo(()=>RenderTarget.current() === RenderTarget.canvas\n    , []);\n    return onCanvas;\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"useIsInPreview\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useRenderTarget\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useIsOnCanvas\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./useRenderTarget.map","import * as React from \"react\";\nexport function useControlledState(value) {\n    const [controlledValue, setValue] = React.useState(value);\n    React.useEffect(()=>{\n        setValue(value);\n    }, [\n        value\n    ]);\n    return [\n        controlledValue,\n        setValue\n    ];\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"useControlledState\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./useControlledState.map","import { useMemo } from \"react\";\nimport { ControlType } from \"framer\";\nexport function useRadius(props) {\n    const { borderRadius , isMixedBorderRadius , topLeftRadius , topRightRadius , bottomRightRadius , bottomLeftRadius ,  } = props;\n    const radiusValue = useMemo(()=>isMixedBorderRadius ? `${topLeftRadius}px ${topRightRadius}px ${bottomRightRadius}px ${bottomLeftRadius}px` : `${borderRadius}px`\n    , [\n        borderRadius,\n        isMixedBorderRadius,\n        topLeftRadius,\n        topRightRadius,\n        bottomRightRadius,\n        bottomLeftRadius, \n    ]);\n    return radiusValue;\n}\nexport const borderRadiusControl = {\n    borderRadius: {\n        title: \"Radius\",\n        type: ControlType.FusedNumber,\n        toggleKey: \"isMixedBorderRadius\",\n        toggleTitles: [\n            \"Radius\",\n            \"Radius per corner\"\n        ],\n        valueKeys: [\n            \"topLeftRadius\",\n            \"topRightRadius\",\n            \"bottomRightRadius\",\n            \"bottomLeftRadius\", \n        ],\n        valueLabels: [\n            \"TL\",\n            \"TR\",\n            \"BR\",\n            \"BL\"\n        ],\n        min: 0\n    }\n};\nexport function usePadding(props) {\n    const { padding , paddingPerSide , paddingTop , paddingRight , paddingBottom , paddingLeft ,  } = props;\n    const paddingValue = useMemo(()=>paddingPerSide ? `${paddingTop}px ${paddingRight}px ${paddingBottom}px ${paddingLeft}px` : padding\n    , [\n        padding,\n        paddingPerSide,\n        paddingTop,\n        paddingRight,\n        paddingBottom,\n        paddingLeft, \n    ]);\n    return paddingValue;\n}\nexport const paddingControl = {\n    padding: {\n        type: ControlType.FusedNumber,\n        toggleKey: \"paddingPerSide\",\n        toggleTitles: [\n            \"Padding\",\n            \"Padding per side\"\n        ],\n        valueKeys: [\n            \"paddingTop\",\n            \"paddingRight\",\n            \"paddingBottom\",\n            \"paddingLeft\", \n        ],\n        valueLabels: [\n            \"T\",\n            \"R\",\n            \"B\",\n            \"L\"\n        ],\n        min: 0,\n        title: \"Padding\"\n    }\n};\n\nexport const __FramerMetadata__ = {\"exports\":{\"borderRadiusControl\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useRadius\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"RadiusProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"PaddingProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"usePadding\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"paddingControl\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./propUtils.map","import{defaultEvents,localeOptions,fontControls,fontSizeOptions,emptyStateStyle,containerStyles,fontStack}from\"https://framerusercontent.com/modules/VTUDdizacRHpwbkOamr7/AykinQJbgwl92LvMGZwu/constants.js\";import{useOnEnter,useOnExit}from\"https://framerusercontent.com/modules/D4TWeLfcxT6Tysr2BlYg/iZjmqdxVx1EOiM3k1FaW/useOnNavigationTargetChange.js\";import{useConstant}from\"https://framerusercontent.com/modules/ExNgrA7EJTKUPpH6vIlN/eiOrSJ2Ab5M9jPCvVwUz/useConstant.js\";import{colorTokentoValue,colorFromToken}from\"https://framerusercontent.com/modules/D2Lz5CmnNVPZFFiZXalt/QaCzPbriZBfXWZIIycFI/colorFromToken.js\";import{isMotionValue}from\"https://framerusercontent.com/modules/3mKFSGQqKHV82uOV1eBc/5fbRLvOpxZC0JOXugvwm/isMotionValue.js\";import{useUniqueClassName,randomID}from\"https://framerusercontent.com/modules/xDiQsqBGXzmMsv7AlEVy/uhunpMiNsbXxzjlXsg1y/useUniqueClassName.js\";import{getVariantControls}from\"https://framerusercontent.com/modules/ETACN5BJyFTSo0VVDJfu/NHRqowOiXkF9UwOzczF7/variantUtils.js\";import{useIsBrowserSafari}from\"https://framerusercontent.com/modules/eMBrwoqQK7h6mEeGQUH8/GuplvPJVjmxpk9zqOTcb/isBrowser.js\";import{useMultiOnChange,useOnChange}from\"https://framerusercontent.com/modules/v9AWX2URmiYsHf7GbctE/XxKAZ9KlhWqf5x1JMyyF/useOnChange.js\";import{mstoMinAndSec,secondsToMinutes}from\"https://framerusercontent.com/modules/4zHZnO5JojN1PrIbu2jm/revv9QCWpkh8lPzi2jje/time.js\";import{useAutoMotionValue}from\"https://framerusercontent.com/modules/kNDwabfjDEb3vUxkQlZS/fSIr3AOAYbGlfSPgXpYu/useAutoMotionValue.js\";import{useFontControls}from\"https://framerusercontent.com/modules/cuQH4dmpDnV8YK1mSgQX/KqRXqunFjE6ufhpc7ZRu/useFontControls.js\";import{useRenderTarget,useIsInPreview,useIsOnCanvas}from\"https://framerusercontent.com/modules/afBE9Yx1W6bY5q32qPxe/m3q7puE2tbo1S2C0s0CT/useRenderTarget.js\";import{useControlledState}from\"https://framerusercontent.com/modules/zGkoP8tPDCkoBzMdt5uq/0zFSjxIYliHxrQQnryFX/useControlledState.js\";import{usePadding,useRadius,paddingControl,borderRadiusControl}from\"https://framerusercontent.com/modules/5SM58HxZHxjjv7aLMOgQ/WXz9i6mVki0bBCrKdqB3/propUtils.js\";import{detectAutoSizingAxis}from\"https://framerusercontent.com/modules/8CkHAZatUz1UR8jNTcfD/HwbnIAZlUmQ2oTpcLkaH/detectAutoSizingAxis.js\";export{useOnEnter,useOnExit,defaultEvents,isMotionValue,colorFromToken,colorTokentoValue,localeOptions,fontControls,fontSizeOptions,emptyStateStyle,containerStyles,fontStack,useUniqueClassName,getVariantControls,useIsBrowserSafari,randomID,useConstant,useMultiOnChange,useOnChange,usePadding,useRadius,paddingControl,borderRadiusControl,mstoMinAndSec,useFontControls,secondsToMinutes,useAutoMotionValue,useRenderTarget,useIsInPreview,useControlledState,detectAutoSizingAxis,useIsOnCanvas,};\nexport const __FramerMetadata__ = {\"exports\":{\"useConstant\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"isMotionValue\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fontControls\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"defaultEvents\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useUniqueClassName\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useMultiOnChange\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useOnChange\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useIsOnCanvas\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useOnExit\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fontSizeOptions\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"colorTokentoValue\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useRadius\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getVariantControls\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"colorFromToken\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"containerStyles\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"usePadding\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fontStack\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useControlledState\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useFontControls\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useAutoMotionValue\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"emptyStateStyle\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useIsInPreview\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useIsBrowserSafari\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"detectAutoSizingAxis\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"borderRadiusControl\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"mstoMinAndSec\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"randomID\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"localeOptions\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useOnEnter\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"secondsToMinutes\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useRenderTarget\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"paddingControl\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}","import{MotionValue}from\"framer\";// Basic MotionValue check\nexport const isMotionValue=v=>v instanceof MotionValue;\nexport const __FramerMetadata__ = {\"exports\":{\"isMotionValue\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./isMotionValue.map","import{useCallback,useEffect,useRef}from\"react\";import{motionValue,animate,RenderTarget}from\"framer\";import{isMotionValue}from\"https://framerusercontent.com/modules/3mKFSGQqKHV82uOV1eBc/TbXI1XaZFNevVKcgIt7G/isMotionValue.js\";import{useConstant}from\"https://framerusercontent.com/modules/ExNgrA7EJTKUPpH6vIlN/eiOrSJ2Ab5M9jPCvVwUz/useConstant.js\";export function useAutoMotionValue(inputValue,options){// Put options on a local ref\n// Might wanna just memo instead but it works for now\nconst optionsRef=useRef(options);const animation=useRef();const didInitialMount=useRef(false);const isOnCanvas=RenderTarget.current()===RenderTarget.canvas;// in-progress - trying to figure out effect hooks\nconst onChangeDeps=(options===null||options===void 0?void 0:options.onChangeDeps)?options.onChangeDeps:[];// Memoize the onChange handler\nconst onChange=useCallback(options===null||options===void 0?void 0:options.onChange,[...onChangeDeps,]);// Optionally scale the value from props\nconst transformer=useCallback(value=>{var ref;return((ref=optionsRef.current)===null||ref===void 0?void 0:ref.transform)?optionsRef.current.transform(value):value;},[]);// Create new MotionValue from inputValue\nconst value1=useConstant(()=>isMotionValue(inputValue)?inputValue:motionValue(transformer(inputValue)));// Setting value from prop change\nuseEffect(()=>{if(!isMotionValue(inputValue)&&didInitialMount.current){var ref,ref1;const newValue=transformer(inputValue);(ref=animation.current)===null||ref===void 0?void 0:ref.stop();// Call change callback\nif(onChange)onChange(newValue,value1);// Trigger animation to new value\nif(((ref1=optionsRef.current)===null||ref1===void 0?void 0:ref1.animate)&&!isOnCanvas){var ref2;// @ts-ignore\nanimation.current=animate(value1,newValue,(ref2=optionsRef.current)===null||ref2===void 0?void 0:ref2.transition);}else{value1.set(newValue);}}didInitialMount.current=true;},[inputValue,...onChangeDeps]);return value1;}\nexport const __FramerMetadata__ = {\"exports\":{\"useAutoMotionValue\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./useAutoMotionValue.map","var _global = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : global;\n\nvar exports = {};\ntypeof navigator !== \"undefined\" && function (root, factory) {\n  if (exports) {\n    exports = factory(root);\n  } else {\n    root.lottie = factory(root);\n    root.bodymovin = root.lottie;\n  }\n}(window || {}, function (window) {\n  /* global locationHref:writable, animationManager, subframeEnabled:writable, defaultCurveSegments:writable, roundValues,\r\n  expressionsPlugin:writable, PropertyFactory, ShapePropertyFactory, Matrix */\n\n  /* exported locationHref, subframeEnabled, expressionsPlugin */\n  'use strict';\n  /* exported svgNS, locationHref, initialDefaultFrame */\n\n  var svgNS = \"http://www.w3.org/2000/svg\";\n  var locationHref = \"\";\n  var initialDefaultFrame = -999999;\n  /* global createSizedArray */\n\n  /* exported subframeEnabled, expressionsPlugin, isSafari, cachedColors, bmPow, bmSqrt, bmFloor, bmMax, bmMin, ProjectInterface,\r\n  defaultCurveSegments, degToRads, roundCorner, bmRnd, styleDiv, BMEnterFrameEvent, BMCompleteEvent, BMCompleteLoopEvent,\r\n  BMSegmentStartEvent, BMDestroyEvent, BMRenderFrameErrorEvent, BMConfigErrorEvent, BMAnimationConfigErrorEvent, createElementID,\r\n  addSaturationToRGB, addBrightnessToRGB, addHueToRGB, rgbToHex */\n\n  var subframeEnabled = true;\n  var expressionsPlugin;\n  var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n  var cachedColors = {};\n  var bmRnd;\n  var bmPow = Math.pow;\n  var bmSqrt = Math.sqrt;\n  var bmFloor = Math.floor;\n  var bmMax = Math.max;\n  var bmMin = Math.min;\n  var BMMath = {};\n\n  (function () {\n    var propertyNames = [\"abs\", \"acos\", \"acosh\", \"asin\", \"asinh\", \"atan\", \"atanh\", \"atan2\", \"ceil\", \"cbrt\", \"expm1\", \"clz32\", \"cos\", \"cosh\", \"exp\", \"floor\", \"fround\", \"hypot\", \"imul\", \"log\", \"log1p\", \"log2\", \"log10\", \"max\", \"min\", \"pow\", \"random\", \"round\", \"sign\", \"sin\", \"sinh\", \"sqrt\", \"tan\", \"tanh\", \"trunc\", \"E\", \"LN10\", \"LN2\", \"LOG10E\", \"LOG2E\", \"PI\", \"SQRT1_2\", \"SQRT2\"];\n    var i;\n    var len = propertyNames.length;\n\n    for (i = 0; i < len; i += 1) {\n      BMMath[propertyNames[i]] = Math[propertyNames[i]];\n    }\n  })();\n\n  function ProjectInterface() {\n    return {};\n  }\n\n  BMMath.random = Math.random;\n\n  BMMath.abs = function (val) {\n    var tOfVal = typeof val;\n\n    if (tOfVal === \"object\" && val.length) {\n      var absArr = createSizedArray(val.length);\n      var i;\n      var len = val.length;\n\n      for (i = 0; i < len; i += 1) {\n        absArr[i] = Math.abs(val[i]);\n      }\n\n      return absArr;\n    }\n\n    return Math.abs(val);\n  };\n\n  var defaultCurveSegments = 150;\n  var degToRads = Math.PI / 180;\n  var roundCorner = 0.5519;\n\n  function roundValues(flag) {\n    if (flag) {\n      bmRnd = Math.round;\n    } else {\n      bmRnd = function (val) {\n        return val;\n      };\n    }\n  }\n\n  roundValues(false);\n\n  function styleDiv(element) {\n    element.style.position = \"absolute\";\n    element.style.top = 0;\n    element.style.left = 0;\n    element.style.display = \"block\";\n    element.style.transformOrigin = \"0 0\";\n    element.style.webkitTransformOrigin = \"0 0\";\n    element.style.backfaceVisibility = \"visible\";\n    element.style.webkitBackfaceVisibility = \"visible\";\n    element.style.transformStyle = \"preserve-3d\";\n    element.style.webkitTransformStyle = \"preserve-3d\";\n    element.style.mozTransformStyle = \"preserve-3d\";\n  }\n\n  function BMEnterFrameEvent(type, currentTime, totalTime, frameMultiplier) {\n    (this || _global).type = type;\n    (this || _global).currentTime = currentTime;\n    (this || _global).totalTime = totalTime;\n    (this || _global).direction = frameMultiplier < 0 ? -1 : 1;\n  }\n\n  function BMCompleteEvent(type, frameMultiplier) {\n    (this || _global).type = type;\n    (this || _global).direction = frameMultiplier < 0 ? -1 : 1;\n  }\n\n  function BMCompleteLoopEvent(type, totalLoops, currentLoop, frameMultiplier) {\n    (this || _global).type = type;\n    (this || _global).currentLoop = currentLoop;\n    (this || _global).totalLoops = totalLoops;\n    (this || _global).direction = frameMultiplier < 0 ? -1 : 1;\n  }\n\n  function BMSegmentStartEvent(type, firstFrame, totalFrames) {\n    (this || _global).type = type;\n    (this || _global).firstFrame = firstFrame;\n    (this || _global).totalFrames = totalFrames;\n  }\n\n  function BMDestroyEvent(type, target) {\n    (this || _global).type = type;\n    (this || _global).target = target;\n  }\n\n  function BMRenderFrameErrorEvent(nativeError, currentTime) {\n    (this || _global).type = \"renderFrameError\";\n    (this || _global).nativeError = nativeError;\n    (this || _global).currentTime = currentTime;\n  }\n\n  function BMConfigErrorEvent(nativeError) {\n    (this || _global).type = \"configError\";\n    (this || _global).nativeError = nativeError;\n  }\n\n  function BMAnimationConfigErrorEvent(type, nativeError) {\n    (this || _global).type = type;\n    (this || _global).nativeError = nativeError;\n  }\n\n  var createElementID = function () {\n    var _count = 0;\n    return function createID() {\n      _count += 1;\n      return \"__lottie_element_\" + _count;\n    };\n  }();\n\n  function HSVtoRGB(h, s, v) {\n    var r;\n    var g;\n    var b;\n    var i;\n    var f;\n    var p;\n    var q;\n    var t;\n    i = Math.floor(h * 6);\n    f = h * 6 - i;\n    p = v * (1 - s);\n    q = v * (1 - f * s);\n    t = v * (1 - (1 - f) * s);\n\n    switch (i % 6) {\n      case 0:\n        r = v;\n        g = t;\n        b = p;\n        break;\n\n      case 1:\n        r = q;\n        g = v;\n        b = p;\n        break;\n\n      case 2:\n        r = p;\n        g = v;\n        b = t;\n        break;\n\n      case 3:\n        r = p;\n        g = q;\n        b = v;\n        break;\n\n      case 4:\n        r = t;\n        g = p;\n        b = v;\n        break;\n\n      case 5:\n        r = v;\n        g = p;\n        b = q;\n        break;\n\n      default:\n        break;\n    }\n\n    return [r, g, b];\n  }\n\n  function RGBtoHSV(r, g, b) {\n    var max = Math.max(r, g, b);\n    var min = Math.min(r, g, b);\n    var d = max - min;\n    var h;\n    var s = max === 0 ? 0 : d / max;\n    var v = max / 255;\n\n    switch (max) {\n      case min:\n        h = 0;\n        break;\n\n      case r:\n        h = g - b + d * (g < b ? 6 : 0);\n        h /= 6 * d;\n        break;\n\n      case g:\n        h = b - r + d * 2;\n        h /= 6 * d;\n        break;\n\n      case b:\n        h = r - g + d * 4;\n        h /= 6 * d;\n        break;\n\n      default:\n        break;\n    }\n\n    return [h, s, v];\n  }\n\n  function addSaturationToRGB(color, offset) {\n    var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n    hsv[1] += offset;\n\n    if (hsv[1] > 1) {\n      hsv[1] = 1;\n    } else if (hsv[1] <= 0) {\n      hsv[1] = 0;\n    }\n\n    return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n  }\n\n  function addBrightnessToRGB(color, offset) {\n    var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n    hsv[2] += offset;\n\n    if (hsv[2] > 1) {\n      hsv[2] = 1;\n    } else if (hsv[2] < 0) {\n      hsv[2] = 0;\n    }\n\n    return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n  }\n\n  function addHueToRGB(color, offset) {\n    var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n    hsv[0] += offset / 360;\n\n    if (hsv[0] > 1) {\n      hsv[0] -= 1;\n    } else if (hsv[0] < 0) {\n      hsv[0] += 1;\n    }\n\n    return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n  }\n\n  var rgbToHex = function () {\n    var colorMap = [];\n    var i;\n    var hex;\n\n    for (i = 0; i < 256; i += 1) {\n      hex = i.toString(16);\n      colorMap[i] = hex.length === 1 ? \"0\" + hex : hex;\n    }\n\n    return function (r, g, b) {\n      if (r < 0) {\n        r = 0;\n      }\n\n      if (g < 0) {\n        g = 0;\n      }\n\n      if (b < 0) {\n        b = 0;\n      }\n\n      return \"#\" + colorMap[r] + colorMap[g] + colorMap[b];\n    };\n  }();\n\n  function BaseEvent() {}\n\n  BaseEvent.prototype = {\n    triggerEvent: function (eventName, args) {\n      if ((this || _global)._cbs[eventName]) {\n        var len = (this || _global)._cbs[eventName].length;\n\n        for (var i = 0; i < len; i += 1) {\n          (this || _global)._cbs[eventName][i](args);\n        }\n      }\n    },\n    addEventListener: function (eventName, callback) {\n      if (!(this || _global)._cbs[eventName]) {\n        (this || _global)._cbs[eventName] = [];\n      }\n\n      (this || _global)._cbs[eventName].push(callback);\n\n      return function () {\n        this.removeEventListener(eventName, callback);\n      }.bind(this || _global);\n    },\n    removeEventListener: function (eventName, callback) {\n      if (!callback) {\n        (this || _global)._cbs[eventName] = null;\n      } else if ((this || _global)._cbs[eventName]) {\n        var i = 0;\n        var len = (this || _global)._cbs[eventName].length;\n\n        while (i < len) {\n          if ((this || _global)._cbs[eventName][i] === callback) {\n            (this || _global)._cbs[eventName].splice(i, 1);\n\n            i -= 1;\n            len -= 1;\n          }\n\n          i += 1;\n        }\n\n        if (!(this || _global)._cbs[eventName].length) {\n          (this || _global)._cbs[eventName] = null;\n        }\n      }\n    }\n  };\n  /* exported createTypedArray, createSizedArray */\n\n  var createTypedArray = function () {\n    function createRegularArray(type, len) {\n      var i = 0;\n      var arr = [];\n      var value;\n\n      switch (type) {\n        case \"int16\":\n        case \"uint8c\":\n          value = 1;\n          break;\n\n        default:\n          value = 1.1;\n          break;\n      }\n\n      for (i = 0; i < len; i += 1) {\n        arr.push(value);\n      }\n\n      return arr;\n    }\n\n    function createTypedArrayFactory(type, len) {\n      if (type === \"float32\") {\n        return new Float32Array(len);\n      }\n\n      if (type === \"int16\") {\n        return new Int16Array(len);\n      }\n\n      if (type === \"uint8c\") {\n        return new Uint8ClampedArray(len);\n      }\n\n      return createRegularArray(type, len);\n    }\n\n    if (typeof Uint8ClampedArray === \"function\" && typeof Float32Array === \"function\") {\n      return createTypedArrayFactory;\n    }\n\n    return createRegularArray;\n  }();\n\n  function createSizedArray(len) {\n    return Array.apply(null, {\n      length: len\n    });\n  }\n  /* global svgNS */\n\n  /* exported createNS */\n\n\n  function createNS(type) {\n    // return {appendChild:function(){},setAttribute:function(){},style:{}}\n    return document.createElementNS(svgNS, type);\n  }\n  /* exported createTag */\n\n\n  function createTag(type) {\n    // return {appendChild:function(){},setAttribute:function(){},style:{}}\n    return document.createElement(type);\n  }\n\n  function DynamicPropertyContainer() {}\n\n  DynamicPropertyContainer.prototype = {\n    addDynamicProperty: function (prop) {\n      if ((this || _global).dynamicProperties.indexOf(prop) === -1) {\n        (this || _global).dynamicProperties.push(prop);\n\n        (this || _global).container.addDynamicProperty(this || _global);\n\n        (this || _global)._isAnimated = true;\n      }\n    },\n    iterateDynamicProperties: function () {\n      (this || _global)._mdf = false;\n      var i;\n      var len = (this || _global).dynamicProperties.length;\n\n      for (i = 0; i < len; i += 1) {\n        (this || _global).dynamicProperties[i].getValue();\n\n        if ((this || _global).dynamicProperties[i]._mdf) {\n          (this || _global)._mdf = true;\n        }\n      }\n    },\n    initDynamicPropertyContainer: function (container) {\n      (this || _global).container = container;\n      (this || _global).dynamicProperties = [];\n      (this || _global)._mdf = false;\n      (this || _global)._isAnimated = false;\n    }\n  };\n  /* exported getBlendMode */\n\n  var getBlendMode = function () {\n    var blendModeEnums = {\n      0: \"source-over\",\n      1: \"multiply\",\n      2: \"screen\",\n      3: \"overlay\",\n      4: \"darken\",\n      5: \"lighten\",\n      6: \"color-dodge\",\n      7: \"color-burn\",\n      8: \"hard-light\",\n      9: \"soft-light\",\n      10: \"difference\",\n      11: \"exclusion\",\n      12: \"hue\",\n      13: \"saturation\",\n      14: \"color\",\n      15: \"luminosity\"\n    };\n    return function (mode) {\n      return blendModeEnums[mode] || \"\";\n    };\n  }();\n  /* global createTypedArray */\n\n  /*!\r\n   Transformation Matrix v2.0\r\n   (c) Epistemex 2014-2015\r\n   www.epistemex.com\r\n   By Ken Fyrstenberg\r\n   Contributions by leeoniya.\r\n   License: MIT, header required.\r\n   */\n\n  /**\r\n   * 2D transformation matrix object initialized with identity matrix.\r\n   *\r\n   * The matrix can synchronize a canvas context by supplying the context\r\n   * as an argument, or later apply current absolute transform to an\r\n   * existing context.\r\n   *\r\n   * All values are handled as floating point values.\r\n   *\r\n   * @param {CanvasRenderingContext2D} [context] - Optional context to sync with Matrix\r\n   * @prop {number} a - scale x\r\n   * @prop {number} b - shear y\r\n   * @prop {number} c - shear x\r\n   * @prop {number} d - scale y\r\n   * @prop {number} e - translate x\r\n   * @prop {number} f - translate y\r\n   * @prop {CanvasRenderingContext2D|null} [context=null] - set or get current canvas context\r\n   * @constructor\r\n   */\n\n\n  var Matrix = function () {\n    var _cos = Math.cos;\n    var _sin = Math.sin;\n    var _tan = Math.tan;\n    var _rnd = Math.round;\n\n    function reset() {\n      (this || _global).props[0] = 1;\n      (this || _global).props[1] = 0;\n      (this || _global).props[2] = 0;\n      (this || _global).props[3] = 0;\n      (this || _global).props[4] = 0;\n      (this || _global).props[5] = 1;\n      (this || _global).props[6] = 0;\n      (this || _global).props[7] = 0;\n      (this || _global).props[8] = 0;\n      (this || _global).props[9] = 0;\n      (this || _global).props[10] = 1;\n      (this || _global).props[11] = 0;\n      (this || _global).props[12] = 0;\n      (this || _global).props[13] = 0;\n      (this || _global).props[14] = 0;\n      (this || _global).props[15] = 1;\n      return this || _global;\n    }\n\n    function rotate(angle) {\n      if (angle === 0) {\n        return this || _global;\n      }\n\n      var mCos = _cos(angle);\n\n      var mSin = _sin(angle);\n\n      return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n    }\n\n    function rotateX(angle) {\n      if (angle === 0) {\n        return this || _global;\n      }\n\n      var mCos = _cos(angle);\n\n      var mSin = _sin(angle);\n\n      return this._t(1, 0, 0, 0, 0, mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1);\n    }\n\n    function rotateY(angle) {\n      if (angle === 0) {\n        return this || _global;\n      }\n\n      var mCos = _cos(angle);\n\n      var mSin = _sin(angle);\n\n      return this._t(mCos, 0, mSin, 0, 0, 1, 0, 0, -mSin, 0, mCos, 0, 0, 0, 0, 1);\n    }\n\n    function rotateZ(angle) {\n      if (angle === 0) {\n        return this || _global;\n      }\n\n      var mCos = _cos(angle);\n\n      var mSin = _sin(angle);\n\n      return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n    }\n\n    function shear(sx, sy) {\n      return this._t(1, sy, sx, 1, 0, 0);\n    }\n\n    function skew(ax, ay) {\n      return this.shear(_tan(ax), _tan(ay));\n    }\n\n    function skewFromAxis(ax, angle) {\n      var mCos = _cos(angle);\n\n      var mSin = _sin(angle);\n\n      return this._t(mCos, mSin, 0, 0, -mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(1, 0, 0, 0, _tan(ax), 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); // return this._t(mCos, mSin, -mSin, mCos, 0, 0)._t(1, 0, _tan(ax), 1, 0, 0)._t(mCos, -mSin, mSin, mCos, 0, 0);\n    }\n\n    function scale(sx, sy, sz) {\n      if (!sz && sz !== 0) {\n        sz = 1;\n      }\n\n      if (sx === 1 && sy === 1 && sz === 1) {\n        return this || _global;\n      }\n\n      return this._t(sx, 0, 0, 0, 0, sy, 0, 0, 0, 0, sz, 0, 0, 0, 0, 1);\n    }\n\n    function setTransform(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) {\n      (this || _global).props[0] = a;\n      (this || _global).props[1] = b;\n      (this || _global).props[2] = c;\n      (this || _global).props[3] = d;\n      (this || _global).props[4] = e;\n      (this || _global).props[5] = f;\n      (this || _global).props[6] = g;\n      (this || _global).props[7] = h;\n      (this || _global).props[8] = i;\n      (this || _global).props[9] = j;\n      (this || _global).props[10] = k;\n      (this || _global).props[11] = l;\n      (this || _global).props[12] = m;\n      (this || _global).props[13] = n;\n      (this || _global).props[14] = o;\n      (this || _global).props[15] = p;\n      return this || _global;\n    }\n\n    function translate(tx, ty, tz) {\n      tz = tz || 0;\n\n      if (tx !== 0 || ty !== 0 || tz !== 0) {\n        return this._t(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, tx, ty, tz, 1);\n      }\n\n      return this || _global;\n    }\n\n    function transform(a2, b2, c2, d2, e2, f2, g2, h2, i2, j2, k2, l2, m2, n2, o2, p2) {\n      var _p = (this || _global).props;\n\n      if (a2 === 1 && b2 === 0 && c2 === 0 && d2 === 0 && e2 === 0 && f2 === 1 && g2 === 0 && h2 === 0 && i2 === 0 && j2 === 0 && k2 === 1 && l2 === 0) {\n        // NOTE: commenting this condition because TurboFan deoptimizes code when present\n        // if(m2 !== 0 || n2 !== 0 || o2 !== 0){\n        _p[12] = _p[12] * a2 + _p[15] * m2;\n        _p[13] = _p[13] * f2 + _p[15] * n2;\n        _p[14] = _p[14] * k2 + _p[15] * o2;\n        _p[15] *= p2; // }\n\n        (this || _global)._identityCalculated = false;\n        return this || _global;\n      }\n\n      var a1 = _p[0];\n      var b1 = _p[1];\n      var c1 = _p[2];\n      var d1 = _p[3];\n      var e1 = _p[4];\n      var f1 = _p[5];\n      var g1 = _p[6];\n      var h1 = _p[7];\n      var i1 = _p[8];\n      var j1 = _p[9];\n      var k1 = _p[10];\n      var l1 = _p[11];\n      var m1 = _p[12];\n      var n1 = _p[13];\n      var o1 = _p[14];\n      var p1 = _p[15];\n      /* matrix order (canvas compatible):\r\n           * ace\r\n           * bdf\r\n           * 001\r\n           */\n\n      _p[0] = a1 * a2 + b1 * e2 + c1 * i2 + d1 * m2;\n      _p[1] = a1 * b2 + b1 * f2 + c1 * j2 + d1 * n2;\n      _p[2] = a1 * c2 + b1 * g2 + c1 * k2 + d1 * o2;\n      _p[3] = a1 * d2 + b1 * h2 + c1 * l2 + d1 * p2;\n      _p[4] = e1 * a2 + f1 * e2 + g1 * i2 + h1 * m2;\n      _p[5] = e1 * b2 + f1 * f2 + g1 * j2 + h1 * n2;\n      _p[6] = e1 * c2 + f1 * g2 + g1 * k2 + h1 * o2;\n      _p[7] = e1 * d2 + f1 * h2 + g1 * l2 + h1 * p2;\n      _p[8] = i1 * a2 + j1 * e2 + k1 * i2 + l1 * m2;\n      _p[9] = i1 * b2 + j1 * f2 + k1 * j2 + l1 * n2;\n      _p[10] = i1 * c2 + j1 * g2 + k1 * k2 + l1 * o2;\n      _p[11] = i1 * d2 + j1 * h2 + k1 * l2 + l1 * p2;\n      _p[12] = m1 * a2 + n1 * e2 + o1 * i2 + p1 * m2;\n      _p[13] = m1 * b2 + n1 * f2 + o1 * j2 + p1 * n2;\n      _p[14] = m1 * c2 + n1 * g2 + o1 * k2 + p1 * o2;\n      _p[15] = m1 * d2 + n1 * h2 + o1 * l2 + p1 * p2;\n      (this || _global)._identityCalculated = false;\n      return this || _global;\n    }\n\n    function isIdentity() {\n      if (!(this || _global)._identityCalculated) {\n        (this || _global)._identity = !((this || _global).props[0] !== 1 || (this || _global).props[1] !== 0 || (this || _global).props[2] !== 0 || (this || _global).props[3] !== 0 || (this || _global).props[4] !== 0 || (this || _global).props[5] !== 1 || (this || _global).props[6] !== 0 || (this || _global).props[7] !== 0 || (this || _global).props[8] !== 0 || (this || _global).props[9] !== 0 || (this || _global).props[10] !== 1 || (this || _global).props[11] !== 0 || (this || _global).props[12] !== 0 || (this || _global).props[13] !== 0 || (this || _global).props[14] !== 0 || (this || _global).props[15] !== 1);\n        (this || _global)._identityCalculated = true;\n      }\n\n      return (this || _global)._identity;\n    }\n\n    function equals(matr) {\n      var i = 0;\n\n      while (i < 16) {\n        if (matr.props[i] !== (this || _global).props[i]) {\n          return false;\n        }\n\n        i += 1;\n      }\n\n      return true;\n    }\n\n    function clone(matr) {\n      var i;\n\n      for (i = 0; i < 16; i += 1) {\n        matr.props[i] = (this || _global).props[i];\n      }\n\n      return matr;\n    }\n\n    function cloneFromProps(props) {\n      var i;\n\n      for (i = 0; i < 16; i += 1) {\n        (this || _global).props[i] = props[i];\n      }\n    }\n\n    function applyToPoint(x, y, z) {\n      return {\n        x: x * (this || _global).props[0] + y * (this || _global).props[4] + z * (this || _global).props[8] + (this || _global).props[12],\n        y: x * (this || _global).props[1] + y * (this || _global).props[5] + z * (this || _global).props[9] + (this || _global).props[13],\n        z: x * (this || _global).props[2] + y * (this || _global).props[6] + z * (this || _global).props[10] + (this || _global).props[14]\n      };\n      /* return {\r\n           x: x * me.a + y * me.c + me.e,\r\n           y: x * me.b + y * me.d + me.f\r\n           }; */\n    }\n\n    function applyToX(x, y, z) {\n      return x * (this || _global).props[0] + y * (this || _global).props[4] + z * (this || _global).props[8] + (this || _global).props[12];\n    }\n\n    function applyToY(x, y, z) {\n      return x * (this || _global).props[1] + y * (this || _global).props[5] + z * (this || _global).props[9] + (this || _global).props[13];\n    }\n\n    function applyToZ(x, y, z) {\n      return x * (this || _global).props[2] + y * (this || _global).props[6] + z * (this || _global).props[10] + (this || _global).props[14];\n    }\n\n    function getInverseMatrix() {\n      var determinant = (this || _global).props[0] * (this || _global).props[5] - (this || _global).props[1] * (this || _global).props[4];\n      var a = (this || _global).props[5] / determinant;\n      var b = -(this || _global).props[1] / determinant;\n      var c = -(this || _global).props[4] / determinant;\n      var d = (this || _global).props[0] / determinant;\n      var e = ((this || _global).props[4] * (this || _global).props[13] - (this || _global).props[5] * (this || _global).props[12]) / determinant;\n      var f = -((this || _global).props[0] * (this || _global).props[13] - (this || _global).props[1] * (this || _global).props[12]) / determinant;\n      var inverseMatrix = new Matrix();\n      inverseMatrix.props[0] = a;\n      inverseMatrix.props[1] = b;\n      inverseMatrix.props[4] = c;\n      inverseMatrix.props[5] = d;\n      inverseMatrix.props[12] = e;\n      inverseMatrix.props[13] = f;\n      return inverseMatrix;\n    }\n\n    function inversePoint(pt) {\n      var inverseMatrix = this.getInverseMatrix();\n      return inverseMatrix.applyToPointArray(pt[0], pt[1], pt[2] || 0);\n    }\n\n    function inversePoints(pts) {\n      var i;\n      var len = pts.length;\n      var retPts = [];\n\n      for (i = 0; i < len; i += 1) {\n        retPts[i] = inversePoint(pts[i]);\n      }\n\n      return retPts;\n    }\n\n    function applyToTriplePoints(pt1, pt2, pt3) {\n      var arr = createTypedArray(\"float32\", 6);\n\n      if (this.isIdentity()) {\n        arr[0] = pt1[0];\n        arr[1] = pt1[1];\n        arr[2] = pt2[0];\n        arr[3] = pt2[1];\n        arr[4] = pt3[0];\n        arr[5] = pt3[1];\n      } else {\n        var p0 = (this || _global).props[0];\n        var p1 = (this || _global).props[1];\n        var p4 = (this || _global).props[4];\n        var p5 = (this || _global).props[5];\n        var p12 = (this || _global).props[12];\n        var p13 = (this || _global).props[13];\n        arr[0] = pt1[0] * p0 + pt1[1] * p4 + p12;\n        arr[1] = pt1[0] * p1 + pt1[1] * p5 + p13;\n        arr[2] = pt2[0] * p0 + pt2[1] * p4 + p12;\n        arr[3] = pt2[0] * p1 + pt2[1] * p5 + p13;\n        arr[4] = pt3[0] * p0 + pt3[1] * p4 + p12;\n        arr[5] = pt3[0] * p1 + pt3[1] * p5 + p13;\n      }\n\n      return arr;\n    }\n\n    function applyToPointArray(x, y, z) {\n      var arr;\n\n      if (this.isIdentity()) {\n        arr = [x, y, z];\n      } else {\n        arr = [x * (this || _global).props[0] + y * (this || _global).props[4] + z * (this || _global).props[8] + (this || _global).props[12], x * (this || _global).props[1] + y * (this || _global).props[5] + z * (this || _global).props[9] + (this || _global).props[13], x * (this || _global).props[2] + y * (this || _global).props[6] + z * (this || _global).props[10] + (this || _global).props[14]];\n      }\n\n      return arr;\n    }\n\n    function applyToPointStringified(x, y) {\n      if (this.isIdentity()) {\n        return x + \",\" + y;\n      }\n\n      var _p = (this || _global).props;\n      return Math.round((x * _p[0] + y * _p[4] + _p[12]) * 100) / 100 + \",\" + Math.round((x * _p[1] + y * _p[5] + _p[13]) * 100) / 100;\n    }\n\n    function toCSS() {\n      // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\n\n      /* if(this.isIdentity()) {\r\n              return '';\r\n          } */\n      var i = 0;\n      var props = (this || _global).props;\n      var cssValue = \"matrix3d(\";\n      var v = 10000;\n\n      while (i < 16) {\n        cssValue += _rnd(props[i] * v) / v;\n        cssValue += i === 15 ? \")\" : \",\";\n        i += 1;\n      }\n\n      return cssValue;\n    }\n\n    function roundMatrixProperty(val) {\n      var v = 10000;\n\n      if (val < 0.000001 && val > 0 || val > -0.000001 && val < 0) {\n        return _rnd(val * v) / v;\n      }\n\n      return val;\n    }\n\n    function to2dCSS() {\n      // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\n\n      /* if(this.isIdentity()) {\r\n              return '';\r\n          } */\n      var props = (this || _global).props;\n\n      var _a = roundMatrixProperty(props[0]);\n\n      var _b = roundMatrixProperty(props[1]);\n\n      var _c = roundMatrixProperty(props[4]);\n\n      var _d = roundMatrixProperty(props[5]);\n\n      var _e = roundMatrixProperty(props[12]);\n\n      var _f = roundMatrixProperty(props[13]);\n\n      return \"matrix(\" + _a + \",\" + _b + \",\" + _c + \",\" + _d + \",\" + _e + \",\" + _f + \")\";\n    }\n\n    return function () {\n      (this || _global).reset = reset;\n      (this || _global).rotate = rotate;\n      (this || _global).rotateX = rotateX;\n      (this || _global).rotateY = rotateY;\n      (this || _global).rotateZ = rotateZ;\n      (this || _global).skew = skew;\n      (this || _global).skewFromAxis = skewFromAxis;\n      (this || _global).shear = shear;\n      (this || _global).scale = scale;\n      (this || _global).setTransform = setTransform;\n      (this || _global).translate = translate;\n      (this || _global).transform = transform;\n      (this || _global).applyToPoint = applyToPoint;\n      (this || _global).applyToX = applyToX;\n      (this || _global).applyToY = applyToY;\n      (this || _global).applyToZ = applyToZ;\n      (this || _global).applyToPointArray = applyToPointArray;\n      (this || _global).applyToTriplePoints = applyToTriplePoints;\n      (this || _global).applyToPointStringified = applyToPointStringified;\n      (this || _global).toCSS = toCSS;\n      (this || _global).to2dCSS = to2dCSS;\n      (this || _global).clone = clone;\n      (this || _global).cloneFromProps = cloneFromProps;\n      (this || _global).equals = equals;\n      (this || _global).inversePoints = inversePoints;\n      (this || _global).inversePoint = inversePoint;\n      (this || _global).getInverseMatrix = getInverseMatrix;\n      (this || _global)._t = (this || _global).transform;\n      (this || _global).isIdentity = isIdentity;\n      (this || _global)._identity = true;\n      (this || _global)._identityCalculated = false;\n      (this || _global).props = createTypedArray(\"float32\", 16);\n      this.reset();\n    };\n  }();\n  /* eslint-disable */\n\n  /*\r\n   Copyright 2014 David Bau.\r\n  \r\n   Permission is hereby granted, free of charge, to any person obtaining\r\n   a copy of this software and associated documentation files (the\r\n   \"Software\"), to deal in the Software without restriction, including\r\n   without limitation the rights to use, copy, modify, merge, publish,\r\n   distribute, sublicense, and/or sell copies of the Software, and to\r\n   permit persons to whom the Software is furnished to do so, subject to\r\n   the following conditions:\r\n  \r\n   The above copyright notice and this permission notice shall be\r\n   included in all copies or substantial portions of the Software.\r\n  \r\n   THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\r\n   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r\n   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\r\n   IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\r\n   CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\r\n   TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n   SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n  \r\n   */\n\n\n  (function (pool, math) {\n    //\n    // The following constants are related to IEEE 754 limits.\n    //\n    var global = this || _global,\n        width = 256,\n        // each RC4 output is 0 <= x < 256\n    chunks = 6,\n        // at least six RC4 outputs for each double\n    digits = 52,\n        // there are 52 significant digits in a double\n    rngname = \"random\",\n        // rngname: name for Math.random and Math.seedrandom\n    startdenom = math.pow(width, chunks),\n        significance = math.pow(2, digits),\n        overflow = significance * 2,\n        mask = width - 1,\n        nodecrypto; // node.js crypto module, initialized at the bottom.\n    //\n    // seedrandom()\n    // This is the seedrandom function described above.\n    //\n\n    function seedrandom(seed, options, callback) {\n      var key = [];\n      options = options === true ? {\n        entropy: true\n      } : options || {}; // Flatten the seed string or build one from local entropy if needed.\n\n      var shortseed = mixkey(flatten(options.entropy ? [seed, tostring(pool)] : seed === null ? autoseed() : seed, 3), key); // Use the seed to initialize an ARC4 generator.\n\n      var arc4 = new ARC4(key); // This function returns a random double in [0, 1) that contains\n      // randomness in every bit of the mantissa of the IEEE 754 value.\n\n      var prng = function () {\n        var n = arc4.g(chunks),\n            // Start with a numerator n < 2 ^ 48\n        d = startdenom,\n            //   and denominator d = 2 ^ 48.\n        x = 0; //   and no 'extra last byte'.\n\n        while (n < significance) {\n          // Fill up all significant digits by\n          n = (n + x) * width; //   shifting numerator and\n\n          d *= width; //   denominator and generating a\n\n          x = arc4.g(1); //   new least-significant-byte.\n        }\n\n        while (n >= overflow) {\n          // To avoid rounding up, before adding\n          n /= 2; //   last byte, shift everything\n\n          d /= 2; //   right using integer math until\n\n          x >>>= 1; //   we have exactly the desired bits.\n        }\n\n        return (n + x) / d; // Form the number within [0, 1).\n      };\n\n      prng.int32 = function () {\n        return arc4.g(4) | 0;\n      };\n\n      prng.quick = function () {\n        return arc4.g(4) / 4294967296;\n      };\n\n      prng.double = prng; // Mix the randomness into accumulated entropy.\n\n      mixkey(tostring(arc4.S), pool); // Calling convention: what to return as a function of prng, seed, is_math.\n\n      return (options.pass || callback || function (prng, seed, is_math_call, state) {\n        if (state) {\n          // Load the arc4 state from the given state if it has an S array.\n          if (state.S) {\n            copy(state, arc4);\n          } // Only provide the .state method if requested via options.state.\n\n\n          prng.state = function () {\n            return copy(arc4, {});\n          };\n        } // If called as a method of Math (Math.seedrandom()), mutate\n        // Math.random because that is how seedrandom.js has worked since v1.0.\n\n\n        if (is_math_call) {\n          math[rngname] = prng;\n          return seed;\n        } // Otherwise, it is a newer calling convention, so return the\n        // prng directly.\n        else return prng;\n      })(prng, shortseed, \"global\" in options ? options.global : (this || _global) == math, options.state);\n    }\n\n    math[\"seed\" + rngname] = seedrandom; //\n    // ARC4\n    //\n    // An ARC4 implementation.  The constructor takes a key in the form of\n    // an array of at most (width) integers that should be 0 <= x < (width).\n    //\n    // The g(count) method returns a pseudorandom integer that concatenates\n    // the next (count) outputs from ARC4.  Its return value is a number x\n    // that is in the range 0 <= x < (width ^ count).\n    //\n\n    function ARC4(key) {\n      var t,\n          keylen = key.length,\n          me = this || _global,\n          i = 0,\n          j = me.i = me.j = 0,\n          s = me.S = []; // The empty key [] is treated as [0].\n\n      if (!keylen) {\n        key = [keylen++];\n      } // Set up S using the standard key scheduling algorithm.\n\n\n      while (i < width) {\n        s[i] = i++;\n      }\n\n      for (i = 0; i < width; i++) {\n        s[i] = s[j = mask & j + key[i % keylen] + (t = s[i])];\n        s[j] = t;\n      } // The \"g\" method returns the next (count) outputs as one number.\n\n\n      me.g = function (count) {\n        // Using instance members instead of closure state nearly doubles speed.\n        var t,\n            r = 0,\n            i = me.i,\n            j = me.j,\n            s = me.S;\n\n        while (count--) {\n          t = s[i = mask & i + 1];\n          r = r * width + s[mask & (s[i] = s[j = mask & j + t]) + (s[j] = t)];\n        }\n\n        me.i = i;\n        me.j = j;\n        return r; // For robust unpredictability, the function call below automatically\n        // discards an initial batch of values.  This is called RC4-drop[256].\n        // See http://google.com/search?q=rsa+fluhrer+response&btnI\n      };\n    } //\n    // copy()\n    // Copies internal state of ARC4 to or from a plain object.\n    //\n\n\n    function copy(f, t) {\n      t.i = f.i;\n      t.j = f.j;\n      t.S = f.S.slice();\n      return t;\n    } //\n    // flatten()\n    // Converts an object tree to nested arrays of strings.\n    //\n\n\n    function flatten(obj, depth) {\n      var result = [],\n          typ = typeof obj,\n          prop;\n\n      if (depth && typ == \"object\") {\n        for (prop in obj) {\n          try {\n            result.push(flatten(obj[prop], depth - 1));\n          } catch (e) {}\n        }\n      }\n\n      return result.length ? result : typ == \"string\" ? obj : obj + \"\\0\";\n    } //\n    // mixkey()\n    // Mixes a string seed into a key that is an array of integers, and\n    // returns a shortened string seed that is equivalent to the result key.\n    //\n\n\n    function mixkey(seed, key) {\n      var stringseed = seed + \"\",\n          smear,\n          j = 0;\n\n      while (j < stringseed.length) {\n        key[mask & j] = mask & (smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++);\n      }\n\n      return tostring(key);\n    } //\n    // autoseed()\n    // Returns an object for autoseeding, using window.crypto and Node crypto\n    // module if available.\n    //\n\n\n    function autoseed() {\n      try {\n        if (nodecrypto) {\n          return tostring(nodecrypto.randomBytes(width));\n        }\n\n        var out = new Uint8Array(width);\n        (global.crypto || global.msCrypto).getRandomValues(out);\n        return tostring(out);\n      } catch (e) {\n        var browser = global.navigator,\n            plugins = browser && browser.plugins;\n        return [+new Date(), global, plugins, global.screen, tostring(pool)];\n      }\n    } //\n    // tostring()\n    // Converts an array of charcodes to a string\n    //\n\n\n    function tostring(a) {\n      return String.fromCharCode.apply(0, a);\n    } //\n    // When seedrandom.js is loaded, we immediately mix a few bits\n    // from the built-in RNG into the entropy pool.  Because we do\n    // not want to interfere with deterministic PRNG state later,\n    // seedrandom will not call math.random on its own again after\n    // initialization.\n    //\n\n\n    mixkey(math.random(), pool); //\n    // Nodejs and AMD support: export the implementation as a module using\n    // either convention.\n    //\n    // End anonymous scope, and pass initial values.\n  })([], // pool: entropy pool starts empty\n  BMMath // math: package containing random, pow, and seedrandom\n  );\n  /* eslint-disable */\n\n\n  var BezierFactory = function () {\n    /**\r\n       * BezierEasing - use bezier curve for transition easing function\r\n       * by Gaëtan Renaudeau 2014 - 2015 – MIT License\r\n       *\r\n       * Credits: is based on Firefox's nsSMILKeySpline.cpp\r\n       * Usage:\r\n       * var spline = BezierEasing([ 0.25, 0.1, 0.25, 1.0 ])\r\n       * spline.get(x) => returns the easing value | x must be in [0, 1] range\r\n       *\r\n       */\n    var ob = {};\n    ob.getBezierEasing = getBezierEasing;\n    var beziers = {};\n\n    function getBezierEasing(a, b, c, d, nm) {\n      var str = nm || (\"bez_\" + a + \"_\" + b + \"_\" + c + \"_\" + d).replace(/\\./g, \"p\");\n\n      if (beziers[str]) {\n        return beziers[str];\n      }\n\n      var bezEasing = new BezierEasing([a, b, c, d]);\n      beziers[str] = bezEasing;\n      return bezEasing;\n    } // These values are established by empiricism with tests (tradeoff: performance VS precision)\n\n\n    var NEWTON_ITERATIONS = 4;\n    var NEWTON_MIN_SLOPE = 0.001;\n    var SUBDIVISION_PRECISION = 1e-7;\n    var SUBDIVISION_MAX_ITERATIONS = 10;\n    var kSplineTableSize = 11;\n    var kSampleStepSize = 1 / (kSplineTableSize - 1);\n    var float32ArraySupported = typeof Float32Array === \"function\";\n\n    function A(aA1, aA2) {\n      return 1 - 3 * aA2 + 3 * aA1;\n    }\n\n    function B(aA1, aA2) {\n      return 3 * aA2 - 6 * aA1;\n    }\n\n    function C(aA1) {\n      return 3 * aA1;\n    } // Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\n\n\n    function calcBezier(aT, aA1, aA2) {\n      return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\n    } // Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\n\n\n    function getSlope(aT, aA1, aA2) {\n      return 3 * A(aA1, aA2) * aT * aT + 2 * B(aA1, aA2) * aT + C(aA1);\n    }\n\n    function binarySubdivide(aX, aA, aB, mX1, mX2) {\n      var currentX,\n          currentT,\n          i = 0;\n\n      do {\n        currentT = aA + (aB - aA) / 2;\n        currentX = calcBezier(currentT, mX1, mX2) - aX;\n\n        if (currentX > 0) {\n          aB = currentT;\n        } else {\n          aA = currentT;\n        }\n      } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\n\n      return currentT;\n    }\n\n    function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\n      for (var i = 0; i < NEWTON_ITERATIONS; ++i) {\n        var currentSlope = getSlope(aGuessT, mX1, mX2);\n        if (currentSlope === 0) return aGuessT;\n        var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n        aGuessT -= currentX / currentSlope;\n      }\n\n      return aGuessT;\n    }\n    /**\r\n       * points is an array of [ mX1, mY1, mX2, mY2 ]\r\n       */\n\n\n    function BezierEasing(points) {\n      (this || _global)._p = points;\n      (this || _global)._mSampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\n      (this || _global)._precomputed = false;\n      (this || _global).get = (this || _global).get.bind(this || _global);\n    }\n\n    BezierEasing.prototype = {\n      get: function (x) {\n        var mX1 = (this || _global)._p[0],\n            mY1 = (this || _global)._p[1],\n            mX2 = (this || _global)._p[2],\n            mY2 = (this || _global)._p[3];\n        if (!(this || _global)._precomputed) this._precompute();\n        if (mX1 === mY1 && mX2 === mY2) return x; // linear\n        // Because JavaScript number are imprecise, we should guarantee the extremes are right.\n\n        if (x === 0) return 0;\n        if (x === 1) return 1;\n        return calcBezier(this._getTForX(x), mY1, mY2);\n      },\n      // Private part\n      _precompute: function () {\n        var mX1 = (this || _global)._p[0],\n            mY1 = (this || _global)._p[1],\n            mX2 = (this || _global)._p[2],\n            mY2 = (this || _global)._p[3];\n        (this || _global)._precomputed = true;\n\n        if (mX1 !== mY1 || mX2 !== mY2) {\n          this._calcSampleValues();\n        }\n      },\n      _calcSampleValues: function () {\n        var mX1 = (this || _global)._p[0],\n            mX2 = (this || _global)._p[2];\n\n        for (var i = 0; i < kSplineTableSize; ++i) {\n          (this || _global)._mSampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n        }\n      },\n\n      /**\r\n           * getTForX chose the fastest heuristic to determine the percentage value precisely from a given X projection.\r\n           */\n      _getTForX: function (aX) {\n        var mX1 = (this || _global)._p[0],\n            mX2 = (this || _global)._p[2],\n            mSampleValues = (this || _global)._mSampleValues;\n        var intervalStart = 0;\n        var currentSample = 1;\n        var lastSample = kSplineTableSize - 1;\n\n        for (; currentSample !== lastSample && mSampleValues[currentSample] <= aX; ++currentSample) {\n          intervalStart += kSampleStepSize;\n        }\n\n        --currentSample; // Interpolate to provide an initial guess for t\n\n        var dist = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample + 1] - mSampleValues[currentSample]);\n        var guessForT = intervalStart + dist * kSampleStepSize;\n        var initialSlope = getSlope(guessForT, mX1, mX2);\n\n        if (initialSlope >= NEWTON_MIN_SLOPE) {\n          return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n        }\n\n        if (initialSlope === 0) {\n          return guessForT;\n        }\n\n        return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n      }\n    };\n    return ob;\n  }();\n\n  (function () {\n    var lastTime = 0;\n    var vendors = [\"ms\", \"moz\", \"webkit\", \"o\"];\n\n    for (var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) {\n      // eslint-disable-line no-plusplus\n      window.requestAnimationFrame = window[vendors[x] + \"RequestAnimationFrame\"];\n      window.cancelAnimationFrame = window[vendors[x] + \"CancelAnimationFrame\"] || window[vendors[x] + \"CancelRequestAnimationFrame\"];\n    }\n\n    if (!window.requestAnimationFrame) {\n      window.requestAnimationFrame = function (callback) {\n        var currTime = new Date().getTime();\n        var timeToCall = Math.max(0, 16 - (currTime - lastTime));\n        var id = setTimeout(function () {\n          callback(currTime + timeToCall);\n        }, timeToCall);\n        lastTime = currTime + timeToCall;\n        return id;\n      };\n    }\n\n    if (!window.cancelAnimationFrame) {\n      window.cancelAnimationFrame = function (id) {\n        clearTimeout(id);\n      };\n    }\n  })();\n  /* exported extendPrototype, getDescriptor, createProxyFunction */\n\n\n  function extendPrototype(sources, destination) {\n    var i;\n    var len = sources.length;\n    var sourcePrototype;\n\n    for (i = 0; i < len; i += 1) {\n      sourcePrototype = sources[i].prototype;\n\n      for (var attr in sourcePrototype) {\n        if (Object.prototype.hasOwnProperty.call(sourcePrototype, attr)) destination.prototype[attr] = sourcePrototype[attr];\n      }\n    }\n  }\n\n  function getDescriptor(object, prop) {\n    return Object.getOwnPropertyDescriptor(object, prop);\n  }\n\n  function createProxyFunction(prototype) {\n    function ProxyFunction() {}\n\n    ProxyFunction.prototype = prototype;\n    return ProxyFunction;\n  }\n  /* global segmentsLengthPool, defaultCurveSegments, createSizedArray, bmPow, bmSqrt, bmFloor, createTypedArray, bezierLengthPool */\n\n  /* exported bez */\n\n\n  function bezFunction() {\n    var math = Math;\n\n    function pointOnLine2D(x1, y1, x2, y2, x3, y3) {\n      var det1 = x1 * y2 + y1 * x3 + x2 * y3 - x3 * y2 - y3 * x1 - x2 * y1;\n      return det1 > -0.001 && det1 < 0.001;\n    }\n\n    function pointOnLine3D(x1, y1, z1, x2, y2, z2, x3, y3, z3) {\n      if (z1 === 0 && z2 === 0 && z3 === 0) {\n        return pointOnLine2D(x1, y1, x2, y2, x3, y3);\n      }\n\n      var dist1 = math.sqrt(math.pow(x2 - x1, 2) + math.pow(y2 - y1, 2) + math.pow(z2 - z1, 2));\n      var dist2 = math.sqrt(math.pow(x3 - x1, 2) + math.pow(y3 - y1, 2) + math.pow(z3 - z1, 2));\n      var dist3 = math.sqrt(math.pow(x3 - x2, 2) + math.pow(y3 - y2, 2) + math.pow(z3 - z2, 2));\n      var diffDist;\n\n      if (dist1 > dist2) {\n        if (dist1 > dist3) {\n          diffDist = dist1 - dist2 - dist3;\n        } else {\n          diffDist = dist3 - dist2 - dist1;\n        }\n      } else if (dist3 > dist2) {\n        diffDist = dist3 - dist2 - dist1;\n      } else {\n        diffDist = dist2 - dist1 - dist3;\n      }\n\n      return diffDist > -0.0001 && diffDist < 0.0001;\n    }\n\n    var getBezierLength = function () {\n      return function (pt1, pt2, pt3, pt4) {\n        var curveSegments = defaultCurveSegments;\n        var k;\n        var i;\n        var len;\n        var ptCoord;\n        var perc;\n        var addedLength = 0;\n        var ptDistance;\n        var point = [];\n        var lastPoint = [];\n        var lengthData = bezierLengthPool.newElement();\n        len = pt3.length;\n\n        for (k = 0; k < curveSegments; k += 1) {\n          perc = k / (curveSegments - 1);\n          ptDistance = 0;\n\n          for (i = 0; i < len; i += 1) {\n            ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * pt3[i] + 3 * (1 - perc) * bmPow(perc, 2) * pt4[i] + bmPow(perc, 3) * pt2[i];\n            point[i] = ptCoord;\n\n            if (lastPoint[i] !== null) {\n              ptDistance += bmPow(point[i] - lastPoint[i], 2);\n            }\n\n            lastPoint[i] = point[i];\n          }\n\n          if (ptDistance) {\n            ptDistance = bmSqrt(ptDistance);\n            addedLength += ptDistance;\n          }\n\n          lengthData.percents[k] = perc;\n          lengthData.lengths[k] = addedLength;\n        }\n\n        lengthData.addedLength = addedLength;\n        return lengthData;\n      };\n    }();\n\n    function getSegmentsLength(shapeData) {\n      var segmentsLength = segmentsLengthPool.newElement();\n      var closed = shapeData.c;\n      var pathV = shapeData.v;\n      var pathO = shapeData.o;\n      var pathI = shapeData.i;\n      var i;\n      var len = shapeData._length;\n      var lengths = segmentsLength.lengths;\n      var totalLength = 0;\n\n      for (i = 0; i < len - 1; i += 1) {\n        lengths[i] = getBezierLength(pathV[i], pathV[i + 1], pathO[i], pathI[i + 1]);\n        totalLength += lengths[i].addedLength;\n      }\n\n      if (closed && len) {\n        lengths[i] = getBezierLength(pathV[i], pathV[0], pathO[i], pathI[0]);\n        totalLength += lengths[i].addedLength;\n      }\n\n      segmentsLength.totalLength = totalLength;\n      return segmentsLength;\n    }\n\n    function BezierData(length) {\n      (this || _global).segmentLength = 0;\n      (this || _global).points = new Array(length);\n    }\n\n    function PointData(partial, point) {\n      (this || _global).partialLength = partial;\n      (this || _global).point = point;\n    }\n\n    var buildBezierData = function () {\n      var storedData = {};\n      return function (pt1, pt2, pt3, pt4) {\n        var bezierName = (pt1[0] + \"_\" + pt1[1] + \"_\" + pt2[0] + \"_\" + pt2[1] + \"_\" + pt3[0] + \"_\" + pt3[1] + \"_\" + pt4[0] + \"_\" + pt4[1]).replace(/\\./g, \"p\");\n\n        if (!storedData[bezierName]) {\n          var curveSegments = defaultCurveSegments;\n          var k;\n          var i;\n          var len;\n          var ptCoord;\n          var perc;\n          var addedLength = 0;\n          var ptDistance;\n          var point;\n          var lastPoint = null;\n\n          if (pt1.length === 2 && (pt1[0] !== pt2[0] || pt1[1] !== pt2[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt1[0] + pt3[0], pt1[1] + pt3[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt2[0] + pt4[0], pt2[1] + pt4[1])) {\n            curveSegments = 2;\n          }\n\n          var bezierData = new BezierData(curveSegments);\n          len = pt3.length;\n\n          for (k = 0; k < curveSegments; k += 1) {\n            point = createSizedArray(len);\n            perc = k / (curveSegments - 1);\n            ptDistance = 0;\n\n            for (i = 0; i < len; i += 1) {\n              ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * (pt1[i] + pt3[i]) + 3 * (1 - perc) * bmPow(perc, 2) * (pt2[i] + pt4[i]) + bmPow(perc, 3) * pt2[i];\n              point[i] = ptCoord;\n\n              if (lastPoint !== null) {\n                ptDistance += bmPow(point[i] - lastPoint[i], 2);\n              }\n            }\n\n            ptDistance = bmSqrt(ptDistance);\n            addedLength += ptDistance;\n            bezierData.points[k] = new PointData(ptDistance, point);\n            lastPoint = point;\n          }\n\n          bezierData.segmentLength = addedLength;\n          storedData[bezierName] = bezierData;\n        }\n\n        return storedData[bezierName];\n      };\n    }();\n\n    function getDistancePerc(perc, bezierData) {\n      var percents = bezierData.percents;\n      var lengths = bezierData.lengths;\n      var len = percents.length;\n      var initPos = bmFloor((len - 1) * perc);\n      var lengthPos = perc * bezierData.addedLength;\n      var lPerc = 0;\n\n      if (initPos === len - 1 || initPos === 0 || lengthPos === lengths[initPos]) {\n        return percents[initPos];\n      }\n\n      var dir = lengths[initPos] > lengthPos ? -1 : 1;\n      var flag = true;\n\n      while (flag) {\n        if (lengths[initPos] <= lengthPos && lengths[initPos + 1] > lengthPos) {\n          lPerc = (lengthPos - lengths[initPos]) / (lengths[initPos + 1] - lengths[initPos]);\n          flag = false;\n        } else {\n          initPos += dir;\n        }\n\n        if (initPos < 0 || initPos >= len - 1) {\n          // FIX for TypedArrays that don't store floating point values with enough accuracy\n          if (initPos === len - 1) {\n            return percents[initPos];\n          }\n\n          flag = false;\n        }\n      }\n\n      return percents[initPos] + (percents[initPos + 1] - percents[initPos]) * lPerc;\n    }\n\n    function getPointInSegment(pt1, pt2, pt3, pt4, percent, bezierData) {\n      var t1 = getDistancePerc(percent, bezierData);\n      var u1 = 1 - t1;\n      var ptX = math.round((u1 * u1 * u1 * pt1[0] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[0] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[0] + t1 * t1 * t1 * pt2[0]) * 1000) / 1000;\n      var ptY = math.round((u1 * u1 * u1 * pt1[1] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[1] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[1] + t1 * t1 * t1 * pt2[1]) * 1000) / 1000;\n      return [ptX, ptY];\n    }\n\n    var bezierSegmentPoints = createTypedArray(\"float32\", 8);\n\n    function getNewSegment(pt1, pt2, pt3, pt4, startPerc, endPerc, bezierData) {\n      if (startPerc < 0) {\n        startPerc = 0;\n      } else if (startPerc > 1) {\n        startPerc = 1;\n      }\n\n      var t0 = getDistancePerc(startPerc, bezierData);\n      endPerc = endPerc > 1 ? 1 : endPerc;\n      var t1 = getDistancePerc(endPerc, bezierData);\n      var i;\n      var len = pt1.length;\n      var u0 = 1 - t0;\n      var u1 = 1 - t1;\n      var u0u0u0 = u0 * u0 * u0;\n      var t0u0u0_3 = t0 * u0 * u0 * 3; // eslint-disable-line camelcase\n\n      var t0t0u0_3 = t0 * t0 * u0 * 3; // eslint-disable-line camelcase\n\n      var t0t0t0 = t0 * t0 * t0; //\n\n      var u0u0u1 = u0 * u0 * u1;\n      var t0u0u1_3 = t0 * u0 * u1 + u0 * t0 * u1 + u0 * u0 * t1; // eslint-disable-line camelcase\n\n      var t0t0u1_3 = t0 * t0 * u1 + u0 * t0 * t1 + t0 * u0 * t1; // eslint-disable-line camelcase\n\n      var t0t0t1 = t0 * t0 * t1; //\n\n      var u0u1u1 = u0 * u1 * u1;\n      var t0u1u1_3 = t0 * u1 * u1 + u0 * t1 * u1 + u0 * u1 * t1; // eslint-disable-line camelcase\n\n      var t0t1u1_3 = t0 * t1 * u1 + u0 * t1 * t1 + t0 * u1 * t1; // eslint-disable-line camelcase\n\n      var t0t1t1 = t0 * t1 * t1; //\n\n      var u1u1u1 = u1 * u1 * u1;\n      var t1u1u1_3 = t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1; // eslint-disable-line camelcase\n\n      var t1t1u1_3 = t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1; // eslint-disable-line camelcase\n\n      var t1t1t1 = t1 * t1 * t1;\n\n      for (i = 0; i < len; i += 1) {\n        bezierSegmentPoints[i * 4] = math.round((u0u0u0 * pt1[i] + t0u0u0_3 * pt3[i] + t0t0u0_3 * pt4[i] + t0t0t0 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n        bezierSegmentPoints[i * 4 + 1] = math.round((u0u0u1 * pt1[i] + t0u0u1_3 * pt3[i] + t0t0u1_3 * pt4[i] + t0t0t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n        bezierSegmentPoints[i * 4 + 2] = math.round((u0u1u1 * pt1[i] + t0u1u1_3 * pt3[i] + t0t1u1_3 * pt4[i] + t0t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n        bezierSegmentPoints[i * 4 + 3] = math.round((u1u1u1 * pt1[i] + t1u1u1_3 * pt3[i] + t1t1u1_3 * pt4[i] + t1t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n      }\n\n      return bezierSegmentPoints;\n    }\n\n    return {\n      getSegmentsLength: getSegmentsLength,\n      getNewSegment: getNewSegment,\n      getPointInSegment: getPointInSegment,\n      buildBezierData: buildBezierData,\n      pointOnLine2D: pointOnLine2D,\n      pointOnLine3D: pointOnLine3D\n    };\n  }\n\n  var bez = bezFunction();\n  /* exported dataManager */\n\n  function dataFunctionManager() {\n    // var tCanvasHelper = createTag('canvas').getContext('2d');\n    function completeLayers(layers, comps, fontManager) {\n      var layerData;\n      var i;\n      var len = layers.length;\n      var j;\n      var jLen;\n      var k;\n      var kLen;\n\n      for (i = 0; i < len; i += 1) {\n        layerData = layers[i];\n\n        if (\"ks\" in layerData && !layerData.completed) {\n          layerData.completed = true;\n\n          if (layerData.tt) {\n            layers[i - 1].td = layerData.tt;\n          }\n\n          if (layerData.hasMask) {\n            var maskProps = layerData.masksProperties;\n            jLen = maskProps.length;\n\n            for (j = 0; j < jLen; j += 1) {\n              if (maskProps[j].pt.k.i) {\n                convertPathsToAbsoluteValues(maskProps[j].pt.k);\n              } else {\n                kLen = maskProps[j].pt.k.length;\n\n                for (k = 0; k < kLen; k += 1) {\n                  if (maskProps[j].pt.k[k].s) {\n                    convertPathsToAbsoluteValues(maskProps[j].pt.k[k].s[0]);\n                  }\n\n                  if (maskProps[j].pt.k[k].e) {\n                    convertPathsToAbsoluteValues(maskProps[j].pt.k[k].e[0]);\n                  }\n                }\n              }\n            }\n          }\n\n          if (layerData.ty === 0) {\n            layerData.layers = findCompLayers(layerData.refId, comps);\n            completeLayers(layerData.layers, comps, fontManager);\n          } else if (layerData.ty === 4) {\n            completeShapes(layerData.shapes);\n          } else if (layerData.ty === 5) {\n            completeText(layerData, fontManager);\n          }\n        }\n      }\n    }\n\n    function findCompLayers(id, comps) {\n      var i = 0;\n      var len = comps.length;\n\n      while (i < len) {\n        if (comps[i].id === id) {\n          if (!comps[i].layers.__used) {\n            comps[i].layers.__used = true;\n            return comps[i].layers;\n          }\n\n          return JSON.parse(JSON.stringify(comps[i].layers));\n        }\n\n        i += 1;\n      }\n\n      return null;\n    }\n\n    function completeShapes(arr) {\n      var i;\n      var len = arr.length;\n      var j;\n      var jLen;\n\n      for (i = len - 1; i >= 0; i -= 1) {\n        if (arr[i].ty === \"sh\") {\n          if (arr[i].ks.k.i) {\n            convertPathsToAbsoluteValues(arr[i].ks.k);\n          } else {\n            jLen = arr[i].ks.k.length;\n\n            for (j = 0; j < jLen; j += 1) {\n              if (arr[i].ks.k[j].s) {\n                convertPathsToAbsoluteValues(arr[i].ks.k[j].s[0]);\n              }\n\n              if (arr[i].ks.k[j].e) {\n                convertPathsToAbsoluteValues(arr[i].ks.k[j].e[0]);\n              }\n            }\n          }\n        } else if (arr[i].ty === \"gr\") {\n          completeShapes(arr[i].it);\n        }\n      }\n    }\n\n    function convertPathsToAbsoluteValues(path) {\n      var i;\n      var len = path.i.length;\n\n      for (i = 0; i < len; i += 1) {\n        path.i[i][0] += path.v[i][0];\n        path.i[i][1] += path.v[i][1];\n        path.o[i][0] += path.v[i][0];\n        path.o[i][1] += path.v[i][1];\n      }\n    }\n\n    function checkVersion(minimum, animVersionString) {\n      var animVersion = animVersionString ? animVersionString.split(\".\") : [100, 100, 100];\n\n      if (minimum[0] > animVersion[0]) {\n        return true;\n      }\n\n      if (animVersion[0] > minimum[0]) {\n        return false;\n      }\n\n      if (minimum[1] > animVersion[1]) {\n        return true;\n      }\n\n      if (animVersion[1] > minimum[1]) {\n        return false;\n      }\n\n      if (minimum[2] > animVersion[2]) {\n        return true;\n      }\n\n      if (animVersion[2] > minimum[2]) {\n        return false;\n      }\n\n      return null;\n    }\n\n    var checkText = function () {\n      var minimumVersion = [4, 4, 14];\n\n      function updateTextLayer(textLayer) {\n        var documentData = textLayer.t.d;\n        textLayer.t.d = {\n          k: [{\n            s: documentData,\n            t: 0\n          }]\n        };\n      }\n\n      function iterateLayers(layers) {\n        var i;\n        var len = layers.length;\n\n        for (i = 0; i < len; i += 1) {\n          if (layers[i].ty === 5) {\n            updateTextLayer(layers[i]);\n          }\n        }\n      }\n\n      return function (animationData) {\n        if (checkVersion(minimumVersion, animationData.v)) {\n          iterateLayers(animationData.layers);\n\n          if (animationData.assets) {\n            var i;\n            var len = animationData.assets.length;\n\n            for (i = 0; i < len; i += 1) {\n              if (animationData.assets[i].layers) {\n                iterateLayers(animationData.assets[i].layers);\n              }\n            }\n          }\n        }\n      };\n    }();\n\n    var checkChars = function () {\n      var minimumVersion = [4, 7, 99];\n      return function (animationData) {\n        if (animationData.chars && !checkVersion(minimumVersion, animationData.v)) {\n          var i;\n          var len = animationData.chars.length;\n          var j;\n          var jLen;\n          var pathData;\n          var paths;\n\n          for (i = 0; i < len; i += 1) {\n            if (animationData.chars[i].data && animationData.chars[i].data.shapes) {\n              paths = animationData.chars[i].data.shapes[0].it;\n              jLen = paths.length;\n\n              for (j = 0; j < jLen; j += 1) {\n                pathData = paths[j].ks.k;\n\n                if (!pathData.__converted) {\n                  convertPathsToAbsoluteValues(paths[j].ks.k);\n                  pathData.__converted = true;\n                }\n              }\n            }\n          }\n        }\n      };\n    }();\n\n    var checkColors = function () {\n      var minimumVersion = [4, 1, 9];\n\n      function iterateShapes(shapes) {\n        var i;\n        var len = shapes.length;\n        var j;\n        var jLen;\n\n        for (i = 0; i < len; i += 1) {\n          if (shapes[i].ty === \"gr\") {\n            iterateShapes(shapes[i].it);\n          } else if (shapes[i].ty === \"fl\" || shapes[i].ty === \"st\") {\n            if (shapes[i].c.k && shapes[i].c.k[0].i) {\n              jLen = shapes[i].c.k.length;\n\n              for (j = 0; j < jLen; j += 1) {\n                if (shapes[i].c.k[j].s) {\n                  shapes[i].c.k[j].s[0] /= 255;\n                  shapes[i].c.k[j].s[1] /= 255;\n                  shapes[i].c.k[j].s[2] /= 255;\n                  shapes[i].c.k[j].s[3] /= 255;\n                }\n\n                if (shapes[i].c.k[j].e) {\n                  shapes[i].c.k[j].e[0] /= 255;\n                  shapes[i].c.k[j].e[1] /= 255;\n                  shapes[i].c.k[j].e[2] /= 255;\n                  shapes[i].c.k[j].e[3] /= 255;\n                }\n              }\n            } else {\n              shapes[i].c.k[0] /= 255;\n              shapes[i].c.k[1] /= 255;\n              shapes[i].c.k[2] /= 255;\n              shapes[i].c.k[3] /= 255;\n            }\n          }\n        }\n      }\n\n      function iterateLayers(layers) {\n        var i;\n        var len = layers.length;\n\n        for (i = 0; i < len; i += 1) {\n          if (layers[i].ty === 4) {\n            iterateShapes(layers[i].shapes);\n          }\n        }\n      }\n\n      return function (animationData) {\n        if (checkVersion(minimumVersion, animationData.v)) {\n          iterateLayers(animationData.layers);\n\n          if (animationData.assets) {\n            var i;\n            var len = animationData.assets.length;\n\n            for (i = 0; i < len; i += 1) {\n              if (animationData.assets[i].layers) {\n                iterateLayers(animationData.assets[i].layers);\n              }\n            }\n          }\n        }\n      };\n    }();\n\n    var checkShapes = function () {\n      var minimumVersion = [4, 4, 18];\n\n      function completeClosingShapes(arr) {\n        var i;\n        var len = arr.length;\n        var j;\n        var jLen;\n\n        for (i = len - 1; i >= 0; i -= 1) {\n          if (arr[i].ty === \"sh\") {\n            if (arr[i].ks.k.i) {\n              arr[i].ks.k.c = arr[i].closed;\n            } else {\n              jLen = arr[i].ks.k.length;\n\n              for (j = 0; j < jLen; j += 1) {\n                if (arr[i].ks.k[j].s) {\n                  arr[i].ks.k[j].s[0].c = arr[i].closed;\n                }\n\n                if (arr[i].ks.k[j].e) {\n                  arr[i].ks.k[j].e[0].c = arr[i].closed;\n                }\n              }\n            }\n          } else if (arr[i].ty === \"gr\") {\n            completeClosingShapes(arr[i].it);\n          }\n        }\n      }\n\n      function iterateLayers(layers) {\n        var layerData;\n        var i;\n        var len = layers.length;\n        var j;\n        var jLen;\n        var k;\n        var kLen;\n\n        for (i = 0; i < len; i += 1) {\n          layerData = layers[i];\n\n          if (layerData.hasMask) {\n            var maskProps = layerData.masksProperties;\n            jLen = maskProps.length;\n\n            for (j = 0; j < jLen; j += 1) {\n              if (maskProps[j].pt.k.i) {\n                maskProps[j].pt.k.c = maskProps[j].cl;\n              } else {\n                kLen = maskProps[j].pt.k.length;\n\n                for (k = 0; k < kLen; k += 1) {\n                  if (maskProps[j].pt.k[k].s) {\n                    maskProps[j].pt.k[k].s[0].c = maskProps[j].cl;\n                  }\n\n                  if (maskProps[j].pt.k[k].e) {\n                    maskProps[j].pt.k[k].e[0].c = maskProps[j].cl;\n                  }\n                }\n              }\n            }\n          }\n\n          if (layerData.ty === 4) {\n            completeClosingShapes(layerData.shapes);\n          }\n        }\n      }\n\n      return function (animationData) {\n        if (checkVersion(minimumVersion, animationData.v)) {\n          iterateLayers(animationData.layers);\n\n          if (animationData.assets) {\n            var i;\n            var len = animationData.assets.length;\n\n            for (i = 0; i < len; i += 1) {\n              if (animationData.assets[i].layers) {\n                iterateLayers(animationData.assets[i].layers);\n              }\n            }\n          }\n        }\n      };\n    }();\n\n    function completeData(animationData, fontManager) {\n      if (animationData.__complete) {\n        return;\n      }\n\n      checkColors(animationData);\n      checkText(animationData);\n      checkChars(animationData);\n      checkShapes(animationData);\n      completeLayers(animationData.layers, animationData.assets, fontManager);\n      animationData.__complete = true;\n    }\n\n    function completeText(data) {\n      if (data.t.a.length === 0 && !(\"m\" in data.t.p)) {\n        data.singleShape = true;\n      }\n    }\n\n    var moduleOb = {};\n    moduleOb.completeData = completeData;\n    moduleOb.checkColors = checkColors;\n    moduleOb.checkChars = checkChars;\n    moduleOb.checkShapes = checkShapes;\n    moduleOb.completeLayers = completeLayers;\n    return moduleOb;\n  }\n\n  var dataManager = dataFunctionManager();\n  /* exported getFontProperties */\n\n  function getFontProperties(fontData) {\n    var styles = fontData.fStyle ? fontData.fStyle.split(\" \") : [];\n    var fWeight = \"normal\";\n    var fStyle = \"normal\";\n    var len = styles.length;\n    var styleName;\n\n    for (var i = 0; i < len; i += 1) {\n      styleName = styles[i].toLowerCase();\n\n      switch (styleName) {\n        case \"italic\":\n          fStyle = \"italic\";\n          break;\n\n        case \"bold\":\n          fWeight = \"700\";\n          break;\n\n        case \"black\":\n          fWeight = \"900\";\n          break;\n\n        case \"medium\":\n          fWeight = \"500\";\n          break;\n\n        case \"regular\":\n        case \"normal\":\n          fWeight = \"400\";\n          break;\n\n        case \"light\":\n        case \"thin\":\n          fWeight = \"200\";\n          break;\n\n        default:\n          break;\n      }\n    }\n\n    return {\n      style: fStyle,\n      weight: fontData.fWeight || fWeight\n    };\n  }\n  /* global createNS, createTag, getFontProperties */\n\n  /* exported FontManager */\n\n\n  var FontManager = function () {\n    var maxWaitingTime = 5000;\n    var emptyChar = {\n      w: 0,\n      size: 0,\n      shapes: []\n    };\n    var combinedCharacters = []; // Hindi characters\n\n    combinedCharacters = combinedCharacters.concat([2304, 2305, 2306, 2307, 2362, 2363, 2364, 2364, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2387, 2388, 2389, 2390, 2391, 2402, 2403]);\n\n    function trimFontOptions(font) {\n      var familyArray = font.split(\",\");\n      var i;\n      var len = familyArray.length;\n      var enabledFamilies = [];\n\n      for (i = 0; i < len; i += 1) {\n        if (familyArray[i] !== \"sans-serif\" && familyArray[i] !== \"monospace\") {\n          enabledFamilies.push(familyArray[i]);\n        }\n      }\n\n      return enabledFamilies.join(\",\");\n    }\n\n    function setUpNode(font, family) {\n      var parentNode = createTag(\"span\"); // Node is invisible to screen readers.\n\n      parentNode.setAttribute(\"aria-hidden\", true);\n      parentNode.style.fontFamily = family;\n      var node = createTag(\"span\"); // Characters that vary significantly among different fonts\n\n      node.innerText = \"giItT1WQy@!-/#\"; // Visible - so we can measure it - but not on the screen\n\n      parentNode.style.position = \"absolute\";\n      parentNode.style.left = \"-10000px\";\n      parentNode.style.top = \"-10000px\"; // Large font size makes even subtle changes obvious\n\n      parentNode.style.fontSize = \"300px\"; // Reset any font properties\n\n      parentNode.style.fontVariant = \"normal\";\n      parentNode.style.fontStyle = \"normal\";\n      parentNode.style.fontWeight = \"normal\";\n      parentNode.style.letterSpacing = \"0\";\n      parentNode.appendChild(node);\n      document.body.appendChild(parentNode); // Remember width with no applied web font\n\n      var width = node.offsetWidth;\n      node.style.fontFamily = trimFontOptions(font) + \", \" + family;\n      return {\n        node: node,\n        w: width,\n        parent: parentNode\n      };\n    }\n\n    function checkLoadedFonts() {\n      var i;\n      var len = (this || _global).fonts.length;\n      var node;\n      var w;\n      var loadedCount = len;\n\n      for (i = 0; i < len; i += 1) {\n        if ((this || _global).fonts[i].loaded) {\n          loadedCount -= 1;\n        } else if ((this || _global).fonts[i].fOrigin === \"n\" || (this || _global).fonts[i].origin === 0) {\n          (this || _global).fonts[i].loaded = true;\n        } else {\n          node = (this || _global).fonts[i].monoCase.node;\n          w = (this || _global).fonts[i].monoCase.w;\n\n          if (node.offsetWidth !== w) {\n            loadedCount -= 1;\n            (this || _global).fonts[i].loaded = true;\n          } else {\n            node = (this || _global).fonts[i].sansCase.node;\n            w = (this || _global).fonts[i].sansCase.w;\n\n            if (node.offsetWidth !== w) {\n              loadedCount -= 1;\n              (this || _global).fonts[i].loaded = true;\n            }\n          }\n\n          if ((this || _global).fonts[i].loaded) {\n            (this || _global).fonts[i].sansCase.parent.parentNode.removeChild((this || _global).fonts[i].sansCase.parent);\n\n            (this || _global).fonts[i].monoCase.parent.parentNode.removeChild((this || _global).fonts[i].monoCase.parent);\n          }\n        }\n      }\n\n      if (loadedCount !== 0 && Date.now() - (this || _global).initTime < maxWaitingTime) {\n        setTimeout((this || _global).checkLoadedFontsBinded, 20);\n      } else {\n        setTimeout((this || _global).setIsLoadedBinded, 10);\n      }\n    }\n\n    function createHelper(def, fontData) {\n      var tHelper = createNS(\"text\");\n      tHelper.style.fontSize = \"100px\"; // tHelper.style.fontFamily = fontData.fFamily;\n\n      var fontProps = getFontProperties(fontData);\n      tHelper.setAttribute(\"font-family\", fontData.fFamily);\n      tHelper.setAttribute(\"font-style\", fontProps.style);\n      tHelper.setAttribute(\"font-weight\", fontProps.weight);\n      tHelper.textContent = \"1\";\n\n      if (fontData.fClass) {\n        tHelper.style.fontFamily = \"inherit\";\n        tHelper.setAttribute(\"class\", fontData.fClass);\n      } else {\n        tHelper.style.fontFamily = fontData.fFamily;\n      }\n\n      def.appendChild(tHelper);\n      var tCanvasHelper = createTag(\"canvas\").getContext(\"2d\");\n      tCanvasHelper.font = fontData.fWeight + \" \" + fontData.fStyle + \" 100px \" + fontData.fFamily; // tCanvasHelper.font = ' 100px '+ fontData.fFamily;\n\n      return tHelper;\n    }\n\n    function addFonts(fontData, defs) {\n      if (!fontData) {\n        (this || _global).isLoaded = true;\n        return;\n      }\n\n      if ((this || _global).chars) {\n        (this || _global).isLoaded = true;\n        (this || _global).fonts = fontData.list;\n        return;\n      }\n\n      var fontArr = fontData.list;\n      var i;\n      var len = fontArr.length;\n      var _pendingFonts = len;\n\n      for (i = 0; i < len; i += 1) {\n        var shouldLoadFont = true;\n        var loadedSelector;\n        var j;\n        fontArr[i].loaded = false;\n        fontArr[i].monoCase = setUpNode(fontArr[i].fFamily, \"monospace\");\n        fontArr[i].sansCase = setUpNode(fontArr[i].fFamily, \"sans-serif\");\n\n        if (!fontArr[i].fPath) {\n          fontArr[i].loaded = true;\n          _pendingFonts -= 1;\n        } else if (fontArr[i].fOrigin === \"p\" || fontArr[i].origin === 3) {\n          loadedSelector = document.querySelectorAll(\"style[f-forigin=\\\"p\\\"][f-family=\\\"\" + fontArr[i].fFamily + \"\\\"], style[f-origin=\\\"3\\\"][f-family=\\\"\" + fontArr[i].fFamily + \"\\\"]\");\n\n          if (loadedSelector.length > 0) {\n            shouldLoadFont = false;\n          }\n\n          if (shouldLoadFont) {\n            var s = createTag(\"style\");\n            s.setAttribute(\"f-forigin\", fontArr[i].fOrigin);\n            s.setAttribute(\"f-origin\", fontArr[i].origin);\n            s.setAttribute(\"f-family\", fontArr[i].fFamily);\n            s.type = \"text/css\";\n            s.innerText = \"@font-face {font-family: \" + fontArr[i].fFamily + \"; font-style: normal; src: url('\" + fontArr[i].fPath + \"');}\";\n            defs.appendChild(s);\n          }\n        } else if (fontArr[i].fOrigin === \"g\" || fontArr[i].origin === 1) {\n          loadedSelector = document.querySelectorAll(\"link[f-forigin=\\\"g\\\"], link[f-origin=\\\"1\\\"]\");\n\n          for (j = 0; j < loadedSelector.length; j += 1) {\n            if (loadedSelector[j].href.indexOf(fontArr[i].fPath) !== -1) {\n              // Font is already loaded\n              shouldLoadFont = false;\n            }\n          }\n\n          if (shouldLoadFont) {\n            var l = createTag(\"link\");\n            l.setAttribute(\"f-forigin\", fontArr[i].fOrigin);\n            l.setAttribute(\"f-origin\", fontArr[i].origin);\n            l.type = \"text/css\";\n            l.rel = \"stylesheet\";\n            l.href = fontArr[i].fPath;\n            document.body.appendChild(l);\n          }\n        } else if (fontArr[i].fOrigin === \"t\" || fontArr[i].origin === 2) {\n          loadedSelector = document.querySelectorAll(\"script[f-forigin=\\\"t\\\"], script[f-origin=\\\"2\\\"]\");\n\n          for (j = 0; j < loadedSelector.length; j += 1) {\n            if (fontArr[i].fPath === loadedSelector[j].src) {\n              // Font is already loaded\n              shouldLoadFont = false;\n            }\n          }\n\n          if (shouldLoadFont) {\n            var sc = createTag(\"link\");\n            sc.setAttribute(\"f-forigin\", fontArr[i].fOrigin);\n            sc.setAttribute(\"f-origin\", fontArr[i].origin);\n            sc.setAttribute(\"rel\", \"stylesheet\");\n            sc.setAttribute(\"href\", fontArr[i].fPath);\n            defs.appendChild(sc);\n          }\n        }\n\n        fontArr[i].helper = createHelper(defs, fontArr[i]);\n        fontArr[i].cache = {};\n\n        (this || _global).fonts.push(fontArr[i]);\n      }\n\n      if (_pendingFonts === 0) {\n        (this || _global).isLoaded = true;\n      } else {\n        // On some cases even if the font is loaded, it won't load correctly when measuring text on canvas.\n        // Adding this timeout seems to fix it\n        setTimeout((this || _global).checkLoadedFonts.bind(this || _global), 100);\n      }\n    }\n\n    function addChars(chars) {\n      if (!chars) {\n        return;\n      }\n\n      if (!(this || _global).chars) {\n        (this || _global).chars = [];\n      }\n\n      var i;\n      var len = chars.length;\n      var j;\n      var jLen = (this || _global).chars.length;\n      var found;\n\n      for (i = 0; i < len; i += 1) {\n        j = 0;\n        found = false;\n\n        while (j < jLen) {\n          if ((this || _global).chars[j].style === chars[i].style && (this || _global).chars[j].fFamily === chars[i].fFamily && (this || _global).chars[j].ch === chars[i].ch) {\n            found = true;\n          }\n\n          j += 1;\n        }\n\n        if (!found) {\n          (this || _global).chars.push(chars[i]);\n\n          jLen += 1;\n        }\n      }\n    }\n\n    function getCharData(char, style, font) {\n      var i = 0;\n      var len = (this || _global).chars.length;\n\n      while (i < len) {\n        if ((this || _global).chars[i].ch === char && (this || _global).chars[i].style === style && (this || _global).chars[i].fFamily === font) {\n          return (this || _global).chars[i];\n        }\n\n        i += 1;\n      }\n\n      if ((typeof char === \"string\" && char.charCodeAt(0) !== 13 || !char) && console && console.warn // eslint-disable-line no-console\n      && !(this || _global)._warned) {\n        (this || _global)._warned = true;\n        console.warn(\"Missing character from exported characters list: \", char, style, font); // eslint-disable-line no-console\n      }\n\n      return emptyChar;\n    }\n\n    function measureText(char, fontName, size) {\n      var fontData = this.getFontByName(fontName);\n      var index = char.charCodeAt(0);\n\n      if (!fontData.cache[index + 1]) {\n        var tHelper = fontData.helper; // Canvas version\n        // fontData.cache[index] = tHelper.measureText(char).width / 100;\n        // SVG version\n        // console.log(tHelper.getBBox().width)\n\n        if (char === \" \") {\n          tHelper.textContent = \"|\" + char + \"|\";\n          var doubleSize = tHelper.getComputedTextLength();\n          tHelper.textContent = \"||\";\n          var singleSize = tHelper.getComputedTextLength();\n          fontData.cache[index + 1] = (doubleSize - singleSize) / 100;\n        } else {\n          tHelper.textContent = char;\n          fontData.cache[index + 1] = tHelper.getComputedTextLength() / 100;\n        }\n      }\n\n      return fontData.cache[index + 1] * size;\n    }\n\n    function getFontByName(name) {\n      var i = 0;\n      var len = (this || _global).fonts.length;\n\n      while (i < len) {\n        if ((this || _global).fonts[i].fName === name) {\n          return (this || _global).fonts[i];\n        }\n\n        i += 1;\n      }\n\n      return (this || _global).fonts[0];\n    }\n\n    function getCombinedCharacterCodes() {\n      return combinedCharacters;\n    }\n\n    function setIsLoaded() {\n      (this || _global).isLoaded = true;\n    }\n\n    var Font = function () {\n      (this || _global).fonts = [];\n      (this || _global).chars = null;\n      (this || _global).typekitLoaded = 0;\n      (this || _global).isLoaded = false;\n      (this || _global)._warned = false;\n      (this || _global).initTime = Date.now();\n      (this || _global).setIsLoadedBinded = (this || _global).setIsLoaded.bind(this || _global);\n      (this || _global).checkLoadedFontsBinded = (this || _global).checkLoadedFonts.bind(this || _global);\n    }; // TODO: for now I'm adding these methods to the Class and not the prototype. Think of a better way to implement it.\n\n\n    Font.getCombinedCharacterCodes = getCombinedCharacterCodes;\n    var fontPrototype = {\n      addChars: addChars,\n      addFonts: addFonts,\n      getCharData: getCharData,\n      getFontByName: getFontByName,\n      measureText: measureText,\n      checkLoadedFonts: checkLoadedFonts,\n      setIsLoaded: setIsLoaded\n    };\n    Font.prototype = fontPrototype;\n    return Font;\n  }();\n  /* global initialDefaultFrame, BezierFactory, degToRads, bez, createTypedArray */\n\n  /* exported PropertyFactory */\n\n\n  var PropertyFactory = function () {\n    var initFrame = initialDefaultFrame;\n    var mathAbs = Math.abs;\n\n    function interpolateValue(frameNum, caching) {\n      var offsetTime = (this || _global).offsetTime;\n      var newValue;\n\n      if ((this || _global).propType === \"multidimensional\") {\n        newValue = createTypedArray(\"float32\", (this || _global).pv.length);\n      }\n\n      var iterationIndex = caching.lastIndex;\n      var i = iterationIndex;\n      var len = (this || _global).keyframes.length - 1;\n      var flag = true;\n      var keyData;\n      var nextKeyData;\n\n      while (flag) {\n        keyData = (this || _global).keyframes[i];\n        nextKeyData = (this || _global).keyframes[i + 1];\n\n        if (i === len - 1 && frameNum >= nextKeyData.t - offsetTime) {\n          if (keyData.h) {\n            keyData = nextKeyData;\n          }\n\n          iterationIndex = 0;\n          break;\n        }\n\n        if (nextKeyData.t - offsetTime > frameNum) {\n          iterationIndex = i;\n          break;\n        }\n\n        if (i < len - 1) {\n          i += 1;\n        } else {\n          iterationIndex = 0;\n          flag = false;\n        }\n      }\n\n      var k;\n      var kLen;\n      var perc;\n      var jLen;\n      var j;\n      var fnc;\n      var nextKeyTime = nextKeyData.t - offsetTime;\n      var keyTime = keyData.t - offsetTime;\n      var endValue;\n\n      if (keyData.to) {\n        if (!keyData.bezierData) {\n          keyData.bezierData = bez.buildBezierData(keyData.s, nextKeyData.s || keyData.e, keyData.to, keyData.ti);\n        }\n\n        var bezierData = keyData.bezierData;\n\n        if (frameNum >= nextKeyTime || frameNum < keyTime) {\n          var ind = frameNum >= nextKeyTime ? bezierData.points.length - 1 : 0;\n          kLen = bezierData.points[ind].point.length;\n\n          for (k = 0; k < kLen; k += 1) {\n            newValue[k] = bezierData.points[ind].point[k];\n          } // caching._lastKeyframeIndex = -1;\n\n        } else {\n          if (keyData.__fnct) {\n            fnc = keyData.__fnct;\n          } else {\n            fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y, keyData.n).get;\n            keyData.__fnct = fnc;\n          }\n\n          perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n          var distanceInLine = bezierData.segmentLength * perc;\n          var segmentPerc;\n          var addedLength = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastAddedLength : 0;\n          j = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastPoint : 0;\n          flag = true;\n          jLen = bezierData.points.length;\n\n          while (flag) {\n            addedLength += bezierData.points[j].partialLength;\n\n            if (distanceInLine === 0 || perc === 0 || j === bezierData.points.length - 1) {\n              kLen = bezierData.points[j].point.length;\n\n              for (k = 0; k < kLen; k += 1) {\n                newValue[k] = bezierData.points[j].point[k];\n              }\n\n              break;\n            } else if (distanceInLine >= addedLength && distanceInLine < addedLength + bezierData.points[j + 1].partialLength) {\n              segmentPerc = (distanceInLine - addedLength) / bezierData.points[j + 1].partialLength;\n              kLen = bezierData.points[j].point.length;\n\n              for (k = 0; k < kLen; k += 1) {\n                newValue[k] = bezierData.points[j].point[k] + (bezierData.points[j + 1].point[k] - bezierData.points[j].point[k]) * segmentPerc;\n              }\n\n              break;\n            }\n\n            if (j < jLen - 1) {\n              j += 1;\n            } else {\n              flag = false;\n            }\n          }\n\n          caching._lastPoint = j;\n          caching._lastAddedLength = addedLength - bezierData.points[j].partialLength;\n          caching._lastKeyframeIndex = i;\n        }\n      } else {\n        var outX;\n        var outY;\n        var inX;\n        var inY;\n        var keyValue;\n        len = keyData.s.length;\n        endValue = nextKeyData.s || keyData.e;\n\n        if ((this || _global).sh && keyData.h !== 1) {\n          if (frameNum >= nextKeyTime) {\n            newValue[0] = endValue[0];\n            newValue[1] = endValue[1];\n            newValue[2] = endValue[2];\n          } else if (frameNum <= keyTime) {\n            newValue[0] = keyData.s[0];\n            newValue[1] = keyData.s[1];\n            newValue[2] = keyData.s[2];\n          } else {\n            var quatStart = createQuaternion(keyData.s);\n            var quatEnd = createQuaternion(endValue);\n            var time = (frameNum - keyTime) / (nextKeyTime - keyTime);\n            quaternionToEuler(newValue, slerp(quatStart, quatEnd, time));\n          }\n        } else {\n          for (i = 0; i < len; i += 1) {\n            if (keyData.h !== 1) {\n              if (frameNum >= nextKeyTime) {\n                perc = 1;\n              } else if (frameNum < keyTime) {\n                perc = 0;\n              } else {\n                if (keyData.o.x.constructor === Array) {\n                  if (!keyData.__fnct) {\n                    keyData.__fnct = [];\n                  }\n\n                  if (!keyData.__fnct[i]) {\n                    outX = typeof keyData.o.x[i] === \"undefined\" ? keyData.o.x[0] : keyData.o.x[i];\n                    outY = typeof keyData.o.y[i] === \"undefined\" ? keyData.o.y[0] : keyData.o.y[i];\n                    inX = typeof keyData.i.x[i] === \"undefined\" ? keyData.i.x[0] : keyData.i.x[i];\n                    inY = typeof keyData.i.y[i] === \"undefined\" ? keyData.i.y[0] : keyData.i.y[i];\n                    fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n                    keyData.__fnct[i] = fnc;\n                  } else {\n                    fnc = keyData.__fnct[i];\n                  }\n                } else if (!keyData.__fnct) {\n                  outX = keyData.o.x;\n                  outY = keyData.o.y;\n                  inX = keyData.i.x;\n                  inY = keyData.i.y;\n                  fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n                  keyData.__fnct = fnc;\n                } else {\n                  fnc = keyData.__fnct;\n                }\n\n                perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n              }\n            }\n\n            endValue = nextKeyData.s || keyData.e;\n            keyValue = keyData.h === 1 ? keyData.s[i] : keyData.s[i] + (endValue[i] - keyData.s[i]) * perc;\n\n            if ((this || _global).propType === \"multidimensional\") {\n              newValue[i] = keyValue;\n            } else {\n              newValue = keyValue;\n            }\n          }\n        }\n      }\n\n      caching.lastIndex = iterationIndex;\n      return newValue;\n    } // based on @Toji's https://github.com/toji/gl-matrix/\n\n\n    function slerp(a, b, t) {\n      var out = [];\n      var ax = a[0];\n      var ay = a[1];\n      var az = a[2];\n      var aw = a[3];\n      var bx = b[0];\n      var by = b[1];\n      var bz = b[2];\n      var bw = b[3];\n      var omega;\n      var cosom;\n      var sinom;\n      var scale0;\n      var scale1;\n      cosom = ax * bx + ay * by + az * bz + aw * bw;\n\n      if (cosom < 0) {\n        cosom = -cosom;\n        bx = -bx;\n        by = -by;\n        bz = -bz;\n        bw = -bw;\n      }\n\n      if (1 - cosom > 0.000001) {\n        omega = Math.acos(cosom);\n        sinom = Math.sin(omega);\n        scale0 = Math.sin((1 - t) * omega) / sinom;\n        scale1 = Math.sin(t * omega) / sinom;\n      } else {\n        scale0 = 1 - t;\n        scale1 = t;\n      }\n\n      out[0] = scale0 * ax + scale1 * bx;\n      out[1] = scale0 * ay + scale1 * by;\n      out[2] = scale0 * az + scale1 * bz;\n      out[3] = scale0 * aw + scale1 * bw;\n      return out;\n    }\n\n    function quaternionToEuler(out, quat) {\n      var qx = quat[0];\n      var qy = quat[1];\n      var qz = quat[2];\n      var qw = quat[3];\n      var heading = Math.atan2(2 * qy * qw - 2 * qx * qz, 1 - 2 * qy * qy - 2 * qz * qz);\n      var attitude = Math.asin(2 * qx * qy + 2 * qz * qw);\n      var bank = Math.atan2(2 * qx * qw - 2 * qy * qz, 1 - 2 * qx * qx - 2 * qz * qz);\n      out[0] = heading / degToRads;\n      out[1] = attitude / degToRads;\n      out[2] = bank / degToRads;\n    }\n\n    function createQuaternion(values) {\n      var heading = values[0] * degToRads;\n      var attitude = values[1] * degToRads;\n      var bank = values[2] * degToRads;\n      var c1 = Math.cos(heading / 2);\n      var c2 = Math.cos(attitude / 2);\n      var c3 = Math.cos(bank / 2);\n      var s1 = Math.sin(heading / 2);\n      var s2 = Math.sin(attitude / 2);\n      var s3 = Math.sin(bank / 2);\n      var w = c1 * c2 * c3 - s1 * s2 * s3;\n      var x = s1 * s2 * c3 + c1 * c2 * s3;\n      var y = s1 * c2 * c3 + c1 * s2 * s3;\n      var z = c1 * s2 * c3 - s1 * c2 * s3;\n      return [x, y, z, w];\n    }\n\n    function getValueAtCurrentTime() {\n      var frameNum = (this || _global).comp.renderedFrame - (this || _global).offsetTime;\n      var initTime = (this || _global).keyframes[0].t - (this || _global).offsetTime;\n      var endTime = (this || _global).keyframes[(this || _global).keyframes.length - 1].t - (this || _global).offsetTime;\n\n      if (!(frameNum === (this || _global)._caching.lastFrame || (this || _global)._caching.lastFrame !== initFrame && ((this || _global)._caching.lastFrame >= endTime && frameNum >= endTime || (this || _global)._caching.lastFrame < initTime && frameNum < initTime))) {\n        if ((this || _global)._caching.lastFrame >= frameNum) {\n          (this || _global)._caching._lastKeyframeIndex = -1;\n          (this || _global)._caching.lastIndex = 0;\n        }\n\n        var renderResult = this.interpolateValue(frameNum, (this || _global)._caching);\n        (this || _global).pv = renderResult;\n      }\n\n      (this || _global)._caching.lastFrame = frameNum;\n      return (this || _global).pv;\n    }\n\n    function setVValue(val) {\n      var multipliedValue;\n\n      if ((this || _global).propType === \"unidimensional\") {\n        multipliedValue = val * (this || _global).mult;\n\n        if (mathAbs((this || _global).v - multipliedValue) > 0.00001) {\n          (this || _global).v = multipliedValue;\n          (this || _global)._mdf = true;\n        }\n      } else {\n        var i = 0;\n        var len = (this || _global).v.length;\n\n        while (i < len) {\n          multipliedValue = val[i] * (this || _global).mult;\n\n          if (mathAbs((this || _global).v[i] - multipliedValue) > 0.00001) {\n            (this || _global).v[i] = multipliedValue;\n            (this || _global)._mdf = true;\n          }\n\n          i += 1;\n        }\n      }\n    }\n\n    function processEffectsSequence() {\n      if ((this || _global).elem.globalData.frameId === (this || _global).frameId || !(this || _global).effectsSequence.length) {\n        return;\n      }\n\n      if ((this || _global).lock) {\n        this.setVValue((this || _global).pv);\n        return;\n      }\n\n      (this || _global).lock = true;\n      (this || _global)._mdf = (this || _global)._isFirstFrame;\n      var i;\n      var len = (this || _global).effectsSequence.length;\n      var finalValue = (this || _global).kf ? (this || _global).pv : (this || _global).data.k;\n\n      for (i = 0; i < len; i += 1) {\n        finalValue = (this || _global).effectsSequence[i](finalValue);\n      }\n\n      this.setVValue(finalValue);\n      (this || _global)._isFirstFrame = false;\n      (this || _global).lock = false;\n      (this || _global).frameId = (this || _global).elem.globalData.frameId;\n    }\n\n    function addEffect(effectFunction) {\n      (this || _global).effectsSequence.push(effectFunction);\n\n      (this || _global).container.addDynamicProperty(this || _global);\n    }\n\n    function ValueProperty(elem, data, mult, container) {\n      (this || _global).propType = \"unidimensional\";\n      (this || _global).mult = mult || 1;\n      (this || _global).data = data;\n      (this || _global).v = mult ? data.k * mult : data.k;\n      (this || _global).pv = data.k;\n      (this || _global)._mdf = false;\n      (this || _global).elem = elem;\n      (this || _global).container = container;\n      (this || _global).comp = elem.comp;\n      (this || _global).k = false;\n      (this || _global).kf = false;\n      (this || _global).vel = 0;\n      (this || _global).effectsSequence = [];\n      (this || _global)._isFirstFrame = true;\n      (this || _global).getValue = processEffectsSequence;\n      (this || _global).setVValue = setVValue;\n      (this || _global).addEffect = addEffect;\n    }\n\n    function MultiDimensionalProperty(elem, data, mult, container) {\n      (this || _global).propType = \"multidimensional\";\n      (this || _global).mult = mult || 1;\n      (this || _global).data = data;\n      (this || _global)._mdf = false;\n      (this || _global).elem = elem;\n      (this || _global).container = container;\n      (this || _global).comp = elem.comp;\n      (this || _global).k = false;\n      (this || _global).kf = false;\n      (this || _global).frameId = -1;\n      var i;\n      var len = data.k.length;\n      (this || _global).v = createTypedArray(\"float32\", len);\n      (this || _global).pv = createTypedArray(\"float32\", len);\n      (this || _global).vel = createTypedArray(\"float32\", len);\n\n      for (i = 0; i < len; i += 1) {\n        (this || _global).v[i] = data.k[i] * (this || _global).mult;\n        (this || _global).pv[i] = data.k[i];\n      }\n\n      (this || _global)._isFirstFrame = true;\n      (this || _global).effectsSequence = [];\n      (this || _global).getValue = processEffectsSequence;\n      (this || _global).setVValue = setVValue;\n      (this || _global).addEffect = addEffect;\n    }\n\n    function KeyframedValueProperty(elem, data, mult, container) {\n      (this || _global).propType = \"unidimensional\";\n      (this || _global).keyframes = data.k;\n      (this || _global).offsetTime = elem.data.st;\n      (this || _global).frameId = -1;\n      (this || _global)._caching = {\n        lastFrame: initFrame,\n        lastIndex: 0,\n        value: 0,\n        _lastKeyframeIndex: -1\n      };\n      (this || _global).k = true;\n      (this || _global).kf = true;\n      (this || _global).data = data;\n      (this || _global).mult = mult || 1;\n      (this || _global).elem = elem;\n      (this || _global).container = container;\n      (this || _global).comp = elem.comp;\n      (this || _global).v = initFrame;\n      (this || _global).pv = initFrame;\n      (this || _global)._isFirstFrame = true;\n      (this || _global).getValue = processEffectsSequence;\n      (this || _global).setVValue = setVValue;\n      (this || _global).interpolateValue = interpolateValue;\n      (this || _global).effectsSequence = [getValueAtCurrentTime.bind(this || _global)];\n      (this || _global).addEffect = addEffect;\n    }\n\n    function KeyframedMultidimensionalProperty(elem, data, mult, container) {\n      (this || _global).propType = \"multidimensional\";\n      var i;\n      var len = data.k.length;\n      var s;\n      var e;\n      var to;\n      var ti;\n\n      for (i = 0; i < len - 1; i += 1) {\n        if (data.k[i].to && data.k[i].s && data.k[i + 1] && data.k[i + 1].s) {\n          s = data.k[i].s;\n          e = data.k[i + 1].s;\n          to = data.k[i].to;\n          ti = data.k[i].ti;\n\n          if (s.length === 2 && !(s[0] === e[0] && s[1] === e[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], s[0] + to[0], s[1] + to[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], e[0] + ti[0], e[1] + ti[1]) || s.length === 3 && !(s[0] === e[0] && s[1] === e[1] && s[2] === e[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], s[0] + to[0], s[1] + to[1], s[2] + to[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], e[0] + ti[0], e[1] + ti[1], e[2] + ti[2])) {\n            data.k[i].to = null;\n            data.k[i].ti = null;\n          }\n\n          if (s[0] === e[0] && s[1] === e[1] && to[0] === 0 && to[1] === 0 && ti[0] === 0 && ti[1] === 0) {\n            if (s.length === 2 || s[2] === e[2] && to[2] === 0 && ti[2] === 0) {\n              data.k[i].to = null;\n              data.k[i].ti = null;\n            }\n          }\n        }\n      }\n\n      (this || _global).effectsSequence = [getValueAtCurrentTime.bind(this || _global)];\n      (this || _global).data = data;\n      (this || _global).keyframes = data.k;\n      (this || _global).offsetTime = elem.data.st;\n      (this || _global).k = true;\n      (this || _global).kf = true;\n      (this || _global)._isFirstFrame = true;\n      (this || _global).mult = mult || 1;\n      (this || _global).elem = elem;\n      (this || _global).container = container;\n      (this || _global).comp = elem.comp;\n      (this || _global).getValue = processEffectsSequence;\n      (this || _global).setVValue = setVValue;\n      (this || _global).interpolateValue = interpolateValue;\n      (this || _global).frameId = -1;\n      var arrLen = data.k[0].s.length;\n      (this || _global).v = createTypedArray(\"float32\", arrLen);\n      (this || _global).pv = createTypedArray(\"float32\", arrLen);\n\n      for (i = 0; i < arrLen; i += 1) {\n        (this || _global).v[i] = initFrame;\n        (this || _global).pv[i] = initFrame;\n      }\n\n      (this || _global)._caching = {\n        lastFrame: initFrame,\n        lastIndex: 0,\n        value: createTypedArray(\"float32\", arrLen)\n      };\n      (this || _global).addEffect = addEffect;\n    }\n\n    function getProp(elem, data, type, mult, container) {\n      var p;\n\n      if (!data.k.length) {\n        p = new ValueProperty(elem, data, mult, container);\n      } else if (typeof data.k[0] === \"number\") {\n        p = new MultiDimensionalProperty(elem, data, mult, container);\n      } else {\n        switch (type) {\n          case 0:\n            p = new KeyframedValueProperty(elem, data, mult, container);\n            break;\n\n          case 1:\n            p = new KeyframedMultidimensionalProperty(elem, data, mult, container);\n            break;\n\n          default:\n            break;\n        }\n      }\n\n      if (p.effectsSequence.length) {\n        container.addDynamicProperty(p);\n      }\n\n      return p;\n    }\n\n    var ob = {\n      getProp: getProp\n    };\n    return ob;\n  }();\n  /* global Matrix, degToRads, PropertyFactory, extendPrototype, DynamicPropertyContainer */\n\n  /* exported TransformPropertyFactory */\n\n\n  var TransformPropertyFactory = function () {\n    var defaultVector = [0, 0];\n\n    function applyToMatrix(mat) {\n      var _mdf = (this || _global)._mdf;\n      this.iterateDynamicProperties();\n      (this || _global)._mdf = (this || _global)._mdf || _mdf;\n\n      if ((this || _global).a) {\n        mat.translate(-(this || _global).a.v[0], -(this || _global).a.v[1], (this || _global).a.v[2]);\n      }\n\n      if ((this || _global).s) {\n        mat.scale((this || _global).s.v[0], (this || _global).s.v[1], (this || _global).s.v[2]);\n      }\n\n      if ((this || _global).sk) {\n        mat.skewFromAxis(-(this || _global).sk.v, (this || _global).sa.v);\n      }\n\n      if ((this || _global).r) {\n        mat.rotate(-(this || _global).r.v);\n      } else {\n        mat.rotateZ(-(this || _global).rz.v).rotateY((this || _global).ry.v).rotateX((this || _global).rx.v).rotateZ(-(this || _global).or.v[2]).rotateY((this || _global).or.v[1]).rotateX((this || _global).or.v[0]);\n      }\n\n      if ((this || _global).data.p.s) {\n        if ((this || _global).data.p.z) {\n          mat.translate((this || _global).px.v, (this || _global).py.v, -(this || _global).pz.v);\n        } else {\n          mat.translate((this || _global).px.v, (this || _global).py.v, 0);\n        }\n      } else {\n        mat.translate((this || _global).p.v[0], (this || _global).p.v[1], -(this || _global).p.v[2]);\n      }\n    }\n\n    function processKeys(forceRender) {\n      if ((this || _global).elem.globalData.frameId === (this || _global).frameId) {\n        return;\n      }\n\n      if ((this || _global)._isDirty) {\n        this.precalculateMatrix();\n        (this || _global)._isDirty = false;\n      }\n\n      this.iterateDynamicProperties();\n\n      if ((this || _global)._mdf || forceRender) {\n        var frameRate;\n\n        (this || _global).v.cloneFromProps((this || _global).pre.props);\n\n        if ((this || _global).appliedTransformations < 1) {\n          (this || _global).v.translate(-(this || _global).a.v[0], -(this || _global).a.v[1], (this || _global).a.v[2]);\n        }\n\n        if ((this || _global).appliedTransformations < 2) {\n          (this || _global).v.scale((this || _global).s.v[0], (this || _global).s.v[1], (this || _global).s.v[2]);\n        }\n\n        if ((this || _global).sk && (this || _global).appliedTransformations < 3) {\n          (this || _global).v.skewFromAxis(-(this || _global).sk.v, (this || _global).sa.v);\n        }\n\n        if ((this || _global).r && (this || _global).appliedTransformations < 4) {\n          (this || _global).v.rotate(-(this || _global).r.v);\n        } else if (!(this || _global).r && (this || _global).appliedTransformations < 4) {\n          (this || _global).v.rotateZ(-(this || _global).rz.v).rotateY((this || _global).ry.v).rotateX((this || _global).rx.v).rotateZ(-(this || _global).or.v[2]).rotateY((this || _global).or.v[1]).rotateX((this || _global).or.v[0]);\n        }\n\n        if ((this || _global).autoOriented) {\n          var v1;\n          var v2;\n          frameRate = (this || _global).elem.globalData.frameRate;\n\n          if ((this || _global).p && (this || _global).p.keyframes && (this || _global).p.getValueAtTime) {\n            if ((this || _global).p._caching.lastFrame + (this || _global).p.offsetTime <= (this || _global).p.keyframes[0].t) {\n              v1 = (this || _global).p.getValueAtTime(((this || _global).p.keyframes[0].t + 0.01) / frameRate, 0);\n              v2 = (this || _global).p.getValueAtTime((this || _global).p.keyframes[0].t / frameRate, 0);\n            } else if ((this || _global).p._caching.lastFrame + (this || _global).p.offsetTime >= (this || _global).p.keyframes[(this || _global).p.keyframes.length - 1].t) {\n              v1 = (this || _global).p.getValueAtTime((this || _global).p.keyframes[(this || _global).p.keyframes.length - 1].t / frameRate, 0);\n              v2 = (this || _global).p.getValueAtTime(((this || _global).p.keyframes[(this || _global).p.keyframes.length - 1].t - 0.05) / frameRate, 0);\n            } else {\n              v1 = (this || _global).p.pv;\n              v2 = (this || _global).p.getValueAtTime(((this || _global).p._caching.lastFrame + (this || _global).p.offsetTime - 0.01) / frameRate, (this || _global).p.offsetTime);\n            }\n          } else if ((this || _global).px && (this || _global).px.keyframes && (this || _global).py.keyframes && (this || _global).px.getValueAtTime && (this || _global).py.getValueAtTime) {\n            v1 = [];\n            v2 = [];\n            var px = (this || _global).px;\n            var py = (this || _global).py;\n\n            if (px._caching.lastFrame + px.offsetTime <= px.keyframes[0].t) {\n              v1[0] = px.getValueAtTime((px.keyframes[0].t + 0.01) / frameRate, 0);\n              v1[1] = py.getValueAtTime((py.keyframes[0].t + 0.01) / frameRate, 0);\n              v2[0] = px.getValueAtTime(px.keyframes[0].t / frameRate, 0);\n              v2[1] = py.getValueAtTime(py.keyframes[0].t / frameRate, 0);\n            } else if (px._caching.lastFrame + px.offsetTime >= px.keyframes[px.keyframes.length - 1].t) {\n              v1[0] = px.getValueAtTime(px.keyframes[px.keyframes.length - 1].t / frameRate, 0);\n              v1[1] = py.getValueAtTime(py.keyframes[py.keyframes.length - 1].t / frameRate, 0);\n              v2[0] = px.getValueAtTime((px.keyframes[px.keyframes.length - 1].t - 0.01) / frameRate, 0);\n              v2[1] = py.getValueAtTime((py.keyframes[py.keyframes.length - 1].t - 0.01) / frameRate, 0);\n            } else {\n              v1 = [px.pv, py.pv];\n              v2[0] = px.getValueAtTime((px._caching.lastFrame + px.offsetTime - 0.01) / frameRate, px.offsetTime);\n              v2[1] = py.getValueAtTime((py._caching.lastFrame + py.offsetTime - 0.01) / frameRate, py.offsetTime);\n            }\n          } else {\n            v2 = defaultVector;\n            v1 = v2;\n          }\n\n          (this || _global).v.rotate(-Math.atan2(v1[1] - v2[1], v1[0] - v2[0]));\n        }\n\n        if ((this || _global).data.p && (this || _global).data.p.s) {\n          if ((this || _global).data.p.z) {\n            (this || _global).v.translate((this || _global).px.v, (this || _global).py.v, -(this || _global).pz.v);\n          } else {\n            (this || _global).v.translate((this || _global).px.v, (this || _global).py.v, 0);\n          }\n        } else {\n          (this || _global).v.translate((this || _global).p.v[0], (this || _global).p.v[1], -(this || _global).p.v[2]);\n        }\n      }\n\n      (this || _global).frameId = (this || _global).elem.globalData.frameId;\n    }\n\n    function precalculateMatrix() {\n      if (!(this || _global).a.k) {\n        (this || _global).pre.translate(-(this || _global).a.v[0], -(this || _global).a.v[1], (this || _global).a.v[2]);\n\n        (this || _global).appliedTransformations = 1;\n      } else {\n        return;\n      }\n\n      if (!(this || _global).s.effectsSequence.length) {\n        (this || _global).pre.scale((this || _global).s.v[0], (this || _global).s.v[1], (this || _global).s.v[2]);\n\n        (this || _global).appliedTransformations = 2;\n      } else {\n        return;\n      }\n\n      if ((this || _global).sk) {\n        if (!(this || _global).sk.effectsSequence.length && !(this || _global).sa.effectsSequence.length) {\n          (this || _global).pre.skewFromAxis(-(this || _global).sk.v, (this || _global).sa.v);\n\n          (this || _global).appliedTransformations = 3;\n        } else {\n          return;\n        }\n      }\n\n      if ((this || _global).r) {\n        if (!(this || _global).r.effectsSequence.length) {\n          (this || _global).pre.rotate(-(this || _global).r.v);\n\n          (this || _global).appliedTransformations = 4;\n        }\n      } else if (!(this || _global).rz.effectsSequence.length && !(this || _global).ry.effectsSequence.length && !(this || _global).rx.effectsSequence.length && !(this || _global).or.effectsSequence.length) {\n        (this || _global).pre.rotateZ(-(this || _global).rz.v).rotateY((this || _global).ry.v).rotateX((this || _global).rx.v).rotateZ(-(this || _global).or.v[2]).rotateY((this || _global).or.v[1]).rotateX((this || _global).or.v[0]);\n\n        (this || _global).appliedTransformations = 4;\n      }\n    }\n\n    function autoOrient() {//\n      // var prevP = this.getValueAtTime();\n    }\n\n    function addDynamicProperty(prop) {\n      this._addDynamicProperty(prop);\n\n      (this || _global).elem.addDynamicProperty(prop);\n\n      (this || _global)._isDirty = true;\n    }\n\n    function TransformProperty(elem, data, container) {\n      (this || _global).elem = elem;\n      (this || _global).frameId = -1;\n      (this || _global).propType = \"transform\";\n      (this || _global).data = data;\n      (this || _global).v = new Matrix(); // Precalculated matrix with non animated properties\n\n      (this || _global).pre = new Matrix();\n      (this || _global).appliedTransformations = 0;\n      this.initDynamicPropertyContainer(container || elem);\n\n      if (data.p && data.p.s) {\n        (this || _global).px = PropertyFactory.getProp(elem, data.p.x, 0, 0, this || _global);\n        (this || _global).py = PropertyFactory.getProp(elem, data.p.y, 0, 0, this || _global);\n\n        if (data.p.z) {\n          (this || _global).pz = PropertyFactory.getProp(elem, data.p.z, 0, 0, this || _global);\n        }\n      } else {\n        (this || _global).p = PropertyFactory.getProp(elem, data.p || {\n          k: [0, 0, 0]\n        }, 1, 0, this || _global);\n      }\n\n      if (data.rx) {\n        (this || _global).rx = PropertyFactory.getProp(elem, data.rx, 0, degToRads, this || _global);\n        (this || _global).ry = PropertyFactory.getProp(elem, data.ry, 0, degToRads, this || _global);\n        (this || _global).rz = PropertyFactory.getProp(elem, data.rz, 0, degToRads, this || _global);\n\n        if (data.or.k[0].ti) {\n          var i;\n          var len = data.or.k.length;\n\n          for (i = 0; i < len; i += 1) {\n            data.or.k[i].to = null;\n            data.or.k[i].ti = null;\n          }\n        }\n\n        (this || _global).or = PropertyFactory.getProp(elem, data.or, 1, degToRads, this || _global); // sh Indicates it needs to be capped between -180 and 180\n\n        (this || _global).or.sh = true;\n      } else {\n        (this || _global).r = PropertyFactory.getProp(elem, data.r || {\n          k: 0\n        }, 0, degToRads, this || _global);\n      }\n\n      if (data.sk) {\n        (this || _global).sk = PropertyFactory.getProp(elem, data.sk, 0, degToRads, this || _global);\n        (this || _global).sa = PropertyFactory.getProp(elem, data.sa, 0, degToRads, this || _global);\n      }\n\n      (this || _global).a = PropertyFactory.getProp(elem, data.a || {\n        k: [0, 0, 0]\n      }, 1, 0, this || _global);\n      (this || _global).s = PropertyFactory.getProp(elem, data.s || {\n        k: [100, 100, 100]\n      }, 1, 0.01, this || _global); // Opacity is not part of the transform properties, that's why it won't use this.dynamicProperties. That way transforms won't get updated if opacity changes.\n\n      if (data.o) {\n        (this || _global).o = PropertyFactory.getProp(elem, data.o, 0, 0.01, elem);\n      } else {\n        (this || _global).o = {\n          _mdf: false,\n          v: 1\n        };\n      }\n\n      (this || _global)._isDirty = true;\n\n      if (!(this || _global).dynamicProperties.length) {\n        this.getValue(true);\n      }\n    }\n\n    TransformProperty.prototype = {\n      applyToMatrix: applyToMatrix,\n      getValue: processKeys,\n      precalculateMatrix: precalculateMatrix,\n      autoOrient: autoOrient\n    };\n    extendPrototype([DynamicPropertyContainer], TransformProperty);\n    TransformProperty.prototype.addDynamicProperty = addDynamicProperty;\n    TransformProperty.prototype._addDynamicProperty = DynamicPropertyContainer.prototype.addDynamicProperty;\n\n    function getTransformProperty(elem, data, container) {\n      return new TransformProperty(elem, data, container);\n    }\n\n    return {\n      getTransformProperty: getTransformProperty\n    };\n  }();\n  /* global createSizedArray, createSizedArray, pointPool */\n\n\n  function ShapePath() {\n    (this || _global).c = false;\n    (this || _global)._length = 0;\n    (this || _global)._maxLength = 8;\n    (this || _global).v = createSizedArray((this || _global)._maxLength);\n    (this || _global).o = createSizedArray((this || _global)._maxLength);\n    (this || _global).i = createSizedArray((this || _global)._maxLength);\n  }\n\n  ShapePath.prototype.setPathData = function (closed, len) {\n    (this || _global).c = closed;\n    this.setLength(len);\n    var i = 0;\n\n    while (i < len) {\n      (this || _global).v[i] = pointPool.newElement();\n      (this || _global).o[i] = pointPool.newElement();\n      (this || _global).i[i] = pointPool.newElement();\n      i += 1;\n    }\n  };\n\n  ShapePath.prototype.setLength = function (len) {\n    while ((this || _global)._maxLength < len) {\n      this.doubleArrayLength();\n    }\n\n    (this || _global)._length = len;\n  };\n\n  ShapePath.prototype.doubleArrayLength = function () {\n    (this || _global).v = (this || _global).v.concat(createSizedArray((this || _global)._maxLength));\n    (this || _global).i = (this || _global).i.concat(createSizedArray((this || _global)._maxLength));\n    (this || _global).o = (this || _global).o.concat(createSizedArray((this || _global)._maxLength));\n    (this || _global)._maxLength *= 2;\n  };\n\n  ShapePath.prototype.setXYAt = function (x, y, type, pos, replace) {\n    var arr;\n    (this || _global)._length = Math.max((this || _global)._length, pos + 1);\n\n    if ((this || _global)._length >= (this || _global)._maxLength) {\n      this.doubleArrayLength();\n    }\n\n    switch (type) {\n      case \"v\":\n        arr = (this || _global).v;\n        break;\n\n      case \"i\":\n        arr = (this || _global).i;\n        break;\n\n      case \"o\":\n        arr = (this || _global).o;\n        break;\n\n      default:\n        arr = [];\n        break;\n    }\n\n    if (!arr[pos] || arr[pos] && !replace) {\n      arr[pos] = pointPool.newElement();\n    }\n\n    arr[pos][0] = x;\n    arr[pos][1] = y;\n  };\n\n  ShapePath.prototype.setTripleAt = function (vX, vY, oX, oY, iX, iY, pos, replace) {\n    this.setXYAt(vX, vY, \"v\", pos, replace);\n    this.setXYAt(oX, oY, \"o\", pos, replace);\n    this.setXYAt(iX, iY, \"i\", pos, replace);\n  };\n\n  ShapePath.prototype.reverse = function () {\n    var newPath = new ShapePath();\n    newPath.setPathData((this || _global).c, (this || _global)._length);\n    var vertices = (this || _global).v;\n    var outPoints = (this || _global).o;\n    var inPoints = (this || _global).i;\n    var init = 0;\n\n    if ((this || _global).c) {\n      newPath.setTripleAt(vertices[0][0], vertices[0][1], inPoints[0][0], inPoints[0][1], outPoints[0][0], outPoints[0][1], 0, false);\n      init = 1;\n    }\n\n    var cnt = (this || _global)._length - 1;\n    var len = (this || _global)._length;\n    var i;\n\n    for (i = init; i < len; i += 1) {\n      newPath.setTripleAt(vertices[cnt][0], vertices[cnt][1], inPoints[cnt][0], inPoints[cnt][1], outPoints[cnt][0], outPoints[cnt][1], i, false);\n      cnt -= 1;\n    }\n\n    return newPath;\n  };\n  /* global extendPrototype, roundCorner, BezierFactory, shapePool, degToRads,\r\n    shapeCollectionPool, PropertyFactory, bmMin, DynamicPropertyContainer */\n\n  /* exported ShapePropertyFactory */\n\n\n  var ShapePropertyFactory = function () {\n    var initFrame = -999999;\n\n    function interpolateShape(frameNum, previousValue, caching) {\n      var iterationIndex = caching.lastIndex;\n      var keyPropS;\n      var keyPropE;\n      var isHold;\n      var j;\n      var k;\n      var jLen;\n      var kLen;\n      var perc;\n      var vertexValue;\n      var kf = (this || _global).keyframes;\n\n      if (frameNum < kf[0].t - (this || _global).offsetTime) {\n        keyPropS = kf[0].s[0];\n        isHold = true;\n        iterationIndex = 0;\n      } else if (frameNum >= kf[kf.length - 1].t - (this || _global).offsetTime) {\n        keyPropS = kf[kf.length - 1].s ? kf[kf.length - 1].s[0] : kf[kf.length - 2].e[0];\n        /* if(kf[kf.length - 1].s){\r\n                  keyPropS = kf[kf.length - 1].s[0];\r\n              }else{\r\n                  keyPropS = kf[kf.length - 2].e[0];\r\n              } */\n\n        isHold = true;\n      } else {\n        var i = iterationIndex;\n        var len = kf.length - 1;\n        var flag = true;\n        var keyData;\n        var nextKeyData;\n\n        while (flag) {\n          keyData = kf[i];\n          nextKeyData = kf[i + 1];\n\n          if (nextKeyData.t - (this || _global).offsetTime > frameNum) {\n            break;\n          }\n\n          if (i < len - 1) {\n            i += 1;\n          } else {\n            flag = false;\n          }\n        }\n\n        isHold = keyData.h === 1;\n        iterationIndex = i;\n\n        if (!isHold) {\n          if (frameNum >= nextKeyData.t - (this || _global).offsetTime) {\n            perc = 1;\n          } else if (frameNum < keyData.t - (this || _global).offsetTime) {\n            perc = 0;\n          } else {\n            var fnc;\n\n            if (keyData.__fnct) {\n              fnc = keyData.__fnct;\n            } else {\n              fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y).get;\n              keyData.__fnct = fnc;\n            }\n\n            perc = fnc((frameNum - (keyData.t - (this || _global).offsetTime)) / (nextKeyData.t - (this || _global).offsetTime - (keyData.t - (this || _global).offsetTime)));\n          }\n\n          keyPropE = nextKeyData.s ? nextKeyData.s[0] : keyData.e[0];\n        }\n\n        keyPropS = keyData.s[0];\n      }\n\n      jLen = previousValue._length;\n      kLen = keyPropS.i[0].length;\n      caching.lastIndex = iterationIndex;\n\n      for (j = 0; j < jLen; j += 1) {\n        for (k = 0; k < kLen; k += 1) {\n          vertexValue = isHold ? keyPropS.i[j][k] : keyPropS.i[j][k] + (keyPropE.i[j][k] - keyPropS.i[j][k]) * perc;\n          previousValue.i[j][k] = vertexValue;\n          vertexValue = isHold ? keyPropS.o[j][k] : keyPropS.o[j][k] + (keyPropE.o[j][k] - keyPropS.o[j][k]) * perc;\n          previousValue.o[j][k] = vertexValue;\n          vertexValue = isHold ? keyPropS.v[j][k] : keyPropS.v[j][k] + (keyPropE.v[j][k] - keyPropS.v[j][k]) * perc;\n          previousValue.v[j][k] = vertexValue;\n        }\n      }\n    }\n\n    function interpolateShapeCurrentTime() {\n      var frameNum = (this || _global).comp.renderedFrame - (this || _global).offsetTime;\n      var initTime = (this || _global).keyframes[0].t - (this || _global).offsetTime;\n      var endTime = (this || _global).keyframes[(this || _global).keyframes.length - 1].t - (this || _global).offsetTime;\n      var lastFrame = (this || _global)._caching.lastFrame;\n\n      if (!(lastFrame !== initFrame && (lastFrame < initTime && frameNum < initTime || lastFrame > endTime && frameNum > endTime))) {\n        /// /\n        (this || _global)._caching.lastIndex = lastFrame < frameNum ? (this || _global)._caching.lastIndex : 0;\n        this.interpolateShape(frameNum, (this || _global).pv, (this || _global)._caching); /// /\n      }\n\n      (this || _global)._caching.lastFrame = frameNum;\n      return (this || _global).pv;\n    }\n\n    function resetShape() {\n      (this || _global).paths = (this || _global).localShapeCollection;\n    }\n\n    function shapesEqual(shape1, shape2) {\n      if (shape1._length !== shape2._length || shape1.c !== shape2.c) {\n        return false;\n      }\n\n      var i;\n      var len = shape1._length;\n\n      for (i = 0; i < len; i += 1) {\n        if (shape1.v[i][0] !== shape2.v[i][0] || shape1.v[i][1] !== shape2.v[i][1] || shape1.o[i][0] !== shape2.o[i][0] || shape1.o[i][1] !== shape2.o[i][1] || shape1.i[i][0] !== shape2.i[i][0] || shape1.i[i][1] !== shape2.i[i][1]) {\n          return false;\n        }\n      }\n\n      return true;\n    }\n\n    function setVValue(newPath) {\n      if (!shapesEqual((this || _global).v, newPath)) {\n        (this || _global).v = shapePool.clone(newPath);\n\n        (this || _global).localShapeCollection.releaseShapes();\n\n        (this || _global).localShapeCollection.addShape((this || _global).v);\n\n        (this || _global)._mdf = true;\n        (this || _global).paths = (this || _global).localShapeCollection;\n      }\n    }\n\n    function processEffectsSequence() {\n      if ((this || _global).elem.globalData.frameId === (this || _global).frameId) {\n        return;\n      }\n\n      if (!(this || _global).effectsSequence.length) {\n        (this || _global)._mdf = false;\n        return;\n      }\n\n      if ((this || _global).lock) {\n        this.setVValue((this || _global).pv);\n        return;\n      }\n\n      (this || _global).lock = true;\n      (this || _global)._mdf = false;\n      var finalValue;\n\n      if ((this || _global).kf) {\n        finalValue = (this || _global).pv;\n      } else if ((this || _global).data.ks) {\n        finalValue = (this || _global).data.ks.k;\n      } else {\n        finalValue = (this || _global).data.pt.k;\n      }\n\n      var i;\n      var len = (this || _global).effectsSequence.length;\n\n      for (i = 0; i < len; i += 1) {\n        finalValue = (this || _global).effectsSequence[i](finalValue);\n      }\n\n      this.setVValue(finalValue);\n      (this || _global).lock = false;\n      (this || _global).frameId = (this || _global).elem.globalData.frameId;\n    }\n\n    function ShapeProperty(elem, data, type) {\n      (this || _global).propType = \"shape\";\n      (this || _global).comp = elem.comp;\n      (this || _global).container = elem;\n      (this || _global).elem = elem;\n      (this || _global).data = data;\n      (this || _global).k = false;\n      (this || _global).kf = false;\n      (this || _global)._mdf = false;\n      var pathData = type === 3 ? data.pt.k : data.ks.k;\n      (this || _global).v = shapePool.clone(pathData);\n      (this || _global).pv = shapePool.clone((this || _global).v);\n      (this || _global).localShapeCollection = shapeCollectionPool.newShapeCollection();\n      (this || _global).paths = (this || _global).localShapeCollection;\n\n      (this || _global).paths.addShape((this || _global).v);\n\n      (this || _global).reset = resetShape;\n      (this || _global).effectsSequence = [];\n    }\n\n    function addEffect(effectFunction) {\n      (this || _global).effectsSequence.push(effectFunction);\n\n      (this || _global).container.addDynamicProperty(this || _global);\n    }\n\n    ShapeProperty.prototype.interpolateShape = interpolateShape;\n    ShapeProperty.prototype.getValue = processEffectsSequence;\n    ShapeProperty.prototype.setVValue = setVValue;\n    ShapeProperty.prototype.addEffect = addEffect;\n\n    function KeyframedShapeProperty(elem, data, type) {\n      (this || _global).propType = \"shape\";\n      (this || _global).comp = elem.comp;\n      (this || _global).elem = elem;\n      (this || _global).container = elem;\n      (this || _global).offsetTime = elem.data.st;\n      (this || _global).keyframes = type === 3 ? data.pt.k : data.ks.k;\n      (this || _global).k = true;\n      (this || _global).kf = true;\n      var len = (this || _global).keyframes[0].s[0].i.length;\n      (this || _global).v = shapePool.newElement();\n\n      (this || _global).v.setPathData((this || _global).keyframes[0].s[0].c, len);\n\n      (this || _global).pv = shapePool.clone((this || _global).v);\n      (this || _global).localShapeCollection = shapeCollectionPool.newShapeCollection();\n      (this || _global).paths = (this || _global).localShapeCollection;\n\n      (this || _global).paths.addShape((this || _global).v);\n\n      (this || _global).lastFrame = initFrame;\n      (this || _global).reset = resetShape;\n      (this || _global)._caching = {\n        lastFrame: initFrame,\n        lastIndex: 0\n      };\n      (this || _global).effectsSequence = [interpolateShapeCurrentTime.bind(this || _global)];\n    }\n\n    KeyframedShapeProperty.prototype.getValue = processEffectsSequence;\n    KeyframedShapeProperty.prototype.interpolateShape = interpolateShape;\n    KeyframedShapeProperty.prototype.setVValue = setVValue;\n    KeyframedShapeProperty.prototype.addEffect = addEffect;\n\n    var EllShapeProperty = function () {\n      var cPoint = roundCorner;\n\n      function EllShapePropertyFactory(elem, data) {\n        /* this.v = {\r\n                  v: createSizedArray(4),\r\n                  i: createSizedArray(4),\r\n                  o: createSizedArray(4),\r\n                  c: true\r\n              }; */\n        (this || _global).v = shapePool.newElement();\n\n        (this || _global).v.setPathData(true, 4);\n\n        (this || _global).localShapeCollection = shapeCollectionPool.newShapeCollection();\n        (this || _global).paths = (this || _global).localShapeCollection;\n\n        (this || _global).localShapeCollection.addShape((this || _global).v);\n\n        (this || _global).d = data.d;\n        (this || _global).elem = elem;\n        (this || _global).comp = elem.comp;\n        (this || _global).frameId = -1;\n        this.initDynamicPropertyContainer(elem);\n        (this || _global).p = PropertyFactory.getProp(elem, data.p, 1, 0, this || _global);\n        (this || _global).s = PropertyFactory.getProp(elem, data.s, 1, 0, this || _global);\n\n        if ((this || _global).dynamicProperties.length) {\n          (this || _global).k = true;\n        } else {\n          (this || _global).k = false;\n          this.convertEllToPath();\n        }\n      }\n\n      EllShapePropertyFactory.prototype = {\n        reset: resetShape,\n        getValue: function () {\n          if ((this || _global).elem.globalData.frameId === (this || _global).frameId) {\n            return;\n          }\n\n          (this || _global).frameId = (this || _global).elem.globalData.frameId;\n          this.iterateDynamicProperties();\n\n          if ((this || _global)._mdf) {\n            this.convertEllToPath();\n          }\n        },\n        convertEllToPath: function () {\n          var p0 = (this || _global).p.v[0];\n          var p1 = (this || _global).p.v[1];\n          var s0 = (this || _global).s.v[0] / 2;\n          var s1 = (this || _global).s.v[1] / 2;\n\n          var _cw = (this || _global).d !== 3;\n\n          var _v = (this || _global).v;\n          _v.v[0][0] = p0;\n          _v.v[0][1] = p1 - s1;\n          _v.v[1][0] = _cw ? p0 + s0 : p0 - s0;\n          _v.v[1][1] = p1;\n          _v.v[2][0] = p0;\n          _v.v[2][1] = p1 + s1;\n          _v.v[3][0] = _cw ? p0 - s0 : p0 + s0;\n          _v.v[3][1] = p1;\n          _v.i[0][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n          _v.i[0][1] = p1 - s1;\n          _v.i[1][0] = _cw ? p0 + s0 : p0 - s0;\n          _v.i[1][1] = p1 - s1 * cPoint;\n          _v.i[2][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n          _v.i[2][1] = p1 + s1;\n          _v.i[3][0] = _cw ? p0 - s0 : p0 + s0;\n          _v.i[3][1] = p1 + s1 * cPoint;\n          _v.o[0][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n          _v.o[0][1] = p1 - s1;\n          _v.o[1][0] = _cw ? p0 + s0 : p0 - s0;\n          _v.o[1][1] = p1 + s1 * cPoint;\n          _v.o[2][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n          _v.o[2][1] = p1 + s1;\n          _v.o[3][0] = _cw ? p0 - s0 : p0 + s0;\n          _v.o[3][1] = p1 - s1 * cPoint;\n        }\n      };\n      extendPrototype([DynamicPropertyContainer], EllShapePropertyFactory);\n      return EllShapePropertyFactory;\n    }();\n\n    var StarShapeProperty = function () {\n      function StarShapePropertyFactory(elem, data) {\n        (this || _global).v = shapePool.newElement();\n\n        (this || _global).v.setPathData(true, 0);\n\n        (this || _global).elem = elem;\n        (this || _global).comp = elem.comp;\n        (this || _global).data = data;\n        (this || _global).frameId = -1;\n        (this || _global).d = data.d;\n        this.initDynamicPropertyContainer(elem);\n\n        if (data.sy === 1) {\n          (this || _global).ir = PropertyFactory.getProp(elem, data.ir, 0, 0, this || _global);\n          (this || _global).is = PropertyFactory.getProp(elem, data.is, 0, 0.01, this || _global);\n          (this || _global).convertToPath = (this || _global).convertStarToPath;\n        } else {\n          (this || _global).convertToPath = (this || _global).convertPolygonToPath;\n        }\n\n        (this || _global).pt = PropertyFactory.getProp(elem, data.pt, 0, 0, this || _global);\n        (this || _global).p = PropertyFactory.getProp(elem, data.p, 1, 0, this || _global);\n        (this || _global).r = PropertyFactory.getProp(elem, data.r, 0, degToRads, this || _global);\n        (this || _global).or = PropertyFactory.getProp(elem, data.or, 0, 0, this || _global);\n        (this || _global).os = PropertyFactory.getProp(elem, data.os, 0, 0.01, this || _global);\n        (this || _global).localShapeCollection = shapeCollectionPool.newShapeCollection();\n\n        (this || _global).localShapeCollection.addShape((this || _global).v);\n\n        (this || _global).paths = (this || _global).localShapeCollection;\n\n        if ((this || _global).dynamicProperties.length) {\n          (this || _global).k = true;\n        } else {\n          (this || _global).k = false;\n          this.convertToPath();\n        }\n      }\n\n      StarShapePropertyFactory.prototype = {\n        reset: resetShape,\n        getValue: function () {\n          if ((this || _global).elem.globalData.frameId === (this || _global).frameId) {\n            return;\n          }\n\n          (this || _global).frameId = (this || _global).elem.globalData.frameId;\n          this.iterateDynamicProperties();\n\n          if ((this || _global)._mdf) {\n            this.convertToPath();\n          }\n        },\n        convertStarToPath: function () {\n          var numPts = Math.floor((this || _global).pt.v) * 2;\n          var angle = Math.PI * 2 / numPts;\n          /* this.v.v.length = numPts;\r\n                  this.v.i.length = numPts;\r\n                  this.v.o.length = numPts; */\n\n          var longFlag = true;\n          var longRad = (this || _global).or.v;\n          var shortRad = (this || _global).ir.v;\n          var longRound = (this || _global).os.v;\n          var shortRound = (this || _global).is.v;\n          var longPerimSegment = 2 * Math.PI * longRad / (numPts * 2);\n          var shortPerimSegment = 2 * Math.PI * shortRad / (numPts * 2);\n          var i;\n          var rad;\n          var roundness;\n          var perimSegment;\n          var currentAng = -Math.PI / 2;\n          currentAng += (this || _global).r.v;\n          var dir = (this || _global).data.d === 3 ? -1 : 1;\n          (this || _global).v._length = 0;\n\n          for (i = 0; i < numPts; i += 1) {\n            rad = longFlag ? longRad : shortRad;\n            roundness = longFlag ? longRound : shortRound;\n            perimSegment = longFlag ? longPerimSegment : shortPerimSegment;\n            var x = rad * Math.cos(currentAng);\n            var y = rad * Math.sin(currentAng);\n            var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n            var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n            x += +(this || _global).p.v[0];\n            y += +(this || _global).p.v[1];\n\n            (this || _global).v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\n            /* this.v.v[i] = [x,y];\r\n                      this.v.i[i] = [x+ox*perimSegment*roundness*dir,y+oy*perimSegment*roundness*dir];\r\n                      this.v.o[i] = [x-ox*perimSegment*roundness*dir,y-oy*perimSegment*roundness*dir];\r\n                      this.v._length = numPts; */\n\n\n            longFlag = !longFlag;\n            currentAng += angle * dir;\n          }\n        },\n        convertPolygonToPath: function () {\n          var numPts = Math.floor((this || _global).pt.v);\n          var angle = Math.PI * 2 / numPts;\n          var rad = (this || _global).or.v;\n          var roundness = (this || _global).os.v;\n          var perimSegment = 2 * Math.PI * rad / (numPts * 4);\n          var i;\n          var currentAng = -Math.PI * 0.5;\n          var dir = (this || _global).data.d === 3 ? -1 : 1;\n          currentAng += (this || _global).r.v;\n          (this || _global).v._length = 0;\n\n          for (i = 0; i < numPts; i += 1) {\n            var x = rad * Math.cos(currentAng);\n            var y = rad * Math.sin(currentAng);\n            var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n            var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n            x += +(this || _global).p.v[0];\n            y += +(this || _global).p.v[1];\n\n            (this || _global).v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\n\n            currentAng += angle * dir;\n          }\n\n          (this || _global).paths.length = 0;\n          (this || _global).paths[0] = (this || _global).v;\n        }\n      };\n      extendPrototype([DynamicPropertyContainer], StarShapePropertyFactory);\n      return StarShapePropertyFactory;\n    }();\n\n    var RectShapeProperty = function () {\n      function RectShapePropertyFactory(elem, data) {\n        (this || _global).v = shapePool.newElement();\n        (this || _global).v.c = true;\n        (this || _global).localShapeCollection = shapeCollectionPool.newShapeCollection();\n\n        (this || _global).localShapeCollection.addShape((this || _global).v);\n\n        (this || _global).paths = (this || _global).localShapeCollection;\n        (this || _global).elem = elem;\n        (this || _global).comp = elem.comp;\n        (this || _global).frameId = -1;\n        (this || _global).d = data.d;\n        this.initDynamicPropertyContainer(elem);\n        (this || _global).p = PropertyFactory.getProp(elem, data.p, 1, 0, this || _global);\n        (this || _global).s = PropertyFactory.getProp(elem, data.s, 1, 0, this || _global);\n        (this || _global).r = PropertyFactory.getProp(elem, data.r, 0, 0, this || _global);\n\n        if ((this || _global).dynamicProperties.length) {\n          (this || _global).k = true;\n        } else {\n          (this || _global).k = false;\n          this.convertRectToPath();\n        }\n      }\n\n      RectShapePropertyFactory.prototype = {\n        convertRectToPath: function () {\n          var p0 = (this || _global).p.v[0];\n          var p1 = (this || _global).p.v[1];\n          var v0 = (this || _global).s.v[0] / 2;\n          var v1 = (this || _global).s.v[1] / 2;\n          var round = bmMin(v0, v1, (this || _global).r.v);\n          var cPoint = round * (1 - roundCorner);\n          (this || _global).v._length = 0;\n\n          if ((this || _global).d === 2 || (this || _global).d === 1) {\n            (this || _global).v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, 0, true);\n\n            (this || _global).v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, p0 + v0, p1 + v1 - round, 1, true);\n\n            if (round !== 0) {\n              (this || _global).v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, 2, true);\n\n              (this || _global).v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0 + round, p1 + v1, 3, true);\n\n              (this || _global).v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, 4, true);\n\n              (this || _global).v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1 + round, 5, true);\n\n              (this || _global).v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, 6, true);\n\n              (this || _global).v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, p0 + v0 - round, p1 - v1, 7, true);\n            } else {\n              (this || _global).v.setTripleAt(p0 - v0, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0, p1 + v1, 2);\n\n              (this || _global).v.setTripleAt(p0 - v0, p1 - v1, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1, 3);\n            }\n          } else {\n            (this || _global).v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, p0 + v0, p1 - v1 + round, 0, true);\n\n            if (round !== 0) {\n              (this || _global).v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, 1, true);\n\n              (this || _global).v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0 + round, p1 - v1, 2, true);\n\n              (this || _global).v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, 3, true);\n\n              (this || _global).v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1 - round, 4, true);\n\n              (this || _global).v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, 5, true);\n\n              (this || _global).v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0 - round, p1 + v1, 6, true);\n\n              (this || _global).v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, 7, true);\n            } else {\n              (this || _global).v.setTripleAt(p0 - v0, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0, p1 - v1, 1, true);\n\n              (this || _global).v.setTripleAt(p0 - v0, p1 + v1, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1, 2, true);\n\n              (this || _global).v.setTripleAt(p0 + v0, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0, p1 + v1, 3, true);\n            }\n          }\n        },\n        getValue: function () {\n          if ((this || _global).elem.globalData.frameId === (this || _global).frameId) {\n            return;\n          }\n\n          (this || _global).frameId = (this || _global).elem.globalData.frameId;\n          this.iterateDynamicProperties();\n\n          if ((this || _global)._mdf) {\n            this.convertRectToPath();\n          }\n        },\n        reset: resetShape\n      };\n      extendPrototype([DynamicPropertyContainer], RectShapePropertyFactory);\n      return RectShapePropertyFactory;\n    }();\n\n    function getShapeProp(elem, data, type) {\n      var prop;\n\n      if (type === 3 || type === 4) {\n        var dataProp = type === 3 ? data.pt : data.ks;\n        var keys = dataProp.k;\n\n        if (keys.length) {\n          prop = new KeyframedShapeProperty(elem, data, type);\n        } else {\n          prop = new ShapeProperty(elem, data, type);\n        }\n      } else if (type === 5) {\n        prop = new RectShapeProperty(elem, data);\n      } else if (type === 6) {\n        prop = new EllShapeProperty(elem, data);\n      } else if (type === 7) {\n        prop = new StarShapeProperty(elem, data);\n      }\n\n      if (prop.k) {\n        elem.addDynamicProperty(prop);\n      }\n\n      return prop;\n    }\n\n    function getConstructorFunction() {\n      return ShapeProperty;\n    }\n\n    function getKeyframedConstructorFunction() {\n      return KeyframedShapeProperty;\n    }\n\n    var ob = {};\n    ob.getShapeProp = getShapeProp;\n    ob.getConstructorFunction = getConstructorFunction;\n    ob.getKeyframedConstructorFunction = getKeyframedConstructorFunction;\n    return ob;\n  }();\n  /* global shapeCollectionPool, initialDefaultFrame, extendPrototype, DynamicPropertyContainer */\n\n  /* exported ShapeModifiers */\n\n\n  var ShapeModifiers = function () {\n    var ob = {};\n    var modifiers = {};\n    ob.registerModifier = registerModifier;\n    ob.getModifier = getModifier;\n\n    function registerModifier(nm, factory) {\n      if (!modifiers[nm]) {\n        modifiers[nm] = factory;\n      }\n    }\n\n    function getModifier(nm, elem, data) {\n      return new modifiers[nm](elem, data);\n    }\n\n    return ob;\n  }();\n\n  function ShapeModifier() {}\n\n  ShapeModifier.prototype.initModifierProperties = function () {};\n\n  ShapeModifier.prototype.addShapeToModifier = function () {};\n\n  ShapeModifier.prototype.addShape = function (data) {\n    if (!(this || _global).closed) {\n      // Adding shape to dynamic properties. It covers the case where a shape has no effects applied, to reset it's _mdf state on every tick.\n      data.sh.container.addDynamicProperty(data.sh);\n      var shapeData = {\n        shape: data.sh,\n        data: data,\n        localShapeCollection: shapeCollectionPool.newShapeCollection()\n      };\n\n      (this || _global).shapes.push(shapeData);\n\n      this.addShapeToModifier(shapeData);\n\n      if ((this || _global)._isAnimated) {\n        data.setAsAnimated();\n      }\n    }\n  };\n\n  ShapeModifier.prototype.init = function (elem, data) {\n    (this || _global).shapes = [];\n    (this || _global).elem = elem;\n    this.initDynamicPropertyContainer(elem);\n    this.initModifierProperties(elem, data);\n    (this || _global).frameId = initialDefaultFrame;\n    (this || _global).closed = false;\n    (this || _global).k = false;\n\n    if ((this || _global).dynamicProperties.length) {\n      (this || _global).k = true;\n    } else {\n      this.getValue(true);\n    }\n  };\n\n  ShapeModifier.prototype.processKeys = function () {\n    if ((this || _global).elem.globalData.frameId === (this || _global).frameId) {\n      return;\n    }\n\n    (this || _global).frameId = (this || _global).elem.globalData.frameId;\n    this.iterateDynamicProperties();\n  };\n\n  extendPrototype([DynamicPropertyContainer], ShapeModifier);\n  /* global extendPrototype, ShapeModifier, PropertyFactory, segmentsLengthPool, bez, shapePool, ShapeModifiers */\n\n  function TrimModifier() {}\n\n  extendPrototype([ShapeModifier], TrimModifier);\n\n  TrimModifier.prototype.initModifierProperties = function (elem, data) {\n    (this || _global).s = PropertyFactory.getProp(elem, data.s, 0, 0.01, this || _global);\n    (this || _global).e = PropertyFactory.getProp(elem, data.e, 0, 0.01, this || _global);\n    (this || _global).o = PropertyFactory.getProp(elem, data.o, 0, 0, this || _global);\n    (this || _global).sValue = 0;\n    (this || _global).eValue = 0;\n    (this || _global).getValue = (this || _global).processKeys;\n    (this || _global).m = data.m;\n    (this || _global)._isAnimated = !!(this || _global).s.effectsSequence.length || !!(this || _global).e.effectsSequence.length || !!(this || _global).o.effectsSequence.length;\n  };\n\n  TrimModifier.prototype.addShapeToModifier = function (shapeData) {\n    shapeData.pathsData = [];\n  };\n\n  TrimModifier.prototype.calculateShapeEdges = function (s, e, shapeLength, addedLength, totalModifierLength) {\n    var segments = [];\n\n    if (e <= 1) {\n      segments.push({\n        s: s,\n        e: e\n      });\n    } else if (s >= 1) {\n      segments.push({\n        s: s - 1,\n        e: e - 1\n      });\n    } else {\n      segments.push({\n        s: s,\n        e: 1\n      });\n      segments.push({\n        s: 0,\n        e: e - 1\n      });\n    }\n\n    var shapeSegments = [];\n    var i;\n    var len = segments.length;\n    var segmentOb;\n\n    for (i = 0; i < len; i += 1) {\n      segmentOb = segments[i];\n\n      if (!(segmentOb.e * totalModifierLength < addedLength || segmentOb.s * totalModifierLength > addedLength + shapeLength)) {\n        var shapeS;\n        var shapeE;\n\n        if (segmentOb.s * totalModifierLength <= addedLength) {\n          shapeS = 0;\n        } else {\n          shapeS = (segmentOb.s * totalModifierLength - addedLength) / shapeLength;\n        }\n\n        if (segmentOb.e * totalModifierLength >= addedLength + shapeLength) {\n          shapeE = 1;\n        } else {\n          shapeE = (segmentOb.e * totalModifierLength - addedLength) / shapeLength;\n        }\n\n        shapeSegments.push([shapeS, shapeE]);\n      }\n    }\n\n    if (!shapeSegments.length) {\n      shapeSegments.push([0, 0]);\n    }\n\n    return shapeSegments;\n  };\n\n  TrimModifier.prototype.releasePathsData = function (pathsData) {\n    var i;\n    var len = pathsData.length;\n\n    for (i = 0; i < len; i += 1) {\n      segmentsLengthPool.release(pathsData[i]);\n    }\n\n    pathsData.length = 0;\n    return pathsData;\n  };\n\n  TrimModifier.prototype.processShapes = function (_isFirstFrame) {\n    var s;\n    var e;\n\n    if ((this || _global)._mdf || _isFirstFrame) {\n      var o = (this || _global).o.v % 360 / 360;\n\n      if (o < 0) {\n        o += 1;\n      }\n\n      if ((this || _global).s.v > 1) {\n        s = 1 + o;\n      } else if ((this || _global).s.v < 0) {\n        s = 0 + o;\n      } else {\n        s = (this || _global).s.v + o;\n      }\n\n      if ((this || _global).e.v > 1) {\n        e = 1 + o;\n      } else if ((this || _global).e.v < 0) {\n        e = 0 + o;\n      } else {\n        e = (this || _global).e.v + o;\n      }\n\n      if (s > e) {\n        var _s = s;\n        s = e;\n        e = _s;\n      }\n\n      s = Math.round(s * 10000) * 0.0001;\n      e = Math.round(e * 10000) * 0.0001;\n      (this || _global).sValue = s;\n      (this || _global).eValue = e;\n    } else {\n      s = (this || _global).sValue;\n      e = (this || _global).eValue;\n    }\n\n    var shapePaths;\n    var i;\n    var len = (this || _global).shapes.length;\n    var j;\n    var jLen;\n    var pathsData;\n    var pathData;\n    var totalShapeLength;\n    var totalModifierLength = 0;\n\n    if (e === s) {\n      for (i = 0; i < len; i += 1) {\n        (this || _global).shapes[i].localShapeCollection.releaseShapes();\n\n        (this || _global).shapes[i].shape._mdf = true;\n        (this || _global).shapes[i].shape.paths = (this || _global).shapes[i].localShapeCollection;\n\n        if ((this || _global)._mdf) {\n          (this || _global).shapes[i].pathsData.length = 0;\n        }\n      }\n    } else if (!(e === 1 && s === 0 || e === 0 && s === 1)) {\n      var segments = [];\n      var shapeData;\n      var localShapeCollection;\n\n      for (i = 0; i < len; i += 1) {\n        shapeData = (this || _global).shapes[i]; // if shape hasn't changed and trim properties haven't changed, cached previous path can be used\n\n        if (!shapeData.shape._mdf && !(this || _global)._mdf && !_isFirstFrame && (this || _global).m !== 2) {\n          shapeData.shape.paths = shapeData.localShapeCollection;\n        } else {\n          shapePaths = shapeData.shape.paths;\n          jLen = shapePaths._length;\n          totalShapeLength = 0;\n\n          if (!shapeData.shape._mdf && shapeData.pathsData.length) {\n            totalShapeLength = shapeData.totalShapeLength;\n          } else {\n            pathsData = this.releasePathsData(shapeData.pathsData);\n\n            for (j = 0; j < jLen; j += 1) {\n              pathData = bez.getSegmentsLength(shapePaths.shapes[j]);\n              pathsData.push(pathData);\n              totalShapeLength += pathData.totalLength;\n            }\n\n            shapeData.totalShapeLength = totalShapeLength;\n            shapeData.pathsData = pathsData;\n          }\n\n          totalModifierLength += totalShapeLength;\n          shapeData.shape._mdf = true;\n        }\n      }\n\n      var shapeS = s;\n      var shapeE = e;\n      var addedLength = 0;\n      var edges;\n\n      for (i = len - 1; i >= 0; i -= 1) {\n        shapeData = (this || _global).shapes[i];\n\n        if (shapeData.shape._mdf) {\n          localShapeCollection = shapeData.localShapeCollection;\n          localShapeCollection.releaseShapes(); // if m === 2 means paths are trimmed individually so edges need to be found for this specific shape relative to whoel group\n\n          if ((this || _global).m === 2 && len > 1) {\n            edges = this.calculateShapeEdges(s, e, shapeData.totalShapeLength, addedLength, totalModifierLength);\n            addedLength += shapeData.totalShapeLength;\n          } else {\n            edges = [[shapeS, shapeE]];\n          }\n\n          jLen = edges.length;\n\n          for (j = 0; j < jLen; j += 1) {\n            shapeS = edges[j][0];\n            shapeE = edges[j][1];\n            segments.length = 0;\n\n            if (shapeE <= 1) {\n              segments.push({\n                s: shapeData.totalShapeLength * shapeS,\n                e: shapeData.totalShapeLength * shapeE\n              });\n            } else if (shapeS >= 1) {\n              segments.push({\n                s: shapeData.totalShapeLength * (shapeS - 1),\n                e: shapeData.totalShapeLength * (shapeE - 1)\n              });\n            } else {\n              segments.push({\n                s: shapeData.totalShapeLength * shapeS,\n                e: shapeData.totalShapeLength\n              });\n              segments.push({\n                s: 0,\n                e: shapeData.totalShapeLength * (shapeE - 1)\n              });\n            }\n\n            var newShapesData = this.addShapes(shapeData, segments[0]);\n\n            if (segments[0].s !== segments[0].e) {\n              if (segments.length > 1) {\n                var lastShapeInCollection = shapeData.shape.paths.shapes[shapeData.shape.paths._length - 1];\n\n                if (lastShapeInCollection.c) {\n                  var lastShape = newShapesData.pop();\n                  this.addPaths(newShapesData, localShapeCollection);\n                  newShapesData = this.addShapes(shapeData, segments[1], lastShape);\n                } else {\n                  this.addPaths(newShapesData, localShapeCollection);\n                  newShapesData = this.addShapes(shapeData, segments[1]);\n                }\n              }\n\n              this.addPaths(newShapesData, localShapeCollection);\n            }\n          }\n\n          shapeData.shape.paths = localShapeCollection;\n        }\n      }\n    } else if ((this || _global)._mdf) {\n      for (i = 0; i < len; i += 1) {\n        // Releasign Trim Cached paths data when no trim applied in case shapes are modified inbetween.\n        // Don't remove this even if it's losing cached info.\n        (this || _global).shapes[i].pathsData.length = 0;\n        (this || _global).shapes[i].shape._mdf = true;\n      }\n    }\n  };\n\n  TrimModifier.prototype.addPaths = function (newPaths, localShapeCollection) {\n    var i;\n    var len = newPaths.length;\n\n    for (i = 0; i < len; i += 1) {\n      localShapeCollection.addShape(newPaths[i]);\n    }\n  };\n\n  TrimModifier.prototype.addSegment = function (pt1, pt2, pt3, pt4, shapePath, pos, newShape) {\n    shapePath.setXYAt(pt2[0], pt2[1], \"o\", pos);\n    shapePath.setXYAt(pt3[0], pt3[1], \"i\", pos + 1);\n\n    if (newShape) {\n      shapePath.setXYAt(pt1[0], pt1[1], \"v\", pos);\n    }\n\n    shapePath.setXYAt(pt4[0], pt4[1], \"v\", pos + 1);\n  };\n\n  TrimModifier.prototype.addSegmentFromArray = function (points, shapePath, pos, newShape) {\n    shapePath.setXYAt(points[1], points[5], \"o\", pos);\n    shapePath.setXYAt(points[2], points[6], \"i\", pos + 1);\n\n    if (newShape) {\n      shapePath.setXYAt(points[0], points[4], \"v\", pos);\n    }\n\n    shapePath.setXYAt(points[3], points[7], \"v\", pos + 1);\n  };\n\n  TrimModifier.prototype.addShapes = function (shapeData, shapeSegment, shapePath) {\n    var pathsData = shapeData.pathsData;\n    var shapePaths = shapeData.shape.paths.shapes;\n    var i;\n    var len = shapeData.shape.paths._length;\n    var j;\n    var jLen;\n    var addedLength = 0;\n    var currentLengthData;\n    var segmentCount;\n    var lengths;\n    var segment;\n    var shapes = [];\n    var initPos;\n    var newShape = true;\n\n    if (!shapePath) {\n      shapePath = shapePool.newElement();\n      segmentCount = 0;\n      initPos = 0;\n    } else {\n      segmentCount = shapePath._length;\n      initPos = shapePath._length;\n    }\n\n    shapes.push(shapePath);\n\n    for (i = 0; i < len; i += 1) {\n      lengths = pathsData[i].lengths;\n      shapePath.c = shapePaths[i].c;\n      jLen = shapePaths[i].c ? lengths.length : lengths.length + 1;\n\n      for (j = 1; j < jLen; j += 1) {\n        currentLengthData = lengths[j - 1];\n\n        if (addedLength + currentLengthData.addedLength < shapeSegment.s) {\n          addedLength += currentLengthData.addedLength;\n          shapePath.c = false;\n        } else if (addedLength > shapeSegment.e) {\n          shapePath.c = false;\n          break;\n        } else {\n          if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + currentLengthData.addedLength) {\n            this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[j], shapePaths[i].v[j], shapePath, segmentCount, newShape);\n            newShape = false;\n          } else {\n            segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[j], shapePaths[i].o[j - 1], shapePaths[i].i[j], (shapeSegment.s - addedLength) / currentLengthData.addedLength, (shapeSegment.e - addedLength) / currentLengthData.addedLength, lengths[j - 1]);\n            this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\n            newShape = false;\n            shapePath.c = false;\n          }\n\n          addedLength += currentLengthData.addedLength;\n          segmentCount += 1;\n        }\n      }\n\n      if (shapePaths[i].c && lengths.length) {\n        currentLengthData = lengths[j - 1];\n\n        if (addedLength <= shapeSegment.e) {\n          var segmentLength = lengths[j - 1].addedLength;\n\n          if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + segmentLength) {\n            this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[0], shapePaths[i].v[0], shapePath, segmentCount, newShape);\n            newShape = false;\n          } else {\n            segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[0], shapePaths[i].o[j - 1], shapePaths[i].i[0], (shapeSegment.s - addedLength) / segmentLength, (shapeSegment.e - addedLength) / segmentLength, lengths[j - 1]);\n            this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\n            newShape = false;\n            shapePath.c = false;\n          }\n        } else {\n          shapePath.c = false;\n        }\n\n        addedLength += currentLengthData.addedLength;\n        segmentCount += 1;\n      }\n\n      if (shapePath._length) {\n        shapePath.setXYAt(shapePath.v[initPos][0], shapePath.v[initPos][1], \"i\", initPos);\n        shapePath.setXYAt(shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1], \"o\", shapePath._length - 1);\n      }\n\n      if (addedLength > shapeSegment.e) {\n        break;\n      }\n\n      if (i < len - 1) {\n        shapePath = shapePool.newElement();\n        newShape = true;\n        shapes.push(shapePath);\n        segmentCount = 0;\n      }\n    }\n\n    return shapes;\n  };\n\n  ShapeModifiers.registerModifier(\"tm\", TrimModifier);\n  /* global extendPrototype, ShapeModifier, PropertyFactory, shapePool, roundCorner, ShapeModifiers */\n\n  function RoundCornersModifier() {}\n\n  extendPrototype([ShapeModifier], RoundCornersModifier);\n\n  RoundCornersModifier.prototype.initModifierProperties = function (elem, data) {\n    (this || _global).getValue = (this || _global).processKeys;\n    (this || _global).rd = PropertyFactory.getProp(elem, data.r, 0, null, this || _global);\n    (this || _global)._isAnimated = !!(this || _global).rd.effectsSequence.length;\n  };\n\n  RoundCornersModifier.prototype.processPath = function (path, round) {\n    var clonedPath = shapePool.newElement();\n    clonedPath.c = path.c;\n    var i;\n    var len = path._length;\n    var currentV;\n    var currentI;\n    var currentO;\n    var closerV;\n    var distance;\n    var newPosPerc;\n    var index = 0;\n    var vX;\n    var vY;\n    var oX;\n    var oY;\n    var iX;\n    var iY;\n\n    for (i = 0; i < len; i += 1) {\n      currentV = path.v[i];\n      currentO = path.o[i];\n      currentI = path.i[i];\n\n      if (currentV[0] === currentO[0] && currentV[1] === currentO[1] && currentV[0] === currentI[0] && currentV[1] === currentI[1]) {\n        if ((i === 0 || i === len - 1) && !path.c) {\n          clonedPath.setTripleAt(currentV[0], currentV[1], currentO[0], currentO[1], currentI[0], currentI[1], index);\n          /* clonedPath.v[index] = currentV;\r\n                  clonedPath.o[index] = currentO;\r\n                  clonedPath.i[index] = currentI; */\n\n          index += 1;\n        } else {\n          if (i === 0) {\n            closerV = path.v[len - 1];\n          } else {\n            closerV = path.v[i - 1];\n          }\n\n          distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n          newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n          iX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n          vX = iX;\n          iY = currentV[1] - (currentV[1] - closerV[1]) * newPosPerc;\n          vY = iY;\n          oX = vX - (vX - currentV[0]) * roundCorner;\n          oY = vY - (vY - currentV[1]) * roundCorner;\n          clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n          index += 1;\n\n          if (i === len - 1) {\n            closerV = path.v[0];\n          } else {\n            closerV = path.v[i + 1];\n          }\n\n          distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n          newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n          oX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n          vX = oX;\n          oY = currentV[1] + (closerV[1] - currentV[1]) * newPosPerc;\n          vY = oY;\n          iX = vX - (vX - currentV[0]) * roundCorner;\n          iY = vY - (vY - currentV[1]) * roundCorner;\n          clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n          index += 1;\n        }\n      } else {\n        clonedPath.setTripleAt(path.v[i][0], path.v[i][1], path.o[i][0], path.o[i][1], path.i[i][0], path.i[i][1], index);\n        index += 1;\n      }\n    }\n\n    return clonedPath;\n  };\n\n  RoundCornersModifier.prototype.processShapes = function (_isFirstFrame) {\n    var shapePaths;\n    var i;\n    var len = (this || _global).shapes.length;\n    var j;\n    var jLen;\n    var rd = (this || _global).rd.v;\n\n    if (rd !== 0) {\n      var shapeData;\n      var localShapeCollection;\n\n      for (i = 0; i < len; i += 1) {\n        shapeData = (this || _global).shapes[i];\n        localShapeCollection = shapeData.localShapeCollection;\n\n        if (!(!shapeData.shape._mdf && !(this || _global)._mdf && !_isFirstFrame)) {\n          localShapeCollection.releaseShapes();\n          shapeData.shape._mdf = true;\n          shapePaths = shapeData.shape.paths.shapes;\n          jLen = shapeData.shape.paths._length;\n\n          for (j = 0; j < jLen; j += 1) {\n            localShapeCollection.addShape(this.processPath(shapePaths[j], rd));\n          }\n        }\n\n        shapeData.shape.paths = shapeData.localShapeCollection;\n      }\n    }\n\n    if (!(this || _global).dynamicProperties.length) {\n      (this || _global)._mdf = false;\n    }\n  };\n\n  ShapeModifiers.registerModifier(\"rd\", RoundCornersModifier);\n  /* global extendPrototype, ShapeModifier, PropertyFactory, shapePool, ShapeModifiers */\n\n  function PuckerAndBloatModifier() {}\n\n  extendPrototype([ShapeModifier], PuckerAndBloatModifier);\n\n  PuckerAndBloatModifier.prototype.initModifierProperties = function (elem, data) {\n    (this || _global).getValue = (this || _global).processKeys;\n    (this || _global).amount = PropertyFactory.getProp(elem, data.a, 0, null, this || _global);\n    (this || _global)._isAnimated = !!(this || _global).amount.effectsSequence.length;\n  };\n\n  PuckerAndBloatModifier.prototype.processPath = function (path, amount) {\n    var percent = amount / 100;\n    var centerPoint = [0, 0];\n    var pathLength = path._length;\n    var i = 0;\n\n    for (i = 0; i < pathLength; i += 1) {\n      centerPoint[0] += path.v[i][0];\n      centerPoint[1] += path.v[i][1];\n    }\n\n    centerPoint[0] /= pathLength;\n    centerPoint[1] /= pathLength;\n    var clonedPath = shapePool.newElement();\n    clonedPath.c = path.c;\n    var vX;\n    var vY;\n    var oX;\n    var oY;\n    var iX;\n    var iY;\n\n    for (i = 0; i < pathLength; i += 1) {\n      vX = path.v[i][0] + (centerPoint[0] - path.v[i][0]) * percent;\n      vY = path.v[i][1] + (centerPoint[1] - path.v[i][1]) * percent;\n      oX = path.o[i][0] + (centerPoint[0] - path.o[i][0]) * -percent;\n      oY = path.o[i][1] + (centerPoint[1] - path.o[i][1]) * -percent;\n      iX = path.i[i][0] + (centerPoint[0] - path.i[i][0]) * -percent;\n      iY = path.i[i][1] + (centerPoint[1] - path.i[i][1]) * -percent;\n      clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, i);\n    }\n\n    return clonedPath;\n  };\n\n  PuckerAndBloatModifier.prototype.processShapes = function (_isFirstFrame) {\n    var shapePaths;\n    var i;\n    var len = (this || _global).shapes.length;\n    var j;\n    var jLen;\n    var amount = (this || _global).amount.v;\n\n    if (amount !== 0) {\n      var shapeData;\n      var localShapeCollection;\n\n      for (i = 0; i < len; i += 1) {\n        shapeData = (this || _global).shapes[i];\n        localShapeCollection = shapeData.localShapeCollection;\n\n        if (!(!shapeData.shape._mdf && !(this || _global)._mdf && !_isFirstFrame)) {\n          localShapeCollection.releaseShapes();\n          shapeData.shape._mdf = true;\n          shapePaths = shapeData.shape.paths.shapes;\n          jLen = shapeData.shape.paths._length;\n\n          for (j = 0; j < jLen; j += 1) {\n            localShapeCollection.addShape(this.processPath(shapePaths[j], amount));\n          }\n        }\n\n        shapeData.shape.paths = shapeData.localShapeCollection;\n      }\n    }\n\n    if (!(this || _global).dynamicProperties.length) {\n      (this || _global)._mdf = false;\n    }\n  };\n\n  ShapeModifiers.registerModifier(\"pb\", PuckerAndBloatModifier);\n  /* global extendPrototype, ShapeModifier, TransformPropertyFactory, PropertyFactory, Matrix, ShapeModifiers */\n\n  function RepeaterModifier() {}\n\n  extendPrototype([ShapeModifier], RepeaterModifier);\n\n  RepeaterModifier.prototype.initModifierProperties = function (elem, data) {\n    (this || _global).getValue = (this || _global).processKeys;\n    (this || _global).c = PropertyFactory.getProp(elem, data.c, 0, null, this || _global);\n    (this || _global).o = PropertyFactory.getProp(elem, data.o, 0, null, this || _global);\n    (this || _global).tr = TransformPropertyFactory.getTransformProperty(elem, data.tr, this || _global);\n    (this || _global).so = PropertyFactory.getProp(elem, data.tr.so, 0, 0.01, this || _global);\n    (this || _global).eo = PropertyFactory.getProp(elem, data.tr.eo, 0, 0.01, this || _global);\n    (this || _global).data = data;\n\n    if (!(this || _global).dynamicProperties.length) {\n      this.getValue(true);\n    }\n\n    (this || _global)._isAnimated = !!(this || _global).dynamicProperties.length;\n    (this || _global).pMatrix = new Matrix();\n    (this || _global).rMatrix = new Matrix();\n    (this || _global).sMatrix = new Matrix();\n    (this || _global).tMatrix = new Matrix();\n    (this || _global).matrix = new Matrix();\n  };\n\n  RepeaterModifier.prototype.applyTransforms = function (pMatrix, rMatrix, sMatrix, transform, perc, inv) {\n    var dir = inv ? -1 : 1;\n    var scaleX = transform.s.v[0] + (1 - transform.s.v[0]) * (1 - perc);\n    var scaleY = transform.s.v[1] + (1 - transform.s.v[1]) * (1 - perc);\n    pMatrix.translate(transform.p.v[0] * dir * perc, transform.p.v[1] * dir * perc, transform.p.v[2]);\n    rMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n    rMatrix.rotate(-transform.r.v * dir * perc);\n    rMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n    sMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n    sMatrix.scale(inv ? 1 / scaleX : scaleX, inv ? 1 / scaleY : scaleY);\n    sMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n  };\n\n  RepeaterModifier.prototype.init = function (elem, arr, pos, elemsData) {\n    (this || _global).elem = elem;\n    (this || _global).arr = arr;\n    (this || _global).pos = pos;\n    (this || _global).elemsData = elemsData;\n    (this || _global)._currentCopies = 0;\n    (this || _global)._elements = [];\n    (this || _global)._groups = [];\n    (this || _global).frameId = -1;\n    this.initDynamicPropertyContainer(elem);\n    this.initModifierProperties(elem, arr[pos]);\n\n    while (pos > 0) {\n      pos -= 1; // this._elements.unshift(arr.splice(pos,1)[0]);\n\n      (this || _global)._elements.unshift(arr[pos]);\n    }\n\n    if ((this || _global).dynamicProperties.length) {\n      (this || _global).k = true;\n    } else {\n      this.getValue(true);\n    }\n  };\n\n  RepeaterModifier.prototype.resetElements = function (elements) {\n    var i;\n    var len = elements.length;\n\n    for (i = 0; i < len; i += 1) {\n      elements[i]._processed = false;\n\n      if (elements[i].ty === \"gr\") {\n        this.resetElements(elements[i].it);\n      }\n    }\n  };\n\n  RepeaterModifier.prototype.cloneElements = function (elements) {\n    var newElements = JSON.parse(JSON.stringify(elements));\n    this.resetElements(newElements);\n    return newElements;\n  };\n\n  RepeaterModifier.prototype.changeGroupRender = function (elements, renderFlag) {\n    var i;\n    var len = elements.length;\n\n    for (i = 0; i < len; i += 1) {\n      elements[i]._render = renderFlag;\n\n      if (elements[i].ty === \"gr\") {\n        this.changeGroupRender(elements[i].it, renderFlag);\n      }\n    }\n  };\n\n  RepeaterModifier.prototype.processShapes = function (_isFirstFrame) {\n    var items;\n    var itemsTransform;\n    var i;\n    var dir;\n    var cont;\n    var hasReloaded = false;\n\n    if ((this || _global)._mdf || _isFirstFrame) {\n      var copies = Math.ceil((this || _global).c.v);\n\n      if ((this || _global)._groups.length < copies) {\n        while ((this || _global)._groups.length < copies) {\n          var group = {\n            it: this.cloneElements((this || _global)._elements),\n            ty: \"gr\"\n          };\n          group.it.push({\n            a: {\n              a: 0,\n              ix: 1,\n              k: [0, 0]\n            },\n            nm: \"Transform\",\n            o: {\n              a: 0,\n              ix: 7,\n              k: 100\n            },\n            p: {\n              a: 0,\n              ix: 2,\n              k: [0, 0]\n            },\n            r: {\n              a: 1,\n              ix: 6,\n              k: [{\n                s: 0,\n                e: 0,\n                t: 0\n              }, {\n                s: 0,\n                e: 0,\n                t: 1\n              }]\n            },\n            s: {\n              a: 0,\n              ix: 3,\n              k: [100, 100]\n            },\n            sa: {\n              a: 0,\n              ix: 5,\n              k: 0\n            },\n            sk: {\n              a: 0,\n              ix: 4,\n              k: 0\n            },\n            ty: \"tr\"\n          });\n\n          (this || _global).arr.splice(0, 0, group);\n\n          (this || _global)._groups.splice(0, 0, group);\n\n          (this || _global)._currentCopies += 1;\n        }\n\n        (this || _global).elem.reloadShapes();\n\n        hasReloaded = true;\n      }\n\n      cont = 0;\n      var renderFlag;\n\n      for (i = 0; i <= (this || _global)._groups.length - 1; i += 1) {\n        renderFlag = cont < copies;\n        (this || _global)._groups[i]._render = renderFlag;\n        this.changeGroupRender((this || _global)._groups[i].it, renderFlag);\n\n        if (!renderFlag) {\n          var elems = (this || _global).elemsData[i].it;\n          var transformData = elems[elems.length - 1];\n\n          if (transformData.transform.op.v !== 0) {\n            transformData.transform.op._mdf = true;\n            transformData.transform.op.v = 0;\n          } else {\n            transformData.transform.op._mdf = false;\n          }\n        }\n\n        cont += 1;\n      }\n\n      (this || _global)._currentCopies = copies; /// /\n\n      var offset = (this || _global).o.v;\n      var offsetModulo = offset % 1;\n      var roundOffset = offset > 0 ? Math.floor(offset) : Math.ceil(offset);\n      var pProps = (this || _global).pMatrix.props;\n      var rProps = (this || _global).rMatrix.props;\n      var sProps = (this || _global).sMatrix.props;\n\n      (this || _global).pMatrix.reset();\n\n      (this || _global).rMatrix.reset();\n\n      (this || _global).sMatrix.reset();\n\n      (this || _global).tMatrix.reset();\n\n      (this || _global).matrix.reset();\n\n      var iteration = 0;\n\n      if (offset > 0) {\n        while (iteration < roundOffset) {\n          this.applyTransforms((this || _global).pMatrix, (this || _global).rMatrix, (this || _global).sMatrix, (this || _global).tr, 1, false);\n          iteration += 1;\n        }\n\n        if (offsetModulo) {\n          this.applyTransforms((this || _global).pMatrix, (this || _global).rMatrix, (this || _global).sMatrix, (this || _global).tr, offsetModulo, false);\n          iteration += offsetModulo;\n        }\n      } else if (offset < 0) {\n        while (iteration > roundOffset) {\n          this.applyTransforms((this || _global).pMatrix, (this || _global).rMatrix, (this || _global).sMatrix, (this || _global).tr, 1, true);\n          iteration -= 1;\n        }\n\n        if (offsetModulo) {\n          this.applyTransforms((this || _global).pMatrix, (this || _global).rMatrix, (this || _global).sMatrix, (this || _global).tr, -offsetModulo, true);\n          iteration -= offsetModulo;\n        }\n      }\n\n      i = (this || _global).data.m === 1 ? 0 : (this || _global)._currentCopies - 1;\n      dir = (this || _global).data.m === 1 ? 1 : -1;\n      cont = (this || _global)._currentCopies;\n      var j;\n      var jLen;\n\n      while (cont) {\n        items = (this || _global).elemsData[i].it;\n        itemsTransform = items[items.length - 1].transform.mProps.v.props;\n        jLen = itemsTransform.length;\n        items[items.length - 1].transform.mProps._mdf = true;\n        items[items.length - 1].transform.op._mdf = true;\n        items[items.length - 1].transform.op.v = (this || _global)._currentCopies === 1 ? (this || _global).so.v : (this || _global).so.v + ((this || _global).eo.v - (this || _global).so.v) * (i / ((this || _global)._currentCopies - 1));\n\n        if (iteration !== 0) {\n          if (i !== 0 && dir === 1 || i !== (this || _global)._currentCopies - 1 && dir === -1) {\n            this.applyTransforms((this || _global).pMatrix, (this || _global).rMatrix, (this || _global).sMatrix, (this || _global).tr, 1, false);\n          }\n\n          (this || _global).matrix.transform(rProps[0], rProps[1], rProps[2], rProps[3], rProps[4], rProps[5], rProps[6], rProps[7], rProps[8], rProps[9], rProps[10], rProps[11], rProps[12], rProps[13], rProps[14], rProps[15]);\n\n          (this || _global).matrix.transform(sProps[0], sProps[1], sProps[2], sProps[3], sProps[4], sProps[5], sProps[6], sProps[7], sProps[8], sProps[9], sProps[10], sProps[11], sProps[12], sProps[13], sProps[14], sProps[15]);\n\n          (this || _global).matrix.transform(pProps[0], pProps[1], pProps[2], pProps[3], pProps[4], pProps[5], pProps[6], pProps[7], pProps[8], pProps[9], pProps[10], pProps[11], pProps[12], pProps[13], pProps[14], pProps[15]);\n\n          for (j = 0; j < jLen; j += 1) {\n            itemsTransform[j] = (this || _global).matrix.props[j];\n          }\n\n          (this || _global).matrix.reset();\n        } else {\n          (this || _global).matrix.reset();\n\n          for (j = 0; j < jLen; j += 1) {\n            itemsTransform[j] = (this || _global).matrix.props[j];\n          }\n        }\n\n        iteration += 1;\n        cont -= 1;\n        i += dir;\n      }\n    } else {\n      cont = (this || _global)._currentCopies;\n      i = 0;\n      dir = 1;\n\n      while (cont) {\n        items = (this || _global).elemsData[i].it;\n        itemsTransform = items[items.length - 1].transform.mProps.v.props;\n        items[items.length - 1].transform.mProps._mdf = false;\n        items[items.length - 1].transform.op._mdf = false;\n        cont -= 1;\n        i += dir;\n      }\n    }\n\n    return hasReloaded;\n  };\n\n  RepeaterModifier.prototype.addShape = function () {};\n\n  ShapeModifiers.registerModifier(\"rp\", RepeaterModifier);\n  /* global createSizedArray, shapePool */\n\n  function ShapeCollection() {\n    (this || _global)._length = 0;\n    (this || _global)._maxLength = 4;\n    (this || _global).shapes = createSizedArray((this || _global)._maxLength);\n  }\n\n  ShapeCollection.prototype.addShape = function (shapeData) {\n    if ((this || _global)._length === (this || _global)._maxLength) {\n      (this || _global).shapes = (this || _global).shapes.concat(createSizedArray((this || _global)._maxLength));\n      (this || _global)._maxLength *= 2;\n    }\n\n    (this || _global).shapes[(this || _global)._length] = shapeData;\n    (this || _global)._length += 1;\n  };\n\n  ShapeCollection.prototype.releaseShapes = function () {\n    var i;\n\n    for (i = 0; i < (this || _global)._length; i += 1) {\n      shapePool.release((this || _global).shapes[i]);\n    }\n\n    (this || _global)._length = 0;\n  };\n  /* global createSizedArray, createTypedArray, PropertyFactory, extendPrototype, DynamicPropertyContainer */\n\n\n  function DashProperty(elem, data, renderer, container) {\n    (this || _global).elem = elem;\n    (this || _global).frameId = -1;\n    (this || _global).dataProps = createSizedArray(data.length);\n    (this || _global).renderer = renderer;\n    (this || _global).k = false;\n    (this || _global).dashStr = \"\";\n    (this || _global).dashArray = createTypedArray(\"float32\", data.length ? data.length - 1 : 0);\n    (this || _global).dashoffset = createTypedArray(\"float32\", 1);\n    this.initDynamicPropertyContainer(container);\n    var i;\n    var len = data.length || 0;\n    var prop;\n\n    for (i = 0; i < len; i += 1) {\n      prop = PropertyFactory.getProp(elem, data[i].v, 0, 0, this || _global);\n      (this || _global).k = prop.k || (this || _global).k;\n      (this || _global).dataProps[i] = {\n        n: data[i].n,\n        p: prop\n      };\n    }\n\n    if (!(this || _global).k) {\n      this.getValue(true);\n    }\n\n    (this || _global)._isAnimated = (this || _global).k;\n  }\n\n  DashProperty.prototype.getValue = function (forceRender) {\n    if ((this || _global).elem.globalData.frameId === (this || _global).frameId && !forceRender) {\n      return;\n    }\n\n    (this || _global).frameId = (this || _global).elem.globalData.frameId;\n    this.iterateDynamicProperties();\n    (this || _global)._mdf = (this || _global)._mdf || forceRender;\n\n    if ((this || _global)._mdf) {\n      var i = 0;\n      var len = (this || _global).dataProps.length;\n\n      if ((this || _global).renderer === \"svg\") {\n        (this || _global).dashStr = \"\";\n      }\n\n      for (i = 0; i < len; i += 1) {\n        if ((this || _global).dataProps[i].n !== \"o\") {\n          if ((this || _global).renderer === \"svg\") {\n            (this || _global).dashStr += \" \" + (this || _global).dataProps[i].p.v;\n          } else {\n            (this || _global).dashArray[i] = (this || _global).dataProps[i].p.v;\n          }\n        } else {\n          (this || _global).dashoffset[0] = (this || _global).dataProps[i].p.v;\n        }\n      }\n    }\n  };\n\n  extendPrototype([DynamicPropertyContainer], DashProperty);\n  /* global createTypedArray, PropertyFactory, extendPrototype, DynamicPropertyContainer */\n\n  function GradientProperty(elem, data, container) {\n    (this || _global).data = data;\n    (this || _global).c = createTypedArray(\"uint8c\", data.p * 4);\n    var cLength = data.k.k[0].s ? data.k.k[0].s.length - data.p * 4 : data.k.k.length - data.p * 4;\n    (this || _global).o = createTypedArray(\"float32\", cLength);\n    (this || _global)._cmdf = false;\n    (this || _global)._omdf = false;\n    (this || _global)._collapsable = this.checkCollapsable();\n    (this || _global)._hasOpacity = cLength;\n    this.initDynamicPropertyContainer(container);\n    (this || _global).prop = PropertyFactory.getProp(elem, data.k, 1, null, this || _global);\n    (this || _global).k = (this || _global).prop.k;\n    this.getValue(true);\n  }\n\n  GradientProperty.prototype.comparePoints = function (values, points) {\n    var i = 0;\n    var len = (this || _global).o.length / 2;\n    var diff;\n\n    while (i < len) {\n      diff = Math.abs(values[i * 4] - values[points * 4 + i * 2]);\n\n      if (diff > 0.01) {\n        return false;\n      }\n\n      i += 1;\n    }\n\n    return true;\n  };\n\n  GradientProperty.prototype.checkCollapsable = function () {\n    if ((this || _global).o.length / 2 !== (this || _global).c.length / 4) {\n      return false;\n    }\n\n    if ((this || _global).data.k.k[0].s) {\n      var i = 0;\n      var len = (this || _global).data.k.k.length;\n\n      while (i < len) {\n        if (!this.comparePoints((this || _global).data.k.k[i].s, (this || _global).data.p)) {\n          return false;\n        }\n\n        i += 1;\n      }\n    } else if (!this.comparePoints((this || _global).data.k.k, (this || _global).data.p)) {\n      return false;\n    }\n\n    return true;\n  };\n\n  GradientProperty.prototype.getValue = function (forceRender) {\n    (this || _global).prop.getValue();\n\n    (this || _global)._mdf = false;\n    (this || _global)._cmdf = false;\n    (this || _global)._omdf = false;\n\n    if ((this || _global).prop._mdf || forceRender) {\n      var i;\n      var len = (this || _global).data.p * 4;\n      var mult;\n      var val;\n\n      for (i = 0; i < len; i += 1) {\n        mult = i % 4 === 0 ? 100 : 255;\n        val = Math.round((this || _global).prop.v[i] * mult);\n\n        if ((this || _global).c[i] !== val) {\n          (this || _global).c[i] = val;\n          (this || _global)._cmdf = !forceRender;\n        }\n      }\n\n      if ((this || _global).o.length) {\n        len = (this || _global).prop.v.length;\n\n        for (i = (this || _global).data.p * 4; i < len; i += 1) {\n          mult = i % 2 === 0 ? 100 : 1;\n          val = i % 2 === 0 ? Math.round((this || _global).prop.v[i] * 100) : (this || _global).prop.v[i];\n\n          if ((this || _global).o[i - (this || _global).data.p * 4] !== val) {\n            (this || _global).o[i - (this || _global).data.p * 4] = val;\n            (this || _global)._omdf = !forceRender;\n          }\n        }\n      }\n\n      (this || _global)._mdf = !forceRender;\n    }\n  };\n\n  extendPrototype([DynamicPropertyContainer], GradientProperty);\n  /* exported buildShapeString */\n\n  var buildShapeString = function (pathNodes, length, closed, mat) {\n    if (length === 0) {\n      return \"\";\n    }\n\n    var _o = pathNodes.o;\n    var _i = pathNodes.i;\n    var _v = pathNodes.v;\n    var i;\n    var shapeString = \" M\" + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n\n    for (i = 1; i < length; i += 1) {\n      shapeString += \" C\" + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + \" \" + mat.applyToPointStringified(_i[i][0], _i[i][1]) + \" \" + mat.applyToPointStringified(_v[i][0], _v[i][1]);\n    }\n\n    if (closed && length) {\n      shapeString += \" C\" + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + \" \" + mat.applyToPointStringified(_i[0][0], _i[0][1]) + \" \" + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n      shapeString += \"z\";\n    }\n\n    return shapeString;\n  };\n  /* global Howl */\n\n  /* exported audioControllerFactory */\n\n\n  var audioControllerFactory = function () {\n    function AudioController(audioFactory) {\n      (this || _global).audios = [];\n      (this || _global).audioFactory = audioFactory;\n      (this || _global)._volume = 1;\n      (this || _global)._isMuted = false;\n    }\n\n    AudioController.prototype = {\n      addAudio: function (audio) {\n        (this || _global).audios.push(audio);\n      },\n      pause: function () {\n        var i;\n        var len = (this || _global).audios.length;\n\n        for (i = 0; i < len; i += 1) {\n          (this || _global).audios[i].pause();\n        }\n      },\n      resume: function () {\n        var i;\n        var len = (this || _global).audios.length;\n\n        for (i = 0; i < len; i += 1) {\n          (this || _global).audios[i].resume();\n        }\n      },\n      setRate: function (rateValue) {\n        var i;\n        var len = (this || _global).audios.length;\n\n        for (i = 0; i < len; i += 1) {\n          (this || _global).audios[i].setRate(rateValue);\n        }\n      },\n      createAudio: function (assetPath) {\n        if ((this || _global).audioFactory) {\n          return this.audioFactory(assetPath);\n        }\n\n        if (Howl) {\n          return new Howl({\n            src: [assetPath]\n          });\n        }\n\n        return {\n          isPlaying: false,\n          play: function () {\n            (this || _global).isPlaying = true;\n          },\n          seek: function () {\n            (this || _global).isPlaying = false;\n          },\n          playing: function () {},\n          rate: function () {},\n          setVolume: function () {}\n        };\n      },\n      setAudioFactory: function (audioFactory) {\n        (this || _global).audioFactory = audioFactory;\n      },\n      setVolume: function (value) {\n        (this || _global)._volume = value;\n\n        this._updateVolume();\n      },\n      mute: function () {\n        (this || _global)._isMuted = true;\n\n        this._updateVolume();\n      },\n      unmute: function () {\n        (this || _global)._isMuted = false;\n\n        this._updateVolume();\n      },\n      getVolume: function () {\n        return (this || _global)._volume;\n      },\n      _updateVolume: function () {\n        var i;\n        var len = (this || _global).audios.length;\n\n        for (i = 0; i < len; i += 1) {\n          (this || _global).audios[i].volume((this || _global)._volume * ((this || _global)._isMuted ? 0 : 1));\n        }\n      }\n    };\n    return function () {\n      return new AudioController();\n    };\n  }();\n  /* global createTag, createNS, isSafari, assetLoader */\n\n  /* exported ImagePreloader */\n\n\n  var ImagePreloader = function () {\n    var proxyImage = function () {\n      var canvas = createTag(\"canvas\");\n      canvas.width = 1;\n      canvas.height = 1;\n      var ctx = canvas.getContext(\"2d\");\n      ctx.fillStyle = \"rgba(0,0,0,0)\";\n      ctx.fillRect(0, 0, 1, 1);\n      return canvas;\n    }();\n\n    function imageLoaded() {\n      (this || _global).loadedAssets += 1;\n\n      if ((this || _global).loadedAssets === (this || _global).totalImages && (this || _global).loadedFootagesCount === (this || _global).totalFootages) {\n        if ((this || _global).imagesLoadedCb) {\n          this.imagesLoadedCb(null);\n        }\n      }\n    }\n\n    function footageLoaded() {\n      (this || _global).loadedFootagesCount += 1;\n\n      if ((this || _global).loadedAssets === (this || _global).totalImages && (this || _global).loadedFootagesCount === (this || _global).totalFootages) {\n        if ((this || _global).imagesLoadedCb) {\n          this.imagesLoadedCb(null);\n        }\n      }\n    }\n\n    function getAssetsPath(assetData, assetsPath, originalPath) {\n      var path = \"\";\n\n      if (assetData.e) {\n        path = assetData.p;\n      } else if (assetsPath) {\n        var imagePath = assetData.p;\n\n        if (imagePath.indexOf(\"images/\") !== -1) {\n          imagePath = imagePath.split(\"/\")[1];\n        }\n\n        path = assetsPath + imagePath;\n      } else {\n        path = originalPath;\n        path += assetData.u ? assetData.u : \"\";\n        path += assetData.p;\n      }\n\n      return path;\n    }\n\n    function testImageLoaded(img) {\n      var _count = 0;\n      var intervalId = setInterval(function () {\n        var box = img.getBBox();\n\n        if (box.width || _count > 500) {\n          this._imageLoaded();\n\n          clearInterval(intervalId);\n        }\n\n        _count += 1;\n      }.bind(this || _global), 50);\n    }\n\n    function createImageData(assetData) {\n      var path = getAssetsPath(assetData, (this || _global).assetsPath, (this || _global).path);\n      var img = createNS(\"image\");\n\n      if (isSafari) {\n        this.testImageLoaded(img);\n      } else {\n        img.addEventListener(\"load\", (this || _global)._imageLoaded, false);\n      }\n\n      img.addEventListener(\"error\", function () {\n        ob.img = proxyImage;\n\n        this._imageLoaded();\n      }.bind(this || _global), false);\n      img.setAttributeNS(\"http://www.w3.org/1999/xlink\", \"href\", path);\n\n      if ((this || _global)._elementHelper.append) {\n        (this || _global)._elementHelper.append(img);\n      } else {\n        (this || _global)._elementHelper.appendChild(img);\n      }\n\n      var ob = {\n        img: img,\n        assetData: assetData\n      };\n      return ob;\n    }\n\n    function createImgData(assetData) {\n      var path = getAssetsPath(assetData, (this || _global).assetsPath, (this || _global).path);\n      var img = createTag(\"img\");\n      img.crossOrigin = \"anonymous\";\n      img.addEventListener(\"load\", (this || _global)._imageLoaded, false);\n      img.addEventListener(\"error\", function () {\n        ob.img = proxyImage;\n\n        this._imageLoaded();\n      }.bind(this || _global), false);\n      img.src = path;\n      var ob = {\n        img: img,\n        assetData: assetData\n      };\n      return ob;\n    }\n\n    function createFootageData(data) {\n      var ob = {\n        assetData: data\n      };\n      var path = getAssetsPath(data, (this || _global).assetsPath, (this || _global).path);\n      assetLoader.load(path, function (footageData) {\n        ob.img = footageData;\n\n        this._footageLoaded();\n      }.bind(this || _global), function () {\n        ob.img = {};\n\n        this._footageLoaded();\n      }.bind(this || _global));\n      return ob;\n    }\n\n    function loadAssets(assets, cb) {\n      (this || _global).imagesLoadedCb = cb;\n      var i;\n      var len = assets.length;\n\n      for (i = 0; i < len; i += 1) {\n        if (!assets[i].layers) {\n          if (!assets[i].t) {\n            (this || _global).totalImages += 1;\n\n            (this || _global).images.push(this._createImageData(assets[i]));\n          } else if (assets[i].t === 3) {\n            (this || _global).totalFootages += 1;\n\n            (this || _global).images.push(this.createFootageData(assets[i]));\n          }\n        }\n      }\n    }\n\n    function setPath(path) {\n      (this || _global).path = path || \"\";\n    }\n\n    function setAssetsPath(path) {\n      (this || _global).assetsPath = path || \"\";\n    }\n\n    function getAsset(assetData) {\n      var i = 0;\n      var len = (this || _global).images.length;\n\n      while (i < len) {\n        if ((this || _global).images[i].assetData === assetData) {\n          return (this || _global).images[i].img;\n        }\n\n        i += 1;\n      }\n\n      return null;\n    }\n\n    function destroy() {\n      (this || _global).imagesLoadedCb = null;\n      (this || _global).images.length = 0;\n    }\n\n    function loadedImages() {\n      return (this || _global).totalImages === (this || _global).loadedAssets;\n    }\n\n    function loadedFootages() {\n      return (this || _global).totalFootages === (this || _global).loadedFootagesCount;\n    }\n\n    function setCacheType(type, elementHelper) {\n      if (type === \"svg\") {\n        (this || _global)._elementHelper = elementHelper;\n        (this || _global)._createImageData = (this || _global).createImageData.bind(this || _global);\n      } else {\n        (this || _global)._createImageData = (this || _global).createImgData.bind(this || _global);\n      }\n    }\n\n    function ImagePreloaderFactory() {\n      (this || _global)._imageLoaded = imageLoaded.bind(this || _global);\n      (this || _global)._footageLoaded = footageLoaded.bind(this || _global);\n      (this || _global).testImageLoaded = testImageLoaded.bind(this || _global);\n      (this || _global).createFootageData = createFootageData.bind(this || _global);\n      (this || _global).assetsPath = \"\";\n      (this || _global).path = \"\";\n      (this || _global).totalImages = 0;\n      (this || _global).totalFootages = 0;\n      (this || _global).loadedAssets = 0;\n      (this || _global).loadedFootagesCount = 0;\n      (this || _global).imagesLoadedCb = null;\n      (this || _global).images = [];\n    }\n\n    ImagePreloaderFactory.prototype = {\n      loadAssets: loadAssets,\n      setAssetsPath: setAssetsPath,\n      setPath: setPath,\n      loadedImages: loadedImages,\n      loadedFootages: loadedFootages,\n      destroy: destroy,\n      getAsset: getAsset,\n      createImgData: createImgData,\n      createImageData: createImageData,\n      imageLoaded: imageLoaded,\n      footageLoaded: footageLoaded,\n      setCacheType: setCacheType\n    };\n    return ImagePreloaderFactory;\n  }();\n  /* exported featureSupport */\n\n\n  var featureSupport = function () {\n    var ob = {\n      maskType: true\n    };\n\n    if (/MSIE 10/i.test(navigator.userAgent) || /MSIE 9/i.test(navigator.userAgent) || /rv:11.0/i.test(navigator.userAgent) || /Edge\\/\\d./i.test(navigator.userAgent)) {\n      ob.maskType = false;\n    }\n\n    return ob;\n  }();\n  /* global createNS */\n\n  /* exported filtersFactory */\n\n\n  var filtersFactory = function () {\n    var ob = {};\n    ob.createFilter = createFilter;\n    ob.createAlphaToLuminanceFilter = createAlphaToLuminanceFilter;\n\n    function createFilter(filId, skipCoordinates) {\n      var fil = createNS(\"filter\");\n      fil.setAttribute(\"id\", filId);\n\n      if (skipCoordinates !== true) {\n        fil.setAttribute(\"filterUnits\", \"objectBoundingBox\");\n        fil.setAttribute(\"x\", \"0%\");\n        fil.setAttribute(\"y\", \"0%\");\n        fil.setAttribute(\"width\", \"100%\");\n        fil.setAttribute(\"height\", \"100%\");\n      }\n\n      return fil;\n    }\n\n    function createAlphaToLuminanceFilter() {\n      var feColorMatrix = createNS(\"feColorMatrix\");\n      feColorMatrix.setAttribute(\"type\", \"matrix\");\n      feColorMatrix.setAttribute(\"color-interpolation-filters\", \"sRGB\");\n      feColorMatrix.setAttribute(\"values\", \"0 0 0 1 0  0 0 0 1 0  0 0 0 1 0  0 0 0 1 1\");\n      return feColorMatrix;\n    }\n\n    return ob;\n  }();\n  /* exported assetLoader */\n\n\n  var assetLoader = function () {\n    function formatResponse(xhr) {\n      if (xhr.response && typeof xhr.response === \"object\") {\n        return xhr.response;\n      }\n\n      if (xhr.response && typeof xhr.response === \"string\") {\n        return JSON.parse(xhr.response);\n      }\n\n      if (xhr.responseText) {\n        return JSON.parse(xhr.responseText);\n      }\n\n      return null;\n    }\n\n    function loadAsset(path, callback, errorCallback) {\n      var response;\n      var xhr = new XMLHttpRequest(); // set responseType after calling open or IE will break.\n\n      try {\n        // This crashes on Android WebView prior to KitKat\n        xhr.responseType = \"json\";\n      } catch (err) {} // eslint-disable-line no-empty\n\n\n      xhr.onreadystatechange = function () {\n        if (xhr.readyState === 4) {\n          if (xhr.status === 200) {\n            response = formatResponse(xhr);\n            callback(response);\n          } else {\n            try {\n              response = formatResponse(xhr);\n              callback(response);\n            } catch (err) {\n              if (errorCallback) {\n                errorCallback(err);\n              }\n            }\n          }\n        }\n      };\n\n      xhr.open(\"GET\", path, true);\n      xhr.send();\n    }\n\n    return {\n      load: loadAsset\n    };\n  }();\n  /* global createSizedArray, PropertyFactory, TextAnimatorDataProperty, bez, addHueToRGB,\r\n    addSaturationToRGB, addBrightnessToRGB, LetterProps, Matrix, extendPrototype, DynamicPropertyContainer */\n\n\n  function TextAnimatorProperty(textData, renderType, elem) {\n    (this || _global)._isFirstFrame = true;\n    (this || _global)._hasMaskedPath = false;\n    (this || _global)._frameId = -1;\n    (this || _global)._textData = textData;\n    (this || _global)._renderType = renderType;\n    (this || _global)._elem = elem;\n    (this || _global)._animatorsData = createSizedArray((this || _global)._textData.a.length);\n    (this || _global)._pathData = {};\n    (this || _global)._moreOptions = {\n      alignment: {}\n    };\n    (this || _global).renderedLetters = [];\n    (this || _global).lettersChangedFlag = false;\n    this.initDynamicPropertyContainer(elem);\n  }\n\n  TextAnimatorProperty.prototype.searchProperties = function () {\n    var i;\n    var len = (this || _global)._textData.a.length;\n    var animatorProps;\n    var getProp = PropertyFactory.getProp;\n\n    for (i = 0; i < len; i += 1) {\n      animatorProps = (this || _global)._textData.a[i];\n      (this || _global)._animatorsData[i] = new TextAnimatorDataProperty((this || _global)._elem, animatorProps, this || _global);\n    }\n\n    if ((this || _global)._textData.p && \"m\" in (this || _global)._textData.p) {\n      (this || _global)._pathData = {\n        f: getProp((this || _global)._elem, (this || _global)._textData.p.f, 0, 0, this || _global),\n        l: getProp((this || _global)._elem, (this || _global)._textData.p.l, 0, 0, this || _global),\n        r: (this || _global)._textData.p.r,\n        m: (this || _global)._elem.maskManager.getMaskProperty((this || _global)._textData.p.m)\n      };\n      (this || _global)._hasMaskedPath = true;\n    } else {\n      (this || _global)._hasMaskedPath = false;\n    }\n\n    (this || _global)._moreOptions.alignment = getProp((this || _global)._elem, (this || _global)._textData.m.a, 1, 0, this || _global);\n  };\n\n  TextAnimatorProperty.prototype.getMeasures = function (documentData, lettersChangedFlag) {\n    (this || _global).lettersChangedFlag = lettersChangedFlag;\n\n    if (!(this || _global)._mdf && !(this || _global)._isFirstFrame && !lettersChangedFlag && (!(this || _global)._hasMaskedPath || !(this || _global)._pathData.m._mdf)) {\n      return;\n    }\n\n    (this || _global)._isFirstFrame = false;\n    var alignment = (this || _global)._moreOptions.alignment.v;\n    var animators = (this || _global)._animatorsData;\n    var textData = (this || _global)._textData;\n    var matrixHelper = (this || _global).mHelper;\n    var renderType = (this || _global)._renderType;\n    var renderedLettersCount = (this || _global).renderedLetters.length;\n    var xPos;\n    var yPos;\n    var i;\n    var len;\n    var letters = documentData.l;\n    var pathInfo;\n    var currentLength;\n    var currentPoint;\n    var segmentLength;\n    var flag;\n    var pointInd;\n    var segmentInd;\n    var prevPoint;\n    var points;\n    var segments;\n    var partialLength;\n    var totalLength;\n    var perc;\n    var tanAngle;\n    var mask;\n\n    if ((this || _global)._hasMaskedPath) {\n      mask = (this || _global)._pathData.m;\n\n      if (!(this || _global)._pathData.n || (this || _global)._pathData._mdf) {\n        var paths = mask.v;\n\n        if ((this || _global)._pathData.r) {\n          paths = paths.reverse();\n        } // TODO: release bezier data cached from previous pathInfo: this._pathData.pi\n\n\n        pathInfo = {\n          tLength: 0,\n          segments: []\n        };\n        len = paths._length - 1;\n        var bezierData;\n        totalLength = 0;\n\n        for (i = 0; i < len; i += 1) {\n          bezierData = bez.buildBezierData(paths.v[i], paths.v[i + 1], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[i + 1][0] - paths.v[i + 1][0], paths.i[i + 1][1] - paths.v[i + 1][1]]);\n          pathInfo.tLength += bezierData.segmentLength;\n          pathInfo.segments.push(bezierData);\n          totalLength += bezierData.segmentLength;\n        }\n\n        i = len;\n\n        if (mask.v.c) {\n          bezierData = bez.buildBezierData(paths.v[i], paths.v[0], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[0][0] - paths.v[0][0], paths.i[0][1] - paths.v[0][1]]);\n          pathInfo.tLength += bezierData.segmentLength;\n          pathInfo.segments.push(bezierData);\n          totalLength += bezierData.segmentLength;\n        }\n\n        (this || _global)._pathData.pi = pathInfo;\n      }\n\n      pathInfo = (this || _global)._pathData.pi;\n      currentLength = (this || _global)._pathData.f.v;\n      segmentInd = 0;\n      pointInd = 1;\n      segmentLength = 0;\n      flag = true;\n      segments = pathInfo.segments;\n\n      if (currentLength < 0 && mask.v.c) {\n        if (pathInfo.tLength < Math.abs(currentLength)) {\n          currentLength = -Math.abs(currentLength) % pathInfo.tLength;\n        }\n\n        segmentInd = segments.length - 1;\n        points = segments[segmentInd].points;\n        pointInd = points.length - 1;\n\n        while (currentLength < 0) {\n          currentLength += points[pointInd].partialLength;\n          pointInd -= 1;\n\n          if (pointInd < 0) {\n            segmentInd -= 1;\n            points = segments[segmentInd].points;\n            pointInd = points.length - 1;\n          }\n        }\n      }\n\n      points = segments[segmentInd].points;\n      prevPoint = points[pointInd - 1];\n      currentPoint = points[pointInd];\n      partialLength = currentPoint.partialLength;\n    }\n\n    len = letters.length;\n    xPos = 0;\n    yPos = 0;\n    var yOff = documentData.finalSize * 1.2 * 0.714;\n    var firstLine = true;\n    var animatorProps;\n    var animatorSelector;\n    var j;\n    var jLen;\n    var letterValue;\n    jLen = animators.length;\n    var mult;\n    var ind = -1;\n    var offf;\n    var xPathPos;\n    var yPathPos;\n    var initPathPos = currentLength;\n    var initSegmentInd = segmentInd;\n    var initPointInd = pointInd;\n    var currentLine = -1;\n    var elemOpacity;\n    var sc;\n    var sw;\n    var fc;\n    var k;\n    var letterSw;\n    var letterSc;\n    var letterFc;\n    var letterM = \"\";\n    var letterP = (this || _global).defaultPropsArray;\n    var letterO; //\n\n    if (documentData.j === 2 || documentData.j === 1) {\n      var animatorJustifyOffset = 0;\n      var animatorFirstCharOffset = 0;\n      var justifyOffsetMult = documentData.j === 2 ? -0.5 : -1;\n      var lastIndex = 0;\n      var isNewLine = true;\n\n      for (i = 0; i < len; i += 1) {\n        if (letters[i].n) {\n          if (animatorJustifyOffset) {\n            animatorJustifyOffset += animatorFirstCharOffset;\n          }\n\n          while (lastIndex < i) {\n            letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n            lastIndex += 1;\n          }\n\n          animatorJustifyOffset = 0;\n          isNewLine = true;\n        } else {\n          for (j = 0; j < jLen; j += 1) {\n            animatorProps = animators[j].a;\n\n            if (animatorProps.t.propType) {\n              if (isNewLine && documentData.j === 2) {\n                animatorFirstCharOffset += animatorProps.t.v * justifyOffsetMult;\n              }\n\n              animatorSelector = animators[j].s;\n              mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n              if (mult.length) {\n                animatorJustifyOffset += animatorProps.t.v * mult[0] * justifyOffsetMult;\n              } else {\n                animatorJustifyOffset += animatorProps.t.v * mult * justifyOffsetMult;\n              }\n            }\n          }\n\n          isNewLine = false;\n        }\n      }\n\n      if (animatorJustifyOffset) {\n        animatorJustifyOffset += animatorFirstCharOffset;\n      }\n\n      while (lastIndex < i) {\n        letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n        lastIndex += 1;\n      }\n    } //\n\n\n    for (i = 0; i < len; i += 1) {\n      matrixHelper.reset();\n      elemOpacity = 1;\n\n      if (letters[i].n) {\n        xPos = 0;\n        yPos += documentData.yOffset;\n        yPos += firstLine ? 1 : 0;\n        currentLength = initPathPos;\n        firstLine = false;\n\n        if ((this || _global)._hasMaskedPath) {\n          segmentInd = initSegmentInd;\n          pointInd = initPointInd;\n          points = segments[segmentInd].points;\n          prevPoint = points[pointInd - 1];\n          currentPoint = points[pointInd];\n          partialLength = currentPoint.partialLength;\n          segmentLength = 0;\n        }\n\n        letterM = \"\";\n        letterFc = \"\";\n        letterSw = \"\";\n        letterO = \"\";\n        letterP = (this || _global).defaultPropsArray;\n      } else {\n        if ((this || _global)._hasMaskedPath) {\n          if (currentLine !== letters[i].line) {\n            switch (documentData.j) {\n              case 1:\n                currentLength += totalLength - documentData.lineWidths[letters[i].line];\n                break;\n\n              case 2:\n                currentLength += (totalLength - documentData.lineWidths[letters[i].line]) / 2;\n                break;\n\n              default:\n                break;\n            }\n\n            currentLine = letters[i].line;\n          }\n\n          if (ind !== letters[i].ind) {\n            if (letters[ind]) {\n              currentLength += letters[ind].extra;\n            }\n\n            currentLength += letters[i].an / 2;\n            ind = letters[i].ind;\n          }\n\n          currentLength += alignment[0] * letters[i].an * 0.005;\n          var animatorOffset = 0;\n\n          for (j = 0; j < jLen; j += 1) {\n            animatorProps = animators[j].a;\n\n            if (animatorProps.p.propType) {\n              animatorSelector = animators[j].s;\n              mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n              if (mult.length) {\n                animatorOffset += animatorProps.p.v[0] * mult[0];\n              } else {\n                animatorOffset += animatorProps.p.v[0] * mult;\n              }\n            }\n\n            if (animatorProps.a.propType) {\n              animatorSelector = animators[j].s;\n              mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n              if (mult.length) {\n                animatorOffset += animatorProps.a.v[0] * mult[0];\n              } else {\n                animatorOffset += animatorProps.a.v[0] * mult;\n              }\n            }\n          }\n\n          flag = true;\n\n          while (flag) {\n            if (segmentLength + partialLength >= currentLength + animatorOffset || !points) {\n              perc = (currentLength + animatorOffset - segmentLength) / currentPoint.partialLength;\n              xPathPos = prevPoint.point[0] + (currentPoint.point[0] - prevPoint.point[0]) * perc;\n              yPathPos = prevPoint.point[1] + (currentPoint.point[1] - prevPoint.point[1]) * perc;\n              matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -(alignment[1] * yOff) * 0.01);\n              flag = false;\n            } else if (points) {\n              segmentLength += currentPoint.partialLength;\n              pointInd += 1;\n\n              if (pointInd >= points.length) {\n                pointInd = 0;\n                segmentInd += 1;\n\n                if (!segments[segmentInd]) {\n                  if (mask.v.c) {\n                    pointInd = 0;\n                    segmentInd = 0;\n                    points = segments[segmentInd].points;\n                  } else {\n                    segmentLength -= currentPoint.partialLength;\n                    points = null;\n                  }\n                } else {\n                  points = segments[segmentInd].points;\n                }\n              }\n\n              if (points) {\n                prevPoint = currentPoint;\n                currentPoint = points[pointInd];\n                partialLength = currentPoint.partialLength;\n              }\n            }\n          }\n\n          offf = letters[i].an / 2 - letters[i].add;\n          matrixHelper.translate(-offf, 0, 0);\n        } else {\n          offf = letters[i].an / 2 - letters[i].add;\n          matrixHelper.translate(-offf, 0, 0); // Grouping alignment\n\n          matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -alignment[1] * yOff * 0.01, 0);\n        }\n\n        for (j = 0; j < jLen; j += 1) {\n          animatorProps = animators[j].a;\n\n          if (animatorProps.t.propType) {\n            animatorSelector = animators[j].s;\n            mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars); // This condition is to prevent applying tracking to first character in each line. Might be better to use a boolean \"isNewLine\"\n\n            if (xPos !== 0 || documentData.j !== 0) {\n              if ((this || _global)._hasMaskedPath) {\n                if (mult.length) {\n                  currentLength += animatorProps.t.v * mult[0];\n                } else {\n                  currentLength += animatorProps.t.v * mult;\n                }\n              } else if (mult.length) {\n                xPos += animatorProps.t.v * mult[0];\n              } else {\n                xPos += animatorProps.t.v * mult;\n              }\n            }\n          }\n        }\n\n        if (documentData.strokeWidthAnim) {\n          sw = documentData.sw || 0;\n        }\n\n        if (documentData.strokeColorAnim) {\n          if (documentData.sc) {\n            sc = [documentData.sc[0], documentData.sc[1], documentData.sc[2]];\n          } else {\n            sc = [0, 0, 0];\n          }\n        }\n\n        if (documentData.fillColorAnim && documentData.fc) {\n          fc = [documentData.fc[0], documentData.fc[1], documentData.fc[2]];\n        }\n\n        for (j = 0; j < jLen; j += 1) {\n          animatorProps = animators[j].a;\n\n          if (animatorProps.a.propType) {\n            animatorSelector = animators[j].s;\n            mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n            if (mult.length) {\n              matrixHelper.translate(-animatorProps.a.v[0] * mult[0], -animatorProps.a.v[1] * mult[1], animatorProps.a.v[2] * mult[2]);\n            } else {\n              matrixHelper.translate(-animatorProps.a.v[0] * mult, -animatorProps.a.v[1] * mult, animatorProps.a.v[2] * mult);\n            }\n          }\n        }\n\n        for (j = 0; j < jLen; j += 1) {\n          animatorProps = animators[j].a;\n\n          if (animatorProps.s.propType) {\n            animatorSelector = animators[j].s;\n            mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n            if (mult.length) {\n              matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult[0], 1 + (animatorProps.s.v[1] - 1) * mult[1], 1);\n            } else {\n              matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult, 1 + (animatorProps.s.v[1] - 1) * mult, 1);\n            }\n          }\n        }\n\n        for (j = 0; j < jLen; j += 1) {\n          animatorProps = animators[j].a;\n          animatorSelector = animators[j].s;\n          mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n          if (animatorProps.sk.propType) {\n            if (mult.length) {\n              matrixHelper.skewFromAxis(-animatorProps.sk.v * mult[0], animatorProps.sa.v * mult[1]);\n            } else {\n              matrixHelper.skewFromAxis(-animatorProps.sk.v * mult, animatorProps.sa.v * mult);\n            }\n          }\n\n          if (animatorProps.r.propType) {\n            if (mult.length) {\n              matrixHelper.rotateZ(-animatorProps.r.v * mult[2]);\n            } else {\n              matrixHelper.rotateZ(-animatorProps.r.v * mult);\n            }\n          }\n\n          if (animatorProps.ry.propType) {\n            if (mult.length) {\n              matrixHelper.rotateY(animatorProps.ry.v * mult[1]);\n            } else {\n              matrixHelper.rotateY(animatorProps.ry.v * mult);\n            }\n          }\n\n          if (animatorProps.rx.propType) {\n            if (mult.length) {\n              matrixHelper.rotateX(animatorProps.rx.v * mult[0]);\n            } else {\n              matrixHelper.rotateX(animatorProps.rx.v * mult);\n            }\n          }\n\n          if (animatorProps.o.propType) {\n            if (mult.length) {\n              elemOpacity += (animatorProps.o.v * mult[0] - elemOpacity) * mult[0];\n            } else {\n              elemOpacity += (animatorProps.o.v * mult - elemOpacity) * mult;\n            }\n          }\n\n          if (documentData.strokeWidthAnim && animatorProps.sw.propType) {\n            if (mult.length) {\n              sw += animatorProps.sw.v * mult[0];\n            } else {\n              sw += animatorProps.sw.v * mult;\n            }\n          }\n\n          if (documentData.strokeColorAnim && animatorProps.sc.propType) {\n            for (k = 0; k < 3; k += 1) {\n              if (mult.length) {\n                sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult[0];\n              } else {\n                sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult;\n              }\n            }\n          }\n\n          if (documentData.fillColorAnim && documentData.fc) {\n            if (animatorProps.fc.propType) {\n              for (k = 0; k < 3; k += 1) {\n                if (mult.length) {\n                  fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult[0];\n                } else {\n                  fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult;\n                }\n              }\n            }\n\n            if (animatorProps.fh.propType) {\n              if (mult.length) {\n                fc = addHueToRGB(fc, animatorProps.fh.v * mult[0]);\n              } else {\n                fc = addHueToRGB(fc, animatorProps.fh.v * mult);\n              }\n            }\n\n            if (animatorProps.fs.propType) {\n              if (mult.length) {\n                fc = addSaturationToRGB(fc, animatorProps.fs.v * mult[0]);\n              } else {\n                fc = addSaturationToRGB(fc, animatorProps.fs.v * mult);\n              }\n            }\n\n            if (animatorProps.fb.propType) {\n              if (mult.length) {\n                fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult[0]);\n              } else {\n                fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult);\n              }\n            }\n          }\n        }\n\n        for (j = 0; j < jLen; j += 1) {\n          animatorProps = animators[j].a;\n\n          if (animatorProps.p.propType) {\n            animatorSelector = animators[j].s;\n            mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n            if ((this || _global)._hasMaskedPath) {\n              if (mult.length) {\n                matrixHelper.translate(0, animatorProps.p.v[1] * mult[0], -animatorProps.p.v[2] * mult[1]);\n              } else {\n                matrixHelper.translate(0, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n              }\n            } else if (mult.length) {\n              matrixHelper.translate(animatorProps.p.v[0] * mult[0], animatorProps.p.v[1] * mult[1], -animatorProps.p.v[2] * mult[2]);\n            } else {\n              matrixHelper.translate(animatorProps.p.v[0] * mult, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n            }\n          }\n        }\n\n        if (documentData.strokeWidthAnim) {\n          letterSw = sw < 0 ? 0 : sw;\n        }\n\n        if (documentData.strokeColorAnim) {\n          letterSc = \"rgb(\" + Math.round(sc[0] * 255) + \",\" + Math.round(sc[1] * 255) + \",\" + Math.round(sc[2] * 255) + \")\";\n        }\n\n        if (documentData.fillColorAnim && documentData.fc) {\n          letterFc = \"rgb(\" + Math.round(fc[0] * 255) + \",\" + Math.round(fc[1] * 255) + \",\" + Math.round(fc[2] * 255) + \")\";\n        }\n\n        if ((this || _global)._hasMaskedPath) {\n          matrixHelper.translate(0, -documentData.ls);\n          matrixHelper.translate(0, alignment[1] * yOff * 0.01 + yPos, 0);\n\n          if (textData.p.p) {\n            tanAngle = (currentPoint.point[1] - prevPoint.point[1]) / (currentPoint.point[0] - prevPoint.point[0]);\n            var rot = Math.atan(tanAngle) * 180 / Math.PI;\n\n            if (currentPoint.point[0] < prevPoint.point[0]) {\n              rot += 180;\n            }\n\n            matrixHelper.rotate(-rot * Math.PI / 180);\n          }\n\n          matrixHelper.translate(xPathPos, yPathPos, 0);\n          currentLength -= alignment[0] * letters[i].an * 0.005;\n\n          if (letters[i + 1] && ind !== letters[i + 1].ind) {\n            currentLength += letters[i].an / 2;\n            currentLength += documentData.tr * 0.001 * documentData.finalSize;\n          }\n        } else {\n          matrixHelper.translate(xPos, yPos, 0);\n\n          if (documentData.ps) {\n            // matrixHelper.translate(documentData.ps[0],documentData.ps[1],0);\n            matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n          }\n\n          switch (documentData.j) {\n            case 1:\n              matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]), 0, 0);\n              break;\n\n            case 2:\n              matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]) / 2, 0, 0);\n              break;\n\n            default:\n              break;\n          }\n\n          matrixHelper.translate(0, -documentData.ls);\n          matrixHelper.translate(offf, 0, 0);\n          matrixHelper.translate(alignment[0] * letters[i].an * 0.005, alignment[1] * yOff * 0.01, 0);\n          xPos += letters[i].l + documentData.tr * 0.001 * documentData.finalSize;\n        }\n\n        if (renderType === \"html\") {\n          letterM = matrixHelper.toCSS();\n        } else if (renderType === \"svg\") {\n          letterM = matrixHelper.to2dCSS();\n        } else {\n          letterP = [matrixHelper.props[0], matrixHelper.props[1], matrixHelper.props[2], matrixHelper.props[3], matrixHelper.props[4], matrixHelper.props[5], matrixHelper.props[6], matrixHelper.props[7], matrixHelper.props[8], matrixHelper.props[9], matrixHelper.props[10], matrixHelper.props[11], matrixHelper.props[12], matrixHelper.props[13], matrixHelper.props[14], matrixHelper.props[15]];\n        }\n\n        letterO = elemOpacity;\n      }\n\n      if (renderedLettersCount <= i) {\n        letterValue = new LetterProps(letterO, letterSw, letterSc, letterFc, letterM, letterP);\n\n        (this || _global).renderedLetters.push(letterValue);\n\n        renderedLettersCount += 1;\n        (this || _global).lettersChangedFlag = true;\n      } else {\n        letterValue = (this || _global).renderedLetters[i];\n        (this || _global).lettersChangedFlag = letterValue.update(letterO, letterSw, letterSc, letterFc, letterM, letterP) || (this || _global).lettersChangedFlag;\n      }\n    }\n  };\n\n  TextAnimatorProperty.prototype.getValue = function () {\n    if ((this || _global)._elem.globalData.frameId === (this || _global)._frameId) {\n      return;\n    }\n\n    (this || _global)._frameId = (this || _global)._elem.globalData.frameId;\n    this.iterateDynamicProperties();\n  };\n\n  TextAnimatorProperty.prototype.mHelper = new Matrix();\n  TextAnimatorProperty.prototype.defaultPropsArray = [];\n  extendPrototype([DynamicPropertyContainer], TextAnimatorProperty);\n  /* global PropertyFactory, degToRads, TextSelectorProp */\n\n  /* exported TextAnimatorDataProperty */\n\n  function TextAnimatorDataProperty(elem, animatorProps, container) {\n    var defaultData = {\n      propType: false\n    };\n    var getProp = PropertyFactory.getProp;\n    var textAnimatorAnimatables = animatorProps.a;\n    (this || _global).a = {\n      r: textAnimatorAnimatables.r ? getProp(elem, textAnimatorAnimatables.r, 0, degToRads, container) : defaultData,\n      rx: textAnimatorAnimatables.rx ? getProp(elem, textAnimatorAnimatables.rx, 0, degToRads, container) : defaultData,\n      ry: textAnimatorAnimatables.ry ? getProp(elem, textAnimatorAnimatables.ry, 0, degToRads, container) : defaultData,\n      sk: textAnimatorAnimatables.sk ? getProp(elem, textAnimatorAnimatables.sk, 0, degToRads, container) : defaultData,\n      sa: textAnimatorAnimatables.sa ? getProp(elem, textAnimatorAnimatables.sa, 0, degToRads, container) : defaultData,\n      s: textAnimatorAnimatables.s ? getProp(elem, textAnimatorAnimatables.s, 1, 0.01, container) : defaultData,\n      a: textAnimatorAnimatables.a ? getProp(elem, textAnimatorAnimatables.a, 1, 0, container) : defaultData,\n      o: textAnimatorAnimatables.o ? getProp(elem, textAnimatorAnimatables.o, 0, 0.01, container) : defaultData,\n      p: textAnimatorAnimatables.p ? getProp(elem, textAnimatorAnimatables.p, 1, 0, container) : defaultData,\n      sw: textAnimatorAnimatables.sw ? getProp(elem, textAnimatorAnimatables.sw, 0, 0, container) : defaultData,\n      sc: textAnimatorAnimatables.sc ? getProp(elem, textAnimatorAnimatables.sc, 1, 0, container) : defaultData,\n      fc: textAnimatorAnimatables.fc ? getProp(elem, textAnimatorAnimatables.fc, 1, 0, container) : defaultData,\n      fh: textAnimatorAnimatables.fh ? getProp(elem, textAnimatorAnimatables.fh, 0, 0, container) : defaultData,\n      fs: textAnimatorAnimatables.fs ? getProp(elem, textAnimatorAnimatables.fs, 0, 0.01, container) : defaultData,\n      fb: textAnimatorAnimatables.fb ? getProp(elem, textAnimatorAnimatables.fb, 0, 0.01, container) : defaultData,\n      t: textAnimatorAnimatables.t ? getProp(elem, textAnimatorAnimatables.t, 0, 0, container) : defaultData\n    };\n    (this || _global).s = TextSelectorProp.getTextSelectorProp(elem, animatorProps.s, container);\n    (this || _global).s.t = animatorProps.s.t;\n  }\n\n  function LetterProps(o, sw, sc, fc, m, p) {\n    (this || _global).o = o;\n    (this || _global).sw = sw;\n    (this || _global).sc = sc;\n    (this || _global).fc = fc;\n    (this || _global).m = m;\n    (this || _global).p = p;\n    (this || _global)._mdf = {\n      o: true,\n      sw: !!sw,\n      sc: !!sc,\n      fc: !!fc,\n      m: true,\n      p: true\n    };\n  }\n\n  LetterProps.prototype.update = function (o, sw, sc, fc, m, p) {\n    (this || _global)._mdf.o = false;\n    (this || _global)._mdf.sw = false;\n    (this || _global)._mdf.sc = false;\n    (this || _global)._mdf.fc = false;\n    (this || _global)._mdf.m = false;\n    (this || _global)._mdf.p = false;\n    var updated = false;\n\n    if ((this || _global).o !== o) {\n      (this || _global).o = o;\n      (this || _global)._mdf.o = true;\n      updated = true;\n    }\n\n    if ((this || _global).sw !== sw) {\n      (this || _global).sw = sw;\n      (this || _global)._mdf.sw = true;\n      updated = true;\n    }\n\n    if ((this || _global).sc !== sc) {\n      (this || _global).sc = sc;\n      (this || _global)._mdf.sc = true;\n      updated = true;\n    }\n\n    if ((this || _global).fc !== fc) {\n      (this || _global).fc = fc;\n      (this || _global)._mdf.fc = true;\n      updated = true;\n    }\n\n    if ((this || _global).m !== m) {\n      (this || _global).m = m;\n      (this || _global)._mdf.m = true;\n      updated = true;\n    }\n\n    if (p.length && ((this || _global).p[0] !== p[0] || (this || _global).p[1] !== p[1] || (this || _global).p[4] !== p[4] || (this || _global).p[5] !== p[5] || (this || _global).p[12] !== p[12] || (this || _global).p[13] !== p[13])) {\n      (this || _global).p = p;\n      (this || _global)._mdf.p = true;\n      updated = true;\n    }\n\n    return updated;\n  };\n  /* global FontManager, initialDefaultFrame, getFontProperties */\n\n  /* exported TextProperty */\n\n\n  function TextProperty(elem, data) {\n    (this || _global)._frameId = initialDefaultFrame;\n    (this || _global).pv = \"\";\n    (this || _global).v = \"\";\n    (this || _global).kf = false;\n    (this || _global)._isFirstFrame = true;\n    (this || _global)._mdf = false;\n    (this || _global).data = data;\n    (this || _global).elem = elem;\n    (this || _global).comp = (this || _global).elem.comp;\n    (this || _global).keysIndex = 0;\n    (this || _global).canResize = false;\n    (this || _global).minimumFontSize = 1;\n    (this || _global).effectsSequence = [];\n    (this || _global).currentData = {\n      ascent: 0,\n      boxWidth: (this || _global).defaultBoxWidth,\n      f: \"\",\n      fStyle: \"\",\n      fWeight: \"\",\n      fc: \"\",\n      j: \"\",\n      justifyOffset: \"\",\n      l: [],\n      lh: 0,\n      lineWidths: [],\n      ls: \"\",\n      of: \"\",\n      s: \"\",\n      sc: \"\",\n      sw: 0,\n      t: 0,\n      tr: 0,\n      sz: 0,\n      ps: null,\n      fillColorAnim: false,\n      strokeColorAnim: false,\n      strokeWidthAnim: false,\n      yOffset: 0,\n      finalSize: 0,\n      finalText: [],\n      finalLineHeight: 0,\n      __complete: false\n    };\n    this.copyData((this || _global).currentData, (this || _global).data.d.k[0].s);\n\n    if (!this.searchProperty()) {\n      this.completeTextData((this || _global).currentData);\n    }\n  }\n\n  TextProperty.prototype.defaultBoxWidth = [0, 0];\n\n  TextProperty.prototype.copyData = function (obj, data) {\n    for (var s in data) {\n      if (Object.prototype.hasOwnProperty.call(data, s)) {\n        obj[s] = data[s];\n      }\n    }\n\n    return obj;\n  };\n\n  TextProperty.prototype.setCurrentData = function (data) {\n    if (!data.__complete) {\n      this.completeTextData(data);\n    }\n\n    (this || _global).currentData = data;\n    (this || _global).currentData.boxWidth = (this || _global).currentData.boxWidth || (this || _global).defaultBoxWidth;\n    (this || _global)._mdf = true;\n  };\n\n  TextProperty.prototype.searchProperty = function () {\n    return this.searchKeyframes();\n  };\n\n  TextProperty.prototype.searchKeyframes = function () {\n    (this || _global).kf = (this || _global).data.d.k.length > 1;\n\n    if ((this || _global).kf) {\n      this.addEffect((this || _global).getKeyframeValue.bind(this || _global));\n    }\n\n    return (this || _global).kf;\n  };\n\n  TextProperty.prototype.addEffect = function (effectFunction) {\n    (this || _global).effectsSequence.push(effectFunction);\n\n    (this || _global).elem.addDynamicProperty(this || _global);\n  };\n\n  TextProperty.prototype.getValue = function (_finalValue) {\n    if (((this || _global).elem.globalData.frameId === (this || _global).frameId || !(this || _global).effectsSequence.length) && !_finalValue) {\n      return;\n    }\n\n    (this || _global).currentData.t = (this || _global).data.d.k[(this || _global).keysIndex].s.t;\n    var currentValue = (this || _global).currentData;\n    var currentIndex = (this || _global).keysIndex;\n\n    if ((this || _global).lock) {\n      this.setCurrentData((this || _global).currentData);\n      return;\n    }\n\n    (this || _global).lock = true;\n    (this || _global)._mdf = false;\n    var i;\n    var len = (this || _global).effectsSequence.length;\n    var finalValue = _finalValue || (this || _global).data.d.k[(this || _global).keysIndex].s;\n\n    for (i = 0; i < len; i += 1) {\n      // Checking if index changed to prevent creating a new object every time the expression updates.\n      if (currentIndex !== (this || _global).keysIndex) {\n        finalValue = (this || _global).effectsSequence[i](finalValue, finalValue.t);\n      } else {\n        finalValue = (this || _global).effectsSequence[i]((this || _global).currentData, finalValue.t);\n      }\n    }\n\n    if (currentValue !== finalValue) {\n      this.setCurrentData(finalValue);\n    }\n\n    (this || _global).v = (this || _global).currentData;\n    (this || _global).pv = (this || _global).v;\n    (this || _global).lock = false;\n    (this || _global).frameId = (this || _global).elem.globalData.frameId;\n  };\n\n  TextProperty.prototype.getKeyframeValue = function () {\n    var textKeys = (this || _global).data.d.k;\n    var frameNum = (this || _global).elem.comp.renderedFrame;\n    var i = 0;\n    var len = textKeys.length;\n\n    while (i <= len - 1) {\n      if (i === len - 1 || textKeys[i + 1].t > frameNum) {\n        break;\n      }\n\n      i += 1;\n    }\n\n    if ((this || _global).keysIndex !== i) {\n      (this || _global).keysIndex = i;\n    }\n\n    return (this || _global).data.d.k[(this || _global).keysIndex].s;\n  };\n\n  TextProperty.prototype.buildFinalText = function (text) {\n    var combinedCharacters = FontManager.getCombinedCharacterCodes();\n    var charactersArray = [];\n    var i = 0;\n    var len = text.length;\n    var charCode;\n\n    while (i < len) {\n      charCode = text.charCodeAt(i);\n\n      if (combinedCharacters.indexOf(charCode) !== -1) {\n        charactersArray[charactersArray.length - 1] += text.charAt(i);\n      } else if (charCode >= 55296 && charCode <= 56319) {\n        charCode = text.charCodeAt(i + 1);\n\n        if (charCode >= 56320 && charCode <= 57343) {\n          charactersArray.push(text.substr(i, 2));\n          i += 1;\n        } else {\n          charactersArray.push(text.charAt(i));\n        }\n      } else {\n        charactersArray.push(text.charAt(i));\n      }\n\n      i += 1;\n    }\n\n    return charactersArray;\n  };\n\n  TextProperty.prototype.completeTextData = function (documentData) {\n    documentData.__complete = true;\n    var fontManager = (this || _global).elem.globalData.fontManager;\n    var data = (this || _global).data;\n    var letters = [];\n    var i;\n    var len;\n    var newLineFlag;\n    var index = 0;\n    var val;\n    var anchorGrouping = data.m.g;\n    var currentSize = 0;\n    var currentPos = 0;\n    var currentLine = 0;\n    var lineWidths = [];\n    var lineWidth = 0;\n    var maxLineWidth = 0;\n    var j;\n    var jLen;\n    var fontData = fontManager.getFontByName(documentData.f);\n    var charData;\n    var cLength = 0;\n    var fontProps = getFontProperties(fontData);\n    documentData.fWeight = fontProps.weight;\n    documentData.fStyle = fontProps.style;\n    documentData.finalSize = documentData.s;\n    documentData.finalText = this.buildFinalText(documentData.t);\n    len = documentData.finalText.length;\n    documentData.finalLineHeight = documentData.lh;\n    var trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n    var charCode;\n\n    if (documentData.sz) {\n      var flag = true;\n      var boxWidth = documentData.sz[0];\n      var boxHeight = documentData.sz[1];\n      var currentHeight;\n      var finalText;\n\n      while (flag) {\n        finalText = this.buildFinalText(documentData.t);\n        currentHeight = 0;\n        lineWidth = 0;\n        len = finalText.length;\n        trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n        var lastSpaceIndex = -1;\n\n        for (i = 0; i < len; i += 1) {\n          charCode = finalText[i].charCodeAt(0);\n          newLineFlag = false;\n\n          if (finalText[i] === \" \") {\n            lastSpaceIndex = i;\n          } else if (charCode === 13 || charCode === 3) {\n            lineWidth = 0;\n            newLineFlag = true;\n            currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n          }\n\n          if (fontManager.chars) {\n            charData = fontManager.getCharData(finalText[i], fontData.fStyle, fontData.fFamily);\n            cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n          } else {\n            // tCanvasHelper.font = documentData.s + 'px '+ fontData.fFamily;\n            cLength = fontManager.measureText(finalText[i], documentData.f, documentData.finalSize);\n          }\n\n          if (lineWidth + cLength > boxWidth && finalText[i] !== \" \") {\n            if (lastSpaceIndex === -1) {\n              len += 1;\n            } else {\n              i = lastSpaceIndex;\n            }\n\n            currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n            finalText.splice(i, lastSpaceIndex === i ? 1 : 0, \"\\r\"); // finalText = finalText.substr(0,i) + \"\\r\" + finalText.substr(i === lastSpaceIndex ? i + 1 : i);\n\n            lastSpaceIndex = -1;\n            lineWidth = 0;\n          } else {\n            lineWidth += cLength;\n            lineWidth += trackingOffset;\n          }\n        }\n\n        currentHeight += fontData.ascent * documentData.finalSize / 100;\n\n        if ((this || _global).canResize && documentData.finalSize > (this || _global).minimumFontSize && boxHeight < currentHeight) {\n          documentData.finalSize -= 1;\n          documentData.finalLineHeight = documentData.finalSize * documentData.lh / documentData.s;\n        } else {\n          documentData.finalText = finalText;\n          len = documentData.finalText.length;\n          flag = false;\n        }\n      }\n    }\n\n    lineWidth = -trackingOffset;\n    cLength = 0;\n    var uncollapsedSpaces = 0;\n    var currentChar;\n\n    for (i = 0; i < len; i += 1) {\n      newLineFlag = false;\n      currentChar = documentData.finalText[i];\n      charCode = currentChar.charCodeAt(0);\n\n      if (charCode === 13 || charCode === 3) {\n        uncollapsedSpaces = 0;\n        lineWidths.push(lineWidth);\n        maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n        lineWidth = -2 * trackingOffset;\n        val = \"\";\n        newLineFlag = true;\n        currentLine += 1;\n      } else {\n        val = currentChar;\n      }\n\n      if (fontManager.chars) {\n        charData = fontManager.getCharData(currentChar, fontData.fStyle, fontManager.getFontByName(documentData.f).fFamily);\n        cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n      } else {\n        // var charWidth = fontManager.measureText(val, documentData.f, documentData.finalSize);\n        // tCanvasHelper.font = documentData.finalSize + 'px '+ fontManager.getFontByName(documentData.f).fFamily;\n        cLength = fontManager.measureText(val, documentData.f, documentData.finalSize);\n      } //\n\n\n      if (currentChar === \" \") {\n        uncollapsedSpaces += cLength + trackingOffset;\n      } else {\n        lineWidth += cLength + trackingOffset + uncollapsedSpaces;\n        uncollapsedSpaces = 0;\n      }\n\n      letters.push({\n        l: cLength,\n        an: cLength,\n        add: currentSize,\n        n: newLineFlag,\n        anIndexes: [],\n        val: val,\n        line: currentLine,\n        animatorJustifyOffset: 0\n      });\n\n      if (anchorGrouping == 2) {\n        // eslint-disable-line eqeqeq\n        currentSize += cLength;\n\n        if (val === \"\" || val === \" \" || i === len - 1) {\n          if (val === \"\" || val === \" \") {\n            currentSize -= cLength;\n          }\n\n          while (currentPos <= i) {\n            letters[currentPos].an = currentSize;\n            letters[currentPos].ind = index;\n            letters[currentPos].extra = cLength;\n            currentPos += 1;\n          }\n\n          index += 1;\n          currentSize = 0;\n        }\n      } else if (anchorGrouping == 3) {\n        // eslint-disable-line eqeqeq\n        currentSize += cLength;\n\n        if (val === \"\" || i === len - 1) {\n          if (val === \"\") {\n            currentSize -= cLength;\n          }\n\n          while (currentPos <= i) {\n            letters[currentPos].an = currentSize;\n            letters[currentPos].ind = index;\n            letters[currentPos].extra = cLength;\n            currentPos += 1;\n          }\n\n          currentSize = 0;\n          index += 1;\n        }\n      } else {\n        letters[index].ind = index;\n        letters[index].extra = 0;\n        index += 1;\n      }\n    }\n\n    documentData.l = letters;\n    maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n    lineWidths.push(lineWidth);\n\n    if (documentData.sz) {\n      documentData.boxWidth = documentData.sz[0];\n      documentData.justifyOffset = 0;\n    } else {\n      documentData.boxWidth = maxLineWidth;\n\n      switch (documentData.j) {\n        case 1:\n          documentData.justifyOffset = -documentData.boxWidth;\n          break;\n\n        case 2:\n          documentData.justifyOffset = -documentData.boxWidth / 2;\n          break;\n\n        default:\n          documentData.justifyOffset = 0;\n      }\n    }\n\n    documentData.lineWidths = lineWidths;\n    var animators = data.a;\n    var animatorData;\n    var letterData;\n    jLen = animators.length;\n    var based;\n    var ind;\n    var indexes = [];\n\n    for (j = 0; j < jLen; j += 1) {\n      animatorData = animators[j];\n\n      if (animatorData.a.sc) {\n        documentData.strokeColorAnim = true;\n      }\n\n      if (animatorData.a.sw) {\n        documentData.strokeWidthAnim = true;\n      }\n\n      if (animatorData.a.fc || animatorData.a.fh || animatorData.a.fs || animatorData.a.fb) {\n        documentData.fillColorAnim = true;\n      }\n\n      ind = 0;\n      based = animatorData.s.b;\n\n      for (i = 0; i < len; i += 1) {\n        letterData = letters[i];\n        letterData.anIndexes[j] = ind;\n\n        if (based == 1 && letterData.val !== \"\" || based == 2 && letterData.val !== \"\" && letterData.val !== \" \" || based == 3 && (letterData.n || letterData.val == \" \" || i == len - 1) || based == 4 && (letterData.n || i == len - 1)) {\n          // eslint-disable-line eqeqeq\n          if (animatorData.s.rn === 1) {\n            indexes.push(ind);\n          }\n\n          ind += 1;\n        }\n      }\n\n      data.a[j].s.totalChars = ind;\n      var currentInd = -1;\n      var newInd;\n\n      if (animatorData.s.rn === 1) {\n        for (i = 0; i < len; i += 1) {\n          letterData = letters[i];\n\n          if (currentInd != letterData.anIndexes[j]) {\n            // eslint-disable-line eqeqeq\n            currentInd = letterData.anIndexes[j];\n            newInd = indexes.splice(Math.floor(Math.random() * indexes.length), 1)[0];\n          }\n\n          letterData.anIndexes[j] = newInd;\n        }\n      }\n    }\n\n    documentData.yOffset = documentData.finalLineHeight || documentData.finalSize * 1.2;\n    documentData.ls = documentData.ls || 0;\n    documentData.ascent = fontData.ascent * documentData.finalSize / 100;\n  };\n\n  TextProperty.prototype.updateDocumentData = function (newData, index) {\n    index = index === undefined ? (this || _global).keysIndex : index;\n    var dData = this.copyData({}, (this || _global).data.d.k[index].s);\n    dData = this.copyData(dData, newData);\n    (this || _global).data.d.k[index].s = dData;\n    this.recalculate(index);\n\n    (this || _global).elem.addDynamicProperty(this || _global);\n  };\n\n  TextProperty.prototype.recalculate = function (index) {\n    var dData = (this || _global).data.d.k[index].s;\n    dData.__complete = false;\n    (this || _global).keysIndex = 0;\n    (this || _global)._isFirstFrame = true;\n    this.getValue(dData);\n  };\n\n  TextProperty.prototype.canResizeFont = function (_canResize) {\n    (this || _global).canResize = _canResize;\n    this.recalculate((this || _global).keysIndex);\n\n    (this || _global).elem.addDynamicProperty(this || _global);\n  };\n\n  TextProperty.prototype.setMinimumFontSize = function (_fontValue) {\n    (this || _global).minimumFontSize = Math.floor(_fontValue) || 1;\n    this.recalculate((this || _global).keysIndex);\n\n    (this || _global).elem.addDynamicProperty(this || _global);\n  };\n  /* global extendPrototype, BezierFactory, PropertyFactory, DynamicPropertyContainer */\n\n  /* exported TextSelectorProp */\n\n\n  var TextSelectorProp = function () {\n    var max = Math.max;\n    var min = Math.min;\n    var floor = Math.floor;\n\n    function TextSelectorPropFactory(elem, data) {\n      (this || _global)._currentTextLength = -1;\n      (this || _global).k = false;\n      (this || _global).data = data;\n      (this || _global).elem = elem;\n      (this || _global).comp = elem.comp;\n      (this || _global).finalS = 0;\n      (this || _global).finalE = 0;\n      this.initDynamicPropertyContainer(elem);\n      (this || _global).s = PropertyFactory.getProp(elem, data.s || {\n        k: 0\n      }, 0, 0, this || _global);\n\n      if (\"e\" in data) {\n        (this || _global).e = PropertyFactory.getProp(elem, data.e, 0, 0, this || _global);\n      } else {\n        (this || _global).e = {\n          v: 100\n        };\n      }\n\n      (this || _global).o = PropertyFactory.getProp(elem, data.o || {\n        k: 0\n      }, 0, 0, this || _global);\n      (this || _global).xe = PropertyFactory.getProp(elem, data.xe || {\n        k: 0\n      }, 0, 0, this || _global);\n      (this || _global).ne = PropertyFactory.getProp(elem, data.ne || {\n        k: 0\n      }, 0, 0, this || _global);\n      (this || _global).a = PropertyFactory.getProp(elem, data.a, 0, 0.01, this || _global);\n\n      if (!(this || _global).dynamicProperties.length) {\n        this.getValue();\n      }\n    }\n\n    TextSelectorPropFactory.prototype = {\n      getMult: function (ind) {\n        if ((this || _global)._currentTextLength !== (this || _global).elem.textProperty.currentData.l.length) {\n          this.getValue();\n        } // var easer = bez.getEasingCurve(this.ne.v/100,0,1-this.xe.v/100,1);\n\n\n        var x1 = 0;\n        var y1 = 0;\n        var x2 = 1;\n        var y2 = 1;\n\n        if ((this || _global).ne.v > 0) {\n          x1 = (this || _global).ne.v / 100;\n        } else {\n          y1 = -(this || _global).ne.v / 100;\n        }\n\n        if ((this || _global).xe.v > 0) {\n          x2 = 1 - (this || _global).xe.v / 100;\n        } else {\n          y2 = 1 + (this || _global).xe.v / 100;\n        }\n\n        var easer = BezierFactory.getBezierEasing(x1, y1, x2, y2).get;\n        var mult = 0;\n        var s = (this || _global).finalS;\n        var e = (this || _global).finalE;\n        var type = (this || _global).data.sh;\n\n        if (type === 2) {\n          if (e === s) {\n            mult = ind >= e ? 1 : 0;\n          } else {\n            mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n          }\n\n          mult = easer(mult);\n        } else if (type === 3) {\n          if (e === s) {\n            mult = ind >= e ? 0 : 1;\n          } else {\n            mult = 1 - max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n          }\n\n          mult = easer(mult);\n        } else if (type === 4) {\n          if (e === s) {\n            mult = 0;\n          } else {\n            mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n\n            if (mult < 0.5) {\n              mult *= 2;\n            } else {\n              mult = 1 - 2 * (mult - 0.5);\n            }\n          }\n\n          mult = easer(mult);\n        } else if (type === 5) {\n          if (e === s) {\n            mult = 0;\n          } else {\n            var tot = e - s;\n            /* ind += 0.5;\r\n                      mult = -4/(tot*tot)*(ind*ind)+(4/tot)*ind; */\n\n            ind = min(max(0, ind + 0.5 - s), e - s);\n            var x = -tot / 2 + ind;\n            var a = tot / 2;\n            mult = Math.sqrt(1 - x * x / (a * a));\n          }\n\n          mult = easer(mult);\n        } else if (type === 6) {\n          if (e === s) {\n            mult = 0;\n          } else {\n            ind = min(max(0, ind + 0.5 - s), e - s);\n            mult = (1 + Math.cos(Math.PI + Math.PI * 2 * ind / (e - s))) / 2; // eslint-disable-line\n          }\n\n          mult = easer(mult);\n        } else {\n          if (ind >= floor(s)) {\n            if (ind - s < 0) {\n              mult = max(0, min(min(e, 1) - (s - ind), 1));\n            } else {\n              mult = max(0, min(e - ind, 1));\n            }\n          }\n\n          mult = easer(mult);\n        }\n\n        return mult * (this || _global).a.v;\n      },\n      getValue: function (newCharsFlag) {\n        this.iterateDynamicProperties();\n        (this || _global)._mdf = newCharsFlag || (this || _global)._mdf;\n        (this || _global)._currentTextLength = (this || _global).elem.textProperty.currentData.l.length || 0;\n\n        if (newCharsFlag && (this || _global).data.r === 2) {\n          (this || _global).e.v = (this || _global)._currentTextLength;\n        }\n\n        var divisor = (this || _global).data.r === 2 ? 1 : 100 / (this || _global).data.totalChars;\n        var o = (this || _global).o.v / divisor;\n        var s = (this || _global).s.v / divisor + o;\n        var e = (this || _global).e.v / divisor + o;\n\n        if (s > e) {\n          var _s = s;\n          s = e;\n          e = _s;\n        }\n\n        (this || _global).finalS = s;\n        (this || _global).finalE = e;\n      }\n    };\n    extendPrototype([DynamicPropertyContainer], TextSelectorPropFactory);\n\n    function getTextSelectorProp(elem, data, arr) {\n      return new TextSelectorPropFactory(elem, data, arr);\n    }\n\n    return {\n      getTextSelectorProp: getTextSelectorProp\n    };\n  }();\n  /* global createSizedArray, pooling */\n\n  /* exported poolFactory */\n\n\n  var poolFactory = function () {\n    return function (initialLength, _create, _release) {\n      var _length = 0;\n      var _maxLength = initialLength;\n      var pool = createSizedArray(_maxLength);\n      var ob = {\n        newElement: newElement,\n        release: release\n      };\n\n      function newElement() {\n        var element;\n\n        if (_length) {\n          _length -= 1;\n          element = pool[_length];\n        } else {\n          element = _create();\n        }\n\n        return element;\n      }\n\n      function release(element) {\n        if (_length === _maxLength) {\n          pool = pooling.double(pool);\n          _maxLength *= 2;\n        }\n\n        if (_release) {\n          _release(element);\n        }\n\n        pool[_length] = element;\n        _length += 1;\n      }\n\n      return ob;\n    };\n  }();\n  /* global createSizedArray */\n\n  /* exported pooling */\n\n\n  var pooling = function () {\n    function double(arr) {\n      return arr.concat(createSizedArray(arr.length));\n    }\n\n    return {\n      double: double\n    };\n  }();\n  /* global createTypedArray, poolFactory */\n\n  /* exported pointPool */\n\n\n  var pointPool = function () {\n    function create() {\n      return createTypedArray(\"float32\", 2);\n    }\n\n    return poolFactory(8, create);\n  }();\n  /* global ShapePath, pointPool, poolFactory */\n\n  /* exported shapePool */\n\n\n  var shapePool = function () {\n    function create() {\n      return new ShapePath();\n    }\n\n    function release(shapePath) {\n      var len = shapePath._length;\n      var i;\n\n      for (i = 0; i < len; i += 1) {\n        pointPool.release(shapePath.v[i]);\n        pointPool.release(shapePath.i[i]);\n        pointPool.release(shapePath.o[i]);\n        shapePath.v[i] = null;\n        shapePath.i[i] = null;\n        shapePath.o[i] = null;\n      }\n\n      shapePath._length = 0;\n      shapePath.c = false;\n    }\n\n    function clone(shape) {\n      var cloned = factory.newElement();\n      var i;\n      var len = shape._length === undefined ? shape.v.length : shape._length;\n      cloned.setLength(len);\n      cloned.c = shape.c;\n\n      for (i = 0; i < len; i += 1) {\n        cloned.setTripleAt(shape.v[i][0], shape.v[i][1], shape.o[i][0], shape.o[i][1], shape.i[i][0], shape.i[i][1], i);\n      }\n\n      return cloned;\n    }\n\n    var factory = poolFactory(4, create, release);\n    factory.clone = clone;\n    return factory;\n  }();\n  /* global createSizedArray, ShapeCollection, shapePool, pooling */\n\n  /* exported shapeCollectionPool */\n\n\n  var shapeCollectionPool = function () {\n    var ob = {\n      newShapeCollection: newShapeCollection,\n      release: release\n    };\n    var _length = 0;\n    var _maxLength = 4;\n    var pool = createSizedArray(_maxLength);\n\n    function newShapeCollection() {\n      var shapeCollection;\n\n      if (_length) {\n        _length -= 1;\n        shapeCollection = pool[_length];\n      } else {\n        shapeCollection = new ShapeCollection();\n      }\n\n      return shapeCollection;\n    }\n\n    function release(shapeCollection) {\n      var i;\n      var len = shapeCollection._length;\n\n      for (i = 0; i < len; i += 1) {\n        shapePool.release(shapeCollection.shapes[i]);\n      }\n\n      shapeCollection._length = 0;\n\n      if (_length === _maxLength) {\n        pool = pooling.double(pool);\n        _maxLength *= 2;\n      }\n\n      pool[_length] = shapeCollection;\n      _length += 1;\n    }\n\n    return ob;\n  }();\n  /* global poolFactory, bezierLengthPool */\n\n  /* exported segmentsLengthPool */\n\n\n  var segmentsLengthPool = function () {\n    function create() {\n      return {\n        lengths: [],\n        totalLength: 0\n      };\n    }\n\n    function release(element) {\n      var i;\n      var len = element.lengths.length;\n\n      for (i = 0; i < len; i += 1) {\n        bezierLengthPool.release(element.lengths[i]);\n      }\n\n      element.lengths.length = 0;\n    }\n\n    return poolFactory(8, create, release);\n  }();\n  /* global createTypedArray, defaultCurveSegments, poolFactory */\n\n  /* exported bezierLengthPool */\n\n\n  var bezierLengthPool = function () {\n    function create() {\n      return {\n        addedLength: 0,\n        percents: createTypedArray(\"float32\", defaultCurveSegments),\n        lengths: createTypedArray(\"float32\", defaultCurveSegments)\n      };\n    }\n\n    return poolFactory(8, create);\n  }();\n  /* exported markerParser */\n\n\n  var markerParser = function () {\n    function parsePayloadLines(payload) {\n      var lines = payload.split(\"\\r\\n\");\n      var keys = {};\n      var line;\n      var keysCount = 0;\n\n      for (var i = 0; i < lines.length; i += 1) {\n        line = lines[i].split(\":\");\n\n        if (line.length === 2) {\n          keys[line[0]] = line[1].trim();\n          keysCount += 1;\n        }\n      }\n\n      if (keysCount === 0) {\n        throw new Error();\n      }\n\n      return keys;\n    }\n\n    return function (_markers) {\n      var markers = [];\n\n      for (var i = 0; i < _markers.length; i += 1) {\n        var _marker = _markers[i];\n        var markerData = {\n          time: _marker.tm,\n          duration: _marker.dr\n        };\n\n        try {\n          markerData.payload = JSON.parse(_markers[i].cm);\n        } catch (_) {\n          try {\n            markerData.payload = parsePayloadLines(_markers[i].cm);\n          } catch (__) {\n            markerData.payload = {\n              name: _markers[i]\n            };\n          }\n        }\n\n        markers.push(markerData);\n      }\n\n      return markers;\n    };\n  }();\n  /* global AudioElement, FootageElement, FontManager */\n\n\n  function BaseRenderer() {}\n\n  BaseRenderer.prototype.checkLayers = function (num) {\n    var i;\n    var len = (this || _global).layers.length;\n    var data;\n    (this || _global).completeLayers = true;\n\n    for (i = len - 1; i >= 0; i -= 1) {\n      if (!(this || _global).elements[i]) {\n        data = (this || _global).layers[i];\n\n        if (data.ip - data.st <= num - (this || _global).layers[i].st && data.op - data.st > num - (this || _global).layers[i].st) {\n          this.buildItem(i);\n        }\n      }\n\n      (this || _global).completeLayers = (this || _global).elements[i] ? (this || _global).completeLayers : false;\n    }\n\n    this.checkPendingElements();\n  };\n\n  BaseRenderer.prototype.createItem = function (layer) {\n    switch (layer.ty) {\n      case 2:\n        return this.createImage(layer);\n\n      case 0:\n        return this.createComp(layer);\n\n      case 1:\n        return this.createSolid(layer);\n\n      case 3:\n        return this.createNull(layer);\n\n      case 4:\n        return this.createShape(layer);\n\n      case 5:\n        return this.createText(layer);\n\n      case 6:\n        return this.createAudio(layer);\n\n      case 13:\n        return this.createCamera(layer);\n\n      case 15:\n        return this.createFootage(layer);\n\n      default:\n        return this.createNull(layer);\n    }\n  };\n\n  BaseRenderer.prototype.createCamera = function () {\n    throw new Error(\"You're using a 3d camera. Try the html renderer.\");\n  };\n\n  BaseRenderer.prototype.createAudio = function (data) {\n    return new AudioElement(data, (this || _global).globalData, this || _global);\n  };\n\n  BaseRenderer.prototype.createFootage = function (data) {\n    return new FootageElement(data, (this || _global).globalData, this || _global);\n  };\n\n  BaseRenderer.prototype.buildAllItems = function () {\n    var i;\n    var len = (this || _global).layers.length;\n\n    for (i = 0; i < len; i += 1) {\n      this.buildItem(i);\n    }\n\n    this.checkPendingElements();\n  };\n\n  BaseRenderer.prototype.includeLayers = function (newLayers) {\n    (this || _global).completeLayers = false;\n    var i;\n    var len = newLayers.length;\n    var j;\n    var jLen = (this || _global).layers.length;\n\n    for (i = 0; i < len; i += 1) {\n      j = 0;\n\n      while (j < jLen) {\n        if ((this || _global).layers[j].id === newLayers[i].id) {\n          (this || _global).layers[j] = newLayers[i];\n          break;\n        }\n\n        j += 1;\n      }\n    }\n  };\n\n  BaseRenderer.prototype.setProjectInterface = function (pInterface) {\n    (this || _global).globalData.projectInterface = pInterface;\n  };\n\n  BaseRenderer.prototype.initItems = function () {\n    if (!(this || _global).globalData.progressiveLoad) {\n      this.buildAllItems();\n    }\n  };\n\n  BaseRenderer.prototype.buildElementParenting = function (element, parentName, hierarchy) {\n    var elements = (this || _global).elements;\n    var layers = (this || _global).layers;\n    var i = 0;\n    var len = layers.length;\n\n    while (i < len) {\n      if (layers[i].ind == parentName) {\n        // eslint-disable-line eqeqeq\n        if (!elements[i] || elements[i] === true) {\n          this.buildItem(i);\n          this.addPendingElement(element);\n        } else {\n          hierarchy.push(elements[i]);\n          elements[i].setAsParent();\n\n          if (layers[i].parent !== undefined) {\n            this.buildElementParenting(element, layers[i].parent, hierarchy);\n          } else {\n            element.setHierarchy(hierarchy);\n          }\n        }\n      }\n\n      i += 1;\n    }\n  };\n\n  BaseRenderer.prototype.addPendingElement = function (element) {\n    (this || _global).pendingElements.push(element);\n  };\n\n  BaseRenderer.prototype.searchExtraCompositions = function (assets) {\n    var i;\n    var len = assets.length;\n\n    for (i = 0; i < len; i += 1) {\n      if (assets[i].xt) {\n        var comp = this.createComp(assets[i]);\n        comp.initExpressions();\n\n        (this || _global).globalData.projectInterface.registerComposition(comp);\n      }\n    }\n  };\n\n  BaseRenderer.prototype.setupGlobalData = function (animData, fontsContainer) {\n    (this || _global).globalData.fontManager = new FontManager();\n\n    (this || _global).globalData.fontManager.addChars(animData.chars);\n\n    (this || _global).globalData.fontManager.addFonts(animData.fonts, fontsContainer);\n\n    (this || _global).globalData.getAssetData = (this || _global).animationItem.getAssetData.bind((this || _global).animationItem);\n    (this || _global).globalData.getAssetsPath = (this || _global).animationItem.getAssetsPath.bind((this || _global).animationItem);\n    (this || _global).globalData.imageLoader = (this || _global).animationItem.imagePreloader;\n    (this || _global).globalData.audioController = (this || _global).animationItem.audioController;\n    (this || _global).globalData.frameId = 0;\n    (this || _global).globalData.frameRate = animData.fr;\n    (this || _global).globalData.nm = animData.nm;\n    (this || _global).globalData.compSize = {\n      w: animData.w,\n      h: animData.h\n    };\n  };\n  /* global createElementID, extendPrototype, BaseRenderer, NullElement, SVGShapeElement, SVGTextLottieElement,\r\n  IImageElement, SVGCompElement, ISolidElement, createNS, locationHref, createSizedArray, expressionsPlugin */\n\n\n  function SVGRenderer(animationItem, config) {\n    (this || _global).animationItem = animationItem;\n    (this || _global).layers = null;\n    (this || _global).renderedFrame = -1;\n    (this || _global).svgElement = createNS(\"svg\");\n    var ariaLabel = \"\";\n\n    if (config && config.title) {\n      var titleElement = createNS(\"title\");\n      var titleId = createElementID();\n      titleElement.setAttribute(\"id\", titleId);\n      titleElement.textContent = config.title;\n\n      (this || _global).svgElement.appendChild(titleElement);\n\n      ariaLabel += titleId;\n    }\n\n    if (config && config.description) {\n      var descElement = createNS(\"desc\");\n      var descId = createElementID();\n      descElement.setAttribute(\"id\", descId);\n      descElement.textContent = config.description;\n\n      (this || _global).svgElement.appendChild(descElement);\n\n      ariaLabel += \" \" + descId;\n    }\n\n    if (ariaLabel) {\n      (this || _global).svgElement.setAttribute(\"aria-labelledby\", ariaLabel);\n    }\n\n    var defs = createNS(\"defs\");\n\n    (this || _global).svgElement.appendChild(defs);\n\n    var maskElement = createNS(\"g\");\n\n    (this || _global).svgElement.appendChild(maskElement);\n\n    (this || _global).layerElement = maskElement;\n    (this || _global).renderConfig = {\n      preserveAspectRatio: config && config.preserveAspectRatio || \"xMidYMid meet\",\n      imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || \"xMidYMid slice\",\n      progressiveLoad: config && config.progressiveLoad || false,\n      hideOnTransparent: !(config && config.hideOnTransparent === false),\n      viewBoxOnly: config && config.viewBoxOnly || false,\n      viewBoxSize: config && config.viewBoxSize || false,\n      className: config && config.className || \"\",\n      id: config && config.id || \"\",\n      focusable: config && config.focusable,\n      filterSize: {\n        width: config && config.filterSize && config.filterSize.width || \"100%\",\n        height: config && config.filterSize && config.filterSize.height || \"100%\",\n        x: config && config.filterSize && config.filterSize.x || \"0%\",\n        y: config && config.filterSize && config.filterSize.y || \"0%\"\n      }\n    };\n    (this || _global).globalData = {\n      _mdf: false,\n      frameNum: -1,\n      defs: defs,\n      renderConfig: (this || _global).renderConfig\n    };\n    (this || _global).elements = [];\n    (this || _global).pendingElements = [];\n    (this || _global).destroyed = false;\n    (this || _global).rendererType = \"svg\";\n  }\n\n  extendPrototype([BaseRenderer], SVGRenderer);\n\n  SVGRenderer.prototype.createNull = function (data) {\n    return new NullElement(data, (this || _global).globalData, this || _global);\n  };\n\n  SVGRenderer.prototype.createShape = function (data) {\n    return new SVGShapeElement(data, (this || _global).globalData, this || _global);\n  };\n\n  SVGRenderer.prototype.createText = function (data) {\n    return new SVGTextLottieElement(data, (this || _global).globalData, this || _global);\n  };\n\n  SVGRenderer.prototype.createImage = function (data) {\n    return new IImageElement(data, (this || _global).globalData, this || _global);\n  };\n\n  SVGRenderer.prototype.createComp = function (data) {\n    return new SVGCompElement(data, (this || _global).globalData, this || _global);\n  };\n\n  SVGRenderer.prototype.createSolid = function (data) {\n    return new ISolidElement(data, (this || _global).globalData, this || _global);\n  };\n\n  SVGRenderer.prototype.configAnimation = function (animData) {\n    (this || _global).svgElement.setAttribute(\"xmlns\", \"http://www.w3.org/2000/svg\");\n\n    if ((this || _global).renderConfig.viewBoxSize) {\n      (this || _global).svgElement.setAttribute(\"viewBox\", (this || _global).renderConfig.viewBoxSize);\n    } else {\n      (this || _global).svgElement.setAttribute(\"viewBox\", \"0 0 \" + animData.w + \" \" + animData.h);\n    }\n\n    if (!(this || _global).renderConfig.viewBoxOnly) {\n      (this || _global).svgElement.setAttribute(\"width\", animData.w);\n\n      (this || _global).svgElement.setAttribute(\"height\", animData.h);\n\n      (this || _global).svgElement.style.width = \"100%\";\n      (this || _global).svgElement.style.height = \"100%\";\n      (this || _global).svgElement.style.transform = \"translate3d(0,0,0)\";\n    }\n\n    if ((this || _global).renderConfig.className) {\n      (this || _global).svgElement.setAttribute(\"class\", (this || _global).renderConfig.className);\n    }\n\n    if ((this || _global).renderConfig.id) {\n      (this || _global).svgElement.setAttribute(\"id\", (this || _global).renderConfig.id);\n    }\n\n    if ((this || _global).renderConfig.focusable !== undefined) {\n      (this || _global).svgElement.setAttribute(\"focusable\", (this || _global).renderConfig.focusable);\n    }\n\n    (this || _global).svgElement.setAttribute(\"preserveAspectRatio\", (this || _global).renderConfig.preserveAspectRatio); // this.layerElement.style.transform = 'translate3d(0,0,0)';\n    // this.layerElement.style.transformOrigin = this.layerElement.style.mozTransformOrigin = this.layerElement.style.webkitTransformOrigin = this.layerElement.style['-webkit-transform'] = \"0px 0px 0px\";\n\n\n    (this || _global).animationItem.wrapper.appendChild((this || _global).svgElement); // Mask animation\n\n\n    var defs = (this || _global).globalData.defs;\n    this.setupGlobalData(animData, defs);\n    (this || _global).globalData.progressiveLoad = (this || _global).renderConfig.progressiveLoad;\n    (this || _global).data = animData;\n    var maskElement = createNS(\"clipPath\");\n    var rect = createNS(\"rect\");\n    rect.setAttribute(\"width\", animData.w);\n    rect.setAttribute(\"height\", animData.h);\n    rect.setAttribute(\"x\", 0);\n    rect.setAttribute(\"y\", 0);\n    var maskId = createElementID();\n    maskElement.setAttribute(\"id\", maskId);\n    maskElement.appendChild(rect);\n\n    (this || _global).layerElement.setAttribute(\"clip-path\", \"url(\" + locationHref + \"#\" + maskId + \")\");\n\n    defs.appendChild(maskElement);\n    (this || _global).layers = animData.layers;\n    (this || _global).elements = createSizedArray(animData.layers.length);\n  };\n\n  SVGRenderer.prototype.destroy = function () {\n    if ((this || _global).animationItem.wrapper) {\n      (this || _global).animationItem.wrapper.innerText = \"\";\n    }\n\n    (this || _global).layerElement = null;\n    (this || _global).globalData.defs = null;\n    var i;\n    var len = (this || _global).layers ? (this || _global).layers.length : 0;\n\n    for (i = 0; i < len; i += 1) {\n      if ((this || _global).elements[i]) {\n        (this || _global).elements[i].destroy();\n      }\n    }\n\n    (this || _global).elements.length = 0;\n    (this || _global).destroyed = true;\n    (this || _global).animationItem = null;\n  };\n\n  SVGRenderer.prototype.updateContainerSize = function () {};\n\n  SVGRenderer.prototype.buildItem = function (pos) {\n    var elements = (this || _global).elements;\n\n    if (elements[pos] || (this || _global).layers[pos].ty === 99) {\n      return;\n    }\n\n    elements[pos] = true;\n    var element = this.createItem((this || _global).layers[pos]);\n    elements[pos] = element;\n\n    if (expressionsPlugin) {\n      if ((this || _global).layers[pos].ty === 0) {\n        (this || _global).globalData.projectInterface.registerComposition(element);\n      }\n\n      element.initExpressions();\n    }\n\n    this.appendElementInPos(element, pos);\n\n    if ((this || _global).layers[pos].tt) {\n      if (!(this || _global).elements[pos - 1] || (this || _global).elements[pos - 1] === true) {\n        this.buildItem(pos - 1);\n        this.addPendingElement(element);\n      } else {\n        element.setMatte(elements[pos - 1].layerId);\n      }\n    }\n  };\n\n  SVGRenderer.prototype.checkPendingElements = function () {\n    while ((this || _global).pendingElements.length) {\n      var element = (this || _global).pendingElements.pop();\n\n      element.checkParenting();\n\n      if (element.data.tt) {\n        var i = 0;\n        var len = (this || _global).elements.length;\n\n        while (i < len) {\n          if ((this || _global).elements[i] === element) {\n            element.setMatte((this || _global).elements[i - 1].layerId);\n            break;\n          }\n\n          i += 1;\n        }\n      }\n    }\n  };\n\n  SVGRenderer.prototype.renderFrame = function (num) {\n    if ((this || _global).renderedFrame === num || (this || _global).destroyed) {\n      return;\n    }\n\n    if (num === null) {\n      num = (this || _global).renderedFrame;\n    } else {\n      (this || _global).renderedFrame = num;\n    } // console.log('-------');\n    // console.log('FRAME ',num);\n\n\n    (this || _global).globalData.frameNum = num;\n    (this || _global).globalData.frameId += 1;\n    (this || _global).globalData.projectInterface.currentFrame = num;\n    (this || _global).globalData._mdf = false;\n    var i;\n    var len = (this || _global).layers.length;\n\n    if (!(this || _global).completeLayers) {\n      this.checkLayers(num);\n    }\n\n    for (i = len - 1; i >= 0; i -= 1) {\n      if ((this || _global).completeLayers || (this || _global).elements[i]) {\n        (this || _global).elements[i].prepareFrame(num - (this || _global).layers[i].st);\n      }\n    }\n\n    if ((this || _global).globalData._mdf) {\n      for (i = 0; i < len; i += 1) {\n        if ((this || _global).completeLayers || (this || _global).elements[i]) {\n          (this || _global).elements[i].renderFrame();\n        }\n      }\n    }\n  };\n\n  SVGRenderer.prototype.appendElementInPos = function (element, pos) {\n    var newElement = element.getBaseElement();\n\n    if (!newElement) {\n      return;\n    }\n\n    var i = 0;\n    var nextElement;\n\n    while (i < pos) {\n      if ((this || _global).elements[i] && (this || _global).elements[i] !== true && (this || _global).elements[i].getBaseElement()) {\n        nextElement = (this || _global).elements[i].getBaseElement();\n      }\n\n      i += 1;\n    }\n\n    if (nextElement) {\n      (this || _global).layerElement.insertBefore(newElement, nextElement);\n    } else {\n      (this || _global).layerElement.appendChild(newElement);\n    }\n  };\n\n  SVGRenderer.prototype.hide = function () {\n    (this || _global).layerElement.style.display = \"none\";\n  };\n\n  SVGRenderer.prototype.show = function () {\n    (this || _global).layerElement.style.display = \"block\";\n  };\n  /* global CVContextData, Matrix, extendPrototype, BaseRenderer, CVShapeElement, CVTextElement,\r\n  CVImageElement, CVCompElement, CVSolidElement, SVGRenderer, createTag, createSizedArray */\n\n\n  function CanvasRenderer(animationItem, config) {\n    (this || _global).animationItem = animationItem;\n    (this || _global).renderConfig = {\n      clearCanvas: config && config.clearCanvas !== undefined ? config.clearCanvas : true,\n      context: config && config.context || null,\n      progressiveLoad: config && config.progressiveLoad || false,\n      preserveAspectRatio: config && config.preserveAspectRatio || \"xMidYMid meet\",\n      imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || \"xMidYMid slice\",\n      className: config && config.className || \"\",\n      id: config && config.id || \"\"\n    };\n    (this || _global).renderConfig.dpr = config && config.dpr || 1;\n\n    if ((this || _global).animationItem.wrapper) {\n      (this || _global).renderConfig.dpr = config && config.dpr || window.devicePixelRatio || 1;\n    }\n\n    (this || _global).renderedFrame = -1;\n    (this || _global).globalData = {\n      frameNum: -1,\n      _mdf: false,\n      renderConfig: (this || _global).renderConfig,\n      currentGlobalAlpha: -1\n    };\n    (this || _global).contextData = new CVContextData();\n    (this || _global).elements = [];\n    (this || _global).pendingElements = [];\n    (this || _global).transformMat = new Matrix();\n    (this || _global).completeLayers = false;\n    (this || _global).rendererType = \"canvas\";\n  }\n\n  extendPrototype([BaseRenderer], CanvasRenderer);\n\n  CanvasRenderer.prototype.createShape = function (data) {\n    return new CVShapeElement(data, (this || _global).globalData, this || _global);\n  };\n\n  CanvasRenderer.prototype.createText = function (data) {\n    return new CVTextElement(data, (this || _global).globalData, this || _global);\n  };\n\n  CanvasRenderer.prototype.createImage = function (data) {\n    return new CVImageElement(data, (this || _global).globalData, this || _global);\n  };\n\n  CanvasRenderer.prototype.createComp = function (data) {\n    return new CVCompElement(data, (this || _global).globalData, this || _global);\n  };\n\n  CanvasRenderer.prototype.createSolid = function (data) {\n    return new CVSolidElement(data, (this || _global).globalData, this || _global);\n  };\n\n  CanvasRenderer.prototype.createNull = SVGRenderer.prototype.createNull;\n\n  CanvasRenderer.prototype.ctxTransform = function (props) {\n    if (props[0] === 1 && props[1] === 0 && props[4] === 0 && props[5] === 1 && props[12] === 0 && props[13] === 0) {\n      return;\n    }\n\n    if (!(this || _global).renderConfig.clearCanvas) {\n      (this || _global).canvasContext.transform(props[0], props[1], props[4], props[5], props[12], props[13]);\n\n      return;\n    }\n\n    (this || _global).transformMat.cloneFromProps(props);\n\n    var cProps = (this || _global).contextData.cTr.props;\n\n    (this || _global).transformMat.transform(cProps[0], cProps[1], cProps[2], cProps[3], cProps[4], cProps[5], cProps[6], cProps[7], cProps[8], cProps[9], cProps[10], cProps[11], cProps[12], cProps[13], cProps[14], cProps[15]); // this.contextData.cTr.transform(props[0],props[1],props[2],props[3],props[4],props[5],props[6],props[7],props[8],props[9],props[10],props[11],props[12],props[13],props[14],props[15]);\n\n\n    (this || _global).contextData.cTr.cloneFromProps((this || _global).transformMat.props);\n\n    var trProps = (this || _global).contextData.cTr.props;\n\n    (this || _global).canvasContext.setTransform(trProps[0], trProps[1], trProps[4], trProps[5], trProps[12], trProps[13]);\n  };\n\n  CanvasRenderer.prototype.ctxOpacity = function (op) {\n    /* if(op === 1){\r\n          return;\r\n      } */\n    if (!(this || _global).renderConfig.clearCanvas) {\n      (this || _global).canvasContext.globalAlpha *= op < 0 ? 0 : op;\n      (this || _global).globalData.currentGlobalAlpha = (this || _global).contextData.cO;\n      return;\n    }\n\n    (this || _global).contextData.cO *= op < 0 ? 0 : op;\n\n    if ((this || _global).globalData.currentGlobalAlpha !== (this || _global).contextData.cO) {\n      (this || _global).canvasContext.globalAlpha = (this || _global).contextData.cO;\n      (this || _global).globalData.currentGlobalAlpha = (this || _global).contextData.cO;\n    }\n  };\n\n  CanvasRenderer.prototype.reset = function () {\n    if (!(this || _global).renderConfig.clearCanvas) {\n      (this || _global).canvasContext.restore();\n\n      return;\n    }\n\n    (this || _global).contextData.reset();\n  };\n\n  CanvasRenderer.prototype.save = function (actionFlag) {\n    if (!(this || _global).renderConfig.clearCanvas) {\n      (this || _global).canvasContext.save();\n\n      return;\n    }\n\n    if (actionFlag) {\n      (this || _global).canvasContext.save();\n    }\n\n    var props = (this || _global).contextData.cTr.props;\n\n    if ((this || _global).contextData._length <= (this || _global).contextData.cArrPos) {\n      (this || _global).contextData.duplicate();\n    }\n\n    var i;\n    var arr = (this || _global).contextData.saved[(this || _global).contextData.cArrPos];\n\n    for (i = 0; i < 16; i += 1) {\n      arr[i] = props[i];\n    }\n\n    (this || _global).contextData.savedOp[(this || _global).contextData.cArrPos] = (this || _global).contextData.cO;\n    (this || _global).contextData.cArrPos += 1;\n  };\n\n  CanvasRenderer.prototype.restore = function (actionFlag) {\n    if (!(this || _global).renderConfig.clearCanvas) {\n      (this || _global).canvasContext.restore();\n\n      return;\n    }\n\n    if (actionFlag) {\n      (this || _global).canvasContext.restore();\n\n      (this || _global).globalData.blendMode = \"source-over\";\n    }\n\n    (this || _global).contextData.cArrPos -= 1;\n    var popped = (this || _global).contextData.saved[(this || _global).contextData.cArrPos];\n    var i;\n    var arr = (this || _global).contextData.cTr.props;\n\n    for (i = 0; i < 16; i += 1) {\n      arr[i] = popped[i];\n    }\n\n    (this || _global).canvasContext.setTransform(popped[0], popped[1], popped[4], popped[5], popped[12], popped[13]);\n\n    popped = (this || _global).contextData.savedOp[(this || _global).contextData.cArrPos];\n    (this || _global).contextData.cO = popped;\n\n    if ((this || _global).globalData.currentGlobalAlpha !== popped) {\n      (this || _global).canvasContext.globalAlpha = popped;\n      (this || _global).globalData.currentGlobalAlpha = popped;\n    }\n  };\n\n  CanvasRenderer.prototype.configAnimation = function (animData) {\n    if ((this || _global).animationItem.wrapper) {\n      (this || _global).animationItem.container = createTag(\"canvas\");\n      var containerStyle = (this || _global).animationItem.container.style;\n      containerStyle.width = \"100%\";\n      containerStyle.height = \"100%\";\n      var origin = \"0px 0px 0px\";\n      containerStyle.transformOrigin = origin;\n      containerStyle.mozTransformOrigin = origin;\n      containerStyle.webkitTransformOrigin = origin;\n      containerStyle[\"-webkit-transform\"] = origin;\n\n      (this || _global).animationItem.wrapper.appendChild((this || _global).animationItem.container);\n\n      (this || _global).canvasContext = (this || _global).animationItem.container.getContext(\"2d\");\n\n      if ((this || _global).renderConfig.className) {\n        (this || _global).animationItem.container.setAttribute(\"class\", (this || _global).renderConfig.className);\n      }\n\n      if ((this || _global).renderConfig.id) {\n        (this || _global).animationItem.container.setAttribute(\"id\", (this || _global).renderConfig.id);\n      }\n    } else {\n      (this || _global).canvasContext = (this || _global).renderConfig.context;\n    }\n\n    (this || _global).data = animData;\n    (this || _global).layers = animData.layers;\n    (this || _global).transformCanvas = {\n      w: animData.w,\n      h: animData.h,\n      sx: 0,\n      sy: 0,\n      tx: 0,\n      ty: 0\n    };\n    this.setupGlobalData(animData, document.body);\n    (this || _global).globalData.canvasContext = (this || _global).canvasContext;\n    (this || _global).globalData.renderer = this || _global;\n    (this || _global).globalData.isDashed = false;\n    (this || _global).globalData.progressiveLoad = (this || _global).renderConfig.progressiveLoad;\n    (this || _global).globalData.transformCanvas = (this || _global).transformCanvas;\n    (this || _global).elements = createSizedArray(animData.layers.length);\n    this.updateContainerSize();\n  };\n\n  CanvasRenderer.prototype.updateContainerSize = function () {\n    this.reset();\n    var elementWidth;\n    var elementHeight;\n\n    if ((this || _global).animationItem.wrapper && (this || _global).animationItem.container) {\n      elementWidth = (this || _global).animationItem.wrapper.offsetWidth;\n      elementHeight = (this || _global).animationItem.wrapper.offsetHeight;\n\n      (this || _global).animationItem.container.setAttribute(\"width\", elementWidth * (this || _global).renderConfig.dpr);\n\n      (this || _global).animationItem.container.setAttribute(\"height\", elementHeight * (this || _global).renderConfig.dpr);\n    } else {\n      elementWidth = (this || _global).canvasContext.canvas.width * (this || _global).renderConfig.dpr;\n      elementHeight = (this || _global).canvasContext.canvas.height * (this || _global).renderConfig.dpr;\n    }\n\n    var elementRel;\n    var animationRel;\n\n    if ((this || _global).renderConfig.preserveAspectRatio.indexOf(\"meet\") !== -1 || (this || _global).renderConfig.preserveAspectRatio.indexOf(\"slice\") !== -1) {\n      var par = (this || _global).renderConfig.preserveAspectRatio.split(\" \");\n\n      var fillType = par[1] || \"meet\";\n      var pos = par[0] || \"xMidYMid\";\n      var xPos = pos.substr(0, 4);\n      var yPos = pos.substr(4);\n      elementRel = elementWidth / elementHeight;\n      animationRel = (this || _global).transformCanvas.w / (this || _global).transformCanvas.h;\n\n      if (animationRel > elementRel && fillType === \"meet\" || animationRel < elementRel && fillType === \"slice\") {\n        (this || _global).transformCanvas.sx = elementWidth / ((this || _global).transformCanvas.w / (this || _global).renderConfig.dpr);\n        (this || _global).transformCanvas.sy = elementWidth / ((this || _global).transformCanvas.w / (this || _global).renderConfig.dpr);\n      } else {\n        (this || _global).transformCanvas.sx = elementHeight / ((this || _global).transformCanvas.h / (this || _global).renderConfig.dpr);\n        (this || _global).transformCanvas.sy = elementHeight / ((this || _global).transformCanvas.h / (this || _global).renderConfig.dpr);\n      }\n\n      if (xPos === \"xMid\" && (animationRel < elementRel && fillType === \"meet\" || animationRel > elementRel && fillType === \"slice\")) {\n        (this || _global).transformCanvas.tx = (elementWidth - (this || _global).transformCanvas.w * (elementHeight / (this || _global).transformCanvas.h)) / 2 * (this || _global).renderConfig.dpr;\n      } else if (xPos === \"xMax\" && (animationRel < elementRel && fillType === \"meet\" || animationRel > elementRel && fillType === \"slice\")) {\n        (this || _global).transformCanvas.tx = (elementWidth - (this || _global).transformCanvas.w * (elementHeight / (this || _global).transformCanvas.h)) * (this || _global).renderConfig.dpr;\n      } else {\n        (this || _global).transformCanvas.tx = 0;\n      }\n\n      if (yPos === \"YMid\" && (animationRel > elementRel && fillType === \"meet\" || animationRel < elementRel && fillType === \"slice\")) {\n        (this || _global).transformCanvas.ty = (elementHeight - (this || _global).transformCanvas.h * (elementWidth / (this || _global).transformCanvas.w)) / 2 * (this || _global).renderConfig.dpr;\n      } else if (yPos === \"YMax\" && (animationRel > elementRel && fillType === \"meet\" || animationRel < elementRel && fillType === \"slice\")) {\n        (this || _global).transformCanvas.ty = (elementHeight - (this || _global).transformCanvas.h * (elementWidth / (this || _global).transformCanvas.w)) * (this || _global).renderConfig.dpr;\n      } else {\n        (this || _global).transformCanvas.ty = 0;\n      }\n    } else if ((this || _global).renderConfig.preserveAspectRatio === \"none\") {\n      (this || _global).transformCanvas.sx = elementWidth / ((this || _global).transformCanvas.w / (this || _global).renderConfig.dpr);\n      (this || _global).transformCanvas.sy = elementHeight / ((this || _global).transformCanvas.h / (this || _global).renderConfig.dpr);\n      (this || _global).transformCanvas.tx = 0;\n      (this || _global).transformCanvas.ty = 0;\n    } else {\n      (this || _global).transformCanvas.sx = (this || _global).renderConfig.dpr;\n      (this || _global).transformCanvas.sy = (this || _global).renderConfig.dpr;\n      (this || _global).transformCanvas.tx = 0;\n      (this || _global).transformCanvas.ty = 0;\n    }\n\n    (this || _global).transformCanvas.props = [(this || _global).transformCanvas.sx, 0, 0, 0, 0, (this || _global).transformCanvas.sy, 0, 0, 0, 0, 1, 0, (this || _global).transformCanvas.tx, (this || _global).transformCanvas.ty, 0, 1];\n    /* var i, len = this.elements.length;\r\n      for(i=0;i<len;i+=1){\r\n          if(this.elements[i] && this.elements[i].data.ty === 0){\r\n              this.elements[i].resize(this.globalData.transformCanvas);\r\n          }\r\n      } */\n\n    this.ctxTransform((this || _global).transformCanvas.props);\n\n    (this || _global).canvasContext.beginPath();\n\n    (this || _global).canvasContext.rect(0, 0, (this || _global).transformCanvas.w, (this || _global).transformCanvas.h);\n\n    (this || _global).canvasContext.closePath();\n\n    (this || _global).canvasContext.clip();\n\n    this.renderFrame((this || _global).renderedFrame, true);\n  };\n\n  CanvasRenderer.prototype.destroy = function () {\n    if ((this || _global).renderConfig.clearCanvas && (this || _global).animationItem.wrapper) {\n      (this || _global).animationItem.wrapper.innerText = \"\";\n    }\n\n    var i;\n    var len = (this || _global).layers ? (this || _global).layers.length : 0;\n\n    for (i = len - 1; i >= 0; i -= 1) {\n      if ((this || _global).elements[i]) {\n        (this || _global).elements[i].destroy();\n      }\n    }\n\n    (this || _global).elements.length = 0;\n    (this || _global).globalData.canvasContext = null;\n    (this || _global).animationItem.container = null;\n    (this || _global).destroyed = true;\n  };\n\n  CanvasRenderer.prototype.renderFrame = function (num, forceRender) {\n    if ((this || _global).renderedFrame === num && (this || _global).renderConfig.clearCanvas === true && !forceRender || (this || _global).destroyed || num === -1) {\n      return;\n    }\n\n    (this || _global).renderedFrame = num;\n    (this || _global).globalData.frameNum = num - (this || _global).animationItem._isFirstFrame;\n    (this || _global).globalData.frameId += 1;\n    (this || _global).globalData._mdf = !(this || _global).renderConfig.clearCanvas || forceRender;\n    (this || _global).globalData.projectInterface.currentFrame = num; // console.log('--------');\n    // console.log('NEW: ',num);\n\n    var i;\n    var len = (this || _global).layers.length;\n\n    if (!(this || _global).completeLayers) {\n      this.checkLayers(num);\n    }\n\n    for (i = 0; i < len; i += 1) {\n      if ((this || _global).completeLayers || (this || _global).elements[i]) {\n        (this || _global).elements[i].prepareFrame(num - (this || _global).layers[i].st);\n      }\n    }\n\n    if ((this || _global).globalData._mdf) {\n      if ((this || _global).renderConfig.clearCanvas === true) {\n        (this || _global).canvasContext.clearRect(0, 0, (this || _global).transformCanvas.w, (this || _global).transformCanvas.h);\n      } else {\n        this.save();\n      }\n\n      for (i = len - 1; i >= 0; i -= 1) {\n        if ((this || _global).completeLayers || (this || _global).elements[i]) {\n          (this || _global).elements[i].renderFrame();\n        }\n      }\n\n      if ((this || _global).renderConfig.clearCanvas !== true) {\n        this.restore();\n      }\n    }\n  };\n\n  CanvasRenderer.prototype.buildItem = function (pos) {\n    var elements = (this || _global).elements;\n\n    if (elements[pos] || (this || _global).layers[pos].ty === 99) {\n      return;\n    }\n\n    var element = this.createItem((this || _global).layers[pos], this || _global, (this || _global).globalData);\n    elements[pos] = element;\n    element.initExpressions();\n    /* if(this.layers[pos].ty === 0){\r\n          element.resize(this.globalData.transformCanvas);\r\n      } */\n  };\n\n  CanvasRenderer.prototype.checkPendingElements = function () {\n    while ((this || _global).pendingElements.length) {\n      var element = (this || _global).pendingElements.pop();\n\n      element.checkParenting();\n    }\n  };\n\n  CanvasRenderer.prototype.hide = function () {\n    (this || _global).animationItem.container.style.display = \"none\";\n  };\n\n  CanvasRenderer.prototype.show = function () {\n    (this || _global).animationItem.container.style.display = \"block\";\n  };\n  /* global extendPrototype, BaseRenderer, SVGRenderer, SVGShapeElement, HShapeElement, SVGTextLottieElement,\r\n  HTextElement, HCameraElement, IImageElement, HImageElement, SVGCompElement, HCompElement, ISolidElement,\r\n  HSolidElement, styleDiv, createTag, createNS */\n\n\n  function HybridRenderer(animationItem, config) {\n    (this || _global).animationItem = animationItem;\n    (this || _global).layers = null;\n    (this || _global).renderedFrame = -1;\n    (this || _global).renderConfig = {\n      className: config && config.className || \"\",\n      imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || \"xMidYMid slice\",\n      hideOnTransparent: !(config && config.hideOnTransparent === false),\n      filterSize: {\n        width: config && config.filterSize && config.filterSize.width || \"400%\",\n        height: config && config.filterSize && config.filterSize.height || \"400%\",\n        x: config && config.filterSize && config.filterSize.x || \"-100%\",\n        y: config && config.filterSize && config.filterSize.y || \"-100%\"\n      }\n    };\n    (this || _global).globalData = {\n      _mdf: false,\n      frameNum: -1,\n      renderConfig: (this || _global).renderConfig\n    };\n    (this || _global).pendingElements = [];\n    (this || _global).elements = [];\n    (this || _global).threeDElements = [];\n    (this || _global).destroyed = false;\n    (this || _global).camera = null;\n    (this || _global).supports3d = true;\n    (this || _global).rendererType = \"html\";\n  }\n\n  extendPrototype([BaseRenderer], HybridRenderer);\n  HybridRenderer.prototype.buildItem = SVGRenderer.prototype.buildItem;\n\n  HybridRenderer.prototype.checkPendingElements = function () {\n    while ((this || _global).pendingElements.length) {\n      var element = (this || _global).pendingElements.pop();\n\n      element.checkParenting();\n    }\n  };\n\n  HybridRenderer.prototype.appendElementInPos = function (element, pos) {\n    var newDOMElement = element.getBaseElement();\n\n    if (!newDOMElement) {\n      return;\n    }\n\n    var layer = (this || _global).layers[pos];\n\n    if (!layer.ddd || !(this || _global).supports3d) {\n      if ((this || _global).threeDElements) {\n        this.addTo3dContainer(newDOMElement, pos);\n      } else {\n        var i = 0;\n        var nextDOMElement;\n        var nextLayer;\n        var tmpDOMElement;\n\n        while (i < pos) {\n          if ((this || _global).elements[i] && (this || _global).elements[i] !== true && (this || _global).elements[i].getBaseElement) {\n            nextLayer = (this || _global).elements[i];\n            tmpDOMElement = (this || _global).layers[i].ddd ? this.getThreeDContainerByPos(i) : nextLayer.getBaseElement();\n            nextDOMElement = tmpDOMElement || nextDOMElement;\n          }\n\n          i += 1;\n        }\n\n        if (nextDOMElement) {\n          if (!layer.ddd || !(this || _global).supports3d) {\n            (this || _global).layerElement.insertBefore(newDOMElement, nextDOMElement);\n          }\n        } else if (!layer.ddd || !(this || _global).supports3d) {\n          (this || _global).layerElement.appendChild(newDOMElement);\n        }\n      }\n    } else {\n      this.addTo3dContainer(newDOMElement, pos);\n    }\n  };\n\n  HybridRenderer.prototype.createShape = function (data) {\n    if (!(this || _global).supports3d) {\n      return new SVGShapeElement(data, (this || _global).globalData, this || _global);\n    }\n\n    return new HShapeElement(data, (this || _global).globalData, this || _global);\n  };\n\n  HybridRenderer.prototype.createText = function (data) {\n    if (!(this || _global).supports3d) {\n      return new SVGTextLottieElement(data, (this || _global).globalData, this || _global);\n    }\n\n    return new HTextElement(data, (this || _global).globalData, this || _global);\n  };\n\n  HybridRenderer.prototype.createCamera = function (data) {\n    (this || _global).camera = new HCameraElement(data, (this || _global).globalData, this || _global);\n    return (this || _global).camera;\n  };\n\n  HybridRenderer.prototype.createImage = function (data) {\n    if (!(this || _global).supports3d) {\n      return new IImageElement(data, (this || _global).globalData, this || _global);\n    }\n\n    return new HImageElement(data, (this || _global).globalData, this || _global);\n  };\n\n  HybridRenderer.prototype.createComp = function (data) {\n    if (!(this || _global).supports3d) {\n      return new SVGCompElement(data, (this || _global).globalData, this || _global);\n    }\n\n    return new HCompElement(data, (this || _global).globalData, this || _global);\n  };\n\n  HybridRenderer.prototype.createSolid = function (data) {\n    if (!(this || _global).supports3d) {\n      return new ISolidElement(data, (this || _global).globalData, this || _global);\n    }\n\n    return new HSolidElement(data, (this || _global).globalData, this || _global);\n  };\n\n  HybridRenderer.prototype.createNull = SVGRenderer.prototype.createNull;\n\n  HybridRenderer.prototype.getThreeDContainerByPos = function (pos) {\n    var i = 0;\n    var len = (this || _global).threeDElements.length;\n\n    while (i < len) {\n      if ((this || _global).threeDElements[i].startPos <= pos && (this || _global).threeDElements[i].endPos >= pos) {\n        return (this || _global).threeDElements[i].perspectiveElem;\n      }\n\n      i += 1;\n    }\n\n    return null;\n  };\n\n  HybridRenderer.prototype.createThreeDContainer = function (pos, type) {\n    var perspectiveElem = createTag(\"div\");\n    var style;\n    var containerStyle;\n    styleDiv(perspectiveElem);\n    var container = createTag(\"div\");\n    styleDiv(container);\n\n    if (type === \"3d\") {\n      style = perspectiveElem.style;\n      style.width = (this || _global).globalData.compSize.w + \"px\";\n      style.height = (this || _global).globalData.compSize.h + \"px\";\n      var center = \"50% 50%\";\n      style.webkitTransformOrigin = center;\n      style.mozTransformOrigin = center;\n      style.transformOrigin = center;\n      containerStyle = container.style;\n      var matrix = \"matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)\";\n      containerStyle.transform = matrix;\n      containerStyle.webkitTransform = matrix;\n    }\n\n    perspectiveElem.appendChild(container); // this.resizerElem.appendChild(perspectiveElem);\n\n    var threeDContainerData = {\n      container: container,\n      perspectiveElem: perspectiveElem,\n      startPos: pos,\n      endPos: pos,\n      type: type\n    };\n\n    (this || _global).threeDElements.push(threeDContainerData);\n\n    return threeDContainerData;\n  };\n\n  HybridRenderer.prototype.build3dContainers = function () {\n    var i;\n    var len = (this || _global).layers.length;\n    var lastThreeDContainerData;\n    var currentContainer = \"\";\n\n    for (i = 0; i < len; i += 1) {\n      if ((this || _global).layers[i].ddd && (this || _global).layers[i].ty !== 3) {\n        if (currentContainer !== \"3d\") {\n          currentContainer = \"3d\";\n          lastThreeDContainerData = this.createThreeDContainer(i, \"3d\");\n        }\n\n        lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n      } else {\n        if (currentContainer !== \"2d\") {\n          currentContainer = \"2d\";\n          lastThreeDContainerData = this.createThreeDContainer(i, \"2d\");\n        }\n\n        lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n      }\n    }\n\n    len = (this || _global).threeDElements.length;\n\n    for (i = len - 1; i >= 0; i -= 1) {\n      (this || _global).resizerElem.appendChild((this || _global).threeDElements[i].perspectiveElem);\n    }\n  };\n\n  HybridRenderer.prototype.addTo3dContainer = function (elem, pos) {\n    var i = 0;\n    var len = (this || _global).threeDElements.length;\n\n    while (i < len) {\n      if (pos <= (this || _global).threeDElements[i].endPos) {\n        var j = (this || _global).threeDElements[i].startPos;\n        var nextElement;\n\n        while (j < pos) {\n          if ((this || _global).elements[j] && (this || _global).elements[j].getBaseElement) {\n            nextElement = (this || _global).elements[j].getBaseElement();\n          }\n\n          j += 1;\n        }\n\n        if (nextElement) {\n          (this || _global).threeDElements[i].container.insertBefore(elem, nextElement);\n        } else {\n          (this || _global).threeDElements[i].container.appendChild(elem);\n        }\n\n        break;\n      }\n\n      i += 1;\n    }\n  };\n\n  HybridRenderer.prototype.configAnimation = function (animData) {\n    var resizerElem = createTag(\"div\");\n    var wrapper = (this || _global).animationItem.wrapper;\n    var style = resizerElem.style;\n    style.width = animData.w + \"px\";\n    style.height = animData.h + \"px\";\n    (this || _global).resizerElem = resizerElem;\n    styleDiv(resizerElem);\n    style.transformStyle = \"flat\";\n    style.mozTransformStyle = \"flat\";\n    style.webkitTransformStyle = \"flat\";\n\n    if ((this || _global).renderConfig.className) {\n      resizerElem.setAttribute(\"class\", (this || _global).renderConfig.className);\n    }\n\n    wrapper.appendChild(resizerElem);\n    style.overflow = \"hidden\";\n    var svg = createNS(\"svg\");\n    svg.setAttribute(\"width\", \"1\");\n    svg.setAttribute(\"height\", \"1\");\n    styleDiv(svg);\n\n    (this || _global).resizerElem.appendChild(svg);\n\n    var defs = createNS(\"defs\");\n    svg.appendChild(defs);\n    (this || _global).data = animData; // Mask animation\n\n    this.setupGlobalData(animData, svg);\n    (this || _global).globalData.defs = defs;\n    (this || _global).layers = animData.layers;\n    (this || _global).layerElement = (this || _global).resizerElem;\n    this.build3dContainers();\n    this.updateContainerSize();\n  };\n\n  HybridRenderer.prototype.destroy = function () {\n    if ((this || _global).animationItem.wrapper) {\n      (this || _global).animationItem.wrapper.innerText = \"\";\n    }\n\n    (this || _global).animationItem.container = null;\n    (this || _global).globalData.defs = null;\n    var i;\n    var len = (this || _global).layers ? (this || _global).layers.length : 0;\n\n    for (i = 0; i < len; i += 1) {\n      (this || _global).elements[i].destroy();\n    }\n\n    (this || _global).elements.length = 0;\n    (this || _global).destroyed = true;\n    (this || _global).animationItem = null;\n  };\n\n  HybridRenderer.prototype.updateContainerSize = function () {\n    var elementWidth = (this || _global).animationItem.wrapper.offsetWidth;\n    var elementHeight = (this || _global).animationItem.wrapper.offsetHeight;\n    var elementRel = elementWidth / elementHeight;\n    var animationRel = (this || _global).globalData.compSize.w / (this || _global).globalData.compSize.h;\n    var sx;\n    var sy;\n    var tx;\n    var ty;\n\n    if (animationRel > elementRel) {\n      sx = elementWidth / (this || _global).globalData.compSize.w;\n      sy = elementWidth / (this || _global).globalData.compSize.w;\n      tx = 0;\n      ty = (elementHeight - (this || _global).globalData.compSize.h * (elementWidth / (this || _global).globalData.compSize.w)) / 2;\n    } else {\n      sx = elementHeight / (this || _global).globalData.compSize.h;\n      sy = elementHeight / (this || _global).globalData.compSize.h;\n      tx = (elementWidth - (this || _global).globalData.compSize.w * (elementHeight / (this || _global).globalData.compSize.h)) / 2;\n      ty = 0;\n    }\n\n    var style = (this || _global).resizerElem.style;\n    style.webkitTransform = \"matrix3d(\" + sx + \",0,0,0,0,\" + sy + \",0,0,0,0,1,0,\" + tx + \",\" + ty + \",0,1)\";\n    style.transform = style.webkitTransform;\n  };\n\n  HybridRenderer.prototype.renderFrame = SVGRenderer.prototype.renderFrame;\n\n  HybridRenderer.prototype.hide = function () {\n    (this || _global).resizerElem.style.display = \"none\";\n  };\n\n  HybridRenderer.prototype.show = function () {\n    (this || _global).resizerElem.style.display = \"block\";\n  };\n\n  HybridRenderer.prototype.initItems = function () {\n    this.buildAllItems();\n\n    if ((this || _global).camera) {\n      (this || _global).camera.setup();\n    } else {\n      var cWidth = (this || _global).globalData.compSize.w;\n      var cHeight = (this || _global).globalData.compSize.h;\n      var i;\n      var len = (this || _global).threeDElements.length;\n\n      for (i = 0; i < len; i += 1) {\n        var style = (this || _global).threeDElements[i].perspectiveElem.style;\n        style.webkitPerspective = Math.sqrt(Math.pow(cWidth, 2) + Math.pow(cHeight, 2)) + \"px\";\n        style.perspective = style.webkitPerspective;\n      }\n    }\n  };\n\n  HybridRenderer.prototype.searchExtraCompositions = function (assets) {\n    var i;\n    var len = assets.length;\n    var floatingContainer = createTag(\"div\");\n\n    for (i = 0; i < len; i += 1) {\n      if (assets[i].xt) {\n        var comp = this.createComp(assets[i], floatingContainer, (this || _global).globalData.comp, null);\n        comp.initExpressions();\n\n        (this || _global).globalData.projectInterface.registerComposition(comp);\n      }\n    }\n  };\n  /* global createSizedArray, createElementID, PropertyFactory, ShapePropertyFactory, createNS, locationHref */\n\n\n  function MaskElement(data, element, globalData) {\n    (this || _global).data = data;\n    (this || _global).element = element;\n    (this || _global).globalData = globalData;\n    (this || _global).storedData = [];\n    (this || _global).masksProperties = (this || _global).data.masksProperties || [];\n    (this || _global).maskElement = null;\n    var defs = (this || _global).globalData.defs;\n    var i;\n    var len = (this || _global).masksProperties ? (this || _global).masksProperties.length : 0;\n    (this || _global).viewData = createSizedArray(len);\n    (this || _global).solidPath = \"\";\n    var path;\n    var properties = (this || _global).masksProperties;\n    var count = 0;\n    var currentMasks = [];\n    var j;\n    var jLen;\n    var layerId = createElementID();\n    var rect;\n    var expansor;\n    var feMorph;\n    var x;\n    var maskType = \"clipPath\";\n    var maskRef = \"clip-path\";\n\n    for (i = 0; i < len; i += 1) {\n      if (properties[i].mode !== \"a\" && properties[i].mode !== \"n\" || properties[i].inv || properties[i].o.k !== 100 || properties[i].o.x) {\n        maskType = \"mask\";\n        maskRef = \"mask\";\n      }\n\n      if ((properties[i].mode === \"s\" || properties[i].mode === \"i\") && count === 0) {\n        rect = createNS(\"rect\");\n        rect.setAttribute(\"fill\", \"#ffffff\");\n        rect.setAttribute(\"width\", (this || _global).element.comp.data.w || 0);\n        rect.setAttribute(\"height\", (this || _global).element.comp.data.h || 0);\n        currentMasks.push(rect);\n      } else {\n        rect = null;\n      }\n\n      path = createNS(\"path\");\n\n      if (properties[i].mode === \"n\") {\n        // TODO move this to a factory or to a constructor\n        (this || _global).viewData[i] = {\n          op: PropertyFactory.getProp((this || _global).element, properties[i].o, 0, 0.01, (this || _global).element),\n          prop: ShapePropertyFactory.getShapeProp((this || _global).element, properties[i], 3),\n          elem: path,\n          lastPath: \"\"\n        };\n        defs.appendChild(path);\n      } else {\n        count += 1;\n        path.setAttribute(\"fill\", properties[i].mode === \"s\" ? \"#000000\" : \"#ffffff\");\n        path.setAttribute(\"clip-rule\", \"nonzero\");\n        var filterID;\n\n        if (properties[i].x.k !== 0) {\n          maskType = \"mask\";\n          maskRef = \"mask\";\n          x = PropertyFactory.getProp((this || _global).element, properties[i].x, 0, null, (this || _global).element);\n          filterID = createElementID();\n          expansor = createNS(\"filter\");\n          expansor.setAttribute(\"id\", filterID);\n          feMorph = createNS(\"feMorphology\");\n          feMorph.setAttribute(\"operator\", \"erode\");\n          feMorph.setAttribute(\"in\", \"SourceGraphic\");\n          feMorph.setAttribute(\"radius\", \"0\");\n          expansor.appendChild(feMorph);\n          defs.appendChild(expansor);\n          path.setAttribute(\"stroke\", properties[i].mode === \"s\" ? \"#000000\" : \"#ffffff\");\n        } else {\n          feMorph = null;\n          x = null;\n        } // TODO move this to a factory or to a constructor\n\n\n        (this || _global).storedData[i] = {\n          elem: path,\n          x: x,\n          expan: feMorph,\n          lastPath: \"\",\n          lastOperator: \"\",\n          filterId: filterID,\n          lastRadius: 0\n        };\n\n        if (properties[i].mode === \"i\") {\n          jLen = currentMasks.length;\n          var g = createNS(\"g\");\n\n          for (j = 0; j < jLen; j += 1) {\n            g.appendChild(currentMasks[j]);\n          }\n\n          var mask = createNS(\"mask\");\n          mask.setAttribute(\"mask-type\", \"alpha\");\n          mask.setAttribute(\"id\", layerId + \"_\" + count);\n          mask.appendChild(path);\n          defs.appendChild(mask);\n          g.setAttribute(\"mask\", \"url(\" + locationHref + \"#\" + layerId + \"_\" + count + \")\");\n          currentMasks.length = 0;\n          currentMasks.push(g);\n        } else {\n          currentMasks.push(path);\n        }\n\n        if (properties[i].inv && !(this || _global).solidPath) {\n          (this || _global).solidPath = this.createLayerSolidPath();\n        } // TODO move this to a factory or to a constructor\n\n\n        (this || _global).viewData[i] = {\n          elem: path,\n          lastPath: \"\",\n          op: PropertyFactory.getProp((this || _global).element, properties[i].o, 0, 0.01, (this || _global).element),\n          prop: ShapePropertyFactory.getShapeProp((this || _global).element, properties[i], 3),\n          invRect: rect\n        };\n\n        if (!(this || _global).viewData[i].prop.k) {\n          this.drawPath(properties[i], (this || _global).viewData[i].prop.v, (this || _global).viewData[i]);\n        }\n      }\n    }\n\n    (this || _global).maskElement = createNS(maskType);\n    len = currentMasks.length;\n\n    for (i = 0; i < len; i += 1) {\n      (this || _global).maskElement.appendChild(currentMasks[i]);\n    }\n\n    if (count > 0) {\n      (this || _global).maskElement.setAttribute(\"id\", layerId);\n\n      (this || _global).element.maskedElement.setAttribute(maskRef, \"url(\" + locationHref + \"#\" + layerId + \")\");\n\n      defs.appendChild((this || _global).maskElement);\n    }\n\n    if ((this || _global).viewData.length) {\n      (this || _global).element.addRenderableComponent(this || _global);\n    }\n  }\n\n  MaskElement.prototype.getMaskProperty = function (pos) {\n    return (this || _global).viewData[pos].prop;\n  };\n\n  MaskElement.prototype.renderFrame = function (isFirstFrame) {\n    var finalMat = (this || _global).element.finalTransform.mat;\n    var i;\n    var len = (this || _global).masksProperties.length;\n\n    for (i = 0; i < len; i += 1) {\n      if ((this || _global).viewData[i].prop._mdf || isFirstFrame) {\n        this.drawPath((this || _global).masksProperties[i], (this || _global).viewData[i].prop.v, (this || _global).viewData[i]);\n      }\n\n      if ((this || _global).viewData[i].op._mdf || isFirstFrame) {\n        (this || _global).viewData[i].elem.setAttribute(\"fill-opacity\", (this || _global).viewData[i].op.v);\n      }\n\n      if ((this || _global).masksProperties[i].mode !== \"n\") {\n        if ((this || _global).viewData[i].invRect && ((this || _global).element.finalTransform.mProp._mdf || isFirstFrame)) {\n          (this || _global).viewData[i].invRect.setAttribute(\"transform\", finalMat.getInverseMatrix().to2dCSS());\n        }\n\n        if ((this || _global).storedData[i].x && ((this || _global).storedData[i].x._mdf || isFirstFrame)) {\n          var feMorph = (this || _global).storedData[i].expan;\n\n          if ((this || _global).storedData[i].x.v < 0) {\n            if ((this || _global).storedData[i].lastOperator !== \"erode\") {\n              (this || _global).storedData[i].lastOperator = \"erode\";\n\n              (this || _global).storedData[i].elem.setAttribute(\"filter\", \"url(\" + locationHref + \"#\" + (this || _global).storedData[i].filterId + \")\");\n            }\n\n            feMorph.setAttribute(\"radius\", -(this || _global).storedData[i].x.v);\n          } else {\n            if ((this || _global).storedData[i].lastOperator !== \"dilate\") {\n              (this || _global).storedData[i].lastOperator = \"dilate\";\n\n              (this || _global).storedData[i].elem.setAttribute(\"filter\", null);\n            }\n\n            (this || _global).storedData[i].elem.setAttribute(\"stroke-width\", (this || _global).storedData[i].x.v * 2);\n          }\n        }\n      }\n    }\n  };\n\n  MaskElement.prototype.getMaskelement = function () {\n    return (this || _global).maskElement;\n  };\n\n  MaskElement.prototype.createLayerSolidPath = function () {\n    var path = \"M0,0 \";\n    path += \" h\" + (this || _global).globalData.compSize.w;\n    path += \" v\" + (this || _global).globalData.compSize.h;\n    path += \" h-\" + (this || _global).globalData.compSize.w;\n    path += \" v-\" + (this || _global).globalData.compSize.h + \" \";\n    return path;\n  };\n\n  MaskElement.prototype.drawPath = function (pathData, pathNodes, viewData) {\n    var pathString = \" M\" + pathNodes.v[0][0] + \",\" + pathNodes.v[0][1];\n    var i;\n    var len;\n    len = pathNodes._length;\n\n    for (i = 1; i < len; i += 1) {\n      // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[i][0]+','+pathNodes.i[i][1] + \" \"+pathNodes.v[i][0]+','+pathNodes.v[i][1];\n      pathString += \" C\" + pathNodes.o[i - 1][0] + \",\" + pathNodes.o[i - 1][1] + \" \" + pathNodes.i[i][0] + \",\" + pathNodes.i[i][1] + \" \" + pathNodes.v[i][0] + \",\" + pathNodes.v[i][1];\n    } // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[0][0]+','+pathNodes.i[0][1] + \" \"+pathNodes.v[0][0]+','+pathNodes.v[0][1];\n\n\n    if (pathNodes.c && len > 1) {\n      pathString += \" C\" + pathNodes.o[i - 1][0] + \",\" + pathNodes.o[i - 1][1] + \" \" + pathNodes.i[0][0] + \",\" + pathNodes.i[0][1] + \" \" + pathNodes.v[0][0] + \",\" + pathNodes.v[0][1];\n    } // pathNodes.__renderedString = pathString;\n\n\n    if (viewData.lastPath !== pathString) {\n      var pathShapeValue = \"\";\n\n      if (viewData.elem) {\n        if (pathNodes.c) {\n          pathShapeValue = pathData.inv ? (this || _global).solidPath + pathString : pathString;\n        }\n\n        viewData.elem.setAttribute(\"d\", pathShapeValue);\n      }\n\n      viewData.lastPath = pathString;\n    }\n  };\n\n  MaskElement.prototype.destroy = function () {\n    (this || _global).element = null;\n    (this || _global).globalData = null;\n    (this || _global).maskElement = null;\n    (this || _global).data = null;\n    (this || _global).masksProperties = null;\n  };\n  /**\r\n   * @file\r\n   * Handles AE's layer parenting property.\r\n   *\r\n   */\n\n\n  function HierarchyElement() {}\n\n  HierarchyElement.prototype = {\n    /**\r\n       * @function\r\n       * Initializes hierarchy properties\r\n       *\r\n       */\n    initHierarchy: function () {\n      // element's parent list\n      (this || _global).hierarchy = []; // if element is parent of another layer _isParent will be true\n\n      (this || _global)._isParent = false;\n      this.checkParenting();\n    },\n\n    /**\r\n       * @function\r\n       * Sets layer's hierarchy.\r\n       * @param {array} hierarch\r\n       * layer's parent list\r\n       *\r\n       */\n    setHierarchy: function (hierarchy) {\n      (this || _global).hierarchy = hierarchy;\n    },\n\n    /**\r\n       * @function\r\n       * Sets layer as parent.\r\n       *\r\n       */\n    setAsParent: function () {\n      (this || _global)._isParent = true;\n    },\n\n    /**\r\n       * @function\r\n       * Searches layer's parenting chain\r\n       *\r\n       */\n    checkParenting: function () {\n      if ((this || _global).data.parent !== undefined) {\n        (this || _global).comp.buildElementParenting(this || _global, (this || _global).data.parent, []);\n      }\n    }\n  };\n  /**\r\n   * @file\r\n   * Handles element's layer frame update.\r\n   * Checks layer in point and out point\r\n   *\r\n   */\n\n  function FrameElement() {}\n\n  FrameElement.prototype = {\n    /**\r\n       * @function\r\n       * Initializes frame related properties.\r\n       *\r\n       */\n    initFrame: function () {\n      // set to true when inpoint is rendered\n      (this || _global)._isFirstFrame = false; // list of animated properties\n\n      (this || _global).dynamicProperties = []; // If layer has been modified in current tick this will be true\n\n      (this || _global)._mdf = false;\n    },\n\n    /**\r\n       * @function\r\n       * Calculates all dynamic values\r\n       *\r\n       * @param {number} num\r\n       * current frame number in Layer's time\r\n       * @param {boolean} isVisible\r\n       * if layers is currently in range\r\n       *\r\n       */\n    prepareProperties: function (num, isVisible) {\n      var i;\n      var len = (this || _global).dynamicProperties.length;\n\n      for (i = 0; i < len; i += 1) {\n        if (isVisible || (this || _global)._isParent && (this || _global).dynamicProperties[i].propType === \"transform\") {\n          (this || _global).dynamicProperties[i].getValue();\n\n          if ((this || _global).dynamicProperties[i]._mdf) {\n            (this || _global).globalData._mdf = true;\n            (this || _global)._mdf = true;\n          }\n        }\n      }\n    },\n    addDynamicProperty: function (prop) {\n      if ((this || _global).dynamicProperties.indexOf(prop) === -1) {\n        (this || _global).dynamicProperties.push(prop);\n      }\n    }\n  };\n  /* global TransformPropertyFactory, Matrix */\n\n  function TransformElement() {}\n\n  TransformElement.prototype = {\n    initTransform: function () {\n      (this || _global).finalTransform = {\n        mProp: (this || _global).data.ks ? TransformPropertyFactory.getTransformProperty(this || _global, (this || _global).data.ks, this || _global) : {\n          o: 0\n        },\n        _matMdf: false,\n        _opMdf: false,\n        mat: new Matrix()\n      };\n\n      if ((this || _global).data.ao) {\n        (this || _global).finalTransform.mProp.autoOriented = true;\n      } // TODO: check TYPE 11: Guided elements\n\n\n      if ((this || _global).data.ty !== 11) {// this.createElements();\n      }\n    },\n    renderTransform: function () {\n      (this || _global).finalTransform._opMdf = (this || _global).finalTransform.mProp.o._mdf || (this || _global)._isFirstFrame;\n      (this || _global).finalTransform._matMdf = (this || _global).finalTransform.mProp._mdf || (this || _global)._isFirstFrame;\n\n      if ((this || _global).hierarchy) {\n        var mat;\n        var finalMat = (this || _global).finalTransform.mat;\n        var i = 0;\n        var len = (this || _global).hierarchy.length; // Checking if any of the transformation matrices in the hierarchy chain has changed.\n\n        if (!(this || _global).finalTransform._matMdf) {\n          while (i < len) {\n            if ((this || _global).hierarchy[i].finalTransform.mProp._mdf) {\n              (this || _global).finalTransform._matMdf = true;\n              break;\n            }\n\n            i += 1;\n          }\n        }\n\n        if ((this || _global).finalTransform._matMdf) {\n          mat = (this || _global).finalTransform.mProp.v.props;\n          finalMat.cloneFromProps(mat);\n\n          for (i = 0; i < len; i += 1) {\n            mat = (this || _global).hierarchy[i].finalTransform.mProp.v.props;\n            finalMat.transform(mat[0], mat[1], mat[2], mat[3], mat[4], mat[5], mat[6], mat[7], mat[8], mat[9], mat[10], mat[11], mat[12], mat[13], mat[14], mat[15]);\n          }\n        }\n      }\n    },\n    globalToLocal: function (pt) {\n      var transforms = [];\n      transforms.push((this || _global).finalTransform);\n      var flag = true;\n      var comp = (this || _global).comp;\n\n      while (flag) {\n        if (comp.finalTransform) {\n          if (comp.data.hasMask) {\n            transforms.splice(0, 0, comp.finalTransform);\n          }\n\n          comp = comp.comp;\n        } else {\n          flag = false;\n        }\n      }\n\n      var i;\n      var len = transforms.length;\n      var ptNew;\n\n      for (i = 0; i < len; i += 1) {\n        ptNew = transforms[i].mat.applyToPointArray(0, 0, 0); // ptNew = transforms[i].mat.applyToPointArray(pt[0],pt[1],pt[2]);\n\n        pt = [pt[0] - ptNew[0], pt[1] - ptNew[1], 0];\n      }\n\n      return pt;\n    },\n    mHelper: new Matrix()\n  };\n\n  function RenderableElement() {}\n\n  RenderableElement.prototype = {\n    initRenderable: function () {\n      // layer's visibility related to inpoint and outpoint. Rename isVisible to isInRange\n      (this || _global).isInRange = false; // layer's display state\n\n      (this || _global).hidden = false; // If layer's transparency equals 0, it can be hidden\n\n      (this || _global).isTransparent = false; // list of animated components\n\n      (this || _global).renderableComponents = [];\n    },\n    addRenderableComponent: function (component) {\n      if ((this || _global).renderableComponents.indexOf(component) === -1) {\n        (this || _global).renderableComponents.push(component);\n      }\n    },\n    removeRenderableComponent: function (component) {\n      if ((this || _global).renderableComponents.indexOf(component) !== -1) {\n        (this || _global).renderableComponents.splice((this || _global).renderableComponents.indexOf(component), 1);\n      }\n    },\n    prepareRenderableFrame: function (num) {\n      this.checkLayerLimits(num);\n    },\n    checkTransparency: function () {\n      if ((this || _global).finalTransform.mProp.o.v <= 0) {\n        if (!(this || _global).isTransparent && (this || _global).globalData.renderConfig.hideOnTransparent) {\n          (this || _global).isTransparent = true;\n          this.hide();\n        }\n      } else if ((this || _global).isTransparent) {\n        (this || _global).isTransparent = false;\n        this.show();\n      }\n    },\n\n    /**\r\n       * @function\r\n       * Initializes frame related properties.\r\n       *\r\n       * @param {number} num\r\n       * current frame number in Layer's time\r\n       *\r\n       */\n    checkLayerLimits: function (num) {\n      if ((this || _global).data.ip - (this || _global).data.st <= num && (this || _global).data.op - (this || _global).data.st > num) {\n        if ((this || _global).isInRange !== true) {\n          (this || _global).globalData._mdf = true;\n          (this || _global)._mdf = true;\n          (this || _global).isInRange = true;\n          this.show();\n        }\n      } else if ((this || _global).isInRange !== false) {\n        (this || _global).globalData._mdf = true;\n        (this || _global).isInRange = false;\n        this.hide();\n      }\n    },\n    renderRenderable: function () {\n      var i;\n      var len = (this || _global).renderableComponents.length;\n\n      for (i = 0; i < len; i += 1) {\n        (this || _global).renderableComponents[i].renderFrame((this || _global)._isFirstFrame);\n      }\n      /* this.maskManager.renderFrame(this.finalTransform.mat);\r\n          this.renderableEffectsManager.renderFrame(this._isFirstFrame); */\n\n    },\n    sourceRectAtTime: function () {\n      return {\n        top: 0,\n        left: 0,\n        width: 100,\n        height: 100\n      };\n    },\n    getLayerSize: function () {\n      if ((this || _global).data.ty === 5) {\n        return {\n          w: (this || _global).data.textData.width,\n          h: (this || _global).data.textData.height\n        };\n      }\n\n      return {\n        w: (this || _global).data.width,\n        h: (this || _global).data.height\n      };\n    }\n  };\n  /* global extendPrototype, RenderableElement, createProxyFunction */\n\n  function RenderableDOMElement() {}\n\n  (function () {\n    var _prototype = {\n      initElement: function (data, globalData, comp) {\n        this.initFrame();\n        this.initBaseData(data, globalData, comp);\n        this.initTransform(data, globalData, comp);\n        this.initHierarchy();\n        this.initRenderable();\n        this.initRendererElement();\n        this.createContainerElements();\n        this.createRenderableComponents();\n        this.createContent();\n        this.hide();\n      },\n      hide: function () {\n        if (!(this || _global).hidden && (!(this || _global).isInRange || (this || _global).isTransparent)) {\n          var elem = (this || _global).baseElement || (this || _global).layerElement;\n          elem.style.display = \"none\";\n          (this || _global).hidden = true;\n        }\n      },\n      show: function () {\n        if ((this || _global).isInRange && !(this || _global).isTransparent) {\n          if (!(this || _global).data.hd) {\n            var elem = (this || _global).baseElement || (this || _global).layerElement;\n            elem.style.display = \"block\";\n          }\n\n          (this || _global).hidden = false;\n          (this || _global)._isFirstFrame = true;\n        }\n      },\n      renderFrame: function () {\n        // If it is exported as hidden (data.hd === true) no need to render\n        // If it is not visible no need to render\n        if ((this || _global).data.hd || (this || _global).hidden) {\n          return;\n        }\n\n        this.renderTransform();\n        this.renderRenderable();\n        this.renderElement();\n        this.renderInnerContent();\n\n        if ((this || _global)._isFirstFrame) {\n          (this || _global)._isFirstFrame = false;\n        }\n      },\n      renderInnerContent: function () {},\n      prepareFrame: function (num) {\n        (this || _global)._mdf = false;\n        this.prepareRenderableFrame(num);\n        this.prepareProperties(num, (this || _global).isInRange);\n        this.checkTransparency();\n      },\n      destroy: function () {\n        (this || _global).innerElem = null;\n        this.destroyBaseElement();\n      }\n    };\n    extendPrototype([RenderableElement, createProxyFunction(_prototype)], RenderableDOMElement);\n  })();\n  /* exported ProcessedElement */\n\n\n  function ProcessedElement(element, position) {\n    (this || _global).elem = element;\n    (this || _global).pos = position;\n  }\n  /* global createNS */\n\n\n  function SVGStyleData(data, level) {\n    (this || _global).data = data;\n    (this || _global).type = data.ty;\n    (this || _global).d = \"\";\n    (this || _global).lvl = level;\n    (this || _global)._mdf = false;\n    (this || _global).closed = data.hd === true;\n    (this || _global).pElem = createNS(\"path\");\n    (this || _global).msElem = null;\n  }\n\n  SVGStyleData.prototype.reset = function () {\n    (this || _global).d = \"\";\n    (this || _global)._mdf = false;\n  };\n\n  function SVGShapeData(transformers, level, shape) {\n    (this || _global).caches = [];\n    (this || _global).styles = [];\n    (this || _global).transformers = transformers;\n    (this || _global).lStr = \"\";\n    (this || _global).sh = shape;\n    (this || _global).lvl = level; // TODO find if there are some cases where _isAnimated can be false.\n    // For now, since shapes add up with other shapes. They have to be calculated every time.\n    // One way of finding out is checking if all styles associated to this shape depend only of this shape\n\n    (this || _global)._isAnimated = !!shape.k; // TODO: commenting this for now since all shapes are animated\n\n    var i = 0;\n    var len = transformers.length;\n\n    while (i < len) {\n      if (transformers[i].mProps.dynamicProperties.length) {\n        (this || _global)._isAnimated = true;\n        break;\n      }\n\n      i += 1;\n    }\n  }\n\n  SVGShapeData.prototype.setAsAnimated = function () {\n    (this || _global)._isAnimated = true;\n  };\n  /* exported SVGTransformData */\n\n\n  function SVGTransformData(mProps, op, container) {\n    (this || _global).transform = {\n      mProps: mProps,\n      op: op,\n      container: container\n    };\n    (this || _global).elements = [];\n    (this || _global)._isAnimated = (this || _global).transform.mProps.dynamicProperties.length || (this || _global).transform.op.effectsSequence.length;\n  }\n  /* global DashProperty, PropertyFactory, extendPrototype, DynamicPropertyContainer */\n\n\n  function SVGStrokeStyleData(elem, data, styleOb) {\n    this.initDynamicPropertyContainer(elem);\n    (this || _global).getValue = (this || _global).iterateDynamicProperties;\n    (this || _global).o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this || _global);\n    (this || _global).w = PropertyFactory.getProp(elem, data.w, 0, null, this || _global);\n    (this || _global).d = new DashProperty(elem, data.d || {}, \"svg\", this || _global);\n    (this || _global).c = PropertyFactory.getProp(elem, data.c, 1, 255, this || _global);\n    (this || _global).style = styleOb;\n    (this || _global)._isAnimated = !!(this || _global)._isAnimated;\n  }\n\n  extendPrototype([DynamicPropertyContainer], SVGStrokeStyleData);\n  /* global PropertyFactory, extendPrototype, DynamicPropertyContainer */\n\n  function SVGFillStyleData(elem, data, styleOb) {\n    this.initDynamicPropertyContainer(elem);\n    (this || _global).getValue = (this || _global).iterateDynamicProperties;\n    (this || _global).o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this || _global);\n    (this || _global).c = PropertyFactory.getProp(elem, data.c, 1, 255, this || _global);\n    (this || _global).style = styleOb;\n  }\n\n  extendPrototype([DynamicPropertyContainer], SVGFillStyleData);\n  /* global PropertyFactory, degToRads, GradientProperty, createElementID, createNS, locationHref,\r\n  extendPrototype, DynamicPropertyContainer */\n\n  function SVGGradientFillStyleData(elem, data, styleOb) {\n    this.initDynamicPropertyContainer(elem);\n    (this || _global).getValue = (this || _global).iterateDynamicProperties;\n    this.initGradientData(elem, data, styleOb);\n  }\n\n  SVGGradientFillStyleData.prototype.initGradientData = function (elem, data, styleOb) {\n    (this || _global).o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this || _global);\n    (this || _global).s = PropertyFactory.getProp(elem, data.s, 1, null, this || _global);\n    (this || _global).e = PropertyFactory.getProp(elem, data.e, 1, null, this || _global);\n    (this || _global).h = PropertyFactory.getProp(elem, data.h || {\n      k: 0\n    }, 0, 0.01, this || _global);\n    (this || _global).a = PropertyFactory.getProp(elem, data.a || {\n      k: 0\n    }, 0, degToRads, this || _global);\n    (this || _global).g = new GradientProperty(elem, data.g, this || _global);\n    (this || _global).style = styleOb;\n    (this || _global).stops = [];\n    this.setGradientData(styleOb.pElem, data);\n    this.setGradientOpacity(data, styleOb);\n    (this || _global)._isAnimated = !!(this || _global)._isAnimated;\n  };\n\n  SVGGradientFillStyleData.prototype.setGradientData = function (pathElement, data) {\n    var gradientId = createElementID();\n    var gfill = createNS(data.t === 1 ? \"linearGradient\" : \"radialGradient\");\n    gfill.setAttribute(\"id\", gradientId);\n    gfill.setAttribute(\"spreadMethod\", \"pad\");\n    gfill.setAttribute(\"gradientUnits\", \"userSpaceOnUse\");\n    var stops = [];\n    var stop;\n    var j;\n    var jLen;\n    jLen = data.g.p * 4;\n\n    for (j = 0; j < jLen; j += 4) {\n      stop = createNS(\"stop\");\n      gfill.appendChild(stop);\n      stops.push(stop);\n    }\n\n    pathElement.setAttribute(data.ty === \"gf\" ? \"fill\" : \"stroke\", \"url(\" + locationHref + \"#\" + gradientId + \")\");\n    (this || _global).gf = gfill;\n    (this || _global).cst = stops;\n  };\n\n  SVGGradientFillStyleData.prototype.setGradientOpacity = function (data, styleOb) {\n    if ((this || _global).g._hasOpacity && !(this || _global).g._collapsable) {\n      var stop;\n      var j;\n      var jLen;\n      var mask = createNS(\"mask\");\n      var maskElement = createNS(\"path\");\n      mask.appendChild(maskElement);\n      var opacityId = createElementID();\n      var maskId = createElementID();\n      mask.setAttribute(\"id\", maskId);\n      var opFill = createNS(data.t === 1 ? \"linearGradient\" : \"radialGradient\");\n      opFill.setAttribute(\"id\", opacityId);\n      opFill.setAttribute(\"spreadMethod\", \"pad\");\n      opFill.setAttribute(\"gradientUnits\", \"userSpaceOnUse\");\n      jLen = data.g.k.k[0].s ? data.g.k.k[0].s.length : data.g.k.k.length;\n      var stops = (this || _global).stops;\n\n      for (j = data.g.p * 4; j < jLen; j += 2) {\n        stop = createNS(\"stop\");\n        stop.setAttribute(\"stop-color\", \"rgb(255,255,255)\");\n        opFill.appendChild(stop);\n        stops.push(stop);\n      }\n\n      maskElement.setAttribute(data.ty === \"gf\" ? \"fill\" : \"stroke\", \"url(\" + locationHref + \"#\" + opacityId + \")\");\n      (this || _global).of = opFill;\n      (this || _global).ms = mask;\n      (this || _global).ost = stops;\n      (this || _global).maskId = maskId;\n      styleOb.msElem = maskElement;\n    }\n  };\n\n  extendPrototype([DynamicPropertyContainer], SVGGradientFillStyleData);\n  /* global PropertyFactory, DashProperty, extendPrototype, SVGGradientFillStyleData, DynamicPropertyContainer */\n\n  function SVGGradientStrokeStyleData(elem, data, styleOb) {\n    this.initDynamicPropertyContainer(elem);\n    (this || _global).getValue = (this || _global).iterateDynamicProperties;\n    (this || _global).w = PropertyFactory.getProp(elem, data.w, 0, null, this || _global);\n    (this || _global).d = new DashProperty(elem, data.d || {}, \"svg\", this || _global);\n    this.initGradientData(elem, data, styleOb);\n    (this || _global)._isAnimated = !!(this || _global)._isAnimated;\n  }\n\n  extendPrototype([SVGGradientFillStyleData, DynamicPropertyContainer], SVGGradientStrokeStyleData);\n  /* global createNS */\n\n  /* exported ShapeGroupData */\n\n  function ShapeGroupData() {\n    (this || _global).it = [];\n    (this || _global).prevViewData = [];\n    (this || _global).gr = createNS(\"g\");\n  }\n  /* global Matrix, buildShapeString, bmFloor */\n\n  /* exported SVGElementsRenderer */\n\n\n  var SVGElementsRenderer = function () {\n    var _identityMatrix = new Matrix();\n\n    var _matrixHelper = new Matrix();\n\n    var ob = {\n      createRenderFunction: createRenderFunction\n    };\n\n    function createRenderFunction(data) {\n      switch (data.ty) {\n        case \"fl\":\n          return renderFill;\n\n        case \"gf\":\n          return renderGradient;\n\n        case \"gs\":\n          return renderGradientStroke;\n\n        case \"st\":\n          return renderStroke;\n\n        case \"sh\":\n        case \"el\":\n        case \"rc\":\n        case \"sr\":\n          return renderPath;\n\n        case \"tr\":\n          return renderContentTransform;\n\n        default:\n          return null;\n      }\n    }\n\n    function renderContentTransform(styleData, itemData, isFirstFrame) {\n      if (isFirstFrame || itemData.transform.op._mdf) {\n        itemData.transform.container.setAttribute(\"opacity\", itemData.transform.op.v);\n      }\n\n      if (isFirstFrame || itemData.transform.mProps._mdf) {\n        itemData.transform.container.setAttribute(\"transform\", itemData.transform.mProps.v.to2dCSS());\n      }\n    }\n\n    function renderPath(styleData, itemData, isFirstFrame) {\n      var j;\n      var jLen;\n      var pathStringTransformed;\n      var redraw;\n      var pathNodes;\n      var l;\n      var lLen = itemData.styles.length;\n      var lvl = itemData.lvl;\n      var paths;\n      var mat;\n      var props;\n      var iterations;\n      var k;\n\n      for (l = 0; l < lLen; l += 1) {\n        redraw = itemData.sh._mdf || isFirstFrame;\n\n        if (itemData.styles[l].lvl < lvl) {\n          mat = _matrixHelper.reset();\n          iterations = lvl - itemData.styles[l].lvl;\n          k = itemData.transformers.length - 1;\n\n          while (!redraw && iterations > 0) {\n            redraw = itemData.transformers[k].mProps._mdf || redraw;\n            iterations -= 1;\n            k -= 1;\n          }\n\n          if (redraw) {\n            iterations = lvl - itemData.styles[l].lvl;\n            k = itemData.transformers.length - 1;\n\n            while (iterations > 0) {\n              props = itemData.transformers[k].mProps.v.props;\n              mat.transform(props[0], props[1], props[2], props[3], props[4], props[5], props[6], props[7], props[8], props[9], props[10], props[11], props[12], props[13], props[14], props[15]);\n              iterations -= 1;\n              k -= 1;\n            }\n          }\n        } else {\n          mat = _identityMatrix;\n        }\n\n        paths = itemData.sh.paths;\n        jLen = paths._length;\n\n        if (redraw) {\n          pathStringTransformed = \"\";\n\n          for (j = 0; j < jLen; j += 1) {\n            pathNodes = paths.shapes[j];\n\n            if (pathNodes && pathNodes._length) {\n              pathStringTransformed += buildShapeString(pathNodes, pathNodes._length, pathNodes.c, mat);\n            }\n          }\n\n          itemData.caches[l] = pathStringTransformed;\n        } else {\n          pathStringTransformed = itemData.caches[l];\n        }\n\n        itemData.styles[l].d += styleData.hd === true ? \"\" : pathStringTransformed;\n        itemData.styles[l]._mdf = redraw || itemData.styles[l]._mdf;\n      }\n    }\n\n    function renderFill(styleData, itemData, isFirstFrame) {\n      var styleElem = itemData.style;\n\n      if (itemData.c._mdf || isFirstFrame) {\n        styleElem.pElem.setAttribute(\"fill\", \"rgb(\" + bmFloor(itemData.c.v[0]) + \",\" + bmFloor(itemData.c.v[1]) + \",\" + bmFloor(itemData.c.v[2]) + \")\");\n      }\n\n      if (itemData.o._mdf || isFirstFrame) {\n        styleElem.pElem.setAttribute(\"fill-opacity\", itemData.o.v);\n      }\n    }\n\n    function renderGradientStroke(styleData, itemData, isFirstFrame) {\n      renderGradient(styleData, itemData, isFirstFrame);\n      renderStroke(styleData, itemData, isFirstFrame);\n    }\n\n    function renderGradient(styleData, itemData, isFirstFrame) {\n      var gfill = itemData.gf;\n      var hasOpacity = itemData.g._hasOpacity;\n      var pt1 = itemData.s.v;\n      var pt2 = itemData.e.v;\n\n      if (itemData.o._mdf || isFirstFrame) {\n        var attr = styleData.ty === \"gf\" ? \"fill-opacity\" : \"stroke-opacity\";\n        itemData.style.pElem.setAttribute(attr, itemData.o.v);\n      }\n\n      if (itemData.s._mdf || isFirstFrame) {\n        var attr1 = styleData.t === 1 ? \"x1\" : \"cx\";\n        var attr2 = attr1 === \"x1\" ? \"y1\" : \"cy\";\n        gfill.setAttribute(attr1, pt1[0]);\n        gfill.setAttribute(attr2, pt1[1]);\n\n        if (hasOpacity && !itemData.g._collapsable) {\n          itemData.of.setAttribute(attr1, pt1[0]);\n          itemData.of.setAttribute(attr2, pt1[1]);\n        }\n      }\n\n      var stops;\n      var i;\n      var len;\n      var stop;\n\n      if (itemData.g._cmdf || isFirstFrame) {\n        stops = itemData.cst;\n        var cValues = itemData.g.c;\n        len = stops.length;\n\n        for (i = 0; i < len; i += 1) {\n          stop = stops[i];\n          stop.setAttribute(\"offset\", cValues[i * 4] + \"%\");\n          stop.setAttribute(\"stop-color\", \"rgb(\" + cValues[i * 4 + 1] + \",\" + cValues[i * 4 + 2] + \",\" + cValues[i * 4 + 3] + \")\");\n        }\n      }\n\n      if (hasOpacity && (itemData.g._omdf || isFirstFrame)) {\n        var oValues = itemData.g.o;\n\n        if (itemData.g._collapsable) {\n          stops = itemData.cst;\n        } else {\n          stops = itemData.ost;\n        }\n\n        len = stops.length;\n\n        for (i = 0; i < len; i += 1) {\n          stop = stops[i];\n\n          if (!itemData.g._collapsable) {\n            stop.setAttribute(\"offset\", oValues[i * 2] + \"%\");\n          }\n\n          stop.setAttribute(\"stop-opacity\", oValues[i * 2 + 1]);\n        }\n      }\n\n      if (styleData.t === 1) {\n        if (itemData.e._mdf || isFirstFrame) {\n          gfill.setAttribute(\"x2\", pt2[0]);\n          gfill.setAttribute(\"y2\", pt2[1]);\n\n          if (hasOpacity && !itemData.g._collapsable) {\n            itemData.of.setAttribute(\"x2\", pt2[0]);\n            itemData.of.setAttribute(\"y2\", pt2[1]);\n          }\n        }\n      } else {\n        var rad;\n\n        if (itemData.s._mdf || itemData.e._mdf || isFirstFrame) {\n          rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n          gfill.setAttribute(\"r\", rad);\n\n          if (hasOpacity && !itemData.g._collapsable) {\n            itemData.of.setAttribute(\"r\", rad);\n          }\n        }\n\n        if (itemData.e._mdf || itemData.h._mdf || itemData.a._mdf || isFirstFrame) {\n          if (!rad) {\n            rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n          }\n\n          var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n          var percent = itemData.h.v;\n\n          if (percent >= 1) {\n            percent = 0.99;\n          } else if (percent <= -1) {\n            percent = -0.99;\n          }\n\n          var dist = rad * percent;\n          var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n          var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n          gfill.setAttribute(\"fx\", x);\n          gfill.setAttribute(\"fy\", y);\n\n          if (hasOpacity && !itemData.g._collapsable) {\n            itemData.of.setAttribute(\"fx\", x);\n            itemData.of.setAttribute(\"fy\", y);\n          }\n        } // gfill.setAttribute('fy','200');\n\n      }\n    }\n\n    function renderStroke(styleData, itemData, isFirstFrame) {\n      var styleElem = itemData.style;\n      var d = itemData.d;\n\n      if (d && (d._mdf || isFirstFrame) && d.dashStr) {\n        styleElem.pElem.setAttribute(\"stroke-dasharray\", d.dashStr);\n        styleElem.pElem.setAttribute(\"stroke-dashoffset\", d.dashoffset[0]);\n      }\n\n      if (itemData.c && (itemData.c._mdf || isFirstFrame)) {\n        styleElem.pElem.setAttribute(\"stroke\", \"rgb(\" + bmFloor(itemData.c.v[0]) + \",\" + bmFloor(itemData.c.v[1]) + \",\" + bmFloor(itemData.c.v[2]) + \")\");\n      }\n\n      if (itemData.o._mdf || isFirstFrame) {\n        styleElem.pElem.setAttribute(\"stroke-opacity\", itemData.o.v);\n      }\n\n      if (itemData.w._mdf || isFirstFrame) {\n        styleElem.pElem.setAttribute(\"stroke-width\", itemData.w.v);\n\n        if (styleElem.msElem) {\n          styleElem.msElem.setAttribute(\"stroke-width\", itemData.w.v);\n        }\n      }\n    }\n\n    return ob;\n  }();\n  /* global Matrix */\n\n\n  function ShapeTransformManager() {\n    (this || _global).sequences = {};\n    (this || _global).sequenceList = [];\n    (this || _global).transform_key_count = 0;\n  }\n\n  ShapeTransformManager.prototype = {\n    addTransformSequence: function (transforms) {\n      var i;\n      var len = transforms.length;\n      var key = \"_\";\n\n      for (i = 0; i < len; i += 1) {\n        key += transforms[i].transform.key + \"_\";\n      }\n\n      var sequence = (this || _global).sequences[key];\n\n      if (!sequence) {\n        sequence = {\n          transforms: [].concat(transforms),\n          finalTransform: new Matrix(),\n          _mdf: false\n        };\n        (this || _global).sequences[key] = sequence;\n\n        (this || _global).sequenceList.push(sequence);\n      }\n\n      return sequence;\n    },\n    processSequence: function (sequence, isFirstFrame) {\n      var i = 0;\n      var len = sequence.transforms.length;\n      var _mdf = isFirstFrame;\n\n      while (i < len && !isFirstFrame) {\n        if (sequence.transforms[i].transform.mProps._mdf) {\n          _mdf = true;\n          break;\n        }\n\n        i += 1;\n      }\n\n      if (_mdf) {\n        var props;\n        sequence.finalTransform.reset();\n\n        for (i = len - 1; i >= 0; i -= 1) {\n          props = sequence.transforms[i].transform.mProps.v.props;\n          sequence.finalTransform.transform(props[0], props[1], props[2], props[3], props[4], props[5], props[6], props[7], props[8], props[9], props[10], props[11], props[12], props[13], props[14], props[15]);\n        }\n      }\n\n      sequence._mdf = _mdf;\n    },\n    processSequences: function (isFirstFrame) {\n      var i;\n      var len = (this || _global).sequenceList.length;\n\n      for (i = 0; i < len; i += 1) {\n        this.processSequence((this || _global).sequenceList[i], isFirstFrame);\n      }\n    },\n    getNewKey: function () {\n      (this || _global).transform_key_count += 1;\n      return \"_\" + (this || _global).transform_key_count;\n    }\n  };\n  /* global ShapePropertyFactory, SVGShapeData */\n\n  function CVShapeData(element, data, styles, transformsManager) {\n    (this || _global).styledShapes = [];\n    (this || _global).tr = [0, 0, 0, 0, 0, 0];\n    var ty = 4;\n\n    if (data.ty === \"rc\") {\n      ty = 5;\n    } else if (data.ty === \"el\") {\n      ty = 6;\n    } else if (data.ty === \"sr\") {\n      ty = 7;\n    }\n\n    (this || _global).sh = ShapePropertyFactory.getShapeProp(element, data, ty, element);\n    var i;\n    var len = styles.length;\n    var styledShape;\n\n    for (i = 0; i < len; i += 1) {\n      if (!styles[i].closed) {\n        styledShape = {\n          transforms: transformsManager.addTransformSequence(styles[i].transforms),\n          trNodes: []\n        };\n\n        (this || _global).styledShapes.push(styledShape);\n\n        styles[i].elements.push(styledShape);\n      }\n    }\n  }\n\n  CVShapeData.prototype.setAsAnimated = SVGShapeData.prototype.setAsAnimated;\n  /* global LayerExpressionInterface, EffectsExpressionInterface, CompExpressionInterface, ShapeExpressionInterface,\r\n  TextExpressionInterface, getBlendMode,createElementID, EffectsManager */\n\n  function BaseElement() {}\n\n  BaseElement.prototype = {\n    checkMasks: function () {\n      if (!(this || _global).data.hasMask) {\n        return false;\n      }\n\n      var i = 0;\n      var len = (this || _global).data.masksProperties.length;\n\n      while (i < len) {\n        if ((this || _global).data.masksProperties[i].mode !== \"n\" && (this || _global).data.masksProperties[i].cl !== false) {\n          return true;\n        }\n\n        i += 1;\n      }\n\n      return false;\n    },\n    initExpressions: function () {\n      (this || _global).layerInterface = LayerExpressionInterface(this || _global);\n\n      if ((this || _global).data.hasMask && (this || _global).maskManager) {\n        (this || _global).layerInterface.registerMaskInterface((this || _global).maskManager);\n      }\n\n      var effectsInterface = EffectsExpressionInterface.createEffectsInterface(this || _global, (this || _global).layerInterface);\n\n      (this || _global).layerInterface.registerEffectsInterface(effectsInterface);\n\n      if ((this || _global).data.ty === 0 || (this || _global).data.xt) {\n        (this || _global).compInterface = CompExpressionInterface(this || _global);\n      } else if ((this || _global).data.ty === 4) {\n        (this || _global).layerInterface.shapeInterface = ShapeExpressionInterface((this || _global).shapesData, (this || _global).itemsData, (this || _global).layerInterface);\n        (this || _global).layerInterface.content = (this || _global).layerInterface.shapeInterface;\n      } else if ((this || _global).data.ty === 5) {\n        (this || _global).layerInterface.textInterface = TextExpressionInterface(this || _global);\n        (this || _global).layerInterface.text = (this || _global).layerInterface.textInterface;\n      }\n    },\n    setBlendMode: function () {\n      var blendModeValue = getBlendMode((this || _global).data.bm);\n      var elem = (this || _global).baseElement || (this || _global).layerElement;\n      elem.style[\"mix-blend-mode\"] = blendModeValue;\n    },\n    initBaseData: function (data, globalData, comp) {\n      (this || _global).globalData = globalData;\n      (this || _global).comp = comp;\n      (this || _global).data = data;\n      (this || _global).layerId = createElementID(); // Stretch factor for old animations missing this property.\n\n      if (!(this || _global).data.sr) {\n        (this || _global).data.sr = 1;\n      } // effects manager\n\n\n      (this || _global).effectsManager = new EffectsManager((this || _global).data, this || _global, (this || _global).dynamicProperties);\n    },\n    getType: function () {\n      return (this || _global).type;\n    },\n    sourceRectAtTime: function () {}\n  };\n  /* global extendPrototype, BaseElement, TransformElement, HierarchyElement, FrameElement */\n\n  function NullElement(data, globalData, comp) {\n    this.initFrame();\n    this.initBaseData(data, globalData, comp);\n    this.initFrame();\n    this.initTransform(data, globalData, comp);\n    this.initHierarchy();\n  }\n\n  NullElement.prototype.prepareFrame = function (num) {\n    this.prepareProperties(num, true);\n  };\n\n  NullElement.prototype.renderFrame = function () {};\n\n  NullElement.prototype.getBaseElement = function () {\n    return null;\n  };\n\n  NullElement.prototype.destroy = function () {};\n\n  NullElement.prototype.sourceRectAtTime = function () {};\n\n  NullElement.prototype.hide = function () {};\n\n  extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement], NullElement);\n  /* global filtersFactory, featureSupport, filtersFactory, createElementID, createNS, MaskElement, SVGEffects, locationHref */\n\n  function SVGBaseElement() {}\n\n  SVGBaseElement.prototype = {\n    initRendererElement: function () {\n      (this || _global).layerElement = createNS(\"g\");\n    },\n    createContainerElements: function () {\n      (this || _global).matteElement = createNS(\"g\");\n      (this || _global).transformedElement = (this || _global).layerElement;\n      (this || _global).maskedElement = (this || _global).layerElement;\n      (this || _global)._sizeChanged = false;\n      var layerElementParent = null; // If this layer acts as a mask for the following layer\n\n      var filId;\n      var fil;\n      var gg;\n\n      if ((this || _global).data.td) {\n        if ((this || _global).data.td == 3 || (this || _global).data.td == 1) {\n          // eslint-disable-line eqeqeq\n          var masker = createNS(\"mask\");\n          masker.setAttribute(\"id\", (this || _global).layerId);\n          masker.setAttribute(\"mask-type\", (this || _global).data.td == 3 ? \"luminance\" : \"alpha\"); // eslint-disable-line eqeqeq\n\n          masker.appendChild((this || _global).layerElement);\n          layerElementParent = masker;\n\n          (this || _global).globalData.defs.appendChild(masker); // This is only for IE and Edge when mask if of type alpha\n\n\n          if (!featureSupport.maskType && (this || _global).data.td == 1) {\n            // eslint-disable-line eqeqeq\n            masker.setAttribute(\"mask-type\", \"luminance\");\n            filId = createElementID();\n            fil = filtersFactory.createFilter(filId);\n\n            (this || _global).globalData.defs.appendChild(fil);\n\n            fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n            gg = createNS(\"g\");\n            gg.appendChild((this || _global).layerElement);\n            layerElementParent = gg;\n            masker.appendChild(gg);\n            gg.setAttribute(\"filter\", \"url(\" + locationHref + \"#\" + filId + \")\");\n          }\n        } else if ((this || _global).data.td == 2) {\n          // eslint-disable-line eqeqeq\n          var maskGroup = createNS(\"mask\");\n          maskGroup.setAttribute(\"id\", (this || _global).layerId);\n          maskGroup.setAttribute(\"mask-type\", \"alpha\");\n          var maskGrouper = createNS(\"g\");\n          maskGroup.appendChild(maskGrouper);\n          filId = createElementID();\n          fil = filtersFactory.createFilter(filId); /// /\n          // This solution doesn't work on Android when meta tag with viewport attribute is set\n\n          /* var feColorMatrix = createNS('feColorMatrix');\r\n                  feColorMatrix.setAttribute('type', 'matrix');\r\n                  feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\r\n                  feColorMatrix.setAttribute('values','1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 -1 1');\r\n                  fil.appendChild(feColorMatrix); */\n          /// /\n\n          var feCTr = createNS(\"feComponentTransfer\");\n          feCTr.setAttribute(\"in\", \"SourceGraphic\");\n          fil.appendChild(feCTr);\n          var feFunc = createNS(\"feFuncA\");\n          feFunc.setAttribute(\"type\", \"table\");\n          feFunc.setAttribute(\"tableValues\", \"1.0 0.0\");\n          feCTr.appendChild(feFunc); /// /\n\n          (this || _global).globalData.defs.appendChild(fil);\n\n          var alphaRect = createNS(\"rect\");\n          alphaRect.setAttribute(\"width\", (this || _global).comp.data.w);\n          alphaRect.setAttribute(\"height\", (this || _global).comp.data.h);\n          alphaRect.setAttribute(\"x\", \"0\");\n          alphaRect.setAttribute(\"y\", \"0\");\n          alphaRect.setAttribute(\"fill\", \"#ffffff\");\n          alphaRect.setAttribute(\"opacity\", \"0\");\n          maskGrouper.setAttribute(\"filter\", \"url(\" + locationHref + \"#\" + filId + \")\");\n          maskGrouper.appendChild(alphaRect);\n          maskGrouper.appendChild((this || _global).layerElement);\n          layerElementParent = maskGrouper;\n\n          if (!featureSupport.maskType) {\n            maskGroup.setAttribute(\"mask-type\", \"luminance\");\n            fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n            gg = createNS(\"g\");\n            maskGrouper.appendChild(alphaRect);\n            gg.appendChild((this || _global).layerElement);\n            layerElementParent = gg;\n            maskGrouper.appendChild(gg);\n          }\n\n          (this || _global).globalData.defs.appendChild(maskGroup);\n        }\n      } else if ((this || _global).data.tt) {\n        (this || _global).matteElement.appendChild((this || _global).layerElement);\n\n        layerElementParent = (this || _global).matteElement;\n        (this || _global).baseElement = (this || _global).matteElement;\n      } else {\n        (this || _global).baseElement = (this || _global).layerElement;\n      }\n\n      if ((this || _global).data.ln) {\n        (this || _global).layerElement.setAttribute(\"id\", (this || _global).data.ln);\n      }\n\n      if ((this || _global).data.cl) {\n        (this || _global).layerElement.setAttribute(\"class\", (this || _global).data.cl);\n      } // Clipping compositions to hide content that exceeds boundaries. If collapsed transformations is on, component should not be clipped\n\n\n      if ((this || _global).data.ty === 0 && !(this || _global).data.hd) {\n        var cp = createNS(\"clipPath\");\n        var pt = createNS(\"path\");\n        pt.setAttribute(\"d\", \"M0,0 L\" + (this || _global).data.w + \",0 L\" + (this || _global).data.w + \",\" + (this || _global).data.h + \" L0,\" + (this || _global).data.h + \"z\");\n        var clipId = createElementID();\n        cp.setAttribute(\"id\", clipId);\n        cp.appendChild(pt);\n\n        (this || _global).globalData.defs.appendChild(cp);\n\n        if (this.checkMasks()) {\n          var cpGroup = createNS(\"g\");\n          cpGroup.setAttribute(\"clip-path\", \"url(\" + locationHref + \"#\" + clipId + \")\");\n          cpGroup.appendChild((this || _global).layerElement);\n          (this || _global).transformedElement = cpGroup;\n\n          if (layerElementParent) {\n            layerElementParent.appendChild((this || _global).transformedElement);\n          } else {\n            (this || _global).baseElement = (this || _global).transformedElement;\n          }\n        } else {\n          (this || _global).layerElement.setAttribute(\"clip-path\", \"url(\" + locationHref + \"#\" + clipId + \")\");\n        }\n      }\n\n      if ((this || _global).data.bm !== 0) {\n        this.setBlendMode();\n      }\n    },\n    renderElement: function () {\n      if ((this || _global).finalTransform._matMdf) {\n        (this || _global).transformedElement.setAttribute(\"transform\", (this || _global).finalTransform.mat.to2dCSS());\n      }\n\n      if ((this || _global).finalTransform._opMdf) {\n        (this || _global).transformedElement.setAttribute(\"opacity\", (this || _global).finalTransform.mProp.o.v);\n      }\n    },\n    destroyBaseElement: function () {\n      (this || _global).layerElement = null;\n      (this || _global).matteElement = null;\n\n      (this || _global).maskManager.destroy();\n    },\n    getBaseElement: function () {\n      if ((this || _global).data.hd) {\n        return null;\n      }\n\n      return (this || _global).baseElement;\n    },\n    createRenderableComponents: function () {\n      (this || _global).maskManager = new MaskElement((this || _global).data, this || _global, (this || _global).globalData);\n      (this || _global).renderableEffectsManager = new SVGEffects(this || _global);\n    },\n    setMatte: function (id) {\n      if (!(this || _global).matteElement) {\n        return;\n      }\n\n      (this || _global).matteElement.setAttribute(\"mask\", \"url(\" + locationHref + \"#\" + id + \")\");\n    }\n  };\n  /* global ProcessedElement */\n\n  function IShapeElement() {}\n\n  IShapeElement.prototype = {\n    addShapeToModifiers: function (data) {\n      var i;\n      var len = (this || _global).shapeModifiers.length;\n\n      for (i = 0; i < len; i += 1) {\n        (this || _global).shapeModifiers[i].addShape(data);\n      }\n    },\n    isShapeInAnimatedModifiers: function (data) {\n      var i = 0;\n      var len = (this || _global).shapeModifiers.length;\n\n      while (i < len) {\n        if ((this || _global).shapeModifiers[i].isAnimatedWithShape(data)) {\n          return true;\n        }\n      }\n\n      return false;\n    },\n    renderModifiers: function () {\n      if (!(this || _global).shapeModifiers.length) {\n        return;\n      }\n\n      var i;\n      var len = (this || _global).shapes.length;\n\n      for (i = 0; i < len; i += 1) {\n        (this || _global).shapes[i].sh.reset();\n      }\n\n      len = (this || _global).shapeModifiers.length;\n      var shouldBreakProcess;\n\n      for (i = len - 1; i >= 0; i -= 1) {\n        shouldBreakProcess = (this || _global).shapeModifiers[i].processShapes((this || _global)._isFirstFrame); // workaround to fix cases where a repeater resets the shape so the following processes get called twice\n        // TODO: find a better solution for this\n\n        if (shouldBreakProcess) {\n          break;\n        }\n      }\n    },\n    lcEnum: {\n      1: \"butt\",\n      2: \"round\",\n      3: \"square\"\n    },\n    ljEnum: {\n      1: \"miter\",\n      2: \"round\",\n      3: \"bevel\"\n    },\n    searchProcessedElement: function (elem) {\n      var elements = (this || _global).processedElements;\n      var i = 0;\n      var len = elements.length;\n\n      while (i < len) {\n        if (elements[i].elem === elem) {\n          return elements[i].pos;\n        }\n\n        i += 1;\n      }\n\n      return 0;\n    },\n    addProcessedElement: function (elem, pos) {\n      var elements = (this || _global).processedElements;\n      var i = elements.length;\n\n      while (i) {\n        i -= 1;\n\n        if (elements[i].elem === elem) {\n          elements[i].pos = pos;\n          return;\n        }\n      }\n\n      elements.push(new ProcessedElement(elem, pos));\n    },\n    prepareFrame: function (num) {\n      this.prepareRenderableFrame(num);\n      this.prepareProperties(num, (this || _global).isInRange);\n    }\n  };\n  /* global TextProperty, TextAnimatorProperty, buildShapeString, LetterProps */\n\n  function ITextElement() {}\n\n  ITextElement.prototype.initElement = function (data, globalData, comp) {\n    (this || _global).lettersChangedFlag = true;\n    this.initFrame();\n    this.initBaseData(data, globalData, comp);\n    (this || _global).textProperty = new TextProperty(this || _global, data.t, (this || _global).dynamicProperties);\n    (this || _global).textAnimator = new TextAnimatorProperty(data.t, (this || _global).renderType, this || _global);\n    this.initTransform(data, globalData, comp);\n    this.initHierarchy();\n    this.initRenderable();\n    this.initRendererElement();\n    this.createContainerElements();\n    this.createRenderableComponents();\n    this.createContent();\n    this.hide();\n\n    (this || _global).textAnimator.searchProperties((this || _global).dynamicProperties);\n  };\n\n  ITextElement.prototype.prepareFrame = function (num) {\n    (this || _global)._mdf = false;\n    this.prepareRenderableFrame(num);\n    this.prepareProperties(num, (this || _global).isInRange);\n\n    if ((this || _global).textProperty._mdf || (this || _global).textProperty._isFirstFrame) {\n      this.buildNewText();\n      (this || _global).textProperty._isFirstFrame = false;\n      (this || _global).textProperty._mdf = false;\n    }\n  };\n\n  ITextElement.prototype.createPathShape = function (matrixHelper, shapes) {\n    var j;\n    var jLen = shapes.length;\n    var pathNodes;\n    var shapeStr = \"\";\n\n    for (j = 0; j < jLen; j += 1) {\n      pathNodes = shapes[j].ks.k;\n      shapeStr += buildShapeString(pathNodes, pathNodes.i.length, true, matrixHelper);\n    }\n\n    return shapeStr;\n  };\n\n  ITextElement.prototype.updateDocumentData = function (newData, index) {\n    (this || _global).textProperty.updateDocumentData(newData, index);\n  };\n\n  ITextElement.prototype.canResizeFont = function (_canResize) {\n    (this || _global).textProperty.canResizeFont(_canResize);\n  };\n\n  ITextElement.prototype.setMinimumFontSize = function (_fontSize) {\n    (this || _global).textProperty.setMinimumFontSize(_fontSize);\n  };\n\n  ITextElement.prototype.applyTextPropertiesToMatrix = function (documentData, matrixHelper, lineNumber, xPos, yPos) {\n    if (documentData.ps) {\n      matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n    }\n\n    matrixHelper.translate(0, -documentData.ls, 0);\n\n    switch (documentData.j) {\n      case 1:\n        matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]), 0, 0);\n        break;\n\n      case 2:\n        matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]) / 2, 0, 0);\n        break;\n\n      default:\n        break;\n    }\n\n    matrixHelper.translate(xPos, yPos, 0);\n  };\n\n  ITextElement.prototype.buildColor = function (colorData) {\n    return \"rgb(\" + Math.round(colorData[0] * 255) + \",\" + Math.round(colorData[1] * 255) + \",\" + Math.round(colorData[2] * 255) + \")\";\n  };\n\n  ITextElement.prototype.emptyProp = new LetterProps();\n\n  ITextElement.prototype.destroy = function () {};\n  /* global extendPrototype, BaseElement, TransformElement, HierarchyElement, FrameElement, RenderableDOMElement */\n\n\n  function ICompElement() {}\n\n  extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement, RenderableDOMElement], ICompElement);\n\n  ICompElement.prototype.initElement = function (data, globalData, comp) {\n    this.initFrame();\n    this.initBaseData(data, globalData, comp);\n    this.initTransform(data, globalData, comp);\n    this.initRenderable();\n    this.initHierarchy();\n    this.initRendererElement();\n    this.createContainerElements();\n    this.createRenderableComponents();\n\n    if ((this || _global).data.xt || !globalData.progressiveLoad) {\n      this.buildAllItems();\n    }\n\n    this.hide();\n  };\n  /* ICompElement.prototype.hide = function(){\r\n      if(!this.hidden){\r\n          this.hideElement();\r\n          var i,len = this.elements.length;\r\n          for( i = 0; i < len; i+=1 ){\r\n              if(this.elements[i]){\r\n                  this.elements[i].hide();\r\n              }\r\n          }\r\n      }\r\n  }; */\n\n\n  ICompElement.prototype.prepareFrame = function (num) {\n    (this || _global)._mdf = false;\n    this.prepareRenderableFrame(num);\n    this.prepareProperties(num, (this || _global).isInRange);\n\n    if (!(this || _global).isInRange && !(this || _global).data.xt) {\n      return;\n    }\n\n    if (!(this || _global).tm._placeholder) {\n      var timeRemapped = (this || _global).tm.v;\n\n      if (timeRemapped === (this || _global).data.op) {\n        timeRemapped = (this || _global).data.op - 1;\n      }\n\n      (this || _global).renderedFrame = timeRemapped;\n    } else {\n      (this || _global).renderedFrame = num / (this || _global).data.sr;\n    }\n\n    var i;\n    var len = (this || _global).elements.length;\n\n    if (!(this || _global).completeLayers) {\n      this.checkLayers((this || _global).renderedFrame);\n    } // This iteration needs to be backwards because of how expressions connect between each other\n\n\n    for (i = len - 1; i >= 0; i -= 1) {\n      if ((this || _global).completeLayers || (this || _global).elements[i]) {\n        (this || _global).elements[i].prepareFrame((this || _global).renderedFrame - (this || _global).layers[i].st);\n\n        if ((this || _global).elements[i]._mdf) {\n          (this || _global)._mdf = true;\n        }\n      }\n    }\n  };\n\n  ICompElement.prototype.renderInnerContent = function () {\n    var i;\n    var len = (this || _global).layers.length;\n\n    for (i = 0; i < len; i += 1) {\n      if ((this || _global).completeLayers || (this || _global).elements[i]) {\n        (this || _global).elements[i].renderFrame();\n      }\n    }\n  };\n\n  ICompElement.prototype.setElements = function (elems) {\n    (this || _global).elements = elems;\n  };\n\n  ICompElement.prototype.getElements = function () {\n    return (this || _global).elements;\n  };\n\n  ICompElement.prototype.destroyElements = function () {\n    var i;\n    var len = (this || _global).layers.length;\n\n    for (i = 0; i < len; i += 1) {\n      if ((this || _global).elements[i]) {\n        (this || _global).elements[i].destroy();\n      }\n    }\n  };\n\n  ICompElement.prototype.destroy = function () {\n    this.destroyElements();\n    this.destroyBaseElement();\n  };\n  /* global extendPrototype, BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, createNS */\n\n\n  function IImageElement(data, globalData, comp) {\n    (this || _global).assetData = globalData.getAssetData(data.refId);\n    this.initElement(data, globalData, comp);\n    (this || _global).sourceRect = {\n      top: 0,\n      left: 0,\n      width: (this || _global).assetData.w,\n      height: (this || _global).assetData.h\n    };\n  }\n\n  extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], IImageElement);\n\n  IImageElement.prototype.createContent = function () {\n    var assetPath = (this || _global).globalData.getAssetsPath((this || _global).assetData);\n\n    (this || _global).innerElem = createNS(\"image\");\n\n    (this || _global).innerElem.setAttribute(\"width\", (this || _global).assetData.w + \"px\");\n\n    (this || _global).innerElem.setAttribute(\"height\", (this || _global).assetData.h + \"px\");\n\n    (this || _global).innerElem.setAttribute(\"preserveAspectRatio\", (this || _global).assetData.pr || (this || _global).globalData.renderConfig.imagePreserveAspectRatio);\n\n    (this || _global).innerElem.setAttributeNS(\"http://www.w3.org/1999/xlink\", \"href\", assetPath);\n\n    (this || _global).layerElement.appendChild((this || _global).innerElem);\n  };\n\n  IImageElement.prototype.sourceRectAtTime = function () {\n    return (this || _global).sourceRect;\n  };\n  /* global extendPrototype, IImageElement, createNS */\n\n\n  function ISolidElement(data, globalData, comp) {\n    this.initElement(data, globalData, comp);\n  }\n\n  extendPrototype([IImageElement], ISolidElement);\n\n  ISolidElement.prototype.createContent = function () {\n    var rect = createNS(\"rect\"); /// /rect.style.width = this.data.sw;\n    /// /rect.style.height = this.data.sh;\n    /// /rect.style.fill = this.data.sc;\n\n    rect.setAttribute(\"width\", (this || _global).data.sw);\n    rect.setAttribute(\"height\", (this || _global).data.sh);\n    rect.setAttribute(\"fill\", (this || _global).data.sc);\n\n    (this || _global).layerElement.appendChild(rect);\n  };\n  /* global PropertyFactory, extendPrototype, RenderableElement, BaseElement, FrameElement */\n\n\n  function AudioElement(data, globalData, comp) {\n    this.initFrame();\n    this.initRenderable();\n    (this || _global).assetData = globalData.getAssetData(data.refId);\n    this.initBaseData(data, globalData, comp);\n    (this || _global)._isPlaying = false;\n    (this || _global)._canPlay = false;\n\n    var assetPath = (this || _global).globalData.getAssetsPath((this || _global).assetData);\n\n    (this || _global).audio = (this || _global).globalData.audioController.createAudio(assetPath);\n    (this || _global)._currentTime = 0;\n\n    (this || _global).globalData.audioController.addAudio(this || _global);\n\n    (this || _global).tm = data.tm ? PropertyFactory.getProp(this || _global, data.tm, 0, globalData.frameRate, this || _global) : {\n      _placeholder: true\n    };\n  }\n\n  AudioElement.prototype.prepareFrame = function (num) {\n    this.prepareRenderableFrame(num, true);\n    this.prepareProperties(num, true);\n\n    if (!(this || _global).tm._placeholder) {\n      var timeRemapped = (this || _global).tm.v;\n      (this || _global)._currentTime = timeRemapped;\n    } else {\n      (this || _global)._currentTime = num / (this || _global).data.sr;\n    }\n  };\n\n  extendPrototype([RenderableElement, BaseElement, FrameElement], AudioElement);\n\n  AudioElement.prototype.renderFrame = function () {\n    if ((this || _global).isInRange && (this || _global)._canPlay) {\n      if (!(this || _global)._isPlaying) {\n        (this || _global).audio.play();\n\n        (this || _global).audio.seek((this || _global)._currentTime / (this || _global).globalData.frameRate);\n\n        (this || _global)._isPlaying = true;\n      } else if (!(this || _global).audio.playing() || Math.abs((this || _global)._currentTime / (this || _global).globalData.frameRate - (this || _global).audio.seek()) > 0.1) {\n        (this || _global).audio.seek((this || _global)._currentTime / (this || _global).globalData.frameRate);\n      }\n    }\n  };\n\n  AudioElement.prototype.show = function () {// this.audio.play()\n  };\n\n  AudioElement.prototype.hide = function () {\n    (this || _global).audio.pause();\n\n    (this || _global)._isPlaying = false;\n  };\n\n  AudioElement.prototype.pause = function () {\n    (this || _global).audio.pause();\n\n    (this || _global)._isPlaying = false;\n    (this || _global)._canPlay = false;\n  };\n\n  AudioElement.prototype.resume = function () {\n    (this || _global)._canPlay = true;\n  };\n\n  AudioElement.prototype.setRate = function (rateValue) {\n    (this || _global).audio.rate(rateValue);\n  };\n\n  AudioElement.prototype.volume = function (volumeValue) {\n    (this || _global).audio.volume(volumeValue);\n  };\n\n  AudioElement.prototype.getBaseElement = function () {\n    return null;\n  };\n\n  AudioElement.prototype.destroy = function () {};\n\n  AudioElement.prototype.sourceRectAtTime = function () {};\n\n  AudioElement.prototype.initExpressions = function () {};\n  /* global extendPrototype, RenderableElement, BaseElement, FrameElement, FootageInterface */\n\n\n  function FootageElement(data, globalData, comp) {\n    this.initFrame();\n    this.initRenderable();\n    (this || _global).assetData = globalData.getAssetData(data.refId);\n    (this || _global).footageData = globalData.imageLoader.getAsset((this || _global).assetData);\n    this.initBaseData(data, globalData, comp);\n  }\n\n  FootageElement.prototype.prepareFrame = function () {};\n\n  extendPrototype([RenderableElement, BaseElement, FrameElement], FootageElement);\n\n  FootageElement.prototype.getBaseElement = function () {\n    return null;\n  };\n\n  FootageElement.prototype.renderFrame = function () {};\n\n  FootageElement.prototype.destroy = function () {};\n\n  FootageElement.prototype.initExpressions = function () {\n    (this || _global).layerInterface = FootageInterface(this || _global);\n  };\n\n  FootageElement.prototype.getFootageData = function () {\n    return (this || _global).footageData;\n  };\n  /* global createSizedArray, PropertyFactory, extendPrototype, SVGRenderer, ICompElement, SVGBaseElement */\n\n\n  function SVGCompElement(data, globalData, comp) {\n    (this || _global).layers = data.layers;\n    (this || _global).supports3d = true;\n    (this || _global).completeLayers = false;\n    (this || _global).pendingElements = [];\n    (this || _global).elements = (this || _global).layers ? createSizedArray((this || _global).layers.length) : []; // this.layerElement = createNS('g');\n\n    this.initElement(data, globalData, comp);\n    (this || _global).tm = data.tm ? PropertyFactory.getProp(this || _global, data.tm, 0, globalData.frameRate, this || _global) : {\n      _placeholder: true\n    };\n  }\n\n  extendPrototype([SVGRenderer, ICompElement, SVGBaseElement], SVGCompElement);\n  /* global extendPrototype, BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement,\r\n  RenderableDOMElement, ITextElement, createSizedArray, createNS */\n\n  function SVGTextLottieElement(data, globalData, comp) {\n    (this || _global).textSpans = [];\n    (this || _global).renderType = \"svg\";\n    this.initElement(data, globalData, comp);\n  }\n\n  extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], SVGTextLottieElement);\n\n  SVGTextLottieElement.prototype.createContent = function () {\n    if ((this || _global).data.singleShape && !(this || _global).globalData.fontManager.chars) {\n      (this || _global).textContainer = createNS(\"text\");\n    }\n  };\n\n  SVGTextLottieElement.prototype.buildTextContents = function (textArray) {\n    var i = 0;\n    var len = textArray.length;\n    var textContents = [];\n    var currentTextContent = \"\";\n\n    while (i < len) {\n      if (textArray[i] === String.fromCharCode(13) || textArray[i] === String.fromCharCode(3)) {\n        textContents.push(currentTextContent);\n        currentTextContent = \"\";\n      } else {\n        currentTextContent += textArray[i];\n      }\n\n      i += 1;\n    }\n\n    textContents.push(currentTextContent);\n    return textContents;\n  };\n\n  SVGTextLottieElement.prototype.buildNewText = function () {\n    var i;\n    var len;\n    var documentData = (this || _global).textProperty.currentData;\n    (this || _global).renderedLetters = createSizedArray(documentData ? documentData.l.length : 0);\n\n    if (documentData.fc) {\n      (this || _global).layerElement.setAttribute(\"fill\", this.buildColor(documentData.fc));\n    } else {\n      (this || _global).layerElement.setAttribute(\"fill\", \"rgba(0,0,0,0)\");\n    }\n\n    if (documentData.sc) {\n      (this || _global).layerElement.setAttribute(\"stroke\", this.buildColor(documentData.sc));\n\n      (this || _global).layerElement.setAttribute(\"stroke-width\", documentData.sw);\n    }\n\n    (this || _global).layerElement.setAttribute(\"font-size\", documentData.finalSize);\n\n    var fontData = (this || _global).globalData.fontManager.getFontByName(documentData.f);\n\n    if (fontData.fClass) {\n      (this || _global).layerElement.setAttribute(\"class\", fontData.fClass);\n    } else {\n      (this || _global).layerElement.setAttribute(\"font-family\", fontData.fFamily);\n\n      var fWeight = documentData.fWeight;\n      var fStyle = documentData.fStyle;\n\n      (this || _global).layerElement.setAttribute(\"font-style\", fStyle);\n\n      (this || _global).layerElement.setAttribute(\"font-weight\", fWeight);\n    }\n\n    (this || _global).layerElement.setAttribute(\"aria-label\", documentData.t);\n\n    var letters = documentData.l || [];\n    var usesGlyphs = !!(this || _global).globalData.fontManager.chars;\n    len = letters.length;\n    var tSpan;\n    var matrixHelper = (this || _global).mHelper;\n    var shapes;\n    var shapeStr = \"\";\n    var singleShape = (this || _global).data.singleShape;\n    var xPos = 0;\n    var yPos = 0;\n    var firstLine = true;\n    var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n\n    if (singleShape && !usesGlyphs && !documentData.sz) {\n      var tElement = (this || _global).textContainer;\n      var justify = \"start\";\n\n      switch (documentData.j) {\n        case 1:\n          justify = \"end\";\n          break;\n\n        case 2:\n          justify = \"middle\";\n          break;\n\n        default:\n          justify = \"start\";\n          break;\n      }\n\n      tElement.setAttribute(\"text-anchor\", justify);\n      tElement.setAttribute(\"letter-spacing\", trackingOffset);\n      var textContent = this.buildTextContents(documentData.finalText);\n      len = textContent.length;\n      yPos = documentData.ps ? documentData.ps[1] + documentData.ascent : 0;\n\n      for (i = 0; i < len; i += 1) {\n        tSpan = (this || _global).textSpans[i] || createNS(\"tspan\");\n        tSpan.textContent = textContent[i];\n        tSpan.setAttribute(\"x\", 0);\n        tSpan.setAttribute(\"y\", yPos);\n        tSpan.style.display = \"inherit\";\n        tElement.appendChild(tSpan);\n        (this || _global).textSpans[i] = tSpan;\n        yPos += documentData.finalLineHeight;\n      }\n\n      (this || _global).layerElement.appendChild(tElement);\n    } else {\n      var cachedSpansLength = (this || _global).textSpans.length;\n      var shapeData;\n      var charData;\n\n      for (i = 0; i < len; i += 1) {\n        if (!usesGlyphs || !singleShape || i === 0) {\n          tSpan = cachedSpansLength > i ? (this || _global).textSpans[i] : createNS(usesGlyphs ? \"path\" : \"text\");\n\n          if (cachedSpansLength <= i) {\n            tSpan.setAttribute(\"stroke-linecap\", \"butt\");\n            tSpan.setAttribute(\"stroke-linejoin\", \"round\");\n            tSpan.setAttribute(\"stroke-miterlimit\", \"4\");\n            (this || _global).textSpans[i] = tSpan;\n\n            (this || _global).layerElement.appendChild(tSpan);\n          }\n\n          tSpan.style.display = \"inherit\";\n        }\n\n        matrixHelper.reset();\n        matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n\n        if (singleShape) {\n          if (letters[i].n) {\n            xPos = -trackingOffset;\n            yPos += documentData.yOffset;\n            yPos += firstLine ? 1 : 0;\n            firstLine = false;\n          }\n\n          this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n          xPos += letters[i].l || 0; // xPos += letters[i].val === ' ' ? 0 : trackingOffset;\n\n          xPos += trackingOffset;\n        }\n\n        if (usesGlyphs) {\n          charData = (this || _global).globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, (this || _global).globalData.fontManager.getFontByName(documentData.f).fFamily);\n          shapeData = charData && charData.data || {};\n          shapes = shapeData.shapes ? shapeData.shapes[0].it : [];\n\n          if (!singleShape) {\n            tSpan.setAttribute(\"d\", this.createPathShape(matrixHelper, shapes));\n          } else {\n            shapeStr += this.createPathShape(matrixHelper, shapes);\n          }\n        } else {\n          if (singleShape) {\n            tSpan.setAttribute(\"transform\", \"translate(\" + matrixHelper.props[12] + \",\" + matrixHelper.props[13] + \")\");\n          }\n\n          tSpan.textContent = letters[i].val;\n          tSpan.setAttributeNS(\"http://www.w3.org/XML/1998/namespace\", \"xml:space\", \"preserve\");\n        } //\n\n      }\n\n      if (singleShape && tSpan) {\n        tSpan.setAttribute(\"d\", shapeStr);\n      }\n    }\n\n    while (i < (this || _global).textSpans.length) {\n      (this || _global).textSpans[i].style.display = \"none\";\n      i += 1;\n    }\n\n    (this || _global)._sizeChanged = true;\n  };\n\n  SVGTextLottieElement.prototype.sourceRectAtTime = function () {\n    this.prepareFrame((this || _global).comp.renderedFrame - (this || _global).data.st);\n    this.renderInnerContent();\n\n    if ((this || _global)._sizeChanged) {\n      (this || _global)._sizeChanged = false;\n\n      var textBox = (this || _global).layerElement.getBBox();\n\n      (this || _global).bbox = {\n        top: textBox.y,\n        left: textBox.x,\n        width: textBox.width,\n        height: textBox.height\n      };\n    }\n\n    return (this || _global).bbox;\n  };\n\n  SVGTextLottieElement.prototype.renderInnerContent = function () {\n    if (!(this || _global).data.singleShape) {\n      (this || _global).textAnimator.getMeasures((this || _global).textProperty.currentData, (this || _global).lettersChangedFlag);\n\n      if ((this || _global).lettersChangedFlag || (this || _global).textAnimator.lettersChangedFlag) {\n        (this || _global)._sizeChanged = true;\n        var i;\n        var len;\n        var renderedLetters = (this || _global).textAnimator.renderedLetters;\n        var letters = (this || _global).textProperty.currentData.l;\n        len = letters.length;\n        var renderedLetter;\n        var textSpan;\n\n        for (i = 0; i < len; i += 1) {\n          if (!letters[i].n) {\n            renderedLetter = renderedLetters[i];\n            textSpan = (this || _global).textSpans[i];\n\n            if (renderedLetter._mdf.m) {\n              textSpan.setAttribute(\"transform\", renderedLetter.m);\n            }\n\n            if (renderedLetter._mdf.o) {\n              textSpan.setAttribute(\"opacity\", renderedLetter.o);\n            }\n\n            if (renderedLetter._mdf.sw) {\n              textSpan.setAttribute(\"stroke-width\", renderedLetter.sw);\n            }\n\n            if (renderedLetter._mdf.sc) {\n              textSpan.setAttribute(\"stroke\", renderedLetter.sc);\n            }\n\n            if (renderedLetter._mdf.fc) {\n              textSpan.setAttribute(\"fill\", renderedLetter.fc);\n            }\n          }\n        }\n      }\n    }\n  };\n  /* global extendPrototype, BaseElement, TransformElement, SVGBaseElement, IShapeElement, HierarchyElement,\r\n  FrameElement, RenderableDOMElement, Matrix, SVGStyleData, SVGStrokeStyleData, SVGFillStyleData,\r\n  SVGGradientFillStyleData, SVGGradientStrokeStyleData, locationHref, getBlendMode, ShapeGroupData,\r\n  TransformPropertyFactory, SVGTransformData, ShapePropertyFactory, SVGShapeData, SVGElementsRenderer, ShapeModifiers */\n\n\n  function SVGShapeElement(data, globalData, comp) {\n    // List of drawable elements\n    (this || _global).shapes = []; // Full shape data\n\n    (this || _global).shapesData = data.shapes; // List of styles that will be applied to shapes\n\n    (this || _global).stylesList = []; // List of modifiers that will be applied to shapes\n\n    (this || _global).shapeModifiers = []; // List of items in shape tree\n\n    (this || _global).itemsData = []; // List of items in previous shape tree\n\n    (this || _global).processedElements = []; // List of animated components\n\n    (this || _global).animatedContents = [];\n    this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n    // List of elements that have been created\n\n    (this || _global).prevViewData = []; // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n  }\n\n  extendPrototype([BaseElement, TransformElement, SVGBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableDOMElement], SVGShapeElement);\n\n  SVGShapeElement.prototype.initSecondaryElement = function () {};\n\n  SVGShapeElement.prototype.identityMatrix = new Matrix();\n\n  SVGShapeElement.prototype.buildExpressionInterface = function () {};\n\n  SVGShapeElement.prototype.createContent = function () {\n    this.searchShapes((this || _global).shapesData, (this || _global).itemsData, (this || _global).prevViewData, (this || _global).layerElement, 0, [], true);\n    this.filterUniqueShapes();\n  };\n  /*\r\n  This method searches for multiple shapes that affect a single element and one of them is animated\r\n  */\n\n\n  SVGShapeElement.prototype.filterUniqueShapes = function () {\n    var i;\n    var len = (this || _global).shapes.length;\n    var shape;\n    var j;\n    var jLen = (this || _global).stylesList.length;\n    var style;\n    var tempShapes = [];\n    var areAnimated = false;\n\n    for (j = 0; j < jLen; j += 1) {\n      style = (this || _global).stylesList[j];\n      areAnimated = false;\n      tempShapes.length = 0;\n\n      for (i = 0; i < len; i += 1) {\n        shape = (this || _global).shapes[i];\n\n        if (shape.styles.indexOf(style) !== -1) {\n          tempShapes.push(shape);\n          areAnimated = shape._isAnimated || areAnimated;\n        }\n      }\n\n      if (tempShapes.length > 1 && areAnimated) {\n        this.setShapesAsAnimated(tempShapes);\n      }\n    }\n  };\n\n  SVGShapeElement.prototype.setShapesAsAnimated = function (shapes) {\n    var i;\n    var len = shapes.length;\n\n    for (i = 0; i < len; i += 1) {\n      shapes[i].setAsAnimated();\n    }\n  };\n\n  SVGShapeElement.prototype.createStyleElement = function (data, level) {\n    // TODO: prevent drawing of hidden styles\n    var elementData;\n    var styleOb = new SVGStyleData(data, level);\n    var pathElement = styleOb.pElem;\n\n    if (data.ty === \"st\") {\n      elementData = new SVGStrokeStyleData(this || _global, data, styleOb);\n    } else if (data.ty === \"fl\") {\n      elementData = new SVGFillStyleData(this || _global, data, styleOb);\n    } else if (data.ty === \"gf\" || data.ty === \"gs\") {\n      var GradientConstructor = data.ty === \"gf\" ? SVGGradientFillStyleData : SVGGradientStrokeStyleData;\n      elementData = new GradientConstructor(this || _global, data, styleOb);\n\n      (this || _global).globalData.defs.appendChild(elementData.gf);\n\n      if (elementData.maskId) {\n        (this || _global).globalData.defs.appendChild(elementData.ms);\n\n        (this || _global).globalData.defs.appendChild(elementData.of);\n\n        pathElement.setAttribute(\"mask\", \"url(\" + locationHref + \"#\" + elementData.maskId + \")\");\n      }\n    }\n\n    if (data.ty === \"st\" || data.ty === \"gs\") {\n      pathElement.setAttribute(\"stroke-linecap\", (this || _global).lcEnum[data.lc] || \"round\");\n      pathElement.setAttribute(\"stroke-linejoin\", (this || _global).ljEnum[data.lj] || \"round\");\n      pathElement.setAttribute(\"fill-opacity\", \"0\");\n\n      if (data.lj === 1) {\n        pathElement.setAttribute(\"stroke-miterlimit\", data.ml);\n      }\n    }\n\n    if (data.r === 2) {\n      pathElement.setAttribute(\"fill-rule\", \"evenodd\");\n    }\n\n    if (data.ln) {\n      pathElement.setAttribute(\"id\", data.ln);\n    }\n\n    if (data.cl) {\n      pathElement.setAttribute(\"class\", data.cl);\n    }\n\n    if (data.bm) {\n      pathElement.style[\"mix-blend-mode\"] = getBlendMode(data.bm);\n    }\n\n    (this || _global).stylesList.push(styleOb);\n\n    this.addToAnimatedContents(data, elementData);\n    return elementData;\n  };\n\n  SVGShapeElement.prototype.createGroupElement = function (data) {\n    var elementData = new ShapeGroupData();\n\n    if (data.ln) {\n      elementData.gr.setAttribute(\"id\", data.ln);\n    }\n\n    if (data.cl) {\n      elementData.gr.setAttribute(\"class\", data.cl);\n    }\n\n    if (data.bm) {\n      elementData.gr.style[\"mix-blend-mode\"] = getBlendMode(data.bm);\n    }\n\n    return elementData;\n  };\n\n  SVGShapeElement.prototype.createTransformElement = function (data, container) {\n    var transformProperty = TransformPropertyFactory.getTransformProperty(this || _global, data, this || _global);\n    var elementData = new SVGTransformData(transformProperty, transformProperty.o, container);\n    this.addToAnimatedContents(data, elementData);\n    return elementData;\n  };\n\n  SVGShapeElement.prototype.createShapeElement = function (data, ownTransformers, level) {\n    var ty = 4;\n\n    if (data.ty === \"rc\") {\n      ty = 5;\n    } else if (data.ty === \"el\") {\n      ty = 6;\n    } else if (data.ty === \"sr\") {\n      ty = 7;\n    }\n\n    var shapeProperty = ShapePropertyFactory.getShapeProp(this || _global, data, ty, this || _global);\n    var elementData = new SVGShapeData(ownTransformers, level, shapeProperty);\n\n    (this || _global).shapes.push(elementData);\n\n    this.addShapeToModifiers(elementData);\n    this.addToAnimatedContents(data, elementData);\n    return elementData;\n  };\n\n  SVGShapeElement.prototype.addToAnimatedContents = function (data, element) {\n    var i = 0;\n    var len = (this || _global).animatedContents.length;\n\n    while (i < len) {\n      if ((this || _global).animatedContents[i].element === element) {\n        return;\n      }\n\n      i += 1;\n    }\n\n    (this || _global).animatedContents.push({\n      fn: SVGElementsRenderer.createRenderFunction(data),\n      element: element,\n      data: data\n    });\n  };\n\n  SVGShapeElement.prototype.setElementStyles = function (elementData) {\n    var arr = elementData.styles;\n    var j;\n    var jLen = (this || _global).stylesList.length;\n\n    for (j = 0; j < jLen; j += 1) {\n      if (!(this || _global).stylesList[j].closed) {\n        arr.push((this || _global).stylesList[j]);\n      }\n    }\n  };\n\n  SVGShapeElement.prototype.reloadShapes = function () {\n    (this || _global)._isFirstFrame = true;\n    var i;\n    var len = (this || _global).itemsData.length;\n\n    for (i = 0; i < len; i += 1) {\n      (this || _global).prevViewData[i] = (this || _global).itemsData[i];\n    }\n\n    this.searchShapes((this || _global).shapesData, (this || _global).itemsData, (this || _global).prevViewData, (this || _global).layerElement, 0, [], true);\n    this.filterUniqueShapes();\n    len = (this || _global).dynamicProperties.length;\n\n    for (i = 0; i < len; i += 1) {\n      (this || _global).dynamicProperties[i].getValue();\n    }\n\n    this.renderModifiers();\n  };\n\n  SVGShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, container, level, transformers, render) {\n    var ownTransformers = [].concat(transformers);\n    var i;\n    var len = arr.length - 1;\n    var j;\n    var jLen;\n    var ownStyles = [];\n    var ownModifiers = [];\n    var currentTransform;\n    var modifier;\n    var processedPos;\n\n    for (i = len; i >= 0; i -= 1) {\n      processedPos = this.searchProcessedElement(arr[i]);\n\n      if (!processedPos) {\n        arr[i]._render = render;\n      } else {\n        itemsData[i] = prevViewData[processedPos - 1];\n      }\n\n      if (arr[i].ty === \"fl\" || arr[i].ty === \"st\" || arr[i].ty === \"gf\" || arr[i].ty === \"gs\") {\n        if (!processedPos) {\n          itemsData[i] = this.createStyleElement(arr[i], level);\n        } else {\n          itemsData[i].style.closed = false;\n        }\n\n        if (arr[i]._render) {\n          container.appendChild(itemsData[i].style.pElem);\n        }\n\n        ownStyles.push(itemsData[i].style);\n      } else if (arr[i].ty === \"gr\") {\n        if (!processedPos) {\n          itemsData[i] = this.createGroupElement(arr[i]);\n        } else {\n          jLen = itemsData[i].it.length;\n\n          for (j = 0; j < jLen; j += 1) {\n            itemsData[i].prevViewData[j] = itemsData[i].it[j];\n          }\n        }\n\n        this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, itemsData[i].gr, level + 1, ownTransformers, render);\n\n        if (arr[i]._render) {\n          container.appendChild(itemsData[i].gr);\n        }\n      } else if (arr[i].ty === \"tr\") {\n        if (!processedPos) {\n          itemsData[i] = this.createTransformElement(arr[i], container);\n        }\n\n        currentTransform = itemsData[i].transform;\n        ownTransformers.push(currentTransform);\n      } else if (arr[i].ty === \"sh\" || arr[i].ty === \"rc\" || arr[i].ty === \"el\" || arr[i].ty === \"sr\") {\n        if (!processedPos) {\n          itemsData[i] = this.createShapeElement(arr[i], ownTransformers, level);\n        }\n\n        this.setElementStyles(itemsData[i]);\n      } else if (arr[i].ty === \"tm\" || arr[i].ty === \"rd\" || arr[i].ty === \"ms\" || arr[i].ty === \"pb\") {\n        if (!processedPos) {\n          modifier = ShapeModifiers.getModifier(arr[i].ty);\n          modifier.init(this || _global, arr[i]);\n          itemsData[i] = modifier;\n\n          (this || _global).shapeModifiers.push(modifier);\n        } else {\n          modifier = itemsData[i];\n          modifier.closed = false;\n        }\n\n        ownModifiers.push(modifier);\n      } else if (arr[i].ty === \"rp\") {\n        if (!processedPos) {\n          modifier = ShapeModifiers.getModifier(arr[i].ty);\n          itemsData[i] = modifier;\n          modifier.init(this || _global, arr, i, itemsData);\n\n          (this || _global).shapeModifiers.push(modifier);\n\n          render = false;\n        } else {\n          modifier = itemsData[i];\n          modifier.closed = true;\n        }\n\n        ownModifiers.push(modifier);\n      }\n\n      this.addProcessedElement(arr[i], i + 1);\n    }\n\n    len = ownStyles.length;\n\n    for (i = 0; i < len; i += 1) {\n      ownStyles[i].closed = true;\n    }\n\n    len = ownModifiers.length;\n\n    for (i = 0; i < len; i += 1) {\n      ownModifiers[i].closed = true;\n    }\n  };\n\n  SVGShapeElement.prototype.renderInnerContent = function () {\n    this.renderModifiers();\n    var i;\n    var len = (this || _global).stylesList.length;\n\n    for (i = 0; i < len; i += 1) {\n      (this || _global).stylesList[i].reset();\n    }\n\n    this.renderShape();\n\n    for (i = 0; i < len; i += 1) {\n      if ((this || _global).stylesList[i]._mdf || (this || _global)._isFirstFrame) {\n        if ((this || _global).stylesList[i].msElem) {\n          (this || _global).stylesList[i].msElem.setAttribute(\"d\", (this || _global).stylesList[i].d); // Adding M0 0 fixes same mask bug on all browsers\n\n\n          (this || _global).stylesList[i].d = \"M0 0\" + (this || _global).stylesList[i].d;\n        }\n\n        (this || _global).stylesList[i].pElem.setAttribute(\"d\", (this || _global).stylesList[i].d || \"M0 0\");\n      }\n    }\n  };\n\n  SVGShapeElement.prototype.renderShape = function () {\n    var i;\n    var len = (this || _global).animatedContents.length;\n    var animatedContent;\n\n    for (i = 0; i < len; i += 1) {\n      animatedContent = (this || _global).animatedContents[i];\n\n      if (((this || _global)._isFirstFrame || animatedContent.element._isAnimated) && animatedContent.data !== true) {\n        animatedContent.fn(animatedContent.data, animatedContent.element, (this || _global)._isFirstFrame);\n      }\n    }\n  };\n\n  SVGShapeElement.prototype.destroy = function () {\n    this.destroyBaseElement();\n    (this || _global).shapesData = null;\n    (this || _global).itemsData = null;\n  };\n  /* global createNS */\n\n\n  function SVGTintFilter(filter, filterManager) {\n    (this || _global).filterManager = filterManager;\n    var feColorMatrix = createNS(\"feColorMatrix\");\n    feColorMatrix.setAttribute(\"type\", \"matrix\");\n    feColorMatrix.setAttribute(\"color-interpolation-filters\", \"linearRGB\");\n    feColorMatrix.setAttribute(\"values\", \"0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\");\n    feColorMatrix.setAttribute(\"result\", \"f1\");\n    filter.appendChild(feColorMatrix);\n    feColorMatrix = createNS(\"feColorMatrix\");\n    feColorMatrix.setAttribute(\"type\", \"matrix\");\n    feColorMatrix.setAttribute(\"color-interpolation-filters\", \"sRGB\");\n    feColorMatrix.setAttribute(\"values\", \"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0\");\n    feColorMatrix.setAttribute(\"result\", \"f2\");\n    filter.appendChild(feColorMatrix);\n    (this || _global).matrixFilter = feColorMatrix;\n\n    if (filterManager.effectElements[2].p.v !== 100 || filterManager.effectElements[2].p.k) {\n      var feMerge = createNS(\"feMerge\");\n      filter.appendChild(feMerge);\n      var feMergeNode;\n      feMergeNode = createNS(\"feMergeNode\");\n      feMergeNode.setAttribute(\"in\", \"SourceGraphic\");\n      feMerge.appendChild(feMergeNode);\n      feMergeNode = createNS(\"feMergeNode\");\n      feMergeNode.setAttribute(\"in\", \"f2\");\n      feMerge.appendChild(feMergeNode);\n    }\n  }\n\n  SVGTintFilter.prototype.renderFrame = function (forceRender) {\n    if (forceRender || (this || _global).filterManager._mdf) {\n      var colorBlack = (this || _global).filterManager.effectElements[0].p.v;\n      var colorWhite = (this || _global).filterManager.effectElements[1].p.v;\n      var opacity = (this || _global).filterManager.effectElements[2].p.v / 100;\n\n      (this || _global).matrixFilter.setAttribute(\"values\", colorWhite[0] - colorBlack[0] + \" 0 0 0 \" + colorBlack[0] + \" \" + (colorWhite[1] - colorBlack[1]) + \" 0 0 0 \" + colorBlack[1] + \" \" + (colorWhite[2] - colorBlack[2]) + \" 0 0 0 \" + colorBlack[2] + \" 0 0 0 \" + opacity + \" 0\");\n    }\n  };\n  /* global createNS */\n\n\n  function SVGFillFilter(filter, filterManager) {\n    (this || _global).filterManager = filterManager;\n    var feColorMatrix = createNS(\"feColorMatrix\");\n    feColorMatrix.setAttribute(\"type\", \"matrix\");\n    feColorMatrix.setAttribute(\"color-interpolation-filters\", \"sRGB\");\n    feColorMatrix.setAttribute(\"values\", \"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0\");\n    filter.appendChild(feColorMatrix);\n    (this || _global).matrixFilter = feColorMatrix;\n  }\n\n  SVGFillFilter.prototype.renderFrame = function (forceRender) {\n    if (forceRender || (this || _global).filterManager._mdf) {\n      var color = (this || _global).filterManager.effectElements[2].p.v;\n      var opacity = (this || _global).filterManager.effectElements[6].p.v;\n\n      (this || _global).matrixFilter.setAttribute(\"values\", \"0 0 0 0 \" + color[0] + \" 0 0 0 0 \" + color[1] + \" 0 0 0 0 \" + color[2] + \" 0 0 0 \" + opacity + \" 0\");\n    }\n  };\n  /* global createNS */\n\n\n  function SVGGaussianBlurEffect(filter, filterManager) {\n    // Outset the filter region by 100% on all sides to accommodate blur expansion.\n    filter.setAttribute(\"x\", \"-100%\");\n    filter.setAttribute(\"y\", \"-100%\");\n    filter.setAttribute(\"width\", \"300%\");\n    filter.setAttribute(\"height\", \"300%\");\n    (this || _global).filterManager = filterManager;\n    var feGaussianBlur = createNS(\"feGaussianBlur\");\n    filter.appendChild(feGaussianBlur);\n    (this || _global).feGaussianBlur = feGaussianBlur;\n  }\n\n  SVGGaussianBlurEffect.prototype.renderFrame = function (forceRender) {\n    if (forceRender || (this || _global).filterManager._mdf) {\n      // Empirical value, matching AE's blur appearance.\n      var kBlurrinessToSigma = 0.3;\n      var sigma = (this || _global).filterManager.effectElements[0].p.v * kBlurrinessToSigma; // Dimensions mapping:\n      //\n      //   1 -> horizontal & vertical\n      //   2 -> horizontal only\n      //   3 -> vertical only\n      //\n\n      var dimensions = (this || _global).filterManager.effectElements[1].p.v;\n      var sigmaX = dimensions == 3 ? 0 : sigma; // eslint-disable-line eqeqeq\n\n      var sigmaY = dimensions == 2 ? 0 : sigma; // eslint-disable-line eqeqeq\n\n      (this || _global).feGaussianBlur.setAttribute(\"stdDeviation\", sigmaX + \" \" + sigmaY); // Repeat edges mapping:\n      //\n      //   0 -> off -> duplicate\n      //   1 -> on  -> wrap\n\n\n      var edgeMode = (this || _global).filterManager.effectElements[2].p.v == 1 ? \"wrap\" : \"duplicate\"; // eslint-disable-line eqeqeq\n\n      (this || _global).feGaussianBlur.setAttribute(\"edgeMode\", edgeMode);\n    }\n  };\n  /* global createNS, createElementID, locationHref, bmFloor */\n\n\n  function SVGStrokeEffect(elem, filterManager) {\n    (this || _global).initialized = false;\n    (this || _global).filterManager = filterManager;\n    (this || _global).elem = elem;\n    (this || _global).paths = [];\n  }\n\n  SVGStrokeEffect.prototype.initialize = function () {\n    var elemChildren = (this || _global).elem.layerElement.children || (this || _global).elem.layerElement.childNodes;\n    var path;\n    var groupPath;\n    var i;\n    var len;\n\n    if ((this || _global).filterManager.effectElements[1].p.v === 1) {\n      len = (this || _global).elem.maskManager.masksProperties.length;\n      i = 0;\n    } else {\n      i = (this || _global).filterManager.effectElements[0].p.v - 1;\n      len = i + 1;\n    }\n\n    groupPath = createNS(\"g\");\n    groupPath.setAttribute(\"fill\", \"none\");\n    groupPath.setAttribute(\"stroke-linecap\", \"round\");\n    groupPath.setAttribute(\"stroke-dashoffset\", 1);\n\n    for (i; i < len; i += 1) {\n      path = createNS(\"path\");\n      groupPath.appendChild(path);\n\n      (this || _global).paths.push({\n        p: path,\n        m: i\n      });\n    }\n\n    if ((this || _global).filterManager.effectElements[10].p.v === 3) {\n      var mask = createNS(\"mask\");\n      var id = createElementID();\n      mask.setAttribute(\"id\", id);\n      mask.setAttribute(\"mask-type\", \"alpha\");\n      mask.appendChild(groupPath);\n\n      (this || _global).elem.globalData.defs.appendChild(mask);\n\n      var g = createNS(\"g\");\n      g.setAttribute(\"mask\", \"url(\" + locationHref + \"#\" + id + \")\");\n\n      while (elemChildren[0]) {\n        g.appendChild(elemChildren[0]);\n      }\n\n      (this || _global).elem.layerElement.appendChild(g);\n\n      (this || _global).masker = mask;\n      groupPath.setAttribute(\"stroke\", \"#fff\");\n    } else if ((this || _global).filterManager.effectElements[10].p.v === 1 || (this || _global).filterManager.effectElements[10].p.v === 2) {\n      if ((this || _global).filterManager.effectElements[10].p.v === 2) {\n        elemChildren = (this || _global).elem.layerElement.children || (this || _global).elem.layerElement.childNodes;\n\n        while (elemChildren.length) {\n          (this || _global).elem.layerElement.removeChild(elemChildren[0]);\n        }\n      }\n\n      (this || _global).elem.layerElement.appendChild(groupPath);\n\n      (this || _global).elem.layerElement.removeAttribute(\"mask\");\n\n      groupPath.setAttribute(\"stroke\", \"#fff\");\n    }\n\n    (this || _global).initialized = true;\n    (this || _global).pathMasker = groupPath;\n  };\n\n  SVGStrokeEffect.prototype.renderFrame = function (forceRender) {\n    if (!(this || _global).initialized) {\n      this.initialize();\n    }\n\n    var i;\n    var len = (this || _global).paths.length;\n    var mask;\n    var path;\n\n    for (i = 0; i < len; i += 1) {\n      if ((this || _global).paths[i].m !== -1) {\n        mask = (this || _global).elem.maskManager.viewData[(this || _global).paths[i].m];\n        path = (this || _global).paths[i].p;\n\n        if (forceRender || (this || _global).filterManager._mdf || mask.prop._mdf) {\n          path.setAttribute(\"d\", mask.lastPath);\n        }\n\n        if (forceRender || (this || _global).filterManager.effectElements[9].p._mdf || (this || _global).filterManager.effectElements[4].p._mdf || (this || _global).filterManager.effectElements[7].p._mdf || (this || _global).filterManager.effectElements[8].p._mdf || mask.prop._mdf) {\n          var dasharrayValue;\n\n          if ((this || _global).filterManager.effectElements[7].p.v !== 0 || (this || _global).filterManager.effectElements[8].p.v !== 100) {\n            var s = Math.min((this || _global).filterManager.effectElements[7].p.v, (this || _global).filterManager.effectElements[8].p.v) * 0.01;\n            var e = Math.max((this || _global).filterManager.effectElements[7].p.v, (this || _global).filterManager.effectElements[8].p.v) * 0.01;\n            var l = path.getTotalLength();\n            dasharrayValue = \"0 0 0 \" + l * s + \" \";\n            var lineLength = l * (e - s);\n            var segment = 1 + (this || _global).filterManager.effectElements[4].p.v * 2 * (this || _global).filterManager.effectElements[9].p.v * 0.01;\n            var units = Math.floor(lineLength / segment);\n            var j;\n\n            for (j = 0; j < units; j += 1) {\n              dasharrayValue += \"1 \" + (this || _global).filterManager.effectElements[4].p.v * 2 * (this || _global).filterManager.effectElements[9].p.v * 0.01 + \" \";\n            }\n\n            dasharrayValue += \"0 \" + l * 10 + \" 0 0\";\n          } else {\n            dasharrayValue = \"1 \" + (this || _global).filterManager.effectElements[4].p.v * 2 * (this || _global).filterManager.effectElements[9].p.v * 0.01;\n          }\n\n          path.setAttribute(\"stroke-dasharray\", dasharrayValue);\n        }\n      }\n    }\n\n    if (forceRender || (this || _global).filterManager.effectElements[4].p._mdf) {\n      (this || _global).pathMasker.setAttribute(\"stroke-width\", (this || _global).filterManager.effectElements[4].p.v * 2);\n    }\n\n    if (forceRender || (this || _global).filterManager.effectElements[6].p._mdf) {\n      (this || _global).pathMasker.setAttribute(\"opacity\", (this || _global).filterManager.effectElements[6].p.v);\n    }\n\n    if ((this || _global).filterManager.effectElements[10].p.v === 1 || (this || _global).filterManager.effectElements[10].p.v === 2) {\n      if (forceRender || (this || _global).filterManager.effectElements[3].p._mdf) {\n        var color = (this || _global).filterManager.effectElements[3].p.v;\n\n        (this || _global).pathMasker.setAttribute(\"stroke\", \"rgb(\" + bmFloor(color[0] * 255) + \",\" + bmFloor(color[1] * 255) + \",\" + bmFloor(color[2] * 255) + \")\");\n      }\n    }\n  };\n  /* global createNS */\n\n\n  function SVGTritoneFilter(filter, filterManager) {\n    (this || _global).filterManager = filterManager;\n    var feColorMatrix = createNS(\"feColorMatrix\");\n    feColorMatrix.setAttribute(\"type\", \"matrix\");\n    feColorMatrix.setAttribute(\"color-interpolation-filters\", \"linearRGB\");\n    feColorMatrix.setAttribute(\"values\", \"0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\");\n    feColorMatrix.setAttribute(\"result\", \"f1\");\n    filter.appendChild(feColorMatrix);\n    var feComponentTransfer = createNS(\"feComponentTransfer\");\n    feComponentTransfer.setAttribute(\"color-interpolation-filters\", \"sRGB\");\n    filter.appendChild(feComponentTransfer);\n    (this || _global).matrixFilter = feComponentTransfer;\n    var feFuncR = createNS(\"feFuncR\");\n    feFuncR.setAttribute(\"type\", \"table\");\n    feComponentTransfer.appendChild(feFuncR);\n    (this || _global).feFuncR = feFuncR;\n    var feFuncG = createNS(\"feFuncG\");\n    feFuncG.setAttribute(\"type\", \"table\");\n    feComponentTransfer.appendChild(feFuncG);\n    (this || _global).feFuncG = feFuncG;\n    var feFuncB = createNS(\"feFuncB\");\n    feFuncB.setAttribute(\"type\", \"table\");\n    feComponentTransfer.appendChild(feFuncB);\n    (this || _global).feFuncB = feFuncB;\n  }\n\n  SVGTritoneFilter.prototype.renderFrame = function (forceRender) {\n    if (forceRender || (this || _global).filterManager._mdf) {\n      var color1 = (this || _global).filterManager.effectElements[0].p.v;\n      var color2 = (this || _global).filterManager.effectElements[1].p.v;\n      var color3 = (this || _global).filterManager.effectElements[2].p.v;\n      var tableR = color3[0] + \" \" + color2[0] + \" \" + color1[0];\n      var tableG = color3[1] + \" \" + color2[1] + \" \" + color1[1];\n      var tableB = color3[2] + \" \" + color2[2] + \" \" + color1[2];\n\n      (this || _global).feFuncR.setAttribute(\"tableValues\", tableR);\n\n      (this || _global).feFuncG.setAttribute(\"tableValues\", tableG);\n\n      (this || _global).feFuncB.setAttribute(\"tableValues\", tableB); // var opacity = this.filterManager.effectElements[2].p.v/100;\n      // this.matrixFilter.setAttribute('values',(colorWhite[0]- colorBlack[0])+' 0 0 0 '+ colorBlack[0] +' '+ (colorWhite[1]- colorBlack[1]) +' 0 0 0 '+ colorBlack[1] +' '+ (colorWhite[2]- colorBlack[2]) +' 0 0 0 '+ colorBlack[2] +' 0 0 0 ' + opacity + ' 0');\n\n    }\n  };\n  /* global createNS */\n\n\n  function SVGProLevelsFilter(filter, filterManager) {\n    (this || _global).filterManager = filterManager;\n    var effectElements = (this || _global).filterManager.effectElements;\n    var feComponentTransfer = createNS(\"feComponentTransfer\");\n\n    if (effectElements[10].p.k || effectElements[10].p.v !== 0 || effectElements[11].p.k || effectElements[11].p.v !== 1 || effectElements[12].p.k || effectElements[12].p.v !== 1 || effectElements[13].p.k || effectElements[13].p.v !== 0 || effectElements[14].p.k || effectElements[14].p.v !== 1) {\n      (this || _global).feFuncR = this.createFeFunc(\"feFuncR\", feComponentTransfer);\n    }\n\n    if (effectElements[17].p.k || effectElements[17].p.v !== 0 || effectElements[18].p.k || effectElements[18].p.v !== 1 || effectElements[19].p.k || effectElements[19].p.v !== 1 || effectElements[20].p.k || effectElements[20].p.v !== 0 || effectElements[21].p.k || effectElements[21].p.v !== 1) {\n      (this || _global).feFuncG = this.createFeFunc(\"feFuncG\", feComponentTransfer);\n    }\n\n    if (effectElements[24].p.k || effectElements[24].p.v !== 0 || effectElements[25].p.k || effectElements[25].p.v !== 1 || effectElements[26].p.k || effectElements[26].p.v !== 1 || effectElements[27].p.k || effectElements[27].p.v !== 0 || effectElements[28].p.k || effectElements[28].p.v !== 1) {\n      (this || _global).feFuncB = this.createFeFunc(\"feFuncB\", feComponentTransfer);\n    }\n\n    if (effectElements[31].p.k || effectElements[31].p.v !== 0 || effectElements[32].p.k || effectElements[32].p.v !== 1 || effectElements[33].p.k || effectElements[33].p.v !== 1 || effectElements[34].p.k || effectElements[34].p.v !== 0 || effectElements[35].p.k || effectElements[35].p.v !== 1) {\n      (this || _global).feFuncA = this.createFeFunc(\"feFuncA\", feComponentTransfer);\n    }\n\n    if ((this || _global).feFuncR || (this || _global).feFuncG || (this || _global).feFuncB || (this || _global).feFuncA) {\n      feComponentTransfer.setAttribute(\"color-interpolation-filters\", \"sRGB\");\n      filter.appendChild(feComponentTransfer);\n      feComponentTransfer = createNS(\"feComponentTransfer\");\n    }\n\n    if (effectElements[3].p.k || effectElements[3].p.v !== 0 || effectElements[4].p.k || effectElements[4].p.v !== 1 || effectElements[5].p.k || effectElements[5].p.v !== 1 || effectElements[6].p.k || effectElements[6].p.v !== 0 || effectElements[7].p.k || effectElements[7].p.v !== 1) {\n      feComponentTransfer.setAttribute(\"color-interpolation-filters\", \"sRGB\");\n      filter.appendChild(feComponentTransfer);\n      (this || _global).feFuncRComposed = this.createFeFunc(\"feFuncR\", feComponentTransfer);\n      (this || _global).feFuncGComposed = this.createFeFunc(\"feFuncG\", feComponentTransfer);\n      (this || _global).feFuncBComposed = this.createFeFunc(\"feFuncB\", feComponentTransfer);\n    }\n  }\n\n  SVGProLevelsFilter.prototype.createFeFunc = function (type, feComponentTransfer) {\n    var feFunc = createNS(type);\n    feFunc.setAttribute(\"type\", \"table\");\n    feComponentTransfer.appendChild(feFunc);\n    return feFunc;\n  };\n\n  SVGProLevelsFilter.prototype.getTableValue = function (inputBlack, inputWhite, gamma, outputBlack, outputWhite) {\n    var cnt = 0;\n    var segments = 256;\n    var perc;\n    var min = Math.min(inputBlack, inputWhite);\n    var max = Math.max(inputBlack, inputWhite);\n    var table = Array.call(null, {\n      length: segments\n    });\n    var colorValue;\n    var pos = 0;\n    var outputDelta = outputWhite - outputBlack;\n    var inputDelta = inputWhite - inputBlack;\n\n    while (cnt <= 256) {\n      perc = cnt / 256;\n\n      if (perc <= min) {\n        colorValue = inputDelta < 0 ? outputWhite : outputBlack;\n      } else if (perc >= max) {\n        colorValue = inputDelta < 0 ? outputBlack : outputWhite;\n      } else {\n        colorValue = outputBlack + outputDelta * Math.pow((perc - inputBlack) / inputDelta, 1 / gamma);\n      }\n\n      table[pos] = colorValue;\n      pos += 1;\n      cnt += 256 / (segments - 1);\n    }\n\n    return table.join(\" \");\n  };\n\n  SVGProLevelsFilter.prototype.renderFrame = function (forceRender) {\n    if (forceRender || (this || _global).filterManager._mdf) {\n      var val;\n      var effectElements = (this || _global).filterManager.effectElements;\n\n      if ((this || _global).feFuncRComposed && (forceRender || effectElements[3].p._mdf || effectElements[4].p._mdf || effectElements[5].p._mdf || effectElements[6].p._mdf || effectElements[7].p._mdf)) {\n        val = this.getTableValue(effectElements[3].p.v, effectElements[4].p.v, effectElements[5].p.v, effectElements[6].p.v, effectElements[7].p.v);\n\n        (this || _global).feFuncRComposed.setAttribute(\"tableValues\", val);\n\n        (this || _global).feFuncGComposed.setAttribute(\"tableValues\", val);\n\n        (this || _global).feFuncBComposed.setAttribute(\"tableValues\", val);\n      }\n\n      if ((this || _global).feFuncR && (forceRender || effectElements[10].p._mdf || effectElements[11].p._mdf || effectElements[12].p._mdf || effectElements[13].p._mdf || effectElements[14].p._mdf)) {\n        val = this.getTableValue(effectElements[10].p.v, effectElements[11].p.v, effectElements[12].p.v, effectElements[13].p.v, effectElements[14].p.v);\n\n        (this || _global).feFuncR.setAttribute(\"tableValues\", val);\n      }\n\n      if ((this || _global).feFuncG && (forceRender || effectElements[17].p._mdf || effectElements[18].p._mdf || effectElements[19].p._mdf || effectElements[20].p._mdf || effectElements[21].p._mdf)) {\n        val = this.getTableValue(effectElements[17].p.v, effectElements[18].p.v, effectElements[19].p.v, effectElements[20].p.v, effectElements[21].p.v);\n\n        (this || _global).feFuncG.setAttribute(\"tableValues\", val);\n      }\n\n      if ((this || _global).feFuncB && (forceRender || effectElements[24].p._mdf || effectElements[25].p._mdf || effectElements[26].p._mdf || effectElements[27].p._mdf || effectElements[28].p._mdf)) {\n        val = this.getTableValue(effectElements[24].p.v, effectElements[25].p.v, effectElements[26].p.v, effectElements[27].p.v, effectElements[28].p.v);\n\n        (this || _global).feFuncB.setAttribute(\"tableValues\", val);\n      }\n\n      if ((this || _global).feFuncA && (forceRender || effectElements[31].p._mdf || effectElements[32].p._mdf || effectElements[33].p._mdf || effectElements[34].p._mdf || effectElements[35].p._mdf)) {\n        val = this.getTableValue(effectElements[31].p.v, effectElements[32].p.v, effectElements[33].p.v, effectElements[34].p.v, effectElements[35].p.v);\n\n        (this || _global).feFuncA.setAttribute(\"tableValues\", val);\n      }\n    }\n  };\n  /* global createNS, rgbToHex, degToRads */\n\n\n  function SVGDropShadowEffect(filter, filterManager) {\n    var filterSize = filterManager.container.globalData.renderConfig.filterSize;\n    filter.setAttribute(\"x\", filterSize.x);\n    filter.setAttribute(\"y\", filterSize.y);\n    filter.setAttribute(\"width\", filterSize.width);\n    filter.setAttribute(\"height\", filterSize.height);\n    (this || _global).filterManager = filterManager;\n    var feGaussianBlur = createNS(\"feGaussianBlur\");\n    feGaussianBlur.setAttribute(\"in\", \"SourceAlpha\");\n    feGaussianBlur.setAttribute(\"result\", \"drop_shadow_1\");\n    feGaussianBlur.setAttribute(\"stdDeviation\", \"0\");\n    (this || _global).feGaussianBlur = feGaussianBlur;\n    filter.appendChild(feGaussianBlur);\n    var feOffset = createNS(\"feOffset\");\n    feOffset.setAttribute(\"dx\", \"25\");\n    feOffset.setAttribute(\"dy\", \"0\");\n    feOffset.setAttribute(\"in\", \"drop_shadow_1\");\n    feOffset.setAttribute(\"result\", \"drop_shadow_2\");\n    (this || _global).feOffset = feOffset;\n    filter.appendChild(feOffset);\n    var feFlood = createNS(\"feFlood\");\n    feFlood.setAttribute(\"flood-color\", \"#00ff00\");\n    feFlood.setAttribute(\"flood-opacity\", \"1\");\n    feFlood.setAttribute(\"result\", \"drop_shadow_3\");\n    (this || _global).feFlood = feFlood;\n    filter.appendChild(feFlood);\n    var feComposite = createNS(\"feComposite\");\n    feComposite.setAttribute(\"in\", \"drop_shadow_3\");\n    feComposite.setAttribute(\"in2\", \"drop_shadow_2\");\n    feComposite.setAttribute(\"operator\", \"in\");\n    feComposite.setAttribute(\"result\", \"drop_shadow_4\");\n    filter.appendChild(feComposite);\n    var feMerge = createNS(\"feMerge\");\n    filter.appendChild(feMerge);\n    var feMergeNode;\n    feMergeNode = createNS(\"feMergeNode\");\n    feMerge.appendChild(feMergeNode);\n    feMergeNode = createNS(\"feMergeNode\");\n    feMergeNode.setAttribute(\"in\", \"SourceGraphic\");\n    (this || _global).feMergeNode = feMergeNode;\n    (this || _global).feMerge = feMerge;\n    (this || _global).originalNodeAdded = false;\n    feMerge.appendChild(feMergeNode);\n  }\n\n  SVGDropShadowEffect.prototype.renderFrame = function (forceRender) {\n    if (forceRender || (this || _global).filterManager._mdf) {\n      if (forceRender || (this || _global).filterManager.effectElements[4].p._mdf) {\n        (this || _global).feGaussianBlur.setAttribute(\"stdDeviation\", (this || _global).filterManager.effectElements[4].p.v / 4);\n      }\n\n      if (forceRender || (this || _global).filterManager.effectElements[0].p._mdf) {\n        var col = (this || _global).filterManager.effectElements[0].p.v;\n\n        (this || _global).feFlood.setAttribute(\"flood-color\", rgbToHex(Math.round(col[0] * 255), Math.round(col[1] * 255), Math.round(col[2] * 255)));\n      }\n\n      if (forceRender || (this || _global).filterManager.effectElements[1].p._mdf) {\n        (this || _global).feFlood.setAttribute(\"flood-opacity\", (this || _global).filterManager.effectElements[1].p.v / 255);\n      }\n\n      if (forceRender || (this || _global).filterManager.effectElements[2].p._mdf || (this || _global).filterManager.effectElements[3].p._mdf) {\n        var distance = (this || _global).filterManager.effectElements[3].p.v;\n        var angle = ((this || _global).filterManager.effectElements[2].p.v - 90) * degToRads;\n        var x = distance * Math.cos(angle);\n        var y = distance * Math.sin(angle);\n\n        (this || _global).feOffset.setAttribute(\"dx\", x);\n\n        (this || _global).feOffset.setAttribute(\"dy\", y);\n      }\n      /* if(forceRender || this.filterManager.effectElements[5].p._mdf){\r\n              if(this.filterManager.effectElements[5].p.v === 1 && this.originalNodeAdded) {\r\n                  this.feMerge.removeChild(this.feMergeNode);\r\n                  this.originalNodeAdded = false;\r\n              } else if(this.filterManager.effectElements[5].p.v === 0 && !this.originalNodeAdded) {\r\n                  this.feMerge.appendChild(this.feMergeNode);\r\n                  this.originalNodeAdded = true;\r\n              }\r\n          } */\n\n    }\n  };\n  /* global createElementID, createNS */\n\n\n  var _svgMatteSymbols = [];\n\n  function SVGMatte3Effect(filterElem, filterManager, elem) {\n    (this || _global).initialized = false;\n    (this || _global).filterManager = filterManager;\n    (this || _global).filterElem = filterElem;\n    (this || _global).elem = elem;\n    elem.matteElement = createNS(\"g\");\n    elem.matteElement.appendChild(elem.layerElement);\n    elem.matteElement.appendChild(elem.transformedElement);\n    elem.baseElement = elem.matteElement;\n  }\n\n  SVGMatte3Effect.prototype.findSymbol = function (mask) {\n    var i = 0;\n    var len = _svgMatteSymbols.length;\n\n    while (i < len) {\n      if (_svgMatteSymbols[i] === mask) {\n        return _svgMatteSymbols[i];\n      }\n\n      i += 1;\n    }\n\n    return null;\n  };\n\n  SVGMatte3Effect.prototype.replaceInParent = function (mask, symbolId) {\n    var parentNode = mask.layerElement.parentNode;\n\n    if (!parentNode) {\n      return;\n    }\n\n    var children = parentNode.children;\n    var i = 0;\n    var len = children.length;\n\n    while (i < len) {\n      if (children[i] === mask.layerElement) {\n        break;\n      }\n\n      i += 1;\n    }\n\n    var nextChild;\n\n    if (i <= len - 2) {\n      nextChild = children[i + 1];\n    }\n\n    var useElem = createNS(\"use\");\n    useElem.setAttribute(\"href\", \"#\" + symbolId);\n\n    if (nextChild) {\n      parentNode.insertBefore(useElem, nextChild);\n    } else {\n      parentNode.appendChild(useElem);\n    }\n  };\n\n  SVGMatte3Effect.prototype.setElementAsMask = function (elem, mask) {\n    if (!this.findSymbol(mask)) {\n      var symbolId = createElementID();\n      var masker = createNS(\"mask\");\n      masker.setAttribute(\"id\", mask.layerId);\n      masker.setAttribute(\"mask-type\", \"alpha\");\n\n      _svgMatteSymbols.push(mask);\n\n      var defs = elem.globalData.defs;\n      defs.appendChild(masker);\n      var symbol = createNS(\"symbol\");\n      symbol.setAttribute(\"id\", symbolId);\n      this.replaceInParent(mask, symbolId);\n      symbol.appendChild(mask.layerElement);\n      defs.appendChild(symbol);\n      var useElem = createNS(\"use\");\n      useElem.setAttribute(\"href\", \"#\" + symbolId);\n      masker.appendChild(useElem);\n      mask.data.hd = false;\n      mask.show();\n    }\n\n    elem.setMatte(mask.layerId);\n  };\n\n  SVGMatte3Effect.prototype.initialize = function () {\n    var ind = (this || _global).filterManager.effectElements[0].p.v;\n    var elements = (this || _global).elem.comp.elements;\n    var i = 0;\n    var len = elements.length;\n\n    while (i < len) {\n      if (elements[i] && elements[i].data.ind === ind) {\n        this.setElementAsMask((this || _global).elem, elements[i]);\n      }\n\n      i += 1;\n    }\n\n    (this || _global).initialized = true;\n  };\n\n  SVGMatte3Effect.prototype.renderFrame = function () {\n    if (!(this || _global).initialized) {\n      this.initialize();\n    }\n  };\n  /* global createElementID, filtersFactory, SVGTintFilter, SVGFillFilter, SVGStrokeEffect, SVGTritoneFilter,\r\n  SVGProLevelsFilter, SVGDropShadowEffect, SVGMatte3Effect, SVGGaussianBlurEffect, locationHref */\n\n\n  function SVGEffects(elem) {\n    var i;\n    var len = elem.data.ef ? elem.data.ef.length : 0;\n    var filId = createElementID();\n    var fil = filtersFactory.createFilter(filId, true);\n    var count = 0;\n    (this || _global).filters = [];\n    var filterManager;\n\n    for (i = 0; i < len; i += 1) {\n      filterManager = null;\n\n      if (elem.data.ef[i].ty === 20) {\n        count += 1;\n        filterManager = new SVGTintFilter(fil, elem.effectsManager.effectElements[i]);\n      } else if (elem.data.ef[i].ty === 21) {\n        count += 1;\n        filterManager = new SVGFillFilter(fil, elem.effectsManager.effectElements[i]);\n      } else if (elem.data.ef[i].ty === 22) {\n        filterManager = new SVGStrokeEffect(elem, elem.effectsManager.effectElements[i]);\n      } else if (elem.data.ef[i].ty === 23) {\n        count += 1;\n        filterManager = new SVGTritoneFilter(fil, elem.effectsManager.effectElements[i]);\n      } else if (elem.data.ef[i].ty === 24) {\n        count += 1;\n        filterManager = new SVGProLevelsFilter(fil, elem.effectsManager.effectElements[i]);\n      } else if (elem.data.ef[i].ty === 25) {\n        count += 1;\n        filterManager = new SVGDropShadowEffect(fil, elem.effectsManager.effectElements[i]);\n      } else if (elem.data.ef[i].ty === 28) {\n        // count += 1;\n        filterManager = new SVGMatte3Effect(fil, elem.effectsManager.effectElements[i], elem);\n      } else if (elem.data.ef[i].ty === 29) {\n        count += 1;\n        filterManager = new SVGGaussianBlurEffect(fil, elem.effectsManager.effectElements[i]);\n      }\n\n      if (filterManager) {\n        (this || _global).filters.push(filterManager);\n      }\n    }\n\n    if (count) {\n      elem.globalData.defs.appendChild(fil);\n      elem.layerElement.setAttribute(\"filter\", \"url(\" + locationHref + \"#\" + filId + \")\");\n    }\n\n    if ((this || _global).filters.length) {\n      elem.addRenderableComponent(this || _global);\n    }\n  }\n\n  SVGEffects.prototype.renderFrame = function (_isFirstFrame) {\n    var i;\n    var len = (this || _global).filters.length;\n\n    for (i = 0; i < len; i += 1) {\n      (this || _global).filters[i].renderFrame(_isFirstFrame);\n    }\n  };\n  /* global Matrix, createTypedArray */\n\n\n  function CVContextData() {\n    (this || _global).saved = [];\n    (this || _global).cArrPos = 0;\n    (this || _global).cTr = new Matrix();\n    (this || _global).cO = 1;\n    var i;\n    var len = 15;\n    (this || _global).savedOp = createTypedArray(\"float32\", len);\n\n    for (i = 0; i < len; i += 1) {\n      (this || _global).saved[i] = createTypedArray(\"float32\", 16);\n    }\n\n    (this || _global)._length = len;\n  }\n\n  CVContextData.prototype.duplicate = function () {\n    var newLength = (this || _global)._length * 2;\n    var currentSavedOp = (this || _global).savedOp;\n    (this || _global).savedOp = createTypedArray(\"float32\", newLength);\n\n    (this || _global).savedOp.set(currentSavedOp);\n\n    var i = 0;\n\n    for (i = (this || _global)._length; i < newLength; i += 1) {\n      (this || _global).saved[i] = createTypedArray(\"float32\", 16);\n    }\n\n    (this || _global)._length = newLength;\n  };\n\n  CVContextData.prototype.reset = function () {\n    (this || _global).cArrPos = 0;\n\n    (this || _global).cTr.reset();\n\n    (this || _global).cO = 1;\n  };\n  /* global CVEffects, getBlendMode, CVMaskElement, Matrix */\n\n\n  function CVBaseElement() {}\n\n  CVBaseElement.prototype = {\n    createElements: function () {},\n    initRendererElement: function () {},\n    createContainerElements: function () {\n      (this || _global).canvasContext = (this || _global).globalData.canvasContext;\n      (this || _global).renderableEffectsManager = new CVEffects(this || _global);\n    },\n    createContent: function () {},\n    setBlendMode: function () {\n      var globalData = (this || _global).globalData;\n\n      if (globalData.blendMode !== (this || _global).data.bm) {\n        globalData.blendMode = (this || _global).data.bm;\n        var blendModeValue = getBlendMode((this || _global).data.bm);\n        globalData.canvasContext.globalCompositeOperation = blendModeValue;\n      }\n    },\n    createRenderableComponents: function () {\n      (this || _global).maskManager = new CVMaskElement((this || _global).data, this || _global);\n    },\n    hideElement: function () {\n      if (!(this || _global).hidden && (!(this || _global).isInRange || (this || _global).isTransparent)) {\n        (this || _global).hidden = true;\n      }\n    },\n    showElement: function () {\n      if ((this || _global).isInRange && !(this || _global).isTransparent) {\n        (this || _global).hidden = false;\n        (this || _global)._isFirstFrame = true;\n        (this || _global).maskManager._isFirstFrame = true;\n      }\n    },\n    renderFrame: function () {\n      if ((this || _global).hidden || (this || _global).data.hd) {\n        return;\n      }\n\n      this.renderTransform();\n      this.renderRenderable();\n      this.setBlendMode();\n      var forceRealStack = (this || _global).data.ty === 0;\n\n      (this || _global).globalData.renderer.save(forceRealStack);\n\n      (this || _global).globalData.renderer.ctxTransform((this || _global).finalTransform.mat.props);\n\n      (this || _global).globalData.renderer.ctxOpacity((this || _global).finalTransform.mProp.o.v);\n\n      this.renderInnerContent();\n\n      (this || _global).globalData.renderer.restore(forceRealStack);\n\n      if ((this || _global).maskManager.hasMasks) {\n        (this || _global).globalData.renderer.restore(true);\n      }\n\n      if ((this || _global)._isFirstFrame) {\n        (this || _global)._isFirstFrame = false;\n      }\n    },\n    destroy: function () {\n      (this || _global).canvasContext = null;\n      (this || _global).data = null;\n      (this || _global).globalData = null;\n\n      (this || _global).maskManager.destroy();\n    },\n    mHelper: new Matrix()\n  };\n  CVBaseElement.prototype.hide = CVBaseElement.prototype.hideElement;\n  CVBaseElement.prototype.show = CVBaseElement.prototype.showElement;\n  /* global extendPrototype, BaseElement, TransformElement, CVBaseElement,HierarchyElement, FrameElement,\r\n  RenderableElement, SVGShapeElement, IImageElement, createTag */\n\n  function CVImageElement(data, globalData, comp) {\n    (this || _global).assetData = globalData.getAssetData(data.refId);\n    (this || _global).img = globalData.imageLoader.getAsset((this || _global).assetData);\n    this.initElement(data, globalData, comp);\n  }\n\n  extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVImageElement);\n  CVImageElement.prototype.initElement = SVGShapeElement.prototype.initElement;\n  CVImageElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n\n  CVImageElement.prototype.createContent = function () {\n    if ((this || _global).img.width && ((this || _global).assetData.w !== (this || _global).img.width || (this || _global).assetData.h !== (this || _global).img.height)) {\n      var canvas = createTag(\"canvas\");\n      canvas.width = (this || _global).assetData.w;\n      canvas.height = (this || _global).assetData.h;\n      var ctx = canvas.getContext(\"2d\");\n      var imgW = (this || _global).img.width;\n      var imgH = (this || _global).img.height;\n      var imgRel = imgW / imgH;\n      var canvasRel = (this || _global).assetData.w / (this || _global).assetData.h;\n      var widthCrop;\n      var heightCrop;\n      var par = (this || _global).assetData.pr || (this || _global).globalData.renderConfig.imagePreserveAspectRatio;\n\n      if (imgRel > canvasRel && par === \"xMidYMid slice\" || imgRel < canvasRel && par !== \"xMidYMid slice\") {\n        heightCrop = imgH;\n        widthCrop = heightCrop * canvasRel;\n      } else {\n        widthCrop = imgW;\n        heightCrop = widthCrop / canvasRel;\n      }\n\n      ctx.drawImage((this || _global).img, (imgW - widthCrop) / 2, (imgH - heightCrop) / 2, widthCrop, heightCrop, 0, 0, (this || _global).assetData.w, (this || _global).assetData.h);\n      (this || _global).img = canvas;\n    }\n  };\n\n  CVImageElement.prototype.renderInnerContent = function () {\n    (this || _global).canvasContext.drawImage((this || _global).img, 0, 0);\n  };\n\n  CVImageElement.prototype.destroy = function () {\n    (this || _global).img = null;\n  };\n  /* global createSizedArray, PropertyFactory, extendPrototype, CanvasRenderer, ICompElement, CVBaseElement */\n\n\n  function CVCompElement(data, globalData, comp) {\n    (this || _global).completeLayers = false;\n    (this || _global).layers = data.layers;\n    (this || _global).pendingElements = [];\n    (this || _global).elements = createSizedArray((this || _global).layers.length);\n    this.initElement(data, globalData, comp);\n    (this || _global).tm = data.tm ? PropertyFactory.getProp(this || _global, data.tm, 0, globalData.frameRate, this || _global) : {\n      _placeholder: true\n    };\n  }\n\n  extendPrototype([CanvasRenderer, ICompElement, CVBaseElement], CVCompElement);\n\n  CVCompElement.prototype.renderInnerContent = function () {\n    var ctx = (this || _global).canvasContext;\n    ctx.beginPath();\n    ctx.moveTo(0, 0);\n    ctx.lineTo((this || _global).data.w, 0);\n    ctx.lineTo((this || _global).data.w, (this || _global).data.h);\n    ctx.lineTo(0, (this || _global).data.h);\n    ctx.lineTo(0, 0);\n    ctx.clip();\n    var i;\n    var len = (this || _global).layers.length;\n\n    for (i = len - 1; i >= 0; i -= 1) {\n      if ((this || _global).completeLayers || (this || _global).elements[i]) {\n        (this || _global).elements[i].renderFrame();\n      }\n    }\n  };\n\n  CVCompElement.prototype.destroy = function () {\n    var i;\n    var len = (this || _global).layers.length;\n\n    for (i = len - 1; i >= 0; i -= 1) {\n      if ((this || _global).elements[i]) {\n        (this || _global).elements[i].destroy();\n      }\n    }\n\n    (this || _global).layers = null;\n    (this || _global).elements = null;\n  };\n  /* global createSizedArray, ShapePropertyFactory, MaskElement */\n\n\n  function CVMaskElement(data, element) {\n    (this || _global).data = data;\n    (this || _global).element = element;\n    (this || _global).masksProperties = (this || _global).data.masksProperties || [];\n    (this || _global).viewData = createSizedArray((this || _global).masksProperties.length);\n    var i;\n    var len = (this || _global).masksProperties.length;\n    var hasMasks = false;\n\n    for (i = 0; i < len; i += 1) {\n      if ((this || _global).masksProperties[i].mode !== \"n\") {\n        hasMasks = true;\n      }\n\n      (this || _global).viewData[i] = ShapePropertyFactory.getShapeProp((this || _global).element, (this || _global).masksProperties[i], 3);\n    }\n\n    (this || _global).hasMasks = hasMasks;\n\n    if (hasMasks) {\n      (this || _global).element.addRenderableComponent(this || _global);\n    }\n  }\n\n  CVMaskElement.prototype.renderFrame = function () {\n    if (!(this || _global).hasMasks) {\n      return;\n    }\n\n    var transform = (this || _global).element.finalTransform.mat;\n    var ctx = (this || _global).element.canvasContext;\n    var i;\n    var len = (this || _global).masksProperties.length;\n    var pt;\n    var pts;\n    var data;\n    ctx.beginPath();\n\n    for (i = 0; i < len; i += 1) {\n      if ((this || _global).masksProperties[i].mode !== \"n\") {\n        if ((this || _global).masksProperties[i].inv) {\n          ctx.moveTo(0, 0);\n          ctx.lineTo((this || _global).element.globalData.compSize.w, 0);\n          ctx.lineTo((this || _global).element.globalData.compSize.w, (this || _global).element.globalData.compSize.h);\n          ctx.lineTo(0, (this || _global).element.globalData.compSize.h);\n          ctx.lineTo(0, 0);\n        }\n\n        data = (this || _global).viewData[i].v;\n        pt = transform.applyToPointArray(data.v[0][0], data.v[0][1], 0);\n        ctx.moveTo(pt[0], pt[1]);\n        var j;\n        var jLen = data._length;\n\n        for (j = 1; j < jLen; j += 1) {\n          pts = transform.applyToTriplePoints(data.o[j - 1], data.i[j], data.v[j]);\n          ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n        }\n\n        pts = transform.applyToTriplePoints(data.o[j - 1], data.i[0], data.v[0]);\n        ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n      }\n    }\n\n    (this || _global).element.globalData.renderer.save(true);\n\n    ctx.clip();\n  };\n\n  CVMaskElement.prototype.getMaskProperty = MaskElement.prototype.getMaskProperty;\n\n  CVMaskElement.prototype.destroy = function () {\n    (this || _global).element = null;\n  };\n  /* global ShapeTransformManager, extendPrototype, BaseElement, TransformElement, CVBaseElement, IShapeElement,\r\n  HierarchyElement, FrameElement, RenderableElement, RenderableDOMElement, PropertyFactory, degToRads, GradientProperty,\r\n  DashProperty, TransformPropertyFactory, CVShapeData, ShapeModifiers, bmFloor */\n\n\n  function CVShapeElement(data, globalData, comp) {\n    (this || _global).shapes = [];\n    (this || _global).shapesData = data.shapes;\n    (this || _global).stylesList = [];\n    (this || _global).itemsData = [];\n    (this || _global).prevViewData = [];\n    (this || _global).shapeModifiers = [];\n    (this || _global).processedElements = [];\n    (this || _global).transformsManager = new ShapeTransformManager();\n    this.initElement(data, globalData, comp);\n  }\n\n  extendPrototype([BaseElement, TransformElement, CVBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableElement], CVShapeElement);\n  CVShapeElement.prototype.initElement = RenderableDOMElement.prototype.initElement;\n  CVShapeElement.prototype.transformHelper = {\n    opacity: 1,\n    _opMdf: false\n  };\n  CVShapeElement.prototype.dashResetter = [];\n\n  CVShapeElement.prototype.createContent = function () {\n    this.searchShapes((this || _global).shapesData, (this || _global).itemsData, (this || _global).prevViewData, true, []);\n  };\n\n  CVShapeElement.prototype.createStyleElement = function (data, transforms) {\n    var styleElem = {\n      data: data,\n      type: data.ty,\n      preTransforms: (this || _global).transformsManager.addTransformSequence(transforms),\n      transforms: [],\n      elements: [],\n      closed: data.hd === true\n    };\n    var elementData = {};\n\n    if (data.ty === \"fl\" || data.ty === \"st\") {\n      elementData.c = PropertyFactory.getProp(this || _global, data.c, 1, 255, this || _global);\n\n      if (!elementData.c.k) {\n        styleElem.co = \"rgb(\" + bmFloor(elementData.c.v[0]) + \",\" + bmFloor(elementData.c.v[1]) + \",\" + bmFloor(elementData.c.v[2]) + \")\";\n      }\n    } else if (data.ty === \"gf\" || data.ty === \"gs\") {\n      elementData.s = PropertyFactory.getProp(this || _global, data.s, 1, null, this || _global);\n      elementData.e = PropertyFactory.getProp(this || _global, data.e, 1, null, this || _global);\n      elementData.h = PropertyFactory.getProp(this || _global, data.h || {\n        k: 0\n      }, 0, 0.01, this || _global);\n      elementData.a = PropertyFactory.getProp(this || _global, data.a || {\n        k: 0\n      }, 0, degToRads, this || _global);\n      elementData.g = new GradientProperty(this || _global, data.g, this || _global);\n    }\n\n    elementData.o = PropertyFactory.getProp(this || _global, data.o, 0, 0.01, this || _global);\n\n    if (data.ty === \"st\" || data.ty === \"gs\") {\n      styleElem.lc = (this || _global).lcEnum[data.lc] || \"round\";\n      styleElem.lj = (this || _global).ljEnum[data.lj] || \"round\";\n\n      if (data.lj == 1) {\n        // eslint-disable-line eqeqeq\n        styleElem.ml = data.ml;\n      }\n\n      elementData.w = PropertyFactory.getProp(this || _global, data.w, 0, null, this || _global);\n\n      if (!elementData.w.k) {\n        styleElem.wi = elementData.w.v;\n      }\n\n      if (data.d) {\n        var d = new DashProperty(this || _global, data.d, \"canvas\", this || _global);\n        elementData.d = d;\n\n        if (!elementData.d.k) {\n          styleElem.da = elementData.d.dashArray;\n          styleElem.do = elementData.d.dashoffset[0];\n        }\n      }\n    } else {\n      styleElem.r = data.r === 2 ? \"evenodd\" : \"nonzero\";\n    }\n\n    (this || _global).stylesList.push(styleElem);\n\n    elementData.style = styleElem;\n    return elementData;\n  };\n\n  CVShapeElement.prototype.createGroupElement = function () {\n    var elementData = {\n      it: [],\n      prevViewData: []\n    };\n    return elementData;\n  };\n\n  CVShapeElement.prototype.createTransformElement = function (data) {\n    var elementData = {\n      transform: {\n        opacity: 1,\n        _opMdf: false,\n        key: (this || _global).transformsManager.getNewKey(),\n        op: PropertyFactory.getProp(this || _global, data.o, 0, 0.01, this || _global),\n        mProps: TransformPropertyFactory.getTransformProperty(this || _global, data, this || _global)\n      }\n    };\n    return elementData;\n  };\n\n  CVShapeElement.prototype.createShapeElement = function (data) {\n    var elementData = new CVShapeData(this || _global, data, (this || _global).stylesList, (this || _global).transformsManager);\n\n    (this || _global).shapes.push(elementData);\n\n    this.addShapeToModifiers(elementData);\n    return elementData;\n  };\n\n  CVShapeElement.prototype.reloadShapes = function () {\n    (this || _global)._isFirstFrame = true;\n    var i;\n    var len = (this || _global).itemsData.length;\n\n    for (i = 0; i < len; i += 1) {\n      (this || _global).prevViewData[i] = (this || _global).itemsData[i];\n    }\n\n    this.searchShapes((this || _global).shapesData, (this || _global).itemsData, (this || _global).prevViewData, true, []);\n    len = (this || _global).dynamicProperties.length;\n\n    for (i = 0; i < len; i += 1) {\n      (this || _global).dynamicProperties[i].getValue();\n    }\n\n    this.renderModifiers();\n\n    (this || _global).transformsManager.processSequences((this || _global)._isFirstFrame);\n  };\n\n  CVShapeElement.prototype.addTransformToStyleList = function (transform) {\n    var i;\n    var len = (this || _global).stylesList.length;\n\n    for (i = 0; i < len; i += 1) {\n      if (!(this || _global).stylesList[i].closed) {\n        (this || _global).stylesList[i].transforms.push(transform);\n      }\n    }\n  };\n\n  CVShapeElement.prototype.removeTransformFromStyleList = function () {\n    var i;\n    var len = (this || _global).stylesList.length;\n\n    for (i = 0; i < len; i += 1) {\n      if (!(this || _global).stylesList[i].closed) {\n        (this || _global).stylesList[i].transforms.pop();\n      }\n    }\n  };\n\n  CVShapeElement.prototype.closeStyles = function (styles) {\n    var i;\n    var len = styles.length;\n\n    for (i = 0; i < len; i += 1) {\n      styles[i].closed = true;\n    }\n  };\n\n  CVShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, shouldRender, transforms) {\n    var i;\n    var len = arr.length - 1;\n    var j;\n    var jLen;\n    var ownStyles = [];\n    var ownModifiers = [];\n    var processedPos;\n    var modifier;\n    var currentTransform;\n    var ownTransforms = [].concat(transforms);\n\n    for (i = len; i >= 0; i -= 1) {\n      processedPos = this.searchProcessedElement(arr[i]);\n\n      if (!processedPos) {\n        arr[i]._shouldRender = shouldRender;\n      } else {\n        itemsData[i] = prevViewData[processedPos - 1];\n      }\n\n      if (arr[i].ty === \"fl\" || arr[i].ty === \"st\" || arr[i].ty === \"gf\" || arr[i].ty === \"gs\") {\n        if (!processedPos) {\n          itemsData[i] = this.createStyleElement(arr[i], ownTransforms);\n        } else {\n          itemsData[i].style.closed = false;\n        }\n\n        ownStyles.push(itemsData[i].style);\n      } else if (arr[i].ty === \"gr\") {\n        if (!processedPos) {\n          itemsData[i] = this.createGroupElement(arr[i]);\n        } else {\n          jLen = itemsData[i].it.length;\n\n          for (j = 0; j < jLen; j += 1) {\n            itemsData[i].prevViewData[j] = itemsData[i].it[j];\n          }\n        }\n\n        this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, shouldRender, ownTransforms);\n      } else if (arr[i].ty === \"tr\") {\n        if (!processedPos) {\n          currentTransform = this.createTransformElement(arr[i]);\n          itemsData[i] = currentTransform;\n        }\n\n        ownTransforms.push(itemsData[i]);\n        this.addTransformToStyleList(itemsData[i]);\n      } else if (arr[i].ty === \"sh\" || arr[i].ty === \"rc\" || arr[i].ty === \"el\" || arr[i].ty === \"sr\") {\n        if (!processedPos) {\n          itemsData[i] = this.createShapeElement(arr[i]);\n        }\n      } else if (arr[i].ty === \"tm\" || arr[i].ty === \"rd\" || arr[i].ty === \"pb\") {\n        if (!processedPos) {\n          modifier = ShapeModifiers.getModifier(arr[i].ty);\n          modifier.init(this || _global, arr[i]);\n          itemsData[i] = modifier;\n\n          (this || _global).shapeModifiers.push(modifier);\n        } else {\n          modifier = itemsData[i];\n          modifier.closed = false;\n        }\n\n        ownModifiers.push(modifier);\n      } else if (arr[i].ty === \"rp\") {\n        if (!processedPos) {\n          modifier = ShapeModifiers.getModifier(arr[i].ty);\n          itemsData[i] = modifier;\n          modifier.init(this || _global, arr, i, itemsData);\n\n          (this || _global).shapeModifiers.push(modifier);\n\n          shouldRender = false;\n        } else {\n          modifier = itemsData[i];\n          modifier.closed = true;\n        }\n\n        ownModifiers.push(modifier);\n      }\n\n      this.addProcessedElement(arr[i], i + 1);\n    }\n\n    this.removeTransformFromStyleList();\n    this.closeStyles(ownStyles);\n    len = ownModifiers.length;\n\n    for (i = 0; i < len; i += 1) {\n      ownModifiers[i].closed = true;\n    }\n  };\n\n  CVShapeElement.prototype.renderInnerContent = function () {\n    (this || _global).transformHelper.opacity = 1;\n    (this || _global).transformHelper._opMdf = false;\n    this.renderModifiers();\n\n    (this || _global).transformsManager.processSequences((this || _global)._isFirstFrame);\n\n    this.renderShape((this || _global).transformHelper, (this || _global).shapesData, (this || _global).itemsData, true);\n  };\n\n  CVShapeElement.prototype.renderShapeTransform = function (parentTransform, groupTransform) {\n    if (parentTransform._opMdf || groupTransform.op._mdf || (this || _global)._isFirstFrame) {\n      groupTransform.opacity = parentTransform.opacity;\n      groupTransform.opacity *= groupTransform.op.v;\n      groupTransform._opMdf = true;\n    }\n  };\n\n  CVShapeElement.prototype.drawLayer = function () {\n    var i;\n    var len = (this || _global).stylesList.length;\n    var j;\n    var jLen;\n    var k;\n    var kLen;\n    var elems;\n    var nodes;\n    var renderer = (this || _global).globalData.renderer;\n    var ctx = (this || _global).globalData.canvasContext;\n    var type;\n    var currentStyle;\n\n    for (i = 0; i < len; i += 1) {\n      currentStyle = (this || _global).stylesList[i];\n      type = currentStyle.type; // Skipping style when\n      // Stroke width equals 0\n      // style should not be rendered (extra unused repeaters)\n      // current opacity equals 0\n      // global opacity equals 0\n\n      if (!((type === \"st\" || type === \"gs\") && currentStyle.wi === 0 || !currentStyle.data._shouldRender || currentStyle.coOp === 0 || (this || _global).globalData.currentGlobalAlpha === 0)) {\n        renderer.save();\n        elems = currentStyle.elements;\n\n        if (type === \"st\" || type === \"gs\") {\n          ctx.strokeStyle = type === \"st\" ? currentStyle.co : currentStyle.grd;\n          ctx.lineWidth = currentStyle.wi;\n          ctx.lineCap = currentStyle.lc;\n          ctx.lineJoin = currentStyle.lj;\n          ctx.miterLimit = currentStyle.ml || 0;\n        } else {\n          ctx.fillStyle = type === \"fl\" ? currentStyle.co : currentStyle.grd;\n        }\n\n        renderer.ctxOpacity(currentStyle.coOp);\n\n        if (type !== \"st\" && type !== \"gs\") {\n          ctx.beginPath();\n        }\n\n        renderer.ctxTransform(currentStyle.preTransforms.finalTransform.props);\n        jLen = elems.length;\n\n        for (j = 0; j < jLen; j += 1) {\n          if (type === \"st\" || type === \"gs\") {\n            ctx.beginPath();\n\n            if (currentStyle.da) {\n              ctx.setLineDash(currentStyle.da);\n              ctx.lineDashOffset = currentStyle.do;\n            }\n          }\n\n          nodes = elems[j].trNodes;\n          kLen = nodes.length;\n\n          for (k = 0; k < kLen; k += 1) {\n            if (nodes[k].t === \"m\") {\n              ctx.moveTo(nodes[k].p[0], nodes[k].p[1]);\n            } else if (nodes[k].t === \"c\") {\n              ctx.bezierCurveTo(nodes[k].pts[0], nodes[k].pts[1], nodes[k].pts[2], nodes[k].pts[3], nodes[k].pts[4], nodes[k].pts[5]);\n            } else {\n              ctx.closePath();\n            }\n          }\n\n          if (type === \"st\" || type === \"gs\") {\n            ctx.stroke();\n\n            if (currentStyle.da) {\n              ctx.setLineDash((this || _global).dashResetter);\n            }\n          }\n        }\n\n        if (type !== \"st\" && type !== \"gs\") {\n          ctx.fill(currentStyle.r);\n        }\n\n        renderer.restore();\n      }\n    }\n  };\n\n  CVShapeElement.prototype.renderShape = function (parentTransform, items, data, isMain) {\n    var i;\n    var len = items.length - 1;\n    var groupTransform;\n    groupTransform = parentTransform;\n\n    for (i = len; i >= 0; i -= 1) {\n      if (items[i].ty === \"tr\") {\n        groupTransform = data[i].transform;\n        this.renderShapeTransform(parentTransform, groupTransform);\n      } else if (items[i].ty === \"sh\" || items[i].ty === \"el\" || items[i].ty === \"rc\" || items[i].ty === \"sr\") {\n        this.renderPath(items[i], data[i]);\n      } else if (items[i].ty === \"fl\") {\n        this.renderFill(items[i], data[i], groupTransform);\n      } else if (items[i].ty === \"st\") {\n        this.renderStroke(items[i], data[i], groupTransform);\n      } else if (items[i].ty === \"gf\" || items[i].ty === \"gs\") {\n        this.renderGradientFill(items[i], data[i], groupTransform);\n      } else if (items[i].ty === \"gr\") {\n        this.renderShape(groupTransform, items[i].it, data[i].it);\n      } else if (items[i].ty === \"tm\") {//\n      }\n    }\n\n    if (isMain) {\n      this.drawLayer();\n    }\n  };\n\n  CVShapeElement.prototype.renderStyledShape = function (styledShape, shape) {\n    if ((this || _global)._isFirstFrame || shape._mdf || styledShape.transforms._mdf) {\n      var shapeNodes = styledShape.trNodes;\n      var paths = shape.paths;\n      var i;\n      var len;\n      var j;\n      var jLen = paths._length;\n      shapeNodes.length = 0;\n      var groupTransformMat = styledShape.transforms.finalTransform;\n\n      for (j = 0; j < jLen; j += 1) {\n        var pathNodes = paths.shapes[j];\n\n        if (pathNodes && pathNodes.v) {\n          len = pathNodes._length;\n\n          for (i = 1; i < len; i += 1) {\n            if (i === 1) {\n              shapeNodes.push({\n                t: \"m\",\n                p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\n              });\n            }\n\n            shapeNodes.push({\n              t: \"c\",\n              pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[i], pathNodes.v[i])\n            });\n          }\n\n          if (len === 1) {\n            shapeNodes.push({\n              t: \"m\",\n              p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\n            });\n          }\n\n          if (pathNodes.c && len) {\n            shapeNodes.push({\n              t: \"c\",\n              pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[0], pathNodes.v[0])\n            });\n            shapeNodes.push({\n              t: \"z\"\n            });\n          }\n        }\n      }\n\n      styledShape.trNodes = shapeNodes;\n    }\n  };\n\n  CVShapeElement.prototype.renderPath = function (pathData, itemData) {\n    if (pathData.hd !== true && pathData._shouldRender) {\n      var i;\n      var len = itemData.styledShapes.length;\n\n      for (i = 0; i < len; i += 1) {\n        this.renderStyledShape(itemData.styledShapes[i], itemData.sh);\n      }\n    }\n  };\n\n  CVShapeElement.prototype.renderFill = function (styleData, itemData, groupTransform) {\n    var styleElem = itemData.style;\n\n    if (itemData.c._mdf || (this || _global)._isFirstFrame) {\n      styleElem.co = \"rgb(\" + bmFloor(itemData.c.v[0]) + \",\" + bmFloor(itemData.c.v[1]) + \",\" + bmFloor(itemData.c.v[2]) + \")\";\n    }\n\n    if (itemData.o._mdf || groupTransform._opMdf || (this || _global)._isFirstFrame) {\n      styleElem.coOp = itemData.o.v * groupTransform.opacity;\n    }\n  };\n\n  CVShapeElement.prototype.renderGradientFill = function (styleData, itemData, groupTransform) {\n    var styleElem = itemData.style;\n    var grd;\n\n    if (!styleElem.grd || itemData.g._mdf || itemData.s._mdf || itemData.e._mdf || styleData.t !== 1 && (itemData.h._mdf || itemData.a._mdf)) {\n      var ctx = (this || _global).globalData.canvasContext;\n      var pt1 = itemData.s.v;\n      var pt2 = itemData.e.v;\n\n      if (styleData.t === 1) {\n        grd = ctx.createLinearGradient(pt1[0], pt1[1], pt2[0], pt2[1]);\n      } else {\n        var rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n        var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n        var percent = itemData.h.v;\n\n        if (percent >= 1) {\n          percent = 0.99;\n        } else if (percent <= -1) {\n          percent = -0.99;\n        }\n\n        var dist = rad * percent;\n        var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n        var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n        grd = ctx.createRadialGradient(x, y, 0, pt1[0], pt1[1], rad);\n      }\n\n      var i;\n      var len = styleData.g.p;\n      var cValues = itemData.g.c;\n      var opacity = 1;\n\n      for (i = 0; i < len; i += 1) {\n        if (itemData.g._hasOpacity && itemData.g._collapsable) {\n          opacity = itemData.g.o[i * 2 + 1];\n        }\n\n        grd.addColorStop(cValues[i * 4] / 100, \"rgba(\" + cValues[i * 4 + 1] + \",\" + cValues[i * 4 + 2] + \",\" + cValues[i * 4 + 3] + \",\" + opacity + \")\");\n      }\n\n      styleElem.grd = grd;\n    }\n\n    styleElem.coOp = itemData.o.v * groupTransform.opacity;\n  };\n\n  CVShapeElement.prototype.renderStroke = function (styleData, itemData, groupTransform) {\n    var styleElem = itemData.style;\n    var d = itemData.d;\n\n    if (d && (d._mdf || (this || _global)._isFirstFrame)) {\n      styleElem.da = d.dashArray;\n      styleElem.do = d.dashoffset[0];\n    }\n\n    if (itemData.c._mdf || (this || _global)._isFirstFrame) {\n      styleElem.co = \"rgb(\" + bmFloor(itemData.c.v[0]) + \",\" + bmFloor(itemData.c.v[1]) + \",\" + bmFloor(itemData.c.v[2]) + \")\";\n    }\n\n    if (itemData.o._mdf || groupTransform._opMdf || (this || _global)._isFirstFrame) {\n      styleElem.coOp = itemData.o.v * groupTransform.opacity;\n    }\n\n    if (itemData.w._mdf || (this || _global)._isFirstFrame) {\n      styleElem.wi = itemData.w.v;\n    }\n  };\n\n  CVShapeElement.prototype.destroy = function () {\n    (this || _global).shapesData = null;\n    (this || _global).globalData = null;\n    (this || _global).canvasContext = null;\n    (this || _global).stylesList.length = 0;\n    (this || _global).itemsData.length = 0;\n  };\n  /* global extendPrototype, BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement,\r\n  SVGShapeElement, IImageElement */\n\n\n  function CVSolidElement(data, globalData, comp) {\n    this.initElement(data, globalData, comp);\n  }\n\n  extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVSolidElement);\n  CVSolidElement.prototype.initElement = SVGShapeElement.prototype.initElement;\n  CVSolidElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n\n  CVSolidElement.prototype.renderInnerContent = function () {\n    var ctx = (this || _global).canvasContext;\n    ctx.fillStyle = (this || _global).data.sc;\n    ctx.fillRect(0, 0, (this || _global).data.sw, (this || _global).data.sh); //\n  };\n  /* global extendPrototype, BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement,\r\n  RenderableElement, ITextElement, createTag, createSizedArray */\n\n\n  function CVTextElement(data, globalData, comp) {\n    (this || _global).textSpans = [];\n    (this || _global).yOffset = 0;\n    (this || _global).fillColorAnim = false;\n    (this || _global).strokeColorAnim = false;\n    (this || _global).strokeWidthAnim = false;\n    (this || _global).stroke = false;\n    (this || _global).fill = false;\n    (this || _global).justifyOffset = 0;\n    (this || _global).currentRender = null;\n    (this || _global).renderType = \"canvas\";\n    (this || _global).values = {\n      fill: \"rgba(0,0,0,0)\",\n      stroke: \"rgba(0,0,0,0)\",\n      sWidth: 0,\n      fValue: \"\"\n    };\n    this.initElement(data, globalData, comp);\n  }\n\n  extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement, ITextElement], CVTextElement);\n  CVTextElement.prototype.tHelper = createTag(\"canvas\").getContext(\"2d\");\n\n  CVTextElement.prototype.buildNewText = function () {\n    var documentData = (this || _global).textProperty.currentData;\n    (this || _global).renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n    var hasFill = false;\n\n    if (documentData.fc) {\n      hasFill = true;\n      (this || _global).values.fill = this.buildColor(documentData.fc);\n    } else {\n      (this || _global).values.fill = \"rgba(0,0,0,0)\";\n    }\n\n    (this || _global).fill = hasFill;\n    var hasStroke = false;\n\n    if (documentData.sc) {\n      hasStroke = true;\n      (this || _global).values.stroke = this.buildColor(documentData.sc);\n      (this || _global).values.sWidth = documentData.sw;\n    }\n\n    var fontData = (this || _global).globalData.fontManager.getFontByName(documentData.f);\n\n    var i;\n    var len;\n    var letters = documentData.l;\n    var matrixHelper = (this || _global).mHelper;\n    (this || _global).stroke = hasStroke;\n    (this || _global).values.fValue = documentData.finalSize + \"px \" + (this || _global).globalData.fontManager.getFontByName(documentData.f).fFamily;\n    len = documentData.finalText.length; // this.tHelper.font = this.values.fValue;\n\n    var charData;\n    var shapeData;\n    var k;\n    var kLen;\n    var shapes;\n    var j;\n    var jLen;\n    var pathNodes;\n    var commands;\n    var pathArr;\n    var singleShape = (this || _global).data.singleShape;\n    var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n    var xPos = 0;\n    var yPos = 0;\n    var firstLine = true;\n    var cnt = 0;\n\n    for (i = 0; i < len; i += 1) {\n      charData = (this || _global).globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, (this || _global).globalData.fontManager.getFontByName(documentData.f).fFamily);\n      shapeData = charData && charData.data || {};\n      matrixHelper.reset();\n\n      if (singleShape && letters[i].n) {\n        xPos = -trackingOffset;\n        yPos += documentData.yOffset;\n        yPos += firstLine ? 1 : 0;\n        firstLine = false;\n      }\n\n      shapes = shapeData.shapes ? shapeData.shapes[0].it : [];\n      jLen = shapes.length;\n      matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n\n      if (singleShape) {\n        this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n      }\n\n      commands = createSizedArray(jLen);\n\n      for (j = 0; j < jLen; j += 1) {\n        kLen = shapes[j].ks.k.i.length;\n        pathNodes = shapes[j].ks.k;\n        pathArr = [];\n\n        for (k = 1; k < kLen; k += 1) {\n          if (k === 1) {\n            pathArr.push(matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\n          }\n\n          pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToY(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToX(pathNodes.v[k][0], pathNodes.v[k][1], 0), matrixHelper.applyToY(pathNodes.v[k][0], pathNodes.v[k][1], 0));\n        }\n\n        pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToY(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\n        commands[j] = pathArr;\n      }\n\n      if (singleShape) {\n        xPos += letters[i].l;\n        xPos += trackingOffset;\n      }\n\n      if ((this || _global).textSpans[cnt]) {\n        (this || _global).textSpans[cnt].elem = commands;\n      } else {\n        (this || _global).textSpans[cnt] = {\n          elem: commands\n        };\n      }\n\n      cnt += 1;\n    }\n  };\n\n  CVTextElement.prototype.renderInnerContent = function () {\n    var ctx = (this || _global).canvasContext;\n    ctx.font = (this || _global).values.fValue;\n    ctx.lineCap = \"butt\";\n    ctx.lineJoin = \"miter\";\n    ctx.miterLimit = 4;\n\n    if (!(this || _global).data.singleShape) {\n      (this || _global).textAnimator.getMeasures((this || _global).textProperty.currentData, (this || _global).lettersChangedFlag);\n    }\n\n    var i;\n    var len;\n    var j;\n    var jLen;\n    var k;\n    var kLen;\n    var renderedLetters = (this || _global).textAnimator.renderedLetters;\n    var letters = (this || _global).textProperty.currentData.l;\n    len = letters.length;\n    var renderedLetter;\n    var lastFill = null;\n    var lastStroke = null;\n    var lastStrokeW = null;\n    var commands;\n    var pathArr;\n\n    for (i = 0; i < len; i += 1) {\n      if (!letters[i].n) {\n        renderedLetter = renderedLetters[i];\n\n        if (renderedLetter) {\n          (this || _global).globalData.renderer.save();\n\n          (this || _global).globalData.renderer.ctxTransform(renderedLetter.p);\n\n          (this || _global).globalData.renderer.ctxOpacity(renderedLetter.o);\n        }\n\n        if ((this || _global).fill) {\n          if (renderedLetter && renderedLetter.fc) {\n            if (lastFill !== renderedLetter.fc) {\n              lastFill = renderedLetter.fc;\n              ctx.fillStyle = renderedLetter.fc;\n            }\n          } else if (lastFill !== (this || _global).values.fill) {\n            lastFill = (this || _global).values.fill;\n            ctx.fillStyle = (this || _global).values.fill;\n          }\n\n          commands = (this || _global).textSpans[i].elem;\n          jLen = commands.length;\n\n          (this || _global).globalData.canvasContext.beginPath();\n\n          for (j = 0; j < jLen; j += 1) {\n            pathArr = commands[j];\n            kLen = pathArr.length;\n\n            (this || _global).globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\n            for (k = 2; k < kLen; k += 6) {\n              (this || _global).globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n            }\n          }\n\n          (this || _global).globalData.canvasContext.closePath();\n\n          (this || _global).globalData.canvasContext.fill(); /// ctx.fillText(this.textSpans[i].val,0,0);\n\n        }\n\n        if ((this || _global).stroke) {\n          if (renderedLetter && renderedLetter.sw) {\n            if (lastStrokeW !== renderedLetter.sw) {\n              lastStrokeW = renderedLetter.sw;\n              ctx.lineWidth = renderedLetter.sw;\n            }\n          } else if (lastStrokeW !== (this || _global).values.sWidth) {\n            lastStrokeW = (this || _global).values.sWidth;\n            ctx.lineWidth = (this || _global).values.sWidth;\n          }\n\n          if (renderedLetter && renderedLetter.sc) {\n            if (lastStroke !== renderedLetter.sc) {\n              lastStroke = renderedLetter.sc;\n              ctx.strokeStyle = renderedLetter.sc;\n            }\n          } else if (lastStroke !== (this || _global).values.stroke) {\n            lastStroke = (this || _global).values.stroke;\n            ctx.strokeStyle = (this || _global).values.stroke;\n          }\n\n          commands = (this || _global).textSpans[i].elem;\n          jLen = commands.length;\n\n          (this || _global).globalData.canvasContext.beginPath();\n\n          for (j = 0; j < jLen; j += 1) {\n            pathArr = commands[j];\n            kLen = pathArr.length;\n\n            (this || _global).globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\n            for (k = 2; k < kLen; k += 6) {\n              (this || _global).globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n            }\n          }\n\n          (this || _global).globalData.canvasContext.closePath();\n\n          (this || _global).globalData.canvasContext.stroke(); /// ctx.strokeText(letters[i].val,0,0);\n\n        }\n\n        if (renderedLetter) {\n          (this || _global).globalData.renderer.restore();\n        }\n      }\n    }\n  };\n\n  function CVEffects() {}\n\n  CVEffects.prototype.renderFrame = function () {};\n  /* global createTag, createNS, styleDiv, CVEffects, MaskElement, SVGBaseElement, HybridRenderer */\n\n\n  function HBaseElement() {}\n\n  HBaseElement.prototype = {\n    checkBlendMode: function () {},\n    initRendererElement: function () {\n      (this || _global).baseElement = createTag((this || _global).data.tg || \"div\");\n\n      if ((this || _global).data.hasMask) {\n        (this || _global).svgElement = createNS(\"svg\");\n        (this || _global).layerElement = createNS(\"g\");\n        (this || _global).maskedElement = (this || _global).layerElement;\n\n        (this || _global).svgElement.appendChild((this || _global).layerElement);\n\n        (this || _global).baseElement.appendChild((this || _global).svgElement);\n      } else {\n        (this || _global).layerElement = (this || _global).baseElement;\n      }\n\n      styleDiv((this || _global).baseElement);\n    },\n    createContainerElements: function () {\n      (this || _global).renderableEffectsManager = new CVEffects(this || _global);\n      (this || _global).transformedElement = (this || _global).baseElement;\n      (this || _global).maskedElement = (this || _global).layerElement;\n\n      if ((this || _global).data.ln) {\n        (this || _global).layerElement.setAttribute(\"id\", (this || _global).data.ln);\n      }\n\n      if ((this || _global).data.cl) {\n        (this || _global).layerElement.setAttribute(\"class\", (this || _global).data.cl);\n      }\n\n      if ((this || _global).data.bm !== 0) {\n        this.setBlendMode();\n      }\n    },\n    renderElement: function () {\n      var transformedElementStyle = (this || _global).transformedElement ? (this || _global).transformedElement.style : {};\n\n      if ((this || _global).finalTransform._matMdf) {\n        var matrixValue = (this || _global).finalTransform.mat.toCSS();\n\n        transformedElementStyle.transform = matrixValue;\n        transformedElementStyle.webkitTransform = matrixValue;\n      }\n\n      if ((this || _global).finalTransform._opMdf) {\n        transformedElementStyle.opacity = (this || _global).finalTransform.mProp.o.v;\n      }\n    },\n    renderFrame: function () {\n      // If it is exported as hidden (data.hd === true) no need to render\n      // If it is not visible no need to render\n      if ((this || _global).data.hd || (this || _global).hidden) {\n        return;\n      }\n\n      this.renderTransform();\n      this.renderRenderable();\n      this.renderElement();\n      this.renderInnerContent();\n\n      if ((this || _global)._isFirstFrame) {\n        (this || _global)._isFirstFrame = false;\n      }\n    },\n    destroy: function () {\n      (this || _global).layerElement = null;\n      (this || _global).transformedElement = null;\n\n      if ((this || _global).matteElement) {\n        (this || _global).matteElement = null;\n      }\n\n      if ((this || _global).maskManager) {\n        (this || _global).maskManager.destroy();\n\n        (this || _global).maskManager = null;\n      }\n    },\n    createRenderableComponents: function () {\n      (this || _global).maskManager = new MaskElement((this || _global).data, this || _global, (this || _global).globalData);\n    },\n    addEffects: function () {},\n    setMatte: function () {}\n  };\n  HBaseElement.prototype.getBaseElement = SVGBaseElement.prototype.getBaseElement;\n  HBaseElement.prototype.destroyBaseElement = HBaseElement.prototype.destroy;\n  HBaseElement.prototype.buildElementParenting = HybridRenderer.prototype.buildElementParenting;\n  /* global extendPrototype, BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement,\r\n  RenderableDOMElement, createNS, createTag */\n\n  function HSolidElement(data, globalData, comp) {\n    this.initElement(data, globalData, comp);\n  }\n\n  extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], HSolidElement);\n\n  HSolidElement.prototype.createContent = function () {\n    var rect;\n\n    if ((this || _global).data.hasMask) {\n      rect = createNS(\"rect\");\n      rect.setAttribute(\"width\", (this || _global).data.sw);\n      rect.setAttribute(\"height\", (this || _global).data.sh);\n      rect.setAttribute(\"fill\", (this || _global).data.sc);\n\n      (this || _global).svgElement.setAttribute(\"width\", (this || _global).data.sw);\n\n      (this || _global).svgElement.setAttribute(\"height\", (this || _global).data.sh);\n    } else {\n      rect = createTag(\"div\");\n      rect.style.width = (this || _global).data.sw + \"px\";\n      rect.style.height = (this || _global).data.sh + \"px\";\n      rect.style.backgroundColor = (this || _global).data.sc;\n    }\n\n    (this || _global).layerElement.appendChild(rect);\n  };\n  /* global createSizedArray, PropertyFactory, extendPrototype, HybridRenderer, ICompElement, HBaseElement */\n\n\n  function HCompElement(data, globalData, comp) {\n    (this || _global).layers = data.layers;\n    (this || _global).supports3d = !data.hasMask;\n    (this || _global).completeLayers = false;\n    (this || _global).pendingElements = [];\n    (this || _global).elements = (this || _global).layers ? createSizedArray((this || _global).layers.length) : [];\n    this.initElement(data, globalData, comp);\n    (this || _global).tm = data.tm ? PropertyFactory.getProp(this || _global, data.tm, 0, globalData.frameRate, this || _global) : {\n      _placeholder: true\n    };\n  }\n\n  extendPrototype([HybridRenderer, ICompElement, HBaseElement], HCompElement);\n  HCompElement.prototype._createBaseContainerElements = HCompElement.prototype.createContainerElements;\n\n  HCompElement.prototype.createContainerElements = function () {\n    this._createBaseContainerElements(); // divElement.style.clip = 'rect(0px, '+this.data.w+'px, '+this.data.h+'px, 0px)';\n\n\n    if ((this || _global).data.hasMask) {\n      (this || _global).svgElement.setAttribute(\"width\", (this || _global).data.w);\n\n      (this || _global).svgElement.setAttribute(\"height\", (this || _global).data.h);\n\n      (this || _global).transformedElement = (this || _global).baseElement;\n    } else {\n      (this || _global).transformedElement = (this || _global).layerElement;\n    }\n  };\n\n  HCompElement.prototype.addTo3dContainer = function (elem, pos) {\n    var j = 0;\n    var nextElement;\n\n    while (j < pos) {\n      if ((this || _global).elements[j] && (this || _global).elements[j].getBaseElement) {\n        nextElement = (this || _global).elements[j].getBaseElement();\n      }\n\n      j += 1;\n    }\n\n    if (nextElement) {\n      (this || _global).layerElement.insertBefore(elem, nextElement);\n    } else {\n      (this || _global).layerElement.appendChild(elem);\n    }\n  };\n  /* global createNS, extendPrototype, BaseElement, TransformElement, HSolidElement, SVGShapeElement, HBaseElement,\r\n  HierarchyElement, FrameElement, RenderableElement, createNS, bmMin, bmSqrt, bmMin, bmMax, bmPow */\n\n\n  function HShapeElement(data, globalData, comp) {\n    // List of drawable elements\n    (this || _global).shapes = []; // Full shape data\n\n    (this || _global).shapesData = data.shapes; // List of styles that will be applied to shapes\n\n    (this || _global).stylesList = []; // List of modifiers that will be applied to shapes\n\n    (this || _global).shapeModifiers = []; // List of items in shape tree\n\n    (this || _global).itemsData = []; // List of items in previous shape tree\n\n    (this || _global).processedElements = []; // List of animated components\n\n    (this || _global).animatedContents = [];\n    (this || _global).shapesContainer = createNS(\"g\");\n    this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n    // List of elements that have been created\n\n    (this || _global).prevViewData = [];\n    (this || _global).currentBBox = {\n      x: 999999,\n      y: -999999,\n      h: 0,\n      w: 0\n    };\n  }\n\n  extendPrototype([BaseElement, TransformElement, HSolidElement, SVGShapeElement, HBaseElement, HierarchyElement, FrameElement, RenderableElement], HShapeElement);\n  HShapeElement.prototype._renderShapeFrame = HShapeElement.prototype.renderInnerContent;\n\n  HShapeElement.prototype.createContent = function () {\n    var cont;\n    (this || _global).baseElement.style.fontSize = 0;\n\n    if ((this || _global).data.hasMask) {\n      (this || _global).layerElement.appendChild((this || _global).shapesContainer);\n\n      cont = (this || _global).svgElement;\n    } else {\n      cont = createNS(\"svg\");\n      var size = (this || _global).comp.data ? (this || _global).comp.data : (this || _global).globalData.compSize;\n      cont.setAttribute(\"width\", size.w);\n      cont.setAttribute(\"height\", size.h);\n      cont.appendChild((this || _global).shapesContainer);\n\n      (this || _global).layerElement.appendChild(cont);\n    }\n\n    this.searchShapes((this || _global).shapesData, (this || _global).itemsData, (this || _global).prevViewData, (this || _global).shapesContainer, 0, [], true);\n    this.filterUniqueShapes();\n    (this || _global).shapeCont = cont;\n  };\n\n  HShapeElement.prototype.getTransformedPoint = function (transformers, point) {\n    var i;\n    var len = transformers.length;\n\n    for (i = 0; i < len; i += 1) {\n      point = transformers[i].mProps.v.applyToPointArray(point[0], point[1], 0);\n    }\n\n    return point;\n  };\n\n  HShapeElement.prototype.calculateShapeBoundingBox = function (item, boundingBox) {\n    var shape = item.sh.v;\n    var transformers = item.transformers;\n    var i;\n    var len = shape._length;\n    var vPoint;\n    var oPoint;\n    var nextIPoint;\n    var nextVPoint;\n\n    if (len <= 1) {\n      return;\n    }\n\n    for (i = 0; i < len - 1; i += 1) {\n      vPoint = this.getTransformedPoint(transformers, shape.v[i]);\n      oPoint = this.getTransformedPoint(transformers, shape.o[i]);\n      nextIPoint = this.getTransformedPoint(transformers, shape.i[i + 1]);\n      nextVPoint = this.getTransformedPoint(transformers, shape.v[i + 1]);\n      this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n    }\n\n    if (shape.c) {\n      vPoint = this.getTransformedPoint(transformers, shape.v[i]);\n      oPoint = this.getTransformedPoint(transformers, shape.o[i]);\n      nextIPoint = this.getTransformedPoint(transformers, shape.i[0]);\n      nextVPoint = this.getTransformedPoint(transformers, shape.v[0]);\n      this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n    }\n  };\n\n  HShapeElement.prototype.checkBounds = function (vPoint, oPoint, nextIPoint, nextVPoint, boundingBox) {\n    this.getBoundsOfCurve(vPoint, oPoint, nextIPoint, nextVPoint);\n    var bounds = (this || _global).shapeBoundingBox;\n    boundingBox.x = bmMin(bounds.left, boundingBox.x);\n    boundingBox.xMax = bmMax(bounds.right, boundingBox.xMax);\n    boundingBox.y = bmMin(bounds.top, boundingBox.y);\n    boundingBox.yMax = bmMax(bounds.bottom, boundingBox.yMax);\n  };\n\n  HShapeElement.prototype.shapeBoundingBox = {\n    left: 0,\n    right: 0,\n    top: 0,\n    bottom: 0\n  };\n  HShapeElement.prototype.tempBoundingBox = {\n    x: 0,\n    xMax: 0,\n    y: 0,\n    yMax: 0,\n    width: 0,\n    height: 0\n  };\n\n  HShapeElement.prototype.getBoundsOfCurve = function (p0, p1, p2, p3) {\n    var bounds = [[p0[0], p3[0]], [p0[1], p3[1]]];\n\n    for (var a, b, c, t, b2ac, t1, t2, i = 0; i < 2; ++i) {\n      // eslint-disable-line no-plusplus\n      b = 6 * p0[i] - 12 * p1[i] + 6 * p2[i];\n      a = -3 * p0[i] + 9 * p1[i] - 9 * p2[i] + 3 * p3[i];\n      c = 3 * p1[i] - 3 * p0[i];\n      b |= 0; // eslint-disable-line no-bitwise\n\n      a |= 0; // eslint-disable-line no-bitwise\n\n      c |= 0; // eslint-disable-line no-bitwise\n\n      if (a === 0 && b === 0) {//\n      } else if (a === 0) {\n        t = -c / b;\n\n        if (t > 0 && t < 1) {\n          bounds[i].push(this.calculateF(t, p0, p1, p2, p3, i));\n        }\n      } else {\n        b2ac = b * b - 4 * c * a;\n\n        if (b2ac >= 0) {\n          t1 = (-b + bmSqrt(b2ac)) / (2 * a);\n          if (t1 > 0 && t1 < 1) bounds[i].push(this.calculateF(t1, p0, p1, p2, p3, i));\n          t2 = (-b - bmSqrt(b2ac)) / (2 * a);\n          if (t2 > 0 && t2 < 1) bounds[i].push(this.calculateF(t2, p0, p1, p2, p3, i));\n        }\n      }\n    }\n\n    (this || _global).shapeBoundingBox.left = bmMin.apply(null, bounds[0]);\n    (this || _global).shapeBoundingBox.top = bmMin.apply(null, bounds[1]);\n    (this || _global).shapeBoundingBox.right = bmMax.apply(null, bounds[0]);\n    (this || _global).shapeBoundingBox.bottom = bmMax.apply(null, bounds[1]);\n  };\n\n  HShapeElement.prototype.calculateF = function (t, p0, p1, p2, p3, i) {\n    return bmPow(1 - t, 3) * p0[i] + 3 * bmPow(1 - t, 2) * t * p1[i] + 3 * (1 - t) * bmPow(t, 2) * p2[i] + bmPow(t, 3) * p3[i];\n  };\n\n  HShapeElement.prototype.calculateBoundingBox = function (itemsData, boundingBox) {\n    var i;\n    var len = itemsData.length;\n\n    for (i = 0; i < len; i += 1) {\n      if (itemsData[i] && itemsData[i].sh) {\n        this.calculateShapeBoundingBox(itemsData[i], boundingBox);\n      } else if (itemsData[i] && itemsData[i].it) {\n        this.calculateBoundingBox(itemsData[i].it, boundingBox);\n      }\n    }\n  };\n\n  HShapeElement.prototype.currentBoxContains = function (box) {\n    return (this || _global).currentBBox.x <= box.x && (this || _global).currentBBox.y <= box.y && (this || _global).currentBBox.width + (this || _global).currentBBox.x >= box.x + box.width && (this || _global).currentBBox.height + (this || _global).currentBBox.y >= box.y + box.height;\n  };\n\n  HShapeElement.prototype.renderInnerContent = function () {\n    this._renderShapeFrame();\n\n    if (!(this || _global).hidden && ((this || _global)._isFirstFrame || (this || _global)._mdf)) {\n      var tempBoundingBox = (this || _global).tempBoundingBox;\n      var max = 999999;\n      tempBoundingBox.x = max;\n      tempBoundingBox.xMax = -max;\n      tempBoundingBox.y = max;\n      tempBoundingBox.yMax = -max;\n      this.calculateBoundingBox((this || _global).itemsData, tempBoundingBox);\n      tempBoundingBox.width = tempBoundingBox.xMax < tempBoundingBox.x ? 0 : tempBoundingBox.xMax - tempBoundingBox.x;\n      tempBoundingBox.height = tempBoundingBox.yMax < tempBoundingBox.y ? 0 : tempBoundingBox.yMax - tempBoundingBox.y; // var tempBoundingBox = this.shapeCont.getBBox();\n\n      if (this.currentBoxContains(tempBoundingBox)) {\n        return;\n      }\n\n      var changed = false;\n\n      if ((this || _global).currentBBox.w !== tempBoundingBox.width) {\n        (this || _global).currentBBox.w = tempBoundingBox.width;\n\n        (this || _global).shapeCont.setAttribute(\"width\", tempBoundingBox.width);\n\n        changed = true;\n      }\n\n      if ((this || _global).currentBBox.h !== tempBoundingBox.height) {\n        (this || _global).currentBBox.h = tempBoundingBox.height;\n\n        (this || _global).shapeCont.setAttribute(\"height\", tempBoundingBox.height);\n\n        changed = true;\n      }\n\n      if (changed || (this || _global).currentBBox.x !== tempBoundingBox.x || (this || _global).currentBBox.y !== tempBoundingBox.y) {\n        (this || _global).currentBBox.w = tempBoundingBox.width;\n        (this || _global).currentBBox.h = tempBoundingBox.height;\n        (this || _global).currentBBox.x = tempBoundingBox.x;\n        (this || _global).currentBBox.y = tempBoundingBox.y;\n\n        (this || _global).shapeCont.setAttribute(\"viewBox\", (this || _global).currentBBox.x + \" \" + (this || _global).currentBBox.y + \" \" + (this || _global).currentBBox.w + \" \" + (this || _global).currentBBox.h);\n\n        var shapeStyle = (this || _global).shapeCont.style;\n        var shapeTransform = \"translate(\" + (this || _global).currentBBox.x + \"px,\" + (this || _global).currentBBox.y + \"px)\";\n        shapeStyle.transform = shapeTransform;\n        shapeStyle.webkitTransform = shapeTransform;\n      }\n    }\n  };\n  /* global extendPrototype, BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement,\r\n  RenderableDOMElement, ITextElement, createSizedArray, createTag, styleDiv, createNS */\n\n\n  function HTextElement(data, globalData, comp) {\n    (this || _global).textSpans = [];\n    (this || _global).textPaths = [];\n    (this || _global).currentBBox = {\n      x: 999999,\n      y: -999999,\n      h: 0,\n      w: 0\n    };\n    (this || _global).renderType = \"svg\";\n    (this || _global).isMasked = false;\n    this.initElement(data, globalData, comp);\n  }\n\n  extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], HTextElement);\n\n  HTextElement.prototype.createContent = function () {\n    (this || _global).isMasked = this.checkMasks();\n\n    if ((this || _global).isMasked) {\n      (this || _global).renderType = \"svg\";\n      (this || _global).compW = (this || _global).comp.data.w;\n      (this || _global).compH = (this || _global).comp.data.h;\n\n      (this || _global).svgElement.setAttribute(\"width\", (this || _global).compW);\n\n      (this || _global).svgElement.setAttribute(\"height\", (this || _global).compH);\n\n      var g = createNS(\"g\");\n\n      (this || _global).maskedElement.appendChild(g);\n\n      (this || _global).innerElem = g;\n    } else {\n      (this || _global).renderType = \"html\";\n      (this || _global).innerElem = (this || _global).layerElement;\n    }\n\n    this.checkParenting();\n  };\n\n  HTextElement.prototype.buildNewText = function () {\n    var documentData = (this || _global).textProperty.currentData;\n    (this || _global).renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n    var innerElemStyle = (this || _global).innerElem.style;\n    var textColor = documentData.fc ? this.buildColor(documentData.fc) : \"rgba(0,0,0,0)\";\n    innerElemStyle.fill = textColor;\n    innerElemStyle.color = textColor;\n\n    if (documentData.sc) {\n      innerElemStyle.stroke = this.buildColor(documentData.sc);\n      innerElemStyle.strokeWidth = documentData.sw + \"px\";\n    }\n\n    var fontData = (this || _global).globalData.fontManager.getFontByName(documentData.f);\n\n    if (!(this || _global).globalData.fontManager.chars) {\n      innerElemStyle.fontSize = documentData.finalSize + \"px\";\n      innerElemStyle.lineHeight = documentData.finalSize + \"px\";\n\n      if (fontData.fClass) {\n        (this || _global).innerElem.className = fontData.fClass;\n      } else {\n        innerElemStyle.fontFamily = fontData.fFamily;\n        var fWeight = documentData.fWeight;\n        var fStyle = documentData.fStyle;\n        innerElemStyle.fontStyle = fStyle;\n        innerElemStyle.fontWeight = fWeight;\n      }\n    }\n\n    var i;\n    var len;\n    var letters = documentData.l;\n    len = letters.length;\n    var tSpan;\n    var tParent;\n    var tCont;\n    var matrixHelper = (this || _global).mHelper;\n    var shapes;\n    var shapeStr = \"\";\n    var cnt = 0;\n\n    for (i = 0; i < len; i += 1) {\n      if ((this || _global).globalData.fontManager.chars) {\n        if (!(this || _global).textPaths[cnt]) {\n          tSpan = createNS(\"path\");\n          tSpan.setAttribute(\"stroke-linecap\", \"butt\");\n          tSpan.setAttribute(\"stroke-linejoin\", \"round\");\n          tSpan.setAttribute(\"stroke-miterlimit\", \"4\");\n        } else {\n          tSpan = (this || _global).textPaths[cnt];\n        }\n\n        if (!(this || _global).isMasked) {\n          if ((this || _global).textSpans[cnt]) {\n            tParent = (this || _global).textSpans[cnt];\n            tCont = tParent.children[0];\n          } else {\n            tParent = createTag(\"div\");\n            tParent.style.lineHeight = 0;\n            tCont = createNS(\"svg\");\n            tCont.appendChild(tSpan);\n            styleDiv(tParent);\n          }\n        }\n      } else if (!(this || _global).isMasked) {\n        if ((this || _global).textSpans[cnt]) {\n          tParent = (this || _global).textSpans[cnt];\n          tSpan = (this || _global).textPaths[cnt];\n        } else {\n          tParent = createTag(\"span\");\n          styleDiv(tParent);\n          tSpan = createTag(\"span\");\n          styleDiv(tSpan);\n          tParent.appendChild(tSpan);\n        }\n      } else {\n        tSpan = (this || _global).textPaths[cnt] ? (this || _global).textPaths[cnt] : createNS(\"text\");\n      } // tSpan.setAttribute('visibility', 'hidden');\n\n\n      if ((this || _global).globalData.fontManager.chars) {\n        var charData = (this || _global).globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, (this || _global).globalData.fontManager.getFontByName(documentData.f).fFamily);\n\n        var shapeData;\n\n        if (charData) {\n          shapeData = charData.data;\n        } else {\n          shapeData = null;\n        }\n\n        matrixHelper.reset();\n\n        if (shapeData && shapeData.shapes) {\n          shapes = shapeData.shapes[0].it;\n          matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n          shapeStr = this.createPathShape(matrixHelper, shapes);\n          tSpan.setAttribute(\"d\", shapeStr);\n        }\n\n        if (!(this || _global).isMasked) {\n          (this || _global).innerElem.appendChild(tParent);\n\n          if (shapeData && shapeData.shapes) {\n            // document.body.appendChild is needed to get exact measure of shape\n            document.body.appendChild(tCont);\n            var boundingBox = tCont.getBBox();\n            tCont.setAttribute(\"width\", boundingBox.width + 2);\n            tCont.setAttribute(\"height\", boundingBox.height + 2);\n            tCont.setAttribute(\"viewBox\", boundingBox.x - 1 + \" \" + (boundingBox.y - 1) + \" \" + (boundingBox.width + 2) + \" \" + (boundingBox.height + 2));\n            var tContStyle = tCont.style;\n            var tContTranslation = \"translate(\" + (boundingBox.x - 1) + \"px,\" + (boundingBox.y - 1) + \"px)\";\n            tContStyle.transform = tContTranslation;\n            tContStyle.webkitTransform = tContTranslation;\n            letters[i].yOffset = boundingBox.y - 1;\n          } else {\n            tCont.setAttribute(\"width\", 1);\n            tCont.setAttribute(\"height\", 1);\n          }\n\n          tParent.appendChild(tCont);\n        } else {\n          (this || _global).innerElem.appendChild(tSpan);\n        }\n      } else {\n        tSpan.textContent = letters[i].val;\n        tSpan.setAttributeNS(\"http://www.w3.org/XML/1998/namespace\", \"xml:space\", \"preserve\");\n\n        if (!(this || _global).isMasked) {\n          (this || _global).innerElem.appendChild(tParent); //\n\n\n          var tStyle = tSpan.style;\n          var tSpanTranslation = \"translate3d(0,\" + -documentData.finalSize / 1.2 + \"px,0)\";\n          tStyle.transform = tSpanTranslation;\n          tStyle.webkitTransform = tSpanTranslation;\n        } else {\n          (this || _global).innerElem.appendChild(tSpan);\n        }\n      } //\n\n\n      if (!(this || _global).isMasked) {\n        (this || _global).textSpans[cnt] = tParent;\n      } else {\n        (this || _global).textSpans[cnt] = tSpan;\n      }\n\n      (this || _global).textSpans[cnt].style.display = \"block\";\n      (this || _global).textPaths[cnt] = tSpan;\n      cnt += 1;\n    }\n\n    while (cnt < (this || _global).textSpans.length) {\n      (this || _global).textSpans[cnt].style.display = \"none\";\n      cnt += 1;\n    }\n  };\n\n  HTextElement.prototype.renderInnerContent = function () {\n    var svgStyle;\n\n    if ((this || _global).data.singleShape) {\n      if (!(this || _global)._isFirstFrame && !(this || _global).lettersChangedFlag) {\n        return;\n      }\n\n      if ((this || _global).isMasked && (this || _global).finalTransform._matMdf) {\n        // Todo Benchmark if using this is better than getBBox\n        (this || _global).svgElement.setAttribute(\"viewBox\", -(this || _global).finalTransform.mProp.p.v[0] + \" \" + -(this || _global).finalTransform.mProp.p.v[1] + \" \" + (this || _global).compW + \" \" + (this || _global).compH);\n\n        svgStyle = (this || _global).svgElement.style;\n        var translation = \"translate(\" + -(this || _global).finalTransform.mProp.p.v[0] + \"px,\" + -(this || _global).finalTransform.mProp.p.v[1] + \"px)\";\n        svgStyle.transform = translation;\n        svgStyle.webkitTransform = translation;\n      }\n    }\n\n    (this || _global).textAnimator.getMeasures((this || _global).textProperty.currentData, (this || _global).lettersChangedFlag);\n\n    if (!(this || _global).lettersChangedFlag && !(this || _global).textAnimator.lettersChangedFlag) {\n      return;\n    }\n\n    var i;\n    var len;\n    var count = 0;\n    var renderedLetters = (this || _global).textAnimator.renderedLetters;\n    var letters = (this || _global).textProperty.currentData.l;\n    len = letters.length;\n    var renderedLetter;\n    var textSpan;\n    var textPath;\n\n    for (i = 0; i < len; i += 1) {\n      if (letters[i].n) {\n        count += 1;\n      } else {\n        textSpan = (this || _global).textSpans[i];\n        textPath = (this || _global).textPaths[i];\n        renderedLetter = renderedLetters[count];\n        count += 1;\n\n        if (renderedLetter._mdf.m) {\n          if (!(this || _global).isMasked) {\n            textSpan.style.webkitTransform = renderedLetter.m;\n            textSpan.style.transform = renderedLetter.m;\n          } else {\n            textSpan.setAttribute(\"transform\", renderedLetter.m);\n          }\n        } /// /textSpan.setAttribute('opacity',renderedLetter.o);\n\n\n        textSpan.style.opacity = renderedLetter.o;\n\n        if (renderedLetter.sw && renderedLetter._mdf.sw) {\n          textPath.setAttribute(\"stroke-width\", renderedLetter.sw);\n        }\n\n        if (renderedLetter.sc && renderedLetter._mdf.sc) {\n          textPath.setAttribute(\"stroke\", renderedLetter.sc);\n        }\n\n        if (renderedLetter.fc && renderedLetter._mdf.fc) {\n          textPath.setAttribute(\"fill\", renderedLetter.fc);\n          textPath.style.color = renderedLetter.fc;\n        }\n      }\n    }\n\n    if ((this || _global).innerElem.getBBox && !(this || _global).hidden && ((this || _global)._isFirstFrame || (this || _global)._mdf)) {\n      var boundingBox = (this || _global).innerElem.getBBox();\n\n      if ((this || _global).currentBBox.w !== boundingBox.width) {\n        (this || _global).currentBBox.w = boundingBox.width;\n\n        (this || _global).svgElement.setAttribute(\"width\", boundingBox.width);\n      }\n\n      if ((this || _global).currentBBox.h !== boundingBox.height) {\n        (this || _global).currentBBox.h = boundingBox.height;\n\n        (this || _global).svgElement.setAttribute(\"height\", boundingBox.height);\n      }\n\n      var margin = 1;\n\n      if ((this || _global).currentBBox.w !== boundingBox.width + margin * 2 || (this || _global).currentBBox.h !== boundingBox.height + margin * 2 || (this || _global).currentBBox.x !== boundingBox.x - margin || (this || _global).currentBBox.y !== boundingBox.y - margin) {\n        (this || _global).currentBBox.w = boundingBox.width + margin * 2;\n        (this || _global).currentBBox.h = boundingBox.height + margin * 2;\n        (this || _global).currentBBox.x = boundingBox.x - margin;\n        (this || _global).currentBBox.y = boundingBox.y - margin;\n\n        (this || _global).svgElement.setAttribute(\"viewBox\", (this || _global).currentBBox.x + \" \" + (this || _global).currentBBox.y + \" \" + (this || _global).currentBBox.w + \" \" + (this || _global).currentBBox.h);\n\n        svgStyle = (this || _global).svgElement.style;\n        var svgTransform = \"translate(\" + (this || _global).currentBBox.x + \"px,\" + (this || _global).currentBBox.y + \"px)\";\n        svgStyle.transform = svgTransform;\n        svgStyle.webkitTransform = svgTransform;\n      }\n    }\n  };\n  /* global extendPrototype, BaseElement, TransformElement, HBaseElement, HSolidElement, HierarchyElement,\r\n  FrameElement, RenderableElement, createNS */\n\n\n  function HImageElement(data, globalData, comp) {\n    (this || _global).assetData = globalData.getAssetData(data.refId);\n    this.initElement(data, globalData, comp);\n  }\n\n  extendPrototype([BaseElement, TransformElement, HBaseElement, HSolidElement, HierarchyElement, FrameElement, RenderableElement], HImageElement);\n\n  HImageElement.prototype.createContent = function () {\n    var assetPath = (this || _global).globalData.getAssetsPath((this || _global).assetData);\n\n    var img = new Image();\n\n    if ((this || _global).data.hasMask) {\n      (this || _global).imageElem = createNS(\"image\");\n\n      (this || _global).imageElem.setAttribute(\"width\", (this || _global).assetData.w + \"px\");\n\n      (this || _global).imageElem.setAttribute(\"height\", (this || _global).assetData.h + \"px\");\n\n      (this || _global).imageElem.setAttributeNS(\"http://www.w3.org/1999/xlink\", \"href\", assetPath);\n\n      (this || _global).layerElement.appendChild((this || _global).imageElem);\n\n      (this || _global).baseElement.setAttribute(\"width\", (this || _global).assetData.w);\n\n      (this || _global).baseElement.setAttribute(\"height\", (this || _global).assetData.h);\n    } else {\n      (this || _global).layerElement.appendChild(img);\n    }\n\n    img.crossOrigin = \"anonymous\";\n    img.src = assetPath;\n\n    if ((this || _global).data.ln) {\n      (this || _global).baseElement.setAttribute(\"id\", (this || _global).data.ln);\n    }\n  };\n  /* global PropertyFactory, degToRads, Matrix, extendPrototype, BaseElement, FrameElement, HierarchyElement */\n\n\n  function HCameraElement(data, globalData, comp) {\n    this.initFrame();\n    this.initBaseData(data, globalData, comp);\n    this.initHierarchy();\n    var getProp = PropertyFactory.getProp;\n    (this || _global).pe = getProp(this || _global, data.pe, 0, 0, this || _global);\n\n    if (data.ks.p.s) {\n      (this || _global).px = getProp(this || _global, data.ks.p.x, 1, 0, this || _global);\n      (this || _global).py = getProp(this || _global, data.ks.p.y, 1, 0, this || _global);\n      (this || _global).pz = getProp(this || _global, data.ks.p.z, 1, 0, this || _global);\n    } else {\n      (this || _global).p = getProp(this || _global, data.ks.p, 1, 0, this || _global);\n    }\n\n    if (data.ks.a) {\n      (this || _global).a = getProp(this || _global, data.ks.a, 1, 0, this || _global);\n    }\n\n    if (data.ks.or.k.length && data.ks.or.k[0].to) {\n      var i;\n      var len = data.ks.or.k.length;\n\n      for (i = 0; i < len; i += 1) {\n        data.ks.or.k[i].to = null;\n        data.ks.or.k[i].ti = null;\n      }\n    }\n\n    (this || _global).or = getProp(this || _global, data.ks.or, 1, degToRads, this || _global);\n    (this || _global).or.sh = true;\n    (this || _global).rx = getProp(this || _global, data.ks.rx, 0, degToRads, this || _global);\n    (this || _global).ry = getProp(this || _global, data.ks.ry, 0, degToRads, this || _global);\n    (this || _global).rz = getProp(this || _global, data.ks.rz, 0, degToRads, this || _global);\n    (this || _global).mat = new Matrix();\n    (this || _global)._prevMat = new Matrix();\n    (this || _global)._isFirstFrame = true; // TODO: find a better way to make the HCamera element to be compatible with the LayerInterface and TransformInterface.\n\n    (this || _global).finalTransform = {\n      mProp: this || _global\n    };\n  }\n\n  extendPrototype([BaseElement, FrameElement, HierarchyElement], HCameraElement);\n\n  HCameraElement.prototype.setup = function () {\n    var i;\n    var len = (this || _global).comp.threeDElements.length;\n    var comp;\n    var perspectiveStyle;\n    var containerStyle;\n\n    for (i = 0; i < len; i += 1) {\n      // [perspectiveElem,container]\n      comp = (this || _global).comp.threeDElements[i];\n\n      if (comp.type === \"3d\") {\n        perspectiveStyle = comp.perspectiveElem.style;\n        containerStyle = comp.container.style;\n        var perspective = (this || _global).pe.v + \"px\";\n        var origin = \"0px 0px 0px\";\n        var matrix = \"matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)\";\n        perspectiveStyle.perspective = perspective;\n        perspectiveStyle.webkitPerspective = perspective;\n        containerStyle.transformOrigin = origin;\n        containerStyle.mozTransformOrigin = origin;\n        containerStyle.webkitTransformOrigin = origin;\n        perspectiveStyle.transform = matrix;\n        perspectiveStyle.webkitTransform = matrix;\n      }\n    }\n  };\n\n  HCameraElement.prototype.createElements = function () {};\n\n  HCameraElement.prototype.hide = function () {};\n\n  HCameraElement.prototype.renderFrame = function () {\n    var _mdf = (this || _global)._isFirstFrame;\n    var i;\n    var len;\n\n    if ((this || _global).hierarchy) {\n      len = (this || _global).hierarchy.length;\n\n      for (i = 0; i < len; i += 1) {\n        _mdf = (this || _global).hierarchy[i].finalTransform.mProp._mdf || _mdf;\n      }\n    }\n\n    if (_mdf || (this || _global).pe._mdf || (this || _global).p && (this || _global).p._mdf || (this || _global).px && ((this || _global).px._mdf || (this || _global).py._mdf || (this || _global).pz._mdf) || (this || _global).rx._mdf || (this || _global).ry._mdf || (this || _global).rz._mdf || (this || _global).or._mdf || (this || _global).a && (this || _global).a._mdf) {\n      (this || _global).mat.reset();\n\n      if ((this || _global).hierarchy) {\n        len = (this || _global).hierarchy.length - 1;\n\n        for (i = len; i >= 0; i -= 1) {\n          var mTransf = (this || _global).hierarchy[i].finalTransform.mProp;\n\n          (this || _global).mat.translate(-mTransf.p.v[0], -mTransf.p.v[1], mTransf.p.v[2]);\n\n          (this || _global).mat.rotateX(-mTransf.or.v[0]).rotateY(-mTransf.or.v[1]).rotateZ(mTransf.or.v[2]);\n\n          (this || _global).mat.rotateX(-mTransf.rx.v).rotateY(-mTransf.ry.v).rotateZ(mTransf.rz.v);\n\n          (this || _global).mat.scale(1 / mTransf.s.v[0], 1 / mTransf.s.v[1], 1 / mTransf.s.v[2]);\n\n          (this || _global).mat.translate(mTransf.a.v[0], mTransf.a.v[1], mTransf.a.v[2]);\n        }\n      }\n\n      if ((this || _global).p) {\n        (this || _global).mat.translate(-(this || _global).p.v[0], -(this || _global).p.v[1], (this || _global).p.v[2]);\n      } else {\n        (this || _global).mat.translate(-(this || _global).px.v, -(this || _global).py.v, (this || _global).pz.v);\n      }\n\n      if ((this || _global).a) {\n        var diffVector;\n\n        if ((this || _global).p) {\n          diffVector = [(this || _global).p.v[0] - (this || _global).a.v[0], (this || _global).p.v[1] - (this || _global).a.v[1], (this || _global).p.v[2] - (this || _global).a.v[2]];\n        } else {\n          diffVector = [(this || _global).px.v - (this || _global).a.v[0], (this || _global).py.v - (this || _global).a.v[1], (this || _global).pz.v - (this || _global).a.v[2]];\n        }\n\n        var mag = Math.sqrt(Math.pow(diffVector[0], 2) + Math.pow(diffVector[1], 2) + Math.pow(diffVector[2], 2)); // var lookDir = getNormalizedPoint(getDiffVector(this.a.v,this.p.v));\n\n        var lookDir = [diffVector[0] / mag, diffVector[1] / mag, diffVector[2] / mag];\n        var lookLengthOnXZ = Math.sqrt(lookDir[2] * lookDir[2] + lookDir[0] * lookDir[0]);\n        var mRotationX = Math.atan2(lookDir[1], lookLengthOnXZ);\n        var mRotationY = Math.atan2(lookDir[0], -lookDir[2]);\n\n        (this || _global).mat.rotateY(mRotationY).rotateX(-mRotationX);\n      }\n\n      (this || _global).mat.rotateX(-(this || _global).rx.v).rotateY(-(this || _global).ry.v).rotateZ((this || _global).rz.v);\n\n      (this || _global).mat.rotateX(-(this || _global).or.v[0]).rotateY(-(this || _global).or.v[1]).rotateZ((this || _global).or.v[2]);\n\n      (this || _global).mat.translate((this || _global).globalData.compSize.w / 2, (this || _global).globalData.compSize.h / 2, 0);\n\n      (this || _global).mat.translate(0, 0, (this || _global).pe.v);\n\n      var hasMatrixChanged = !(this || _global)._prevMat.equals((this || _global).mat);\n\n      if ((hasMatrixChanged || (this || _global).pe._mdf) && (this || _global).comp.threeDElements) {\n        len = (this || _global).comp.threeDElements.length;\n        var comp;\n        var perspectiveStyle;\n        var containerStyle;\n\n        for (i = 0; i < len; i += 1) {\n          comp = (this || _global).comp.threeDElements[i];\n\n          if (comp.type === \"3d\") {\n            if (hasMatrixChanged) {\n              var matValue = (this || _global).mat.toCSS();\n\n              containerStyle = comp.container.style;\n              containerStyle.transform = matValue;\n              containerStyle.webkitTransform = matValue;\n            }\n\n            if ((this || _global).pe._mdf) {\n              perspectiveStyle = comp.perspectiveElem.style;\n              perspectiveStyle.perspective = (this || _global).pe.v + \"px\";\n              perspectiveStyle.webkitPerspective = (this || _global).pe.v + \"px\";\n            }\n          }\n        }\n\n        (this || _global).mat.clone((this || _global)._prevMat);\n      }\n    }\n\n    (this || _global)._isFirstFrame = false;\n  };\n\n  HCameraElement.prototype.prepareFrame = function (num) {\n    this.prepareProperties(num, true);\n  };\n\n  HCameraElement.prototype.destroy = function () {};\n\n  HCameraElement.prototype.getBaseElement = function () {\n    return null;\n  };\n\n  function HEffects() {}\n\n  HEffects.prototype.renderFrame = function () {};\n  /* global createTag, AnimationItem */\n\n  /* exported animationManager */\n\n\n  var animationManager = function () {\n    var moduleOb = {};\n    var registeredAnimations = [];\n    var initTime = 0;\n    var len = 0;\n    var playingAnimationsNum = 0;\n    var _stopped = true;\n    var _isFrozen = false;\n\n    function removeElement(ev) {\n      var i = 0;\n      var animItem = ev.target;\n\n      while (i < len) {\n        if (registeredAnimations[i].animation === animItem) {\n          registeredAnimations.splice(i, 1);\n          i -= 1;\n          len -= 1;\n\n          if (!animItem.isPaused) {\n            subtractPlayingCount();\n          }\n        }\n\n        i += 1;\n      }\n    }\n\n    function registerAnimation(element, animationData) {\n      if (!element) {\n        return null;\n      }\n\n      var i = 0;\n\n      while (i < len) {\n        if (registeredAnimations[i].elem === element && registeredAnimations[i].elem !== null) {\n          return registeredAnimations[i].animation;\n        }\n\n        i += 1;\n      }\n\n      var animItem = new AnimationItem();\n      setupAnimation(animItem, element);\n      animItem.setData(element, animationData);\n      return animItem;\n    }\n\n    function getRegisteredAnimations() {\n      var i;\n      var lenAnims = registeredAnimations.length;\n      var animations = [];\n\n      for (i = 0; i < lenAnims; i += 1) {\n        animations.push(registeredAnimations[i].animation);\n      }\n\n      return animations;\n    }\n\n    function addPlayingCount() {\n      playingAnimationsNum += 1;\n      activate();\n    }\n\n    function subtractPlayingCount() {\n      playingAnimationsNum -= 1;\n    }\n\n    function setupAnimation(animItem, element) {\n      animItem.addEventListener(\"destroy\", removeElement);\n      animItem.addEventListener(\"_active\", addPlayingCount);\n      animItem.addEventListener(\"_idle\", subtractPlayingCount);\n      registeredAnimations.push({\n        elem: element,\n        animation: animItem\n      });\n      len += 1;\n    }\n\n    function loadAnimation(params) {\n      var animItem = new AnimationItem();\n      setupAnimation(animItem, null);\n      animItem.setParams(params);\n      return animItem;\n    }\n\n    function setSpeed(val, animation) {\n      var i;\n\n      for (i = 0; i < len; i += 1) {\n        registeredAnimations[i].animation.setSpeed(val, animation);\n      }\n    }\n\n    function setDirection(val, animation) {\n      var i;\n\n      for (i = 0; i < len; i += 1) {\n        registeredAnimations[i].animation.setDirection(val, animation);\n      }\n    }\n\n    function play(animation) {\n      var i;\n\n      for (i = 0; i < len; i += 1) {\n        registeredAnimations[i].animation.play(animation);\n      }\n    }\n\n    function resume(nowTime) {\n      var elapsedTime = nowTime - initTime;\n      var i;\n\n      for (i = 0; i < len; i += 1) {\n        registeredAnimations[i].animation.advanceTime(elapsedTime);\n      }\n\n      initTime = nowTime;\n\n      if (playingAnimationsNum && !_isFrozen) {\n        window.requestAnimationFrame(resume);\n      } else {\n        _stopped = true;\n      }\n    }\n\n    function first(nowTime) {\n      initTime = nowTime;\n      window.requestAnimationFrame(resume);\n    }\n\n    function pause(animation) {\n      var i;\n\n      for (i = 0; i < len; i += 1) {\n        registeredAnimations[i].animation.pause(animation);\n      }\n    }\n\n    function goToAndStop(value, isFrame, animation) {\n      var i;\n\n      for (i = 0; i < len; i += 1) {\n        registeredAnimations[i].animation.goToAndStop(value, isFrame, animation);\n      }\n    }\n\n    function stop(animation) {\n      var i;\n\n      for (i = 0; i < len; i += 1) {\n        registeredAnimations[i].animation.stop(animation);\n      }\n    }\n\n    function togglePause(animation) {\n      var i;\n\n      for (i = 0; i < len; i += 1) {\n        registeredAnimations[i].animation.togglePause(animation);\n      }\n    }\n\n    function destroy(animation) {\n      var i;\n\n      for (i = len - 1; i >= 0; i -= 1) {\n        registeredAnimations[i].animation.destroy(animation);\n      }\n    }\n\n    function searchAnimations(animationData, standalone, renderer) {\n      var animElements = [].concat([].slice.call(document.getElementsByClassName(\"lottie\")), [].slice.call(document.getElementsByClassName(\"bodymovin\")));\n      var i;\n      var lenAnims = animElements.length;\n\n      for (i = 0; i < lenAnims; i += 1) {\n        if (renderer) {\n          animElements[i].setAttribute(\"data-bm-type\", renderer);\n        }\n\n        registerAnimation(animElements[i], animationData);\n      }\n\n      if (standalone && lenAnims === 0) {\n        if (!renderer) {\n          renderer = \"svg\";\n        }\n\n        var body = document.getElementsByTagName(\"body\")[0];\n        body.innerText = \"\";\n        var div = createTag(\"div\");\n        div.style.width = \"100%\";\n        div.style.height = \"100%\";\n        div.setAttribute(\"data-bm-type\", renderer);\n        body.appendChild(div);\n        registerAnimation(div, animationData);\n      }\n    }\n\n    function resize() {\n      var i;\n\n      for (i = 0; i < len; i += 1) {\n        registeredAnimations[i].animation.resize();\n      }\n    }\n\n    function activate() {\n      if (!_isFrozen && playingAnimationsNum) {\n        if (_stopped) {\n          window.requestAnimationFrame(first);\n          _stopped = false;\n        }\n      }\n    }\n\n    function freeze() {\n      _isFrozen = true;\n    }\n\n    function unfreeze() {\n      _isFrozen = false;\n      activate();\n    }\n\n    function setVolume(val, animation) {\n      var i;\n\n      for (i = 0; i < len; i += 1) {\n        registeredAnimations[i].animation.setVolume(val, animation);\n      }\n    }\n\n    function mute(animation) {\n      var i;\n\n      for (i = 0; i < len; i += 1) {\n        registeredAnimations[i].animation.mute(animation);\n      }\n    }\n\n    function unmute(animation) {\n      var i;\n\n      for (i = 0; i < len; i += 1) {\n        registeredAnimations[i].animation.unmute(animation);\n      }\n    }\n\n    moduleOb.registerAnimation = registerAnimation;\n    moduleOb.loadAnimation = loadAnimation;\n    moduleOb.setSpeed = setSpeed;\n    moduleOb.setDirection = setDirection;\n    moduleOb.play = play;\n    moduleOb.pause = pause;\n    moduleOb.stop = stop;\n    moduleOb.togglePause = togglePause;\n    moduleOb.searchAnimations = searchAnimations;\n    moduleOb.resize = resize; // moduleOb.start = start;\n\n    moduleOb.goToAndStop = goToAndStop;\n    moduleOb.destroy = destroy;\n    moduleOb.freeze = freeze;\n    moduleOb.unfreeze = unfreeze;\n    moduleOb.setVolume = setVolume;\n    moduleOb.mute = mute;\n    moduleOb.unmute = unmute;\n    moduleOb.getRegisteredAnimations = getRegisteredAnimations;\n    return moduleOb;\n  }();\n  /* global createElementID, subframeEnabled, ProjectInterface, ImagePreloader, audioControllerFactory, extendPrototype, BaseEvent,\r\n  CanvasRenderer, SVGRenderer, HybridRenderer, assetLoader, dataManager, expressionsPlugin, BMEnterFrameEvent, BMCompleteLoopEvent,\r\n  BMCompleteEvent, BMSegmentStartEvent, BMDestroyEvent, BMEnterFrameEvent, BMCompleteLoopEvent, BMCompleteEvent, BMSegmentStartEvent,\r\n  BMDestroyEvent, BMRenderFrameErrorEvent, BMConfigErrorEvent, markerParser */\n\n\n  var AnimationItem = function () {\n    (this || _global)._cbs = [];\n    (this || _global).name = \"\";\n    (this || _global).path = \"\";\n    (this || _global).isLoaded = false;\n    (this || _global).currentFrame = 0;\n    (this || _global).currentRawFrame = 0;\n    (this || _global).firstFrame = 0;\n    (this || _global).totalFrames = 0;\n    (this || _global).frameRate = 0;\n    (this || _global).frameMult = 0;\n    (this || _global).playSpeed = 1;\n    (this || _global).playDirection = 1;\n    (this || _global).playCount = 0;\n    (this || _global).animationData = {};\n    (this || _global).assets = [];\n    (this || _global).isPaused = true;\n    (this || _global).autoplay = false;\n    (this || _global).loop = true;\n    (this || _global).renderer = null;\n    (this || _global).animationID = createElementID();\n    (this || _global).assetsPath = \"\";\n    (this || _global).timeCompleted = 0;\n    (this || _global).segmentPos = 0;\n    (this || _global).isSubframeEnabled = subframeEnabled;\n    (this || _global).segments = [];\n    (this || _global)._idle = true;\n    (this || _global)._completedLoop = false;\n    (this || _global).projectInterface = ProjectInterface();\n    (this || _global).imagePreloader = new ImagePreloader();\n    (this || _global).audioController = audioControllerFactory();\n    (this || _global).markers = [];\n  };\n\n  extendPrototype([BaseEvent], AnimationItem);\n\n  AnimationItem.prototype.setParams = function (params) {\n    if (params.wrapper || params.container) {\n      (this || _global).wrapper = params.wrapper || params.container;\n    }\n\n    var animType = \"svg\";\n\n    if (params.animType) {\n      animType = params.animType;\n    } else if (params.renderer) {\n      animType = params.renderer;\n    }\n\n    switch (animType) {\n      case \"canvas\":\n        (this || _global).renderer = new CanvasRenderer(this || _global, params.rendererSettings);\n        break;\n\n      case \"svg\":\n        (this || _global).renderer = new SVGRenderer(this || _global, params.rendererSettings);\n        break;\n\n      default:\n        (this || _global).renderer = new HybridRenderer(this || _global, params.rendererSettings);\n        break;\n    }\n\n    (this || _global).imagePreloader.setCacheType(animType, (this || _global).renderer.globalData.defs);\n\n    (this || _global).renderer.setProjectInterface((this || _global).projectInterface);\n\n    (this || _global).animType = animType;\n\n    if (params.loop === \"\" || params.loop === null || params.loop === undefined || params.loop === true) {\n      (this || _global).loop = true;\n    } else if (params.loop === false) {\n      (this || _global).loop = false;\n    } else {\n      (this || _global).loop = parseInt(params.loop, 10);\n    }\n\n    (this || _global).autoplay = \"autoplay\" in params ? params.autoplay : true;\n    (this || _global).name = params.name ? params.name : \"\";\n    (this || _global).autoloadSegments = Object.prototype.hasOwnProperty.call(params, \"autoloadSegments\") ? params.autoloadSegments : true;\n    (this || _global).assetsPath = params.assetsPath;\n    (this || _global).initialSegment = params.initialSegment;\n\n    if (params.audioFactory) {\n      (this || _global).audioController.setAudioFactory(params.audioFactory);\n    }\n\n    if (params.animationData) {\n      this.configAnimation(params.animationData);\n    } else if (params.path) {\n      if (params.path.lastIndexOf(\"\\\\\") !== -1) {\n        (this || _global).path = params.path.substr(0, params.path.lastIndexOf(\"\\\\\") + 1);\n      } else {\n        (this || _global).path = params.path.substr(0, params.path.lastIndexOf(\"/\") + 1);\n      }\n\n      (this || _global).fileName = params.path.substr(params.path.lastIndexOf(\"/\") + 1);\n      (this || _global).fileName = (this || _global).fileName.substr(0, (this || _global).fileName.lastIndexOf(\".json\"));\n      assetLoader.load(params.path, (this || _global).configAnimation.bind(this || _global), function () {\n        this.trigger(\"data_failed\");\n      }.bind(this || _global));\n    }\n  };\n\n  AnimationItem.prototype.setData = function (wrapper, animationData) {\n    if (animationData) {\n      if (typeof animationData !== \"object\") {\n        animationData = JSON.parse(animationData);\n      }\n    }\n\n    var params = {\n      wrapper: wrapper,\n      animationData: animationData\n    };\n    var wrapperAttributes = wrapper.attributes;\n    params.path = wrapperAttributes.getNamedItem(\"data-animation-path\") // eslint-disable-line no-nested-ternary\n    ? wrapperAttributes.getNamedItem(\"data-animation-path\").value : wrapperAttributes.getNamedItem(\"data-bm-path\") // eslint-disable-line no-nested-ternary\n    ? wrapperAttributes.getNamedItem(\"data-bm-path\").value : wrapperAttributes.getNamedItem(\"bm-path\") ? wrapperAttributes.getNamedItem(\"bm-path\").value : \"\";\n    params.animType = wrapperAttributes.getNamedItem(\"data-anim-type\") // eslint-disable-line no-nested-ternary\n    ? wrapperAttributes.getNamedItem(\"data-anim-type\").value : wrapperAttributes.getNamedItem(\"data-bm-type\") // eslint-disable-line no-nested-ternary\n    ? wrapperAttributes.getNamedItem(\"data-bm-type\").value : wrapperAttributes.getNamedItem(\"bm-type\") // eslint-disable-line no-nested-ternary\n    ? wrapperAttributes.getNamedItem(\"bm-type\").value : wrapperAttributes.getNamedItem(\"data-bm-renderer\") // eslint-disable-line no-nested-ternary\n    ? wrapperAttributes.getNamedItem(\"data-bm-renderer\").value : wrapperAttributes.getNamedItem(\"bm-renderer\") ? wrapperAttributes.getNamedItem(\"bm-renderer\").value : \"canvas\";\n    var loop = wrapperAttributes.getNamedItem(\"data-anim-loop\") // eslint-disable-line no-nested-ternary\n    ? wrapperAttributes.getNamedItem(\"data-anim-loop\").value : wrapperAttributes.getNamedItem(\"data-bm-loop\") // eslint-disable-line no-nested-ternary\n    ? wrapperAttributes.getNamedItem(\"data-bm-loop\").value : wrapperAttributes.getNamedItem(\"bm-loop\") ? wrapperAttributes.getNamedItem(\"bm-loop\").value : \"\";\n\n    if (loop === \"false\") {\n      params.loop = false;\n    } else if (loop === \"true\") {\n      params.loop = true;\n    } else if (loop !== \"\") {\n      params.loop = parseInt(loop, 10);\n    }\n\n    var autoplay = wrapperAttributes.getNamedItem(\"data-anim-autoplay\") // eslint-disable-line no-nested-ternary\n    ? wrapperAttributes.getNamedItem(\"data-anim-autoplay\").value : wrapperAttributes.getNamedItem(\"data-bm-autoplay\") // eslint-disable-line no-nested-ternary\n    ? wrapperAttributes.getNamedItem(\"data-bm-autoplay\").value : wrapperAttributes.getNamedItem(\"bm-autoplay\") ? wrapperAttributes.getNamedItem(\"bm-autoplay\").value : true;\n    params.autoplay = autoplay !== \"false\";\n    params.name = wrapperAttributes.getNamedItem(\"data-name\") // eslint-disable-line no-nested-ternary\n    ? wrapperAttributes.getNamedItem(\"data-name\").value : wrapperAttributes.getNamedItem(\"data-bm-name\") // eslint-disable-line no-nested-ternary\n    ? wrapperAttributes.getNamedItem(\"data-bm-name\").value : wrapperAttributes.getNamedItem(\"bm-name\") ? wrapperAttributes.getNamedItem(\"bm-name\").value : \"\";\n    var prerender = wrapperAttributes.getNamedItem(\"data-anim-prerender\") // eslint-disable-line no-nested-ternary\n    ? wrapperAttributes.getNamedItem(\"data-anim-prerender\").value : wrapperAttributes.getNamedItem(\"data-bm-prerender\") // eslint-disable-line no-nested-ternary\n    ? wrapperAttributes.getNamedItem(\"data-bm-prerender\").value : wrapperAttributes.getNamedItem(\"bm-prerender\") ? wrapperAttributes.getNamedItem(\"bm-prerender\").value : \"\";\n\n    if (prerender === \"false\") {\n      params.prerender = false;\n    }\n\n    this.setParams(params);\n  };\n\n  AnimationItem.prototype.includeLayers = function (data) {\n    if (data.op > (this || _global).animationData.op) {\n      (this || _global).animationData.op = data.op;\n      (this || _global).totalFrames = Math.floor(data.op - (this || _global).animationData.ip);\n    }\n\n    var layers = (this || _global).animationData.layers;\n    var i;\n    var len = layers.length;\n    var newLayers = data.layers;\n    var j;\n    var jLen = newLayers.length;\n\n    for (j = 0; j < jLen; j += 1) {\n      i = 0;\n\n      while (i < len) {\n        if (layers[i].id === newLayers[j].id) {\n          layers[i] = newLayers[j];\n          break;\n        }\n\n        i += 1;\n      }\n    }\n\n    if (data.chars || data.fonts) {\n      (this || _global).renderer.globalData.fontManager.addChars(data.chars);\n\n      (this || _global).renderer.globalData.fontManager.addFonts(data.fonts, (this || _global).renderer.globalData.defs);\n    }\n\n    if (data.assets) {\n      len = data.assets.length;\n\n      for (i = 0; i < len; i += 1) {\n        (this || _global).animationData.assets.push(data.assets[i]);\n      }\n    }\n\n    (this || _global).animationData.__complete = false;\n    dataManager.completeData((this || _global).animationData, (this || _global).renderer.globalData.fontManager);\n\n    (this || _global).renderer.includeLayers(data.layers);\n\n    if (expressionsPlugin) {\n      expressionsPlugin.initExpressions(this || _global);\n    }\n\n    this.loadNextSegment();\n  };\n\n  AnimationItem.prototype.loadNextSegment = function () {\n    var segments = (this || _global).animationData.segments;\n\n    if (!segments || segments.length === 0 || !(this || _global).autoloadSegments) {\n      this.trigger(\"data_ready\");\n      (this || _global).timeCompleted = (this || _global).totalFrames;\n      return;\n    }\n\n    var segment = segments.shift();\n    (this || _global).timeCompleted = segment.time * (this || _global).frameRate;\n    var segmentPath = (this || _global).path + (this || _global).fileName + \"_\" + (this || _global).segmentPos + \".json\";\n    (this || _global).segmentPos += 1;\n    assetLoader.load(segmentPath, (this || _global).includeLayers.bind(this || _global), function () {\n      this.trigger(\"data_failed\");\n    }.bind(this || _global));\n  };\n\n  AnimationItem.prototype.loadSegments = function () {\n    var segments = (this || _global).animationData.segments;\n\n    if (!segments) {\n      (this || _global).timeCompleted = (this || _global).totalFrames;\n    }\n\n    this.loadNextSegment();\n  };\n\n  AnimationItem.prototype.imagesLoaded = function () {\n    this.trigger(\"loaded_images\");\n    this.checkLoaded();\n  };\n\n  AnimationItem.prototype.preloadImages = function () {\n    (this || _global).imagePreloader.setAssetsPath((this || _global).assetsPath);\n\n    (this || _global).imagePreloader.setPath((this || _global).path);\n\n    (this || _global).imagePreloader.loadAssets((this || _global).animationData.assets, (this || _global).imagesLoaded.bind(this || _global));\n  };\n\n  AnimationItem.prototype.configAnimation = function (animData) {\n    if (!(this || _global).renderer) {\n      return;\n    }\n\n    try {\n      (this || _global).animationData = animData;\n\n      if ((this || _global).initialSegment) {\n        (this || _global).totalFrames = Math.floor((this || _global).initialSegment[1] - (this || _global).initialSegment[0]);\n        (this || _global).firstFrame = Math.round((this || _global).initialSegment[0]);\n      } else {\n        (this || _global).totalFrames = Math.floor((this || _global).animationData.op - (this || _global).animationData.ip);\n        (this || _global).firstFrame = Math.round((this || _global).animationData.ip);\n      }\n\n      (this || _global).renderer.configAnimation(animData);\n\n      if (!animData.assets) {\n        animData.assets = [];\n      }\n\n      (this || _global).assets = (this || _global).animationData.assets;\n      (this || _global).frameRate = (this || _global).animationData.fr;\n      (this || _global).frameMult = (this || _global).animationData.fr / 1000;\n\n      (this || _global).renderer.searchExtraCompositions(animData.assets);\n\n      (this || _global).markers = markerParser(animData.markers || []);\n      this.trigger(\"config_ready\");\n      this.preloadImages();\n      this.loadSegments();\n      this.updaFrameModifier();\n      this.waitForFontsLoaded();\n\n      if ((this || _global).isPaused) {\n        (this || _global).audioController.pause();\n      }\n    } catch (error) {\n      this.triggerConfigError(error);\n    }\n  };\n\n  AnimationItem.prototype.waitForFontsLoaded = function () {\n    if (!(this || _global).renderer) {\n      return;\n    }\n\n    if ((this || _global).renderer.globalData.fontManager.isLoaded) {\n      this.checkLoaded();\n    } else {\n      setTimeout((this || _global).waitForFontsLoaded.bind(this || _global), 20);\n    }\n  };\n\n  AnimationItem.prototype.checkLoaded = function () {\n    if (!(this || _global).isLoaded && (this || _global).renderer.globalData.fontManager.isLoaded && ((this || _global).imagePreloader.loadedImages() || (this || _global).renderer.rendererType !== \"canvas\") && (this || _global).imagePreloader.loadedFootages()) {\n      (this || _global).isLoaded = true;\n      dataManager.completeData((this || _global).animationData, (this || _global).renderer.globalData.fontManager);\n\n      if (expressionsPlugin) {\n        expressionsPlugin.initExpressions(this || _global);\n      }\n\n      (this || _global).renderer.initItems();\n\n      setTimeout(function () {\n        this.trigger(\"DOMLoaded\");\n      }.bind(this || _global), 0);\n      this.gotoFrame();\n\n      if ((this || _global).autoplay) {\n        this.play();\n      }\n    }\n  };\n\n  AnimationItem.prototype.resize = function () {\n    (this || _global).renderer.updateContainerSize();\n  };\n\n  AnimationItem.prototype.setSubframe = function (flag) {\n    (this || _global).isSubframeEnabled = !!flag;\n  };\n\n  AnimationItem.prototype.gotoFrame = function () {\n    (this || _global).currentFrame = (this || _global).isSubframeEnabled ? (this || _global).currentRawFrame : ~~(this || _global).currentRawFrame; // eslint-disable-line no-bitwise\n\n    if ((this || _global).timeCompleted !== (this || _global).totalFrames && (this || _global).currentFrame > (this || _global).timeCompleted) {\n      (this || _global).currentFrame = (this || _global).timeCompleted;\n    }\n\n    this.trigger(\"enterFrame\");\n    this.renderFrame();\n  };\n\n  AnimationItem.prototype.renderFrame = function () {\n    if ((this || _global).isLoaded === false || !(this || _global).renderer) {\n      return;\n    }\n\n    try {\n      (this || _global).renderer.renderFrame((this || _global).currentFrame + (this || _global).firstFrame);\n    } catch (error) {\n      this.triggerRenderFrameError(error);\n    }\n  };\n\n  AnimationItem.prototype.play = function (name) {\n    if (name && (this || _global).name !== name) {\n      return;\n    }\n\n    if ((this || _global).isPaused === true) {\n      (this || _global).isPaused = false;\n\n      (this || _global).audioController.resume();\n\n      if ((this || _global)._idle) {\n        (this || _global)._idle = false;\n        this.trigger(\"_active\");\n      }\n    }\n  };\n\n  AnimationItem.prototype.pause = function (name) {\n    if (name && (this || _global).name !== name) {\n      return;\n    }\n\n    if ((this || _global).isPaused === false) {\n      (this || _global).isPaused = true;\n      (this || _global)._idle = true;\n      this.trigger(\"_idle\");\n\n      (this || _global).audioController.pause();\n    }\n  };\n\n  AnimationItem.prototype.togglePause = function (name) {\n    if (name && (this || _global).name !== name) {\n      return;\n    }\n\n    if ((this || _global).isPaused === true) {\n      this.play();\n    } else {\n      this.pause();\n    }\n  };\n\n  AnimationItem.prototype.stop = function (name) {\n    if (name && (this || _global).name !== name) {\n      return;\n    }\n\n    this.pause();\n    (this || _global).playCount = 0;\n    (this || _global)._completedLoop = false;\n    this.setCurrentRawFrameValue(0);\n  };\n\n  AnimationItem.prototype.getMarkerData = function (markerName) {\n    var marker;\n\n    for (var i = 0; i < (this || _global).markers.length; i += 1) {\n      marker = (this || _global).markers[i];\n\n      if (marker.payload && marker.payload.name === markerName) {\n        return marker;\n      }\n    }\n\n    return null;\n  };\n\n  AnimationItem.prototype.goToAndStop = function (value, isFrame, name) {\n    if (name && (this || _global).name !== name) {\n      return;\n    }\n\n    var numValue = Number(value);\n\n    if (isNaN(numValue)) {\n      var marker = this.getMarkerData(value);\n\n      if (marker) {\n        this.goToAndStop(marker.time, true);\n      }\n    } else if (isFrame) {\n      this.setCurrentRawFrameValue(value);\n    } else {\n      this.setCurrentRawFrameValue(value * (this || _global).frameModifier);\n    }\n\n    this.pause();\n  };\n\n  AnimationItem.prototype.goToAndPlay = function (value, isFrame, name) {\n    if (name && (this || _global).name !== name) {\n      return;\n    }\n\n    var numValue = Number(value);\n\n    if (isNaN(numValue)) {\n      var marker = this.getMarkerData(value);\n\n      if (marker) {\n        if (!marker.duration) {\n          this.goToAndStop(marker.time, true);\n        } else {\n          this.playSegments([marker.time, marker.time + marker.duration], true);\n        }\n      }\n    } else {\n      this.goToAndStop(numValue, isFrame, name);\n    }\n\n    this.play();\n  };\n\n  AnimationItem.prototype.advanceTime = function (value) {\n    if ((this || _global).isPaused === true || (this || _global).isLoaded === false) {\n      return;\n    }\n\n    var nextValue = (this || _global).currentRawFrame + value * (this || _global).frameModifier;\n    var _isComplete = false; // Checking if nextValue > totalFrames - 1 for addressing non looping and looping animations.\n    // If animation won't loop, it should stop at totalFrames - 1. If it will loop it should complete the last frame and then loop.\n\n    if (nextValue >= (this || _global).totalFrames - 1 && (this || _global).frameModifier > 0) {\n      if (!(this || _global).loop || (this || _global).playCount === (this || _global).loop) {\n        if (!this.checkSegments(nextValue > (this || _global).totalFrames ? nextValue % (this || _global).totalFrames : 0)) {\n          _isComplete = true;\n          nextValue = (this || _global).totalFrames - 1;\n        }\n      } else if (nextValue >= (this || _global).totalFrames) {\n        (this || _global).playCount += 1;\n\n        if (!this.checkSegments(nextValue % (this || _global).totalFrames)) {\n          this.setCurrentRawFrameValue(nextValue % (this || _global).totalFrames);\n          (this || _global)._completedLoop = true;\n          this.trigger(\"loopComplete\");\n        }\n      } else {\n        this.setCurrentRawFrameValue(nextValue);\n      }\n    } else if (nextValue < 0) {\n      if (!this.checkSegments(nextValue % (this || _global).totalFrames)) {\n        if ((this || _global).loop && !((this || _global).playCount-- <= 0 && (this || _global).loop !== true)) {\n          // eslint-disable-line no-plusplus\n          this.setCurrentRawFrameValue((this || _global).totalFrames + nextValue % (this || _global).totalFrames);\n\n          if (!(this || _global)._completedLoop) {\n            (this || _global)._completedLoop = true;\n          } else {\n            this.trigger(\"loopComplete\");\n          }\n        } else {\n          _isComplete = true;\n          nextValue = 0;\n        }\n      }\n    } else {\n      this.setCurrentRawFrameValue(nextValue);\n    }\n\n    if (_isComplete) {\n      this.setCurrentRawFrameValue(nextValue);\n      this.pause();\n      this.trigger(\"complete\");\n    }\n  };\n\n  AnimationItem.prototype.adjustSegment = function (arr, offset) {\n    (this || _global).playCount = 0;\n\n    if (arr[1] < arr[0]) {\n      if ((this || _global).frameModifier > 0) {\n        if ((this || _global).playSpeed < 0) {\n          this.setSpeed(-(this || _global).playSpeed);\n        } else {\n          this.setDirection(-1);\n        }\n      }\n\n      (this || _global).totalFrames = arr[0] - arr[1];\n      (this || _global).timeCompleted = (this || _global).totalFrames;\n      (this || _global).firstFrame = arr[1];\n      this.setCurrentRawFrameValue((this || _global).totalFrames - 0.001 - offset);\n    } else if (arr[1] > arr[0]) {\n      if ((this || _global).frameModifier < 0) {\n        if ((this || _global).playSpeed < 0) {\n          this.setSpeed(-(this || _global).playSpeed);\n        } else {\n          this.setDirection(1);\n        }\n      }\n\n      (this || _global).totalFrames = arr[1] - arr[0];\n      (this || _global).timeCompleted = (this || _global).totalFrames;\n      (this || _global).firstFrame = arr[0];\n      this.setCurrentRawFrameValue(0.001 + offset);\n    }\n\n    this.trigger(\"segmentStart\");\n  };\n\n  AnimationItem.prototype.setSegment = function (init, end) {\n    var pendingFrame = -1;\n\n    if ((this || _global).isPaused) {\n      if ((this || _global).currentRawFrame + (this || _global).firstFrame < init) {\n        pendingFrame = init;\n      } else if ((this || _global).currentRawFrame + (this || _global).firstFrame > end) {\n        pendingFrame = end - init;\n      }\n    }\n\n    (this || _global).firstFrame = init;\n    (this || _global).totalFrames = end - init;\n    (this || _global).timeCompleted = (this || _global).totalFrames;\n\n    if (pendingFrame !== -1) {\n      this.goToAndStop(pendingFrame, true);\n    }\n  };\n\n  AnimationItem.prototype.playSegments = function (arr, forceFlag) {\n    if (forceFlag) {\n      (this || _global).segments.length = 0;\n    }\n\n    if (typeof arr[0] === \"object\") {\n      var i;\n      var len = arr.length;\n\n      for (i = 0; i < len; i += 1) {\n        (this || _global).segments.push(arr[i]);\n      }\n    } else {\n      (this || _global).segments.push(arr);\n    }\n\n    if ((this || _global).segments.length && forceFlag) {\n      this.adjustSegment((this || _global).segments.shift(), 0);\n    }\n\n    if ((this || _global).isPaused) {\n      this.play();\n    }\n  };\n\n  AnimationItem.prototype.resetSegments = function (forceFlag) {\n    (this || _global).segments.length = 0;\n\n    (this || _global).segments.push([(this || _global).animationData.ip, (this || _global).animationData.op]); // this.segments.push([this.animationData.ip*this.frameRate,Math.floor(this.animationData.op - this.animationData.ip+this.animationData.ip*this.frameRate)]);\n\n\n    if (forceFlag) {\n      this.checkSegments(0);\n    }\n  };\n\n  AnimationItem.prototype.checkSegments = function (offset) {\n    if ((this || _global).segments.length) {\n      this.adjustSegment((this || _global).segments.shift(), offset);\n      return true;\n    }\n\n    return false;\n  };\n\n  AnimationItem.prototype.destroy = function (name) {\n    if (name && (this || _global).name !== name || !(this || _global).renderer) {\n      return;\n    }\n\n    (this || _global).renderer.destroy();\n\n    (this || _global).imagePreloader.destroy();\n\n    this.trigger(\"destroy\");\n    (this || _global)._cbs = null;\n    (this || _global).onEnterFrame = null;\n    (this || _global).onLoopComplete = null;\n    (this || _global).onComplete = null;\n    (this || _global).onSegmentStart = null;\n    (this || _global).onDestroy = null;\n    (this || _global).renderer = null;\n    (this || _global).renderer = null;\n    (this || _global).imagePreloader = null;\n    (this || _global).projectInterface = null;\n  };\n\n  AnimationItem.prototype.setCurrentRawFrameValue = function (value) {\n    (this || _global).currentRawFrame = value;\n    this.gotoFrame();\n  };\n\n  AnimationItem.prototype.setSpeed = function (val) {\n    (this || _global).playSpeed = val;\n    this.updaFrameModifier();\n  };\n\n  AnimationItem.prototype.setDirection = function (val) {\n    (this || _global).playDirection = val < 0 ? -1 : 1;\n    this.updaFrameModifier();\n  };\n\n  AnimationItem.prototype.setVolume = function (val, name) {\n    if (name && (this || _global).name !== name) {\n      return;\n    }\n\n    (this || _global).audioController.setVolume(val);\n  };\n\n  AnimationItem.prototype.getVolume = function () {\n    return (this || _global).audioController.getVolume();\n  };\n\n  AnimationItem.prototype.mute = function (name) {\n    if (name && (this || _global).name !== name) {\n      return;\n    }\n\n    (this || _global).audioController.mute();\n  };\n\n  AnimationItem.prototype.unmute = function (name) {\n    if (name && (this || _global).name !== name) {\n      return;\n    }\n\n    (this || _global).audioController.unmute();\n  };\n\n  AnimationItem.prototype.updaFrameModifier = function () {\n    (this || _global).frameModifier = (this || _global).frameMult * (this || _global).playSpeed * (this || _global).playDirection;\n\n    (this || _global).audioController.setRate((this || _global).playSpeed * (this || _global).playDirection);\n  };\n\n  AnimationItem.prototype.getPath = function () {\n    return (this || _global).path;\n  };\n\n  AnimationItem.prototype.getAssetsPath = function (assetData) {\n    var path = \"\";\n\n    if (assetData.e) {\n      path = assetData.p;\n    } else if ((this || _global).assetsPath) {\n      var imagePath = assetData.p;\n\n      if (imagePath.indexOf(\"images/\") !== -1) {\n        imagePath = imagePath.split(\"/\")[1];\n      }\n\n      path = (this || _global).assetsPath + imagePath;\n    } else {\n      path = (this || _global).path;\n      path += assetData.u ? assetData.u : \"\";\n      path += assetData.p;\n    }\n\n    return path;\n  };\n\n  AnimationItem.prototype.getAssetData = function (id) {\n    var i = 0;\n    var len = (this || _global).assets.length;\n\n    while (i < len) {\n      if (id === (this || _global).assets[i].id) {\n        return (this || _global).assets[i];\n      }\n\n      i += 1;\n    }\n\n    return null;\n  };\n\n  AnimationItem.prototype.hide = function () {\n    (this || _global).renderer.hide();\n  };\n\n  AnimationItem.prototype.show = function () {\n    (this || _global).renderer.show();\n  };\n\n  AnimationItem.prototype.getDuration = function (isFrame) {\n    return isFrame ? (this || _global).totalFrames : (this || _global).totalFrames / (this || _global).frameRate;\n  };\n\n  AnimationItem.prototype.trigger = function (name) {\n    if ((this || _global)._cbs && (this || _global)._cbs[name]) {\n      switch (name) {\n        case \"enterFrame\":\n          this.triggerEvent(name, new BMEnterFrameEvent(name, (this || _global).currentFrame, (this || _global).totalFrames, (this || _global).frameModifier));\n          break;\n\n        case \"loopComplete\":\n          this.triggerEvent(name, new BMCompleteLoopEvent(name, (this || _global).loop, (this || _global).playCount, (this || _global).frameMult));\n          break;\n\n        case \"complete\":\n          this.triggerEvent(name, new BMCompleteEvent(name, (this || _global).frameMult));\n          break;\n\n        case \"segmentStart\":\n          this.triggerEvent(name, new BMSegmentStartEvent(name, (this || _global).firstFrame, (this || _global).totalFrames));\n          break;\n\n        case \"destroy\":\n          this.triggerEvent(name, new BMDestroyEvent(name, this || _global));\n          break;\n\n        default:\n          this.triggerEvent(name);\n      }\n    }\n\n    if (name === \"enterFrame\" && (this || _global).onEnterFrame) {\n      (this || _global).onEnterFrame.call(this || _global, new BMEnterFrameEvent(name, (this || _global).currentFrame, (this || _global).totalFrames, (this || _global).frameMult));\n    }\n\n    if (name === \"loopComplete\" && (this || _global).onLoopComplete) {\n      (this || _global).onLoopComplete.call(this || _global, new BMCompleteLoopEvent(name, (this || _global).loop, (this || _global).playCount, (this || _global).frameMult));\n    }\n\n    if (name === \"complete\" && (this || _global).onComplete) {\n      (this || _global).onComplete.call(this || _global, new BMCompleteEvent(name, (this || _global).frameMult));\n    }\n\n    if (name === \"segmentStart\" && (this || _global).onSegmentStart) {\n      (this || _global).onSegmentStart.call(this || _global, new BMSegmentStartEvent(name, (this || _global).firstFrame, (this || _global).totalFrames));\n    }\n\n    if (name === \"destroy\" && (this || _global).onDestroy) {\n      (this || _global).onDestroy.call(this || _global, new BMDestroyEvent(name, this || _global));\n    }\n  };\n\n  AnimationItem.prototype.triggerRenderFrameError = function (nativeError) {\n    var error = new BMRenderFrameErrorEvent(nativeError, (this || _global).currentFrame);\n    this.triggerEvent(\"error\", error);\n\n    if ((this || _global).onError) {\n      (this || _global).onError.call(this || _global, error);\n    }\n  };\n\n  AnimationItem.prototype.triggerConfigError = function (nativeError) {\n    var error = new BMConfigErrorEvent(nativeError, (this || _global).currentFrame);\n    this.triggerEvent(\"error\", error);\n\n    if ((this || _global).onError) {\n      (this || _global).onError.call(this || _global, error);\n    }\n  };\n  /* global CompExpressionInterface, expressionsPlugin: writable */\n\n  /* exported expressionsPlugin */\n\n\n  var Expressions = function () {\n    var ob = {};\n    ob.initExpressions = initExpressions;\n\n    function initExpressions(animation) {\n      var stackCount = 0;\n      var registers = [];\n\n      function pushExpression() {\n        stackCount += 1;\n      }\n\n      function popExpression() {\n        stackCount -= 1;\n\n        if (stackCount === 0) {\n          releaseInstances();\n        }\n      }\n\n      function registerExpressionProperty(expression) {\n        if (registers.indexOf(expression) === -1) {\n          registers.push(expression);\n        }\n      }\n\n      function releaseInstances() {\n        var i;\n        var len = registers.length;\n\n        for (i = 0; i < len; i += 1) {\n          registers[i].release();\n        }\n\n        registers.length = 0;\n      }\n\n      animation.renderer.compInterface = CompExpressionInterface(animation.renderer);\n      animation.renderer.globalData.projectInterface.registerComposition(animation.renderer);\n      animation.renderer.globalData.pushExpression = pushExpression;\n      animation.renderer.globalData.popExpression = popExpression;\n      animation.renderer.globalData.registerExpressionProperty = registerExpressionProperty;\n    }\n\n    return ob;\n  }();\n\n  expressionsPlugin = Expressions;\n  /* eslint-disable camelcase, no-unused-vars */\n\n  /* global BMMath, BezierFactory, createTypedArray, degToRads, shapePool */\n\n  var ExpressionManager = function () {\n    'use strict';\n\n    var ob = {};\n    var Math = BMMath;\n    var window = null;\n    var document = null;\n\n    function $bm_isInstanceOfArray(arr) {\n      return arr.constructor === Array || arr.constructor === Float32Array;\n    }\n\n    function isNumerable(tOfV, v) {\n      return tOfV === \"number\" || tOfV === \"boolean\" || tOfV === \"string\" || v instanceof Number;\n    }\n\n    function $bm_neg(a) {\n      var tOfA = typeof a;\n\n      if (tOfA === \"number\" || tOfA === \"boolean\" || a instanceof Number) {\n        return -a;\n      }\n\n      if ($bm_isInstanceOfArray(a)) {\n        var i;\n        var lenA = a.length;\n        var retArr = [];\n\n        for (i = 0; i < lenA; i += 1) {\n          retArr[i] = -a[i];\n        }\n\n        return retArr;\n      }\n\n      if (a.propType) {\n        return a.v;\n      }\n\n      return -a;\n    }\n\n    var easeInBez = BezierFactory.getBezierEasing(0.333, 0, 0.833, 0.833, \"easeIn\").get;\n    var easeOutBez = BezierFactory.getBezierEasing(0.167, 0.167, 0.667, 1, \"easeOut\").get;\n    var easeInOutBez = BezierFactory.getBezierEasing(0.33, 0, 0.667, 1, \"easeInOut\").get;\n\n    function sum(a, b) {\n      var tOfA = typeof a;\n      var tOfB = typeof b;\n\n      if (tOfA === \"string\" || tOfB === \"string\") {\n        return a + b;\n      }\n\n      if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n        return a + b;\n      }\n\n      if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n        a = a.slice(0);\n        a[0] += b;\n        return a;\n      }\n\n      if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n        b = b.slice(0);\n        b[0] = a + b[0];\n        return b;\n      }\n\n      if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\n        var i = 0;\n        var lenA = a.length;\n        var lenB = b.length;\n        var retArr = [];\n\n        while (i < lenA || i < lenB) {\n          if ((typeof a[i] === \"number\" || a[i] instanceof Number) && (typeof b[i] === \"number\" || b[i] instanceof Number)) {\n            retArr[i] = a[i] + b[i];\n          } else {\n            retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\n          }\n\n          i += 1;\n        }\n\n        return retArr;\n      }\n\n      return 0;\n    }\n\n    var add = sum;\n\n    function sub(a, b) {\n      var tOfA = typeof a;\n      var tOfB = typeof b;\n\n      if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n        if (tOfA === \"string\") {\n          a = parseInt(a, 10);\n        }\n\n        if (tOfB === \"string\") {\n          b = parseInt(b, 10);\n        }\n\n        return a - b;\n      }\n\n      if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n        a = a.slice(0);\n        a[0] -= b;\n        return a;\n      }\n\n      if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n        b = b.slice(0);\n        b[0] = a - b[0];\n        return b;\n      }\n\n      if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\n        var i = 0;\n        var lenA = a.length;\n        var lenB = b.length;\n        var retArr = [];\n\n        while (i < lenA || i < lenB) {\n          if ((typeof a[i] === \"number\" || a[i] instanceof Number) && (typeof b[i] === \"number\" || b[i] instanceof Number)) {\n            retArr[i] = a[i] - b[i];\n          } else {\n            retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\n          }\n\n          i += 1;\n        }\n\n        return retArr;\n      }\n\n      return 0;\n    }\n\n    function mul(a, b) {\n      var tOfA = typeof a;\n      var tOfB = typeof b;\n      var arr;\n\n      if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n        return a * b;\n      }\n\n      var i;\n      var len;\n\n      if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n        len = a.length;\n        arr = createTypedArray(\"float32\", len);\n\n        for (i = 0; i < len; i += 1) {\n          arr[i] = a[i] * b;\n        }\n\n        return arr;\n      }\n\n      if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n        len = b.length;\n        arr = createTypedArray(\"float32\", len);\n\n        for (i = 0; i < len; i += 1) {\n          arr[i] = a * b[i];\n        }\n\n        return arr;\n      }\n\n      return 0;\n    }\n\n    function div(a, b) {\n      var tOfA = typeof a;\n      var tOfB = typeof b;\n      var arr;\n\n      if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n        return a / b;\n      }\n\n      var i;\n      var len;\n\n      if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n        len = a.length;\n        arr = createTypedArray(\"float32\", len);\n\n        for (i = 0; i < len; i += 1) {\n          arr[i] = a[i] / b;\n        }\n\n        return arr;\n      }\n\n      if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n        len = b.length;\n        arr = createTypedArray(\"float32\", len);\n\n        for (i = 0; i < len; i += 1) {\n          arr[i] = a / b[i];\n        }\n\n        return arr;\n      }\n\n      return 0;\n    }\n\n    function mod(a, b) {\n      if (typeof a === \"string\") {\n        a = parseInt(a, 10);\n      }\n\n      if (typeof b === \"string\") {\n        b = parseInt(b, 10);\n      }\n\n      return a % b;\n    }\n\n    var $bm_sum = sum;\n    var $bm_sub = sub;\n    var $bm_mul = mul;\n    var $bm_div = div;\n    var $bm_mod = mod;\n\n    function clamp(num, min, max) {\n      if (min > max) {\n        var mm = max;\n        max = min;\n        min = mm;\n      }\n\n      return Math.min(Math.max(num, min), max);\n    }\n\n    function radiansToDegrees(val) {\n      return val / degToRads;\n    }\n\n    var radians_to_degrees = radiansToDegrees;\n\n    function degreesToRadians(val) {\n      return val * degToRads;\n    }\n\n    var degrees_to_radians = radiansToDegrees;\n    var helperLengthArray = [0, 0, 0, 0, 0, 0];\n\n    function length(arr1, arr2) {\n      if (typeof arr1 === \"number\" || arr1 instanceof Number) {\n        arr2 = arr2 || 0;\n        return Math.abs(arr1 - arr2);\n      }\n\n      if (!arr2) {\n        arr2 = helperLengthArray;\n      }\n\n      var i;\n      var len = Math.min(arr1.length, arr2.length);\n      var addedLength = 0;\n\n      for (i = 0; i < len; i += 1) {\n        addedLength += Math.pow(arr2[i] - arr1[i], 2);\n      }\n\n      return Math.sqrt(addedLength);\n    }\n\n    function normalize(vec) {\n      return div(vec, length(vec));\n    }\n\n    function rgbToHsl(val) {\n      var r = val[0];\n      var g = val[1];\n      var b = val[2];\n      var max = Math.max(r, g, b);\n      var min = Math.min(r, g, b);\n      var h;\n      var s;\n      var l = (max + min) / 2;\n\n      if (max === min) {\n        h = 0; // achromatic\n\n        s = 0; // achromatic\n      } else {\n        var d = max - min;\n        s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\n        switch (max) {\n          case r:\n            h = (g - b) / d + (g < b ? 6 : 0);\n            break;\n\n          case g:\n            h = (b - r) / d + 2;\n            break;\n\n          case b:\n            h = (r - g) / d + 4;\n            break;\n\n          default:\n            break;\n        }\n\n        h /= 6;\n      }\n\n      return [h, s, l, val[3]];\n    }\n\n    function hue2rgb(p, q, t) {\n      if (t < 0) t += 1;\n      if (t > 1) t -= 1;\n      if (t < 1 / 6) return p + (q - p) * 6 * t;\n      if (t < 1 / 2) return q;\n      if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n      return p;\n    }\n\n    function hslToRgb(val) {\n      var h = val[0];\n      var s = val[1];\n      var l = val[2];\n      var r;\n      var g;\n      var b;\n\n      if (s === 0) {\n        r = l; // achromatic\n\n        b = l; // achromatic\n\n        g = l; // achromatic\n      } else {\n        var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n        var p = 2 * l - q;\n        r = hue2rgb(p, q, h + 1 / 3);\n        g = hue2rgb(p, q, h);\n        b = hue2rgb(p, q, h - 1 / 3);\n      }\n\n      return [r, g, b, val[3]];\n    }\n\n    function linear(t, tMin, tMax, value1, value2) {\n      if (value1 === undefined || value2 === undefined) {\n        value1 = tMin;\n        value2 = tMax;\n        tMin = 0;\n        tMax = 1;\n      }\n\n      if (tMax < tMin) {\n        var _tMin = tMax;\n        tMax = tMin;\n        tMin = _tMin;\n      }\n\n      if (t <= tMin) {\n        return value1;\n      }\n\n      if (t >= tMax) {\n        return value2;\n      }\n\n      var perc = tMax === tMin ? 0 : (t - tMin) / (tMax - tMin);\n\n      if (!value1.length) {\n        return value1 + (value2 - value1) * perc;\n      }\n\n      var i;\n      var len = value1.length;\n      var arr = createTypedArray(\"float32\", len);\n\n      for (i = 0; i < len; i += 1) {\n        arr[i] = value1[i] + (value2[i] - value1[i]) * perc;\n      }\n\n      return arr;\n    }\n\n    function random(min, max) {\n      if (max === undefined) {\n        if (min === undefined) {\n          min = 0;\n          max = 1;\n        } else {\n          max = min;\n          min = undefined;\n        }\n      }\n\n      if (max.length) {\n        var i;\n        var len = max.length;\n\n        if (!min) {\n          min = createTypedArray(\"float32\", len);\n        }\n\n        var arr = createTypedArray(\"float32\", len);\n        var rnd = BMMath.random();\n\n        for (i = 0; i < len; i += 1) {\n          arr[i] = min[i] + rnd * (max[i] - min[i]);\n        }\n\n        return arr;\n      }\n\n      if (min === undefined) {\n        min = 0;\n      }\n\n      var rndm = BMMath.random();\n      return min + rndm * (max - min);\n    }\n\n    function createPath(points, inTangents, outTangents, closed) {\n      var i;\n      var len = points.length;\n      var path = shapePool.newElement();\n      path.setPathData(!!closed, len);\n      var arrPlaceholder = [0, 0];\n      var inVertexPoint;\n      var outVertexPoint;\n\n      for (i = 0; i < len; i += 1) {\n        inVertexPoint = inTangents && inTangents[i] ? inTangents[i] : arrPlaceholder;\n        outVertexPoint = outTangents && outTangents[i] ? outTangents[i] : arrPlaceholder;\n        path.setTripleAt(points[i][0], points[i][1], outVertexPoint[0] + points[i][0], outVertexPoint[1] + points[i][1], inVertexPoint[0] + points[i][0], inVertexPoint[1] + points[i][1], i, true);\n      }\n\n      return path;\n    }\n\n    function initiateExpression(elem, data, property) {\n      var val = data.x;\n      var needsVelocity = /velocity(?![\\w\\d])/.test(val);\n\n      var _needsRandom = val.indexOf(\"random\") !== -1;\n\n      var elemType = elem.data.ty;\n      var transform;\n      var $bm_transform;\n      var content;\n      var effect;\n      var thisProperty = property;\n      thisProperty.valueAtTime = thisProperty.getValueAtTime;\n      Object.defineProperty(thisProperty, \"value\", {\n        get: function () {\n          return thisProperty.v;\n        }\n      });\n      elem.comp.frameDuration = 1 / elem.comp.globalData.frameRate;\n      elem.comp.displayStartTime = 0;\n      var inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n      var outPoint = elem.data.op / elem.comp.globalData.frameRate;\n      var width = elem.data.sw ? elem.data.sw : 0;\n      var height = elem.data.sh ? elem.data.sh : 0;\n      var name = elem.data.nm;\n      var loopIn;\n      var loop_in;\n      var loopOut;\n      var loop_out;\n      var smooth;\n      var toWorld;\n      var fromWorld;\n      var fromComp;\n      var toComp;\n      var fromCompToSurface;\n      var position;\n      var rotation;\n      var anchorPoint;\n      var scale;\n      var thisLayer;\n      var thisComp;\n      var mask;\n      var valueAtTime;\n      var velocityAtTime;\n      var scoped_bm_rt;\n      var expression_function = eval(\"[function _expression_function(){\" + val + \";scoped_bm_rt=$bm_rt}]\")[0]; // eslint-disable-line no-eval\n\n      var numKeys = property.kf ? data.k.length : 0;\n      var active = !(this || _global).data || (this || _global).data.hd !== true;\n\n      var wiggle = function wiggle(freq, amp) {\n        var iWiggle;\n        var j;\n        var lenWiggle = (this || _global).pv.length ? (this || _global).pv.length : 1;\n        var addedAmps = createTypedArray(\"float32\", lenWiggle);\n        freq = 5;\n        var iterations = Math.floor(time * freq);\n        iWiggle = 0;\n        j = 0;\n\n        while (iWiggle < iterations) {\n          // var rnd = BMMath.random();\n          for (j = 0; j < lenWiggle; j += 1) {\n            addedAmps[j] += -amp + amp * 2 * BMMath.random(); // addedAmps[j] += -amp + amp*2*rnd;\n          }\n\n          iWiggle += 1;\n        } // var rnd2 = BMMath.random();\n\n\n        var periods = time * freq;\n        var perc = periods - Math.floor(periods);\n        var arr = createTypedArray(\"float32\", lenWiggle);\n\n        if (lenWiggle > 1) {\n          for (j = 0; j < lenWiggle; j += 1) {\n            arr[j] = (this || _global).pv[j] + addedAmps[j] + (-amp + amp * 2 * BMMath.random()) * perc; // arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp*2*rnd)*perc;\n            // arr[i] = this.pv[i] + addedAmp + amp1*perc + amp2*(1-perc);\n          }\n\n          return arr;\n        }\n\n        return (this || _global).pv + addedAmps[0] + (-amp + amp * 2 * BMMath.random()) * perc;\n      }.bind(this || _global);\n\n      if (thisProperty.loopIn) {\n        loopIn = thisProperty.loopIn.bind(thisProperty);\n        loop_in = loopIn;\n      }\n\n      if (thisProperty.loopOut) {\n        loopOut = thisProperty.loopOut.bind(thisProperty);\n        loop_out = loopOut;\n      }\n\n      if (thisProperty.smooth) {\n        smooth = thisProperty.smooth.bind(thisProperty);\n      }\n\n      function loopInDuration(type, duration) {\n        return loopIn(type, duration, true);\n      }\n\n      function loopOutDuration(type, duration) {\n        return loopOut(type, duration, true);\n      }\n\n      if ((this || _global).getValueAtTime) {\n        valueAtTime = (this || _global).getValueAtTime.bind(this || _global);\n      }\n\n      if ((this || _global).getVelocityAtTime) {\n        velocityAtTime = (this || _global).getVelocityAtTime.bind(this || _global);\n      }\n\n      var comp = elem.comp.globalData.projectInterface.bind(elem.comp.globalData.projectInterface);\n\n      function lookAt(elem1, elem2) {\n        var fVec = [elem2[0] - elem1[0], elem2[1] - elem1[1], elem2[2] - elem1[2]];\n        var pitch = Math.atan2(fVec[0], Math.sqrt(fVec[1] * fVec[1] + fVec[2] * fVec[2])) / degToRads;\n        var yaw = -Math.atan2(fVec[1], fVec[2]) / degToRads;\n        return [yaw, pitch, 0];\n      }\n\n      function easeOut(t, tMin, tMax, val1, val2) {\n        return applyEase(easeOutBez, t, tMin, tMax, val1, val2);\n      }\n\n      function easeIn(t, tMin, tMax, val1, val2) {\n        return applyEase(easeInBez, t, tMin, tMax, val1, val2);\n      }\n\n      function ease(t, tMin, tMax, val1, val2) {\n        return applyEase(easeInOutBez, t, tMin, tMax, val1, val2);\n      }\n\n      function applyEase(fn, t, tMin, tMax, val1, val2) {\n        if (val1 === undefined) {\n          val1 = tMin;\n          val2 = tMax;\n        } else {\n          t = (t - tMin) / (tMax - tMin);\n        }\n\n        if (t > 1) {\n          t = 1;\n        } else if (t < 0) {\n          t = 0;\n        }\n\n        var mult = fn(t);\n\n        if ($bm_isInstanceOfArray(val1)) {\n          var iKey;\n          var lenKey = val1.length;\n          var arr = createTypedArray(\"float32\", lenKey);\n\n          for (iKey = 0; iKey < lenKey; iKey += 1) {\n            arr[iKey] = (val2[iKey] - val1[iKey]) * mult + val1[iKey];\n          }\n\n          return arr;\n        }\n\n        return (val2 - val1) * mult + val1;\n      }\n\n      function nearestKey(time) {\n        var iKey;\n        var lenKey = data.k.length;\n        var index;\n        var keyTime;\n\n        if (!data.k.length || typeof data.k[0] === \"number\") {\n          index = 0;\n          keyTime = 0;\n        } else {\n          index = -1;\n          time *= elem.comp.globalData.frameRate;\n\n          if (time < data.k[0].t) {\n            index = 1;\n            keyTime = data.k[0].t;\n          } else {\n            for (iKey = 0; iKey < lenKey - 1; iKey += 1) {\n              if (time === data.k[iKey].t) {\n                index = iKey + 1;\n                keyTime = data.k[iKey].t;\n                break;\n              } else if (time > data.k[iKey].t && time < data.k[iKey + 1].t) {\n                if (time - data.k[iKey].t > data.k[iKey + 1].t - time) {\n                  index = iKey + 2;\n                  keyTime = data.k[iKey + 1].t;\n                } else {\n                  index = iKey + 1;\n                  keyTime = data.k[iKey].t;\n                }\n\n                break;\n              }\n            }\n\n            if (index === -1) {\n              index = iKey + 1;\n              keyTime = data.k[iKey].t;\n            }\n          }\n        }\n\n        var obKey = {};\n        obKey.index = index;\n        obKey.time = keyTime / elem.comp.globalData.frameRate;\n        return obKey;\n      }\n\n      function key(ind) {\n        var obKey;\n        var iKey;\n        var lenKey;\n\n        if (!data.k.length || typeof data.k[0] === \"number\") {\n          throw new Error(\"The property has no keyframe at index \" + ind);\n        }\n\n        ind -= 1;\n        obKey = {\n          time: data.k[ind].t / elem.comp.globalData.frameRate,\n          value: []\n        };\n        var arr = Object.prototype.hasOwnProperty.call(data.k[ind], \"s\") ? data.k[ind].s : data.k[ind - 1].e;\n        lenKey = arr.length;\n\n        for (iKey = 0; iKey < lenKey; iKey += 1) {\n          obKey[iKey] = arr[iKey];\n          obKey.value[iKey] = arr[iKey];\n        }\n\n        return obKey;\n      }\n\n      function framesToTime(frames, fps) {\n        if (!fps) {\n          fps = elem.comp.globalData.frameRate;\n        }\n\n        return frames / fps;\n      }\n\n      function timeToFrames(t, fps) {\n        if (!t && t !== 0) {\n          t = time;\n        }\n\n        if (!fps) {\n          fps = elem.comp.globalData.frameRate;\n        }\n\n        return t * fps;\n      }\n\n      function seedRandom(seed) {\n        BMMath.seedrandom(randSeed + seed);\n      }\n\n      function sourceRectAtTime() {\n        return elem.sourceRectAtTime();\n      }\n\n      function substring(init, end) {\n        if (typeof value === \"string\") {\n          if (end === undefined) {\n            return value.substring(init);\n          }\n\n          return value.substring(init, end);\n        }\n\n        return \"\";\n      }\n\n      function substr(init, end) {\n        if (typeof value === \"string\") {\n          if (end === undefined) {\n            return value.substr(init);\n          }\n\n          return value.substr(init, end);\n        }\n\n        return \"\";\n      }\n\n      function posterizeTime(framesPerSecond) {\n        time = framesPerSecond === 0 ? 0 : Math.floor(time * framesPerSecond) / framesPerSecond;\n        value = valueAtTime(time);\n      }\n\n      var time;\n      var velocity;\n      var value;\n      var text;\n      var textIndex;\n      var textTotal;\n      var selectorValue;\n      var index = elem.data.ind;\n      var hasParent = !!(elem.hierarchy && elem.hierarchy.length);\n      var parent;\n      var randSeed = Math.floor(Math.random() * 1000000);\n      var globalData = elem.globalData;\n\n      function executeExpression(_value) {\n        // globalData.pushExpression();\n        value = _value;\n\n        if (_needsRandom) {\n          seedRandom(randSeed);\n        }\n\n        if ((this || _global).frameExpressionId === elem.globalData.frameId && (this || _global).propType !== \"textSelector\") {\n          return value;\n        }\n\n        if ((this || _global).propType === \"textSelector\") {\n          textIndex = (this || _global).textIndex;\n          textTotal = (this || _global).textTotal;\n          selectorValue = (this || _global).selectorValue;\n        }\n\n        if (!thisLayer) {\n          text = elem.layerInterface.text;\n          thisLayer = elem.layerInterface;\n          thisComp = elem.comp.compInterface;\n          toWorld = thisLayer.toWorld.bind(thisLayer);\n          fromWorld = thisLayer.fromWorld.bind(thisLayer);\n          fromComp = thisLayer.fromComp.bind(thisLayer);\n          toComp = thisLayer.toComp.bind(thisLayer);\n          mask = thisLayer.mask ? thisLayer.mask.bind(thisLayer) : null;\n          fromCompToSurface = fromComp;\n        }\n\n        if (!transform) {\n          transform = elem.layerInterface(\"ADBE Transform Group\");\n          $bm_transform = transform;\n\n          if (transform) {\n            anchorPoint = transform.anchorPoint;\n            /* position = transform.position;\r\n                      rotation = transform.rotation;\r\n                      scale = transform.scale; */\n          }\n        }\n\n        if (elemType === 4 && !content) {\n          content = thisLayer(\"ADBE Root Vectors Group\");\n        }\n\n        if (!effect) {\n          effect = thisLayer(4);\n        }\n\n        hasParent = !!(elem.hierarchy && elem.hierarchy.length);\n\n        if (hasParent && !parent) {\n          parent = elem.hierarchy[0].layerInterface;\n        }\n\n        time = (this || _global).comp.renderedFrame / (this || _global).comp.globalData.frameRate;\n\n        if (needsVelocity) {\n          velocity = velocityAtTime(time);\n        }\n\n        expression_function();\n        (this || _global).frameExpressionId = elem.globalData.frameId; // TODO: Check if it's possible to return on ShapeInterface the .v value\n\n        if (scoped_bm_rt.propType === \"shape\") {\n          scoped_bm_rt = scoped_bm_rt.v;\n        } // globalData.popExpression();\n\n\n        return scoped_bm_rt;\n      }\n\n      return executeExpression;\n    }\n\n    ob.initiateExpression = initiateExpression;\n    return ob;\n  }();\n  /* global ExpressionManager, createTypedArray */\n\n  /* exported expressionHelpers */\n\n\n  var expressionHelpers = function () {\n    function searchExpressions(elem, data, prop) {\n      if (data.x) {\n        prop.k = true;\n        prop.x = true;\n        prop.initiateExpression = ExpressionManager.initiateExpression;\n        prop.effectsSequence.push(prop.initiateExpression(elem, data, prop).bind(prop));\n      }\n    }\n\n    function getValueAtTime(frameNum) {\n      frameNum *= (this || _global).elem.globalData.frameRate;\n      frameNum -= (this || _global).offsetTime;\n\n      if (frameNum !== (this || _global)._cachingAtTime.lastFrame) {\n        (this || _global)._cachingAtTime.lastIndex = (this || _global)._cachingAtTime.lastFrame < frameNum ? (this || _global)._cachingAtTime.lastIndex : 0;\n        (this || _global)._cachingAtTime.value = this.interpolateValue(frameNum, (this || _global)._cachingAtTime);\n        (this || _global)._cachingAtTime.lastFrame = frameNum;\n      }\n\n      return (this || _global)._cachingAtTime.value;\n    }\n\n    function getSpeedAtTime(frameNum) {\n      var delta = -0.01;\n      var v1 = this.getValueAtTime(frameNum);\n      var v2 = this.getValueAtTime(frameNum + delta);\n      var speed = 0;\n\n      if (v1.length) {\n        var i;\n\n        for (i = 0; i < v1.length; i += 1) {\n          speed += Math.pow(v2[i] - v1[i], 2);\n        }\n\n        speed = Math.sqrt(speed) * 100;\n      } else {\n        speed = 0;\n      }\n\n      return speed;\n    }\n\n    function getVelocityAtTime(frameNum) {\n      if ((this || _global).vel !== undefined) {\n        return (this || _global).vel;\n      }\n\n      var delta = -0.001; // frameNum += this.elem.data.st;\n\n      var v1 = this.getValueAtTime(frameNum);\n      var v2 = this.getValueAtTime(frameNum + delta);\n      var velocity;\n\n      if (v1.length) {\n        velocity = createTypedArray(\"float32\", v1.length);\n        var i;\n\n        for (i = 0; i < v1.length; i += 1) {\n          // removing frameRate\n          // if needed, don't add it here\n          // velocity[i] = this.elem.globalData.frameRate*((v2[i] - v1[i])/delta);\n          velocity[i] = (v2[i] - v1[i]) / delta;\n        }\n      } else {\n        velocity = (v2 - v1) / delta;\n      }\n\n      return velocity;\n    }\n\n    function getStaticValueAtTime() {\n      return (this || _global).pv;\n    }\n\n    function setGroupProperty(propertyGroup) {\n      (this || _global).propertyGroup = propertyGroup;\n    }\n\n    return {\n      searchExpressions: searchExpressions,\n      getSpeedAtTime: getSpeedAtTime,\n      getVelocityAtTime: getVelocityAtTime,\n      getValueAtTime: getValueAtTime,\n      getStaticValueAtTime: getStaticValueAtTime,\n      setGroupProperty: setGroupProperty\n    };\n  }();\n  /* global createTypedArray, Matrix, TransformPropertyFactory, expressionHelpers, PropertyFactory, expressionHelpers,\r\n  initialDefaultFrame, shapePool, ShapePropertyFactory, bez, extendPrototype, ExpressionManager, createSizedArray */\n\n\n  (function addPropertyDecorator() {\n    function loopOut(type, duration, durationFlag) {\n      if (!(this || _global).k || !(this || _global).keyframes) {\n        return (this || _global).pv;\n      }\n\n      type = type ? type.toLowerCase() : \"\";\n      var currentFrame = (this || _global).comp.renderedFrame;\n      var keyframes = (this || _global).keyframes;\n      var lastKeyFrame = keyframes[keyframes.length - 1].t;\n\n      if (currentFrame <= lastKeyFrame) {\n        return (this || _global).pv;\n      }\n\n      var cycleDuration;\n      var firstKeyFrame;\n\n      if (!durationFlag) {\n        if (!duration || duration > keyframes.length - 1) {\n          duration = keyframes.length - 1;\n        }\n\n        firstKeyFrame = keyframes[keyframes.length - 1 - duration].t;\n        cycleDuration = lastKeyFrame - firstKeyFrame;\n      } else {\n        if (!duration) {\n          cycleDuration = Math.max(0, lastKeyFrame - (this || _global).elem.data.ip);\n        } else {\n          cycleDuration = Math.abs(lastKeyFrame - (this || _global).elem.comp.globalData.frameRate * duration);\n        }\n\n        firstKeyFrame = lastKeyFrame - cycleDuration;\n      }\n\n      var i;\n      var len;\n      var ret;\n\n      if (type === \"pingpong\") {\n        var iterations = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\n        if (iterations % 2 !== 0) {\n          return this.getValueAtTime((cycleDuration - (currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / (this || _global).comp.globalData.frameRate, 0); // eslint-disable-line\n        }\n      } else if (type === \"offset\") {\n        var initV = this.getValueAtTime(firstKeyFrame / (this || _global).comp.globalData.frameRate, 0);\n        var endV = this.getValueAtTime(lastKeyFrame / (this || _global).comp.globalData.frameRate, 0);\n        var current = this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / (this || _global).comp.globalData.frameRate, 0); // eslint-disable-line\n\n        var repeats = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\n        if ((this || _global).pv.length) {\n          ret = new Array(initV.length);\n          len = ret.length;\n\n          for (i = 0; i < len; i += 1) {\n            ret[i] = (endV[i] - initV[i]) * repeats + current[i];\n          }\n\n          return ret;\n        }\n\n        return (endV - initV) * repeats + current;\n      } else if (type === \"continue\") {\n        var lastValue = this.getValueAtTime(lastKeyFrame / (this || _global).comp.globalData.frameRate, 0);\n        var nextLastValue = this.getValueAtTime((lastKeyFrame - 0.001) / (this || _global).comp.globalData.frameRate, 0);\n\n        if ((this || _global).pv.length) {\n          ret = new Array(lastValue.length);\n          len = ret.length;\n\n          for (i = 0; i < len; i += 1) {\n            ret[i] = lastValue[i] + (lastValue[i] - nextLastValue[i]) * ((currentFrame - lastKeyFrame) / (this || _global).comp.globalData.frameRate) / 0.0005; // eslint-disable-line\n          }\n\n          return ret;\n        }\n\n        return lastValue + (lastValue - nextLastValue) * ((currentFrame - lastKeyFrame) / 0.001);\n      }\n\n      return this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / (this || _global).comp.globalData.frameRate, 0); // eslint-disable-line\n    }\n\n    function loopIn(type, duration, durationFlag) {\n      if (!(this || _global).k) {\n        return (this || _global).pv;\n      }\n\n      type = type ? type.toLowerCase() : \"\";\n      var currentFrame = (this || _global).comp.renderedFrame;\n      var keyframes = (this || _global).keyframes;\n      var firstKeyFrame = keyframes[0].t;\n\n      if (currentFrame >= firstKeyFrame) {\n        return (this || _global).pv;\n      }\n\n      var cycleDuration;\n      var lastKeyFrame;\n\n      if (!durationFlag) {\n        if (!duration || duration > keyframes.length - 1) {\n          duration = keyframes.length - 1;\n        }\n\n        lastKeyFrame = keyframes[duration].t;\n        cycleDuration = lastKeyFrame - firstKeyFrame;\n      } else {\n        if (!duration) {\n          cycleDuration = Math.max(0, (this || _global).elem.data.op - firstKeyFrame);\n        } else {\n          cycleDuration = Math.abs((this || _global).elem.comp.globalData.frameRate * duration);\n        }\n\n        lastKeyFrame = firstKeyFrame + cycleDuration;\n      }\n\n      var i;\n      var len;\n      var ret;\n\n      if (type === \"pingpong\") {\n        var iterations = Math.floor((firstKeyFrame - currentFrame) / cycleDuration);\n\n        if (iterations % 2 === 0) {\n          return this.getValueAtTime(((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / (this || _global).comp.globalData.frameRate, 0); // eslint-disable-line\n        }\n      } else if (type === \"offset\") {\n        var initV = this.getValueAtTime(firstKeyFrame / (this || _global).comp.globalData.frameRate, 0);\n        var endV = this.getValueAtTime(lastKeyFrame / (this || _global).comp.globalData.frameRate, 0);\n        var current = this.getValueAtTime((cycleDuration - (firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / (this || _global).comp.globalData.frameRate, 0);\n        var repeats = Math.floor((firstKeyFrame - currentFrame) / cycleDuration) + 1;\n\n        if ((this || _global).pv.length) {\n          ret = new Array(initV.length);\n          len = ret.length;\n\n          for (i = 0; i < len; i += 1) {\n            ret[i] = current[i] - (endV[i] - initV[i]) * repeats;\n          }\n\n          return ret;\n        }\n\n        return current - (endV - initV) * repeats;\n      } else if (type === \"continue\") {\n        var firstValue = this.getValueAtTime(firstKeyFrame / (this || _global).comp.globalData.frameRate, 0);\n        var nextFirstValue = this.getValueAtTime((firstKeyFrame + 0.001) / (this || _global).comp.globalData.frameRate, 0);\n\n        if ((this || _global).pv.length) {\n          ret = new Array(firstValue.length);\n          len = ret.length;\n\n          for (i = 0; i < len; i += 1) {\n            ret[i] = firstValue[i] + (firstValue[i] - nextFirstValue[i]) * (firstKeyFrame - currentFrame) / 0.001;\n          }\n\n          return ret;\n        }\n\n        return firstValue + (firstValue - nextFirstValue) * (firstKeyFrame - currentFrame) / 0.001;\n      }\n\n      return this.getValueAtTime((cycleDuration - ((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame)) / (this || _global).comp.globalData.frameRate, 0); // eslint-disable-line\n    }\n\n    function smooth(width, samples) {\n      if (!(this || _global).k) {\n        return (this || _global).pv;\n      }\n\n      width = (width || 0.4) * 0.5;\n      samples = Math.floor(samples || 5);\n\n      if (samples <= 1) {\n        return (this || _global).pv;\n      }\n\n      var currentTime = (this || _global).comp.renderedFrame / (this || _global).comp.globalData.frameRate;\n      var initFrame = currentTime - width;\n      var endFrame = currentTime + width;\n      var sampleFrequency = samples > 1 ? (endFrame - initFrame) / (samples - 1) : 1;\n      var i = 0;\n      var j = 0;\n      var value;\n\n      if ((this || _global).pv.length) {\n        value = createTypedArray(\"float32\", (this || _global).pv.length);\n      } else {\n        value = 0;\n      }\n\n      var sampleValue;\n\n      while (i < samples) {\n        sampleValue = this.getValueAtTime(initFrame + i * sampleFrequency);\n\n        if ((this || _global).pv.length) {\n          for (j = 0; j < (this || _global).pv.length; j += 1) {\n            value[j] += sampleValue[j];\n          }\n        } else {\n          value += sampleValue;\n        }\n\n        i += 1;\n      }\n\n      if ((this || _global).pv.length) {\n        for (j = 0; j < (this || _global).pv.length; j += 1) {\n          value[j] /= samples;\n        }\n      } else {\n        value /= samples;\n      }\n\n      return value;\n    }\n\n    function getTransformValueAtTime(time) {\n      if (!(this || _global)._transformCachingAtTime) {\n        (this || _global)._transformCachingAtTime = {\n          v: new Matrix()\n        };\n      } /// /\n\n\n      var matrix = (this || _global)._transformCachingAtTime.v;\n      matrix.cloneFromProps((this || _global).pre.props);\n\n      if ((this || _global).appliedTransformations < 1) {\n        var anchor = (this || _global).a.getValueAtTime(time);\n\n        matrix.translate(-anchor[0] * (this || _global).a.mult, -anchor[1] * (this || _global).a.mult, anchor[2] * (this || _global).a.mult);\n      }\n\n      if ((this || _global).appliedTransformations < 2) {\n        var scale = (this || _global).s.getValueAtTime(time);\n\n        matrix.scale(scale[0] * (this || _global).s.mult, scale[1] * (this || _global).s.mult, scale[2] * (this || _global).s.mult);\n      }\n\n      if ((this || _global).sk && (this || _global).appliedTransformations < 3) {\n        var skew = (this || _global).sk.getValueAtTime(time);\n\n        var skewAxis = (this || _global).sa.getValueAtTime(time);\n\n        matrix.skewFromAxis(-skew * (this || _global).sk.mult, skewAxis * (this || _global).sa.mult);\n      }\n\n      if ((this || _global).r && (this || _global).appliedTransformations < 4) {\n        var rotation = (this || _global).r.getValueAtTime(time);\n\n        matrix.rotate(-rotation * (this || _global).r.mult);\n      } else if (!(this || _global).r && (this || _global).appliedTransformations < 4) {\n        var rotationZ = (this || _global).rz.getValueAtTime(time);\n\n        var rotationY = (this || _global).ry.getValueAtTime(time);\n\n        var rotationX = (this || _global).rx.getValueAtTime(time);\n\n        var orientation = (this || _global).or.getValueAtTime(time);\n\n        matrix.rotateZ(-rotationZ * (this || _global).rz.mult).rotateY(rotationY * (this || _global).ry.mult).rotateX(rotationX * (this || _global).rx.mult).rotateZ(-orientation[2] * (this || _global).or.mult).rotateY(orientation[1] * (this || _global).or.mult).rotateX(orientation[0] * (this || _global).or.mult);\n      }\n\n      if ((this || _global).data.p && (this || _global).data.p.s) {\n        var positionX = (this || _global).px.getValueAtTime(time);\n\n        var positionY = (this || _global).py.getValueAtTime(time);\n\n        if ((this || _global).data.p.z) {\n          var positionZ = (this || _global).pz.getValueAtTime(time);\n\n          matrix.translate(positionX * (this || _global).px.mult, positionY * (this || _global).py.mult, -positionZ * (this || _global).pz.mult);\n        } else {\n          matrix.translate(positionX * (this || _global).px.mult, positionY * (this || _global).py.mult, 0);\n        }\n      } else {\n        var position = (this || _global).p.getValueAtTime(time);\n\n        matrix.translate(position[0] * (this || _global).p.mult, position[1] * (this || _global).p.mult, -position[2] * (this || _global).p.mult);\n      }\n\n      return matrix; /// /\n    }\n\n    function getTransformStaticValueAtTime() {\n      return (this || _global).v.clone(new Matrix());\n    }\n\n    var getTransformProperty = TransformPropertyFactory.getTransformProperty;\n\n    TransformPropertyFactory.getTransformProperty = function (elem, data, container) {\n      var prop = getTransformProperty(elem, data, container);\n\n      if (prop.dynamicProperties.length) {\n        prop.getValueAtTime = getTransformValueAtTime.bind(prop);\n      } else {\n        prop.getValueAtTime = getTransformStaticValueAtTime.bind(prop);\n      }\n\n      prop.setGroupProperty = expressionHelpers.setGroupProperty;\n      return prop;\n    };\n\n    var propertyGetProp = PropertyFactory.getProp;\n\n    PropertyFactory.getProp = function (elem, data, type, mult, container) {\n      var prop = propertyGetProp(elem, data, type, mult, container); // prop.getVelocityAtTime = getVelocityAtTime;\n      // prop.loopOut = loopOut;\n      // prop.loopIn = loopIn;\n\n      if (prop.kf) {\n        prop.getValueAtTime = expressionHelpers.getValueAtTime.bind(prop);\n      } else {\n        prop.getValueAtTime = expressionHelpers.getStaticValueAtTime.bind(prop);\n      }\n\n      prop.setGroupProperty = expressionHelpers.setGroupProperty;\n      prop.loopOut = loopOut;\n      prop.loopIn = loopIn;\n      prop.smooth = smooth;\n      prop.getVelocityAtTime = expressionHelpers.getVelocityAtTime.bind(prop);\n      prop.getSpeedAtTime = expressionHelpers.getSpeedAtTime.bind(prop);\n      prop.numKeys = data.a === 1 ? data.k.length : 0;\n      prop.propertyIndex = data.ix;\n      var value = 0;\n\n      if (type !== 0) {\n        value = createTypedArray(\"float32\", data.a === 1 ? data.k[0].s.length : data.k.length);\n      }\n\n      prop._cachingAtTime = {\n        lastFrame: initialDefaultFrame,\n        lastIndex: 0,\n        value: value\n      };\n      expressionHelpers.searchExpressions(elem, data, prop);\n\n      if (prop.k) {\n        container.addDynamicProperty(prop);\n      }\n\n      return prop;\n    };\n\n    function getShapeValueAtTime(frameNum) {\n      // For now this caching object is created only when needed instead of creating it when the shape is initialized.\n      if (!(this || _global)._cachingAtTime) {\n        (this || _global)._cachingAtTime = {\n          shapeValue: shapePool.clone((this || _global).pv),\n          lastIndex: 0,\n          lastTime: initialDefaultFrame\n        };\n      }\n\n      frameNum *= (this || _global).elem.globalData.frameRate;\n      frameNum -= (this || _global).offsetTime;\n\n      if (frameNum !== (this || _global)._cachingAtTime.lastTime) {\n        (this || _global)._cachingAtTime.lastIndex = (this || _global)._cachingAtTime.lastTime < frameNum ? (this || _global)._caching.lastIndex : 0;\n        (this || _global)._cachingAtTime.lastTime = frameNum;\n        this.interpolateShape(frameNum, (this || _global)._cachingAtTime.shapeValue, (this || _global)._cachingAtTime);\n      }\n\n      return (this || _global)._cachingAtTime.shapeValue;\n    }\n\n    var ShapePropertyConstructorFunction = ShapePropertyFactory.getConstructorFunction();\n    var KeyframedShapePropertyConstructorFunction = ShapePropertyFactory.getKeyframedConstructorFunction();\n\n    function ShapeExpressions() {}\n\n    ShapeExpressions.prototype = {\n      vertices: function (prop, time) {\n        if ((this || _global).k) {\n          this.getValue();\n        }\n\n        var shapePath = (this || _global).v;\n\n        if (time !== undefined) {\n          shapePath = this.getValueAtTime(time, 0);\n        }\n\n        var i;\n        var len = shapePath._length;\n        var vertices = shapePath[prop];\n        var points = shapePath.v;\n        var arr = createSizedArray(len);\n\n        for (i = 0; i < len; i += 1) {\n          if (prop === \"i\" || prop === \"o\") {\n            arr[i] = [vertices[i][0] - points[i][0], vertices[i][1] - points[i][1]];\n          } else {\n            arr[i] = [vertices[i][0], vertices[i][1]];\n          }\n        }\n\n        return arr;\n      },\n      points: function (time) {\n        return this.vertices(\"v\", time);\n      },\n      inTangents: function (time) {\n        return this.vertices(\"i\", time);\n      },\n      outTangents: function (time) {\n        return this.vertices(\"o\", time);\n      },\n      isClosed: function () {\n        return (this || _global).v.c;\n      },\n      pointOnPath: function (perc, time) {\n        var shapePath = (this || _global).v;\n\n        if (time !== undefined) {\n          shapePath = this.getValueAtTime(time, 0);\n        }\n\n        if (!(this || _global)._segmentsLength) {\n          (this || _global)._segmentsLength = bez.getSegmentsLength(shapePath);\n        }\n\n        var segmentsLength = (this || _global)._segmentsLength;\n        var lengths = segmentsLength.lengths;\n        var lengthPos = segmentsLength.totalLength * perc;\n        var i = 0;\n        var len = lengths.length;\n        var accumulatedLength = 0;\n        var pt;\n\n        while (i < len) {\n          if (accumulatedLength + lengths[i].addedLength > lengthPos) {\n            var initIndex = i;\n            var endIndex = shapePath.c && i === len - 1 ? 0 : i + 1;\n            var segmentPerc = (lengthPos - accumulatedLength) / lengths[i].addedLength;\n            pt = bez.getPointInSegment(shapePath.v[initIndex], shapePath.v[endIndex], shapePath.o[initIndex], shapePath.i[endIndex], segmentPerc, lengths[i]);\n            break;\n          } else {\n            accumulatedLength += lengths[i].addedLength;\n          }\n\n          i += 1;\n        }\n\n        if (!pt) {\n          pt = shapePath.c ? [shapePath.v[0][0], shapePath.v[0][1]] : [shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1]];\n        }\n\n        return pt;\n      },\n      vectorOnPath: function (perc, time, vectorType) {\n        // perc doesn't use triple equality because it can be a Number object as well as a primitive.\n        if (perc == 1) {\n          // eslint-disable-line eqeqeq\n          perc = (this || _global).v.c;\n        } else if (perc == 0) {\n          // eslint-disable-line eqeqeq\n          perc = 0.999;\n        }\n\n        var pt1 = this.pointOnPath(perc, time);\n        var pt2 = this.pointOnPath(perc + 0.001, time);\n        var xLength = pt2[0] - pt1[0];\n        var yLength = pt2[1] - pt1[1];\n        var magnitude = Math.sqrt(Math.pow(xLength, 2) + Math.pow(yLength, 2));\n\n        if (magnitude === 0) {\n          return [0, 0];\n        }\n\n        var unitVector = vectorType === \"tangent\" ? [xLength / magnitude, yLength / magnitude] : [-yLength / magnitude, xLength / magnitude];\n        return unitVector;\n      },\n      tangentOnPath: function (perc, time) {\n        return this.vectorOnPath(perc, time, \"tangent\");\n      },\n      normalOnPath: function (perc, time) {\n        return this.vectorOnPath(perc, time, \"normal\");\n      },\n      setGroupProperty: expressionHelpers.setGroupProperty,\n      getValueAtTime: expressionHelpers.getStaticValueAtTime\n    };\n    extendPrototype([ShapeExpressions], ShapePropertyConstructorFunction);\n    extendPrototype([ShapeExpressions], KeyframedShapePropertyConstructorFunction);\n    KeyframedShapePropertyConstructorFunction.prototype.getValueAtTime = getShapeValueAtTime;\n    KeyframedShapePropertyConstructorFunction.prototype.initiateExpression = ExpressionManager.initiateExpression;\n    var propertyGetShapeProp = ShapePropertyFactory.getShapeProp;\n\n    ShapePropertyFactory.getShapeProp = function (elem, data, type, arr, trims) {\n      var prop = propertyGetShapeProp(elem, data, type, arr, trims);\n      prop.propertyIndex = data.ix;\n      prop.lock = false;\n\n      if (type === 3) {\n        expressionHelpers.searchExpressions(elem, data.pt, prop);\n      } else if (type === 4) {\n        expressionHelpers.searchExpressions(elem, data.ks, prop);\n      }\n\n      if (prop.k) {\n        elem.addDynamicProperty(prop);\n      }\n\n      return prop;\n    };\n  })();\n  /* global ExpressionManager, TextProperty */\n\n\n  (function addDecorator() {\n    function searchExpressions() {\n      if ((this || _global).data.d.x) {\n        (this || _global).calculateExpression = ExpressionManager.initiateExpression.bind(this || _global)((this || _global).elem, (this || _global).data.d, this || _global);\n        this.addEffect((this || _global).getExpressionValue.bind(this || _global));\n        return true;\n      }\n\n      return null;\n    }\n\n    TextProperty.prototype.getExpressionValue = function (currentValue, text) {\n      var newValue = this.calculateExpression(text);\n\n      if (currentValue.t !== newValue) {\n        var newData = {};\n        this.copyData(newData, currentValue);\n        newData.t = newValue.toString();\n        newData.__complete = false;\n        return newData;\n      }\n\n      return currentValue;\n    };\n\n    TextProperty.prototype.searchProperty = function () {\n      var isKeyframed = this.searchKeyframes();\n      var hasExpressions = this.searchExpressions();\n      (this || _global).kf = isKeyframed || hasExpressions;\n      return (this || _global).kf;\n    };\n\n    TextProperty.prototype.searchExpressions = searchExpressions;\n  })();\n  /* global propertyGroupFactory, PropertyInterface */\n\n  /* exported ShapePathInterface */\n\n\n  var ShapePathInterface = function () {\n    return function pathInterfaceFactory(shape, view, propertyGroup) {\n      var prop = view.sh;\n\n      function interfaceFunction(val) {\n        if (val === \"Shape\" || val === \"shape\" || val === \"Path\" || val === \"path\" || val === \"ADBE Vector Shape\" || val === 2) {\n          return interfaceFunction.path;\n        }\n\n        return null;\n      }\n\n      var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n      prop.setGroupProperty(PropertyInterface(\"Path\", _propertyGroup));\n      Object.defineProperties(interfaceFunction, {\n        path: {\n          get: function () {\n            if (prop.k) {\n              prop.getValue();\n            }\n\n            return prop;\n          }\n        },\n        shape: {\n          get: function () {\n            if (prop.k) {\n              prop.getValue();\n            }\n\n            return prop;\n          }\n        },\n        _name: {\n          value: shape.nm\n        },\n        ix: {\n          value: shape.ix\n        },\n        propertyIndex: {\n          value: shape.ix\n        },\n        mn: {\n          value: shape.mn\n        },\n        propertyGroup: {\n          value: propertyGroup\n        }\n      });\n      return interfaceFunction;\n    };\n  }();\n  /* exported propertyGroupFactory */\n\n\n  var propertyGroupFactory = function () {\n    return function (interfaceFunction, parentPropertyGroup) {\n      return function (val) {\n        val = val === undefined ? 1 : val;\n\n        if (val <= 0) {\n          return interfaceFunction;\n        }\n\n        return parentPropertyGroup(val - 1);\n      };\n    };\n  }();\n  /* exported PropertyInterface */\n\n\n  var PropertyInterface = function () {\n    return function (propertyName, propertyGroup) {\n      var interfaceFunction = {\n        _name: propertyName\n      };\n\n      function _propertyGroup(val) {\n        val = val === undefined ? 1 : val;\n\n        if (val <= 0) {\n          return interfaceFunction;\n        }\n\n        return propertyGroup(val - 1);\n      }\n\n      return _propertyGroup;\n    };\n  }();\n  /* global ExpressionPropertyInterface, PropertyInterface, propertyGroupFactory, ShapePathInterface */\n\n  /* exported ShapeExpressionInterface */\n\n\n  var ShapeExpressionInterface = function () {\n    function iterateElements(shapes, view, propertyGroup) {\n      var arr = [];\n      var i;\n      var len = shapes ? shapes.length : 0;\n\n      for (i = 0; i < len; i += 1) {\n        if (shapes[i].ty === \"gr\") {\n          arr.push(groupInterfaceFactory(shapes[i], view[i], propertyGroup));\n        } else if (shapes[i].ty === \"fl\") {\n          arr.push(fillInterfaceFactory(shapes[i], view[i], propertyGroup));\n        } else if (shapes[i].ty === \"st\") {\n          arr.push(strokeInterfaceFactory(shapes[i], view[i], propertyGroup));\n        } else if (shapes[i].ty === \"tm\") {\n          arr.push(trimInterfaceFactory(shapes[i], view[i], propertyGroup));\n        } else if (shapes[i].ty === \"tr\") {// arr.push(transformInterfaceFactory(shapes[i],view[i],propertyGroup));\n        } else if (shapes[i].ty === \"el\") {\n          arr.push(ellipseInterfaceFactory(shapes[i], view[i], propertyGroup));\n        } else if (shapes[i].ty === \"sr\") {\n          arr.push(starInterfaceFactory(shapes[i], view[i], propertyGroup));\n        } else if (shapes[i].ty === \"sh\") {\n          arr.push(ShapePathInterface(shapes[i], view[i], propertyGroup));\n        } else if (shapes[i].ty === \"rc\") {\n          arr.push(rectInterfaceFactory(shapes[i], view[i], propertyGroup));\n        } else if (shapes[i].ty === \"rd\") {\n          arr.push(roundedInterfaceFactory(shapes[i], view[i], propertyGroup));\n        } else if (shapes[i].ty === \"rp\") {\n          arr.push(repeaterInterfaceFactory(shapes[i], view[i], propertyGroup));\n        }\n      }\n\n      return arr;\n    }\n\n    function contentsInterfaceFactory(shape, view, propertyGroup) {\n      var interfaces;\n\n      var interfaceFunction = function _interfaceFunction(value) {\n        var i = 0;\n        var len = interfaces.length;\n\n        while (i < len) {\n          if (interfaces[i]._name === value || interfaces[i].mn === value || interfaces[i].propertyIndex === value || interfaces[i].ix === value || interfaces[i].ind === value) {\n            return interfaces[i];\n          }\n\n          i += 1;\n        }\n\n        if (typeof value === \"number\") {\n          return interfaces[value - 1];\n        }\n\n        return null;\n      };\n\n      interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n      interfaces = iterateElements(shape.it, view.it, interfaceFunction.propertyGroup);\n      interfaceFunction.numProperties = interfaces.length;\n      var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n      interfaceFunction.transform = transformInterface;\n      interfaceFunction.propertyIndex = shape.cix;\n      interfaceFunction._name = shape.nm;\n      return interfaceFunction;\n    }\n\n    function groupInterfaceFactory(shape, view, propertyGroup) {\n      var interfaceFunction = function _interfaceFunction(value) {\n        switch (value) {\n          case \"ADBE Vectors Group\":\n          case \"Contents\":\n          case 2:\n            return interfaceFunction.content;\n          // Not necessary for now. Keeping them here in case a new case appears\n          // case 'ADBE Vector Transform Group':\n          // case 3:\n\n          default:\n            return interfaceFunction.transform;\n        }\n      };\n\n      interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n      var content = contentsInterfaceFactory(shape, view, interfaceFunction.propertyGroup);\n      var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n      interfaceFunction.content = content;\n      interfaceFunction.transform = transformInterface;\n      Object.defineProperty(interfaceFunction, \"_name\", {\n        get: function () {\n          return shape.nm;\n        }\n      }); // interfaceFunction.content = interfaceFunction;\n\n      interfaceFunction.numProperties = shape.np;\n      interfaceFunction.propertyIndex = shape.ix;\n      interfaceFunction.nm = shape.nm;\n      interfaceFunction.mn = shape.mn;\n      return interfaceFunction;\n    }\n\n    function fillInterfaceFactory(shape, view, propertyGroup) {\n      function interfaceFunction(val) {\n        if (val === \"Color\" || val === \"color\") {\n          return interfaceFunction.color;\n        }\n\n        if (val === \"Opacity\" || val === \"opacity\") {\n          return interfaceFunction.opacity;\n        }\n\n        return null;\n      }\n\n      Object.defineProperties(interfaceFunction, {\n        color: {\n          get: ExpressionPropertyInterface(view.c)\n        },\n        opacity: {\n          get: ExpressionPropertyInterface(view.o)\n        },\n        _name: {\n          value: shape.nm\n        },\n        mn: {\n          value: shape.mn\n        }\n      });\n      view.c.setGroupProperty(PropertyInterface(\"Color\", propertyGroup));\n      view.o.setGroupProperty(PropertyInterface(\"Opacity\", propertyGroup));\n      return interfaceFunction;\n    }\n\n    function strokeInterfaceFactory(shape, view, propertyGroup) {\n      var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n      var _dashPropertyGroup = propertyGroupFactory(dashOb, _propertyGroup);\n\n      function addPropertyToDashOb(i) {\n        Object.defineProperty(dashOb, shape.d[i].nm, {\n          get: ExpressionPropertyInterface(view.d.dataProps[i].p)\n        });\n      }\n\n      var i;\n      var len = shape.d ? shape.d.length : 0;\n      var dashOb = {};\n\n      for (i = 0; i < len; i += 1) {\n        addPropertyToDashOb(i);\n        view.d.dataProps[i].p.setGroupProperty(_dashPropertyGroup);\n      }\n\n      function interfaceFunction(val) {\n        if (val === \"Color\" || val === \"color\") {\n          return interfaceFunction.color;\n        }\n\n        if (val === \"Opacity\" || val === \"opacity\") {\n          return interfaceFunction.opacity;\n        }\n\n        if (val === \"Stroke Width\" || val === \"stroke width\") {\n          return interfaceFunction.strokeWidth;\n        }\n\n        return null;\n      }\n\n      Object.defineProperties(interfaceFunction, {\n        color: {\n          get: ExpressionPropertyInterface(view.c)\n        },\n        opacity: {\n          get: ExpressionPropertyInterface(view.o)\n        },\n        strokeWidth: {\n          get: ExpressionPropertyInterface(view.w)\n        },\n        dash: {\n          get: function () {\n            return dashOb;\n          }\n        },\n        _name: {\n          value: shape.nm\n        },\n        mn: {\n          value: shape.mn\n        }\n      });\n      view.c.setGroupProperty(PropertyInterface(\"Color\", _propertyGroup));\n      view.o.setGroupProperty(PropertyInterface(\"Opacity\", _propertyGroup));\n      view.w.setGroupProperty(PropertyInterface(\"Stroke Width\", _propertyGroup));\n      return interfaceFunction;\n    }\n\n    function trimInterfaceFactory(shape, view, propertyGroup) {\n      function interfaceFunction(val) {\n        if (val === shape.e.ix || val === \"End\" || val === \"end\") {\n          return interfaceFunction.end;\n        }\n\n        if (val === shape.s.ix) {\n          return interfaceFunction.start;\n        }\n\n        if (val === shape.o.ix) {\n          return interfaceFunction.offset;\n        }\n\n        return null;\n      }\n\n      var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n      interfaceFunction.propertyIndex = shape.ix;\n      view.s.setGroupProperty(PropertyInterface(\"Start\", _propertyGroup));\n      view.e.setGroupProperty(PropertyInterface(\"End\", _propertyGroup));\n      view.o.setGroupProperty(PropertyInterface(\"Offset\", _propertyGroup));\n      interfaceFunction.propertyIndex = shape.ix;\n      interfaceFunction.propertyGroup = propertyGroup;\n      Object.defineProperties(interfaceFunction, {\n        start: {\n          get: ExpressionPropertyInterface(view.s)\n        },\n        end: {\n          get: ExpressionPropertyInterface(view.e)\n        },\n        offset: {\n          get: ExpressionPropertyInterface(view.o)\n        },\n        _name: {\n          value: shape.nm\n        }\n      });\n      interfaceFunction.mn = shape.mn;\n      return interfaceFunction;\n    }\n\n    function transformInterfaceFactory(shape, view, propertyGroup) {\n      function interfaceFunction(value) {\n        if (shape.a.ix === value || value === \"Anchor Point\") {\n          return interfaceFunction.anchorPoint;\n        }\n\n        if (shape.o.ix === value || value === \"Opacity\") {\n          return interfaceFunction.opacity;\n        }\n\n        if (shape.p.ix === value || value === \"Position\") {\n          return interfaceFunction.position;\n        }\n\n        if (shape.r.ix === value || value === \"Rotation\" || value === \"ADBE Vector Rotation\") {\n          return interfaceFunction.rotation;\n        }\n\n        if (shape.s.ix === value || value === \"Scale\") {\n          return interfaceFunction.scale;\n        }\n\n        if (shape.sk && shape.sk.ix === value || value === \"Skew\") {\n          return interfaceFunction.skew;\n        }\n\n        if (shape.sa && shape.sa.ix === value || value === \"Skew Axis\") {\n          return interfaceFunction.skewAxis;\n        }\n\n        return null;\n      }\n\n      var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n      view.transform.mProps.o.setGroupProperty(PropertyInterface(\"Opacity\", _propertyGroup));\n      view.transform.mProps.p.setGroupProperty(PropertyInterface(\"Position\", _propertyGroup));\n      view.transform.mProps.a.setGroupProperty(PropertyInterface(\"Anchor Point\", _propertyGroup));\n      view.transform.mProps.s.setGroupProperty(PropertyInterface(\"Scale\", _propertyGroup));\n      view.transform.mProps.r.setGroupProperty(PropertyInterface(\"Rotation\", _propertyGroup));\n\n      if (view.transform.mProps.sk) {\n        view.transform.mProps.sk.setGroupProperty(PropertyInterface(\"Skew\", _propertyGroup));\n        view.transform.mProps.sa.setGroupProperty(PropertyInterface(\"Skew Angle\", _propertyGroup));\n      }\n\n      view.transform.op.setGroupProperty(PropertyInterface(\"Opacity\", _propertyGroup));\n      Object.defineProperties(interfaceFunction, {\n        opacity: {\n          get: ExpressionPropertyInterface(view.transform.mProps.o)\n        },\n        position: {\n          get: ExpressionPropertyInterface(view.transform.mProps.p)\n        },\n        anchorPoint: {\n          get: ExpressionPropertyInterface(view.transform.mProps.a)\n        },\n        scale: {\n          get: ExpressionPropertyInterface(view.transform.mProps.s)\n        },\n        rotation: {\n          get: ExpressionPropertyInterface(view.transform.mProps.r)\n        },\n        skew: {\n          get: ExpressionPropertyInterface(view.transform.mProps.sk)\n        },\n        skewAxis: {\n          get: ExpressionPropertyInterface(view.transform.mProps.sa)\n        },\n        _name: {\n          value: shape.nm\n        }\n      });\n      interfaceFunction.ty = \"tr\";\n      interfaceFunction.mn = shape.mn;\n      interfaceFunction.propertyGroup = propertyGroup;\n      return interfaceFunction;\n    }\n\n    function ellipseInterfaceFactory(shape, view, propertyGroup) {\n      function interfaceFunction(value) {\n        if (shape.p.ix === value) {\n          return interfaceFunction.position;\n        }\n\n        if (shape.s.ix === value) {\n          return interfaceFunction.size;\n        }\n\n        return null;\n      }\n\n      var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n      interfaceFunction.propertyIndex = shape.ix;\n      var prop = view.sh.ty === \"tm\" ? view.sh.prop : view.sh;\n      prop.s.setGroupProperty(PropertyInterface(\"Size\", _propertyGroup));\n      prop.p.setGroupProperty(PropertyInterface(\"Position\", _propertyGroup));\n      Object.defineProperties(interfaceFunction, {\n        size: {\n          get: ExpressionPropertyInterface(prop.s)\n        },\n        position: {\n          get: ExpressionPropertyInterface(prop.p)\n        },\n        _name: {\n          value: shape.nm\n        }\n      });\n      interfaceFunction.mn = shape.mn;\n      return interfaceFunction;\n    }\n\n    function starInterfaceFactory(shape, view, propertyGroup) {\n      function interfaceFunction(value) {\n        if (shape.p.ix === value) {\n          return interfaceFunction.position;\n        }\n\n        if (shape.r.ix === value) {\n          return interfaceFunction.rotation;\n        }\n\n        if (shape.pt.ix === value) {\n          return interfaceFunction.points;\n        }\n\n        if (shape.or.ix === value || value === \"ADBE Vector Star Outer Radius\") {\n          return interfaceFunction.outerRadius;\n        }\n\n        if (shape.os.ix === value) {\n          return interfaceFunction.outerRoundness;\n        }\n\n        if (shape.ir && (shape.ir.ix === value || value === \"ADBE Vector Star Inner Radius\")) {\n          return interfaceFunction.innerRadius;\n        }\n\n        if (shape.is && shape.is.ix === value) {\n          return interfaceFunction.innerRoundness;\n        }\n\n        return null;\n      }\n\n      var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n      var prop = view.sh.ty === \"tm\" ? view.sh.prop : view.sh;\n      interfaceFunction.propertyIndex = shape.ix;\n      prop.or.setGroupProperty(PropertyInterface(\"Outer Radius\", _propertyGroup));\n      prop.os.setGroupProperty(PropertyInterface(\"Outer Roundness\", _propertyGroup));\n      prop.pt.setGroupProperty(PropertyInterface(\"Points\", _propertyGroup));\n      prop.p.setGroupProperty(PropertyInterface(\"Position\", _propertyGroup));\n      prop.r.setGroupProperty(PropertyInterface(\"Rotation\", _propertyGroup));\n\n      if (shape.ir) {\n        prop.ir.setGroupProperty(PropertyInterface(\"Inner Radius\", _propertyGroup));\n        prop.is.setGroupProperty(PropertyInterface(\"Inner Roundness\", _propertyGroup));\n      }\n\n      Object.defineProperties(interfaceFunction, {\n        position: {\n          get: ExpressionPropertyInterface(prop.p)\n        },\n        rotation: {\n          get: ExpressionPropertyInterface(prop.r)\n        },\n        points: {\n          get: ExpressionPropertyInterface(prop.pt)\n        },\n        outerRadius: {\n          get: ExpressionPropertyInterface(prop.or)\n        },\n        outerRoundness: {\n          get: ExpressionPropertyInterface(prop.os)\n        },\n        innerRadius: {\n          get: ExpressionPropertyInterface(prop.ir)\n        },\n        innerRoundness: {\n          get: ExpressionPropertyInterface(prop.is)\n        },\n        _name: {\n          value: shape.nm\n        }\n      });\n      interfaceFunction.mn = shape.mn;\n      return interfaceFunction;\n    }\n\n    function rectInterfaceFactory(shape, view, propertyGroup) {\n      function interfaceFunction(value) {\n        if (shape.p.ix === value) {\n          return interfaceFunction.position;\n        }\n\n        if (shape.r.ix === value) {\n          return interfaceFunction.roundness;\n        }\n\n        if (shape.s.ix === value || value === \"Size\" || value === \"ADBE Vector Rect Size\") {\n          return interfaceFunction.size;\n        }\n\n        return null;\n      }\n\n      var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n      var prop = view.sh.ty === \"tm\" ? view.sh.prop : view.sh;\n      interfaceFunction.propertyIndex = shape.ix;\n      prop.p.setGroupProperty(PropertyInterface(\"Position\", _propertyGroup));\n      prop.s.setGroupProperty(PropertyInterface(\"Size\", _propertyGroup));\n      prop.r.setGroupProperty(PropertyInterface(\"Rotation\", _propertyGroup));\n      Object.defineProperties(interfaceFunction, {\n        position: {\n          get: ExpressionPropertyInterface(prop.p)\n        },\n        roundness: {\n          get: ExpressionPropertyInterface(prop.r)\n        },\n        size: {\n          get: ExpressionPropertyInterface(prop.s)\n        },\n        _name: {\n          value: shape.nm\n        }\n      });\n      interfaceFunction.mn = shape.mn;\n      return interfaceFunction;\n    }\n\n    function roundedInterfaceFactory(shape, view, propertyGroup) {\n      function interfaceFunction(value) {\n        if (shape.r.ix === value || value === \"Round Corners 1\") {\n          return interfaceFunction.radius;\n        }\n\n        return null;\n      }\n\n      var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n      var prop = view;\n      interfaceFunction.propertyIndex = shape.ix;\n      prop.rd.setGroupProperty(PropertyInterface(\"Radius\", _propertyGroup));\n      Object.defineProperties(interfaceFunction, {\n        radius: {\n          get: ExpressionPropertyInterface(prop.rd)\n        },\n        _name: {\n          value: shape.nm\n        }\n      });\n      interfaceFunction.mn = shape.mn;\n      return interfaceFunction;\n    }\n\n    function repeaterInterfaceFactory(shape, view, propertyGroup) {\n      function interfaceFunction(value) {\n        if (shape.c.ix === value || value === \"Copies\") {\n          return interfaceFunction.copies;\n        }\n\n        if (shape.o.ix === value || value === \"Offset\") {\n          return interfaceFunction.offset;\n        }\n\n        return null;\n      }\n\n      var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n      var prop = view;\n      interfaceFunction.propertyIndex = shape.ix;\n      prop.c.setGroupProperty(PropertyInterface(\"Copies\", _propertyGroup));\n      prop.o.setGroupProperty(PropertyInterface(\"Offset\", _propertyGroup));\n      Object.defineProperties(interfaceFunction, {\n        copies: {\n          get: ExpressionPropertyInterface(prop.c)\n        },\n        offset: {\n          get: ExpressionPropertyInterface(prop.o)\n        },\n        _name: {\n          value: shape.nm\n        }\n      });\n      interfaceFunction.mn = shape.mn;\n      return interfaceFunction;\n    }\n\n    return function (shapes, view, propertyGroup) {\n      var interfaces;\n\n      function _interfaceFunction(value) {\n        if (typeof value === \"number\") {\n          value = value === undefined ? 1 : value;\n\n          if (value === 0) {\n            return propertyGroup;\n          }\n\n          return interfaces[value - 1];\n        }\n\n        var i = 0;\n        var len = interfaces.length;\n\n        while (i < len) {\n          if (interfaces[i]._name === value) {\n            return interfaces[i];\n          }\n\n          i += 1;\n        }\n\n        return null;\n      }\n\n      function parentGroupWrapper() {\n        return propertyGroup;\n      }\n\n      _interfaceFunction.propertyGroup = propertyGroupFactory(_interfaceFunction, parentGroupWrapper);\n      interfaces = iterateElements(shapes, view, _interfaceFunction.propertyGroup);\n      _interfaceFunction.numProperties = interfaces.length;\n      _interfaceFunction._name = \"Contents\";\n      return _interfaceFunction;\n    };\n  }();\n  /* exported TextExpressionInterface */\n\n\n  var TextExpressionInterface = function () {\n    return function (elem) {\n      var _prevValue;\n\n      var _sourceText;\n\n      function _thisLayerFunction(name) {\n        switch (name) {\n          case \"ADBE Text Document\":\n            return _thisLayerFunction.sourceText;\n\n          default:\n            return null;\n        }\n      }\n\n      Object.defineProperty(_thisLayerFunction, \"sourceText\", {\n        get: function () {\n          elem.textProperty.getValue();\n          var stringValue = elem.textProperty.currentData.t;\n\n          if (stringValue !== _prevValue) {\n            elem.textProperty.currentData.t = _prevValue;\n            _sourceText = new String(stringValue); // eslint-disable-line no-new-wrappers\n            // If stringValue is an empty string, eval returns undefined, so it has to be returned as a String primitive\n\n            _sourceText.value = stringValue || new String(stringValue); // eslint-disable-line no-new-wrappers\n          }\n\n          return _sourceText;\n        }\n      });\n      return _thisLayerFunction;\n    };\n  }();\n  /* global Matrix, MaskManagerInterface, TransformExpressionInterface, getDescriptor */\n\n  /* exported LayerExpressionInterface */\n\n\n  var LayerExpressionInterface = function () {\n    function getMatrix(time) {\n      var toWorldMat = new Matrix();\n\n      if (time !== undefined) {\n        var propMatrix = (this || _global)._elem.finalTransform.mProp.getValueAtTime(time);\n\n        propMatrix.clone(toWorldMat);\n      } else {\n        var transformMat = (this || _global)._elem.finalTransform.mProp;\n        transformMat.applyToMatrix(toWorldMat);\n      }\n\n      return toWorldMat;\n    }\n\n    function toWorldVec(arr, time) {\n      var toWorldMat = this.getMatrix(time);\n      toWorldMat.props[12] = 0;\n      toWorldMat.props[13] = 0;\n      toWorldMat.props[14] = 0;\n      return this.applyPoint(toWorldMat, arr);\n    }\n\n    function toWorld(arr, time) {\n      var toWorldMat = this.getMatrix(time);\n      return this.applyPoint(toWorldMat, arr);\n    }\n\n    function fromWorldVec(arr, time) {\n      var toWorldMat = this.getMatrix(time);\n      toWorldMat.props[12] = 0;\n      toWorldMat.props[13] = 0;\n      toWorldMat.props[14] = 0;\n      return this.invertPoint(toWorldMat, arr);\n    }\n\n    function fromWorld(arr, time) {\n      var toWorldMat = this.getMatrix(time);\n      return this.invertPoint(toWorldMat, arr);\n    }\n\n    function applyPoint(matrix, arr) {\n      if ((this || _global)._elem.hierarchy && (this || _global)._elem.hierarchy.length) {\n        var i;\n        var len = (this || _global)._elem.hierarchy.length;\n\n        for (i = 0; i < len; i += 1) {\n          (this || _global)._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n        }\n      }\n\n      return matrix.applyToPointArray(arr[0], arr[1], arr[2] || 0);\n    }\n\n    function invertPoint(matrix, arr) {\n      if ((this || _global)._elem.hierarchy && (this || _global)._elem.hierarchy.length) {\n        var i;\n        var len = (this || _global)._elem.hierarchy.length;\n\n        for (i = 0; i < len; i += 1) {\n          (this || _global)._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n        }\n      }\n\n      return matrix.inversePoint(arr);\n    }\n\n    function fromComp(arr) {\n      var toWorldMat = new Matrix();\n      toWorldMat.reset();\n\n      (this || _global)._elem.finalTransform.mProp.applyToMatrix(toWorldMat);\n\n      if ((this || _global)._elem.hierarchy && (this || _global)._elem.hierarchy.length) {\n        var i;\n        var len = (this || _global)._elem.hierarchy.length;\n\n        for (i = 0; i < len; i += 1) {\n          (this || _global)._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(toWorldMat);\n        }\n\n        return toWorldMat.inversePoint(arr);\n      }\n\n      return toWorldMat.inversePoint(arr);\n    }\n\n    function sampleImage() {\n      return [1, 1, 1, 1];\n    }\n\n    return function (elem) {\n      var transformInterface;\n\n      function _registerMaskInterface(maskManager) {\n        _thisLayerFunction.mask = new MaskManagerInterface(maskManager, elem);\n      }\n\n      function _registerEffectsInterface(effects) {\n        _thisLayerFunction.effect = effects;\n      }\n\n      function _thisLayerFunction(name) {\n        switch (name) {\n          case \"ADBE Root Vectors Group\":\n          case \"Contents\":\n          case 2:\n            return _thisLayerFunction.shapeInterface;\n\n          case 1:\n          case 6:\n          case \"Transform\":\n          case \"transform\":\n          case \"ADBE Transform Group\":\n            return transformInterface;\n\n          case 4:\n          case \"ADBE Effect Parade\":\n          case \"effects\":\n          case \"Effects\":\n            return _thisLayerFunction.effect;\n\n          case \"ADBE Text Properties\":\n            return _thisLayerFunction.textInterface;\n\n          default:\n            return null;\n        }\n      }\n\n      _thisLayerFunction.getMatrix = getMatrix;\n      _thisLayerFunction.invertPoint = invertPoint;\n      _thisLayerFunction.applyPoint = applyPoint;\n      _thisLayerFunction.toWorld = toWorld;\n      _thisLayerFunction.toWorldVec = toWorldVec;\n      _thisLayerFunction.fromWorld = fromWorld;\n      _thisLayerFunction.fromWorldVec = fromWorldVec;\n      _thisLayerFunction.toComp = toWorld;\n      _thisLayerFunction.fromComp = fromComp;\n      _thisLayerFunction.sampleImage = sampleImage;\n      _thisLayerFunction.sourceRectAtTime = elem.sourceRectAtTime.bind(elem);\n      _thisLayerFunction._elem = elem;\n      transformInterface = TransformExpressionInterface(elem.finalTransform.mProp);\n      var anchorPointDescriptor = getDescriptor(transformInterface, \"anchorPoint\");\n      Object.defineProperties(_thisLayerFunction, {\n        hasParent: {\n          get: function () {\n            return elem.hierarchy.length;\n          }\n        },\n        parent: {\n          get: function () {\n            return elem.hierarchy[0].layerInterface;\n          }\n        },\n        rotation: getDescriptor(transformInterface, \"rotation\"),\n        scale: getDescriptor(transformInterface, \"scale\"),\n        position: getDescriptor(transformInterface, \"position\"),\n        opacity: getDescriptor(transformInterface, \"opacity\"),\n        anchorPoint: anchorPointDescriptor,\n        anchor_point: anchorPointDescriptor,\n        transform: {\n          get: function () {\n            return transformInterface;\n          }\n        },\n        active: {\n          get: function () {\n            return elem.isInRange;\n          }\n        }\n      });\n      _thisLayerFunction.startTime = elem.data.st;\n      _thisLayerFunction.index = elem.data.ind;\n      _thisLayerFunction.source = elem.data.refId;\n      _thisLayerFunction.height = elem.data.ty === 0 ? elem.data.h : 100;\n      _thisLayerFunction.width = elem.data.ty === 0 ? elem.data.w : 100;\n      _thisLayerFunction.inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n      _thisLayerFunction.outPoint = elem.data.op / elem.comp.globalData.frameRate;\n      _thisLayerFunction._name = elem.data.nm;\n      _thisLayerFunction.registerMaskInterface = _registerMaskInterface;\n      _thisLayerFunction.registerEffectsInterface = _registerEffectsInterface;\n      return _thisLayerFunction;\n    };\n  }();\n  /* global */\n\n  /* exported FootageInterface */\n\n\n  var FootageInterface = function () {\n    var outlineInterfaceFactory = function (elem) {\n      var currentPropertyName = \"\";\n      var currentProperty = elem.getFootageData();\n\n      function init() {\n        currentPropertyName = \"\";\n        currentProperty = elem.getFootageData();\n        return searchProperty;\n      }\n\n      function searchProperty(value) {\n        if (currentProperty[value]) {\n          currentPropertyName = value;\n          currentProperty = currentProperty[value];\n\n          if (typeof currentProperty === \"object\") {\n            return searchProperty;\n          }\n\n          return currentProperty;\n        }\n\n        var propertyNameIndex = value.indexOf(currentPropertyName);\n\n        if (propertyNameIndex !== -1) {\n          var index = parseInt(value.substr(propertyNameIndex + currentPropertyName.length), 10);\n          currentProperty = currentProperty[index];\n\n          if (typeof currentProperty === \"object\") {\n            return searchProperty;\n          }\n\n          return currentProperty;\n        }\n\n        return \"\";\n      }\n\n      return init;\n    };\n\n    var dataInterfaceFactory = function (elem) {\n      function interfaceFunction(value) {\n        if (value === \"Outline\") {\n          return interfaceFunction.outlineInterface();\n        }\n\n        return null;\n      }\n\n      interfaceFunction._name = \"Outline\";\n      interfaceFunction.outlineInterface = outlineInterfaceFactory(elem);\n      return interfaceFunction;\n    };\n\n    return function (elem) {\n      function _interfaceFunction(value) {\n        if (value === \"Data\") {\n          return _interfaceFunction.dataInterface;\n        }\n\n        return null;\n      }\n\n      _interfaceFunction._name = \"Data\";\n      _interfaceFunction.dataInterface = dataInterfaceFactory(elem);\n      return _interfaceFunction;\n    };\n  }();\n  /* exported CompExpressionInterface */\n\n\n  var CompExpressionInterface = function () {\n    return function (comp) {\n      function _thisLayerFunction(name) {\n        var i = 0;\n        var len = comp.layers.length;\n\n        while (i < len) {\n          if (comp.layers[i].nm === name || comp.layers[i].ind === name) {\n            return comp.elements[i].layerInterface;\n          }\n\n          i += 1;\n        }\n\n        return null; // return {active:false};\n      }\n\n      Object.defineProperty(_thisLayerFunction, \"_name\", {\n        value: comp.data.nm\n      });\n      _thisLayerFunction.layer = _thisLayerFunction;\n      _thisLayerFunction.pixelAspect = 1;\n      _thisLayerFunction.height = comp.data.h || comp.globalData.compSize.h;\n      _thisLayerFunction.width = comp.data.w || comp.globalData.compSize.w;\n      _thisLayerFunction.pixelAspect = 1;\n      _thisLayerFunction.frameDuration = 1 / comp.globalData.frameRate;\n      _thisLayerFunction.displayStartTime = 0;\n      _thisLayerFunction.numLayers = comp.layers.length;\n      return _thisLayerFunction;\n    };\n  }();\n  /* global ExpressionPropertyInterface */\n\n  /* exported TransformExpressionInterface */\n\n\n  var TransformExpressionInterface = function () {\n    return function (transform) {\n      function _thisFunction(name) {\n        switch (name) {\n          case \"scale\":\n          case \"Scale\":\n          case \"ADBE Scale\":\n          case 6:\n            return _thisFunction.scale;\n\n          case \"rotation\":\n          case \"Rotation\":\n          case \"ADBE Rotation\":\n          case \"ADBE Rotate Z\":\n          case 10:\n            return _thisFunction.rotation;\n\n          case \"ADBE Rotate X\":\n            return _thisFunction.xRotation;\n\n          case \"ADBE Rotate Y\":\n            return _thisFunction.yRotation;\n\n          case \"position\":\n          case \"Position\":\n          case \"ADBE Position\":\n          case 2:\n            return _thisFunction.position;\n\n          case \"ADBE Position_0\":\n            return _thisFunction.xPosition;\n\n          case \"ADBE Position_1\":\n            return _thisFunction.yPosition;\n\n          case \"ADBE Position_2\":\n            return _thisFunction.zPosition;\n\n          case \"anchorPoint\":\n          case \"AnchorPoint\":\n          case \"Anchor Point\":\n          case \"ADBE AnchorPoint\":\n          case 1:\n            return _thisFunction.anchorPoint;\n\n          case \"opacity\":\n          case \"Opacity\":\n          case 11:\n            return _thisFunction.opacity;\n\n          default:\n            return null;\n        }\n      }\n\n      Object.defineProperty(_thisFunction, \"rotation\", {\n        get: ExpressionPropertyInterface(transform.r || transform.rz)\n      });\n      Object.defineProperty(_thisFunction, \"zRotation\", {\n        get: ExpressionPropertyInterface(transform.rz || transform.r)\n      });\n      Object.defineProperty(_thisFunction, \"xRotation\", {\n        get: ExpressionPropertyInterface(transform.rx)\n      });\n      Object.defineProperty(_thisFunction, \"yRotation\", {\n        get: ExpressionPropertyInterface(transform.ry)\n      });\n      Object.defineProperty(_thisFunction, \"scale\", {\n        get: ExpressionPropertyInterface(transform.s)\n      });\n\n      var _px;\n\n      var _py;\n\n      var _pz;\n\n      var _transformFactory;\n\n      if (transform.p) {\n        _transformFactory = ExpressionPropertyInterface(transform.p);\n      } else {\n        _px = ExpressionPropertyInterface(transform.px);\n        _py = ExpressionPropertyInterface(transform.py);\n\n        if (transform.pz) {\n          _pz = ExpressionPropertyInterface(transform.pz);\n        }\n      }\n\n      Object.defineProperty(_thisFunction, \"position\", {\n        get: function () {\n          if (transform.p) {\n            return _transformFactory();\n          }\n\n          return [_px(), _py(), _pz ? _pz() : 0];\n        }\n      });\n      Object.defineProperty(_thisFunction, \"xPosition\", {\n        get: ExpressionPropertyInterface(transform.px)\n      });\n      Object.defineProperty(_thisFunction, \"yPosition\", {\n        get: ExpressionPropertyInterface(transform.py)\n      });\n      Object.defineProperty(_thisFunction, \"zPosition\", {\n        get: ExpressionPropertyInterface(transform.pz)\n      });\n      Object.defineProperty(_thisFunction, \"anchorPoint\", {\n        get: ExpressionPropertyInterface(transform.a)\n      });\n      Object.defineProperty(_thisFunction, \"opacity\", {\n        get: ExpressionPropertyInterface(transform.o)\n      });\n      Object.defineProperty(_thisFunction, \"skew\", {\n        get: ExpressionPropertyInterface(transform.sk)\n      });\n      Object.defineProperty(_thisFunction, \"skewAxis\", {\n        get: ExpressionPropertyInterface(transform.sa)\n      });\n      Object.defineProperty(_thisFunction, \"orientation\", {\n        get: ExpressionPropertyInterface(transform.or)\n      });\n      return _thisFunction;\n    };\n  }();\n  /* exported ProjectInterface */\n\n\n  ProjectInterface = function () {\n    function registerComposition(comp) {\n      (this || _global).compositions.push(comp);\n    }\n\n    return function () {\n      function _thisProjectFunction(name) {\n        var i = 0;\n        var len = (this || _global).compositions.length;\n\n        while (i < len) {\n          if ((this || _global).compositions[i].data && (this || _global).compositions[i].data.nm === name) {\n            if ((this || _global).compositions[i].prepareFrame && (this || _global).compositions[i].data.xt) {\n              (this || _global).compositions[i].prepareFrame((this || _global).currentFrame);\n            }\n\n            return (this || _global).compositions[i].compInterface;\n          }\n\n          i += 1;\n        }\n\n        return null;\n      }\n\n      _thisProjectFunction.compositions = [];\n      _thisProjectFunction.currentFrame = 0;\n      _thisProjectFunction.registerComposition = registerComposition;\n      return _thisProjectFunction;\n    };\n  }();\n  /* global propertyGroupFactory, ExpressionPropertyInterface, PropertyInterface */\n\n  /* exported EffectsExpressionInterface */\n\n\n  var EffectsExpressionInterface = function () {\n    var ob = {\n      createEffectsInterface: createEffectsInterface\n    };\n\n    function createEffectsInterface(elem, propertyGroup) {\n      if (elem.effectsManager) {\n        var effectElements = [];\n        var effectsData = elem.data.ef;\n        var i;\n        var len = elem.effectsManager.effectElements.length;\n\n        for (i = 0; i < len; i += 1) {\n          effectElements.push(createGroupInterface(effectsData[i], elem.effectsManager.effectElements[i], propertyGroup, elem));\n        }\n\n        var effects = elem.data.ef || [];\n\n        var groupInterface = function (name) {\n          i = 0;\n          len = effects.length;\n\n          while (i < len) {\n            if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n              return effectElements[i];\n            }\n\n            i += 1;\n          }\n\n          return null;\n        };\n\n        Object.defineProperty(groupInterface, \"numProperties\", {\n          get: function () {\n            return effects.length;\n          }\n        });\n        return groupInterface;\n      }\n\n      return null;\n    }\n\n    function createGroupInterface(data, elements, propertyGroup, elem) {\n      function groupInterface(name) {\n        var effects = data.ef;\n        var i = 0;\n        var len = effects.length;\n\n        while (i < len) {\n          if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n            if (effects[i].ty === 5) {\n              return effectElements[i];\n            }\n\n            return effectElements[i]();\n          }\n\n          i += 1;\n        }\n\n        throw new Error();\n      }\n\n      var _propertyGroup = propertyGroupFactory(groupInterface, propertyGroup);\n\n      var effectElements = [];\n      var i;\n      var len = data.ef.length;\n\n      for (i = 0; i < len; i += 1) {\n        if (data.ef[i].ty === 5) {\n          effectElements.push(createGroupInterface(data.ef[i], elements.effectElements[i], elements.effectElements[i].propertyGroup, elem));\n        } else {\n          effectElements.push(createValueInterface(elements.effectElements[i], data.ef[i].ty, elem, _propertyGroup));\n        }\n      }\n\n      if (data.mn === \"ADBE Color Control\") {\n        Object.defineProperty(groupInterface, \"color\", {\n          get: function () {\n            return effectElements[0]();\n          }\n        });\n      }\n\n      Object.defineProperties(groupInterface, {\n        numProperties: {\n          get: function () {\n            return data.np;\n          }\n        },\n        _name: {\n          value: data.nm\n        },\n        propertyGroup: {\n          value: _propertyGroup\n        }\n      });\n      groupInterface.enabled = data.en !== 0;\n      groupInterface.active = groupInterface.enabled;\n      return groupInterface;\n    }\n\n    function createValueInterface(element, type, elem, propertyGroup) {\n      var expressionProperty = ExpressionPropertyInterface(element.p);\n\n      function interfaceFunction() {\n        if (type === 10) {\n          return elem.comp.compInterface(element.p.v);\n        }\n\n        return expressionProperty();\n      }\n\n      if (element.p.setGroupProperty) {\n        element.p.setGroupProperty(PropertyInterface(\"\", propertyGroup));\n      }\n\n      return interfaceFunction;\n    }\n\n    return ob;\n  }();\n  /* global createSizedArray */\n\n  /* exported MaskManagerInterface */\n\n\n  var MaskManagerInterface = function () {\n    function MaskInterface(mask, data) {\n      (this || _global)._mask = mask;\n      (this || _global)._data = data;\n    }\n\n    Object.defineProperty(MaskInterface.prototype, \"maskPath\", {\n      get: function () {\n        if ((this || _global)._mask.prop.k) {\n          (this || _global)._mask.prop.getValue();\n        }\n\n        return (this || _global)._mask.prop;\n      }\n    });\n    Object.defineProperty(MaskInterface.prototype, \"maskOpacity\", {\n      get: function () {\n        if ((this || _global)._mask.op.k) {\n          (this || _global)._mask.op.getValue();\n        }\n\n        return (this || _global)._mask.op.v * 100;\n      }\n    });\n\n    var MaskManager = function (maskManager) {\n      var _masksInterfaces = createSizedArray(maskManager.viewData.length);\n\n      var i;\n      var len = maskManager.viewData.length;\n\n      for (i = 0; i < len; i += 1) {\n        _masksInterfaces[i] = new MaskInterface(maskManager.viewData[i], maskManager.masksProperties[i]);\n      }\n\n      var maskFunction = function (name) {\n        i = 0;\n\n        while (i < len) {\n          if (maskManager.masksProperties[i].nm === name) {\n            return _masksInterfaces[i];\n          }\n\n          i += 1;\n        }\n\n        return null;\n      };\n\n      return maskFunction;\n    };\n\n    return MaskManager;\n  }();\n  /* global createTypedArray */\n\n  /* exported ExpressionPropertyInterface */\n\n\n  var ExpressionPropertyInterface = function () {\n    var defaultUnidimensionalValue = {\n      pv: 0,\n      v: 0,\n      mult: 1\n    };\n    var defaultMultidimensionalValue = {\n      pv: [0, 0, 0],\n      v: [0, 0, 0],\n      mult: 1\n    };\n\n    function completeProperty(expressionValue, property, type) {\n      Object.defineProperty(expressionValue, \"velocity\", {\n        get: function () {\n          return property.getVelocityAtTime(property.comp.currentFrame);\n        }\n      });\n      expressionValue.numKeys = property.keyframes ? property.keyframes.length : 0;\n\n      expressionValue.key = function (pos) {\n        if (!expressionValue.numKeys) {\n          return 0;\n        }\n\n        var value = \"\";\n\n        if (\"s\" in property.keyframes[pos - 1]) {\n          value = property.keyframes[pos - 1].s;\n        } else if (\"e\" in property.keyframes[pos - 2]) {\n          value = property.keyframes[pos - 2].e;\n        } else {\n          value = property.keyframes[pos - 2].s;\n        }\n\n        var valueProp = type === \"unidimensional\" ? new Number(value) : Object.assign({}, value); // eslint-disable-line no-new-wrappers\n\n        valueProp.time = property.keyframes[pos - 1].t / property.elem.comp.globalData.frameRate;\n        valueProp.value = type === \"unidimensional\" ? value[0] : value;\n        return valueProp;\n      };\n\n      expressionValue.valueAtTime = property.getValueAtTime;\n      expressionValue.speedAtTime = property.getSpeedAtTime;\n      expressionValue.velocityAtTime = property.getVelocityAtTime;\n      expressionValue.propertyGroup = property.propertyGroup;\n    }\n\n    function UnidimensionalPropertyInterface(property) {\n      if (!property || !(\"pv\" in property)) {\n        property = defaultUnidimensionalValue;\n      }\n\n      var mult = 1 / property.mult;\n      var val = property.pv * mult;\n      var expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\n      expressionValue.value = val;\n      completeProperty(expressionValue, property, \"unidimensional\");\n      return function () {\n        if (property.k) {\n          property.getValue();\n        }\n\n        val = property.v * mult;\n\n        if (expressionValue.value !== val) {\n          expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\n          expressionValue.value = val;\n          completeProperty(expressionValue, property, \"unidimensional\");\n        }\n\n        return expressionValue;\n      };\n    }\n\n    function MultidimensionalPropertyInterface(property) {\n      if (!property || !(\"pv\" in property)) {\n        property = defaultMultidimensionalValue;\n      }\n\n      var mult = 1 / property.mult;\n      var len = property.data && property.data.l || property.pv.length;\n      var expressionValue = createTypedArray(\"float32\", len);\n      var arrValue = createTypedArray(\"float32\", len);\n      expressionValue.value = arrValue;\n      completeProperty(expressionValue, property, \"multidimensional\");\n      return function () {\n        if (property.k) {\n          property.getValue();\n        }\n\n        for (var i = 0; i < len; i += 1) {\n          arrValue[i] = property.v[i] * mult;\n          expressionValue[i] = arrValue[i];\n        }\n\n        return expressionValue;\n      };\n    } // TODO: try to avoid using this getter\n\n\n    function defaultGetter() {\n      return defaultUnidimensionalValue;\n    }\n\n    return function (property) {\n      if (!property) {\n        return defaultGetter;\n      }\n\n      if (property.propType === \"unidimensional\") {\n        return UnidimensionalPropertyInterface(property);\n      }\n\n      return MultidimensionalPropertyInterface(property);\n    };\n  }();\n  /* global expressionHelpers, TextSelectorProp, ExpressionManager */\n\n  /* exported TextExpressionSelectorProp */\n\n\n  (function () {\n    var TextExpressionSelectorProp = function () {\n      // eslint-disable-line no-unused-vars\n      function getValueProxy(index, total) {\n        (this || _global).textIndex = index + 1;\n        (this || _global).textTotal = total;\n        (this || _global).v = this.getValue() * (this || _global).mult;\n        return (this || _global).v;\n      }\n\n      return function TextExpressionSelectorPropFactory(elem, data) {\n        (this || _global).pv = 1;\n        (this || _global).comp = elem.comp;\n        (this || _global).elem = elem;\n        (this || _global).mult = 0.01;\n        (this || _global).propType = \"textSelector\";\n        (this || _global).textTotal = data.totalChars;\n        (this || _global).selectorValue = 100;\n        (this || _global).lastValue = [1, 1, 1];\n        (this || _global).k = true;\n        (this || _global).x = true;\n        (this || _global).getValue = ExpressionManager.initiateExpression.bind(this || _global)(elem, data, this || _global);\n        (this || _global).getMult = getValueProxy;\n        (this || _global).getVelocityAtTime = expressionHelpers.getVelocityAtTime;\n\n        if ((this || _global).kf) {\n          (this || _global).getValueAtTime = expressionHelpers.getValueAtTime.bind(this || _global);\n        } else {\n          (this || _global).getValueAtTime = expressionHelpers.getStaticValueAtTime.bind(this || _global);\n        }\n\n        (this || _global).setGroupProperty = expressionHelpers.setGroupProperty;\n      };\n    }();\n\n    var propertyGetTextProp = TextSelectorProp.getTextSelectorProp;\n\n    TextSelectorProp.getTextSelectorProp = function (elem, data, arr) {\n      if (data.t === 1) {\n        return new TextExpressionSelectorPropFactory(elem, data, arr); // eslint-disable-line no-undef\n      }\n\n      return propertyGetTextProp(elem, data, arr);\n    };\n  })();\n  /* global PropertyFactory */\n\n  /* exported SliderEffect, AngleEffect, ColorEffect, PointEffect, LayerIndexEffect, MaskIndexEffect, CheckboxEffect, NoValueEffect */\n\n\n  function SliderEffect(data, elem, container) {\n    (this || _global).p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n  }\n\n  function AngleEffect(data, elem, container) {\n    (this || _global).p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n  }\n\n  function ColorEffect(data, elem, container) {\n    (this || _global).p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n  }\n\n  function PointEffect(data, elem, container) {\n    (this || _global).p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n  }\n\n  function LayerIndexEffect(data, elem, container) {\n    (this || _global).p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n  }\n\n  function MaskIndexEffect(data, elem, container) {\n    (this || _global).p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n  }\n\n  function CheckboxEffect(data, elem, container) {\n    (this || _global).p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n  }\n\n  function NoValueEffect() {\n    (this || _global).p = {};\n  }\n  /* global extendPrototype, SliderEffect, AngleEffect, ColorEffect, PointEffect, CheckboxEffect, LayerIndexEffect,\r\n  MaskIndexEffect, NoValueEffect, DynamicPropertyContainer */\n\n\n  function EffectsManager(data, element) {\n    var effects = data.ef || [];\n    (this || _global).effectElements = [];\n    var i;\n    var len = effects.length;\n    var effectItem;\n\n    for (i = 0; i < len; i += 1) {\n      effectItem = new GroupEffect(effects[i], element);\n\n      (this || _global).effectElements.push(effectItem);\n    }\n  }\n\n  function GroupEffect(data, element) {\n    this.init(data, element);\n  }\n\n  extendPrototype([DynamicPropertyContainer], GroupEffect);\n  GroupEffect.prototype.getValue = GroupEffect.prototype.iterateDynamicProperties;\n\n  GroupEffect.prototype.init = function (data, element) {\n    (this || _global).data = data;\n    (this || _global).effectElements = [];\n    this.initDynamicPropertyContainer(element);\n    var i;\n    var len = (this || _global).data.ef.length;\n    var eff;\n    var effects = (this || _global).data.ef;\n\n    for (i = 0; i < len; i += 1) {\n      eff = null;\n\n      switch (effects[i].ty) {\n        case 0:\n          eff = new SliderEffect(effects[i], element, this || _global);\n          break;\n\n        case 1:\n          eff = new AngleEffect(effects[i], element, this || _global);\n          break;\n\n        case 2:\n          eff = new ColorEffect(effects[i], element, this || _global);\n          break;\n\n        case 3:\n          eff = new PointEffect(effects[i], element, this || _global);\n          break;\n\n        case 4:\n        case 7:\n          eff = new CheckboxEffect(effects[i], element, this || _global);\n          break;\n\n        case 10:\n          eff = new LayerIndexEffect(effects[i], element, this || _global);\n          break;\n\n        case 11:\n          eff = new MaskIndexEffect(effects[i], element, this || _global);\n          break;\n\n        case 5:\n          eff = new EffectsManager(effects[i], element, this || _global);\n          break;\n        // case 6:\n\n        default:\n          eff = new NoValueEffect(effects[i], element, this || _global);\n          break;\n      }\n\n      if (eff) {\n        (this || _global).effectElements.push(eff);\n      }\n    }\n  };\n\n  var lottie = {};\n\n  function setLocationHref(href) {\n    locationHref = href;\n  }\n\n  function searchAnimations() {\n    if (standalone === true) {\n      animationManager.searchAnimations(animationData, standalone, renderer);\n    } else {\n      animationManager.searchAnimations();\n    }\n  }\n\n  function setSubframeRendering(flag) {\n    subframeEnabled = flag;\n  }\n\n  function loadAnimation(params) {\n    if (standalone === true) {\n      params.animationData = JSON.parse(animationData);\n    }\n\n    return animationManager.loadAnimation(params);\n  }\n\n  function setQuality(value) {\n    if (typeof value === \"string\") {\n      switch (value) {\n        case \"high\":\n          defaultCurveSegments = 200;\n          break;\n\n        default:\n        case \"medium\":\n          defaultCurveSegments = 50;\n          break;\n\n        case \"low\":\n          defaultCurveSegments = 10;\n          break;\n      }\n    } else if (!isNaN(value) && value > 1) {\n      defaultCurveSegments = value;\n    }\n\n    if (defaultCurveSegments >= 50) {\n      roundValues(false);\n    } else {\n      roundValues(true);\n    }\n  }\n\n  function inBrowser() {\n    return typeof navigator !== \"undefined\";\n  }\n\n  function installPlugin(type, plugin) {\n    if (type === \"expressions\") {\n      expressionsPlugin = plugin;\n    }\n  }\n\n  function getFactory(name) {\n    switch (name) {\n      case \"propertyFactory\":\n        return PropertyFactory;\n\n      case \"shapePropertyFactory\":\n        return ShapePropertyFactory;\n\n      case \"matrix\":\n        return Matrix;\n\n      default:\n        return null;\n    }\n  }\n\n  lottie.play = animationManager.play;\n  lottie.pause = animationManager.pause;\n  lottie.setLocationHref = setLocationHref;\n  lottie.togglePause = animationManager.togglePause;\n  lottie.setSpeed = animationManager.setSpeed;\n  lottie.setDirection = animationManager.setDirection;\n  lottie.stop = animationManager.stop;\n  lottie.searchAnimations = searchAnimations;\n  lottie.registerAnimation = animationManager.registerAnimation;\n  lottie.loadAnimation = loadAnimation;\n  lottie.setSubframeRendering = setSubframeRendering;\n  lottie.resize = animationManager.resize; // lottie.start = start;\n\n  lottie.goToAndStop = animationManager.goToAndStop;\n  lottie.destroy = animationManager.destroy;\n  lottie.setQuality = setQuality;\n  lottie.inBrowser = inBrowser;\n  lottie.installPlugin = installPlugin;\n  lottie.freeze = animationManager.freeze;\n  lottie.unfreeze = animationManager.unfreeze;\n  lottie.setVolume = animationManager.setVolume;\n  lottie.mute = animationManager.mute;\n  lottie.unmute = animationManager.unmute;\n  lottie.getRegisteredAnimations = animationManager.getRegisteredAnimations;\n  lottie.__getFactory = getFactory;\n  lottie.version = \"5.7.8\";\n\n  function checkReady() {\n    if (document.readyState === \"complete\") {\n      clearInterval(readyStateCheckInterval);\n      searchAnimations();\n    }\n  }\n\n  function getQueryVariable(variable) {\n    var vars = queryString.split(\"&\");\n\n    for (var i = 0; i < vars.length; i += 1) {\n      var pair = vars[i].split(\"=\");\n\n      if (decodeURIComponent(pair[0]) == variable) {\n        // eslint-disable-line eqeqeq\n        return decodeURIComponent(pair[1]);\n      }\n    }\n\n    return null;\n  }\n\n  var standalone = \"__[STANDALONE]__\";\n  var animationData = \"__[ANIMATIONDATA]__\";\n  var renderer = \"\";\n  var queryString;\n\n  if (standalone) {\n    var scripts = document.getElementsByTagName(\"script\");\n    var index = scripts.length - 1;\n    var myScript = scripts[index] || {\n      src: \"\"\n    };\n    queryString = myScript.src.replace(/^[^\\?]+\\??/, \"\"); // eslint-disable-line no-useless-escape\n\n    renderer = getQueryVariable(\"renderer\");\n  }\n\n  var readyStateCheckInterval = setInterval(checkReady, 100);\n  return lottie;\n});\nvar exports$1 = exports;\n\nexport default exports$1;\n\n//# sourceMappingURL=npm:lottie-web@5.7.8!cjs.map","export { default } from \"/npm:lottie-web@5.7.8!cjs\";\n","import{jsx as _jsx}from\"react/jsx-runtime\";import{useRef,useCallback,useEffect}from\"react\";import{motion,addPropertyControls,ControlType,RenderTarget}from\"framer\";import{defaultEvents}from\"https://framer.com/m/framer/default-utils.js@^0.45.0\";import{useAutoMotionValue}from\"https://framer.com/m/framer/useAutoMotionValue.js@0.3.0\";import lottie from\"https://jspm.dev/lottie-web@5.7.8\";var SrcType;(function(SrcType){SrcType[\"File\"]=\"Upload\";SrcType[\"Url\"]=\"URL\";})(SrcType||(SrcType={}));var Poster;(function(Poster){Poster[\"Auto\"]=\"Auto\";Poster[\"Custom\"]=\"Custom\";})(Poster||(Poster={}));const placeholderUrl=\"https://raw.githubusercontent.com/framer/Lottie/master/Lottie.framerfx/assets/logo.json\";/**\n * LOTTIE\n *\n * @framerIntrinsicWidth 200\n * @framerIntrinsicHeight 350\n *\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n */ export function Lottie(props){const{style,srcUrl,srcFile,srcType,poster,progress:progressRaw,playing,loop,posterProgress,pauseOnCanvas,isForwardsDirection,speed,onClick,onMouseEnter,onMouseLeave,onMouseDown,onMouseUp,onComplete}=props;const isOnCanvas=RenderTarget.current()===RenderTarget.canvas;const shouldPlay=(!pauseOnCanvas||!isOnCanvas)&&playing;const direction=isForwardsDirection?1:-1;const isCustomPoster=poster===Poster.Custom;const el=useRef();const didInitialMount=useRef(false);const animationInfo=useRef({data:null,animation:null,duration:null});const progress=useAutoMotionValue(progressRaw,{transform:v=>v*.01});const play=()=>{var ref,ref1;return(ref=animationInfo.current)===null||ref===void 0?void 0:(ref1=ref.animation)===null||ref1===void 0?void 0:ref1.play();};const pause=()=>{var ref,ref1;return(ref=animationInfo.current)===null||ref===void 0?void 0:(ref1=ref.animation)===null||ref1===void 0?void 0:ref1.pause();};const destroy=()=>{var ref,ref1;return(ref=animationInfo.current)===null||ref===void 0?void 0:(ref1=ref.animation)===null||ref1===void 0?void 0:ref1.destroy();};const scrubTo=useCallback((normalizedProgress,shouldPlayAfter)=>{if(!animationInfo.current.duration||!animationInfo.current.animation)return;// Lottie gets weird when scrubbing to the exact last frame\nconst frameNumberTarget=normalizedProgress===1?animationInfo.current.duration-1:normalizedProgress*animationInfo.current.duration;if(shouldPlayAfter)animationInfo.current.animation.goToAndPlay(frameNumberTarget,true);else animationInfo.current.animation.goToAndStop(frameNumberTarget,true);},[]);const fetchLottieData=useCallback(async url=>{if(!url)return null;const data=await fetch(url,{method:\"GET\",credentials:\"omit\",redirect:\"follow\"}).then(d=>d.json());return data;},[]);// Fetch lottie animation & start setup\nconst init=useCallback(async()=>{// Clear current animation\ndestroy();let dataUrl;if(srcType===SrcType.Url)dataUrl=srcUrl;if(srcType===SrcType.File)dataUrl=srcFile;if(!dataUrl){console.warn(\"No valid Lottie animation provided\");dataUrl=placeholderUrl;}const data=await fetchLottieData(dataUrl);animationInfo.current.data=data;return setup(didInitialMount.current);},[srcType,srcUrl,srcFile]);// Create Lottie animation\nconst setup=useCallback(shouldPlayAfter=>{if(!el.current)return;destroy();const options={container:el.current,renderer:\"svg\",loop:!isOnCanvas&&loop,autoplay:shouldPlay,animationData:animationInfo.current.data,rendererSettings:{preserveAspectRatio:\"xMidYMid slice\"}};const anim=animationInfo.current.animation=lottie.loadAnimation(options);animationInfo.current.duration=anim.getDuration(true);anim.setDirection(direction);anim.setSpeed(speed);didInitialMount.current=true;if(isOnCanvas&&isCustomPoster)scrubTo(posterProgress,false);else scrubTo(progress.get(),shouldPlay||shouldPlayAfter);return()=>{anim.destroy();};},[loop,shouldPlay,speed,direction,isOnCanvas,isCustomPoster,posterProgress,]);// Initial setup or re-init when source changes\nuseEffect(()=>{let cleanup;init().then(c=>cleanup=c);return()=>{if(cleanup)cleanup();};},[srcType,srcFile,srcUrl]);// No run-time option for loop option, recreating anim\nuseEffect(()=>{if(!didInitialMount.current)return;return setup(false);},[loop]);// Perf hack lets see if anyone notices\nuseEffect(()=>lottie.setQuality(isOnCanvas?\"low\":\"medium\"),[]);// useEffect(() => {\n//     if (!isOnCanvas) return\n//     const normalizedProgress = progress.get() * 0.01\n//     if (shouldPlay) scrubTo(normalizedProgress, true)\n//     else scrubTo(normalizedProgress, false)\n// }, [progressRaw, shouldPlay])\nuseEffect(()=>progress.onChange(val=>{if(isOnCanvas)return;if(shouldPlay)scrubTo(val,true);else scrubTo(val,false);}),[]);useEffect(()=>{const val=progress.get();if(shouldPlay)scrubTo(val,true);else scrubTo(val,false);},[progressRaw]);useEffect(()=>{if(!isOnCanvas)return;const normalizedPosterProgress=posterProgress*.01;if(isCustomPoster)scrubTo(normalizedPosterProgress,false);else scrubTo(progress.get(),false);},[isCustomPoster,posterProgress]);useEffect(()=>{var ref;if(!((ref=animationInfo.current)===null||ref===void 0?void 0:ref.animation))return;animationInfo.current.animation.setSpeed(speed);scrubTo(progress.get(),true);},[speed]);useEffect(()=>{var ref;if(!((ref=animationInfo.current)===null||ref===void 0?void 0:ref.animation))return;animationInfo.current.animation.setDirection(direction);scrubTo(progress.get(),true);},[direction]);useEffect(()=>{if(shouldPlay)play();else pause();},[shouldPlay]);return /*#__PURE__*/ _jsx(motion.div,{ref:el,style:style,onClick,onMouseEnter,onMouseLeave,onMouseDown,onMouseUp});}Lottie.defaultProps={height:200,width:200,srcType:SrcType.Url,pauseOnCanvas:true,srcUrl:placeholderUrl,progress:0,poster:Poster.Auto,posterProgress:0};addPropertyControls(Lottie,{srcType:{type:ControlType.Enum,displaySegmentedControl:true,title:\"Source\",options:[SrcType.Url,SrcType.File]},srcUrl:{type:ControlType.String,title:\" \",placeholder:\"../example.json\",hidden:props=>props.srcType===SrcType.File},srcFile:{type:ControlType.File,title:\" \",allowedFileTypes:[\"json\"],hidden:props=>props.srcType===SrcType.Url},playing:{type:ControlType.Boolean,title:\"Playing\",enabledTitle:\"Yes\",disabledTitle:\"No\"},// Temporarily disabling for perf\n// pauseOnCanvas: {\n//     type: ControlType.Boolean,\n//     title: \"Canvas\",\n//     disabledTitle: \"Play\",\n//     enabledTitle: \"Pause\",\n//     hidden: (props) => props.playing === false,\n// },\nloop:{type:ControlType.Boolean,title:\"Loop\",enabledTitle:\"Yes\",disabledTitle:\"No\"},isForwardsDirection:{title:\"Direction\",type:ControlType.Boolean,enabledTitle:\"Normal\",disabledTitle:\"Reverse\"},speed:{type:ControlType.Number,defaultValue:1,min:0,max:10,step:.5,displayStepper:true,unit:\"x\"},poster:{title:\"Poster\",type:ControlType.Enum,options:[Poster.Auto,Poster.Custom],displaySegmentedControl:true},posterProgress:{title:\" \",type:ControlType.Number,max:100,min:0,unit:\"%\",hidden:({poster})=>poster===Poster.Auto},progress:{title:\"Progress\",type:ControlType.Number,max:100,min:0,unit:\"%\",description:\"This component is made for JSON files. [Learn more here](https://lottiefiles.com/what-is-lottie).\"},...defaultEvents});\nexport const __FramerMetadata__ = {\"exports\":{\"Lottie\":{\"type\":\"reactComponent\",\"name\":\"Lottie\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"350\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerIntrinsicWidth\":\"200\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Lottie.map","// Generated by Framer (1119174)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ControlType,cx,CycleVariantState,getFonts,useActiveVariantCallback,useLocaleInfo,useOnVariantChange,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{Lottie}from\"https://framerusercontent.com/modules/YbkSqZ7STzW5WsMb1yan/7oWoX9MqdnxameM59dqC/Lottie.js\";const LottieFonts=getFonts(Lottie);const cycleOrder=[\"i28_dTTH_\",\"s0crk8aQw\"];const serializationHash=\"framer-6jeDQ\";const variantClassNames={i28_dTTH_:\"framer-v-1fq1c1q\",s0crk8aQw:\"framer-v-1gmh7m3\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants===null||variants===void 0?void 0:variants.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transitions={default:{damping:60,delay:0,mass:1,stiffness:500,type:\"spring\"},s0crk8aQw:{duration:0,type:\"tween\"}};const transformTemplate=(_,t)=>`translate(-50%, -50%) ${t}`;const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value!==null&&value!==void 0?value:config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const humanReadableVariantMap={\"Status Light Timing\":\"i28_dTTH_\",\"Status Light\":\"s0crk8aQw\"};const getProps=({height,id,width,...props})=>{var _humanReadableVariantMap_props_variant,_ref;return{...props,variant:(_ref=(_humanReadableVariantMap_props_variant=humanReadableVariantMap[props.variant])!==null&&_humanReadableVariantMap_props_variant!==void 0?_humanReadableVariantMap_props_variant:props.variant)!==null&&_ref!==void 0?_ref:\"i28_dTTH_\"};};const createLayoutDependency=(props,variants)=>variants.join(\"-\")+props.layoutDependency;const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const{activeLocale,setLocale}=useLocaleInfo();const{style,className,layoutId,variant,...restProps}=getProps(props);const{baseVariant,classNames,gestureVariant,setGestureState,setVariant,transition,variants}=useVariantState({cycleOrder,defaultVariant:\"i28_dTTH_\",transitions,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const{activeVariantCallback,delay}=useActiveVariantCallback(baseVariant);const onAppear1a2vbif=activeVariantCallback(async(...args)=>{await delay(()=>setVariant(CycleVariantState),1500);});const onClickf382t5=activeVariantCallback(async(...args)=>{await delay(()=>setVariant(CycleVariantState),2e3);});useOnVariantChange(baseVariant,{default:onAppear1a2vbif});const ref1=React.useRef(null);const isDisplayed=()=>{if(baseVariant===\"s0crk8aQw\")return true;return false;};const defaultLayoutId=React.useId();const sharedStyleClassNames=[];return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId!==null&&layoutId!==void 0?layoutId:defaultLayoutId,children:/*#__PURE__*/_jsx(motion.div,{initial:variant,animate:variants,onHoverStart:()=>setGestureState({isHovered:true}),onHoverEnd:()=>setGestureState({isHovered:false}),onTapStart:()=>setGestureState({isPressed:true}),onTap:()=>setGestureState({isPressed:false}),onTapCancel:()=>setGestureState({isPressed:false}),className:cx(\"framer-6jeDQ\",...sharedStyleClassNames,classNames),style:{display:\"contents\"},children:/*#__PURE__*/_jsx(Transition,{value:transition,children:/*#__PURE__*/_jsxs(motion.div,{...restProps,className:cx(\"framer-1fq1c1q\",className),\"data-framer-name\":\"Status Light Timing\",\"data-highlight\":true,layoutDependency:layoutDependency,layoutId:\"i28_dTTH_\",ref:ref!==null&&ref!==void 0?ref:ref1,style:{...style},...addPropertyOverrides({s0crk8aQw:{\"data-framer-name\":\"Status Light\"}},baseVariant,gestureVariant),children:[/*#__PURE__*/_jsx(motion.div,{className:\"framer-1jxjeqr\",layoutDependency:layoutDependency,layoutId:\"YvGt7Bjta\",style:{backgroundColor:\"var(--token-014f44b0-4365-49a2-a3e1-43e76509186b, rgb(173, 255, 133))\",borderBottomLeftRadius:64,borderBottomRightRadius:64,borderTopLeftRadius:64,borderTopRightRadius:64},transformTemplate:transformTemplate}),isDisplayed()&&/*#__PURE__*/_jsx(motion.div,{className:\"framer-1dylrlc-container\",layoutDependency:layoutDependency,layoutId:\"ot8PX6K_P-container\",children:/*#__PURE__*/_jsx(Lottie,{height:\"100%\",id:\"ot8PX6K_P\",isForwardsDirection:true,layoutId:\"ot8PX6K_P\",loop:true,onClick:onClickf382t5,playing:true,poster:\"Auto\",posterProgress:0,progress:0,speed:1,srcFile:\"https://framerusercontent.com/assets/f2dTQiQ94Rwb3gpaar5WrMYivjg.json\",srcType:\"Upload\",srcUrl:\"https://raw.githubusercontent.com/framer/Lottie/master/Lottie.framerfx/assets/logo.json\",style:{height:\"100%\",width:\"100%\"},width:\"100%\"})})]})})})});});const css=['.framer-6jeDQ [data-border=\"true\"]::after { content: \"\"; border-width: var(--border-top-width, 0) var(--border-right-width, 0) var(--border-bottom-width, 0) var(--border-left-width, 0); border-color: var(--border-color, none); border-style: var(--border-style, none); width: 100%; height: 100%; position: absolute; box-sizing: border-box; left: 0; top: 0; border-radius: inherit; pointer-events: none; }',\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-6jeDQ .framer-1s5i8ye { display: block; }\",\".framer-6jeDQ .framer-1fq1c1q { align-content: center; align-items: center; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: 24px; justify-content: center; overflow: visible; padding: 0px 0px 0px 0px; position: relative; width: 24px; }\",\".framer-6jeDQ .framer-1jxjeqr { aspect-ratio: 1 / 1; flex: none; height: var(--framer-aspect-ratio-supported, 8px); left: 50%; overflow: visible; position: absolute; top: 50%; width: 8px; z-index: 1; }\",\".framer-6jeDQ .framer-1dylrlc-container { flex: none; height: 24px; position: relative; width: 24px; }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-6jeDQ .framer-1fq1c1q { gap: 0px; } .framer-6jeDQ .framer-1fq1c1q > * { margin: 0px; margin-left: calc(10px / 2); margin-right: calc(10px / 2); } .framer-6jeDQ .framer-1fq1c1q > :first-child { margin-left: 0px; } .framer-6jeDQ .framer-1fq1c1q > :last-child { margin-right: 0px; } }\",\".framer-6jeDQ.framer-v-1gmh7m3 .framer-1jxjeqr { order: 1; }\",\".framer-6jeDQ.framer-v-1gmh7m3 .framer-1dylrlc-container { order: 0; }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 24\n * @framerIntrinsicWidth 24\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"fixed\"]},\"s0crk8aQw\":{\"layout\":[\"fixed\",\"fixed\"]}}}\n * @framerImmutableVariables true\n */const FramerxQbROYV_s=withCSS(Component,css,\"framer-6jeDQ\");export default FramerxQbROYV_s;FramerxQbROYV_s.displayName=\"Footer / Status Dot\";FramerxQbROYV_s.defaultProps={height:24,width:24};addPropertyControls(FramerxQbROYV_s,{variant:{options:[\"i28_dTTH_\",\"s0crk8aQw\"],optionTitles:[\"Status Light Timing\",\"Status Light\"],title:\"Variant\",type:ControlType.Enum}});addFonts(FramerxQbROYV_s,[...LottieFonts]);\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerxQbROYV_s\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"24\",\"framerImmutableVariables\":\"true\",\"framerIntrinsicHeight\":\"24\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"s0crk8aQw\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]}}}\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./xQbROYV_s.map","// Generated by Framer (705c3f6)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,ComponentViewportProvider,cx,getFonts,Link,RichText,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import FooterStatusDot from\"https://framerusercontent.com/modules/vSJtPEWTXklXdu92pyF1/H89BN9yhcE8dsFIpQW34/xQbROYV_s.js\";const FooterStatusDotFonts=getFonts(FooterStatusDot);const enabledGestures={V6VN451FE:{hover:true}};const cycleOrder=[\"V6VN451FE\"];const serializationHash=\"framer-riz4W\";const variantClassNames={V6VN451FE:\"framer-v-19sswjn\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants===null||variants===void 0?void 0:variants.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={damping:60,delay:0,mass:1,stiffness:500,type:\"spring\"};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value!==null&&value!==void 0?value:config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion(React.Fragment);const getProps=({height,id,width,...props})=>{return{...props};};const createLayoutDependency=(props,variants)=>variants.join(\"-\")+props.layoutDependency;const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const{activeLocale,setLocale}=useLocaleInfo();const{style,className,layoutId,variant,...restProps}=getProps(props);const{baseVariant,classNames,gestureVariant,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"V6VN451FE\",enabledGestures,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const ref1=React.useRef(null);const defaultLayoutId=React.useId();const sharedStyleClassNames=[];const componentViewport=useComponentViewport();return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId!==null&&layoutId!==void 0?layoutId:defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsx(Link,{href:{webPageId:\"augiA20Il\"},children:/*#__PURE__*/_jsxs(motion.a,{...restProps,className:`${cx(serializationHash,...sharedStyleClassNames,\"framer-19sswjn\",className,classNames)} framer-1v9ladh`,\"data-framer-name\":\"Status\",layoutDependency:layoutDependency,layoutId:\"V6VN451FE\",onHoverEnd:()=>setGestureState({isHovered:false}),onHoverStart:()=>setGestureState({isHovered:true}),onTap:()=>setGestureState({isPressed:false}),onTapCancel:()=>setGestureState({isPressed:false}),onTapStart:()=>setGestureState({isPressed:true}),ref:ref!==null&&ref!==void 0?ref:ref1,style:{borderBottomLeftRadius:8,borderBottomRightRadius:8,borderTopLeftRadius:8,borderTopRightRadius:8,...style},...addPropertyOverrides({\"V6VN451FE-hover\":{\"data-framer-name\":undefined}},baseVariant,gestureVariant),children:[/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(motion.div,{className:\"framer-uir7ko-container\",layoutDependency:layoutDependency,layoutId:\"emH2Z2Chj-container\",children:/*#__PURE__*/_jsx(FooterStatusDot,{height:\"100%\",id:\"emH2Z2Chj\",layoutId:\"emH2Z2Chj\",style:{height:\"100%\",width:\"100%\"},variant:\"i28_dTTH_\",width:\"100%\"})})}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7Um9ib3RvIE1vbm8tcmVndWxhcg==\",\"--framer-font-family\":'\"Roboto Mono\", monospace',\"--framer-font-size\":\"14px\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-6014b03e-96b6-44fc-a8fe-1c6402d9a85e, rgb(180, 185, 177)))\"},children:\"System Status\"})}),className:\"framer-18lqve0\",fonts:[\"GF;Roboto Mono-regular\"],layoutDependency:layoutDependency,layoutId:\"yeonjCwsF\",style:{\"--extracted-r6o4lv\":\"var(--token-6014b03e-96b6-44fc-a8fe-1c6402d9a85e, rgb(180, 185, 177))\"},variants:{\"V6VN451FE-hover\":{\"--extracted-r6o4lv\":\"var(--token-f07bd819-3132-4b59-b01d-c794567fa989, rgb(255, 255, 255))\"}},verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({\"V6VN451FE-hover\":{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7Um9ib3RvIE1vbm8tcmVndWxhcg==\",\"--framer-font-family\":'\"Roboto Mono\", monospace',\"--framer-font-size\":\"14px\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-f07bd819-3132-4b59-b01d-c794567fa989, rgb(255, 255, 255)))\"},children:\"System Status\"})})}},baseVariant,gestureVariant)})]})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-riz4W.framer-1v9ladh, .framer-riz4W .framer-1v9ladh { display: block; }\",\".framer-riz4W.framer-19sswjn { align-content: center; align-items: center; cursor: pointer; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: center; overflow: visible; padding: 0px 0px 0px 0px; position: relative; text-decoration: none; width: min-content; }\",\".framer-riz4W .framer-uir7ko-container { flex: none; height: 24px; position: relative; width: 24px; }\",\".framer-riz4W .framer-18lqve0 { flex: none; height: auto; position: relative; white-space: pre; width: auto; }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-riz4W.framer-19sswjn { gap: 0px; } .framer-riz4W.framer-19sswjn > * { margin: 0px; margin-left: calc(0px / 2); margin-right: calc(0px / 2); } .framer-riz4W.framer-19sswjn > :first-child { margin-left: 0px; } .framer-riz4W.framer-19sswjn > :last-child { margin-right: 0px; } }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 24\n * @framerIntrinsicWidth 133\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"auto\",\"auto\"]},\"a7rOF0URN\":{\"layout\":[\"auto\",\"auto\"]}}}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerComponentViewportWidth true\n */const FramerQmTh9PxQ3=withCSS(Component,css,\"framer-riz4W\");export default FramerQmTh9PxQ3;FramerQmTh9PxQ3.displayName=\"Footer / Status\";FramerQmTh9PxQ3.defaultProps={height:24,width:133};addFonts(FramerQmTh9PxQ3,[{explicitInter:true,fonts:[{family:\"Roboto Mono\",source:\"google\",style:\"normal\",url:\"https://fonts.gstatic.com/s/robotomono/v23/L0xuDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vqPRu-5Ip2sSQ.woff2\",weight:\"400\"}]},...FooterStatusDotFonts],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerQmTh9PxQ3\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"24\",\"framerImmutableVariables\":\"true\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"a7rOF0URN\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]}}}\",\"framerIntrinsicWidth\":\"133\",\"framerContractVersion\":\"1\",\"framerDisplayContentsDiv\":\"false\",\"framerComponentViewportWidth\":\"true\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./QmTh9PxQ3.map","// Generated by Framer (890879b)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,ControlType,cx,getFonts,getFontsFromSharedStyle,Link,ResolveLinks,RichText,SmartComponentScopedContainer,useComponentViewport,useLocaleInfo,useRouter,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import*as sharedStyle from\"https://framerusercontent.com/modules/yo13E6Qg0zyDgGbocHLi/QX90xNAcFgSt8QULAZZX/d2C9kOxg9.js\";import ComponentsLogo from\"https://framerusercontent.com/modules/5gC5k1B9WsqLP6EKkufg/IU59BpD92ZDZ8wUBkXrY/DFuNbTlyP.js\";import FooterSocialIcons from\"https://framerusercontent.com/modules/eruxoze6LVsT2VTFUDEa/L711kgCDANzKoAjN0Hea/NbNQ041Jk.js\";import FooterStatus from\"https://framerusercontent.com/modules/AaDoWH4LqfGmoNh6MI3p/gkYznt8kq3b8b9ia6usm/QmTh9PxQ3.js\";const ComponentsLogoFonts=getFonts(ComponentsLogo);const FooterSocialIconsFonts=getFonts(FooterSocialIcons);const FooterStatusFonts=getFonts(FooterStatus);const cycleOrder=[\"a08nDxcaO\",\"AZz0T45u4\"];const serializationHash=\"framer-Gv3Xx\";const variantClassNames={a08nDxcaO:\"framer-v-ae9m82\",AZz0T45u4:\"framer-v-1k65e8i\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={damping:60,delay:0,mass:1,stiffness:500,type:\"spring\"};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const humanReadableVariantMap={Desktop:\"a08nDxcaO\",Mobile:\"AZz0T45u4\"};const getProps=({height,id,width,...props})=>{return{...props,variant:humanReadableVariantMap[props.variant]??props.variant??\"a08nDxcaO\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"a08nDxcaO\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[sharedStyle.className];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);const router=useRouter();return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsx(motion.footer,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-ae9m82\",className,classNames),\"data-framer-name\":\"Desktop\",layoutDependency:layoutDependency,layoutId:\"a08nDxcaO\",ref:refBinding,style:{backgroundColor:\"rgb(6, 15, 17)\",...style},...addPropertyOverrides({AZz0T45u4:{\"data-framer-name\":\"Mobile\"}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsxs(motion.div,{className:\"framer-4ve0ig\",\"data-framer-name\":\"Container\",layoutDependency:layoutDependency,layoutId:\"WV0BhiQkF\",children:[/*#__PURE__*/_jsx(motion.nav,{className:\"framer-1636vyb\",\"data-framer-name\":\"Links\",layoutDependency:layoutDependency,layoutId:\"MB_RPlU_C\",children:/*#__PURE__*/_jsxs(motion.div,{className:\"framer-18xv9si\",\"data-framer-name\":\"Links\",layoutDependency:layoutDependency,layoutId:\"BNafFIlle\",children:[/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1nz41rn\",\"data-framer-name\":\"Logo\",layoutDependency:layoutDependency,layoutId:\"lyvk1Fusi\",children:[/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-7lsz66-container\",layoutDependency:layoutDependency,layoutId:\"hPYet6uSh-container\",nodeId:\"hPYet6uSh\",rendersWithMotion:true,scopeId:\"i_DY9JftS\",children:/*#__PURE__*/_jsx(ComponentsLogo,{height:\"100%\",id:\"hPYet6uSh\",layoutId:\"hPYet6uSh\",width:\"100%\"})})}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-tch0h5\",layoutDependency:layoutDependency,layoutId:\"vTuFEWuiR\",children:/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{webPageId:\"augiA20Il\"},implicitPathVariables:undefined},{href:{webPageId:\"augiA20Il\"},implicitPathVariables:undefined}],children:resolvedLinks=>/*#__PURE__*/_jsx(ComponentViewportProvider,{height:18,width:\"18px\",y:(componentViewport?.y||0)+40+0+0+0+0+0+0+0+72+0,...addPropertyOverrides({AZz0T45u4:{y:(componentViewport?.y||0)+20+0+0+0+0+0+0+0+0+72+0}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-15hcsi9-container\",layoutDependency:layoutDependency,layoutId:\"rZ4Usqg5i-container\",nodeId:\"rZ4Usqg5i\",rendersWithMotion:true,scopeId:\"i_DY9JftS\",children:/*#__PURE__*/_jsx(FooterSocialIcons,{height:\"100%\",id:\"rZ4Usqg5i\",layoutId:\"rZ4Usqg5i\",style:{height:\"100%\",width:\"100%\"},variant:\"mb7VjMu9v\",vPbP3u8UG:resolvedLinks[0],width:\"100%\",...addPropertyOverrides({AZz0T45u4:{vPbP3u8UG:resolvedLinks[1]}},baseVariant,gestureVariant)})})})})})]}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1ghwznm\",\"data-framer-name\":\"Row\",layoutDependency:layoutDependency,layoutId:\"zFI1phDgO\",children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.h6,{style:{\"--font-selector\":\"R0Y7Um9ib3RvIE1vbm8tNTAw\",\"--framer-font-family\":'\"Roboto Mono\", monospace',\"--framer-font-size\":\"15px\",\"--framer-font-weight\":\"500\",\"--framer-line-height\":\"1.4em\",\"--framer-text-color\":\"var(--extracted-1w1cjl5, var(--token-f07bd819-3132-4b59-b01d-c794567fa989, rgb(255, 255, 255)))\",\"--framer-text-transform\":\"uppercase\"},children:\"Company\"})}),className:\"framer-151339f\",fonts:[\"GF;Roboto Mono-500\"],layoutDependency:layoutDependency,layoutId:\"LcaNAmE1K\",style:{\"--extracted-1w1cjl5\":\"var(--token-f07bd819-3132-4b59-b01d-c794567fa989, rgb(255, 255, 255))\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7Um9ib3RvIE1vbm8tcmVndWxhcg==\",\"--framer-font-family\":'\"Roboto Mono\", monospace',\"--framer-font-size\":\"15px\",\"--framer-line-height\":\"1.4em\",\"--framer-text-alignment\":\"left\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-6014b03e-96b6-44fc-a8fe-1c6402d9a85e, rgb(180, 185, 177)))\"},children:/*#__PURE__*/_jsx(Link,{href:{webPageId:\"KEaS4HibG\"},motionChild:true,nodeId:\"gu4B_OkGh\",openInNewTab:false,scopeId:\"i_DY9JftS\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-4pa8r7\",\"data-styles-preset\":\"d2C9kOxg9\",children:\"About\"})})})}),className:\"framer-87lij7\",fonts:[\"GF;Roboto Mono-regular\"],layoutDependency:layoutDependency,layoutId:\"gu4B_OkGh\",style:{\"--extracted-r6o4lv\":\"var(--token-6014b03e-96b6-44fc-a8fe-1c6402d9a85e, rgb(180, 185, 177))\"},verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7Um9ib3RvIE1vbm8tcmVndWxhcg==\",\"--framer-font-family\":'\"Roboto Mono\", monospace',\"--framer-font-size\":\"15px\",\"--framer-line-height\":\"1.4em\",\"--framer-text-alignment\":\"left\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-6014b03e-96b6-44fc-a8fe-1c6402d9a85e, rgb(180, 185, 177)))\"},children:/*#__PURE__*/_jsx(Link,{href:{webPageId:\"aw67gyJIs\"},motionChild:true,nodeId:\"e3ObjleHV\",openInNewTab:false,scopeId:\"i_DY9JftS\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-4pa8r7\",\"data-styles-preset\":\"d2C9kOxg9\",children:\"Blog\"})})})}),className:\"framer-1il2d0m\",fonts:[\"GF;Roboto Mono-regular\"],layoutDependency:layoutDependency,layoutId:\"e3ObjleHV\",style:{\"--extracted-r6o4lv\":\"var(--token-6014b03e-96b6-44fc-a8fe-1c6402d9a85e, rgb(180, 185, 177))\"},verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-1guifd6\",layoutDependency:layoutDependency,layoutId:\"MQ8hUu8mF\",children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7Um9ib3RvIE1vbm8tcmVndWxhcg==\",\"--framer-font-family\":'\"Roboto Mono\", monospace',\"--framer-font-size\":\"15px\",\"--framer-line-height\":\"1.4em\",\"--framer-text-alignment\":\"left\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-6014b03e-96b6-44fc-a8fe-1c6402d9a85e, rgb(180, 185, 177)))\"},children:/*#__PURE__*/_jsx(Link,{href:{webPageId:\"PmR5GbcO8\"},motionChild:true,nodeId:\"PS4DNoCHE\",openInNewTab:false,scopeId:\"i_DY9JftS\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-4pa8r7\",\"data-styles-preset\":\"d2C9kOxg9\",children:\"Contact\"})})})}),className:\"framer-11qrg4j\",fonts:[\"GF;Roboto Mono-regular\"],layoutDependency:layoutDependency,layoutId:\"PS4DNoCHE\",style:{\"--extracted-r6o4lv\":\"var(--token-6014b03e-96b6-44fc-a8fe-1c6402d9a85e, rgb(180, 185, 177))\"},verticalAlignment:\"top\",withExternalLayout:true})})]})]})}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-13opgv4\",layoutDependency:layoutDependency,layoutId:\"o_3VGlHsj\",children:/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1h2h9my\",\"data-border\":true,\"data-framer-name\":\"Text\",layoutDependency:layoutDependency,layoutId:\"QDbZFAQT3\",style:{\"--border-bottom-width\":\"0px\",\"--border-color\":\"var(--token-49581d6a-7694-4733-bc6f-fd82c9e0713e, rgb(20, 29, 31))\",\"--border-left-width\":\"0px\",\"--border-right-width\":\"0px\",\"--border-style\":\"solid\",\"--border-top-width\":\"1px\"},children:[/*#__PURE__*/_jsx(motion.div,{className:\"framer-2iocgr\",\"data-framer-name\":\"Copyright\",layoutDependency:layoutDependency,layoutId:\"Uyz_ZAgI0\",children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7Um9ib3RvIE1vbm8tcmVndWxhcg==\",\"--framer-font-family\":'\"Roboto Mono\", monospace',\"--framer-font-size\":\"14px\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-6014b03e-96b6-44fc-a8fe-1c6402d9a85e, rgb(181, 189, 197)))\"},children:\"\\xa9 2025 BUILDSTR. All rights reserved.\"})}),className:\"framer-1tvhxe2\",fonts:[\"GF;Roboto Mono-regular\"],layoutDependency:layoutDependency,layoutId:\"lJ9q1jhe7\",style:{\"--extracted-r6o4lv\":\"var(--token-6014b03e-96b6-44fc-a8fe-1c6402d9a85e, rgb(181, 189, 197))\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},verticalAlignment:\"top\",withExternalLayout:true})}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-1d0or00\",\"data-framer-name\":\"Footer / Status\",layoutDependency:layoutDependency,layoutId:\"RBaUkRvRF\",children:/*#__PURE__*/_jsx(ComponentViewportProvider,{height:24,y:(componentViewport?.y||0)+40+0+0+256+0+0+32+0,...addPropertyOverrides({AZz0T45u4:{y:(componentViewport?.y||0)+20+0+0+310+0+0+24+0+0}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-lrl1k8-container\",layoutDependency:layoutDependency,layoutId:\"qtcHPX2dz-container\",nodeId:\"qtcHPX2dz\",rendersWithMotion:true,scopeId:\"i_DY9JftS\",children:/*#__PURE__*/_jsx(FooterStatus,{height:\"100%\",id:\"qtcHPX2dz\",layoutId:\"qtcHPX2dz\",width:\"100%\"})})})})]})})]})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-Gv3Xx.framer-1vs2czt, .framer-Gv3Xx .framer-1vs2czt { display: block; }\",\".framer-Gv3Xx.framer-ae9m82 { align-content: center; align-items: center; display: flex; flex-direction: column; flex-wrap: nowrap; gap: 124px; height: min-content; justify-content: flex-start; overflow: hidden; padding: 40px; position: relative; width: 1280px; }\",\".framer-Gv3Xx .framer-4ve0ig { align-content: center; align-items: center; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 124px; height: min-content; justify-content: center; max-width: 1280px; overflow: visible; padding: 0px; position: relative; width: 100%; }\",\".framer-Gv3Xx .framer-1636vyb { align-content: center; align-items: center; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 64px; height: min-content; justify-content: flex-start; overflow: hidden; padding: 0px; position: relative; width: 100%; }\",\".framer-Gv3Xx .framer-18xv9si { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: flex-start; overflow: visible; padding: 0px; position: relative; width: 100%; }\",\".framer-Gv3Xx .framer-1nz41rn { align-content: flex-start; align-items: flex-start; display: flex; flex: 1 0 0px; flex-direction: column; flex-wrap: nowrap; gap: 32px; height: min-content; justify-content: flex-start; overflow: visible; padding: 0px; position: relative; width: 1px; }\",\".framer-Gv3Xx .framer-7lsz66-container, .framer-Gv3Xx .framer-lrl1k8-container { flex: none; height: auto; position: relative; width: auto; }\",\".framer-Gv3Xx .framer-tch0h5 { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 16px; height: min-content; justify-content: flex-end; overflow: visible; padding: 0px; position: relative; width: min-content; }\",\".framer-Gv3Xx .framer-15hcsi9-container { flex: none; height: 18px; position: relative; width: 18px; }\",\".framer-Gv3Xx .framer-1ghwznm { align-content: flex-end; align-items: flex-end; display: flex; flex: 1 0 0px; flex-direction: column; flex-wrap: nowrap; gap: 16px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: 1px; }\",\".framer-Gv3Xx .framer-151339f, .framer-Gv3Xx .framer-87lij7, .framer-Gv3Xx .framer-1il2d0m, .framer-Gv3Xx .framer-11qrg4j, .framer-Gv3Xx .framer-1tvhxe2 { flex: none; height: auto; position: relative; white-space: pre; width: auto; }\",\".framer-Gv3Xx .framer-1guifd6 { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 16px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: min-content; }\",\".framer-Gv3Xx .framer-13opgv4 { align-content: flex-end; align-items: flex-end; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 16px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: 100%; }\",\".framer-Gv3Xx .framer-1h2h9my { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; height: min-content; justify-content: space-between; overflow: visible; padding: 32px 0px 0px 0px; position: relative; width: 100%; }\",\".framer-Gv3Xx .framer-2iocgr { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: flex-start; overflow: visible; padding: 0px; position: relative; width: min-content; }\",\".framer-Gv3Xx .framer-1d0or00 { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: min-content; }\",\".framer-Gv3Xx.framer-v-1k65e8i.framer-ae9m82 { gap: 96px; padding: 20px; width: 390px; }\",\".framer-Gv3Xx.framer-v-1k65e8i .framer-4ve0ig { gap: 32px; }\",\".framer-Gv3Xx.framer-v-1k65e8i .framer-18xv9si { flex-direction: column; gap: 56px; }\",\".framer-Gv3Xx.framer-v-1k65e8i .framer-1nz41rn, .framer-Gv3Xx.framer-v-1k65e8i .framer-1ghwznm { flex: none; width: 100%; }\",\".framer-Gv3Xx.framer-v-1k65e8i .framer-1h2h9my { flex-direction: column; gap: 24px; justify-content: flex-start; padding: 24px 0px 0px 0px; }\",\".framer-Gv3Xx.framer-v-1k65e8i .framer-2iocgr { order: 1; }\",\".framer-Gv3Xx.framer-v-1k65e8i .framer-1d0or00 { order: 0; }\",...sharedStyle.css,'.framer-Gv3Xx[data-border=\"true\"]::after, .framer-Gv3Xx [data-border=\"true\"]::after { content: \"\"; border-width: var(--border-top-width, 0) var(--border-right-width, 0) var(--border-bottom-width, 0) var(--border-left-width, 0); border-color: var(--border-color, none); border-style: var(--border-style, none); width: 100%; height: 100%; position: absolute; box-sizing: border-box; left: 0; top: 0; border-radius: inherit; pointer-events: none; }'];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 392\n * @framerIntrinsicWidth 1280\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"auto\"]},\"AZz0T45u4\":{\"layout\":[\"fixed\",\"auto\"]}}}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const Frameri_DY9JftS=withCSS(Component,css,\"framer-Gv3Xx\");export default Frameri_DY9JftS;Frameri_DY9JftS.displayName=\"Footer / Footer\";Frameri_DY9JftS.defaultProps={height:392,width:1280};addPropertyControls(Frameri_DY9JftS,{variant:{options:[\"a08nDxcaO\",\"AZz0T45u4\"],optionTitles:[\"Desktop\",\"Mobile\"],title:\"Variant\",type:ControlType.Enum}});addFonts(Frameri_DY9JftS,[{explicitInter:true,fonts:[{family:\"Roboto Mono\",source:\"google\",style:\"normal\",url:\"https://fonts.gstatic.com/s/robotomono/v30/L0xuDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_7PqPRu-5Ip2sSQ.woff2\",weight:\"500\"},{family:\"Roboto Mono\",source:\"google\",style:\"normal\",url:\"https://fonts.gstatic.com/s/robotomono/v30/L0xuDF4xlVMF-BfR8bXMIhJHg45mwgGEFl0_3vqPRu-5Ip2sSQ.woff2\",weight:\"400\"}]},...ComponentsLogoFonts,...FooterSocialIconsFonts,...FooterStatusFonts,...getFontsFromSharedStyle(sharedStyle.fonts)],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Frameri_DY9JftS\",\"slots\":[],\"annotations\":{\"framerColorSyntax\":\"true\",\"framerIntrinsicHeight\":\"392\",\"framerIntrinsicWidth\":\"1280\",\"framerDisplayContentsDiv\":\"false\",\"framerContractVersion\":\"1\",\"framerImmutableVariables\":\"true\",\"framerAutoSizeImages\":\"true\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"AZz0T45u4\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]}}}\",\"framerComponentViewportWidth\":\"true\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./i_DY9JftS.map","// @ts-nocheck\n/**\n * This file is generated inside FramerStudio. To update it run \"make build\"\n * inside \"./src/codeblock-dependencies\" and copy the file from \"./build\".\n */ // ../../node_modules/@codemirror/state/dist/index.js\nvar Text=class{/**\n  Get the line description around the given position.\n  */ lineAt(pos){if(pos<0||pos>this.length)throw new RangeError(`Invalid position ${pos} in document of length ${this.length}`);return this.lineInner(pos,false,1,0);}/**\n  Get the description for the given (1-based) line number.\n  */ line(n){if(n<1||n>this.lines)throw new RangeError(`Invalid line number ${n} in ${this.lines}-line document`);return this.lineInner(n,true,1,0);}/**\n  Replace a range of the text with the given content.\n  */ replace(from,to,text){let parts=[];this.decompose(0,from,parts,2);if(text.length)text.decompose(0,text.length,parts,1|2);this.decompose(to,this.length,parts,1);return TextNode.from(parts,this.length-(to-from)+text.length);}/**\n  Append another document to this one.\n  */ append(other){return this.replace(this.length,this.length,other);}/**\n  Retrieve the text between the given points.\n  */ slice(from,to=this.length){let parts=[];this.decompose(from,to,parts,0);return TextNode.from(parts,to-from);}/**\n  Test whether this text is equal to another instance.\n  */ eq(other){if(other==this)return true;if(other.length!=this.length||other.lines!=this.lines)return false;let start=this.scanIdentical(other,1),end=this.length-this.scanIdentical(other,-1);let a=new RawTextCursor(this),b=new RawTextCursor(other);for(let skip=start,pos=start;;){a.next(skip);b.next(skip);skip=0;if(a.lineBreak!=b.lineBreak||a.done!=b.done||a.value!=b.value)return false;pos+=a.value.length;if(a.done||pos>=end)return true;}}/**\n  Iterate over the text. When `dir` is `-1`, iteration happens\n  from end to start. This will return lines and the breaks between\n  them as separate strings.\n  */ iter(dir=1){return new RawTextCursor(this,dir);}/**\n  Iterate over a range of the text. When `from` > `to`, the\n  iterator will run in reverse.\n  */ iterRange(from,to=this.length){return new PartialTextCursor(this,from,to);}/**\n  Return a cursor that iterates over the given range of lines,\n  _without_ returning the line breaks between, and yielding empty\n  strings for empty lines.\n  \n  When `from` and `to` are given, they should be 1-based line numbers.\n  */ iterLines(from,to){let inner;if(from==null){inner=this.iter();}else{if(to==null)to=this.lines+1;let start=this.line(from).from;inner=this.iterRange(start,Math.max(start,to==this.lines+1?this.length:to<=1?0:this.line(to-1).to));}return new LineCursor(inner);}/**\n  Return the document as a string, using newline characters to\n  separate lines.\n  */ toString(){return this.sliceString(0);}/**\n  Convert the document to an array of lines (which can be\n  deserialized again via [`Text.of`](https://codemirror.net/6/docs/ref/#state.Text^of)).\n  */ toJSON(){let lines=[];this.flatten(lines);return lines;}/**\n  Create a `Text` instance for the given array of lines.\n  */ static of(text){if(text.length==0)throw new RangeError(\"A document must have at least one line\");if(text.length==1&&!text[0])return Text.empty;return text.length<=32?new TextLeaf(text):TextNode.from(TextLeaf.split(text,[]));}/**\n  @internal\n  */ constructor(){}};var TextLeaf=class extends Text{get lines(){return this.text.length;}get children(){return null;}lineInner(target,isLine,line,offset){for(let i=0;;i++){let string=this.text[i],end=offset+string.length;if((isLine?line:end)>=target)return new Line(offset,end,line,string);offset=end+1;line++;}}decompose(from,to,target,open){let text=from<=0&&to>=this.length?this:new TextLeaf(sliceText(this.text,from,to),Math.min(to,this.length)-Math.max(0,from));if(open&1){let prev=target.pop();let joined=appendText(text.text,prev.text.slice(),0,text.length);if(joined.length<=32){target.push(new TextLeaf(joined,prev.length+text.length));}else{let mid=joined.length>>1;target.push(new TextLeaf(joined.slice(0,mid)),new TextLeaf(joined.slice(mid)));}}else{target.push(text);}}replace(from,to,text){if(!(text instanceof TextLeaf))return super.replace(from,to,text);let lines=appendText(this.text,appendText(text.text,sliceText(this.text,0,from)),to);let newLen=this.length+text.length-(to-from);if(lines.length<=32)return new TextLeaf(lines,newLen);return TextNode.from(TextLeaf.split(lines,[]),newLen);}sliceString(from,to=this.length,lineSep=\"\\n\"){let result=\"\";for(let pos=0,i=0;pos<=to&&i<this.text.length;i++){let line=this.text[i],end=pos+line.length;if(pos>from&&i)result+=lineSep;if(from<end&&to>pos)result+=line.slice(Math.max(0,from-pos),to-pos);pos=end+1;}return result;}flatten(target){for(let line of this.text)target.push(line);}scanIdentical(){return 0;}static split(text,target){let part=[],len=-1;for(let line of text){part.push(line);len+=line.length+1;if(part.length==32){target.push(new TextLeaf(part,len));part=[];len=-1;}}if(len>-1)target.push(new TextLeaf(part,len));return target;}constructor(text,length=textLength(text)){super();this.text=text;this.length=length;}};var TextNode=class extends Text{lineInner(target,isLine,line,offset){for(let i=0;;i++){let child=this.children[i],end=offset+child.length,endLine=line+child.lines-1;if((isLine?endLine:end)>=target)return child.lineInner(target,isLine,line,offset);offset=end+1;line=endLine+1;}}decompose(from,to,target,open){for(let i=0,pos=0;pos<=to&&i<this.children.length;i++){let child=this.children[i],end=pos+child.length;if(from<=end&&to>=pos){let childOpen=open&((pos<=from?1:0)|(end>=to?2:0));if(pos>=from&&end<=to&&!childOpen)target.push(child);else child.decompose(from-pos,to-pos,target,childOpen);}pos=end+1;}}replace(from,to,text){if(text.lines<this.lines)for(let i=0,pos=0;i<this.children.length;i++){let child=this.children[i],end=pos+child.length;if(from>=pos&&to<=end){let updated=child.replace(from-pos,to-pos,text);let totalLines=this.lines-child.lines+updated.lines;if(updated.lines<totalLines>>5-1&&updated.lines>totalLines>>5+1){let copy=this.children.slice();copy[i]=updated;return new TextNode(copy,this.length-(to-from)+text.length);}return super.replace(pos,end,updated);}pos=end+1;}return super.replace(from,to,text);}sliceString(from,to=this.length,lineSep=\"\\n\"){let result=\"\";for(let i=0,pos=0;i<this.children.length&&pos<=to;i++){let child=this.children[i],end=pos+child.length;if(pos>from&&i)result+=lineSep;if(from<end&&to>pos)result+=child.sliceString(from-pos,to-pos,lineSep);pos=end+1;}return result;}flatten(target){for(let child of this.children)child.flatten(target);}scanIdentical(other,dir){if(!(other instanceof TextNode))return 0;let length=0;let[iA,iB,eA,eB]=dir>0?[0,0,this.children.length,other.children.length]:[this.children.length-1,other.children.length-1,-1,-1];for(;;iA+=dir,iB+=dir){if(iA==eA||iB==eB)return length;let chA=this.children[iA],chB=other.children[iB];if(chA!=chB)return length+chA.scanIdentical(chB,dir);length+=chA.length+1;}}static from(children,length=children.reduce((l,ch)=>l+ch.length+1,-1)){let lines=0;for(let ch of children)lines+=ch.lines;if(lines<32){let flat=[];for(let ch1 of children)ch1.flatten(flat);return new TextLeaf(flat,length);}let chunk=Math.max(32,lines>>5),maxChunk=chunk<<1,minChunk=chunk>>1;let chunked=[],currentLines=0,currentLen=-1,currentChunk=[];function add(child){let last;if(child.lines>maxChunk&&child instanceof TextNode){for(let node of child.children)add(node);}else if(child.lines>minChunk&&(currentLines>minChunk||!currentLines)){flush();chunked.push(child);}else if(child instanceof TextLeaf&&currentLines&&(last=currentChunk[currentChunk.length-1])instanceof TextLeaf&&child.lines+last.lines<=32){currentLines+=child.lines;currentLen+=child.length+1;currentChunk[currentChunk.length-1]=new TextLeaf(last.text.concat(child.text),last.length+1+child.length);}else{if(currentLines+child.lines>chunk)flush();currentLines+=child.lines;currentLen+=child.length+1;currentChunk.push(child);}}function flush(){if(currentLines==0)return;chunked.push(currentChunk.length==1?currentChunk[0]:TextNode.from(currentChunk,currentLen));currentLen=-1;currentLines=currentChunk.length=0;}for(let child of children)add(child);flush();return chunked.length==1?chunked[0]:new TextNode(chunked,length);}constructor(children,length){super();this.children=children;this.length=length;this.lines=0;for(let child of children)this.lines+=child.lines;}};Text.empty=/* @__PURE__ */ new TextLeaf([\"\"],0);function textLength(text){let length=-1;for(let line of text)length+=line.length+1;return length;}function appendText(text,target,from=0,to=1e9){for(let pos=0,i=0,first=true;i<text.length&&pos<=to;i++){let line=text[i],end=pos+line.length;if(end>=from){if(end>to)line=line.slice(0,to-pos);if(pos<from)line=line.slice(from-pos);if(first){target[target.length-1]+=line;first=false;}else target.push(line);}pos=end+1;}return target;}function sliceText(text,from,to){return appendText(text,[\"\"],from,to);}var RawTextCursor=class{nextInner(skip,dir){this.done=this.lineBreak=false;for(;;){let last=this.nodes.length-1;let top=this.nodes[last],offsetValue=this.offsets[last],offset=offsetValue>>1;let size=top instanceof TextLeaf?top.text.length:top.children.length;if(offset==(dir>0?size:0)){if(last==0){this.done=true;this.value=\"\";return this;}if(dir>0)this.offsets[last-1]++;this.nodes.pop();this.offsets.pop();}else if((offsetValue&1)==(dir>0?0:1)){this.offsets[last]+=dir;if(skip==0){this.lineBreak=true;this.value=\"\\n\";return this;}skip--;}else if(top instanceof TextLeaf){let next=top.text[offset+(dir<0?-1:0)];this.offsets[last]+=dir;if(next.length>Math.max(0,skip)){this.value=skip==0?next:dir>0?next.slice(skip):next.slice(0,next.length-skip);return this;}skip-=next.length;}else{let next1=top.children[offset+(dir<0?-1:0)];if(skip>next1.length){skip-=next1.length;this.offsets[last]+=dir;}else{if(dir<0)this.offsets[last]--;this.nodes.push(next1);this.offsets.push(dir>0?1:(next1 instanceof TextLeaf?next1.text.length:next1.children.length)<<1);}}}}next(skip=0){if(skip<0){this.nextInner(-skip,-this.dir);skip=this.value.length;}return this.nextInner(skip,this.dir);}constructor(text,dir=1){this.dir=dir;this.done=false;this.lineBreak=false;this.value=\"\";this.nodes=[text];this.offsets=[dir>0?1:(text instanceof TextLeaf?text.text.length:text.children.length)<<1,];}};var PartialTextCursor=class{nextInner(skip,dir){if(dir<0?this.pos<=this.from:this.pos>=this.to){this.value=\"\";this.done=true;return this;}skip+=Math.max(0,dir<0?this.pos-this.to:this.from-this.pos);let limit=dir<0?this.pos-this.from:this.to-this.pos;if(skip>limit)skip=limit;limit-=skip;let{value}=this.cursor.next(skip);this.pos+=(value.length+skip)*dir;this.value=value.length<=limit?value:dir<0?value.slice(value.length-limit):value.slice(0,limit);this.done=!this.value;return this;}next(skip=0){if(skip<0)skip=Math.max(skip,this.from-this.pos);else if(skip>0)skip=Math.min(skip,this.to-this.pos);return this.nextInner(skip,this.cursor.dir);}get lineBreak(){return this.cursor.lineBreak&&this.value!=\"\";}constructor(text,start,end){this.value=\"\";this.done=false;this.cursor=new RawTextCursor(text,start>end?-1:1);this.pos=start>end?text.length:0;this.from=Math.min(start,end);this.to=Math.max(start,end);}};var LineCursor=class{next(skip=0){let{done,lineBreak,value}=this.inner.next(skip);if(done){this.done=true;this.value=\"\";}else if(lineBreak){if(this.afterBreak){this.value=\"\";}else{this.afterBreak=true;this.next();}}else{this.value=value;this.afterBreak=false;}return this;}get lineBreak(){return false;}constructor(inner){this.inner=inner;this.afterBreak=true;this.value=\"\";this.done=false;}};if(typeof Symbol!=\"undefined\"){Text.prototype[Symbol.iterator]=function(){return this.iter();};RawTextCursor.prototype[Symbol.iterator]=PartialTextCursor.prototype[Symbol.iterator]=LineCursor.prototype[Symbol.iterator]=function(){return this;};}var Line=class{/**\n  The length of the line (not including any line break after it).\n  */ get length(){return this.to-this.from;}/**\n  @internal\n  */ constructor(from,to,number,text){this.from=from;this.to=to;this.number=number;this.text=text;}};var extend=/* @__PURE__ */ \"lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o\".split(\",\").map(s=>s?parseInt(s,36):1);for(let i=1;i<extend.length;i++)extend[i]+=extend[i-1];function isExtendingChar(code){for(let i=1;i<extend.length;i+=2)if(extend[i]>code)return extend[i-1]<=code;return false;}function isRegionalIndicator(code){return code>=127462&&code<=127487;}var ZWJ=8205;function findClusterBreak(str,pos,forward=true,includeExtending=true){return(forward?nextClusterBreak:prevClusterBreak)(str,pos,includeExtending);}function nextClusterBreak(str,pos,includeExtending){if(pos==str.length)return pos;if(pos&&surrogateLow(str.charCodeAt(pos))&&surrogateHigh(str.charCodeAt(pos-1)))pos--;let prev=codePointAt(str,pos);pos+=codePointSize(prev);while(pos<str.length){let next=codePointAt(str,pos);if(prev==ZWJ||next==ZWJ||includeExtending&&isExtendingChar(next)){pos+=codePointSize(next);prev=next;}else if(isRegionalIndicator(next)){let countBefore=0,i=pos-2;while(i>=0&&isRegionalIndicator(codePointAt(str,i))){countBefore++;i-=2;}if(countBefore%2==0)break;else pos+=2;}else{break;}}return pos;}function prevClusterBreak(str,pos,includeExtending){while(pos>0){let found=nextClusterBreak(str,pos-2,includeExtending);if(found<pos)return found;pos--;}return 0;}function surrogateLow(ch){return ch>=56320&&ch<57344;}function surrogateHigh(ch){return ch>=55296&&ch<56320;}function codePointAt(str,pos){let code0=str.charCodeAt(pos);if(!surrogateHigh(code0)||pos+1==str.length)return code0;let code1=str.charCodeAt(pos+1);if(!surrogateLow(code1))return code0;return(code0-55296<<10)+(code1-56320)+65536;}function fromCodePoint(code){if(code<=65535)return String.fromCharCode(code);code-=65536;return String.fromCharCode((code>>10)+55296,(code&1023)+56320);}function codePointSize(code){return code<65536?1:2;}var DefaultSplit=/\\r\\n?|\\n/;var MapMode=/* @__PURE__ */ function(MapMode2){MapMode2[MapMode2[\"Simple\"]=0]=\"Simple\";MapMode2[MapMode2[\"TrackDel\"]=1]=\"TrackDel\";MapMode2[MapMode2[\"TrackBefore\"]=2]=\"TrackBefore\";MapMode2[MapMode2[\"TrackAfter\"]=3]=\"TrackAfter\";return MapMode2;}(MapMode||(MapMode={}));var ChangeDesc=class{/**\n  The length of the document before the change.\n  */ get length(){let result=0;for(let i=0;i<this.sections.length;i+=2)result+=this.sections[i];return result;}/**\n  The length of the document after the change.\n  */ get newLength(){let result=0;for(let i=0;i<this.sections.length;i+=2){let ins=this.sections[i+1];result+=ins<0?this.sections[i]:ins;}return result;}/**\n  False when there are actual changes in this set.\n  */ get empty(){return this.sections.length==0||this.sections.length==2&&this.sections[1]<0;}/**\n  Iterate over the unchanged parts left by these changes. `posA`\n  provides the position of the range in the old document, `posB`\n  the new position in the changed document.\n  */ iterGaps(f){for(let i=0,posA=0,posB=0;i<this.sections.length;){let len=this.sections[i++],ins=this.sections[i++];if(ins<0){f(posA,posB,len);posB+=len;}else{posB+=ins;}posA+=len;}}/**\n  Iterate over the ranges changed by these changes. (See\n  [`ChangeSet.iterChanges`](https://codemirror.net/6/docs/ref/#state.ChangeSet.iterChanges) for a\n  variant that also provides you with the inserted text.)\n  `fromA`/`toA` provides the extent of the change in the starting\n  document, `fromB`/`toB` the extent of the replacement in the\n  changed document.\n  \n  When `individual` is true, adjacent changes (which are kept\n  separate for [position mapping](https://codemirror.net/6/docs/ref/#state.ChangeDesc.mapPos)) are\n  reported separately.\n  */ iterChangedRanges(f,individual=false){iterChanges(this,f,individual);}/**\n  Get a description of the inverted form of these changes.\n  */ get invertedDesc(){let sections=[];for(let i=0;i<this.sections.length;){let len=this.sections[i++],ins=this.sections[i++];if(ins<0)sections.push(len,ins);else sections.push(ins,len);}return new ChangeDesc(sections);}/**\n  Compute the combined effect of applying another set of changes\n  after this one. The length of the document after this set should\n  match the length before `other`.\n  */ composeDesc(other){return this.empty?other:other.empty?this:composeSets(this,other);}/**\n  Map this description, which should start with the same document\n  as `other`, over another set of changes, so that it can be\n  applied after it. When `before` is true, map as if the changes\n  in `other` happened before the ones in `this`.\n  */ mapDesc(other,before=false){return other.empty?this:mapSet(this,other,before);}mapPos(pos,assoc=-1,mode=MapMode.Simple){let posA=0,posB=0;for(let i=0;i<this.sections.length;){let len=this.sections[i++],ins=this.sections[i++],endA=posA+len;if(ins<0){if(endA>pos)return posB+(pos-posA);posB+=len;}else{if(mode!=MapMode.Simple&&endA>=pos&&(mode==MapMode.TrackDel&&posA<pos&&endA>pos||mode==MapMode.TrackBefore&&posA<pos||mode==MapMode.TrackAfter&&endA>pos))return null;if(endA>pos||endA==pos&&assoc<0&&!len)return pos==posA||assoc<0?posB:posB+ins;posB+=ins;}posA=endA;}if(pos>posA)throw new RangeError(`Position ${pos} is out of range for changeset of length ${posA}`);return posB;}/**\n  Check whether these changes touch a given range. When one of the\n  changes entirely covers the range, the string `\"cover\"` is\n  returned.\n  */ touchesRange(from,to=from){for(let i=0,pos=0;i<this.sections.length&&pos<=to;){let len=this.sections[i++],ins=this.sections[i++],end=pos+len;if(ins>=0&&pos<=to&&end>=from)return pos<from&&end>to?\"cover\":true;pos=end;}return false;}/**\n  @internal\n  */ toString(){let result=\"\";for(let i=0;i<this.sections.length;){let len=this.sections[i++],ins=this.sections[i++];result+=(result?\" \":\"\")+len+(ins>=0?\":\"+ins:\"\");}return result;}/**\n  Serialize this change desc to a JSON-representable value.\n  */ toJSON(){return this.sections;}/**\n  Create a change desc from its JSON representation (as produced\n  by [`toJSON`](https://codemirror.net/6/docs/ref/#state.ChangeDesc.toJSON).\n  */ static fromJSON(json){if(!Array.isArray(json)||json.length%2||json.some(a=>typeof a!=\"number\"))throw new RangeError(\"Invalid JSON representation of ChangeDesc\");return new ChangeDesc(json);}/**\n  @internal\n  */ static create(sections){return new ChangeDesc(sections);}// Sections are encoded as pairs of integers. The first is the\n// length in the current document, and the second is -1 for\n// unaffected sections, and the length of the replacement content\n// otherwise. So an insertion would be (0, n>0), a deletion (n>0,\n// 0), and a replacement two positive numbers.\n/**\n  @internal\n  */ constructor(sections){this.sections=sections;}};var ChangeSet=class extends ChangeDesc{/**\n  Apply the changes to a document, returning the modified\n  document.\n  */ apply(doc){if(this.length!=doc.length)throw new RangeError(\"Applying change set to a document with the wrong length\");iterChanges(this,(fromA,toA,fromB,_toB,text)=>doc=doc.replace(fromB,fromB+(toA-fromA),text),false);return doc;}mapDesc(other,before=false){return mapSet(this,other,before,true);}/**\n  Given the document as it existed _before_ the changes, return a\n  change set that represents the inverse of this set, which could\n  be used to go from the document created by the changes back to\n  the document as it existed before the changes.\n  */ invert(doc){let sections=this.sections.slice(),inserted=[];for(let i=0,pos=0;i<sections.length;i+=2){let len=sections[i],ins=sections[i+1];if(ins>=0){sections[i]=ins;sections[i+1]=len;let index=i>>1;while(inserted.length<index)inserted.push(Text.empty);inserted.push(len?doc.slice(pos,pos+len):Text.empty);}pos+=len;}return new ChangeSet(sections,inserted);}/**\n  Combine two subsequent change sets into a single set. `other`\n  must start in the document produced by `this`. If `this` goes\n  `docA` → `docB` and `other` represents `docB` → `docC`, the\n  returned value will represent the change `docA` → `docC`.\n  */ compose(other){return this.empty?other:other.empty?this:composeSets(this,other,true);}/**\n  Given another change set starting in the same document, maps this\n  change set over the other, producing a new change set that can be\n  applied to the document produced by applying `other`. When\n  `before` is `true`, order changes as if `this` comes before\n  `other`, otherwise (the default) treat `other` as coming first.\n  \n  Given two changes `A` and `B`, `A.compose(B.map(A))` and\n  `B.compose(A.map(B, true))` will produce the same document. This\n  provides a basic form of [operational\n  transformation](https://en.wikipedia.org/wiki/Operational_transformation),\n  and can be used for collaborative editing.\n  */ map(other,before=false){return other.empty?this:mapSet(this,other,before,true);}/**\n  Iterate over the changed ranges in the document, calling `f` for\n  each, with the range in the original document (`fromA`-`toA`)\n  and the range that replaces it in the new document\n  (`fromB`-`toB`).\n  \n  When `individual` is true, adjacent changes are reported\n  separately.\n  */ iterChanges(f,individual=false){iterChanges(this,f,individual);}/**\n  Get a [change description](https://codemirror.net/6/docs/ref/#state.ChangeDesc) for this change\n  set.\n  */ get desc(){return ChangeDesc.create(this.sections);}/**\n  @internal\n  */ filter(ranges){let resultSections=[],resultInserted=[],filteredSections=[];let iter=new SectionIter(this);done:for(let i=0,pos=0;;){let next=i==ranges.length?1e9:ranges[i++];while(pos<next||pos==next&&iter.len==0){if(iter.done)break done;let len=Math.min(iter.len,next-pos);addSection(filteredSections,len,-1);let ins=iter.ins==-1?-1:iter.off==0?iter.ins:0;addSection(resultSections,len,ins);if(ins>0)addInsert(resultInserted,resultSections,iter.text);iter.forward(len);pos+=len;}let end=ranges[i++];while(pos<end){if(iter.done)break done;let len1=Math.min(iter.len,end-pos);addSection(resultSections,len1,-1);addSection(filteredSections,len1,iter.ins==-1?-1:iter.off==0?iter.ins:0);iter.forward(len1);pos+=len1;}}return{changes:new ChangeSet(resultSections,resultInserted),filtered:ChangeDesc.create(filteredSections)};}/**\n  Serialize this change set to a JSON-representable value.\n  */ toJSON(){let parts=[];for(let i=0;i<this.sections.length;i+=2){let len=this.sections[i],ins=this.sections[i+1];if(ins<0)parts.push(len);else if(ins==0)parts.push([len]);else parts.push([len].concat(this.inserted[i>>1].toJSON()));}return parts;}/**\n  Create a change set for the given changes, for a document of the\n  given length, using `lineSep` as line separator.\n  */ static of(changes,length,lineSep){let sections=[],inserted=[],pos=0;let total=null;function flush(force=false){if(!force&&!sections.length)return;if(pos<length)addSection(sections,length-pos,-1);let set=new ChangeSet(sections,inserted);total=total?total.compose(set.map(total)):set;sections=[];inserted=[];pos=0;}function process(spec){if(Array.isArray(spec)){for(let sub of spec)process(sub);}else if(spec instanceof ChangeSet){if(spec.length!=length)throw new RangeError(`Mismatched change set length (got ${spec.length}, expected ${length})`);flush();total=total?total.compose(spec.map(total)):spec;}else{let{from,to=from,insert:insert2}=spec;if(from>to||from<0||to>length)throw new RangeError(`Invalid change range ${from} to ${to} (in doc of length ${length})`);let insText=!insert2?Text.empty:typeof insert2==\"string\"?Text.of(insert2.split(lineSep||DefaultSplit)):insert2;let insLen=insText.length;if(from==to&&insLen==0)return;if(from<pos)flush();if(from>pos)addSection(sections,from-pos,-1);addSection(sections,to-from,insLen);addInsert(inserted,sections,insText);pos=to;}}process(changes);flush(!total);return total;}/**\n  Create an empty changeset of the given length.\n  */ static empty(length){return new ChangeSet(length?[length,-1]:[],[]);}/**\n  Create a changeset from its JSON representation (as produced by\n  [`toJSON`](https://codemirror.net/6/docs/ref/#state.ChangeSet.toJSON).\n  */ static fromJSON(json){if(!Array.isArray(json))throw new RangeError(\"Invalid JSON representation of ChangeSet\");let sections=[],inserted=[];for(let i=0;i<json.length;i++){let part=json[i];if(typeof part==\"number\"){sections.push(part,-1);}else if(!Array.isArray(part)||typeof part[0]!=\"number\"||part.some((e,i2)=>i2&&typeof e!=\"string\")){throw new RangeError(\"Invalid JSON representation of ChangeSet\");}else if(part.length==1){sections.push(part[0],0);}else{while(inserted.length<i)inserted.push(Text.empty);inserted[i]=Text.of(part.slice(1));sections.push(part[0],inserted[i].length);}}return new ChangeSet(sections,inserted);}/**\n  @internal\n  */ static createSet(sections,inserted){return new ChangeSet(sections,inserted);}constructor(sections,inserted){super(sections);this.inserted=inserted;}};function addSection(sections,len,ins,forceJoin=false){if(len==0&&ins<=0)return;let last=sections.length-2;if(last>=0&&ins<=0&&ins==sections[last+1])sections[last]+=len;else if(len==0&&sections[last]==0)sections[last+1]+=ins;else if(forceJoin){sections[last]+=len;sections[last+1]+=ins;}else sections.push(len,ins);}function addInsert(values,sections,value){if(value.length==0)return;let index=sections.length-2>>1;if(index<values.length){values[values.length-1]=values[values.length-1].append(value);}else{while(values.length<index)values.push(Text.empty);values.push(value);}}function iterChanges(desc,f,individual){let inserted=desc.inserted;for(let posA=0,posB=0,i=0;i<desc.sections.length;){let len=desc.sections[i++],ins=desc.sections[i++];if(ins<0){posA+=len;posB+=len;}else{let endA=posA,endB=posB,text=Text.empty;for(;;){endA+=len;endB+=ins;if(ins&&inserted)text=text.append(inserted[i-2>>1]);if(individual||i==desc.sections.length||desc.sections[i+1]<0)break;len=desc.sections[i++];ins=desc.sections[i++];}f(posA,endA,posB,endB,text);posA=endA;posB=endB;}}}function mapSet(setA,setB,before,mkSet=false){let sections=[],insert2=mkSet?[]:null;let a=new SectionIter(setA),b=new SectionIter(setB);for(let inserted=-1;;){if(a.ins==-1&&b.ins==-1){let len=Math.min(a.len,b.len);addSection(sections,len,-1);a.forward(len);b.forward(len);}else if(b.ins>=0&&(a.ins<0||inserted==a.i||a.off==0&&(b.len<a.len||b.len==a.len&&!before))){let len1=b.len;addSection(sections,b.ins,-1);while(len1){let piece=Math.min(a.len,len1);if(a.ins>=0&&inserted<a.i&&a.len<=piece){addSection(sections,0,a.ins);if(insert2)addInsert(insert2,sections,a.text);inserted=a.i;}a.forward(piece);len1-=piece;}b.next();}else if(a.ins>=0){let len2=0,left=a.len;while(left){if(b.ins==-1){let piece1=Math.min(left,b.len);len2+=piece1;left-=piece1;b.forward(piece1);}else if(b.ins==0&&b.len<left){left-=b.len;b.next();}else{break;}}addSection(sections,len2,inserted<a.i?a.ins:0);if(insert2&&inserted<a.i)addInsert(insert2,sections,a.text);inserted=a.i;a.forward(a.len-left);}else if(a.done&&b.done){return insert2?ChangeSet.createSet(sections,insert2):ChangeDesc.create(sections);}else{throw new Error(\"Mismatched change set lengths\");}}}function composeSets(setA,setB,mkSet=false){let sections=[];let insert2=mkSet?[]:null;let a=new SectionIter(setA),b=new SectionIter(setB);for(let open=false;;){if(a.done&&b.done){return insert2?ChangeSet.createSet(sections,insert2):ChangeDesc.create(sections);}else if(a.ins==0){addSection(sections,a.len,0,open);a.next();}else if(b.len==0&&!b.done){addSection(sections,0,b.ins,open);if(insert2)addInsert(insert2,sections,b.text);b.next();}else if(a.done||b.done){throw new Error(\"Mismatched change set lengths\");}else{let len=Math.min(a.len2,b.len),sectionLen=sections.length;if(a.ins==-1){let insB=b.ins==-1?-1:b.off?0:b.ins;addSection(sections,len,insB,open);if(insert2&&insB)addInsert(insert2,sections,b.text);}else if(b.ins==-1){addSection(sections,a.off?0:a.len,len,open);if(insert2)addInsert(insert2,sections,a.textBit(len));}else{addSection(sections,a.off?0:a.len,b.off?0:b.ins,open);if(insert2&&!b.off)addInsert(insert2,sections,b.text);}open=(a.ins>len||b.ins>=0&&b.len>len)&&(open||sections.length>sectionLen);a.forward2(len);b.forward(len);}}}var SectionIter=class{next(){let{sections}=this.set;if(this.i<sections.length){this.len=sections[this.i++];this.ins=sections[this.i++];}else{this.len=0;this.ins=-2;}this.off=0;}get done(){return this.ins==-2;}get len2(){return this.ins<0?this.len:this.ins;}get text(){let{inserted}=this.set,index=this.i-2>>1;return index>=inserted.length?Text.empty:inserted[index];}textBit(len){let{inserted}=this.set,index=this.i-2>>1;return index>=inserted.length&&!len?Text.empty:inserted[index].slice(this.off,len==null?void 0:this.off+len);}forward(len){if(len==this.len)this.next();else{this.len-=len;this.off+=len;}}forward2(len){if(this.ins==-1)this.forward(len);else if(len==this.ins)this.next();else{this.ins-=len;this.off+=len;}}constructor(set){this.set=set;this.i=0;this.next();}};var SelectionRange=class{/**\n  The anchor of the range—the side that doesn't move when you\n  extend it.\n  */ get anchor(){return this.flags&16?this.to:this.from;}/**\n  The head of the range, which is moved when the range is\n  [extended](https://codemirror.net/6/docs/ref/#state.SelectionRange.extend).\n  */ get head(){return this.flags&16?this.from:this.to;}/**\n  True when `anchor` and `head` are at the same position.\n  */ get empty(){return this.from==this.to;}/**\n  If this is a cursor that is explicitly associated with the\n  character on one of its sides, this returns the side. -1 means\n  the character before its position, 1 the character after, and 0\n  means no association.\n  */ get assoc(){return this.flags&4?-1:this.flags&8?1:0;}/**\n  The bidirectional text level associated with this cursor, if\n  any.\n  */ get bidiLevel(){let level=this.flags&3;return level==3?null:level;}/**\n  The goal column (stored vertical offset) associated with a\n  cursor. This is used to preserve the vertical position when\n  [moving](https://codemirror.net/6/docs/ref/#view.EditorView.moveVertically) across\n  lines of different length.\n  */ get goalColumn(){let value=this.flags>>5;return value==33554431?void 0:value;}/**\n  Map this range through a change, producing a valid range in the\n  updated document.\n  */ map(change,assoc=-1){let from,to;if(this.empty){from=to=change.mapPos(this.from,assoc);}else{from=change.mapPos(this.from,1);to=change.mapPos(this.to,-1);}return from==this.from&&to==this.to?this:new SelectionRange(from,to,this.flags);}/**\n  Extend this range to cover at least `from` to `to`.\n  */ extend(from,to=from){if(from<=this.anchor&&to>=this.anchor)return EditorSelection.range(from,to);let head=Math.abs(from-this.anchor)>Math.abs(to-this.anchor)?from:to;return EditorSelection.range(this.anchor,head);}/**\n  Compare this range to another range.\n  */ eq(other){return this.anchor==other.anchor&&this.head==other.head;}/**\n  Return a JSON-serializable object representing the range.\n  */ toJSON(){return{anchor:this.anchor,head:this.head};}/**\n  Convert a JSON representation of a range to a `SelectionRange`\n  instance.\n  */ static fromJSON(json){if(!json||typeof json.anchor!=\"number\"||typeof json.head!=\"number\")throw new RangeError(\"Invalid JSON representation for SelectionRange\");return EditorSelection.range(json.anchor,json.head);}/**\n  @internal\n  */ static create(from,to,flags){return new SelectionRange(from,to,flags);}constructor(from,to,flags){this.from=from;this.to=to;this.flags=flags;}};var EditorSelection=class{/**\n  Map a selection through a change. Used to adjust the selection\n  position for changes.\n  */ map(change,assoc=-1){if(change.empty)return this;return EditorSelection.create(this.ranges.map(r=>r.map(change,assoc)),this.mainIndex);}/**\n  Compare this selection to another selection.\n  */ eq(other){if(this.ranges.length!=other.ranges.length||this.mainIndex!=other.mainIndex)return false;for(let i=0;i<this.ranges.length;i++)if(!this.ranges[i].eq(other.ranges[i]))return false;return true;}/**\n  Get the primary selection range. Usually, you should make sure\n  your code applies to _all_ ranges, by using methods like\n  [`changeByRange`](https://codemirror.net/6/docs/ref/#state.EditorState.changeByRange).\n  */ get main(){return this.ranges[this.mainIndex];}/**\n  Make sure the selection only has one range. Returns a selection\n  holding only the main range from this selection.\n  */ asSingle(){return this.ranges.length==1?this:new EditorSelection([this.main],0);}/**\n  Extend this selection with an extra range.\n  */ addRange(range,main=true){return EditorSelection.create([range].concat(this.ranges),main?0:this.mainIndex+1);}/**\n  Replace a given range with another range, and then normalize the\n  selection to merge and sort ranges if necessary.\n  */ replaceRange(range,which=this.mainIndex){let ranges=this.ranges.slice();ranges[which]=range;return EditorSelection.create(ranges,this.mainIndex);}/**\n  Convert this selection to an object that can be serialized to\n  JSON.\n  */ toJSON(){return{ranges:this.ranges.map(r=>r.toJSON()),main:this.mainIndex};}/**\n  Create a selection from a JSON representation.\n  */ static fromJSON(json){if(!json||!Array.isArray(json.ranges)||typeof json.main!=\"number\"||json.main>=json.ranges.length)throw new RangeError(\"Invalid JSON representation for EditorSelection\");return new EditorSelection(json.ranges.map(r=>SelectionRange.fromJSON(r)),json.main);}/**\n  Create a selection holding a single range.\n  */ static single(anchor,head=anchor){return new EditorSelection([EditorSelection.range(anchor,head)],0);}/**\n  Sort and merge the given set of ranges, creating a valid\n  selection.\n  */ static create(ranges,mainIndex=0){if(ranges.length==0)throw new RangeError(\"A selection needs at least one range\");for(let pos=0,i=0;i<ranges.length;i++){let range=ranges[i];if(range.empty?range.from<=pos:range.from<pos)return EditorSelection.normalized(ranges.slice(),mainIndex);pos=range.to;}return new EditorSelection(ranges,mainIndex);}/**\n  Create a cursor selection range at the given position. You can\n  safely ignore the optional arguments in most situations.\n  */ static cursor(pos,assoc=0,bidiLevel,goalColumn){return SelectionRange.create(pos,pos,(assoc==0?0:assoc<0?4:8)|(bidiLevel==null?3:Math.min(2,bidiLevel))|(goalColumn!==null&&goalColumn!==void 0?goalColumn:33554431)<<5);}/**\n  Create a selection range.\n  */ static range(anchor,head,goalColumn,bidiLevel){let flags=(goalColumn!==null&&goalColumn!==void 0?goalColumn:33554431)<<5|(bidiLevel==null?3:Math.min(2,bidiLevel));return head<anchor?SelectionRange.create(head,anchor,16|8|flags):SelectionRange.create(anchor,head,(head>anchor?4:0)|flags);}/**\n  @internal\n  */ static normalized(ranges,mainIndex=0){let main=ranges[mainIndex];ranges.sort((a,b)=>a.from-b.from);mainIndex=ranges.indexOf(main);for(let i=1;i<ranges.length;i++){let range=ranges[i],prev=ranges[i-1];if(range.empty?range.from<=prev.to:range.from<prev.to){let from=prev.from,to=Math.max(range.to,prev.to);if(i<=mainIndex)mainIndex--;ranges.splice(--i,2,range.anchor>range.head?EditorSelection.range(to,from):EditorSelection.range(from,to));}}return new EditorSelection(ranges,mainIndex);}constructor(ranges,mainIndex){this.ranges=ranges;this.mainIndex=mainIndex;}};function checkSelection(selection,docLength){for(let range of selection.ranges)if(range.to>docLength)throw new RangeError(\"Selection points outside of document\");}var nextID=0;var Facet=class{/**\n  Define a new facet.\n  */ static define(config={}){return new Facet(config.combine||(a=>a),config.compareInput||((a,b)=>a===b),config.compare||(!config.combine?sameArray:(a,b)=>a===b),!!config.static,config.enables);}/**\n  Returns an extension that adds the given value to this facet.\n  */ of(value){return new FacetProvider([],this,0,value);}/**\n  Create an extension that computes a value for the facet from a\n  state. You must take care to declare the parts of the state that\n  this value depends on, since your function is only called again\n  for a new state when one of those parts changed.\n  \n  In cases where your value depends only on a single field, you'll\n  want to use the [`from`](https://codemirror.net/6/docs/ref/#state.Facet.from) method instead.\n  */ compute(deps,get){if(this.isStatic)throw new Error(\"Can't compute a static facet\");return new FacetProvider(deps,this,1,get);}/**\n  Create an extension that computes zero or more values for this\n  facet from a state.\n  */ computeN(deps,get){if(this.isStatic)throw new Error(\"Can't compute a static facet\");return new FacetProvider(deps,this,2,get);}from(field,get){if(!get)get=x=>x;return this.compute([field],state=>get(state.field(field)));}constructor(combine,compareInput,compare2,isStatic,enables){this.combine=combine;this.compareInput=compareInput;this.compare=compare2;this.isStatic=isStatic;this.id=nextID++;this.default=combine([]);this.extensions=typeof enables==\"function\"?enables(this):enables;}};function sameArray(a,b){return a==b||a.length==b.length&&a.every((e,i)=>e===b[i]);}var FacetProvider=class{dynamicSlot(addresses){var _a;let getter=this.value;let compare2=this.facet.compareInput;let id=this.id,idx=addresses[id]>>1,multi=this.type==2;let depDoc=false,depSel=false,depAddrs=[];for(let dep of this.dependencies){if(dep==\"doc\")depDoc=true;else if(dep==\"selection\")depSel=true;else if((((_a=addresses[dep.id])!==null&&_a!==void 0?_a:1)&1)==0)depAddrs.push(addresses[dep.id]);}return{create(state){state.values[idx]=getter(state);return 1;},update(state,tr){if(depDoc&&tr.docChanged||depSel&&(tr.docChanged||tr.selection)||ensureAll(state,depAddrs)){let newVal=getter(state);if(multi?!compareArray(newVal,state.values[idx],compare2):!compare2(newVal,state.values[idx])){state.values[idx]=newVal;return 1;}}return 0;},reconfigure:(state,oldState)=>{let newVal,oldAddr=oldState.config.address[id];if(oldAddr!=null){let oldVal=getAddr(oldState,oldAddr);if(this.dependencies.every(dep=>{return dep instanceof Facet?oldState.facet(dep)===state.facet(dep):dep instanceof StateField?oldState.field(dep,false)==state.field(dep,false):true;})||(multi?compareArray(newVal=getter(state),oldVal,compare2):compare2(newVal=getter(state),oldVal))){state.values[idx]=oldVal;return 0;}}else{newVal=getter(state);}state.values[idx]=newVal;return 1;}};}constructor(dependencies,facet,type,value){this.dependencies=dependencies;this.facet=facet;this.type=type;this.value=value;this.id=nextID++;}};function compareArray(a,b,compare2){if(a.length!=b.length)return false;for(let i=0;i<a.length;i++)if(!compare2(a[i],b[i]))return false;return true;}function ensureAll(state,addrs){let changed=false;for(let addr of addrs)if(ensureAddr(state,addr)&1)changed=true;return changed;}function dynamicFacetSlot(addresses,facet,providers){let providerAddrs=providers.map(p=>addresses[p.id]);let providerTypes=providers.map(p=>p.type);let dynamic=providerAddrs.filter(p=>!(p&1));let idx=addresses[facet.id]>>1;function get(state){let values=[];for(let i=0;i<providerAddrs.length;i++){let value=getAddr(state,providerAddrs[i]);if(providerTypes[i]==2)for(let val of value)values.push(val);else values.push(value);}return facet.combine(values);}return{create(state){for(let addr of providerAddrs)ensureAddr(state,addr);state.values[idx]=get(state);return 1;},update(state,tr){if(!ensureAll(state,dynamic))return 0;let value=get(state);if(facet.compare(value,state.values[idx]))return 0;state.values[idx]=value;return 1;},reconfigure(state,oldState){let depChanged=ensureAll(state,providerAddrs);let oldProviders=oldState.config.facets[facet.id],oldValue=oldState.facet(facet);if(oldProviders&&!depChanged&&sameArray(providers,oldProviders)){state.values[idx]=oldValue;return 0;}let value=get(state);if(facet.compare(value,oldValue)){state.values[idx]=oldValue;return 0;}state.values[idx]=value;return 1;}};}var initField=/* @__PURE__ */ Facet.define({static:true});var StateField=class{/**\n  Define a state field.\n  */ static define(config){let field=new StateField(nextID++,config.create,config.update,config.compare||((a,b)=>a===b),config);if(config.provide)field.provides=config.provide(field);return field;}create(state){let init=state.facet(initField).find(i=>i.field==this);return((init===null||init===void 0?void 0:init.create)||this.createF)(state);}/**\n  @internal\n  */ slot(addresses){let idx=addresses[this.id]>>1;return{create:state=>{state.values[idx]=this.create(state);return 1;},update:(state,tr)=>{let oldVal=state.values[idx];let value=this.updateF(oldVal,tr);if(this.compareF(oldVal,value))return 0;state.values[idx]=value;return 1;},reconfigure:(state,oldState)=>{if(oldState.config.address[this.id]!=null){state.values[idx]=oldState.field(this);return 0;}state.values[idx]=this.create(state);return 1;}};}/**\n  Returns an extension that enables this field and overrides the\n  way it is initialized. Can be useful when you need to provide a\n  non-default starting value for the field.\n  */ init(create){return[this,initField.of({field:this,create})];}/**\n  State field instances can be used as\n  [`Extension`](https://codemirror.net/6/docs/ref/#state.Extension) values to enable the field in a\n  given state.\n  */ get extension(){return this;}constructor(id,createF,updateF,compareF,spec){this.id=id;this.createF=createF;this.updateF=updateF;this.compareF=compareF;this.spec=spec;this.provides=void 0;}};var Prec_={lowest:4,low:3,default:2,high:1,highest:0};function prec(value){return ext=>new PrecExtension(ext,value);}var Prec={/**\n  The highest precedence level, for extensions that should end up\n  near the start of the precedence ordering.\n  */ highest:/* @__PURE__ */ prec(Prec_.highest),/**\n  A higher-than-default precedence, for extensions that should\n  come before those with default precedence.\n  */ high:/* @__PURE__ */ prec(Prec_.high),/**\n  The default precedence, which is also used for extensions\n  without an explicit precedence.\n  */ default:/* @__PURE__ */ prec(Prec_.default),/**\n  A lower-than-default precedence.\n  */ low:/* @__PURE__ */ prec(Prec_.low),/**\n  The lowest precedence level. Meant for things that should end up\n  near the end of the extension order.\n  */ lowest:/* @__PURE__ */ prec(Prec_.lowest)};var PrecExtension=class{constructor(inner,prec2){this.inner=inner;this.prec=prec2;}};var Compartment=class{/**\n  Create an instance of this compartment to add to your [state\n  configuration](https://codemirror.net/6/docs/ref/#state.EditorStateConfig.extensions).\n  */ of(ext){return new CompartmentInstance(this,ext);}/**\n  Create an [effect](https://codemirror.net/6/docs/ref/#state.TransactionSpec.effects) that\n  reconfigures this compartment.\n  */ reconfigure(content){return Compartment.reconfigure.of({compartment:this,extension:content});}/**\n  Get the current content of the compartment in the state, or\n  `undefined` if it isn't present.\n  */ get(state){return state.config.compartments.get(this);}};var CompartmentInstance=class{constructor(compartment,inner){this.compartment=compartment;this.inner=inner;}};var Configuration=class{staticFacet(facet){let addr=this.address[facet.id];return addr==null?facet.default:this.staticValues[addr>>1];}static resolve(base,compartments,oldState){let fields=[];let facets=/* @__PURE__ */ Object.create(null);let newCompartments=/* @__PURE__ */ new Map;for(let ext of flatten(base,compartments,newCompartments)){if(ext instanceof StateField)fields.push(ext);else(facets[ext.facet.id]||(facets[ext.facet.id]=[])).push(ext);}let address=/* @__PURE__ */ Object.create(null);let staticValues=[];let dynamicSlots=[];for(let field of fields){address[field.id]=dynamicSlots.length<<1;dynamicSlots.push(a=>field.slot(a));}let oldFacets=oldState===null||oldState===void 0?void 0:oldState.config.facets;for(let id in facets){let providers=facets[id],facet=providers[0].facet;let oldProviders=oldFacets&&oldFacets[id]||[];if(providers.every(p=>p.type==0)){address[facet.id]=staticValues.length<<1|1;if(sameArray(oldProviders,providers)){staticValues.push(oldState.facet(facet));}else{let value=facet.combine(providers.map(p=>p.value));staticValues.push(oldState&&facet.compare(value,oldState.facet(facet))?oldState.facet(facet):value);}}else{for(let p of providers){if(p.type==0){address[p.id]=staticValues.length<<1|1;staticValues.push(p.value);}else{address[p.id]=dynamicSlots.length<<1;dynamicSlots.push(a=>p.dynamicSlot(a));}}address[facet.id]=dynamicSlots.length<<1;dynamicSlots.push(a=>dynamicFacetSlot(a,facet,providers));}}let dynamic=dynamicSlots.map(f=>f(address));return new Configuration(base,newCompartments,dynamic,address,staticValues,facets);}constructor(base,compartments,dynamicSlots,address,staticValues,facets){this.base=base;this.compartments=compartments;this.dynamicSlots=dynamicSlots;this.address=address;this.staticValues=staticValues;this.facets=facets;this.statusTemplate=[];while(this.statusTemplate.length<dynamicSlots.length)this.statusTemplate.push(0);}};function flatten(extension,compartments,newCompartments){let result=[[],[],[],[],[]];let seen=/* @__PURE__ */ new Map;function inner(ext,prec2){let known=seen.get(ext);if(known!=null){if(known<=prec2)return;let found=result[known].indexOf(ext);if(found>-1)result[known].splice(found,1);if(ext instanceof CompartmentInstance)newCompartments.delete(ext.compartment);}seen.set(ext,prec2);if(Array.isArray(ext)){for(let e of ext)inner(e,prec2);}else if(ext instanceof CompartmentInstance){if(newCompartments.has(ext.compartment))throw new RangeError(`Duplicate use of compartment in extensions`);let content=compartments.get(ext.compartment)||ext.inner;newCompartments.set(ext.compartment,content);inner(content,prec2);}else if(ext instanceof PrecExtension){inner(ext.inner,ext.prec);}else if(ext instanceof StateField){result[prec2].push(ext);if(ext.provides)inner(ext.provides,prec2);}else if(ext instanceof FacetProvider){result[prec2].push(ext);if(ext.facet.extensions)inner(ext.facet.extensions,Prec_.default);}else{let content1=ext.extension;if(!content1)throw new Error(`Unrecognized extension value in extension set (${ext}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);inner(content1,prec2);}}inner(extension,Prec_.default);return result.reduce((a,b)=>a.concat(b));}function ensureAddr(state,addr){if(addr&1)return 2;let idx=addr>>1;let status=state.status[idx];if(status==4)throw new Error(\"Cyclic dependency between fields and/or facets\");if(status&2)return status;state.status[idx]=4;let changed=state.computeSlot(state,state.config.dynamicSlots[idx]);return state.status[idx]=2|changed;}function getAddr(state,addr){return addr&1?state.config.staticValues[addr>>1]:state.values[addr>>1];}var languageData=/* @__PURE__ */ Facet.define();var allowMultipleSelections=/* @__PURE__ */ Facet.define({combine:values=>values.some(v=>v),static:true});var lineSeparator=/* @__PURE__ */ Facet.define({combine:values=>values.length?values[0]:void 0,static:true});var changeFilter=/* @__PURE__ */ Facet.define();var transactionFilter=/* @__PURE__ */ Facet.define();var transactionExtender=/* @__PURE__ */ Facet.define();var readOnly=/* @__PURE__ */ Facet.define({combine:values=>values.length?values[0]:false});var Annotation=class{/**\n  Define a new type of annotation.\n  */ static define(){return new AnnotationType;}/**\n  @internal\n  */ constructor(type,value){this.type=type;this.value=value;}};var AnnotationType=class{/**\n  Create an instance of this annotation.\n  */ of(value){return new Annotation(this,value);}};var StateEffectType=class{/**\n  Create a [state effect](https://codemirror.net/6/docs/ref/#state.StateEffect) instance of this\n  type.\n  */ of(value){return new StateEffect(this,value);}/**\n  @internal\n  */ constructor(map){this.map=map;}};var StateEffect=class{/**\n  Map this effect through a position mapping. Will return\n  `undefined` when that ends up deleting the effect.\n  */ map(mapping){let mapped=this.type.map(this.value,mapping);return mapped===void 0?void 0:mapped==this.value?this:new StateEffect(this.type,mapped);}/**\n  Tells you whether this effect object is of a given\n  [type](https://codemirror.net/6/docs/ref/#state.StateEffectType).\n  */ is(type){return this.type==type;}/**\n  Define a new effect type. The type parameter indicates the type\n  of values that his effect holds. It should be a type that\n  doesn't include `undefined`, since that is used in\n  [mapping](https://codemirror.net/6/docs/ref/#state.StateEffect.map) to indicate that an effect is\n  removed.\n  */ static define(spec={}){return new StateEffectType(spec.map||(v=>v));}/**\n  Map an array of effects through a change set.\n  */ static mapEffects(effects,mapping){if(!effects.length)return effects;let result=[];for(let effect of effects){let mapped=effect.map(mapping);if(mapped)result.push(mapped);}return result;}/**\n  @internal\n  */ constructor(type,value){this.type=type;this.value=value;}};StateEffect.reconfigure=/* @__PURE__ */ StateEffect.define();StateEffect.appendConfig=/* @__PURE__ */ StateEffect.define();var Transaction=class{/**\n  @internal\n  */ static create(startState,changes,selection,effects,annotations,scrollIntoView){return new Transaction(startState,changes,selection,effects,annotations,scrollIntoView);}/**\n  The new document produced by the transaction. Contrary to\n  [`.state`](https://codemirror.net/6/docs/ref/#state.Transaction.state)`.doc`, accessing this won't\n  force the entire new state to be computed right away, so it is\n  recommended that [transaction\n  filters](https://codemirror.net/6/docs/ref/#state.EditorState^transactionFilter) use this getter\n  when they need to look at the new document.\n  */ get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc));}/**\n  The new selection produced by the transaction. If\n  [`this.selection`](https://codemirror.net/6/docs/ref/#state.Transaction.selection) is undefined,\n  this will [map](https://codemirror.net/6/docs/ref/#state.EditorSelection.map) the start state's\n  current selection through the changes made by the transaction.\n  */ get newSelection(){return this.selection||this.startState.selection.map(this.changes);}/**\n  The new state created by the transaction. Computed on demand\n  (but retained for subsequent access), so it is recommended not to\n  access it in [transaction\n  filters](https://codemirror.net/6/docs/ref/#state.EditorState^transactionFilter) when possible.\n  */ get state(){if(!this._state)this.startState.applyTransaction(this);return this._state;}/**\n  Get the value of the given annotation type, if any.\n  */ annotation(type){for(let ann of this.annotations)if(ann.type==type)return ann.value;return void 0;}/**\n  Indicates whether the transaction changed the document.\n  */ get docChanged(){return!this.changes.empty;}/**\n  Indicates whether this transaction reconfigures the state\n  (through a [configuration compartment](https://codemirror.net/6/docs/ref/#state.Compartment) or\n  with a top-level configuration\n  [effect](https://codemirror.net/6/docs/ref/#state.StateEffect^reconfigure).\n  */ get reconfigured(){return this.startState.config!=this.state.config;}/**\n  Returns true if the transaction has a [user\n  event](https://codemirror.net/6/docs/ref/#state.Transaction^userEvent) annotation that is equal to\n  or more specific than `event`. For example, if the transaction\n  has `\"select.pointer\"` as user event, `\"select\"` and\n  `\"select.pointer\"` will match it.\n  */ isUserEvent(event){let e=this.annotation(Transaction.userEvent);return!!(e&&(e==event||e.length>event.length&&e.slice(0,event.length)==event&&e[event.length]==\".\"));}constructor(startState,changes,selection,effects,annotations,scrollIntoView){this.startState=startState;this.changes=changes;this.selection=selection;this.effects=effects;this.annotations=annotations;this.scrollIntoView=scrollIntoView;this._doc=null;this._state=null;if(selection)checkSelection(selection,changes.newLength);if(!annotations.some(a=>a.type==Transaction.time))this.annotations=annotations.concat(Transaction.time.of(Date.now()));}};Transaction.time=/* @__PURE__ */ Annotation.define();Transaction.userEvent=/* @__PURE__ */ Annotation.define();Transaction.addToHistory=/* @__PURE__ */ Annotation.define();Transaction.remote=/* @__PURE__ */ Annotation.define();function joinRanges(a,b){let result=[];for(let iA=0,iB=0;;){let from,to;if(iA<a.length&&(iB==b.length||b[iB]>=a[iA])){from=a[iA++];to=a[iA++];}else if(iB<b.length){from=b[iB++];to=b[iB++];}else return result;if(!result.length||result[result.length-1]<from)result.push(from,to);else if(result[result.length-1]<to)result[result.length-1]=to;}}function mergeTransaction(a,b,sequential){var _a;let mapForA,mapForB,changes;if(sequential){mapForA=b.changes;mapForB=ChangeSet.empty(b.changes.length);changes=a.changes.compose(b.changes);}else{mapForA=b.changes.map(a.changes);mapForB=a.changes.mapDesc(b.changes,true);changes=a.changes.compose(mapForA);}return{changes,selection:b.selection?b.selection.map(mapForB):(_a=a.selection)===null||_a===void 0?void 0:_a.map(mapForA),effects:StateEffect.mapEffects(a.effects,mapForA).concat(StateEffect.mapEffects(b.effects,mapForB)),annotations:a.annotations.length?a.annotations.concat(b.annotations):b.annotations,scrollIntoView:a.scrollIntoView||b.scrollIntoView};}function resolveTransactionInner(state,spec,docSize){let sel=spec.selection,annotations=asArray(spec.annotations);if(spec.userEvent)annotations=annotations.concat(Transaction.userEvent.of(spec.userEvent));return{changes:spec.changes instanceof ChangeSet?spec.changes:ChangeSet.of(spec.changes||[],docSize,state.facet(lineSeparator)),selection:sel&&(sel instanceof EditorSelection?sel:EditorSelection.single(sel.anchor,sel.head)),effects:asArray(spec.effects),annotations,scrollIntoView:!!spec.scrollIntoView};}function resolveTransaction(state,specs,filter){let s=resolveTransactionInner(state,specs.length?specs[0]:{},state.doc.length);if(specs.length&&specs[0].filter===false)filter=false;for(let i=1;i<specs.length;i++){if(specs[i].filter===false)filter=false;let seq=!!specs[i].sequential;s=mergeTransaction(s,resolveTransactionInner(state,specs[i],seq?s.changes.newLength:state.doc.length),seq);}let tr=Transaction.create(state,s.changes,s.selection,s.effects,s.annotations,s.scrollIntoView);return extendTransaction(filter?filterTransaction(tr):tr);}function filterTransaction(tr){let state=tr.startState;let result=true;for(let filter of state.facet(changeFilter)){let value=filter(tr);if(value===false){result=false;break;}if(Array.isArray(value))result=result===true?value:joinRanges(result,value);}if(result!==true){let changes,back;if(result===false){back=tr.changes.invertedDesc;changes=ChangeSet.empty(state.doc.length);}else{let filtered=tr.changes.filter(result);changes=filtered.changes;back=filtered.filtered.mapDesc(filtered.changes).invertedDesc;}tr=Transaction.create(state,changes,tr.selection&&tr.selection.map(back),StateEffect.mapEffects(tr.effects,back),tr.annotations,tr.scrollIntoView);}let filters=state.facet(transactionFilter);for(let i=filters.length-1;i>=0;i--){let filtered1=filters[i](tr);if(filtered1 instanceof Transaction)tr=filtered1;else if(Array.isArray(filtered1)&&filtered1.length==1&&filtered1[0]instanceof Transaction)tr=filtered1[0];else tr=resolveTransaction(state,asArray(filtered1),false);}return tr;}function extendTransaction(tr){let state=tr.startState,extenders=state.facet(transactionExtender),spec=tr;for(let i=extenders.length-1;i>=0;i--){let extension=extenders[i](tr);if(extension&&Object.keys(extension).length)spec=mergeTransaction(spec,resolveTransactionInner(state,extension,tr.changes.newLength),true);}return spec==tr?tr:Transaction.create(state,tr.changes,tr.selection,spec.effects,spec.annotations,spec.scrollIntoView);}var none=[];function asArray(value){return value==null?none:Array.isArray(value)?value:[value];}var CharCategory=/* @__PURE__ */ function(CharCategory2){CharCategory2[CharCategory2[\"Word\"]=0]=\"Word\";CharCategory2[CharCategory2[\"Space\"]=1]=\"Space\";CharCategory2[CharCategory2[\"Other\"]=2]=\"Other\";return CharCategory2;}(CharCategory||(CharCategory={}));var nonASCIISingleCaseWordChar=/[\\u00df\\u0587\\u0590-\\u05f4\\u0600-\\u06ff\\u3040-\\u309f\\u30a0-\\u30ff\\u3400-\\u4db5\\u4e00-\\u9fcc\\uac00-\\ud7af]/;var wordChar;try{wordChar=/* @__PURE__ */ new RegExp(\"[\\\\p{Alphabetic}\\\\p{Number}_]\",\"u\");}catch(_){}function hasWordChar(str){if(wordChar)return wordChar.test(str);for(let i=0;i<str.length;i++){let ch=str[i];if(/\\w/.test(ch)||ch>\"\\x80\"&&(ch.toUpperCase()!=ch.toLowerCase()||nonASCIISingleCaseWordChar.test(ch)))return true;}return false;}function makeCategorizer(wordChars){return char=>{if(!/\\S/.test(char))return CharCategory.Space;if(hasWordChar(char))return CharCategory.Word;for(let i=0;i<wordChars.length;i++)if(char.indexOf(wordChars[i])>-1)return CharCategory.Word;return CharCategory.Other;};}var EditorState=class{field(field,require2=true){let addr=this.config.address[field.id];if(addr==null){if(require2)throw new RangeError(\"Field is not present in this state\");return void 0;}ensureAddr(this,addr);return getAddr(this,addr);}/**\n  Create a [transaction](https://codemirror.net/6/docs/ref/#state.Transaction) that updates this\n  state. Any number of [transaction specs](https://codemirror.net/6/docs/ref/#state.TransactionSpec)\n  can be passed. Unless\n  [`sequential`](https://codemirror.net/6/docs/ref/#state.TransactionSpec.sequential) is set, the\n  [changes](https://codemirror.net/6/docs/ref/#state.TransactionSpec.changes) (if any) of each spec\n  are assumed to start in the _current_ document (not the document\n  produced by previous specs), and its\n  [selection](https://codemirror.net/6/docs/ref/#state.TransactionSpec.selection) and\n  [effects](https://codemirror.net/6/docs/ref/#state.TransactionSpec.effects) are assumed to refer\n  to the document created by its _own_ changes. The resulting\n  transaction contains the combined effect of all the different\n  specs. For [selection](https://codemirror.net/6/docs/ref/#state.TransactionSpec.selection), later\n  specs take precedence over earlier ones.\n  */ update(...specs){return resolveTransaction(this,specs,true);}/**\n  @internal\n  */ applyTransaction(tr){let conf=this.config,{base,compartments}=conf;for(let effect of tr.effects){if(effect.is(Compartment.reconfigure)){if(conf){compartments=/* @__PURE__ */ new Map;conf.compartments.forEach((val,key)=>compartments.set(key,val));conf=null;}compartments.set(effect.value.compartment,effect.value.extension);}else if(effect.is(StateEffect.reconfigure)){conf=null;base=effect.value;}else if(effect.is(StateEffect.appendConfig)){conf=null;base=asArray(base).concat(effect.value);}}let startValues;if(!conf){conf=Configuration.resolve(base,compartments,this);let intermediateState=new EditorState(conf,this.doc,this.selection,conf.dynamicSlots.map(()=>null),(state,slot)=>slot.reconfigure(state,this),null);startValues=intermediateState.values;}else{startValues=tr.startState.values.slice();}new EditorState(conf,tr.newDoc,tr.newSelection,startValues,(state,slot)=>slot.update(state,tr),tr);}/**\n  Create a [transaction spec](https://codemirror.net/6/docs/ref/#state.TransactionSpec) that\n  replaces every selection range with the given content.\n  */ replaceSelection(text){if(typeof text==\"string\")text=this.toText(text);return this.changeByRange(range=>({changes:{from:range.from,to:range.to,insert:text},range:EditorSelection.cursor(range.from+text.length)}));}/**\n  Create a set of changes and a new selection by running the given\n  function for each range in the active selection. The function\n  can return an optional set of changes (in the coordinate space\n  of the start document), plus an updated range (in the coordinate\n  space of the document produced by the call's own changes). This\n  method will merge all the changes and ranges into a single\n  changeset and selection, and return it as a [transaction\n  spec](https://codemirror.net/6/docs/ref/#state.TransactionSpec), which can be passed to\n  [`update`](https://codemirror.net/6/docs/ref/#state.EditorState.update).\n  */ changeByRange(f){let sel=this.selection;let result1=f(sel.ranges[0]);let changes=this.changes(result1.changes),ranges=[result1.range];let effects=asArray(result1.effects);for(let i=1;i<sel.ranges.length;i++){let result=f(sel.ranges[i]);let newChanges=this.changes(result.changes),newMapped=newChanges.map(changes);for(let j=0;j<i;j++)ranges[j]=ranges[j].map(newMapped);let mapBy=changes.mapDesc(newChanges,true);ranges.push(result.range.map(mapBy));changes=changes.compose(newMapped);effects=StateEffect.mapEffects(effects,newMapped).concat(StateEffect.mapEffects(asArray(result.effects),mapBy));}return{changes,selection:EditorSelection.create(ranges,sel.mainIndex),effects};}/**\n  Create a [change set](https://codemirror.net/6/docs/ref/#state.ChangeSet) from the given change\n  description, taking the state's document length and line\n  separator into account.\n  */ changes(spec=[]){if(spec instanceof ChangeSet)return spec;return ChangeSet.of(spec,this.doc.length,this.facet(EditorState.lineSeparator));}/**\n  Using the state's [line\n  separator](https://codemirror.net/6/docs/ref/#state.EditorState^lineSeparator), create a\n  [`Text`](https://codemirror.net/6/docs/ref/#state.Text) instance from the given string.\n  */ toText(string){return Text.of(string.split(this.facet(EditorState.lineSeparator)||DefaultSplit));}/**\n  Return the given range of the document as a string.\n  */ sliceDoc(from=0,to=this.doc.length){return this.doc.sliceString(from,to,this.lineBreak);}/**\n  Get the value of a state [facet](https://codemirror.net/6/docs/ref/#state.Facet).\n  */ facet(facet){let addr=this.config.address[facet.id];if(addr==null)return facet.default;ensureAddr(this,addr);return getAddr(this,addr);}/**\n  Convert this state to a JSON-serializable object. When custom\n  fields should be serialized, you can pass them in as an object\n  mapping property names (in the resulting object, which should\n  not use `doc` or `selection`) to fields.\n  */ toJSON(fields){let result={doc:this.sliceDoc(),selection:this.selection.toJSON()};if(fields)for(let prop in fields){let value=fields[prop];if(value instanceof StateField&&this.config.address[value.id]!=null)result[prop]=value.spec.toJSON(this.field(fields[prop]),this);}return result;}/**\n  Deserialize a state from its JSON representation. When custom\n  fields should be deserialized, pass the same object you passed\n  to [`toJSON`](https://codemirror.net/6/docs/ref/#state.EditorState.toJSON) when serializing as\n  third argument.\n  */ static fromJSON(json,config={},fields){if(!json||typeof json.doc!=\"string\")throw new RangeError(\"Invalid JSON representation for EditorState\");let fieldInit=[];if(fields)for(let prop in fields){if(Object.prototype.hasOwnProperty.call(json,prop)){let field=fields[prop],value=json[prop];fieldInit.push(field.init(state=>field.spec.fromJSON(value,state)));}}return EditorState.create({doc:json.doc,selection:EditorSelection.fromJSON(json.selection),extensions:config.extensions?fieldInit.concat([config.extensions]):fieldInit});}/**\n  Create a new state. You'll usually only need this when\n  initializing an editor—updated states are created by applying\n  transactions.\n  */ static create(config={}){let configuration=Configuration.resolve(config.extensions||[],/* @__PURE__ */ new Map);let doc=config.doc instanceof Text?config.doc:Text.of((config.doc||\"\").split(configuration.staticFacet(EditorState.lineSeparator)||DefaultSplit));let selection=!config.selection?EditorSelection.single(0):config.selection instanceof EditorSelection?config.selection:EditorSelection.single(config.selection.anchor,config.selection.head);checkSelection(selection,doc.length);if(!configuration.staticFacet(allowMultipleSelections))selection=selection.asSingle();return new EditorState(configuration,doc,selection,configuration.dynamicSlots.map(()=>null),(state,slot)=>slot.create(state),null);}/**\n  The size (in columns) of a tab in the document, determined by\n  the [`tabSize`](https://codemirror.net/6/docs/ref/#state.EditorState^tabSize) facet.\n  */ get tabSize(){return this.facet(EditorState.tabSize);}/**\n  Get the proper [line-break](https://codemirror.net/6/docs/ref/#state.EditorState^lineSeparator)\n  string for this state.\n  */ get lineBreak(){return this.facet(EditorState.lineSeparator)||\"\\n\";}/**\n  Returns true when the editor is\n  [configured](https://codemirror.net/6/docs/ref/#state.EditorState^readOnly) to be read-only.\n  */ get readOnly(){return this.facet(readOnly);}/**\n  Look up a translation for the given phrase (via the\n  [`phrases`](https://codemirror.net/6/docs/ref/#state.EditorState^phrases) facet), or return the\n  original string if no translation is found.\n  \n  If additional arguments are passed, they will be inserted in\n  place of markers like `$1` (for the first value) and `$2`, etc.\n  A single `$` is equivalent to `$1`, and `$$` will produce a\n  literal dollar sign.\n  */ phrase(phrase,...insert2){for(let map of this.facet(EditorState.phrases))if(Object.prototype.hasOwnProperty.call(map,phrase)){phrase=map[phrase];break;}if(insert2.length)phrase=phrase.replace(/\\$(\\$|\\d*)/g,(m,i)=>{if(i==\"$\")return\"$\";let n=+(i||1);return!n||n>insert2.length?m:insert2[n-1];});return phrase;}/**\n  Find the values for a given language data field, provided by the\n  the [`languageData`](https://codemirror.net/6/docs/ref/#state.EditorState^languageData) facet.\n  \n  Examples of language data fields are...\n  \n  - [`\"commentTokens\"`](https://codemirror.net/6/docs/ref/#commands.CommentTokens) for specifying\n    comment syntax.\n  - [`\"autocomplete\"`](https://codemirror.net/6/docs/ref/#autocomplete.autocompletion^config.override)\n    for providing language-specific completion sources.\n  - [`\"wordChars\"`](https://codemirror.net/6/docs/ref/#state.EditorState.charCategorizer) for adding\n    characters that should be considered part of words in this\n    language.\n  - [`\"closeBrackets\"`](https://codemirror.net/6/docs/ref/#autocomplete.CloseBracketConfig) controls\n    bracket closing behavior.\n  */ languageDataAt(name,pos,side=-1){let values=[];for(let provider of this.facet(languageData)){for(let result of provider(this,pos,side)){if(Object.prototype.hasOwnProperty.call(result,name))values.push(result[name]);}}return values;}/**\n  Return a function that can categorize strings (expected to\n  represent a single [grapheme cluster](https://codemirror.net/6/docs/ref/#state.findClusterBreak))\n  into one of:\n  \n   - Word (contains an alphanumeric character or a character\n     explicitly listed in the local language's `\"wordChars\"`\n     language data, which should be a string)\n   - Space (contains only whitespace)\n   - Other (anything else)\n  */ charCategorizer(at){return makeCategorizer(this.languageDataAt(\"wordChars\",at).join(\"\"));}/**\n  Find the word at the given position, meaning the range\n  containing all [word](https://codemirror.net/6/docs/ref/#state.CharCategory.Word) characters\n  around it. If no word characters are adjacent to the position,\n  this returns null.\n  */ wordAt(pos){let{text,from,length}=this.doc.lineAt(pos);let cat=this.charCategorizer(pos);let start=pos-from,end=pos-from;while(start>0){let prev=findClusterBreak(text,start,false);if(cat(text.slice(prev,start))!=CharCategory.Word)break;start=prev;}while(end<length){let next=findClusterBreak(text,end);if(cat(text.slice(end,next))!=CharCategory.Word)break;end=next;}return start==end?null:EditorSelection.range(start+from,end+from);}constructor(config,doc,selection,values,computeSlot,tr){this.config=config;this.doc=doc;this.selection=selection;this.values=values;this.status=config.statusTemplate.slice();this.computeSlot=computeSlot;if(tr)tr._state=this;for(let i=0;i<this.config.dynamicSlots.length;i++)ensureAddr(this,i<<1);this.computeSlot=null;}};EditorState.allowMultipleSelections=allowMultipleSelections;EditorState.tabSize=/* @__PURE__ */ Facet.define({combine:values=>values.length?values[0]:4});EditorState.lineSeparator=lineSeparator;EditorState.readOnly=readOnly;EditorState.phrases=/* @__PURE__ */ Facet.define({compare(a,b){let kA=Object.keys(a),kB=Object.keys(b);return kA.length==kB.length&&kA.every(k=>a[k]==b[k]);}});EditorState.languageData=languageData;EditorState.changeFilter=changeFilter;EditorState.transactionFilter=transactionFilter;EditorState.transactionExtender=transactionExtender;Compartment.reconfigure=/* @__PURE__ */ StateEffect.define();function combineConfig(configs,defaults,combine={}){let result={};for(let config of configs)for(let key of Object.keys(config)){let value=config[key],current=result[key];if(current===void 0)result[key]=value;else if(current===value||value===void 0);else if(Object.hasOwnProperty.call(combine,key))result[key]=combine[key](current,value);else throw new Error(\"Config merge conflict for field \"+key);}for(let key1 in defaults)if(result[key1]===void 0)result[key1]=defaults[key1];return result;}var RangeValue=class{/**\n  Compare this value with another value. Used when comparing\n  rangesets. The default implementation compares by identity.\n  Unless you are only creating a fixed number of unique instances\n  of your value type, it is a good idea to implement this\n  properly.\n  */ eq(other){return this==other;}/**\n  Create a [range](https://codemirror.net/6/docs/ref/#state.Range) with this value.\n  */ range(from,to=from){return Range.create(from,to,this);}};RangeValue.prototype.startSide=RangeValue.prototype.endSide=0;RangeValue.prototype.point=false;RangeValue.prototype.mapMode=MapMode.TrackDel;var Range=class{/**\n  @internal\n  */ static create(from,to,value){return new Range(from,to,value);}constructor(from,to,value){this.from=from;this.to=to;this.value=value;}};function cmpRange(a,b){return a.from-b.from||a.value.startSide-b.value.startSide;}var Chunk=class{get length(){return this.to[this.to.length-1];}// Find the index of the given position and side. Use the ranges'\n// `from` pos when `end == false`, `to` when `end == true`.\nfindIndex(pos,side,end,startAt=0){let arr=end?this.to:this.from;for(let lo=startAt,hi=arr.length;;){if(lo==hi)return lo;let mid=lo+hi>>1;let diff=arr[mid]-pos||(end?this.value[mid].endSide:this.value[mid].startSide)-side;if(mid==lo)return diff>=0?lo:hi;if(diff>=0)hi=mid;else lo=mid+1;}}between(offset,from,to,f){for(let i=this.findIndex(from,-1e9,true),e=this.findIndex(to,1e9,false,i);i<e;i++)if(f(this.from[i]+offset,this.to[i]+offset,this.value[i])===false)return false;}map(offset,changes){let value=[],from=[],to=[],newPos=-1,maxPoint=-1;for(let i=0;i<this.value.length;i++){let val=this.value[i],curFrom=this.from[i]+offset,curTo=this.to[i]+offset,newFrom,newTo;if(curFrom==curTo){let mapped=changes.mapPos(curFrom,val.startSide,val.mapMode);if(mapped==null)continue;newFrom=newTo=mapped;if(val.startSide!=val.endSide){newTo=changes.mapPos(curFrom,val.endSide);if(newTo<newFrom)continue;}}else{newFrom=changes.mapPos(curFrom,val.startSide);newTo=changes.mapPos(curTo,val.endSide);if(newFrom>newTo||newFrom==newTo&&val.startSide>0&&val.endSide<=0)continue;}if((newTo-newFrom||val.endSide-val.startSide)<0)continue;if(newPos<0)newPos=newFrom;if(val.point)maxPoint=Math.max(maxPoint,newTo-newFrom);value.push(val);from.push(newFrom-newPos);to.push(newTo-newPos);}return{mapped:value.length?new Chunk(from,to,value,maxPoint):null,pos:newPos};}constructor(from,to,value,maxPoint){this.from=from;this.to=to;this.value=value;this.maxPoint=maxPoint;}};var RangeSet=class{/**\n  @internal\n  */ static create(chunkPos,chunk,nextLayer,maxPoint){return new RangeSet(chunkPos,chunk,nextLayer,maxPoint);}/**\n  @internal\n  */ get length(){let last=this.chunk.length-1;return last<0?0:Math.max(this.chunkEnd(last),this.nextLayer.length);}/**\n  The number of ranges in the set.\n  */ get size(){if(this.isEmpty)return 0;let size=this.nextLayer.size;for(let chunk of this.chunk)size+=chunk.value.length;return size;}/**\n  @internal\n  */ chunkEnd(index){return this.chunkPos[index]+this.chunk[index].length;}/**\n  Update the range set, optionally adding new ranges or filtering\n  out existing ones.\n  \n  (Note: The type parameter is just there as a kludge to work\n  around TypeScript variance issues that prevented `RangeSet<X>`\n  from being a subtype of `RangeSet<Y>` when `X` is a subtype of\n  `Y`.)\n  */ update(updateSpec){let{add=[],sort=false,filterFrom=0,filterTo=this.length}=updateSpec;let filter=updateSpec.filter;if(add.length==0&&!filter)return this;if(sort)add=add.slice().sort(cmpRange);if(this.isEmpty)return add.length?RangeSet.of(add):this;let cur=new LayerCursor(this,null,-1).goto(0),i=0,spill=[];let builder=new RangeSetBuilder;while(cur.value||i<add.length){if(i<add.length&&(cur.from-add[i].from||cur.startSide-add[i].value.startSide)>=0){let range=add[i++];if(!builder.addInner(range.from,range.to,range.value))spill.push(range);}else if(cur.rangeIndex==1&&cur.chunkIndex<this.chunk.length&&(i==add.length||this.chunkEnd(cur.chunkIndex)<add[i].from)&&(!filter||filterFrom>this.chunkEnd(cur.chunkIndex)||filterTo<this.chunkPos[cur.chunkIndex])&&builder.addChunk(this.chunkPos[cur.chunkIndex],this.chunk[cur.chunkIndex])){cur.nextChunk();}else{if(!filter||filterFrom>cur.to||filterTo<cur.from||filter(cur.from,cur.to,cur.value)){if(!builder.addInner(cur.from,cur.to,cur.value))spill.push(Range.create(cur.from,cur.to,cur.value));}cur.next();}}return builder.finishInner(this.nextLayer.isEmpty&&!spill.length?RangeSet.empty:this.nextLayer.update({add:spill,filter,filterFrom,filterTo}));}/**\n  Map this range set through a set of changes, return the new set.\n  */ map(changes){if(changes.empty||this.isEmpty)return this;let chunks=[],chunkPos=[],maxPoint=-1;for(let i=0;i<this.chunk.length;i++){let start=this.chunkPos[i],chunk=this.chunk[i];let touch=changes.touchesRange(start,start+chunk.length);if(touch===false){maxPoint=Math.max(maxPoint,chunk.maxPoint);chunks.push(chunk);chunkPos.push(changes.mapPos(start));}else if(touch===true){let{mapped,pos}=chunk.map(start,changes);if(mapped){maxPoint=Math.max(maxPoint,mapped.maxPoint);chunks.push(mapped);chunkPos.push(pos);}}}let next=this.nextLayer.map(changes);return chunks.length==0?next:new RangeSet(chunkPos,chunks,next||RangeSet.empty,maxPoint);}/**\n  Iterate over the ranges that touch the region `from` to `to`,\n  calling `f` for each. There is no guarantee that the ranges will\n  be reported in any specific order. When the callback returns\n  `false`, iteration stops.\n  */ between(from,to,f){if(this.isEmpty)return;for(let i=0;i<this.chunk.length;i++){let start=this.chunkPos[i],chunk=this.chunk[i];if(to>=start&&from<=start+chunk.length&&chunk.between(start,from-start,to-start,f)===false)return;}this.nextLayer.between(from,to,f);}/**\n  Iterate over the ranges in this set, in order, including all\n  ranges that end at or after `from`.\n  */ iter(from=0){return HeapCursor.from([this]).goto(from);}/**\n  @internal\n  */ get isEmpty(){return this.nextLayer==this;}/**\n  Iterate over the ranges in a collection of sets, in order,\n  starting from `from`.\n  */ static iter(sets,from=0){return HeapCursor.from(sets).goto(from);}/**\n  Iterate over two groups of sets, calling methods on `comparator`\n  to notify it of possible differences.\n  */ static compare(oldSets,newSets,textDiff,comparator,minPointSize=-1){let a=oldSets.filter(set=>set.maxPoint>0||!set.isEmpty&&set.maxPoint>=minPointSize);let b=newSets.filter(set=>set.maxPoint>0||!set.isEmpty&&set.maxPoint>=minPointSize);let sharedChunks=findSharedChunks(a,b,textDiff);let sideA=new SpanCursor(a,sharedChunks,minPointSize);let sideB=new SpanCursor(b,sharedChunks,minPointSize);textDiff.iterGaps((fromA,fromB,length)=>compare(sideA,fromA,sideB,fromB,length,comparator));if(textDiff.empty&&textDiff.length==0)compare(sideA,0,sideB,0,0,comparator);}/**\n  Compare the contents of two groups of range sets, returning true\n  if they are equivalent in the given range.\n  */ static eq(oldSets,newSets,from=0,to){if(to==null)to=1e9-1;let a=oldSets.filter(set=>!set.isEmpty&&newSets.indexOf(set)<0);let b=newSets.filter(set=>!set.isEmpty&&oldSets.indexOf(set)<0);if(a.length!=b.length)return false;if(!a.length)return true;let sharedChunks=findSharedChunks(a,b);let sideA=new SpanCursor(a,sharedChunks,0).goto(from),sideB=new SpanCursor(b,sharedChunks,0).goto(from);for(;;){if(sideA.to!=sideB.to||!sameValues(sideA.active,sideB.active)||sideA.point&&(!sideB.point||!sideA.point.eq(sideB.point)))return false;if(sideA.to>to)return true;sideA.next();sideB.next();}}/**\n  Iterate over a group of range sets at the same time, notifying\n  the iterator about the ranges covering every given piece of\n  content. Returns the open count (see\n  [`SpanIterator.span`](https://codemirror.net/6/docs/ref/#state.SpanIterator.span)) at the end\n  of the iteration.\n  */ static spans(sets,from,to,iterator,minPointSize=-1){let cursor=new SpanCursor(sets,null,minPointSize).goto(from),pos=from;let openRanges=cursor.openStart;for(;;){let curTo=Math.min(cursor.to,to);if(cursor.point){let active=cursor.activeForPoint(cursor.to);let openCount=cursor.pointFrom<from?active.length+1:Math.min(active.length,openRanges);iterator.point(pos,curTo,cursor.point,active,openCount,cursor.pointRank);openRanges=Math.min(cursor.openEnd(curTo),active.length);}else if(curTo>pos){iterator.span(pos,curTo,cursor.active,openRanges);openRanges=cursor.openEnd(curTo);}if(cursor.to>to)return openRanges+(cursor.point&&cursor.to>to?1:0);pos=cursor.to;cursor.next();}}/**\n  Create a range set for the given range or array of ranges. By\n  default, this expects the ranges to be _sorted_ (by start\n  position and, if two start at the same position,\n  `value.startSide`). You can pass `true` as second argument to\n  cause the method to sort them.\n  */ static of(ranges,sort=false){let build=new RangeSetBuilder;for(let range of ranges instanceof Range?[ranges]:sort?lazySort(ranges):ranges)build.add(range.from,range.to,range.value);return build.finish();}constructor(chunkPos,chunk,nextLayer,maxPoint){this.chunkPos=chunkPos;this.chunk=chunk;this.nextLayer=nextLayer;this.maxPoint=maxPoint;}};RangeSet.empty=/* @__PURE__ */ new RangeSet([],[],null,-1);function lazySort(ranges){if(ranges.length>1)for(let prev=ranges[0],i=1;i<ranges.length;i++){let cur=ranges[i];if(cmpRange(prev,cur)>0)return ranges.slice().sort(cmpRange);prev=cur;}return ranges;}RangeSet.empty.nextLayer=RangeSet.empty;var RangeSetBuilder=class{finishChunk(newArrays){this.chunks.push(new Chunk(this.from,this.to,this.value,this.maxPoint));this.chunkPos.push(this.chunkStart);this.chunkStart=-1;this.setMaxPoint=Math.max(this.setMaxPoint,this.maxPoint);this.maxPoint=-1;if(newArrays){this.from=[];this.to=[];this.value=[];}}/**\n  Add a range. Ranges should be added in sorted (by `from` and\n  `value.startSide`) order.\n  */ add(from,to,value){if(!this.addInner(from,to,value))(this.nextLayer||(this.nextLayer=new RangeSetBuilder)).add(from,to,value);}/**\n  @internal\n  */ addInner(from,to,value){let diff=from-this.lastTo||value.startSide-this.last.endSide;if(diff<=0&&(from-this.lastFrom||value.startSide-this.last.startSide)<0)throw new Error(\"Ranges must be added sorted by `from` position and `startSide`\");if(diff<0)return false;if(this.from.length==250)this.finishChunk(true);if(this.chunkStart<0)this.chunkStart=from;this.from.push(from-this.chunkStart);this.to.push(to-this.chunkStart);this.last=value;this.lastFrom=from;this.lastTo=to;this.value.push(value);if(value.point)this.maxPoint=Math.max(this.maxPoint,to-from);return true;}/**\n  @internal\n  */ addChunk(from,chunk){if((from-this.lastTo||chunk.value[0].startSide-this.last.endSide)<0)return false;if(this.from.length)this.finishChunk(true);this.setMaxPoint=Math.max(this.setMaxPoint,chunk.maxPoint);this.chunks.push(chunk);this.chunkPos.push(from);let last=chunk.value.length-1;this.last=chunk.value[last];this.lastFrom=chunk.from[last]+from;this.lastTo=chunk.to[last]+from;return true;}/**\n  Finish the range set. Returns the new set. The builder can't be\n  used anymore after this has been called.\n  */ finish(){return this.finishInner(RangeSet.empty);}/**\n  @internal\n  */ finishInner(next){if(this.from.length)this.finishChunk(false);if(this.chunks.length==0)return next;let result=RangeSet.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(next):next,this.setMaxPoint);this.from=null;return result;}/**\n  Create an empty builder.\n  */ constructor(){this.chunks=[];this.chunkPos=[];this.chunkStart=-1;this.last=null;this.lastFrom=-1e9;this.lastTo=-1e9;this.from=[];this.to=[];this.value=[];this.maxPoint=-1;this.setMaxPoint=-1;this.nextLayer=null;}};function findSharedChunks(a,b,textDiff){let inA=/* @__PURE__ */ new Map;for(let set of a)for(let i=0;i<set.chunk.length;i++)if(set.chunk[i].maxPoint<=0)inA.set(set.chunk[i],set.chunkPos[i]);let shared=/* @__PURE__ */ new Set;for(let set1 of b)for(let i1=0;i1<set1.chunk.length;i1++){let known=inA.get(set1.chunk[i1]);if(known!=null&&(textDiff?textDiff.mapPos(known):known)==set1.chunkPos[i1]&&!(textDiff===null||textDiff===void 0?void 0:textDiff.touchesRange(known,known+set1.chunk[i1].length)))shared.add(set1.chunk[i1]);}return shared;}var LayerCursor=class{get startSide(){return this.value?this.value.startSide:0;}get endSide(){return this.value?this.value.endSide:0;}goto(pos,side=-1e9){this.chunkIndex=this.rangeIndex=0;this.gotoInner(pos,side,false);return this;}gotoInner(pos,side,forward){while(this.chunkIndex<this.layer.chunk.length){let next=this.layer.chunk[this.chunkIndex];if(!(this.skip&&this.skip.has(next)||this.layer.chunkEnd(this.chunkIndex)<pos||next.maxPoint<this.minPoint))break;this.chunkIndex++;forward=false;}if(this.chunkIndex<this.layer.chunk.length){let rangeIndex=this.layer.chunk[this.chunkIndex].findIndex(pos-this.layer.chunkPos[this.chunkIndex],side,true);if(!forward||this.rangeIndex<rangeIndex)this.setRangeIndex(rangeIndex);}this.next();}forward(pos,side){if((this.to-pos||this.endSide-side)<0)this.gotoInner(pos,side,true);}next(){for(;;){if(this.chunkIndex==this.layer.chunk.length){this.from=this.to=1e9;this.value=null;break;}else{let chunkPos=this.layer.chunkPos[this.chunkIndex],chunk=this.layer.chunk[this.chunkIndex];let from=chunkPos+chunk.from[this.rangeIndex];this.from=from;this.to=chunkPos+chunk.to[this.rangeIndex];this.value=chunk.value[this.rangeIndex];this.setRangeIndex(this.rangeIndex+1);if(this.minPoint<0||this.value.point&&this.to-this.from>=this.minPoint)break;}}}setRangeIndex(index){if(index==this.layer.chunk[this.chunkIndex].value.length){this.chunkIndex++;if(this.skip){while(this.chunkIndex<this.layer.chunk.length&&this.skip.has(this.layer.chunk[this.chunkIndex]))this.chunkIndex++;}this.rangeIndex=0;}else{this.rangeIndex=index;}}nextChunk(){this.chunkIndex++;this.rangeIndex=0;this.next();}compare(other){return this.from-other.from||this.startSide-other.startSide||this.rank-other.rank||this.to-other.to||this.endSide-other.endSide;}constructor(layer,skip,minPoint,rank=0){this.layer=layer;this.skip=skip;this.minPoint=minPoint;this.rank=rank;}};var HeapCursor=class{static from(sets,skip=null,minPoint=-1){let heap=[];for(let i=0;i<sets.length;i++){for(let cur=sets[i];!cur.isEmpty;cur=cur.nextLayer){if(cur.maxPoint>=minPoint)heap.push(new LayerCursor(cur,skip,minPoint,i));}}return heap.length==1?heap[0]:new HeapCursor(heap);}get startSide(){return this.value?this.value.startSide:0;}goto(pos,side=-1e9){for(let cur of this.heap)cur.goto(pos,side);for(let i=this.heap.length>>1;i>=0;i--)heapBubble(this.heap,i);this.next();return this;}forward(pos,side){for(let cur of this.heap)cur.forward(pos,side);for(let i=this.heap.length>>1;i>=0;i--)heapBubble(this.heap,i);if((this.to-pos||this.value.endSide-side)<0)this.next();}next(){if(this.heap.length==0){this.from=this.to=1e9;this.value=null;this.rank=-1;}else{let top=this.heap[0];this.from=top.from;this.to=top.to;this.value=top.value;this.rank=top.rank;if(top.value)top.next();heapBubble(this.heap,0);}}constructor(heap){this.heap=heap;}};function heapBubble(heap,index){for(let cur=heap[index];;){let childIndex=(index<<1)+1;if(childIndex>=heap.length)break;let child=heap[childIndex];if(childIndex+1<heap.length&&child.compare(heap[childIndex+1])>=0){child=heap[childIndex+1];childIndex++;}if(cur.compare(child)<0)break;heap[childIndex]=cur;heap[index]=child;index=childIndex;}}var SpanCursor=class{goto(pos,side=-1e9){this.cursor.goto(pos,side);this.active.length=this.activeTo.length=this.activeRank.length=0;this.minActive=-1;this.to=pos;this.endSide=side;this.openStart=-1;this.next();return this;}forward(pos,side){while(this.minActive>-1&&(this.activeTo[this.minActive]-pos||this.active[this.minActive].endSide-side)<0)this.removeActive(this.minActive);this.cursor.forward(pos,side);}removeActive(index){remove(this.active,index);remove(this.activeTo,index);remove(this.activeRank,index);this.minActive=findMinIndex(this.active,this.activeTo);}addActive(trackOpen){let i=0,{value,to,rank}=this.cursor;while(i<this.activeRank.length&&this.activeRank[i]<=rank)i++;insert(this.active,i,value);insert(this.activeTo,i,to);insert(this.activeRank,i,rank);if(trackOpen)insert(trackOpen,i,this.cursor.from);this.minActive=findMinIndex(this.active,this.activeTo);}// After calling this, if `this.point` != null, the next range is a\n// point. Otherwise, it's a regular range, covered by `this.active`.\nnext(){let from=this.to,wasPoint=this.point;this.point=null;let trackOpen=this.openStart<0?[]:null;for(;;){let a=this.minActive;if(a>-1&&(this.activeTo[a]-this.cursor.from||this.active[a].endSide-this.cursor.startSide)<0){if(this.activeTo[a]>from){this.to=this.activeTo[a];this.endSide=this.active[a].endSide;break;}this.removeActive(a);if(trackOpen)remove(trackOpen,a);}else if(!this.cursor.value){this.to=this.endSide=1e9;break;}else if(this.cursor.from>from){this.to=this.cursor.from;this.endSide=this.cursor.startSide;break;}else{let nextVal=this.cursor.value;if(!nextVal.point){this.addActive(trackOpen);this.cursor.next();}else if(wasPoint&&this.cursor.to==this.to&&this.cursor.from<this.cursor.to){this.cursor.next();}else{this.point=nextVal;this.pointFrom=this.cursor.from;this.pointRank=this.cursor.rank;this.to=this.cursor.to;this.endSide=nextVal.endSide;this.cursor.next();this.forward(this.to,this.endSide);break;}}}if(trackOpen){this.openStart=0;for(let i=trackOpen.length-1;i>=0&&trackOpen[i]<from;i--)this.openStart++;}}activeForPoint(to){if(!this.active.length)return this.active;let active=[];for(let i=this.active.length-1;i>=0;i--){if(this.activeRank[i]<this.pointRank)break;if(this.activeTo[i]>to||this.activeTo[i]==to&&this.active[i].endSide>=this.point.endSide)active.push(this.active[i]);}return active.reverse();}openEnd(to){let open=0;for(let i=this.activeTo.length-1;i>=0&&this.activeTo[i]>to;i--)open++;return open;}constructor(sets,skip,minPoint){this.minPoint=minPoint;this.active=[];this.activeTo=[];this.activeRank=[];this.minActive=-1;this.point=null;this.pointFrom=0;this.pointRank=0;this.to=-1e9;this.endSide=0;this.openStart=-1;this.cursor=HeapCursor.from(sets,skip,minPoint);}};function compare(a,startA,b,startB,length,comparator){a.goto(startA);b.goto(startB);let endB=startB+length;let pos=startB,dPos=startB-startA;for(;;){let diff=a.to+dPos-b.to||a.endSide-b.endSide;let end=diff<0?a.to+dPos:b.to,clipEnd=Math.min(end,endB);if(a.point||b.point){if(!(a.point&&b.point&&(a.point==b.point||a.point.eq(b.point))&&sameValues(a.activeForPoint(a.to),b.activeForPoint(b.to))))comparator.comparePoint(pos,clipEnd,a.point,b.point);}else{if(clipEnd>pos&&!sameValues(a.active,b.active))comparator.compareRange(pos,clipEnd,a.active,b.active);}if(end>endB)break;pos=end;if(diff<=0)a.next();if(diff>=0)b.next();}}function sameValues(a,b){if(a.length!=b.length)return false;for(let i=0;i<a.length;i++)if(a[i]!=b[i]&&!a[i].eq(b[i]))return false;return true;}function remove(array,index){for(let i=index,e=array.length-1;i<e;i++)array[i]=array[i+1];array.pop();}function insert(array,index,value){for(let i=array.length-1;i>=index;i--)array[i+1]=array[i];array[index]=value;}function findMinIndex(value,array){let found=-1,foundPos=1e9;for(let i=0;i<array.length;i++)if((array[i]-foundPos||value[i].endSide-value[found].endSide)<0){found=i;foundPos=array[i];}return found;}function countColumn(string,tabSize,to=string.length){let n=0;for(let i=0;i<to;){if(string.charCodeAt(i)==9){n+=tabSize-n%tabSize;i++;}else{n++;i=findClusterBreak(string,i);}}return n;}function findColumn(string,col,tabSize,strict){for(let i=0,n=0;;){if(n>=col)return i;if(i==string.length)break;n+=string.charCodeAt(i)==9?tabSize-n%tabSize:1;i=findClusterBreak(string,i);}return strict===true?-1:string.length;}export{Annotation,AnnotationType,ChangeDesc,ChangeSet,CharCategory,Compartment,EditorSelection,EditorState,Facet,Line,MapMode,Prec,Range,RangeSet,RangeSetBuilder,RangeValue,SelectionRange,StateEffect,StateEffectType,StateField,Text,Transaction,codePointAt,codePointSize,combineConfig,countColumn,findClusterBreak,findColumn,fromCodePoint,};\nexport const __FramerMetadata__ = {\"exports\":{\"RangeValue\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ChangeDesc\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Prec\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Facet\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"StateField\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Line\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"RangeSetBuilder\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"CharCategory\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ChangeSet\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"codePointSize\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"combineConfig\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fromCodePoint\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"AnnotationType\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Text\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SelectionRange\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"RangeSet\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"StateEffect\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Transaction\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"countColumn\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"findColumn\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"EditorSelection\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"EditorState\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"StateEffectType\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Range\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"findClusterBreak\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"codePointAt\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"MapMode\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Compartment\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Annotation\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./codemirror_state.map","// @ts-nocheck\n/**\n * This file is generated inside FramerStudio. To update it run \"make build\"\n * inside \"./src/codeblock-dependencies\" and copy the file from \"./build\".\n */ // ../../node_modules/@codemirror/view/dist/index.js\nimport{Text,RangeSet,MapMode,RangeValue,Facet,StateEffect,ChangeSet,findClusterBreak,EditorSelection,EditorState,findColumn,CharCategory,Annotation,Prec,Transaction,codePointAt,codePointSize,combineConfig,StateField,RangeSetBuilder,countColumn}from\"https://framerusercontent.com/modules/wFkXxZqfKOPeEQtsYrsa/Xcw7qvncyogRPQtf9aNn/codemirror_state.js\";// ../../node_modules/style-mod/src/style-mod.js\nvar C=\"ͼ\";var COUNT=typeof Symbol==\"undefined\"?\"__\"+C:Symbol.for(C);var SET=typeof Symbol==\"undefined\"?\"__styleSet\"+Math.floor(Math.random()*1e8):Symbol(\"styleSet\");var top=typeof globalThis!=\"undefined\"?globalThis:typeof window!=\"undefined\"?window:{};var StyleModule=class{// :: () → string\n// Returns a string containing the module's CSS rules.\ngetRules(){return this.rules.join(\"\\n\");}// :: () → string\n// Generate a new unique CSS class name.\nstatic newName(){let id=top[COUNT]||1;top[COUNT]=id+1;return C+id.toString(36);}// :: (union<Document, ShadowRoot>, union<[StyleModule], StyleModule>)\n//\n// Mount the given set of modules in the given DOM root, which ensures\n// that the CSS rules defined by the module are available in that\n// context.\n//\n// Rules are only added to the document once per root.\n//\n// Rule order will follow the order of the modules, so that rules from\n// modules later in the array take precedence of those from earlier\n// modules. If you call this function multiple times for the same root\n// in a way that changes the order of already mounted modules, the old\n// order will be changed.\nstatic mount(root,modules){(root[SET]||new StyleSet(root)).mount(Array.isArray(modules)?modules:[modules]);}// :: (Object<Style>, ?{finish: ?(string) → string})\n// Create a style module from the given spec.\n//\n// When `finish` is given, it is called on regular (non-`@`)\n// selectors (after `&` expansion) to compute the final selector.\nconstructor(spec,options){this.rules=[];let{finish}=options||{};function splitSelector(selector){return/^@/.test(selector)?[selector]:selector.split(/,\\s*/);}function render(selectors,spec2,target,isKeyframes){let local=[],isAt=/^@(\\w+)\\b/.exec(selectors[0]),keyframes=isAt&&isAt[1]==\"keyframes\";if(isAt&&spec2==null)return target.push(selectors[0]+\";\");for(let prop in spec2){let value=spec2[prop];if(/&/.test(prop)){render(prop.split(/,\\s*/).map(part=>selectors.map(sel=>part.replace(/&/,sel))).reduce((a,b)=>a.concat(b)),value,target);}else if(value&&typeof value==\"object\"){if(!isAt)throw new RangeError(\"The value of a property (\"+prop+\") should be a primitive value.\");render(splitSelector(prop),value,local,keyframes);}else if(value!=null){local.push(prop.replace(/_.*/,\"\").replace(/[A-Z]/g,l=>\"-\"+l.toLowerCase())+\": \"+value+\";\");}}if(local.length||keyframes){target.push((finish&&!isAt&&!isKeyframes?selectors.map(finish):selectors).join(\", \")+\" {\"+local.join(\" \")+\"}\");}}for(let prop in spec)render(splitSelector(prop),spec[prop],this.rules);}};var adoptedSet=/* @__PURE__ */ new Map;var StyleSet=class{mount(modules){let sheet=this.sheet;let pos=0,j=0;for(let i=0;i<modules.length;i++){let mod=modules[i],index=this.modules.indexOf(mod);if(index<j&&index>-1){this.modules.splice(index,1);j--;index=-1;}if(index==-1){this.modules.splice(j++,0,mod);if(sheet)for(let k=0;k<mod.rules.length;k++)sheet.insertRule(mod.rules[k],pos++);}else{while(j<index)pos+=this.modules[j++].rules.length;pos+=mod.rules.length;j++;}}if(!sheet){let text=\"\";for(let i1=0;i1<this.modules.length;i1++)text+=this.modules[i1].getRules()+\"\\n\";this.styleTag.textContent=text;}}constructor(root){let doc2=root.ownerDocument||root,win=doc2.defaultView;if(!root.head&&root.adoptedStyleSheets&&win.CSSStyleSheet){let adopted=adoptedSet.get(doc2);if(adopted){root.adoptedStyleSheets=[adopted.sheet,...root.adoptedStyleSheets,];return root[SET]=adopted;}this.sheet=new win.CSSStyleSheet;root.adoptedStyleSheets=[this.sheet,...root.adoptedStyleSheets];adoptedSet.set(doc2,this);}else{this.styleTag=doc2.createElement(\"style\");let target=root.head||root;target.insertBefore(this.styleTag,target.firstChild);}this.modules=[];root[SET]=this;}};// ../../node_modules/@codemirror/view/node_modules/w3c-keyname/index.js\nvar base={8:\"Backspace\",9:\"Tab\",10:\"Enter\",12:\"NumLock\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",44:\"PrintScreen\",45:\"Insert\",46:\"Delete\",59:\";\",61:\"=\",91:\"Meta\",92:\"Meta\",106:\"*\",107:\"+\",108:\",\",109:\"-\",110:\".\",111:\"/\",144:\"NumLock\",145:\"ScrollLock\",160:\"Shift\",161:\"Shift\",162:\"Control\",163:\"Control\",164:\"Alt\",165:\"Alt\",173:\"-\",186:\";\",187:\"=\",188:\",\",189:\"-\",190:\".\",191:\"/\",192:\"`\",219:\"[\",220:\"\\\\\",221:\"]\",222:\"'\"};var shift={48:\")\",49:\"!\",50:\"@\",51:\"#\",52:\"$\",53:\"%\",54:\"^\",55:\"&\",56:\"*\",57:\"(\",59:\":\",61:\"+\",173:\"_\",186:\":\",187:\"+\",188:\"<\",189:\"_\",190:\">\",191:\"?\",192:\"~\",219:\"{\",220:\"|\",221:\"}\",222:'\"'};var mac=typeof navigator!=\"undefined\"&&/Mac/.test(navigator.platform);var ie=typeof navigator!=\"undefined\"&&/MSIE \\d|Trident\\/(?:[7-9]|\\d{2,})\\..*rv:(\\d+)/.exec(navigator.userAgent);for(i=0;i<10;i++)base[48+i]=base[96+i]=String(i);var i;for(i=1;i<=24;i++)base[i+111]=\"F\"+i;var i;for(i=65;i<=90;i++){base[i]=String.fromCharCode(i+32);shift[i]=String.fromCharCode(i);}var i;for(code in base)if(!shift.hasOwnProperty(code))shift[code]=base[code];var code;function keyName(event){var ignoreKey=mac&&event.metaKey&&event.shiftKey&&!event.ctrlKey&&!event.altKey||ie&&event.shiftKey&&event.key&&event.key.length==1||event.key==\"Unidentified\";var name=!ignoreKey&&event.key||(event.shiftKey?shift:base)[event.keyCode]||event.key||\"Unidentified\";if(name==\"Esc\")name=\"Escape\";if(name==\"Del\")name=\"Delete\";if(name==\"Left\")name=\"ArrowLeft\";if(name==\"Up\")name=\"ArrowUp\";if(name==\"Right\")name=\"ArrowRight\";if(name==\"Down\")name=\"ArrowDown\";return name;}// ../../node_modules/@codemirror/view/dist/index.js\nfunction getSelection(root){let target;if(root.nodeType==11){target=root.getSelection?root:root.ownerDocument;}else{target=root;}return target.getSelection();}function contains(dom,node){return node?dom==node||dom.contains(node.nodeType!=1?node.parentNode:node):false;}function deepActiveElement(doc2){let elt=doc2.activeElement;while(elt&&elt.shadowRoot)elt=elt.shadowRoot.activeElement;return elt;}function hasSelection(dom,selection){if(!selection.anchorNode)return false;try{return contains(dom,selection.anchorNode);}catch(_){return false;}}function clientRectsFor(dom){if(dom.nodeType==3)return textRange(dom,0,dom.nodeValue.length).getClientRects();else if(dom.nodeType==1)return dom.getClientRects();else return[];}function isEquivalentPosition(node,off,targetNode,targetOff){return targetNode?scanFor(node,off,targetNode,targetOff,-1)||scanFor(node,off,targetNode,targetOff,1):false;}function domIndex(node){for(var index=0;;index++){node=node.previousSibling;if(!node)return index;}}function scanFor(node,off,targetNode,targetOff,dir){for(;;){if(node==targetNode&&off==targetOff)return true;if(off==(dir<0?0:maxOffset(node))){if(node.nodeName==\"DIV\")return false;let parent=node.parentNode;if(!parent||parent.nodeType!=1)return false;off=domIndex(node)+(dir<0?0:1);node=parent;}else if(node.nodeType==1){node=node.childNodes[off+(dir<0?-1:0)];if(node.nodeType==1&&node.contentEditable==\"false\")return false;off=dir<0?maxOffset(node):0;}else{return false;}}}function maxOffset(node){return node.nodeType==3?node.nodeValue.length:node.childNodes.length;}function flattenRect(rect,left){let x=left?rect.left:rect.right;return{left:x,right:x,top:rect.top,bottom:rect.bottom};}function windowRect(win){return{left:0,right:win.innerWidth,top:0,bottom:win.innerHeight};}function scrollRectIntoView(dom,rect,side,x,y,xMargin,yMargin,ltr){let doc2=dom.ownerDocument,win=doc2.defaultView||window;for(let cur=dom;cur;){if(cur.nodeType==1){let bounding,top2=cur==doc2.body;if(top2){bounding=windowRect(win);}else{if(cur.scrollHeight<=cur.clientHeight&&cur.scrollWidth<=cur.clientWidth){cur=cur.assignedSlot||cur.parentNode;continue;}let rect2=cur.getBoundingClientRect();bounding={left:rect2.left,right:rect2.left+cur.clientWidth,top:rect2.top,bottom:rect2.top+cur.clientHeight};}let moveX=0,moveY=0;if(y==\"nearest\"){if(rect.top<bounding.top){moveY=-(bounding.top-rect.top+yMargin);if(side>0&&rect.bottom>bounding.bottom+moveY)moveY=rect.bottom-bounding.bottom+moveY+yMargin;}else if(rect.bottom>bounding.bottom){moveY=rect.bottom-bounding.bottom+yMargin;if(side<0&&rect.top-moveY<bounding.top)moveY=-(bounding.top+moveY-rect.top+yMargin);}}else{let rectHeight=rect.bottom-rect.top,boundingHeight=bounding.bottom-bounding.top;let targetTop=y==\"center\"&&rectHeight<=boundingHeight?rect.top+rectHeight/2-boundingHeight/2:y==\"start\"||y==\"center\"&&side<0?rect.top-yMargin:rect.bottom-boundingHeight+yMargin;moveY=targetTop-bounding.top;}if(x==\"nearest\"){if(rect.left<bounding.left){moveX=-(bounding.left-rect.left+xMargin);if(side>0&&rect.right>bounding.right+moveX)moveX=rect.right-bounding.right+moveX+xMargin;}else if(rect.right>bounding.right){moveX=rect.right-bounding.right+xMargin;if(side<0&&rect.left<bounding.left+moveX)moveX=-(bounding.left+moveX-rect.left+xMargin);}}else{let targetLeft=x==\"center\"?rect.left+(rect.right-rect.left)/2-(bounding.right-bounding.left)/2:x==\"start\"==ltr?rect.left-xMargin:rect.right-(bounding.right-bounding.left)+xMargin;moveX=targetLeft-bounding.left;}if(moveX||moveY){if(top2){win.scrollBy(moveX,moveY);}else{let movedX=0,movedY=0;if(moveY){let start=cur.scrollTop;cur.scrollTop+=moveY;movedY=cur.scrollTop-start;}if(moveX){let start1=cur.scrollLeft;cur.scrollLeft+=moveX;movedX=cur.scrollLeft-start1;}rect={left:rect.left-movedX,top:rect.top-movedY,right:rect.right-movedX,bottom:rect.bottom-movedY};if(movedX&&Math.abs(movedX-moveX)<1)x=\"nearest\";if(movedY&&Math.abs(movedY-moveY)<1)y=\"nearest\";}}if(top2)break;cur=cur.assignedSlot||cur.parentNode;}else if(cur.nodeType==11){cur=cur.host;}else{break;}}}function scrollableParent(dom){let doc2=dom.ownerDocument;for(let cur=dom.parentNode;cur;){if(cur==doc2.body){break;}else if(cur.nodeType==1){if(cur.scrollHeight>cur.clientHeight||cur.scrollWidth>cur.clientWidth)return cur;cur=cur.assignedSlot||cur.parentNode;}else if(cur.nodeType==11){cur=cur.host;}else{break;}}return null;}var DOMSelectionState=class{eq(domSel){return this.anchorNode==domSel.anchorNode&&this.anchorOffset==domSel.anchorOffset&&this.focusNode==domSel.focusNode&&this.focusOffset==domSel.focusOffset;}setRange(range){let{anchorNode,focusNode}=range;this.set(anchorNode,Math.min(range.anchorOffset,anchorNode?maxOffset(anchorNode):0),focusNode,Math.min(range.focusOffset,focusNode?maxOffset(focusNode):0));}set(anchorNode,anchorOffset,focusNode,focusOffset){this.anchorNode=anchorNode;this.anchorOffset=anchorOffset;this.focusNode=focusNode;this.focusOffset=focusOffset;}constructor(){this.anchorNode=null;this.anchorOffset=0;this.focusNode=null;this.focusOffset=0;}};var preventScrollSupported=null;function focusPreventScroll(dom){if(dom.setActive)return dom.setActive();if(preventScrollSupported)return dom.focus(preventScrollSupported);let stack=[];for(let cur=dom;cur;cur=cur.parentNode){stack.push(cur,cur.scrollTop,cur.scrollLeft);if(cur==cur.ownerDocument)break;}dom.focus(preventScrollSupported==null?{get preventScroll(){preventScrollSupported={preventScroll:true};return true;}}:void 0);if(!preventScrollSupported){preventScrollSupported=false;for(let i=0;i<stack.length;){let elt=stack[i++],top2=stack[i++],left=stack[i++];if(elt.scrollTop!=top2)elt.scrollTop=top2;if(elt.scrollLeft!=left)elt.scrollLeft=left;}}}var scratchRange;function textRange(node,from,to=from){let range=scratchRange||(scratchRange=document.createRange());range.setEnd(node,to);range.setStart(node,from);return range;}function dispatchKey(elt,name,code){let options={key:name,code:name,keyCode:code,which:code,cancelable:true};let down=new KeyboardEvent(\"keydown\",options);down.synthetic=true;elt.dispatchEvent(down);let up=new KeyboardEvent(\"keyup\",options);up.synthetic=true;elt.dispatchEvent(up);return down.defaultPrevented||up.defaultPrevented;}function getRoot(node){while(node){if(node&&(node.nodeType==9||node.nodeType==11&&node.host))return node;node=node.assignedSlot||node.parentNode;}return null;}function clearAttributes(node){while(node.attributes.length)node.removeAttributeNode(node.attributes[0]);}function atElementStart(doc2,selection){let node=selection.focusNode,offset=selection.focusOffset;if(!node||selection.anchorNode!=node||selection.anchorOffset!=offset)return false;offset=Math.min(offset,maxOffset(node));for(;;){if(offset){if(node.nodeType!=1)return false;let prev=node.childNodes[offset-1];if(prev.contentEditable==\"false\")offset--;else{node=prev;offset=maxOffset(node);}}else if(node==doc2){return true;}else{offset=domIndex(node);node=node.parentNode;}}}var DOMPos=class{static before(dom,precise){return new DOMPos(dom.parentNode,domIndex(dom),precise);}static after(dom,precise){return new DOMPos(dom.parentNode,domIndex(dom)+1,precise);}constructor(node,offset,precise=true){this.node=node;this.offset=offset;this.precise=precise;}};var noChildren=[];var ContentView=class{get overrideDOMText(){return null;}get posAtStart(){return this.parent?this.parent.posBefore(this):0;}get posAtEnd(){return this.posAtStart+this.length;}posBefore(view){let pos=this.posAtStart;for(let child of this.children){if(child==view)return pos;pos+=child.length+child.breakAfter;}throw new RangeError(\"Invalid child in posBefore\");}posAfter(view){return this.posBefore(view)+view.length;}sync(view,track){if(this.dirty&2){let parent=this.dom;let prev=null,next;for(let child of this.children){if(child.dirty){if(!child.dom&&(next=prev?prev.nextSibling:parent.firstChild)){let contentView=ContentView.get(next);if(!contentView||!contentView.parent&&contentView.canReuseDOM(child))child.reuseDOM(next);}child.sync(view,track);child.dirty=0;}next=prev?prev.nextSibling:parent.firstChild;if(track&&!track.written&&track.node==parent&&next!=child.dom)track.written=true;if(child.dom.parentNode==parent){while(next&&next!=child.dom)next=rm$1(next);}else{parent.insertBefore(child.dom,next);}prev=child.dom;}next=prev?prev.nextSibling:parent.firstChild;if(next&&track&&track.node==parent)track.written=true;while(next)next=rm$1(next);}else if(this.dirty&1){for(let child1 of this.children)if(child1.dirty){child1.sync(view,track);child1.dirty=0;}}}reuseDOM(_dom){}localPosFromDOM(node,offset){let after;if(node==this.dom){after=this.dom.childNodes[offset];}else{let bias=maxOffset(node)==0?0:offset==0?-1:1;for(;;){let parent=node.parentNode;if(parent==this.dom)break;if(bias==0&&parent.firstChild!=parent.lastChild){if(node==parent.firstChild)bias=-1;else bias=1;}node=parent;}if(bias<0)after=node;else after=node.nextSibling;}if(after==this.dom.firstChild)return 0;while(after&&!ContentView.get(after))after=after.nextSibling;if(!after)return this.length;for(let i=0,pos=0;;i++){let child=this.children[i];if(child.dom==after)return pos;pos+=child.length+child.breakAfter;}}domBoundsAround(from,to,offset=0){let fromI=-1,fromStart=-1,toI=-1,toEnd=-1;for(let i=0,pos=offset,prevEnd=offset;i<this.children.length;i++){let child=this.children[i],end=pos+child.length;if(pos<from&&end>to)return child.domBoundsAround(from,to,pos);if(end>=from&&fromI==-1){fromI=i;fromStart=pos;}if(pos>to&&child.dom.parentNode==this.dom){toI=i;toEnd=prevEnd;break;}prevEnd=end;pos=end+child.breakAfter;}return{from:fromStart,to:toEnd<0?offset+this.length:toEnd,startDOM:(fromI?this.children[fromI-1].dom.nextSibling:null)||this.dom.firstChild,endDOM:toI<this.children.length&&toI>=0?this.children[toI].dom:null};}markDirty(andParent=false){this.dirty|=2;this.markParentsDirty(andParent);}markParentsDirty(childList){for(let parent=this.parent;parent;parent=parent.parent){if(childList)parent.dirty|=2;if(parent.dirty&1)return;parent.dirty|=1;childList=false;}}setParent(parent){if(this.parent!=parent){this.parent=parent;if(this.dirty)this.markParentsDirty(true);}}setDOM(dom){if(this.dom)this.dom.cmView=null;this.dom=dom;dom.cmView=this;}get rootView(){for(let v=this;;){let parent=v.parent;if(!parent)return v;v=parent;}}replaceChildren(from,to,children=noChildren){this.markDirty();for(let i=from;i<to;i++){let child=this.children[i];if(child.parent==this)child.destroy();}this.children.splice(from,to-from,...children);for(let i1=0;i1<children.length;i1++)children[i1].setParent(this);}ignoreMutation(_rec){return false;}ignoreEvent(_event){return false;}childCursor(pos=this.length){return new ChildCursor(this.children,pos,this.children.length);}childPos(pos,bias=1){return this.childCursor().findPos(pos,bias);}toString(){let name=this.constructor.name.replace(\"View\",\"\");return name+(this.children.length?\"(\"+this.children.join()+\")\":this.length?\"[\"+(name==\"Text\"?this.text:this.length)+\"]\":\"\")+(this.breakAfter?\"#\":\"\");}static get(node){return node.cmView;}get isEditable(){return true;}get isWidget(){return false;}get isHidden(){return false;}merge(from,to,source,hasStart,openStart,openEnd){return false;}become(other){return false;}canReuseDOM(other){return other.constructor==this.constructor;}// When this is a zero-length view with a side, this should return a\n// number <= 0 to indicate it is before its position, or a\n// number > 0 when after its position.\ngetSide(){return 0;}destroy(){this.parent=null;}constructor(){this.parent=null;this.dom=null;this.dirty=2;}};ContentView.prototype.breakAfter=0;function rm$1(dom){let next=dom.nextSibling;dom.parentNode.removeChild(dom);return next;}var ChildCursor=class{findPos(pos,bias=1){for(;;){if(pos>this.pos||pos==this.pos&&(bias>0||this.i==0||this.children[this.i-1].breakAfter)){this.off=pos-this.pos;return this;}let next=this.children[--this.i];this.pos-=next.length+next.breakAfter;}}constructor(children,pos,i){this.children=children;this.pos=pos;this.i=i;this.off=0;}};function replaceRange(parent,fromI,fromOff,toI,toOff,insert,breakAtStart,openStart,openEnd){let{children}=parent;let before=children.length?children[fromI]:null;let last=insert.length?insert[insert.length-1]:null;let breakAtEnd=last?last.breakAfter:breakAtStart;if(fromI==toI&&before&&!breakAtStart&&!breakAtEnd&&insert.length<2&&before.merge(fromOff,toOff,insert.length?last:null,fromOff==0,openStart,openEnd))return;if(toI<children.length){let after=children[toI];if(after&&toOff<after.length){if(fromI==toI){after=after.split(toOff);toOff=0;}if(!breakAtEnd&&last&&after.merge(0,toOff,last,true,0,openEnd)){insert[insert.length-1]=after;}else{if(toOff)after.merge(0,toOff,null,false,0,openEnd);insert.push(after);}}else if(after===null||after===void 0?void 0:after.breakAfter){if(last)last.breakAfter=1;else breakAtStart=1;}toI++;}if(before){before.breakAfter=breakAtStart;if(fromOff>0){if(!breakAtStart&&insert.length&&before.merge(fromOff,before.length,insert[0],false,openStart,0)){before.breakAfter=insert.shift().breakAfter;}else if(fromOff<before.length||before.children.length&&before.children[before.children.length-1].length==0){before.merge(fromOff,before.length,null,false,openStart,0);}fromI++;}}while(fromI<toI&&insert.length){if(children[toI-1].become(insert[insert.length-1])){toI--;insert.pop();openEnd=insert.length?0:openStart;}else if(children[fromI].become(insert[0])){fromI++;insert.shift();openStart=insert.length?0:openEnd;}else{break;}}if(!insert.length&&fromI&&toI<children.length&&!children[fromI-1].breakAfter&&children[toI].merge(0,0,children[fromI-1],false,openStart,openEnd))fromI--;if(fromI<toI||insert.length)parent.replaceChildren(fromI,toI,insert);}function mergeChildrenInto(parent,from,to,insert,openStart,openEnd){let cur=parent.childCursor();let{i:toI,off:toOff}=cur.findPos(to,1);let{i:fromI,off:fromOff}=cur.findPos(from,-1);let dLen=from-to;for(let view of insert)dLen+=view.length;parent.length+=dLen;replaceRange(parent,fromI,fromOff,toI,toOff,insert,0,openStart,openEnd);}var nav=typeof navigator!=\"undefined\"?navigator:{userAgent:\"\",vendor:\"\",platform:\"\"};var doc=typeof document!=\"undefined\"?document:{documentElement:{style:{}}};var ie_edge=/* @__PURE__ */ /Edge\\/(\\d+)/.exec(nav.userAgent);var ie_upto10=/* @__PURE__ */ /MSIE \\d/.test(nav.userAgent);var ie_11up=/* @__PURE__ */ /Trident\\/(?:[7-9]|\\d{2,})\\..*rv:(\\d+)/.exec(nav.userAgent);var ie2=!!(ie_upto10||ie_11up||ie_edge);var gecko=!ie2&&/* @__PURE__ */ /gecko\\/(\\d+)/i.test(nav.userAgent);var chrome=!ie2&&/* @__PURE__ */ /Chrome\\/(\\d+)/.exec(nav.userAgent);var webkit=\"webkitFontSmoothing\"in doc.documentElement.style;var safari=!ie2&&/* @__PURE__ */ /Apple Computer/.test(nav.vendor);var ios=safari&&/* @__PURE__ */ (/Mobile\\/\\w+/.test(nav.userAgent)||nav.maxTouchPoints>2);var browser={mac:ios||/* @__PURE__ */ /Mac/.test(nav.platform),windows:/* @__PURE__ */ /Win/.test(nav.platform),linux:/* @__PURE__ */ /Linux|X11/.test(nav.platform),ie:ie2,ie_version:ie_upto10?doc.documentMode||6:ie_11up?+ie_11up[1]:ie_edge?+ie_edge[1]:0,gecko,gecko_version:gecko?+/* @__PURE__ */ (/Firefox\\/(\\d+)/.exec(nav.userAgent)||[0,0])[1]:0,chrome:!!chrome,chrome_version:chrome?+chrome[1]:0,ios,android:/* @__PURE__ */ /Android\\b/.test(nav.userAgent),webkit,safari,webkit_version:webkit?+/* @__PURE__ */ (/\\bAppleWebKit\\/(\\d+)/.exec(navigator.userAgent)||[0,0])[1]:0,tabSize:doc.documentElement.style.tabSize!=null?\"tab-size\":\"-moz-tab-size\"};var MaxJoinLen=256;var TextView=class extends ContentView{get length(){return this.text.length;}createDOM(textDOM){this.setDOM(textDOM||document.createTextNode(this.text));}sync(view,track){if(!this.dom)this.createDOM();if(this.dom.nodeValue!=this.text){if(track&&track.node==this.dom)track.written=true;this.dom.nodeValue=this.text;}}reuseDOM(dom){if(dom.nodeType==3)this.createDOM(dom);}merge(from,to,source){if(source&&(!(source instanceof TextView)||this.length-(to-from)+source.length>MaxJoinLen))return false;this.text=this.text.slice(0,from)+(source?source.text:\"\")+this.text.slice(to);this.markDirty();return true;}split(from){let result=new TextView(this.text.slice(from));this.text=this.text.slice(0,from);this.markDirty();return result;}localPosFromDOM(node,offset){return node==this.dom?offset:offset?this.text.length:0;}domAtPos(pos){return new DOMPos(this.dom,pos);}domBoundsAround(_from,_to,offset){return{from:offset,to:offset+this.length,startDOM:this.dom,endDOM:this.dom.nextSibling};}coordsAt(pos,side){return textCoords(this.dom,pos,side);}constructor(text){super();this.text=text;}};var MarkView=class extends ContentView{setAttrs(dom){clearAttributes(dom);if(this.mark.class)dom.className=this.mark.class;if(this.mark.attrs)for(let name in this.mark.attrs)dom.setAttribute(name,this.mark.attrs[name]);return dom;}reuseDOM(node){if(node.nodeName==this.mark.tagName.toUpperCase()){this.setDOM(node);this.dirty|=4|2;}}sync(view,track){if(!this.dom)this.setDOM(this.setAttrs(document.createElement(this.mark.tagName)));else if(this.dirty&4)this.setAttrs(this.dom);super.sync(view,track);}merge(from,to,source,_hasStart,openStart,openEnd){if(source&&(!(source instanceof MarkView&&source.mark.eq(this.mark))||from&&openStart<=0||to<this.length&&openEnd<=0))return false;mergeChildrenInto(this,from,to,source?source.children:[],openStart-1,openEnd-1);this.markDirty();return true;}split(from){let result=[],off=0,detachFrom=-1,i=0;for(let elt of this.children){let end=off+elt.length;if(end>from)result.push(off<from?elt.split(from-off):elt);if(detachFrom<0&&off>=from)detachFrom=i;off=end;i++;}let length=this.length-from;this.length=from;if(detachFrom>-1){this.children.length=detachFrom;this.markDirty();}return new MarkView(this.mark,result,length);}domAtPos(pos){return inlineDOMAtPos(this,pos);}coordsAt(pos,side){return coordsInChildren(this,pos,side);}constructor(mark,children=[],length=0){super();this.mark=mark;this.children=children;this.length=length;for(let ch of children)ch.setParent(this);}};function textCoords(text,pos,side){let length=text.nodeValue.length;if(pos>length)pos=length;let from=pos,to=pos,flatten=0;if(pos==0&&side<0||pos==length&&side>=0){if(!(browser.chrome||browser.gecko)){if(pos){from--;flatten=1;}else if(to<length){to++;flatten=-1;}}}else{if(side<0)from--;else if(to<length)to++;}let rects=textRange(text,from,to).getClientRects();if(!rects.length)return null;let rect=rects[(flatten?flatten<0:side>=0)?0:rects.length-1];if(browser.safari&&!flatten&&rect.width==0)rect=Array.prototype.find.call(rects,r=>r.width)||rect;return flatten?flattenRect(rect,flatten<0):rect||null;}var WidgetView=class extends ContentView{static create(widget,length,side){return new(widget.customView||WidgetView)(widget,length,side);}split(from){let result=WidgetView.create(this.widget,this.length-from,this.side);this.length-=from;return result;}sync(view){if(!this.dom||!this.widget.updateDOM(this.dom,view)){if(this.dom&&this.prevWidget)this.prevWidget.destroy(this.dom);this.prevWidget=null;this.setDOM(this.widget.toDOM(view));this.dom.contentEditable=\"false\";}}getSide(){return this.side;}merge(from,to,source,hasStart,openStart,openEnd){if(source&&(!(source instanceof WidgetView)||!this.widget.compare(source.widget)||from>0&&openStart<=0||to<this.length&&openEnd<=0))return false;this.length=from+(source?source.length:0)+(this.length-to);return true;}become(other){if(other instanceof WidgetView&&other.side==this.side&&this.widget.constructor==other.widget.constructor){if(!this.widget.compare(other.widget))this.markDirty(true);if(this.dom&&!this.prevWidget)this.prevWidget=this.widget;this.widget=other.widget;this.length=other.length;return true;}return false;}ignoreMutation(){return true;}ignoreEvent(event){return this.widget.ignoreEvent(event);}get overrideDOMText(){if(this.length==0)return Text.empty;let top2=this;while(top2.parent)top2=top2.parent;let{view}=top2,text=view&&view.state.doc,start=this.posAtStart;return text?text.slice(start,start+this.length):Text.empty;}domAtPos(pos){return(this.length?pos==0:this.side>0)?DOMPos.before(this.dom):DOMPos.after(this.dom,pos==this.length);}domBoundsAround(){return null;}coordsAt(pos,side){let custom=this.widget.coordsAt(this.dom,pos,side);if(custom)return custom;let rects=this.dom.getClientRects(),rect=null;if(!rects.length)return null;let fromBack=this.side?this.side<0:pos>0;for(let i=fromBack?rects.length-1:0;;i+=fromBack?-1:1){rect=rects[i];if(pos>0?i==0:i==rects.length-1||rect.top<rect.bottom)break;}return this.length?rect:flattenRect(rect,!fromBack);}get isEditable(){return false;}get isWidget(){return true;}get isHidden(){return this.widget.isHidden;}destroy(){super.destroy();if(this.dom)this.widget.destroy(this.dom);}constructor(widget,length,side){super();this.widget=widget;this.length=length;this.side=side;this.prevWidget=null;}};var CompositionView=class extends WidgetView{domAtPos(pos){let{topView,text}=this.widget;if(!topView)return new DOMPos(text,Math.min(pos,text.nodeValue.length));return scanCompositionTree(pos,0,topView,text,this.length-topView.length,(v,p)=>v.domAtPos(p),(text2,p)=>new DOMPos(text2,Math.min(p,text2.nodeValue.length)));}sync(){this.setDOM(this.widget.toDOM());}localPosFromDOM(node,offset){let{topView,text}=this.widget;if(!topView)return Math.min(offset,this.length);return posFromDOMInCompositionTree(node,offset,topView,text,this.length-topView.length);}ignoreMutation(){return false;}get overrideDOMText(){return null;}coordsAt(pos,side){let{topView,text}=this.widget;if(!topView)return textCoords(text,pos,side);return scanCompositionTree(pos,side,topView,text,this.length-topView.length,(v,pos2,side2)=>v.coordsAt(pos2,side2),(text2,pos2,side2)=>textCoords(text2,pos2,side2));}destroy(){var _a;super.destroy();(_a=this.widget.topView)===null||_a===void 0?void 0:_a.destroy();}get isEditable(){return true;}canReuseDOM(){return true;}};function scanCompositionTree(pos,side,view,text,dLen,enterView,fromText){if(view instanceof MarkView){for(let child=view.dom.firstChild;child;child=child.nextSibling){let desc=ContentView.get(child);if(!desc){let inner=scanCompositionNode(pos,side,child,fromText);if(typeof inner!=\"number\")return inner;pos=inner;}else{let hasComp=contains(child,text);let len=desc.length+(hasComp?dLen:0);if(pos<len||pos==len&&desc.getSide()<=0)return hasComp?scanCompositionTree(pos,side,desc,text,dLen,enterView,fromText):enterView(desc,pos,side);pos-=len;}}return enterView(view,view.length,-1);}else if(view.dom==text){return fromText(text,pos,side);}else{return enterView(view,pos,side);}}function scanCompositionNode(pos,side,node,fromText){if(node.nodeType==3){let len=node.nodeValue.length;if(pos<=len)return fromText(node,pos,side);pos-=len;}else if(node.nodeType==1&&node.contentEditable!=\"false\"){for(let child=node.firstChild;child;child=child.nextSibling){let inner=scanCompositionNode(pos,side,child,fromText);if(typeof inner!=\"number\")return inner;pos=inner;}}return pos;}function posFromDOMInCompositionTree(node,offset,view,text,dLen){if(view instanceof MarkView){let pos=0;for(let child=view.dom.firstChild;child;child=child.nextSibling){let childView=ContentView.get(child);if(childView){let hasComp=contains(child,text);if(contains(child,node))return pos+(hasComp?posFromDOMInCompositionTree(node,offset,childView,text,dLen):childView.localPosFromDOM(node,offset));pos+=childView.length+(hasComp?dLen:0);}else{let inner=posFromDOMInOpaqueNode(node,offset,child);if(inner.result!=null)return pos+inner.result;pos+=inner.size;}}}else if(view.dom==text){return Math.min(offset,text.nodeValue.length);}return view.localPosFromDOM(node,offset);}function posFromDOMInOpaqueNode(node,offset,target){if(target.nodeType==3){return node==target?{result:offset}:{size:target.nodeValue.length};}else if(target.nodeType==1&&target.contentEditable!=\"false\"){let pos=0;for(let child=target.firstChild,i=0;;child=child.nextSibling,i++){if(node==target&&i==offset)return{result:pos};if(!child)return{size:pos};let inner=posFromDOMInOpaqueNode(node,offset,child);if(inner.result!=null)return{result:offset+inner.result};pos+=inner.size;}}else{return target.contains(node)?{result:0}:{size:0};}}var WidgetBufferView=class extends ContentView{get length(){return 0;}merge(){return false;}become(other){return other instanceof WidgetBufferView&&other.side==this.side;}split(){return new WidgetBufferView(this.side);}sync(){if(!this.dom){let dom=document.createElement(\"img\");dom.className=\"cm-widgetBuffer\";dom.setAttribute(\"aria-hidden\",\"true\");this.setDOM(dom);}}getSide(){return this.side;}domAtPos(pos){return this.side>0?DOMPos.before(this.dom):DOMPos.after(this.dom);}localPosFromDOM(){return 0;}domBoundsAround(){return null;}coordsAt(pos){return this.dom.getBoundingClientRect();}get overrideDOMText(){return Text.empty;}get isHidden(){return true;}constructor(side){super();this.side=side;}};TextView.prototype.children=WidgetView.prototype.children=WidgetBufferView.prototype.children=noChildren;function inlineDOMAtPos(parent,pos){let dom=parent.dom,{children}=parent,i=0;for(let off=0;i<children.length;i++){let child=children[i],end=off+child.length;if(end==off&&child.getSide()<=0)continue;if(pos>off&&pos<end&&child.dom.parentNode==dom)return child.domAtPos(pos-off);if(pos<=off)break;off=end;}for(let j=i;j>0;j--){let prev=children[j-1];if(prev.dom.parentNode==dom)return prev.domAtPos(prev.length);}for(let j1=i;j1<children.length;j1++){let next=children[j1];if(next.dom.parentNode==dom)return next.domAtPos(0);}return new DOMPos(dom,0);}function joinInlineInto(parent,view,open){let last,{children}=parent;if(open>0&&view instanceof MarkView&&children.length&&(last=children[children.length-1])instanceof MarkView&&last.mark.eq(view.mark)){joinInlineInto(last,view.children[0],open-1);}else{children.push(view);view.setParent(parent);}parent.length+=view.length;}function coordsInChildren(view,pos,side){let before=null,beforePos=-1,after=null,afterPos=-1;function scan(view2,pos2){for(let i=0,off=0;i<view2.children.length&&off<=pos2;i++){let child=view2.children[i],end=off+child.length;if(end>=pos2){if(child.children.length){scan(child,pos2-off);}else if((!after||after.isHidden&&side>0)&&(end>pos2||off==end&&child.getSide()>0)){after=child;afterPos=pos2-off;}else if(off<pos2||off==end&&child.getSide()<0&&!child.isHidden){before=child;beforePos=pos2-off;}}off=end;}}scan(view,pos);let target=(side<0?before:after)||before||after;if(target)return target.coordsAt(Math.max(0,target==before?beforePos:afterPos),side);return fallbackRect(view);}function fallbackRect(view){let last=view.dom.lastChild;if(!last)return view.dom.getBoundingClientRect();let rects=clientRectsFor(last);return rects[rects.length-1]||null;}function combineAttrs(source,target){for(let name in source){if(name==\"class\"&&target.class)target.class+=\" \"+source.class;else if(name==\"style\"&&target.style)target.style+=\";\"+source.style;else target[name]=source[name];}return target;}function attrsEq(a,b){if(a==b)return true;if(!a||!b)return false;let keysA=Object.keys(a),keysB=Object.keys(b);if(keysA.length!=keysB.length)return false;for(let key of keysA){if(keysB.indexOf(key)==-1||a[key]!==b[key])return false;}return true;}function updateAttrs(dom,prev,attrs){let changed=null;if(prev){for(let name in prev)if(!(attrs&&name in attrs))dom.removeAttribute(changed=name);}if(attrs){for(let name1 in attrs)if(!(prev&&prev[name1]==attrs[name1]))dom.setAttribute(changed=name1,attrs[name1]);}return!!changed;}var WidgetType=class{/**\n  Compare this instance to another instance of the same type.\n  (TypeScript can't express this, but only instances of the same\n  specific class will be passed to this method.) This is used to\n  avoid redrawing widgets when they are replaced by a new\n  decoration of the same type. The default implementation just\n  returns `false`, which will cause new instances of the widget to\n  always be redrawn.\n  */ eq(widget){return false;}/**\n  Update a DOM element created by a widget of the same type (but\n  different, non-`eq` content) to reflect this widget. May return\n  true to indicate that it could update, false to indicate it\n  couldn't (in which case the widget will be redrawn). The default\n  implementation just returns false.\n  */ updateDOM(dom,view){return false;}/**\n  @internal\n  */ compare(other){return this==other||this.constructor==other.constructor&&this.eq(other);}/**\n  The estimated height this widget will have, to be used when\n  estimating the height of content that hasn't been drawn. May\n  return -1 to indicate you don't know. The default implementation\n  returns -1.\n  */ get estimatedHeight(){return-1;}/**\n  For inline widgets that are displayed inline (as opposed to\n  `inline-block`) and introduce line breaks (through `<br>` tags\n  or textual newlines), this must indicate the amount of line\n  breaks they introduce. Defaults to 0.\n  */ get lineBreaks(){return 0;}/**\n  Can be used to configure which kinds of events inside the widget\n  should be ignored by the editor. The default is to ignore all\n  events.\n  */ ignoreEvent(event){return true;}/**\n  Override the way screen coordinates for positions at/in the\n  widget are found. `pos` will be the offset into the widget, and\n  `side` the side of the position that is being queried—less than\n  zero for before, greater than zero for after, and zero for\n  directly at that position.\n  */ coordsAt(dom,pos,side){return null;}/**\n  @internal\n  */ get customView(){return null;}/**\n  @internal\n  */ get isHidden(){return false;}/**\n  This is called when the an instance of the widget is removed\n  from the editor view.\n  */ destroy(dom){}};var BlockType=/* @__PURE__ */ function(BlockType2){BlockType2[BlockType2[\"Text\"]=0]=\"Text\";BlockType2[BlockType2[\"WidgetBefore\"]=1]=\"WidgetBefore\";BlockType2[BlockType2[\"WidgetAfter\"]=2]=\"WidgetAfter\";BlockType2[BlockType2[\"WidgetRange\"]=3]=\"WidgetRange\";return BlockType2;}(BlockType||(BlockType={}));var Decoration=class extends RangeValue{/**\n  @internal\n  */ get heightRelevant(){return false;}/**\n  Create a mark decoration, which influences the styling of the\n  content in its range. Nested mark decorations will cause nested\n  DOM elements to be created. Nesting order is determined by\n  precedence of the [facet](https://codemirror.net/6/docs/ref/#view.EditorView^decorations), with\n  the higher-precedence decorations creating the inner DOM nodes.\n  Such elements are split on line boundaries and on the boundaries\n  of lower-precedence decorations.\n  */ static mark(spec){return new MarkDecoration(spec);}/**\n  Create a widget decoration, which displays a DOM element at the\n  given position.\n  */ static widget(spec){let side=Math.max(-1e4,Math.min(1e4,spec.side||0)),block=!!spec.block;side+=block?side>0?3e8:-4e8:side>0?1e8:-1e8;return new PointDecoration(spec,side,side,block,spec.widget||null,false);}/**\n  Create a replace decoration which replaces the given range with\n  a widget, or simply hides it.\n  */ static replace(spec){let block=!!spec.block,startSide,endSide;if(spec.isBlockGap){startSide=-5e8;endSide=4e8;}else{let{start,end}=getInclusive(spec,block);startSide=(start?block?-3e8:-1:5e8)-1;endSide=(end?block?2e8:1:-6e8)+1;}return new PointDecoration(spec,startSide,endSide,block,spec.widget||null,true);}/**\n  Create a line decoration, which can add DOM attributes to the\n  line starting at the given position.\n  */ static line(spec){return new LineDecoration(spec);}/**\n  Build a [`DecorationSet`](https://codemirror.net/6/docs/ref/#view.DecorationSet) from the given\n  decorated range or ranges. If the ranges aren't already sorted,\n  pass `true` for `sort` to make the library sort them for you.\n  */ static set(of,sort=false){return RangeSet.of(of,sort);}/**\n  @internal\n  */ hasHeight(){return this.widget?this.widget.estimatedHeight>-1:false;}constructor(startSide,endSide,widget,spec){super();this.startSide=startSide;this.endSide=endSide;this.widget=widget;this.spec=spec;}};Decoration.none=RangeSet.empty;var MarkDecoration=class extends Decoration{eq(other){return this==other||other instanceof MarkDecoration&&this.tagName==other.tagName&&this.class==other.class&&attrsEq(this.attrs,other.attrs);}range(from,to=from){if(from>=to)throw new RangeError(\"Mark decorations may not be empty\");return super.range(from,to);}constructor(spec){let{start,end}=getInclusive(spec);super(start?-1:5e8,end?1:-6e8,null,spec);this.tagName=spec.tagName||\"span\";this.class=spec.class||\"\";this.attrs=spec.attributes||null;}};MarkDecoration.prototype.point=false;var LineDecoration=class extends Decoration{eq(other){return other instanceof LineDecoration&&this.spec.class==other.spec.class&&attrsEq(this.spec.attributes,other.spec.attributes);}range(from,to=from){if(to!=from)throw new RangeError(\"Line decoration ranges must be zero-length\");return super.range(from,to);}constructor(spec){super(-2e8,-2e8,null,spec);}};LineDecoration.prototype.mapMode=MapMode.TrackBefore;LineDecoration.prototype.point=true;var PointDecoration=class extends Decoration{// Only relevant when this.block == true\nget type(){return this.startSide<this.endSide?BlockType.WidgetRange:this.startSide<=0?BlockType.WidgetBefore:BlockType.WidgetAfter;}get heightRelevant(){return this.block||!!this.widget&&(this.widget.estimatedHeight>=5||this.widget.lineBreaks>0);}eq(other){return other instanceof PointDecoration&&widgetsEq(this.widget,other.widget)&&this.block==other.block&&this.startSide==other.startSide&&this.endSide==other.endSide;}range(from,to=from){if(this.isReplace&&(from>to||from==to&&this.startSide>0&&this.endSide<=0))throw new RangeError(\"Invalid range for replacement decoration\");if(!this.isReplace&&to!=from)throw new RangeError(\"Widget decorations can only have zero-length ranges\");return super.range(from,to);}constructor(spec,startSide,endSide,block,widget,isReplace){super(startSide,endSide,widget,spec);this.block=block;this.isReplace=isReplace;this.mapMode=!block?MapMode.TrackDel:startSide<=0?MapMode.TrackBefore:MapMode.TrackAfter;}};PointDecoration.prototype.point=true;function getInclusive(spec,block=false){let{inclusiveStart:start,inclusiveEnd:end}=spec;if(start==null)start=spec.inclusive;if(end==null)end=spec.inclusive;return{start:start!==null&&start!==void 0?start:block,end:end!==null&&end!==void 0?end:block};}function widgetsEq(a,b){return a==b||!!(a&&b&&a.compare(b));}function addRange(from,to,ranges,margin=0){let last=ranges.length-1;if(last>=0&&ranges[last]+margin>=from)ranges[last]=Math.max(ranges[last],to);else ranges.push(from,to);}var LineView=class extends ContentView{// Consumes source\nmerge(from,to,source,hasStart,openStart,openEnd){if(source){if(!(source instanceof LineView))return false;if(!this.dom)source.transferDOM(this);}if(hasStart)this.setDeco(source?source.attrs:null);mergeChildrenInto(this,from,to,source?source.children:[],openStart,openEnd);return true;}split(at){let end=new LineView;end.breakAfter=this.breakAfter;if(this.length==0)return end;let{i,off}=this.childPos(at);if(off){end.append(this.children[i].split(off),0);this.children[i].merge(off,this.children[i].length,null,false,0,0);i++;}for(let j=i;j<this.children.length;j++)end.append(this.children[j],0);while(i>0&&this.children[i-1].length==0)this.children[--i].destroy();this.children.length=i;this.markDirty();this.length=at;return end;}transferDOM(other){if(!this.dom)return;this.markDirty();other.setDOM(this.dom);other.prevAttrs=this.prevAttrs===void 0?this.attrs:this.prevAttrs;this.prevAttrs=void 0;this.dom=null;}setDeco(attrs){if(!attrsEq(this.attrs,attrs)){if(this.dom){this.prevAttrs=this.attrs;this.markDirty();}this.attrs=attrs;}}append(child,openStart){joinInlineInto(this,child,openStart);}// Only called when building a line view in ContentBuilder\naddLineDeco(deco){let attrs=deco.spec.attributes,cls=deco.spec.class;if(attrs)this.attrs=combineAttrs(attrs,this.attrs||{});if(cls)this.attrs=combineAttrs({class:cls},this.attrs||{});}domAtPos(pos){return inlineDOMAtPos(this,pos);}reuseDOM(node){if(node.nodeName==\"DIV\"){this.setDOM(node);this.dirty|=4|2;}}sync(view,track){var _a;if(!this.dom){this.setDOM(document.createElement(\"div\"));this.dom.className=\"cm-line\";this.prevAttrs=this.attrs?null:void 0;}else if(this.dirty&4){clearAttributes(this.dom);this.dom.className=\"cm-line\";this.prevAttrs=this.attrs?null:void 0;}if(this.prevAttrs!==void 0){updateAttrs(this.dom,this.prevAttrs,this.attrs);this.dom.classList.add(\"cm-line\");this.prevAttrs=void 0;}super.sync(view,track);let last=this.dom.lastChild;while(last&&ContentView.get(last) instanceof MarkView)last=last.lastChild;if(!last||!this.length||last.nodeName!=\"BR\"&&((_a=ContentView.get(last))===null||_a===void 0?void 0:_a.isEditable)==false&&(!browser.ios||!this.children.some(ch=>ch instanceof TextView))){let hack=document.createElement(\"BR\");hack.cmIgnore=true;this.dom.appendChild(hack);}}measureTextSize(){if(this.children.length==0||this.length>20)return null;let totalWidth=0,textHeight;for(let child of this.children){if(!(child instanceof TextView)||/[^ -~]/.test(child.text))return null;let rects=clientRectsFor(child.dom);if(rects.length!=1)return null;totalWidth+=rects[0].width;textHeight=rects[0].height;}return!totalWidth?null:{lineHeight:this.dom.getBoundingClientRect().height,charWidth:totalWidth/this.length,textHeight};}coordsAt(pos,side){let rect=coordsInChildren(this,pos,side);if(!this.children.length&&rect&&this.parent){let{heightOracle}=this.parent.view.viewState,height=rect.bottom-rect.top;if(Math.abs(height-heightOracle.lineHeight)<2&&heightOracle.textHeight<height){let dist=(height-heightOracle.textHeight)/2;return{top:rect.top+dist,bottom:rect.bottom-dist,left:rect.left,right:rect.left};}}return rect;}become(_other){return false;}get type(){return BlockType.Text;}static find(docView,pos){for(let i=0,off=0;i<docView.children.length;i++){let block=docView.children[i],end=off+block.length;if(end>=pos){if(block instanceof LineView)return block;if(end>pos)break;}off=end+block.breakAfter;}return null;}constructor(){super(...arguments);this.children=[];this.length=0;this.prevAttrs=void 0;this.attrs=null;this.breakAfter=0;}};var BlockWidgetView=class extends ContentView{merge(from,to,source,_takeDeco,openStart,openEnd){if(source&&(!(source instanceof BlockWidgetView)||!this.widget.compare(source.widget)||from>0&&openStart<=0||to<this.length&&openEnd<=0))return false;this.length=from+(source?source.length:0)+(this.length-to);return true;}domAtPos(pos){return pos==0?DOMPos.before(this.dom):DOMPos.after(this.dom,pos==this.length);}split(at){let len=this.length-at;this.length=at;let end=new BlockWidgetView(this.widget,len,this.type);end.breakAfter=this.breakAfter;return end;}get children(){return noChildren;}sync(view){if(!this.dom||!this.widget.updateDOM(this.dom,view)){if(this.dom&&this.prevWidget)this.prevWidget.destroy(this.dom);this.prevWidget=null;this.setDOM(this.widget.toDOM(view));this.dom.contentEditable=\"false\";}}get overrideDOMText(){return this.parent?this.parent.view.state.doc.slice(this.posAtStart,this.posAtEnd):Text.empty;}domBoundsAround(){return null;}become(other){if(other instanceof BlockWidgetView&&other.widget.constructor==this.widget.constructor){if(!other.widget.compare(this.widget))this.markDirty(true);if(this.dom&&!this.prevWidget)this.prevWidget=this.widget;this.widget=other.widget;this.length=other.length;this.type=other.type;this.breakAfter=other.breakAfter;return true;}return false;}ignoreMutation(){return true;}ignoreEvent(event){return this.widget.ignoreEvent(event);}get isEditable(){return false;}get isWidget(){return true;}coordsAt(pos,side){return this.widget.coordsAt(this.dom,pos,side);}destroy(){super.destroy();if(this.dom)this.widget.destroy(this.dom);}constructor(widget,length,type){super();this.widget=widget;this.length=length;this.type=type;this.breakAfter=0;this.prevWidget=null;}};var ContentBuilder=class{posCovered(){if(this.content.length==0)return!this.breakAtStart&&this.doc.lineAt(this.pos).from!=this.pos;let last=this.content[this.content.length-1];return!last.breakAfter&&!(last instanceof BlockWidgetView&&last.type==BlockType.WidgetBefore);}getLine(){if(!this.curLine){this.content.push(this.curLine=new LineView);this.atCursorPos=true;}return this.curLine;}flushBuffer(active=this.bufferMarks){if(this.pendingBuffer){this.curLine.append(wrapMarks(new WidgetBufferView(-1),active),active.length);this.pendingBuffer=0;}}addBlockWidget(view){this.flushBuffer();this.curLine=null;this.content.push(view);}finish(openEnd){if(this.pendingBuffer&&openEnd<=this.bufferMarks.length)this.flushBuffer();else this.pendingBuffer=0;if(!this.posCovered())this.getLine();}buildText(length,active,openStart){while(length>0){if(this.textOff==this.text.length){let{value,lineBreak,done}=this.cursor.next(this.skip);this.skip=0;if(done)throw new Error(\"Ran out of text content when drawing inline views\");if(lineBreak){if(!this.posCovered())this.getLine();if(this.content.length)this.content[this.content.length-1].breakAfter=1;else this.breakAtStart=1;this.flushBuffer();this.curLine=null;this.atCursorPos=true;length--;continue;}else{this.text=value;this.textOff=0;}}let take=Math.min(this.text.length-this.textOff,length,512);this.flushBuffer(active.slice(active.length-openStart));this.getLine().append(wrapMarks(new TextView(this.text.slice(this.textOff,this.textOff+take)),active),openStart);this.atCursorPos=true;this.textOff+=take;length-=take;openStart=0;}}span(from,to,active,openStart){this.buildText(to-from,active,openStart);this.pos=to;if(this.openStart<0)this.openStart=openStart;}point(from,to,deco,active,openStart,index){if(this.disallowBlockEffectsFor[index]&&deco instanceof PointDecoration){if(deco.block)throw new RangeError(\"Block decorations may not be specified via plugins\");if(to>this.doc.lineAt(this.pos).to)throw new RangeError(\"Decorations that replace line breaks may not be specified via plugins\");}let len=to-from;if(deco instanceof PointDecoration){if(deco.block){let{type}=deco;if(type==BlockType.WidgetAfter&&!this.posCovered())this.getLine();this.addBlockWidget(new BlockWidgetView(deco.widget||new NullWidget(\"div\"),len,type));}else{let view=WidgetView.create(deco.widget||new NullWidget(\"span\"),len,len?0:deco.startSide);let cursorBefore=this.atCursorPos&&!view.isEditable&&openStart<=active.length&&(from<to||deco.startSide>0);let cursorAfter=!view.isEditable&&(from<to||openStart>active.length||deco.startSide<=0);let line=this.getLine();if(this.pendingBuffer==2&&!cursorBefore&&!view.isEditable)this.pendingBuffer=0;this.flushBuffer(active);if(cursorBefore){line.append(wrapMarks(new WidgetBufferView(1),active),openStart);openStart=active.length+Math.max(0,openStart-active.length);}line.append(wrapMarks(view,active),openStart);this.atCursorPos=cursorAfter;this.pendingBuffer=!cursorAfter?0:from<to||openStart>active.length?1:2;if(this.pendingBuffer)this.bufferMarks=active.slice();}}else if(this.doc.lineAt(this.pos).from==this.pos){this.getLine().addLineDeco(deco);}if(len){if(this.textOff+len<=this.text.length){this.textOff+=len;}else{this.skip+=len-(this.text.length-this.textOff);this.text=\"\";this.textOff=0;}this.pos=to;}if(this.openStart<0)this.openStart=openStart;}static build(text,from,to,decorations2,dynamicDecorationMap){let builder=new ContentBuilder(text,from,to,dynamicDecorationMap);builder.openEnd=RangeSet.spans(decorations2,from,to,builder);if(builder.openStart<0)builder.openStart=builder.openEnd;builder.finish(builder.openEnd);return builder;}constructor(doc2,pos,end,disallowBlockEffectsFor){this.doc=doc2;this.pos=pos;this.end=end;this.disallowBlockEffectsFor=disallowBlockEffectsFor;this.content=[];this.curLine=null;this.breakAtStart=0;this.pendingBuffer=0;this.bufferMarks=[];this.atCursorPos=true;this.openStart=-1;this.openEnd=-1;this.text=\"\";this.textOff=0;this.cursor=doc2.iter();this.skip=pos;}};function wrapMarks(view,active){for(let mark of active)view=new MarkView(mark,[view],view.length);return view;}var NullWidget=class extends WidgetType{eq(other){return other.tag==this.tag;}toDOM(){return document.createElement(this.tag);}updateDOM(elt){return elt.nodeName.toLowerCase()==this.tag;}get isHidden(){return true;}constructor(tag){super();this.tag=tag;}};var clickAddsSelectionRange=/* @__PURE__ */ Facet.define();var dragMovesSelection$1=/* @__PURE__ */ Facet.define();var mouseSelectionStyle=/* @__PURE__ */ Facet.define();var exceptionSink=/* @__PURE__ */ Facet.define();var updateListener=/* @__PURE__ */ Facet.define();var inputHandler=/* @__PURE__ */ Facet.define();var focusChangeEffect=/* @__PURE__ */ Facet.define();var perLineTextDirection=/* @__PURE__ */ Facet.define({combine:values=>values.some(x=>x)});var nativeSelectionHidden=/* @__PURE__ */ Facet.define({combine:values=>values.some(x=>x)});var ScrollTarget=class{map(changes){return changes.empty?this:new ScrollTarget(this.range.map(changes),this.y,this.x,this.yMargin,this.xMargin);}constructor(range,y=\"nearest\",x=\"nearest\",yMargin=5,xMargin=5){this.range=range;this.y=y;this.x=x;this.yMargin=yMargin;this.xMargin=xMargin;}};var scrollIntoView=/* @__PURE__ */ StateEffect.define({map:(t,ch)=>t.map(ch)});function logException(state,exception,context){let handler=state.facet(exceptionSink);if(handler.length)handler[0](exception);else if(window.onerror)window.onerror(String(exception),context,void 0,void 0,exception);else if(context)console.error(context+\":\",exception);else console.error(exception);}var editable=/* @__PURE__ */ Facet.define({combine:values=>values.length?values[0]:true});var nextPluginID=0;var viewPlugin=/* @__PURE__ */ Facet.define();var ViewPlugin=class{/**\n  Define a plugin from a constructor function that creates the\n  plugin's value, given an editor view.\n  */ static define(create,spec){const{eventHandlers,provide,decorations:deco}=spec||{};return new ViewPlugin(nextPluginID++,create,eventHandlers,plugin2=>{let ext=[viewPlugin.of(plugin2)];if(deco)ext.push(decorations.of(view=>{let pluginInst=view.plugin(plugin2);return pluginInst?deco(pluginInst):Decoration.none;}));if(provide)ext.push(provide(plugin2));return ext;});}/**\n  Create a plugin for a class whose constructor takes a single\n  editor view as argument.\n  */ static fromClass(cls,spec){return ViewPlugin.define(view=>new cls(view),spec);}constructor(id,create,domEventHandlers,buildExtensions){this.id=id;this.create=create;this.domEventHandlers=domEventHandlers;this.extension=buildExtensions(this);}};var PluginInstance=class{update(view){if(!this.value){if(this.spec){try{this.value=this.spec.create(view);}catch(e){logException(view.state,e,\"CodeMirror plugin crashed\");this.deactivate();}}}else if(this.mustUpdate){let update=this.mustUpdate;this.mustUpdate=null;if(this.value.update){try{this.value.update(update);}catch(e1){logException(update.state,e1,\"CodeMirror plugin crashed\");if(this.value.destroy)try{this.value.destroy();}catch(_){}this.deactivate();}}}return this;}destroy(view){var _a;if((_a=this.value)===null||_a===void 0?void 0:_a.destroy){try{this.value.destroy();}catch(e){logException(view.state,e,\"CodeMirror plugin crashed\");}}}deactivate(){this.spec=this.value=null;}constructor(spec){this.spec=spec;this.mustUpdate=null;this.value=null;}};var editorAttributes=/* @__PURE__ */ Facet.define();var contentAttributes=/* @__PURE__ */ Facet.define();var decorations=/* @__PURE__ */ Facet.define();var atomicRanges=/* @__PURE__ */ Facet.define();var scrollMargins=/* @__PURE__ */ Facet.define();function getScrollMargins(view){let left=0,right=0,top2=0,bottom=0;for(let source of view.state.facet(scrollMargins)){let m=source(view);if(m){if(m.left!=null)left=Math.max(left,m.left);if(m.right!=null)right=Math.max(right,m.right);if(m.top!=null)top2=Math.max(top2,m.top);if(m.bottom!=null)bottom=Math.max(bottom,m.bottom);}}return{left,right,top:top2,bottom};}var styleModule=/* @__PURE__ */ Facet.define();var ChangedRange=class{join(other){return new ChangedRange(Math.min(this.fromA,other.fromA),Math.max(this.toA,other.toA),Math.min(this.fromB,other.fromB),Math.max(this.toB,other.toB));}addToSet(set){let i=set.length,me=this;for(;i>0;i--){let range=set[i-1];if(range.fromA>me.toA)continue;if(range.toA<me.fromA)break;me=me.join(range);set.splice(i-1,1);}set.splice(i,0,me);return set;}static extendWithRanges(diff,ranges){if(ranges.length==0)return diff;let result=[];for(let dI=0,rI=0,posA=0,posB=0;;dI++){let next=dI==diff.length?null:diff[dI],off=posA-posB;let end=next?next.fromB:1e9;while(rI<ranges.length&&ranges[rI]<end){let from=ranges[rI],to=ranges[rI+1];let fromB=Math.max(posB,from),toB=Math.min(end,to);if(fromB<=toB)new ChangedRange(fromB+off,toB+off,fromB,toB).addToSet(result);if(to>end)break;else rI+=2;}if(!next)return result;new ChangedRange(next.fromA,next.toA,next.fromB,next.toB).addToSet(result);posA=next.toA;posB=next.toB;}}constructor(fromA,toA,fromB,toB){this.fromA=fromA;this.toA=toA;this.fromB=fromB;this.toB=toB;}};var ViewUpdate=class{/**\n  @internal\n  */ static create(view,state,transactions){return new ViewUpdate(view,state,transactions);}/**\n  Tells you whether the [viewport](https://codemirror.net/6/docs/ref/#view.EditorView.viewport) or\n  [visible ranges](https://codemirror.net/6/docs/ref/#view.EditorView.visibleRanges) changed in this\n  update.\n  */ get viewportChanged(){return(this.flags&4)>0;}/**\n  Indicates whether the height of a block element in the editor\n  changed in this update.\n  */ get heightChanged(){return(this.flags&2)>0;}/**\n  Returns true when the document was modified or the size of the\n  editor, or elements within the editor, changed.\n  */ get geometryChanged(){return this.docChanged||(this.flags&(8|2))>0;}/**\n  True when this update indicates a focus change.\n  */ get focusChanged(){return(this.flags&1)>0;}/**\n  Whether the document changed in this update.\n  */ get docChanged(){return!this.changes.empty;}/**\n  Whether the selection was explicitly set in this update.\n  */ get selectionSet(){return this.transactions.some(tr=>tr.selection);}/**\n  @internal\n  */ get empty(){return this.flags==0&&this.transactions.length==0;}constructor(view,state,transactions){this.view=view;this.state=state;this.transactions=transactions;this.flags=0;this.startState=view.state;this.changes=ChangeSet.empty(this.startState.doc.length);for(let tr of transactions)this.changes=this.changes.compose(tr.changes);let changedRanges=[];this.changes.iterChangedRanges((fromA,toA,fromB,toB)=>changedRanges.push(new ChangedRange(fromA,toA,fromB,toB)));this.changedRanges=changedRanges;}};var Direction=/* @__PURE__ */ function(Direction2){Direction2[Direction2[\"LTR\"]=0]=\"LTR\";Direction2[Direction2[\"RTL\"]=1]=\"RTL\";return Direction2;}(Direction||(Direction={}));var LTR=Direction.LTR;var RTL=Direction.RTL;function dec(str){let result=[];for(let i=0;i<str.length;i++)result.push(1<<+str[i]);return result;}var LowTypes=/* @__PURE__ */ dec(\"88888888888888888888888888888888888666888888787833333333337888888000000000000000000000000008888880000000000000000000000000088888888888888888888888888888888888887866668888088888663380888308888800000000000000000000000800000000000000000000000000000008\");var ArabicTypes=/* @__PURE__ */ dec(\"4444448826627288999999999992222222222222222222222222222222222222222222222229999999999999999999994444444444644222822222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222999999949999999229989999223333333333\");var Brackets=/* @__PURE__ */ Object.create(null);var BracketStack=[];for(let p of[\"()\",\"[]\",\"{}\"]){let l=/* @__PURE__ */ p.charCodeAt(0),r=/* @__PURE__ */ p.charCodeAt(1);Brackets[l]=r;Brackets[r]=-l;}function charType(ch){return ch<=247?LowTypes[ch]:1424<=ch&&ch<=1524?2:1536<=ch&&ch<=1785?ArabicTypes[ch-1536]:1774<=ch&&ch<=2220?4:8192<=ch&&ch<=8203?256:64336<=ch&&ch<=65023?4:ch==8204?256:1;}var BidiRE=/[\\u0590-\\u05f4\\u0600-\\u06ff\\u0700-\\u08ac\\ufb50-\\ufdff]/;var BidiSpan=class{/**\n  The direction of this span.\n  */ get dir(){return this.level%2?RTL:LTR;}/**\n  @internal\n  */ side(end,dir){return this.dir==dir==end?this.to:this.from;}/**\n  @internal\n  */ static find(order,index,level,assoc){let maybe=-1;for(let i=0;i<order.length;i++){let span=order[i];if(span.from<=index&&span.to>=index){if(span.level==level)return i;if(maybe<0||(assoc!=0?assoc<0?span.from<index:span.to>index:order[maybe].level>span.level))maybe=i;}}if(maybe<0)throw new RangeError(\"Index out of range\");return maybe;}/**\n  @internal\n  */ constructor(from,to,level){this.from=from;this.to=to;this.level=level;}};var types=[];function computeOrder(line,direction){let len=line.length,outerType=direction==LTR?1:2,oppositeType=direction==LTR?2:1;if(!line||outerType==1&&!BidiRE.test(line))return trivialOrder(len);for(let i=0,prev=outerType,prevStrong=outerType;i<len;i++){let type=charType(line.charCodeAt(i));if(type==512)type=prev;else if(type==8&&prevStrong==4)type=16;types[i]=type==4?2:type;if(type&7)prevStrong=type;prev=type;}for(let i1=0,prev1=outerType,prevStrong1=outerType;i1<len;i1++){let type1=types[i1];if(type1==128){if(i1<len-1&&prev1==types[i1+1]&&prev1&24)type1=types[i1]=prev1;else types[i1]=256;}else if(type1==64){let end=i1+1;while(end<len&&types[end]==64)end++;let replace=i1&&prev1==8||end<len&&types[end]==8?prevStrong1==1?1:8:256;for(let j=i1;j<end;j++)types[j]=replace;i1=end-1;}else if(type1==8&&prevStrong1==1){types[i1]=1;}prev1=type1;if(type1&7)prevStrong1=type1;}for(let i2=0,sI=0,context=0,ch,br,type2;i2<len;i2++){if(br=Brackets[ch=line.charCodeAt(i2)]){if(br<0){for(let sJ=sI-3;sJ>=0;sJ-=3){if(BracketStack[sJ+1]==-br){let flags=BracketStack[sJ+2];let type21=flags&2?outerType:!(flags&4)?0:flags&1?oppositeType:outerType;if(type21)types[i2]=types[BracketStack[sJ]]=type21;sI=sJ;break;}}}else if(BracketStack.length==189){break;}else{BracketStack[sI++]=i2;BracketStack[sI++]=ch;BracketStack[sI++]=context;}}else if((type2=types[i2])==2||type2==1){let embed=type2==outerType;context=embed?0:1;for(let sJ1=sI-3;sJ1>=0;sJ1-=3){let cur=BracketStack[sJ1+2];if(cur&2)break;if(embed){BracketStack[sJ1+2]|=2;}else{if(cur&4)break;BracketStack[sJ1+2]|=4;}}}}for(let i3=0;i3<len;i3++){if(types[i3]==256){let end1=i3+1;while(end1<len&&types[end1]==256)end1++;let beforeL=(i3?types[i3-1]:outerType)==1;let afterL=(end1<len?types[end1]:outerType)==1;let replace1=beforeL==afterL?beforeL?1:2:outerType;for(let j1=i3;j1<end1;j1++)types[j1]=replace1;i3=end1-1;}}let order=[];if(outerType==1){for(let i4=0;i4<len;){let start=i4,rtl=types[i4++]!=1;while(i4<len&&rtl==(types[i4]!=1))i4++;if(rtl){for(let j2=i4;j2>start;){let end2=j2,l=types[--j2]!=2;while(j2>start&&l==(types[j2-1]!=2))j2--;order.push(new BidiSpan(j2,end2,l?2:1));}}else{order.push(new BidiSpan(start,i4,0));}}}else{for(let i5=0;i5<len;){let start1=i5,rtl1=types[i5++]==2;while(i5<len&&rtl1==(types[i5]==2))i5++;order.push(new BidiSpan(start1,i5,rtl1?1:2));}}return order;}function trivialOrder(length){return[new BidiSpan(0,length,0)];}var movedOver=\"\";function moveVisually(line,order,dir,start,forward){var _a;let startIndex=start.head-line.from,spanI=-1;if(startIndex==0){if(!forward||!line.length)return null;if(order[0].level!=dir){startIndex=order[0].side(false,dir);spanI=0;}}else if(startIndex==line.length){if(forward)return null;let last=order[order.length-1];if(last.level!=dir){startIndex=last.side(true,dir);spanI=order.length-1;}}if(spanI<0)spanI=BidiSpan.find(order,startIndex,(_a=start.bidiLevel)!==null&&_a!==void 0?_a:-1,start.assoc);let span=order[spanI];if(startIndex==span.side(forward,dir)){span=order[spanI+=forward?1:-1];startIndex=span.side(!forward,dir);}let indexForward=forward==(span.dir==dir);let nextIndex=findClusterBreak(line.text,startIndex,indexForward);movedOver=line.text.slice(Math.min(startIndex,nextIndex),Math.max(startIndex,nextIndex));if(nextIndex!=span.side(forward,dir))return EditorSelection.cursor(nextIndex+line.from,indexForward?-1:1,span.level);let nextSpan=spanI==(forward?order.length-1:0)?null:order[spanI+(forward?1:-1)];if(!nextSpan&&span.level!=dir)return EditorSelection.cursor(forward?line.to:line.from,forward?-1:1,dir);if(nextSpan&&nextSpan.level<span.level)return EditorSelection.cursor(nextSpan.side(!forward,dir)+line.from,forward?1:-1,nextSpan.level);return EditorSelection.cursor(nextIndex+line.from,forward?-1:1,span.level);}var LineBreakPlaceholder=\"￿\";var DOMReader=class{append(text){this.text+=text;}lineBreak(){this.text+=LineBreakPlaceholder;}readRange(start,end){if(!start)return this;let parent=start.parentNode;for(let cur=start;;){this.findPointBefore(parent,cur);let oldLen=this.text.length;this.readNode(cur);let next=cur.nextSibling;if(next==end)break;let view=ContentView.get(cur),nextView=ContentView.get(next);if(view&&nextView?view.breakAfter:(view?view.breakAfter:isBlockElement(cur))||isBlockElement(next)&&(cur.nodeName!=\"BR\"||cur.cmIgnore)&&this.text.length>oldLen)this.lineBreak();cur=next;}this.findPointBefore(parent,end);return this;}readTextNode(node){let text=node.nodeValue;for(let point of this.points)if(point.node==node)point.pos=this.text.length+Math.min(point.offset,text.length);for(let off=0,re=this.lineSeparator?null:/\\r\\n?|\\n/g;;){let nextBreak=-1,breakSize=1,m;if(this.lineSeparator){nextBreak=text.indexOf(this.lineSeparator,off);breakSize=this.lineSeparator.length;}else if(m=re.exec(text)){nextBreak=m.index;breakSize=m[0].length;}this.append(text.slice(off,nextBreak<0?text.length:nextBreak));if(nextBreak<0)break;this.lineBreak();if(breakSize>1){for(let point1 of this.points)if(point1.node==node&&point1.pos>this.text.length)point1.pos-=breakSize-1;}off=nextBreak+breakSize;}}readNode(node){if(node.cmIgnore)return;let view=ContentView.get(node);let fromView=view&&view.overrideDOMText;if(fromView!=null){this.findPointInside(node,fromView.length);for(let i=fromView.iter();!i.next().done;){if(i.lineBreak)this.lineBreak();else this.append(i.value);}}else if(node.nodeType==3){this.readTextNode(node);}else if(node.nodeName==\"BR\"){if(node.nextSibling)this.lineBreak();}else if(node.nodeType==1){this.readRange(node.firstChild,null);}}findPointBefore(node,next){for(let point of this.points)if(point.node==node&&node.childNodes[point.offset]==next)point.pos=this.text.length;}findPointInside(node,maxLen){for(let point of this.points)if(node.nodeType==3?point.node==node:node.contains(point.node))point.pos=this.text.length+Math.min(maxLen,point.offset);}constructor(points,state){this.points=points;this.text=\"\";this.lineSeparator=state.facet(EditorState.lineSeparator);}};function isBlockElement(node){return node.nodeType==1&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\\d|SECTION|PRE)$/.test(node.nodeName);}var DOMPoint=class{constructor(node,offset){this.node=node;this.offset=offset;this.pos=-1;}};var DocView=class extends ContentView{get length(){return this.view.state.doc.length;}// Update the document view to a given state.\nupdate(update){let changedRanges=update.changedRanges;if(this.minWidth>0&&changedRanges.length){if(!changedRanges.every(({fromA,toA})=>toA<this.minWidthFrom||fromA>this.minWidthTo)){this.minWidth=this.minWidthFrom=this.minWidthTo=0;}else{this.minWidthFrom=update.changes.mapPos(this.minWidthFrom,1);this.minWidthTo=update.changes.mapPos(this.minWidthTo,1);}}if(this.view.inputState.composing<0)this.compositionDeco=Decoration.none;else if(update.transactions.length||this.dirty)this.compositionDeco=computeCompositionDeco(this.view,update.changes);if((browser.ie||browser.chrome)&&!this.compositionDeco.size&&update&&update.state.doc.lines!=update.startState.doc.lines)this.forceSelection=true;let prevDeco=this.decorations,deco=this.updateDeco();let decoDiff=findChangedDeco(prevDeco,deco,update.changes);changedRanges=ChangedRange.extendWithRanges(changedRanges,decoDiff);if(this.dirty==0&&changedRanges.length==0){return false;}else{this.updateInner(changedRanges,update.startState.doc.length);if(update.transactions.length)this.lastUpdate=Date.now();return true;}}// Used by update and the constructor do perform the actual DOM\n// update\nupdateInner(changes,oldLength){this.view.viewState.mustMeasureContent=true;this.updateChildren(changes,oldLength);let{observer}=this.view;observer.ignore(()=>{this.dom.style.height=this.view.viewState.contentHeight+\"px\";this.dom.style.flexBasis=this.minWidth?this.minWidth+\"px\":\"\";let track=browser.chrome||browser.ios?{node:observer.selectionRange.focusNode,written:false}:void 0;this.sync(this.view,track);this.dirty=0;if(track&&(track.written||observer.selectionRange.focusNode!=track.node))this.forceSelection=true;this.dom.style.height=\"\";});let gaps=[];if(this.view.viewport.from||this.view.viewport.to<this.view.state.doc.length){for(let child of this.children)if(child instanceof BlockWidgetView&&child.widget instanceof BlockGapWidget)gaps.push(child.dom);}observer.updateGaps(gaps);}updateChildren(changes,oldLength){let cursor=this.childCursor(oldLength);for(let i=changes.length-1;;i--){let next=i>=0?changes[i]:null;if(!next)break;let{fromA,toA,fromB,toB}=next;let{content,breakAtStart,openStart,openEnd}=ContentBuilder.build(this.view.state.doc,fromB,toB,this.decorations,this.dynamicDecorationMap);let{i:toI,off:toOff}=cursor.findPos(toA,1);let{i:fromI,off:fromOff}=cursor.findPos(fromA,-1);replaceRange(this,fromI,fromOff,toI,toOff,content,breakAtStart,openStart,openEnd);}}// Sync the DOM selection to this.state.selection\nupdateSelection(mustRead=false,fromPointer=false){if(mustRead||!this.view.observer.selectionRange.focusNode)this.view.observer.readSelectionRange();let activeElt=this.view.root.activeElement,focused=activeElt==this.dom;let selectionNotFocus=!focused&&hasSelection(this.dom,this.view.observer.selectionRange)&&!(activeElt&&this.dom.contains(activeElt));if(!(focused||fromPointer||selectionNotFocus))return;let force=this.forceSelection;this.forceSelection=false;let main=this.view.state.selection.main;let anchor=this.domAtPos(main.anchor);let head=main.empty?anchor:this.domAtPos(main.head);if(browser.gecko&&main.empty&&!this.compositionDeco.size&&betweenUneditable(anchor)){let dummy=document.createTextNode(\"\");this.view.observer.ignore(()=>anchor.node.insertBefore(dummy,anchor.node.childNodes[anchor.offset]||null));anchor=head=new DOMPos(dummy,0);force=true;}let domSel=this.view.observer.selectionRange;if(force||!domSel.focusNode||!isEquivalentPosition(anchor.node,anchor.offset,domSel.anchorNode,domSel.anchorOffset)||!isEquivalentPosition(head.node,head.offset,domSel.focusNode,domSel.focusOffset)){this.view.observer.ignore(()=>{if(browser.android&&browser.chrome&&this.dom.contains(domSel.focusNode)&&inUneditable(domSel.focusNode,this.dom)){this.dom.blur();this.dom.focus({preventScroll:true});}let rawSel=getSelection(this.view.root);if(!rawSel);else if(main.empty){if(browser.gecko){let nextTo=nextToUneditable(anchor.node,anchor.offset);if(nextTo&&nextTo!=(1|2)){let text=nearbyTextNode(anchor.node,anchor.offset,nextTo==1?1:-1);if(text)anchor=new DOMPos(text,nextTo==1?0:text.nodeValue.length);}}rawSel.collapse(anchor.node,anchor.offset);if(main.bidiLevel!=null&&domSel.cursorBidiLevel!=null)domSel.cursorBidiLevel=main.bidiLevel;}else if(rawSel.extend){rawSel.collapse(anchor.node,anchor.offset);try{rawSel.extend(head.node,head.offset);}catch(_){}}else{let range=document.createRange();if(main.anchor>main.head)[anchor,head]=[head,anchor];range.setEnd(head.node,head.offset);range.setStart(anchor.node,anchor.offset);rawSel.removeAllRanges();rawSel.addRange(range);}if(selectionNotFocus&&this.view.root.activeElement==this.dom){this.dom.blur();if(activeElt)activeElt.focus();}});this.view.observer.setSelectionRange(anchor,head);}this.impreciseAnchor=anchor.precise?null:new DOMPos(domSel.anchorNode,domSel.anchorOffset);this.impreciseHead=head.precise?null:new DOMPos(domSel.focusNode,domSel.focusOffset);}enforceCursorAssoc(){if(this.compositionDeco.size)return;let{view}=this,cursor=view.state.selection.main;let sel=getSelection(view.root);let{anchorNode,anchorOffset}=view.observer.selectionRange;if(!sel||!cursor.empty||!cursor.assoc||!sel.modify)return;let line=LineView.find(this,cursor.head);if(!line)return;let lineStart=line.posAtStart;if(cursor.head==lineStart||cursor.head==lineStart+line.length)return;let before=this.coordsAt(cursor.head,-1),after=this.coordsAt(cursor.head,1);if(!before||!after||before.bottom>after.top)return;let dom=this.domAtPos(cursor.head+cursor.assoc);sel.collapse(dom.node,dom.offset);sel.modify(\"move\",cursor.assoc<0?\"forward\":\"backward\",\"lineboundary\");view.observer.readSelectionRange();let newRange=view.observer.selectionRange;if(view.docView.posFromDOM(newRange.anchorNode,newRange.anchorOffset)!=cursor.from)sel.collapse(anchorNode,anchorOffset);}nearest(dom){for(let cur=dom;cur;){let domView=ContentView.get(cur);if(domView&&domView.rootView==this)return domView;cur=cur.parentNode;}return null;}posFromDOM(node,offset){let view=this.nearest(node);if(!view)throw new RangeError(\"Trying to find position for a DOM position outside of the document\");return view.localPosFromDOM(node,offset)+view.posAtStart;}domAtPos(pos){let{i,off}=this.childCursor().findPos(pos,-1);for(;i<this.children.length-1;){let child=this.children[i];if(off<child.length||child instanceof LineView)break;i++;off=0;}return this.children[i].domAtPos(off);}coordsAt(pos,side){for(let off=this.length,i=this.children.length-1;;i--){let child=this.children[i],start=off-child.breakAfter-child.length;if(pos>start||pos==start&&child.type!=BlockType.WidgetBefore&&child.type!=BlockType.WidgetAfter&&(!i||side==2||this.children[i-1].breakAfter||this.children[i-1].type==BlockType.WidgetBefore&&side>-2))return child.coordsAt(pos-start,side);off=start;}}measureVisibleLineHeights(viewport){let result=[],{from,to}=viewport;let contentWidth=this.view.contentDOM.clientWidth;let isWider=contentWidth>Math.max(this.view.scrollDOM.clientWidth,this.minWidth)+1;let widest=-1,ltr=this.view.textDirection==Direction.LTR;for(let pos=0,i=0;i<this.children.length;i++){let child=this.children[i],end=pos+child.length;if(end>to)break;if(pos>=from){let childRect=child.dom.getBoundingClientRect();result.push(childRect.height);if(isWider){let last=child.dom.lastChild;let rects=last?clientRectsFor(last):[];if(rects.length){let rect=rects[rects.length-1];let width=ltr?rect.right-childRect.left:childRect.right-rect.left;if(width>widest){widest=width;this.minWidth=contentWidth;this.minWidthFrom=pos;this.minWidthTo=end;}}}}pos=end+child.breakAfter;}return result;}textDirectionAt(pos){let{i}=this.childPos(pos,1);return getComputedStyle(this.children[i].dom).direction==\"rtl\"?Direction.RTL:Direction.LTR;}measureTextSize(){for(let child of this.children){if(child instanceof LineView){let measure=child.measureTextSize();if(measure)return measure;}}let dummy=document.createElement(\"div\"),lineHeight,charWidth,textHeight;dummy.className=\"cm-line\";dummy.style.width=\"99999px\";dummy.textContent=\"abc def ghi jkl mno pqr stu\";this.view.observer.ignore(()=>{this.dom.appendChild(dummy);let rect=clientRectsFor(dummy.firstChild)[0];lineHeight=dummy.getBoundingClientRect().height;charWidth=rect?rect.width/27:7;textHeight=rect?rect.height:lineHeight;dummy.remove();});return{lineHeight,charWidth,textHeight};}childCursor(pos=this.length){let i=this.children.length;if(i)pos-=this.children[--i].length;return new ChildCursor(this.children,pos,i);}computeBlockGapDeco(){let deco=[],vs=this.view.viewState;for(let pos=0,i=0;;i++){let next=i==vs.viewports.length?null:vs.viewports[i];let end=next?next.from-1:this.length;if(end>pos){let height=vs.lineBlockAt(end).bottom-vs.lineBlockAt(pos).top;deco.push(Decoration.replace({widget:new BlockGapWidget(height),block:true,inclusive:true,isBlockGap:true}).range(pos,end));}if(!next)break;pos=next.to+1;}return Decoration.set(deco);}updateDeco(){let allDeco=this.view.state.facet(decorations).map((d,i)=>{let dynamic=this.dynamicDecorationMap[i]=typeof d==\"function\";return dynamic?d(this.view):d;});for(let i=allDeco.length;i<allDeco.length+3;i++)this.dynamicDecorationMap[i]=false;return this.decorations=[...allDeco,this.compositionDeco,this.computeBlockGapDeco(),this.view.viewState.lineGapDeco,];}scrollIntoView(target){let{range}=target;let rect=this.coordsAt(range.head,range.empty?range.assoc:range.head>range.anchor?-1:1),other;if(!rect)return;if(!range.empty&&(other=this.coordsAt(range.anchor,range.anchor>range.head?-1:1)))rect={left:Math.min(rect.left,other.left),top:Math.min(rect.top,other.top),right:Math.max(rect.right,other.right),bottom:Math.max(rect.bottom,other.bottom)};let margins=getScrollMargins(this.view);let targetRect={left:rect.left-margins.left,top:rect.top-margins.top,right:rect.right+margins.right,bottom:rect.bottom+margins.bottom};scrollRectIntoView(this.view.scrollDOM,targetRect,range.head<range.anchor?-1:1,target.x,target.y,target.xMargin,target.yMargin,this.view.textDirection==Direction.LTR);}constructor(view){super();this.view=view;this.compositionDeco=Decoration.none;this.decorations=[];this.dynamicDecorationMap=[];this.minWidth=0;this.minWidthFrom=0;this.minWidthTo=0;this.impreciseAnchor=null;this.impreciseHead=null;this.forceSelection=false;this.lastUpdate=Date.now();this.setDOM(view.contentDOM);this.children=[new LineView];this.children[0].setParent(this);this.updateDeco();this.updateInner([new ChangedRange(0,0,0,view.state.doc.length)],0);}};function betweenUneditable(pos){return pos.node.nodeType==1&&pos.node.firstChild&&(pos.offset==0||pos.node.childNodes[pos.offset-1].contentEditable==\"false\")&&(pos.offset==pos.node.childNodes.length||pos.node.childNodes[pos.offset].contentEditable==\"false\");}var BlockGapWidget=class extends WidgetType{toDOM(){let elt=document.createElement(\"div\");this.updateDOM(elt);return elt;}eq(other){return other.height==this.height;}updateDOM(elt){elt.style.height=this.height+\"px\";return true;}get estimatedHeight(){return this.height;}constructor(height){super();this.height=height;}};function compositionSurroundingNode(view){let sel=view.observer.selectionRange;let textNode=sel.focusNode&&nearbyTextNode(sel.focusNode,sel.focusOffset,0);if(!textNode)return null;let cView=view.docView.nearest(textNode);if(!cView)return null;if(cView instanceof LineView){let topNode=textNode;while(topNode.parentNode!=cView.dom)topNode=topNode.parentNode;let prev=topNode.previousSibling;while(prev&&!ContentView.get(prev))prev=prev.previousSibling;let pos=prev?ContentView.get(prev).posAtEnd:cView.posAtStart;return{from:pos,to:pos,node:topNode,text:textNode};}else{for(;;){let{parent}=cView;if(!parent)return null;if(parent instanceof LineView)break;cView=parent;}let from=cView.posAtStart;return{from,to:from+cView.length,node:cView.dom,text:textNode};}}function computeCompositionDeco(view,changes){let surrounding=compositionSurroundingNode(view);if(!surrounding)return Decoration.none;let{from,to,node,text:textNode}=surrounding;let newFrom=changes.mapPos(from,1),newTo=Math.max(newFrom,changes.mapPos(to,-1));let{state}=view,reader=new DOMReader([],state);if(node.nodeType==3)reader.readTextNode(node);else reader.readRange(node.firstChild,null);let{text}=reader;if(text.indexOf(LineBreakPlaceholder)>-1)return Decoration.none;if(newTo-newFrom<text.length){if(state.doc.sliceString(newFrom,Math.min(state.doc.length,newFrom+text.length))==text)newTo=newFrom+text.length;else if(state.doc.sliceString(Math.max(0,newTo-text.length),newTo)==text)newFrom=newTo-text.length;else return Decoration.none;}else if(state.doc.sliceString(newFrom,newTo)!=text){return Decoration.none;}let topView=ContentView.get(node);if(topView instanceof CompositionView)topView=topView.widget.topView;else if(topView)topView.parent=null;return Decoration.set(Decoration.replace({widget:new CompositionWidget(node,textNode,topView),inclusive:true}).range(newFrom,newTo));}var CompositionWidget=class extends WidgetType{eq(other){return this.top==other.top&&this.text==other.text;}toDOM(){return this.top;}ignoreEvent(){return false;}get customView(){return CompositionView;}constructor(top2,text,topView){super();this.top=top2;this.text=text;this.topView=topView;}};function nearbyTextNode(startNode,startOffset,side){if(side<=0)for(let node=startNode,offset=startOffset;;){if(node.nodeType==3)return node;if(node.nodeType==1&&offset>0){node=node.childNodes[offset-1];offset=maxOffset(node);}else{break;}}if(side>=0)for(let node1=startNode,offset1=startOffset;;){if(node1.nodeType==3)return node1;if(node1.nodeType==1&&offset1<node1.childNodes.length&&side>=0){node1=node1.childNodes[offset1];offset1=0;}else{break;}}return null;}function nextToUneditable(node,offset){if(node.nodeType!=1)return 0;return(offset&&node.childNodes[offset-1].contentEditable==\"false\"?1:0)|(offset<node.childNodes.length&&node.childNodes[offset].contentEditable==\"false\"?2:0);}var DecorationComparator$1=class{compareRange(from,to){addRange(from,to,this.changes);}comparePoint(from,to){addRange(from,to,this.changes);}constructor(){this.changes=[];}};function findChangedDeco(a,b,diff){let comp=new DecorationComparator$1;RangeSet.compare(a,b,diff,comp);return comp.changes;}function inUneditable(node,inside2){for(let cur=node;cur&&cur!=inside2;cur=cur.assignedSlot||cur.parentNode){if(cur.nodeType==1&&cur.contentEditable==\"false\"){return true;}}return false;}function groupAt(state,pos,bias=1){let categorize=state.charCategorizer(pos);let line=state.doc.lineAt(pos),linePos=pos-line.from;if(line.length==0)return EditorSelection.cursor(pos);if(linePos==0)bias=1;else if(linePos==line.length)bias=-1;let from=linePos,to=linePos;if(bias<0)from=findClusterBreak(line.text,linePos,false);else to=findClusterBreak(line.text,linePos);let cat=categorize(line.text.slice(from,to));while(from>0){let prev=findClusterBreak(line.text,from,false);if(categorize(line.text.slice(prev,from))!=cat)break;from=prev;}while(to<line.length){let next=findClusterBreak(line.text,to);if(categorize(line.text.slice(to,next))!=cat)break;to=next;}return EditorSelection.range(from+line.from,to+line.from);}function getdx(x,rect){return rect.left>x?rect.left-x:Math.max(0,x-rect.right);}function getdy(y,rect){return rect.top>y?rect.top-y:Math.max(0,y-rect.bottom);}function yOverlap(a,b){return a.top<b.bottom-1&&a.bottom>b.top+1;}function upTop(rect,top2){return top2<rect.top?{top:top2,left:rect.left,right:rect.right,bottom:rect.bottom}:rect;}function upBot(rect,bottom){return bottom>rect.bottom?{top:rect.top,left:rect.left,right:rect.right,bottom}:rect;}function domPosAtCoords(parent,x,y){let closest,closestRect,closestX,closestY,closestOverlap=false;let above,below,aboveRect,belowRect;for(let child=parent.firstChild;child;child=child.nextSibling){let rects=clientRectsFor(child);for(let i=0;i<rects.length;i++){let rect=rects[i];if(closestRect&&yOverlap(closestRect,rect))rect=upTop(upBot(rect,closestRect.bottom),closestRect.top);let dx=getdx(x,rect),dy=getdy(y,rect);if(dx==0&&dy==0)return child.nodeType==3?domPosInText(child,x,y):domPosAtCoords(child,x,y);if(!closest||closestY>dy||closestY==dy&&closestX>dx){closest=child;closestRect=rect;closestX=dx;closestY=dy;let side=dy?y<rect.top?-1:1:dx?x<rect.left?-1:1:0;closestOverlap=!side||(side>0?i<rects.length-1:i>0);}if(dx==0){if(y>rect.bottom&&(!aboveRect||aboveRect.bottom<rect.bottom)){above=child;aboveRect=rect;}else if(y<rect.top&&(!belowRect||belowRect.top>rect.top)){below=child;belowRect=rect;}}else if(aboveRect&&yOverlap(aboveRect,rect)){aboveRect=upBot(aboveRect,rect.bottom);}else if(belowRect&&yOverlap(belowRect,rect)){belowRect=upTop(belowRect,rect.top);}}}if(aboveRect&&aboveRect.bottom>=y){closest=above;closestRect=aboveRect;}else if(belowRect&&belowRect.top<=y){closest=below;closestRect=belowRect;}if(!closest)return{node:parent,offset:0};let clipX=Math.max(closestRect.left,Math.min(closestRect.right,x));if(closest.nodeType==3)return domPosInText(closest,clipX,y);if(closestOverlap&&closest.contentEditable!=\"false\")return domPosAtCoords(closest,clipX,y);let offset=Array.prototype.indexOf.call(parent.childNodes,closest)+(x>=(closestRect.left+closestRect.right)/2?1:0);return{node:parent,offset};}function domPosInText(node,x,y){let len=node.nodeValue.length;let closestOffset=-1,closestDY=1e9,generalSide=0;for(let i=0;i<len;i++){let rects=textRange(node,i,i+1).getClientRects();for(let j=0;j<rects.length;j++){let rect=rects[j];if(rect.top==rect.bottom)continue;if(!generalSide)generalSide=x-rect.left;let dy=(rect.top>y?rect.top-y:y-rect.bottom)-1;if(rect.left-1<=x&&rect.right+1>=x&&dy<closestDY){let right=x>=(rect.left+rect.right)/2,after=right;if(browser.chrome||browser.gecko){let rectBefore=textRange(node,i).getBoundingClientRect();if(rectBefore.left==rect.right)after=!right;}if(dy<=0)return{node,offset:i+(after?1:0)};closestOffset=i+(after?1:0);closestDY=dy;}}}return{node,offset:closestOffset>-1?closestOffset:generalSide>0?node.nodeValue.length:0};}function posAtCoords(view,coords,precise,bias=-1){var _a,_b;let content=view.contentDOM.getBoundingClientRect(),docTop=content.top+view.viewState.paddingTop;let block,{docHeight}=view.viewState;let{x,y}=coords,yOffset=y-docTop;if(yOffset<0)return 0;if(yOffset>docHeight)return view.state.doc.length;for(let halfLine=view.defaultLineHeight/2,bounced=false;;){block=view.elementAtHeight(yOffset);if(block.type==BlockType.Text)break;for(;;){yOffset=bias>0?block.bottom+halfLine:block.top-halfLine;if(yOffset>=0&&yOffset<=docHeight)break;if(bounced)return precise?null:0;bounced=true;bias=-bias;}}y=docTop+yOffset;let lineStart=block.from;if(lineStart<view.viewport.from)return view.viewport.from==0?0:precise?null:posAtCoordsImprecise(view,content,block,x,y);if(lineStart>view.viewport.to)return view.viewport.to==view.state.doc.length?view.state.doc.length:precise?null:posAtCoordsImprecise(view,content,block,x,y);let doc2=view.dom.ownerDocument;let root=view.root.elementFromPoint?view.root:doc2;let element=root.elementFromPoint(x,y);if(element&&!view.contentDOM.contains(element))element=null;if(!element){x=Math.max(content.left+1,Math.min(content.right-1,x));element=root.elementFromPoint(x,y);if(element&&!view.contentDOM.contains(element))element=null;}let node,offset=-1;if(element&&((_a=view.docView.nearest(element))===null||_a===void 0?void 0:_a.isEditable)!=false){if(doc2.caretPositionFromPoint){let pos=doc2.caretPositionFromPoint(x,y);if(pos)({offsetNode:node,offset}=pos);}else if(doc2.caretRangeFromPoint){let range=doc2.caretRangeFromPoint(x,y);if(range){({startContainer:node,startOffset:offset}=range);if(!view.contentDOM.contains(node)||browser.safari&&isSuspiciousSafariCaretResult(node,offset,x)||browser.chrome&&isSuspiciousChromeCaretResult(node,offset,x))node=void 0;}}}if(!node||!view.docView.dom.contains(node)){let line=LineView.find(view.docView,lineStart);if(!line)return yOffset>block.top+block.height/2?block.to:block.from;({node,offset}=domPosAtCoords(line.dom,x,y));}let nearest=view.docView.nearest(node);if(!nearest)return null;if(nearest.isWidget&&((_b=nearest.dom)===null||_b===void 0?void 0:_b.nodeType)==1){let rect=nearest.dom.getBoundingClientRect();return coords.y<rect.top||coords.y<=rect.bottom&&coords.x<=(rect.left+rect.right)/2?nearest.posAtStart:nearest.posAtEnd;}else{return nearest.localPosFromDOM(node,offset)+nearest.posAtStart;}}function posAtCoordsImprecise(view,contentRect,block,x,y){let into=Math.round((x-contentRect.left)*view.defaultCharacterWidth);if(view.lineWrapping&&block.height>view.defaultLineHeight*1.5){let line=Math.floor((y-block.top)/view.defaultLineHeight);into+=line*view.viewState.heightOracle.lineLength;}let content=view.state.sliceDoc(block.from,block.to);return block.from+findColumn(content,into,view.state.tabSize);}function isSuspiciousSafariCaretResult(node,offset,x){let len;if(node.nodeType!=3||offset!=(len=node.nodeValue.length))return false;for(let next=node.nextSibling;next;next=next.nextSibling)if(next.nodeType!=1||next.nodeName!=\"BR\")return false;return textRange(node,len-1,len).getBoundingClientRect().left>x;}function isSuspiciousChromeCaretResult(node,offset,x){if(offset!=0)return false;for(let cur=node;;){let parent=cur.parentNode;if(!parent||parent.nodeType!=1||parent.firstChild!=cur)return false;if(parent.classList.contains(\"cm-line\"))break;cur=parent;}let rect=node.nodeType==1?node.getBoundingClientRect():textRange(node,0,Math.max(node.nodeValue.length,1)).getBoundingClientRect();return x-rect.left>5;}function blockAt(view,pos){let line=view.lineBlockAt(pos);if(Array.isArray(line.type))for(let l of line.type){if(l.to>pos||l.to==pos&&(l.to==line.to||l.type==BlockType.Text))return l;}return line;}function moveToLineBoundary(view,start,forward,includeWrap){let line=blockAt(view,start.head);let coords=!includeWrap||line.type!=BlockType.Text||!(view.lineWrapping||line.widgetLineBreaks)?null:view.coordsAtPos(start.assoc<0&&start.head>line.from?start.head-1:start.head);if(coords){let editorRect=view.dom.getBoundingClientRect();let direction=view.textDirectionAt(line.from);let pos=view.posAtCoords({x:forward==(direction==Direction.LTR)?editorRect.right-1:editorRect.left+1,y:(coords.top+coords.bottom)/2});if(pos!=null)return EditorSelection.cursor(pos,forward?-1:1);}return EditorSelection.cursor(forward?line.to:line.from,forward?-1:1);}function moveByChar(view,start,forward,by){let line=view.state.doc.lineAt(start.head),spans=view.bidiSpans(line);let direction=view.textDirectionAt(line.from);for(let cur=start,check=null;;){let next=moveVisually(line,spans,direction,cur,forward),char=movedOver;if(!next){if(line.number==(forward?view.state.doc.lines:1))return cur;char=\"\\n\";line=view.state.doc.line(line.number+(forward?1:-1));spans=view.bidiSpans(line);next=EditorSelection.cursor(forward?line.from:line.to);}if(!check){if(!by)return next;check=by(char);}else if(!check(char)){return cur;}cur=next;}}function byGroup(view,pos,start){let categorize=view.state.charCategorizer(pos);let cat=categorize(start);return next=>{let nextCat=categorize(next);if(cat==CharCategory.Space)cat=nextCat;return cat==nextCat;};}function moveVertically(view,start,forward,distance){let startPos=start.head,dir=forward?1:-1;if(startPos==(forward?view.state.doc.length:0))return EditorSelection.cursor(startPos,start.assoc);let goal=start.goalColumn,startY;let rect=view.contentDOM.getBoundingClientRect();let startCoords=view.coordsAtPos(startPos),docTop=view.documentTop;if(startCoords){if(goal==null)goal=startCoords.left-rect.left;startY=dir<0?startCoords.top:startCoords.bottom;}else{let line=view.viewState.lineBlockAt(startPos);if(goal==null)goal=Math.min(rect.right-rect.left,view.defaultCharacterWidth*(startPos-line.from));startY=(dir<0?line.top:line.bottom)+docTop;}let resolvedGoal=rect.left+goal;let dist=distance!==null&&distance!==void 0?distance:view.defaultLineHeight>>1;for(let extra=0;;extra+=10){let curY=startY+(dist+extra)*dir;let pos=posAtCoords(view,{x:resolvedGoal,y:curY},false,dir);if(curY<rect.top||curY>rect.bottom||(dir<0?pos<startPos:pos>startPos))return EditorSelection.cursor(pos,start.assoc,void 0,goal);}}function skipAtomicRanges(atoms,pos,bias){for(;;){let moved=0;for(let set of atoms){set.between(pos-1,pos+1,(from,to,value)=>{if(pos>from&&pos<to){let side=moved||bias||(pos-from<to-pos?-1:1);pos=side<0?from:to;moved=side;}});}if(!moved)return pos;}}function skipAtoms(view,oldPos,pos){let newPos=skipAtomicRanges(view.state.facet(atomicRanges).map(f=>f(view)),pos.from,oldPos.head>pos.from?-1:1);return newPos==pos.from?pos:EditorSelection.cursor(newPos,newPos<pos.from?1:-1);}var InputState=class{setSelectionOrigin(origin){this.lastSelectionOrigin=origin;this.lastSelectionTime=Date.now();}ensureHandlers(view,plugins){var _a;let handlers2;this.customHandlers=[];for(let plugin2 of plugins)if(handlers2=(_a=plugin2.update(view).spec)===null||_a===void 0?void 0:_a.domEventHandlers){this.customHandlers.push({plugin:plugin2.value,handlers:handlers2});for(let type in handlers2)if(this.registeredEvents.indexOf(type)<0&&type!=\"scroll\"){this.registeredEvents.push(type);view.contentDOM.addEventListener(type,event=>{if(!eventBelongsToEditor(view,event))return;if(this.runCustomHandlers(type,view,event))event.preventDefault();});}}}runCustomHandlers(type,view,event){for(let set of this.customHandlers){let handler=set.handlers[type];if(handler){try{if(handler.call(set.plugin,event,view)||event.defaultPrevented)return true;}catch(e){logException(view.state,e);}}}return false;}runScrollHandlers(view,event){this.lastScrollTop=view.scrollDOM.scrollTop;this.lastScrollLeft=view.scrollDOM.scrollLeft;for(let set of this.customHandlers){let handler=set.handlers.scroll;if(handler){try{handler.call(set.plugin,event,view);}catch(e){logException(view.state,e);}}}}keydown(view,event){this.lastKeyCode=event.keyCode;this.lastKeyTime=Date.now();if(event.keyCode==9&&Date.now()<this.lastEscPress+2e3)return true;if(event.keyCode!=27&&modifierCodes.indexOf(event.keyCode)<0)view.inputState.lastEscPress=0;if(browser.android&&browser.chrome&&!event.synthetic&&(event.keyCode==13||event.keyCode==8)){view.observer.delayAndroidKey(event.key,event.keyCode);return true;}let pending;if(browser.ios&&!event.synthetic&&!event.altKey&&!event.metaKey&&((pending=PendingKeys.find(key=>key.keyCode==event.keyCode))&&!event.ctrlKey||EmacsyPendingKeys.indexOf(event.key)>-1&&event.ctrlKey&&!event.shiftKey)){this.pendingIOSKey=pending||event;setTimeout(()=>this.flushIOSKey(view),250);return true;}return false;}flushIOSKey(view){let key=this.pendingIOSKey;if(!key)return false;this.pendingIOSKey=void 0;return dispatchKey(view.contentDOM,key.key,key.keyCode);}ignoreDuringComposition(event){if(!/^key/.test(event.type))return false;if(this.composing>0)return true;if(browser.safari&&!browser.ios&&this.compositionPendingKey&&Date.now()-this.compositionEndedAt<100){this.compositionPendingKey=false;return true;}return false;}mustFlushObserver(event){return event.type==\"keydown\"&&event.keyCode!=229;}startMouseSelection(mouseSelection){if(this.mouseSelection)this.mouseSelection.destroy();this.mouseSelection=mouseSelection;}update(update){if(this.mouseSelection)this.mouseSelection.update(update);if(update.transactions.length)this.lastKeyCode=this.lastSelectionTime=0;}destroy(){if(this.mouseSelection)this.mouseSelection.destroy();}constructor(view){this.lastKeyCode=0;this.lastKeyTime=0;this.lastTouchTime=0;this.lastFocusTime=0;this.lastScrollTop=0;this.lastScrollLeft=0;this.chromeScrollHack=-1;this.pendingIOSKey=void 0;this.lastSelectionOrigin=null;this.lastSelectionTime=0;this.lastEscPress=0;this.lastContextMenu=0;this.scrollHandlers=[];this.registeredEvents=[];this.customHandlers=[];this.composing=-1;this.compositionFirstChange=null;this.compositionEndedAt=0;this.compositionPendingKey=false;this.compositionPendingChange=false;this.mouseSelection=null;let handleEvent=(handler,event)=>{if(this.ignoreDuringComposition(event))return;if(event.type==\"keydown\"&&this.keydown(view,event))return;if(this.mustFlushObserver(event))view.observer.forceFlush();if(this.runCustomHandlers(event.type,view,event))event.preventDefault();else handler(view,event);};for(let type in handlers){let handler=handlers[type];view.contentDOM.addEventListener(type,event=>{if(eventBelongsToEditor(view,event))handleEvent(handler,event);},handlerOptions[type]);this.registeredEvents.push(type);}view.scrollDOM.addEventListener(\"mousedown\",event=>{if(event.target==view.scrollDOM&&event.clientY>view.contentDOM.getBoundingClientRect().bottom){handleEvent(handlers.mousedown,event);if(!event.defaultPrevented&&event.button==2){let start=view.contentDOM.style.minHeight;view.contentDOM.style.minHeight=\"100%\";setTimeout(()=>view.contentDOM.style.minHeight=start,200);}}});view.scrollDOM.addEventListener(\"drop\",event=>{if(event.target==view.scrollDOM&&event.clientY>view.contentDOM.getBoundingClientRect().bottom)handleEvent(handlers.drop,event);});if(browser.chrome&&browser.chrome_version==102){view.scrollDOM.addEventListener(\"wheel\",()=>{if(this.chromeScrollHack<0)view.contentDOM.style.pointerEvents=\"none\";else window.clearTimeout(this.chromeScrollHack);this.chromeScrollHack=setTimeout(()=>{this.chromeScrollHack=-1;view.contentDOM.style.pointerEvents=\"\";},100);},{passive:true});}this.notifiedFocused=view.hasFocus;if(browser.safari)view.contentDOM.addEventListener(\"input\",()=>null);}};var PendingKeys=[{key:\"Backspace\",keyCode:8,inputType:\"deleteContentBackward\"},{key:\"Enter\",keyCode:13,inputType:\"insertParagraph\"},{key:\"Delete\",keyCode:46,inputType:\"deleteContentForward\"},];var EmacsyPendingKeys=\"dthko\";var modifierCodes=[16,17,18,20,91,92,224,225];var dragScrollMargin=6;function dragScrollSpeed(dist){return Math.max(0,dist)*.7+8;}var MouseSelection=class{start(event){if(this.dragging===false){event.preventDefault();this.select(event);}}move(event){var _a;if(event.buttons==0)return this.destroy();if(this.dragging!==false)return;this.select(this.lastEvent=event);let sx=0,sy=0;let rect=((_a=this.scrollParent)===null||_a===void 0?void 0:_a.getBoundingClientRect())||{left:0,top:0,right:this.view.win.innerWidth,bottom:this.view.win.innerHeight};let margins=getScrollMargins(this.view);if(event.clientX-margins.left<=rect.left+dragScrollMargin)sx=-dragScrollSpeed(rect.left-event.clientX);else if(event.clientX+margins.right>=rect.right-dragScrollMargin)sx=dragScrollSpeed(event.clientX-rect.right);if(event.clientY-margins.top<=rect.top+dragScrollMargin)sy=-dragScrollSpeed(rect.top-event.clientY);else if(event.clientY+margins.bottom>=rect.bottom-dragScrollMargin)sy=dragScrollSpeed(event.clientY-rect.bottom);this.setScrollSpeed(sx,sy);}up(event){if(this.dragging==null)this.select(this.lastEvent);if(!this.dragging)event.preventDefault();this.destroy();}destroy(){this.setScrollSpeed(0,0);let doc2=this.view.contentDOM.ownerDocument;doc2.removeEventListener(\"mousemove\",this.move);doc2.removeEventListener(\"mouseup\",this.up);this.view.inputState.mouseSelection=null;}setScrollSpeed(sx,sy){this.scrollSpeed={x:sx,y:sy};if(sx||sy){if(this.scrolling<0)this.scrolling=setInterval(()=>this.scroll(),50);}else if(this.scrolling>-1){clearInterval(this.scrolling);this.scrolling=-1;}}scroll(){if(this.scrollParent){this.scrollParent.scrollLeft+=this.scrollSpeed.x;this.scrollParent.scrollTop+=this.scrollSpeed.y;}else{this.view.win.scrollBy(this.scrollSpeed.x,this.scrollSpeed.y);}if(this.dragging===false)this.select(this.lastEvent);}skipAtoms(sel){let ranges=null;for(let i=0;i<sel.ranges.length;i++){let range=sel.ranges[i],updated=null;if(range.empty){let pos=skipAtomicRanges(this.atoms,range.from,0);if(pos!=range.from)updated=EditorSelection.cursor(pos,-1);}else{let from=skipAtomicRanges(this.atoms,range.from,-1);let to=skipAtomicRanges(this.atoms,range.to,1);if(from!=range.from||to!=range.to)updated=EditorSelection.range(range.from==range.anchor?from:to,range.from==range.head?from:to);}if(updated){if(!ranges)ranges=sel.ranges.slice();ranges[i]=updated;}}return ranges?EditorSelection.create(ranges,sel.mainIndex):sel;}select(event){let{view}=this,selection=this.skipAtoms(this.style.get(event,this.extend,this.multiple));if(this.mustSelect||!selection.eq(view.state.selection)||selection.main.assoc!=view.state.selection.main.assoc)this.view.dispatch({selection,userEvent:\"select.pointer\"});this.mustSelect=false;}update(update){if(update.docChanged&&this.dragging)this.dragging=this.dragging.map(update.changes);if(this.style.update(update))setTimeout(()=>this.select(this.lastEvent),20);}constructor(view,startEvent,style,mustSelect){this.view=view;this.style=style;this.mustSelect=mustSelect;this.scrollSpeed={x:0,y:0};this.scrolling=-1;this.lastEvent=startEvent;this.scrollParent=scrollableParent(view.contentDOM);this.atoms=view.state.facet(atomicRanges).map(f=>f(view));let doc2=view.contentDOM.ownerDocument;doc2.addEventListener(\"mousemove\",this.move=this.move.bind(this));doc2.addEventListener(\"mouseup\",this.up=this.up.bind(this));this.extend=startEvent.shiftKey;this.multiple=view.state.facet(EditorState.allowMultipleSelections)&&addsSelectionRange(view,startEvent);this.dragMove=dragMovesSelection(view,startEvent);this.dragging=isInPrimarySelection(view,startEvent)&&getClickType(startEvent)==1?null:false;}};function addsSelectionRange(view,event){let facet=view.state.facet(clickAddsSelectionRange);return facet.length?facet[0](event):browser.mac?event.metaKey:event.ctrlKey;}function dragMovesSelection(view,event){let facet=view.state.facet(dragMovesSelection$1);return facet.length?facet[0](event):browser.mac?!event.altKey:!event.ctrlKey;}function isInPrimarySelection(view,event){let{main}=view.state.selection;if(main.empty)return false;let sel=getSelection(view.root);if(!sel||sel.rangeCount==0)return true;let rects=sel.getRangeAt(0).getClientRects();for(let i=0;i<rects.length;i++){let rect=rects[i];if(rect.left<=event.clientX&&rect.right>=event.clientX&&rect.top<=event.clientY&&rect.bottom>=event.clientY)return true;}return false;}function eventBelongsToEditor(view,event){if(!event.bubbles)return true;if(event.defaultPrevented)return false;for(let node=event.target,cView;node!=view.contentDOM;node=node.parentNode)if(!node||node.nodeType==11||(cView=ContentView.get(node))&&cView.ignoreEvent(event))return false;return true;}var handlers=/* @__PURE__ */ Object.create(null);var handlerOptions=/* @__PURE__ */ Object.create(null);var brokenClipboardAPI=browser.ie&&browser.ie_version<15||browser.ios&&browser.webkit_version<604;function capturePaste(view){let parent=view.dom.parentNode;if(!parent)return;let target=parent.appendChild(document.createElement(\"textarea\"));target.style.cssText=\"position: fixed; left: -10000px; top: 10px\";target.focus();setTimeout(()=>{view.focus();target.remove();doPaste(view,target.value);},50);}function doPaste(view,input){let{state}=view,changes,i=1,text=state.toText(input);let byLine=text.lines==state.selection.ranges.length;let linewise=lastLinewiseCopy!=null&&state.selection.ranges.every(r=>r.empty)&&lastLinewiseCopy==text.toString();if(linewise){let lastLine=-1;changes=state.changeByRange(range=>{let line=state.doc.lineAt(range.from);if(line.from==lastLine)return{range};lastLine=line.from;let insert=state.toText((byLine?text.line(i++).text:input)+state.lineBreak);return{changes:{from:line.from,insert},range:EditorSelection.cursor(range.from+insert.length)};});}else if(byLine){changes=state.changeByRange(range=>{let line=text.line(i++);return{changes:{from:range.from,to:range.to,insert:line.text},range:EditorSelection.cursor(range.from+line.length)};});}else{changes=state.replaceSelection(text);}view.dispatch(changes,{userEvent:\"input.paste\",scrollIntoView:true});}handlers.keydown=(view,event)=>{view.inputState.setSelectionOrigin(\"select\");if(event.keyCode==27)view.inputState.lastEscPress=Date.now();};handlers.touchstart=(view,e)=>{view.inputState.lastTouchTime=Date.now();view.inputState.setSelectionOrigin(\"select.pointer\");};handlers.touchmove=view=>{view.inputState.setSelectionOrigin(\"select.pointer\");};handlerOptions.touchstart=handlerOptions.touchmove={passive:true};handlers.mousedown=(view,event)=>{view.observer.flush();if(view.inputState.lastTouchTime>Date.now()-2e3)return;let style=null;for(let makeStyle of view.state.facet(mouseSelectionStyle)){style=makeStyle(view,event);if(style)break;}if(!style&&event.button==0)style=basicMouseSelection(view,event);if(style){let mustFocus=view.root.activeElement!=view.contentDOM;view.inputState.startMouseSelection(new MouseSelection(view,event,style,mustFocus));if(mustFocus)view.observer.ignore(()=>focusPreventScroll(view.contentDOM));if(view.inputState.mouseSelection)view.inputState.mouseSelection.start(event);}};function rangeForClick(view,pos,bias,type){if(type==1){return EditorSelection.cursor(pos,bias);}else if(type==2){return groupAt(view.state,pos,bias);}else{let visual=LineView.find(view.docView,pos),line=view.state.doc.lineAt(visual?visual.posAtEnd:pos);let from=visual?visual.posAtStart:line.from,to=visual?visual.posAtEnd:line.to;if(to<view.state.doc.length&&to==line.to)to++;return EditorSelection.range(from,to);}}var insideY=(y,rect)=>y>=rect.top&&y<=rect.bottom;var inside=(x,y,rect)=>insideY(y,rect)&&x>=rect.left&&x<=rect.right;function findPositionSide(view,pos,x,y){let line=LineView.find(view.docView,pos);if(!line)return 1;let off=pos-line.posAtStart;if(off==0)return 1;if(off==line.length)return-1;let before=line.coordsAt(off,-1);if(before&&inside(x,y,before))return-1;let after=line.coordsAt(off,1);if(after&&inside(x,y,after))return 1;return before&&insideY(y,before)?-1:1;}function queryPos(view,event){let pos=view.posAtCoords({x:event.clientX,y:event.clientY},false);return{pos,bias:findPositionSide(view,pos,event.clientX,event.clientY)};}var BadMouseDetail=browser.ie&&browser.ie_version<=11;var lastMouseDown=null;var lastMouseDownCount=0;var lastMouseDownTime=0;function getClickType(event){if(!BadMouseDetail)return event.detail;let last=lastMouseDown,lastTime=lastMouseDownTime;lastMouseDown=event;lastMouseDownTime=Date.now();return lastMouseDownCount=!last||lastTime>Date.now()-400&&Math.abs(last.clientX-event.clientX)<2&&Math.abs(last.clientY-event.clientY)<2?(lastMouseDownCount+1)%3:1;}function basicMouseSelection(view,event){let start=queryPos(view,event),type=getClickType(event);let startSel=view.state.selection;return{update(update){if(update.docChanged){start.pos=update.changes.mapPos(start.pos);startSel=startSel.map(update.changes);}},get(event2,extend,multiple){let cur=queryPos(view,event2),removed;let range=rangeForClick(view,cur.pos,cur.bias,type);if(start.pos!=cur.pos&&!extend){let startRange=rangeForClick(view,start.pos,start.bias,type);let from=Math.min(startRange.from,range.from),to=Math.max(startRange.to,range.to);range=from<range.from?EditorSelection.range(from,to):EditorSelection.range(to,from);}if(extend)return startSel.replaceRange(startSel.main.extend(range.from,range.to));else if(multiple&&type==1&&startSel.ranges.length>1&&(removed=removeRangeAround(startSel,cur.pos)))return removed;else if(multiple)return startSel.addRange(range);else return EditorSelection.create([range]);}};}function removeRangeAround(sel,pos){for(let i=0;i<sel.ranges.length;i++){let{from,to}=sel.ranges[i];if(from<=pos&&to>=pos)return EditorSelection.create(sel.ranges.slice(0,i).concat(sel.ranges.slice(i+1)),sel.mainIndex==i?0:sel.mainIndex-(sel.mainIndex>i?1:0));}return null;}handlers.dragstart=(view,event)=>{let{selection:{main}}=view.state;let{mouseSelection}=view.inputState;if(mouseSelection)mouseSelection.dragging=main;if(event.dataTransfer){event.dataTransfer.setData(\"Text\",view.state.sliceDoc(main.from,main.to));event.dataTransfer.effectAllowed=\"copyMove\";}};function dropText(view,event,text,direct){if(!text)return;let dropPos=view.posAtCoords({x:event.clientX,y:event.clientY},false);event.preventDefault();let{mouseSelection}=view.inputState;let del=direct&&mouseSelection&&mouseSelection.dragging&&mouseSelection.dragMove?{from:mouseSelection.dragging.from,to:mouseSelection.dragging.to}:null;let ins={from:dropPos,insert:text};let changes=view.state.changes(del?[del,ins]:ins);view.focus();view.dispatch({changes,selection:{anchor:changes.mapPos(dropPos,-1),head:changes.mapPos(dropPos,1)},userEvent:del?\"move.drop\":\"input.drop\"});}handlers.drop=(view,event)=>{if(!event.dataTransfer)return;if(view.state.readOnly)return event.preventDefault();let files=event.dataTransfer.files;if(files&&files.length){event.preventDefault();let text=Array(files.length),read=0;let finishFile=()=>{if(++read==files.length)dropText(view,event,text.filter(s=>s!=null).join(view.state.lineBreak),false);};for(let i=0;i<files.length;i++){let reader=new FileReader;reader.onerror=finishFile;reader.onload=()=>{if(!/[\\x00-\\x08\\x0e-\\x1f]{2}/.test(reader.result))text[i]=reader.result;finishFile();};reader.readAsText(files[i]);}}else{dropText(view,event,event.dataTransfer.getData(\"Text\"),true);}};handlers.paste=(view,event)=>{if(view.state.readOnly)return event.preventDefault();view.observer.flush();let data=brokenClipboardAPI?null:event.clipboardData;if(data){doPaste(view,data.getData(\"text/plain\")||data.getData(\"text/uri-text\"));event.preventDefault();}else{capturePaste(view);}};function captureCopy(view,text){let parent=view.dom.parentNode;if(!parent)return;let target=parent.appendChild(document.createElement(\"textarea\"));target.style.cssText=\"position: fixed; left: -10000px; top: 10px\";target.value=text;target.focus();target.selectionEnd=text.length;target.selectionStart=0;setTimeout(()=>{target.remove();view.focus();},50);}function copiedRange(state){let content=[],ranges=[],linewise=false;for(let range of state.selection.ranges)if(!range.empty){content.push(state.sliceDoc(range.from,range.to));ranges.push(range);}if(!content.length){let upto=-1;for(let{from}of state.selection.ranges){let line=state.doc.lineAt(from);if(line.number>upto){content.push(line.text);ranges.push({from:line.from,to:Math.min(state.doc.length,line.to+1)});}upto=line.number;}linewise=true;}return{text:content.join(state.lineBreak),ranges,linewise};}var lastLinewiseCopy=null;handlers.copy=handlers.cut=(view,event)=>{let{text,ranges,linewise}=copiedRange(view.state);if(!text&&!linewise)return;lastLinewiseCopy=linewise?text:null;let data=brokenClipboardAPI?null:event.clipboardData;if(data){event.preventDefault();data.clearData();data.setData(\"text/plain\",text);}else{captureCopy(view,text);}if(event.type==\"cut\"&&!view.state.readOnly)view.dispatch({changes:ranges,scrollIntoView:true,userEvent:\"delete.cut\"});};var isFocusChange=/* @__PURE__ */ Annotation.define();function focusChangeTransaction(state,focus){let effects=[];for(let getEffect of state.facet(focusChangeEffect)){let effect=getEffect(state,focus);if(effect)effects.push(effect);}return effects?state.update({effects,annotations:isFocusChange.of(true)}):null;}function updateForFocusChange(view){setTimeout(()=>{let focus=view.hasFocus;if(focus!=view.inputState.notifiedFocused){let tr=focusChangeTransaction(view.state,focus);if(tr)view.dispatch(tr);else view.update([]);}},10);}handlers.focus=view=>{view.inputState.lastFocusTime=Date.now();if(!view.scrollDOM.scrollTop&&(view.inputState.lastScrollTop||view.inputState.lastScrollLeft)){view.scrollDOM.scrollTop=view.inputState.lastScrollTop;view.scrollDOM.scrollLeft=view.inputState.lastScrollLeft;}updateForFocusChange(view);};handlers.blur=view=>{view.observer.clearSelectionRange();updateForFocusChange(view);};handlers.compositionstart=handlers.compositionupdate=view=>{if(view.inputState.compositionFirstChange==null)view.inputState.compositionFirstChange=true;if(view.inputState.composing<0){view.inputState.composing=0;}};handlers.compositionend=view=>{view.inputState.composing=-1;view.inputState.compositionEndedAt=Date.now();view.inputState.compositionPendingKey=true;view.inputState.compositionPendingChange=view.observer.pendingRecords().length>0;view.inputState.compositionFirstChange=null;if(browser.chrome&&browser.android){view.observer.flushSoon();}else if(view.inputState.compositionPendingChange){Promise.resolve().then(()=>view.observer.flush());}else{setTimeout(()=>{if(view.inputState.composing<0&&view.docView.compositionDeco.size)view.update([]);},50);}};handlers.contextmenu=view=>{view.inputState.lastContextMenu=Date.now();};handlers.beforeinput=(view,event)=>{var _a;let pending;if(browser.chrome&&browser.android&&(pending=PendingKeys.find(key=>key.inputType==event.inputType))){view.observer.delayAndroidKey(pending.key,pending.keyCode);if(pending.key==\"Backspace\"||pending.key==\"Delete\"){let startViewHeight=((_a=window.visualViewport)===null||_a===void 0?void 0:_a.height)||0;setTimeout(()=>{var _a2;if((((_a2=window.visualViewport)===null||_a2===void 0?void 0:_a2.height)||0)>startViewHeight+10&&view.hasFocus){view.contentDOM.blur();view.focus();}},100);}}};var wrappingWhiteSpace=[\"pre-wrap\",\"normal\",\"pre-line\",\"break-spaces\"];var HeightOracle=class{heightForGap(from,to){let lines=this.doc.lineAt(to).number-this.doc.lineAt(from).number+1;if(this.lineWrapping)lines+=Math.max(0,Math.ceil((to-from-lines*this.lineLength*.5)/this.lineLength));return this.lineHeight*lines;}heightForLine(length){if(!this.lineWrapping)return this.lineHeight;let lines=1+Math.max(0,Math.ceil((length-this.lineLength)/(this.lineLength-5)));return lines*this.lineHeight;}setDoc(doc2){this.doc=doc2;return this;}mustRefreshForWrapping(whiteSpace){return wrappingWhiteSpace.indexOf(whiteSpace)>-1!=this.lineWrapping;}mustRefreshForHeights(lineHeights){let newHeight=false;for(let i=0;i<lineHeights.length;i++){let h=lineHeights[i];if(h<0){i++;}else if(!this.heightSamples[Math.floor(h*10)]){newHeight=true;this.heightSamples[Math.floor(h*10)]=true;}}return newHeight;}refresh(whiteSpace,lineHeight,charWidth,textHeight,lineLength,knownHeights){let lineWrapping=wrappingWhiteSpace.indexOf(whiteSpace)>-1;let changed=Math.round(lineHeight)!=Math.round(this.lineHeight)||this.lineWrapping!=lineWrapping;this.lineWrapping=lineWrapping;this.lineHeight=lineHeight;this.charWidth=charWidth;this.textHeight=textHeight;this.lineLength=lineLength;if(changed){this.heightSamples={};for(let i=0;i<knownHeights.length;i++){let h=knownHeights[i];if(h<0)i++;else this.heightSamples[Math.floor(h*10)]=true;}}return changed;}constructor(lineWrapping){this.lineWrapping=lineWrapping;this.doc=Text.empty;this.heightSamples={};this.lineHeight=14;this.charWidth=7;this.textHeight=14;this.lineLength=30;this.heightChanged=false;}};var MeasuredHeights=class{get more(){return this.index<this.heights.length;}constructor(from,heights){this.from=from;this.heights=heights;this.index=0;}};var BlockInfo=class{/**\n  The type of element this is. When querying lines, this may be\n  an array of all the blocks that make up the line.\n  */ get type(){return typeof this._content==\"number\"?BlockType.Text:Array.isArray(this._content)?this._content:this._content.type;}/**\n  The end of the element as a document position.\n  */ get to(){return this.from+this.length;}/**\n  The bottom position of the element.\n  */ get bottom(){return this.top+this.height;}/**\n  If this is a widget block, this will return the widget\n  associated with it.\n  */ get widget(){return this._content instanceof PointDecoration?this._content.widget:null;}/**\n  If this is a textblock, this holds the number of line breaks\n  that appear in widgets inside the block.\n  */ get widgetLineBreaks(){return typeof this._content==\"number\"?this._content:0;}/**\n  @internal\n  */ join(other){let content=(Array.isArray(this._content)?this._content:[this]).concat(Array.isArray(other._content)?other._content:[other]);return new BlockInfo(this.from,this.length+other.length,this.top,this.height+other.height,content);}/**\n  @internal\n  */ constructor(from,length,top2,height,_content){this.from=from;this.length=length;this.top=top2;this.height=height;this._content=_content;}};var QueryType=/* @__PURE__ */ function(QueryType2){QueryType2[QueryType2[\"ByPos\"]=0]=\"ByPos\";QueryType2[QueryType2[\"ByHeight\"]=1]=\"ByHeight\";QueryType2[QueryType2[\"ByPosNoHeight\"]=2]=\"ByPosNoHeight\";return QueryType2;}(QueryType||(QueryType={}));var Epsilon=.001;var HeightMap=class{get outdated(){return(this.flags&2)>0;}set outdated(value){this.flags=(value?2:0)|this.flags&~2;}setHeight(oracle,height){if(this.height!=height){if(Math.abs(this.height-height)>Epsilon)oracle.heightChanged=true;this.height=height;}}// Base case is to replace a leaf node, which simply builds a tree\n// from the new nodes and returns that (HeightMapBranch and\n// HeightMapGap override this to actually use from/to)\nreplace(_from,_to,nodes){return HeightMap.of(nodes);}// Again, these are base cases, and are overridden for branch and gap nodes.\ndecomposeLeft(_to,result){result.push(this);}decomposeRight(_from,result){result.push(this);}applyChanges(decorations2,oldDoc,oracle,changes){let me=this,doc2=oracle.doc;for(let i=changes.length-1;i>=0;i--){let{fromA,toA,fromB,toB}=changes[i];let start=me.lineAt(fromA,QueryType.ByPosNoHeight,oracle.setDoc(oldDoc),0,0);let end=start.to>=toA?start:me.lineAt(toA,QueryType.ByPosNoHeight,oracle,0,0);toB+=end.to-toA;toA=end.to;while(i>0&&start.from<=changes[i-1].toA){fromA=changes[i-1].fromA;fromB=changes[i-1].fromB;i--;if(fromA<start.from)start=me.lineAt(fromA,QueryType.ByPosNoHeight,oracle,0,0);}fromB+=start.from-fromA;fromA=start.from;let nodes=NodeBuilder.build(oracle.setDoc(doc2),decorations2,fromB,toB);me=me.replace(fromA,toA,nodes);}return me.updateHeight(oracle,0);}static empty(){return new HeightMapText(0,0);}// nodes uses null values to indicate the position of line breaks.\n// There are never line breaks at the start or end of the array, or\n// two line breaks next to each other, and the array isn't allowed\n// to be empty (same restrictions as return value from the builder).\nstatic of(nodes){if(nodes.length==1)return nodes[0];let i=0,j=nodes.length,before=0,after=0;for(;;){if(i==j){if(before>after*2){let split=nodes[i-1];if(split.break)nodes.splice(--i,1,split.left,null,split.right);else nodes.splice(--i,1,split.left,split.right);j+=1+split.break;before-=split.size;}else if(after>before*2){let split1=nodes[j];if(split1.break)nodes.splice(j,1,split1.left,null,split1.right);else nodes.splice(j,1,split1.left,split1.right);j+=2+split1.break;after-=split1.size;}else{break;}}else if(before<after){let next=nodes[i++];if(next)before+=next.size;}else{let next1=nodes[--j];if(next1)after+=next1.size;}}let brk=0;if(nodes[i-1]==null){brk=1;i--;}else if(nodes[i]==null){brk=1;j++;}return new HeightMapBranch(HeightMap.of(nodes.slice(0,i)),brk,HeightMap.of(nodes.slice(j)));}constructor(length,height,flags=2){this.length=length;this.height=height;this.flags=flags;}};HeightMap.prototype.size=1;var HeightMapBlock=class extends HeightMap{blockAt(_height,_oracle,top2,offset){return new BlockInfo(offset,this.length,top2,this.height,this.deco||0);}lineAt(_value,_type,oracle,top2,offset){return this.blockAt(0,oracle,top2,offset);}forEachLine(from,to,oracle,top2,offset,f){if(from<=offset+this.length&&to>=offset)f(this.blockAt(0,oracle,top2,offset));}updateHeight(oracle,offset=0,_force=false,measured){if(measured&&measured.from<=offset&&measured.more)this.setHeight(oracle,measured.heights[measured.index++]);this.outdated=false;return this;}toString(){return`block(${this.length})`;}constructor(length,height,deco){super(length,height);this.deco=deco;}};var HeightMapText=class extends HeightMapBlock{blockAt(_height,_oracle,top2,offset){return new BlockInfo(offset,this.length,top2,this.height,this.breaks);}replace(_from,_to,nodes){let node=nodes[0];if(nodes.length==1&&(node instanceof HeightMapText||node instanceof HeightMapGap&&node.flags&4)&&Math.abs(this.length-node.length)<10){if(node instanceof HeightMapGap)node=new HeightMapText(node.length,this.height);else node.height=this.height;if(!this.outdated)node.outdated=false;return node;}else{return HeightMap.of(nodes);}}updateHeight(oracle,offset=0,force=false,measured){if(measured&&measured.from<=offset&&measured.more)this.setHeight(oracle,measured.heights[measured.index++]);else if(force||this.outdated)this.setHeight(oracle,Math.max(this.widgetHeight,oracle.heightForLine(this.length-this.collapsed))+this.breaks*oracle.lineHeight);this.outdated=false;return this;}toString(){return`line(${this.length}${this.collapsed?-this.collapsed:\"\"}${this.widgetHeight?\":\"+this.widgetHeight:\"\"})`;}constructor(length,height){super(length,height,null);this.collapsed=0;this.widgetHeight=0;this.breaks=0;}};var HeightMapGap=class extends HeightMap{heightMetrics(oracle,offset){let firstLine=oracle.doc.lineAt(offset).number,lastLine=oracle.doc.lineAt(offset+this.length).number;let lines=lastLine-firstLine+1;let perLine,perChar=0;if(oracle.lineWrapping){let totalPerLine=Math.min(this.height,oracle.lineHeight*lines);perLine=totalPerLine/lines;if(this.length>lines+1)perChar=(this.height-totalPerLine)/(this.length-lines-1);}else{perLine=this.height/lines;}return{firstLine,lastLine,perLine,perChar};}blockAt(height,oracle,top2,offset){let{firstLine,lastLine,perLine,perChar}=this.heightMetrics(oracle,offset);if(oracle.lineWrapping){let guess=offset+Math.round(Math.max(0,Math.min(1,(height-top2)/this.height))*this.length);let line=oracle.doc.lineAt(guess),lineHeight=perLine+line.length*perChar;let lineTop=Math.max(top2,height-lineHeight/2);return new BlockInfo(line.from,line.length,lineTop,lineHeight,0);}else{let line1=Math.max(0,Math.min(lastLine-firstLine,Math.floor((height-top2)/perLine)));let{from,length}=oracle.doc.line(firstLine+line1);return new BlockInfo(from,length,top2+perLine*line1,perLine,0);}}lineAt(value,type,oracle,top2,offset){if(type==QueryType.ByHeight)return this.blockAt(value,oracle,top2,offset);if(type==QueryType.ByPosNoHeight){let{from,to}=oracle.doc.lineAt(value);return new BlockInfo(from,to-from,0,0,0);}let{firstLine,perLine,perChar}=this.heightMetrics(oracle,offset);let line=oracle.doc.lineAt(value),lineHeight=perLine+line.length*perChar;let linesAbove=line.number-firstLine;let lineTop=top2+perLine*linesAbove+perChar*(line.from-offset-linesAbove);return new BlockInfo(line.from,line.length,Math.max(top2,Math.min(lineTop,top2+this.height-lineHeight)),lineHeight,0);}forEachLine(from,to,oracle,top2,offset,f){from=Math.max(from,offset);to=Math.min(to,offset+this.length);let{firstLine,perLine,perChar}=this.heightMetrics(oracle,offset);for(let pos=from,lineTop=top2;pos<=to;){let line=oracle.doc.lineAt(pos);if(pos==from){let linesAbove=line.number-firstLine;lineTop+=perLine*linesAbove+perChar*(from-offset-linesAbove);}let lineHeight=perLine+perChar*line.length;f(new BlockInfo(line.from,line.length,lineTop,lineHeight,0));lineTop+=lineHeight;pos=line.to+1;}}replace(from,to,nodes){let after=this.length-to;if(after>0){let last=nodes[nodes.length-1];if(last instanceof HeightMapGap)nodes[nodes.length-1]=new HeightMapGap(last.length+after);else nodes.push(null,new HeightMapGap(after-1));}if(from>0){let first=nodes[0];if(first instanceof HeightMapGap)nodes[0]=new HeightMapGap(from+first.length);else nodes.unshift(new HeightMapGap(from-1),null);}return HeightMap.of(nodes);}decomposeLeft(to,result){result.push(new HeightMapGap(to-1),null);}decomposeRight(from,result){result.push(null,new HeightMapGap(this.length-from-1));}updateHeight(oracle,offset=0,force=false,measured){let end=offset+this.length;if(measured&&measured.from<=offset+this.length&&measured.more){let nodes=[],pos=Math.max(offset,measured.from),singleHeight=-1;if(measured.from>offset)nodes.push(new HeightMapGap(measured.from-offset-1).updateHeight(oracle,offset));while(pos<=end&&measured.more){let len=oracle.doc.lineAt(pos).length;if(nodes.length)nodes.push(null);let height=measured.heights[measured.index++];if(singleHeight==-1)singleHeight=height;else if(Math.abs(height-singleHeight)>=Epsilon)singleHeight=-2;let line=new HeightMapText(len,height);line.outdated=false;nodes.push(line);pos+=len+1;}if(pos<=end)nodes.push(null,new HeightMapGap(end-pos).updateHeight(oracle,pos));let result=HeightMap.of(nodes);if(singleHeight<0||Math.abs(result.height-this.height)>=Epsilon||Math.abs(singleHeight-this.heightMetrics(oracle,offset).perLine)>=Epsilon)oracle.heightChanged=true;return result;}else if(force||this.outdated){this.setHeight(oracle,oracle.heightForGap(offset,offset+this.length));this.outdated=false;}return this;}toString(){return`gap(${this.length})`;}constructor(length){super(length,0);}};var HeightMapBranch=class extends HeightMap{get break(){return this.flags&1;}blockAt(height,oracle,top2,offset){let mid=top2+this.left.height;return height<mid?this.left.blockAt(height,oracle,top2,offset):this.right.blockAt(height,oracle,mid,offset+this.left.length+this.break);}lineAt(value,type,oracle,top2,offset){let rightTop=top2+this.left.height,rightOffset=offset+this.left.length+this.break;let left=type==QueryType.ByHeight?value<rightTop:value<rightOffset;let base2=left?this.left.lineAt(value,type,oracle,top2,offset):this.right.lineAt(value,type,oracle,rightTop,rightOffset);if(this.break||(left?base2.to<rightOffset:base2.from>rightOffset))return base2;let subQuery=type==QueryType.ByPosNoHeight?QueryType.ByPosNoHeight:QueryType.ByPos;if(left)return base2.join(this.right.lineAt(rightOffset,subQuery,oracle,rightTop,rightOffset));else return this.left.lineAt(rightOffset,subQuery,oracle,top2,offset).join(base2);}forEachLine(from,to,oracle,top2,offset,f){let rightTop=top2+this.left.height,rightOffset=offset+this.left.length+this.break;if(this.break){if(from<rightOffset)this.left.forEachLine(from,to,oracle,top2,offset,f);if(to>=rightOffset)this.right.forEachLine(from,to,oracle,rightTop,rightOffset,f);}else{let mid=this.lineAt(rightOffset,QueryType.ByPos,oracle,top2,offset);if(from<mid.from)this.left.forEachLine(from,mid.from-1,oracle,top2,offset,f);if(mid.to>=from&&mid.from<=to)f(mid);if(to>mid.to)this.right.forEachLine(mid.to+1,to,oracle,rightTop,rightOffset,f);}}replace(from,to,nodes){let rightStart=this.left.length+this.break;if(to<rightStart)return this.balanced(this.left.replace(from,to,nodes),this.right);if(from>this.left.length)return this.balanced(this.left,this.right.replace(from-rightStart,to-rightStart,nodes));let result=[];if(from>0)this.decomposeLeft(from,result);let left=result.length;for(let node of nodes)result.push(node);if(from>0)mergeGaps(result,left-1);if(to<this.length){let right=result.length;this.decomposeRight(to,result);mergeGaps(result,right);}return HeightMap.of(result);}decomposeLeft(to,result){let left=this.left.length;if(to<=left)return this.left.decomposeLeft(to,result);result.push(this.left);if(this.break){left++;if(to>=left)result.push(null);}if(to>left)this.right.decomposeLeft(to-left,result);}decomposeRight(from,result){let left=this.left.length,right=left+this.break;if(from>=right)return this.right.decomposeRight(from-right,result);if(from<left)this.left.decomposeRight(from,result);if(this.break&&from<right)result.push(null);result.push(this.right);}balanced(left,right){if(left.size>2*right.size||right.size>2*left.size)return HeightMap.of(this.break?[left,null,right]:[left,right]);this.left=left;this.right=right;this.height=left.height+right.height;this.outdated=left.outdated||right.outdated;this.size=left.size+right.size;this.length=left.length+this.break+right.length;return this;}updateHeight(oracle,offset=0,force=false,measured){let{left,right}=this,rightStart=offset+left.length+this.break,rebalance=null;if(measured&&measured.from<=offset+left.length&&measured.more)rebalance=left=left.updateHeight(oracle,offset,force,measured);else left.updateHeight(oracle,offset,force);if(measured&&measured.from<=rightStart+right.length&&measured.more)rebalance=right=right.updateHeight(oracle,rightStart,force,measured);else right.updateHeight(oracle,rightStart,force);if(rebalance)return this.balanced(left,right);this.height=this.left.height+this.right.height;this.outdated=false;return this;}toString(){return this.left+(this.break?\" \":\"-\")+this.right;}constructor(left,brk,right){super(left.length+brk+right.length,left.height+right.height,brk|(left.outdated||right.outdated?2:0));this.left=left;this.right=right;this.size=left.size+right.size;}};function mergeGaps(nodes,around){let before,after;if(nodes[around]==null&&(before=nodes[around-1])instanceof HeightMapGap&&(after=nodes[around+1])instanceof HeightMapGap)nodes.splice(around-1,3,new HeightMapGap(before.length+1+after.length));}var relevantWidgetHeight=5;var NodeBuilder=class{get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering;}span(_from,to){if(this.lineStart>-1){let end=Math.min(to,this.lineEnd),last=this.nodes[this.nodes.length-1];if(last instanceof HeightMapText)last.length+=end-this.pos;else if(end>this.pos||!this.isCovered)this.nodes.push(new HeightMapText(end-this.pos,-1));this.writtenTo=end;if(to>end){this.nodes.push(null);this.writtenTo++;this.lineStart=-1;}}this.pos=to;}point(from,to,deco){if(from<to||deco.heightRelevant){let height=deco.widget?deco.widget.estimatedHeight:0;let breaks=deco.widget?deco.widget.lineBreaks:0;if(height<0)height=this.oracle.lineHeight;let len=to-from;if(deco.block){this.addBlock(new HeightMapBlock(len,height,deco));}else if(len||breaks||height>=relevantWidgetHeight){this.addLineDeco(height,breaks,len);}}else if(to>from){this.span(from,to);}if(this.lineEnd>-1&&this.lineEnd<this.pos)this.lineEnd=this.oracle.doc.lineAt(this.pos).to;}enterLine(){if(this.lineStart>-1)return;let{from,to}=this.oracle.doc.lineAt(this.pos);this.lineStart=from;this.lineEnd=to;if(this.writtenTo<from){if(this.writtenTo<from-1||this.nodes[this.nodes.length-1]==null)this.nodes.push(this.blankContent(this.writtenTo,from-1));this.nodes.push(null);}if(this.pos>from)this.nodes.push(new HeightMapText(this.pos-from,-1));this.writtenTo=this.pos;}blankContent(from,to){let gap=new HeightMapGap(to-from);if(this.oracle.doc.lineAt(from).to==to)gap.flags|=4;return gap;}ensureLine(){this.enterLine();let last=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(last instanceof HeightMapText)return last;let line=new HeightMapText(0,-1);this.nodes.push(line);return line;}addBlock(block){var _a;this.enterLine();let type=(_a=block.deco)===null||_a===void 0?void 0:_a.type;if(type==BlockType.WidgetAfter&&!this.isCovered)this.ensureLine();this.nodes.push(block);this.writtenTo=this.pos=this.pos+block.length;if(type!=BlockType.WidgetBefore)this.covering=block;}addLineDeco(height,breaks,length){let line=this.ensureLine();line.length+=length;line.collapsed+=length;line.widgetHeight=Math.max(line.widgetHeight,height);line.breaks+=breaks;this.writtenTo=this.pos=this.pos+length;}finish(from){let last=this.nodes.length==0?null:this.nodes[this.nodes.length-1];if(this.lineStart>-1&&!(last instanceof HeightMapText)&&!this.isCovered)this.nodes.push(new HeightMapText(0,-1));else if(this.writtenTo<this.pos||last==null)this.nodes.push(this.blankContent(this.writtenTo,this.pos));let pos=from;for(let node of this.nodes){if(node instanceof HeightMapText)node.updateHeight(this.oracle,pos);pos+=node?node.length:1;}return this.nodes;}// Always called with a region that on both sides either stretches\n// to a line break or the end of the document.\n// The returned array uses null to indicate line breaks, but never\n// starts or ends in a line break, or has multiple line breaks next\n// to each other.\nstatic build(oracle,decorations2,from,to){let builder=new NodeBuilder(from,oracle);RangeSet.spans(decorations2,from,to,builder,0);return builder.finish(from);}constructor(pos,oracle){this.pos=pos;this.oracle=oracle;this.nodes=[];this.lineStart=-1;this.lineEnd=-1;this.covering=null;this.writtenTo=pos;}};function heightRelevantDecoChanges(a,b,diff){let comp=new DecorationComparator;RangeSet.compare(a,b,diff,comp,0);return comp.changes;}var DecorationComparator=class{compareRange(){}comparePoint(from,to,a,b){if(from<to||a&&a.heightRelevant||b&&b.heightRelevant)addRange(from,to,this.changes,5);}constructor(){this.changes=[];}};function visiblePixelRange(dom,paddingTop){let rect=dom.getBoundingClientRect();let doc2=dom.ownerDocument,win=doc2.defaultView||window;let left=Math.max(0,rect.left),right=Math.min(win.innerWidth,rect.right);let top2=Math.max(0,rect.top),bottom=Math.min(win.innerHeight,rect.bottom);for(let parent=dom.parentNode;parent&&parent!=doc2.body;){if(parent.nodeType==1){let elt=parent;let style=window.getComputedStyle(elt);if((elt.scrollHeight>elt.clientHeight||elt.scrollWidth>elt.clientWidth)&&style.overflow!=\"visible\"){let parentRect=elt.getBoundingClientRect();left=Math.max(left,parentRect.left);right=Math.min(right,parentRect.right);top2=Math.max(top2,parentRect.top);bottom=parent==dom.parentNode?parentRect.bottom:Math.min(bottom,parentRect.bottom);}parent=style.position==\"absolute\"||style.position==\"fixed\"?elt.offsetParent:elt.parentNode;}else if(parent.nodeType==11){parent=parent.host;}else{break;}}return{left:left-rect.left,right:Math.max(left,right)-rect.left,top:top2-(rect.top+paddingTop),bottom:Math.max(top2,bottom)-(rect.top+paddingTop)};}function fullPixelRange(dom,paddingTop){let rect=dom.getBoundingClientRect();return{left:0,right:rect.right-rect.left,top:paddingTop,bottom:rect.bottom-(rect.top+paddingTop)};}var LineGap=class{static same(a,b){if(a.length!=b.length)return false;for(let i=0;i<a.length;i++){let gA=a[i],gB=b[i];if(gA.from!=gB.from||gA.to!=gB.to||gA.size!=gB.size)return false;}return true;}draw(wrapping){return Decoration.replace({widget:new LineGapWidget(this.size,wrapping)}).range(this.from,this.to);}constructor(from,to,size){this.from=from;this.to=to;this.size=size;}};var LineGapWidget=class extends WidgetType{eq(other){return other.size==this.size&&other.vertical==this.vertical;}toDOM(){let elt=document.createElement(\"div\");if(this.vertical){elt.style.height=this.size+\"px\";}else{elt.style.width=this.size+\"px\";elt.style.height=\"2px\";elt.style.display=\"inline-block\";}return elt;}get estimatedHeight(){return this.vertical?this.size:-1;}constructor(size,vertical){super();this.size=size;this.vertical=vertical;}};var ViewState=class{updateForViewport(){let viewports=[this.viewport],{main}=this.state.selection;for(let i=0;i<=1;i++){let pos=i?main.head:main.anchor;if(!viewports.some(({from,to})=>pos>=from&&pos<=to)){let{from,to}=this.lineBlockAt(pos);viewports.push(new Viewport(from,to));}}this.viewports=viewports.sort((a,b)=>a.from-b.from);this.scaler=this.heightMap.height<=7e6?IdScaler:new BigScaler(this.heightOracle,this.heightMap,this.viewports);}updateViewportLines(){this.viewportLines=[];this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.heightOracle.setDoc(this.state.doc),0,0,block=>{this.viewportLines.push(this.scaler.scale==1?block:scaleBlock(block,this.scaler));});}update(update,scrollTarget=null){this.state=update.state;let prevDeco=this.stateDeco;this.stateDeco=this.state.facet(decorations).filter(d=>typeof d!=\"function\");let contentChanges=update.changedRanges;let heightChanges=ChangedRange.extendWithRanges(contentChanges,heightRelevantDecoChanges(prevDeco,this.stateDeco,update?update.changes:ChangeSet.empty(this.state.doc.length)));let prevHeight=this.heightMap.height;let scrollAnchor=this.scrolledToBottom?null:this.lineBlockAtHeight(this.scrollTop);this.heightMap=this.heightMap.applyChanges(this.stateDeco,update.startState.doc,this.heightOracle.setDoc(this.state.doc),heightChanges);if(this.heightMap.height!=prevHeight)update.flags|=2;if(scrollAnchor){this.scrollAnchorPos=update.changes.mapPos(scrollAnchor.from,-1);this.scrollAnchorHeight=scrollAnchor.top;}else{this.scrollAnchorPos=-1;this.scrollAnchorHeight=this.heightMap.height;}let viewport=heightChanges.length?this.mapViewport(this.viewport,update.changes):this.viewport;if(scrollTarget&&(scrollTarget.range.head<viewport.from||scrollTarget.range.head>viewport.to)||!this.viewportIsAppropriate(viewport))viewport=this.getViewport(0,scrollTarget);let updateLines=!update.changes.empty||update.flags&2||viewport.from!=this.viewport.from||viewport.to!=this.viewport.to;this.viewport=viewport;this.updateForViewport();if(updateLines)this.updateViewportLines();if(this.lineGaps.length||this.viewport.to-this.viewport.from>2e3<<1)this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,update.changes)));update.flags|=this.computeVisibleRanges();if(scrollTarget)this.scrollTarget=scrollTarget;if(!this.mustEnforceCursorAssoc&&update.selectionSet&&update.view.lineWrapping&&update.state.selection.main.empty&&update.state.selection.main.assoc&&!update.state.facet(nativeSelectionHidden))this.mustEnforceCursorAssoc=true;}measure(view){let dom=view.contentDOM,style=window.getComputedStyle(dom);let oracle=this.heightOracle;let whiteSpace=style.whiteSpace;this.defaultTextDirection=style.direction==\"rtl\"?Direction.RTL:Direction.LTR;let refresh=this.heightOracle.mustRefreshForWrapping(whiteSpace);let domRect=dom.getBoundingClientRect();let measureContent=refresh||this.mustMeasureContent||this.contentDOMHeight!=domRect.height;this.contentDOMHeight=domRect.height;this.mustMeasureContent=false;let result=0,bias=0;let paddingTop=parseInt(style.paddingTop)||0,paddingBottom=parseInt(style.paddingBottom)||0;if(this.paddingTop!=paddingTop||this.paddingBottom!=paddingBottom){this.paddingTop=paddingTop;this.paddingBottom=paddingBottom;result|=8|2;}if(this.editorWidth!=view.scrollDOM.clientWidth){if(oracle.lineWrapping)measureContent=true;this.editorWidth=view.scrollDOM.clientWidth;result|=8;}if(this.scrollTop!=view.scrollDOM.scrollTop){this.scrollAnchorHeight=-1;this.scrollTop=view.scrollDOM.scrollTop;}this.scrolledToBottom=this.scrollTop>view.scrollDOM.scrollHeight-view.scrollDOM.clientHeight-4;let pixelViewport=(this.printing?fullPixelRange:visiblePixelRange)(dom,this.paddingTop);let dTop=pixelViewport.top-this.pixelViewport.top,dBottom=pixelViewport.bottom-this.pixelViewport.bottom;this.pixelViewport=pixelViewport;let inView=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(inView!=this.inView){this.inView=inView;if(inView)measureContent=true;}if(!this.inView&&!this.scrollTarget)return 0;let contentWidth=domRect.width;if(this.contentDOMWidth!=contentWidth||this.editorHeight!=view.scrollDOM.clientHeight){this.contentDOMWidth=domRect.width;this.editorHeight=view.scrollDOM.clientHeight;result|=8;}if(measureContent){let lineHeights=view.docView.measureVisibleLineHeights(this.viewport);if(oracle.mustRefreshForHeights(lineHeights))refresh=true;if(refresh||oracle.lineWrapping&&Math.abs(contentWidth-this.contentDOMWidth)>oracle.charWidth){let{lineHeight,charWidth,textHeight}=view.docView.measureTextSize();refresh=lineHeight>0&&oracle.refresh(whiteSpace,lineHeight,charWidth,textHeight,contentWidth/charWidth,lineHeights);if(refresh){view.docView.minWidth=0;result|=8;}}if(dTop>0&&dBottom>0)bias=Math.max(dTop,dBottom);else if(dTop<0&&dBottom<0)bias=Math.min(dTop,dBottom);oracle.heightChanged=false;for(let vp of this.viewports){let heights=vp.from==this.viewport.from?lineHeights:view.docView.measureVisibleLineHeights(vp);this.heightMap=(refresh?HeightMap.empty().applyChanges(this.stateDeco,Text.empty,this.heightOracle,[new ChangedRange(0,0,0,view.state.doc.length)]):this.heightMap).updateHeight(oracle,0,refresh,new MeasuredHeights(vp.from,heights));}if(oracle.heightChanged)result|=2;}let viewportChange=!this.viewportIsAppropriate(this.viewport,bias)||this.scrollTarget&&(this.scrollTarget.range.head<this.viewport.from||this.scrollTarget.range.head>this.viewport.to);if(viewportChange)this.viewport=this.getViewport(bias,this.scrollTarget);this.updateForViewport();if(result&2||viewportChange)this.updateViewportLines();if(this.lineGaps.length||this.viewport.to-this.viewport.from>2e3<<1)this.updateLineGaps(this.ensureLineGaps(refresh?[]:this.lineGaps,view));result|=this.computeVisibleRanges();if(this.mustEnforceCursorAssoc){this.mustEnforceCursorAssoc=false;view.docView.enforceCursorAssoc();}return result;}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top);}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom);}getViewport(bias,scrollTarget){let marginTop=.5-Math.max(-.5,Math.min(.5,bias/1e3/2));let map=this.heightMap,oracle=this.heightOracle;let{visibleTop,visibleBottom}=this;let viewport=new Viewport(map.lineAt(visibleTop-marginTop*1e3,QueryType.ByHeight,oracle,0,0).from,map.lineAt(visibleBottom+(1-marginTop)*1e3,QueryType.ByHeight,oracle,0,0).to);if(scrollTarget){let{head}=scrollTarget.range;if(head<viewport.from||head>viewport.to){let viewHeight=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top);let block=map.lineAt(head,QueryType.ByPos,oracle,0,0),topPos;if(scrollTarget.y==\"center\")topPos=(block.top+block.bottom)/2-viewHeight/2;else if(scrollTarget.y==\"start\"||scrollTarget.y==\"nearest\"&&head<viewport.from)topPos=block.top;else topPos=block.bottom-viewHeight;viewport=new Viewport(map.lineAt(topPos-1e3/2,QueryType.ByHeight,oracle,0,0).from,map.lineAt(topPos+viewHeight+1e3/2,QueryType.ByHeight,oracle,0,0).to);}}return viewport;}mapViewport(viewport,changes){let from=changes.mapPos(viewport.from,-1),to=changes.mapPos(viewport.to,1);return new Viewport(this.heightMap.lineAt(from,QueryType.ByPos,this.heightOracle,0,0).from,this.heightMap.lineAt(to,QueryType.ByPos,this.heightOracle,0,0).to);}// Checks if a given viewport covers the visible part of the\n// document and not too much beyond that.\nviewportIsAppropriate({from,to},bias=0){if(!this.inView)return true;let{top:top2}=this.heightMap.lineAt(from,QueryType.ByPos,this.heightOracle,0,0);let{bottom}=this.heightMap.lineAt(to,QueryType.ByPos,this.heightOracle,0,0);let{visibleTop,visibleBottom}=this;return(from==0||top2<=visibleTop-Math.max(10,Math.min(-bias,250)))&&(to==this.state.doc.length||bottom>=visibleBottom+Math.max(10,Math.min(bias,250)))&&top2>visibleTop-2*1e3&&bottom<visibleBottom+2*1e3;}mapLineGaps(gaps,changes){if(!gaps.length||changes.empty)return gaps;let mapped=[];for(let gap of gaps)if(!changes.touchesRange(gap.from,gap.to))mapped.push(new LineGap(changes.mapPos(gap.from),changes.mapPos(gap.to),gap.size));return mapped;}// Computes positions in the viewport where the start or end of a\n// line should be hidden, trying to reuse existing line gaps when\n// appropriate to avoid unneccesary redraws.\n// Uses crude character-counting for the positioning and sizing,\n// since actual DOM coordinates aren't always available and\n// predictable. Relies on generous margins (see LG.Margin) to hide\n// the artifacts this might produce from the user.\nensureLineGaps(current,mayMeasure){let wrapping=this.heightOracle.lineWrapping;let margin=wrapping?1e4:2e3,halfMargin=margin>>1,doubleMargin=margin<<1;if(this.defaultTextDirection!=Direction.LTR&&!wrapping)return[];let gaps=[];let addGap=(from,to,line,structure)=>{if(to-from<halfMargin)return;let sel=this.state.selection.main,avoid=[sel.from];if(!sel.empty)avoid.push(sel.to);for(let pos of avoid){if(pos>from&&pos<to){addGap(from,pos-10,line,structure);addGap(pos+10,to,line,structure);return;}}let gap=find(current,gap2=>gap2.from>=line.from&&gap2.to<=line.to&&Math.abs(gap2.from-from)<halfMargin&&Math.abs(gap2.to-to)<halfMargin&&!avoid.some(pos=>gap2.from<pos&&gap2.to>pos));if(!gap){if(to<line.to&&mayMeasure&&wrapping&&mayMeasure.visibleRanges.some(r=>r.from<=to&&r.to>=to)){let lineStart=mayMeasure.moveToLineBoundary(EditorSelection.cursor(to),false,true).head;if(lineStart>from)to=lineStart;}gap=new LineGap(from,to,this.gapSize(line,from,to,structure));}gaps.push(gap);};for(let line of this.viewportLines){if(line.length<doubleMargin)continue;let structure=lineStructure(line.from,line.to,this.stateDeco);if(structure.total<doubleMargin)continue;let target=this.scrollTarget?this.scrollTarget.range.head:null;let viewFrom,viewTo;if(wrapping){let marginHeight=margin/this.heightOracle.lineLength*this.heightOracle.lineHeight;let top2,bot;if(target!=null){let targetFrac=findFraction(structure,target);let spaceFrac=((this.visibleBottom-this.visibleTop)/2+marginHeight)/line.height;top2=targetFrac-spaceFrac;bot=targetFrac+spaceFrac;}else{top2=(this.visibleTop-line.top-marginHeight)/line.height;bot=(this.visibleBottom-line.top+marginHeight)/line.height;}viewFrom=findPosition(structure,top2);viewTo=findPosition(structure,bot);}else{let totalWidth=structure.total*this.heightOracle.charWidth;let marginWidth=margin*this.heightOracle.charWidth;let left,right;if(target!=null){let targetFrac1=findFraction(structure,target);let spaceFrac1=((this.pixelViewport.right-this.pixelViewport.left)/2+marginWidth)/totalWidth;left=targetFrac1-spaceFrac1;right=targetFrac1+spaceFrac1;}else{left=(this.pixelViewport.left-marginWidth)/totalWidth;right=(this.pixelViewport.right+marginWidth)/totalWidth;}viewFrom=findPosition(structure,left);viewTo=findPosition(structure,right);}if(viewFrom>line.from)addGap(line.from,viewFrom,line,structure);if(viewTo<line.to)addGap(viewTo,line.to,line,structure);}return gaps;}gapSize(line,from,to,structure){let fraction=findFraction(structure,to)-findFraction(structure,from);if(this.heightOracle.lineWrapping){return line.height*fraction;}else{return structure.total*this.heightOracle.charWidth*fraction;}}updateLineGaps(gaps){if(!LineGap.same(gaps,this.lineGaps)){this.lineGaps=gaps;this.lineGapDeco=Decoration.set(gaps.map(gap=>gap.draw(this.heightOracle.lineWrapping)));}}computeVisibleRanges(){let deco=this.stateDeco;if(this.lineGaps.length)deco=deco.concat(this.lineGapDeco);let ranges=[];RangeSet.spans(deco,this.viewport.from,this.viewport.to,{span(from,to){ranges.push({from,to});},point(){}},20);let changed=ranges.length!=this.visibleRanges.length||this.visibleRanges.some((r,i)=>r.from!=ranges[i].from||r.to!=ranges[i].to);this.visibleRanges=ranges;return changed?4:0;}lineBlockAt(pos){return pos>=this.viewport.from&&pos<=this.viewport.to&&this.viewportLines.find(b=>b.from<=pos&&b.to>=pos)||scaleBlock(this.heightMap.lineAt(pos,QueryType.ByPos,this.heightOracle,0,0),this.scaler);}lineBlockAtHeight(height){return scaleBlock(this.heightMap.lineAt(this.scaler.fromDOM(height),QueryType.ByHeight,this.heightOracle,0,0),this.scaler);}elementAtHeight(height){return scaleBlock(this.heightMap.blockAt(this.scaler.fromDOM(height),this.heightOracle,0,0),this.scaler);}get docHeight(){return this.scaler.toDOM(this.heightMap.height);}get contentHeight(){return this.docHeight+this.paddingTop+this.paddingBottom;}constructor(state){this.state=state;this.pixelViewport={left:0,right:window.innerWidth,top:0,bottom:0};this.inView=true;this.paddingTop=0;this.paddingBottom=0;this.contentDOMWidth=0;this.contentDOMHeight=0;this.editorHeight=0;this.editorWidth=0;this.scrollTop=0;this.scrolledToBottom=true;this.scrollAnchorPos=0;this.scrollAnchorHeight=-1;this.scaler=IdScaler;this.scrollTarget=null;this.printing=false;this.mustMeasureContent=true;this.defaultTextDirection=Direction.LTR;this.visibleRanges=[];this.mustEnforceCursorAssoc=false;let guessWrapping=state.facet(contentAttributes).some(v=>typeof v!=\"function\"&&v.class==\"cm-lineWrapping\");this.heightOracle=new HeightOracle(guessWrapping);this.stateDeco=state.facet(decorations).filter(d=>typeof d!=\"function\");this.heightMap=HeightMap.empty().applyChanges(this.stateDeco,Text.empty,this.heightOracle.setDoc(state.doc),[new ChangedRange(0,0,0,state.doc.length)]);this.viewport=this.getViewport(0,null);this.updateViewportLines();this.updateForViewport();this.lineGaps=this.ensureLineGaps([]);this.lineGapDeco=Decoration.set(this.lineGaps.map(gap=>gap.draw(false)));this.computeVisibleRanges();}};var Viewport=class{constructor(from,to){this.from=from;this.to=to;}};function lineStructure(from,to,stateDeco){let ranges=[],pos=from,total=0;RangeSet.spans(stateDeco,from,to,{span(){},point(from2,to2){if(from2>pos){ranges.push({from:pos,to:from2});total+=from2-pos;}pos=to2;}},20);if(pos<to){ranges.push({from:pos,to});total+=to-pos;}return{total,ranges};}function findPosition({total,ranges},ratio){if(ratio<=0)return ranges[0].from;if(ratio>=1)return ranges[ranges.length-1].to;let dist=Math.floor(total*ratio);for(let i=0;;i++){let{from,to}=ranges[i],size=to-from;if(dist<=size)return from+dist;dist-=size;}}function findFraction(structure,pos){let counted=0;for(let{from,to}of structure.ranges){if(pos<=to){counted+=pos-from;break;}counted+=to-from;}return counted/structure.total;}function find(array,f){for(let val of array)if(f(val))return val;return void 0;}var IdScaler={toDOM(n){return n;},fromDOM(n){return n;},scale:1};var BigScaler=class{toDOM(n){for(let i=0,base2=0,domBase=0;;i++){let vp=i<this.viewports.length?this.viewports[i]:null;if(!vp||n<vp.top)return domBase+(n-base2)*this.scale;if(n<=vp.bottom)return vp.domTop+(n-vp.top);base2=vp.bottom;domBase=vp.domBottom;}}fromDOM(n){for(let i=0,base2=0,domBase=0;;i++){let vp=i<this.viewports.length?this.viewports[i]:null;if(!vp||n<vp.domTop)return base2+(n-domBase)/this.scale;if(n<=vp.domBottom)return vp.top+(n-vp.domTop);base2=vp.bottom;domBase=vp.domBottom;}}constructor(oracle,heightMap,viewports){let vpHeight=0,base2=0,domBase=0;this.viewports=viewports.map(({from,to})=>{let top2=heightMap.lineAt(from,QueryType.ByPos,oracle,0,0).top;let bottom=heightMap.lineAt(to,QueryType.ByPos,oracle,0,0).bottom;vpHeight+=bottom-top2;return{from,to,top:top2,bottom,domTop:0,domBottom:0};});this.scale=(7e6-vpHeight)/(heightMap.height-vpHeight);for(let obj of this.viewports){obj.domTop=domBase+(obj.top-base2)*this.scale;domBase=obj.domBottom=obj.domTop+(obj.bottom-obj.top);base2=obj.bottom;}}};function scaleBlock(block,scaler){if(scaler.scale==1)return block;let bTop=scaler.toDOM(block.top),bBottom=scaler.toDOM(block.bottom);return new BlockInfo(block.from,block.length,bTop,bBottom-bTop,Array.isArray(block._content)?block._content.map(b=>scaleBlock(b,scaler)):block._content);}var theme=/* @__PURE__ */ Facet.define({combine:strs=>strs.join(\" \")});var darkTheme=/* @__PURE__ */ Facet.define({combine:values=>values.indexOf(true)>-1});var baseThemeID=/* @__PURE__ */ StyleModule.newName();var baseLightID=/* @__PURE__ */ StyleModule.newName();var baseDarkID=/* @__PURE__ */ StyleModule.newName();var lightDarkIDs={\"&light\":\".\"+baseLightID,\"&dark\":\".\"+baseDarkID};function buildTheme(main,spec,scopes){return new StyleModule(spec,{finish(sel){return/&/.test(sel)?sel.replace(/&\\w*/,m=>{if(m==\"&\")return main;if(!scopes||!scopes[m])throw new RangeError(`Unsupported selector: ${m}`);return scopes[m];}):main+\" \"+sel;}});}var baseTheme$1=/* @__PURE__ */ buildTheme(\".\"+baseThemeID,{\"&\":{position:\"relative !important\",boxSizing:\"border-box\",\"&.cm-focused\":{// Provide a simple default outline to make sure a focused\n// editor is visually distinct. Can't leave the default behavior\n// because that will apply to the content element, which is\n// inside the scrollable container and doesn't include the\n// gutters. We also can't use an 'auto' outline, since those\n// are, for some reason, drawn behind the element content, which\n// will cause things like the active line background to cover\n// the outline (#297).\noutline:\"1px dotted #212121\"},display:\"flex !important\",flexDirection:\"column\"},\".cm-scroller\":{display:\"flex !important\",alignItems:\"flex-start !important\",fontFamily:\"monospace\",lineHeight:1.4,height:\"100%\",overflowX:\"auto\",position:\"relative\",zIndex:0},\".cm-content\":{margin:0,flexGrow:2,flexShrink:0,display:\"block\",whiteSpace:\"pre\",wordWrap:\"normal\",boxSizing:\"border-box\",padding:\"4px 0\",outline:\"none\",\"&[contenteditable=true]\":{WebkitUserModify:\"read-write-plaintext-only\"}},\".cm-lineWrapping\":{whiteSpace_fallback:\"pre-wrap\",whiteSpace:\"break-spaces\",wordBreak:\"break-word\",overflowWrap:\"anywhere\",flexShrink:1},\"&light .cm-content\":{caretColor:\"black\"},\"&dark .cm-content\":{caretColor:\"white\"},\".cm-line\":{display:\"block\",padding:\"0 2px 0 6px\"},\".cm-layer\":{position:\"absolute\",left:0,top:0,contain:\"size style\",\"& > *\":{position:\"absolute\"}},\"&light .cm-selectionBackground\":{background:\"#d9d9d9\"},\"&dark .cm-selectionBackground\":{background:\"#222\"},\"&light.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground\":{background:\"#d7d4f0\"},\"&dark.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground\":{background:\"#233\"},\".cm-cursorLayer\":{pointerEvents:\"none\"},\"&.cm-focused > .cm-scroller > .cm-cursorLayer\":{animation:\"steps(1) cm-blink 1.2s infinite\"},// Two animations defined so that we can switch between them to\n// restart the animation without forcing another style\n// recomputation.\n\"@keyframes cm-blink\":{\"0%\":{},\"50%\":{opacity:0},\"100%\":{}},\"@keyframes cm-blink2\":{\"0%\":{},\"50%\":{opacity:0},\"100%\":{}},\".cm-cursor, .cm-dropCursor\":{borderLeft:\"1.2px solid black\",marginLeft:\"-0.6px\",pointerEvents:\"none\"},\".cm-cursor\":{display:\"none\"},\"&dark .cm-cursor\":{borderLeftColor:\"#444\"},\".cm-dropCursor\":{position:\"absolute\"},\"&.cm-focused > .cm-scroller > .cm-cursorLayer .cm-cursor\":{display:\"block\"},\"&light .cm-activeLine\":{backgroundColor:\"#cceeff44\"},\"&dark .cm-activeLine\":{backgroundColor:\"#99eeff33\"},\"&light .cm-specialChar\":{color:\"red\"},\"&dark .cm-specialChar\":{color:\"#f78\"},\".cm-gutters\":{flexShrink:0,display:\"flex\",height:\"100%\",boxSizing:\"border-box\",left:0,zIndex:200},\"&light .cm-gutters\":{backgroundColor:\"#f5f5f5\",color:\"#6c6c6c\",borderRight:\"1px solid #ddd\"},\"&dark .cm-gutters\":{backgroundColor:\"#333338\",color:\"#ccc\"},\".cm-gutter\":{display:\"flex !important\",flexDirection:\"column\",flexShrink:0,boxSizing:\"border-box\",minHeight:\"100%\",overflow:\"hidden\"},\".cm-gutterElement\":{boxSizing:\"border-box\"},\".cm-lineNumbers .cm-gutterElement\":{padding:\"0 3px 0 5px\",minWidth:\"20px\",textAlign:\"right\",whiteSpace:\"nowrap\"},\"&light .cm-activeLineGutter\":{backgroundColor:\"#e2f2ff\"},\"&dark .cm-activeLineGutter\":{backgroundColor:\"#222227\"},\".cm-panels\":{boxSizing:\"border-box\",position:\"sticky\",left:0,right:0},\"&light .cm-panels\":{backgroundColor:\"#f5f5f5\",color:\"black\"},\"&light .cm-panels-top\":{borderBottom:\"1px solid #ddd\"},\"&light .cm-panels-bottom\":{borderTop:\"1px solid #ddd\"},\"&dark .cm-panels\":{backgroundColor:\"#333338\",color:\"white\"},\".cm-tab\":{display:\"inline-block\",overflow:\"hidden\",verticalAlign:\"bottom\"},\".cm-widgetBuffer\":{verticalAlign:\"text-top\",height:\"1em\",width:0,display:\"inline\"},\".cm-placeholder\":{color:\"#888\",display:\"inline-block\",verticalAlign:\"top\"},\".cm-highlightSpace:before\":{content:\"attr(data-display)\",position:\"absolute\",pointerEvents:\"none\",color:\"#888\"},\".cm-highlightTab\":{backgroundImage:`url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"200\" height=\"20\"><path stroke=\"%23888\" stroke-width=\"1\" fill=\"none\" d=\"M1 10H196L190 5M190 15L196 10M197 4L197 16\"/></svg>')`,backgroundSize:\"auto 100%\",backgroundPosition:\"right 90%\",backgroundRepeat:\"no-repeat\"},\".cm-trailingSpace\":{backgroundColor:\"#ff332255\"},\".cm-button\":{verticalAlign:\"middle\",color:\"inherit\",fontSize:\"70%\",padding:\".2em 1em\",borderRadius:\"1px\"},\"&light .cm-button\":{backgroundImage:\"linear-gradient(#eff1f5, #d9d9df)\",border:\"1px solid #888\",\"&:active\":{backgroundImage:\"linear-gradient(#b4b4b4, #d0d3d6)\"}},\"&dark .cm-button\":{backgroundImage:\"linear-gradient(#393939, #111)\",border:\"1px solid #888\",\"&:active\":{backgroundImage:\"linear-gradient(#111, #333)\"}},\".cm-textfield\":{verticalAlign:\"middle\",color:\"inherit\",fontSize:\"70%\",border:\"1px solid silver\",padding:\".2em .5em\"},\"&light .cm-textfield\":{backgroundColor:\"white\"},\"&dark .cm-textfield\":{border:\"1px solid #555\",backgroundColor:\"inherit\"}},lightDarkIDs);var DOMChange=class{constructor(view,start,end,typeOver){this.typeOver=typeOver;this.bounds=null;this.text=\"\";let{impreciseHead:iHead,impreciseAnchor:iAnchor}=view.docView;if(view.state.readOnly&&start>-1){this.newSel=null;}else if(start>-1&&(this.bounds=view.docView.domBoundsAround(start,end,0))){let selPoints=iHead||iAnchor?[]:selectionPoints(view);let reader=new DOMReader(selPoints,view.state);reader.readRange(this.bounds.startDOM,this.bounds.endDOM);this.text=reader.text;this.newSel=selectionFromPoints(selPoints,this.bounds.from);}else{let domSel=view.observer.selectionRange;let head=iHead&&iHead.node==domSel.focusNode&&iHead.offset==domSel.focusOffset||!contains(view.contentDOM,domSel.focusNode)?view.state.selection.main.head:view.docView.posFromDOM(domSel.focusNode,domSel.focusOffset);let anchor=iAnchor&&iAnchor.node==domSel.anchorNode&&iAnchor.offset==domSel.anchorOffset||!contains(view.contentDOM,domSel.anchorNode)?view.state.selection.main.anchor:view.docView.posFromDOM(domSel.anchorNode,domSel.anchorOffset);this.newSel=EditorSelection.single(anchor,head);}}};function applyDOMChange(view,domChange){let change;let{newSel}=domChange,sel=view.state.selection.main;let lastKey=view.inputState.lastKeyTime>Date.now()-100?view.inputState.lastKeyCode:-1;if(domChange.bounds){let{from,to}=domChange.bounds;let preferredPos=sel.from,preferredSide=null;if(lastKey===8||browser.android&&domChange.text.length<to-from){preferredPos=sel.to;preferredSide=\"end\";}let diff=findDiff(view.state.doc.sliceString(from,to,LineBreakPlaceholder),domChange.text,preferredPos-from,preferredSide);if(diff){if(browser.chrome&&lastKey==13&&diff.toB==diff.from+2&&domChange.text.slice(diff.from,diff.toB)==LineBreakPlaceholder+LineBreakPlaceholder)diff.toB--;change={from:from+diff.from,to:from+diff.toA,insert:Text.of(domChange.text.slice(diff.from,diff.toB).split(LineBreakPlaceholder))};}}else if(newSel&&(!view.hasFocus&&view.state.facet(editable)||newSel.main.eq(sel))){newSel=null;}if(!change&&!newSel)return false;if(!change&&domChange.typeOver&&!sel.empty&&newSel&&newSel.main.empty){change={from:sel.from,to:sel.to,insert:view.state.doc.slice(sel.from,sel.to)};}else if(change&&change.from>=sel.from&&change.to<=sel.to&&(change.from!=sel.from||change.to!=sel.to)&&sel.to-sel.from-(change.to-change.from)<=4){change={from:sel.from,to:sel.to,insert:view.state.doc.slice(sel.from,change.from).append(change.insert).append(view.state.doc.slice(change.to,sel.to))};}else if((browser.mac||browser.android)&&change&&change.from==change.to&&change.from==sel.head-1&&/^\\. ?$/.test(change.insert.toString())&&view.contentDOM.getAttribute(\"autocorrect\")==\"off\"){if(newSel&&change.insert.length==2)newSel=EditorSelection.single(newSel.main.anchor-1,newSel.main.head-1);change={from:sel.from,to:sel.to,insert:Text.of([\" \"])};}else if(browser.chrome&&change&&change.from==change.to&&change.from==sel.head&&change.insert.toString()==\"\\n \"&&view.lineWrapping){if(newSel)newSel=EditorSelection.single(newSel.main.anchor-1,newSel.main.head-1);change={from:sel.from,to:sel.to,insert:Text.of([\" \"])};}if(change){let startState=view.state;if(browser.ios&&view.inputState.flushIOSKey(view))return true;if(browser.android&&(change.from==sel.from&&change.to==sel.to&&change.insert.length==1&&change.insert.lines==2&&dispatchKey(view.contentDOM,\"Enter\",13)||(change.from==sel.from-1&&change.to==sel.to&&change.insert.length==0||lastKey==8&&change.insert.length<change.to-change.from)&&dispatchKey(view.contentDOM,\"Backspace\",8)||change.from==sel.from&&change.to==sel.to+1&&change.insert.length==0&&dispatchKey(view.contentDOM,\"Delete\",46)))return true;let text=change.insert.toString();if(view.state.facet(inputHandler).some(h=>h(view,change.from,change.to,text)))return true;if(view.inputState.composing>=0)view.inputState.composing++;let tr;if(change.from>=sel.from&&change.to<=sel.to&&change.to-change.from>=(sel.to-sel.from)/3&&(!newSel||newSel.main.empty&&newSel.main.from==change.from+change.insert.length)&&view.inputState.composing<0){let before=sel.from<change.from?startState.sliceDoc(sel.from,change.from):\"\";let after=sel.to>change.to?startState.sliceDoc(change.to,sel.to):\"\";tr=startState.replaceSelection(view.state.toText(before+change.insert.sliceString(0,void 0,view.state.lineBreak)+after));}else{let changes=startState.changes(change);let mainSel=newSel&&newSel.main.to<=changes.newLength?newSel.main:void 0;if(startState.selection.ranges.length>1&&view.inputState.composing>=0&&change.to<=sel.to&&change.to>=sel.to-10){let replaced=view.state.sliceDoc(change.from,change.to);let compositionRange=compositionSurroundingNode(view)||view.state.doc.lineAt(sel.head);let offset=sel.to-change.to,size=sel.to-sel.from;tr=startState.changeByRange(range=>{if(range.from==sel.from&&range.to==sel.to)return{changes,range:mainSel||range.map(changes)};let to=range.to-offset,from=to-replaced.length;if(range.to-range.from!=size||view.state.sliceDoc(from,to)!=replaced||// changes in the same node work without aborting\n// composition, so cursors in the composition range are\n// ignored.\n(compositionRange&&range.to>=compositionRange.from&&range.from<=compositionRange.to))return{range};let rangeChanges=startState.changes({from,to,insert:change.insert}),selOff=range.to-sel.to;return{changes:rangeChanges,range:!mainSel?range.map(rangeChanges):EditorSelection.range(Math.max(0,mainSel.anchor+selOff),Math.max(0,mainSel.head+selOff))};});}else{tr={changes,selection:mainSel&&startState.selection.replaceRange(mainSel)};}}let userEvent=\"input.type\";if(view.composing||view.inputState.compositionPendingChange&&view.inputState.compositionEndedAt>Date.now()-50){view.inputState.compositionPendingChange=false;userEvent+=\".compose\";if(view.inputState.compositionFirstChange){userEvent+=\".start\";view.inputState.compositionFirstChange=false;}}view.dispatch(tr,{scrollIntoView:true,userEvent});return true;}else if(newSel&&!newSel.main.eq(sel)){let scrollIntoView2=false,userEvent1=\"select\";if(view.inputState.lastSelectionTime>Date.now()-50){if(view.inputState.lastSelectionOrigin==\"select\")scrollIntoView2=true;userEvent1=view.inputState.lastSelectionOrigin;}view.dispatch({selection:newSel,scrollIntoView:scrollIntoView2,userEvent:userEvent1});return true;}else{return false;}}function findDiff(a,b,preferredPos,preferredSide){let minLen=Math.min(a.length,b.length);let from=0;while(from<minLen&&a.charCodeAt(from)==b.charCodeAt(from))from++;if(from==minLen&&a.length==b.length)return null;let toA=a.length,toB=b.length;while(toA>0&&toB>0&&a.charCodeAt(toA-1)==b.charCodeAt(toB-1)){toA--;toB--;}if(preferredSide==\"end\"){let adjust=Math.max(0,from-Math.min(toA,toB));preferredPos-=toA+adjust-from;}if(toA<from&&a.length<b.length){let move=preferredPos<=from&&preferredPos>=toA?from-preferredPos:0;from-=move;toB=from+(toB-toA);toA=from;}else if(toB<from){let move1=preferredPos<=from&&preferredPos>=toB?from-preferredPos:0;from-=move1;toA=from+(toA-toB);toB=from;}return{from,toA,toB};}function selectionPoints(view){let result=[];if(view.root.activeElement!=view.contentDOM)return result;let{anchorNode,anchorOffset,focusNode,focusOffset}=view.observer.selectionRange;if(anchorNode){result.push(new DOMPoint(anchorNode,anchorOffset));if(focusNode!=anchorNode||focusOffset!=anchorOffset)result.push(new DOMPoint(focusNode,focusOffset));}return result;}function selectionFromPoints(points,base2){if(points.length==0)return null;let anchor=points[0].pos,head=points.length==2?points[1].pos:anchor;return anchor>-1&&head>-1?EditorSelection.single(anchor+base2,head+base2):null;}var observeOptions={childList:true,characterData:true,subtree:true,attributes:true,characterDataOldValue:true};var useCharData=browser.ie&&browser.ie_version<=11;var DOMObserver=class{onScrollChanged(e){this.view.inputState.runScrollHandlers(this.view,e);if(this.intersecting)this.view.measure();}onScroll(e){if(this.intersecting)this.flush(false);this.onScrollChanged(e);}onResize(){if(this.resizeTimeout<0)this.resizeTimeout=setTimeout(()=>{this.resizeTimeout=-1;this.view.requestMeasure();},50);}onPrint(){this.view.viewState.printing=true;this.view.measure();setTimeout(()=>{this.view.viewState.printing=false;this.view.requestMeasure();},500);}updateGaps(gaps){if(this.gapIntersection&&(gaps.length!=this.gaps.length||this.gaps.some((g,i)=>g!=gaps[i]))){this.gapIntersection.disconnect();for(let gap of gaps)this.gapIntersection.observe(gap);this.gaps=gaps;}}onSelectionChange(event){let wasChanged=this.selectionChanged;if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view}=this,sel=this.selectionRange;if(view.state.facet(editable)?view.root.activeElement!=this.dom:!hasSelection(view.dom,sel))return;let context=sel.anchorNode&&view.docView.nearest(sel.anchorNode);if(context&&context.ignoreEvent(event)){if(!wasChanged)this.selectionChanged=false;return;}if((browser.ie&&browser.ie_version<=11||browser.android&&browser.chrome)&&!view.state.selection.main.empty&&sel.focusNode&&isEquivalentPosition(sel.focusNode,sel.focusOffset,sel.anchorNode,sel.anchorOffset))this.flushSoon();else this.flush(false);}readSelectionRange(){let{view}=this;let range=browser.safari&&view.root.nodeType==11&&deepActiveElement(this.dom.ownerDocument)==this.dom&&safariSelectionRangeHack(this.view)||getSelection(view.root);if(!range||this.selectionRange.eq(range))return false;let local=hasSelection(this.dom,range);if(local&&!this.selectionChanged&&view.inputState.lastFocusTime>Date.now()-200&&view.inputState.lastTouchTime<Date.now()-300&&atElementStart(this.dom,range)){this.view.inputState.lastFocusTime=0;view.docView.updateSelection();return false;}this.selectionRange.setRange(range);if(local)this.selectionChanged=true;return true;}setSelectionRange(anchor,head){this.selectionRange.set(anchor.node,anchor.offset,head.node,head.offset);this.selectionChanged=false;}clearSelectionRange(){this.selectionRange.set(null,0,null,0);}listenForScroll(){this.parentCheck=-1;let i=0,changed=null;for(let dom=this.dom;dom;){if(dom.nodeType==1){if(!changed&&i<this.scrollTargets.length&&this.scrollTargets[i]==dom)i++;else if(!changed)changed=this.scrollTargets.slice(0,i);if(changed)changed.push(dom);dom=dom.assignedSlot||dom.parentNode;}else if(dom.nodeType==11){dom=dom.host;}else{break;}}if(i<this.scrollTargets.length&&!changed)changed=this.scrollTargets.slice(0,i);if(changed){for(let dom1 of this.scrollTargets)dom1.removeEventListener(\"scroll\",this.onScroll);for(let dom2 of this.scrollTargets=changed)dom2.addEventListener(\"scroll\",this.onScroll);}}ignore(f){if(!this.active)return f();try{this.stop();return f();}finally{this.start();this.clear();}}start(){if(this.active)return;this.observer.observe(this.dom,observeOptions);if(useCharData)this.dom.addEventListener(\"DOMCharacterDataModified\",this.onCharData);this.active=true;}stop(){if(!this.active)return;this.active=false;this.observer.disconnect();if(useCharData)this.dom.removeEventListener(\"DOMCharacterDataModified\",this.onCharData);}// Throw away any pending changes\nclear(){this.processRecords();this.queue.length=0;this.selectionChanged=false;}// Chrome Android, especially in combination with GBoard, not only\n// doesn't reliably fire regular key events, but also often\n// surrounds the effect of enter or backspace with a bunch of\n// composition events that, when interrupted, cause text duplication\n// or other kinds of corruption. This hack makes the editor back off\n// from handling DOM changes for a moment when such a key is\n// detected (via beforeinput or keydown), and then tries to flush\n// them or, if that has no effect, dispatches the given key.\ndelayAndroidKey(key,keyCode){var _a;if(!this.delayedAndroidKey){let flush=()=>{let key2=this.delayedAndroidKey;if(key2){this.clearDelayedAndroidKey();this.view.inputState.lastKeyCode=key2.keyCode;this.view.inputState.lastKeyTime=Date.now();let flushed=this.flush();if(!flushed&&key2.force)dispatchKey(this.dom,key2.key,key2.keyCode);}};this.flushingAndroidKey=this.view.win.requestAnimationFrame(flush);}if(!this.delayedAndroidKey||key==\"Enter\")this.delayedAndroidKey={key,keyCode,// Only run the key handler when no changes are detected if\n// this isn't coming right after another change, in which case\n// it is probably part of a weird chain of updates, and should\n// be ignored if it returns the DOM to its previous state.\nforce:this.lastChange<Date.now()-50||!!((_a=this.delayedAndroidKey)===null||_a===void 0?void 0:_a.force)};}clearDelayedAndroidKey(){this.win.cancelAnimationFrame(this.flushingAndroidKey);this.delayedAndroidKey=null;this.flushingAndroidKey=-1;}flushSoon(){if(this.delayedFlush<0)this.delayedFlush=this.view.win.requestAnimationFrame(()=>{this.delayedFlush=-1;this.flush();});}forceFlush(){if(this.delayedFlush>=0){this.view.win.cancelAnimationFrame(this.delayedFlush);this.delayedFlush=-1;}this.flush();}pendingRecords(){for(let mut of this.observer.takeRecords())this.queue.push(mut);return this.queue;}processRecords(){let records=this.pendingRecords();if(records.length)this.queue=[];let from=-1,to=-1,typeOver=false;for(let record of records){let range=this.readMutation(record);if(!range)continue;if(range.typeOver)typeOver=true;if(from==-1){({from,to}=range);}else{from=Math.min(range.from,from);to=Math.max(range.to,to);}}return{from,to,typeOver};}readChange(){let{from,to,typeOver}=this.processRecords();let newSel=this.selectionChanged&&hasSelection(this.dom,this.selectionRange);if(from<0&&!newSel)return null;if(from>-1)this.lastChange=Date.now();this.view.inputState.lastFocusTime=0;this.selectionChanged=false;return new DOMChange(this.view,from,to,typeOver);}// Apply pending changes, if any\nflush(readSelection=true){if(this.delayedFlush>=0||this.delayedAndroidKey)return false;if(readSelection)this.readSelectionRange();let domChange=this.readChange();if(!domChange)return false;let startState=this.view.state;let handled=applyDOMChange(this.view,domChange);if(this.view.state==startState)this.view.update([]);return handled;}readMutation(rec){let cView=this.view.docView.nearest(rec.target);if(!cView||cView.ignoreMutation(rec))return null;cView.markDirty(rec.type==\"attributes\");if(rec.type==\"attributes\")cView.dirty|=4;if(rec.type==\"childList\"){let childBefore=findChild(cView,rec.previousSibling||rec.target.previousSibling,-1);let childAfter=findChild(cView,rec.nextSibling||rec.target.nextSibling,1);return{from:childBefore?cView.posAfter(childBefore):cView.posAtStart,to:childAfter?cView.posBefore(childAfter):cView.posAtEnd,typeOver:false};}else if(rec.type==\"characterData\"){return{from:cView.posAtStart,to:cView.posAtEnd,typeOver:rec.target.nodeValue==rec.oldValue};}else{return null;}}setWindow(win){if(win!=this.win){this.removeWindowListeners(this.win);this.win=win;this.addWindowListeners(this.win);}}addWindowListeners(win){win.addEventListener(\"resize\",this.onResize);win.addEventListener(\"beforeprint\",this.onPrint);win.addEventListener(\"scroll\",this.onScroll);win.document.addEventListener(\"selectionchange\",this.onSelectionChange);}removeWindowListeners(win){win.removeEventListener(\"scroll\",this.onScroll);win.removeEventListener(\"resize\",this.onResize);win.removeEventListener(\"beforeprint\",this.onPrint);win.document.removeEventListener(\"selectionchange\",this.onSelectionChange);}destroy(){var _a,_b,_c,_d;this.stop();(_a=this.intersection)===null||_a===void 0?void 0:_a.disconnect();(_b=this.gapIntersection)===null||_b===void 0?void 0:_b.disconnect();(_c=this.resizeScroll)===null||_c===void 0?void 0:_c.disconnect();(_d=this.resizeContent)===null||_d===void 0?void 0:_d.disconnect();for(let dom of this.scrollTargets)dom.removeEventListener(\"scroll\",this.onScroll);this.removeWindowListeners(this.win);clearTimeout(this.parentCheck);clearTimeout(this.resizeTimeout);this.win.cancelAnimationFrame(this.delayedFlush);this.win.cancelAnimationFrame(this.flushingAndroidKey);}constructor(view){this.view=view;this.active=false;this.selectionRange=new DOMSelectionState;this.selectionChanged=false;this.delayedFlush=-1;this.resizeTimeout=-1;this.queue=[];this.delayedAndroidKey=null;this.flushingAndroidKey=-1;this.lastChange=0;this.scrollTargets=[];this.intersection=null;this.resizeScroll=null;this.resizeContent=null;this.intersecting=false;this.gapIntersection=null;this.gaps=[];this.parentCheck=-1;this.dom=view.contentDOM;this.observer=new MutationObserver(mutations=>{for(let mut of mutations)this.queue.push(mut);if((browser.ie&&browser.ie_version<=11||browser.ios&&view.composing)&&mutations.some(m=>m.type==\"childList\"&&m.removedNodes.length||m.type==\"characterData\"&&m.oldValue.length>m.target.nodeValue.length))this.flushSoon();else this.flush();});if(useCharData)this.onCharData=event=>{this.queue.push({target:event.target,type:\"characterData\",oldValue:event.prevValue});this.flushSoon();};this.onSelectionChange=this.onSelectionChange.bind(this);this.onResize=this.onResize.bind(this);this.onPrint=this.onPrint.bind(this);this.onScroll=this.onScroll.bind(this);if(typeof ResizeObserver==\"function\"){this.resizeScroll=new ResizeObserver(()=>{var _a;if(((_a=this.view.docView)===null||_a===void 0?void 0:_a.lastUpdate)<Date.now()-75)this.onResize();});this.resizeScroll.observe(view.scrollDOM);this.resizeContent=new ResizeObserver(()=>this.view.requestMeasure());this.resizeContent.observe(view.contentDOM);}this.addWindowListeners(this.win=view.win);this.start();if(typeof IntersectionObserver==\"function\"){this.intersection=new IntersectionObserver(entries=>{if(this.parentCheck<0)this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3);if(entries.length>0&&entries[entries.length-1].intersectionRatio>0!=this.intersecting){this.intersecting=!this.intersecting;if(this.intersecting!=this.view.inView)this.onScrollChanged(document.createEvent(\"Event\"));}},{threshold:[0,.001]});this.intersection.observe(this.dom);this.gapIntersection=new IntersectionObserver(entries=>{if(entries.length>0&&entries[entries.length-1].intersectionRatio>0)this.onScrollChanged(document.createEvent(\"Event\"));},{});}this.listenForScroll();this.readSelectionRange();}};function findChild(cView,dom,dir){while(dom){let curView=ContentView.get(dom);if(curView&&curView.parent==cView)return curView;let parent=dom.parentNode;dom=parent!=cView.dom?parent:dir>0?dom.nextSibling:dom.previousSibling;}return null;}function safariSelectionRangeHack(view){let found=null;function read(event){event.preventDefault();event.stopImmediatePropagation();found=event.getTargetRanges()[0];}view.contentDOM.addEventListener(\"beforeinput\",read,true);view.dom.ownerDocument.execCommand(\"indent\");view.contentDOM.removeEventListener(\"beforeinput\",read,true);if(!found)return null;let anchorNode=found.startContainer,anchorOffset=found.startOffset;let focusNode=found.endContainer,focusOffset=found.endOffset;let curAnchor=view.docView.domAtPos(view.state.selection.main.anchor);if(isEquivalentPosition(curAnchor.node,curAnchor.offset,focusNode,focusOffset))[anchorNode,anchorOffset,focusNode,focusOffset]=[focusNode,focusOffset,anchorNode,anchorOffset,];return{anchorNode,anchorOffset,focusNode,focusOffset};}var EditorView=class{/**\n  The current editor state.\n  */ get state(){return this.viewState.state;}/**\n  To be able to display large documents without consuming too much\n  memory or overloading the browser, CodeMirror only draws the\n  code that is visible (plus a margin around it) to the DOM. This\n  property tells you the extent of the current drawn viewport, in\n  document positions.\n  */ get viewport(){return this.viewState.viewport;}/**\n  When there are, for example, large collapsed ranges in the\n  viewport, its size can be a lot bigger than the actual visible\n  content. Thus, if you are doing something like styling the\n  content in the viewport, it is preferable to only do so for\n  these ranges, which are the subset of the viewport that is\n  actually drawn.\n  */ get visibleRanges(){return this.viewState.visibleRanges;}/**\n  Returns false when the editor is entirely scrolled out of view\n  or otherwise hidden.\n  */ get inView(){return this.viewState.inView;}/**\n  Indicates whether the user is currently composing text via\n  [IME](https://en.wikipedia.org/wiki/Input_method), and at least\n  one change has been made in the current composition.\n  */ get composing(){return this.inputState.composing>0;}/**\n  Indicates whether the user is currently in composing state. Note\n  that on some platforms, like Android, this will be the case a\n  lot, since just putting the cursor on a word starts a\n  composition there.\n  */ get compositionStarted(){return this.inputState.composing>=0;}/**\n  The document or shadow root that the view lives in.\n  */ get root(){return this._root;}/**\n  @internal\n  */ get win(){return this.dom.ownerDocument.defaultView||window;}dispatch(...input){let tr=input.length==1&&input[0]instanceof Transaction?input[0]:this.state.update(...input);this._dispatch(tr,this);}/**\n  Update the view for the given array of transactions. This will\n  update the visible document and selection to match the state\n  produced by the transactions, and notify view plugins of the\n  change. You should usually call\n  [`dispatch`](https://codemirror.net/6/docs/ref/#view.EditorView.dispatch) instead, which uses this\n  as a primitive.\n  */ update(transactions){if(this.updateState!=0)throw new Error(\"Calls to EditorView.update are not allowed while an update is in progress\");let redrawn=false,attrsChanged=false,update;let state=this.state;for(let tr of transactions){if(tr.startState!=state)throw new RangeError(\"Trying to update state with a transaction that doesn't start from the previous state.\");state=tr.state;}if(this.destroyed){this.viewState.state=state;return;}let focus=this.hasFocus,focusFlag=0,dispatchFocus=null;if(transactions.some(tr=>tr.annotation(isFocusChange))){this.inputState.notifiedFocused=focus;focusFlag=1;}else if(focus!=this.inputState.notifiedFocused){this.inputState.notifiedFocused=focus;dispatchFocus=focusChangeTransaction(state,focus);if(!dispatchFocus)focusFlag=1;}let pendingKey=this.observer.delayedAndroidKey,domChange=null;if(pendingKey){this.observer.clearDelayedAndroidKey();domChange=this.observer.readChange();if(domChange&&!this.state.doc.eq(state.doc)||!this.state.selection.eq(state.selection))domChange=null;}else{this.observer.clear();}if(state.facet(EditorState.phrases)!=this.state.facet(EditorState.phrases))return this.setState(state);update=ViewUpdate.create(this,state,transactions);update.flags|=focusFlag;let scrollTarget=this.viewState.scrollTarget;try{this.updateState=2;for(let tr1 of transactions){if(scrollTarget)scrollTarget=scrollTarget.map(tr1.changes);if(tr1.scrollIntoView){let{main}=tr1.state.selection;scrollTarget=new ScrollTarget(main.empty?main:EditorSelection.cursor(main.head,main.head>main.anchor?-1:1));}for(let e of tr1.effects)if(e.is(scrollIntoView))scrollTarget=e.value;}this.viewState.update(update,scrollTarget);this.bidiCache=CachedOrder.update(this.bidiCache,update.changes);if(!update.empty){this.updatePlugins(update);this.inputState.update(update);}redrawn=this.docView.update(update);if(this.state.facet(styleModule)!=this.styleModules)this.mountStyles();attrsChanged=this.updateAttrs();this.showAnnouncements(transactions);this.docView.updateSelection(redrawn,transactions.some(tr=>tr.isUserEvent(\"select.pointer\")));}finally{this.updateState=0;}if(update.startState.facet(theme)!=update.state.facet(theme))this.viewState.mustMeasureContent=true;if(redrawn||attrsChanged||scrollTarget||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)this.requestMeasure();if(!update.empty)for(let listener of this.state.facet(updateListener))listener(update);if(dispatchFocus||domChange)Promise.resolve().then(()=>{if(dispatchFocus&&this.state==dispatchFocus.startState)this.dispatch(dispatchFocus);if(domChange){if(!applyDOMChange(this,domChange)&&pendingKey.force)dispatchKey(this.contentDOM,pendingKey.key,pendingKey.keyCode);}});}/**\n  Reset the view to the given state. (This will cause the entire\n  document to be redrawn and all view plugins to be reinitialized,\n  so you should probably only use it when the new state isn't\n  derived from the old state. Otherwise, use\n  [`dispatch`](https://codemirror.net/6/docs/ref/#view.EditorView.dispatch) instead.)\n  */ setState(newState){if(this.updateState!=0)throw new Error(\"Calls to EditorView.setState are not allowed while an update is in progress\");if(this.destroyed){this.viewState.state=newState;return;}this.updateState=2;let hadFocus=this.hasFocus;try{for(let plugin2 of this.plugins)plugin2.destroy(this);this.viewState=new ViewState(newState);this.plugins=newState.facet(viewPlugin).map(spec=>new PluginInstance(spec));this.pluginMap.clear();for(let plugin21 of this.plugins)plugin21.update(this);this.docView=new DocView(this);this.inputState.ensureHandlers(this,this.plugins);this.mountStyles();this.updateAttrs();this.bidiCache=[];}finally{this.updateState=0;}if(hadFocus)this.focus();this.requestMeasure();}updatePlugins(update){let prevSpecs=update.startState.facet(viewPlugin),specs=update.state.facet(viewPlugin);if(prevSpecs!=specs){let newPlugins=[];for(let spec of specs){let found=prevSpecs.indexOf(spec);if(found<0){newPlugins.push(new PluginInstance(spec));}else{let plugin2=this.plugins[found];plugin2.mustUpdate=update;newPlugins.push(plugin2);}}for(let plugin21 of this.plugins)if(plugin21.mustUpdate!=update)plugin21.destroy(this);this.plugins=newPlugins;this.pluginMap.clear();this.inputState.ensureHandlers(this,this.plugins);}else{for(let p of this.plugins)p.mustUpdate=update;}for(let i=0;i<this.plugins.length;i++)this.plugins[i].update(this);}/**\n  @internal\n  */ measure(flush=true){if(this.destroyed)return;if(this.measureScheduled>-1)this.win.cancelAnimationFrame(this.measureScheduled);this.measureScheduled=0;if(flush)this.observer.forceFlush();let updated=null;let sDOM=this.scrollDOM,{scrollAnchorPos,scrollAnchorHeight}=this.viewState;this.viewState.scrollAnchorHeight=-1;if(scrollAnchorHeight<0||sDOM.scrollTop!=this.viewState.scrollTop){if(sDOM.scrollTop>sDOM.scrollHeight-sDOM.clientHeight-4){scrollAnchorPos=-1;scrollAnchorHeight=this.viewState.heightMap.height;}else{let block=this.viewState.lineBlockAtHeight(sDOM.scrollTop);scrollAnchorPos=block.from;scrollAnchorHeight=block.top;}}try{for(let i=0;;i++){this.updateState=1;let oldViewport=this.viewport;let changed=this.viewState.measure(this);if(!changed&&!this.measureRequests.length&&this.viewState.scrollTarget==null)break;if(i>5){console.warn(this.measureRequests.length?\"Measure loop restarted more than 5 times\":\"Viewport failed to stabilize\");break;}let measuring=[];if(!(changed&4))[this.measureRequests,measuring]=[measuring,this.measureRequests,];let measured=measuring.map(m=>{try{return m.read(this);}catch(e){logException(this.state,e);return BadMeasure;}});let update=ViewUpdate.create(this,this.state,[]),redrawn=false,scrolled=false;update.flags|=changed;if(!updated)updated=update;else updated.flags|=changed;this.updateState=2;if(!update.empty){this.updatePlugins(update);this.inputState.update(update);this.updateAttrs();redrawn=this.docView.update(update);}for(let i2=0;i2<measuring.length;i2++)if(measured[i2]!=BadMeasure){try{let m=measuring[i2];if(m.write)m.write(measured[i2],this);}catch(e){logException(this.state,e);}}if(this.viewState.editorHeight){if(this.viewState.scrollTarget){this.docView.scrollIntoView(this.viewState.scrollTarget);this.viewState.scrollTarget=null;scrolled=true;}else if(scrollAnchorHeight>-1){let newAnchorHeight=scrollAnchorPos<0?this.viewState.heightMap.height:this.viewState.lineBlockAt(scrollAnchorPos).top;let diff=newAnchorHeight-scrollAnchorHeight;if(diff>1||diff<-1){sDOM.scrollTop+=diff;scrolled=true;}}}if(redrawn)this.docView.updateSelection(true);if(this.viewport.from==oldViewport.from&&this.viewport.to==oldViewport.to&&!scrolled&&this.measureRequests.length==0)break;scrollAnchorHeight=-1;}}finally{this.updateState=0;this.measureScheduled=-1;}if(updated&&!updated.empty)for(let listener of this.state.facet(updateListener))listener(updated);}/**\n  Get the CSS classes for the currently active editor themes.\n  */ get themeClasses(){return baseThemeID+\" \"+(this.state.facet(darkTheme)?baseDarkID:baseLightID)+\" \"+this.state.facet(theme);}updateAttrs(){let editorAttrs=attrsFromFacet(this,editorAttributes,{class:\"cm-editor\"+(this.hasFocus?\" cm-focused \":\" \")+this.themeClasses});let contentAttrs={spellcheck:\"false\",autocorrect:\"off\",autocapitalize:\"off\",translate:\"no\",contenteditable:!this.state.facet(editable)?\"false\":\"true\",class:\"cm-content\",style:`${browser.tabSize}: ${this.state.tabSize}`,role:\"textbox\",\"aria-multiline\":\"true\"};if(this.state.readOnly)contentAttrs[\"aria-readonly\"]=\"true\";attrsFromFacet(this,contentAttributes,contentAttrs);let changed=this.observer.ignore(()=>{let changedContent=updateAttrs(this.contentDOM,this.contentAttrs,contentAttrs);let changedEditor=updateAttrs(this.dom,this.editorAttrs,editorAttrs);return changedContent||changedEditor;});this.editorAttrs=editorAttrs;this.contentAttrs=contentAttrs;return changed;}showAnnouncements(trs){let first=true;for(let tr of trs)for(let effect of tr.effects)if(effect.is(EditorView.announce)){if(first)this.announceDOM.textContent=\"\";first=false;let div=this.announceDOM.appendChild(document.createElement(\"div\"));div.textContent=effect.value;}}mountStyles(){this.styleModules=this.state.facet(styleModule);StyleModule.mount(this.root,this.styleModules.concat(baseTheme$1).reverse());}readMeasured(){if(this.updateState==2)throw new Error(\"Reading the editor layout isn't allowed during an update\");if(this.updateState==0&&this.measureScheduled>-1)this.measure(false);}/**\n  Schedule a layout measurement, optionally providing callbacks to\n  do custom DOM measuring followed by a DOM write phase. Using\n  this is preferable reading DOM layout directly from, for\n  example, an event handler, because it'll make sure measuring and\n  drawing done by other components is synchronized, avoiding\n  unnecessary DOM layout computations.\n  */ requestMeasure(request){if(this.measureScheduled<0)this.measureScheduled=this.win.requestAnimationFrame(()=>this.measure());if(request){if(this.measureRequests.indexOf(request)>-1)return;if(request.key!=null)for(let i=0;i<this.measureRequests.length;i++){if(this.measureRequests[i].key===request.key){this.measureRequests[i]=request;return;}}this.measureRequests.push(request);}}/**\n  Get the value of a specific plugin, if present. Note that\n  plugins that crash can be dropped from a view, so even when you\n  know you registered a given plugin, it is recommended to check\n  the return value of this method.\n  */ plugin(plugin2){let known=this.pluginMap.get(plugin2);if(known===void 0||known&&known.spec!=plugin2)this.pluginMap.set(plugin2,known=this.plugins.find(p=>p.spec==plugin2)||null);return known&&known.update(this).value;}/**\n  The top position of the document, in screen coordinates. This\n  may be negative when the editor is scrolled down. Points\n  directly to the top of the first line, not above the padding.\n  */ get documentTop(){return this.contentDOM.getBoundingClientRect().top+this.viewState.paddingTop;}/**\n  Reports the padding above and below the document.\n  */ get documentPadding(){return{top:this.viewState.paddingTop,bottom:this.viewState.paddingBottom};}/**\n  Find the text line or block widget at the given vertical\n  position (which is interpreted as relative to the [top of the\n  document](https://codemirror.net/6/docs/ref/#view.EditorView.documentTop)).\n  */ elementAtHeight(height){this.readMeasured();return this.viewState.elementAtHeight(height);}/**\n  Find the line block (see\n  [`lineBlockAt`](https://codemirror.net/6/docs/ref/#view.EditorView.lineBlockAt) at the given\n  height, again interpreted relative to the [top of the\n  document](https://codemirror.net/6/docs/ref/#view.EditorView.documentTop).\n  */ lineBlockAtHeight(height){this.readMeasured();return this.viewState.lineBlockAtHeight(height);}/**\n  Get the extent and vertical position of all [line\n  blocks](https://codemirror.net/6/docs/ref/#view.EditorView.lineBlockAt) in the viewport. Positions\n  are relative to the [top of the\n  document](https://codemirror.net/6/docs/ref/#view.EditorView.documentTop);\n  */ get viewportLineBlocks(){return this.viewState.viewportLines;}/**\n  Find the line block around the given document position. A line\n  block is a range delimited on both sides by either a\n  non-[hidden](https://codemirror.net/6/docs/ref/#view.Decoration^replace) line breaks, or the\n  start/end of the document. It will usually just hold a line of\n  text, but may be broken into multiple textblocks by block\n  widgets.\n  */ lineBlockAt(pos){return this.viewState.lineBlockAt(pos);}/**\n  The editor's total content height.\n  */ get contentHeight(){return this.viewState.contentHeight;}/**\n  Move a cursor position by [grapheme\n  cluster](https://codemirror.net/6/docs/ref/#state.findClusterBreak). `forward` determines whether\n  the motion is away from the line start, or towards it. In\n  bidirectional text, the line is traversed in visual order, using\n  the editor's [text direction](https://codemirror.net/6/docs/ref/#view.EditorView.textDirection).\n  When the start position was the last one on the line, the\n  returned position will be across the line break. If there is no\n  further line, the original position is returned.\n  \n  By default, this method moves over a single cluster. The\n  optional `by` argument can be used to move across more. It will\n  be called with the first cluster as argument, and should return\n  a predicate that determines, for each subsequent cluster,\n  whether it should also be moved over.\n  */ moveByChar(start,forward,by){return skipAtoms(this,start,moveByChar(this,start,forward,by));}/**\n  Move a cursor position across the next group of either\n  [letters](https://codemirror.net/6/docs/ref/#state.EditorState.charCategorizer) or non-letter\n  non-whitespace characters.\n  */ moveByGroup(start,forward){return skipAtoms(this,start,moveByChar(this,start,forward,initial=>byGroup(this,start.head,initial)));}/**\n  Move to the next line boundary in the given direction. If\n  `includeWrap` is true, line wrapping is on, and there is a\n  further wrap point on the current line, the wrap point will be\n  returned. Otherwise this function will return the start or end\n  of the line.\n  */ moveToLineBoundary(start,forward,includeWrap=true){return moveToLineBoundary(this,start,forward,includeWrap);}/**\n  Move a cursor position vertically. When `distance` isn't given,\n  it defaults to moving to the next line (including wrapped\n  lines). Otherwise, `distance` should provide a positive distance\n  in pixels.\n  \n  When `start` has a\n  [`goalColumn`](https://codemirror.net/6/docs/ref/#state.SelectionRange.goalColumn), the vertical\n  motion will use that as a target horizontal position. Otherwise,\n  the cursor's own horizontal position is used. The returned\n  cursor will have its goal column set to whichever column was\n  used.\n  */ moveVertically(start,forward,distance){return skipAtoms(this,start,moveVertically(this,start,forward,distance));}/**\n  Find the DOM parent node and offset (child offset if `node` is\n  an element, character offset when it is a text node) at the\n  given document position.\n  \n  Note that for positions that aren't currently in\n  `visibleRanges`, the resulting DOM position isn't necessarily\n  meaningful (it may just point before or after a placeholder\n  element).\n  */ domAtPos(pos){return this.docView.domAtPos(pos);}/**\n  Find the document position at the given DOM node. Can be useful\n  for associating positions with DOM events. Will raise an error\n  when `node` isn't part of the editor content.\n  */ posAtDOM(node,offset=0){return this.docView.posFromDOM(node,offset);}posAtCoords(coords,precise=true){this.readMeasured();return posAtCoords(this,coords,precise);}/**\n  Get the screen coordinates at the given document position.\n  `side` determines whether the coordinates are based on the\n  element before (-1) or after (1) the position (if no element is\n  available on the given side, the method will transparently use\n  another strategy to get reasonable coordinates).\n  */ coordsAtPos(pos,side=1){this.readMeasured();let rect=this.docView.coordsAt(pos,side);if(!rect||rect.left==rect.right)return rect;let line=this.state.doc.lineAt(pos),order=this.bidiSpans(line);let span=order[BidiSpan.find(order,pos-line.from,-1,side)];return flattenRect(rect,span.dir==Direction.LTR==side>0);}/**\n  The default width of a character in the editor. May not\n  accurately reflect the width of all characters (given variable\n  width fonts or styling of invididual ranges).\n  */ get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth;}/**\n  The default height of a line in the editor. May not be accurate\n  for all lines.\n  */ get defaultLineHeight(){return this.viewState.heightOracle.lineHeight;}/**\n  The text direction\n  ([`direction`](https://developer.mozilla.org/en-US/docs/Web/CSS/direction)\n  CSS property) of the editor's content element.\n  */ get textDirection(){return this.viewState.defaultTextDirection;}/**\n  Find the text direction of the block at the given position, as\n  assigned by CSS. If\n  [`perLineTextDirection`](https://codemirror.net/6/docs/ref/#view.EditorView^perLineTextDirection)\n  isn't enabled, or the given position is outside of the viewport,\n  this will always return the same as\n  [`textDirection`](https://codemirror.net/6/docs/ref/#view.EditorView.textDirection). Note that\n  this may trigger a DOM layout.\n  */ textDirectionAt(pos){let perLine=this.state.facet(perLineTextDirection);if(!perLine||pos<this.viewport.from||pos>this.viewport.to)return this.textDirection;this.readMeasured();return this.docView.textDirectionAt(pos);}/**\n  Whether this editor [wraps lines](https://codemirror.net/6/docs/ref/#view.EditorView.lineWrapping)\n  (as determined by the\n  [`white-space`](https://developer.mozilla.org/en-US/docs/Web/CSS/white-space)\n  CSS property of its content element).\n  */ get lineWrapping(){return this.viewState.heightOracle.lineWrapping;}/**\n  Returns the bidirectional text structure of the given line\n  (which should be in the current document) as an array of span\n  objects. The order of these spans matches the [text\n  direction](https://codemirror.net/6/docs/ref/#view.EditorView.textDirection)—if that is\n  left-to-right, the leftmost spans come first, otherwise the\n  rightmost spans come first.\n  */ bidiSpans(line){if(line.length>MaxBidiLine)return trivialOrder(line.length);let dir=this.textDirectionAt(line.from);for(let entry of this.bidiCache)if(entry.from==line.from&&entry.dir==dir)return entry.order;let order=computeOrder(line.text,dir);this.bidiCache.push(new CachedOrder(line.from,line.to,dir,order));return order;}/**\n  Check whether the editor has focus.\n  */ get hasFocus(){var _a;return(this.dom.ownerDocument.hasFocus()||browser.safari&&((_a=this.inputState)===null||_a===void 0?void 0:_a.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM;}/**\n  Put focus on the editor.\n  */ focus(){this.observer.ignore(()=>{focusPreventScroll(this.contentDOM);this.docView.updateSelection();});}/**\n  Update the [root](https://codemirror.net/6/docs/ref/##view.EditorViewConfig.root) in which the editor lives. This is only\n  necessary when moving the editor's existing DOM to a new window or shadow root.\n  */ setRoot(root){if(this._root!=root){this._root=root;this.observer.setWindow((root.nodeType==9?root:root.ownerDocument).defaultView||window);this.mountStyles();}}/**\n  Clean up this editor view, removing its element from the\n  document, unregistering event handlers, and notifying\n  plugins. The view instance can no longer be used after\n  calling this.\n  */ destroy(){for(let plugin2 of this.plugins)plugin2.destroy(this);this.plugins=[];this.inputState.destroy();this.dom.remove();this.observer.destroy();if(this.measureScheduled>-1)this.win.cancelAnimationFrame(this.measureScheduled);this.destroyed=true;}/**\n  Returns an effect that can be\n  [added](https://codemirror.net/6/docs/ref/#state.TransactionSpec.effects) to a transaction to\n  cause it to scroll the given position or range into view.\n  */ static scrollIntoView(pos,options={}){return scrollIntoView.of(new ScrollTarget(typeof pos==\"number\"?EditorSelection.cursor(pos):pos,options.y,options.x,options.yMargin,options.xMargin));}/**\n  Returns an extension that can be used to add DOM event handlers.\n  The value should be an object mapping event names to handler\n  functions. For any given event, such functions are ordered by\n  extension precedence, and the first handler to return true will\n  be assumed to have handled that event, and no other handlers or\n  built-in behavior will be activated for it. These are registered\n  on the [content element](https://codemirror.net/6/docs/ref/#view.EditorView.contentDOM), except\n  for `scroll` handlers, which will be called any time the\n  editor's [scroll element](https://codemirror.net/6/docs/ref/#view.EditorView.scrollDOM) or one of\n  its parent nodes is scrolled.\n  */ static domEventHandlers(handlers2){return ViewPlugin.define(()=>({}),{eventHandlers:handlers2});}/**\n  Create a theme extension. The first argument can be a\n  [`style-mod`](https://github.com/marijnh/style-mod#documentation)\n  style spec providing the styles for the theme. These will be\n  prefixed with a generated class for the style.\n  \n  Because the selectors will be prefixed with a scope class, rule\n  that directly match the editor's [wrapper\n  element](https://codemirror.net/6/docs/ref/#view.EditorView.dom)—to which the scope class will be\n  added—need to be explicitly differentiated by adding an `&` to\n  the selector for that element—for example\n  `&.cm-focused`.\n  \n  When `dark` is set to true, the theme will be marked as dark,\n  which will cause the `&dark` rules from [base\n  themes](https://codemirror.net/6/docs/ref/#view.EditorView^baseTheme) to be used (as opposed to\n  `&light` when a light theme is active).\n  */ static theme(spec,options){let prefix=StyleModule.newName();let result=[theme.of(prefix),styleModule.of(buildTheme(`.${prefix}`,spec)),];if(options&&options.dark)result.push(darkTheme.of(true));return result;}/**\n  Create an extension that adds styles to the base theme. Like\n  with [`theme`](https://codemirror.net/6/docs/ref/#view.EditorView^theme), use `&` to indicate the\n  place of the editor wrapper element when directly targeting\n  that. You can also use `&dark` or `&light` instead to only\n  target editors with a dark or light theme.\n  */ static baseTheme(spec){return Prec.lowest(styleModule.of(buildTheme(\".\"+baseThemeID,spec,lightDarkIDs)));}/**\n  Retrieve an editor view instance from the view's DOM\n  representation.\n  */ static findFromDOM(dom){var _a;let content=dom.querySelector(\".cm-content\");let cView=content&&ContentView.get(content)||ContentView.get(dom);return((_a=cView===null||cView===void 0?void 0:cView.rootView)===null||_a===void 0?void 0:_a.view)||null;}/**\n  Construct a new view. You'll want to either provide a `parent`\n  option, or put `view.dom` into your document after creating a\n  view, so that the user can see the editor.\n  */ constructor(config={}){this.plugins=[];this.pluginMap=/* @__PURE__ */ new Map;this.editorAttrs={};this.contentAttrs={};this.bidiCache=[];this.destroyed=false;this.updateState=2;this.measureScheduled=-1;this.measureRequests=[];this.contentDOM=document.createElement(\"div\");this.scrollDOM=document.createElement(\"div\");this.scrollDOM.tabIndex=-1;this.scrollDOM.className=\"cm-scroller\";this.scrollDOM.appendChild(this.contentDOM);this.announceDOM=document.createElement(\"div\");this.announceDOM.style.cssText=\"position: fixed; top: -10000px\";this.announceDOM.setAttribute(\"aria-live\",\"polite\");this.dom=document.createElement(\"div\");this.dom.appendChild(this.announceDOM);this.dom.appendChild(this.scrollDOM);this._dispatch=config.dispatch||(tr=>this.update([tr]));this.dispatch=this.dispatch.bind(this);this._root=config.root||getRoot(config.parent)||document;this.viewState=new ViewState(config.state||EditorState.create(config));this.plugins=this.state.facet(viewPlugin).map(spec=>new PluginInstance(spec));for(let plugin2 of this.plugins)plugin2.update(this);this.observer=new DOMObserver(this);this.inputState=new InputState(this);this.inputState.ensureHandlers(this,this.plugins);this.docView=new DocView(this);this.mountStyles();this.updateAttrs();this.updateState=0;this.requestMeasure();if(config.parent)config.parent.appendChild(this.dom);}};EditorView.styleModule=styleModule;EditorView.inputHandler=inputHandler;EditorView.focusChangeEffect=focusChangeEffect;EditorView.perLineTextDirection=perLineTextDirection;EditorView.exceptionSink=exceptionSink;EditorView.updateListener=updateListener;EditorView.editable=editable;EditorView.mouseSelectionStyle=mouseSelectionStyle;EditorView.dragMovesSelection=dragMovesSelection$1;EditorView.clickAddsSelectionRange=clickAddsSelectionRange;EditorView.decorations=decorations;EditorView.atomicRanges=atomicRanges;EditorView.scrollMargins=scrollMargins;EditorView.darkTheme=darkTheme;EditorView.contentAttributes=contentAttributes;EditorView.editorAttributes=editorAttributes;EditorView.lineWrapping=/* @__PURE__ */ EditorView.contentAttributes.of({class:\"cm-lineWrapping\"});EditorView.announce=/* @__PURE__ */ StateEffect.define();var MaxBidiLine=4096;var BadMeasure={};var CachedOrder=class{static update(cache,changes){if(changes.empty)return cache;let result=[],lastDir=cache.length?cache[cache.length-1].dir:Direction.LTR;for(let i=Math.max(0,cache.length-10);i<cache.length;i++){let entry=cache[i];if(entry.dir==lastDir&&!changes.touchesRange(entry.from,entry.to))result.push(new CachedOrder(changes.mapPos(entry.from,1),changes.mapPos(entry.to,-1),entry.dir,entry.order));}return result;}constructor(from,to,dir,order){this.from=from;this.to=to;this.dir=dir;this.order=order;}};function attrsFromFacet(view,facet,base2){for(let sources=view.state.facet(facet),i=sources.length-1;i>=0;i--){let source=sources[i],value=typeof source==\"function\"?source(view):source;if(value)combineAttrs(value,base2);}return base2;}var currentPlatform=browser.mac?\"mac\":browser.windows?\"win\":browser.linux?\"linux\":\"key\";function normalizeKeyName(name,platform){const parts=name.split(/-(?!$)/);let result=parts[parts.length-1];if(result==\"Space\")result=\" \";let alt,ctrl,shift2,meta;for(let i=0;i<parts.length-1;++i){const mod=parts[i];if(/^(cmd|meta|m)$/i.test(mod))meta=true;else if(/^a(lt)?$/i.test(mod))alt=true;else if(/^(c|ctrl|control)$/i.test(mod))ctrl=true;else if(/^s(hift)?$/i.test(mod))shift2=true;else if(/^mod$/i.test(mod)){if(platform==\"mac\")meta=true;else ctrl=true;}else throw new Error(\"Unrecognized modifier name: \"+mod);}if(alt)result=\"Alt-\"+result;if(ctrl)result=\"Ctrl-\"+result;if(meta)result=\"Meta-\"+result;if(shift2)result=\"Shift-\"+result;return result;}function modifiers(name,event,shift2){if(event.altKey)name=\"Alt-\"+name;if(event.ctrlKey)name=\"Ctrl-\"+name;if(event.metaKey)name=\"Meta-\"+name;if(shift2!==false&&event.shiftKey)name=\"Shift-\"+name;return name;}var handleKeyEvents=/* @__PURE__ */ Prec.default(/* @__PURE__ */ EditorView.domEventHandlers({keydown(event,view){return runHandlers(getKeymap(view.state),event,view,\"editor\");}}));var keymap=/* @__PURE__ */ Facet.define({enables:handleKeyEvents});var Keymaps=/* @__PURE__ */ new WeakMap;function getKeymap(state){let bindings=state.facet(keymap);let map=Keymaps.get(bindings);if(!map)Keymaps.set(bindings,map=buildKeymap(bindings.reduce((a,b)=>a.concat(b),[])));return map;}function runScopeHandlers(view,event,scope){return runHandlers(getKeymap(view.state),event,view,scope);}var storedPrefix=null;var PrefixTimeout=4e3;function buildKeymap(bindings,platform=currentPlatform){let bound=/* @__PURE__ */ Object.create(null);let isPrefix=/* @__PURE__ */ Object.create(null);let checkPrefix=(name,is)=>{let current=isPrefix[name];if(current==null)isPrefix[name]=is;else if(current!=is)throw new Error(\"Key binding \"+name+\" is used both as a regular binding and as a multi-stroke prefix\");};let add=(scope,key,command,preventDefault)=>{var _a,_b;let scopeObj=bound[scope]||(bound[scope]=/* @__PURE__ */ Object.create(null));let parts=key.split(/ (?!$)/).map(k=>normalizeKeyName(k,platform));for(let i=1;i<parts.length;i++){let prefix=parts.slice(0,i).join(\" \");checkPrefix(prefix,true);if(!scopeObj[prefix])scopeObj[prefix]={preventDefault:true,run:[view=>{let ourObj=storedPrefix={view,prefix,scope};setTimeout(()=>{if(storedPrefix==ourObj)storedPrefix=null;},PrefixTimeout);return true;},]};}let full=parts.join(\" \");checkPrefix(full,false);let binding=scopeObj[full]||(scopeObj[full]={preventDefault:false,run:((_b=(_a=scopeObj._any)===null||_a===void 0?void 0:_a.run)===null||_b===void 0?void 0:_b.slice())||[]});if(command)binding.run.push(command);if(preventDefault)binding.preventDefault=true;};for(let b of bindings){let scopes=b.scope?b.scope.split(\" \"):[\"editor\"];if(b.any)for(let scope of scopes){let scopeObj=bound[scope]||(bound[scope]=/* @__PURE__ */ Object.create(null));if(!scopeObj._any)scopeObj._any={preventDefault:false,run:[]};for(let key in scopeObj)scopeObj[key].run.push(b.any);}let name=b[platform]||b.key;if(!name)continue;for(let scope1 of scopes){add(scope1,name,b.run,b.preventDefault);if(b.shift)add(scope1,\"Shift-\"+name,b.shift,b.preventDefault);}}return bound;}function runHandlers(map,event,view,scope){let name=keyName(event);let charCode=codePointAt(name,0),isChar=codePointSize(charCode)==name.length&&name!=\" \";let prefix=\"\",fallthrough=false;if(storedPrefix&&storedPrefix.view==view&&storedPrefix.scope==scope){prefix=storedPrefix.prefix+\" \";if(fallthrough=modifierCodes.indexOf(event.keyCode)<0)storedPrefix=null;}let ran=/* @__PURE__ */ new Set;let runFor=binding=>{if(binding){for(let cmd of binding.run)if(!ran.has(cmd)){ran.add(cmd);if(cmd(view,event))return true;}if(binding.preventDefault)fallthrough=true;}return false;};let scopeObj=map[scope],baseName,shiftName;if(scopeObj){if(runFor(scopeObj[prefix+modifiers(name,event,!isChar)]))return true;if(isChar&&(event.altKey||event.metaKey||event.ctrlKey)&&!(browser.windows&&event.ctrlKey&&event.altKey)&&(baseName=base[event.keyCode])&&baseName!=name){if(runFor(scopeObj[prefix+modifiers(baseName,event,true)]))return true;else if(event.shiftKey&&(shiftName=shift[event.keyCode])!=name&&shiftName!=baseName&&runFor(scopeObj[prefix+modifiers(shiftName,event,false)]))return true;}else if(isChar&&event.shiftKey){if(runFor(scopeObj[prefix+modifiers(name,event,true)]))return true;}if(runFor(scopeObj._any))return true;}return fallthrough;}var RectangleMarker=class{draw(){let elt=document.createElement(\"div\");elt.className=this.className;this.adjust(elt);return elt;}update(elt,prev){if(prev.className!=this.className)return false;this.adjust(elt);return true;}adjust(elt){elt.style.left=this.left+\"px\";elt.style.top=this.top+\"px\";if(this.width!=null)elt.style.width=this.width+\"px\";elt.style.height=this.height+\"px\";}eq(p){return this.left==p.left&&this.top==p.top&&this.width==p.width&&this.height==p.height&&this.className==p.className;}/**\n  Create a set of rectangles for the given selection range,\n  assigning them theclass`className`. Will create a single\n  rectangle for empty ranges, and a set of selection-style\n  rectangles covering the range's content (in a bidi-aware\n  way) for non-empty ones.\n  */ static forRange(view,className,range){if(range.empty){let pos=view.coordsAtPos(range.head,range.assoc||1);if(!pos)return[];let base2=getBase(view);return[new RectangleMarker(className,pos.left-base2.left,pos.top-base2.top,null,pos.bottom-pos.top),];}else{return rectanglesForRange(view,className,range);}}/**\n  Create a marker with the given class and dimensions. If `width`\n  is null, the DOM element will get no width style.\n  */ constructor(className,left,top2,width,height){this.className=className;this.left=left;this.top=top2;this.width=width;this.height=height;}};function getBase(view){let rect=view.scrollDOM.getBoundingClientRect();let left=view.textDirection==Direction.LTR?rect.left:rect.right-view.scrollDOM.clientWidth;return{left:left-view.scrollDOM.scrollLeft,top:rect.top-view.scrollDOM.scrollTop};}function wrappedLine(view,pos,inside2){let range=EditorSelection.cursor(pos);return{from:Math.max(inside2.from,view.moveToLineBoundary(range,false,true).from),to:Math.min(inside2.to,view.moveToLineBoundary(range,true,true).from),type:BlockType.Text};}function rectanglesForRange(view,className,range){if(range.to<=view.viewport.from||range.from>=view.viewport.to)return[];let from=Math.max(range.from,view.viewport.from),to=Math.min(range.to,view.viewport.to);let ltr=view.textDirection==Direction.LTR;let content=view.contentDOM,contentRect=content.getBoundingClientRect(),base2=getBase(view);let lineElt=content.querySelector(\".cm-line\"),lineStyle=lineElt&&window.getComputedStyle(lineElt);let leftSide=contentRect.left+(lineStyle?parseInt(lineStyle.paddingLeft)+Math.min(0,parseInt(lineStyle.textIndent)):0);let rightSide=contentRect.right-(lineStyle?parseInt(lineStyle.paddingRight):0);let startBlock=blockAt(view,from),endBlock=blockAt(view,to);let visualStart=startBlock.type==BlockType.Text?startBlock:null;let visualEnd=endBlock.type==BlockType.Text?endBlock:null;if(visualStart&&(view.lineWrapping||startBlock.widgetLineBreaks))visualStart=wrappedLine(view,from,visualStart);if(visualEnd&&(view.lineWrapping||endBlock.widgetLineBreaks))visualEnd=wrappedLine(view,to,visualEnd);if(visualStart&&visualEnd&&visualStart.from==visualEnd.from){return pieces(drawForLine(range.from,range.to,visualStart));}else{let top2=visualStart?drawForLine(range.from,null,visualStart):drawForWidget(startBlock,false);let bottom=visualEnd?drawForLine(null,range.to,visualEnd):drawForWidget(endBlock,true);let between=[];if((visualStart||startBlock).to<(visualEnd||endBlock).from-(visualStart&&visualEnd?1:0)||startBlock.widgetLineBreaks>1&&top2.bottom+view.defaultLineHeight/2<bottom.top)between.push(piece(leftSide,top2.bottom,rightSide,bottom.top));else if(top2.bottom<bottom.top&&view.elementAtHeight((top2.bottom+bottom.top)/2).type==BlockType.Text)top2.bottom=bottom.top=(top2.bottom+bottom.top)/2;return pieces(top2).concat(between).concat(pieces(bottom));}function piece(left,top2,right,bottom){return new RectangleMarker(className,left-base2.left,top2-base2.top-.01,right-left,bottom-top2+.01);}function pieces({top:top2,bottom,horizontal}){let pieces2=[];for(let i=0;i<horizontal.length;i+=2)pieces2.push(piece(horizontal[i],top2,horizontal[i+1],bottom));return pieces2;}function drawForLine(from2,to2,line){let top2=1e9,bottom=-1e9,horizontal=[];function addSpan(from3,fromOpen,to3,toOpen,dir){let fromCoords=view.coordsAtPos(from3,from3==line.to?-2:2);let toCoords=view.coordsAtPos(to3,to3==line.from?2:-2);if(!fromCoords||!toCoords)return;top2=Math.min(fromCoords.top,toCoords.top,top2);bottom=Math.max(fromCoords.bottom,toCoords.bottom,bottom);if(dir==Direction.LTR)horizontal.push(ltr&&fromOpen?leftSide:fromCoords.left,ltr&&toOpen?rightSide:toCoords.right);else horizontal.push(!ltr&&toOpen?leftSide:toCoords.left,!ltr&&fromOpen?rightSide:fromCoords.right);}let start=from2!==null&&from2!==void 0?from2:line.from,end=to2!==null&&to2!==void 0?to2:line.to;for(let r of view.visibleRanges)if(r.to>start&&r.from<end){for(let pos=Math.max(r.from,start),endPos=Math.min(r.to,end);;){let docLine=view.state.doc.lineAt(pos);for(let span of view.bidiSpans(docLine)){let spanFrom=span.from+docLine.from,spanTo=span.to+docLine.from;if(spanFrom>=endPos)break;if(spanTo>pos)addSpan(Math.max(spanFrom,pos),from2==null&&spanFrom<=start,Math.min(spanTo,endPos),to2==null&&spanTo>=end,span.dir);}pos=docLine.to+1;if(pos>=endPos)break;}}if(horizontal.length==0)addSpan(start,from2==null,end,to2==null,view.textDirection);return{top:top2,bottom,horizontal};}function drawForWidget(block,top2){let y=contentRect.top+(top2?block.top:block.bottom);return{top:y,bottom:y,horizontal:[]};}}function sameMarker(a,b){return a.constructor==b.constructor&&a.eq(b);}var LayerView=class{update(update){if(update.startState.facet(layerOrder)!=update.state.facet(layerOrder))this.setOrder(update.state);if(this.layer.update(update,this.dom)||update.geometryChanged)update.view.requestMeasure(this.measureReq);}setOrder(state){let pos=0,order=state.facet(layerOrder);while(pos<order.length&&order[pos]!=this.layer)pos++;this.dom.style.zIndex=String((this.layer.above?150:-1)-pos);}measure(){return this.layer.markers(this.view);}draw(markers){if(markers.length!=this.drawn.length||markers.some((p,i)=>!sameMarker(p,this.drawn[i]))){let old=this.dom.firstChild,oldI=0;for(let marker of markers){if(marker.update&&old&&marker.constructor&&this.drawn[oldI].constructor&&marker.update(old,this.drawn[oldI])){old=old.nextSibling;oldI++;}else{this.dom.insertBefore(marker.draw(),old);}}while(old){let next=old.nextSibling;old.remove();old=next;}this.drawn=markers;}}destroy(){if(this.layer.destroy)this.layer.destroy(this.dom,this.view);this.dom.remove();}constructor(view,layer2){this.view=view;this.layer=layer2;this.drawn=[];this.measureReq={read:this.measure.bind(this),write:this.draw.bind(this)};this.dom=view.scrollDOM.appendChild(document.createElement(\"div\"));this.dom.classList.add(\"cm-layer\");if(layer2.above)this.dom.classList.add(\"cm-layer-above\");if(layer2.class)this.dom.classList.add(layer2.class);this.dom.setAttribute(\"aria-hidden\",\"true\");this.setOrder(view.state);view.requestMeasure(this.measureReq);if(layer2.mount)layer2.mount(this.dom,view);}};var layerOrder=/* @__PURE__ */ Facet.define();function layer(config){return[ViewPlugin.define(v=>new LayerView(v,config)),layerOrder.of(config),];}var CanHidePrimary=!browser.ios;var selectionConfig=/* @__PURE__ */ Facet.define({combine(configs){return combineConfig(configs,{cursorBlinkRate:1200,drawRangeCursor:true},{cursorBlinkRate:(a,b)=>Math.min(a,b),drawRangeCursor:(a,b)=>a||b});}});function drawSelection(config={}){return[selectionConfig.of(config),cursorLayer,selectionLayer,hideNativeSelection,nativeSelectionHidden.of(true),];}function configChanged(update){return update.startState.facet(selectionConfig)!=update.state.facet(selectionConfig);}var cursorLayer=/* @__PURE__ */ layer({above:true,markers(view){let{state}=view,conf=state.facet(selectionConfig);let cursors=[];for(let r of state.selection.ranges){let prim=r==state.selection.main;if(r.empty?!prim||CanHidePrimary:conf.drawRangeCursor){let className=prim?\"cm-cursor cm-cursor-primary\":\"cm-cursor cm-cursor-secondary\";let cursor=r.empty?r:EditorSelection.cursor(r.head,r.head>r.anchor?-1:1);for(let piece of RectangleMarker.forRange(view,className,cursor))cursors.push(piece);}}return cursors;},update(update,dom){if(update.transactions.some(tr=>tr.selection))dom.style.animationName=dom.style.animationName==\"cm-blink\"?\"cm-blink2\":\"cm-blink\";let confChange=configChanged(update);if(confChange)setBlinkRate(update.state,dom);return update.docChanged||update.selectionSet||confChange;},mount(dom,view){setBlinkRate(view.state,dom);},class:\"cm-cursorLayer\"});function setBlinkRate(state,dom){dom.style.animationDuration=state.facet(selectionConfig).cursorBlinkRate+\"ms\";}var selectionLayer=/* @__PURE__ */ layer({above:false,markers(view){return view.state.selection.ranges.map(r=>r.empty?[]:RectangleMarker.forRange(view,\"cm-selectionBackground\",r)).reduce((a,b)=>a.concat(b));},update(update,dom){return update.docChanged||update.selectionSet||update.viewportChanged||configChanged(update);},class:\"cm-selectionLayer\"});var themeSpec={\".cm-line\":{\"& ::selection\":{backgroundColor:\"transparent !important\"},\"&::selection\":{backgroundColor:\"transparent !important\"}}};if(CanHidePrimary)themeSpec[\".cm-line\"].caretColor=\"transparent !important\";var hideNativeSelection=/* @__PURE__ */ Prec.highest(/* @__PURE__ */ EditorView.theme(themeSpec));var setDropCursorPos=/* @__PURE__ */ StateEffect.define({map(pos,mapping){return pos==null?null:mapping.mapPos(pos);}});var dropCursorPos=/* @__PURE__ */ StateField.define({create(){return null;},update(pos,tr){if(pos!=null)pos=tr.changes.mapPos(pos);return tr.effects.reduce((pos2,e)=>e.is(setDropCursorPos)?e.value:pos2,pos);}});var drawDropCursor=/* @__PURE__ */ ViewPlugin.fromClass(class{update(update){var _a;let cursorPos=update.state.field(dropCursorPos);if(cursorPos==null){if(this.cursor!=null){(_a=this.cursor)===null||_a===void 0?void 0:_a.remove();this.cursor=null;}}else{if(!this.cursor){this.cursor=this.view.scrollDOM.appendChild(document.createElement(\"div\"));this.cursor.className=\"cm-dropCursor\";}if(update.startState.field(dropCursorPos)!=cursorPos||update.docChanged||update.geometryChanged)this.view.requestMeasure(this.measureReq);}}readPos(){let pos=this.view.state.field(dropCursorPos);let rect=pos!=null&&this.view.coordsAtPos(pos);if(!rect)return null;let outer=this.view.scrollDOM.getBoundingClientRect();return{left:rect.left-outer.left+this.view.scrollDOM.scrollLeft,top:rect.top-outer.top+this.view.scrollDOM.scrollTop,height:rect.bottom-rect.top};}drawCursor(pos){if(this.cursor){if(pos){this.cursor.style.left=pos.left+\"px\";this.cursor.style.top=pos.top+\"px\";this.cursor.style.height=pos.height+\"px\";}else{this.cursor.style.left=\"-100000px\";}}}destroy(){if(this.cursor)this.cursor.remove();}setDropPos(pos){if(this.view.state.field(dropCursorPos)!=pos)this.view.dispatch({effects:setDropCursorPos.of(pos)});}constructor(view){this.view=view;this.cursor=null;this.measureReq={read:this.readPos.bind(this),write:this.drawCursor.bind(this)};}},{eventHandlers:{dragover(event){this.setDropPos(this.view.posAtCoords({x:event.clientX,y:event.clientY}));},dragleave(event){if(event.target==this.view.contentDOM||!this.view.contentDOM.contains(event.relatedTarget))this.setDropPos(null);},dragend(){this.setDropPos(null);},drop(){this.setDropPos(null);}}});function dropCursor(){return[dropCursorPos,drawDropCursor];}function iterMatches(doc2,re,from,to,f){re.lastIndex=0;for(let cursor=doc2.iterRange(from,to),pos=from,m;!cursor.next().done;pos+=cursor.value.length){if(!cursor.lineBreak)while(m=re.exec(cursor.value))f(pos+m.index,m);}}function matchRanges(view,maxLength){let visible=view.visibleRanges;if(visible.length==1&&visible[0].from==view.viewport.from&&visible[0].to==view.viewport.to)return visible;let result=[];for(let{from,to}of visible){from=Math.max(view.state.doc.lineAt(from).from,from-maxLength);to=Math.min(view.state.doc.lineAt(to).to,to+maxLength);if(result.length&&result[result.length-1].to>=from)result[result.length-1].to=to;else result.push({from,to});}return result;}var MatchDecorator=class{/**\n  Compute the full set of decorations for matches in the given\n  view's viewport. You'll want to call this when initializing your\n  plugin.\n  */ createDeco(view){let build=new RangeSetBuilder,add=build.add.bind(build);for(let{from,to}of matchRanges(view,this.maxLength))iterMatches(view.state.doc,this.regexp,from,to,(from2,m)=>this.addMatch(m,view,from2,add));return build.finish();}/**\n  Update a set of decorations for a view update. `deco` _must_ be\n  the set of decorations produced by _this_ `MatchDecorator` for\n  the view state before the update.\n  */ updateDeco(update,deco){let changeFrom=1e9,changeTo=-1;if(update.docChanged)update.changes.iterChanges((_f,_t,from,to)=>{if(to>update.view.viewport.from&&from<update.view.viewport.to){changeFrom=Math.min(from,changeFrom);changeTo=Math.max(to,changeTo);}});if(update.viewportChanged||changeTo-changeFrom>1e3)return this.createDeco(update.view);if(changeTo>-1)return this.updateRange(update.view,deco.map(update.changes),changeFrom,changeTo);return deco;}updateRange(view,deco,updateFrom,updateTo){for(let r of view.visibleRanges){let from=Math.max(r.from,updateFrom),to=Math.min(r.to,updateTo);if(to>from){let fromLine=view.state.doc.lineAt(from),toLine=fromLine.to<to?view.state.doc.lineAt(to):fromLine;let start=Math.max(r.from,fromLine.from),end=Math.min(r.to,toLine.to);if(this.boundary){for(;from>fromLine.from;from--)if(this.boundary.test(fromLine.text[from-1-fromLine.from])){start=from;break;}for(;to<toLine.to;to++)if(this.boundary.test(toLine.text[to-toLine.from])){end=to;break;}}let ranges=[],m;let add=(from2,to2,deco2)=>ranges.push(deco2.range(from2,to2));if(fromLine==toLine){this.regexp.lastIndex=start-fromLine.from;while((m=this.regexp.exec(fromLine.text))&&m.index<end-fromLine.from)this.addMatch(m,view,m.index+fromLine.from,add);}else{iterMatches(view.state.doc,this.regexp,start,end,(from2,m2)=>this.addMatch(m2,view,from2,add));}deco=deco.update({filterFrom:start,filterTo:end,filter:(from2,to2)=>from2<start||to2>end,add:ranges});}}return deco;}/**\n  Create a decorator.\n  */ constructor(config){const{regexp,decoration,decorate,boundary,maxLength=1e3}=config;if(!regexp.global)throw new RangeError(\"The regular expression given to MatchDecorator should have its 'g' flag set\");this.regexp=regexp;if(decorate){this.addMatch=(match,view,from,add)=>decorate(add,from,from+match[0].length,match,view);}else if(typeof decoration==\"function\"){this.addMatch=(match,view,from,add)=>{let deco=decoration(match,view,from);if(deco)add(from,from+match[0].length,deco);};}else if(decoration){this.addMatch=(match,_view,from,add)=>add(from,from+match[0].length,decoration);}else{throw new RangeError(\"Either 'decorate' or 'decoration' should be provided to MatchDecorator\");}this.boundary=boundary;this.maxLength=maxLength;}};var UnicodeRegexpSupport=/x/.unicode!=null?\"gu\":\"g\";var Specials=/* @__PURE__ */ new RegExp(\"[\\0-\\b\\n-\\x1f\\x7f-\\x9f\\xad؜​‎‏\\u2028\\u2029‭‮⁦⁧⁩\\uFEFF￹-￼]\",UnicodeRegexpSupport);var Names={0:\"null\",7:\"bell\",8:\"backspace\",10:\"newline\",11:\"vertical tab\",13:\"carriage return\",27:\"escape\",8203:\"zero width space\",8204:\"zero width non-joiner\",8205:\"zero width joiner\",8206:\"left-to-right mark\",8207:\"right-to-left mark\",8232:\"line separator\",8237:\"left-to-right override\",8238:\"right-to-left override\",8294:\"left-to-right isolate\",8295:\"right-to-left isolate\",8297:\"pop directional isolate\",8233:\"paragraph separator\",65279:\"zero width no-break space\",65532:\"object replacement\"};var _supportsTabSize=null;function supportsTabSize(){var _a;if(_supportsTabSize==null&&typeof document!=\"undefined\"&&document.body){let styles=document.body.style;_supportsTabSize=((_a=styles.tabSize)!==null&&_a!==void 0?_a:styles.MozTabSize)!=null;}return _supportsTabSize||false;}var specialCharConfig=/* @__PURE__ */ Facet.define({combine(configs){let config=combineConfig(configs,{render:null,specialChars:Specials,addSpecialChars:null});if(config.replaceTabs=!supportsTabSize())config.specialChars=new RegExp(\"\t|\"+config.specialChars.source,UnicodeRegexpSupport);if(config.addSpecialChars)config.specialChars=new RegExp(config.specialChars.source+\"|\"+config.addSpecialChars.source,UnicodeRegexpSupport);return config;}});function highlightSpecialChars(config={}){return[specialCharConfig.of(config),specialCharPlugin()];}var _plugin=null;function specialCharPlugin(){return _plugin||(_plugin=ViewPlugin.fromClass(class{makeDecorator(conf){return new MatchDecorator({regexp:conf.specialChars,decoration:(m,view,pos)=>{let{doc:doc2}=view.state;let code=codePointAt(m[0],0);if(code==9){let line=doc2.lineAt(pos);let size=view.state.tabSize,col=countColumn(line.text,size,pos-line.from);return Decoration.replace({widget:new TabWidget((size-col%size)*this.view.defaultCharacterWidth)});}return this.decorationCache[code]||(this.decorationCache[code]=Decoration.replace({widget:new SpecialCharWidget(conf,code)}));},boundary:conf.replaceTabs?void 0:/[^]/});}update(update){let conf=update.state.facet(specialCharConfig);if(update.startState.facet(specialCharConfig)!=conf){this.decorator=this.makeDecorator(conf);this.decorations=this.decorator.createDeco(update.view);}else{this.decorations=this.decorator.updateDeco(update,this.decorations);}}constructor(view){this.view=view;this.decorations=Decoration.none;this.decorationCache=/* @__PURE__ */ Object.create(null);this.decorator=this.makeDecorator(view.state.facet(specialCharConfig));this.decorations=this.decorator.createDeco(view);}},{decorations:v=>v.decorations}));}var DefaultPlaceholder=\"•\";function placeholder$1(code){if(code>=32)return DefaultPlaceholder;if(code==10)return\"␤\";return String.fromCharCode(9216+code);}var SpecialCharWidget=class extends WidgetType{eq(other){return other.code==this.code;}toDOM(view){let ph=placeholder$1(this.code);let desc=view.state.phrase(\"Control character\")+\" \"+(Names[this.code]||\"0x\"+this.code.toString(16));let custom=this.options.render&&this.options.render(this.code,desc,ph);if(custom)return custom;let span=document.createElement(\"span\");span.textContent=ph;span.title=desc;span.setAttribute(\"aria-label\",desc);span.className=\"cm-specialChar\";return span;}ignoreEvent(){return false;}constructor(options,code){super();this.options=options;this.code=code;}};var TabWidget=class extends WidgetType{eq(other){return other.width==this.width;}toDOM(){let span=document.createElement(\"span\");span.textContent=\"\t\";span.className=\"cm-tab\";span.style.width=this.width+\"px\";return span;}ignoreEvent(){return false;}constructor(width){super();this.width=width;}};var plugin=/* @__PURE__ */ ViewPlugin.fromClass(class{update(update){let{view}=update;let height=view.viewState.editorHeight-view.defaultLineHeight-view.documentPadding.top-.5;if(height!=this.height){this.height=height;this.attrs={style:`padding-bottom: ${height}px`};}}constructor(){this.height=1e3;this.attrs={style:\"padding-bottom: 1000px\"};}});function scrollPastEnd(){return[plugin,contentAttributes.of(view=>{var _a;return((_a=view.plugin(plugin))===null||_a===void 0?void 0:_a.attrs)||null;}),];}function highlightActiveLine(){return activeLineHighlighter;}var lineDeco=/* @__PURE__ */ Decoration.line({class:\"cm-activeLine\"});var activeLineHighlighter=/* @__PURE__ */ ViewPlugin.fromClass(class{update(update){if(update.docChanged||update.selectionSet)this.decorations=this.getDeco(update.view);}getDeco(view){let lastLineStart=-1,deco=[];for(let r of view.state.selection.ranges){let line=view.lineBlockAt(r.head);if(line.from>lastLineStart){deco.push(lineDeco.range(line.from));lastLineStart=line.from;}}return Decoration.set(deco);}constructor(view){this.decorations=this.getDeco(view);}},{decorations:v=>v.decorations});var Placeholder=class extends WidgetType{toDOM(){let wrap=document.createElement(\"span\");wrap.className=\"cm-placeholder\";wrap.style.pointerEvents=\"none\";wrap.appendChild(typeof this.content==\"string\"?document.createTextNode(this.content):this.content);if(typeof this.content==\"string\")wrap.setAttribute(\"aria-label\",\"placeholder \"+this.content);else wrap.setAttribute(\"aria-hidden\",\"true\");return wrap;}coordsAt(dom){let rects=dom.firstChild?clientRectsFor(dom.firstChild):[];if(!rects.length)return null;let style=window.getComputedStyle(dom.parentNode);let rect=flattenRect(rects[0],style.direction!=\"rtl\");let lineHeight=parseInt(style.lineHeight);if(rect.bottom-rect.top>lineHeight*1.5)return{left:rect.left,right:rect.right,top:rect.top,bottom:rect.top+lineHeight};return rect;}ignoreEvent(){return false;}constructor(content){super();this.content=content;}};function placeholder(content){return ViewPlugin.fromClass(class{get decorations(){return this.view.state.doc.length?Decoration.none:this.placeholder;}constructor(view){this.view=view;this.placeholder=Decoration.set([Decoration.widget({widget:new Placeholder(content),side:1}).range(0),]);}},{decorations:v=>v.decorations});}var MaxOff=2e3;function rectangleFor(state,a,b){let startLine=Math.min(a.line,b.line),endLine=Math.max(a.line,b.line);let ranges=[];if(a.off>MaxOff||b.off>MaxOff||a.col<0||b.col<0){let startOff=Math.min(a.off,b.off),endOff=Math.max(a.off,b.off);for(let i=startLine;i<=endLine;i++){let line=state.doc.line(i);if(line.length<=endOff)ranges.push(EditorSelection.range(line.from+startOff,line.to+endOff));}}else{let startCol=Math.min(a.col,b.col),endCol=Math.max(a.col,b.col);for(let i1=startLine;i1<=endLine;i1++){let line1=state.doc.line(i1);let start=findColumn(line1.text,startCol,state.tabSize,true);if(start<0){ranges.push(EditorSelection.cursor(line1.to));}else{let end=findColumn(line1.text,endCol,state.tabSize);ranges.push(EditorSelection.range(line1.from+start,line1.from+end));}}}return ranges;}function absoluteColumn(view,x){let ref=view.coordsAtPos(view.viewport.from);return ref?Math.round(Math.abs((ref.left-x)/view.defaultCharacterWidth)):-1;}function getPos(view,event){let offset=view.posAtCoords({x:event.clientX,y:event.clientY},false);let line=view.state.doc.lineAt(offset),off=offset-line.from;let col=off>MaxOff?-1:off==line.length?absoluteColumn(view,event.clientX):countColumn(line.text,view.state.tabSize,offset-line.from);return{line:line.number,col,off};}function rectangleSelectionStyle(view,event){let start=getPos(view,event),startSel=view.state.selection;if(!start)return null;return{update(update){if(update.docChanged){let newStart=update.changes.mapPos(update.startState.doc.line(start.line).from);let newLine=update.state.doc.lineAt(newStart);start={line:newLine.number,col:start.col,off:Math.min(start.off,newLine.length)};startSel=startSel.map(update.changes);}},get(event2,_extend,multiple){let cur=getPos(view,event2);if(!cur)return startSel;let ranges=rectangleFor(view.state,start,cur);if(!ranges.length)return startSel;if(multiple)return EditorSelection.create(ranges.concat(startSel.ranges));else return EditorSelection.create(ranges);}};}function rectangularSelection(options){let filter=(options===null||options===void 0?void 0:options.eventFilter)||(e=>e.altKey&&e.button==0);return EditorView.mouseSelectionStyle.of((view,event)=>filter(event)?rectangleSelectionStyle(view,event):null);}var keys={Alt:[18,e=>!!e.altKey],Control:[17,e=>!!e.ctrlKey],Shift:[16,e=>!!e.shiftKey],Meta:[91,e=>!!e.metaKey]};var showCrosshair={style:\"cursor: crosshair\"};function crosshairCursor(options={}){let[code,getter]=keys[options.key||\"Alt\"];let plugin2=ViewPlugin.fromClass(class{set(isDown){if(this.isDown!=isDown){this.isDown=isDown;this.view.update([]);}}constructor(view){this.view=view;this.isDown=false;}},{eventHandlers:{keydown(e){this.set(e.keyCode==code||getter(e));},keyup(e){if(e.keyCode==code||!getter(e))this.set(false);},mousemove(e){this.set(getter(e));}}});return[plugin2,EditorView.contentAttributes.of(view=>{var _a;return((_a=view.plugin(plugin2))===null||_a===void 0?void 0:_a.isDown)?showCrosshair:null;}),];}var Outside=\"-10000px\";var TooltipViewManager=class{update(update){var _a;let input=update.state.facet(this.facet);let tooltips2=input.filter(x=>x);if(input===this.input){for(let t of this.tooltipViews)if(t.update)t.update(update);return false;}let tooltipViews=[];for(let i=0;i<tooltips2.length;i++){let tip=tooltips2[i],known=-1;if(!tip)continue;for(let i2=0;i2<this.tooltips.length;i2++){let other=this.tooltips[i2];if(other&&other.create==tip.create)known=i2;}if(known<0){tooltipViews[i]=this.createTooltipView(tip);}else{let tooltipView=tooltipViews[i]=this.tooltipViews[known];if(tooltipView.update)tooltipView.update(update);}}for(let t1 of this.tooltipViews)if(tooltipViews.indexOf(t1)<0){t1.dom.remove();(_a=t1.destroy)===null||_a===void 0?void 0:_a.call(t1);}this.input=input;this.tooltips=tooltips2;this.tooltipViews=tooltipViews;return true;}constructor(view,facet,createTooltipView){this.facet=facet;this.createTooltipView=createTooltipView;this.input=view.state.facet(facet);this.tooltips=this.input.filter(t=>t);this.tooltipViews=this.tooltips.map(createTooltipView);}};function tooltips(config={}){return tooltipConfig.of(config);}function windowSpace(view){let{win}=view;return{top:0,left:0,bottom:win.innerHeight,right:win.innerWidth};}var tooltipConfig=/* @__PURE__ */ Facet.define({combine:values=>{var _a,_b,_c;return{position:browser.ios?\"absolute\":((_a=values.find(conf=>conf.position))===null||_a===void 0?void 0:_a.position)||\"fixed\",parent:((_b=values.find(conf=>conf.parent))===null||_b===void 0?void 0:_b.parent)||null,tooltipSpace:((_c=values.find(conf=>conf.tooltipSpace))===null||_c===void 0?void 0:_c.tooltipSpace)||windowSpace};}});var knownHeight=/* @__PURE__ */ new WeakMap;var tooltipPlugin=/* @__PURE__ */ ViewPlugin.fromClass(class{createContainer(){if(this.parent){this.container=document.createElement(\"div\");this.container.style.position=\"relative\";this.container.className=this.view.themeClasses;this.parent.appendChild(this.container);}else{this.container=this.view.dom;}}observeIntersection(){if(this.intersectionObserver){this.intersectionObserver.disconnect();for(let tooltip of this.manager.tooltipViews)this.intersectionObserver.observe(tooltip.dom);}}measureSoon(){if(this.measureTimeout<0)this.measureTimeout=setTimeout(()=>{this.measureTimeout=-1;this.maybeMeasure();},50);}update(update){if(update.transactions.length)this.lastTransaction=Date.now();let updated=this.manager.update(update);if(updated)this.observeIntersection();let shouldMeasure=updated||update.geometryChanged;let newConfig=update.state.facet(tooltipConfig);if(newConfig.position!=this.position){this.position=newConfig.position;for(let t of this.manager.tooltipViews)t.dom.style.position=this.position;shouldMeasure=true;}if(newConfig.parent!=this.parent){if(this.parent)this.container.remove();this.parent=newConfig.parent;this.createContainer();for(let t1 of this.manager.tooltipViews)this.container.appendChild(t1.dom);shouldMeasure=true;}else if(this.parent&&this.view.themeClasses!=this.classes){this.classes=this.container.className=this.view.themeClasses;}if(shouldMeasure)this.maybeMeasure();}createTooltip(tooltip){let tooltipView=tooltip.create(this.view);tooltipView.dom.classList.add(\"cm-tooltip\");if(tooltip.arrow&&!tooltipView.dom.querySelector(\".cm-tooltip > .cm-tooltip-arrow\")){let arrow=document.createElement(\"div\");arrow.className=\"cm-tooltip-arrow\";tooltipView.dom.appendChild(arrow);}tooltipView.dom.style.position=this.position;tooltipView.dom.style.top=Outside;this.container.appendChild(tooltipView.dom);if(tooltipView.mount)tooltipView.mount(this.view);return tooltipView;}destroy(){var _a,_b;this.view.win.removeEventListener(\"resize\",this.measureSoon);for(let tooltipView of this.manager.tooltipViews){tooltipView.dom.remove();(_a=tooltipView.destroy)===null||_a===void 0?void 0:_a.call(tooltipView);}(_b=this.intersectionObserver)===null||_b===void 0?void 0:_b.disconnect();clearTimeout(this.measureTimeout);}readMeasure(){let editor=this.view.dom.getBoundingClientRect();return{editor,parent:this.parent?this.container.getBoundingClientRect():editor,pos:this.manager.tooltips.map((t,i)=>{let tv=this.manager.tooltipViews[i];return tv.getCoords?tv.getCoords(t.pos):this.view.coordsAtPos(t.pos);}),size:this.manager.tooltipViews.map(({dom})=>dom.getBoundingClientRect()),space:this.view.state.facet(tooltipConfig).tooltipSpace(this.view)};}writeMeasure(measured){var _a;let{editor,space}=measured;let others=[];for(let i=0;i<this.manager.tooltips.length;i++){let tooltip=this.manager.tooltips[i],tView=this.manager.tooltipViews[i],{dom}=tView;let pos=measured.pos[i],size=measured.size[i];if(!pos||pos.bottom<=Math.max(editor.top,space.top)||pos.top>=Math.min(editor.bottom,space.bottom)||pos.right<Math.max(editor.left,space.left)-.1||pos.left>Math.min(editor.right,space.right)+.1){dom.style.top=Outside;continue;}let arrow=tooltip.arrow?tView.dom.querySelector(\".cm-tooltip-arrow\"):null;let arrowHeight=arrow?7:0;let width=size.right-size.left,height=(_a=knownHeight.get(tView))!==null&&_a!==void 0?_a:size.bottom-size.top;let offset=tView.offset||noOffset,ltr=this.view.textDirection==Direction.LTR;let left=size.width>space.right-space.left?ltr?space.left:space.right-size.width:ltr?Math.min(pos.left-(arrow?14:0)+offset.x,space.right-width):Math.max(space.left,pos.left-width+(arrow?14:0)-offset.x);let above=!!tooltip.above;if(!tooltip.strictSide&&(above?pos.top-(size.bottom-size.top)-offset.y<space.top:pos.bottom+(size.bottom-size.top)+offset.y>space.bottom)&&above==space.bottom-pos.bottom>pos.top-space.top)above=!above;let spaceVert=(above?pos.top-space.top:space.bottom-pos.bottom)-arrowHeight;if(spaceVert<height&&tView.resize!==false){if(spaceVert<this.view.defaultLineHeight){dom.style.top=Outside;continue;}knownHeight.set(tView,height);dom.style.height=(height=spaceVert)+\"px\";}else if(dom.style.height){dom.style.height=\"\";}let top2=above?pos.top-height-arrowHeight-offset.y:pos.bottom+arrowHeight+offset.y;let right=left+width;if(tView.overlap!==true){for(let r of others)if(r.left<right&&r.right>left&&r.top<top2+height&&r.bottom>top2)top2=above?r.top-height-2-arrowHeight:r.bottom+arrowHeight+2;}if(this.position==\"absolute\"){dom.style.top=top2-measured.parent.top+\"px\";dom.style.left=left-measured.parent.left+\"px\";}else{dom.style.top=top2+\"px\";dom.style.left=left+\"px\";}if(arrow)arrow.style.left=`${pos.left+(ltr?offset.x:-offset.x)-(left+14-7)}px`;if(tView.overlap!==true)others.push({left,top:top2,right,bottom:top2+height});dom.classList.toggle(\"cm-tooltip-above\",above);dom.classList.toggle(\"cm-tooltip-below\",!above);if(tView.positioned)tView.positioned(measured.space);}}maybeMeasure(){if(this.manager.tooltips.length){if(this.view.inView)this.view.requestMeasure(this.measureReq);if(this.inView!=this.view.inView){this.inView=this.view.inView;if(!this.inView)for(let tv of this.manager.tooltipViews)tv.dom.style.top=Outside;}}}constructor(view){this.view=view;this.inView=true;this.lastTransaction=0;this.measureTimeout=-1;let config=view.state.facet(tooltipConfig);this.position=config.position;this.parent=config.parent;this.classes=view.themeClasses;this.createContainer();this.measureReq={read:this.readMeasure.bind(this),write:this.writeMeasure.bind(this),key:this};this.manager=new TooltipViewManager(view,showTooltip,t=>this.createTooltip(t));this.intersectionObserver=typeof IntersectionObserver==\"function\"?new IntersectionObserver(entries=>{if(Date.now()>this.lastTransaction-50&&entries.length>0&&entries[entries.length-1].intersectionRatio<1)this.measureSoon();},{threshold:[1]}):null;this.observeIntersection();view.win.addEventListener(\"resize\",this.measureSoon=this.measureSoon.bind(this));this.maybeMeasure();}},{eventHandlers:{scroll(){this.maybeMeasure();}}});var baseTheme=/* @__PURE__ */ EditorView.baseTheme({\".cm-tooltip\":{zIndex:100,boxSizing:\"border-box\"},\"&light .cm-tooltip\":{border:\"1px solid #bbb\",backgroundColor:\"#f5f5f5\"},\"&light .cm-tooltip-section:not(:first-child)\":{borderTop:\"1px solid #bbb\"},\"&dark .cm-tooltip\":{backgroundColor:\"#333338\",color:\"white\"},\".cm-tooltip-arrow\":{height:`${7}px`,width:`${7*2}px`,position:\"absolute\",zIndex:-1,overflow:\"hidden\",\"&:before, &:after\":{content:\"''\",position:\"absolute\",width:0,height:0,borderLeft:`${7}px solid transparent`,borderRight:`${7}px solid transparent`},\".cm-tooltip-above &\":{bottom:`-${7}px`,\"&:before\":{borderTop:`${7}px solid #bbb`},\"&:after\":{borderTop:`${7}px solid #f5f5f5`,bottom:\"1px\"}},\".cm-tooltip-below &\":{top:`-${7}px`,\"&:before\":{borderBottom:`${7}px solid #bbb`},\"&:after\":{borderBottom:`${7}px solid #f5f5f5`,top:\"1px\"}}},\"&dark .cm-tooltip .cm-tooltip-arrow\":{\"&:before\":{borderTopColor:\"#333338\",borderBottomColor:\"#333338\"},\"&:after\":{borderTopColor:\"transparent\",borderBottomColor:\"transparent\"}}});var noOffset={x:0,y:0};var showTooltip=/* @__PURE__ */ Facet.define({enables:[tooltipPlugin,baseTheme]});var showHoverTooltip=/* @__PURE__ */ Facet.define();var HoverTooltipHost=class{// Needs to be static so that host tooltip instances always match\nstatic create(view){return new HoverTooltipHost(view);}createHostedView(tooltip){let hostedView=tooltip.create(this.view);hostedView.dom.classList.add(\"cm-tooltip-section\");this.dom.appendChild(hostedView.dom);if(this.mounted&&hostedView.mount)hostedView.mount(this.view);return hostedView;}mount(view){for(let hostedView of this.manager.tooltipViews){if(hostedView.mount)hostedView.mount(view);}this.mounted=true;}positioned(space){for(let hostedView of this.manager.tooltipViews){if(hostedView.positioned)hostedView.positioned(space);}}update(update){this.manager.update(update);}destroy(){var _a;for(let t of this.manager.tooltipViews)(_a=t.destroy)===null||_a===void 0?void 0:_a.call(t);}constructor(view){this.view=view;this.mounted=false;this.dom=document.createElement(\"div\");this.dom.classList.add(\"cm-tooltip-hover\");this.manager=new TooltipViewManager(view,showHoverTooltip,t=>this.createHostedView(t));}};var showHoverTooltipHost=/* @__PURE__ */ showTooltip.compute([showHoverTooltip],state=>{let tooltips2=state.facet(showHoverTooltip).filter(t=>t);if(tooltips2.length===0)return null;return{pos:Math.min(...tooltips2.map(t=>t.pos)),end:Math.max(...tooltips2.filter(t=>t.end!=null).map(t=>t.end)),create:HoverTooltipHost.create,above:tooltips2[0].above,arrow:tooltips2.some(t=>t.arrow)};});var HoverPlugin=class{update(){if(this.pending){this.pending=null;clearTimeout(this.restartTimeout);this.restartTimeout=setTimeout(()=>this.startHover(),20);}}get active(){return this.view.state.field(this.field);}checkHover(){this.hoverTimeout=-1;if(this.active)return;let hovered=Date.now()-this.lastMove.time;if(hovered<this.hoverTime)this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime-hovered);else this.startHover();}startHover(){clearTimeout(this.restartTimeout);let{lastMove}=this;let pos=this.view.contentDOM.contains(lastMove.target)?this.view.posAtCoords(lastMove):null;if(pos==null)return;let posCoords=this.view.coordsAtPos(pos);if(posCoords==null||lastMove.y<posCoords.top||lastMove.y>posCoords.bottom||lastMove.x<posCoords.left-this.view.defaultCharacterWidth||lastMove.x>posCoords.right+this.view.defaultCharacterWidth)return;let bidi=this.view.bidiSpans(this.view.state.doc.lineAt(pos)).find(s=>s.from<=pos&&s.to>=pos);let rtl=bidi&&bidi.dir==Direction.RTL?-1:1;let open=this.source(this.view,pos,lastMove.x<posCoords.left?-rtl:rtl);if(open===null||open===void 0?void 0:open.then){let pending=this.pending={pos};open.then(result=>{if(this.pending==pending){this.pending=null;if(result)this.view.dispatch({effects:this.setHover.of(result)});}},e=>logException(this.view.state,e,\"hover tooltip\"));}else if(open){this.view.dispatch({effects:this.setHover.of(open)});}}mousemove(event){var _a;this.lastMove={x:event.clientX,y:event.clientY,target:event.target,time:Date.now()};if(this.hoverTimeout<0)this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime);let tooltip=this.active;if(tooltip&&!isInTooltip(this.lastMove.target)||this.pending){let{pos}=tooltip||this.pending,end=(_a=tooltip===null||tooltip===void 0?void 0:tooltip.end)!==null&&_a!==void 0?_a:pos;if(pos==end?this.view.posAtCoords(this.lastMove)!=pos:!isOverRange(this.view,pos,end,event.clientX,event.clientY,6)){this.view.dispatch({effects:this.setHover.of(null)});this.pending=null;}}}mouseleave(e){clearTimeout(this.hoverTimeout);this.hoverTimeout=-1;if(this.active&&!isInTooltip(e.relatedTarget))this.view.dispatch({effects:this.setHover.of(null)});}destroy(){clearTimeout(this.hoverTimeout);this.view.dom.removeEventListener(\"mouseleave\",this.mouseleave);this.view.dom.removeEventListener(\"mousemove\",this.mousemove);}constructor(view,source,field,setHover,hoverTime){this.view=view;this.source=source;this.field=field;this.setHover=setHover;this.hoverTime=hoverTime;this.hoverTimeout=-1;this.restartTimeout=-1;this.pending=null;this.lastMove={x:0,y:0,target:view.dom,time:0};this.checkHover=this.checkHover.bind(this);view.dom.addEventListener(\"mouseleave\",this.mouseleave=this.mouseleave.bind(this));view.dom.addEventListener(\"mousemove\",this.mousemove=this.mousemove.bind(this));}};function isInTooltip(elt){for(let cur=elt;cur;cur=cur.parentNode)if(cur.nodeType==1&&cur.classList.contains(\"cm-tooltip\"))return true;return false;}function isOverRange(view,from,to,x,y,margin){let range=document.createRange();let fromDOM=view.domAtPos(from),toDOM=view.domAtPos(to);range.setEnd(toDOM.node,toDOM.offset);range.setStart(fromDOM.node,fromDOM.offset);let rects=range.getClientRects();range.detach();for(let i=0;i<rects.length;i++){let rect=rects[i];let dist=Math.max(rect.top-y,y-rect.bottom,rect.left-x,x-rect.right);if(dist<=margin)return true;}return false;}function hoverTooltip(source,options={}){let setHover=StateEffect.define();let hoverState=StateField.define({create(){return null;},update(value,tr){if(value&&(options.hideOnChange&&(tr.docChanged||tr.selection)||options.hideOn&&options.hideOn(tr,value)))return null;if(value&&tr.docChanged){let newPos=tr.changes.mapPos(value.pos,-1,MapMode.TrackDel);if(newPos==null)return null;let copy=Object.assign(/* @__PURE__ */ Object.create(null),value);copy.pos=newPos;if(value.end!=null)copy.end=tr.changes.mapPos(value.end);value=copy;}for(let effect of tr.effects){if(effect.is(setHover))value=effect.value;if(effect.is(closeHoverTooltipEffect))value=null;}return value;},provide:f=>showHoverTooltip.from(f)});return[hoverState,ViewPlugin.define(view=>new HoverPlugin(view,source,hoverState,setHover,options.hoverTime||300)),showHoverTooltipHost,];}function getTooltip(view,tooltip){let plugin2=view.plugin(tooltipPlugin);if(!plugin2)return null;let found=plugin2.manager.tooltips.indexOf(tooltip);return found<0?null:plugin2.manager.tooltipViews[found];}function hasHoverTooltips(state){return state.facet(showHoverTooltip).some(x=>x);}var closeHoverTooltipEffect=/* @__PURE__ */ StateEffect.define();var closeHoverTooltips=/* @__PURE__ */ closeHoverTooltipEffect.of(null);function repositionTooltips(view){var _a;(_a=view.plugin(tooltipPlugin))===null||_a===void 0?void 0:_a.maybeMeasure();}var panelConfig=/* @__PURE__ */ Facet.define({combine(configs){let topContainer,bottomContainer;for(let c of configs){topContainer=topContainer||c.topContainer;bottomContainer=bottomContainer||c.bottomContainer;}return{topContainer,bottomContainer};}});function panels(config){return config?[panelConfig.of(config)]:[];}function getPanel(view,panel){let plugin2=view.plugin(panelPlugin);let index=plugin2?plugin2.specs.indexOf(panel):-1;return index>-1?plugin2.panels[index]:null;}var panelPlugin=/* @__PURE__ */ ViewPlugin.fromClass(class{update(update){let conf=update.state.facet(panelConfig);if(this.top.container!=conf.topContainer){this.top.sync([]);this.top=new PanelGroup(update.view,true,conf.topContainer);}if(this.bottom.container!=conf.bottomContainer){this.bottom.sync([]);this.bottom=new PanelGroup(update.view,false,conf.bottomContainer);}this.top.syncClasses();this.bottom.syncClasses();let input=update.state.facet(showPanel);if(input!=this.input){let specs=input.filter(x=>x);let panels2=[],top2=[],bottom=[],mount=[];for(let spec of specs){let known=this.specs.indexOf(spec),panel;if(known<0){panel=spec(update.view);mount.push(panel);}else{panel=this.panels[known];if(panel.update)panel.update(update);}panels2.push(panel);(panel.top?top2:bottom).push(panel);}this.specs=specs;this.panels=panels2;this.top.sync(top2);this.bottom.sync(bottom);for(let p of mount){p.dom.classList.add(\"cm-panel\");if(p.mount)p.mount();}}else{for(let p1 of this.panels)if(p1.update)p1.update(update);}}destroy(){this.top.sync([]);this.bottom.sync([]);}constructor(view){this.input=view.state.facet(showPanel);this.specs=this.input.filter(s=>s);this.panels=this.specs.map(spec=>spec(view));let conf=view.state.facet(panelConfig);this.top=new PanelGroup(view,true,conf.topContainer);this.bottom=new PanelGroup(view,false,conf.bottomContainer);this.top.sync(this.panels.filter(p=>p.top));this.bottom.sync(this.panels.filter(p=>!p.top));for(let p of this.panels){p.dom.classList.add(\"cm-panel\");if(p.mount)p.mount();}}},{provide:plugin2=>EditorView.scrollMargins.of(view=>{let value=view.plugin(plugin2);return value&&{top:value.top.scrollMargin(),bottom:value.bottom.scrollMargin()};})});var PanelGroup=class{sync(panels2){for(let p of this.panels)if(p.destroy&&panels2.indexOf(p)<0)p.destroy();this.panels=panels2;this.syncDOM();}syncDOM(){if(this.panels.length==0){if(this.dom){this.dom.remove();this.dom=void 0;}return;}if(!this.dom){this.dom=document.createElement(\"div\");this.dom.className=this.top?\"cm-panels cm-panels-top\":\"cm-panels cm-panels-bottom\";this.dom.style[this.top?\"top\":\"bottom\"]=\"0\";let parent=this.container||this.view.dom;parent.insertBefore(this.dom,this.top?parent.firstChild:null);}let curDOM=this.dom.firstChild;for(let panel of this.panels){if(panel.dom.parentNode==this.dom){while(curDOM!=panel.dom)curDOM=rm(curDOM);curDOM=curDOM.nextSibling;}else{this.dom.insertBefore(panel.dom,curDOM);}}while(curDOM)curDOM=rm(curDOM);}scrollMargin(){return!this.dom||this.container?0:Math.max(0,this.top?this.dom.getBoundingClientRect().bottom-Math.max(0,this.view.scrollDOM.getBoundingClientRect().top):Math.min(innerHeight,this.view.scrollDOM.getBoundingClientRect().bottom)-this.dom.getBoundingClientRect().top);}syncClasses(){if(!this.container||this.classes==this.view.themeClasses)return;for(let cls of this.classes.split(\" \"))if(cls)this.container.classList.remove(cls);for(let cls1 of(this.classes=this.view.themeClasses).split(\" \"))if(cls1)this.container.classList.add(cls1);}constructor(view,top2,container){this.view=view;this.top=top2;this.container=container;this.dom=void 0;this.classes=\"\";this.panels=[];this.syncClasses();}};function rm(node){let next=node.nextSibling;node.remove();return next;}var showPanel=/* @__PURE__ */ Facet.define({enables:panelPlugin});var GutterMarker=class extends RangeValue{/**\n  @internal\n  */ compare(other){return this==other||this.constructor==other.constructor&&this.eq(other);}/**\n  Compare this marker to another marker of the same type.\n  */ eq(other){return false;}/**\n  Called if the marker has a `toDOM` method and its representation\n  was removed from a gutter.\n  */ destroy(dom){}};GutterMarker.prototype.elementClass=\"\";GutterMarker.prototype.toDOM=void 0;GutterMarker.prototype.mapMode=MapMode.TrackBefore;GutterMarker.prototype.startSide=GutterMarker.prototype.endSide=-1;GutterMarker.prototype.point=true;var gutterLineClass=/* @__PURE__ */ Facet.define();var defaults={class:\"\",renderEmptyElements:false,elementStyle:\"\",markers:()=>RangeSet.empty,lineMarker:()=>null,widgetMarker:()=>null,lineMarkerChange:null,initialSpacer:null,updateSpacer:null,domEventHandlers:{}};var activeGutters=/* @__PURE__ */ Facet.define();function gutter(config){return[gutters(),activeGutters.of(Object.assign(Object.assign({},defaults),config)),];}var unfixGutters=/* @__PURE__ */ Facet.define({combine:values=>values.some(x=>x)});function gutters(config){let result=[gutterView];if(config&&config.fixed===false)result.push(unfixGutters.of(true));return result;}var gutterView=/* @__PURE__ */ ViewPlugin.fromClass(class{update(update){if(this.updateGutters(update)){let vpA=this.prevViewport,vpB=update.view.viewport;let vpOverlap=Math.min(vpA.to,vpB.to)-Math.max(vpA.from,vpB.from);this.syncGutters(vpOverlap<(vpB.to-vpB.from)*.8);}if(update.geometryChanged)this.dom.style.minHeight=this.view.contentHeight+\"px\";if(this.view.state.facet(unfixGutters)!=!this.fixed){this.fixed=!this.fixed;this.dom.style.position=this.fixed?\"sticky\":\"\";}this.prevViewport=update.view.viewport;}syncGutters(detach){let after=this.dom.nextSibling;if(detach)this.dom.remove();let lineClasses=RangeSet.iter(this.view.state.facet(gutterLineClass),this.view.viewport.from);let classSet=[];let contexts=this.gutters.map(gutter2=>new UpdateContext(gutter2,this.view.viewport,-this.view.documentPadding.top));for(let line of this.view.viewportLineBlocks){if(classSet.length)classSet=[];if(Array.isArray(line.type)){let first=true;for(let b of line.type){if(b.type==BlockType.Text&&first){advanceCursor(lineClasses,classSet,b.from);for(let cx of contexts)cx.line(this.view,b,classSet);first=false;}else if(b.widget){for(let cx1 of contexts)cx1.widget(this.view,b);}}}else if(line.type==BlockType.Text){advanceCursor(lineClasses,classSet,line.from);for(let cx2 of contexts)cx2.line(this.view,line,classSet);}}for(let cx3 of contexts)cx3.finish();if(detach)this.view.scrollDOM.insertBefore(this.dom,after);}updateGutters(update){let prev=update.startState.facet(activeGutters),cur=update.state.facet(activeGutters);let change=update.docChanged||update.heightChanged||update.viewportChanged||!RangeSet.eq(update.startState.facet(gutterLineClass),update.state.facet(gutterLineClass),update.view.viewport.from,update.view.viewport.to);if(prev==cur){for(let gutter2 of this.gutters)if(gutter2.update(update))change=true;}else{change=true;let gutters2=[];for(let conf of cur){let known=prev.indexOf(conf);if(known<0){gutters2.push(new SingleGutterView(this.view,conf));}else{this.gutters[known].update(update);gutters2.push(this.gutters[known]);}}for(let g of this.gutters){g.dom.remove();if(gutters2.indexOf(g)<0)g.destroy();}for(let g1 of gutters2)this.dom.appendChild(g1.dom);this.gutters=gutters2;}return change;}destroy(){for(let view of this.gutters)view.destroy();this.dom.remove();}constructor(view){this.view=view;this.prevViewport=view.viewport;this.dom=document.createElement(\"div\");this.dom.className=\"cm-gutters\";this.dom.setAttribute(\"aria-hidden\",\"true\");this.dom.style.minHeight=this.view.contentHeight+\"px\";this.gutters=view.state.facet(activeGutters).map(conf=>new SingleGutterView(view,conf));for(let gutter2 of this.gutters)this.dom.appendChild(gutter2.dom);this.fixed=!view.state.facet(unfixGutters);if(this.fixed){this.dom.style.position=\"sticky\";}this.syncGutters(false);view.scrollDOM.insertBefore(this.dom,view.contentDOM);}},{provide:plugin2=>EditorView.scrollMargins.of(view=>{let value=view.plugin(plugin2);if(!value||value.gutters.length==0||!value.fixed)return null;return view.textDirection==Direction.LTR?{left:value.dom.offsetWidth}:{right:value.dom.offsetWidth};})});function asArray(val){return Array.isArray(val)?val:[val];}function advanceCursor(cursor,collect,pos){while(cursor.value&&cursor.from<=pos){if(cursor.from==pos)collect.push(cursor.value);cursor.next();}}var UpdateContext=class{addElement(view,block,markers){let{gutter:gutter2}=this,above=block.top-this.height;if(this.i==gutter2.elements.length){let newElt=new GutterElement(view,block.height,above,markers);gutter2.elements.push(newElt);gutter2.dom.appendChild(newElt.dom);}else{gutter2.elements[this.i].update(view,block.height,above,markers);}this.height=block.bottom;this.i++;}line(view,line,extraMarkers){let localMarkers=[];advanceCursor(this.cursor,localMarkers,line.from);if(extraMarkers.length)localMarkers=localMarkers.concat(extraMarkers);let forLine=this.gutter.config.lineMarker(view,line,localMarkers);if(forLine)localMarkers.unshift(forLine);let gutter2=this.gutter;if(localMarkers.length==0&&!gutter2.config.renderEmptyElements)return;this.addElement(view,line,localMarkers);}widget(view,block){let marker=this.gutter.config.widgetMarker(view,block.widget,block);if(marker)this.addElement(view,block,[marker]);}finish(){let gutter2=this.gutter;while(gutter2.elements.length>this.i){let last=gutter2.elements.pop();gutter2.dom.removeChild(last.dom);last.destroy();}}constructor(gutter2,viewport,height){this.gutter=gutter2;this.height=height;this.i=0;this.cursor=RangeSet.iter(gutter2.markers,viewport.from);}};var SingleGutterView=class{update(update){let prevMarkers=this.markers;this.markers=asArray(this.config.markers(update.view));if(this.spacer&&this.config.updateSpacer){let updated=this.config.updateSpacer(this.spacer.markers[0],update);if(updated!=this.spacer.markers[0])this.spacer.update(update.view,0,0,[updated]);}let vp=update.view.viewport;return!RangeSet.eq(this.markers,prevMarkers,vp.from,vp.to)||(this.config.lineMarkerChange?this.config.lineMarkerChange(update):false);}destroy(){for(let elt of this.elements)elt.destroy();}constructor(view,config){this.view=view;this.config=config;this.elements=[];this.spacer=null;this.dom=document.createElement(\"div\");this.dom.className=\"cm-gutter\"+(this.config.class?\" \"+this.config.class:\"\");for(let prop in config.domEventHandlers){this.dom.addEventListener(prop,event=>{let target=event.target,y;if(target!=this.dom&&this.dom.contains(target)){while(target.parentNode!=this.dom)target=target.parentNode;let rect=target.getBoundingClientRect();y=(rect.top+rect.bottom)/2;}else{y=event.clientY;}let line=view.lineBlockAtHeight(y-view.documentTop);if(config.domEventHandlers[prop](view,line,event))event.preventDefault();});}this.markers=asArray(config.markers(view));if(config.initialSpacer){this.spacer=new GutterElement(view,0,0,[config.initialSpacer(view),]);this.dom.appendChild(this.spacer.dom);this.spacer.dom.style.cssText+=\"visibility: hidden; pointer-events: none\";}}};var GutterElement=class{update(view,height,above,markers){if(this.height!=height)this.dom.style.height=(this.height=height)+\"px\";if(this.above!=above)this.dom.style.marginTop=(this.above=above)?above+\"px\":\"\";if(!sameMarkers(this.markers,markers))this.setMarkers(view,markers);}setMarkers(view,markers){let cls=\"cm-gutterElement\",domPos=this.dom.firstChild;for(let iNew=0,iOld=0;;){let skipTo=iOld,marker=iNew<markers.length?markers[iNew++]:null,matched=false;if(marker){let c=marker.elementClass;if(c)cls+=\" \"+c;for(let i=iOld;i<this.markers.length;i++)if(this.markers[i].compare(marker)){skipTo=i;matched=true;break;}}else{skipTo=this.markers.length;}while(iOld<skipTo){let next=this.markers[iOld++];if(next.toDOM){next.destroy(domPos);let after=domPos.nextSibling;domPos.remove();domPos=after;}}if(!marker)break;if(marker.toDOM){if(matched)domPos=domPos.nextSibling;else this.dom.insertBefore(marker.toDOM(view),domPos);}if(matched)iOld++;}this.dom.className=cls;this.markers=markers;}destroy(){this.setMarkers(null,[]);}constructor(view,height,above,markers){this.height=-1;this.above=0;this.markers=[];this.dom=document.createElement(\"div\");this.dom.className=\"cm-gutterElement\";this.update(view,height,above,markers);}};function sameMarkers(a,b){if(a.length!=b.length)return false;for(let i=0;i<a.length;i++)if(!a[i].compare(b[i]))return false;return true;}var lineNumberMarkers=/* @__PURE__ */ Facet.define();var lineNumberConfig=/* @__PURE__ */ Facet.define({combine(values){return combineConfig(values,{formatNumber:String,domEventHandlers:{}},{domEventHandlers(a,b){let result=Object.assign({},a);for(let event in b){let exists=result[event],add=b[event];result[event]=exists?(view,line,event2)=>exists(view,line,event2)||add(view,line,event2):add;}return result;}});}});var NumberMarker=class extends GutterMarker{eq(other){return this.number==other.number;}toDOM(){return document.createTextNode(this.number);}constructor(number){super();this.number=number;}};function formatNumber(view,number){return view.state.facet(lineNumberConfig).formatNumber(number,view.state);}var lineNumberGutter=/* @__PURE__ */ activeGutters.compute([lineNumberConfig],state=>({class:\"cm-lineNumbers\",renderEmptyElements:false,markers(view){return view.state.facet(lineNumberMarkers);},lineMarker(view,line,others){if(others.some(m=>m.toDOM))return null;return new NumberMarker(formatNumber(view,view.state.doc.lineAt(line.from).number));},widgetMarker:()=>null,lineMarkerChange:update=>update.startState.facet(lineNumberConfig)!=update.state.facet(lineNumberConfig),initialSpacer(view){return new NumberMarker(formatNumber(view,maxLineNumber(view.state.doc.lines)));},updateSpacer(spacer,update){let max=formatNumber(update.view,maxLineNumber(update.view.state.doc.lines));return max==spacer.number?spacer:new NumberMarker(max);},domEventHandlers:state.facet(lineNumberConfig).domEventHandlers}));function lineNumbers(config={}){return[lineNumberConfig.of(config),gutters(),lineNumberGutter];}function maxLineNumber(lines){let last=9;while(last<lines)last=last*10+9;return last;}var activeLineGutterMarker=/* @__PURE__ */ new class extends GutterMarker{constructor(){super(...arguments);this.elementClass=\"cm-activeLineGutter\";}};var activeLineGutterHighlighter=/* @__PURE__ */ gutterLineClass.compute([\"selection\"],state=>{let marks=[],last=-1;for(let range of state.selection.ranges){let linePos=state.doc.lineAt(range.head).from;if(linePos>last){last=linePos;marks.push(activeLineGutterMarker.range(linePos));}}return RangeSet.of(marks);});function highlightActiveLineGutter(){return activeLineGutterHighlighter;}var WhitespaceDeco=/* @__PURE__ */ new Map;function getWhitespaceDeco(space){let deco=WhitespaceDeco.get(space);if(!deco)WhitespaceDeco.set(space,deco=Decoration.mark({attributes:space===\"\t\"?{class:\"cm-highlightTab\"}:{class:\"cm-highlightSpace\",\"data-display\":space.replace(/ /g,\"\\xb7\")}}));return deco;}function matcher(decorator){return ViewPlugin.define(view=>({decorations:decorator.createDeco(view),update(u){this.decorations=decorator.updateDeco(u,this.decorations);}}),{decorations:v=>v.decorations});}var whitespaceHighlighter=/* @__PURE__ */ matcher(/* @__PURE__ */ new MatchDecorator({regexp:/\\t| +/g,decoration:match=>getWhitespaceDeco(match[0]),boundary:/\\S/}));function highlightWhitespace(){return whitespaceHighlighter;}var trailingHighlighter=/* @__PURE__ */ matcher(/* @__PURE__ */ new MatchDecorator({regexp:/\\s+$/g,decoration:/* @__PURE__ */ Decoration.mark({class:\"cm-trailingSpace\"}),boundary:/\\S/}));function highlightTrailingWhitespace(){return trailingHighlighter;}var __test={HeightMap,HeightOracle,MeasuredHeights,QueryType,ChangedRange,computeOrder,moveVisually};export{BidiSpan,BlockInfo,BlockType,Decoration,Direction,EditorView,GutterMarker,MatchDecorator,RectangleMarker,ViewPlugin,ViewUpdate,WidgetType,__test,closeHoverTooltips,crosshairCursor,drawSelection,dropCursor,getPanel,getTooltip,gutter,gutterLineClass,gutters,hasHoverTooltips,highlightActiveLine,highlightActiveLineGutter,highlightSpecialChars,highlightTrailingWhitespace,highlightWhitespace,hoverTooltip,keymap,layer,lineNumberMarkers,lineNumbers,logException,panels,placeholder,rectangularSelection,repositionTooltips,runScopeHandlers,scrollPastEnd,showPanel,showTooltip,tooltips,};\nexport const __FramerMetadata__ = {\"exports\":{\"keymap\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"RectangleMarker\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"BlockInfo\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"layer\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"placeholder\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"MatchDecorator\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"dropCursor\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"closeHoverTooltips\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__test\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"panels\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Direction\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"showTooltip\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ViewPlugin\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"gutter\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"drawSelection\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"GutterMarker\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"BidiSpan\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"highlightTrailingWhitespace\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"tooltips\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"EditorView\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Decoration\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"WidgetType\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"lineNumbers\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ViewUpdate\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getTooltip\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"scrollPastEnd\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"highlightSpecialChars\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"highlightActiveLineGutter\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"crosshairCursor\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"logException\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"lineNumberMarkers\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"highlightActiveLine\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getPanel\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"hoverTooltip\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"highlightWhitespace\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"showPanel\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"BlockType\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"gutters\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"hasHoverTooltips\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"rectangularSelection\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"gutterLineClass\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"repositionTooltips\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"runScopeHandlers\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./codemirror_view.map","// @ts-nocheck\n/**\n * This file is generated inside FramerStudio. To update it run \"make build\"\n * inside \"./src/codeblock-dependencies\" and copy the file from \"./build\".\n */ // ../../node_modules/@lezer/common/dist/index.js\nvar DefaultBufferLength=1024;var nextPropID=0;var Range=class{constructor(from,to){this.from=from;this.to=to;}};var NodeProp=class{/// This is meant to be used with\n/// [`NodeSet.extend`](#common.NodeSet.extend) or\n/// [`LRParser.configure`](#lr.ParserConfig.props) to compute\n/// prop values for each node type in the set. Takes a [match\n/// object](#common.NodeType^match) or function that returns undefined\n/// if the node type doesn't get this prop, and the prop's value if\n/// it does.\nadd(match){if(this.perNode)throw new RangeError(\"Can't add per-node props to node types\");if(typeof match!=\"function\")match=NodeType.match(match);return type=>{let result=match(type);return result===void 0?null:[this,result];};}/// Create a new node prop type.\nconstructor(config={}){this.id=nextPropID++;this.perNode=!!config.perNode;this.deserialize=config.deserialize||(()=>{throw new Error(\"This node type doesn't define a deserialize function\");});}};NodeProp.closedBy=new NodeProp({deserialize:str=>str.split(\" \")});NodeProp.openedBy=new NodeProp({deserialize:str=>str.split(\" \")});NodeProp.group=new NodeProp({deserialize:str=>str.split(\" \")});NodeProp.contextHash=new NodeProp({perNode:true});NodeProp.lookAhead=new NodeProp({perNode:true});NodeProp.mounted=new NodeProp({perNode:true});var MountedTree=class{constructor(tree,overlay,parser){this.tree=tree;this.overlay=overlay;this.parser=parser;}};var noProps=/* @__PURE__ */ Object.create(null);var NodeType=class{/// Define a node type.\nstatic define(spec){let props=spec.props&&spec.props.length?/* @__PURE__ */ Object.create(null):noProps;let flags=(spec.top?1:0)|(spec.skipped?2:0)|(spec.error?4:0)|(spec.name==null?8:0);let type=new NodeType(spec.name||\"\",props,spec.id,flags);if(spec.props)for(let src of spec.props){if(!Array.isArray(src))src=src(type);if(src){if(src[0].perNode)throw new RangeError(\"Can't store a per-node prop on a node type\");props[src[0].id]=src[1];}}return type;}/// Retrieves a node prop for this type. Will return `undefined` if\n/// the prop isn't present on this node.\nprop(prop){return this.props[prop.id];}/// True when this is the top node of a grammar.\nget isTop(){return(this.flags&1)>0;}/// True when this node is produced by a skip rule.\nget isSkipped(){return(this.flags&2)>0;}/// Indicates whether this is an error node.\nget isError(){return(this.flags&4)>0;}/// When true, this node type doesn't correspond to a user-declared\n/// named node, for example because it is used to cache repetition.\nget isAnonymous(){return(this.flags&8)>0;}/// Returns true when this node's name or one of its\n/// [groups](#common.NodeProp^group) matches the given string.\nis(name){if(typeof name==\"string\"){if(this.name==name)return true;let group=this.prop(NodeProp.group);return group?group.indexOf(name)>-1:false;}return this.id==name;}/// Create a function from node types to arbitrary values by\n/// specifying an object whose property names are node or\n/// [group](#common.NodeProp^group) names. Often useful with\n/// [`NodeProp.add`](#common.NodeProp.add). You can put multiple\n/// names, separated by spaces, in a single property name to map\n/// multiple node names to a single value.\nstatic match(map){let direct=/* @__PURE__ */ Object.create(null);for(let prop in map)for(let name of prop.split(\" \"))direct[name]=map[prop];return node=>{for(let groups=node.prop(NodeProp.group),i=-1;i<(groups?groups.length:0);i++){let found=direct[i<0?node.name:groups[i]];if(found)return found;}};}/// @internal\nconstructor(name,props,id,flags=0){this.name=name;this.props=props;this.id=id;this.flags=flags;}};NodeType.none=new NodeType(\"\",/* @__PURE__ */ Object.create(null),0,8);var NodeSet=class{/// Create a copy of this set with some node properties added. The\n/// arguments to this method can be created with\n/// [`NodeProp.add`](#common.NodeProp.add).\nextend(...props){let newTypes=[];for(let type of this.types){let newProps=null;for(let source of props){let add=source(type);if(add){if(!newProps)newProps=Object.assign({},type.props);newProps[add[0].id]=add[1];}}newTypes.push(newProps?new NodeType(type.name,newProps,type.id,type.flags):type);}return new NodeSet(newTypes);}/// Create a set with the given types. The `id` property of each\n/// type should correspond to its position within the array.\nconstructor(types){this.types=types;for(let i=0;i<types.length;i++)if(types[i].id!=i)throw new RangeError(\"Node type ids should correspond to array positions when creating a node set\");}};var CachedNode=/* @__PURE__ */ new WeakMap;var CachedInnerNode=/* @__PURE__ */ new WeakMap;var IterMode;(function(IterMode2){IterMode2[IterMode2[\"ExcludeBuffers\"]=1]=\"ExcludeBuffers\";IterMode2[IterMode2[\"IncludeAnonymous\"]=2]=\"IncludeAnonymous\";IterMode2[IterMode2[\"IgnoreMounts\"]=4]=\"IgnoreMounts\";IterMode2[IterMode2[\"IgnoreOverlays\"]=8]=\"IgnoreOverlays\";})(IterMode||(IterMode={}));var Tree=class{/// @internal\ntoString(){let mounted=this.prop(NodeProp.mounted);if(mounted&&!mounted.overlay)return mounted.tree.toString();let children=\"\";for(let ch of this.children){let str=ch.toString();if(str){if(children)children+=\",\";children+=str;}}return!this.type.name?children:(/\\W/.test(this.type.name)&&!this.type.isError?JSON.stringify(this.type.name):this.type.name)+(children.length?\"(\"+children+\")\":\"\");}/// Get a [tree cursor](#common.TreeCursor) positioned at the top of\n/// the tree. Mode can be used to [control](#common.IterMode) which\n/// nodes the cursor visits.\ncursor(mode=0){return new TreeCursor(this.topNode,mode);}/// Get a [tree cursor](#common.TreeCursor) pointing into this tree\n/// at the given position and side (see\n/// [`moveTo`](#common.TreeCursor.moveTo).\ncursorAt(pos,side=0,mode=0){let scope=CachedNode.get(this)||this.topNode;let cursor=new TreeCursor(scope);cursor.moveTo(pos,side);CachedNode.set(this,cursor._tree);return cursor;}/// Get a [syntax node](#common.SyntaxNode) object for the top of the\n/// tree.\nget topNode(){return new TreeNode(this,0,0,null);}/// Get the [syntax node](#common.SyntaxNode) at the given position.\n/// If `side` is -1, this will move into nodes that end at the\n/// position. If 1, it'll move into nodes that start at the\n/// position. With 0, it'll only enter nodes that cover the position\n/// from both sides.\n///\n/// Note that this will not enter\n/// [overlays](#common.MountedTree.overlay), and you often want\n/// [`resolveInner`](#common.Tree.resolveInner) instead.\nresolve(pos,side=0){let node=resolveNode(CachedNode.get(this)||this.topNode,pos,side,false);CachedNode.set(this,node);return node;}/// Like [`resolve`](#common.Tree.resolve), but will enter\n/// [overlaid](#common.MountedTree.overlay) nodes, producing a syntax node\n/// pointing into the innermost overlaid tree at the given position\n/// (with parent links going through all parent structure, including\n/// the host trees).\nresolveInner(pos,side=0){let node=resolveNode(CachedInnerNode.get(this)||this.topNode,pos,side,true);CachedInnerNode.set(this,node);return node;}/// Iterate over the tree and its children, calling `enter` for any\n/// node that touches the `from`/`to` region (if given) before\n/// running over such a node's children, and `leave` (if given) when\n/// leaving the node. When `enter` returns `false`, that node will\n/// not have its children iterated over (or `leave` called).\niterate(spec){let{enter,leave,from=0,to=this.length}=spec;let mode=spec.mode||0,anon=(mode&IterMode.IncludeAnonymous)>0;for(let c=this.cursor(mode|IterMode.IncludeAnonymous);;){let entered=false;if(c.from<=to&&c.to>=from&&(!anon&&c.type.isAnonymous||enter(c)!==false)){if(c.firstChild())continue;entered=true;}for(;;){if(entered&&leave&&(anon||!c.type.isAnonymous))leave(c);if(c.nextSibling())break;if(!c.parent())return;entered=true;}}}/// Get the value of the given [node prop](#common.NodeProp) for this\n/// node. Works with both per-node and per-type props.\nprop(prop){return!prop.perNode?this.type.prop(prop):this.props?this.props[prop.id]:void 0;}/// Returns the node's [per-node props](#common.NodeProp.perNode) in a\n/// format that can be passed to the [`Tree`](#common.Tree)\n/// constructor.\nget propValues(){let result=[];if(this.props)for(let id in this.props)result.push([+id,this.props[id]]);return result;}/// Balance the direct children of this tree, producing a copy of\n/// which may have children grouped into subtrees with type\n/// [`NodeType.none`](#common.NodeType^none).\nbalance(config={}){return this.children.length<=8?this:balanceRange(NodeType.none,this.children,this.positions,0,this.children.length,0,this.length,(children,positions,length)=>new Tree(this.type,children,positions,length,this.propValues),config.makeTree||((children,positions,length)=>new Tree(NodeType.none,children,positions,length)));}/// Build a tree from a postfix-ordered buffer of node information,\n/// or a cursor over such a buffer.\nstatic build(data){return buildTree(data);}/// Construct a new tree. See also [`Tree.build`](#common.Tree^build).\nconstructor(type,children,positions,length,props){this.type=type;this.children=children;this.positions=positions;this.length=length;this.props=null;if(props&&props.length){this.props=/* @__PURE__ */ Object.create(null);for(let[prop,value]of props)this.props[typeof prop==\"number\"?prop:prop.id]=value;}}};Tree.empty=new Tree(NodeType.none,[],[],0);var FlatBufferCursor=class{get id(){return this.buffer[this.index-4];}get start(){return this.buffer[this.index-3];}get end(){return this.buffer[this.index-2];}get size(){return this.buffer[this.index-1];}get pos(){return this.index;}next(){this.index-=4;}fork(){return new FlatBufferCursor(this.buffer,this.index);}constructor(buffer,index){this.buffer=buffer;this.index=index;}};var TreeBuffer=class{/// @internal\nget type(){return NodeType.none;}/// @internal\ntoString(){let result=[];for(let index=0;index<this.buffer.length;){result.push(this.childString(index));index=this.buffer[index+3];}return result.join(\",\");}/// @internal\nchildString(index){let id=this.buffer[index],endIndex=this.buffer[index+3];let type=this.set.types[id],result=type.name;if(/\\W/.test(result)&&!type.isError)result=JSON.stringify(result);index+=4;if(endIndex==index)return result;let children=[];while(index<endIndex){children.push(this.childString(index));index=this.buffer[index+3];}return result+\"(\"+children.join(\",\")+\")\";}/// @internal\nfindChild(startIndex,endIndex,dir,pos,side){let{buffer}=this,pick=-1;for(let i=startIndex;i!=endIndex;i=buffer[i+3]){if(checkSide(side,pos,buffer[i+1],buffer[i+2])){pick=i;if(dir>0)break;}}return pick;}/// @internal\nslice(startI,endI,from){let b=this.buffer;let copy=new Uint16Array(endI-startI),len=0;for(let i=startI,j=0;i<endI;){copy[j++]=b[i++];copy[j++]=b[i++]-from;let to=copy[j++]=b[i++]-from;copy[j++]=b[i++]-startI;len=Math.max(len,to);}return new TreeBuffer(copy,len,this.set);}/// Create a tree buffer.\nconstructor(buffer,length,set){this.buffer=buffer;this.length=length;this.set=set;}};function checkSide(side,pos,from,to){switch(side){case-2:return from<pos;case-1:return to>=pos&&from<pos;case 0:return from<pos&&to>pos;case 1:return from<=pos&&to>pos;case 2:return to>pos;case 4:return true;}}function enterUnfinishedNodesBefore(node,pos){let scan=node.childBefore(pos);while(scan){let last=scan.lastChild;if(!last||last.to!=scan.to)break;if(last.type.isError&&last.from==last.to){node=scan;scan=last.prevSibling;}else{scan=last;}}return node;}function resolveNode(node,pos,side,overlays){var _a;while(node.from==node.to||(side<1?node.from>=pos:node.from>pos)||(side>-1?node.to<=pos:node.to<pos)){let parent=!overlays&&node instanceof TreeNode&&node.index<0?null:node.parent;if(!parent)return node;node=parent;}let mode=overlays?0:IterMode.IgnoreOverlays;if(overlays)for(let scan=node,parent1=scan.parent;parent1;scan=parent1,parent1=scan.parent){if(scan instanceof TreeNode&&scan.index<0&&((_a=parent1.enter(pos,side,mode))===null||_a===void 0?void 0:_a.from)!=scan.from)node=parent1;}for(;;){let inner=node.enter(pos,side,mode);if(!inner)return node;node=inner;}}var TreeNode=class{get type(){return this._tree.type;}get name(){return this._tree.type.name;}get to(){return this.from+this._tree.length;}nextChild(i,dir,pos,side,mode=0){for(let parent=this;;){for(let{children,positions}=parent._tree,e=dir>0?children.length:-1;i!=e;i+=dir){let next=children[i],start=positions[i]+parent.from;if(!checkSide(side,pos,start,start+next.length))continue;if(next instanceof TreeBuffer){if(mode&IterMode.ExcludeBuffers)continue;let index=next.findChild(0,next.buffer.length,dir,pos-start,side);if(index>-1)return new BufferNode(new BufferContext(parent,next,i,start),null,index);}else if(mode&IterMode.IncludeAnonymous||!next.type.isAnonymous||hasChild(next)){let mounted;if(!(mode&IterMode.IgnoreMounts)&&next.props&&(mounted=next.prop(NodeProp.mounted))&&!mounted.overlay)return new TreeNode(mounted.tree,start,i,parent);let inner=new TreeNode(next,start,i,parent);return mode&IterMode.IncludeAnonymous||!inner.type.isAnonymous?inner:inner.nextChild(dir<0?next.children.length-1:0,dir,pos,side);}}if(mode&IterMode.IncludeAnonymous||!parent.type.isAnonymous)return null;if(parent.index>=0)i=parent.index+dir;else i=dir<0?-1:parent._parent._tree.children.length;parent=parent._parent;if(!parent)return null;}}get firstChild(){return this.nextChild(0,1,0,4);}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4);}childAfter(pos){return this.nextChild(0,1,pos,2);}childBefore(pos){return this.nextChild(this._tree.children.length-1,-1,pos,-2);}enter(pos,side,mode=0){let mounted;if(!(mode&IterMode.IgnoreOverlays)&&(mounted=this._tree.prop(NodeProp.mounted))&&mounted.overlay){let rPos=pos-this.from;for(let{from,to}of mounted.overlay){if((side>0?from<=rPos:from<rPos)&&(side<0?to>=rPos:to>rPos))return new TreeNode(mounted.tree,mounted.overlay[0].from+this.from,-1,this);}}return this.nextChild(0,1,pos,side,mode);}nextSignificantParent(){let val=this;while(val.type.isAnonymous&&val._parent)val=val._parent;return val;}get parent(){return this._parent?this._parent.nextSignificantParent():null;}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null;}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null;}cursor(mode=0){return new TreeCursor(this,mode);}get tree(){return this._tree;}toTree(){return this._tree;}resolve(pos,side=0){return resolveNode(this,pos,side,false);}resolveInner(pos,side=0){return resolveNode(this,pos,side,true);}enterUnfinishedNodesBefore(pos){return enterUnfinishedNodesBefore(this,pos);}getChild(type,before=null,after=null){let r=getChildren(this,type,before,after);return r.length?r[0]:null;}getChildren(type,before=null,after=null){return getChildren(this,type,before,after);}/// @internal\ntoString(){return this._tree.toString();}get node(){return this;}matchContext(context){return matchNodeContext(this,context);}constructor(_tree,from,index,_parent){this._tree=_tree;this.from=from;this.index=index;this._parent=_parent;}};function getChildren(node,type,before,after){let cur=node.cursor(),result=[];if(!cur.firstChild())return result;if(before!=null){while(!cur.type.is(before))if(!cur.nextSibling())return result;}for(;;){if(after!=null&&cur.type.is(after))return result;if(cur.type.is(type))result.push(cur.node);if(!cur.nextSibling())return after==null?result:[];}}function matchNodeContext(node,context,i=context.length-1){for(let p=node.parent;i>=0;p=p.parent){if(!p)return false;if(!p.type.isAnonymous){if(context[i]&&context[i]!=p.name)return false;i--;}}return true;}var BufferContext=class{constructor(parent,buffer,index,start){this.parent=parent;this.buffer=buffer;this.index=index;this.start=start;}};var BufferNode=class{get name(){return this.type.name;}get from(){return this.context.start+this.context.buffer.buffer[this.index+1];}get to(){return this.context.start+this.context.buffer.buffer[this.index+2];}child(dir,pos,side){let{buffer}=this.context;let index=buffer.findChild(this.index+4,buffer.buffer[this.index+3],dir,pos-this.context.start,side);return index<0?null:new BufferNode(this.context,this,index);}get firstChild(){return this.child(1,0,4);}get lastChild(){return this.child(-1,0,4);}childAfter(pos){return this.child(1,pos,2);}childBefore(pos){return this.child(-1,pos,-2);}enter(pos,side,mode=0){if(mode&IterMode.ExcludeBuffers)return null;let{buffer}=this.context;let index=buffer.findChild(this.index+4,buffer.buffer[this.index+3],side>0?1:-1,pos-this.context.start,side);return index<0?null:new BufferNode(this.context,this,index);}get parent(){return this._parent||this.context.parent.nextSignificantParent();}externalSibling(dir){return this._parent?null:this.context.parent.nextChild(this.context.index+dir,dir,0,4);}get nextSibling(){let{buffer}=this.context;let after=buffer.buffer[this.index+3];if(after<(this._parent?buffer.buffer[this._parent.index+3]:buffer.buffer.length))return new BufferNode(this.context,this._parent,after);return this.externalSibling(1);}get prevSibling(){let{buffer}=this.context;let parentStart=this._parent?this._parent.index+4:0;if(this.index==parentStart)return this.externalSibling(-1);return new BufferNode(this.context,this._parent,buffer.findChild(parentStart,this.index,-1,0,4));}cursor(mode=0){return new TreeCursor(this,mode);}get tree(){return null;}toTree(){let children=[],positions=[];let{buffer}=this.context;let startI=this.index+4,endI=buffer.buffer[this.index+3];if(endI>startI){let from=buffer.buffer[this.index+1];children.push(buffer.slice(startI,endI,from));positions.push(0);}return new Tree(this.type,children,positions,this.to-this.from);}resolve(pos,side=0){return resolveNode(this,pos,side,false);}resolveInner(pos,side=0){return resolveNode(this,pos,side,true);}enterUnfinishedNodesBefore(pos){return enterUnfinishedNodesBefore(this,pos);}/// @internal\ntoString(){return this.context.buffer.childString(this.index);}getChild(type,before=null,after=null){let r=getChildren(this,type,before,after);return r.length?r[0]:null;}getChildren(type,before=null,after=null){return getChildren(this,type,before,after);}get node(){return this;}matchContext(context){return matchNodeContext(this,context);}constructor(context,_parent,index){this.context=context;this._parent=_parent;this.index=index;this.type=context.buffer.set.types[context.buffer.buffer[index]];}};var TreeCursor=class{/// Shorthand for `.type.name`.\nget name(){return this.type.name;}yieldNode(node){if(!node)return false;this._tree=node;this.type=node.type;this.from=node.from;this.to=node.to;return true;}yieldBuf(index,type){this.index=index;let{start,buffer}=this.buffer;this.type=type||buffer.set.types[buffer.buffer[index]];this.from=start+buffer.buffer[index+1];this.to=start+buffer.buffer[index+2];return true;}yield(node){if(!node)return false;if(node instanceof TreeNode){this.buffer=null;return this.yieldNode(node);}this.buffer=node.context;return this.yieldBuf(node.index,node.type);}/// @internal\ntoString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString();}/// @internal\nenterChild(dir,pos,side){if(!this.buffer)return this.yield(this._tree.nextChild(dir<0?this._tree._tree.children.length-1:0,dir,pos,side,this.mode));let{buffer}=this.buffer;let index=buffer.findChild(this.index+4,buffer.buffer[this.index+3],dir,pos-this.buffer.start,side);if(index<0)return false;this.stack.push(this.index);return this.yieldBuf(index);}/// Move the cursor to this node's first child. When this returns\n/// false, the node has no child, and the cursor has not been moved.\nfirstChild(){return this.enterChild(1,0,4);}/// Move the cursor to this node's last child.\nlastChild(){return this.enterChild(-1,0,4);}/// Move the cursor to the first child that ends after `pos`.\nchildAfter(pos){return this.enterChild(1,pos,2);}/// Move to the last child that starts before `pos`.\nchildBefore(pos){return this.enterChild(-1,pos,-2);}/// Move the cursor to the child around `pos`. If side is -1 the\n/// child may end at that position, when 1 it may start there. This\n/// will also enter [overlaid](#common.MountedTree.overlay)\n/// [mounted](#common.NodeProp^mounted) trees unless `overlays` is\n/// set to false.\nenter(pos,side,mode=this.mode){if(!this.buffer)return this.yield(this._tree.enter(pos,side,mode));return mode&IterMode.ExcludeBuffers?false:this.enterChild(1,pos,side);}/// Move to the node's parent node, if this isn't the top node.\nparent(){if(!this.buffer)return this.yieldNode(this.mode&IterMode.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let parent=this.mode&IterMode.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();this.buffer=null;return this.yieldNode(parent);}/// @internal\nsibling(dir){if(!this.buffer)return!this._tree._parent?false:this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+dir,dir,0,4,this.mode));let{buffer}=this.buffer,d=this.stack.length-1;if(dir<0){let parentStart=d<0?0:this.stack[d]+4;if(this.index!=parentStart)return this.yieldBuf(buffer.findChild(parentStart,this.index,-1,0,4));}else{let after=buffer.buffer[this.index+3];if(after<(d<0?buffer.buffer.length:buffer.buffer[this.stack[d]+3]))return this.yieldBuf(after);}return d<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+dir,dir,0,4,this.mode)):false;}/// Move to this node's next sibling, if any.\nnextSibling(){return this.sibling(1);}/// Move to this node's previous sibling, if any.\nprevSibling(){return this.sibling(-1);}atLastNode(dir){let index,parent,{buffer}=this;if(buffer){if(dir>0){if(this.index<buffer.buffer.buffer.length)return false;}else{for(let i=0;i<this.index;i++)if(buffer.buffer.buffer[i+3]<this.index)return false;}({index,parent}=buffer);}else{({index,_parent:parent}=this._tree);}for(;parent;{index,_parent:parent}=parent){if(index>-1)for(let i1=index+dir,e=dir<0?-1:parent._tree.children.length;i1!=e;i1+=dir){let child=parent._tree.children[i1];if(this.mode&IterMode.IncludeAnonymous||child instanceof TreeBuffer||!child.type.isAnonymous||hasChild(child))return false;}}return true;}move(dir,enter){if(enter&&this.enterChild(dir,0,4))return true;for(;;){if(this.sibling(dir))return true;if(this.atLastNode(dir)||!this.parent())return false;}}/// Move to the next node in a\n/// [pre-order](https://en.wikipedia.org/wiki/Tree_traversal#Pre-order,_NLR)\n/// traversal, going from a node to its first child or, if the\n/// current node is empty or `enter` is false, its next sibling or\n/// the next sibling of the first parent node that has one.\nnext(enter=true){return this.move(1,enter);}/// Move to the next node in a last-to-first pre-order traveral. A\n/// node is followed by its last child or, if it has none, its\n/// previous sibling or the previous sibling of the first parent\n/// node that has one.\nprev(enter=true){return this.move(-1,enter);}/// Move the cursor to the innermost node that covers `pos`. If\n/// `side` is -1, it will enter nodes that end at `pos`. If it is 1,\n/// it will enter nodes that start at `pos`.\nmoveTo(pos,side=0){while(this.from==this.to||(side<1?this.from>=pos:this.from>pos)||(side>-1?this.to<=pos:this.to<pos))if(!this.parent())break;while(this.enterChild(1,pos,side)){}return this;}/// Get a [syntax node](#common.SyntaxNode) at the cursor's current\n/// position.\nget node(){if(!this.buffer)return this._tree;let cache=this.bufferNode,result=null,depth=0;if(cache&&cache.context==this.buffer){scan:for(let index=this.index,d=this.stack.length;d>=0;){for(let c=cache;c;c=c._parent)if(c.index==index){if(index==this.index)return c;result=c;depth=d+1;break scan;}index=this.stack[--d];}}for(let i=depth;i<this.stack.length;i++)result=new BufferNode(this.buffer,result,this.stack[i]);return this.bufferNode=new BufferNode(this.buffer,result,this.index);}/// Get the [tree](#common.Tree) that represents the current node, if\n/// any. Will return null when the node is in a [tree\n/// buffer](#common.TreeBuffer).\nget tree(){return this.buffer?null:this._tree._tree;}/// Iterate over the current node and all its descendants, calling\n/// `enter` when entering a node and `leave`, if given, when leaving\n/// one. When `enter` returns `false`, any children of that node are\n/// skipped, and `leave` isn't called for it.\niterate(enter,leave){for(let depth=0;;){let mustLeave=false;if(this.type.isAnonymous||enter(this)!==false){if(this.firstChild()){depth++;continue;}if(!this.type.isAnonymous)mustLeave=true;}for(;;){if(mustLeave&&leave)leave(this);mustLeave=this.type.isAnonymous;if(this.nextSibling())break;if(!depth)return;this.parent();depth--;mustLeave=true;}}}/// Test whether the current node matches a given context—a sequence\n/// of direct parent node names. Empty strings in the context array\n/// are treated as wildcards.\nmatchContext(context){if(!this.buffer)return matchNodeContext(this.node,context);let{buffer}=this.buffer,{types}=buffer.set;for(let i=context.length-1,d=this.stack.length-1;i>=0;d--){if(d<0)return matchNodeContext(this.node,context,i);let type=types[buffer.buffer[this.stack[d]]];if(!type.isAnonymous){if(context[i]&&context[i]!=type.name)return false;i--;}}return true;}/// @internal\nconstructor(node,mode=0){this.mode=mode;this.buffer=null;this.stack=[];this.index=0;this.bufferNode=null;if(node instanceof TreeNode){this.yieldNode(node);}else{this._tree=node.context.parent;this.buffer=node.context;for(let n=node._parent;n;n=n._parent)this.stack.unshift(n.index);this.bufferNode=node;this.yieldBuf(node.index);}}};function hasChild(tree){return tree.children.some(ch=>ch instanceof TreeBuffer||!ch.type.isAnonymous||hasChild(ch));}function buildTree(data){var _a;let{buffer,nodeSet,maxBufferLength=DefaultBufferLength,reused=[],minRepeatType=nodeSet.types.length}=data;let cursor=Array.isArray(buffer)?new FlatBufferCursor(buffer,buffer.length):buffer;let types=nodeSet.types;let contextHash=0,lookAhead=0;function takeNode(parentStart,minPos,children2,positions2,inRepeat){let{id,start,end,size}=cursor;let lookAheadAtStart=lookAhead;while(size<0){cursor.next();if(size==-1){let node2=reused[id];children2.push(node2);positions2.push(start-parentStart);return;}else if(size==-3){contextHash=id;return;}else if(size==-4){lookAhead=id;return;}else{throw new RangeError(`Unrecognized record size: ${size}`);}}let type=types[id],node,buffer2;let startPos=start-parentStart;if(end-start<=maxBufferLength&&(buffer2=findBufferSize(cursor.pos-minPos,inRepeat))){let data2=new Uint16Array(buffer2.size-buffer2.skip);let endPos=cursor.pos-buffer2.size,index=data2.length;while(cursor.pos>endPos)index=copyToBuffer(buffer2.start,data2,index);node=new TreeBuffer(data2,end-buffer2.start,nodeSet);startPos=buffer2.start-parentStart;}else{let endPos1=cursor.pos-size;cursor.next();let localChildren=[],localPositions=[];let localInRepeat=id>=minRepeatType?id:-1;let lastGroup=0,lastEnd=end;while(cursor.pos>endPos1){if(localInRepeat>=0&&cursor.id==localInRepeat&&cursor.size>=0){if(cursor.end<=lastEnd-maxBufferLength){makeRepeatLeaf(localChildren,localPositions,start,lastGroup,cursor.end,lastEnd,localInRepeat,lookAheadAtStart);lastGroup=localChildren.length;lastEnd=cursor.end;}cursor.next();}else{takeNode(start,endPos1,localChildren,localPositions,localInRepeat);}}if(localInRepeat>=0&&lastGroup>0&&lastGroup<localChildren.length)makeRepeatLeaf(localChildren,localPositions,start,lastGroup,start,lastEnd,localInRepeat,lookAheadAtStart);localChildren.reverse();localPositions.reverse();if(localInRepeat>-1&&lastGroup>0){let make=makeBalanced(type);node=balanceRange(type,localChildren,localPositions,0,localChildren.length,0,end-start,make,make);}else{node=makeTree(type,localChildren,localPositions,end-start,lookAheadAtStart-end);}}children2.push(node);positions2.push(startPos);}function makeBalanced(type){return(children2,positions2,length2)=>{let lookAhead2=0,lastI=children2.length-1,last,lookAheadProp;if(lastI>=0&&(last=children2[lastI])instanceof Tree){if(!lastI&&last.type==type&&last.length==length2)return last;if(lookAheadProp=last.prop(NodeProp.lookAhead))lookAhead2=positions2[lastI]+last.length+lookAheadProp;}return makeTree(type,children2,positions2,length2,lookAhead2);};}function makeRepeatLeaf(children2,positions2,base,i,from,to,type,lookAhead2){let localChildren=[],localPositions=[];while(children2.length>i){localChildren.push(children2.pop());localPositions.push(positions2.pop()+base-from);}children2.push(makeTree(nodeSet.types[type],localChildren,localPositions,to-from,lookAhead2-to));positions2.push(from-base);}function makeTree(type,children2,positions2,length2,lookAhead2=0,props){if(contextHash){let pair=[NodeProp.contextHash,contextHash];props=props?[pair].concat(props):[pair];}if(lookAhead2>25){let pair1=[NodeProp.lookAhead,lookAhead2];props=props?[pair1].concat(props):[pair1];}return new Tree(type,children2,positions2,length2,props);}function findBufferSize(maxSize,inRepeat){let fork=cursor.fork();let size=0,start=0,skip=0,minStart=fork.end-maxBufferLength;let result={size:0,start:0,skip:0};scan:for(let minPos=fork.pos-maxSize;fork.pos>minPos;){let nodeSize2=fork.size;if(fork.id==inRepeat&&nodeSize2>=0){result.size=size;result.start=start;result.skip=skip;skip+=4;size+=4;fork.next();continue;}let startPos=fork.pos-nodeSize2;if(nodeSize2<0||startPos<minPos||fork.start<minStart)break;let localSkipped=fork.id>=minRepeatType?4:0;let nodeStart=fork.start;fork.next();while(fork.pos>startPos){if(fork.size<0){if(fork.size==-3)localSkipped+=4;else break scan;}else if(fork.id>=minRepeatType){localSkipped+=4;}fork.next();}start=nodeStart;size+=nodeSize2;skip+=localSkipped;}if(inRepeat<0||size==maxSize){result.size=size;result.start=start;result.skip=skip;}return result.size>4?result:void 0;}function copyToBuffer(bufferStart,buffer2,index){let{id,start,end,size}=cursor;cursor.next();if(size>=0&&id<minRepeatType){let startIndex=index;if(size>4){let endPos=cursor.pos-(size-4);while(cursor.pos>endPos)index=copyToBuffer(bufferStart,buffer2,index);}buffer2[--index]=startIndex;buffer2[--index]=end-bufferStart;buffer2[--index]=start-bufferStart;buffer2[--index]=id;}else if(size==-3){contextHash=id;}else if(size==-4){lookAhead=id;}return index;}let children=[],positions=[];while(cursor.pos>0)takeNode(data.start||0,data.bufferStart||0,children,positions,-1);let length=(_a=data.length)!==null&&_a!==void 0?_a:children.length?positions[0]+children[0].length:0;return new Tree(types[data.topID],children.reverse(),positions.reverse(),length);}var nodeSizeCache=/* @__PURE__ */ new WeakMap;function nodeSize(balanceType,node){if(!balanceType.isAnonymous||node instanceof TreeBuffer||node.type!=balanceType)return 1;let size=nodeSizeCache.get(node);if(size==null){size=1;for(let child of node.children){if(child.type!=balanceType||!(child instanceof Tree)){size=1;break;}size+=nodeSize(balanceType,child);}nodeSizeCache.set(node,size);}return size;}function balanceRange(balanceType,children,positions,from,to,start,length,mkTop,mkTree){let total=0;for(let i=from;i<to;i++)total+=nodeSize(balanceType,children[i]);let maxChild=Math.ceil(total*1.5/8);let localChildren=[],localPositions=[];function divide(children2,positions2,from2,to2,offset){for(let i=from2;i<to2;){let groupFrom=i,groupStart=positions2[i],groupSize=nodeSize(balanceType,children2[i]);i++;for(;i<to2;i++){let nextSize=nodeSize(balanceType,children2[i]);if(groupSize+nextSize>=maxChild)break;groupSize+=nextSize;}if(i==groupFrom+1){if(groupSize>maxChild){let only=children2[groupFrom];divide(only.children,only.positions,0,only.children.length,positions2[groupFrom]+offset);continue;}localChildren.push(children2[groupFrom]);}else{let length2=positions2[i-1]+children2[i-1].length-groupStart;localChildren.push(balanceRange(balanceType,children2,positions2,groupFrom,i,groupStart,length2,null,mkTree));}localPositions.push(groupStart+offset-start);}}divide(children,positions,from,to,0);return(mkTop||mkTree)(localChildren,localPositions,length);}var NodeWeakMap=class{setBuffer(buffer,index,value){let inner=this.map.get(buffer);if(!inner)this.map.set(buffer,inner=/* @__PURE__ */ new Map);inner.set(index,value);}getBuffer(buffer,index){let inner=this.map.get(buffer);return inner&&inner.get(index);}/// Set the value for this syntax node.\nset(node,value){if(node instanceof BufferNode)this.setBuffer(node.context.buffer,node.index,value);else if(node instanceof TreeNode)this.map.set(node.tree,value);}/// Retrieve value for this syntax node, if it exists in the map.\nget(node){return node instanceof BufferNode?this.getBuffer(node.context.buffer,node.index):node instanceof TreeNode?this.map.get(node.tree):void 0;}/// Set the value for the node that a cursor currently points to.\ncursorSet(cursor,value){if(cursor.buffer)this.setBuffer(cursor.buffer.buffer,cursor.index,value);else this.map.set(cursor.tree,value);}/// Retrieve the value for the node that a cursor currently points\n/// to.\ncursorGet(cursor){return cursor.buffer?this.getBuffer(cursor.buffer.buffer,cursor.index):this.map.get(cursor.tree);}constructor(){this.map=/* @__PURE__ */ new WeakMap;}};var TreeFragment=class{/// Whether the start of the fragment represents the start of a\n/// parse, or the end of a change. (In the second case, it may not\n/// be safe to reuse some nodes at the start, depending on the\n/// parsing algorithm.)\nget openStart(){return(this.open&1)>0;}/// Whether the end of the fragment represents the end of a\n/// full-document parse, or the start of a change.\nget openEnd(){return(this.open&2)>0;}/// Create a set of fragments from a freshly parsed tree, or update\n/// an existing set of fragments by replacing the ones that overlap\n/// with a tree with content from the new tree. When `partial` is\n/// true, the parse is treated as incomplete, and the resulting\n/// fragment has [`openEnd`](#common.TreeFragment.openEnd) set to\n/// true.\nstatic addTree(tree,fragments=[],partial=false){let result=[new TreeFragment(0,tree.length,tree,0,false,partial)];for(let f of fragments)if(f.to>tree.length)result.push(f);return result;}/// Apply a set of edits to an array of fragments, removing or\n/// splitting fragments as necessary to remove edited ranges, and\n/// adjusting offsets for fragments that moved.\nstatic applyChanges(fragments,changes,minGap=128){if(!changes.length)return fragments;let result=[];let fI=1,nextF=fragments.length?fragments[0]:null;for(let cI=0,pos=0,off=0;;cI++){let nextC=cI<changes.length?changes[cI]:null;let nextPos=nextC?nextC.fromA:1e9;if(nextPos-pos>=minGap)while(nextF&&nextF.from<nextPos){let cut=nextF;if(pos>=cut.from||nextPos<=cut.to||off){let fFrom=Math.max(cut.from,pos)-off,fTo=Math.min(cut.to,nextPos)-off;cut=fFrom>=fTo?null:new TreeFragment(fFrom,fTo,cut.tree,cut.offset+off,cI>0,!!nextC);}if(cut)result.push(cut);if(nextF.to>nextPos)break;nextF=fI<fragments.length?fragments[fI++]:null;}if(!nextC)break;pos=nextC.toA;off=nextC.toA-nextC.toB;}return result;}/// Construct a tree fragment. You'll usually want to use\n/// [`addTree`](#common.TreeFragment^addTree) and\n/// [`applyChanges`](#common.TreeFragment^applyChanges) instead of\n/// calling this directly.\nconstructor(from,to,tree,offset,openStart=false,openEnd=false){this.from=from;this.to=to;this.tree=tree;this.offset=offset;this.open=(openStart?1:0)|(openEnd?2:0);}};var Parser=class{/// Start a parse, returning a [partial parse](#common.PartialParse)\n/// object. [`fragments`](#common.TreeFragment) can be passed in to\n/// make the parse incremental.\n///\n/// By default, the entire input is parsed. You can pass `ranges`,\n/// which should be a sorted array of non-empty, non-overlapping\n/// ranges, to parse only those ranges. The tree returned in that\n/// case will start at `ranges[0].from`.\nstartParse(input,fragments,ranges){if(typeof input==\"string\")input=new StringInput(input);ranges=!ranges?[new Range(0,input.length)]:ranges.length?ranges.map(r=>new Range(r.from,r.to)):[new Range(0,0)];return this.createParse(input,fragments||[],ranges);}/// Run a full parse, returning the resulting tree.\nparse(input,fragments,ranges){let parse=this.startParse(input,fragments,ranges);for(;;){let done=parse.advance();if(done)return done;}}};var StringInput=class{get length(){return this.string.length;}chunk(from){return this.string.slice(from);}get lineChunks(){return false;}read(from,to){return this.string.slice(from,to);}constructor(string){this.string=string;}};function parseMixed(nest){return(parse,input,fragments,ranges)=>new MixedParse(parse,nest,input,fragments,ranges);}var InnerParse=class{constructor(parser,parse,overlay,target,ranges){this.parser=parser;this.parse=parse;this.overlay=overlay;this.target=target;this.ranges=ranges;if(!ranges.length||ranges.some(r=>r.from>=r.to))throw new RangeError(\"Invalid inner parse ranges given: \"+JSON.stringify(ranges));}};var ActiveOverlay=class{constructor(parser,predicate,mounts,index,start,target,prev){this.parser=parser;this.predicate=predicate;this.mounts=mounts;this.index=index;this.start=start;this.target=target;this.prev=prev;this.depth=0;this.ranges=[];}};var stoppedInner=new NodeProp({perNode:true});var MixedParse=class{advance(){if(this.baseParse){let done2=this.baseParse.advance();if(!done2)return null;this.baseParse=null;this.baseTree=done2;this.startInner();if(this.stoppedAt!=null)for(let inner2 of this.inner)inner2.parse.stopAt(this.stoppedAt);}if(this.innerDone==this.inner.length){let result=this.baseTree;if(this.stoppedAt!=null)result=new Tree(result.type,result.children,result.positions,result.length,result.propValues.concat([[stoppedInner,this.stoppedAt]]));return result;}let inner=this.inner[this.innerDone],done=inner.parse.advance();if(done){this.innerDone++;let props=Object.assign(/* @__PURE__ */ Object.create(null),inner.target.props);props[NodeProp.mounted.id]=new MountedTree(done,inner.overlay,inner.parser);inner.target.props=props;}return null;}get parsedPos(){if(this.baseParse)return 0;let pos=this.input.length;for(let i=this.innerDone;i<this.inner.length;i++){if(this.inner[i].ranges[0].from<pos)pos=Math.min(pos,this.inner[i].parse.parsedPos);}return pos;}stopAt(pos){this.stoppedAt=pos;if(this.baseParse)this.baseParse.stopAt(pos);else for(let i=this.innerDone;i<this.inner.length;i++)this.inner[i].parse.stopAt(pos);}startInner(){let fragmentCursor=new FragmentCursor(this.fragments);let overlay=null;let covered=null;let cursor=new TreeCursor(new TreeNode(this.baseTree,this.ranges[0].from,0,null),IterMode.IncludeAnonymous|IterMode.IgnoreMounts);scan:for(let nest,isCovered;this.stoppedAt==null||cursor.from<this.stoppedAt;){let enter=true,range;if(fragmentCursor.hasNode(cursor)){if(overlay){let match=overlay.mounts.find(m=>m.frag.from<=cursor.from&&m.frag.to>=cursor.to&&m.mount.overlay);if(match)for(let r of match.mount.overlay){let from=r.from+match.pos,to=r.to+match.pos;if(from>=cursor.from&&to<=cursor.to&&!overlay.ranges.some(r2=>r2.from<to&&r2.to>from))overlay.ranges.push({from,to});}}enter=false;}else if(covered&&(isCovered=checkCover(covered.ranges,cursor.from,cursor.to))){enter=isCovered!=2;}else if(!cursor.type.isAnonymous&&cursor.from<cursor.to&&(nest=this.nest(cursor,this.input))){if(!cursor.tree)materialize(cursor);let oldMounts=fragmentCursor.findMounts(cursor.from,nest.parser);if(typeof nest.overlay==\"function\"){overlay=new ActiveOverlay(nest.parser,nest.overlay,oldMounts,this.inner.length,cursor.from,cursor.tree,overlay);}else{let ranges=punchRanges(this.ranges,nest.overlay||[new Range(cursor.from,cursor.to)]);if(ranges.length)this.inner.push(new InnerParse(nest.parser,nest.parser.startParse(this.input,enterFragments(oldMounts,ranges),ranges),nest.overlay?nest.overlay.map(r=>new Range(r.from-cursor.from,r.to-cursor.from)):null,cursor.tree,ranges));if(!nest.overlay)enter=false;else if(ranges.length)covered={ranges,depth:0,prev:covered};}}else if(overlay&&(range=overlay.predicate(cursor))){if(range===true)range=new Range(cursor.from,cursor.to);if(range.from<range.to)overlay.ranges.push(range);}if(enter&&cursor.firstChild()){if(overlay)overlay.depth++;if(covered)covered.depth++;}else{for(;;){if(cursor.nextSibling())break;if(!cursor.parent())break scan;if(overlay&&!--overlay.depth){let ranges1=punchRanges(this.ranges,overlay.ranges);if(ranges1.length)this.inner.splice(overlay.index,0,new InnerParse(overlay.parser,overlay.parser.startParse(this.input,enterFragments(overlay.mounts,ranges1),ranges1),overlay.ranges.map(r=>new Range(r.from-overlay.start,r.to-overlay.start)),overlay.target,ranges1));overlay=overlay.prev;}if(covered&&!--covered.depth)covered=covered.prev;}}}}constructor(base,nest,input,fragments,ranges){this.nest=nest;this.input=input;this.fragments=fragments;this.ranges=ranges;this.inner=[];this.innerDone=0;this.baseTree=null;this.stoppedAt=null;this.baseParse=base;}};function checkCover(covered,from,to){for(let range of covered){if(range.from>=to)break;if(range.to>from)return range.from<=from&&range.to>=to?2:1;}return 0;}function sliceBuf(buf,startI,endI,nodes,positions,off){if(startI<endI){let from=buf.buffer[startI+1];nodes.push(buf.slice(startI,endI,from));positions.push(from-off);}}function materialize(cursor){let{node}=cursor,depth=0;do{cursor.parent();depth++;}while(!cursor.tree)let i=0,base=cursor.tree,off=0;for(;;i++){off=base.positions[i]+cursor.from;if(off<=node.from&&off+base.children[i].length>=node.to)break;}let buf=base.children[i],b=buf.buffer;function split(startI,endI,type,innerOffset,length){let i2=startI;while(b[i2+2]+off<=node.from)i2=b[i2+3];let children=[],positions=[];sliceBuf(buf,startI,i2,children,positions,innerOffset);let from=b[i2+1],to=b[i2+2];let isTarget=from+off==node.from&&to+off==node.to&&b[i2]==node.type.id;children.push(isTarget?node.toTree():split(i2+4,b[i2+3],buf.set.types[b[i2]],from,to-from));positions.push(from-innerOffset);sliceBuf(buf,b[i2+3],endI,children,positions,innerOffset);return new Tree(type,children,positions,length);}base.children[i]=split(0,b.length,NodeType.none,0,buf.length);for(let d=0;d<=depth;d++)cursor.childAfter(node.from);}var StructureCursor=class{// Move to the first node (in pre-order) that starts at or after `pos`.\nmoveTo(pos){let{cursor}=this,p=pos-this.offset;while(!this.done&&cursor.from<p){if(cursor.to>=pos&&cursor.enter(p,1,IterMode.IgnoreOverlays|IterMode.ExcludeBuffers));else if(!cursor.next(false))this.done=true;}}hasNode(cursor){this.moveTo(cursor.from);if(!this.done&&this.cursor.from+this.offset==cursor.from&&this.cursor.tree){for(let tree=this.cursor.tree;;){if(tree==cursor.tree)return true;if(tree.children.length&&tree.positions[0]==0&&tree.children[0]instanceof Tree)tree=tree.children[0];else break;}}return false;}constructor(root,offset){this.offset=offset;this.done=false;this.cursor=root.cursor(IterMode.IncludeAnonymous|IterMode.IgnoreMounts);}};var FragmentCursor=class{hasNode(node){while(this.curFrag&&node.from>=this.curTo)this.nextFrag();return this.curFrag&&this.curFrag.from<=node.from&&this.curTo>=node.to&&this.inner.hasNode(node);}nextFrag(){var _a;this.fragI++;if(this.fragI==this.fragments.length){this.curFrag=this.inner=null;}else{let frag=this.curFrag=this.fragments[this.fragI];this.curTo=(_a=frag.tree.prop(stoppedInner))!==null&&_a!==void 0?_a:frag.to;this.inner=new StructureCursor(frag.tree,-frag.offset);}}findMounts(pos,parser){var _a;let result=[];if(this.inner){this.inner.cursor.moveTo(pos,1);for(let pos2=this.inner.cursor.node;pos2;pos2=pos2.parent){let mount=(_a=pos2.tree)===null||_a===void 0?void 0:_a.prop(NodeProp.mounted);if(mount&&mount.parser==parser){for(let i=this.fragI;i<this.fragments.length;i++){let frag=this.fragments[i];if(frag.from>=pos2.to)break;if(frag.tree==this.curFrag.tree)result.push({frag,pos:pos2.from-frag.offset,mount});}}}}return result;}constructor(fragments){var _a;this.fragments=fragments;this.curTo=0;this.fragI=0;if(fragments.length){let first=this.curFrag=fragments[0];this.curTo=(_a=first.tree.prop(stoppedInner))!==null&&_a!==void 0?_a:first.to;this.inner=new StructureCursor(first.tree,-first.offset);}else{this.curFrag=this.inner=null;}}};function punchRanges(outer,ranges){let copy=null,current=ranges;for(let i=1,j=0;i<outer.length;i++){let gapFrom=outer[i-1].to,gapTo=outer[i].from;for(;j<current.length;j++){let r=current[j];if(r.from>=gapTo)break;if(r.to<=gapFrom)continue;if(!copy)current=copy=ranges.slice();if(r.from<gapFrom){copy[j]=new Range(r.from,gapFrom);if(r.to>gapTo)copy.splice(j+1,0,new Range(gapTo,r.to));}else if(r.to>gapTo){copy[j--]=new Range(gapTo,r.to);}else{copy.splice(j--,1);}}}return current;}function findCoverChanges(a,b,from,to){let iA=0,iB=0,inA=false,inB=false,pos=-1e9;let result=[];for(;;){let nextA=iA==a.length?1e9:inA?a[iA].to:a[iA].from;let nextB=iB==b.length?1e9:inB?b[iB].to:b[iB].from;if(inA!=inB){let start=Math.max(pos,from),end=Math.min(nextA,nextB,to);if(start<end)result.push(new Range(start,end));}pos=Math.min(nextA,nextB);if(pos==1e9)break;if(nextA==pos){if(!inA)inA=true;else{inA=false;iA++;}}if(nextB==pos){if(!inB)inB=true;else{inB=false;iB++;}}}return result;}function enterFragments(mounts,ranges){let result=[];for(let{pos,mount,frag}of mounts){let startPos=pos+(mount.overlay?mount.overlay[0].from:0),endPos=startPos+mount.tree.length;let from=Math.max(frag.from,startPos),to=Math.min(frag.to,endPos);if(mount.overlay){let overlay=mount.overlay.map(r=>new Range(r.from+pos,r.to+pos));let changes=findCoverChanges(ranges,overlay,from,to);for(let i=0,pos2=from;;i++){let last=i==changes.length,end=last?to:changes[i].from;if(end>pos2)result.push(new TreeFragment(pos2,end,mount.tree,-startPos,frag.from>=pos2||frag.openStart,frag.to<=end||frag.openEnd));if(last)break;pos2=changes[i].to;}}else{result.push(new TreeFragment(from,to,mount.tree,-startPos,frag.from>=startPos||frag.openStart,frag.to<=endPos||frag.openEnd));}}return result;}export{DefaultBufferLength,IterMode,MountedTree,NodeProp,NodeSet,NodeType,NodeWeakMap,Parser,Tree,TreeBuffer,TreeCursor,TreeFragment,parseMixed,};\nexport const __FramerMetadata__ = {\"exports\":{\"DefaultBufferLength\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"NodeType\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TreeFragment\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"IterMode\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Tree\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"MountedTree\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TreeBuffer\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"parseMixed\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"NodeSet\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"NodeWeakMap\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TreeCursor\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Parser\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"NodeProp\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./lezer_common.map","// @ts-nocheck\n/**\n * This file is generated inside FramerStudio. To update it run \"make build\"\n * inside \"./src/codeblock-dependencies\" and copy the file from \"./build\".\n */ // ../../node_modules/@lezer/highlight/dist/index.js\nimport{NodeProp}from\"https://framerusercontent.com/modules/CO9ruPlVDRTCLVInyri7/dIK6ma4pzS0qSHWtJ4s1/lezer_common.js\";var nextTagID=0;var Tag=class{/**\n  Define a new tag. If `parent` is given, the tag is treated as a\n  sub-tag of that parent, and\n  [highlighters](#highlight.tagHighlighter) that don't mention\n  this tag will try to fall back to the parent tag (or grandparent\n  tag, etc).\n  */ static define(parent){if(parent===null||parent===void 0?void 0:parent.base)throw new Error(\"Can not derive from a modified tag\");let tag=new Tag([],null,[]);tag.set.push(tag);if(parent)for(let t2 of parent.set)tag.set.push(t2);return tag;}/**\n  Define a tag _modifier_, which is a function that, given a tag,\n  will return a tag that is a subtag of the original. Applying the\n  same modifier to a twice tag will return the same value (`m1(t1)\n  == m1(t1)`) and applying multiple modifiers will, regardless or\n  order, produce the same tag (`m1(m2(t1)) == m2(m1(t1))`).\n  \n  When multiple modifiers are applied to a given base tag, each\n  smaller set of modifiers is registered as a parent, so that for\n  example `m1(m2(m3(t1)))` is a subtype of `m1(m2(t1))`,\n  `m1(m3(t1)`, and so on.\n  */ static defineModifier(){let mod=new Modifier;return tag=>{if(tag.modified.indexOf(mod)>-1)return tag;return Modifier.get(tag.base||tag,tag.modified.concat(mod).sort((a,b)=>a.id-b.id));};}/**\n  @internal\n  */ constructor(set,base,modified){this.set=set;this.base=base;this.modified=modified;this.id=nextTagID++;}};var nextModifierID=0;var Modifier=class{static get(base,mods){if(!mods.length)return base;let exists=mods[0].instances.find(t2=>t2.base==base&&sameArray(mods,t2.modified));if(exists)return exists;let set=[],tag=new Tag(set,base,mods);for(let m of mods)m.instances.push(tag);let configs=powerSet(mods);for(let parent of base.set)if(!parent.modified.length)for(let config of configs)set.push(Modifier.get(parent,config));return tag;}constructor(){this.instances=[];this.id=nextModifierID++;}};function sameArray(a,b){return a.length==b.length&&a.every((x,i)=>x==b[i]);}function powerSet(array){let sets=[[]];for(let i=0;i<array.length;i++){for(let j=0,e=sets.length;j<e;j++){sets.push(sets[j].concat(array[i]));}}return sets.sort((a,b)=>b.length-a.length);}function styleTags(spec){let byName=/* @__PURE__ */ Object.create(null);for(let prop in spec){let tags2=spec[prop];if(!Array.isArray(tags2))tags2=[tags2];for(let part of prop.split(\" \"))if(part){let pieces=[],mode=2,rest=part;for(let pos=0;;){if(rest==\"...\"&&pos>0&&pos+3==part.length){mode=1;break;}let m=/^\"(?:[^\"\\\\]|\\\\.)*?\"|[^\\/!]+/.exec(rest);if(!m)throw new RangeError(\"Invalid path: \"+part);pieces.push(m[0]==\"*\"?\"\":m[0][0]=='\"'?JSON.parse(m[0]):m[0]);pos+=m[0].length;if(pos==part.length)break;let next=part[pos++];if(pos==part.length&&next==\"!\"){mode=0;break;}if(next!=\"/\")throw new RangeError(\"Invalid path: \"+part);rest=part.slice(pos);}let last=pieces.length-1,inner=pieces[last];if(!inner)throw new RangeError(\"Invalid path: \"+part);let rule=new Rule(tags2,mode,last>0?pieces.slice(0,last):null);byName[inner]=rule.sort(byName[inner]);}}return ruleNodeProp.add(byName);}var ruleNodeProp=new NodeProp;var Rule=class{get opaque(){return this.mode==0;}get inherit(){return this.mode==1;}sort(other){if(!other||other.depth<this.depth){this.next=other;return this;}other.next=this.sort(other.next);return other;}get depth(){return this.context?this.context.length:0;}constructor(tags2,mode,context,next){this.tags=tags2;this.mode=mode;this.context=context;this.next=next;}};Rule.empty=new Rule([],2,null);function tagHighlighter(tags2,options){let map=/* @__PURE__ */ Object.create(null);for(let style of tags2){if(!Array.isArray(style.tag))map[style.tag.id]=style.class;else for(let tag of style.tag)map[tag.id]=style.class;}let{scope,all=null}=options||{};return{style:tags3=>{let cls=all;for(let tag of tags3){for(let sub of tag.set){let tagClass=map[sub.id];if(tagClass){cls=cls?cls+\" \"+tagClass:tagClass;break;}}}return cls;},scope};}function highlightTags(highlighters,tags2){let result=null;for(let highlighter of highlighters){let value=highlighter.style(tags2);if(value)result=result?result+\" \"+value:value;}return result;}function highlightTree(tree,highlighter,putStyle,from=0,to=tree.length){let builder=new HighlightBuilder(from,Array.isArray(highlighter)?highlighter:[highlighter],putStyle);builder.highlightRange(tree.cursor(),from,to,\"\",builder.highlighters);builder.flush(to);}var HighlightBuilder=class{startSpan(at,cls){if(cls!=this.class){this.flush(at);if(at>this.at)this.at=at;this.class=cls;}}flush(to){if(to>this.at&&this.class)this.span(this.at,to,this.class);}highlightRange(cursor,from,to,inheritedClass,highlighters){let{type,from:start,to:end}=cursor;if(start>=to||end<=from)return;if(type.isTop)highlighters=this.highlighters.filter(h=>!h.scope||h.scope(type));let cls=inheritedClass;let rule=getStyleTags(cursor)||Rule.empty;let tagCls=highlightTags(highlighters,rule.tags);if(tagCls){if(cls)cls+=\" \";cls+=tagCls;if(rule.mode==1)inheritedClass+=(inheritedClass?\" \":\"\")+tagCls;}this.startSpan(Math.max(from,start),cls);if(rule.opaque)return;let mounted=cursor.tree&&cursor.tree.prop(NodeProp.mounted);if(mounted&&mounted.overlay){let inner=cursor.node.enter(mounted.overlay[0].from+start,1);let innerHighlighters=this.highlighters.filter(h=>!h.scope||h.scope(mounted.tree.type));let hasChild=cursor.firstChild();for(let i=0,pos=start;;i++){let next=i<mounted.overlay.length?mounted.overlay[i]:null;let nextPos=next?next.from+start:end;let rangeFrom=Math.max(from,pos),rangeTo=Math.min(to,nextPos);if(rangeFrom<rangeTo&&hasChild){while(cursor.from<rangeTo){this.highlightRange(cursor,rangeFrom,rangeTo,inheritedClass,highlighters);this.startSpan(Math.min(rangeTo,cursor.to),cls);if(cursor.to>=nextPos||!cursor.nextSibling())break;}}if(!next||nextPos>to)break;pos=next.to+start;if(pos>from){this.highlightRange(inner.cursor(),Math.max(from,next.from+start),Math.min(to,pos),\"\",innerHighlighters);this.startSpan(Math.min(to,pos),cls);}}if(hasChild)cursor.parent();}else if(cursor.firstChild()){if(mounted)inheritedClass=\"\";do{if(cursor.to<=from)continue;if(cursor.from>=to)break;this.highlightRange(cursor,from,to,inheritedClass,highlighters);this.startSpan(Math.min(to,cursor.to),cls);}while(cursor.nextSibling())cursor.parent();}}constructor(at,highlighters,span){this.at=at;this.highlighters=highlighters;this.span=span;this.class=\"\";}};function getStyleTags(node){let rule=node.type.prop(ruleNodeProp);while(rule&&rule.context&&!node.matchContext(rule.context))rule=rule.next;return rule||null;}var t=Tag.define;var comment=t();var name=t();var typeName=t(name);var propertyName=t(name);var literal=t();var string=t(literal);var number=t(literal);var content=t();var heading=t(content);var keyword=t();var operator=t();var punctuation=t();var bracket=t(punctuation);var meta=t();var tags={/**\n  A comment.\n  */ comment,/**\n  A line [comment](#highlight.tags.comment).\n  */ lineComment:t(comment),/**\n  A block [comment](#highlight.tags.comment).\n  */ blockComment:t(comment),/**\n  A documentation [comment](#highlight.tags.comment).\n  */ docComment:t(comment),/**\n  Any kind of identifier.\n  */ name,/**\n  The [name](#highlight.tags.name) of a variable.\n  */ variableName:t(name),/**\n  A type [name](#highlight.tags.name).\n  */ typeName,/**\n  A tag name (subtag of [`typeName`](#highlight.tags.typeName)).\n  */ tagName:t(typeName),/**\n  A property or field [name](#highlight.tags.name).\n  */ propertyName,/**\n  An attribute name (subtag of [`propertyName`](#highlight.tags.propertyName)).\n  */ attributeName:t(propertyName),/**\n  The [name](#highlight.tags.name) of a class.\n  */ className:t(name),/**\n  A label [name](#highlight.tags.name).\n  */ labelName:t(name),/**\n  A namespace [name](#highlight.tags.name).\n  */ namespace:t(name),/**\n  The [name](#highlight.tags.name) of a macro.\n  */ macroName:t(name),/**\n  A literal value.\n  */ literal,/**\n  A string [literal](#highlight.tags.literal).\n  */ string,/**\n  A documentation [string](#highlight.tags.string).\n  */ docString:t(string),/**\n  A character literal (subtag of [string](#highlight.tags.string)).\n  */ character:t(string),/**\n  An attribute value (subtag of [string](#highlight.tags.string)).\n  */ attributeValue:t(string),/**\n  A number [literal](#highlight.tags.literal).\n  */ number,/**\n  An integer [number](#highlight.tags.number) literal.\n  */ integer:t(number),/**\n  A floating-point [number](#highlight.tags.number) literal.\n  */ float:t(number),/**\n  A boolean [literal](#highlight.tags.literal).\n  */ bool:t(literal),/**\n  Regular expression [literal](#highlight.tags.literal).\n  */ regexp:t(literal),/**\n  An escape [literal](#highlight.tags.literal), for example a\n  backslash escape in a string.\n  */ escape:t(literal),/**\n  A color [literal](#highlight.tags.literal).\n  */ color:t(literal),/**\n  A URL [literal](#highlight.tags.literal).\n  */ url:t(literal),/**\n  A language keyword.\n  */ keyword,/**\n  The [keyword](#highlight.tags.keyword) for the self or this\n  object.\n  */ self:t(keyword),/**\n  The [keyword](#highlight.tags.keyword) for null.\n  */ null:t(keyword),/**\n  A [keyword](#highlight.tags.keyword) denoting some atomic value.\n  */ atom:t(keyword),/**\n  A [keyword](#highlight.tags.keyword) that represents a unit.\n  */ unit:t(keyword),/**\n  A modifier [keyword](#highlight.tags.keyword).\n  */ modifier:t(keyword),/**\n  A [keyword](#highlight.tags.keyword) that acts as an operator.\n  */ operatorKeyword:t(keyword),/**\n  A control-flow related [keyword](#highlight.tags.keyword).\n  */ controlKeyword:t(keyword),/**\n  A [keyword](#highlight.tags.keyword) that defines something.\n  */ definitionKeyword:t(keyword),/**\n  A [keyword](#highlight.tags.keyword) related to defining or\n  interfacing with modules.\n  */ moduleKeyword:t(keyword),/**\n  An operator.\n  */ operator,/**\n  An [operator](#highlight.tags.operator) that dereferences something.\n  */ derefOperator:t(operator),/**\n  Arithmetic-related [operator](#highlight.tags.operator).\n  */ arithmeticOperator:t(operator),/**\n  Logical [operator](#highlight.tags.operator).\n  */ logicOperator:t(operator),/**\n  Bit [operator](#highlight.tags.operator).\n  */ bitwiseOperator:t(operator),/**\n  Comparison [operator](#highlight.tags.operator).\n  */ compareOperator:t(operator),/**\n  [Operator](#highlight.tags.operator) that updates its operand.\n  */ updateOperator:t(operator),/**\n  [Operator](#highlight.tags.operator) that defines something.\n  */ definitionOperator:t(operator),/**\n  Type-related [operator](#highlight.tags.operator).\n  */ typeOperator:t(operator),/**\n  Control-flow [operator](#highlight.tags.operator).\n  */ controlOperator:t(operator),/**\n  Program or markup punctuation.\n  */ punctuation,/**\n  [Punctuation](#highlight.tags.punctuation) that separates\n  things.\n  */ separator:t(punctuation),/**\n  Bracket-style [punctuation](#highlight.tags.punctuation).\n  */ bracket,/**\n  Angle [brackets](#highlight.tags.bracket) (usually `<` and `>`\n  tokens).\n  */ angleBracket:t(bracket),/**\n  Square [brackets](#highlight.tags.bracket) (usually `[` and `]`\n  tokens).\n  */ squareBracket:t(bracket),/**\n  Parentheses (usually `(` and `)` tokens). Subtag of\n  [bracket](#highlight.tags.bracket).\n  */ paren:t(bracket),/**\n  Braces (usually `{` and `}` tokens). Subtag of\n  [bracket](#highlight.tags.bracket).\n  */ brace:t(bracket),/**\n  Content, for example plain text in XML or markup documents.\n  */ content,/**\n  [Content](#highlight.tags.content) that represents a heading.\n  */ heading,/**\n  A level 1 [heading](#highlight.tags.heading).\n  */ heading1:t(heading),/**\n  A level 2 [heading](#highlight.tags.heading).\n  */ heading2:t(heading),/**\n  A level 3 [heading](#highlight.tags.heading).\n  */ heading3:t(heading),/**\n  A level 4 [heading](#highlight.tags.heading).\n  */ heading4:t(heading),/**\n  A level 5 [heading](#highlight.tags.heading).\n  */ heading5:t(heading),/**\n  A level 6 [heading](#highlight.tags.heading).\n  */ heading6:t(heading),/**\n  A prose separator (such as a horizontal rule).\n  */ contentSeparator:t(content),/**\n  [Content](#highlight.tags.content) that represents a list.\n  */ list:t(content),/**\n  [Content](#highlight.tags.content) that represents a quote.\n  */ quote:t(content),/**\n  [Content](#highlight.tags.content) that is emphasized.\n  */ emphasis:t(content),/**\n  [Content](#highlight.tags.content) that is styled strong.\n  */ strong:t(content),/**\n  [Content](#highlight.tags.content) that is part of a link.\n  */ link:t(content),/**\n  [Content](#highlight.tags.content) that is styled as code or\n  monospace.\n  */ monospace:t(content),/**\n  [Content](#highlight.tags.content) that has a strike-through\n  style.\n  */ strikethrough:t(content),/**\n  Inserted text in a change-tracking format.\n  */ inserted:t(),/**\n  Deleted text.\n  */ deleted:t(),/**\n  Changed text.\n  */ changed:t(),/**\n  An invalid or unsyntactic element.\n  */ invalid:t(),/**\n  Metadata or meta-instruction.\n  */ meta,/**\n  [Metadata](#highlight.tags.meta) that applies to the entire\n  document.\n  */ documentMeta:t(meta),/**\n  [Metadata](#highlight.tags.meta) that annotates or adds\n  attributes to a given syntactic element.\n  */ annotation:t(meta),/**\n  Processing instruction or preprocessor directive. Subtag of\n  [meta](#highlight.tags.meta).\n  */ processingInstruction:t(meta),/**\n  [Modifier](#highlight.Tag^defineModifier) that indicates that a\n  given element is being defined. Expected to be used with the\n  various [name](#highlight.tags.name) tags.\n  */ definition:Tag.defineModifier(),/**\n  [Modifier](#highlight.Tag^defineModifier) that indicates that\n  something is constant. Mostly expected to be used with\n  [variable names](#highlight.tags.variableName).\n  */ constant:Tag.defineModifier(),/**\n  [Modifier](#highlight.Tag^defineModifier) used to indicate that\n  a [variable](#highlight.tags.variableName) or [property\n  name](#highlight.tags.propertyName) is being called or defined\n  as a function.\n  */ function:Tag.defineModifier(),/**\n  [Modifier](#highlight.Tag^defineModifier) that can be applied to\n  [names](#highlight.tags.name) to indicate that they belong to\n  the language's standard environment.\n  */ standard:Tag.defineModifier(),/**\n  [Modifier](#highlight.Tag^defineModifier) that indicates a given\n  [names](#highlight.tags.name) is local to some scope.\n  */ local:Tag.defineModifier(),/**\n  A generic variant [modifier](#highlight.Tag^defineModifier) that\n  can be used to tag language-specific alternative variants of\n  some common tag. It is recommended for themes to define special\n  forms of at least the [string](#highlight.tags.string) and\n  [variable name](#highlight.tags.variableName) tags, since those\n  come up a lot.\n  */ special:Tag.defineModifier()};var classHighlighter=tagHighlighter([{tag:tags.link,class:\"tok-link\"},{tag:tags.heading,class:\"tok-heading\"},{tag:tags.emphasis,class:\"tok-emphasis\"},{tag:tags.strong,class:\"tok-strong\"},{tag:tags.keyword,class:\"tok-keyword\"},{tag:tags.atom,class:\"tok-atom\"},{tag:tags.bool,class:\"tok-bool\"},{tag:tags.url,class:\"tok-url\"},{tag:tags.labelName,class:\"tok-labelName\"},{tag:tags.inserted,class:\"tok-inserted\"},{tag:tags.deleted,class:\"tok-deleted\"},{tag:tags.literal,class:\"tok-literal\"},{tag:tags.string,class:\"tok-string\"},{tag:tags.number,class:\"tok-number\"},{tag:[tags.regexp,tags.escape,tags.special(tags.string)],class:\"tok-string2\"},{tag:tags.variableName,class:\"tok-variableName\"},{tag:tags.local(tags.variableName),class:\"tok-variableName tok-local\"},{tag:tags.definition(tags.variableName),class:\"tok-variableName tok-definition\"},{tag:tags.special(tags.variableName),class:\"tok-variableName2\"},{tag:tags.definition(tags.propertyName),class:\"tok-propertyName tok-definition\"},{tag:tags.typeName,class:\"tok-typeName\"},{tag:tags.namespace,class:\"tok-namespace\"},{tag:tags.className,class:\"tok-className\"},{tag:tags.macroName,class:\"tok-macroName\"},{tag:tags.propertyName,class:\"tok-propertyName\"},{tag:tags.operator,class:\"tok-operator\"},{tag:tags.comment,class:\"tok-comment\"},{tag:tags.meta,class:\"tok-meta\"},{tag:tags.invalid,class:\"tok-invalid\"},{tag:tags.punctuation,class:\"tok-punctuation\"},]);export{Tag,classHighlighter,getStyleTags,highlightTree,styleTags,tagHighlighter,tags,};\nexport const __FramerMetadata__ = {\"exports\":{\"tags\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"classHighlighter\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"styleTags\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Tag\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"highlightTree\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getStyleTags\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"tagHighlighter\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./lezer_highlight.map","// @ts-nocheck\n/**\n * This file is generated inside FramerStudio. To update it run \"make build\"\n * inside \"./src/codeblock-dependencies\" and copy the file from \"./build\".\n */ // ../../node_modules/@codemirror/language/dist/index.js\nimport{NodeProp,IterMode,Tree,TreeFragment,Parser,NodeType,NodeSet}from\"https://framerusercontent.com/modules/CO9ruPlVDRTCLVInyri7/dIK6ma4pzS0qSHWtJ4s1/lezer_common.js\";import{StateEffect,StateField,Facet,EditorState,countColumn,combineConfig,RangeSet,RangeSetBuilder,Prec}from\"https://framerusercontent.com/modules/wFkXxZqfKOPeEQtsYrsa/Xcw7qvncyogRPQtf9aNn/codemirror_state.js\";import{ViewPlugin,logException,EditorView,Decoration,WidgetType,gutter,GutterMarker}from\"https://framerusercontent.com/modules/wKCR2JyUW8wZdYweJrou/EndxaPZLF2o4GndkIvF9/codemirror_view.js\";import{tags,tagHighlighter,highlightTree,styleTags}from\"https://framerusercontent.com/modules/rOWwbZHN39cczduPnzmw/OTf12FftmvJsuTNsZb3G/lezer_highlight.js\";// ../../node_modules/style-mod/src/style-mod.js\nvar C=\"ͼ\";var COUNT=typeof Symbol==\"undefined\"?\"__\"+C:Symbol.for(C);var SET=typeof Symbol==\"undefined\"?\"__styleSet\"+Math.floor(Math.random()*1e8):Symbol(\"styleSet\");var top=typeof globalThis!=\"undefined\"?globalThis:typeof window!=\"undefined\"?window:{};var StyleModule=class{// :: () → string\n// Returns a string containing the module's CSS rules.\ngetRules(){return this.rules.join(\"\\n\");}// :: () → string\n// Generate a new unique CSS class name.\nstatic newName(){let id=top[COUNT]||1;top[COUNT]=id+1;return C+id.toString(36);}// :: (union<Document, ShadowRoot>, union<[StyleModule], StyleModule>)\n//\n// Mount the given set of modules in the given DOM root, which ensures\n// that the CSS rules defined by the module are available in that\n// context.\n//\n// Rules are only added to the document once per root.\n//\n// Rule order will follow the order of the modules, so that rules from\n// modules later in the array take precedence of those from earlier\n// modules. If you call this function multiple times for the same root\n// in a way that changes the order of already mounted modules, the old\n// order will be changed.\nstatic mount(root,modules){(root[SET]||new StyleSet(root)).mount(Array.isArray(modules)?modules:[modules]);}// :: (Object<Style>, ?{finish: ?(string) → string})\n// Create a style module from the given spec.\n//\n// When `finish` is given, it is called on regular (non-`@`)\n// selectors (after `&` expansion) to compute the final selector.\nconstructor(spec,options){this.rules=[];let{finish}=options||{};function splitSelector(selector){return/^@/.test(selector)?[selector]:selector.split(/,\\s*/);}function render(selectors,spec2,target,isKeyframes){let local=[],isAt=/^@(\\w+)\\b/.exec(selectors[0]),keyframes=isAt&&isAt[1]==\"keyframes\";if(isAt&&spec2==null)return target.push(selectors[0]+\";\");for(let prop in spec2){let value=spec2[prop];if(/&/.test(prop)){render(prop.split(/,\\s*/).map(part=>selectors.map(sel=>part.replace(/&/,sel))).reduce((a,b)=>a.concat(b)),value,target);}else if(value&&typeof value==\"object\"){if(!isAt)throw new RangeError(\"The value of a property (\"+prop+\") should be a primitive value.\");render(splitSelector(prop),value,local,keyframes);}else if(value!=null){local.push(prop.replace(/_.*/,\"\").replace(/[A-Z]/g,l=>\"-\"+l.toLowerCase())+\": \"+value+\";\");}}if(local.length||keyframes){target.push((finish&&!isAt&&!isKeyframes?selectors.map(finish):selectors).join(\", \")+\" {\"+local.join(\" \")+\"}\");}}for(let prop in spec)render(splitSelector(prop),spec[prop],this.rules);}};var adoptedSet=/* @__PURE__ */ new Map;var StyleSet=class{mount(modules){let sheet=this.sheet;let pos=0,j=0;for(let i=0;i<modules.length;i++){let mod=modules[i],index=this.modules.indexOf(mod);if(index<j&&index>-1){this.modules.splice(index,1);j--;index=-1;}if(index==-1){this.modules.splice(j++,0,mod);if(sheet)for(let k=0;k<mod.rules.length;k++)sheet.insertRule(mod.rules[k],pos++);}else{while(j<index)pos+=this.modules[j++].rules.length;pos+=mod.rules.length;j++;}}if(!sheet){let text=\"\";for(let i1=0;i1<this.modules.length;i1++)text+=this.modules[i1].getRules()+\"\\n\";this.styleTag.textContent=text;}}constructor(root){let doc=root.ownerDocument||root,win=doc.defaultView;if(!root.head&&root.adoptedStyleSheets&&win.CSSStyleSheet){let adopted=adoptedSet.get(doc);if(adopted){root.adoptedStyleSheets=[adopted.sheet,...root.adoptedStyleSheets,];return root[SET]=adopted;}this.sheet=new win.CSSStyleSheet;root.adoptedStyleSheets=[this.sheet,...root.adoptedStyleSheets];adoptedSet.set(doc,this);}else{this.styleTag=doc.createElement(\"style\");let target=root.head||root;target.insertBefore(this.styleTag,target.firstChild);}this.modules=[];root[SET]=this;}};// ../../node_modules/@codemirror/language/dist/index.js\nvar _a;var languageDataProp=/* @__PURE__ */ new NodeProp;function defineLanguageFacet(baseData){return Facet.define({combine:baseData?values=>values.concat(baseData):void 0});}var sublanguageProp=/* @__PURE__ */ new NodeProp;var Language=class{/**\n  Query whether this language is active at the given position.\n  */ isActiveAt(state,pos,side=-1){return topNodeAt(state,pos,side).type.prop(languageDataProp)==this.data;}/**\n  Find the document regions that were parsed using this language.\n  The returned regions will _include_ any nested languages rooted\n  in this language, when those exist.\n  */ findRegions(state){let lang=state.facet(language);if((lang===null||lang===void 0?void 0:lang.data)==this.data)return[{from:0,to:state.doc.length}];if(!lang||!lang.allowsNesting)return[];let result=[];let explore=(tree,from)=>{if(tree.prop(languageDataProp)==this.data){result.push({from,to:from+tree.length});return;}let mount=tree.prop(NodeProp.mounted);if(mount){if(mount.tree.prop(languageDataProp)==this.data){if(mount.overlay)for(let r of mount.overlay)result.push({from:r.from+from,to:r.to+from});else result.push({from,to:from+tree.length});return;}else if(mount.overlay){let size=result.length;explore(mount.tree,mount.overlay[0].from+from);if(result.length>size)return;}}for(let i=0;i<tree.children.length;i++){let ch=tree.children[i];if(ch instanceof Tree)explore(ch,tree.positions[i]+from);}};explore(syntaxTree(state),0);return result;}/**\n  Indicates whether this language allows nested languages. The\n  default implementation returns true.\n  */ get allowsNesting(){return true;}/**\n  Construct a language object. If you need to invoke this\n  directly, first define a data facet with\n  [`defineLanguageFacet`](https://codemirror.net/6/docs/ref/#language.defineLanguageFacet), and then\n  configure your parser to [attach](https://codemirror.net/6/docs/ref/#language.languageDataProp) it\n  to the language's outer syntax node.\n  */ constructor(data,parser,extraExtensions=[],name=\"\"){this.data=data;this.name=name;if(!EditorState.prototype.hasOwnProperty(\"tree\"))Object.defineProperty(EditorState.prototype,\"tree\",{get(){return syntaxTree(this);}});this.parser=parser;this.extension=[language.of(this),EditorState.languageData.of((state,pos,side)=>{let top2=topNodeAt(state,pos,side),data2=top2.type.prop(languageDataProp);if(!data2)return[];let base=state.facet(data2),sub=top2.type.prop(sublanguageProp);if(sub){let innerNode=top2.resolve(pos-top2.from,side);for(let sublang of sub)if(sublang.test(innerNode,state)){let data3=state.facet(sublang.facet);return sublang.type==\"replace\"?data3:data3.concat(base);}}return base;}),].concat(extraExtensions);}};Language.setState=/* @__PURE__ */ StateEffect.define();function topNodeAt(state,pos,side){let topLang=state.facet(language),tree=syntaxTree(state).topNode;if(!topLang||topLang.allowsNesting){for(let node=tree;node;node=node.enter(pos,side,IterMode.ExcludeBuffers))if(node.type.isTop)tree=node;}return tree;}var LRLanguage=class extends Language{/**\n  Define a language from a parser.\n  */ static define(spec){let data=defineLanguageFacet(spec.languageData);return new LRLanguage(data,spec.parser.configure({props:[languageDataProp.add(type=>type.isTop?data:void 0),]}),spec.name);}/**\n  Create a new instance of this language with a reconfigured\n  version of its parser and optionally a new name.\n  */ configure(options,name){return new LRLanguage(this.data,this.parser.configure(options),name||this.name);}get allowsNesting(){return this.parser.hasWrappers();}constructor(data,parser,name){super(data,parser,[],name);this.parser=parser;}};function syntaxTree(state){let field=state.field(Language.state,false);return field?field.tree:Tree.empty;}function ensureSyntaxTree(state,upto,timeout=50){var _a2;let parse=(_a2=state.field(Language.state,false))===null||_a2===void 0?void 0:_a2.context;if(!parse)return null;let oldVieport=parse.viewport;parse.updateViewport({from:0,to:upto});let result=parse.isDone(upto)||parse.work(timeout,upto)?parse.tree:null;parse.updateViewport(oldVieport);return result;}function syntaxTreeAvailable(state,upto=state.doc.length){var _a2;return((_a2=state.field(Language.state,false))===null||_a2===void 0?void 0:_a2.context.isDone(upto))||false;}function forceParsing(view,upto=view.viewport.to,timeout=100){let success=ensureSyntaxTree(view.state,upto,timeout);if(success!=syntaxTree(view.state))view.dispatch({});return!!success;}function syntaxParserRunning(view){var _a2;return((_a2=view.plugin(parseWorker))===null||_a2===void 0?void 0:_a2.isWorking())||false;}var DocInput=class{get length(){return this.doc.length;}syncTo(pos){this.string=this.cursor.next(pos-this.cursorPos).value;this.cursorPos=pos+this.string.length;return this.cursorPos-this.string.length;}chunk(pos){this.syncTo(pos);return this.string;}get lineChunks(){return true;}read(from,to){let stringStart=this.cursorPos-this.string.length;if(from<stringStart||to>=this.cursorPos)return this.doc.sliceString(from,to);else return this.string.slice(from-stringStart,to-stringStart);}/**\n  Create an input object for the given document.\n  */ constructor(doc){this.doc=doc;this.cursorPos=0;this.string=\"\";this.cursor=doc.iter();}};var currentContext=null;var ParseContext=class{/**\n  @internal\n  */ static create(parser,state,viewport){return new ParseContext(parser,state,[],Tree.empty,0,viewport,[],null);}startParse(){return this.parser.startParse(new DocInput(this.state.doc),this.fragments);}/**\n  @internal\n  */ work(until,upto){if(upto!=null&&upto>=this.state.doc.length)upto=void 0;if(this.tree!=Tree.empty&&this.isDone(upto!==null&&upto!==void 0?upto:this.state.doc.length)){this.takeTree();return true;}return this.withContext(()=>{var _a2;if(typeof until==\"number\"){let endTime=Date.now()+until;until=()=>Date.now()>endTime;}if(!this.parse)this.parse=this.startParse();if(upto!=null&&(this.parse.stoppedAt==null||this.parse.stoppedAt>upto)&&upto<this.state.doc.length)this.parse.stopAt(upto);for(;;){let done=this.parse.advance();if(done){this.fragments=this.withoutTempSkipped(TreeFragment.addTree(done,this.fragments,this.parse.stoppedAt!=null));this.treeLen=(_a2=this.parse.stoppedAt)!==null&&_a2!==void 0?_a2:this.state.doc.length;this.tree=done;this.parse=null;if(this.treeLen<(upto!==null&&upto!==void 0?upto:this.state.doc.length))this.parse=this.startParse();else return true;}if(until())return false;}});}/**\n  @internal\n  */ takeTree(){let pos,tree;if(this.parse&&(pos=this.parse.parsedPos)>=this.treeLen){if(this.parse.stoppedAt==null||this.parse.stoppedAt>pos)this.parse.stopAt(pos);this.withContext(()=>{while(!(tree=this.parse.advance())){}});this.treeLen=pos;this.tree=tree;this.fragments=this.withoutTempSkipped(TreeFragment.addTree(this.tree,this.fragments,true));this.parse=null;}}withContext(f){let prev=currentContext;currentContext=this;try{return f();}finally{currentContext=prev;}}withoutTempSkipped(fragments){for(let r;r=this.tempSkipped.pop();)fragments=cutFragments(fragments,r.from,r.to);return fragments;}/**\n  @internal\n  */ changes(changes,newState){let{fragments,tree,treeLen,viewport,skipped}=this;this.takeTree();if(!changes.empty){let ranges=[];changes.iterChangedRanges((fromA,toA,fromB,toB)=>ranges.push({fromA,toA,fromB,toB}));fragments=TreeFragment.applyChanges(fragments,ranges);tree=Tree.empty;treeLen=0;viewport={from:changes.mapPos(viewport.from,-1),to:changes.mapPos(viewport.to,1)};if(this.skipped.length){skipped=[];for(let r of this.skipped){let from=changes.mapPos(r.from,1),to=changes.mapPos(r.to,-1);if(from<to)skipped.push({from,to});}}}return new ParseContext(this.parser,newState,fragments,tree,treeLen,viewport,skipped,this.scheduleOn);}/**\n  @internal\n  */ updateViewport(viewport){if(this.viewport.from==viewport.from&&this.viewport.to==viewport.to)return false;this.viewport=viewport;let startLen=this.skipped.length;for(let i=0;i<this.skipped.length;i++){let{from,to}=this.skipped[i];if(from<viewport.to&&to>viewport.from){this.fragments=cutFragments(this.fragments,from,to);this.skipped.splice(i--,1);}}if(this.skipped.length>=startLen)return false;this.reset();return true;}/**\n  @internal\n  */ reset(){if(this.parse){this.takeTree();this.parse=null;}}/**\n  Notify the parse scheduler that the given region was skipped\n  because it wasn't in view, and the parse should be restarted\n  when it comes into view.\n  */ skipUntilInView(from,to){this.skipped.push({from,to});}/**\n  Returns a parser intended to be used as placeholder when\n  asynchronously loading a nested parser. It'll skip its input and\n  mark it as not-really-parsed, so that the next update will parse\n  it again.\n  \n  When `until` is given, a reparse will be scheduled when that\n  promise resolves.\n  */ static getSkippingParser(until){return new class extends Parser{createParse(input,fragments,ranges){let from=ranges[0].from,to=ranges[ranges.length-1].to;let parser={parsedPos:from,advance(){let cx=currentContext;if(cx){for(let r of ranges)cx.tempSkipped.push(r);if(until)cx.scheduleOn=cx.scheduleOn?Promise.all([cx.scheduleOn,until]):until;}this.parsedPos=to;return new Tree(NodeType.none,[],[],to-from);},stoppedAt:null,stopAt(){}};return parser;}};}/**\n  @internal\n  */ isDone(upto){upto=Math.min(upto,this.state.doc.length);let frags=this.fragments;return this.treeLen>=upto&&frags.length&&frags[0].from==0&&frags[0].to>=upto;}/**\n  Get the context for the current parse, or `null` if no editor\n  parse is in progress.\n  */ static get(){return currentContext;}constructor(parser,state,fragments=[],tree,treeLen,viewport,skipped,scheduleOn){this.parser=parser;this.state=state;this.fragments=fragments;this.tree=tree;this.treeLen=treeLen;this.viewport=viewport;this.skipped=skipped;this.scheduleOn=scheduleOn;this.parse=null;this.tempSkipped=[];}};function cutFragments(fragments,from,to){return TreeFragment.applyChanges(fragments,[{fromA:from,toA:to,fromB:from,toB:to},]);}var LanguageState=class{apply(tr){if(!tr.docChanged&&this.tree==this.context.tree)return this;let newCx=this.context.changes(tr.changes,tr.state);let upto=this.context.treeLen==tr.startState.doc.length?void 0:Math.max(tr.changes.mapPos(this.context.treeLen),newCx.viewport.to);if(!newCx.work(20,upto))newCx.takeTree();return new LanguageState(newCx);}static init(state){let vpTo=Math.min(3e3,state.doc.length);let parseState=ParseContext.create(state.facet(language).parser,state,{from:0,to:vpTo});if(!parseState.work(20,vpTo))parseState.takeTree();return new LanguageState(parseState);}constructor(context){this.context=context;this.tree=context.tree;}};Language.state=/* @__PURE__ */ StateField.define({create:LanguageState.init,update(value,tr){for(let e of tr.effects)if(e.is(Language.setState))return e.value;if(tr.startState.facet(language)!=tr.state.facet(language))return LanguageState.init(tr.state);return value.apply(tr);}});var requestIdle=callback=>{let timeout=setTimeout(()=>callback(),500);return()=>clearTimeout(timeout);};if(typeof requestIdleCallback!=\"undefined\")requestIdle=callback=>{let idle=-1,timeout=setTimeout(()=>{idle=requestIdleCallback(callback,{timeout:500-100});},100);return()=>idle<0?clearTimeout(timeout):cancelIdleCallback(idle);};var isInputPending=typeof navigator!=\"undefined\"&&((_a=navigator.scheduling)===null||_a===void 0?void 0:_a.isInputPending)?()=>navigator.scheduling.isInputPending():null;var parseWorker=/* @__PURE__ */ ViewPlugin.fromClass(class ParseWorker{update(update){let cx=this.view.state.field(Language.state).context;if(cx.updateViewport(update.view.viewport)||this.view.viewport.to>cx.treeLen)this.scheduleWork();if(update.docChanged){if(this.view.hasFocus)this.chunkBudget+=50;this.scheduleWork();}this.checkAsyncSchedule(cx);}scheduleWork(){if(this.working)return;let{state}=this.view,field=state.field(Language.state);if(field.tree!=field.context.tree||!field.context.isDone(state.doc.length))this.working=requestIdle(this.work);}work(deadline){this.working=null;let now=Date.now();if(this.chunkEnd<now&&(this.chunkEnd<0||this.view.hasFocus)){this.chunkEnd=now+3e4;this.chunkBudget=3e3;}if(this.chunkBudget<=0)return;let{state,viewport:{to:vpTo}}=this.view,field=state.field(Language.state);if(field.tree==field.context.tree&&field.context.isDone(vpTo+1e5))return;let endTime=Date.now()+Math.min(this.chunkBudget,100,deadline&&!isInputPending?Math.max(25,deadline.timeRemaining()-5):1e9);let viewportFirst=field.context.treeLen<vpTo&&state.doc.length>vpTo+1e3;let done=field.context.work(()=>{return isInputPending&&isInputPending()||Date.now()>endTime;},vpTo+(viewportFirst?0:1e5));this.chunkBudget-=Date.now()-now;if(done||this.chunkBudget<=0){field.context.takeTree();this.view.dispatch({effects:Language.setState.of(new LanguageState(field.context))});}if(this.chunkBudget>0&&!(done&&!viewportFirst))this.scheduleWork();this.checkAsyncSchedule(field.context);}checkAsyncSchedule(cx){if(cx.scheduleOn){this.workScheduled++;cx.scheduleOn.then(()=>this.scheduleWork()).catch(err=>logException(this.view.state,err)).then(()=>this.workScheduled--);cx.scheduleOn=null;}}destroy(){if(this.working)this.working();}isWorking(){return!!(this.working||this.workScheduled>0);}constructor(view){this.view=view;this.working=null;this.workScheduled=0;this.chunkEnd=-1;this.chunkBudget=-1;this.work=this.work.bind(this);this.scheduleWork();}},{eventHandlers:{focus(){this.scheduleWork();}}});var language=/* @__PURE__ */ Facet.define({combine(languages){return languages.length?languages[0]:null;},enables:language2=>[Language.state,parseWorker,EditorView.contentAttributes.compute([language2],state=>{let lang=state.facet(language2);return lang&&lang.name?{\"data-language\":lang.name}:{};}),]});var LanguageSupport=class{/**\n  Create a language support object.\n  */ constructor(language2,support=[]){this.language=language2;this.support=support;this.extension=[language2,support];}};var LanguageDescription=class{/**\n  Start loading the the language. Will return a promise that\n  resolves to a [`LanguageSupport`](https://codemirror.net/6/docs/ref/#language.LanguageSupport)\n  object when the language successfully loads.\n  */ load(){return this.loading||(this.loading=this.loadFunc().then(support=>this.support=support,err=>{this.loading=null;throw err;}));}/**\n  Create a language description.\n  */ static of(spec){let{load,support}=spec;if(!load){if(!support)throw new RangeError(\"Must pass either 'load' or 'support' to LanguageDescription.of\");load=()=>Promise.resolve(support);}return new LanguageDescription(spec.name,(spec.alias||[]).concat(spec.name).map(s=>s.toLowerCase()),spec.extensions||[],spec.filename,load,support);}/**\n  Look for a language in the given array of descriptions that\n  matches the filename. Will first match\n  [`filename`](https://codemirror.net/6/docs/ref/#language.LanguageDescription.filename) patterns,\n  and then [extensions](https://codemirror.net/6/docs/ref/#language.LanguageDescription.extensions),\n  and return the first language that matches.\n  */ static matchFilename(descs,filename){for(let d of descs)if(d.filename&&d.filename.test(filename))return d;let ext=/\\.([^.]+)$/.exec(filename);if(ext){for(let d1 of descs)if(d1.extensions.indexOf(ext[1])>-1)return d1;}return null;}/**\n  Look for a language whose name or alias matches the the given\n  name (case-insensitively). If `fuzzy` is true, and no direct\n  matchs is found, this'll also search for a language whose name\n  or alias occurs in the string (for names shorter than three\n  characters, only when surrounded by non-word characters).\n  */ static matchLanguageName(descs,name,fuzzy=true){name=name.toLowerCase();for(let d of descs)if(d.alias.some(a=>a==name))return d;if(fuzzy)for(let d1 of descs)for(let a of d1.alias){let found=name.indexOf(a);if(found>-1&&(a.length>2||!/\\w/.test(name[found-1])&&!/\\w/.test(name[found+a.length])))return d1;}return null;}constructor(name,alias,extensions,filename,loadFunc,support=void 0){this.name=name;this.alias=alias;this.extensions=extensions;this.filename=filename;this.loadFunc=loadFunc;this.support=support;this.loading=null;}};var indentService=/* @__PURE__ */ Facet.define();var indentUnit=/* @__PURE__ */ Facet.define({combine:values=>{if(!values.length)return\"  \";let unit=values[0];if(!unit||/\\S/.test(unit)||Array.from(unit).some(e=>e!=unit[0]))throw new Error(\"Invalid indent unit: \"+JSON.stringify(values[0]));return unit;}});function getIndentUnit(state){let unit=state.facet(indentUnit);return unit.charCodeAt(0)==9?state.tabSize*unit.length:unit.length;}function indentString(state,cols){let result=\"\",ts=state.tabSize,ch=state.facet(indentUnit)[0];if(ch==\"\t\"){while(cols>=ts){result+=\"\t\";cols-=ts;}ch=\" \";}for(let i=0;i<cols;i++)result+=ch;return result;}function getIndentation(context,pos){if(context instanceof EditorState)context=new IndentContext(context);for(let service of context.state.facet(indentService)){let result=service(context,pos);if(result!==void 0)return result;}let tree=syntaxTree(context.state);return tree?syntaxIndentation(context,tree,pos):null;}function indentRange(state,from,to){let updated=/* @__PURE__ */ Object.create(null);let context=new IndentContext(state,{overrideIndentation:start=>{var _a2;return(_a2=updated[start])!==null&&_a2!==void 0?_a2:-1;}});let changes=[];for(let pos=from;pos<=to;){let line=state.doc.lineAt(pos);pos=line.to+1;let indent=getIndentation(context,line.from);if(indent==null)continue;if(!/\\S/.test(line.text))indent=0;let cur=/^\\s*/.exec(line.text)[0];let norm=indentString(state,indent);if(cur!=norm){updated[line.from]=indent;changes.push({from:line.from,to:line.from+cur.length,insert:norm});}}return state.changes(changes);}var IndentContext=class{/**\n  Get a description of the line at the given position, taking\n  [simulated line\n  breaks](https://codemirror.net/6/docs/ref/#language.IndentContext.constructor^options.simulateBreak)\n  into account. If there is such a break at `pos`, the `bias`\n  argument determines whether the part of the line line before or\n  after the break is used.\n  */ lineAt(pos,bias=1){let line=this.state.doc.lineAt(pos);let{simulateBreak,simulateDoubleBreak}=this.options;if(simulateBreak!=null&&simulateBreak>=line.from&&simulateBreak<=line.to){if(simulateDoubleBreak&&simulateBreak==pos)return{text:\"\",from:pos};else if(bias<0?simulateBreak<pos:simulateBreak<=pos)return{text:line.text.slice(simulateBreak-line.from),from:simulateBreak};else return{text:line.text.slice(0,simulateBreak-line.from),from:line.from};}return line;}/**\n  Get the text directly after `pos`, either the entire line\n  or the next 100 characters, whichever is shorter.\n  */ textAfterPos(pos,bias=1){if(this.options.simulateDoubleBreak&&pos==this.options.simulateBreak)return\"\";let{text,from}=this.lineAt(pos,bias);return text.slice(pos-from,Math.min(text.length,pos+100-from));}/**\n  Find the column for the given position.\n  */ column(pos,bias=1){let{text,from}=this.lineAt(pos,bias);let result=this.countColumn(text,pos-from);let override=this.options.overrideIndentation?this.options.overrideIndentation(from):-1;if(override>-1)result+=override-this.countColumn(text,text.search(/\\S|$/));return result;}/**\n  Find the column position (taking tabs into account) of the given\n  position in the given string.\n  */ countColumn(line,pos=line.length){return countColumn(line,this.state.tabSize,pos);}/**\n  Find the indentation column of the line at the given point.\n  */ lineIndent(pos,bias=1){let{text,from}=this.lineAt(pos,bias);let override=this.options.overrideIndentation;if(override){let overriden=override(from);if(overriden>-1)return overriden;}return this.countColumn(text,text.search(/\\S|$/));}/**\n  Returns the [simulated line\n  break](https://codemirror.net/6/docs/ref/#language.IndentContext.constructor^options.simulateBreak)\n  for this context, if any.\n  */ get simulatedBreak(){return this.options.simulateBreak||null;}/**\n  Create an indent context.\n  */ constructor(state,options={}){this.state=state;this.options=options;this.unit=getIndentUnit(state);}};var indentNodeProp=/* @__PURE__ */ new NodeProp;function syntaxIndentation(cx,ast,pos){return indentFrom(ast.resolveInner(pos).enterUnfinishedNodesBefore(pos),pos,cx);}function ignoreClosed(cx){return cx.pos==cx.options.simulateBreak&&cx.options.simulateDoubleBreak;}function indentStrategy(tree){let strategy=tree.type.prop(indentNodeProp);if(strategy)return strategy;let first=tree.firstChild,close;if(first&&(close=first.type.prop(NodeProp.closedBy))){let last=tree.lastChild,closed=last&&close.indexOf(last.name)>-1;return cx=>delimitedStrategy(cx,true,1,void 0,closed&&!ignoreClosed(cx)?last.from:void 0);}return tree.parent==null?topIndent:null;}function indentFrom(node,pos,base){for(;node;node=node.parent){let strategy=indentStrategy(node);if(strategy)return strategy(TreeIndentContext.create(base,pos,node));}return null;}function topIndent(){return 0;}var TreeIndentContext=class extends IndentContext{/**\n  @internal\n  */ static create(base,pos,node){return new TreeIndentContext(base,pos,node);}/**\n  Get the text directly after `this.pos`, either the entire line\n  or the next 100 characters, whichever is shorter.\n  */ get textAfter(){return this.textAfterPos(this.pos);}/**\n  Get the indentation at the reference line for `this.node`, which\n  is the line on which it starts, unless there is a node that is\n  _not_ a parent of this node covering the start of that line. If\n  so, the line at the start of that node is tried, again skipping\n  on if it is covered by another such node.\n  */ get baseIndent(){let line=this.state.doc.lineAt(this.node.from);for(;;){let atBreak=this.node.resolve(line.from);while(atBreak.parent&&atBreak.parent.from==atBreak.from)atBreak=atBreak.parent;if(isParent(atBreak,this.node))break;line=this.state.doc.lineAt(atBreak.from);}return this.lineIndent(line.from);}/**\n  Continue looking for indentations in the node's parent nodes,\n  and return the result of that.\n  */ continue(){let parent=this.node.parent;return parent?indentFrom(parent,this.pos,this.base):0;}constructor(base,pos,node){super(base.state,base.options);this.base=base;this.pos=pos;this.node=node;}};function isParent(parent,of){for(let cur=of;cur;cur=cur.parent)if(parent==cur)return true;return false;}function bracketedAligned(context){let tree=context.node;let openToken=tree.childAfter(tree.from),last=tree.lastChild;if(!openToken)return null;let sim=context.options.simulateBreak;let openLine=context.state.doc.lineAt(openToken.from);let lineEnd=sim==null||sim<=openLine.from?openLine.to:Math.min(openLine.to,sim);for(let pos=openToken.to;;){let next=tree.childAfter(pos);if(!next||next==last)return null;if(!next.type.isSkipped)return next.from<lineEnd?openToken:null;pos=next.to;}}function delimitedIndent({closing,align=true,units=1}){return context=>delimitedStrategy(context,align,units,closing);}function delimitedStrategy(context,align,units,closing,closedAt){let after=context.textAfter,space=after.match(/^\\s*/)[0].length;let closed=closing&&after.slice(space,space+closing.length)==closing||closedAt==context.pos+space;let aligned=align?bracketedAligned(context):null;if(aligned)return closed?context.column(aligned.from):context.column(aligned.to);return context.baseIndent+(closed?0:context.unit*units);}var flatIndent=context=>context.baseIndent;function continuedIndent({except,units=1}={}){return context=>{let matchExcept=except&&except.test(context.textAfter);return context.baseIndent+(matchExcept?0:units*context.unit);};}var DontIndentBeyond=200;function indentOnInput(){return EditorState.transactionFilter.of(tr=>{if(!tr.docChanged||!tr.isUserEvent(\"input.type\")&&!tr.isUserEvent(\"input.complete\"))return tr;let rules=tr.startState.languageDataAt(\"indentOnInput\",tr.startState.selection.main.head);if(!rules.length)return tr;let doc=tr.newDoc,{head}=tr.newSelection.main,line=doc.lineAt(head);if(head>line.from+DontIndentBeyond)return tr;let lineStart=doc.sliceString(line.from,head);if(!rules.some(r=>r.test(lineStart)))return tr;let{state}=tr,last=-1,changes=[];for(let{head:head2}of state.selection.ranges){let line2=state.doc.lineAt(head2);if(line2.from==last)continue;last=line2.from;let indent=getIndentation(state,line2.from);if(indent==null)continue;let cur=/^\\s*/.exec(line2.text)[0];let norm=indentString(state,indent);if(cur!=norm)changes.push({from:line2.from,to:line2.from+cur.length,insert:norm});}return changes.length?[tr,{changes,sequential:true}]:tr;});}var foldService=/* @__PURE__ */ Facet.define();var foldNodeProp=/* @__PURE__ */ new NodeProp;function foldInside(node){let first=node.firstChild,last=node.lastChild;return first&&first.to<last.from?{from:first.to,to:last.type.isError?node.to:last.from}:null;}function syntaxFolding(state,start,end){let tree=syntaxTree(state);if(tree.length<end)return null;let inner=tree.resolveInner(end,1);let found=null;for(let cur=inner;cur;cur=cur.parent){if(cur.to<=end||cur.from>end)continue;if(found&&cur.from<start)break;let prop=cur.type.prop(foldNodeProp);if(prop&&(cur.to<tree.length-50||tree.length==state.doc.length||!isUnfinished(cur))){let value=prop(cur,state);if(value&&value.from<=end&&value.from>=start&&value.to>end)found=value;}}return found;}function isUnfinished(node){let ch=node.lastChild;return ch&&ch.to==node.to&&ch.type.isError;}function foldable(state,lineStart,lineEnd){for(let service of state.facet(foldService)){let result=service(state,lineStart,lineEnd);if(result)return result;}return syntaxFolding(state,lineStart,lineEnd);}function mapRange(range,mapping){let from=mapping.mapPos(range.from,1),to=mapping.mapPos(range.to,-1);return from>=to?void 0:{from,to};}var foldEffect=/* @__PURE__ */ StateEffect.define({map:mapRange});var unfoldEffect=/* @__PURE__ */ StateEffect.define({map:mapRange});function selectedLines(view){let lines=[];for(let{head}of view.state.selection.ranges){if(lines.some(l=>l.from<=head&&l.to>=head))continue;lines.push(view.lineBlockAt(head));}return lines;}var foldState=/* @__PURE__ */ StateField.define({create(){return Decoration.none;},update(folded,tr){folded=folded.map(tr.changes);for(let e of tr.effects){if(e.is(foldEffect)&&!foldExists(folded,e.value.from,e.value.to))folded=folded.update({add:[foldWidget.range(e.value.from,e.value.to)]});else if(e.is(unfoldEffect))folded=folded.update({filter:(from,to)=>e.value.from!=from||e.value.to!=to,filterFrom:e.value.from,filterTo:e.value.to});}if(tr.selection){let onSelection=false,{head}=tr.selection.main;folded.between(head,head,(a,b)=>{if(a<head&&b>head)onSelection=true;});if(onSelection)folded=folded.update({filterFrom:head,filterTo:head,filter:(a,b)=>b<=head||a>=head});}return folded;},provide:f=>EditorView.decorations.from(f),toJSON(folded,state){let ranges=[];folded.between(0,state.doc.length,(from,to)=>{ranges.push(from,to);});return ranges;},fromJSON(value){if(!Array.isArray(value)||value.length%2)throw new RangeError(\"Invalid JSON for fold state\");let ranges=[];for(let i=0;i<value.length;){let from=value[i++],to=value[i++];if(typeof from!=\"number\"||typeof to!=\"number\")throw new RangeError(\"Invalid JSON for fold state\");ranges.push(foldWidget.range(from,to));}return Decoration.set(ranges,true);}});function foldedRanges(state){return state.field(foldState,false)||RangeSet.empty;}function findFold(state,from,to){var _a2;let found=null;(_a2=state.field(foldState,false))===null||_a2===void 0?void 0:_a2.between(from,to,(from2,to2)=>{if(!found||found.from>from2)found={from:from2,to:to2};});return found;}function foldExists(folded,from,to){let found=false;folded.between(from,from,(a,b)=>{if(a==from&&b==to)found=true;});return found;}function maybeEnable(state,other){return state.field(foldState,false)?other:other.concat(StateEffect.appendConfig.of(codeFolding()));}var foldCode=view=>{for(let line of selectedLines(view)){let range=foldable(view.state,line.from,line.to);if(range){view.dispatch({effects:maybeEnable(view.state,[foldEffect.of(range),announceFold(view,range),])});return true;}}return false;};var unfoldCode=view=>{if(!view.state.field(foldState,false))return false;let effects=[];for(let line of selectedLines(view)){let folded=findFold(view.state,line.from,line.to);if(folded)effects.push(unfoldEffect.of(folded),announceFold(view,folded,false));}if(effects.length)view.dispatch({effects});return effects.length>0;};function announceFold(view,range,fold=true){let lineFrom=view.state.doc.lineAt(range.from).number,lineTo=view.state.doc.lineAt(range.to).number;return EditorView.announce.of(`${view.state.phrase(fold?\"Folded lines\":\"Unfolded lines\")} ${lineFrom} ${view.state.phrase(\"to\")} ${lineTo}.`);}var foldAll=view=>{let{state}=view,effects=[];for(let pos=0;pos<state.doc.length;){let line=view.lineBlockAt(pos),range=foldable(state,line.from,line.to);if(range)effects.push(foldEffect.of(range));pos=(range?view.lineBlockAt(range.to):line).to+1;}if(effects.length)view.dispatch({effects:maybeEnable(view.state,effects)});return!!effects.length;};var unfoldAll=view=>{let field=view.state.field(foldState,false);if(!field||!field.size)return false;let effects=[];field.between(0,view.state.doc.length,(from,to)=>{effects.push(unfoldEffect.of({from,to}));});view.dispatch({effects});return true;};function foldableContainer(view,lineBlock){for(let line=lineBlock;;){let foldableRegion=foldable(view.state,line.from,line.to);if(foldableRegion&&foldableRegion.to>lineBlock.from)return foldableRegion;if(!line.from)return null;line=view.lineBlockAt(line.from-1);}}var toggleFold=view=>{let effects=[];for(let line of selectedLines(view)){let folded=findFold(view.state,line.from,line.to);if(folded){effects.push(unfoldEffect.of(folded),announceFold(view,folded,false));}else{let foldRange=foldableContainer(view,line);if(foldRange)effects.push(foldEffect.of(foldRange),announceFold(view,foldRange));}}if(effects.length>0)view.dispatch({effects:maybeEnable(view.state,effects)});return!!effects.length;};var foldKeymap=[{key:\"Ctrl-Shift-[\",mac:\"Cmd-Alt-[\",run:foldCode},{key:\"Ctrl-Shift-]\",mac:\"Cmd-Alt-]\",run:unfoldCode},{key:\"Ctrl-Alt-[\",run:foldAll},{key:\"Ctrl-Alt-]\",run:unfoldAll},];var defaultConfig={placeholderDOM:null,placeholderText:\"…\"};var foldConfig=/* @__PURE__ */ Facet.define({combine(values){return combineConfig(values,defaultConfig);}});function codeFolding(config){let result=[foldState,baseTheme$1];if(config)result.push(foldConfig.of(config));return result;}var foldWidget=/* @__PURE__ */ Decoration.replace({widget:/* @__PURE__ */ new class extends WidgetType{toDOM(view){let{state}=view,conf=state.facet(foldConfig);let onclick=event=>{let line=view.lineBlockAt(view.posAtDOM(event.target));let folded=findFold(view.state,line.from,line.to);if(folded)view.dispatch({effects:unfoldEffect.of(folded)});event.preventDefault();};if(conf.placeholderDOM)return conf.placeholderDOM(view,onclick);let element=document.createElement(\"span\");element.textContent=conf.placeholderText;element.setAttribute(\"aria-label\",state.phrase(\"folded code\"));element.title=state.phrase(\"unfold\");element.className=\"cm-foldPlaceholder\";element.onclick=onclick;return element;}}});var foldGutterDefaults={openText:\"⌄\",closedText:\"›\",markerDOM:null,domEventHandlers:{},foldingChanged:()=>false};var FoldMarker=class extends GutterMarker{eq(other){return this.config==other.config&&this.open==other.open;}toDOM(view){if(this.config.markerDOM)return this.config.markerDOM(this.open);let span=document.createElement(\"span\");span.textContent=this.open?this.config.openText:this.config.closedText;span.title=view.state.phrase(this.open?\"Fold line\":\"Unfold line\");return span;}constructor(config,open){super();this.config=config;this.open=open;}};function foldGutter(config={}){let fullConfig=Object.assign(Object.assign({},foldGutterDefaults),config);let canFold=new FoldMarker(fullConfig,true),canUnfold=new FoldMarker(fullConfig,false);let markers=ViewPlugin.fromClass(class{update(update){if(update.docChanged||update.viewportChanged||update.startState.facet(language)!=update.state.facet(language)||update.startState.field(foldState,false)!=update.state.field(foldState,false)||syntaxTree(update.startState)!=syntaxTree(update.state)||fullConfig.foldingChanged(update))this.markers=this.buildMarkers(update.view);}buildMarkers(view){let builder=new RangeSetBuilder;for(let line of view.viewportLineBlocks){let mark=findFold(view.state,line.from,line.to)?canUnfold:foldable(view.state,line.from,line.to)?canFold:null;if(mark)builder.add(line.from,line.from,mark);}return builder.finish();}constructor(view){this.from=view.viewport.from;this.markers=this.buildMarkers(view);}});let{domEventHandlers}=fullConfig;return[markers,gutter({class:\"cm-foldGutter\",markers(view){var _a2;return((_a2=view.plugin(markers))===null||_a2===void 0?void 0:_a2.markers)||RangeSet.empty;},initialSpacer(){return new FoldMarker(fullConfig,false);},domEventHandlers:Object.assign(Object.assign({},domEventHandlers),{click:(view,line,event)=>{if(domEventHandlers.click&&domEventHandlers.click(view,line,event))return true;let folded=findFold(view.state,line.from,line.to);if(folded){view.dispatch({effects:unfoldEffect.of(folded)});return true;}let range=foldable(view.state,line.from,line.to);if(range){view.dispatch({effects:foldEffect.of(range)});return true;}return false;}})}),codeFolding(),];}var baseTheme$1=/* @__PURE__ */ EditorView.baseTheme({\".cm-foldPlaceholder\":{backgroundColor:\"#eee\",border:\"1px solid #ddd\",color:\"#888\",borderRadius:\".2em\",margin:\"0 1px\",padding:\"0 1px\",cursor:\"pointer\"},\".cm-foldGutter span\":{padding:\"0 1px\",cursor:\"pointer\"}});var HighlightStyle=class{/**\n  Create a highlighter style that associates the given styles to\n  the given tags. The specs must be objects that hold a style tag\n  or array of tags in their `tag` property, and either a single\n  `class` property providing a static CSS class (for highlighter\n  that rely on external styling), or a\n  [`style-mod`](https://github.com/marijnh/style-mod#documentation)-style\n  set of CSS properties (which define the styling for those tags).\n  \n  The CSS rules created for a highlighter will be emitted in the\n  order of the spec's properties. That means that for elements that\n  have multiple tags associated with them, styles defined further\n  down in the list will have a higher CSS precedence than styles\n  defined earlier.\n  */ static define(specs,options){return new HighlightStyle(specs,options||{});}constructor(specs,options){this.specs=specs;let modSpec;function def(spec){let cls=StyleModule.newName();(modSpec||(modSpec=/* @__PURE__ */ Object.create(null)))[\".\"+cls]=spec;return cls;}const all=typeof options.all==\"string\"?options.all:options.all?def(options.all):void 0;const scopeOpt=options.scope;this.scope=scopeOpt instanceof Language?type=>type.prop(languageDataProp)==scopeOpt.data:scopeOpt?type=>type==scopeOpt:void 0;this.style=tagHighlighter(specs.map(style=>({tag:style.tag,class:style.class||def(Object.assign({},style,{tag:null}))})),{all}).style;this.module=modSpec?new StyleModule(modSpec):null;this.themeType=options.themeType;}};var highlighterFacet=/* @__PURE__ */ Facet.define();var fallbackHighlighter=/* @__PURE__ */ Facet.define({combine(values){return values.length?[values[0]]:null;}});function getHighlighters(state){let main=state.facet(highlighterFacet);return main.length?main:state.facet(fallbackHighlighter);}function syntaxHighlighting(highlighter,options){let ext=[treeHighlighter],themeType;if(highlighter instanceof HighlightStyle){if(highlighter.module)ext.push(EditorView.styleModule.of(highlighter.module));themeType=highlighter.themeType;}if(options===null||options===void 0?void 0:options.fallback)ext.push(fallbackHighlighter.of(highlighter));else if(themeType)ext.push(highlighterFacet.computeN([EditorView.darkTheme],state=>{return state.facet(EditorView.darkTheme)==(themeType==\"dark\")?[highlighter]:[];}));else ext.push(highlighterFacet.of(highlighter));return ext;}function highlightingFor(state,tags2,scope){let highlighters=getHighlighters(state);let result=null;if(highlighters)for(let highlighter of highlighters){if(!highlighter.scope||scope&&highlighter.scope(scope)){let cls=highlighter.style(tags2);if(cls)result=result?result+\" \"+cls:cls;}}return result;}var TreeHighlighter=class{update(update){let tree=syntaxTree(update.state),highlighters=getHighlighters(update.state);let styleChange=highlighters!=getHighlighters(update.startState);if(tree.length<update.view.viewport.to&&!styleChange&&tree.type==this.tree.type){this.decorations=this.decorations.map(update.changes);}else if(tree!=this.tree||update.viewportChanged||styleChange){this.tree=tree;this.decorations=this.buildDeco(update.view,highlighters);}}buildDeco(view,highlighters){if(!highlighters||!this.tree.length)return Decoration.none;let builder=new RangeSetBuilder;for(let{from,to}of view.visibleRanges){highlightTree(this.tree,highlighters,(from2,to2,style)=>{builder.add(from2,to2,this.markCache[style]||(this.markCache[style]=Decoration.mark({class:style})));},from,to);}return builder.finish();}constructor(view){this.markCache=/* @__PURE__ */ Object.create(null);this.tree=syntaxTree(view.state);this.decorations=this.buildDeco(view,getHighlighters(view.state));}};var treeHighlighter=/* @__PURE__ */ Prec.high(/* @__PURE__ */ ViewPlugin.fromClass(TreeHighlighter,{decorations:v=>v.decorations}));var defaultHighlightStyle=/* @__PURE__ */ HighlightStyle.define([{tag:tags.meta,color:\"#404740\"},{tag:tags.link,textDecoration:\"underline\"},{tag:tags.heading,textDecoration:\"underline\",fontWeight:\"bold\"},{tag:tags.emphasis,fontStyle:\"italic\"},{tag:tags.strong,fontWeight:\"bold\"},{tag:tags.strikethrough,textDecoration:\"line-through\"},{tag:tags.keyword,color:\"#708\"},{tag:[tags.atom,tags.bool,tags.url,tags.contentSeparator,tags.labelName,],color:\"#219\"},{tag:[tags.literal,tags.inserted],color:\"#164\"},{tag:[tags.string,tags.deleted],color:\"#a11\"},{tag:[tags.regexp,tags.escape,/* @__PURE__ */ tags.special(tags.string),],color:\"#e40\"},{tag:/* @__PURE__ */ tags.definition(tags.variableName),color:\"#00f\"},{tag:/* @__PURE__ */ tags.local(tags.variableName),color:\"#30a\"},{tag:[tags.typeName,tags.namespace],color:\"#085\"},{tag:tags.className,color:\"#167\"},{tag:[/* @__PURE__ */ tags.special(tags.variableName),tags.macroName],color:\"#256\"},{tag:/* @__PURE__ */ tags.definition(tags.propertyName),color:\"#00c\"},{tag:tags.comment,color:\"#940\"},{tag:tags.invalid,color:\"#f00\"},]);var baseTheme=/* @__PURE__ */ EditorView.baseTheme({\"&.cm-focused .cm-matchingBracket\":{backgroundColor:\"#328c8252\"},\"&.cm-focused .cm-nonmatchingBracket\":{backgroundColor:\"#bb555544\"}});var DefaultScanDist=1e4;var DefaultBrackets=\"()[]{}\";var bracketMatchingConfig=/* @__PURE__ */ Facet.define({combine(configs){return combineConfig(configs,{afterCursor:true,brackets:DefaultBrackets,maxScanDistance:DefaultScanDist,renderMatch:defaultRenderMatch});}});var matchingMark=/* @__PURE__ */ Decoration.mark({class:\"cm-matchingBracket\"});var nonmatchingMark=/* @__PURE__ */ Decoration.mark({class:\"cm-nonmatchingBracket\"});function defaultRenderMatch(match){let decorations=[];let mark=match.matched?matchingMark:nonmatchingMark;decorations.push(mark.range(match.start.from,match.start.to));if(match.end)decorations.push(mark.range(match.end.from,match.end.to));return decorations;}var bracketMatchingState=/* @__PURE__ */ StateField.define({create(){return Decoration.none;},update(deco,tr){if(!tr.docChanged&&!tr.selection)return deco;let decorations=[];let config=tr.state.facet(bracketMatchingConfig);for(let range of tr.state.selection.ranges){if(!range.empty)continue;let match=matchBrackets(tr.state,range.head,-1,config)||range.head>0&&matchBrackets(tr.state,range.head-1,1,config)||config.afterCursor&&(matchBrackets(tr.state,range.head,1,config)||range.head<tr.state.doc.length&&matchBrackets(tr.state,range.head+1,-1,config));if(match)decorations=decorations.concat(config.renderMatch(match,tr.state));}return Decoration.set(decorations,true);},provide:f=>EditorView.decorations.from(f)});var bracketMatchingUnique=[bracketMatchingState,baseTheme];function bracketMatching(config={}){return[bracketMatchingConfig.of(config),bracketMatchingUnique];}var bracketMatchingHandle=/* @__PURE__ */ new NodeProp;function matchingNodes(node,dir,brackets){let byProp=node.prop(dir<0?NodeProp.openedBy:NodeProp.closedBy);if(byProp)return byProp;if(node.name.length==1){let index=brackets.indexOf(node.name);if(index>-1&&index%2==(dir<0?1:0))return[brackets[index+dir]];}return null;}function findHandle(node){let hasHandle=node.type.prop(bracketMatchingHandle);return hasHandle?hasHandle(node.node):node;}function matchBrackets(state,pos,dir,config={}){let maxScanDistance=config.maxScanDistance||DefaultScanDist,brackets=config.brackets||DefaultBrackets;let tree=syntaxTree(state),node=tree.resolveInner(pos,dir);for(let cur=node;cur;cur=cur.parent){let matches=matchingNodes(cur.type,dir,brackets);if(matches&&cur.from<cur.to){let handle=findHandle(cur);if(handle&&(dir>0?pos>=handle.from&&pos<handle.to:pos>handle.from&&pos<=handle.to))return matchMarkedBrackets(state,pos,dir,cur,handle,matches,brackets);}}return matchPlainBrackets(state,pos,dir,tree,node.type,maxScanDistance,brackets);}function matchMarkedBrackets(_state,_pos,dir,token,handle,matching,brackets){let parent=token.parent,firstToken={from:handle.from,to:handle.to};let depth=0,cursor=parent===null||parent===void 0?void 0:parent.cursor();if(cursor&&(dir<0?cursor.childBefore(token.from):cursor.childAfter(token.to)))do{if(dir<0?cursor.to<=token.from:cursor.from>=token.to){if(depth==0&&matching.indexOf(cursor.type.name)>-1&&cursor.from<cursor.to){let endHandle=findHandle(cursor);return{start:firstToken,end:endHandle?{from:endHandle.from,to:endHandle.to}:void 0,matched:true};}else if(matchingNodes(cursor.type,dir,brackets)){depth++;}else if(matchingNodes(cursor.type,-dir,brackets)){if(depth==0){let endHandle1=findHandle(cursor);return{start:firstToken,end:endHandle1&&endHandle1.from<endHandle1.to?{from:endHandle1.from,to:endHandle1.to}:void 0,matched:false};}depth--;}}}while(dir<0?cursor.prevSibling():cursor.nextSibling())return{start:firstToken,matched:false};}function matchPlainBrackets(state,pos,dir,tree,tokenType,maxScanDistance,brackets){let startCh=dir<0?state.sliceDoc(pos-1,pos):state.sliceDoc(pos,pos+1);let bracket=brackets.indexOf(startCh);if(bracket<0||bracket%2==0!=dir>0)return null;let startToken={from:dir<0?pos-1:pos,to:dir>0?pos+1:pos};let iter=state.doc.iterRange(pos,dir>0?state.doc.length:0),depth=0;for(let distance=0;!iter.next().done&&distance<=maxScanDistance;){let text=iter.value;if(dir<0)distance+=text.length;let basePos=pos+distance*dir;for(let pos2=dir>0?0:text.length-1,end=dir>0?text.length:-1;pos2!=end;pos2+=dir){let found=brackets.indexOf(text[pos2]);if(found<0||tree.resolveInner(basePos+pos2,1).type!=tokenType)continue;if(found%2==0==dir>0){depth++;}else if(depth==1){return{start:startToken,end:{from:basePos+pos2,to:basePos+pos2+1},matched:found>>1==bracket>>1};}else{depth--;}}if(dir>0)distance+=text.length;}return iter.done?{start:startToken,matched:false}:null;}function countCol(string,end,tabSize,startIndex=0,startValue=0){if(end==null){end=string.search(/[^\\s\\u00a0]/);if(end==-1)end=string.length;}let n=startValue;for(let i=startIndex;i<end;i++){if(string.charCodeAt(i)==9)n+=tabSize-n%tabSize;else n++;}return n;}var StringStream=class{/**\n  True if we are at the end of the line.\n  */ eol(){return this.pos>=this.string.length;}/**\n  True if we are at the start of the line.\n  */ sol(){return this.pos==0;}/**\n  Get the next code unit after the current position, or undefined\n  if we're at the end of the line.\n  */ peek(){return this.string.charAt(this.pos)||void 0;}/**\n  Read the next code unit and advance `this.pos`.\n  */ next(){if(this.pos<this.string.length)return this.string.charAt(this.pos++);}/**\n  Match the next character against the given string, regular\n  expression, or predicate. Consume and return it if it matches.\n  */ eat(match){let ch=this.string.charAt(this.pos);let ok;if(typeof match==\"string\")ok=ch==match;else ok=ch&&(match instanceof RegExp?match.test(ch):match(ch));if(ok){++this.pos;return ch;}}/**\n  Continue matching characters that match the given string,\n  regular expression, or predicate function. Return true if any\n  characters were consumed.\n  */ eatWhile(match){let start=this.pos;while(this.eat(match)){}return this.pos>start;}/**\n  Consume whitespace ahead of `this.pos`. Return true if any was\n  found.\n  */ eatSpace(){let start=this.pos;while(/[\\s\\u00a0]/.test(this.string.charAt(this.pos)))++this.pos;return this.pos>start;}/**\n  Move to the end of the line.\n  */ skipToEnd(){this.pos=this.string.length;}/**\n  Move to directly before the given character, if found on the\n  current line.\n  */ skipTo(ch){let found=this.string.indexOf(ch,this.pos);if(found>-1){this.pos=found;return true;}}/**\n  Move back `n` characters.\n  */ backUp(n){this.pos-=n;}/**\n  Get the column position at `this.pos`.\n  */ column(){if(this.lastColumnPos<this.start){this.lastColumnValue=countCol(this.string,this.start,this.tabSize,this.lastColumnPos,this.lastColumnValue);this.lastColumnPos=this.start;}return this.lastColumnValue;}/**\n  Get the indentation column of the current line.\n  */ indentation(){var _a2;return(_a2=this.overrideIndent)!==null&&_a2!==void 0?_a2:countCol(this.string,null,this.tabSize);}/**\n  Match the input against the given string or regular expression\n  (which should start with a `^`). Return true or the regexp match\n  if it matches.\n  \n  Unless `consume` is set to `false`, this will move `this.pos`\n  past the matched text.\n  \n  When matching a string `caseInsensitive` can be set to true to\n  make the match case-insensitive.\n  */ match(pattern,consume,caseInsensitive){if(typeof pattern==\"string\"){let cased=str=>caseInsensitive?str.toLowerCase():str;let substr=this.string.substr(this.pos,pattern.length);if(cased(substr)==cased(pattern)){if(consume!==false)this.pos+=pattern.length;return true;}else return null;}else{let match=this.string.slice(this.pos).match(pattern);if(match&&match.index>0)return null;if(match&&consume!==false)this.pos+=match[0].length;return match;}}/**\n  Get the current token.\n  */ current(){return this.string.slice(this.start,this.pos);}/**\n  Create a stream.\n  */ constructor(string,tabSize,indentUnit2,overrideIndent){this.string=string;this.tabSize=tabSize;this.indentUnit=indentUnit2;this.overrideIndent=overrideIndent;this.pos=0;this.start=0;this.lastColumnPos=0;this.lastColumnValue=0;}};function fullParser(spec){return{name:spec.name||\"\",token:spec.token,blankLine:spec.blankLine||(()=>{}),startState:spec.startState||(()=>true),copyState:spec.copyState||defaultCopyState,indent:spec.indent||(()=>null),languageData:spec.languageData||{},tokenTable:spec.tokenTable||noTokens};}function defaultCopyState(state){if(typeof state!=\"object\")return state;let newState={};for(let prop in state){let val=state[prop];newState[prop]=val instanceof Array?val.slice():val;}return newState;}var IndentedFrom=/* @__PURE__ */ new WeakMap;var StreamLanguage=class extends Language{/**\n  Define a stream language.\n  */ static define(spec){return new StreamLanguage(spec);}getIndent(cx,pos){let tree=syntaxTree(cx.state),at=tree.resolve(pos);while(at&&at.type!=this.topNode)at=at.parent;if(!at)return null;let from=void 0;let{overrideIndentation}=cx.options;if(overrideIndentation){from=IndentedFrom.get(cx.state);if(from!=null&&from<pos-1e4)from=void 0;}let start=findState(this,tree,0,at.from,from!==null&&from!==void 0?from:pos),statePos,state;if(start){state=start.state;statePos=start.pos+1;}else{state=this.streamParser.startState(cx.unit);statePos=0;}if(pos-statePos>1e4)return null;while(statePos<pos){let line2=cx.state.doc.lineAt(statePos),end=Math.min(pos,line2.to);if(line2.length){let indentation=overrideIndentation?overrideIndentation(line2.from):-1;let stream=new StringStream(line2.text,cx.state.tabSize,cx.unit,indentation<0?void 0:indentation);while(stream.pos<end-line2.from)readToken(this.streamParser.token,stream,state);}else{this.streamParser.blankLine(state,cx.unit);}if(end==pos)break;statePos=line2.to+1;}let line=cx.lineAt(pos);if(overrideIndentation&&from==null)IndentedFrom.set(cx.state,line.from);return this.streamParser.indent(state,/^\\s*(.*)/.exec(line.text)[1],cx);}get allowsNesting(){return false;}constructor(parser){let data=defineLanguageFacet(parser.languageData);let p=fullParser(parser),self;let impl=new class extends Parser{createParse(input,fragments,ranges){return new Parse(self,input,fragments,ranges);}};super(data,impl,[indentService.of((cx,pos)=>this.getIndent(cx,pos))],parser.name);this.topNode=docID(data);self=this;this.streamParser=p;this.stateAfter=new NodeProp({perNode:true});this.tokenTable=parser.tokenTable?new TokenTable(p.tokenTable):defaultTokenTable;}};function findState(lang,tree,off,startPos,before){let state=off>=startPos&&off+tree.length<=before&&tree.prop(lang.stateAfter);if(state)return{state:lang.streamParser.copyState(state),pos:off+tree.length};for(let i=tree.children.length-1;i>=0;i--){let child=tree.children[i],pos=off+tree.positions[i];let found=child instanceof Tree&&pos<before&&findState(lang,child,pos,startPos,before);if(found)return found;}return null;}function cutTree(lang,tree,from,to,inside){if(inside&&from<=0&&to>=tree.length)return tree;if(!inside&&tree.type==lang.topNode)inside=true;for(let i=tree.children.length-1;i>=0;i--){let pos=tree.positions[i],child=tree.children[i],inner;if(pos<to&&child instanceof Tree){if(!(inner=cutTree(lang,child,from-pos,to-pos,inside)))break;return!inside?inner:new Tree(tree.type,tree.children.slice(0,i).concat(inner),tree.positions.slice(0,i+1),pos+inner.length);}}return null;}function findStartInFragments(lang,fragments,startPos,editorState){for(let f of fragments){let from=f.from+(f.openStart?25:0),to=f.to-(f.openEnd?25:0);let found=from<=startPos&&to>startPos&&findState(lang,f.tree,0-f.offset,startPos,to),tree;if(found&&(tree=cutTree(lang,f.tree,startPos+f.offset,found.pos+f.offset,false)))return{state:found.state,tree};}return{state:lang.streamParser.startState(editorState?getIndentUnit(editorState):4),tree:Tree.empty};}var Parse=class{advance(){let context=ParseContext.get();let parseEnd=this.stoppedAt==null?this.to:Math.min(this.to,this.stoppedAt);let end=Math.min(parseEnd,this.chunkStart+2048);if(context)end=Math.min(end,context.viewport.to);while(this.parsedPos<end)this.parseLine(context);if(this.chunkStart<this.parsedPos)this.finishChunk();if(this.parsedPos>=parseEnd)return this.finish();if(context&&this.parsedPos>=context.viewport.to){context.skipUntilInView(this.parsedPos,parseEnd);return this.finish();}return null;}stopAt(pos){this.stoppedAt=pos;}lineAfter(pos){let chunk=this.input.chunk(pos);if(!this.input.lineChunks){let eol=chunk.indexOf(\"\\n\");if(eol>-1)chunk=chunk.slice(0,eol);}else if(chunk==\"\\n\"){chunk=\"\";}return pos+chunk.length<=this.to?chunk:chunk.slice(0,this.to-pos);}nextLine(){let from=this.parsedPos,line=this.lineAfter(from),end=from+line.length;for(let index=this.rangeIndex;;){let rangeEnd=this.ranges[index].to;if(rangeEnd>=end)break;line=line.slice(0,rangeEnd-(end-line.length));index++;if(index==this.ranges.length)break;let rangeStart=this.ranges[index].from;let after=this.lineAfter(rangeStart);line+=after;end=rangeStart+after.length;}return{line,end};}skipGapsTo(pos,offset,side){for(;;){let end=this.ranges[this.rangeIndex].to,offPos=pos+offset;if(side>0?end>offPos:end>=offPos)break;let start=this.ranges[++this.rangeIndex].from;offset+=start-end;}return offset;}moveRangeIndex(){while(this.ranges[this.rangeIndex].to<this.parsedPos)this.rangeIndex++;}emitToken(id,from,to,size,offset){if(this.ranges.length>1){offset=this.skipGapsTo(from,offset,1);from+=offset;let len0=this.chunk.length;offset=this.skipGapsTo(to,offset,-1);to+=offset;size+=this.chunk.length-len0;}this.chunk.push(id,from,to,size);return offset;}parseLine(context){let{line,end}=this.nextLine(),offset=0,{streamParser}=this.lang;let stream=new StringStream(line,context?context.state.tabSize:4,context?getIndentUnit(context.state):2);if(stream.eol()){streamParser.blankLine(this.state,stream.indentUnit);}else{while(!stream.eol()){let token=readToken(streamParser.token,stream,this.state);if(token)offset=this.emitToken(this.lang.tokenTable.resolve(token),this.parsedPos+stream.start,this.parsedPos+stream.pos,4,offset);if(stream.start>1e4)break;}}this.parsedPos=end;this.moveRangeIndex();if(this.parsedPos<this.to)this.parsedPos++;}finishChunk(){let tree=Tree.build({buffer:this.chunk,start:this.chunkStart,length:this.parsedPos-this.chunkStart,nodeSet,topID:0,maxBufferLength:2048,reused:this.chunkReused});tree=new Tree(tree.type,tree.children,tree.positions,tree.length,[[this.lang.stateAfter,this.lang.streamParser.copyState(this.state),],]);this.chunks.push(tree);this.chunkPos.push(this.chunkStart-this.ranges[0].from);this.chunk=[];this.chunkReused=void 0;this.chunkStart=this.parsedPos;}finish(){return new Tree(this.lang.topNode,this.chunks,this.chunkPos,this.parsedPos-this.ranges[0].from).balance();}constructor(lang,input,fragments,ranges){this.lang=lang;this.input=input;this.fragments=fragments;this.ranges=ranges;this.stoppedAt=null;this.chunks=[];this.chunkPos=[];this.chunk=[];this.chunkReused=void 0;this.rangeIndex=0;this.to=ranges[ranges.length-1].to;let context=ParseContext.get(),from=ranges[0].from;let{state,tree}=findStartInFragments(lang,fragments,from,context===null||context===void 0?void 0:context.state);this.state=state;this.parsedPos=this.chunkStart=from+tree.length;for(let i=0;i<tree.children.length;i++){this.chunks.push(tree.children[i]);this.chunkPos.push(tree.positions[i]);}if(context&&this.parsedPos<context.viewport.from-1e5){this.state=this.lang.streamParser.startState(getIndentUnit(context.state));context.skipUntilInView(this.parsedPos,context.viewport.from);this.parsedPos=context.viewport.from;}this.moveRangeIndex();}};function readToken(token,stream,state){stream.start=stream.pos;for(let i=0;i<10;i++){let result=token(stream,state);if(stream.pos>stream.start)return result;}throw new Error(\"Stream parser failed to advance stream.\");}var noTokens=/* @__PURE__ */ Object.create(null);var typeArray=[NodeType.none];var nodeSet=/* @__PURE__ */ new NodeSet(typeArray);var warned=[];var defaultTable=/* @__PURE__ */ Object.create(null);for(let[legacyName,name]of[[\"variable\",\"variableName\"],[\"variable-2\",\"variableName.special\"],[\"string-2\",\"string.special\"],[\"def\",\"variableName.definition\"],[\"tag\",\"tagName\"],[\"attribute\",\"attributeName\"],[\"type\",\"typeName\"],[\"builtin\",\"variableName.standard\"],[\"qualifier\",\"modifier\"],[\"error\",\"invalid\"],[\"header\",\"heading\"],[\"property\",\"propertyName\"],])defaultTable[legacyName]=/* @__PURE__ */ createTokenType(noTokens,name);var TokenTable=class{resolve(tag){return!tag?0:this.table[tag]||(this.table[tag]=createTokenType(this.extra,tag));}constructor(extra){this.extra=extra;this.table=Object.assign(/* @__PURE__ */ Object.create(null),defaultTable);}};var defaultTokenTable=/* @__PURE__ */ new TokenTable(noTokens);function warnForPart(part,msg){if(warned.indexOf(part)>-1)return;warned.push(part);console.warn(msg);}function createTokenType(extra,tagStr){let tag=null;for(let part of tagStr.split(\".\")){let value=extra[part]||tags[part];if(!value){warnForPart(part,`Unknown highlighting tag ${part}`);}else if(typeof value==\"function\"){if(!tag)warnForPart(part,`Modifier ${part} used at start of tag`);else tag=value(tag);}else{if(tag)warnForPart(part,`Tag ${part} used as modifier`);else tag=value;}}if(!tag)return 0;let name=tagStr.replace(/ /g,\"_\"),type=NodeType.define({id:typeArray.length,name,props:[styleTags({[name]:tag})]});typeArray.push(type);return type.id;}function docID(data){let type=NodeType.define({id:typeArray.length,name:\"Document\",props:[languageDataProp.add(()=>data)]});typeArray.push(type);return type;}export{DocInput,HighlightStyle,IndentContext,LRLanguage,Language,LanguageDescription,LanguageSupport,ParseContext,StreamLanguage,StringStream,TreeIndentContext,bracketMatching,bracketMatchingHandle,codeFolding,continuedIndent,defaultHighlightStyle,defineLanguageFacet,delimitedIndent,ensureSyntaxTree,flatIndent,foldAll,foldCode,foldEffect,foldGutter,foldInside,foldKeymap,foldNodeProp,foldService,foldState,foldable,foldedRanges,forceParsing,getIndentUnit,getIndentation,highlightingFor,indentNodeProp,indentOnInput,indentRange,indentService,indentString,indentUnit,language,languageDataProp,matchBrackets,sublanguageProp,syntaxHighlighting,syntaxParserRunning,syntaxTree,syntaxTreeAvailable,toggleFold,unfoldAll,unfoldCode,unfoldEffect,};\nexport const __FramerMetadata__ = {\"exports\":{\"LRLanguage\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"syntaxTree\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ensureSyntaxTree\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"codeFolding\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"indentService\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"indentOnInput\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"foldNodeProp\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getIndentUnit\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"languageDataProp\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"foldedRanges\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"defaultHighlightStyle\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"DocInput\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"LanguageSupport\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"indentRange\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"delimitedIndent\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"foldAll\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"syntaxTreeAvailable\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"foldKeymap\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"flatIndent\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"sublanguageProp\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"forceParsing\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"language\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"foldable\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"StreamLanguage\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"defineLanguageFacet\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"foldInside\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"syntaxParserRunning\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"toggleFold\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"matchBrackets\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"unfoldCode\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"indentNodeProp\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"indentString\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"foldEffect\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getIndentation\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"IndentContext\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"foldState\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"indentUnit\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"unfoldAll\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TreeIndentContext\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ParseContext\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"foldGutter\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"foldCode\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"LanguageDescription\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"continuedIndent\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"syntaxHighlighting\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"unfoldEffect\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"foldService\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"StringStream\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"bracketMatchingHandle\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"bracketMatching\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Language\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"HighlightStyle\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"highlightingFor\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// @ts-nocheck\n/**\n * This file is generated inside FramerStudio. To update it run \"make build\"\n * inside \"./src/codeblock-dependencies\" and copy the file from \"./build\".\n */ // ../../node_modules/@lezer/lr/dist/index.js\nimport{Parser,NodeProp,NodeSet,NodeType,DefaultBufferLength,Tree,IterMode}from\"https://framerusercontent.com/modules/CO9ruPlVDRTCLVInyri7/dIK6ma4pzS0qSHWtJ4s1/lezer_common.js\";var Stack=class{/// @internal\ntoString(){return`[${this.stack.filter((_,i)=>i%3==0).concat(this.state)}]@${this.pos}${this.score?\"!\"+this.score:\"\"}`;}// Start an empty stack\n/// @internal\nstatic start(p,state,pos=0){let cx=p.parser.context;return new Stack(p,[],state,pos,pos,0,[],0,cx?new StackContext(cx,cx.start):null,0,null);}/// The stack's current [context](#lr.ContextTracker) value, if\n/// any. Its type will depend on the context tracker's type\n/// parameter, or it will be `null` if there is no context\n/// tracker.\nget context(){return this.curContext?this.curContext.context:null;}// Push a state onto the stack, tracking its start position as well\n// as the buffer base at that point.\n/// @internal\npushState(state,start){this.stack.push(this.state,start,this.bufferBase+this.buffer.length);this.state=state;}// Apply a reduce action\n/// @internal\nreduce(action){var _a;let depth=action>>19,type=action&65535;let{parser}=this.p;let dPrec=parser.dynamicPrecedence(type);if(dPrec)this.score+=dPrec;if(depth==0){this.pushState(parser.getGoto(this.state,type,true),this.reducePos);if(type<parser.minRepeatTerm)this.storeNode(type,this.reducePos,this.reducePos,4,true);this.reduceContext(type,this.reducePos);return;}let base=this.stack.length-(depth-1)*3-(action&262144?6:0);let start=base?this.stack[base-2]:this.p.ranges[0].from,size=this.reducePos-start;if(size>=2e3&&!((_a=this.p.parser.nodeSet.types[type])===null||_a===void 0?void 0:_a.isAnonymous)){if(start==this.p.lastBigReductionStart){this.p.bigReductionCount++;this.p.lastBigReductionSize=size;}else if(this.p.lastBigReductionSize<size){this.p.bigReductionCount=1;this.p.lastBigReductionStart=start;this.p.lastBigReductionSize=size;}}let bufferBase=base?this.stack[base-1]:0,count=this.bufferBase+this.buffer.length-bufferBase;if(type<parser.minRepeatTerm||action&131072){let pos=parser.stateFlag(this.state,1)?this.pos:this.reducePos;this.storeNode(type,start,pos,count+4,true);}if(action&262144){this.state=this.stack[base];}else{let baseStateID=this.stack[base-3];this.state=parser.getGoto(baseStateID,type,true);}while(this.stack.length>base)this.stack.pop();this.reduceContext(type,start);}// Shift a value into the buffer\n/// @internal\nstoreNode(term,start,end,size=4,isReduce=false){if(term==0&&(!this.stack.length||this.stack[this.stack.length-1]<this.buffer.length+this.bufferBase)){let cur=this,top=this.buffer.length;if(top==0&&cur.parent){top=cur.bufferBase-cur.parent.bufferBase;cur=cur.parent;}if(top>0&&cur.buffer[top-4]==0&&cur.buffer[top-1]>-1){if(start==end)return;if(cur.buffer[top-2]>=start){cur.buffer[top-2]=end;return;}}}if(!isReduce||this.pos==end){this.buffer.push(term,start,end,size);}else{let index=this.buffer.length;if(index>0&&this.buffer[index-4]!=0)while(index>0&&this.buffer[index-2]>end){this.buffer[index]=this.buffer[index-4];this.buffer[index+1]=this.buffer[index-3];this.buffer[index+2]=this.buffer[index-2];this.buffer[index+3]=this.buffer[index-1];index-=4;if(size>4)size-=4;}this.buffer[index]=term;this.buffer[index+1]=start;this.buffer[index+2]=end;this.buffer[index+3]=size;}}// Apply a shift action\n/// @internal\nshift(action,next,nextEnd){let start=this.pos;if(action&131072){this.pushState(action&65535,this.pos);}else if((action&262144)==0){let nextState=action,{parser}=this.p;if(nextEnd>this.pos||next<=parser.maxNode){this.pos=nextEnd;if(!parser.stateFlag(nextState,1))this.reducePos=nextEnd;}this.pushState(nextState,start);this.shiftContext(next,start);if(next<=parser.maxNode)this.buffer.push(next,start,nextEnd,4);}else{this.pos=nextEnd;this.shiftContext(next,start);if(next<=this.p.parser.maxNode)this.buffer.push(next,start,nextEnd,4);}}// Apply an action\n/// @internal\napply(action,next,nextEnd){if(action&65536)this.reduce(action);else this.shift(action,next,nextEnd);}// Add a prebuilt (reused) node into the buffer.\n/// @internal\nuseNode(value,next){let index=this.p.reused.length-1;if(index<0||this.p.reused[index]!=value){this.p.reused.push(value);index++;}let start=this.pos;this.reducePos=this.pos=start+value.length;this.pushState(next,start);this.buffer.push(index,start,this.reducePos,-1);if(this.curContext)this.updateContext(this.curContext.tracker.reuse(this.curContext.context,value,this,this.p.stream.reset(this.pos-value.length)));}// Split the stack. Due to the buffer sharing and the fact\n// that `this.stack` tends to stay quite shallow, this isn't very\n// expensive.\n/// @internal\nsplit(){let parent=this;let off=parent.buffer.length;while(off>0&&parent.buffer[off-2]>parent.reducePos)off-=4;let buffer=parent.buffer.slice(off),base=parent.bufferBase+off;while(parent&&base==parent.bufferBase)parent=parent.parent;return new Stack(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,buffer,base,this.curContext,this.lookAhead,parent);}// Try to recover from an error by 'deleting' (ignoring) one token.\n/// @internal\nrecoverByDelete(next,nextEnd){let isNode=next<=this.p.parser.maxNode;if(isNode)this.storeNode(next,this.pos,nextEnd,4);this.storeNode(0,this.pos,nextEnd,isNode?8:4);this.pos=this.reducePos=nextEnd;this.score-=190;}/// Check if the given term would be able to be shifted (optionally\n/// after some reductions) on this stack. This can be useful for\n/// external tokenizers that want to make sure they only provide a\n/// given token when it applies.\ncanShift(term){for(let sim=new SimulatedStack(this);;){let action=this.p.parser.stateSlot(sim.state,4)||this.p.parser.hasAction(sim.state,term);if(action==0)return false;if((action&65536)==0)return true;sim.reduce(action);}}// Apply up to Recover.MaxNext recovery actions that conceptually\n// inserts some missing token or rule.\n/// @internal\nrecoverByInsert(next){if(this.stack.length>=300)return[];let nextStates=this.p.parser.nextStates(this.state);if(nextStates.length>4<<1||this.stack.length>=120){let best=[];for(let i=0,s;i<nextStates.length;i+=2){if((s=nextStates[i+1])!=this.state&&this.p.parser.hasAction(s,next))best.push(nextStates[i],s);}if(this.stack.length<120)for(let i1=0;best.length<4<<1&&i1<nextStates.length;i1+=2){let s1=nextStates[i1+1];if(!best.some((v,i2)=>i2&1&&v==s1))best.push(nextStates[i1],s1);}nextStates=best;}let result=[];for(let i2=0;i2<nextStates.length&&result.length<4;i2+=2){let s2=nextStates[i2+1];if(s2==this.state)continue;let stack=this.split();stack.pushState(s2,this.pos);stack.storeNode(0,stack.pos,stack.pos,4,true);stack.shiftContext(nextStates[i2],this.pos);stack.score-=200;result.push(stack);}return result;}// Force a reduce, if possible. Return false if that can't\n// be done.\n/// @internal\nforceReduce(){let{parser}=this.p;let reduce=parser.stateSlot(this.state,5);if((reduce&65536)==0)return false;if(!parser.validAction(this.state,reduce)){let depth=reduce>>19,term=reduce&65535;let target=this.stack.length-depth*3;if(target<0||parser.getGoto(this.stack[target],term,false)<0){let backup=this.findForcedReduction();if(backup==null)return false;reduce=backup;}this.storeNode(0,this.reducePos,this.reducePos,4,true);this.score-=100;}this.reducePos=this.pos;this.reduce(reduce);return true;}/// Try to scan through the automaton to find some kind of reduction\n/// that can be applied. Used when the regular ForcedReduce field\n/// isn't a valid action. @internal\nfindForcedReduction(){let{parser}=this.p,seen=[];let explore=(state,depth)=>{if(seen.includes(state))return;seen.push(state);return parser.allActions(state,action=>{if(action&(262144|131072));else if(action&65536){let rDepth=(action>>19)-depth;if(rDepth>1){let term=action&65535,target=this.stack.length-rDepth*3;if(target>=0&&parser.getGoto(this.stack[target],term,false)>=0)return rDepth<<19|65536|term;}}else{let found=explore(action,depth+1);if(found!=null)return found;}});};return explore(this.state,0);}/// @internal\nforceAll(){while(!this.p.parser.stateFlag(this.state,2)){if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,true);break;}}return this;}/// Check whether this state has no further actions (assumed to be a direct descendant of the\n/// top state, since any other states must be able to continue\n/// somehow). @internal\nget deadEnd(){if(this.stack.length!=3)return false;let{parser}=this.p;return parser.data[parser.stateSlot(this.state,1)]==65535&&!parser.stateSlot(this.state,4);}/// Restart the stack (put it back in its start state). Only safe\n/// when this.stack.length == 3 (state is directly below the top\n/// state). @internal\nrestart(){this.state=this.stack[0];this.stack.length=0;}/// @internal\nsameState(other){if(this.state!=other.state||this.stack.length!=other.stack.length)return false;for(let i=0;i<this.stack.length;i+=3)if(this.stack[i]!=other.stack[i])return false;return true;}/// Get the parser used by this stack.\nget parser(){return this.p.parser;}/// Test whether a given dialect (by numeric ID, as exported from\n/// the terms file) is enabled.\ndialectEnabled(dialectID){return this.p.parser.dialect.flags[dialectID];}shiftContext(term,start){if(this.curContext)this.updateContext(this.curContext.tracker.shift(this.curContext.context,term,this,this.p.stream.reset(start)));}reduceContext(term,start){if(this.curContext)this.updateContext(this.curContext.tracker.reduce(this.curContext.context,term,this,this.p.stream.reset(start)));}/// @internal\nemitContext(){let last=this.buffer.length-1;if(last<0||this.buffer[last]!=-3)this.buffer.push(this.curContext.hash,this.pos,this.pos,-3);}/// @internal\nemitLookAhead(){let last=this.buffer.length-1;if(last<0||this.buffer[last]!=-4)this.buffer.push(this.lookAhead,this.pos,this.pos,-4);}updateContext(context){if(context!=this.curContext.context){let newCx=new StackContext(this.curContext.tracker,context);if(newCx.hash!=this.curContext.hash)this.emitContext();this.curContext=newCx;}}/// @internal\nsetLookAhead(lookAhead){if(lookAhead>this.lookAhead){this.emitLookAhead();this.lookAhead=lookAhead;}}/// @internal\nclose(){if(this.curContext&&this.curContext.tracker.strict)this.emitContext();if(this.lookAhead>0)this.emitLookAhead();}/// @internal\nconstructor(p,stack,state,reducePos,pos,score,buffer,bufferBase,curContext,lookAhead=0,parent){this.p=p;this.stack=stack;this.state=state;this.reducePos=reducePos;this.pos=pos;this.score=score;this.buffer=buffer;this.bufferBase=bufferBase;this.curContext=curContext;this.lookAhead=lookAhead;this.parent=parent;}};var StackContext=class{constructor(tracker,context){this.tracker=tracker;this.context=context;this.hash=tracker.strict?tracker.hash(context):0;}};var Recover;(function(Recover2){Recover2[Recover2[\"Insert\"]=200]=\"Insert\";Recover2[Recover2[\"Delete\"]=190]=\"Delete\";Recover2[Recover2[\"Reduce\"]=100]=\"Reduce\";Recover2[Recover2[\"MaxNext\"]=4]=\"MaxNext\";Recover2[Recover2[\"MaxInsertStackDepth\"]=300]=\"MaxInsertStackDepth\";Recover2[Recover2[\"DampenInsertStackDepth\"]=120]=\"DampenInsertStackDepth\";Recover2[Recover2[\"MinBigReduction\"]=2e3]=\"MinBigReduction\";})(Recover||(Recover={}));var SimulatedStack=class{reduce(action){let term=action&65535,depth=action>>19;if(depth==0){if(this.stack==this.start.stack)this.stack=this.stack.slice();this.stack.push(this.state,0,0);this.base+=3;}else{this.base-=(depth-1)*3;}let goto=this.start.p.parser.getGoto(this.stack[this.base-3],term,true);this.state=goto;}constructor(start){this.start=start;this.state=start.state;this.stack=start.stack;this.base=this.stack.length;}};var StackBufferCursor=class{static create(stack,pos=stack.bufferBase+stack.buffer.length){return new StackBufferCursor(stack,pos,pos-stack.bufferBase);}maybeNext(){let next=this.stack.parent;if(next!=null){this.index=this.stack.bufferBase-next.bufferBase;this.stack=next;this.buffer=next.buffer;}}get id(){return this.buffer[this.index-4];}get start(){return this.buffer[this.index-3];}get end(){return this.buffer[this.index-2];}get size(){return this.buffer[this.index-1];}next(){this.index-=4;this.pos-=4;if(this.index==0)this.maybeNext();}fork(){return new StackBufferCursor(this.stack,this.pos,this.index);}constructor(stack,pos,index){this.stack=stack;this.pos=pos;this.index=index;this.buffer=stack.buffer;if(this.index==0)this.maybeNext();}};function decodeArray(input,Type=Uint16Array){if(typeof input!=\"string\")return input;let array=null;for(let pos=0,out=0;pos<input.length;){let value=0;for(;;){let next=input.charCodeAt(pos++),stop=false;if(next==126){value=65535;break;}if(next>=92)next--;if(next>=34)next--;let digit=next-32;if(digit>=46){digit-=46;stop=true;}value+=digit;if(stop)break;value*=46;}if(array)array[out++]=value;else array=new Type(value);}return array;}var CachedToken=class{constructor(){this.start=-1;this.value=-1;this.end=-1;this.extended=-1;this.lookAhead=0;this.mask=0;this.context=0;}};var nullToken=new CachedToken;var InputStream=class{/// @internal\nresolveOffset(offset,assoc){let range=this.range,index=this.rangeIndex;let pos=this.pos+offset;while(pos<range.from){if(!index)return null;let next=this.ranges[--index];pos-=range.from-next.to;range=next;}while(assoc<0?pos>range.to:pos>=range.to){if(index==this.ranges.length-1)return null;let next1=this.ranges[++index];pos+=next1.from-range.to;range=next1;}return pos;}/// @internal\nclipPos(pos){if(pos>=this.range.from&&pos<this.range.to)return pos;for(let range of this.ranges)if(range.to>pos)return Math.max(pos,range.from);return this.end;}/// Look at a code unit near the stream position. `.peek(0)` equals\n/// `.next`, `.peek(-1)` gives you the previous character, and so\n/// on.\n///\n/// Note that looking around during tokenizing creates dependencies\n/// on potentially far-away content, which may reduce the\n/// effectiveness incremental parsing—when looking forward—or even\n/// cause invalid reparses when looking backward more than 25 code\n/// units, since the library does not track lookbehind.\npeek(offset){let idx=this.chunkOff+offset,pos,result;if(idx>=0&&idx<this.chunk.length){pos=this.pos+offset;result=this.chunk.charCodeAt(idx);}else{let resolved=this.resolveOffset(offset,1);if(resolved==null)return-1;pos=resolved;if(pos>=this.chunk2Pos&&pos<this.chunk2Pos+this.chunk2.length){result=this.chunk2.charCodeAt(pos-this.chunk2Pos);}else{let i=this.rangeIndex,range=this.range;while(range.to<=pos)range=this.ranges[++i];this.chunk2=this.input.chunk(this.chunk2Pos=pos);if(pos+this.chunk2.length>range.to)this.chunk2=this.chunk2.slice(0,range.to-pos);result=this.chunk2.charCodeAt(0);}}if(pos>=this.token.lookAhead)this.token.lookAhead=pos+1;return result;}/// Accept a token. By default, the end of the token is set to the\n/// current stream position, but you can pass an offset (relative to\n/// the stream position) to change that.\nacceptToken(token,endOffset=0){let end=endOffset?this.resolveOffset(endOffset,-1):this.pos;if(end==null||end<this.token.start)throw new RangeError(\"Token end out of bounds\");this.token.value=token;this.token.end=end;}getChunk(){if(this.pos>=this.chunk2Pos&&this.pos<this.chunk2Pos+this.chunk2.length){let{chunk,chunkPos}=this;this.chunk=this.chunk2;this.chunkPos=this.chunk2Pos;this.chunk2=chunk;this.chunk2Pos=chunkPos;this.chunkOff=this.pos-this.chunkPos;}else{this.chunk2=this.chunk;this.chunk2Pos=this.chunkPos;let nextChunk=this.input.chunk(this.pos);let end=this.pos+nextChunk.length;this.chunk=end>this.range.to?nextChunk.slice(0,this.range.to-this.pos):nextChunk;this.chunkPos=this.pos;this.chunkOff=0;}}readNext(){if(this.chunkOff>=this.chunk.length){this.getChunk();if(this.chunkOff==this.chunk.length)return this.next=-1;}return this.next=this.chunk.charCodeAt(this.chunkOff);}/// Move the stream forward N (defaults to 1) code units. Returns\n/// the new value of [`next`](#lr.InputStream.next).\nadvance(n=1){this.chunkOff+=n;while(this.pos+n>=this.range.to){if(this.rangeIndex==this.ranges.length-1)return this.setDone();n-=this.range.to-this.pos;this.range=this.ranges[++this.rangeIndex];this.pos=this.range.from;}this.pos+=n;if(this.pos>=this.token.lookAhead)this.token.lookAhead=this.pos+1;return this.readNext();}setDone(){this.pos=this.chunkPos=this.end;this.range=this.ranges[this.rangeIndex=this.ranges.length-1];this.chunk=\"\";return this.next=-1;}/// @internal\nreset(pos,token){if(token){this.token=token;token.start=pos;token.lookAhead=pos+1;token.value=token.extended=-1;}else{this.token=nullToken;}if(this.pos!=pos){this.pos=pos;if(pos==this.end){this.setDone();return this;}while(pos<this.range.from)this.range=this.ranges[--this.rangeIndex];while(pos>=this.range.to)this.range=this.ranges[++this.rangeIndex];if(pos>=this.chunkPos&&pos<this.chunkPos+this.chunk.length){this.chunkOff=pos-this.chunkPos;}else{this.chunk=\"\";this.chunkOff=0;}this.readNext();}return this;}/// @internal\nread(from,to){if(from>=this.chunkPos&&to<=this.chunkPos+this.chunk.length)return this.chunk.slice(from-this.chunkPos,to-this.chunkPos);if(from>=this.chunk2Pos&&to<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(from-this.chunk2Pos,to-this.chunk2Pos);if(from>=this.range.from&&to<=this.range.to)return this.input.read(from,to);let result=\"\";for(let r of this.ranges){if(r.from>=to)break;if(r.to>from)result+=this.input.read(Math.max(r.from,from),Math.min(r.to,to));}return result;}/// @internal\nconstructor(input,ranges){this.input=input;this.ranges=ranges;this.chunk=\"\";this.chunkOff=0;this.chunk2=\"\";this.chunk2Pos=0;this.next=-1;this.token=nullToken;this.rangeIndex=0;this.pos=this.chunkPos=ranges[0].from;this.range=ranges[0];this.end=ranges[ranges.length-1].to;this.readNext();}};var TokenGroup=class{token(input,stack){let{parser}=stack.p;readToken(this.data,input,stack,this.id,parser.data,parser.tokenPrecTable);}constructor(data,id2){this.data=data;this.id=id2;}};TokenGroup.prototype.contextual=TokenGroup.prototype.fallback=TokenGroup.prototype.extend=false;var LocalTokenGroup=class{token(input,stack){let start=input.pos,skipped=0;for(;;){readToken(this.data,input,stack,0,this.data,this.precTable);if(input.token.value>-1)break;if(this.elseToken==null)return;if(input.next<0)break;input.advance();input.reset(input.pos,input.token);skipped++;}if(skipped){input.reset(start,input.token);input.acceptToken(this.elseToken,skipped);}}constructor(data,precTable,elseToken){this.precTable=precTable;this.elseToken=elseToken;this.data=typeof data==\"string\"?decodeArray(data):data;}};LocalTokenGroup.prototype.contextual=TokenGroup.prototype.fallback=TokenGroup.prototype.extend=false;var ExternalTokenizer=class{/// Create a tokenizer. The first argument is the function that,\n/// given an input stream, scans for the types of tokens it\n/// recognizes at the stream's position, and calls\n/// [`acceptToken`](#lr.InputStream.acceptToken) when it finds\n/// one.\nconstructor(token,options={}){this.token=token;this.contextual=!!options.contextual;this.fallback=!!options.fallback;this.extend=!!options.extend;}};function readToken(data,input,stack,group,precTable,precOffset){let state=0,groupMask=1<<group,{dialect}=stack.p.parser;scan:for(;;){if((groupMask&data[state])==0)break;let accEnd=data[state+1];for(let i=state+3;i<accEnd;i+=2)if((data[i+1]&groupMask)>0){let term=data[i];if(dialect.allows(term)&&(input.token.value==-1||input.token.value==term||overrides(term,input.token.value,precTable,precOffset))){input.acceptToken(term);break;}}let next=input.next,low=0,high=data[state+2];if(input.next<0&&high>low&&data[accEnd+high*3-3]==65535&&data[accEnd+high*3-3]==65535){state=data[accEnd+high*3-1];continue scan;}for(;low<high;){let mid=low+high>>1;let index=accEnd+mid+(mid<<1);let from=data[index],to=data[index+1]||65536;if(next<from)high=mid;else if(next>=to)low=mid+1;else{state=data[index+2];input.advance();continue scan;}}break;}}function findOffset(data,start,term){for(let i=start,next;(next=data[i])!=65535;i++)if(next==term)return i-start;return-1;}function overrides(token,prev,tableData,tableOffset){let iPrev=findOffset(tableData,tableOffset,prev);return iPrev<0||findOffset(tableData,tableOffset,token)<iPrev;}var verbose=typeof process!=\"undefined\"&&process.env&&/\\bparse\\b/.test(process.env.LOG);var stackIDs=null;var Safety;(function(Safety2){Safety2[Safety2[\"Margin\"]=25]=\"Margin\";})(Safety||(Safety={}));function cutAt(tree,pos,side){let cursor=tree.cursor(IterMode.IncludeAnonymous);cursor.moveTo(pos);for(;;){if(!(side<0?cursor.childBefore(pos):cursor.childAfter(pos)))for(;;){if((side<0?cursor.to<pos:cursor.from>pos)&&!cursor.type.isError)return side<0?Math.max(0,Math.min(cursor.to-1,pos-25)):Math.min(tree.length,Math.max(cursor.from+1,pos+25));if(side<0?cursor.prevSibling():cursor.nextSibling())break;if(!cursor.parent())return side<0?0:tree.length;}}}var FragmentCursor=class{nextFragment(){let fr=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(fr){this.safeFrom=fr.openStart?cutAt(fr.tree,fr.from+fr.offset,1)-fr.offset:fr.from;this.safeTo=fr.openEnd?cutAt(fr.tree,fr.to+fr.offset,-1)-fr.offset:fr.to;while(this.trees.length){this.trees.pop();this.start.pop();this.index.pop();}this.trees.push(fr.tree);this.start.push(-fr.offset);this.index.push(0);this.nextStart=this.safeFrom;}else{this.nextStart=1e9;}}// `pos` must be >= any previously given `pos` for this cursor\nnodeAt(pos){if(pos<this.nextStart)return null;while(this.fragment&&this.safeTo<=pos)this.nextFragment();if(!this.fragment)return null;for(;;){let last=this.trees.length-1;if(last<0){this.nextFragment();return null;}let top=this.trees[last],index=this.index[last];if(index==top.children.length){this.trees.pop();this.start.pop();this.index.pop();continue;}let next=top.children[index];let start=this.start[last]+top.positions[index];if(start>pos){this.nextStart=start;return null;}if(next instanceof Tree){if(start==pos){if(start<this.safeFrom)return null;let end=start+next.length;if(end<=this.safeTo){let lookAhead=next.prop(NodeProp.lookAhead);if(!lookAhead||end+lookAhead<this.fragment.to)return next;}}this.index[last]++;if(start+next.length>=Math.max(this.safeFrom,pos)){this.trees.push(next);this.start.push(start);this.index.push(0);}}else{this.index[last]++;this.nextStart=start+next.length;}}}constructor(fragments,nodeSet){this.fragments=fragments;this.nodeSet=nodeSet;this.i=0;this.fragment=null;this.safeFrom=-1;this.safeTo=-1;this.trees=[];this.start=[];this.index=[];this.nextFragment();}};var TokenCache=class{getActions(stack){let actionIndex=0;let main=null;let{parser}=stack.p,{tokenizers}=parser;let mask=parser.stateSlot(stack.state,3);let context=stack.curContext?stack.curContext.hash:0;let lookAhead=0;for(let i=0;i<tokenizers.length;i++){if((1<<i&mask)==0)continue;let tokenizer=tokenizers[i],token=this.tokens[i];if(main&&!tokenizer.fallback)continue;if(tokenizer.contextual||token.start!=stack.pos||token.mask!=mask||token.context!=context){this.updateCachedToken(token,tokenizer,stack);token.mask=mask;token.context=context;}if(token.lookAhead>token.end+25)lookAhead=Math.max(token.lookAhead,lookAhead);if(token.value!=0){let startIndex=actionIndex;if(token.extended>-1)actionIndex=this.addActions(stack,token.extended,token.end,actionIndex);actionIndex=this.addActions(stack,token.value,token.end,actionIndex);if(!tokenizer.extend){main=token;if(actionIndex>startIndex)break;}}}while(this.actions.length>actionIndex)this.actions.pop();if(lookAhead)stack.setLookAhead(lookAhead);if(!main&&stack.pos==this.stream.end){main=new CachedToken;main.value=stack.p.parser.eofTerm;main.start=main.end=stack.pos;actionIndex=this.addActions(stack,main.value,main.end,actionIndex);}this.mainToken=main;return this.actions;}getMainToken(stack){if(this.mainToken)return this.mainToken;let main=new CachedToken,{pos,p}=stack;main.start=pos;main.end=Math.min(pos+1,p.stream.end);main.value=pos==p.stream.end?p.parser.eofTerm:0;return main;}updateCachedToken(token,tokenizer,stack){let start=this.stream.clipPos(stack.pos);tokenizer.token(this.stream.reset(start,token),stack);if(token.value>-1){let{parser}=stack.p;for(let i=0;i<parser.specialized.length;i++)if(parser.specialized[i]==token.value){let result=parser.specializers[i](this.stream.read(token.start,token.end),stack);if(result>=0&&stack.p.parser.dialect.allows(result>>1)){if((result&1)==0)token.value=result>>1;else token.extended=result>>1;break;}}}else{token.value=0;token.end=this.stream.clipPos(start+1);}}putAction(action,token,end,index){for(let i=0;i<index;i+=3)if(this.actions[i]==action)return index;this.actions[index++]=action;this.actions[index++]=token;this.actions[index++]=end;return index;}addActions(stack,token,end,index){let{state}=stack,{parser}=stack.p,{data}=parser;for(let set=0;set<2;set++){for(let i=parser.stateSlot(state,set?2:1);;i+=3){if(data[i]==65535){if(data[i+1]==1){i=pair(data,i+2);}else{if(index==0&&data[i+1]==2)index=this.putAction(pair(data,i+2),token,end,index);break;}}if(data[i]==token)index=this.putAction(pair(data,i+1),token,end,index);}}return index;}constructor(parser,stream){this.stream=stream;this.tokens=[];this.mainToken=null;this.actions=[];this.tokens=parser.tokenizers.map(_=>new CachedToken);}};var Rec;(function(Rec2){Rec2[Rec2[\"Distance\"]=5]=\"Distance\";Rec2[Rec2[\"MaxRemainingPerStep\"]=3]=\"MaxRemainingPerStep\";Rec2[Rec2[\"MinBufferLengthPrune\"]=500]=\"MinBufferLengthPrune\";Rec2[Rec2[\"ForceReduceLimit\"]=10]=\"ForceReduceLimit\";Rec2[Rec2[\"CutDepth\"]=15e3]=\"CutDepth\";Rec2[Rec2[\"CutTo\"]=9e3]=\"CutTo\";Rec2[Rec2[\"MaxLeftAssociativeReductionCount\"]=300]=\"MaxLeftAssociativeReductionCount\";Rec2[Rec2[\"MaxStackCount\"]=12]=\"MaxStackCount\";})(Rec||(Rec={}));var Parse=class{get parsedPos(){return this.minStackPos;}// Move the parser forward. This will process all parse stacks at\n// `this.pos` and try to advance them to a further position. If no\n// stack for such a position is found, it'll start error-recovery.\n//\n// When the parse is finished, this will return a syntax tree. When\n// not, it returns `null`.\nadvance(){let stacks=this.stacks,pos=this.minStackPos;let newStacks=this.stacks=[];let stopped,stoppedTokens;if(this.bigReductionCount>300&&stacks.length==1){let[s]=stacks;while(s.forceReduce()&&s.stack.length&&s.stack[s.stack.length-2]>=this.lastBigReductionStart){}this.bigReductionCount=this.lastBigReductionSize=0;}for(let i=0;i<stacks.length;i++){let stack=stacks[i];for(;;){this.tokens.mainToken=null;if(stack.pos>pos){newStacks.push(stack);}else if(this.advanceStack(stack,newStacks,stacks)){continue;}else{if(!stopped){stopped=[];stoppedTokens=[];}stopped.push(stack);let tok=this.tokens.getMainToken(stack);stoppedTokens.push(tok.value,tok.end);}break;}}if(!newStacks.length){let finished=stopped&&findFinished(stopped);if(finished)return this.stackToTree(finished);if(this.parser.strict){if(verbose&&stopped)console.log(\"Stuck with token \"+(this.tokens.mainToken?this.parser.getName(this.tokens.mainToken.value):\"none\"));throw new SyntaxError(\"No parse at \"+pos);}if(!this.recovering)this.recovering=5;}if(this.recovering&&stopped){let finished1=this.stoppedAt!=null&&stopped[0].pos>this.stoppedAt?stopped[0]:this.runRecovery(stopped,stoppedTokens,newStacks);if(finished1)return this.stackToTree(finished1.forceAll());}if(this.recovering){let maxRemaining=this.recovering==1?1:this.recovering*3;if(newStacks.length>maxRemaining){newStacks.sort((a,b)=>b.score-a.score);while(newStacks.length>maxRemaining)newStacks.pop();}if(newStacks.some(s=>s.reducePos>pos))this.recovering--;}else if(newStacks.length>1){outer:for(let i1=0;i1<newStacks.length-1;i1++){let stack1=newStacks[i1];for(let j=i1+1;j<newStacks.length;j++){let other=newStacks[j];if(stack1.sameState(other)||stack1.buffer.length>500&&other.buffer.length>500){if((stack1.score-other.score||stack1.buffer.length-other.buffer.length)>0){newStacks.splice(j--,1);}else{newStacks.splice(i1--,1);continue outer;}}}}if(newStacks.length>12)newStacks.splice(12,newStacks.length-12);}this.minStackPos=newStacks[0].pos;for(let i2=1;i2<newStacks.length;i2++)if(newStacks[i2].pos<this.minStackPos)this.minStackPos=newStacks[i2].pos;return null;}stopAt(pos){if(this.stoppedAt!=null&&this.stoppedAt<pos)throw new RangeError(\"Can't move stoppedAt forward\");this.stoppedAt=pos;}// Returns an updated version of the given stack, or null if the\n// stack can't advance normally. When `split` and `stacks` are\n// given, stacks split off by ambiguous operations will be pushed to\n// `split`, or added to `stacks` if they move `pos` forward.\nadvanceStack(stack,stacks,split){let start=stack.pos,{parser}=this;let base=verbose?this.stackID(stack)+\" -> \":\"\";if(this.stoppedAt!=null&&start>this.stoppedAt)return stack.forceReduce()?stack:null;if(this.fragments){let strictCx=stack.curContext&&stack.curContext.tracker.strict,cxHash=strictCx?stack.curContext.hash:0;for(let cached=this.fragments.nodeAt(start);cached;){let match=this.parser.nodeSet.types[cached.type.id]==cached.type?parser.getGoto(stack.state,cached.type.id):-1;if(match>-1&&cached.length&&(!strictCx||(cached.prop(NodeProp.contextHash)||0)==cxHash)){stack.useNode(cached,match);if(verbose)console.log(base+this.stackID(stack)+` (via reuse of ${parser.getName(cached.type.id)})`);return true;}if(!(cached instanceof Tree)||cached.children.length==0||cached.positions[0]>0)break;let inner=cached.children[0];if(inner instanceof Tree&&cached.positions[0]==0)cached=inner;else break;}}let defaultReduce=parser.stateSlot(stack.state,4);if(defaultReduce>0){stack.reduce(defaultReduce);if(verbose)console.log(base+this.stackID(stack)+` (via always-reduce ${parser.getName(defaultReduce&65535)})`);return true;}if(stack.stack.length>=15e3){while(stack.stack.length>9e3&&stack.forceReduce()){}}let actions=this.tokens.getActions(stack);for(let i=0;i<actions.length;){let action=actions[i++],term=actions[i++],end=actions[i++];let last=i==actions.length||!split;let localStack=last?stack:stack.split();localStack.apply(action,term,end);if(verbose)console.log(base+this.stackID(localStack)+` (via ${(action&65536)==0?\"shift\":`reduce of ${parser.getName(action&65535)}`} for ${parser.getName(term)} @ ${start}${localStack==stack?\"\":\", split\"})`);if(last)return true;else if(localStack.pos>start)stacks.push(localStack);else split.push(localStack);}return false;}// Advance a given stack forward as far as it will go. Returns the\n// (possibly updated) stack if it got stuck, or null if it moved\n// forward and was given to `pushStackDedup`.\nadvanceFully(stack,newStacks){let pos=stack.pos;for(;;){if(!this.advanceStack(stack,null,null))return false;if(stack.pos>pos){pushStackDedup(stack,newStacks);return true;}}}runRecovery(stacks,tokens,newStacks){let finished=null,restarted=false;for(let i=0;i<stacks.length;i++){let stack=stacks[i],token=tokens[i<<1],tokenEnd=tokens[(i<<1)+1];let base=verbose?this.stackID(stack)+\" -> \":\"\";if(stack.deadEnd){if(restarted)continue;restarted=true;stack.restart();if(verbose)console.log(base+this.stackID(stack)+\" (restarted)\");let done=this.advanceFully(stack,newStacks);if(done)continue;}let force=stack.split(),forceBase=base;for(let j=0;force.forceReduce()&&j<10;j++){if(verbose)console.log(forceBase+this.stackID(force)+\" (via force-reduce)\");let done1=this.advanceFully(force,newStacks);if(done1)break;if(verbose)forceBase=this.stackID(force)+\" -> \";}for(let insert of stack.recoverByInsert(token)){if(verbose)console.log(base+this.stackID(insert)+\" (via recover-insert)\");this.advanceFully(insert,newStacks);}if(this.stream.end>stack.pos){if(tokenEnd==stack.pos){tokenEnd++;token=0;}stack.recoverByDelete(token,tokenEnd);if(verbose)console.log(base+this.stackID(stack)+` (via recover-delete ${this.parser.getName(token)})`);pushStackDedup(stack,newStacks);}else if(!finished||finished.score<stack.score){finished=stack;}}return finished;}// Convert the stack's buffer to a syntax tree.\nstackToTree(stack){stack.close();return Tree.build({buffer:StackBufferCursor.create(stack),nodeSet:this.parser.nodeSet,topID:this.topTerm,maxBufferLength:this.parser.bufferLength,reused:this.reused,start:this.ranges[0].from,length:stack.pos-this.ranges[0].from,minRepeatType:this.parser.minRepeatTerm});}stackID(stack){let id2=(stackIDs||(stackIDs=/* @__PURE__ */ new WeakMap)).get(stack);if(!id2)stackIDs.set(stack,id2=String.fromCodePoint(this.nextStackID++));return id2+stack;}constructor(parser,input,fragments,ranges){this.parser=parser;this.input=input;this.ranges=ranges;this.recovering=0;this.nextStackID=9812;this.minStackPos=0;this.reused=[];this.stoppedAt=null;this.lastBigReductionStart=-1;this.lastBigReductionSize=0;this.bigReductionCount=0;this.stream=new InputStream(input,ranges);this.tokens=new TokenCache(parser,this.stream);this.topTerm=parser.top[1];let{from}=ranges[0];this.stacks=[Stack.start(this,parser.top[0],from)];this.fragments=fragments.length&&this.stream.end-from>parser.bufferLength*4?new FragmentCursor(fragments,parser.nodeSet):null;}};function pushStackDedup(stack,newStacks){for(let i=0;i<newStacks.length;i++){let other=newStacks[i];if(other.pos==stack.pos&&other.sameState(stack)){if(newStacks[i].score<stack.score)newStacks[i]=stack;return;}}newStacks.push(stack);}var Dialect=class{allows(term){return!this.disabled||this.disabled[term]==0;}constructor(source,flags,disabled){this.source=source;this.flags=flags;this.disabled=disabled;}};var id=x=>x;var ContextTracker=class{/// Define a context tracker.\nconstructor(spec){this.start=spec.start;this.shift=spec.shift||id;this.reduce=spec.reduce||id;this.reuse=spec.reuse||id;this.hash=spec.hash||(()=>0);this.strict=spec.strict!==false;}};var LRParser=class extends Parser{createParse(input,fragments,ranges){let parse=new Parse(this,input,fragments,ranges);for(let w of this.wrappers)parse=w(parse,input,fragments,ranges);return parse;}/// Get a goto table entry @internal\ngetGoto(state,term,loose=false){let table=this.goto;if(term>=table[0])return-1;for(let pos=table[term+1];;){let groupTag=table[pos++],last=groupTag&1;let target=table[pos++];if(last&&loose)return target;for(let end=pos+(groupTag>>1);pos<end;pos++)if(table[pos]==state)return target;if(last)return-1;}}/// Check if this state has an action for a given terminal @internal\nhasAction(state,terminal){let data=this.data;for(let set=0;set<2;set++){for(let i=this.stateSlot(state,set?2:1),next;;i+=3){if((next=data[i])==65535){if(data[i+1]==1)next=data[i=pair(data,i+2)];else if(data[i+1]==2)return pair(data,i+2);else break;}if(next==terminal||next==0)return pair(data,i+1);}}return 0;}/// @internal\nstateSlot(state,slot){return this.states[state*6+slot];}/// @internal\nstateFlag(state,flag){return(this.stateSlot(state,0)&flag)>0;}/// @internal\nvalidAction(state,action){return!!this.allActions(state,a=>a==action?true:null);}/// @internal\nallActions(state,action){let deflt=this.stateSlot(state,4);let result=deflt?action(deflt):void 0;for(let i=this.stateSlot(state,1);result==null;i+=3){if(this.data[i]==65535){if(this.data[i+1]==1)i=pair(this.data,i+2);else break;}result=action(pair(this.data,i+1));}return result;}/// Get the states that can follow this one through shift actions or\n/// goto jumps. @internal\nnextStates(state){let result=[];for(let i=this.stateSlot(state,1);;i+=3){if(this.data[i]==65535){if(this.data[i+1]==1)i=pair(this.data,i+2);else break;}if((this.data[i+2]&65536>>16)==0){let value=this.data[i+1];if(!result.some((v,i2)=>i2&1&&v==value))result.push(this.data[i],value);}}return result;}/// Configure the parser. Returns a new parser instance that has the\n/// given settings modified. Settings not provided in `config` are\n/// kept from the original parser.\nconfigure(config){let copy=Object.assign(Object.create(LRParser.prototype),this);if(config.props)copy.nodeSet=this.nodeSet.extend(...config.props);if(config.top){let info=this.topRules[config.top];if(!info)throw new RangeError(`Invalid top rule name ${config.top}`);copy.top=info;}if(config.tokenizers)copy.tokenizers=this.tokenizers.map(t=>{let found=config.tokenizers.find(r=>r.from==t);return found?found.to:t;});if(config.specializers){copy.specializers=this.specializers.slice();copy.specializerSpecs=this.specializerSpecs.map((s,i)=>{let found=config.specializers.find(r=>r.from==s.external);if(!found)return s;let spec=Object.assign(Object.assign({},s),{external:found.to});copy.specializers[i]=getSpecializer(spec);return spec;});}if(config.contextTracker)copy.context=config.contextTracker;if(config.dialect)copy.dialect=this.parseDialect(config.dialect);if(config.strict!=null)copy.strict=config.strict;if(config.wrap)copy.wrappers=copy.wrappers.concat(config.wrap);if(config.bufferLength!=null)copy.bufferLength=config.bufferLength;return copy;}/// Tells you whether any [parse wrappers](#lr.ParserConfig.wrap)\n/// are registered for this parser.\nhasWrappers(){return this.wrappers.length>0;}/// Returns the name associated with a given term. This will only\n/// work for all terms when the parser was generated with the\n/// `--names` option. By default, only the names of tagged terms are\n/// stored.\ngetName(term){return this.termNames?this.termNames[term]:String(term<=this.maxNode&&this.nodeSet.types[term].name||term);}/// The eof term id is always allocated directly after the node\n/// types. @internal\nget eofTerm(){return this.maxNode+1;}/// The type of top node produced by the parser.\nget topNode(){return this.nodeSet.types[this.top[1]];}/// @internal\ndynamicPrecedence(term){let prec=this.dynamicPrecedences;return prec==null?0:prec[term]||0;}/// @internal\nparseDialect(dialect){let values=Object.keys(this.dialects),flags=values.map(()=>false);if(dialect)for(let part of dialect.split(\" \")){let id2=values.indexOf(part);if(id2>=0)flags[id2]=true;}let disabled=null;for(let i=0;i<values.length;i++)if(!flags[i]){for(let j=this.dialects[values[i]],id21;(id21=this.data[j++])!=65535;)(disabled||(disabled=new Uint8Array(this.maxTerm+1)))[id21]=1;}return new Dialect(dialect,flags,disabled);}/// Used by the output of the parser generator. Not available to\n/// user code. @hide\nstatic deserialize(spec){return new LRParser(spec);}/// @internal\nconstructor(spec){super();this.wrappers=[];if(spec.version!=14)throw new RangeError(`Parser version (${spec.version}) doesn't match runtime version (${14})`);let nodeNames=spec.nodeNames.split(\" \");this.minRepeatTerm=nodeNames.length;for(let i=0;i<spec.repeatNodeCount;i++)nodeNames.push(\"\");let topTerms=Object.keys(spec.topRules).map(r=>spec.topRules[r][1]);let nodeProps=[];for(let i1=0;i1<nodeNames.length;i1++)nodeProps.push([]);function setProp(nodeID,prop,value){nodeProps[nodeID].push([prop,prop.deserialize(String(value))]);}if(spec.nodeProps)for(let propSpec of spec.nodeProps){let prop=propSpec[0];if(typeof prop==\"string\")prop=NodeProp[prop];for(let i2=1;i2<propSpec.length;){let next=propSpec[i2++];if(next>=0){setProp(next,prop,propSpec[i2++]);}else{let value=propSpec[i2+-next];for(let j=-next;j>0;j--)setProp(propSpec[i2++],prop,value);i2++;}}}this.nodeSet=new NodeSet(nodeNames.map((name,i)=>NodeType.define({name:i>=this.minRepeatTerm?void 0:name,id:i,props:nodeProps[i],top:topTerms.indexOf(i)>-1,error:i==0,skipped:spec.skippedNodes&&spec.skippedNodes.indexOf(i)>-1})));if(spec.propSources)this.nodeSet=this.nodeSet.extend(...spec.propSources);this.strict=false;this.bufferLength=DefaultBufferLength;let tokenArray=decodeArray(spec.tokenData);this.context=spec.context;this.specializerSpecs=spec.specialized||[];this.specialized=new Uint16Array(this.specializerSpecs.length);for(let i3=0;i3<this.specializerSpecs.length;i3++)this.specialized[i3]=this.specializerSpecs[i3].term;this.specializers=this.specializerSpecs.map(getSpecializer);this.states=decodeArray(spec.states,Uint32Array);this.data=decodeArray(spec.stateData);this.goto=decodeArray(spec.goto);this.maxTerm=spec.maxTerm;this.tokenizers=spec.tokenizers.map(value=>typeof value==\"number\"?new TokenGroup(tokenArray,value):value);this.topRules=spec.topRules;this.dialects=spec.dialects||{};this.dynamicPrecedences=spec.dynamicPrecedences||null;this.tokenPrecTable=spec.tokenPrec;this.termNames=spec.termNames||null;this.maxNode=this.nodeSet.types.length-1;this.dialect=this.parseDialect();this.top=this.topRules[Object.keys(this.topRules)[0]];}};function pair(data,off){return data[off]|data[off+1]<<16;}function findFinished(stacks){let best=null;for(let stack of stacks){let stopped=stack.p.stoppedAt;if((stack.pos==stack.p.stream.end||stopped!=null&&stack.pos>stopped)&&stack.p.parser.stateFlag(stack.state,2)&&(!best||best.score<stack.score))best=stack;}return best;}function getSpecializer(spec){if(spec.external){let mask=spec.extend?1:0;return(value,stack)=>spec.external(value,stack)<<1|mask;}return spec.get;}export{ContextTracker,ExternalTokenizer,InputStream,LRParser,LocalTokenGroup,Stack,};\nexport const __FramerMetadata__ = {\"exports\":{\"ExternalTokenizer\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"InputStream\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"LRParser\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Stack\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"LocalTokenGroup\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ContextTracker\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./lezer_lr.map"],"mappings":"80BAA8B,WAAU,UAAU,EAAE,CAAC,CAAcA,QAAM,EAAE,CAAcgG,MAAI,CAAC,wbAAwb,CAAcwG,YAAU,mOCCngB,uBAAiF,8BAAkE,sBAA4B,CAAMxB,aAAW,CAAC,YAAY,CAAOC,oBAAkB,eAAqBC,oBAAkB,CAAC,UAAU,kBAAkB,CAAuO5K,cAAY,CAAC,QAAQ,CAAC,QAAQ,GAAG,MAAM,EAAE,KAAK,EAAE,UAAU,IAAI,KAAK,SAAS,CAAC,CAAO8K,cAAY,CAAC,MAAM,YAAY,CAAC,IAAM,OAAOc,GAAiB,oBAAoB,CAAO,WAAW,OAAmC,OAAO,WAAiB,aAAaC,QAAmB,CAAC,GAAG,OAAO,WAAW,EAAE,CAAC,KAAK,UAAU,WAAW,CAAC,CAAC,CAAC,OAAoB,EAAK,oBAAoB,SAAS,CAAC,MAAM,aAAsB,SAAS,CAAC,EAASZ,WAAS,OAAOa,EAAe,CAAOX,YAAU,CAAC,OAAO,GAAA,KAAG,MAAM,GAAG,UAAgB,CAAC,GAAG,MAAM,EAASC,0BAAwB,MAAM,WAAW,SAAS,KAAK,IAAI,CAAC,MAAM,iBAO3oC,gBAAgB,QAPyqC,EAAiB,SAAS,MAAM,IAAI,CAAC,GAAK,CAAC,aAAa,WAAW,eAAe,CAAM,CAAC,MAAM,UAAA,YAAU,SAAS,QAAQ,GAAG,WAAWD,WAAS,MAAM,CAAM,CAAC,YAAY,WAAW,eAAe,gBAAgB,WAAW,WAAW,UAAU,gBAAgB,CAAC,WAAA,aAAW,eAAe,YAAY,YAAA,cAAY,QAAQ,kBAAA,oBAAkB,CAAC,CAAO,iBAAiBC,yBAAuB,MAAM,SAAS,CAAO,KAAKC,GAAa,KAAK,CAAO,gBAAgBW,IAAa,CAAO,sBAAsB,EAAE,CAAC,OAAoB,EAAK,YAAY,CAAC,GAAG,UAA4C,gBAAgB,SAAsB,EAAKf,WAAS,CAAC,QAAQ,SAAS,QAAQ,GAAM,SAAsB,EAAKH,aAAW,CAAC,MAAM,WAAW,SAAsB,EAAK,KAAK,CAAC,KAAK,CAAC,UAAU,YAAY,CAAC,SAAsB,EAAK,OAAO,EAAE,CAAC,GAAG,UAAU,UAAU,GAAG,GAAGH,oBAAkB,GAAG,sBAAsB,gBAAgBuB,YAAU,WAAW,CAAC,gBAAgB,mBAAmB,OAAwB,iBAAiB,SAAS,YAAY,eAAe,gBAAgB,CAAC,UAAU,GAAM,CAAC,CAAC,iBAAiB,gBAAgB,CAAC,UAAU,GAAK,CAAC,CAAC,UAAU,gBAAgB,CAAC,UAAU,GAAM,CAAC,CAAC,gBAAgB,gBAAgB,CAAC,UAAU,GAAM,CAAC,CAAC,eAAe,gBAAgB,CAAC,UAAU,GAAK,CAAC,CAAC,IAAI,KAA6B,KAAK,MAAM,CAAC,GAAG,MAAM,CAAC,SAAsB,EAAKvL,OAAM,CAAC,WAAW,CAAC,IAAI,GAAG,IAAI,OAAO,gBAAgB,GAAG,eAAe,IAAI,YAAY,IAAI,WAAW,IAAI,IAAI,sEAAsE,CAAC,UAAU,gBAAgB,mBAAmB,QAAyB,iBAAiB,SAAS,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAG,CAAW,CAAC,gcAAgc,kFAAkF,gFAAgF,2RAA2R,8LAA8L,yWAAyW,CAO/rI,eAAe,mBAAgB,gBAAgB,gBAAgB,YAAY,oBAAoB,gBAAgB,aAAa,CAAC,OAAO,GAAG,MAAM,IAAI,CAAC,SAAS,gBAAgB,EAAE,CAAC,ICP6yB,SAAS4J,uBAAqB,YAAU,GAAG,SAAS,CAAC,IAAM,cAAc,EAAE,CAA+H,OAA9H,UAAmD,QAAQ,SAAS,SAAS,OAAO,OAAO,cAAciB,YAAU,SAAS,CAAC,CAAQ,+QAAlqC,uBAA6I,8BAAkE,sBAA4B,CAAM3F,kBAAgB,CAAC,UAAU,CAAC,MAAM,GAAK,CAAC,UAAU,CAAC,MAAM,GAAK,CAAC,UAAU,CAAC,MAAM,GAAK,CAAC,UAAU,CAAC,MAAM,GAAK,CAAC,UAAU,CAAC,MAAM,GAAK,CAAC,UAAU,CAAC,MAAM,GAAK,CAAC,UAAU,CAAC,MAAM,GAAK,CAAC,UAAU,CAAC,MAAM,GAAK,CAAC,UAAU,CAAC,MAAM,GAAK,CAAC,UAAU,CAAC,MAAM,GAAK,CAAC,CAAO6E,aAAW,CAAC,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,CAAOC,oBAAkB,eAAqBC,oBAAkB,CAAC,UAAU,kBAAkB,UAAU,mBAAmB,UAAU,kBAAkB,UAAU,kBAAkB,UAAU,kBAAkB,UAAU,mBAAmB,UAAU,kBAAkB,UAAU,mBAAmB,UAAU,mBAAmB,UAAU,kBAAkB,CAAuOC,cAAY,CAAC,QAAQ,GAAG,MAAM,EAAE,KAAK,EAAE,UAAU,IAAI,KAAK,SAAS,CAAOC,cAAY,CAAC,MAAM,YAAY,CAAC,IAAM,OAAOc,GAAiB,oBAAoB,CAAO,WAAW,OAAmC,OAAO,WAAiB,aAAaC,QAAmB,CAAC,GAAG,OAAO,WAAW,EAAE,CAAC,KAAK,UAAU,WAAW,CAAC,CAAC,CAAC,OAAoB,EAAK,oBAAoB,SAAS,CAAC,MAAM,aAAsB,SAAS,CAAC,EAASZ,WAAS,OAAOa,EAAe,CAAO7B,0BAAwB,CAAC,WAAW,YAAY,YAAY,YAAY,WAAW,YAAY,WAAW,YAAY,WAAW,YAAY,WAAW,YAAY,WAAW,YAAY,WAAW,YAAY,WAAW,YAAY,WAAW,YAAY,CAAOkB,YAAU,CAAC,OAAO,GAAA,KAAG,KAAK,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,KAAK,uCAAuC,MAAM,MAAM,CAAC,GAAG,MAAM,UAAgB,OAAmC,MAAM,WAAsC,cAAc,UAAU,MAAgC,MAAM,UAAU,QAAuDlB,0BAAwB,MAAM,UAAyG,MAAM,SAAsC,YAAY,EAASmB,0BAAwB,MAAM,WAAW,SAAS,KAAK,IAAI,CAAC,MAAM,iBAS1hF,gBAAgB,QATwjF,EAAiB,SAAS,MAAM,IAAI,CAAC,GAAK,CAAC,aAAa,WAAW,eAAe,CAAM,CAAC,MAAM,UAAA,YAAU,SAAS,QAAQ,UAAU,UAAU,GAAG,WAAWD,WAAS,MAAM,CAAM,CAAC,YAAY,WAAW,eAAe,gBAAgB,WAAW,UAAU,gBAAgB,CAAC,WAAA,aAAW,eAAe,YAAY,gBAAA,kBAAgB,QAAQ,kBAAA,oBAAkB,CAAC,CAAO,iBAAiBC,yBAAuB,MAAM,SAAS,CAAO,KAAKC,GAAa,KAAK,CAAO,gBAAoI,EAAhH,CAAC,kBAAkB,kBAAkB,kBAAkB,kBAAkB,CAAC,SAAS,eAAe,EAAiB,CAAC,YAAY,YAAY,YAAY,YAAY,CAAC,SAAS,YAAY,EAAkC,gBAAgBW,IAAa,CAAO,sBAAsB,EAAE,CAAgD,OAAvB,sBAAsB,CAAqB,EAAK,YAAY,CAAC,GAAG,UAA4C,gBAAgB,SAAsB,EAAKf,WAAS,CAAC,QAAQ,SAAS,QAAQ,GAAM,SAAsB,EAAKH,aAAW,CAAC,MAAMD,cAAY,SAAsB,EAAK,KAAK,CAAC,KAAK,UAAU,aAAa,GAAK,SAAsB,EAAM,OAAO,EAAE,CAAC,GAAG,UAAU,UAAU,GAAG,GAAGF,oBAAkB,GAAG,sBAAsB,gBAAgBuB,YAAU,WAAW,CAAC,iBAAiB,mBAAmB,WAA4B,iBAAiB,SAAS,YAAY,eAAe,gBAAgB,CAAC,UAAU,GAAM,CAAC,CAAC,iBAAiB,gBAAgB,CAAC,UAAU,GAAK,CAAC,CAAC,UAAU,gBAAgB,CAAC,UAAU,GAAM,CAAC,CAAC,gBAAgB,gBAAgB,CAAC,UAAU,GAAM,CAAC,CAAC,eAAe,gBAAgB,CAAC,UAAU,GAAK,CAAC,CAAC,IAAI,KAA6B,KAAK,MAAM,CAAC,wBAAwB,MAAM,iBAAiB,mBAAmB,sBAAsB,MAAM,uBAAuB,MAAM,iBAAiB,QAAQ,qBAAqB,MAAM,gBAAgB,wEAAwE,uBAAuB,GAAG,wBAAwB,GAAG,oBAAoB,GAAG,qBAAqB,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,kBAAkB,CAAC,gBAAgB,qBAAqB,CAAC,kBAAkB,CAAC,gBAAgB,qBAAqB,CAAC,kBAAkB,CAAC,gBAAgB,kBAAkB,CAAC,kBAAkB,CAAC,gBAAgB,qBAAqB,CAAC,kBAAkB,CAAC,gBAAgB,qBAAqB,CAAC,kBAAkB,CAAC,gBAAgB,mBAAmB,CAAC,kBAAkB,CAAC,gBAAgB,qBAAqB,CAAC,kBAAkB,CAAC,gBAAgB,kBAAkB,CAAC,kBAAkB,CAAC,gBAAgB,mBAAmB,CAAC,kBAAkB,CAAC,gBAAgB,mBAAmB,CAAC,UAAU,CAAC,gBAAgB,wEAAwE,CAAC,UAAU,CAAC,wBAAwB,MAAM,iBAAiB,qEAAqE,sBAAsB,MAAM,uBAAuB,MAAM,iBAAiB,QAAQ,qBAAqB,MAAM,gBAAgB,qEAAqE,CAAC,UAAU,CAAC,gBAAgB,wEAAwE,CAAC,UAAU,CAAC,gBAAgB,qBAAqB,uBAAuB,GAAG,wBAAwB,GAAG,oBAAoB,GAAG,qBAAqB,GAAG,CAAC,UAAU,CAAC,gBAAgB,mBAAmB,CAAC,UAAU,CAAC,wBAAwB,MAAM,iBAAiB,qEAAqE,sBAAsB,MAAM,uBAAuB,MAAM,iBAAiB,QAAQ,qBAAqB,MAAM,gBAAgB,qEAAqE,CAAC,UAAU,CAAC,gBAAgB,mBAAmB,CAAC,UAAU,CAAC,gBAAgB,mBAAmB,CAAC,CAAC,GAAG3B,uBAAqB,CAAC,kBAAkB,CAAC,mBAAmB,IAAA,GAAU,CAAC,kBAAkB,CAAC,mBAAmB,IAAA,GAAU,CAAC,kBAAkB,CAAC,mBAAmB,IAAA,GAAU,CAAC,kBAAkB,CAAC,mBAAmB,IAAA,GAAU,CAAC,kBAAkB,CAAC,mBAAmB,IAAA,GAAU,CAAC,kBAAkB,CAAC,mBAAmB,IAAA,GAAU,CAAC,kBAAkB,CAAC,mBAAmB,IAAA,GAAU,CAAC,kBAAkB,CAAC,mBAAmB,IAAA,GAAU,CAAC,kBAAkB,CAAC,mBAAmB,IAAA,GAAU,CAAC,kBAAkB,CAAC,mBAAmB,IAAA,GAAU,CAAC,UAAU,CAAC,mBAAmB,WAAW,CAAC,UAAU,CAAC,mBAAmB,WAAW,CAAC,UAAU,CAAC,cAAc,GAAK,mBAAmB,WAAW,CAAC,UAAU,CAAC,mBAAmB,WAAW,CAAC,UAAU,CAAC,mBAAmB,WAAW,CAAC,UAAU,CAAC,mBAAmB,WAAW,CAAC,UAAU,CAAC,cAAc,GAAK,mBAAmB,YAAY,CAAC,UAAU,CAAC,mBAAmB,WAAW,CAAC,UAAU,CAAC,mBAAmB,WAAW,CAAC,CAAC,YAAY,eAAe,CAAC,SAAS,CAAc,EAAK,SAAS,CAAC,sBAAsB,GAAK,SAAsB,EAAKuB,EAAe,CAAC,SAAsB,EAAK,OAAO,EAAE,CAAC,MAAM,CAAC,kBAAkB,2BAA2B,uBAAuB,2BAA2B,uBAAuB,MAAM,sBAAsB,8FAA8F,0BAA0B,YAAY,CAAC,SAAS,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,gBAAgB,MAAM,CAAC,qBAAqB,CAAkB,iBAAiB,SAAS,YAAY,MAAM,CAAC,qBAAqB,qEAAqE,2BAA2B,mBAAmB,gCAAgC,YAAY,CAAC,KAAK,UAAU,SAAS,CAAC,kBAAkB,CAAC,qBAAqB,wEAAwE,CAAC,kBAAkB,CAAC,qBAAqB,wEAAwE,CAAC,kBAAkB,CAAC,qBAAqB,wEAAwE,CAAC,kBAAkB,CAAC,qBAAqB,wEAAwE,CAAC,kBAAkB,CAAC,qBAAqB,wEAAwE,CAAC,UAAU,CAAC,qBAAqB,wEAAwE,CAAC,UAAU,CAAC,qBAAqB,wEAAwE,CAAC,UAAU,CAAC,qBAAqB,wEAAwE,CAAC,UAAU,CAAC,qBAAqB,wEAAwE,CAAC,UAAU,CAAC,qBAAqB,wEAAwE,CAAC,CAAC,kBAAkB,MAAM,mBAAmB,GAAK,GAAGvB,uBAAqB,CAAC,kBAAkB,CAAC,SAAsB,EAAKuB,EAAe,CAAC,SAAsB,EAAK,OAAO,EAAE,CAAC,MAAM,CAAC,kBAAkB,2BAA2B,uBAAuB,2BAA2B,uBAAuB,MAAM,sBAAsB,iGAAiG,0BAA0B,YAAY,CAAC,SAAS,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,SAAsB,EAAKA,EAAe,CAAC,SAAsB,EAAK,OAAO,EAAE,CAAC,MAAM,CAAC,kBAAkB,2BAA2B,uBAAuB,2BAA2B,uBAAuB,MAAM,sBAAsB,iGAAiG,0BAA0B,YAAY,CAAC,SAAS,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,SAAsB,EAAKA,EAAe,CAAC,SAAsB,EAAK,OAAO,EAAE,CAAC,MAAM,CAAC,kBAAkB,2BAA2B,uBAAuB,2BAA2B,qBAAqB,OAAO,uBAAuB,MAAM,sBAAsB,iGAAiG,0BAA0B,YAAY,CAAC,SAAS,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,SAAsB,EAAKA,EAAe,CAAC,SAAsB,EAAK,OAAO,EAAE,CAAC,MAAM,CAAC,kBAAkB,2BAA2B,uBAAuB,2BAA2B,uBAAuB,MAAM,sBAAsB,iGAAiG,0BAA0B,YAAY,CAAC,SAAS,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,SAAsB,EAAKA,EAAe,CAAC,SAAsB,EAAK,OAAO,EAAE,CAAC,MAAM,CAAC,kBAAkB,2BAA2B,uBAAuB,2BAA2B,qBAAqB,OAAO,uBAAuB,MAAM,sBAAsB,iGAAiG,0BAA0B,YAAY,CAAC,SAAS,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAsB,EAAKA,EAAe,CAAC,SAAsB,EAAK,OAAO,EAAE,CAAC,MAAM,CAAC,kBAAkB,2BAA2B,uBAAuB,2BAA2B,uBAAuB,MAAM,sBAAsB,iGAAiG,0BAA0B,YAAY,CAAC,SAAS,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAsB,EAAKA,EAAe,CAAC,SAAsB,EAAK,OAAO,EAAE,CAAC,MAAM,CAAC,kBAAkB,2BAA2B,uBAAuB,2BAA2B,qBAAqB,OAAO,uBAAuB,MAAM,sBAAsB,8FAA8F,0BAA0B,YAAY,CAAC,SAAS,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAsB,EAAKA,EAAe,CAAC,SAAsB,EAAK,OAAO,EAAE,CAAC,MAAM,CAAC,kBAAkB,2BAA2B,uBAAuB,2BAA2B,uBAAuB,MAAM,sBAAsB,iGAAiG,0BAA0B,YAAY,CAAC,SAAS,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAsB,EAAKA,EAAe,CAAC,SAAsB,EAAK,OAAO,EAAE,CAAC,MAAM,CAAC,kBAAkB,2BAA2B,uBAAuB,2BAA2B,qBAAqB,OAAO,uBAAuB,MAAM,sBAAsB,iGAAiG,0BAA0B,YAAY,CAAC,SAAS,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAsB,EAAKA,EAAe,CAAC,SAAsB,EAAK,OAAO,EAAE,CAAC,MAAM,CAAC,kBAAkB,2BAA2B,uBAAuB,2BAA2B,uBAAuB,MAAM,sBAAsB,iGAAiG,0BAA0B,YAAY,CAAC,SAAS,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAsB,EAAKA,EAAe,CAAC,SAAsB,EAAK,OAAO,EAAE,CAAC,MAAM,CAAC,kBAAkB,2BAA2B,uBAAuB,2BAA2B,qBAAqB,OAAO,uBAAuB,MAAM,sBAAsB,iGAAiG,0BAA0B,YAAY,CAAC,SAAS,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,eAAe,CAAC,CAAC,CAAC,aAAa,EAAe,EAAK,IAAI,CAAC,UAAU,iBAAiB,mBAAmB,gBAAgB,OAAO,WAA4B,iBAAiB,SAAS,YAAY,QAAQ,EAAE,MAAM,CAAC,gBAAgB,mBAAmB,CAAC,IAAI,wQAAwQ,aAAa,WAAW,SAAS,CAAC,UAAU,CAAC,gBAAgB,mBAAmB,CAAC,CAAC,mBAAmB,GAAK,GAAGvB,uBAAqB,CAAC,kBAAkB,CAAC,IAAI,6XAA6X,aAAa,WAAW,CAAC,kBAAkB,CAAC,IAAI,+XAA+X,aAAa,WAAW,CAAC,kBAAkB,CAAC,IAAI,+XAA+X,aAAa,WAAW,CAAC,kBAAkB,CAAC,IAAI,6XAA6X,aAAa,WAAW,CAAC,UAAU,CAAC,IAAI,uXAAuX,aAAa,UAAU,CAAC,UAAU,CAAC,IAAI,+XAA+X,aAAa,WAAW,CAAC,UAAU,CAAC,IAAI,6XAA6X,aAAa,WAAW,CAAC,UAAU,CAAC,IAAI,6XAA6X,aAAa,WAAW,CAAC,UAAU,CAAC,IAAI,+XAA+X,aAAa,UAAU,CAAC,CAAC,YAAY,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAG,CAAW,CAAC,kFAAkF,kFAAkF,yXAAyX,gHAAgH,+FAA+F,yWAAyW,gFAAgF,0HAA0H,2KAA2K,iEAAiE,gcAAgc,CASh7nB,eAAe,mBAAgB,gBAAgB,gBAAgB,YAAY,sBAAsB,gBAAgB,aAAa,CAAC,OAAO,GAAG,MAAM,MAAM,CAAC,oBAAoB,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,CAAC,aAAa,CAAC,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,YAAY,CAAC,MAAM,UAAU,KAAK,YAAY,KAAK,CAAC,UAAU,CAAC,aAAa,cAAc,gBAAgB,GAAM,MAAM,QAAQ,KAAK,YAAY,OAAO,CAAC,UAAU,CAAC,MAAM,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,SAAS,gBAAgB,CAAC,CAAC,cAAc,GAAK,MAAM,CAAC,CAAC,OAAO,cAAc,OAAO,SAAS,MAAM,SAAS,IAAI,sGAAsG,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,6BAA6B,GAAK,CAAC,ICTte,SAASA,uBAAqB,YAAU,GAAG,SAAS,CAAC,IAAM,cAAc,EAAE,CAA+H,OAA9H,UAAmD,QAAQ,SAAS,SAAS,OAAO,OAAO,cAAciB,YAAU,SAAS,CAAC,CAAQ,6PAAvnB,uBAAkK,8BAAkE,sBAA4B,CAAMd,aAAW,CAAC,YAAY,YAAY,CAAOC,oBAAkB,eAAqBC,oBAAkB,CAAC,UAAU,mBAAmB,UAAU,mBAAmB,CAAuOC,cAAY,CAAC,OAAO,GAAG,MAAM,EAAE,SAAS,GAAG,KAAK,SAAS,CAAOC,cAAY,CAAC,MAAM,YAAY,CAAC,IAAM,OAAOc,GAAiB,oBAAoB,CAAO,WAAW,OAAmC,OAAO,WAAiB,aAAaC,QAAmB,CAAC,GAAG,OAAO,WAAW,EAAE,CAAC,KAAK,UAAU,WAAW,CAAC,CAAC,CAAC,OAAoB,EAAK,oBAAoB,SAAS,CAAC,MAAM,aAAsB,SAAS,CAAC,EAASZ,WAAS,OAAO,OAAOa,EAAe,CAAO7B,0BAAwB,CAAC,QAAQ,YAAY,MAAM,YAAY,CAAOkB,YAAU,CAAC,OAAO,GAAA,KAAG,KAAK,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,KAAK,uCAAuC,MAAM,MAAM,CAAC,GAAG,MAAM,UAAgB,OAAmC,MAAM,WAAsC,OAAO,UAAU,MAAgC,MAAM,UAAU,QAAuDlB,0BAAwB,MAAM,UAAyG,MAAM,SAAsC,YAAY,EAASmB,0BAAwB,MAAM,WAAe,MAAM,iBAAwB,SAAS,KAAK,IAAI,CAAC,MAAM,iBAAwB,SAAS,KAAK,IAAI,CASl2D,gBAAgB,QATk3D,EAAiB,SAAS,MAAM,IAAI,CAAC,GAAK,CAAC,aAAa,WAAW,eAAe,CAAM,CAAC,MAAM,UAAA,YAAU,SAAS,QAAQ,UAAU,UAAU,GAAG,WAAWD,WAAS,MAAM,CAAM,CAAC,YAAY,WAAW,oBAAoB,gBAAgB,eAAe,UAAU,gBAAgB,WAAW,UAAU,gBAAgB,CAAC,WAAA,aAAW,eAAe,YAAY,QAAQ,kBAAA,oBAAkB,CAAC,CAAO,iBAAiBC,yBAAuB,MAAM,SAAS,CAAM,CAAC,sBAAsB,OAAO,yBAAyB,YAAY,CAAO,mBAAmB,sBAAsB,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,UAAU,GAAK,CAAC,CAAC,WAAW,YAAY,EAAG,CAAO,mBAAmB,sBAAsB,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,UAAU,GAAM,CAAC,CAAC,WAAW,YAAY,EAAG,CAAO,KAAKC,GAAa,KAAK,CAAO,gBAAgBW,IAAa,CAAO,sBAAsB,EAAE,CAAgD,OAAvB,sBAAsB,CAAqB,EAAK,YAAY,CAAC,GAAG,UAA4C,gBAAgB,SAAsB,EAAKf,WAAS,CAAC,QAAQ,SAAS,QAAQ,GAAM,SAAsB,EAAKH,aAAW,CAAC,MAAMD,cAAY,SAAsB,EAAK,KAAK,CAAC,KAAK,UAAU,aAAa,GAAM,SAAsB,EAAK,OAAO,EAAE,CAAC,GAAG,UAAU,GAAG,gBAAgB,UAAU,GAAG,GAAGF,oBAAkB,GAAG,sBAAsB,iBAAiBuB,YAAU,WAAW,CAAC,gBAAgB,mBAAmB,UAAU,iBAAiB,GAAsB,iBAAiB,SAAS,YAAY,aAAa,mBAAmB,aAAa,mBAAmB,IAAI,KAA6B,KAAK,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG3B,uBAAqB,CAAC,UAAU,CAAC,mBAAmB,QAAQ,CAAC,CAAC,YAAY,eAAe,CAAC,SAAsB,EAAK,SAAS,CAAC,sBAAsB,GAAK,SAAsB,EAAKuB,EAAe,CAAC,SAAsB,EAAK,OAAO,EAAE,CAAC,MAAM,CAAC,kBAAkB,2BAA2B,uBAAuB,2BAA2B,qBAAqB,OAAO,uBAAuB,MAAM,sBAAsB,iGAAiG,CAAC,SAAS,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,gBAAgB,MAAM,CAAC,qBAAqB,CAAkB,iBAAiB,SAAS,YAAY,MAAM,CAAC,qBAAqB,wEAAwE,2BAA2B,mBAAmB,gCAAgC,YAAY,CAAC,KAAK,UAAU,SAAS,CAAC,UAAU,CAAC,qBAAqB,wEAAwE,CAAC,CAAC,kBAAkB,MAAM,mBAAmB,GAAK,GAAGvB,uBAAqB,CAAC,UAAU,CAAC,SAAsB,EAAKuB,EAAe,CAAC,SAAsB,EAAK,OAAO,EAAE,CAAC,MAAM,CAAC,kBAAkB,2BAA2B,uBAAuB,2BAA2B,qBAAqB,OAAO,uBAAuB,MAAM,sBAAsB,iGAAiG,CAAC,SAAS,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAG,CAAW,CAAC,kFAAkF,gFAAgF,+RAA+R,gHAAgH,+WAA+W,CASxxL,eAAe,mBAAgB,gBAAgB,gBAAgB,YAAY,oBAAoB,gBAAgB,aAAa,CAAC,OAAO,GAAG,MAAM,KAAK,CAAC,oBAAoB,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,YAAY,CAAC,aAAa,CAAC,UAAU,QAAQ,CAAC,MAAM,UAAU,KAAK,YAAY,KAAK,CAAC,UAAU,CAAC,aAAa,OAAO,gBAAgB,GAAM,MAAM,QAAQ,KAAK,YAAY,OAAO,CAAC,UAAU,CAAC,MAAM,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,SAAS,gBAAgB,CAAC,CAAC,cAAc,GAAK,MAAM,CAAC,CAAC,OAAO,cAAc,OAAO,SAAS,MAAM,SAAS,IAAI,sGAAsG,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,6BAA6B,GAAK,CAAC,wOCTvrB,uBAA4O,8BAAkE,sBAA4B,iBAAmJ,CAAM,oBAAoB,SAAS/I,kBAAe,CAAO4H,oBAAkB,eAAqBC,oBAAkB,CAAC,UAAU,kBAAkB,CAA8LC,cAAY,CAAC,OAAO,GAAG,MAAM,EAAE,SAAS,GAAG,KAAK,SAAS,CAAyElC,YAAU,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,EAAE,WAAlI,CAAC,OAAO,IAAI,MAAM,EAAE,SAAS,IAAI,KAAK,SAAS,CAA0G,CAAOmC,cAAY,CAAC,MAAM,YAAY,CAAC,IAAM,OAAOc,GAAiB,oBAAoB,CAAO,WAAW,OAAO,OAAO,WAAiB,aAAaC,QAAmB,CAAC,GAAG,OAAO,WAAW,EAAE,CAAC,KAAK,UAAU,WAAW,CAAC,CAAC,CAAC,OAAoB,EAAK,oBAAoB,SAAS,CAAC,MAAM,aAAsB,SAAS,CAAC,EAASZ,WAAS,OAAO,OAAOa,EAAe,CAAOX,YAAU,CAAC,OAAO,OAAO,GAAA,KAAG,MAAM,GAAG,UAAgB,CAAC,GAAG,MAAM,UAAU,QAAQ,MAAM,UAAU,EAASC,0BAAwB,MAAM,WAAe,MAAM,iBAAwB,SAAS,KAAK,IAAI,CAAC,MAAM,iBAAwB,SAAS,KAAK,IAAI,CAW1qD,gBAAgB,QAX0rD,EAAiB,SAAS,MAAM,IAAI,CAAC,IAAM,YAAYW,GAAO,KAAK,CAAO,WAAW,KAAK,YAAkB,gBAAgBC,IAAa,CAAM,CAAC,aAAa,WAAW,eAAe,CAAO,kBAAkB,sBAAsB,CAAM,CAAC,MAAM,UAAA,YAAU,SAAS,QAAQ,UAAU,GAAG,WAAWb,WAAS,MAAM,CAAM,CAAC,YAAY,WAAW,oBAAoB,gBAAgB,eAAe,UAAU,gBAAgB,WAAW,UAAU,gBAAgB,CAAC,eAAe,YAAY,IAAI,WAAW,QAAQ,kBAAA,oBAAkB,CAAC,CAAO,iBAAiBC,yBAAuB,MAAM,SAAS,CAAM,CAAC,sBAAsB,OAAO,yBAAyB,YAAY,CAAO,YAAY,sBAAsB,MAAM,GAAG,OAAO,CAAoC,GAAnC,gBAAgB,CAAC,UAAU,GAAM,CAAC,CAAI,WAAqB,MAAM,UAAU,GAAG,KAAK,GAAU,GAAM,MAAO,IAAS,CAAsC,kBAAkB,GAAGT,oBAA2C,CAA0B,OAAZ,WAAW,CAAqB,EAAK,YAAY,CAAC,GAAG,UAAU,gBAAgB,SAAsB,EAAKM,WAAS,CAAC,QAAQ,SAAS,QAAQ,GAAM,SAAsB,EAAKH,aAAW,CAAC,MAAMD,cAAY,SAAsB,EAAM,OAAO,IAAI,CAAC,GAAG,UAAU,GAAG,gBAAgB,UAAU,GAAG,kBAAkB,gBAAgBqB,YAAU,WAAW,CAAC,mBAAmB,UAAU,iBAAiB,GAAsB,iBAAiB,SAAS,YAAY,MAAM,YAAY,IAAI,WAAW,MAAM,CAAC,gBAAgB,wBAAwB,uBAAuB,GAAG,wBAAwB,GAAG,oBAAoB,GAAG,qBAAqB,GAAG,GAAG,MAAM,CAAC,SAAS,CAAc,EAAK,aAAa,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,UAAU,YAAY,CAAC,sBAAsB,IAAA,GAAU,CAAC,CAAC,SAAS,eAA4B,EAAK,0BAA0B,CAAC,OAAO,GAAG,GAAG,mBAAmB,GAAG,GAAG,MAAM,mBAAmB,QAAQ,KAAK,GAAG,IAAI,EAAE,EAAE,GAAG,SAAsB,EAAK,8BAA8B,CAAC,UAAU,0BAA2C,iBAAiB,SAAS,sBAAsB,OAAO,YAAY,kBAAkB,GAAK,QAAQ,YAAY,WAAWvD,YAAU,SAAsB,EAAK5F,kBAAe,CAAC,OAAO,OAAO,GAAG,YAAY,SAAS,YAAY,UAAU,OAAO,UAAU,cAAc,GAAG,MAAM,CAAC,OAAO,OAAO,CAAC,QAAQ,YAAY,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,EAAK,aAAa,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,UAAU,YAAY,CAAC,sBAAsB,IAAA,GAAU,CAAC,CAAC,SAAS,gBAA6B,EAAK,0BAA0B,CAAC,OAAO,GAAG,GAAG,mBAAmB,GAAG,GAAG,MAAM,mBAAmB,QAAQ,KAAK,GAAG,IAAI,EAAE,GAAG,IAAI,SAAsB,EAAK,8BAA8B,CAAC,UAAU,2BAA4C,iBAAiB,SAAS,sBAAsB,OAAO,YAAY,kBAAkB,GAAK,QAAQ,YAAY,WAAW4F,YAAU,SAAsB,EAAK5F,kBAAe,CAAC,OAAO,OAAO,GAAG,YAAY,SAAS,YAAY,UAAU,SAAS,UAAU,eAAe,GAAG,MAAM,CAAC,OAAO,OAAO,CAAC,QAAQ,YAAY,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,EAAK,aAAa,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,UAAU,YAAY,CAAC,sBAAsB,IAAA,GAAU,CAAC,CAAC,SAAS,gBAA6B,EAAK,0BAA0B,CAAC,OAAO,GAAG,GAAG,mBAAmB,GAAG,GAAG,MAAM,mBAAmB,QAAQ,KAAK,GAAG,IAAI,EAAE,GAAG,IAAI,SAAsB,EAAK,8BAA8B,CAAC,UAAU,0BAA2C,iBAAiB,SAAS,sBAAsB,OAAO,YAAY,kBAAkB,GAAK,QAAQ,YAAY,WAAW4F,YAAU,SAAsB,EAAK5F,kBAAe,CAAC,OAAO,OAAO,GAAG,YAAY,SAAS,YAAY,UAAU,UAAU,UAAU,eAAe,GAAG,MAAM,CAAC,OAAO,OAAO,CAAC,QAAQ,YAAY,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAG,CAAW,CAAC,kFAAkF,gFAAgF,+VAA+V,4PAA4P,CAWpkM,eAAe,mBAAgB,gBAAgB,gBAAgB,YAAY,kBAAkB,gBAAgB,aAAa,CAAC,OAAO,IAAI,MAAM,KAAK,CAAC,oBAAoB,gBAAgB,CAAC,UAAU,CAAC,MAAM,UAAU,KAAK,YAAY,aAAa,CAAC,CAAC,CAAC,SAAS,gBAAgB,CAAC,CAAC,cAAc,GAAK,MAAM,EAAE,CAAC,CAAC,GAAG,oBAAoB,CAAC,CAAC,6BAA6B,GAAK,CAAC,ICX4+B,SAASwH,uBAAqB,YAAU,GAAG,SAAS,CAAC,IAAM,cAAc,EAAE,CAAsF,OAArF,UAAU,QAAQ,SAAS,SAAS,OAAO,OAAO,cAAciB,YAAU,SAAS,CAAC,CAAQ,2aAA39C,uBAAkT,8BAAkF,sBAA4B,iBAAmJ,iBAAyH,iBAA2H,iBAAyH,CAAMxH,sBAAoB,SAASyH,kBAAe,CAAO,oBAAoB,SAASvH,kBAAe,CAAO,gBAAgB,OAAO,OAAO,IAAI,CAAO,sBAAsB,SAASC,kBAAiB,CAAOuG,aAAW,CAAC,YAAY,YAAY,YAAY,CAAOC,oBAAkB,eAAqBC,oBAAkB,CAAC,UAAU,mBAAmB,UAAU,kBAAkB,UAAU,kBAAkB,CAA8LC,cAAY,CAAC,QAAQ,GAAG,MAAM,EAAE,KAAK,EAAE,UAAU,IAAI,KAAK,SAAS,CAAO,YAAY,CAAC,QAAQ,GAAG,MAAM,EAAE,KAAK,GAAG,UAAU,IAAI,KAAK,SAAS,CAAO,YAAY,CAAC,SAAS,EAAE,KAAK,QAAQ,CAAO,YAAY,CAAC,OAAO,GAAG,MAAM,EAAE,SAAS,GAAG,KAAK,SAAS,CAAO,UAAU,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,YAAY,EAAE,EAAE,EAAE,EAAE,CAAO,WAAW,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,YAAY,EAAE,EAAE,EAAE,EAAE,CAAO,WAAW,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,CAAO,SAAS,CAAC,SAAS,uBAAuB,QAAQ,MAAQ,CAAC,GAAK,CAAC,QAAQ,YAAY,gBAAgB,CAAC,uBAAuB,CAAC,CAAC,OAAO,SAAS,CAAC,SAAS,WAAW,GAAM,CAAC,SAAS,WAAW,GAAK,CAAC,WAAW,WAAW,CAAC,QAAQ,CAAC,QAAQ,SAAS,QAAQ,CAAC,EAASC,cAAY,CAAC,MAAM,YAAY,CAAC,IAAM,OAAOc,GAAiB,oBAAoB,CAAO,WAAW,OAAO,OAAO,WAAiB,aAAaC,QAAmB,CAAC,GAAG,OAAO,WAAW,EAAE,CAAC,KAAK,UAAU,WAAW,CAAC,CAAC,CAAC,OAAoB,EAAK,oBAAoB,SAAS,CAAC,MAAM,aAAsB,SAAS,CAAC,EAASZ,WAAS,OAAO,OAAOa,EAAe,CAAO7B,0BAAwB,CAAC,cAAc,YAAY,QAAQ,YAAY,OAAO,YAAY,CAAOkB,YAAU,CAAC,OAAO,GAAA,KAAG,gBAAgB,MAAM,GAAG,UAAgB,CAAC,GAAG,MAAM,UAAU,iBAAiB,MAAM,UAAU,QAAQlB,0BAAwB,MAAM,UAAU,MAAM,SAAS,YAAY,EAASmB,0BAAwB,MAAM,WAAe,MAAM,iBAAwB,SAAS,KAAK,IAAI,CAAC,MAAM,iBAAwB,SAAS,KAAK,IAAI,CAASpG,YAAuB,EAAiB,SAAS,MAAM,IAAI,CAAC,IAAM,YAAY+G,GAAO,KAAK,CAAO,WAAW,KAAK,YAAkB,gBAAgBC,IAAa,CAAM,CAAC,aAAa,WAAW,eAAe,CAAO,kBAAkB,sBAAsB,CAAM,CAAC,MAAM,UAAA,YAAU,SAAS,QAAQ,UAAU,GAAG,WAAWb,WAAS,MAAM,CAAM,CAAC,YAAY,WAAW,oBAAoB,gBAAgB,eAAe,UAAU,gBAAgB,WAAW,UAAU,gBAAgB,CAAC,WAAA,aAAW,eAAe,YAAY,IAAI,WAAW,QAAQ,kBAAA,oBAAkB,CAAC,CAAO,iBAAiBC,yBAAuB,MAAM,SAAS,CAAM,CAAC,sBAAsB,OAAO,yBAAyB,YAAY,CAAO,YAAY,sBAAsB,MAAM,GAAG,OAAO,CAAC,WAAW,YAAY,EAAG,CAAO,YAAY,sBAAsB,MAAM,GAAG,OAAO,CAAC,WAAW,YAAY,EAAG,CAAO,aAAa,sBAAsB,MAAM,GAAG,OAAO,CAAC,GAAG,WAAqB,MAAM,UAAU,GAAG,KAAK,GAAU,GAAM,MAAO,IAAS,CAAO,oBAAoB,CAAC,QAAQ,YAAY,sBAAsB,MAAM,GAAG,OAAO,CAAC,QAAQ,MAAM,EAAG,CAA2D,kBAAkB,GAAGT,oBAAlDsB,YAA6F,CAAO,gBAAiB,EAAG,CAAC,YAAY,YAAY,CAAC,SAAS,YAAY,CAAkC,iBAAqB,cAAc,YAA6C,iBAAqB,cAAc,YAA6C,KAAKZ,GAAa,KAAK,CAAO,KAAKA,GAAa,KAAK,CAAO,iBAAqB,cAAc,YAAgE,OAAZ,WAAW,CAAqB,EAAK,YAAY,CAAC,GAAG,UAAU,gBAAgB,SAAsB,EAAKJ,WAAS,CAAC,QAAQ,SAAS,QAAQ,GAAM,SAAsB,EAAKH,aAAW,CAAC,MAAMD,cAAY,GAAGN,uBAAqB,CAAC,UAAU,CAAC,MAAM,YAAY,CAAC,UAAU,CAAC,MAAM,YAAY,CAAC,CAAC,YAAY,eAAe,CAAC,SAAsB,EAAK,OAAO,OAAO,CAAC,GAAG,UAAU,GAAG,gBAAgB,UAAU,GAAG,kBAAkB,gBAAgB2B,YAAU,WAAW,CAAC,mBAAmB,UAA2B,iBAAiB,SAAS,YAAY,IAAI,WAAW,MAAM,CAAC,gBAAgB,uBAAuB,GAAG,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,gBAAgB,oEAAoE,CAAC,CAAC,GAAG3B,uBAAqB,CAAC,UAAU,CAAC,mBAAmB,SAAS,CAAC,UAAU,CAAC,mBAAmB,cAAc,iBAAiB,GAAK,CAAC,CAAC,YAAY,eAAe,CAAC,SAAsB,EAAM,OAAO,IAAI,CAAC,UAAU,gBAAgB,mBAAmB,YAA6B,iBAAiB,SAAS,YAAY,SAAS,CAAc,EAAM,OAAO,IAAI,CAAC,UAAU,gBAAiC,iBAAiB,SAAS,YAAY,SAAS,CAAc,EAAK,OAAO,IAAI,CAAC,UAAU,iBAAiB,mBAAmB,aAA8B,iBAAiB,SAAS,YAAY,SAAsB,EAAM,OAAO,IAAI,CAAC,UAAU,gBAAgB,mBAAmB,OAAwB,iBAAiB,SAAS,YAAY,SAAS,CAAc,EAAK,OAAO,IAAI,CAAC,UAAU,gBAAiC,iBAAiB,SAAS,YAAY,SAAsB,EAAK,0BAA0B,CAAC,SAAsB,EAAK,8BAA8B,CAAC,UAAU,2BAA4C,iBAAiB,SAAS,sBAAsB,OAAO,YAAY,kBAAkB,GAAK,QAAQ,YAAY,SAAsB,EAAKkB,kBAAe,CAAC,OAAO,OAAO,GAAG,YAAY,SAAS,YAAY,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,EAAe,EAAM,OAAO,IAAI,CAAC,UAAU,iBAAiB,mBAAmB,OAAwB,iBAAiB,SAAS,YAAY,MAAM,CAAC,gBAAgB,qBAAqB,uBAAuB,GAAG,wBAAwB,GAAG,oBAAoB,GAAG,qBAAqB,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,gBAAgB,wEAAwE,uBAAuB,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,CAAC,UAAU,CAAC,gBAAgB,wEAAwE,uBAAuB,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,CAAC,CAAC,GAAGlB,uBAAqB,CAAC,UAAU,CAAC,iBAAiB,GAAK,MAAM,YAAY,CAAC,UAAU,CAAC,iBAAiB,GAAK,MAAM,YAAY,CAAC,CAAC,YAAY,eAAe,CAAC,SAAS,CAAc,EAAK,OAAO,IAAI,CAAC,UAAU,iBAAiB,mBAAmB,SAA0B,iBAAiB,SAAS,YAAY,MAAM,CAAC,gBAAgB,qEAAqE,uBAAuB,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,OAAO,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,gBAAgB,oEAAoE,CAAC,UAAU,CAAC,gBAAgB,oEAAoE,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc,EAAe,EAAK,OAAO,IAAI,CAAC,UAAU,iBAAiB,mBAAmB,SAA0B,iBAAiB,SAAS,YAAY,MAAM,CAAC,gBAAgB,oEAAoE,uBAAuB,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,CAAC,CAAC,CAAc,EAAK,OAAO,IAAI,CAAC,UAAU,gBAAgB,mBAAmB,MAAuB,iBAAiB,SAAS,YAAY,MAAM,CAAC,gBAAgB,qEAAqE,uBAAuB,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,OAAO,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,gBAAgB,oEAAoE,CAAC,UAAU,CAAC,gBAAgB,oEAAoE,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,EAAe,EAAM,OAAO,IAAI,CAAC,UAAU,gBAAgB,mBAAmB,QAAyB,iBAAiB,SAAS,YAAY,MAAM,CAAC,uBAAuB,GAAG,wBAAwB,GAAG,oBAAoB,GAAG,qBAAqB,GAAG,CAAC,SAAS,CAAc,EAAK,OAAO,IAAI,CAAC,UAAU,gBAAgB,mBAAmB,WAA4B,iBAAiB,SAAS,YAAY,SAAsB,EAAK,QAAQ,CAAC,uBAAuB,GAAM,QAAQ,cAAc,CAAC,SAAS,SAAsB,EAAMjF,EAAU,CAAC,SAAS,CAAc,EAAK,SAAS,CAAC,sBAAsB,GAAK,SAAsB,EAAKwG,EAAe,CAAC,SAAsB,EAAK,OAAO,EAAE,CAAC,MAAM,CAAC,kBAAkB,2BAA2B,uBAAuB,2BAA2B,qBAAqB,OAAO,uBAAuB,MAAM,uBAAuB,QAAQ,0BAA0B,OAAO,sBAAsB,iGAAiG,0BAA0B,YAAY,CAAC,SAAsB,EAAK,KAAK,CAAC,KAAK,CAAC,UAAU,YAAY,CAAC,YAAY,GAAK,OAAO,YAAY,aAAa,GAAM,QAAQ,YAAY,aAAa,GAAM,SAAsB,EAAK,OAAO,EAAE,CAAC,UAAU,8BAA8B,qBAAqB,YAAY,SAAS,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,gBAAgB,iBAAiB,GAAK,MAAM,CAAC,qBAAqB,CAAC,GAAG,GAAG,SAAS,SAA0B,iBAAiB,SAAS,YAAY,aAAa,mBAAmB,CAAC,QAAQ,CAAC,CAAC,MAAM,aAAa,IAAI,KAAK,MAAM,CAAC,qBAAqB,wEAAwE,CAAC,kBAAkB,MAAM,mBAAmB,GAAK,GAAGvB,uBAAqB,CAAC,UAAU,CAAC,SAAsB,EAAKuB,EAAe,CAAC,SAAsB,EAAK,OAAO,EAAE,CAAC,MAAM,CAAC,kBAAkB,2BAA2B,uBAAuB,2BAA2B,qBAAqB,OAAO,uBAAuB,MAAM,uBAAuB,QAAQ,0BAA0B,OAAO,sBAAsB,iGAAiG,0BAA0B,YAAY,CAAC,SAAsB,EAAK,KAAK,CAAC,KAAK,CAAC,UAAU,YAAY,CAAC,YAAY,GAAK,OAAO,YAAY,aAAa,GAAM,QAAQ,YAAY,aAAa,GAAM,SAAsB,EAAK,OAAO,EAAE,CAAC,UAAU,8BAA8B,qBAAqB,YAAY,SAAS,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAA,GAAU,CAAC,CAAC,YAAY,eAAe,CAAC,CAAC,CAAC,cAAc,EAAe,EAAK,gBAAgB,CAAC,SAAS,QAAQ,SAAsB,EAAK,SAAS,CAAC,UAAU,QAAQ,UAAU,KAAK,UAAU,GAAG,kBAAkB,WAAW,CAAC,mBAAmB,GAAK,0BAA0B,GAAG,wBAAwB,GAAG,SAAS,SAAS,QAAQ,EAAE,QAAQ,GAAG,UAAU,QAAQ,KAAK,UAAU,SAAS,SAAS,GAAK,OAAO,GAAG,SAAsB,EAAK,gBAAgB,CAAC,gBAAgB,GAAM,mBAAmB,GAAK,gBAAgB,EAAE,QAAQ,WAAW,UAAU,iBAAiB,KAAK,UAAU,QAAQ,WAA4B,iBAAiB,SAAS,YAAY,IAAI,KAAK,KAAK,SAAS,MAAM,CAAC,uBAAuB,GAAG,wBAAwB,GAAG,oBAAoB,GAAG,qBAAqB,GAAG,UAAU,wCAAwC,CAAC,SAAsB,EAAK,0BAA0B,CAAC,SAAsB,EAAK,8BAA8B,CAAC,UAAU,0BAA2C,iBAAiB,SAAS,sBAAsB,OAAO,YAAY,kBAAkB,GAAK,QAAQ,YAAY,SAAsB,EAAK5H,kBAAe,CAAC,OAAO,OAAO,GAAG,YAAY,SAAS,YAAY,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,EAAK,OAAO,IAAI,CAAC,UAAU,iBAAiB,mBAAmB,WAA4B,iBAAiB,SAAS,YAAY,SAAsB,EAAK,SAAS,CAAC,sBAAsB,GAAK,SAAsB,EAAK4H,EAAe,CAAC,SAAsB,EAAK,OAAO,EAAE,CAAC,MAAM,CAAC,kBAAkB,2BAA2B,uBAAuB,2BAA2B,qBAAqB,OAAO,uBAAuB,MAAM,uBAAuB,QAAQ,0BAA0B,OAAO,sBAAsB,iGAAiG,0BAA0B,YAAY,CAAC,SAAsB,EAAK,KAAK,CAAC,KAAK,CAAC,UAAU,YAAY,CAAC,YAAY,GAAK,OAAO,YAAY,aAAa,GAAM,QAAQ,YAAY,aAAa,GAAM,SAAsB,EAAK,OAAO,EAAE,CAAC,UAAU,8BAA8B,qBAAqB,YAAY,SAAS,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,iBAAiB,MAAM,CAAC,qBAAqB,CAAkB,iBAAiB,SAAS,YAAY,MAAM,CAAC,qBAAqB,wEAAwE,CAAC,kBAAkB,MAAM,mBAAmB,GAAK,GAAGvB,uBAAqB,CAAC,UAAU,CAAC,SAAsB,EAAKuB,EAAe,CAAC,SAAsB,EAAK,OAAO,EAAE,CAAC,MAAM,CAAC,kBAAkB,2BAA2B,uBAAuB,2BAA2B,qBAAqB,OAAO,uBAAuB,MAAM,uBAAuB,QAAQ,0BAA0B,OAAO,sBAAsB,iGAAiG,0BAA0B,YAAY,CAAC,SAAsB,EAAK,KAAK,CAAC,KAAK,CAAC,UAAU,YAAY,CAAC,YAAY,GAAK,OAAO,YAAY,aAAa,GAAM,QAAQ,YAAY,aAAa,GAAM,SAAsB,EAAK,OAAO,EAAE,CAAC,UAAU,8BAA8B,qBAAqB,YAAY,SAAS,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,EAAe,EAAK,OAAO,IAAI,CAAC,UAAU,gBAAgB,mBAAmB,WAA4B,iBAAiB,SAAS,YAAY,SAAsB,EAAK,SAAS,CAAC,sBAAsB,GAAK,SAAsB,EAAKA,EAAe,CAAC,SAAsB,EAAK,OAAO,EAAE,CAAC,MAAM,CAAC,kBAAkB,2BAA2B,uBAAuB,2BAA2B,qBAAqB,OAAO,uBAAuB,MAAM,uBAAuB,QAAQ,0BAA0B,OAAO,sBAAsB,iGAAiG,0BAA0B,YAAY,CAAC,SAAsB,EAAK,KAAK,CAAC,KAAK,CAAC,UAAU,YAAY,CAAC,YAAY,GAAK,OAAO,YAAY,aAAa,GAAM,QAAQ,YAAY,aAAa,GAAM,SAAsB,EAAK,OAAO,EAAE,CAAC,UAAU,8BAA8B,qBAAqB,YAAY,SAAS,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,iBAAiB,MAAM,CAAC,qBAAqB,CAAkB,iBAAiB,SAAS,YAAY,MAAM,CAAC,qBAAqB,wEAAwE,CAAC,kBAAkB,MAAM,mBAAmB,GAAK,CAAC,CAAC,CAAC,CAAC,cAAc,EAAe,EAAK,OAAO,IAAI,CAAC,UAAU,gBAAgB,mBAAmB,WAA4B,iBAAiB,SAAS,YAAY,SAAsB,EAAK,SAAS,CAAC,sBAAsB,GAAK,SAAsB,EAAKA,EAAe,CAAC,SAAsB,EAAK,OAAO,EAAE,CAAC,MAAM,CAAC,kBAAkB,2BAA2B,uBAAuB,2BAA2B,qBAAqB,OAAO,uBAAuB,MAAM,uBAAuB,QAAQ,0BAA0B,OAAO,sBAAsB,iGAAiG,0BAA0B,YAAY,CAAC,SAAsB,EAAK,KAAK,CAAC,KAAK,CAAC,UAAU,YAAY,CAAC,YAAY,GAAK,OAAO,YAAY,aAAa,GAAM,QAAQ,YAAY,aAAa,GAAM,SAAsB,EAAK,OAAO,EAAE,CAAC,UAAU,8BAA8B,qBAAqB,YAAY,SAAS,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,iBAAiB,MAAM,CAAC,qBAAqB,CAAkB,iBAAiB,SAAS,YAAY,MAAM,CAAC,qBAAqB,wEAAwE,CAAC,kBAAkB,MAAM,mBAAmB,GAAK,CAAC,CAAC,CAAC,CAAC,cAAc,EAAe,EAAK,OAAO,IAAI,CAAC,UAAU,gBAAgB,mBAAmB,WAA4B,iBAAiB,SAAS,YAAY,SAAsB,EAAK,SAAS,CAAC,sBAAsB,GAAK,SAAsB,EAAKA,EAAe,CAAC,SAAsB,EAAK,OAAO,EAAE,CAAC,MAAM,CAAC,kBAAkB,2BAA2B,uBAAuB,2BAA2B,qBAAqB,OAAO,uBAAuB,MAAM,uBAAuB,QAAQ,0BAA0B,OAAO,sBAAsB,iGAAiG,0BAA0B,YAAY,CAAC,SAAsB,EAAK,KAAK,CAAC,KAAK,CAAC,UAAU,YAAY,CAAC,YAAY,GAAK,OAAO,YAAY,aAAa,GAAM,QAAQ,YAAY,aAAa,GAAM,SAAsB,EAAK,OAAO,EAAE,CAAC,UAAU,8BAA8B,qBAAqB,YAAY,SAAS,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,gBAAgB,MAAM,CAAC,qBAAqB,CAAkB,iBAAiB,SAAS,YAAY,MAAM,CAAC,qBAAqB,wEAAwE,CAAC,kBAAkB,MAAM,mBAAmB,GAAK,CAAC,CAAC,CAAC,CAAc,EAAK,OAAO,IAAI,CAAC,UAAU,gBAAgB,mBAAmB,WAA4B,iBAAiB,SAAS,YAAY,SAAsB,EAAK,SAAS,CAAC,sBAAsB,GAAK,SAAsB,EAAKA,EAAe,CAAC,SAAsB,EAAK,OAAO,EAAE,CAAC,MAAM,CAAC,kBAAkB,2BAA2B,uBAAuB,2BAA2B,qBAAqB,OAAO,uBAAuB,MAAM,uBAAuB,QAAQ,0BAA0B,OAAO,sBAAsB,iGAAiG,0BAA0B,YAAY,CAAC,SAAsB,EAAK,KAAK,CAAC,KAAK,CAAC,UAAU,YAAY,CAAC,YAAY,GAAK,OAAO,YAAY,aAAa,GAAM,QAAQ,YAAY,aAAa,GAAM,SAAsB,EAAK,OAAO,EAAE,CAAC,UAAU,8BAA8B,qBAAqB,YAAY,SAAS,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,iBAAiB,MAAM,CAAC,qBAAqB,CAAkB,iBAAiB,SAAS,YAAY,MAAM,CAAC,qBAAqB,wEAAwE,CAAC,kBAAkB,MAAM,mBAAmB,GAAK,GAAGvB,uBAAqB,CAAC,UAAU,CAAC,SAAsB,EAAKuB,EAAe,CAAC,SAAsB,EAAK,OAAO,EAAE,CAAC,MAAM,CAAC,kBAAkB,2BAA2B,uBAAuB,2BAA2B,qBAAqB,OAAO,uBAAuB,MAAM,uBAAuB,QAAQ,0BAA0B,OAAO,sBAAsB,iGAAiG,0BAA0B,YAAY,CAAC,SAAsB,EAAK,KAAK,CAAC,KAAK,CAAC,UAAU,YAAY,CAAC,YAAY,GAAK,OAAO,YAAY,aAAa,GAAM,QAAQ,YAAY,aAAa,GAAM,SAAsB,EAAK,OAAO,EAAE,CAAC,UAAU,8BAA8B,qBAAqB,YAAY,SAAS,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,eAAe,CAAC,CAAC,CAAC,CAAC,CAAc,EAAK,OAAO,IAAI,CAAC,UAAU,iBAAiB,mBAAmB,WAA4B,iBAAiB,SAAS,YAAY,SAAsB,EAAK,SAAS,CAAC,sBAAsB,GAAK,SAAsB,EAAKA,EAAe,CAAC,SAAsB,EAAK,OAAO,EAAE,CAAC,MAAM,CAAC,kBAAkB,2BAA2B,uBAAuB,2BAA2B,qBAAqB,OAAO,uBAAuB,MAAM,uBAAuB,QAAQ,0BAA0B,OAAO,sBAAsB,iGAAiG,0BAA0B,YAAY,CAAC,SAAsB,EAAK,KAAK,CAAC,KAAK,CAAC,UAAU,YAAY,CAAC,YAAY,GAAK,OAAO,YAAY,aAAa,GAAM,QAAQ,YAAY,aAAa,GAAM,SAAsB,EAAK,OAAO,EAAE,CAAC,UAAU,8BAA8B,qBAAqB,YAAY,SAAS,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,gBAAgB,MAAM,CAAC,qBAAqB,CAAkB,iBAAiB,SAAS,YAAY,MAAM,CAAC,qBAAqB,wEAAwE,CAAC,kBAAkB,MAAM,mBAAmB,GAAK,GAAGvB,uBAAqB,CAAC,UAAU,CAAC,SAAsB,EAAKuB,EAAe,CAAC,SAAsB,EAAK,OAAO,EAAE,CAAC,MAAM,CAAC,kBAAkB,2BAA2B,uBAAuB,2BAA2B,qBAAqB,OAAO,uBAAuB,MAAM,uBAAuB,QAAQ,0BAA0B,OAAO,sBAAsB,iGAAiG,0BAA0B,YAAY,CAAC,SAAsB,EAAK,KAAK,CAAC,KAAK,CAAC,UAAU,YAAY,CAAC,YAAY,GAAK,OAAO,YAAY,aAAa,GAAM,QAAQ,YAAY,aAAa,GAAM,SAAsB,EAAK,OAAO,EAAE,CAAC,UAAU,8BAA8B,qBAAqB,YAAY,SAAS,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,EAAe,EAAK,OAAO,IAAI,CAAC,UAAU,gBAAiC,iBAAiB,SAAS,YAAY,SAAS,cAAc,EAAe,EAAK,aAAa,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,UAAU,YAAY,CAAC,sBAAsB,IAAA,GAAU,CAAC,CAAC,SAAS,eAA4B,EAAK,0BAA0B,CAAC,OAAO,GAAG,GAAG,mBAAmB,GAAG,IAAI,KAAK,mBAAmB,QAAQ,MAAM,GAAG,IAAI,GAAG,EAAE,EAAE,SAAsB,EAAK,8BAA8B,CAAC,UAAU,2BAA4C,iBAAiB,SAAS,sBAAsB,OAAO,YAAY,kBAAkB,GAAK,QAAQ,YAAY,SAAsB,EAAK3H,kBAAiB,CAAC,OAAO,OAAO,GAAG,YAAY,SAAS,YAAY,UAAU,cAAc,UAAU,cAAc,GAAG,QAAQ,YAAY,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAG,CAAOuB,MAAI,CAAC,kFAAkF,gFAAgF,gRAAgR,4SAA4S,2QAA2Q,qVAAqV,kJAAkJ,kHAAkH,0KAA0K,qMAAqM,sKAAsK,8QAA8Q,gXAAgX,iIAAiI,oUAAoU,oHAAoH,0QAA0Q,8TAA8T,2SAA2S,sRAAsR,8FAA8F,gFAAgF,gFAAgF,2HAA2H,qHAAqH,qHAAqH,oKAAoK,oGAAoG,yFAAyF,4GAA4G,4GAA4G,4FAA4F,mMAAmM,iIAAiI,kEAAkE,kIAAkI,sFAAsF,sFAAsF,sFAAsF,iIAAiI,kIAAkI,+IAA+I,GAAGyG,MAAgB,CAW357B,gBAAgB,QAAQnH,YAAUU,MAAI,eAAe,mBAAgB,gBAAgB,gBAAgB,YAAY,oBAAoB,gBAAgB,aAAa,CAAC,OAAO,KAAK,MAAM,KAAK,CAAC,oBAAoB,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,YAAY,YAAY,CAAC,aAAa,CAAC,UAAU,SAAS,cAAc,CAAC,MAAM,UAAU,KAAK,YAAY,KAAK,CAAC,UAAU,CAAC,MAAM,oBAAoB,KAAK,YAAY,aAAa,CAAC,CAAC,CAAC,SAAS,gBAAgB,CAAC,CAAC,cAAc,GAAK,MAAM,CAAC,CAAC,OAAO,cAAc,OAAO,SAAS,MAAM,SAAS,IAAI,sGAAsG,OAAO,MAAM,CAAC,CAAC,CAAC,GAAG1B,sBAAoB,GAAG,oBAAoB,GAAG,sBAAsB,GAAG,wBAAwBoI,QAAkB,CAAC,CAAC,CAAC,6BAA6B,GAAK,CAAC,8ECZ7xB,WAAU,UAAU,EAAE,CAAC,CAAc,MAAM,EAAE,CAAc1G,MAAI,CAAC,wbAAwb,CAAc,UAAU,kBCCuJ,SAAS6E,uBAAqB,YAAU,GAAG,SAAS,CAAC,IAAM,cAAc,EAAE,CAA+H,OAA9H,UAAmD,QAAQ,SAAS,SAAS,OAAO,OAAO,cAAciB,YAAU,SAAS,CAAC,CAAQ,+QAA71B,uBAAoI,8BAAkE,sBAA4B,CAAM3F,kBAAgB,CAAC,UAAU,CAAC,MAAM,GAAK,CAAC,UAAU,CAAC,MAAM,GAAK,CAAC,UAAU,CAAC,MAAM,GAAK,CAAC,UAAU,CAAC,MAAM,GAAK,CAAC,UAAU,CAAC,MAAM,GAAK,CAAC,CAAO6E,aAAW,CAAC,YAAY,YAAY,YAAY,YAAY,YAAY,CAAOC,oBAAkB,eAAqBC,oBAAkB,CAAC,UAAU,mBAAmB,UAAU,kBAAkB,UAAU,mBAAmB,UAAU,kBAAkB,UAAU,mBAAmB,CAAuOC,cAAY,CAAC,QAAQ,GAAG,MAAM,EAAE,KAAK,EAAE,UAAU,IAAI,KAAK,SAAS,CAAOC,cAAY,CAAC,MAAM,YAAY,CAAC,IAAM,OAAOc,GAAiB,oBAAoB,CAAO,WAAW,OAAmC,OAAO,WAAiB,aAAaC,QAAmB,CAAC,GAAG,OAAO,WAAW,EAAE,CAAC,KAAK,UAAU,WAAW,CAAC,CAAC,CAAC,OAAoB,EAAK,oBAAoB,SAAS,CAAC,MAAM,aAAsB,SAAS,CAAC,EAASZ,WAAS,OAAOa,EAAe,CAAO7B,0BAAwB,CAAC,YAAY,YAAY,QAAQ,YAAY,OAAO,YAAY,SAAS,YAAY,EAAE,YAAY,CAAOkB,YAAU,CAAC,OAAO,GAAA,KAAG,KAAK,MAAM,GAAG,SAAS,CAAC,IAAI,uCAAuC,KAAK,MAAM,CAAC,GAAG,MAAM,QAAsDlB,0BAAwB,MAAM,UAAyG,MAAM,SAAoC,YAAY,UAAU,MAAgC,MAAM,UAAU,EAASmB,0BAAwB,MAAM,WAAW,SAAS,KAAK,IAAI,CAAC,MAAM,iBASp9D,gBAAgB,QATk/D,EAAiB,SAAS,MAAM,IAAI,CAAC,GAAK,CAAC,aAAa,WAAW,eAAe,CAAM,CAAC,MAAM,UAAA,YAAU,SAAS,QAAQ,UAAU,GAAG,WAAWD,WAAS,MAAM,CAAM,CAAC,YAAY,WAAW,eAAe,gBAAgB,WAAW,UAAU,gBAAgB,CAAC,WAAA,aAAW,eAAe,YAAY,gBAAA,kBAAgB,QAAQ,kBAAA,oBAAkB,CAAC,CAAO,iBAAiBC,yBAAuB,MAAM,SAAS,CAAO,KAAKC,GAAa,KAAK,CAAO,gBAAoB,iBAAiB,mBAAiC,cAAc,YAA6C,iBAAqB,iBAAiB,mBAAiC,cAAc,YAA6C,iBAAqB,iBAAiB,mBAAiC,cAAc,YAA6C,iBAAqI,EAAhH,CAAC,kBAAkB,kBAAkB,kBAAkB,kBAAkB,CAAC,SAAS,eAAe,EAAiB,CAAC,YAAY,YAAY,YAAY,YAAY,CAAC,SAAS,YAAY,EAAkC,iBAAqB,iBAAiB,mBAAiC,cAAc,YAA6C,gBAAgBW,IAAa,CAAO,sBAAsB,EAAE,CAAgD,OAAvB,sBAAsB,CAAqB,EAAK,YAAY,CAAC,GAAG,UAA4C,gBAAgB,SAAsB,EAAKf,WAAS,CAAC,QAAQ,SAAS,QAAQ,GAAM,SAAsB,EAAKH,aAAW,CAAC,MAAMD,cAAY,SAAsB,EAAK,KAAK,CAAC,KAAK,UAAU,aAAa,GAAK,GAAGN,uBAAqB,CAAC,UAAU,CAAC,KAAK,4CAA4C,CAAC,CAAC,YAAY,eAAe,CAAC,SAAsB,EAAM,OAAO,EAAE,CAAC,GAAG,UAAU,UAAU,GAAG,GAAGI,oBAAkB,GAAG,sBAAsB,gBAAgBuB,YAAU,WAAW,CAAC,eAAe,mBAAmB,SAA0B,iBAAiB,SAAS,YAAY,eAAe,gBAAgB,CAAC,UAAU,GAAM,CAAC,CAAC,iBAAiB,gBAAgB,CAAC,UAAU,GAAK,CAAC,CAAC,UAAU,gBAAgB,CAAC,UAAU,GAAM,CAAC,CAAC,gBAAgB,gBAAgB,CAAC,UAAU,GAAM,CAAC,CAAC,eAAe,gBAAgB,CAAC,UAAU,GAAK,CAAC,CAAC,IAAI,KAA6B,KAAK,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG3B,uBAAqB,CAAC,kBAAkB,CAAC,mBAAmB,IAAA,GAAU,CAAC,kBAAkB,CAAC,mBAAmB,IAAA,GAAU,CAAC,kBAAkB,CAAC,mBAAmB,IAAA,GAAU,CAAC,kBAAkB,CAAC,mBAAmB,IAAA,GAAU,CAAC,kBAAkB,CAAC,mBAAmB,IAAA,GAAU,CAAC,UAAU,CAAC,mBAAmB,UAAU,CAAC,UAAU,CAAC,mBAAmB,WAAW,CAAC,UAAU,CAAC,mBAAmB,YAAY,CAAC,UAAU,CAAC,mBAAmB,IAAI,CAAC,CAAC,YAAY,eAAe,CAAC,SAAS,CAAC,aAAa,EAAe,EAAK,IAAI,CAAC,UAAU,gBAAgB,mBAAmB,OAAO,OAAO,WAA4B,iBAAiB,SAAS,YAAY,QAAQ,EAAE,IAAI,4uCAA4uC,aAAa,UAAU,mBAAmB,GAAK,GAAGA,uBAAqB,CAAC,kBAAkB,CAAC,IAAI,4uCAA4uC,aAAa,WAAW,CAAC,UAAU,CAAC,aAAa,WAAW,CAAC,CAAC,YAAY,eAAe,CAAC,CAAC,CAAC,cAAc,EAAe,EAAK,IAAI,CAAC,UAAU,gBAAgB,mBAAmB,WAAW,OAAO,WAA4B,iBAAiB,SAAS,YAAY,QAAQ,EAAE,IAAI,u3BAAu3B,aAAa,WAAW,mBAAmB,GAAK,GAAGA,uBAAqB,CAAC,kBAAkB,CAAC,IAAI,u3BAAu3B,aAAa,WAAW,CAAC,UAAU,CAAC,aAAa,WAAW,CAAC,CAAC,YAAY,eAAe,CAAC,CAAC,CAAC,cAAc,EAAe,EAAK,IAAI,CAAC,UAAU,gBAAgB,mBAAmB,eAAe,OAAO,WAA4B,iBAAiB,SAAS,YAAY,QAAQ,EAAE,IAAI,w9DAAw9D,aAAa,WAAW,mBAAmB,GAAK,GAAGA,uBAAqB,CAAC,kBAAkB,CAAC,IAAI,w9DAAw9D,aAAa,UAAU,CAAC,UAAU,CAAC,aAAa,WAAW,CAAC,CAAC,YAAY,eAAe,CAAC,CAAC,CAAC,cAAc,EAAe,EAAK,IAAI,CAAC,UAAU,gBAAgB,mBAAmB,cAAc,OAAO,WAA4B,iBAAiB,SAAS,YAAY,QAAQ,EAAE,IAAI,i8EAAi8E,aAAa,WAAW,mBAAmB,GAAK,GAAGA,uBAAqB,CAAC,kBAAkB,CAAC,IAAI,i8EAAi8E,aAAa,UAAU,CAAC,CAAC,YAAY,eAAe,CAAC,CAAC,CAAC,cAAc,EAAe,EAAK,IAAI,CAAC,UAAU,iBAAiB,mBAAmB,IAAI,OAAO,WAA4B,iBAAiB,SAAS,YAAY,QAAQ,EAAE,IAAI,8eAA8e,aAAa,WAAW,mBAAmB,GAAK,GAAGA,uBAAqB,CAAC,kBAAkB,CAAC,IAAI,miBAAmiB,aAAa,UAAU,CAAC,UAAU,CAAC,aAAa,UAAU,CAAC,CAAC,YAAY,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAG,CAAW,CAAC,kFAAkF,8EAA8E,iSAAiS,8FAA8F,yLAAyL,2WAA2W,CAS1/qB,eAAe,mBAAgB,gBAAgB,gBAAgB,YAAY,wBAAwB,gBAAgB,aAAa,CAAC,OAAO,GAAG,MAAM,GAAG,CAAC,oBAAoB,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,YAAY,YAAY,YAAY,YAAY,CAAC,aAAa,CAAC,SAAS,IAAI,UAAU,WAAW,YAAY,CAAC,MAAM,UAAU,KAAK,YAAY,KAAK,CAAC,UAAU,CAAC,MAAM,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,SAAS,gBAAgB,CAAC,CAAC,cAAc,GAAK,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,6BAA6B,GAAK,CAAC,6ICVrgB,CACxB,UAAY,oKACZ,gBAAkB,CAC3B,SAAU,WACV,MAAO,OACP,OAAQ,OACR,QAAS,OACT,eAAgB,SAChB,WAAY,SACf,CAGG,CADA,GAAG,gBACW,CAML,cAAgB,CACzB,QAAS,CACL,KAAM,YAAY,aACrB,CACD,aAAc,CACV,KAAM,YAAY,aACrB,CACD,aAAc,CACV,KAAM,YAAY,aACrB,CACJ,CAES,YAAY,OAOT,aAAe,CACxB,KAAM,CACF,KAAM,YAAY,QAClB,MAAO,OACP,aAAc,GACd,cAAe,UACf,aAAc,SACjB,CACD,WAAY,CACR,KAAM,YAAY,OAClB,MAAO,SACP,YAAa,QACb,QAAS,CAAE,QAAU,CAAC,KACzB,CACD,WAAY,CACR,KAAM,YAAY,KAClB,MAAO,SACP,QAAS,CACL,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACH,CACD,aAAc,CACV,OACA,cACA,QACA,UACA,SACA,YACA,OACA,aACA,QACH,CACD,QAAS,CAAE,QAAU,CAAC,KACzB,CACJ,0EC9EuD,sBACtB,ICM9B,SAAgB,YAAY,KAAM,CAClC,IAAM,IAAMwB,GAAO,KAAK,CAIxB,OAHI,IAAI,UAAY,OAChB,IAAI,QAAU,MAAM,EAEjB,IAAI,iEAZgB,6DCAA,8DCAM,gECAN,2DCAM,gFCAL,yDCAE,uBAE+F,gECF1E,uBACK,uBAEqE,mBAEJ,ICJkM,SAAgB,gBAAgB,MAAM,CAAC,GAAK,CAAC,WAAW,QAAQ,SAAS,GAAG,WAAW,IAAI,KAAK,IAAO,MAAY,eAAe,YAAY,YAAkB,gBAAgB,IAAI,WAAW,GAAG,eAAe,MAAM,WAAW,KAAK,YAAkB,gBAAgB,WAAW,CAAC,SAAS,WAAW,WAAW,gBAAgB,CAAC,CAAC,SAAS,WAAW,CAAO,iBAAiB,SAAS,CAAC,MAAM,UAAU,0BAA0B,CAAC,UAAU,aAAa,UAAU,WAAW,GAAG,iBAAiB,MAAM,WAAW,GAAG,eAAe,aAAa,GAAI,CAAC,CAAC,MAAM,GAAG,QAAQ,MAAM,EAAE,CAAC,EAA6E,OAA1E,OAAc,CAAI,MAAK,kBAAkB,EAAG,CAAC,KAAK,WAAW,WAAW,CAAC,CAAQ,0FAA56B,sBAA6B,iBAAoH,CAAM,YAAY,CAAC,IAAI,OAAO,IAAI,cAAc,IAAI,QAAQ,IAAI,UAAU,IAAI,SAAS,IAAI,YAAY,IAAI,OAAO,IAAI,aAAa,IAAI,QAAQ,6DCD9R,uBACM,gECDP,ICE/B,SAAgB,UAAU,MAAO,CAC7B,GAAM,CAAE,aAAe,oBAAsB,cAAgB,eAAiB,kBAAoB,kBAAwB,MAU1H,OAToBjF,OAAY,oBAAsB,GAAG,cAAc,KAAK,eAAe,KAAK,kBAAkB,KAAK,iBAAiB,IAAM,GAAG,aAAa,IAC5J,CACE,aACA,oBACA,cACA,eACA,kBACA,iBACH,CAAC,CA2BN,SAAgB,WAAW,MAAO,CAC9B,GAAM,CAAE,QAAU,eAAiB,WAAa,aAAe,cAAgB,aAAmB,MAUlG,OATqBA,OAAY,eAAiB,GAAG,WAAW,KAAK,aAAa,KAAK,cAAc,KAAK,YAAY,IAAM,QAC1H,CACE,QACA,eACA,WACA,aACA,cACA,YACH,CAAC,2FAjD0B,uBACK,CAcxB,oBAAsB,CAC/B,aAAc,CACV,MAAO,SACP,KAAM,YAAY,YAClB,UAAW,sBACX,aAAc,CACV,SACA,oBACH,CACD,UAAW,CACP,gBACA,iBACA,oBACA,mBACH,CACD,YAAa,CACT,KACA,KACA,KACA,KACH,CACD,IAAK,EACR,CACJ,CAcY,eAAiB,CAC1B,QAAS,CACL,KAAM,YAAY,YAClB,UAAW,iBACX,aAAc,CACV,UACA,mBACH,CACD,UAAW,CACP,aACA,eACA,gBACA,cACH,CACD,YAAa,CACT,IACA,IACA,IACA,IACH,CACD,IAAK,EACL,MAAO,UACV,CACJ,+DC3E4M,mCAAiJ,mBAAwH,sBAAgJ,uBAA4H,0BAA+I,oBAAgI,iBAA6H,mBAAyI,0BAA0Q,uBAAgI,uBAA6J,0BAAsI,iBAAkK,0ECAtiE,CACnB,cAAc,GAAG,aAAa,eCD8S,SAAgB,mBAAmB,WAAW,QAAQ,CAE/Y,IAAM,WAAWiF,GAAO,QAAQ,CAAOpD,YAAUoD,IAAQ,CAAO,gBAAgBA,GAAO,GAAM,CAAO,WAAW,aAAa,SAAS,GAAG,aAAa,OAC/I,aAAc,SAAgD,aAAc,QAAQ,aAAa,EAAE,CACnG,SAASxC,GAAY,SAAgD,SAAS,CAAC,GAAG,aAAc,CAAC,CACjG,YAAYA,GAAY,OAAO,CAAC,IAAI,IAAI,OAAY,WAAW,SAAyC,UAAW,WAAW,QAAQ,UAAU,MAAM,CAAC,OAAQ,EAAE,CAAC,CAClK,OAAO,gBAAgB,cAAc,WAAW,CAAC,WAAW,YAAY,YAAY,WAAW,CAAC,CAAC,CAIqG,OAH5M,OAAc,CAAC,GAAG,CAAC,cAAc,WAAW,EAAE,gBAAgB,QAAQ,CAAC,IAAI,IAAI,KAAK,IAAM,SAAS,YAAY,WAAW,CAE1H,IAF4H,IAAIZ,YAAU,UAAW,MAA0B,IAAI,MAAM,CACtL,UAAS,SAAS,SAAS,OAAO,CAC3B,WAAW,SAA2C,SAAU,CAAC,WAAW,CAAC,IAAI,KAC3F,YAAU,QAAQzB,SAAQ,OAAO,SAAe,WAAW,SAA2C,WAAW,MAAO,OAAO,IAAI,SAAS,CAAG,gBAAgB,QAAQ,IAAO,CAAC,WAAW,GAAG,aAAa,CAAC,CAAQ,8EAVnK,uBAAqD,qBAA4H,mBAAwH,yHCArV,QAAU,OAAO,WAAe,IAAc,WAAa,OAAO,KAAS,IAAc,KAAO,OAEhG,QAAU,EAAE,CACT,YAAc,QAAe,SAAU,KAAM,QAAS,CACvD,QACF,QAAU,QAAQ,KAAK,EAEvB,KAAK,OAAS,QAAQ,KAAK,CAC3B,KAAK,UAAY,KAAK,SAExB,QAAU,EAAE,CAAE,SAAU,SAAQ,CAQhC,IAAI,MAAQ,6BACR,aAAe,GACf,oBAAsB,QAQtB,gBAAkB,GAClB,kBACA,SAAW,iCAAiC,KAAK,UAAU,UAAU,CACrE,aAAe,EAAE,CACjB,MACA,MAAQ,KAAK,IACb,OAAS,KAAK,KACd,QAAU,KAAK,MACf,MAAQ,KAAK,IACb,MAAQ,KAAK,IACb,OAAS,EAAE,EAEd,UAAY,CACX,IAAI,cAAgB,2OAAgW,CAChX4J,IACA,IAAM,cAAc,OAExB,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,OAAO,cAAcA,MAAM,KAAK,cAAcA,SAE9C,CAEJ,SAAS,kBAAmB,CAC1B,MAAO,EAAE,CAGX,OAAO,OAAS,KAAK,OAErB,OAAO,IAAM,SAAU,IAAK,CAG1B,GAFa,OAAO,KAEL,UAAY,IAAI,OAAQ,CACrC,IAAI,OAAS,iBAAiB,IAAI,OAAO,CACrCA,IACA,IAAM,IAAI,OAEd,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,OAAOA,KAAK,KAAK,IAAI,IAAIA,KAAG,CAG9B,OAAO,OAGT,OAAO,KAAK,IAAI,IAAI,EAGtB,IAAI,qBAAuB,IACvB,UAAY,KAAK,GAAK,IACtB,YAAc,MAElB,SAAS,YAAY,KAAM,CACrB,MACM,KAAK,MAQjB,YAAY,GAAM,CAElB,SAAS,SAAS,QAAS,CACzB,QAAQ,MAAM,SAAW,WACzB,QAAQ,MAAM,IAAM,EACpB,QAAQ,MAAM,KAAO,EACrB,QAAQ,MAAM,QAAU,QACxB,QAAQ,MAAM,gBAAkB,MAChC,QAAQ,MAAM,sBAAwB,MACtC,QAAQ,MAAM,mBAAqB,UACnC,QAAQ,MAAM,yBAA2B,UACzC,QAAQ,MAAM,eAAiB,cAC/B,QAAQ,MAAM,qBAAuB,cACrC,QAAQ,MAAM,kBAAoB,cAGpC,SAAS,kBAAkB,KAAM,YAAa,UAAW,gBAAiB,CACxE,CAAC,MAAQ,SAAS,KAAO,KACzB,CAAC,MAAQ,SAAS,YAAc,YAChC,CAAC,MAAQ,SAAS,UAAY,UAC9B,CAAC,MAAQ,SAAS,UAAY,gBAAkB,EAAI,GAAK,EAG3D,SAAS,gBAAgB,KAAM,gBAAiB,CAC9C,CAAC,MAAQ,SAAS,KAAO,KACzB,CAAC,MAAQ,SAAS,UAAY,gBAAkB,EAAI,GAAK,EAG3D,SAAS,oBAAoB,KAAM,WAAY,YAAa,gBAAiB,CAC3E,CAAC,MAAQ,SAAS,KAAO,KACzB,CAAC,MAAQ,SAAS,YAAc,YAChC,CAAC,MAAQ,SAAS,WAAa,WAC/B,CAAC,MAAQ,SAAS,UAAY,gBAAkB,EAAI,GAAK,EAG3D,SAAS,oBAAoB,KAAM,WAAY,YAAa,CAC1D,CAAC,MAAQ,SAAS,KAAO,KACzB,CAAC,MAAQ,SAAS,WAAa,WAC/B,CAAC,MAAQ,SAAS,YAAc,YAGlC,SAAS,eAAe,KAAM,OAAQ,CACpC,CAAC,MAAQ,SAAS,KAAO,KACzB,CAAC,MAAQ,SAAS,OAAS,OAG7B,SAAS,wBAAwB,YAAa,YAAa,CACzD,CAAC,MAAQ,SAAS,KAAO,mBACzB,CAAC,MAAQ,SAAS,YAAc,YAChC,CAAC,MAAQ,SAAS,YAAc,YAGlC,SAAS,mBAAmB,YAAa,CACvC,CAAC,MAAQ,SAAS,KAAO,cACzB,CAAC,MAAQ,SAAS,YAAc,YAQlC,IAAI,gBAAkB,UAAY,CAChC,IAAI,OAAS,EACb,OAAO,UAAoB,CAEzB,MADA,SAAU,EACH,oBAAsB,UAE9B,CAEH,SAAS,SAAS,EAAG,EAAG,EAAG,CACzB,IAAI,EACA,EACA,EACAA,IAKA,KAAK,MAAM,EAAI,EAAE,CAJjB,EAKA,EAAI,EAAIA,IAJRE,IAKA,GAAK,EAAI,GAJT,EAKA,GAAK,EAAI,EAAI,GAJbO,IAKA,GAAK,GAAK,EAAI,GAAK,GAEvB,OAAQT,IAAI,EAAZ,CACE,IAAK,GACH,EAAI,EACJ,EAAIS,IACJ,EAAIP,IACJ,MAEF,IAAK,GACH,EAAI,EACJ,EAAI,EACJ,EAAIA,IACJ,MAEF,IAAK,GACH,EAAIA,IACJ,EAAI,EACJ,EAAIO,IACJ,MAEF,IAAK,GACH,EAAIP,IACJ,EAAI,EACJ,EAAI,EACJ,MAEF,IAAK,GACH,EAAIO,IACJ,EAAIP,IACJ,EAAI,EACJ,MAEF,IAAK,GACH,EAAI,EACJ,EAAIA,IACJ,EAAI,EACJ,MAEF,QACE,MAGJ,MAAO,CAAC,EAAG,EAAG,EAAE,CAGlB,SAAS,SAAS,EAAG,EAAG,EAAG,CACzB,IAAI,IAAM,KAAK,IAAI,EAAG,EAAG,EAAE,CACvB,IAAM,KAAK,IAAI,EAAG,EAAG,EAAE,CACvB,EAAI,IAAM,IACV,EACA,EAAI,MAAQ,EAAI,EAAI,EAAI,IACxB,EAAI,IAAM,IAEd,OAAQ,IAAR,CACE,KAAK,IACH,EAAI,EACJ,MAEF,KAAK,EACH,EAAI,EAAI,EAAI,GAAK,EAAI,EAAI,EAAI,GAC7B,GAAK,EAAI,EACT,MAEF,KAAK,EACH,EAAI,EAAI,EAAI,EAAI,EAChB,GAAK,EAAI,EACT,MAEF,KAAK,EACH,EAAI,EAAI,EAAI,EAAI,EAChB,GAAK,EAAI,EACT,MAEF,QACE,MAGJ,MAAO,CAAC,EAAG,EAAG,EAAE,CAGlB,SAAS,mBAAmB,MAAO,OAAQ,CACzC,IAAI,IAAM,SAAS,MAAM,GAAK,IAAK,MAAM,GAAK,IAAK,MAAM,GAAK,IAAI,CASlE,MARA,KAAI,IAAM,OAEN,IAAI,GAAK,EACX,IAAI,GAAK,EACA,IAAI,IAAM,IACnB,IAAI,GAAK,GAGJ,SAAS,IAAI,GAAI,IAAI,GAAI,IAAI,GAAG,CAGzC,SAAS,mBAAmB,MAAO,OAAQ,CACzC,IAAI,IAAM,SAAS,MAAM,GAAK,IAAK,MAAM,GAAK,IAAK,MAAM,GAAK,IAAI,CASlE,MARA,KAAI,IAAM,OAEN,IAAI,GAAK,EACX,IAAI,GAAK,EACA,IAAI,GAAK,IAClB,IAAI,GAAK,GAGJ,SAAS,IAAI,GAAI,IAAI,GAAI,IAAI,GAAG,CAGzC,SAAS,YAAY,MAAO,OAAQ,CAClC,IAAI,IAAM,SAAS,MAAM,GAAK,IAAK,MAAM,GAAK,IAAK,MAAM,GAAK,IAAI,CASlE,MARA,KAAI,IAAM,OAAS,IAEf,IAAI,GAAK,EACX,MAAI,GACK,IAAI,GAAK,IAClB,IAAI,IAAM,GAGL,SAAS,IAAI,GAAI,IAAI,GAAI,IAAI,GAAG,CAGzC,IAAI,SAAW,UAAY,CACzB,IAAI,SAAW,EAAE,CACbF,IACA,IAEJ,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,IAAMA,IAAE,SAAS,GAAG,CACpB,SAASA,KAAK,IAAI,SAAW,EAAI,IAAM,IAAM,IAG/C,OAAO,SAAU,EAAG,EAAG,EAAG,CAaxB,OAZI,EAAI,IACN,EAAI,GAGF,EAAI,IACN,EAAI,GAGF,EAAI,IACN,EAAI,GAGC,IAAM,SAAS,GAAK,SAAS,GAAK,SAAS,MAEnD,CAEH,SAAS,WAAY,EAErB,UAAU,UAAY,CACpB,aAAc,SAAU,UAAW,KAAM,CACvC,IAAK,MAAQ,SAAS,KAAK,WAGzB,IAAK,IAFD,KAAO,MAAQ,SAAS,KAAK,WAAW,OAEnCA,IAAI,EAAGA,IAAI,IAAK,KAAK,GAC3B,MAAQ,SAAS,KAAK,WAAWA,KAAG,KAAK,EAIhD,iBAAkB,SAAU,UAAW,SAAU,CAO/C,OANM,MAAQ,SAAS,KAAK,aAC1B,CAAC,MAAQ,SAAS,KAAK,WAAa,EAAE,GAGvC,MAAQ,SAAS,KAAK,WAAW,KAAK,SAAS,CAEzC,UAAY,CACjB,KAAK,oBAAoB,UAAW,SAAS,EAC7C,KAAK,MAAQ,QAAQ,EAEzB,oBAAqB,SAAU,UAAW,SAAU,CAClD,GAAI,CAAC,SACH,CAAC,MAAQ,SAAS,KAAK,WAAa,cAC1B,MAAQ,SAAS,KAAK,WAAY,CAI5C,IAHA,IAAIA,IAAI,EACJ,KAAO,MAAQ,SAAS,KAAK,WAAW,OAErCA,IAAI,MACJ,MAAQ,SAAS,KAAK,WAAWA,OAAO,YAC1C,MAAQ,SAAS,KAAK,WAAW,OAAOA,IAAG,EAAE,CAE9C,MACA,OAGF,KAAK,GAGD,MAAQ,SAAS,KAAK,WAAW,SACrC,CAAC,MAAQ,SAAS,KAAK,WAAa,QAI3C,CAGD,IAAI,iBAAmB,UAAY,CACjC,SAAS,mBAAmB,KAAM,IAAK,CACrC,IAAIA,IAAI,EACJ,IAAM,EAAE,CACR,MAEJ,OAAQ,KAAR,CACE,IAAK,QACL,IAAK,SACH,MAAQ,EACR,MAEF,QACE,MAAQ,IACR,MAGJ,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,IAAI,KAAK,MAAM,CAGjB,OAAO,IAGT,SAAS,wBAAwB,KAAM,IAAK,CAa1C,OAZI,OAAS,UACJ,IAAI,aAAa,IAAI,CAG1B,OAAS,QACJ,IAAI,WAAW,IAAI,CAGxB,OAAS,SACJ,IAAI,kBAAkB,IAAI,CAG5B,mBAAmB,KAAM,IAAI,CAOtC,OAJI,OAAO,mBAAsB,YAAc,OAAO,cAAiB,WAC9D,wBAGF,qBACN,CAEH,SAAS,iBAAiB,IAAK,CAC7B,OAAO,MAAM,MAAM,KAAM,CACvB,OAAQ,IACT,CAAC,CAOJ,SAAS,SAAS,KAAM,CAEtB,OAAO,SAAS,gBAAgB,MAAO,KAAK,CAK9C,SAAS,UAAU,KAAM,CAEvB,OAAO,SAAS,cAAc,KAAK,CAGrC,SAAS,0BAA2B,EAEpC,yBAAyB,UAAY,CACnC,mBAAoB,SAAU,KAAM,EAC7B,MAAQ,SAAS,kBAAkB,QAAQ,KAAK,GAAK,MACvD,MAAQ,SAAS,kBAAkB,KAAK,KAAK,EAE7C,MAAQ,SAAS,UAAU,mBAAmB,MAAQ,QAAQ,CAE/D,CAAC,MAAQ,SAAS,YAAc,KAGpC,yBAA0B,UAAY,CACpC,CAAC,MAAQ,SAAS,KAAO,GACzB,IAAIA,IACA,KAAO,MAAQ,SAAS,kBAAkB,OAE9C,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,GACvB,MAAQ,SAAS,kBAAkBA,KAAG,UAAU,EAE5C,MAAQ,SAAS,kBAAkBA,KAAG,OACzC,CAAC,MAAQ,SAAS,KAAO,KAI/B,6BAA8B,SAAU,UAAW,CACjD,CAAC,MAAQ,SAAS,UAAY,UAC9B,CAAC,MAAQ,SAAS,kBAAoB,EAAE,CACxC,CAAC,MAAQ,SAAS,KAAO,GACzB,CAAC,MAAQ,SAAS,YAAc,IAEnC,CAGD,IAAI,aAAe,UAAY,CAC7B,IAAI,eAAiB,CACnB,EAAG,cACH,EAAG,WACH,EAAG,SACH,EAAG,UACH,EAAG,SACH,EAAG,UACH,EAAG,cACH,EAAG,aACH,EAAG,aACH,EAAG,aACH,GAAI,aACJ,GAAI,YACJ,GAAI,MACJ,GAAI,aACJ,GAAI,QACJ,GAAI,aACL,CACD,OAAO,SAAU,KAAM,CACrB,OAAO,eAAe,OAAS,MAEhC,CAiCC,OAAS,UAAY,CACvB,IAAI,KAAO,KAAK,IACZ,KAAO,KAAK,IACZ,KAAO,KAAK,IACZ,KAAO,KAAK,MAEhB,SAAS,OAAQ,CAiBf,MAhBA,CAAC,MAAQ,SAAS,MAAM,GAAK,EAC7B,CAAC,MAAQ,SAAS,MAAM,GAAK,EAC7B,CAAC,MAAQ,SAAS,MAAM,GAAK,EAC7B,CAAC,MAAQ,SAAS,MAAM,GAAK,EAC7B,CAAC,MAAQ,SAAS,MAAM,GAAK,EAC7B,CAAC,MAAQ,SAAS,MAAM,GAAK,EAC7B,CAAC,MAAQ,SAAS,MAAM,GAAK,EAC7B,CAAC,MAAQ,SAAS,MAAM,GAAK,EAC7B,CAAC,MAAQ,SAAS,MAAM,GAAK,EAC7B,CAAC,MAAQ,SAAS,MAAM,GAAK,EAC7B,CAAC,MAAQ,SAAS,MAAM,IAAM,EAC9B,CAAC,MAAQ,SAAS,MAAM,IAAM,EAC9B,CAAC,MAAQ,SAAS,MAAM,IAAM,EAC9B,CAAC,MAAQ,SAAS,MAAM,IAAM,EAC9B,CAAC,MAAQ,SAAS,MAAM,IAAM,EAC9B,CAAC,MAAQ,SAAS,MAAM,IAAM,EACvB,MAAQ,QAGjB,SAAS,OAAO,MAAO,CACrB,GAAI,QAAU,EACZ,OAAO,MAAQ,QAGjB,IAAI,KAAO,KAAK,MAAM,CAElB,KAAO,KAAK,MAAM,CAEtB,OAAO,KAAK,GAAG,KAAM,CAAC,KAAM,EAAG,EAAG,KAAM,KAAM,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAE,CAG7E,SAAS,QAAQ,MAAO,CACtB,GAAI,QAAU,EACZ,OAAO,MAAQ,QAGjB,IAAI,KAAO,KAAK,MAAM,CAElB,KAAO,KAAK,MAAM,CAEtB,OAAO,KAAK,GAAG,EAAG,EAAG,EAAG,EAAG,EAAG,KAAM,CAAC,KAAM,EAAG,EAAG,KAAM,KAAM,EAAG,EAAG,EAAG,EAAG,EAAE,CAG7E,SAAS,QAAQ,MAAO,CACtB,GAAI,QAAU,EACZ,OAAO,MAAQ,QAGjB,IAAI,KAAO,KAAK,MAAM,CAElB,KAAO,KAAK,MAAM,CAEtB,OAAO,KAAK,GAAG,KAAM,EAAG,KAAM,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,KAAM,EAAG,KAAM,EAAG,EAAG,EAAG,EAAG,EAAE,CAG7E,SAAS,QAAQ,MAAO,CACtB,GAAI,QAAU,EACZ,OAAO,MAAQ,QAGjB,IAAI,KAAO,KAAK,MAAM,CAElB,KAAO,KAAK,MAAM,CAEtB,OAAO,KAAK,GAAG,KAAM,CAAC,KAAM,EAAG,EAAG,KAAM,KAAM,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAE,CAG7E,SAAS,MAAM,GAAI,GAAI,CACrB,OAAO,KAAK,GAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAE,CAGpC,SAAS,KAAK,GAAI,GAAI,CACpB,OAAO,KAAK,MAAM,KAAK,GAAG,CAAE,KAAK,GAAG,CAAC,CAGvC,SAAS,aAAa,GAAI,MAAO,CAC/B,IAAI,KAAO,KAAK,MAAM,CAElB,KAAO,KAAK,MAAM,CAEtB,OAAO,KAAK,GAAG,KAAM,KAAM,EAAG,EAAG,CAAC,KAAM,KAAM,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAE,CAAC,GAAG,EAAG,EAAG,EAAG,EAAG,KAAK,GAAG,CAAE,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAE,CAAC,GAAG,KAAM,CAAC,KAAM,EAAG,EAAG,KAAM,KAAM,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAE,CAGvM,SAAS,MAAM,GAAI,GAAI,GAAI,CASzB,MARI,CAAC,IAAM,KAAO,IAChB,GAAK,GAGH,KAAO,GAAK,KAAO,GAAK,KAAO,EAC1B,MAAQ,QAGV,KAAK,GAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAE,CAGnE,SAAS,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAG,EAAG,EAAG,IAAG,EAAG,EAAG,EAAG,IAAG,CAiBpE,MAhBA,CAAC,MAAQ,SAAS,MAAM,GAAK,EAC7B,CAAC,MAAQ,SAAS,MAAM,GAAK,EAC7B,CAAC,MAAQ,SAAS,MAAM,GAAK,EAC7B,CAAC,MAAQ,SAAS,MAAM,GAAK,EAC7B,CAAC,MAAQ,SAAS,MAAM,GAAK,EAC7B,CAAC,MAAQ,SAAS,MAAM,GAAK,EAC7B,CAAC,MAAQ,SAAS,MAAM,GAAK,EAC7B,CAAC,MAAQ,SAAS,MAAM,GAAK,EAC7B,CAAC,MAAQ,SAAS,MAAM,GAAKA,IAC7B,CAAC,MAAQ,SAAS,MAAM,GAAK,EAC7B,CAAC,MAAQ,SAAS,MAAM,IAAM,EAC9B,CAAC,MAAQ,SAAS,MAAM,IAAML,IAC9B,CAAC,MAAQ,SAAS,MAAM,IAAM,EAC9B,CAAC,MAAQ,SAAS,MAAM,IAAM,EAC9B,CAAC,MAAQ,SAAS,MAAM,IAAM,EAC9B,CAAC,MAAQ,SAAS,MAAM,IAAMO,IACvB,MAAQ,QAGjB,SAAS,UAAU,GAAI,GAAI,GAAI,CAO7B,MANA,MAAW,EAEP,KAAO,GAAK,KAAO,GAAK,KAAO,EAC1B,KAAK,GAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,EAAE,CAG5D,MAAQ,QAGjB,SAAS,UAAU,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,CACjF,IAAI,IAAM,MAAQ,SAAS,MAE3B,GAAI,KAAO,GAAK,KAAO,GAAK,KAAO,GAAK,KAAO,GAAK,KAAO,GAAK,KAAO,GAAK,KAAO,GAAK,KAAO,GAAK,KAAO,GAAK,KAAO,GAAK,KAAO,GAAK,KAAO,EAS7I,MANA,IAAG,IAAM,GAAG,IAAM,GAAK,GAAG,IAAM,GAChC,GAAG,IAAM,GAAG,IAAM,GAAK,GAAG,IAAM,GAChC,GAAG,IAAM,GAAG,IAAM,GAAK,GAAG,IAAM,GAChC,GAAG,KAAO,GAEV,CAAC,MAAQ,SAAS,oBAAsB,GACjC,MAAQ,QAGjB,IAAI,GAAK,GAAG,GACR,GAAK,GAAG,GACR,GAAK,GAAG,GACR,GAAK,GAAG,GACR,GAAK,GAAG,GACR,GAAK,GAAG,GACR,GAAK,GAAG,GACR,GAAK,GAAG,GACR,GAAK,GAAG,GACR,GAAK,GAAG,GACR,GAAK,GAAG,IACR,GAAK,GAAG,IACR,GAAK,GAAG,IACR,GAAK,GAAG,IACR,GAAK,GAAG,IACR,GAAK,GAAG,IAwBZ,MAjBA,IAAG,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAC3C,GAAG,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAC3C,GAAG,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAC3C,GAAG,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAC3C,GAAG,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAC3C,GAAG,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAC3C,GAAG,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAC3C,GAAG,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAC3C,GAAG,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAC3C,GAAG,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAC3C,GAAG,IAAM,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAC5C,GAAG,IAAM,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAC5C,GAAG,IAAM,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAC5C,GAAG,IAAM,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAC5C,GAAG,IAAM,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAC5C,GAAG,IAAM,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAC5C,CAAC,MAAQ,SAAS,oBAAsB,GACjC,MAAQ,QAGjB,SAAS,YAAa,CAMpB,OALM,MAAQ,SAAS,sBACrB,CAAC,MAAQ,SAAS,UAAY,GAAG,MAAQ,SAAS,MAAM,KAAO,IAAM,MAAQ,SAAS,MAAM,KAAO,IAAM,MAAQ,SAAS,MAAM,KAAO,IAAM,MAAQ,SAAS,MAAM,KAAO,IAAM,MAAQ,SAAS,MAAM,KAAO,IAAM,MAAQ,SAAS,MAAM,KAAO,IAAM,MAAQ,SAAS,MAAM,KAAO,IAAM,MAAQ,SAAS,MAAM,KAAO,IAAM,MAAQ,SAAS,MAAM,KAAO,IAAM,MAAQ,SAAS,MAAM,KAAO,IAAM,MAAQ,SAAS,MAAM,MAAQ,IAAM,MAAQ,SAAS,MAAM,MAAQ,IAAM,MAAQ,SAAS,MAAM,MAAQ,IAAM,MAAQ,SAAS,MAAM,MAAQ,IAAM,MAAQ,SAAS,MAAM,MAAQ,IAAM,MAAQ,SAAS,MAAM,MAAQ,GACjmB,CAAC,MAAQ,SAAS,oBAAsB,KAGlC,MAAQ,SAAS,UAG3B,SAAS,OAAO,KAAM,CAGpB,IAFA,IAAIF,IAAI,EAEDA,IAAI,IAAI,CACb,GAAI,KAAK,MAAMA,QAAQ,MAAQ,SAAS,MAAMA,KAC5C,MAAO,GAGT,KAAK,EAGP,MAAO,GAGT,SAAS,MAAM,KAAM,CACnB,IAAIA,IAEJ,IAAK,IAAI,EAAGA,IAAI,GAAI,KAAK,EACvB,KAAK,MAAMA,MAAM,MAAQ,SAAS,MAAMA,KAG1C,OAAO,KAGT,SAAS,eAAe,MAAO,CAC7B,IAAIA,IAEJ,IAAK,IAAI,EAAGA,IAAI,GAAI,KAAK,EACvB,CAAC,MAAQ,SAAS,MAAMA,KAAK,MAAMA,KAIvC,SAAS,aAAa,IAAG,EAAG,EAAG,CAC7B,MAAO,CACL,EAAGQ,KAAK,MAAQ,SAAS,MAAM,GAAK,GAAK,MAAQ,SAAS,MAAM,GAAK,GAAK,MAAQ,SAAS,MAAM,IAAM,MAAQ,SAAS,MAAM,IAC9H,EAAGA,KAAK,MAAQ,SAAS,MAAM,GAAK,GAAK,MAAQ,SAAS,MAAM,GAAK,GAAK,MAAQ,SAAS,MAAM,IAAM,MAAQ,SAAS,MAAM,IAC9H,EAAGA,KAAK,MAAQ,SAAS,MAAM,GAAK,GAAK,MAAQ,SAAS,MAAM,GAAK,GAAK,MAAQ,SAAS,MAAM,KAAO,MAAQ,SAAS,MAAM,IAChI,CAOH,SAAS,SAAS,IAAG,EAAG,EAAG,CACzB,OAAOA,KAAK,MAAQ,SAAS,MAAM,GAAK,GAAK,MAAQ,SAAS,MAAM,GAAK,GAAK,MAAQ,SAAS,MAAM,IAAM,MAAQ,SAAS,MAAM,IAGpI,SAAS,SAAS,IAAG,EAAG,EAAG,CACzB,OAAOA,KAAK,MAAQ,SAAS,MAAM,GAAK,GAAK,MAAQ,SAAS,MAAM,GAAK,GAAK,MAAQ,SAAS,MAAM,IAAM,MAAQ,SAAS,MAAM,IAGpI,SAAS,SAAS,IAAG,EAAG,EAAG,CACzB,OAAOA,KAAK,MAAQ,SAAS,MAAM,GAAK,GAAK,MAAQ,SAAS,MAAM,GAAK,GAAK,MAAQ,SAAS,MAAM,KAAO,MAAQ,SAAS,MAAM,IAGrI,SAAS,kBAAmB,CAC1B,IAAI,aAAe,MAAQ,SAAS,MAAM,IAAM,MAAQ,SAAS,MAAM,IAAM,MAAQ,SAAS,MAAM,IAAM,MAAQ,SAAS,MAAM,GAC7H,GAAK,MAAQ,SAAS,MAAM,GAAK,YACjC,EAAI,EAAE,MAAQ,SAAS,MAAM,GAAK,YAClC,EAAI,EAAE,MAAQ,SAAS,MAAM,GAAK,YAClC,GAAK,MAAQ,SAAS,MAAM,GAAK,YACjC,IAAM,MAAQ,SAAS,MAAM,IAAM,MAAQ,SAAS,MAAM,KAAO,MAAQ,SAAS,MAAM,IAAM,MAAQ,SAAS,MAAM,KAAO,YAC5H,EAAI,GAAG,MAAQ,SAAS,MAAM,IAAM,MAAQ,SAAS,MAAM,KAAO,MAAQ,SAAS,MAAM,IAAM,MAAQ,SAAS,MAAM,KAAO,YAC7H,cAAgB,IAAI,OAOxB,MANA,eAAc,MAAM,GAAK,EACzB,cAAc,MAAM,GAAK,EACzB,cAAc,MAAM,GAAK,EACzB,cAAc,MAAM,GAAK,EACzB,cAAc,MAAM,IAAM,EAC1B,cAAc,MAAM,IAAM,EACnB,cAGT,SAAS,aAAa,GAAI,CAExB,OADoB,KAAK,kBAAkB,CACtB,kBAAkB,GAAG,GAAI,GAAG,GAAI,GAAG,IAAM,EAAE,CAGlE,SAAS,cAAc,IAAK,CAC1B,IAAIR,IACA,IAAM,IAAI,OACV,OAAS,EAAE,CAEf,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,OAAOA,KAAK,aAAa,IAAIA,KAAG,CAGlC,OAAO,OAGT,SAAS,oBAAoB,IAAK,IAAK,IAAK,CAC1C,IAAI,IAAM,iBAAiB,UAAW,EAAE,CAExC,GAAI,KAAK,YAAY,CACnB,IAAI,GAAK,IAAI,GACb,IAAI,GAAK,IAAI,GACb,IAAI,GAAK,IAAI,GACb,IAAI,GAAK,IAAI,GACb,IAAI,GAAK,IAAI,GACb,IAAI,GAAK,IAAI,OACR,CACL,IAAI,IAAM,MAAQ,SAAS,MAAM,GAC7B,IAAM,MAAQ,SAAS,MAAM,GAC7B,IAAM,MAAQ,SAAS,MAAM,GAC7B,IAAM,MAAQ,SAAS,MAAM,GAC7B,KAAO,MAAQ,SAAS,MAAM,IAC9B,KAAO,MAAQ,SAAS,MAAM,IAClC,IAAI,GAAK,IAAI,GAAK,GAAK,IAAI,GAAK,GAAK,IACrC,IAAI,GAAK,IAAI,GAAK,GAAK,IAAI,GAAK,GAAK,IACrC,IAAI,GAAK,IAAI,GAAK,GAAK,IAAI,GAAK,GAAK,IACrC,IAAI,GAAK,IAAI,GAAK,GAAK,IAAI,GAAK,GAAK,IACrC,IAAI,GAAK,IAAI,GAAK,GAAK,IAAI,GAAK,GAAK,IACrC,IAAI,GAAK,IAAI,GAAK,GAAK,IAAI,GAAK,GAAK,IAGvC,OAAO,IAGT,SAAS,kBAAkB,IAAG,EAAG,EAAG,CASlC,OANI,KAAK,YAAY,CACb,CAACQ,IAAG,EAAG,EAAE,CAET,CAACA,KAAK,MAAQ,SAAS,MAAM,GAAK,GAAK,MAAQ,SAAS,MAAM,GAAK,GAAK,MAAQ,SAAS,MAAM,IAAM,MAAQ,SAAS,MAAM,IAAKA,KAAK,MAAQ,SAAS,MAAM,GAAK,GAAK,MAAQ,SAAS,MAAM,GAAK,GAAK,MAAQ,SAAS,MAAM,IAAM,MAAQ,SAAS,MAAM,IAAKA,KAAK,MAAQ,SAAS,MAAM,GAAK,GAAK,MAAQ,SAAS,MAAM,GAAK,GAAK,MAAQ,SAAS,MAAM,KAAO,MAAQ,SAAS,MAAM,IAAI,CAM3Y,SAAS,wBAAwB,IAAG,EAAG,CACrC,GAAI,KAAK,YAAY,CACnB,OAAOA,IAAI,IAAM,EAGnB,IAAI,IAAM,MAAQ,SAAS,MAC3B,OAAO,KAAK,OAAOA,IAAI,GAAG,GAAK,EAAI,GAAG,GAAK,GAAG,KAAO,IAAI,CAAG,IAAM,IAAM,KAAK,OAAOA,IAAI,GAAG,GAAK,EAAI,GAAG,GAAK,GAAG,KAAO,IAAI,CAAG,IAG/H,SAAS,OAAQ,CAWf,IALA,IAAIR,IAAI,EACJ,OAAS,MAAQ,SAAS,MAC1B,SAAW,YACX,EAAI,IAEDA,IAAI,IACT,UAAY,KAAK,MAAMA,KAAK,EAAE,CAAG,EACjC,UAAYA,MAAM,GAAK,IAAM,IAC7B,KAAK,EAGP,OAAO,SAGT,SAAS,oBAAoB,IAAK,CAChC,IAAI,EAAI,IAMR,OAJI,IAAM,MAAY,IAAM,GAAK,IAAM,OAAa,IAAM,EACjD,KAAK,IAAM,EAAE,CAAG,EAGlB,IAGT,SAAS,SAAU,CAMjB,IAAI,OAAS,MAAQ,SAAS,MAE1BG,KAAK,oBAAoB,MAAM,GAAG,CAElC,GAAK,oBAAoB,MAAM,GAAG,CAElC,GAAK,oBAAoB,MAAM,GAAG,CAElC,GAAK,oBAAoB,MAAM,GAAG,CAElC,GAAK,oBAAoB,MAAM,IAAI,CAEnC,GAAK,oBAAoB,MAAM,IAAI,CAEvC,MAAO,UAAYA,KAAK,IAAM,GAAK,IAAM,GAAK,IAAM,GAAK,IAAM,GAAK,IAAM,GAAK,IAGjF,OAAO,UAAY,CACjB,CAAC,MAAQ,SAAS,MAAQ,MAC1B,CAAC,MAAQ,SAAS,OAAS,OAC3B,CAAC,MAAQ,SAAS,QAAU,QAC5B,CAAC,MAAQ,SAAS,QAAU,QAC5B,CAAC,MAAQ,SAAS,QAAU,QAC5B,CAAC,MAAQ,SAAS,KAAO,KACzB,CAAC,MAAQ,SAAS,aAAe,aACjC,CAAC,MAAQ,SAAS,MAAQ,MAC1B,CAAC,MAAQ,SAAS,MAAQ,MAC1B,CAAC,MAAQ,SAAS,aAAe,aACjC,CAAC,MAAQ,SAAS,UAAY,UAC9B,CAAC,MAAQ,SAAS,UAAY,UAC9B,CAAC,MAAQ,SAAS,aAAe,aACjC,CAAC,MAAQ,SAAS,SAAW,SAC7B,CAAC,MAAQ,SAAS,SAAW,SAC7B,CAAC,MAAQ,SAAS,SAAW,SAC7B,CAAC,MAAQ,SAAS,kBAAoB,kBACtC,CAAC,MAAQ,SAAS,oBAAsB,oBACxC,CAAC,MAAQ,SAAS,wBAA0B,wBAC5C,CAAC,MAAQ,SAAS,MAAQ,MAC1B,CAAC,MAAQ,SAAS,QAAU,QAC5B,CAAC,MAAQ,SAAS,MAAQ,MAC1B,CAAC,MAAQ,SAAS,eAAiB,eACnC,CAAC,MAAQ,SAAS,OAAS,OAC3B,CAAC,MAAQ,SAAS,cAAgB,cAClC,CAAC,MAAQ,SAAS,aAAe,aACjC,CAAC,MAAQ,SAAS,iBAAmB,iBACrC,CAAC,MAAQ,SAAS,IAAM,MAAQ,SAAS,UACzC,CAAC,MAAQ,SAAS,WAAa,WAC/B,CAAC,MAAQ,SAAS,UAAY,GAC9B,CAAC,MAAQ,SAAS,oBAAsB,GACxC,CAAC,MAAQ,SAAS,MAAQ,iBAAiB,UAAW,GAAG,CACzD,KAAK,OAAO,IAEb,EA4BF,SAAU,KAAM,KAAM,CAIrB,IAAIxJ,SAAS,MAAQ,QACjB,MAAQ,IAEZ,OAAS,EAET,OAAS,GAET,QAAU,SAEV,WAAa,KAAK,IAAI,MAAO,OAAO,CAChC,aAAe,KAAK,IAAI,EAAG,OAAO,CAClC,SAAW,aAAe,EAC1B,KAAO,MAAQ,EACf,WAMJ,SAAS,WAAW,KAAM,QAAS,SAAU,CAC3C,IAAI,IAAM,EAAE,CACZ,QAAU,UAAY,GAAO,CAC3B,QAAS,GACV,CAAG,SAAW,EAAE,CAEjB,IAAI,UAAY,OAAOoG,UAAQ,QAAQ,QAAU,CAAC,KAAM,SAAS,KAAK,CAAC,CAAG,OAAS,KAAO,UAAU,CAAG,KAAM,EAAE,CAAE,IAAI,CAEjH,KAAO,IAAI,KAAK,IAAI,CAGpB,KAAO,UAAY,CAOrB,IANA,IAAI,EAAI,KAAK,EAAE,OAAO,CAEtB,EAAI,WAEJyD,IAAI,EAEG,EAAI,cAET,GAAK,EAAIA,KAAK,MAEd,GAAK,MAEL,IAAI,KAAK,EAAE,EAAE,CAGf,KAAO,GAAK,UAEV,GAAK,EAEL,GAAK,EAEL,OAAO,EAGT,OAAQ,EAAIA,KAAK,GAenB,MAZA,MAAK,MAAQ,UAAY,CACvB,OAAO,KAAK,EAAE,EAAE,CAAG,GAGrB,KAAK,MAAQ,UAAY,CACvB,OAAO,KAAK,EAAE,EAAE,CAAG,YAGrB,KAAK,OAAS,KAEd,OAAO,SAAS,KAAK,EAAE,CAAE,KAAK,EAEtB,QAAQ,MAAQ,UAAY,SAAU,OAAM,OAAM,aAAc,MAAO,CAoBxE,OAnBD,QAEE,MAAM,GACR,KAAK,MAAO,KAAK,CAInB,OAAK,MAAQ,UAAY,CACvB,OAAO,KAAK,KAAM,EAAE,CAAC,GAMrB,cACF,KAAK,SAAW3J,OACTC,QAGGD,SACX,KAAM,UAAW,WAAY,QAAU,QAAQ,QAAU,MAAQ,UAAY,KAAM,QAAQ,MAAM,CAGtG,KAAK,OAAS,SAAW,WAWzB,SAAS,KAAK,IAAK,CACjB,IAAI4J,IACA,OAAS,IAAI,OACb,GAAK,MAAQ,QACbT,IAAI,EACJ,EAAI,GAAG,EAAI,GAAG,EAAI,EAClB,EAAI,GAAG,EAAI,EAAE,CAOjB,IALK,SACH,IAAM,CAAC,SAAS,EAIXA,IAAI,OACT,EAAEA,KAAK,MAGT,IAAK,IAAI,EAAGA,IAAI,MAAO,MACrB,EAAEA,KAAK,EAAE,EAAI,KAAO,EAAI,IAAIA,IAAI,SAAW,IAAI,EAAEA,OACjD,EAAE,GAAKS,IAIT,GAAG,EAAI,SAAU,MAAO,CAQtB,IANA,IAAIA,IACA,EAAI,EACJT,IAAI,GAAG,EACPjJ,IAAI,GAAG,EACPC,IAAI,GAAG,EAEJ,SACL,IAAIA,IAAE,IAAI,KAAOgJ,IAAI,GACrB,EAAI,EAAI,MAAQhJ,IAAE,MAAQ,IAAEgJ,KAAKhJ,IAAE,IAAI,KAAOD,IAAI0J,OAAO,IAAE1J,KAAK0J,MAKlE,MAFA,IAAG,EAAIT,IACP,GAAG,EAAIjJ,IACA,GAUX,SAAS,KAAK,EAAG,IAAG,CAIlB,MAHA,KAAE,EAAI,EAAE,EACR,IAAE,EAAI,EAAE,EACR,IAAE,EAAI,EAAE,EAAE,OAAO,CACV0J,IAOT,SAAS1D,UAAQ,IAAK,MAAO,CAC3B,IAAI,OAAS,EAAE,CACX,IAAM,OAAO,IACb,KAEJ,GAAI,OAAS,KAAO,SAClB,IAAK,QAAQ,IACX,GAAI,CACF,OAAO,KAAKA,UAAQ,IAAI,MAAO,MAAQ,EAAE,CAAC,MAChC,EAIhB,OAAO,OAAO,OAAS,OAAS,KAAO,SAAW,IAAM,IAAM,KAQhE,SAAS,OAAO,KAAM,IAAK,CAKzB,IAJA,IAAI,WAAa,KAAO,GACpB,MACA,EAAI,EAED,EAAI,WAAW,QACpB,IAAI,KAAO,GAAK,MAAQ,OAAS,IAAI,KAAO,GAAK,IAAM,WAAW,WAAW,IAAI,CAGnF,OAAO,SAAS,IAAI,CAQtB,SAAS,UAAW,CAClB,GAAI,CACF,GAAI,WACF,OAAO,SAAS,WAAW,YAAY,MAAM,CAAC,CAGhD,IAAI,IAAM,IAAI,WAAW,MAAM,CAE/B,OADCpG,SAAO,QAAUA,SAAO,UAAU,gBAAgB,IAAI,CAChD,SAAS,IAAI,MACV,CACV,IAAIM,UAAUN,SAAO,UACjB,QAAUM,WAAWA,UAAQ,QACjC,MAAO,CAAC,CAAC,IAAI,KAAQN,SAAQ,QAASA,SAAO,OAAQ,SAAS,KAAK,CAAC,EAQxE,SAAS,SAAS,EAAG,CACnB,OAAO,OAAO,aAAa,MAAM,EAAG,EAAE,CAUxC,OAAO,KAAK,QAAQ,CAAE,KAAK,GAK1B,EAAE,CACL,OACC,CAID,IAAI,cAAgB,UAAY,CAW9B,IAAI,GAAK,EAAE,CACX,GAAG,gBAAkB,gBACrB,IAAI,QAAU,EAAE,CAEhB,SAAS,gBAAgB,EAAG,EAAG,EAAG,EAAG,GAAI,CACvC,IAAI,IAAM,KAAO,OAAS,EAAI,IAAM,EAAI,IAAM,EAAI,IAAM,GAAG,QAAQ,MAAO,IAAI,CAE9E,GAAI,QAAQ,KACV,OAAO,QAAQ,KAGjB,IAAI,UAAY,IAAI,aAAa,CAAC,EAAG,EAAG,EAAG,EAAE,CAAC,CAE9C,MADA,SAAQ,KAAO,UACR,UAIT,IAAI,kBAAoB,EACpB,iBAAmB,KACnB,sBAAwB,KACxB,2BAA6B,GAC7B,iBAAmB,GACnB,gBAAkB,GAAK,iBAAmB,GAC1C,sBAAwB,OAAO,cAAiB,WAEpD,SAAS,EAAE,IAAK,IAAK,CACnB,MAAO,GAAI,EAAI,IAAM,EAAI,IAG3B,SAAS,EAAE,IAAK,IAAK,CACnB,MAAO,GAAI,IAAM,EAAI,IAGvB,SAAS6G,IAAE,IAAK,CACd,MAAO,GAAI,IAIb,SAAS,WAAW,GAAI,IAAK,IAAK,CAChC,QAAS,EAAE,IAAK,IAAI,CAAG,GAAK,EAAE,IAAK,IAAI,EAAI,GAAKA,IAAE,IAAI,EAAI,GAI5D,SAAS,SAAS,GAAI,IAAK,IAAK,CAC9B,MAAO,GAAI,EAAE,IAAK,IAAI,CAAG,GAAK,GAAK,EAAI,EAAE,IAAK,IAAI,CAAG,GAAKA,IAAE,IAAI,CAGlE,SAAS,gBAAgB,GAAI,GAAI,GAAI,IAAK,IAAK,CAC7C,IAAI,SACA,SACAwC,IAAI,EAER,EACE,UAAW,IAAM,GAAK,IAAM,EAC5B,SAAW,WAAW,SAAU,IAAK,IAAI,CAAG,GAExC,SAAW,EACb,GAAK,SAEL,GAAK,eAEA,KAAK,IAAI,SAAS,CAAG,uBAAyB,EAAEA,IAAI,4BAE7D,OAAO,SAGT,SAAS,qBAAqB,GAAI,QAAS,IAAK,IAAK,CACnD,IAAK,IAAIA,IAAI,EAAGA,IAAI,kBAAmB,EAAEA,IAAG,CAC1C,IAAI,aAAe,SAAS,QAAS,IAAK,IAAI,CAC9C,GAAI,eAAiB,EAAG,OAAO,QAC/B,IAAI,SAAW,WAAW,QAAS,IAAK,IAAI,CAAG,GAC/C,SAAW,SAAW,aAGxB,OAAO,QAOT,SAAS,aAAa,OAAQ,CAC5B,CAAC,MAAQ,SAAS,GAAK,OACvB,CAAC,MAAQ,SAAS,eAAiB,sBAAwB,IAAI,aAAa,iBAAiB,CAAO,MAAM,iBAAiB,CAC3H,CAAC,MAAQ,SAAS,aAAe,GACjC,CAAC,MAAQ,SAAS,KAAO,MAAQ,SAAS,IAAI,KAAK,MAAQ,QAAQ,CAsErE,MAnEA,cAAa,UAAY,CACvB,IAAK,SAAU,IAAG,CAChB,IAAI,KAAO,MAAQ,SAAS,GAAG,GAC3B,KAAO,MAAQ,SAAS,GAAG,GAC3B,KAAO,MAAQ,SAAS,GAAG,GAC3B,KAAO,MAAQ,SAAS,GAAG,GAO/B,OANM,MAAQ,SAAS,cAAc,KAAK,aAAa,CACnD,MAAQ,KAAO,MAAQ,IAAYQ,IAGnCA,MAAM,EAAU,EAChBA,MAAM,EAAU,EACb,WAAW,KAAK,UAAUA,IAAE,CAAE,IAAK,IAAI,EAGhD,YAAa,UAAY,CACvB,IAAI,KAAO,MAAQ,SAAS,GAAG,GAC3B,KAAO,MAAQ,SAAS,GAAG,GAC3B,KAAO,MAAQ,SAAS,GAAG,GAC3B,KAAO,MAAQ,SAAS,GAAG,GAC/B,CAAC,MAAQ,SAAS,aAAe,IAE7B,MAAQ,KAAO,MAAQ,MACzB,KAAK,mBAAmB,EAG5B,kBAAmB,UAAY,CAI7B,IAAK,IAHD,KAAO,MAAQ,SAAS,GAAG,GAC3B,KAAO,MAAQ,SAAS,GAAG,GAEtBR,IAAI,EAAGA,IAAI,iBAAkB,EAAEA,IACtC,CAAC,MAAQ,SAAS,eAAeA,KAAK,WAAWA,IAAI,gBAAiB,IAAK,IAAI,EAOnF,UAAW,SAAU,GAAI,CAQvB,IAPA,IAAI,KAAO,MAAQ,SAAS,GAAG,GAC3B,KAAO,MAAQ,SAAS,GAAG,GAC3B,eAAiB,MAAQ,SAAS,eAClC,cAAgB,EAChB,cAAgB,EAChB,WAAa,iBAAmB,EAE7B,gBAAkB,YAAc,cAAc,gBAAkB,GAAI,EAAE,cAC3E,eAAiB,gBAGnB,EAAE,cAEF,IAAI,MAAQ,GAAK,cAAc,iBAAmB,cAAc,cAAgB,GAAK,cAAc,gBAC/F,UAAY,cAAgB,KAAO,gBACnC,aAAe,SAAS,UAAW,IAAK,IAAI,CAUhD,OARI,cAAgB,iBACX,qBAAqB,GAAI,UAAW,IAAK,IAAI,CAGlD,eAAiB,EACZ,UAGF,gBAAgB,GAAI,cAAe,cAAgB,gBAAiB,IAAK,IAAI,EAEvF,CACM,KACN,EAEF,UAAY,CAIX,IAAK,IAHD,SAAW,EACX,QAAU,CAAC,KAAM,MAAO,SAAU,IAAI,CAEjCQ,IAAI,EAAGA,IAAI,QAAQ,QAAU,CAACrJ,SAAO,sBAAuB,EAAEqJ,IAErE,SAAO,sBAAwBrJ,SAAO,QAAQqJ,KAAK,yBACnD,SAAO,qBAAuBrJ,SAAO,QAAQqJ,KAAK,yBAA2BrJ,SAAO,QAAQqJ,KAAK,+BAGnG,AACE,SAAO,wBAAwB,SAAU,SAAU,CACjD,IAAI,SAAW,IAAI,MAAM,CAAC,SAAS,CAC/B,WAAa,KAAK,IAAI,EAAG,IAAM,SAAW,UAAU,CACpDd,KAAK,WAAW,UAAY,CAC9B,SAAS,SAAW,WAAW,EAC9B,WAAW,CAEd,MADA,UAAW,SAAW,WACfA,MAIX,AACE,SAAO,uBAAuB,SAAU,KAAI,CAC1C,aAAaA,KAAG,KAGlB,CAIJ,SAAS,gBAAgB,QAAS,YAAa,CAC7C,IAAIM,IACA,IAAM,QAAQ,OACd,gBAEJ,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EAGxB,IAAK,IAAI,OAFT,iBAAkB,QAAQA,KAAG,UAEZ,gBACX,OAAO,UAAU,eAAe,KAAK,gBAAiB,KAAK,GAAE,YAAY,UAAU,MAAQ,gBAAgB,OAKrH,SAAS,cAAc,OAAQ,KAAM,CACnC,OAAO,OAAO,yBAAyB,OAAQ,KAAK,CAGtD,SAAS,oBAAoB,UAAW,CACtC,SAAS,eAAgB,EAGzB,MADA,eAAc,UAAY,UACnB,cAOT,SAAS,aAAc,CACrB,IAAI,KAAO,KAEX,SAAS,cAAc,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,CAC7C,IAAI,KAAO,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAClE,OAAO,KAAO,OAAU,KAAO,KAGjC,SAAS,cAAc,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,CACzD,GAAI,KAAO,GAAK,KAAO,GAAK,KAAO,EACjC,OAAO,cAAc,GAAI,GAAI,GAAI,GAAI,GAAI,GAAG,CAG9C,IAAI,MAAQ,KAAK,KAAK,KAAK,IAAI,GAAK,GAAI,EAAE,CAAG,KAAK,IAAI,GAAK,GAAI,EAAE,CAAG,KAAK,IAAI,GAAK,GAAI,EAAE,CAAC,CACrF,MAAQ,KAAK,KAAK,KAAK,IAAI,GAAK,GAAI,EAAE,CAAG,KAAK,IAAI,GAAK,GAAI,EAAE,CAAG,KAAK,IAAI,GAAK,GAAI,EAAE,CAAC,CACrF,MAAQ,KAAK,KAAK,KAAK,IAAI,GAAK,GAAI,EAAE,CAAG,KAAK,IAAI,GAAK,GAAI,EAAE,CAAG,KAAK,IAAI,GAAK,GAAI,EAAE,CAAC,CACrF,SAEA,MAAQ,MACN,MAAQ,MACC,MAAQ,MAAQ,MAEhB,MAAQ,MAAQ,MAEpB,MAAQ,MACN,MAAQ,MAAQ,MAEhB,MAAQ,MAAQ,MAG7B,OAAO,SAAW,OAAW,SAAW,KAG1C,IAAI,gBAAkB,UAAY,CAChC,OAAO,SAAU,IAAK,IAAK,IAAK,IAAK,CACnC,IAAI,cAAgB,qBAChB,EACAA,IACA,IACA,QACA,KACA,YAAc,EACd,WACA,MAAQ,EAAE,CACV,UAAY,EAAE,CACd,WAAa,iBAAiB,YAAY,CAG9C,IAFA,IAAM,IAAI,OAEL,EAAI,EAAG,EAAI,cAAe,GAAK,EAAG,CAIrC,IAHA,KAAO,GAAK,cAAgB,GAC5B,WAAa,EAER,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,QAAU,MAAM,EAAI,KAAM,EAAE,CAAG,IAAIA,KAAK,EAAI,MAAM,EAAI,KAAM,EAAE,CAAG,KAAO,IAAIA,KAAK,GAAK,EAAI,MAAQ,MAAM,KAAM,EAAE,CAAG,IAAIA,KAAK,MAAM,KAAM,EAAE,CAAG,IAAIA,KACjJ,MAAMA,KAAK,QAEP,UAAUA,OAAO,OACnB,YAAc,MAAM,MAAMA,KAAK,UAAUA,KAAI,EAAE,EAGjD,UAAUA,KAAK,MAAMA,KAGnB,aACF,WAAa,OAAO,WAAW,CAC/B,aAAe,YAGjB,WAAW,SAAS,GAAK,KACzB,WAAW,QAAQ,GAAK,YAI1B,MADA,YAAW,YAAc,YAClB,cAER,CAEH,SAAS,kBAAkB,UAAW,CACpC,IAAI,eAAiB,mBAAmB,YAAY,CAChD,OAAS,UAAU,EACnB,MAAQ,UAAU,EAClB,MAAQ,UAAU,EAClB,MAAQ,UAAU,EAClBA,IACA,IAAM,UAAU,QAChB,QAAU,eAAe,QACzB,YAAc,EAElB,IAAK,IAAI,EAAGA,IAAI,IAAM,EAAG,KAAK,EAC5B,QAAQA,KAAK,gBAAgB,MAAMA,KAAI,MAAMA,IAAI,GAAI,MAAMA,KAAI,MAAMA,IAAI,GAAG,CAC5E,aAAe,QAAQA,KAAG,YAS5B,OANI,QAAU,MACZ,QAAQA,KAAK,gBAAgB,MAAMA,KAAI,MAAM,GAAI,MAAMA,KAAI,MAAM,GAAG,CACpE,aAAe,QAAQA,KAAG,aAG5B,eAAe,YAAc,YACtB,eAGT,SAAS,WAAW,OAAQ,CAC1B,CAAC,MAAQ,SAAS,cAAgB,EAClC,CAAC,MAAQ,SAAS,OAAa,MAAM,OAAO,CAG9C,SAAS,UAAU,QAAS,MAAO,CACjC,CAAC,MAAQ,SAAS,cAAgB,QAClC,CAAC,MAAQ,SAAS,MAAQ,MAG5B,IAAI,gBAAkB,UAAY,CAChC,IAAI,WAAa,EAAE,CACnB,OAAO,SAAU,IAAK,IAAK,IAAK,IAAK,CACnC,IAAI,YAAc,IAAI,GAAK,IAAM,IAAI,GAAK,IAAM,IAAI,GAAK,IAAM,IAAI,GAAK,IAAM,IAAI,GAAK,IAAM,IAAI,GAAK,IAAM,IAAI,GAAK,IAAM,IAAI,IAAI,QAAQ,MAAO,IAAI,CAEtJ,GAAI,CAAC,WAAW,YAAa,CAC3B,IAAI,cAAgB,qBAChB,EACAA,IACA,IACA,QACA,KACA,YAAc,EACd,WACA,MACA,UAAY,KAEZ,IAAI,SAAW,IAAM,IAAI,KAAO,IAAI,IAAM,IAAI,KAAO,IAAI,KAAO,cAAc,IAAI,GAAI,IAAI,GAAI,IAAI,GAAI,IAAI,GAAI,IAAI,GAAK,IAAI,GAAI,IAAI,GAAK,IAAI,GAAG,EAAI,cAAc,IAAI,GAAI,IAAI,GAAI,IAAI,GAAI,IAAI,GAAI,IAAI,GAAK,IAAI,GAAI,IAAI,GAAK,IAAI,GAAG,GACpO,cAAgB,GAGlB,IAAI,WAAa,IAAI,WAAW,cAAc,CAG9C,IAFA,IAAM,IAAI,OAEL,EAAI,EAAG,EAAI,cAAe,GAAK,EAAG,CAKrC,IAJA,MAAQ,iBAAiB,IAAI,CAC7B,KAAO,GAAK,cAAgB,GAC5B,WAAa,EAER,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,QAAU,MAAM,EAAI,KAAM,EAAE,CAAG,IAAIA,KAAK,EAAI,MAAM,EAAI,KAAM,EAAE,CAAG,MAAQ,IAAIA,KAAK,IAAIA,MAAM,GAAK,EAAI,MAAQ,MAAM,KAAM,EAAE,EAAI,IAAIA,KAAK,IAAIA,MAAM,MAAM,KAAM,EAAE,CAAG,IAAIA,KACvK,MAAMA,KAAK,QAEP,YAAc,OAChB,YAAc,MAAM,MAAMA,KAAK,UAAUA,KAAI,EAAE,EAInD,WAAa,OAAO,WAAW,CAC/B,aAAe,WACf,WAAW,OAAO,GAAK,IAAI,UAAU,WAAY,MAAM,CACvD,UAAY,MAGd,WAAW,cAAgB,YAC3B,WAAW,YAAc,WAG3B,OAAO,WAAW,eAEnB,CAEH,SAAS,gBAAgB,KAAM,WAAY,CACzC,IAAI,SAAW,WAAW,SACtB,QAAU,WAAW,QACrB,IAAM,SAAS,OACf,QAAU,SAAS,IAAM,GAAK,KAAK,CACnC,UAAY,KAAO,WAAW,YAC9B,MAAQ,EAEZ,GAAI,UAAY,IAAM,GAAK,UAAY,GAAK,YAAc,QAAQ,SAChE,OAAO,SAAS,SAMlB,IAHA,IAAI,IAAM,QAAQ,SAAW,UAAY,GAAK,EAC1C,KAAO,GAEJ,MAQL,GAPI,QAAQ,UAAY,WAAa,QAAQ,QAAU,GAAK,WAC1D,OAAS,UAAY,QAAQ,WAAa,QAAQ,QAAU,GAAK,QAAQ,UACzE,KAAO,IAEP,SAAW,IAGT,QAAU,GAAK,SAAW,IAAM,EAAG,CAErC,GAAI,UAAY,IAAM,EACpB,OAAO,SAAS,SAGlB,KAAO,GAIX,OAAO,SAAS,UAAY,SAAS,QAAU,GAAK,SAAS,UAAY,MAG3E,SAAS,kBAAkB,IAAK,IAAK,IAAK,IAAK,QAAS,WAAY,CAClE,IAAI,GAAK,gBAAgB,QAAS,WAAW,CACzC,GAAK,EAAI,GACT,IAAM,KAAK,OAAO,GAAK,GAAK,GAAK,IAAI,IAAM,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,IAAM,IAAI,IAAM,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,IAAM,IAAI,GAAK,GAAK,GAAK,GAAK,IAAI,IAAM,IAAK,CAAG,IAC3L,IAAM,KAAK,OAAO,GAAK,GAAK,GAAK,IAAI,IAAM,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,IAAM,IAAI,IAAM,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,IAAM,IAAI,GAAK,GAAK,GAAK,GAAK,IAAI,IAAM,IAAK,CAAG,IAC/L,MAAO,CAAC,IAAK,IAAI,CAGnB,IAAI,oBAAsB,iBAAiB,UAAW,EAAE,CAExD,SAAS,cAAc,IAAK,IAAK,IAAK,IAAK,UAAW,QAAS,WAAY,CACrE,UAAY,EACd,UAAY,EACH,UAAY,IACrB,UAAY,GAGd,IAAI,GAAK,gBAAgB,UAAW,WAAW,CAC/C,QAAU,QAAU,EAAI,EAAI,QAC5B,IAAI,GAAK,gBAAgB,QAAS,WAAW,CACzCA,IACA,IAAM,IAAI,OACV,GAAK,EAAI,GACT,GAAK,EAAI,GACT,OAAS,GAAK,GAAK,GACnB,SAAW,GAAK,GAAK,GAAK,EAE1B,SAAW,GAAK,GAAK,GAAK,EAE1B,OAAS,GAAK,GAAK,GAEnB,OAAS,GAAK,GAAK,GACnB,SAAW,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAEnD,SAAW,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAEnD,OAAS,GAAK,GAAK,GAEnB,OAAS,GAAK,GAAK,GACnB,SAAW,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAEnD,SAAW,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAEnD,OAAS,GAAK,GAAK,GAEnB,OAAS,GAAK,GAAK,GACnB,SAAW,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAEnD,SAAW,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAEnD,OAAS,GAAK,GAAK,GAEvB,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,oBAAoBA,IAAI,GAAK,KAAK,OAAO,OAAS,IAAIA,KAAK,SAAW,IAAIA,KAAK,SAAW,IAAIA,KAAK,OAAS,IAAIA,MAAM,IAAK,CAAG,IAE9H,oBAAoBA,IAAI,EAAI,GAAK,KAAK,OAAO,OAAS,IAAIA,KAAK,SAAW,IAAIA,KAAK,SAAW,IAAIA,KAAK,OAAS,IAAIA,MAAM,IAAK,CAAG,IAElI,oBAAoBA,IAAI,EAAI,GAAK,KAAK,OAAO,OAAS,IAAIA,KAAK,SAAW,IAAIA,KAAK,SAAW,IAAIA,KAAK,OAAS,IAAIA,MAAM,IAAK,CAAG,IAElI,oBAAoBA,IAAI,EAAI,GAAK,KAAK,OAAO,OAAS,IAAIA,KAAK,SAAW,IAAIA,KAAK,SAAW,IAAIA,KAAK,OAAS,IAAIA,MAAM,IAAK,CAAG,IAGpI,OAAO,oBAGT,MAAO,CACc,kBACJ,cACI,kBACF,gBACF,cACA,cAChB,CAGH,IAAI,IAAM,aAAa,CAGvB,SAAS,qBAAsB,CAE7B,SAAS,eAAe,OAAQ,MAAO,YAAa,CAClD,IAAI,UACAA,IACA,IAAM,OAAO,OACb,EACA,KACA,EACA,KAEJ,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EAGxB,GAFA,UAAY,OAAOA,KAEf,OAAQ,WAAa,CAAC,UAAU,UAAW,CAO7C,GANA,UAAU,UAAY,GAElB,UAAU,KACZ,OAAOA,IAAI,GAAG,GAAK,UAAU,IAG3B,UAAU,QAAS,CACrB,IAAI,UAAY,UAAU,gBAG1B,IAFA,KAAO,UAAU,OAEZ,EAAI,EAAG,EAAI,KAAM,GAAK,EACzB,GAAI,UAAU,GAAG,GAAG,EAAE,EACpB,6BAA6B,UAAU,GAAG,GAAG,EAAE,MAI/C,IAFA,KAAO,UAAU,GAAG,GAAG,EAAE,OAEpB,EAAI,EAAG,EAAI,KAAM,GAAK,EACrB,UAAU,GAAG,GAAG,EAAE,GAAG,GACvB,6BAA6B,UAAU,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,CAGrD,UAAU,GAAG,GAAG,EAAE,GAAG,GACvB,6BAA6B,UAAU,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,CAO7D,UAAU,KAAO,GACnB,UAAU,OAAS,eAAe,UAAU,MAAO,MAAM,CACzD,eAAe,UAAU,OAAQ,MAAO,YAAY,EAC3C,UAAU,KAAO,EAC1B,eAAe,UAAU,OAAO,CACvB,UAAU,KAAO,GAC1B,aAAa,UAAW,YAAY,EAM5C,SAAS,eAAe,KAAI,MAAO,CAIjC,IAHA,IAAIA,IAAI,EACJ,IAAM,MAAM,OAETA,IAAI,KAAK,CACd,GAAI,MAAMA,KAAG,KAAON,KAMlB,OALK,MAAMM,KAAG,OAAO,OAKd,KAAK,MAAM,KAAK,UAAU,MAAMA,KAAG,OAAO,CAAC,EAJhD,MAAMA,KAAG,OAAO,OAAS,GAClB,MAAMA,KAAG,QAMpB,KAAK,EAGP,OAAO,KAGT,SAAS,eAAe,IAAK,CAC3B,IAAIA,IACA,IAAM,IAAI,OACV,EACA,KAEJ,IAAK,IAAI,IAAM,EAAGA,KAAK,EAAG,MACxB,GAAI,IAAIA,KAAG,KAAO,KAChB,GAAI,IAAIA,KAAG,GAAG,EAAE,EACd,6BAA6B,IAAIA,KAAG,GAAG,EAAE,MAIzC,IAFA,KAAO,IAAIA,KAAG,GAAG,EAAE,OAEd,EAAI,EAAG,EAAI,KAAM,GAAK,EACrB,IAAIA,KAAG,GAAG,EAAE,GAAG,GACjB,6BAA6B,IAAIA,KAAG,GAAG,EAAE,GAAG,EAAE,GAAG,CAG/C,IAAIA,KAAG,GAAG,EAAE,GAAG,GACjB,6BAA6B,IAAIA,KAAG,GAAG,EAAE,GAAG,EAAE,GAAG,MAI9C,IAAIA,KAAG,KAAO,MACvB,eAAe,IAAIA,KAAG,GAAG,CAK/B,SAAS,6BAA6B,KAAM,CAC1C,IAAIA,IACA,IAAM,KAAK,EAAE,OAEjB,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,KAAK,EAAEA,KAAG,IAAM,KAAK,EAAEA,KAAG,GAC1B,KAAK,EAAEA,KAAG,IAAM,KAAK,EAAEA,KAAG,GAC1B,KAAK,EAAEA,KAAG,IAAM,KAAK,EAAEA,KAAG,GAC1B,KAAK,EAAEA,KAAG,IAAM,KAAK,EAAEA,KAAG,GAI9B,SAAS,aAAa,QAAS,kBAAmB,CAChD,IAAI,YAAc,kBAAoB,kBAAkB,MAAM,IAAI,CAAG,CAAC,IAAK,IAAK,IAAI,CA0BpF,OAxBI,QAAQ,GAAK,YAAY,GACpB,GAGL,YAAY,GAAK,QAAQ,GACpB,GAGL,QAAQ,GAAK,YAAY,GACpB,GAGL,YAAY,GAAK,QAAQ,GACpB,GAGL,QAAQ,GAAK,YAAY,GACpB,GAGL,YAAY,GAAK,QAAQ,GACpB,GAGF,KAGT,IAAI,UAAY,UAAY,CAC1B,IAAI,eAAiB,CAAC,EAAG,EAAG,GAAG,CAE/B,SAAS,gBAAgB,UAAW,CAClC,IAAI,aAAe,UAAU,EAAE,EAC/B,UAAU,EAAE,EAAI,CACd,EAAG,CAAC,CACF,EAAG,aACH,EAAG,EACJ,CAAC,CACH,CAGH,SAAS,cAAc,OAAQ,CAC7B,IAAIA,IACA,IAAM,OAAO,OAEjB,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EACpB,OAAOA,KAAG,KAAO,GACnB,gBAAgB,OAAOA,KAAG,CAKhC,OAAO,SAAU,gBAAe,CAC9B,GAAI,aAAa,eAAgB3I,gBAAc,EAAE,GAC/C,cAAcA,gBAAc,OAAO,CAE/BA,gBAAc,QAAQ,CACxB,IAAI2I,IACA,IAAM3I,gBAAc,OAAO,OAE/B,IAAK,IAAI,EAAG2I,IAAI,IAAK,KAAK,EACpB3I,gBAAc,OAAO2I,KAAG,QAC1B,cAAc3I,gBAAc,OAAO2I,KAAG,OAAO,KAMtD,CAEC,WAAa,UAAY,CAC3B,IAAI,eAAiB,CAAC,EAAG,EAAG,GAAG,CAC/B,OAAO,SAAU,gBAAe,CAC9B,GAAI3I,gBAAc,OAAS,CAAC,aAAa,eAAgBA,gBAAc,EAAE,CAAE,CACzE,IAAI2I,IACA,IAAM3I,gBAAc,MAAM,OAC1B,EACA,KACA,SACA,MAEJ,IAAK,IAAI,EAAG2I,IAAI,IAAK,KAAK,EACxB,GAAI3I,gBAAc,MAAM2I,KAAG,MAAQ3I,gBAAc,MAAM2I,KAAG,KAAK,OAI7D,IAHA,MAAQ3I,gBAAc,MAAM2I,KAAG,KAAK,OAAO,GAAG,GAC9C,KAAO,MAAM,OAER,EAAI,EAAG,EAAI,KAAM,GAAK,EACzB,SAAW,MAAM,GAAG,GAAG,EAEvB,AAEE,SAAS,eADT,6BAA6B,MAAM,GAAG,GAAG,EAAE,CACpB,QAOlC,CAEC,YAAc,UAAY,CAC5B,IAAI,eAAiB,CAAC,EAAG,EAAG,EAAE,CAE9B,SAAS,cAAc,OAAQ,CAC7B,IAAIA,IACA,IAAM,OAAO,OACb,EACA,KAEJ,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,GAAI,OAAOA,KAAG,KAAO,KACnB,cAAc,OAAOA,KAAG,GAAG,SAClB,OAAOA,KAAG,KAAO,MAAQ,OAAOA,KAAG,KAAO,KACnD,GAAI,OAAOA,KAAG,EAAE,GAAK,OAAOA,KAAG,EAAE,EAAE,GAAG,EAGpC,IAFA,KAAO,OAAOA,KAAG,EAAE,EAAE,OAEhB,EAAI,EAAG,EAAI,KAAM,GAAK,EACrB,OAAOA,KAAG,EAAE,EAAE,GAAG,IACnB,OAAOA,KAAG,EAAE,EAAE,GAAG,EAAE,IAAM,IACzB,OAAOA,KAAG,EAAE,EAAE,GAAG,EAAE,IAAM,IACzB,OAAOA,KAAG,EAAE,EAAE,GAAG,EAAE,IAAM,IACzB,OAAOA,KAAG,EAAE,EAAE,GAAG,EAAE,IAAM,KAGvB,OAAOA,KAAG,EAAE,EAAE,GAAG,IACnB,OAAOA,KAAG,EAAE,EAAE,GAAG,EAAE,IAAM,IACzB,OAAOA,KAAG,EAAE,EAAE,GAAG,EAAE,IAAM,IACzB,OAAOA,KAAG,EAAE,EAAE,GAAG,EAAE,IAAM,IACzB,OAAOA,KAAG,EAAE,EAAE,GAAG,EAAE,IAAM,UAI7B,OAAOA,KAAG,EAAE,EAAE,IAAM,IACpB,OAAOA,KAAG,EAAE,EAAE,IAAM,IACpB,OAAOA,KAAG,EAAE,EAAE,IAAM,IACpB,OAAOA,KAAG,EAAE,EAAE,IAAM,IAM5B,SAAS,cAAc,OAAQ,CAC7B,IAAIA,IACA,IAAM,OAAO,OAEjB,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EACpB,OAAOA,KAAG,KAAO,GACnB,cAAc,OAAOA,KAAG,OAAO,CAKrC,OAAO,SAAU,gBAAe,CAC9B,GAAI,aAAa,eAAgB3I,gBAAc,EAAE,GAC/C,cAAcA,gBAAc,OAAO,CAE/BA,gBAAc,QAAQ,CACxB,IAAI2I,IACA,IAAM3I,gBAAc,OAAO,OAE/B,IAAK,IAAI,EAAG2I,IAAI,IAAK,KAAK,EACpB3I,gBAAc,OAAO2I,KAAG,QAC1B,cAAc3I,gBAAc,OAAO2I,KAAG,OAAO,KAMtD,CAEC,YAAc,UAAY,CAC5B,IAAI,eAAiB,CAAC,EAAG,EAAG,GAAG,CAE/B,SAAS,sBAAsB,IAAK,CAClC,IAAIA,IACA,IAAM,IAAI,OACV,EACA,KAEJ,IAAK,IAAI,IAAM,EAAGA,KAAK,EAAG,MACxB,GAAI,IAAIA,KAAG,KAAO,KAChB,GAAI,IAAIA,KAAG,GAAG,EAAE,EACd,IAAIA,KAAG,GAAG,EAAE,EAAI,IAAIA,KAAG,YAIvB,IAFA,KAAO,IAAIA,KAAG,GAAG,EAAE,OAEd,EAAI,EAAG,EAAI,KAAM,GAAK,EACrB,IAAIA,KAAG,GAAG,EAAE,GAAG,IACjB,IAAIA,KAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAI,IAAIA,KAAG,QAG7B,IAAIA,KAAG,GAAG,EAAE,GAAG,IACjB,IAAIA,KAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAI,IAAIA,KAAG,aAI5B,IAAIA,KAAG,KAAO,MACvB,sBAAsB,IAAIA,KAAG,GAAG,CAKtC,SAAS,cAAc,OAAQ,CAC7B,IAAI,UACAA,IACA,IAAM,OAAO,OACb,EACA,KACA,EACA,KAEJ,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EAAG,CAG3B,GAFA,UAAY,OAAOA,KAEf,UAAU,QAAS,CACrB,IAAI,UAAY,UAAU,gBAG1B,IAFA,KAAO,UAAU,OAEZ,EAAI,EAAG,EAAI,KAAM,GAAK,EACzB,GAAI,UAAU,GAAG,GAAG,EAAE,EACpB,UAAU,GAAG,GAAG,EAAE,EAAI,UAAU,GAAG,QAInC,IAFA,KAAO,UAAU,GAAG,GAAG,EAAE,OAEpB,EAAI,EAAG,EAAI,KAAM,GAAK,EACrB,UAAU,GAAG,GAAG,EAAE,GAAG,IACvB,UAAU,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAI,UAAU,GAAG,IAGzC,UAAU,GAAG,GAAG,EAAE,GAAG,IACvB,UAAU,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAI,UAAU,GAAG,IAOjD,UAAU,KAAO,GACnB,sBAAsB,UAAU,OAAO,EAK7C,OAAO,SAAU,gBAAe,CAC9B,GAAI,aAAa,eAAgB3I,gBAAc,EAAE,GAC/C,cAAcA,gBAAc,OAAO,CAE/BA,gBAAc,QAAQ,CACxB,IAAI2I,IACA,IAAM3I,gBAAc,OAAO,OAE/B,IAAK,IAAI,EAAG2I,IAAI,IAAK,KAAK,EACpB3I,gBAAc,OAAO2I,KAAG,QAC1B,cAAc3I,gBAAc,OAAO2I,KAAG,OAAO,KAMtD,CAEH,SAAS,aAAa,gBAAe,YAAa,CAC5C3I,AASJ,gBAAc,cALd,YAAYA,gBAAc,CAC1B,UAAUA,gBAAc,CACxB,WAAWA,gBAAc,CACzB,YAAYA,gBAAc,CAC1B,eAAeA,gBAAc,OAAQA,gBAAc,OAAQ,YAAY,CAC5C,IAG7B,SAAS,aAAa,KAAM,CACtB,KAAK,EAAE,EAAE,SAAW,GAAK,EAAE,MAAO,KAAK,EAAE,KAC3C,KAAK,YAAc,IAIvB,IAAI,SAAW,EAAE,CAMjB,MALA,UAAS,aAAe,aACxB,SAAS,YAAc,YACvB,SAAS,WAAa,WACtB,SAAS,YAAc,YACvB,SAAS,eAAiB,eACnB,SAGT,IAAI,YAAc,qBAAqB,CAGvC,SAAS,kBAAkB,SAAU,CAOnC,IAAK,IAND,OAAS,SAAS,OAAS,SAAS,OAAO,MAAM,IAAI,CAAG,EAAE,CAC1D,QAAU,SACV,OAAS,SACT,IAAM,OAAO,OACb,UAEK2I,IAAI,EAAGA,IAAI,IAAK,KAAK,EAG5B,OAFA,UAAY,OAAOA,KAAG,aAAa,CAE3B,UAAR,CACE,IAAK,SACH,OAAS,SACT,MAEF,IAAK,OACH,QAAU,MACV,MAEF,IAAK,QACH,QAAU,MACV,MAEF,IAAK,SACH,QAAU,MACV,MAEF,IAAK,UACL,IAAK,SACH,QAAU,MACV,MAEF,IAAK,QACL,IAAK,OACH,QAAU,MACV,MAEF,QACE,MAIN,MAAO,CACL,MAAO,OACP,OAAQ,SAAS,SAAW,QAC7B,CAOH,IAAI,YAAc,UAAY,CAC5B,IAAI,eAAiB,IACjB,UAAY,CACd,EAAG,EACH,KAAM,EACN,OAAQ,EAAE,CACX,CACG,mBAAqB,EAAE,CAE3B,mBAAqB,mBAAmB,OAAO,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAK,CAAC,CAEtP,SAAS,gBAAgB,KAAM,CAC7B,IAAI,YAAc,KAAK,MAAM,IAAI,CAC7BA,IACA,IAAM,YAAY,OAClB,gBAAkB,EAAE,CAExB,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EACpB,YAAYA,OAAO,cAAgB,YAAYA,OAAO,aACxD,gBAAgB,KAAK,YAAYA,KAAG,CAIxC,OAAO,gBAAgB,KAAK,IAAI,CAGlC,SAAS,UAAU,KAAM,OAAQ,CAC/B,IAAI,WAAa,UAAU,OAAO,CAElC,WAAW,aAAa,cAAe,GAAK,CAC5C,WAAW,MAAM,WAAa,OAC9B,IAAI,KAAO,UAAU,OAAO,CAE5B,KAAK,UAAY,iBAEjB,WAAW,MAAM,SAAW,WAC5B,WAAW,MAAM,KAAO,WACxB,WAAW,MAAM,IAAM,WAEvB,WAAW,MAAM,SAAW,QAE5B,WAAW,MAAM,YAAc,SAC/B,WAAW,MAAM,UAAY,SAC7B,WAAW,MAAM,WAAa,SAC9B,WAAW,MAAM,cAAgB,IACjC,WAAW,YAAY,KAAK,CAC5B,SAAS,KAAK,YAAY,WAAW,CAErC,IAAI,MAAQ,KAAK,YAEjB,MADA,MAAK,MAAM,WAAa,gBAAgB,KAAK,CAAG,KAAO,OAChD,CACC,KACN,EAAG,MACH,OAAQ,WACT,CAGH,SAAS,kBAAmB,CAC1B,IAAIA,IACA,KAAO,MAAQ,SAAS,MAAM,OAC9B,KACA,EACA,YAAc,IAElB,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,GACnB,MAAQ,SAAS,MAAMA,KAAG,OAC7B,eACU,MAAQ,SAAS,MAAMA,KAAG,UAAY,MAAQ,MAAQ,SAAS,MAAMA,KAAG,SAAW,EAC7F,CAAC,MAAQ,SAAS,MAAMA,KAAG,OAAS,IAEpC,MAAQ,MAAQ,SAAS,MAAMA,KAAG,SAAS,KAC3C,GAAK,MAAQ,SAAS,MAAMA,KAAG,SAAS,EAEpC,KAAK,cAAgB,GAIvB,MAAQ,MAAQ,SAAS,MAAMA,KAAG,SAAS,KAC3C,GAAK,MAAQ,SAAS,MAAMA,KAAG,SAAS,EAEpC,KAAK,cAAgB,IACvB,cACA,CAAC,MAAQ,SAAS,MAAMA,KAAG,OAAS,MARtC,cACA,CAAC,MAAQ,SAAS,MAAMA,KAAG,OAAS,KAWjC,MAAQ,SAAS,MAAMA,KAAG,UAC5B,MAAQ,SAAS,MAAMA,KAAG,SAAS,OAAO,WAAW,aAAa,MAAQ,SAAS,MAAMA,KAAG,SAAS,OAAO,EAE5G,MAAQ,SAAS,MAAMA,KAAG,SAAS,OAAO,WAAW,aAAa,MAAQ,SAAS,MAAMA,KAAG,SAAS,OAAO,GAK/G,cAAgB,GAAK,KAAK,KAAK,EAAI,MAAQ,SAAS,SAAW,eACjE,YAAY,MAAQ,SAAS,uBAAwB,GAAG,CAExD,YAAY,MAAQ,SAAS,kBAAmB,GAAG,CAIvD,SAAS,aAAa,IAAK,SAAU,CACnC,IAAI,QAAU,SAAS,OAAO,CAC9B,QAAQ,MAAM,SAAW,QAEzB,IAAI,UAAY,kBAAkB,SAAS,CAC3C,QAAQ,aAAa,cAAe,SAAS,QAAQ,CACrD,QAAQ,aAAa,aAAc,UAAU,MAAM,CACnD,QAAQ,aAAa,cAAe,UAAU,OAAO,CACrD,QAAQ,YAAc,IAElB,SAAS,QACX,QAAQ,MAAM,WAAa,UAC3B,QAAQ,aAAa,QAAS,SAAS,OAAO,EAE9C,QAAQ,MAAM,WAAa,SAAS,QAGtC,IAAI,YAAY,QAAQ,CACxB,IAAI,cAAgB,UAAU,SAAS,CAAC,WAAW,KAAK,CAGxD,MAFA,eAAc,KAAO,SAAS,QAAU,IAAM,SAAS,OAAS,UAAY,SAAS,QAE9E,QAGT,SAAS1I,WAAS,SAAU,KAAM,CAChC,GAAI,CAAC,SAAU,CACb,CAAC,MAAQ,SAAS,SAAW,GAC7B,OAGF,IAAK,MAAQ,SAAS,MAAO,CAC3B,CAAC,MAAQ,SAAS,SAAW,GAC7B,CAAC,MAAQ,SAAS,MAAQ,SAAS,KACnC,OAGF,IAAI,QAAU,SAAS,KACnB0I,IACA,IAAM,QAAQ,OACd,cAAgB,IAEpB,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EAAG,CAC3B,IAAI,eAAiB,GACjB,eACA,EAKJ,GAJA,QAAQA,KAAG,OAAS,GACpB,QAAQA,KAAG,SAAW,UAAU,QAAQA,KAAG,QAAS,YAAY,CAChE,QAAQA,KAAG,SAAW,UAAU,QAAQA,KAAG,QAAS,aAAa,CAE7D,CAAC,QAAQA,KAAG,MACd,QAAQA,KAAG,OAAS,GACpB,wBACS,QAAQA,KAAG,UAAY,KAAO,QAAQA,KAAG,SAAW,EAO7D,IANA,eAAiB,SAAS,iBAAiB,kCAAuC,QAAQA,KAAG,QAAU,qCAA2C,QAAQA,KAAG,QAAU,KAAM,CAEzK,eAAe,OAAS,IAC1B,eAAiB,IAGf,eAAgB,CAClB,IAAI,EAAI,UAAU,QAAQ,CAC1B,EAAE,aAAa,YAAa,QAAQA,KAAG,QAAQ,CAC/C,EAAE,aAAa,WAAY,QAAQA,KAAG,OAAO,CAC7C,EAAE,aAAa,WAAY,QAAQA,KAAG,QAAQ,CAC9C,EAAE,KAAO,WACT,EAAE,UAAY,4BAA8B,QAAQA,KAAG,QAAU,mCAAqC,QAAQA,KAAG,MAAQ,OACzH,KAAK,YAAY,EAAE,UAEZ,QAAQA,KAAG,UAAY,KAAO,QAAQA,KAAG,SAAW,EAAG,CAGhE,IAFA,eAAiB,SAAS,iBAAiB,0CAA8C,CAEpF,EAAI,EAAG,EAAI,eAAe,OAAQ,GAAK,EACtC,eAAe,GAAG,KAAK,QAAQ,QAAQA,KAAG,MAAM,GAAK,KAEvD,eAAiB,IAIrB,GAAI,eAAgB,CAClB,IAAIL,IAAI,UAAU,OAAO,CACzB,IAAE,aAAa,YAAa,QAAQK,KAAG,QAAQ,CAC/C,IAAE,aAAa,WAAY,QAAQA,KAAG,OAAO,CAC7C,IAAE,KAAO,WACT,IAAE,IAAM,aACR,IAAE,KAAO,QAAQA,KAAG,MACpB,SAAS,KAAK,YAAYL,IAAE,UAErB,QAAQK,KAAG,UAAY,KAAO,QAAQA,KAAG,SAAW,EAAG,CAGhE,IAFA,eAAiB,SAAS,iBAAiB,8CAAkD,CAExF,EAAI,EAAG,EAAI,eAAe,OAAQ,GAAK,EACtC,QAAQA,KAAG,QAAU,eAAe,GAAG,MAEzC,eAAiB,IAIrB,GAAI,eAAgB,CAClB,IAAI,GAAK,UAAU,OAAO,CAC1B,GAAG,aAAa,YAAa,QAAQA,KAAG,QAAQ,CAChD,GAAG,aAAa,WAAY,QAAQA,KAAG,OAAO,CAC9C,GAAG,aAAa,MAAO,aAAa,CACpC,GAAG,aAAa,OAAQ,QAAQA,KAAG,MAAM,CACzC,KAAK,YAAY,GAAG,EAIxB,QAAQA,KAAG,OAAS,aAAa,KAAM,QAAQA,KAAG,CAClD,QAAQA,KAAG,MAAQ,EAAE,EAEpB,MAAQ,SAAS,MAAM,KAAK,QAAQA,KAAG,CAGtC,gBAAkB,EACpB,CAAC,MAAQ,SAAS,SAAW,GAI7B,YAAY,MAAQ,SAAS,iBAAiB,KAAK,MAAQ,QAAQ,CAAE,IAAI,CAI7E,SAAS,SAAS,MAAO,CAClB,SAIL,EAAM,MAAQ,SAAS,QACrB,CAAC,MAAQ,SAAS,MAAQ,EAAE,EAG9B,IAAIA,IACA,IAAM,MAAM,OACZ,EACA,MAAQ,MAAQ,SAAS,MAAM,OAC/B,MAEJ,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EAAG,CAI3B,IAHA,EAAI,EACJ,MAAQ,GAED,EAAI,OACJ,MAAQ,SAAS,MAAM,GAAG,QAAU,MAAMA,KAAG,QAAU,MAAQ,SAAS,MAAM,GAAG,UAAY,MAAMA,KAAG,UAAY,MAAQ,SAAS,MAAM,GAAG,KAAO,MAAMA,KAAG,KAC/J,MAAQ,IAGV,GAAK,EAGF,SACF,MAAQ,SAAS,MAAM,KAAK,MAAMA,KAAG,CAEtC,MAAQ,KAKd,SAAS,YAAY,KAAM,MAAO,KAAM,CAItC,IAHA,IAAIA,IAAI,EACJ,KAAO,MAAQ,SAAS,MAAM,OAE3BA,IAAI,KAAK,CACd,IAAK,MAAQ,SAAS,MAAMA,KAAG,KAAO,OAAS,MAAQ,SAAS,MAAMA,KAAG,QAAU,QAAU,MAAQ,SAAS,MAAMA,KAAG,UAAY,KACjI,OAAQ,MAAQ,SAAS,MAAMA,KAGjC,KAAK,EASP,OANK,OAAO,MAAS,UAAY,KAAK,WAAW,EAAE,GAAK,IAAM,CAAC,OAAS,SAAW,QAAQ,MACxF,EAAE,MAAQ,SAAS,UACpB,CAAC,MAAQ,SAAS,QAAU,GAC5B,QAAQ,KAAK,oDAAqD,KAAM,MAAO,KAAK,EAG/E,UAGT,SAAS,YAAY,KAAM,SAAU,KAAM,CACzC,IAAI,SAAW,KAAK,cAAc,SAAS,CACvCzI,QAAQ,KAAK,WAAW,EAAE,CAE9B,GAAI,CAAC,SAAS,MAAMA,QAAQ,GAAI,CAC9B,IAAI,QAAU,SAAS,OAKvB,GAAI,OAAS,IAAK,CAChB,QAAQ,YAAc,IAAM,KAAO,IACnC,IAAI,WAAa,QAAQ,uBAAuB,CAChD,QAAQ,YAAc,KACtB,IAAI,WAAa,QAAQ,uBAAuB,CAChD,SAAS,MAAMA,QAAQ,IAAM,WAAa,YAAc,SAExD,QAAQ,YAAc,KACtB,SAAS,MAAMA,QAAQ,GAAK,QAAQ,uBAAuB,CAAG,IAIlE,OAAO,SAAS,MAAMA,QAAQ,GAAK,KAGrC,SAAS,cAAc,OAAM,CAI3B,IAHA,IAAIyI,IAAI,EACJ,KAAO,MAAQ,SAAS,MAAM,OAE3BA,IAAI,KAAK,CACd,IAAK,MAAQ,SAAS,MAAMA,KAAG,QAAUW,OACvC,OAAQ,MAAQ,SAAS,MAAMX,KAGjC,KAAK,EAGP,OAAQ,MAAQ,SAAS,MAAM,GAGjC,SAAS,2BAA4B,CACnC,OAAO,mBAGT,SAAS,aAAc,CACrB,CAAC,MAAQ,SAAS,SAAW,GAG/B,IAAI,KAAO,UAAY,CACrB,CAAC,MAAQ,SAAS,MAAQ,EAAE,CAC5B,CAAC,MAAQ,SAAS,MAAQ,KAC1B,CAAC,MAAQ,SAAS,cAAgB,EAClC,CAAC,MAAQ,SAAS,SAAW,GAC7B,CAAC,MAAQ,SAAS,QAAU,GAC5B,CAAC,MAAQ,SAAS,SAAW,KAAK,KAAK,CACvC,CAAC,MAAQ,SAAS,mBAAqB,MAAQ,SAAS,YAAY,KAAK,MAAQ,QAAQ,CACzF,CAAC,MAAQ,SAAS,wBAA0B,MAAQ,SAAS,iBAAiB,KAAK,MAAQ,QAAQ,EAerG,MAXA,MAAK,0BAA4B,0BAUjC,KAAK,UATe,CACR,SACV,SAAU1I,WACG,YACE,cACF,YACK,iBACL,YACd,CAEM,OACN,CAMC,gBAAkB,UAAY,CAChC,IAAI,UAAY,oBACZ,QAAU,KAAK,IAEnB,SAAS,iBAAiB,SAAU,QAAS,CAC3C,IAAI,YAAc,MAAQ,SAAS,WAC/B,UAEC,MAAQ,SAAS,WAAa,qBACjC,SAAW,iBAAiB,WAAY,MAAQ,SAAS,GAAG,OAAO,EAUrE,IAPA,IAAI,eAAiB,QAAQ,UACzB0I,IAAI,eACJ,KAAO,MAAQ,SAAS,UAAU,OAAS,EAC3C,KAAO,GACP,QACA,YAEG,MAAM,CAIX,GAHA,SAAW,MAAQ,SAAS,UAAUA,KACtC,aAAe,MAAQ,SAAS,UAAUA,IAAI,GAE1CA,MAAM,IAAM,GAAK,UAAY,YAAY,EAAI,WAAY,CACvD,QAAQ,IACV,QAAU,aAGZ,eAAiB,EACjB,MAGF,GAAI,YAAY,EAAI,WAAa,SAAU,CACzC,eAAiBA,IACjB,MAGEA,IAAI,IAAM,EACZ,KAAK,GAEL,eAAiB,EACjB,KAAO,IAIX,IAAI,EACA,KACA,KACA,KACA,EACA,IACA,YAAc,YAAY,EAAI,WAC9B,QAAU,QAAQ,EAAI,WACtB,SAEJ,GAAI,QAAQ,GAAI,CACd,AACE,QAAQ,aAAa,IAAI,gBAAgB,QAAQ,EAAG,YAAY,GAAK,QAAQ,EAAG,QAAQ,GAAI,QAAQ,GAAG,CAGzG,IAAI,WAAa,QAAQ,WAEzB,GAAI,UAAY,aAAe,SAAW,QAAS,CACjD,IAAI,IAAM,UAAY,YAAc,WAAW,OAAO,OAAS,EAAI,EAGnE,IAFA,KAAO,WAAW,OAAO,KAAK,MAAM,OAE/B,EAAI,EAAG,EAAI,KAAM,GAAK,EACzB,SAAS,GAAK,WAAW,OAAO,KAAK,MAAM,OAGxC,CACD,QAAQ,OACV,IAAM,QAAQ,QAEd,IAAM,cAAc,gBAAgB,QAAQ,EAAE,EAAG,QAAQ,EAAE,EAAG,QAAQ,EAAE,EAAG,QAAQ,EAAE,EAAG,QAAQ,EAAE,CAAC,IACnG,QAAQ,OAAS,KAGnB,KAAO,KAAK,SAAW,UAAY,YAAc,SAAS,CAC1D,IAAI,eAAiB,WAAW,cAAgB,KAC5C,YACA,YAAc,QAAQ,UAAY,UAAY,QAAQ,qBAAuBA,IAAI,QAAQ,iBAAmB,EAKhH,IAJA,EAAI,QAAQ,UAAY,UAAY,QAAQ,qBAAuBA,IAAI,QAAQ,WAAa,EAC5F,KAAO,GACP,KAAO,WAAW,OAAO,OAElB,MAAM,CAGX,GAFA,aAAe,WAAW,OAAO,GAAG,cAEhC,iBAAmB,GAAK,OAAS,GAAK,IAAM,WAAW,OAAO,OAAS,EAAG,CAG5E,IAFA,KAAO,WAAW,OAAO,GAAG,MAAM,OAE7B,EAAI,EAAG,EAAI,KAAM,GAAK,EACzB,SAAS,GAAK,WAAW,OAAO,GAAG,MAAM,GAG3C,cACS,gBAAkB,aAAe,eAAiB,YAAc,WAAW,OAAO,EAAI,GAAG,cAAe,CAIjH,IAHA,aAAe,eAAiB,aAAe,WAAW,OAAO,EAAI,GAAG,cACxE,KAAO,WAAW,OAAO,GAAG,MAAM,OAE7B,EAAI,EAAG,EAAI,KAAM,GAAK,EACzB,SAAS,GAAK,WAAW,OAAO,GAAG,MAAM,IAAM,WAAW,OAAO,EAAI,GAAG,MAAM,GAAK,WAAW,OAAO,GAAG,MAAM,IAAM,YAGtH,MAGE,EAAI,KAAO,EACb,GAAK,EAEL,KAAO,GAIX,QAAQ,WAAa,EACrB,QAAQ,iBAAmB,YAAc,WAAW,OAAO,GAAG,cAC9D,QAAQ,mBAAqBA,SAE1B,CACL,IAAI,KACA,KACA,IACA,IACA,SAIJ,GAHA,IAAM,QAAQ,EAAE,OAChB,SAAW,YAAY,GAAK,QAAQ,GAE/B,MAAQ,SAAS,IAAM,QAAQ,IAAM,EACxC,GAAI,UAAY,YACd,SAAS,GAAK,SAAS,GACvB,SAAS,GAAK,SAAS,GACvB,SAAS,GAAK,SAAS,WACd,UAAY,QACrB,SAAS,GAAK,QAAQ,EAAE,GACxB,SAAS,GAAK,QAAQ,EAAE,GACxB,SAAS,GAAK,QAAQ,EAAE,OACnB,CACL,IAAI,UAAY,iBAAiB,QAAQ,EAAE,CACvC,QAAU,iBAAiB,SAAS,CACpC,MAAQ,SAAW,UAAY,YAAc,SACjD,kBAAkB,SAAU,MAAM,UAAW,QAAS,KAAK,CAAC,MAG9D,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EACpB,QAAQ,IAAM,IACZ,UAAY,YACd,KAAO,EACE,SAAW,QACpB,KAAO,GAEH,QAAQ,EAAE,EAAE,cAAgB,OAC9B,AACE,QAAQ,SAAS,EAAE,CAGhB,QAAQ,OAAOA,KAQlB,IAAM,QAAQ,OAAOA,MAPrB,KAAc,QAAQ,EAAE,EAAEA,OAAO,OAAc,QAAQ,EAAE,EAAE,GAAK,QAAQ,EAAE,EAAEA,KAC5E,KAAc,QAAQ,EAAE,EAAEA,OAAO,OAAc,QAAQ,EAAE,EAAE,GAAK,QAAQ,EAAE,EAAEA,KAC5E,IAAa,QAAQ,EAAE,EAAEA,OAAO,OAAc,QAAQ,EAAE,EAAE,GAAK,QAAQ,EAAE,EAAEA,KAC3E,IAAa,QAAQ,EAAE,EAAEA,OAAO,OAAc,QAAQ,EAAE,EAAE,GAAK,QAAQ,EAAE,EAAEA,KAC3E,IAAM,cAAc,gBAAgB,KAAM,KAAM,IAAK,IAAI,CAAC,IAC1D,QAAQ,OAAOA,KAAK,MAIZ,QAAQ,OAQlB,IAAM,QAAQ,QAPd,KAAO,QAAQ,EAAE,EACjB,KAAO,QAAQ,EAAE,EACjB,IAAM,QAAQ,EAAE,EAChB,IAAM,QAAQ,EAAE,EAChB,IAAM,cAAc,gBAAgB,KAAM,KAAM,IAAK,IAAI,CAAC,IAC1D,QAAQ,OAAS,KAKnB,KAAO,KAAK,SAAW,UAAY,YAAc,SAAS,GAI9D,SAAW,YAAY,GAAK,QAAQ,EACpC,SAAW,QAAQ,IAAM,EAAI,QAAQ,EAAEA,KAAK,QAAQ,EAAEA,MAAM,SAASA,KAAK,QAAQ,EAAEA,MAAM,MAErF,MAAQ,SAAS,WAAa,mBACjC,SAASA,KAAK,SAEd,SAAW,SAOnB,MADA,SAAQ,UAAY,eACb,SAIT,SAAS,MAAM,EAAG,EAAG,IAAG,CACtB,IAAI,IAAM,EAAE,CACR,GAAK,EAAE,GACP,GAAK,EAAE,GACP,GAAK,EAAE,GACP,GAAK,EAAE,GACP,GAAK,EAAE,GACP,GAAK,EAAE,GACP,GAAK,EAAE,GACP,GAAK,EAAE,GACP,MACA,MAII,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAHvC,MACA,OACA,OAyBJ,OAtBI,MAAQ,IACV,MAAQ,CAAC,MACT,GAAK,CAAC,GACN,GAAK,CAAC,GACN,GAAK,CAAC,GACN,GAAK,CAAC,IAGJ,EAAI,MAAQ,MACd,MAAQ,KAAK,KAAK,MAAM,CACxB,MAAQ,KAAK,IAAI,MAAM,CACvB,OAAS,KAAK,KAAK,EAAIS,KAAK,MAAM,CAAG,MACrC,OAAS,KAAK,IAAIA,IAAI,MAAM,CAAG,QAE/B,OAAS,EAAIA,IACb,OAASA,KAGX,IAAI,GAAK,OAAS,GAAK,OAAS,GAChC,IAAI,GAAK,OAAS,GAAK,OAAS,GAChC,IAAI,GAAK,OAAS,GAAK,OAAS,GAChC,IAAI,GAAK,OAAS,GAAK,OAAS,GACzB,IAGT,SAAS,kBAAkB,IAAK,KAAM,CACpC,IAAI,GAAK,KAAK,GACV,GAAK,KAAK,GACV,GAAK,KAAK,GACV,GAAK,KAAK,GACVhJ,UAAU,KAAK,MAAM,EAAI,GAAK,GAAK,EAAI,GAAK,GAAI,EAAI,EAAI,GAAK,GAAK,EAAI,GAAK,GAAG,CAC9E,SAAW,KAAK,KAAK,EAAI,GAAK,GAAK,EAAI,GAAK,GAAG,CAC/C,KAAO,KAAK,MAAM,EAAI,GAAK,GAAK,EAAI,GAAK,GAAI,EAAI,EAAI,GAAK,GAAK,EAAI,GAAK,GAAG,CAC/E,IAAI,GAAKA,UAAU,UACnB,IAAI,GAAK,SAAW,UACpB,IAAI,GAAK,KAAO,UAGlB,SAAS,iBAAiB,OAAQ,CAChC,IAAIA,UAAU,OAAO,GAAK,UACtB,SAAW,OAAO,GAAK,UACvB,KAAO,OAAO,GAAK,UACnB,GAAK,KAAK,IAAIA,UAAU,EAAE,CAC1B,GAAK,KAAK,IAAI,SAAW,EAAE,CAC3B,GAAK,KAAK,IAAI,KAAO,EAAE,CACvB,GAAK,KAAK,IAAIA,UAAU,EAAE,CAC1B,GAAK,KAAK,IAAI,SAAW,EAAE,CAC3B,GAAK,KAAK,IAAI,KAAO,EAAE,CACvB,EAAI,GAAK,GAAK,GAAK,GAAK,GAAK,GAC7B+I,IAAI,GAAK,GAAK,GAAK,GAAK,GAAK,GAC7B,EAAI,GAAK,GAAK,GAAK,GAAK,GAAK,GAC7B,EAAI,GAAK,GAAK,GAAK,GAAK,GAAK,GACjC,MAAO,CAACA,IAAG,EAAG,EAAG,EAAE,CAGrB,SAAS,uBAAwB,CAC/B,IAAI,UAAY,MAAQ,SAAS,KAAK,eAAiB,MAAQ,SAAS,WACpE,UAAY,MAAQ,SAAS,UAAU,GAAG,GAAK,MAAQ,SAAS,WAChE,SAAW,MAAQ,SAAS,WAAW,MAAQ,SAAS,UAAU,OAAS,GAAG,GAAK,MAAQ,SAAS,WAaxG,OAXM,YAAc,MAAQ,SAAS,SAAS,YAAc,MAAQ,SAAS,SAAS,YAAc,aAAe,MAAQ,SAAS,SAAS,WAAa,SAAW,UAAY,UAAY,MAAQ,SAAS,SAAS,UAAY,UAAY,SAAW,aACnP,MAAQ,SAAS,SAAS,WAAa,WAC1C,CAAC,MAAQ,SAAS,SAAS,mBAAqB,GAChD,CAAC,MAAQ,SAAS,SAAS,UAAY,GAIzC,CAAC,MAAQ,SAAS,GADC,KAAK,iBAAiB,UAAW,MAAQ,SAAS,SAAS,EAIhF,CAAC,MAAQ,SAAS,SAAS,UAAY,UAC/B,MAAQ,SAAS,GAG3B,SAAS,UAAU,IAAK,CACtB,IAAI,gBAEJ,IAAK,MAAQ,SAAS,WAAa,iBACjC,gBAAkB,KAAO,MAAQ,SAAS,KAEtC,SAAS,MAAQ,SAAS,EAAI,gBAAgB,CAAG,OACnD,CAAC,MAAQ,SAAS,EAAI,gBACtB,CAAC,MAAQ,SAAS,KAAO,SAM3B,IAHA,IAAIR,IAAI,EACJ,KAAO,MAAQ,SAAS,EAAE,OAEvBA,IAAI,KACT,gBAAkB,IAAIA,MAAM,MAAQ,SAAS,KAEzC,SAAS,MAAQ,SAAS,EAAEA,KAAK,gBAAgB,CAAG,OACtD,CAAC,MAAQ,SAAS,EAAEA,KAAK,gBACzB,CAAC,MAAQ,SAAS,KAAO,IAG3B,KAAK,EAKX,SAAS,wBAAyB,CAChC,MAAK,MAAQ,SAAS,KAAK,WAAW,WAAa,MAAQ,SAAS,SAAW,EAAE,MAAQ,SAAS,gBAAgB,QAIlH,KAAK,MAAQ,SAAS,KAAM,CAC1B,KAAK,WAAW,MAAQ,SAAS,GAAG,CACpC,OAGF,CAAC,MAAQ,SAAS,KAAO,GACzB,CAAC,MAAQ,SAAS,MAAQ,MAAQ,SAAS,cAC3C,IAAIA,IACA,KAAO,MAAQ,SAAS,gBAAgB,OACxC,YAAc,MAAQ,SAAS,IAAM,MAAQ,SAAS,IAAM,MAAQ,SAAS,KAAK,EAEtF,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,YAAc,MAAQ,SAAS,gBAAgBA,KAAG,WAAW,CAG/D,KAAK,UAAU,WAAW,CAC1B,CAAC,MAAQ,SAAS,cAAgB,GAClC,CAAC,MAAQ,SAAS,KAAO,GACzB,CAAC,MAAQ,SAAS,SAAW,MAAQ,SAAS,KAAK,WAAW,SAGhE,SAAS,UAAU,eAAgB,EAChC,MAAQ,SAAS,gBAAgB,KAAK,eAAe,EAErD,MAAQ,SAAS,UAAU,mBAAmB,MAAQ,QAAQ,CAGjE,SAAS,cAAc,KAAM,KAAM,KAAM,UAAW,CAClD,CAAC,MAAQ,SAAS,SAAW,iBAC7B,CAAC,MAAQ,SAAS,KAAO,MAAQ,EACjC,CAAC,MAAQ,SAAS,KAAO,KACzB,CAAC,MAAQ,SAAS,EAAI,KAAO,KAAK,EAAI,KAAO,KAAK,EAClD,CAAC,MAAQ,SAAS,GAAK,KAAK,EAC5B,CAAC,MAAQ,SAAS,KAAO,GACzB,CAAC,MAAQ,SAAS,KAAO,KACzB,CAAC,MAAQ,SAAS,UAAY,UAC9B,CAAC,MAAQ,SAAS,KAAO,KAAK,KAC9B,CAAC,MAAQ,SAAS,EAAI,GACtB,CAAC,MAAQ,SAAS,GAAK,GACvB,CAAC,MAAQ,SAAS,IAAM,EACxB,CAAC,MAAQ,SAAS,gBAAkB,EAAE,CACtC,CAAC,MAAQ,SAAS,cAAgB,GAClC,CAAC,MAAQ,SAAS,SAAW,uBAC7B,CAAC,MAAQ,SAAS,UAAY,UAC9B,CAAC,MAAQ,SAAS,UAAY,UAGhC,SAAS,yBAAyB,KAAM,KAAM,KAAM,UAAW,CAC7D,CAAC,MAAQ,SAAS,SAAW,mBAC7B,CAAC,MAAQ,SAAS,KAAO,MAAQ,EACjC,CAAC,MAAQ,SAAS,KAAO,KACzB,CAAC,MAAQ,SAAS,KAAO,GACzB,CAAC,MAAQ,SAAS,KAAO,KACzB,CAAC,MAAQ,SAAS,UAAY,UAC9B,CAAC,MAAQ,SAAS,KAAO,KAAK,KAC9B,CAAC,MAAQ,SAAS,EAAI,GACtB,CAAC,MAAQ,SAAS,GAAK,GACvB,CAAC,MAAQ,SAAS,QAAU,GAC5B,IAAIA,IACA,IAAM,KAAK,EAAE,OAKjB,IAJA,CAAC,MAAQ,SAAS,EAAI,iBAAiB,UAAW,IAAI,CACtD,CAAC,MAAQ,SAAS,GAAK,iBAAiB,UAAW,IAAI,CACvD,CAAC,MAAQ,SAAS,IAAM,iBAAiB,UAAW,IAAI,CAEnD,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,CAAC,MAAQ,SAAS,EAAEA,KAAK,KAAK,EAAEA,MAAM,MAAQ,SAAS,KACvD,CAAC,MAAQ,SAAS,GAAGA,KAAK,KAAK,EAAEA,KAGnC,CAAC,MAAQ,SAAS,cAAgB,GAClC,CAAC,MAAQ,SAAS,gBAAkB,EAAE,CACtC,CAAC,MAAQ,SAAS,SAAW,uBAC7B,CAAC,MAAQ,SAAS,UAAY,UAC9B,CAAC,MAAQ,SAAS,UAAY,UAGhC,SAAS,uBAAuB,KAAM,KAAM,KAAM,UAAW,CAC3D,CAAC,MAAQ,SAAS,SAAW,iBAC7B,CAAC,MAAQ,SAAS,UAAY,KAAK,EACnC,CAAC,MAAQ,SAAS,WAAa,KAAK,KAAK,GACzC,CAAC,MAAQ,SAAS,QAAU,GAC5B,CAAC,MAAQ,SAAS,SAAW,CAC3B,UAAW,UACX,UAAW,EACX,MAAO,EACP,mBAAoB,GACrB,CACD,CAAC,MAAQ,SAAS,EAAI,GACtB,CAAC,MAAQ,SAAS,GAAK,GACvB,CAAC,MAAQ,SAAS,KAAO,KACzB,CAAC,MAAQ,SAAS,KAAO,MAAQ,EACjC,CAAC,MAAQ,SAAS,KAAO,KACzB,CAAC,MAAQ,SAAS,UAAY,UAC9B,CAAC,MAAQ,SAAS,KAAO,KAAK,KAC9B,CAAC,MAAQ,SAAS,EAAI,UACtB,CAAC,MAAQ,SAAS,GAAK,UACvB,CAAC,MAAQ,SAAS,cAAgB,GAClC,CAAC,MAAQ,SAAS,SAAW,uBAC7B,CAAC,MAAQ,SAAS,UAAY,UAC9B,CAAC,MAAQ,SAAS,iBAAmB,iBACrC,CAAC,MAAQ,SAAS,gBAAkB,CAAC,sBAAsB,KAAK,MAAQ,QAAQ,CAAC,CACjF,CAAC,MAAQ,SAAS,UAAY,UAGhC,SAAS,kCAAkC,KAAM,KAAM,KAAM,UAAW,CACtE,CAAC,MAAQ,SAAS,SAAW,mBAC7B,IAAIA,IACA,IAAM,KAAK,EAAE,OACb,EACA,EACA,GACA,GAEJ,IAAK,IAAI,EAAGA,IAAI,IAAM,EAAG,KAAK,EACxB,KAAK,EAAEA,KAAG,IAAM,KAAK,EAAEA,KAAG,GAAK,KAAK,EAAEA,IAAI,IAAM,KAAK,EAAEA,IAAI,GAAG,IAChE,EAAI,KAAK,EAAEA,KAAG,EACd,EAAI,KAAK,EAAEA,IAAI,GAAG,EAClB,GAAK,KAAK,EAAEA,KAAG,GACf,GAAK,KAAK,EAAEA,KAAG,IAEX,EAAE,SAAW,GAAK,EAAE,EAAE,KAAO,EAAE,IAAM,EAAE,KAAO,EAAE,KAAO,IAAI,cAAc,EAAE,GAAI,EAAE,GAAI,EAAE,GAAI,EAAE,GAAI,EAAE,GAAK,GAAG,GAAI,EAAE,GAAK,GAAG,GAAG,EAAI,IAAI,cAAc,EAAE,GAAI,EAAE,GAAI,EAAE,GAAI,EAAE,GAAI,EAAE,GAAK,GAAG,GAAI,EAAE,GAAK,GAAG,GAAG,EAAI,EAAE,SAAW,GAAK,EAAE,EAAE,KAAO,EAAE,IAAM,EAAE,KAAO,EAAE,IAAM,EAAE,KAAO,EAAE,KAAO,IAAI,cAAc,EAAE,GAAI,EAAE,GAAI,EAAE,GAAI,EAAE,GAAI,EAAE,GAAI,EAAE,GAAI,EAAE,GAAK,GAAG,GAAI,EAAE,GAAK,GAAG,GAAI,EAAE,GAAK,GAAG,GAAG,EAAI,IAAI,cAAc,EAAE,GAAI,EAAE,GAAI,EAAE,GAAI,EAAE,GAAI,EAAE,GAAI,EAAE,GAAI,EAAE,GAAK,GAAG,GAAI,EAAE,GAAK,GAAG,GAAI,EAAE,GAAK,GAAG,GAAG,IACrd,KAAK,EAAEA,KAAG,GAAK,KACf,KAAK,EAAEA,KAAG,GAAK,MAGb,EAAE,KAAO,EAAE,IAAM,EAAE,KAAO,EAAE,IAAM,GAAG,KAAO,GAAK,GAAG,KAAO,GAAK,GAAG,KAAO,GAAK,GAAG,KAAO,IACvF,EAAE,SAAW,GAAK,EAAE,KAAO,EAAE,IAAM,GAAG,KAAO,GAAK,GAAG,KAAO,KAC9D,KAAK,EAAEA,KAAG,GAAK,KACf,KAAK,EAAEA,KAAG,GAAK,OAMvB,CAAC,MAAQ,SAAS,gBAAkB,CAAC,sBAAsB,KAAK,MAAQ,QAAQ,CAAC,CACjF,CAAC,MAAQ,SAAS,KAAO,KACzB,CAAC,MAAQ,SAAS,UAAY,KAAK,EACnC,CAAC,MAAQ,SAAS,WAAa,KAAK,KAAK,GACzC,CAAC,MAAQ,SAAS,EAAI,GACtB,CAAC,MAAQ,SAAS,GAAK,GACvB,CAAC,MAAQ,SAAS,cAAgB,GAClC,CAAC,MAAQ,SAAS,KAAO,MAAQ,EACjC,CAAC,MAAQ,SAAS,KAAO,KACzB,CAAC,MAAQ,SAAS,UAAY,UAC9B,CAAC,MAAQ,SAAS,KAAO,KAAK,KAC9B,CAAC,MAAQ,SAAS,SAAW,uBAC7B,CAAC,MAAQ,SAAS,UAAY,UAC9B,CAAC,MAAQ,SAAS,iBAAmB,iBACrC,CAAC,MAAQ,SAAS,QAAU,GAC5B,IAAI,OAAS,KAAK,EAAE,GAAG,EAAE,OAIzB,IAHA,CAAC,MAAQ,SAAS,EAAI,iBAAiB,UAAW,OAAO,CACzD,CAAC,MAAQ,SAAS,GAAK,iBAAiB,UAAW,OAAO,CAErD,IAAI,EAAGA,IAAI,OAAQ,KAAK,EAC3B,CAAC,MAAQ,SAAS,EAAEA,KAAK,UACzB,CAAC,MAAQ,SAAS,GAAGA,KAAK,UAG5B,CAAC,MAAQ,SAAS,SAAW,CAC3B,UAAW,UACX,UAAW,EACX,MAAO,iBAAiB,UAAW,OAAO,CAC3C,CACD,CAAC,MAAQ,SAAS,UAAY,UAGhC,SAAS,QAAQ,KAAM,KAAM,KAAM,KAAM,UAAW,CAClD,IAAIE,IAEJ,GAAI,CAAC,KAAK,EAAE,OACV,IAAI,IAAI,cAAc,KAAM,KAAM,KAAM,UAAU,SACzC,OAAO,KAAK,EAAE,IAAO,SAC9B,IAAI,IAAI,yBAAyB,KAAM,KAAM,KAAM,UAAU,MAE7D,OAAQ,KAAR,CACE,IAAK,GACH,IAAI,IAAI,uBAAuB,KAAM,KAAM,KAAM,UAAU,CAC3D,MAEF,IAAK,GACH,IAAI,IAAI,kCAAkC,KAAM,KAAM,KAAM,UAAU,CACtE,MAEF,QACE,MAQN,OAJIA,IAAE,gBAAgB,QACpB,UAAU,mBAAmBA,IAAE,CAG1BA,IAMT,MAHS,CACE,QACV,GAEA,CAMC,yBAA2B,UAAY,CACzC,IAAI,cAAgB,CAAC,EAAG,EAAE,CAE1B,SAAS,cAAc,IAAK,CAC1B,IAAI,MAAQ,MAAQ,SAAS,KAC7B,KAAK,0BAA0B,CAC/B,CAAC,MAAQ,SAAS,MAAQ,MAAQ,SAAS,MAAQ,MAE9C,MAAQ,SAAS,GACpB,IAAI,UAAU,EAAE,MAAQ,SAAS,EAAE,EAAE,GAAI,EAAE,MAAQ,SAAS,EAAE,EAAE,IAAK,MAAQ,SAAS,EAAE,EAAE,GAAG,EAG1F,MAAQ,SAAS,GACpB,IAAI,OAAO,MAAQ,SAAS,EAAE,EAAE,IAAK,MAAQ,SAAS,EAAE,EAAE,IAAK,MAAQ,SAAS,EAAE,EAAE,GAAG,EAGpF,MAAQ,SAAS,IACpB,IAAI,aAAa,EAAE,MAAQ,SAAS,GAAG,GAAI,MAAQ,SAAS,GAAG,EAAE,EAG9D,MAAQ,SAAS,EACpB,IAAI,OAAO,EAAE,MAAQ,SAAS,EAAE,EAAE,CAElC,IAAI,QAAQ,EAAE,MAAQ,SAAS,GAAG,EAAE,CAAC,SAAS,MAAQ,SAAS,GAAG,EAAE,CAAC,SAAS,MAAQ,SAAS,GAAG,EAAE,CAAC,QAAQ,EAAE,MAAQ,SAAS,GAAG,EAAE,GAAG,CAAC,SAAS,MAAQ,SAAS,GAAG,EAAE,GAAG,CAAC,SAAS,MAAQ,SAAS,GAAG,EAAE,GAAG,EAG3M,MAAQ,SAAS,KAAK,EAAE,GACtB,MAAQ,SAAS,KAAK,EAAE,EAC3B,IAAI,WAAW,MAAQ,SAAS,GAAG,GAAI,MAAQ,SAAS,GAAG,EAAG,EAAE,MAAQ,SAAS,GAAG,EAAE,CAEtF,IAAI,WAAW,MAAQ,SAAS,GAAG,GAAI,MAAQ,SAAS,GAAG,EAAG,EAAE,CAGlE,IAAI,WAAW,MAAQ,SAAS,EAAE,EAAE,IAAK,MAAQ,SAAS,EAAE,EAAE,GAAI,EAAE,MAAQ,SAAS,EAAE,EAAE,GAAG,CAIhG,SAAS,YAAY,YAAa,CAChC,IAAK,MAAQ,SAAS,KAAK,WAAW,WAAa,MAAQ,SAAS,QAWpE,KAPK,MAAQ,SAAS,WACpB,KAAK,oBAAoB,CACzB,CAAC,MAAQ,SAAS,SAAW,IAG/B,KAAK,0BAA0B,EAE1B,MAAQ,SAAS,MAAQ,YAAa,CACzC,IAAI,UAsBJ,IApBC,MAAQ,SAAS,EAAE,gBAAgB,MAAQ,SAAS,IAAI,MAAM,EAE1D,MAAQ,SAAS,uBAAyB,IAC5C,MAAQ,SAAS,EAAE,UAAU,EAAE,MAAQ,SAAS,EAAE,EAAE,GAAI,EAAE,MAAQ,SAAS,EAAE,EAAE,IAAK,MAAQ,SAAS,EAAE,EAAE,GAAG,EAG1G,MAAQ,SAAS,uBAAyB,IAC5C,MAAQ,SAAS,EAAE,OAAO,MAAQ,SAAS,EAAE,EAAE,IAAK,MAAQ,SAAS,EAAE,EAAE,IAAK,MAAQ,SAAS,EAAE,EAAE,GAAG,EAGpG,MAAQ,SAAS,KAAO,MAAQ,SAAS,uBAAyB,IACpE,MAAQ,SAAS,EAAE,aAAa,EAAE,MAAQ,SAAS,GAAG,GAAI,MAAQ,SAAS,GAAG,EAAE,EAG9E,MAAQ,SAAS,IAAM,MAAQ,SAAS,uBAAyB,GACnE,MAAQ,SAAS,EAAE,OAAO,EAAE,MAAQ,SAAS,EAAE,EAAE,CACzC,EAAE,MAAQ,SAAS,IAAM,MAAQ,SAAS,uBAAyB,IAC3E,MAAQ,SAAS,EAAE,QAAQ,EAAE,MAAQ,SAAS,GAAG,EAAE,CAAC,SAAS,MAAQ,SAAS,GAAG,EAAE,CAAC,SAAS,MAAQ,SAAS,GAAG,EAAE,CAAC,QAAQ,EAAE,MAAQ,SAAS,GAAG,EAAE,GAAG,CAAC,SAAS,MAAQ,SAAS,GAAG,EAAE,GAAG,CAAC,SAAS,MAAQ,SAAS,GAAG,EAAE,GAAG,EAG3N,MAAQ,SAAS,aAAc,CAClC,IAAI,GACA,GAGJ,GAFA,WAAa,MAAQ,SAAS,KAAK,WAAW,WAEzC,MAAQ,SAAS,IAAM,MAAQ,SAAS,EAAE,YAAc,MAAQ,SAAS,EAAE,gBACzE,MAAQ,SAAS,EAAE,SAAS,WAAa,MAAQ,SAAS,EAAE,aAAe,MAAQ,SAAS,EAAE,UAAU,GAAG,GAC9G,IAAM,MAAQ,SAAS,EAAE,iBAAiB,MAAQ,SAAS,EAAE,UAAU,GAAG,EAAI,KAAQ,UAAW,EAAE,CACnG,IAAM,MAAQ,SAAS,EAAE,gBAAgB,MAAQ,SAAS,EAAE,UAAU,GAAG,EAAI,UAAW,EAAE,GAChF,MAAQ,SAAS,EAAE,SAAS,WAAa,MAAQ,SAAS,EAAE,aAAe,MAAQ,SAAS,EAAE,WAAW,MAAQ,SAAS,EAAE,UAAU,OAAS,GAAG,GAC5J,IAAM,MAAQ,SAAS,EAAE,gBAAgB,MAAQ,SAAS,EAAE,WAAW,MAAQ,SAAS,EAAE,UAAU,OAAS,GAAG,EAAI,UAAW,EAAE,CACjI,IAAM,MAAQ,SAAS,EAAE,iBAAiB,MAAQ,SAAS,EAAE,WAAW,MAAQ,SAAS,EAAE,UAAU,OAAS,GAAG,EAAI,KAAQ,UAAW,EAAE,GAE1I,IAAM,MAAQ,SAAS,EAAE,GACzB,IAAM,MAAQ,SAAS,EAAE,iBAAiB,MAAQ,SAAS,EAAE,SAAS,WAAa,MAAQ,SAAS,EAAE,WAAa,KAAQ,WAAY,MAAQ,SAAS,EAAE,WAAW,WAE7J,MAAQ,SAAS,KAAO,MAAQ,SAAS,GAAG,YAAc,MAAQ,SAAS,GAAG,YAAc,MAAQ,SAAS,GAAG,iBAAmB,MAAQ,SAAS,GAAG,eAAgB,CACjL,GAAK,EAAE,CACP,GAAK,EAAE,CACP,IAAI,IAAM,MAAQ,SAAS,GACvB,IAAM,MAAQ,SAAS,GAEvB,GAAG,SAAS,UAAY,GAAG,YAAc,GAAG,UAAU,GAAG,GAC3D,GAAG,GAAK,GAAG,gBAAgB,GAAG,UAAU,GAAG,EAAI,KAAQ,UAAW,EAAE,CACpE,GAAG,GAAK,GAAG,gBAAgB,GAAG,UAAU,GAAG,EAAI,KAAQ,UAAW,EAAE,CACpE,GAAG,GAAK,GAAG,eAAe,GAAG,UAAU,GAAG,EAAI,UAAW,EAAE,CAC3D,GAAG,GAAK,GAAG,eAAe,GAAG,UAAU,GAAG,EAAI,UAAW,EAAE,EAClD,GAAG,SAAS,UAAY,GAAG,YAAc,GAAG,UAAU,GAAG,UAAU,OAAS,GAAG,GACxF,GAAG,GAAK,GAAG,eAAe,GAAG,UAAU,GAAG,UAAU,OAAS,GAAG,EAAI,UAAW,EAAE,CACjF,GAAG,GAAK,GAAG,eAAe,GAAG,UAAU,GAAG,UAAU,OAAS,GAAG,EAAI,UAAW,EAAE,CACjF,GAAG,GAAK,GAAG,gBAAgB,GAAG,UAAU,GAAG,UAAU,OAAS,GAAG,EAAI,KAAQ,UAAW,EAAE,CAC1F,GAAG,GAAK,GAAG,gBAAgB,GAAG,UAAU,GAAG,UAAU,OAAS,GAAG,EAAI,KAAQ,UAAW,EAAE,GAE1F,GAAK,CAAC,GAAG,GAAI,GAAG,GAAG,CACnB,GAAG,GAAK,GAAG,gBAAgB,GAAG,SAAS,UAAY,GAAG,WAAa,KAAQ,UAAW,GAAG,WAAW,CACpG,GAAG,GAAK,GAAG,gBAAgB,GAAG,SAAS,UAAY,GAAG,WAAa,KAAQ,UAAW,GAAG,WAAW,OAGtG,GAAK,cACL,GAAK,IAGN,MAAQ,SAAS,EAAE,OAAO,CAAC,KAAK,MAAM,GAAG,GAAK,GAAG,GAAI,GAAG,GAAK,GAAG,GAAG,CAAC,EAGlE,MAAQ,SAAS,KAAK,IAAM,MAAQ,SAAS,KAAK,EAAE,GAClD,MAAQ,SAAS,KAAK,EAAE,GAC1B,MAAQ,SAAS,EAAE,WAAW,MAAQ,SAAS,GAAG,GAAI,MAAQ,SAAS,GAAG,EAAG,EAAE,MAAQ,SAAS,GAAG,EAAE,EAErG,MAAQ,SAAS,EAAE,WAAW,MAAQ,SAAS,GAAG,GAAI,MAAQ,SAAS,GAAG,EAAG,EAAE,EAGjF,MAAQ,SAAS,EAAE,WAAW,MAAQ,SAAS,EAAE,EAAE,IAAK,MAAQ,SAAS,EAAE,EAAE,GAAI,EAAE,MAAQ,SAAS,EAAE,EAAE,GAAG,CAIhH,CAAC,MAAQ,SAAS,SAAW,MAAQ,SAAS,KAAK,WAAW,SAGhE,SAAS,oBAAqB,CAC5B,GAAI,EAAE,MAAQ,SAAS,EAAE,GACtB,MAAQ,SAAS,IAAI,UAAU,EAAE,MAAQ,SAAS,EAAE,EAAE,GAAI,EAAE,MAAQ,SAAS,EAAE,EAAE,IAAK,MAAQ,SAAS,EAAE,EAAE,GAAG,CAE/G,CAAC,MAAQ,SAAS,uBAAyB,OAE3C,OAGF,GAAI,EAAE,MAAQ,SAAS,EAAE,gBAAgB,QACtC,MAAQ,SAAS,IAAI,OAAO,MAAQ,SAAS,EAAE,EAAE,IAAK,MAAQ,SAAS,EAAE,EAAE,IAAK,MAAQ,SAAS,EAAE,EAAE,GAAG,CAEzG,CAAC,MAAQ,SAAS,uBAAyB,OAE3C,OAGF,IAAK,MAAQ,SAAS,GACpB,GAAI,EAAE,MAAQ,SAAS,GAAG,gBAAgB,QAAU,EAAE,MAAQ,SAAS,GAAG,gBAAgB,QACvF,MAAQ,SAAS,IAAI,aAAa,EAAE,MAAQ,SAAS,GAAG,GAAI,MAAQ,SAAS,GAAG,EAAE,CAEnF,CAAC,MAAQ,SAAS,uBAAyB,OAE3C,QAIC,MAAQ,SAAS,GACd,MAAQ,SAAS,EAAE,gBAAgB,UACtC,MAAQ,SAAS,IAAI,OAAO,EAAE,MAAQ,SAAS,EAAE,EAAE,CAEpD,CAAC,MAAQ,SAAS,uBAAyB,GAEpC,EAAE,MAAQ,SAAS,GAAG,gBAAgB,QAAU,EAAE,MAAQ,SAAS,GAAG,gBAAgB,QAAU,EAAE,MAAQ,SAAS,GAAG,gBAAgB,QAAU,EAAE,MAAQ,SAAS,GAAG,gBAAgB,UAC9L,MAAQ,SAAS,IAAI,QAAQ,EAAE,MAAQ,SAAS,GAAG,EAAE,CAAC,SAAS,MAAQ,SAAS,GAAG,EAAE,CAAC,SAAS,MAAQ,SAAS,GAAG,EAAE,CAAC,QAAQ,EAAE,MAAQ,SAAS,GAAG,EAAE,GAAG,CAAC,SAAS,MAAQ,SAAS,GAAG,EAAE,GAAG,CAAC,SAAS,MAAQ,SAAS,GAAG,EAAE,GAAG,CAEhO,CAAC,MAAQ,SAAS,uBAAyB,GAI/C,SAAS,YAAa,EAItB,SAAS,mBAAmB,KAAM,CAChC,KAAK,oBAAoB,KAAK,EAE7B,MAAQ,SAAS,KAAK,mBAAmB,KAAK,CAE/C,CAAC,MAAQ,SAAS,SAAW,GAG/B,SAAS,kBAAkB,KAAM,KAAM,UAAW,CAwBhD,GAvBA,CAAC,MAAQ,SAAS,KAAO,KACzB,CAAC,MAAQ,SAAS,QAAU,GAC5B,CAAC,MAAQ,SAAS,SAAW,YAC7B,CAAC,MAAQ,SAAS,KAAO,KACzB,CAAC,MAAQ,SAAS,EAAI,IAAI,OAE1B,CAAC,MAAQ,SAAS,IAAM,IAAI,OAC5B,CAAC,MAAQ,SAAS,uBAAyB,EAC3C,KAAK,6BAA6B,WAAa,KAAK,CAEhD,KAAK,GAAK,KAAK,EAAE,GACnB,CAAC,MAAQ,SAAS,GAAK,gBAAgB,QAAQ,KAAM,KAAK,EAAE,EAAG,EAAG,EAAG,MAAQ,QAAQ,CACrF,CAAC,MAAQ,SAAS,GAAK,gBAAgB,QAAQ,KAAM,KAAK,EAAE,EAAG,EAAG,EAAG,MAAQ,QAAQ,CAEjF,KAAK,EAAE,IACT,CAAC,MAAQ,SAAS,GAAK,gBAAgB,QAAQ,KAAM,KAAK,EAAE,EAAG,EAAG,EAAG,MAAQ,QAAQ,GAGvF,CAAC,MAAQ,SAAS,EAAI,gBAAgB,QAAQ,KAAM,KAAK,GAAK,CAC5D,EAAG,CAAC,EAAG,EAAG,EAAE,CACb,CAAE,EAAG,EAAG,MAAQ,QAAQ,CAGvB,KAAK,GAAI,CAKX,GAJA,CAAC,MAAQ,SAAS,GAAK,gBAAgB,QAAQ,KAAM,KAAK,GAAI,EAAG,UAAW,MAAQ,QAAQ,CAC5F,CAAC,MAAQ,SAAS,GAAK,gBAAgB,QAAQ,KAAM,KAAK,GAAI,EAAG,UAAW,MAAQ,QAAQ,CAC5F,CAAC,MAAQ,SAAS,GAAK,gBAAgB,QAAQ,KAAM,KAAK,GAAI,EAAG,UAAW,MAAQ,QAAQ,CAExF,KAAK,GAAG,EAAE,GAAG,GAAI,CACnB,IAAIF,IACA,IAAM,KAAK,GAAG,EAAE,OAEpB,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,KAAK,GAAG,EAAEA,KAAG,GAAK,KAClB,KAAK,GAAG,EAAEA,KAAG,GAAK,KAItB,CAAC,MAAQ,SAAS,GAAK,gBAAgB,QAAQ,KAAM,KAAK,GAAI,EAAG,UAAW,MAAQ,QAAQ,CAE5F,CAAC,MAAQ,SAAS,GAAG,GAAK,QAE1B,CAAC,MAAQ,SAAS,EAAI,gBAAgB,QAAQ,KAAM,KAAK,GAAK,CAC5D,EAAG,EACJ,CAAE,EAAG,UAAW,MAAQ,QAAQ,CAG/B,KAAK,KACP,CAAC,MAAQ,SAAS,GAAK,gBAAgB,QAAQ,KAAM,KAAK,GAAI,EAAG,UAAW,MAAQ,QAAQ,CAC5F,CAAC,MAAQ,SAAS,GAAK,gBAAgB,QAAQ,KAAM,KAAK,GAAI,EAAG,UAAW,MAAQ,QAAQ,EAG9F,CAAC,MAAQ,SAAS,EAAI,gBAAgB,QAAQ,KAAM,KAAK,GAAK,CAC5D,EAAG,CAAC,EAAG,EAAG,EAAE,CACb,CAAE,EAAG,EAAG,MAAQ,QAAQ,CACzB,CAAC,MAAQ,SAAS,EAAI,gBAAgB,QAAQ,KAAM,KAAK,GAAK,CAC5D,EAAG,CAAC,IAAK,IAAK,IAAI,CACnB,CAAE,EAAG,IAAM,MAAQ,QAAQ,CAExB,KAAK,EACP,CAAC,MAAQ,SAAS,EAAI,gBAAgB,QAAQ,KAAM,KAAK,EAAG,EAAG,IAAM,KAAK,CAE1E,CAAC,MAAQ,SAAS,EAAI,CACpB,KAAM,GACN,EAAG,EACJ,CAGH,CAAC,MAAQ,SAAS,SAAW,IAEvB,MAAQ,SAAS,kBAAkB,QACvC,KAAK,SAAS,GAAK,CAIvB,kBAAkB,UAAY,CACb,cACf,SAAU,YACU,mBACR,WACb,CACD,gBAAgB,CAAC,yBAAyB,CAAE,kBAAkB,CAC9D,kBAAkB,UAAU,mBAAqB,mBACjD,kBAAkB,UAAU,oBAAsB,yBAAyB,UAAU,mBAErF,SAAS,qBAAqB,KAAM,KAAM,UAAW,CACnD,OAAO,IAAI,kBAAkB,KAAM,KAAM,UAAU,CAGrD,MAAO,CACiB,qBACvB,GACA,CAIH,SAAS,WAAY,CACnB,CAAC,MAAQ,SAAS,EAAI,GACtB,CAAC,MAAQ,SAAS,QAAU,EAC5B,CAAC,MAAQ,SAAS,WAAa,EAC/B,CAAC,MAAQ,SAAS,EAAI,kBAAkB,MAAQ,SAAS,WAAW,CACpE,CAAC,MAAQ,SAAS,EAAI,kBAAkB,MAAQ,SAAS,WAAW,CACpE,CAAC,MAAQ,SAAS,EAAI,kBAAkB,MAAQ,SAAS,WAAW,CAGtE,UAAU,UAAU,YAAc,SAAU,OAAQ,IAAK,CACvD,CAAC,MAAQ,SAAS,EAAI,OACtB,KAAK,UAAU,IAAI,CAGnB,IAFA,IAAIA,IAAI,EAEDA,IAAI,KACT,CAAC,MAAQ,SAAS,EAAEA,KAAK,UAAU,YAAY,CAC/C,CAAC,MAAQ,SAAS,EAAEA,KAAK,UAAU,YAAY,CAC/C,CAAC,MAAQ,SAAS,EAAEA,KAAK,UAAU,YAAY,CAC/C,KAAK,GAIT,UAAU,UAAU,UAAY,SAAU,IAAK,CAC7C,MAAQ,MAAQ,SAAS,WAAa,KACpC,KAAK,mBAAmB,CAG1B,CAAC,MAAQ,SAAS,QAAU,KAG9B,UAAU,UAAU,kBAAoB,UAAY,CAClD,CAAC,MAAQ,SAAS,GAAK,MAAQ,SAAS,EAAE,OAAO,kBAAkB,MAAQ,SAAS,WAAW,CAAC,CAChG,CAAC,MAAQ,SAAS,GAAK,MAAQ,SAAS,EAAE,OAAO,kBAAkB,MAAQ,SAAS,WAAW,CAAC,CAChG,CAAC,MAAQ,SAAS,GAAK,MAAQ,SAAS,EAAE,OAAO,kBAAkB,MAAQ,SAAS,WAAW,CAAC,CAChG,CAAC,MAAQ,SAAS,YAAc,GAGlC,UAAU,UAAU,QAAU,SAAU,IAAG,EAAG,KAAM,IAAK,QAAS,CAChE,IAAI,IAOJ,OANA,CAAC,MAAQ,SAAS,QAAU,KAAK,KAAK,MAAQ,SAAS,QAAS,IAAM,EAAE,EAEnE,MAAQ,SAAS,UAAY,MAAQ,SAAS,YACjD,KAAK,mBAAmB,CAGlB,KAAR,CACE,IAAK,IACH,KAAO,MAAQ,SAAS,EACxB,MAEF,IAAK,IACH,KAAO,MAAQ,SAAS,EACxB,MAEF,IAAK,IACH,KAAO,MAAQ,SAAS,EACxB,MAEF,QACE,IAAM,EAAE,CACR,OAGA,CAAC,IAAI,MAAQ,IAAI,MAAQ,CAAC,WAC5B,IAAI,KAAO,UAAU,YAAY,EAGnC,IAAI,KAAK,GAAKQ,IACd,IAAI,KAAK,GAAK,GAGhB,UAAU,UAAU,YAAc,SAAU,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,QAAS,CAChF,KAAK,QAAQ,GAAI,GAAI,IAAK,IAAK,QAAQ,CACvC,KAAK,QAAQ,GAAI,GAAI,IAAK,IAAK,QAAQ,CACvC,KAAK,QAAQ,GAAI,GAAI,IAAK,IAAK,QAAQ,EAGzC,UAAU,UAAU,QAAU,UAAY,CACxC,IAAI,QAAU,IAAI,UAClB,QAAQ,aAAa,MAAQ,SAAS,GAAI,MAAQ,SAAS,QAAQ,CACnE,IAAI,UAAY,MAAQ,SAAS,EAC7B,WAAa,MAAQ,SAAS,EAC9B,UAAY,MAAQ,SAAS,EAC7B,KAAO,GAEN,MAAQ,SAAS,IACpB,QAAQ,YAAY,SAAS,GAAG,GAAI,SAAS,GAAG,GAAI,SAAS,GAAG,GAAI,SAAS,GAAG,GAAI,UAAU,GAAG,GAAI,UAAU,GAAG,GAAI,EAAG,GAAM,CAC/H,KAAO,GAGT,IAAI,KAAO,MAAQ,SAAS,QAAU,EAClC,KAAO,MAAQ,SAAS,QACxBR,IAEJ,IAAK,IAAI,KAAMA,IAAI,IAAK,KAAK,EAC3B,QAAQ,YAAY,SAAS,KAAK,GAAI,SAAS,KAAK,GAAI,SAAS,KAAK,GAAI,SAAS,KAAK,GAAI,UAAU,KAAK,GAAI,UAAU,KAAK,GAAIA,IAAG,GAAM,CAC3I,MAGF,OAAO,SAQT,IAAI,qBAAuB,UAAY,CACrC,IAAI,UAAY,QAEhB,SAAS,iBAAiB,SAAU,cAAe,QAAS,CAC1D,IAAI,eAAiB,QAAQ,UACzB,SACA,SACA,OACA,EACA,EACA,KACA,KACA,KACA,YACA,IAAM,MAAQ,SAAS,UAE3B,GAAI,SAAW,GAAG,GAAG,GAAK,MAAQ,SAAS,WACzC,SAAW,GAAG,GAAG,EAAE,GACnB,OAAS,GACT,eAAiB,UACR,UAAY,GAAG,GAAG,OAAS,GAAG,GAAK,MAAQ,SAAS,WAC7D,SAAW,GAAG,GAAG,OAAS,GAAG,EAAI,GAAG,GAAG,OAAS,GAAG,EAAE,GAAK,GAAG,GAAG,OAAS,GAAG,EAAE,GAO9E,OAAS,OACJ,CAOL,IANA,IAAIA,IAAI,eACJ,IAAM,GAAG,OAAS,EAClB,KAAO,GACP,QACA,YAEG,OACL,QAAU,GAAGA,KACb,YAAc,GAAGA,IAAI,GAEjB,cAAY,GAAK,MAAQ,SAAS,WAAa,YAI/CA,IAAI,IAAM,EACZ,KAAK,EAEL,KAAO,GAOX,GAHA,OAAS,QAAQ,IAAM,EACvB,eAAiBA,IAEb,CAAC,OAAQ,CACX,GAAI,UAAY,YAAY,GAAK,MAAQ,SAAS,WAChD,KAAO,UACE,SAAW,QAAQ,GAAK,MAAQ,SAAS,WAClD,KAAO,MACF,CACL,IAAI,IAEA,QAAQ,OACV,IAAM,QAAQ,QAEd,IAAM,cAAc,gBAAgB,QAAQ,EAAE,EAAG,QAAQ,EAAE,EAAG,QAAQ,EAAE,EAAG,QAAQ,EAAE,EAAE,CAAC,IACxF,QAAQ,OAAS,KAGnB,KAAO,KAAK,UAAY,QAAQ,GAAK,MAAQ,SAAS,cAAgB,YAAY,GAAK,MAAQ,SAAS,YAAc,QAAQ,GAAK,MAAQ,SAAS,aAAa,CAGnK,SAAW,YAAY,EAAI,YAAY,EAAE,GAAK,QAAQ,EAAE,GAG1D,SAAW,QAAQ,EAAE,GAOvB,IAJA,KAAO,cAAc,QACrB,KAAO,SAAS,EAAE,GAAG,OACrB,QAAQ,UAAY,eAEf,EAAI,EAAG,EAAI,KAAM,GAAK,EACzB,IAAK,EAAI,EAAG,EAAI,KAAM,GAAK,EACzB,YAAc,OAAS,SAAS,EAAE,GAAG,GAAK,SAAS,EAAE,GAAG,IAAM,SAAS,EAAE,GAAG,GAAK,SAAS,EAAE,GAAG,IAAM,KACrG,cAAc,EAAE,GAAG,GAAK,YACxB,YAAc,OAAS,SAAS,EAAE,GAAG,GAAK,SAAS,EAAE,GAAG,IAAM,SAAS,EAAE,GAAG,GAAK,SAAS,EAAE,GAAG,IAAM,KACrG,cAAc,EAAE,GAAG,GAAK,YACxB,YAAc,OAAS,SAAS,EAAE,GAAG,GAAK,SAAS,EAAE,GAAG,IAAM,SAAS,EAAE,GAAG,GAAK,SAAS,EAAE,GAAG,IAAM,KACrG,cAAc,EAAE,GAAG,GAAK,YAK9B,SAAS,6BAA8B,CACrC,IAAI,UAAY,MAAQ,SAAS,KAAK,eAAiB,MAAQ,SAAS,WACpE,UAAY,MAAQ,SAAS,UAAU,GAAG,GAAK,MAAQ,SAAS,WAChE,SAAW,MAAQ,SAAS,WAAW,MAAQ,SAAS,UAAU,OAAS,GAAG,GAAK,MAAQ,SAAS,WACpG,WAAa,MAAQ,SAAS,SAAS,UAS3C,OAPM,YAAc,YAAc,UAAY,UAAY,SAAW,UAAY,UAAY,SAAW,SAAW,WAEjH,CAAC,MAAQ,SAAS,SAAS,UAAY,UAAY,UAAY,MAAQ,SAAS,SAAS,UAAY,EACrG,KAAK,iBAAiB,UAAW,MAAQ,SAAS,IAAK,MAAQ,SAAS,SAAS,EAGnF,CAAC,MAAQ,SAAS,SAAS,UAAY,UAC/B,MAAQ,SAAS,GAG3B,SAAS,YAAa,CACpB,CAAC,MAAQ,SAAS,OAAS,MAAQ,SAAS,qBAG9C,SAAS,YAAY,OAAQ,OAAQ,CACnC,GAAI,OAAO,UAAY,OAAO,SAAW,OAAO,IAAM,OAAO,EAC3D,MAAO,GAGT,IAAIA,IACA,IAAM,OAAO,QAEjB,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,GAAI,OAAO,EAAEA,KAAG,KAAO,OAAO,EAAEA,KAAG,IAAM,OAAO,EAAEA,KAAG,KAAO,OAAO,EAAEA,KAAG,IAAM,OAAO,EAAEA,KAAG,KAAO,OAAO,EAAEA,KAAG,IAAM,OAAO,EAAEA,KAAG,KAAO,OAAO,EAAEA,KAAG,IAAM,OAAO,EAAEA,KAAG,KAAO,OAAO,EAAEA,KAAG,IAAM,OAAO,EAAEA,KAAG,KAAO,OAAO,EAAEA,KAAG,GAC1N,MAAO,GAIX,MAAO,GAGT,SAAS,UAAU,QAAS,CACrB,aAAa,MAAQ,SAAS,EAAG,QAAQ,GAC5C,CAAC,MAAQ,SAAS,EAAI,UAAU,MAAM,QAAQ,EAE7C,MAAQ,SAAS,qBAAqB,eAAe,EAErD,MAAQ,SAAS,qBAAqB,UAAU,MAAQ,SAAS,EAAE,CAEpE,CAAC,MAAQ,SAAS,KAAO,GACzB,CAAC,MAAQ,SAAS,OAAS,MAAQ,SAAS,sBAIhD,SAAS,wBAAyB,CAChC,IAAK,MAAQ,SAAS,KAAK,WAAW,WAAa,MAAQ,SAAS,QAIpE,IAAI,EAAE,MAAQ,SAAS,gBAAgB,OAAQ,CAC7C,CAAC,MAAQ,SAAS,KAAO,GACzB,OAGF,IAAK,MAAQ,SAAS,KAAM,CAC1B,KAAK,WAAW,MAAQ,SAAS,GAAG,CACpC,OAGF,CAAC,MAAQ,SAAS,KAAO,GACzB,CAAC,MAAQ,SAAS,KAAO,GACzB,IAAI,YAEC,MAAQ,SAAS,IACN,MAAQ,SAAS,IACrB,MAAQ,SAAS,KAAK,IAClB,MAAQ,SAAS,KAAK,GAAG,GAEzB,MAAQ,SAAS,KAAK,GAAG,EAGrCA,IACA,KAAO,MAAQ,SAAS,gBAAgB,OAE5C,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,YAAc,MAAQ,SAAS,gBAAgBA,KAAG,WAAW,CAG/D,KAAK,UAAU,WAAW,CAC1B,CAAC,MAAQ,SAAS,KAAO,GACzB,CAAC,MAAQ,SAAS,SAAW,MAAQ,SAAS,KAAK,WAAW,SAGhE,SAAS,cAAc,KAAM,KAAM,KAAM,CACvC,CAAC,MAAQ,SAAS,SAAW,QAC7B,CAAC,MAAQ,SAAS,KAAO,KAAK,KAC9B,CAAC,MAAQ,SAAS,UAAY,KAC9B,CAAC,MAAQ,SAAS,KAAO,KACzB,CAAC,MAAQ,SAAS,KAAO,KACzB,CAAC,MAAQ,SAAS,EAAI,GACtB,CAAC,MAAQ,SAAS,GAAK,GACvB,CAAC,MAAQ,SAAS,KAAO,GACzB,IAAI,SAAW,OAAS,EAAI,KAAK,GAAG,EAAI,KAAK,GAAG,EAChD,CAAC,MAAQ,SAAS,EAAI,UAAU,MAAM,SAAS,CAC/C,CAAC,MAAQ,SAAS,GAAK,UAAU,OAAO,MAAQ,SAAS,EAAE,CAC3D,CAAC,MAAQ,SAAS,qBAAuB,oBAAoB,oBAAoB,CACjF,CAAC,MAAQ,SAAS,OAAS,MAAQ,SAAS,sBAE3C,MAAQ,SAAS,MAAM,UAAU,MAAQ,SAAS,EAAE,CAErD,CAAC,MAAQ,SAAS,MAAQ,WAC1B,CAAC,MAAQ,SAAS,gBAAkB,EAAE,CAGxC,SAAS,UAAU,eAAgB,EAChC,MAAQ,SAAS,gBAAgB,KAAK,eAAe,EAErD,MAAQ,SAAS,UAAU,mBAAmB,MAAQ,QAAQ,CAGjE,cAAc,UAAU,iBAAmB,iBAC3C,cAAc,UAAU,SAAW,uBACnC,cAAc,UAAU,UAAY,UACpC,cAAc,UAAU,UAAY,UAEpC,SAAS,uBAAuB,KAAM,KAAM,KAAM,CAChD,CAAC,MAAQ,SAAS,SAAW,QAC7B,CAAC,MAAQ,SAAS,KAAO,KAAK,KAC9B,CAAC,MAAQ,SAAS,KAAO,KACzB,CAAC,MAAQ,SAAS,UAAY,KAC9B,CAAC,MAAQ,SAAS,WAAa,KAAK,KAAK,GACzC,CAAC,MAAQ,SAAS,UAAY,OAAS,EAAI,KAAK,GAAG,EAAI,KAAK,GAAG,EAC/D,CAAC,MAAQ,SAAS,EAAI,GACtB,CAAC,MAAQ,SAAS,GAAK,GACvB,IAAI,KAAO,MAAQ,SAAS,UAAU,GAAG,EAAE,GAAG,EAAE,OAChD,CAAC,MAAQ,SAAS,EAAI,UAAU,YAAY,EAE3C,MAAQ,SAAS,EAAE,aAAa,MAAQ,SAAS,UAAU,GAAG,EAAE,GAAG,EAAG,IAAI,CAE3E,CAAC,MAAQ,SAAS,GAAK,UAAU,OAAO,MAAQ,SAAS,EAAE,CAC3D,CAAC,MAAQ,SAAS,qBAAuB,oBAAoB,oBAAoB,CACjF,CAAC,MAAQ,SAAS,OAAS,MAAQ,SAAS,sBAE3C,MAAQ,SAAS,MAAM,UAAU,MAAQ,SAAS,EAAE,CAErD,CAAC,MAAQ,SAAS,UAAY,UAC9B,CAAC,MAAQ,SAAS,MAAQ,WAC1B,CAAC,MAAQ,SAAS,SAAW,CAC3B,UAAW,UACX,UAAW,EACZ,CACD,CAAC,MAAQ,SAAS,gBAAkB,CAAC,4BAA4B,KAAK,MAAQ,QAAQ,CAAC,CAGzF,uBAAuB,UAAU,SAAW,uBAC5C,uBAAuB,UAAU,iBAAmB,iBACpD,uBAAuB,UAAU,UAAY,UAC7C,uBAAuB,UAAU,UAAY,UAE7C,IAAI,iBAAmB,UAAY,CACjC,IAAI,OAAS,YAEb,SAAS,wBAAwB,KAAM,KAAM,CAO3C,CAAC,MAAQ,SAAS,EAAI,UAAU,YAAY,EAE3C,MAAQ,SAAS,EAAE,YAAY,GAAM,EAAE,CAExC,CAAC,MAAQ,SAAS,qBAAuB,oBAAoB,oBAAoB,CACjF,CAAC,MAAQ,SAAS,OAAS,MAAQ,SAAS,sBAE3C,MAAQ,SAAS,qBAAqB,UAAU,MAAQ,SAAS,EAAE,CAEpE,CAAC,MAAQ,SAAS,EAAI,KAAK,EAC3B,CAAC,MAAQ,SAAS,KAAO,KACzB,CAAC,MAAQ,SAAS,KAAO,KAAK,KAC9B,CAAC,MAAQ,SAAS,QAAU,GAC5B,KAAK,6BAA6B,KAAK,CACvC,CAAC,MAAQ,SAAS,EAAI,gBAAgB,QAAQ,KAAM,KAAK,EAAG,EAAG,EAAG,MAAQ,QAAQ,CAClF,CAAC,MAAQ,SAAS,EAAI,gBAAgB,QAAQ,KAAM,KAAK,EAAG,EAAG,EAAG,MAAQ,QAAQ,EAE7E,MAAQ,SAAS,kBAAkB,OACtC,CAAC,MAAQ,SAAS,EAAI,IAEtB,CAAC,MAAQ,SAAS,EAAI,GACtB,KAAK,kBAAkB,EAsD3B,MAlDA,yBAAwB,UAAY,CAClC,MAAO,WACP,SAAU,UAAY,EACf,MAAQ,SAAS,KAAK,WAAW,WAAa,MAAQ,SAAS,UAIpE,CAAC,MAAQ,SAAS,SAAW,MAAQ,SAAS,KAAK,WAAW,QAC9D,KAAK,0BAA0B,EAE1B,MAAQ,SAAS,MACpB,KAAK,kBAAkB,GAG3B,iBAAkB,UAAY,CAC5B,IAAI,IAAM,MAAQ,SAAS,EAAE,EAAE,GAC3B,IAAM,MAAQ,SAAS,EAAE,EAAE,GAC3B,IAAM,MAAQ,SAAS,EAAE,EAAE,GAAK,EAChC,IAAM,MAAQ,SAAS,EAAE,EAAE,GAAK,EAEhC,KAAO,MAAQ,SAAS,IAAM,EAE9B,IAAM,MAAQ,SAAS,EAC3B,GAAG,EAAE,GAAG,GAAK,GACb,GAAG,EAAE,GAAG,GAAK,GAAK,GAClB,GAAG,EAAE,GAAG,GAAK,IAAM,GAAK,GAAK,GAAK,GAClC,GAAG,EAAE,GAAG,GAAK,GACb,GAAG,EAAE,GAAG,GAAK,GACb,GAAG,EAAE,GAAG,GAAK,GAAK,GAClB,GAAG,EAAE,GAAG,GAAK,IAAM,GAAK,GAAK,GAAK,GAClC,GAAG,EAAE,GAAG,GAAK,GACb,GAAG,EAAE,GAAG,GAAK,IAAM,GAAK,GAAK,OAAS,GAAK,GAAK,OAChD,GAAG,EAAE,GAAG,GAAK,GAAK,GAClB,GAAG,EAAE,GAAG,GAAK,IAAM,GAAK,GAAK,GAAK,GAClC,GAAG,EAAE,GAAG,GAAK,GAAK,GAAK,OACvB,GAAG,EAAE,GAAG,GAAK,IAAM,GAAK,GAAK,OAAS,GAAK,GAAK,OAChD,GAAG,EAAE,GAAG,GAAK,GAAK,GAClB,GAAG,EAAE,GAAG,GAAK,IAAM,GAAK,GAAK,GAAK,GAClC,GAAG,EAAE,GAAG,GAAK,GAAK,GAAK,OACvB,GAAG,EAAE,GAAG,GAAK,IAAM,GAAK,GAAK,OAAS,GAAK,GAAK,OAChD,GAAG,EAAE,GAAG,GAAK,GAAK,GAClB,GAAG,EAAE,GAAG,GAAK,IAAM,GAAK,GAAK,GAAK,GAClC,GAAG,EAAE,GAAG,GAAK,GAAK,GAAK,OACvB,GAAG,EAAE,GAAG,GAAK,IAAM,GAAK,GAAK,OAAS,GAAK,GAAK,OAChD,GAAG,EAAE,GAAG,GAAK,GAAK,GAClB,GAAG,EAAE,GAAG,GAAK,IAAM,GAAK,GAAK,GAAK,GAClC,GAAG,EAAE,GAAG,GAAK,GAAK,GAAK,QAE1B,CACD,gBAAgB,CAAC,yBAAyB,CAAE,wBAAwB,CAC7D,0BACN,CAEC,kBAAoB,UAAY,CAClC,SAAS,yBAAyB,KAAM,KAAM,CAC5C,CAAC,MAAQ,SAAS,EAAI,UAAU,YAAY,EAE3C,MAAQ,SAAS,EAAE,YAAY,GAAM,EAAE,CAExC,CAAC,MAAQ,SAAS,KAAO,KACzB,CAAC,MAAQ,SAAS,KAAO,KAAK,KAC9B,CAAC,MAAQ,SAAS,KAAO,KACzB,CAAC,MAAQ,SAAS,QAAU,GAC5B,CAAC,MAAQ,SAAS,EAAI,KAAK,EAC3B,KAAK,6BAA6B,KAAK,CAEnC,KAAK,KAAO,GACd,CAAC,MAAQ,SAAS,GAAK,gBAAgB,QAAQ,KAAM,KAAK,GAAI,EAAG,EAAG,MAAQ,QAAQ,CACpF,CAAC,MAAQ,SAAS,GAAK,gBAAgB,QAAQ,KAAM,KAAK,GAAI,EAAG,IAAM,MAAQ,QAAQ,CACvF,CAAC,MAAQ,SAAS,eAAiB,MAAQ,SAAS,mBAEpD,CAAC,MAAQ,SAAS,eAAiB,MAAQ,SAAS,qBAGtD,CAAC,MAAQ,SAAS,GAAK,gBAAgB,QAAQ,KAAM,KAAK,GAAI,EAAG,EAAG,MAAQ,QAAQ,CACpF,CAAC,MAAQ,SAAS,EAAI,gBAAgB,QAAQ,KAAM,KAAK,EAAG,EAAG,EAAG,MAAQ,QAAQ,CAClF,CAAC,MAAQ,SAAS,EAAI,gBAAgB,QAAQ,KAAM,KAAK,EAAG,EAAG,UAAW,MAAQ,QAAQ,CAC1F,CAAC,MAAQ,SAAS,GAAK,gBAAgB,QAAQ,KAAM,KAAK,GAAI,EAAG,EAAG,MAAQ,QAAQ,CACpF,CAAC,MAAQ,SAAS,GAAK,gBAAgB,QAAQ,KAAM,KAAK,GAAI,EAAG,IAAM,MAAQ,QAAQ,CACvF,CAAC,MAAQ,SAAS,qBAAuB,oBAAoB,oBAAoB,EAEhF,MAAQ,SAAS,qBAAqB,UAAU,MAAQ,SAAS,EAAE,CAEpE,CAAC,MAAQ,SAAS,OAAS,MAAQ,SAAS,sBAEvC,MAAQ,SAAS,kBAAkB,OACtC,CAAC,MAAQ,SAAS,EAAI,IAEtB,CAAC,MAAQ,SAAS,EAAI,GACtB,KAAK,eAAe,EA6FxB,MAzFA,0BAAyB,UAAY,CACnC,MAAO,WACP,SAAU,UAAY,EACf,MAAQ,SAAS,KAAK,WAAW,WAAa,MAAQ,SAAS,UAIpE,CAAC,MAAQ,SAAS,SAAW,MAAQ,SAAS,KAAK,WAAW,QAC9D,KAAK,0BAA0B,EAE1B,MAAQ,SAAS,MACpB,KAAK,eAAe,GAGxB,kBAAmB,UAAY,CAC7B,IAAI,OAAS,KAAK,OAAO,MAAQ,SAAS,GAAG,EAAE,CAAG,EAC9C,MAAQ,KAAK,GAAK,EAAI,OAKtB,SAAW,GACX,SAAW,MAAQ,SAAS,GAAG,EAC/B,UAAY,MAAQ,SAAS,GAAG,EAChC,WAAa,MAAQ,SAAS,GAAG,EACjC,YAAc,MAAQ,SAAS,GAAG,EAClC,iBAAmB,EAAI,KAAK,GAAK,SAAW,OAAS,GACrD,kBAAoB,EAAI,KAAK,GAAK,UAAY,OAAS,GACvDA,IACA,IACA,UACA,aACA,WAAa,CAAC,KAAK,GAAK,EAC5B,aAAe,MAAQ,SAAS,EAAE,EAClC,IAAI,KAAO,MAAQ,SAAS,KAAK,IAAM,EAAI,GAAK,EAGhD,IAFA,CAAC,MAAQ,SAAS,EAAE,QAAU,EAEzB,IAAI,EAAGA,IAAI,OAAQ,KAAK,EAAG,CAC9B,IAAM,SAAW,QAAU,SAC3B,UAAY,SAAW,UAAY,WACnC,aAAe,SAAW,iBAAmB,kBAC7C,IAAIQ,IAAI,IAAM,KAAK,IAAI,WAAW,CAC9B,EAAI,IAAM,KAAK,IAAI,WAAW,CAC9B,GAAKA,MAAM,GAAK,IAAM,EAAI,EAAI,EAAI,KAAK,KAAKA,IAAIA,IAAI,EAAI,EAAE,CAC1D,GAAKA,MAAM,GAAK,IAAM,EAAI,EAAI,CAACA,IAAI,KAAK,KAAKA,IAAIA,IAAI,EAAI,EAAE,CAC/D,KAAK,EAAE,MAAQ,SAAS,EAAE,EAAE,GAC5B,GAAK,EAAE,MAAQ,SAAS,EAAE,EAAE,IAE3B,MAAQ,SAAS,EAAE,YAAYA,IAAG,EAAGA,IAAI,GAAK,aAAe,UAAY,IAAK,EAAI,GAAK,aAAe,UAAY,IAAKA,IAAI,GAAK,aAAe,UAAY,IAAK,EAAI,GAAK,aAAe,UAAY,IAAKR,IAAG,GAAK,CAOlN,SAAW,CAAC,SACZ,YAAc,MAAQ,MAG1B,qBAAsB,UAAY,CAChC,IAAI,OAAS,KAAK,OAAO,MAAQ,SAAS,GAAG,EAAE,CAC3C,MAAQ,KAAK,GAAK,EAAI,OACtB,KAAO,MAAQ,SAAS,GAAG,EAC3B,WAAa,MAAQ,SAAS,GAAG,EACjC,aAAe,EAAI,KAAK,GAAK,KAAO,OAAS,GAC7CA,IACA,WAAa,CAAC,KAAK,GAAK,GACxB,KAAO,MAAQ,SAAS,KAAK,IAAM,EAAI,GAAK,EAIhD,IAHA,aAAe,MAAQ,SAAS,EAAE,EAClC,CAAC,MAAQ,SAAS,EAAE,QAAU,EAEzB,IAAI,EAAGA,IAAI,OAAQ,KAAK,EAAG,CAC9B,IAAIQ,IAAI,IAAM,KAAK,IAAI,WAAW,CAC9B,EAAI,IAAM,KAAK,IAAI,WAAW,CAC9B,GAAKA,MAAM,GAAK,IAAM,EAAI,EAAI,EAAI,KAAK,KAAKA,IAAIA,IAAI,EAAI,EAAE,CAC1D,GAAKA,MAAM,GAAK,IAAM,EAAI,EAAI,CAACA,IAAI,KAAK,KAAKA,IAAIA,IAAI,EAAI,EAAE,CAC/D,KAAK,EAAE,MAAQ,SAAS,EAAE,EAAE,GAC5B,GAAK,EAAE,MAAQ,SAAS,EAAE,EAAE,IAE3B,MAAQ,SAAS,EAAE,YAAYA,IAAG,EAAGA,IAAI,GAAK,aAAe,UAAY,IAAK,EAAI,GAAK,aAAe,UAAY,IAAKA,IAAI,GAAK,aAAe,UAAY,IAAK,EAAI,GAAK,aAAe,UAAY,IAAKR,IAAG,GAAK,CAElN,YAAc,MAAQ,IAGxB,CAAC,MAAQ,SAAS,MAAM,OAAS,EACjC,CAAC,MAAQ,SAAS,MAAM,IAAM,MAAQ,SAAS,GAElD,CACD,gBAAgB,CAAC,yBAAyB,CAAE,yBAAyB,CAC9D,2BACN,CAEC,kBAAoB,UAAY,CAClC,SAAS,yBAAyB,KAAM,KAAM,CAC5C,CAAC,MAAQ,SAAS,EAAI,UAAU,YAAY,CAC5C,CAAC,MAAQ,SAAS,EAAE,EAAI,GACxB,CAAC,MAAQ,SAAS,qBAAuB,oBAAoB,oBAAoB,EAEhF,MAAQ,SAAS,qBAAqB,UAAU,MAAQ,SAAS,EAAE,CAEpE,CAAC,MAAQ,SAAS,OAAS,MAAQ,SAAS,qBAC5C,CAAC,MAAQ,SAAS,KAAO,KACzB,CAAC,MAAQ,SAAS,KAAO,KAAK,KAC9B,CAAC,MAAQ,SAAS,QAAU,GAC5B,CAAC,MAAQ,SAAS,EAAI,KAAK,EAC3B,KAAK,6BAA6B,KAAK,CACvC,CAAC,MAAQ,SAAS,EAAI,gBAAgB,QAAQ,KAAM,KAAK,EAAG,EAAG,EAAG,MAAQ,QAAQ,CAClF,CAAC,MAAQ,SAAS,EAAI,gBAAgB,QAAQ,KAAM,KAAK,EAAG,EAAG,EAAG,MAAQ,QAAQ,CAClF,CAAC,MAAQ,SAAS,EAAI,gBAAgB,QAAQ,KAAM,KAAK,EAAG,EAAG,EAAG,MAAQ,QAAQ,EAE7E,MAAQ,SAAS,kBAAkB,OACtC,CAAC,MAAQ,SAAS,EAAI,IAEtB,CAAC,MAAQ,SAAS,EAAI,GACtB,KAAK,mBAAmB,EA6E5B,MAzEA,0BAAyB,UAAY,CACnC,kBAAmB,UAAY,CAC7B,IAAI,IAAM,MAAQ,SAAS,EAAE,EAAE,GAC3B,IAAM,MAAQ,SAAS,EAAE,EAAE,GAC3B,IAAM,MAAQ,SAAS,EAAE,EAAE,GAAK,EAChC,IAAM,MAAQ,SAAS,EAAE,EAAE,GAAK,EAChC,MAAQ,MAAM,GAAI,IAAK,MAAQ,SAAS,EAAE,EAAE,CAC5C,OAAS,OAAS,EAAI,aAC1B,CAAC,MAAQ,SAAS,EAAE,QAAU,GAEzB,MAAQ,SAAS,IAAM,IAAM,MAAQ,SAAS,IAAM,IACtD,MAAQ,SAAS,EAAE,YAAY,GAAK,GAAI,GAAK,GAAK,MAAO,GAAK,GAAI,GAAK,GAAK,MAAO,GAAK,GAAI,GAAK,GAAK,OAAQ,EAAG,GAAK,EAEtH,MAAQ,SAAS,EAAE,YAAY,GAAK,GAAI,GAAK,GAAK,MAAO,GAAK,GAAI,GAAK,GAAK,OAAQ,GAAK,GAAI,GAAK,GAAK,MAAO,EAAG,GAAK,CAEnH,QAAU,IAaX,MAAQ,SAAS,EAAE,YAAY,GAAK,GAAI,GAAK,GAAI,GAAK,GAAK,OAAQ,GAAK,GAAI,GAAK,GAAI,GAAK,GAAI,EAAE,EAEhG,MAAQ,SAAS,EAAE,YAAY,GAAK,GAAI,GAAK,GAAI,GAAK,GAAI,GAAK,GAAK,OAAQ,GAAK,GAAI,GAAK,GAAI,EAAE,IAdhG,MAAQ,SAAS,EAAE,YAAY,GAAK,GAAK,MAAO,GAAK,GAAI,GAAK,GAAK,MAAO,GAAK,GAAI,GAAK,GAAK,OAAQ,GAAK,GAAI,EAAG,GAAK,EAEtH,MAAQ,SAAS,EAAE,YAAY,GAAK,GAAK,MAAO,GAAK,GAAI,GAAK,GAAK,OAAQ,GAAK,GAAI,GAAK,GAAK,MAAO,GAAK,GAAI,EAAG,GAAK,EAEtH,MAAQ,SAAS,EAAE,YAAY,GAAK,GAAI,GAAK,GAAK,MAAO,GAAK,GAAI,GAAK,GAAK,MAAO,GAAK,GAAI,GAAK,GAAK,OAAQ,EAAG,GAAK,EAEtH,MAAQ,SAAS,EAAE,YAAY,GAAK,GAAI,GAAK,GAAK,MAAO,GAAK,GAAI,GAAK,GAAK,OAAQ,GAAK,GAAI,GAAK,GAAK,MAAO,EAAG,GAAK,EAEtH,MAAQ,SAAS,EAAE,YAAY,GAAK,GAAK,MAAO,GAAK,GAAI,GAAK,GAAK,MAAO,GAAK,GAAI,GAAK,GAAK,OAAQ,GAAK,GAAI,EAAG,GAAK,EAEtH,MAAQ,SAAS,EAAE,YAAY,GAAK,GAAK,MAAO,GAAK,GAAI,GAAK,GAAK,OAAQ,GAAK,GAAI,GAAK,GAAK,MAAO,GAAK,GAAI,EAAG,GAAK,KAOxH,MAAQ,SAAS,EAAE,YAAY,GAAK,GAAI,GAAK,GAAK,MAAO,GAAK,GAAI,GAAK,GAAK,OAAQ,GAAK,GAAI,GAAK,GAAK,MAAO,EAAG,GAAK,CAEnH,QAAU,IAeX,MAAQ,SAAS,EAAE,YAAY,GAAK,GAAI,GAAK,GAAI,GAAK,GAAK,OAAQ,GAAK,GAAI,GAAK,GAAI,GAAK,GAAI,EAAG,GAAK,EAEtG,MAAQ,SAAS,EAAE,YAAY,GAAK,GAAI,GAAK,GAAI,GAAK,GAAI,GAAK,GAAK,OAAQ,GAAK,GAAI,GAAK,GAAI,EAAG,GAAK,EAEtG,MAAQ,SAAS,EAAE,YAAY,GAAK,GAAI,GAAK,GAAI,GAAK,GAAK,OAAQ,GAAK,GAAI,GAAK,GAAI,GAAK,GAAI,EAAG,GAAK,IAlBtG,MAAQ,SAAS,EAAE,YAAY,GAAK,GAAK,MAAO,GAAK,GAAI,GAAK,GAAK,MAAO,GAAK,GAAI,GAAK,GAAK,OAAQ,GAAK,GAAI,EAAG,GAAK,EAEtH,MAAQ,SAAS,EAAE,YAAY,GAAK,GAAK,MAAO,GAAK,GAAI,GAAK,GAAK,OAAQ,GAAK,GAAI,GAAK,GAAK,MAAO,GAAK,GAAI,EAAG,GAAK,EAEtH,MAAQ,SAAS,EAAE,YAAY,GAAK,GAAI,GAAK,GAAK,MAAO,GAAK,GAAI,GAAK,GAAK,MAAO,GAAK,GAAI,GAAK,GAAK,OAAQ,EAAG,GAAK,EAEtH,MAAQ,SAAS,EAAE,YAAY,GAAK,GAAI,GAAK,GAAK,MAAO,GAAK,GAAI,GAAK,GAAK,OAAQ,GAAK,GAAI,GAAK,GAAK,MAAO,EAAG,GAAK,EAEtH,MAAQ,SAAS,EAAE,YAAY,GAAK,GAAK,MAAO,GAAK,GAAI,GAAK,GAAK,MAAO,GAAK,GAAI,GAAK,GAAK,OAAQ,GAAK,GAAI,EAAG,GAAK,EAEtH,MAAQ,SAAS,EAAE,YAAY,GAAK,GAAK,MAAO,GAAK,GAAI,GAAK,GAAK,OAAQ,GAAK,GAAI,GAAK,GAAK,MAAO,GAAK,GAAI,EAAG,GAAK,EAEtH,MAAQ,SAAS,EAAE,YAAY,GAAK,GAAI,GAAK,GAAK,MAAO,GAAK,GAAI,GAAK,GAAK,MAAO,GAAK,GAAI,GAAK,GAAK,OAAQ,EAAG,GAAK,IAU7H,SAAU,UAAY,EACf,MAAQ,SAAS,KAAK,WAAW,WAAa,MAAQ,SAAS,UAIpE,CAAC,MAAQ,SAAS,SAAW,MAAQ,SAAS,KAAK,WAAW,QAC9D,KAAK,0BAA0B,EAE1B,MAAQ,SAAS,MACpB,KAAK,mBAAmB,GAG5B,MAAO,WACR,CACD,gBAAgB,CAAC,yBAAyB,CAAE,yBAAyB,CAC9D,2BACN,CAEH,SAAS,aAAa,KAAM,KAAM,KAAM,CACtC,IAAI,KAuBJ,OArBI,OAAS,GAAK,OAAS,EAIzB,AAGE,MANa,OAAS,EAAI,KAAK,GAAK,KAAK,IACvB,EAEX,OACA,IAAI,uBAAuB,KAAM,KAAM,KAAK,CAE5C,IAAI,cAAc,KAAM,KAAM,KAAK,CAEnC,OAAS,EAClB,KAAO,IAAI,kBAAkB,KAAM,KAAK,CAC/B,OAAS,EAClB,KAAO,IAAI,iBAAiB,KAAM,KAAK,CAC9B,OAAS,IAClB,KAAO,IAAI,kBAAkB,KAAM,KAAK,EAGtC,KAAK,GACP,KAAK,mBAAmB,KAAK,CAGxB,KAGT,SAAS,wBAAyB,CAChC,OAAO,cAGT,SAAS,iCAAkC,CACzC,OAAO,uBAGT,IAAI,GAAK,EAAE,CAIX,MAHA,IAAG,aAAe,aAClB,GAAG,uBAAyB,uBAC5B,GAAG,gCAAkC,gCAC9B,KACN,CAMC,eAAiB,UAAY,CAC/B,IAAI,GAAK,EAAE,CACPtI,YAAY,EAAE,CAClB,GAAG,iBAAmB,iBACtB,GAAG,YAAc,YAEjB,SAAS,iBAAiB,GAAI,QAAS,CAChCA,YAAU,MACb,YAAU,IAAM,SAIpB,SAAS,YAAY,GAAI,KAAM,KAAM,CACnC,OAAO,IAAIA,YAAU,IAAI,KAAM,KAAK,CAGtC,OAAO,KACN,CAEH,SAAS,eAAgB,EAEzB,cAAc,UAAU,uBAAyB,UAAY,GAE7D,cAAc,UAAU,mBAAqB,UAAY,GAEzD,cAAc,UAAU,SAAW,SAAU,KAAM,CACjD,GAAI,EAAE,MAAQ,SAAS,OAAQ,CAE7B,KAAK,GAAG,UAAU,mBAAmB,KAAK,GAAG,CAC7C,IAAI,UAAY,CACd,MAAO,KAAK,GACN,KACN,qBAAsB,oBAAoB,oBAAoB,CAC/D,EAEA,MAAQ,SAAS,OAAO,KAAK,UAAU,CAExC,KAAK,mBAAmB,UAAU,EAE7B,MAAQ,SAAS,aACpB,KAAK,eAAe,GAK1B,cAAc,UAAU,KAAO,SAAU,KAAM,KAAM,CACnD,CAAC,MAAQ,SAAS,OAAS,EAAE,CAC7B,CAAC,MAAQ,SAAS,KAAO,KACzB,KAAK,6BAA6B,KAAK,CACvC,KAAK,uBAAuB,KAAM,KAAK,CACvC,CAAC,MAAQ,SAAS,QAAU,oBAC5B,CAAC,MAAQ,SAAS,OAAS,GAC3B,CAAC,MAAQ,SAAS,EAAI,IAEjB,MAAQ,SAAS,kBAAkB,OACtC,CAAC,MAAQ,SAAS,EAAI,GAEtB,KAAK,SAAS,GAAK,EAIvB,cAAc,UAAU,YAAc,UAAY,EAC3C,MAAQ,SAAS,KAAK,WAAW,WAAa,MAAQ,SAAS,UAIpE,CAAC,MAAQ,SAAS,SAAW,MAAQ,SAAS,KAAK,WAAW,QAC9D,KAAK,0BAA0B,GAGjC,gBAAgB,CAAC,yBAAyB,CAAE,cAAc,CAG1D,SAAS,cAAe,EAExB,gBAAgB,CAAC,cAAc,CAAE,aAAa,CAE9C,aAAa,UAAU,uBAAyB,SAAU,KAAM,KAAM,CACpE,CAAC,MAAQ,SAAS,EAAI,gBAAgB,QAAQ,KAAM,KAAK,EAAG,EAAG,IAAM,MAAQ,QAAQ,CACrF,CAAC,MAAQ,SAAS,EAAI,gBAAgB,QAAQ,KAAM,KAAK,EAAG,EAAG,IAAM,MAAQ,QAAQ,CACrF,CAAC,MAAQ,SAAS,EAAI,gBAAgB,QAAQ,KAAM,KAAK,EAAG,EAAG,EAAG,MAAQ,QAAQ,CAClF,CAAC,MAAQ,SAAS,OAAS,EAC3B,CAAC,MAAQ,SAAS,OAAS,EAC3B,CAAC,MAAQ,SAAS,UAAY,MAAQ,SAAS,YAC/C,CAAC,MAAQ,SAAS,EAAI,KAAK,EAC3B,CAAC,MAAQ,SAAS,YAAc,CAAC,EAAE,MAAQ,SAAS,EAAE,gBAAgB,QAAU,CAAC,EAAE,MAAQ,SAAS,EAAE,gBAAgB,QAAU,CAAC,EAAE,MAAQ,SAAS,EAAE,gBAAgB,QAGxK,aAAa,UAAU,mBAAqB,SAAU,UAAW,CAC/D,UAAU,UAAY,EAAE,EAG1B,aAAa,UAAU,oBAAsB,SAAU,EAAG,EAAG,YAAa,YAAa,oBAAqB,CAC1G,IAAI,SAAW,EAAE,CAEb,GAAK,EACP,SAAS,KAAK,CACT,EACA,EACJ,CAAC,CACO,GAAK,EACd,SAAS,KAAK,CACZ,EAAG,EAAI,EACP,EAAG,EAAI,EACR,CAAC,EAEF,SAAS,KAAK,CACT,EACH,EAAG,EACJ,CAAC,CACF,SAAS,KAAK,CACZ,EAAG,EACH,EAAG,EAAI,EACR,CAAC,EAGJ,IAAI,cAAgB,EAAE,CAClBsI,IACA,IAAM,SAAS,OACf,UAEJ,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EAGxB,GAFA,UAAY,SAASA,KAEjB,EAAE,UAAU,EAAI,oBAAsB,aAAe,UAAU,EAAI,oBAAsB,YAAc,aAAc,CACvH,IAAI,OAGA,UAAU,EAAI,qBAAuB,YAC9B,GAEC,UAAU,EAAI,oBAAsB,aAAe,YAL3D,OAQA,UAAU,EAAI,qBAAuB,YAAc,YAC5C,GAEC,UAAU,EAAI,oBAAsB,aAAe,YAG/D,cAAc,KAAK,CAAC,OAAQ,OAAO,CAAC,CAQxC,OAJK,cAAc,QACjB,cAAc,KAAK,CAAC,EAAG,EAAE,CAAC,CAGrB,eAGT,aAAa,UAAU,iBAAmB,SAAU,UAAW,CAC7D,IAAIA,IACA,IAAM,UAAU,OAEpB,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,mBAAmB,QAAQ,UAAUA,KAAG,CAI1C,MADA,WAAU,OAAS,EACZ,WAGT,aAAa,UAAU,cAAgB,SAAU,cAAe,CAC9D,IAAI,EACA,EAEJ,IAAK,MAAQ,SAAS,MAAQ,cAAe,CAC3C,IAAI,GAAK,MAAQ,SAAS,EAAE,EAAI,IAAM,IAsBtC,GApBI,EAAI,IACN,GAAK,GAGP,AAKE,GALG,MAAQ,SAAS,EAAE,EAAI,EACtB,EAAI,GACE,MAAQ,SAAS,EAAE,EAAI,EAC7B,EAAI,GAEH,MAAQ,SAAS,EAAE,EAAI,EAG9B,AAKE,GALG,MAAQ,SAAS,EAAE,EAAI,EACtB,EAAI,GACE,MAAQ,SAAS,EAAE,EAAI,EAC7B,EAAI,GAEH,MAAQ,SAAS,EAAE,EAAI,EAG1B,EAAI,EAAG,CACT,IAAI,GAAK,EACT,EAAI,EACJ,EAAI,GAGN,EAAI,KAAK,MAAM,EAAI,IAAM,CAAG,KAC5B,EAAI,KAAK,MAAM,EAAI,IAAM,CAAG,KAC5B,CAAC,MAAQ,SAAS,OAAS,EAC3B,CAAC,MAAQ,SAAS,OAAS,OAE3B,GAAK,MAAQ,SAAS,OACtB,GAAK,MAAQ,SAAS,OAGxB,IAAI,WACAA,IACA,KAAO,MAAQ,SAAS,OAAO,OAC/B,EACA,KACA,UACA,SACA,iBACA,oBAAsB,EAE1B,GAAI,IAAM,EACR,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,GACvB,MAAQ,SAAS,OAAOA,KAAG,qBAAqB,eAAe,CAEhE,CAAC,MAAQ,SAAS,OAAOA,KAAG,MAAM,KAAO,GACzC,CAAC,MAAQ,SAAS,OAAOA,KAAG,MAAM,OAAS,MAAQ,SAAS,OAAOA,KAAG,sBAEjE,MAAQ,SAAS,OACpB,CAAC,MAAQ,SAAS,OAAOA,KAAG,UAAU,OAAS,WAGxC,IAAM,GAAK,IAAM,GAAK,IAAM,GAAK,IAAM,OAyGxC,MAAQ,SAAS,KAC3B,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EAGxB,CAAC,MAAQ,SAAS,OAAOA,KAAG,UAAU,OAAS,EAC/C,CAAC,MAAQ,SAAS,OAAOA,KAAG,MAAM,KAAO,OA9GW,CACtD,IAAI,SAAW,EAAE,CACb,UACA,qBAEJ,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EAGxB,GAFA,WAAa,MAAQ,SAAS,OAAOA,KAEjC,CAAC,UAAU,MAAM,MAAQ,EAAE,MAAQ,SAAS,MAAQ,CAAC,gBAAkB,MAAQ,SAAS,IAAM,EAChG,UAAU,MAAM,MAAQ,UAAU,yBAC7B,CAKL,GAJA,WAAa,UAAU,MAAM,MAC7B,KAAO,WAAW,QAClB,iBAAmB,EAEf,CAAC,UAAU,MAAM,MAAQ,UAAU,UAAU,OAC/C,iBAAmB,UAAU,qBACxB,CAGL,IAFA,UAAY,KAAK,iBAAiB,UAAU,UAAU,CAEjD,EAAI,EAAG,EAAI,KAAM,GAAK,EACzB,SAAW,IAAI,kBAAkB,WAAW,OAAO,GAAG,CACtD,UAAU,KAAK,SAAS,CACxB,kBAAoB,SAAS,YAG/B,UAAU,iBAAmB,iBAC7B,UAAU,UAAY,UAGxB,qBAAuB,iBACvB,UAAU,MAAM,KAAO,GAI3B,IAAI,OAAS,EACT,OAAS,EACT,YAAc,EACd,MAEJ,IAAK,IAAI,IAAM,EAAGA,KAAK,EAAG,MAGxB,GAFA,WAAa,MAAQ,SAAS,OAAOA,KAEjC,UAAU,MAAM,KAAM,CAaxB,IAZA,qBAAuB,UAAU,qBACjC,qBAAqB,eAAe,EAE/B,MAAQ,SAAS,IAAM,GAAK,IAAM,GACrC,MAAQ,KAAK,oBAAoB,EAAG,EAAG,UAAU,iBAAkB,YAAa,oBAAoB,CACpG,aAAe,UAAU,kBAEzB,MAAQ,CAAC,CAAC,OAAQ,OAAO,CAAC,CAG5B,KAAO,MAAM,OAER,EAAI,EAAG,EAAI,KAAM,GAAK,EAAG,CAC5B,OAAS,MAAM,GAAG,GAClB,OAAS,MAAM,GAAG,GAClB,SAAS,OAAS,EAEd,QAAU,EACZ,SAAS,KAAK,CACZ,EAAG,UAAU,iBAAmB,OAChC,EAAG,UAAU,iBAAmB,OACjC,CAAC,CACO,QAAU,EACnB,SAAS,KAAK,CACZ,EAAG,UAAU,kBAAoB,OAAS,GAC1C,EAAG,UAAU,kBAAoB,OAAS,GAC3C,CAAC,EAEF,SAAS,KAAK,CACZ,EAAG,UAAU,iBAAmB,OAChC,EAAG,UAAU,iBACd,CAAC,CACF,SAAS,KAAK,CACZ,EAAG,EACH,EAAG,UAAU,kBAAoB,OAAS,GAC3C,CAAC,EAGJ,IAAI,cAAgB,KAAK,UAAU,UAAW,SAAS,GAAG,CAE1D,GAAI,SAAS,GAAG,IAAM,SAAS,GAAG,EAAG,CACnC,GAAI,SAAS,OAAS,EAGpB,GAF4B,UAAU,MAAM,MAAM,OAAO,UAAU,MAAM,MAAM,QAAU,GAE/D,EAAG,CAC3B,IAAI,UAAY,cAAc,KAAK,CACnC,KAAK,SAAS,cAAe,qBAAqB,CAClD,cAAgB,KAAK,UAAU,UAAW,SAAS,GAAI,UAAU,MAEjE,KAAK,SAAS,cAAe,qBAAqB,CAClD,cAAgB,KAAK,UAAU,UAAW,SAAS,GAAG,CAI1D,KAAK,SAAS,cAAe,qBAAqB,EAItD,UAAU,MAAM,MAAQ,wBAahC,aAAa,UAAU,SAAW,SAAU,SAAU,qBAAsB,CAC1E,IAAIA,IACA,IAAM,SAAS,OAEnB,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,qBAAqB,SAAS,SAASA,KAAG,EAI9C,aAAa,UAAU,WAAa,SAAU,IAAK,IAAK,IAAK,IAAK,UAAW,IAAK,SAAU,CAC1F,UAAU,QAAQ,IAAI,GAAI,IAAI,GAAI,IAAK,IAAI,CAC3C,UAAU,QAAQ,IAAI,GAAI,IAAI,GAAI,IAAK,IAAM,EAAE,CAE3C,UACF,UAAU,QAAQ,IAAI,GAAI,IAAI,GAAI,IAAK,IAAI,CAG7C,UAAU,QAAQ,IAAI,GAAI,IAAI,GAAI,IAAK,IAAM,EAAE,EAGjD,aAAa,UAAU,oBAAsB,SAAU,OAAQ,UAAW,IAAK,SAAU,CACvF,UAAU,QAAQ,OAAO,GAAI,OAAO,GAAI,IAAK,IAAI,CACjD,UAAU,QAAQ,OAAO,GAAI,OAAO,GAAI,IAAK,IAAM,EAAE,CAEjD,UACF,UAAU,QAAQ,OAAO,GAAI,OAAO,GAAI,IAAK,IAAI,CAGnD,UAAU,QAAQ,OAAO,GAAI,OAAO,GAAI,IAAK,IAAM,EAAE,EAGvD,aAAa,UAAU,UAAY,SAAU,UAAW,aAAc,UAAW,CAC/E,IAAI,UAAY,UAAU,UACtB,WAAa,UAAU,MAAM,MAAM,OACnCA,IACA,IAAM,UAAU,MAAM,MAAM,QAC5B,EACA,KACA,YAAc,EACd,kBACA,aACA,QACA,QACA,OAAS,EAAE,CACX,QACA,SAAW,GAaf,IAXK,WAKH,aAAe,UAAU,QACzB,QAAU,UAAU,UALpB,UAAY,UAAU,YAAY,CAClC,aAAe,EACf,QAAU,GAMZ,OAAO,KAAK,UAAU,CAEjB,IAAI,EAAGA,IAAI,IAAK,KAAK,EAAG,CAK3B,IAJA,QAAU,UAAUA,KAAG,QACvB,UAAU,EAAI,WAAWA,KAAG,EAC5B,KAAO,WAAWA,KAAG,EAAI,QAAQ,OAAS,QAAQ,OAAS,EAEtD,EAAI,EAAG,EAAI,KAAM,GAAK,EAGzB,GAFA,kBAAoB,QAAQ,EAAI,GAE5B,YAAc,kBAAkB,YAAc,aAAa,EAC7D,aAAe,kBAAkB,YACjC,UAAU,EAAI,WACL,YAAc,aAAa,EAAG,CACvC,UAAU,EAAI,GACd,WAEI,aAAa,GAAK,aAAe,aAAa,GAAK,YAAc,kBAAkB,aACrF,KAAK,WAAW,WAAWA,KAAG,EAAE,EAAI,GAAI,WAAWA,KAAG,EAAE,EAAI,GAAI,WAAWA,KAAG,EAAE,GAAI,WAAWA,KAAG,EAAE,GAAI,UAAW,aAAc,SAAS,CAC1I,SAAW,KAEX,QAAU,IAAI,cAAc,WAAWA,KAAG,EAAE,EAAI,GAAI,WAAWA,KAAG,EAAE,GAAI,WAAWA,KAAG,EAAE,EAAI,GAAI,WAAWA,KAAG,EAAE,IAAK,aAAa,EAAI,aAAe,kBAAkB,aAAc,aAAa,EAAI,aAAe,kBAAkB,YAAa,QAAQ,EAAI,GAAG,CACnQ,KAAK,oBAAoB,QAAS,UAAW,aAAc,SAAS,CAEpE,SAAW,GACX,UAAU,EAAI,IAGhB,aAAe,kBAAkB,YACjC,cAAgB,EAIpB,GAAI,WAAWA,KAAG,GAAK,QAAQ,OAAQ,CAGrC,GAFA,kBAAoB,QAAQ,EAAI,GAE5B,aAAe,aAAa,EAAG,CACjC,IAAI,cAAgB,QAAQ,EAAI,GAAG,YAE/B,aAAa,GAAK,aAAe,aAAa,GAAK,YAAc,eACnE,KAAK,WAAW,WAAWA,KAAG,EAAE,EAAI,GAAI,WAAWA,KAAG,EAAE,EAAI,GAAI,WAAWA,KAAG,EAAE,GAAI,WAAWA,KAAG,EAAE,GAAI,UAAW,aAAc,SAAS,CAC1I,SAAW,KAEX,QAAU,IAAI,cAAc,WAAWA,KAAG,EAAE,EAAI,GAAI,WAAWA,KAAG,EAAE,GAAI,WAAWA,KAAG,EAAE,EAAI,GAAI,WAAWA,KAAG,EAAE,IAAK,aAAa,EAAI,aAAe,eAAgB,aAAa,EAAI,aAAe,cAAe,QAAQ,EAAI,GAAG,CACnO,KAAK,oBAAoB,QAAS,UAAW,aAAc,SAAS,CAEpE,SAAW,GACX,UAAU,EAAI,SAGhB,UAAU,EAAI,GAGhB,aAAe,kBAAkB,YACjC,cAAgB,EAQlB,GALI,UAAU,UACZ,UAAU,QAAQ,UAAU,EAAE,SAAS,GAAI,UAAU,EAAE,SAAS,GAAI,IAAK,QAAQ,CACjF,UAAU,QAAQ,UAAU,EAAE,UAAU,QAAU,GAAG,GAAI,UAAU,EAAE,UAAU,QAAU,GAAG,GAAI,IAAK,UAAU,QAAU,EAAE,EAGzH,YAAc,aAAa,EAC7B,MAGEA,IAAI,IAAM,IACZ,UAAY,UAAU,YAAY,CAClC,SAAW,GACX,OAAO,KAAK,UAAU,CACtB,aAAe,GAInB,OAAO,QAGT,eAAe,iBAAiB,KAAM,aAAa,CAGnD,SAAS,sBAAuB,EAEhC,gBAAgB,CAAC,cAAc,CAAE,qBAAqB,CAEtD,qBAAqB,UAAU,uBAAyB,SAAU,KAAM,KAAM,CAC5E,CAAC,MAAQ,SAAS,UAAY,MAAQ,SAAS,YAC/C,CAAC,MAAQ,SAAS,GAAK,gBAAgB,QAAQ,KAAM,KAAK,EAAG,EAAG,KAAM,MAAQ,QAAQ,CACtF,CAAC,MAAQ,SAAS,YAAc,CAAC,EAAE,MAAQ,SAAS,GAAG,gBAAgB,QAGzE,qBAAqB,UAAU,YAAc,SAAU,KAAM,MAAO,CAClE,IAAI,WAAa,UAAU,YAAY,CACvC,WAAW,EAAI,KAAK,EACpB,IAAIA,IACA,IAAM,KAAK,QACX,SACA,SACA,SACA,QACA,SACA,WACAzI,QAAQ,EACR,GACA,GACA,GACA,GACA,GACA,GAEJ,IAAK,IAAI,EAAGyI,IAAI,IAAK,KAAK,EACxB,SAAW,KAAK,EAAEA,KAClB,SAAW,KAAK,EAAEA,KAClB,SAAW,KAAK,EAAEA,KAEd,SAAS,KAAO,SAAS,IAAM,SAAS,KAAO,SAAS,IAAM,SAAS,KAAO,SAAS,IAAM,SAAS,KAAO,SAAS,IACnHA,MAAM,GAAKA,MAAM,IAAM,IAAM,CAAC,KAAK,GACtC,WAAW,YAAY,SAAS,GAAI,SAAS,GAAI,SAAS,GAAI,SAAS,GAAI,SAAS,GAAI,SAAS,GAAIzI,QAAM,CAK3G,SAAS,IAET,AAGE,QAHEyI,MAAM,EACE,KAAK,EAAE,IAAM,GAEb,KAAK,EAAEA,IAAI,GAGvB,SAAW,KAAK,MAAc,SAAS,GAAK,QAAQ,KAAI,GAAc,SAAS,GAAK,QAAQ,KAAI,EAAG,CACnG,WAAa,SAAW,KAAK,IAAI,SAAW,EAAG,MAAM,CAAG,SAAW,EACnE,GAAK,SAAS,IAAM,QAAQ,GAAK,SAAS,IAAM,WAChD,GAAK,GACL,GAAK,SAAS,IAAM,SAAS,GAAK,QAAQ,IAAM,WAChD,GAAK,GACL,GAAK,IAAM,GAAK,SAAS,IAAM,YAC/B,GAAK,IAAM,GAAK,SAAS,IAAM,YAC/B,WAAW,YAAY,GAAI,GAAI,GAAI,GAAI,GAAI,GAAIzI,QAAM,CACrD,SAAS,EAET,AAGE,QAHEyI,MAAM,IAAM,EACJ,KAAK,EAAE,GAEP,KAAK,EAAEA,IAAI,GAGvB,SAAW,KAAK,MAAc,SAAS,GAAK,QAAQ,KAAI,GAAc,SAAS,GAAK,QAAQ,KAAI,EAAG,CACnG,WAAa,SAAW,KAAK,IAAI,SAAW,EAAG,MAAM,CAAG,SAAW,EACnE,GAAK,SAAS,IAAM,QAAQ,GAAK,SAAS,IAAM,WAChD,GAAK,GACL,GAAK,SAAS,IAAM,QAAQ,GAAK,SAAS,IAAM,WAChD,GAAK,GACL,GAAK,IAAM,GAAK,SAAS,IAAM,YAC/B,GAAK,IAAM,GAAK,SAAS,IAAM,YAC/B,WAAW,YAAY,GAAI,GAAI,GAAI,GAAI,GAAI,GAAIzI,QAAM,CACrD,SAAS,IAGX,WAAW,YAAY,KAAK,EAAEyI,KAAG,GAAI,KAAK,EAAEA,KAAG,GAAI,KAAK,EAAEA,KAAG,GAAI,KAAK,EAAEA,KAAG,GAAI,KAAK,EAAEA,KAAG,GAAI,KAAK,EAAEA,KAAG,GAAIzI,QAAM,CACjH,SAAS,GAIb,OAAO,YAGT,qBAAqB,UAAU,cAAgB,SAAU,cAAe,CACtE,IAAI,WACAyI,IACA,KAAO,MAAQ,SAAS,OAAO,OAC/B,EACA,KACA,IAAM,MAAQ,SAAS,GAAG,EAE9B,GAAI,KAAO,EAAG,CACZ,IAAI,UACA,qBAEJ,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EAAG,CAI3B,GAHA,WAAa,MAAQ,SAAS,OAAOA,KACrC,qBAAuB,UAAU,qBAE7B,EAAE,CAAC,UAAU,MAAM,MAAQ,EAAE,MAAQ,SAAS,MAAQ,CAAC,eAMzD,IALA,qBAAqB,eAAe,CACpC,UAAU,MAAM,KAAO,GACvB,WAAa,UAAU,MAAM,MAAM,OACnC,KAAO,UAAU,MAAM,MAAM,QAExB,EAAI,EAAG,EAAI,KAAM,GAAK,EACzB,qBAAqB,SAAS,KAAK,YAAY,WAAW,GAAI,GAAG,CAAC,CAItE,UAAU,MAAM,MAAQ,UAAU,uBAIhC,MAAQ,SAAS,kBAAkB,SACvC,CAAC,MAAQ,SAAS,KAAO,KAI7B,eAAe,iBAAiB,KAAM,qBAAqB,CAG3D,SAAS,wBAAyB,EAElC,gBAAgB,CAAC,cAAc,CAAE,uBAAuB,CAExD,uBAAuB,UAAU,uBAAyB,SAAU,KAAM,KAAM,CAC9E,CAAC,MAAQ,SAAS,UAAY,MAAQ,SAAS,YAC/C,CAAC,MAAQ,SAAS,OAAS,gBAAgB,QAAQ,KAAM,KAAK,EAAG,EAAG,KAAM,MAAQ,QAAQ,CAC1F,CAAC,MAAQ,SAAS,YAAc,CAAC,EAAE,MAAQ,SAAS,OAAO,gBAAgB,QAG7E,uBAAuB,UAAU,YAAc,SAAU,KAAM,OAAQ,CACrE,IAAI,QAAU,OAAS,IACnB,YAAc,CAAC,EAAG,EAAE,CACpB,WAAa,KAAK,QAClBA,IAAI,EAER,IAAK,IAAI,EAAGA,IAAI,WAAY,KAAK,EAC/B,YAAY,IAAM,KAAK,EAAEA,KAAG,GAC5B,YAAY,IAAM,KAAK,EAAEA,KAAG,GAG9B,YAAY,IAAM,WAClB,YAAY,IAAM,WAClB,IAAI,WAAa,UAAU,YAAY,CACvC,WAAW,EAAI,KAAK,EACpB,IAAI,GACA,GACA,GACA,GACA,GACA,GAEJ,IAAK,IAAI,EAAGA,IAAI,WAAY,KAAK,EAC/B,GAAK,KAAK,EAAEA,KAAG,IAAM,YAAY,GAAK,KAAK,EAAEA,KAAG,IAAM,QACtD,GAAK,KAAK,EAAEA,KAAG,IAAM,YAAY,GAAK,KAAK,EAAEA,KAAG,IAAM,QACtD,GAAK,KAAK,EAAEA,KAAG,IAAM,YAAY,GAAK,KAAK,EAAEA,KAAG,IAAM,CAAC,QACvD,GAAK,KAAK,EAAEA,KAAG,IAAM,YAAY,GAAK,KAAK,EAAEA,KAAG,IAAM,CAAC,QACvD,GAAK,KAAK,EAAEA,KAAG,IAAM,YAAY,GAAK,KAAK,EAAEA,KAAG,IAAM,CAAC,QACvD,GAAK,KAAK,EAAEA,KAAG,IAAM,YAAY,GAAK,KAAK,EAAEA,KAAG,IAAM,CAAC,QACvD,WAAW,YAAY,GAAI,GAAI,GAAI,GAAI,GAAI,GAAIA,IAAE,CAGnD,OAAO,YAGT,uBAAuB,UAAU,cAAgB,SAAU,cAAe,CACxE,IAAI,WACAA,IACA,KAAO,MAAQ,SAAS,OAAO,OAC/B,EACA,KACA,QAAU,MAAQ,SAAS,OAAO,EAEtC,GAAI,SAAW,EAAG,CAChB,IAAI,UACA,qBAEJ,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EAAG,CAI3B,GAHA,WAAa,MAAQ,SAAS,OAAOA,KACrC,qBAAuB,UAAU,qBAE7B,EAAE,CAAC,UAAU,MAAM,MAAQ,EAAE,MAAQ,SAAS,MAAQ,CAAC,eAMzD,IALA,qBAAqB,eAAe,CACpC,UAAU,MAAM,KAAO,GACvB,WAAa,UAAU,MAAM,MAAM,OACnC,KAAO,UAAU,MAAM,MAAM,QAExB,EAAI,EAAG,EAAI,KAAM,GAAK,EACzB,qBAAqB,SAAS,KAAK,YAAY,WAAW,GAAI,OAAO,CAAC,CAI1E,UAAU,MAAM,MAAQ,UAAU,uBAIhC,MAAQ,SAAS,kBAAkB,SACvC,CAAC,MAAQ,SAAS,KAAO,KAI7B,eAAe,iBAAiB,KAAM,uBAAuB,CAG7D,SAAS,kBAAmB,EAE5B,gBAAgB,CAAC,cAAc,CAAE,iBAAiB,CAElD,iBAAiB,UAAU,uBAAyB,SAAU,KAAM,KAAM,CACxE,CAAC,MAAQ,SAAS,UAAY,MAAQ,SAAS,YAC/C,CAAC,MAAQ,SAAS,EAAI,gBAAgB,QAAQ,KAAM,KAAK,EAAG,EAAG,KAAM,MAAQ,QAAQ,CACrF,CAAC,MAAQ,SAAS,EAAI,gBAAgB,QAAQ,KAAM,KAAK,EAAG,EAAG,KAAM,MAAQ,QAAQ,CACrF,CAAC,MAAQ,SAAS,GAAK,yBAAyB,qBAAqB,KAAM,KAAK,GAAI,MAAQ,QAAQ,CACpG,CAAC,MAAQ,SAAS,GAAK,gBAAgB,QAAQ,KAAM,KAAK,GAAG,GAAI,EAAG,IAAM,MAAQ,QAAQ,CAC1F,CAAC,MAAQ,SAAS,GAAK,gBAAgB,QAAQ,KAAM,KAAK,GAAG,GAAI,EAAG,IAAM,MAAQ,QAAQ,CAC1F,CAAC,MAAQ,SAAS,KAAO,MAEnB,MAAQ,SAAS,kBAAkB,QACvC,KAAK,SAAS,GAAK,CAGrB,CAAC,MAAQ,SAAS,YAAc,CAAC,EAAE,MAAQ,SAAS,kBAAkB,OACtE,CAAC,MAAQ,SAAS,QAAU,IAAI,OAChC,CAAC,MAAQ,SAAS,QAAU,IAAI,OAChC,CAAC,MAAQ,SAAS,QAAU,IAAI,OAChC,CAAC,MAAQ,SAAS,QAAU,IAAI,OAChC,CAAC,MAAQ,SAAS,OAAS,IAAI,QAGjC,iBAAiB,UAAU,gBAAkB,SAAU,QAAS,QAAS,QAAS,UAAW,KAAM,IAAK,CACtG,IAAI,IAAM,IAAM,GAAK,EACjB,OAAS,UAAU,EAAE,EAAE,IAAM,EAAI,UAAU,EAAE,EAAE,KAAO,EAAI,MAC1D,OAAS,UAAU,EAAE,EAAE,IAAM,EAAI,UAAU,EAAE,EAAE,KAAO,EAAI,MAC9D,QAAQ,UAAU,UAAU,EAAE,EAAE,GAAK,IAAM,KAAM,UAAU,EAAE,EAAE,GAAK,IAAM,KAAM,UAAU,EAAE,EAAE,GAAG,CACjG,QAAQ,UAAU,CAAC,UAAU,EAAE,EAAE,GAAI,CAAC,UAAU,EAAE,EAAE,GAAI,UAAU,EAAE,EAAE,GAAG,CACzE,QAAQ,OAAO,CAAC,UAAU,EAAE,EAAI,IAAM,KAAK,CAC3C,QAAQ,UAAU,UAAU,EAAE,EAAE,GAAI,UAAU,EAAE,EAAE,GAAI,UAAU,EAAE,EAAE,GAAG,CACvE,QAAQ,UAAU,CAAC,UAAU,EAAE,EAAE,GAAI,CAAC,UAAU,EAAE,EAAE,GAAI,UAAU,EAAE,EAAE,GAAG,CACzE,QAAQ,MAAM,IAAM,EAAI,OAAS,OAAQ,IAAM,EAAI,OAAS,OAAO,CACnE,QAAQ,UAAU,UAAU,EAAE,EAAE,GAAI,UAAU,EAAE,EAAE,GAAI,UAAU,EAAE,EAAE,GAAG,EAGzE,iBAAiB,UAAU,KAAO,SAAU,KAAM,IAAK,IAAK,UAAW,CAYrE,IAXA,CAAC,MAAQ,SAAS,KAAO,KACzB,CAAC,MAAQ,SAAS,IAAM,IACxB,CAAC,MAAQ,SAAS,IAAM,IACxB,CAAC,MAAQ,SAAS,UAAY,UAC9B,CAAC,MAAQ,SAAS,eAAiB,EACnC,CAAC,MAAQ,SAAS,UAAY,EAAE,CAChC,CAAC,MAAQ,SAAS,QAAU,EAAE,CAC9B,CAAC,MAAQ,SAAS,QAAU,GAC5B,KAAK,6BAA6B,KAAK,CACvC,KAAK,uBAAuB,KAAM,IAAI,KAAK,CAEpC,IAAM,GACX,OAEC,MAAQ,SAAS,UAAU,QAAQ,IAAI,KAAK,EAG1C,MAAQ,SAAS,kBAAkB,OACtC,CAAC,MAAQ,SAAS,EAAI,GAEtB,KAAK,SAAS,GAAK,EAIvB,iBAAiB,UAAU,cAAgB,SAAU,SAAU,CAC7D,IAAIA,IACA,IAAM,SAAS,OAEnB,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,SAASA,KAAG,WAAa,GAErB,SAASA,KAAG,KAAO,MACrB,KAAK,cAAc,SAASA,KAAG,GAAG,EAKxC,iBAAiB,UAAU,cAAgB,SAAU,SAAU,CAC7D,IAAI,YAAc,KAAK,MAAM,KAAK,UAAU,SAAS,CAAC,CAEtD,OADA,KAAK,cAAc,YAAY,CACxB,aAGT,iBAAiB,UAAU,kBAAoB,SAAU,SAAU,WAAY,CAC7E,IAAIA,IACA,IAAM,SAAS,OAEnB,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,SAASA,KAAG,QAAU,WAElB,SAASA,KAAG,KAAO,MACrB,KAAK,kBAAkB,SAASA,KAAG,GAAI,WAAW,EAKxD,iBAAiB,UAAU,cAAgB,SAAU,cAAe,CAClE,IAAI,MACA,eACAA,IACA,IACA,KACA,YAAc,GAElB,IAAK,MAAQ,SAAS,MAAQ,cAAe,CAC3C,IAAI,OAAS,KAAK,MAAM,MAAQ,SAAS,EAAE,EAAE,CAE7C,IAAK,MAAQ,SAAS,QAAQ,OAAS,OAAQ,CAC7C,MAAQ,MAAQ,SAAS,QAAQ,OAAS,QAAQ,CAChD,IAAI,MAAQ,CACV,GAAI,KAAK,eAAe,MAAQ,SAAS,UAAU,CACnD,GAAI,KACL,CACD,MAAM,GAAG,KAAK,CACZ,EAAG,CACD,EAAG,EACH,GAAI,EACJ,EAAG,CAAC,EAAG,EAAE,CACV,CACD,GAAI,YACJ,EAAG,CACD,EAAG,EACH,GAAI,EACJ,EAAG,IACJ,CACD,EAAG,CACD,EAAG,EACH,GAAI,EACJ,EAAG,CAAC,EAAG,EAAE,CACV,CACD,EAAG,CACD,EAAG,EACH,GAAI,EACJ,EAAG,CAAC,CACF,EAAG,EACH,EAAG,EACH,EAAG,EACJ,CAAE,CACD,EAAG,EACH,EAAG,EACH,EAAG,EACJ,CAAC,CACH,CACD,EAAG,CACD,EAAG,EACH,GAAI,EACJ,EAAG,CAAC,IAAK,IAAI,CACd,CACD,GAAI,CACF,EAAG,EACH,GAAI,EACJ,EAAG,EACJ,CACD,GAAI,CACF,EAAG,EACH,GAAI,EACJ,EAAG,EACJ,CACD,GAAI,KACL,CAAC,EAED,MAAQ,SAAS,IAAI,OAAO,EAAG,EAAG,MAAM,EAExC,MAAQ,SAAS,QAAQ,OAAO,EAAG,EAAG,MAAM,CAE7C,CAAC,MAAQ,SAAS,gBAAkB,GAGrC,MAAQ,SAAS,KAAK,cAAc,CAErC,YAAc,GAGhB,KAAO,EACP,IAAI,WAEJ,IAAK,IAAI,EAAGA,MAAM,MAAQ,SAAS,QAAQ,OAAS,EAAG,KAAK,EAAG,CAK7D,GAJA,WAAa,KAAO,OACpB,CAAC,MAAQ,SAAS,QAAQA,KAAG,QAAU,WACvC,KAAK,mBAAmB,MAAQ,SAAS,QAAQA,KAAG,GAAI,WAAW,CAE/D,CAAC,WAAY,CACf,IAAI,OAAS,MAAQ,SAAS,UAAUA,KAAG,GACvC,cAAgB,MAAM,MAAM,OAAS,GAErC,cAAc,UAAU,GAAG,IAAM,EAInC,cAAc,UAAU,GAAG,KAAO,IAHlC,cAAc,UAAU,GAAG,KAAO,GAClC,cAAc,UAAU,GAAG,EAAI,GAMnC,MAAQ,EAGV,CAAC,MAAQ,SAAS,eAAiB,OAEnC,IAAI,QAAU,MAAQ,SAAS,EAAE,EAC7B,aAAe,OAAS,EACxB,YAAc,OAAS,EAAI,KAAK,MAAM,OAAO,CAAG,KAAK,KAAK,OAAO,CACjE,QAAU,MAAQ,SAAS,QAAQ,MACnC,QAAU,MAAQ,SAAS,QAAQ,MACnC,QAAU,MAAQ,SAAS,QAAQ,OAEtC,MAAQ,SAAS,QAAQ,OAAO,EAEhC,MAAQ,SAAS,QAAQ,OAAO,EAEhC,MAAQ,SAAS,QAAQ,OAAO,EAEhC,MAAQ,SAAS,QAAQ,OAAO,EAEhC,MAAQ,SAAS,OAAO,OAAO,CAEhC,IAAI,UAAY,EAEhB,GAAI,OAAS,EAAG,CACd,KAAO,UAAY,aACjB,KAAK,iBAAiB,MAAQ,SAAS,SAAU,MAAQ,SAAS,SAAU,MAAQ,SAAS,SAAU,MAAQ,SAAS,GAAI,EAAG,GAAM,CACrI,WAAa,EAGX,eACF,KAAK,iBAAiB,MAAQ,SAAS,SAAU,MAAQ,SAAS,SAAU,MAAQ,SAAS,SAAU,MAAQ,SAAS,GAAI,aAAc,GAAM,CAChJ,WAAa,sBAEN,OAAS,EAAG,CACrB,KAAO,UAAY,aACjB,KAAK,iBAAiB,MAAQ,SAAS,SAAU,MAAQ,SAAS,SAAU,MAAQ,SAAS,SAAU,MAAQ,SAAS,GAAI,EAAG,GAAK,CACpI,YAGE,eACF,KAAK,iBAAiB,MAAQ,SAAS,SAAU,MAAQ,SAAS,SAAU,MAAQ,SAAS,SAAU,MAAQ,SAAS,GAAI,CAAC,aAAc,GAAK,CAChJ,WAAa,cAIjB,KAAK,MAAQ,SAAS,KAAK,IAAM,EAAI,GAAK,MAAQ,SAAS,eAAiB,EAC5E,KAAO,MAAQ,SAAS,KAAK,IAAM,EAAI,EAAI,GAC3C,MAAQ,MAAQ,SAAS,eAIzB,IAHA,IAAI,EACA,KAEG,MAAM,CAQX,GAPA,OAAS,MAAQ,SAAS,UAAUA,KAAG,GACvC,eAAiB,MAAM,MAAM,OAAS,GAAG,UAAU,OAAO,EAAE,MAC5D,KAAO,eAAe,OACtB,MAAM,MAAM,OAAS,GAAG,UAAU,OAAO,KAAO,GAChD,MAAM,MAAM,OAAS,GAAG,UAAU,GAAG,KAAO,GAC5C,MAAM,MAAM,OAAS,GAAG,UAAU,GAAG,GAAK,MAAQ,SAAS,iBAAmB,GAAK,MAAQ,SAAS,GAAG,GAAK,MAAQ,SAAS,GAAG,IAAM,MAAQ,SAAS,GAAG,GAAK,MAAQ,SAAS,GAAG,IAAMA,MAAM,MAAQ,SAAS,eAAiB,IAE7N,YAAc,EAAG,CAWnB,KAVIA,MAAM,GAAK,MAAQ,GAAKA,OAAO,MAAQ,SAAS,eAAiB,GAAK,MAAQ,KAChF,KAAK,iBAAiB,MAAQ,SAAS,SAAU,MAAQ,SAAS,SAAU,MAAQ,SAAS,SAAU,MAAQ,SAAS,GAAI,EAAG,GAAM,EAGtI,MAAQ,SAAS,OAAO,UAAU,OAAO,GAAI,OAAO,GAAI,OAAO,GAAI,OAAO,GAAI,OAAO,GAAI,OAAO,GAAI,OAAO,GAAI,OAAO,GAAI,OAAO,GAAI,OAAO,GAAI,OAAO,IAAK,OAAO,IAAK,OAAO,IAAK,OAAO,IAAK,OAAO,IAAK,OAAO,IAAI,EAEvN,MAAQ,SAAS,OAAO,UAAU,OAAO,GAAI,OAAO,GAAI,OAAO,GAAI,OAAO,GAAI,OAAO,GAAI,OAAO,GAAI,OAAO,GAAI,OAAO,GAAI,OAAO,GAAI,OAAO,GAAI,OAAO,IAAK,OAAO,IAAK,OAAO,IAAK,OAAO,IAAK,OAAO,IAAK,OAAO,IAAI,EAEvN,MAAQ,SAAS,OAAO,UAAU,OAAO,GAAI,OAAO,GAAI,OAAO,GAAI,OAAO,GAAI,OAAO,GAAI,OAAO,GAAI,OAAO,GAAI,OAAO,GAAI,OAAO,GAAI,OAAO,GAAI,OAAO,IAAK,OAAO,IAAK,OAAO,IAAK,OAAO,IAAK,OAAO,IAAK,OAAO,IAAI,CAEnN,EAAI,EAAG,EAAI,KAAM,GAAK,EACzB,eAAe,IAAM,MAAQ,SAAS,OAAO,MAAM,IAGpD,MAAQ,SAAS,OAAO,OAAO,MAIhC,KAFC,MAAQ,SAAS,OAAO,OAAO,CAE3B,EAAI,EAAG,EAAI,KAAM,GAAK,EACzB,eAAe,IAAM,MAAQ,SAAS,OAAO,MAAM,GAIvD,WAAa,EACb,OACA,KAAK,UAOP,IAJA,MAAQ,MAAQ,SAAS,eACzB,IAAI,EACJ,IAAM,EAEC,MACL,OAAS,MAAQ,SAAS,UAAUA,KAAG,GACvC,eAAiB,MAAM,MAAM,OAAS,GAAG,UAAU,OAAO,EAAE,MAC5D,MAAM,MAAM,OAAS,GAAG,UAAU,OAAO,KAAO,GAChD,MAAM,MAAM,OAAS,GAAG,UAAU,GAAG,KAAO,GAC5C,OACA,KAAK,IAIT,OAAO,aAGT,iBAAiB,UAAU,SAAW,UAAY,GAElD,eAAe,iBAAiB,KAAM,iBAAiB,CAGvD,SAAS,iBAAkB,CACzB,CAAC,MAAQ,SAAS,QAAU,EAC5B,CAAC,MAAQ,SAAS,WAAa,EAC/B,CAAC,MAAQ,SAAS,OAAS,kBAAkB,MAAQ,SAAS,WAAW,CAG3E,gBAAgB,UAAU,SAAW,SAAU,UAAW,EACnD,MAAQ,SAAS,WAAa,MAAQ,SAAS,aAClD,CAAC,MAAQ,SAAS,QAAU,MAAQ,SAAS,OAAO,OAAO,kBAAkB,MAAQ,SAAS,WAAW,CAAC,CAC1G,CAAC,MAAQ,SAAS,YAAc,GAGlC,CAAC,MAAQ,SAAS,QAAQ,MAAQ,SAAS,SAAW,UACtD,CAAC,MAAQ,SAAS,SAAW,GAG/B,gBAAgB,UAAU,cAAgB,UAAY,CACpD,IAAIA,IAEJ,IAAK,IAAI,EAAGA,KAAK,MAAQ,SAAS,QAAS,KAAK,EAC9C,UAAU,SAAS,MAAQ,SAAS,OAAOA,KAAG,CAGhD,CAAC,MAAQ,SAAS,QAAU,GAK9B,SAAS,aAAa,KAAM,KAAM,WAAU,UAAW,CACrD,CAAC,MAAQ,SAAS,KAAO,KACzB,CAAC,MAAQ,SAAS,QAAU,GAC5B,CAAC,MAAQ,SAAS,UAAY,iBAAiB,KAAK,OAAO,CAC3D,CAAC,MAAQ,SAAS,SAAWrI,WAC7B,CAAC,MAAQ,SAAS,EAAI,GACtB,CAAC,MAAQ,SAAS,QAAU,GAC5B,CAAC,MAAQ,SAAS,UAAY,iBAAiB,UAAW,KAAK,OAAS,KAAK,OAAS,EAAI,EAAE,CAC5F,CAAC,MAAQ,SAAS,WAAa,iBAAiB,UAAW,EAAE,CAC7D,KAAK,6BAA6B,UAAU,CAC5C,IAAIqI,IACA,IAAM,KAAK,QAAU,EACrB,KAEJ,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,KAAO,gBAAgB,QAAQ,KAAM,KAAKA,KAAG,EAAG,EAAG,EAAG,MAAQ,QAAQ,CACtE,CAAC,MAAQ,SAAS,EAAI,KAAK,IAAM,MAAQ,SAAS,EAClD,CAAC,MAAQ,SAAS,UAAUA,KAAK,CAC/B,EAAG,KAAKA,KAAG,EACX,EAAG,KACJ,EAGG,MAAQ,SAAS,GACrB,KAAK,SAAS,GAAK,CAGrB,CAAC,MAAQ,SAAS,aAAe,MAAQ,SAAS,EAGpD,aAAa,UAAU,SAAW,SAAU,YAAa,CACvD,MAAK,MAAQ,SAAS,KAAK,WAAW,WAAa,MAAQ,SAAS,SAAW,CAAC,eAIhF,CAAC,MAAQ,SAAS,SAAW,MAAQ,SAAS,KAAK,WAAW,QAC9D,KAAK,0BAA0B,CAC/B,CAAC,MAAQ,SAAS,MAAQ,MAAQ,SAAS,MAAQ,aAE9C,MAAQ,SAAS,MAAM,CAC1B,IAAIA,IAAI,EACJ,KAAO,MAAQ,SAAS,UAAU,OAMtC,KAJK,MAAQ,SAAS,WAAa,QACjC,CAAC,MAAQ,SAAS,QAAU,IAGzB,IAAI,EAAGA,IAAI,IAAK,KAAK,GACnB,MAAQ,SAAS,UAAUA,KAAG,IAAM,IAOvC,CAAC,MAAQ,SAAS,WAAW,IAAM,MAAQ,SAAS,UAAUA,KAAG,EAAE,GAN9D,MAAQ,SAAS,WAAa,MACjC,CAAC,MAAQ,SAAS,SAAW,KAAO,MAAQ,SAAS,UAAUA,KAAG,EAAE,EAEpE,CAAC,MAAQ,SAAS,UAAUA,MAAM,MAAQ,SAAS,UAAUA,KAAG,EAAE,IAS5E,gBAAgB,CAAC,yBAAyB,CAAE,aAAa,CAGzD,SAAS,iBAAiB,KAAM,KAAM,UAAW,CAC/C,CAAC,MAAQ,SAAS,KAAO,KACzB,CAAC,MAAQ,SAAS,EAAI,iBAAiB,SAAU,KAAK,EAAI,EAAE,CAC5D,IAAI,QAAU,KAAK,EAAE,EAAE,GAAG,EAAI,KAAK,EAAE,EAAE,GAAG,EAAE,OAAS,KAAK,EAAI,EAAI,KAAK,EAAE,EAAE,OAAS,KAAK,EAAI,EAC7F,CAAC,MAAQ,SAAS,EAAI,iBAAiB,UAAW,QAAQ,CAC1D,CAAC,MAAQ,SAAS,MAAQ,GAC1B,CAAC,MAAQ,SAAS,MAAQ,GAC1B,CAAC,MAAQ,SAAS,aAAe,KAAK,kBAAkB,CACxD,CAAC,MAAQ,SAAS,YAAc,QAChC,KAAK,6BAA6B,UAAU,CAC5C,CAAC,MAAQ,SAAS,KAAO,gBAAgB,QAAQ,KAAM,KAAK,EAAG,EAAG,KAAM,MAAQ,QAAQ,CACxF,CAAC,MAAQ,SAAS,GAAK,MAAQ,SAAS,KAAK,EAC7C,KAAK,SAAS,GAAK,CAGrB,iBAAiB,UAAU,cAAgB,SAAU,OAAQ,OAAQ,CAKnE,IAJA,IAAIA,IAAI,EACJ,KAAO,MAAQ,SAAS,EAAE,OAAS,EACnC,KAEGA,IAAI,KAAK,CAGd,GAFA,KAAO,KAAK,IAAI,OAAOA,IAAI,GAAK,OAAO,OAAS,EAAIA,IAAI,GAAG,CAEvD,KAAO,IACT,MAAO,GAGT,KAAK,EAGP,MAAO,IAGT,iBAAiB,UAAU,iBAAmB,UAAY,CACxD,IAAK,MAAQ,SAAS,EAAE,OAAS,IAAO,MAAQ,SAAS,EAAE,OAAS,EAClE,MAAO,GAGT,IAAK,MAAQ,SAAS,KAAK,EAAE,EAAE,GAAG,EAIhC,IAHA,IAAIA,IAAI,EACJ,KAAO,MAAQ,SAAS,KAAK,EAAE,EAAE,OAE9BA,IAAI,KAAK,CACd,GAAI,CAAC,KAAK,eAAe,MAAQ,SAAS,KAAK,EAAE,EAAEA,KAAG,GAAI,MAAQ,SAAS,KAAK,EAAE,CAChF,MAAO,GAGT,KAAK,UAEE,CAAC,KAAK,eAAe,MAAQ,SAAS,KAAK,EAAE,GAAI,MAAQ,SAAS,KAAK,EAAE,CAClF,MAAO,GAGT,MAAO,IAGT,iBAAiB,UAAU,SAAW,SAAU,YAAa,CAO3D,IANC,MAAQ,SAAS,KAAK,UAAU,CAEjC,CAAC,MAAQ,SAAS,KAAO,GACzB,CAAC,MAAQ,SAAS,MAAQ,GAC1B,CAAC,MAAQ,SAAS,MAAQ,IAErB,MAAQ,SAAS,KAAK,MAAQ,YAAa,CAC9C,IAAIA,IACA,KAAO,MAAQ,SAAS,KAAK,EAAI,EACjC,KACA,IAEJ,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,KAAOA,IAAI,GAAM,EAAI,IAAM,IAC3B,IAAM,KAAK,OAAO,MAAQ,SAAS,KAAK,EAAEA,KAAK,KAAK,EAE/C,MAAQ,SAAS,EAAEA,OAAO,MAC7B,CAAC,MAAQ,SAAS,EAAEA,KAAK,IACzB,CAAC,MAAQ,SAAS,MAAQ,CAAC,aAI/B,IAAK,MAAQ,SAAS,EAAE,OAGtB,IAFA,KAAO,MAAQ,SAAS,KAAK,EAAE,OAE1B,KAAK,MAAQ,SAAS,KAAK,EAAI,EAAGA,IAAI,IAAK,KAAK,EACnD,KAAOA,IAAI,GAAM,EAAI,IAAM,EAC3B,IAAMA,IAAI,GAAM,EAAI,KAAK,OAAO,MAAQ,SAAS,KAAK,EAAEA,KAAK,IAAI,EAAI,MAAQ,SAAS,KAAK,EAAEA,MAExF,MAAQ,SAAS,EAAEA,KAAK,MAAQ,SAAS,KAAK,EAAI,KAAO,MAC5D,CAAC,MAAQ,SAAS,EAAEA,KAAK,MAAQ,SAAS,KAAK,EAAI,GAAK,IACxD,CAAC,MAAQ,SAAS,MAAQ,CAAC,aAKjC,CAAC,MAAQ,SAAS,KAAO,CAAC,cAI9B,gBAAgB,CAAC,yBAAyB,CAAE,iBAAiB,CAG7D,IAAI,iBAAmB,SAAU,UAAW,OAAQ,OAAQ,IAAK,CAC/D,GAAI,SAAW,EACb,MAAO,GAGT,IAAI,GAAK,UAAU,EACf,GAAK,UAAU,EACf,GAAK,UAAU,EACfA,IACA,YAAc,KAAO,IAAI,wBAAwB,GAAG,GAAG,GAAI,GAAG,GAAG,GAAG,CAExE,IAAK,IAAI,EAAGA,IAAI,OAAQ,KAAK,EAC3B,aAAe,KAAO,IAAI,wBAAwB,GAAGA,IAAI,GAAG,GAAI,GAAGA,IAAI,GAAG,GAAG,CAAG,IAAM,IAAI,wBAAwB,GAAGA,KAAG,GAAI,GAAGA,KAAG,GAAG,CAAG,IAAM,IAAI,wBAAwB,GAAGA,KAAG,GAAI,GAAGA,KAAG,GAAG,CAQ/L,OALI,QAAU,SACZ,aAAe,KAAO,IAAI,wBAAwB,GAAGA,IAAI,GAAG,GAAI,GAAGA,IAAI,GAAG,GAAG,CAAG,IAAM,IAAI,wBAAwB,GAAG,GAAG,GAAI,GAAG,GAAG,GAAG,CAAG,IAAM,IAAI,wBAAwB,GAAG,GAAG,GAAI,GAAG,GAAG,GAAG,CAC7L,aAAe,KAGV,aAOL,uBAAyB,UAAY,CACvC,SAAS,gBAAgB,aAAc,CACrC,CAAC,MAAQ,SAAS,OAAS,EAAE,CAC7B,CAAC,MAAQ,SAAS,aAAe,aACjC,CAAC,MAAQ,SAAS,QAAU,EAC5B,CAAC,MAAQ,SAAS,SAAW,GAqF/B,MAlFA,iBAAgB,UAAY,CAC1B,SAAU,SAAU,MAAO,EACxB,MAAQ,SAAS,OAAO,KAAK,MAAM,EAEtC,MAAO,UAAY,CACjB,IAAIA,IACA,KAAO,MAAQ,SAAS,OAAO,OAEnC,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,GACvB,MAAQ,SAAS,OAAOA,KAAG,OAAO,EAGvC,OAAQ,UAAY,CAClB,IAAIA,IACA,KAAO,MAAQ,SAAS,OAAO,OAEnC,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,GACvB,MAAQ,SAAS,OAAOA,KAAG,QAAQ,EAGxC,QAAS,SAAU,UAAW,CAC5B,IAAIA,IACA,KAAO,MAAQ,SAAS,OAAO,OAEnC,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,GACvB,MAAQ,SAAS,OAAOA,KAAG,QAAQ,UAAU,EAGlD,YAAa,SAAU,UAAW,CAWhC,OAVK,MAAQ,SAAS,aACb,KAAK,aAAa,UAAU,CAGjC,KACK,IAAI,KAAK,CACd,IAAK,CAAC,UAAU,CACjB,CAAC,CAGG,CACL,UAAW,GACX,KAAM,UAAY,CAChB,CAAC,MAAQ,SAAS,UAAY,IAEhC,KAAM,UAAY,CAChB,CAAC,MAAQ,SAAS,UAAY,IAEhC,QAAS,UAAY,GACrB,KAAM,UAAY,GAClB,UAAW,UAAY,GACxB,EAEH,gBAAiB,SAAU,aAAc,CACvC,CAAC,MAAQ,SAAS,aAAe,cAEnC,UAAW,SAAU,MAAO,CAC1B,CAAC,MAAQ,SAAS,QAAU,MAE5B,KAAK,eAAe,EAEtB,KAAM,UAAY,CAChB,CAAC,MAAQ,SAAS,SAAW,GAE7B,KAAK,eAAe,EAEtB,OAAQ,UAAY,CAClB,CAAC,MAAQ,SAAS,SAAW,GAE7B,KAAK,eAAe,EAEtB,UAAW,UAAY,CACrB,OAAQ,MAAQ,SAAS,SAE3B,cAAe,UAAY,CACzB,IAAIA,IACA,KAAO,MAAQ,SAAS,OAAO,OAEnC,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,GACvB,MAAQ,SAAS,OAAOA,KAAG,QAAQ,MAAQ,SAAS,UAAY,MAAQ,SAAS,SAAW,EAAI,GAAG,EAGzG,CACM,UAAY,CACjB,OAAO,IAAI,mBAEZ,CAMC,eAAiB,UAAY,CAC/B,IAAI,WAAa,UAAY,CAC3B,IAAI,OAAS,UAAU,SAAS,CAChC,OAAO,MAAQ,EACf,OAAO,OAAS,EAChB,IAAI,IAAM,OAAO,WAAW,KAAK,CAGjC,MAFA,KAAI,UAAY,gBAChB,IAAI,SAAS,EAAG,EAAG,EAAG,EAAE,CACjB,SACN,CAEH,SAAS,aAAc,CACrB,CAAC,MAAQ,SAAS,cAAgB,GAE7B,MAAQ,SAAS,gBAAkB,MAAQ,SAAS,cAAgB,MAAQ,SAAS,uBAAyB,MAAQ,SAAS,gBAC7H,MAAQ,SAAS,gBACpB,KAAK,eAAe,KAAK,CAK/B,SAAS,eAAgB,CACvB,CAAC,MAAQ,SAAS,qBAAuB,GAEpC,MAAQ,SAAS,gBAAkB,MAAQ,SAAS,cAAgB,MAAQ,SAAS,uBAAyB,MAAQ,SAAS,gBAC7H,MAAQ,SAAS,gBACpB,KAAK,eAAe,KAAK,CAK/B,SAAS,cAAc,UAAW,WAAY,aAAc,CAC1D,IAAI,KAAO,GAEX,GAAI,UAAU,EACZ,KAAO,UAAU,UACR,WAAY,CACrB,IAAI,UAAY,UAAU,EAEtB,UAAU,QAAQ,UAAU,GAAK,KACnC,UAAY,UAAU,MAAM,IAAI,CAAC,IAGnC,KAAO,WAAa,eAEpB,KAAO,aACP,MAAQ,UAAU,EAAI,UAAU,EAAI,GACpC,MAAQ,UAAU,EAGpB,OAAO,KAGT,SAAS,gBAAgB,IAAK,CAC5B,IAAI,OAAS,EACT,WAAa,YAAY,UAAY,EAC7B,IAAI,SAAS,CAEf,OAAS,OAAS,OACxB,KAAK,cAAc,CAEnB,cAAc,WAAW,EAG3B,QAAU,GACV,KAAK,MAAQ,QAAQ,CAAE,GAAG,CAG9B,SAAS,gBAAgB,UAAW,CAClC,IAAI,KAAO,cAAc,WAAY,MAAQ,SAAS,YAAa,MAAQ,SAAS,KAAK,CACrF,IAAM,SAAS,QAAQ,CAEvB,SACF,KAAK,gBAAgB,IAAI,CAEzB,IAAI,iBAAiB,QAAS,MAAQ,SAAS,aAAc,GAAM,CAGrE,IAAI,iBAAiB,QAAS,UAAY,CACxC,GAAG,IAAM,WAET,KAAK,cAAc,EACnB,KAAK,MAAQ,QAAQ,CAAE,GAAM,CAC/B,IAAI,eAAe,+BAAgC,OAAQ,KAAK,EAE3D,MAAQ,SAAS,eAAe,QAClC,MAAQ,SAAS,eAAe,OAAO,IAAI,EAE3C,MAAQ,SAAS,eAAe,YAAY,IAAI,CAGnD,IAAI,GAAK,CACF,IACM,UACZ,CACD,OAAO,GAGT,SAAS,cAAc,UAAW,CAChC,IAAI,KAAO,cAAc,WAAY,MAAQ,SAAS,YAAa,MAAQ,SAAS,KAAK,CACrF,IAAM,UAAU,MAAM,CAC1B,IAAI,YAAc,YAClB,IAAI,iBAAiB,QAAS,MAAQ,SAAS,aAAc,GAAM,CACnE,IAAI,iBAAiB,QAAS,UAAY,CACxC,GAAG,IAAM,WAET,KAAK,cAAc,EACnB,KAAK,MAAQ,QAAQ,CAAE,GAAM,CAC/B,IAAI,IAAM,KACV,IAAI,GAAK,CACF,IACM,UACZ,CACD,OAAO,GAGT,SAAS,kBAAkB,KAAM,CAC/B,IAAI,GAAK,CACP,UAAW,KACZ,CACG,KAAO,cAAc,MAAO,MAAQ,SAAS,YAAa,MAAQ,SAAS,KAAK,CAUpF,OATA,YAAY,KAAK,KAAM,SAAU,YAAa,CAC5C,GAAG,IAAM,YAET,KAAK,gBAAgB,EACrB,KAAK,MAAQ,QAAQ,CAAE,UAAY,CACnC,GAAG,IAAM,EAAE,CAEX,KAAK,gBAAgB,EACrB,KAAK,MAAQ,QAAQ,CAAC,CACjB,GAGT,SAAS,WAAW,OAAQ,GAAI,CAC9B,CAAC,MAAQ,SAAS,eAAiB,GACnC,IAAIA,IACA,IAAM,OAAO,OAEjB,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EACnB,OAAOA,KAAG,SACR,OAAOA,KAAG,EAIJ,OAAOA,KAAG,IAAM,IACzB,CAAC,MAAQ,SAAS,eAAiB,GAElC,MAAQ,SAAS,OAAO,KAAK,KAAK,kBAAkB,OAAOA,KAAG,CAAC,GANhE,CAAC,MAAQ,SAAS,aAAe,GAEhC,MAAQ,SAAS,OAAO,KAAK,KAAK,iBAAiB,OAAOA,KAAG,CAAC,GAUvE,SAAS,QAAQ,KAAM,CACrB,CAAC,MAAQ,SAAS,KAAO,MAAQ,GAGnC,SAAS,cAAc,KAAM,CAC3B,CAAC,MAAQ,SAAS,WAAa,MAAQ,GAGzC,SAAS,SAAS,UAAW,CAI3B,IAHA,IAAIA,IAAI,EACJ,KAAO,MAAQ,SAAS,OAAO,OAE5BA,IAAI,KAAK,CACd,IAAK,MAAQ,SAAS,OAAOA,KAAG,YAAc,UAC5C,OAAQ,MAAQ,SAAS,OAAOA,KAAG,IAGrC,KAAK,EAGP,OAAO,KAGT,SAAS,SAAU,CACjB,CAAC,MAAQ,SAAS,eAAiB,KACnC,CAAC,MAAQ,SAAS,OAAO,OAAS,EAGpC,SAAS,cAAe,CACtB,OAAQ,MAAQ,SAAS,eAAiB,MAAQ,SAAS,aAG7D,SAAS,gBAAiB,CACxB,OAAQ,MAAQ,SAAS,iBAAmB,MAAQ,SAAS,oBAG/D,SAAS,aAAa,KAAM,cAAe,CACrC,OAAS,OACX,CAAC,MAAQ,SAAS,eAAiB,cACnC,CAAC,MAAQ,SAAS,kBAAoB,MAAQ,SAAS,gBAAgB,KAAK,MAAQ,QAAQ,EAE5F,CAAC,MAAQ,SAAS,kBAAoB,MAAQ,SAAS,cAAc,KAAK,MAAQ,QAAQ,CAI9F,SAAS,uBAAwB,CAC/B,CAAC,MAAQ,SAAS,aAAe,YAAY,KAAK,MAAQ,QAAQ,CAClE,CAAC,MAAQ,SAAS,eAAiB,cAAc,KAAK,MAAQ,QAAQ,CACtE,CAAC,MAAQ,SAAS,gBAAkB,gBAAgB,KAAK,MAAQ,QAAQ,CACzE,CAAC,MAAQ,SAAS,kBAAoB,kBAAkB,KAAK,MAAQ,QAAQ,CAC7E,CAAC,MAAQ,SAAS,WAAa,GAC/B,CAAC,MAAQ,SAAS,KAAO,GACzB,CAAC,MAAQ,SAAS,YAAc,EAChC,CAAC,MAAQ,SAAS,cAAgB,EAClC,CAAC,MAAQ,SAAS,aAAe,EACjC,CAAC,MAAQ,SAAS,oBAAsB,EACxC,CAAC,MAAQ,SAAS,eAAiB,KACnC,CAAC,MAAQ,SAAS,OAAS,EAAE,CAiB/B,MAdA,uBAAsB,UAAY,CACpB,WACG,cACN,QACK,aACE,eACP,QACC,SACK,cACE,gBACJ,YACE,cACD,aACf,CACM,wBACN,CAIC,eAAiB,UAAY,CAC/B,IAAI,GAAK,CACP,SAAU,GACX,CAMD,OAJI,WAAW,KAAK,UAAU,UAAU,EAAI,UAAU,KAAK,UAAU,UAAU,EAAI,WAAW,KAAK,UAAU,UAAU,EAAI,aAAa,KAAK,UAAU,UAAU,IAC/J,GAAG,SAAW,IAGT,KACN,CAMC,eAAiB,UAAY,CAC/B,IAAI,GAAK,EAAE,CACX,GAAG,aAAe,aAClB,GAAG,6BAA+B,6BAElC,SAAS,aAAa,MAAO,gBAAiB,CAC5C,IAAI,IAAM,SAAS,SAAS,CAW5B,OAVA,IAAI,aAAa,KAAM,MAAM,CAEzB,kBAAoB,KACtB,IAAI,aAAa,cAAe,oBAAoB,CACpD,IAAI,aAAa,IAAK,KAAK,CAC3B,IAAI,aAAa,IAAK,KAAK,CAC3B,IAAI,aAAa,QAAS,OAAO,CACjC,IAAI,aAAa,SAAU,OAAO,EAG7B,IAGT,SAAS,8BAA+B,CACtC,IAAI,cAAgB,SAAS,gBAAgB,CAI7C,OAHA,cAAc,aAAa,OAAQ,SAAS,CAC5C,cAAc,aAAa,8BAA+B,OAAO,CACjE,cAAc,aAAa,SAAU,6CAA6C,CAC3E,cAGT,OAAO,KACN,CAIC,YAAc,UAAY,CAC5B,SAAS,eAAe,IAAK,CAa3B,OAZI,IAAI,UAAY,OAAO,IAAI,UAAa,SACnC,IAAI,SAGT,IAAI,UAAY,OAAO,IAAI,UAAa,SACnC,KAAK,MAAM,IAAI,SAAS,CAG7B,IAAI,aACC,KAAK,MAAM,IAAI,aAAa,CAG9B,KAGT,SAAS,UAAU,KAAM,SAAU,cAAe,CAChD,IAAI,SACA,IAAM,IAAI,eAEd,GAAI,CAEF,IAAI,aAAe,YACP,EAGd,IAAI,mBAAqB,UAAY,CACnC,GAAI,IAAI,aAAe,EACrB,GAAI,IAAI,SAAW,IACjB,SAAW,eAAe,IAAI,CAC9B,SAAS,SAAS,MAElB,GAAI,CACF,SAAW,eAAe,IAAI,CAC9B,SAAS,SAAS,OACX,IAAK,CACR,eACF,cAAc,IAAI,GAO5B,IAAI,KAAK,MAAO,KAAM,GAAK,CAC3B,IAAI,MAAM,CAGZ,MAAO,CACL,KAAM,UACP,GACA,CAKH,SAAS,qBAAqB,SAAU,WAAY,KAAM,CACxD,CAAC,MAAQ,SAAS,cAAgB,GAClC,CAAC,MAAQ,SAAS,eAAiB,GACnC,CAAC,MAAQ,SAAS,SAAW,GAC7B,CAAC,MAAQ,SAAS,UAAY,SAC9B,CAAC,MAAQ,SAAS,YAAc,WAChC,CAAC,MAAQ,SAAS,MAAQ,KAC1B,CAAC,MAAQ,SAAS,eAAiB,kBAAkB,MAAQ,SAAS,UAAU,EAAE,OAAO,CACzF,CAAC,MAAQ,SAAS,UAAY,EAAE,CAChC,CAAC,MAAQ,SAAS,aAAe,CAC/B,UAAW,EAAE,CACd,CACD,CAAC,MAAQ,SAAS,gBAAkB,EAAE,CACtC,CAAC,MAAQ,SAAS,mBAAqB,GACvC,KAAK,6BAA6B,KAAK,CAGzC,qBAAqB,UAAU,iBAAmB,UAAY,CAC5D,IAAIA,IACA,KAAO,MAAQ,SAAS,UAAU,EAAE,OACpC,cACA,QAAU,gBAAgB,QAE9B,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,eAAiB,MAAQ,SAAS,UAAU,EAAEA,KAC9C,CAAC,MAAQ,SAAS,eAAeA,KAAK,IAAI,0BAA0B,MAAQ,SAAS,MAAO,cAAe,MAAQ,QAAQ,EAGxH,MAAQ,SAAS,UAAU,GAAK,MAAQ,MAAQ,SAAS,UAAU,GACtE,CAAC,MAAQ,SAAS,UAAY,CAC5B,EAAG,SAAS,MAAQ,SAAS,OAAQ,MAAQ,SAAS,UAAU,EAAE,EAAG,EAAG,EAAG,MAAQ,QAAQ,CAC3F,EAAG,SAAS,MAAQ,SAAS,OAAQ,MAAQ,SAAS,UAAU,EAAE,EAAG,EAAG,EAAG,MAAQ,QAAQ,CAC3F,GAAI,MAAQ,SAAS,UAAU,EAAE,EACjC,GAAI,MAAQ,SAAS,MAAM,YAAY,iBAAiB,MAAQ,SAAS,UAAU,EAAE,EAAE,CACxF,CACD,CAAC,MAAQ,SAAS,eAAiB,IAEnC,CAAC,MAAQ,SAAS,eAAiB,GAGrC,CAAC,MAAQ,SAAS,aAAa,UAAY,SAAS,MAAQ,SAAS,OAAQ,MAAQ,SAAS,UAAU,EAAE,EAAG,EAAG,EAAG,MAAQ,QAAQ,EAGrI,qBAAqB,UAAU,YAAc,SAAU,aAAc,mBAAoB,CACvF,IAAC,MAAQ,SAAS,mBAAqB,mBAEnC,IAAE,MAAQ,SAAS,MAAQ,EAAE,MAAQ,SAAS,eAAiB,CAAC,qBAAuB,EAAE,MAAQ,SAAS,gBAAkB,EAAE,MAAQ,SAAS,UAAU,EAAE,OAI/J,EAAC,MAAQ,SAAS,cAAgB,GAClC,IAAI,WAAa,MAAQ,SAAS,aAAa,UAAU,EACrD,WAAa,MAAQ,SAAS,eAC9B,UAAY,MAAQ,SAAS,UAC7B,cAAgB,MAAQ,SAAS,QACjC,YAAc,MAAQ,SAAS,YAC/B,sBAAwB,MAAQ,SAAS,gBAAgB,OACzD,KACA,KACAA,IACA,IACA,QAAU,aAAa,EACvB,SACA,cACA,aACA,cACA,KACA,SACA,WACA,UACA,OACA,SACA,cACA,YACA,KACA,SACA,KAEJ,IAAK,MAAQ,SAAS,eAAgB,CAGpC,GAFA,MAAQ,MAAQ,SAAS,UAAU,EAE/B,EAAE,MAAQ,SAAS,UAAU,IAAM,MAAQ,SAAS,UAAU,KAAM,CACtE,IAAI,MAAQ,KAAK,GAEZ,MAAQ,SAAS,UAAU,IAC9B,MAAQ,MAAM,SAAS,EAIzB,SAAW,CACT,QAAS,EACT,SAAU,EAAE,CACb,CACD,IAAM,MAAM,QAAU,EACtB,IAAI,WAGJ,IAFA,YAAc,EAET,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,WAAa,IAAI,gBAAgB,MAAM,EAAEA,KAAI,MAAM,EAAEA,IAAI,GAAI,CAAC,MAAM,EAAEA,KAAG,GAAK,MAAM,EAAEA,KAAG,GAAI,MAAM,EAAEA,KAAG,GAAK,MAAM,EAAEA,KAAG,GAAG,CAAE,CAAC,MAAM,EAAEA,IAAI,GAAG,GAAK,MAAM,EAAEA,IAAI,GAAG,GAAI,MAAM,EAAEA,IAAI,GAAG,GAAK,MAAM,EAAEA,IAAI,GAAG,GAAG,CAAC,CAC5M,SAAS,SAAW,WAAW,cAC/B,SAAS,SAAS,KAAK,WAAW,CAClC,aAAe,WAAW,cAG5B,IAAI,IAEA,KAAK,EAAE,IACT,WAAa,IAAI,gBAAgB,MAAM,EAAEA,KAAI,MAAM,EAAE,GAAI,CAAC,MAAM,EAAEA,KAAG,GAAK,MAAM,EAAEA,KAAG,GAAI,MAAM,EAAEA,KAAG,GAAK,MAAM,EAAEA,KAAG,GAAG,CAAE,CAAC,MAAM,EAAE,GAAG,GAAK,MAAM,EAAE,GAAG,GAAI,MAAM,EAAE,GAAG,GAAK,MAAM,EAAE,GAAG,GAAG,CAAC,CACxL,SAAS,SAAW,WAAW,cAC/B,SAAS,SAAS,KAAK,WAAW,CAClC,aAAe,WAAW,eAG5B,CAAC,MAAQ,SAAS,UAAU,GAAK,SAWnC,GARA,UAAY,MAAQ,SAAS,UAAU,GACvC,eAAiB,MAAQ,SAAS,UAAU,EAAE,EAC9C,WAAa,EACb,SAAW,EACX,cAAgB,EAChB,KAAO,GACP,SAAW,SAAS,SAEhB,cAAgB,GAAK,KAAK,EAAE,EAS9B,IARI,SAAS,QAAU,KAAK,IAAI,cAAc,GAC5C,cAAgB,CAAC,KAAK,IAAI,cAAc,CAAG,SAAS,SAGtD,WAAa,SAAS,OAAS,EAC/B,OAAS,SAAS,YAAY,OAC9B,SAAW,OAAO,OAAS,EAEpB,cAAgB,GACrB,eAAiB,OAAO,UAAU,cAClC,WAEI,SAAW,IACb,aACA,OAAS,SAAS,YAAY,OAC9B,SAAW,OAAO,OAAS,GAKjC,OAAS,SAAS,YAAY,OAC9B,UAAY,OAAO,SAAW,GAC9B,aAAe,OAAO,UACtB,cAAgB,aAAa,cAG/B,IAAM,QAAQ,OACd,KAAO,EACP,KAAO,EACP,IAAI,KAAO,aAAa,UAAY,IAAM,KACtC,UAAY,GACZ,cACA,iBACA,EACA,KAEG,UAAU,OADb,YAEA,KACA,IAAM,GACN,KACA,SACA,SACA,YAAc,cACd,eAAiB,WACjB,aAAe,SACf,YAAc,GACd,YACA,GACA,GACA,GACA,EACA,SACA,SACA,SACA,QAAU,GACV,SAAW,MAAQ,SAAS,kBAC5B,QAEJ,GAAI,aAAa,IAAM,GAAK,aAAa,IAAM,EAAG,CAChD,IAAI,sBAAwB,EACxB,wBAA0B,EAC1B,kBAAoB,aAAa,IAAM,EAAI,IAAO,GAClD,UAAY,EACZ,UAAY,GAEhB,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,GAAI,QAAQA,KAAG,EAAG,CAKhB,IAJI,wBACF,uBAAyB,yBAGpB,UAAYA,KACjB,QAAQ,WAAW,sBAAwB,sBAC3C,WAAa,EAGf,sBAAwB,EACxB,UAAY,OACP,CACL,IAAK,EAAI,EAAG,EAAI,KAAM,GAAK,EACzB,cAAgB,UAAU,GAAG,EAEzB,cAAc,EAAE,WACd,WAAa,aAAa,IAAM,IAClC,yBAA2B,cAAc,EAAE,EAAI,mBAGjD,iBAAmB,UAAU,GAAG,EAChC,KAAO,iBAAiB,QAAQ,QAAQA,KAAG,UAAU,GAAI,SAAS,EAAE,GAAG,EAAE,WAAW,CAEhF,KAAK,OACP,uBAAyB,cAAc,EAAE,EAAI,KAAK,GAAK,kBAEvD,uBAAyB,cAAc,EAAE,EAAI,KAAO,mBAK1D,UAAY,GAQhB,IAJI,wBACF,uBAAyB,yBAGpB,UAAYA,KACjB,QAAQ,WAAW,sBAAwB,sBAC3C,WAAa,EAKjB,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EAAG,CAI3B,GAHA,aAAa,OAAO,CACpB,YAAc,EAEV,QAAQA,KAAG,EACb,KAAO,EACP,MAAQ,aAAa,QACrB,MAAQ,UAAY,EAAI,EACxB,cAAgB,YAChB,UAAY,IAEP,MAAQ,SAAS,iBACpB,WAAa,eACb,SAAW,aACX,OAAS,SAAS,YAAY,OAC9B,UAAY,OAAO,SAAW,GAC9B,aAAe,OAAO,UACtB,cAAgB,aAAa,cAC7B,cAAgB,GAGlB,QAAU,GACV,SAAW,GACX,SAAW,GACX,QAAU,GACV,SAAW,MAAQ,SAAS,sBACvB,CACL,IAAK,MAAQ,SAAS,eAAgB,CACpC,GAAI,cAAgB,QAAQA,KAAG,KAAM,CACnC,OAAQ,aAAa,EAArB,CACE,IAAK,GACH,eAAiB,YAAc,aAAa,WAAW,QAAQA,KAAG,MAClE,MAEF,IAAK,GACH,gBAAkB,YAAc,aAAa,WAAW,QAAQA,KAAG,OAAS,EAC5E,MAEF,QACE,MAGJ,YAAc,QAAQA,KAAG,KAGvB,MAAQ,QAAQA,KAAG,MACjB,QAAQ,OACV,eAAiB,QAAQ,KAAK,OAGhC,eAAiB,QAAQA,KAAG,GAAK,EACjC,IAAM,QAAQA,KAAG,KAGnB,eAAiB,UAAU,GAAK,QAAQA,KAAG,GAAK,KAChD,IAAI,eAAiB,EAErB,IAAK,EAAI,EAAG,EAAI,KAAM,GAAK,EACzB,cAAgB,UAAU,GAAG,EAEzB,cAAc,EAAE,WAClB,iBAAmB,UAAU,GAAG,EAChC,KAAO,iBAAiB,QAAQ,QAAQA,KAAG,UAAU,GAAI,SAAS,EAAE,GAAG,EAAE,WAAW,CAEhF,KAAK,OACP,gBAAkB,cAAc,EAAE,EAAE,GAAK,KAAK,GAE9C,gBAAkB,cAAc,EAAE,EAAE,GAAK,MAIzC,cAAc,EAAE,WAClB,iBAAmB,UAAU,GAAG,EAChC,KAAO,iBAAiB,QAAQ,QAAQA,KAAG,UAAU,GAAI,SAAS,EAAE,GAAG,EAAE,WAAW,CAEhF,KAAK,OACP,gBAAkB,cAAc,EAAE,EAAE,GAAK,KAAK,GAE9C,gBAAkB,cAAc,EAAE,EAAE,GAAK,MAO/C,IAFA,KAAO,GAEA,MACD,cAAgB,eAAiB,cAAgB,gBAAkB,CAAC,QACtE,MAAQ,cAAgB,eAAiB,eAAiB,aAAa,cACvE,SAAW,UAAU,MAAM,IAAM,aAAa,MAAM,GAAK,UAAU,MAAM,IAAM,KAC/E,SAAW,UAAU,MAAM,IAAM,aAAa,MAAM,GAAK,UAAU,MAAM,IAAM,KAC/E,aAAa,UAAU,CAAC,UAAU,GAAK,QAAQA,KAAG,GAAK,KAAO,EAAE,UAAU,GAAK,MAAQ,IAAK,CAC5F,KAAO,IACE,SACT,eAAiB,aAAa,cAC9B,UAAY,EAER,UAAY,OAAO,SACrB,SAAW,EACX,YAAc,EAET,SAAS,YAUZ,OAAS,SAAS,YAAY,OAT1B,KAAK,EAAE,GACT,SAAW,EACX,WAAa,EACb,OAAS,SAAS,YAAY,SAE9B,eAAiB,aAAa,cAC9B,OAAS,OAOX,SACF,UAAY,aACZ,aAAe,OAAO,UACtB,cAAgB,aAAa,gBAKnC,KAAO,QAAQA,KAAG,GAAK,EAAI,QAAQA,KAAG,IACtC,aAAa,UAAU,CAAC,KAAM,EAAG,EAAE,MAEnC,KAAO,QAAQA,KAAG,GAAK,EAAI,QAAQA,KAAG,IACtC,aAAa,UAAU,CAAC,KAAM,EAAG,EAAE,CAEnC,aAAa,UAAU,CAAC,UAAU,GAAK,QAAQA,KAAG,GAAK,KAAO,CAAC,UAAU,GAAK,KAAO,IAAM,EAAE,CAG/F,IAAK,EAAI,EAAG,EAAI,KAAM,GAAK,EACzB,cAAgB,UAAU,GAAG,EAEzB,cAAc,EAAE,WAClB,iBAAmB,UAAU,GAAG,EAChC,KAAO,iBAAiB,QAAQ,QAAQA,KAAG,UAAU,GAAI,SAAS,EAAE,GAAG,EAAE,WAAW,EAEhF,OAAS,GAAK,aAAa,IAAM,MAC9B,MAAQ,SAAS,eAChB,KAAK,OACP,eAAiB,cAAc,EAAE,EAAI,KAAK,GAE1C,eAAiB,cAAc,EAAE,EAAI,KAE9B,KAAK,OACd,MAAQ,cAAc,EAAE,EAAI,KAAK,GAEjC,MAAQ,cAAc,EAAE,EAAI,OAsBpC,IAhBI,aAAa,kBACf,GAAK,aAAa,IAAM,GAGtB,aAAa,kBACf,AAGE,GAHE,aAAa,GACV,CAAC,aAAa,GAAG,GAAI,aAAa,GAAG,GAAI,aAAa,GAAG,GAAG,CAE5D,CAAC,EAAG,EAAG,EAAE,EAId,aAAa,eAAiB,aAAa,KAC7C,GAAK,CAAC,aAAa,GAAG,GAAI,aAAa,GAAG,GAAI,aAAa,GAAG,GAAG,EAG9D,EAAI,EAAG,EAAI,KAAM,GAAK,EACzB,cAAgB,UAAU,GAAG,EAEzB,cAAc,EAAE,WAClB,iBAAmB,UAAU,GAAG,EAChC,KAAO,iBAAiB,QAAQ,QAAQA,KAAG,UAAU,GAAI,SAAS,EAAE,GAAG,EAAE,WAAW,CAEhF,KAAK,OACP,aAAa,UAAU,CAAC,cAAc,EAAE,EAAE,GAAK,KAAK,GAAI,CAAC,cAAc,EAAE,EAAE,GAAK,KAAK,GAAI,cAAc,EAAE,EAAE,GAAK,KAAK,GAAG,CAExH,aAAa,UAAU,CAAC,cAAc,EAAE,EAAE,GAAK,KAAM,CAAC,cAAc,EAAE,EAAE,GAAK,KAAM,cAAc,EAAE,EAAE,GAAK,KAAK,EAKrH,IAAK,EAAI,EAAG,EAAI,KAAM,GAAK,EACzB,cAAgB,UAAU,GAAG,EAEzB,cAAc,EAAE,WAClB,iBAAmB,UAAU,GAAG,EAChC,KAAO,iBAAiB,QAAQ,QAAQA,KAAG,UAAU,GAAI,SAAS,EAAE,GAAG,EAAE,WAAW,CAEhF,KAAK,OACP,aAAa,MAAM,GAAK,cAAc,EAAE,EAAE,GAAK,GAAK,KAAK,GAAI,GAAK,cAAc,EAAE,EAAE,GAAK,GAAK,KAAK,GAAI,EAAE,CAEzG,aAAa,MAAM,GAAK,cAAc,EAAE,EAAE,GAAK,GAAK,KAAM,GAAK,cAAc,EAAE,EAAE,GAAK,GAAK,KAAM,EAAE,EAKzG,IAAK,EAAI,EAAG,EAAI,KAAM,GAAK,EAAG,CAqD5B,GApDA,cAAgB,UAAU,GAAG,EAC7B,iBAAmB,UAAU,GAAG,EAChC,KAAO,iBAAiB,QAAQ,QAAQA,KAAG,UAAU,GAAI,SAAS,EAAE,GAAG,EAAE,WAAW,CAEhF,cAAc,GAAG,WACf,KAAK,OACP,aAAa,aAAa,CAAC,cAAc,GAAG,EAAI,KAAK,GAAI,cAAc,GAAG,EAAI,KAAK,GAAG,CAEtF,aAAa,aAAa,CAAC,cAAc,GAAG,EAAI,KAAM,cAAc,GAAG,EAAI,KAAK,EAIhF,cAAc,EAAE,WACd,KAAK,OACP,aAAa,QAAQ,CAAC,cAAc,EAAE,EAAI,KAAK,GAAG,CAElD,aAAa,QAAQ,CAAC,cAAc,EAAE,EAAI,KAAK,EAI/C,cAAc,GAAG,WACf,KAAK,OACP,aAAa,QAAQ,cAAc,GAAG,EAAI,KAAK,GAAG,CAElD,aAAa,QAAQ,cAAc,GAAG,EAAI,KAAK,EAI/C,cAAc,GAAG,WACf,KAAK,OACP,aAAa,QAAQ,cAAc,GAAG,EAAI,KAAK,GAAG,CAElD,aAAa,QAAQ,cAAc,GAAG,EAAI,KAAK,EAI/C,cAAc,EAAE,WACd,KAAK,OACP,cAAgB,cAAc,EAAE,EAAI,KAAK,GAAK,aAAe,KAAK,GAElE,cAAgB,cAAc,EAAE,EAAI,KAAO,aAAe,MAI1D,aAAa,iBAAmB,cAAc,GAAG,WAC/C,KAAK,OACP,IAAM,cAAc,GAAG,EAAI,KAAK,GAEhC,IAAM,cAAc,GAAG,EAAI,MAI3B,aAAa,iBAAmB,cAAc,GAAG,SACnD,IAAK,EAAI,EAAG,EAAI,EAAG,GAAK,EAClB,KAAK,OACP,GAAG,KAAO,cAAc,GAAG,EAAE,GAAK,GAAG,IAAM,KAAK,GAEhD,GAAG,KAAO,cAAc,GAAG,EAAE,GAAK,GAAG,IAAM,KAKjD,GAAI,aAAa,eAAiB,aAAa,GAAI,CACjD,GAAI,cAAc,GAAG,SACnB,IAAK,EAAI,EAAG,EAAI,EAAG,GAAK,EAClB,KAAK,OACP,GAAG,KAAO,cAAc,GAAG,EAAE,GAAK,GAAG,IAAM,KAAK,GAEhD,GAAG,KAAO,cAAc,GAAG,EAAE,GAAK,GAAG,IAAM,KAK7C,cAAc,GAAG,WACnB,AAGE,GAHE,KAAK,OACF,YAAY,GAAI,cAAc,GAAG,EAAI,KAAK,GAAG,CAE7C,YAAY,GAAI,cAAc,GAAG,EAAI,KAAK,EAI/C,cAAc,GAAG,WACnB,AAGE,GAHE,KAAK,OACF,mBAAmB,GAAI,cAAc,GAAG,EAAI,KAAK,GAAG,CAEpD,mBAAmB,GAAI,cAAc,GAAG,EAAI,KAAK,EAItD,cAAc,GAAG,WACnB,AAGE,GAHE,KAAK,OACF,mBAAmB,GAAI,cAAc,GAAG,EAAI,KAAK,GAAG,CAEpD,mBAAmB,GAAI,cAAc,GAAG,EAAI,KAAK,GAM9D,IAAK,EAAI,EAAG,EAAI,KAAM,GAAK,EACzB,cAAgB,UAAU,GAAG,EAEzB,cAAc,EAAE,WAClB,iBAAmB,UAAU,GAAG,EAChC,KAAO,iBAAiB,QAAQ,QAAQA,KAAG,UAAU,GAAI,SAAS,EAAE,GAAG,EAAE,WAAW,EAE/E,MAAQ,SAAS,eAChB,KAAK,OACP,aAAa,UAAU,EAAG,cAAc,EAAE,EAAE,GAAK,KAAK,GAAI,CAAC,cAAc,EAAE,EAAE,GAAK,KAAK,GAAG,CAE1F,aAAa,UAAU,EAAG,cAAc,EAAE,EAAE,GAAK,KAAM,CAAC,cAAc,EAAE,EAAE,GAAK,KAAK,CAE7E,KAAK,OACd,aAAa,UAAU,cAAc,EAAE,EAAE,GAAK,KAAK,GAAI,cAAc,EAAE,EAAE,GAAK,KAAK,GAAI,CAAC,cAAc,EAAE,EAAE,GAAK,KAAK,GAAG,CAEvH,aAAa,UAAU,cAAc,EAAE,EAAE,GAAK,KAAM,cAAc,EAAE,EAAE,GAAK,KAAM,CAAC,cAAc,EAAE,EAAE,GAAK,KAAK,EAiBpH,GAZI,aAAa,kBACf,SAAW,GAAK,EAAI,EAAI,IAGtB,aAAa,kBACf,SAAW,OAAS,KAAK,MAAM,GAAG,GAAK,IAAI,CAAG,IAAM,KAAK,MAAM,GAAG,GAAK,IAAI,CAAG,IAAM,KAAK,MAAM,GAAG,GAAK,IAAI,CAAG,KAG5G,aAAa,eAAiB,aAAa,KAC7C,SAAW,OAAS,KAAK,MAAM,GAAG,GAAK,IAAI,CAAG,IAAM,KAAK,MAAM,GAAG,GAAK,IAAI,CAAG,IAAM,KAAK,MAAM,GAAG,GAAK,IAAI,CAAG,MAG3G,MAAQ,SAAS,eAAgB,CAIpC,GAHA,aAAa,UAAU,EAAG,CAAC,aAAa,GAAG,CAC3C,aAAa,UAAU,EAAG,UAAU,GAAK,KAAO,IAAO,KAAM,EAAE,CAE3D,SAAS,EAAE,EAAG,CAChB,UAAY,aAAa,MAAM,GAAK,UAAU,MAAM,KAAO,aAAa,MAAM,GAAK,UAAU,MAAM,IACnG,IAAI,IAAM,KAAK,KAAK,SAAS,CAAG,IAAM,KAAK,GAEvC,aAAa,MAAM,GAAK,UAAU,MAAM,KAC1C,KAAO,KAGT,aAAa,OAAO,CAAC,IAAM,KAAK,GAAK,IAAI,CAG3C,aAAa,UAAU,SAAU,SAAU,EAAE,CAC7C,eAAiB,UAAU,GAAK,QAAQA,KAAG,GAAK,KAE5C,QAAQA,IAAI,IAAM,MAAQ,QAAQA,IAAI,GAAG,MAC3C,eAAiB,QAAQA,KAAG,GAAK,EACjC,eAAiB,aAAa,GAAK,KAAQ,aAAa,eAErD,CAQL,OAPA,aAAa,UAAU,KAAM,KAAM,EAAE,CAEjC,aAAa,IAEf,aAAa,UAAU,aAAa,GAAG,GAAI,aAAa,GAAG,GAAK,aAAa,OAAQ,EAAE,CAGjF,aAAa,EAArB,CACE,IAAK,GACH,aAAa,UAAU,QAAQA,KAAG,sBAAwB,aAAa,eAAiB,aAAa,SAAW,aAAa,WAAW,QAAQA,KAAG,OAAQ,EAAG,EAAE,CAChK,MAEF,IAAK,GACH,aAAa,UAAU,QAAQA,KAAG,sBAAwB,aAAa,eAAiB,aAAa,SAAW,aAAa,WAAW,QAAQA,KAAG,OAAS,EAAG,EAAG,EAAE,CACpK,MAEF,QACE,MAGJ,aAAa,UAAU,EAAG,CAAC,aAAa,GAAG,CAC3C,aAAa,UAAU,KAAM,EAAG,EAAE,CAClC,aAAa,UAAU,UAAU,GAAK,QAAQA,KAAG,GAAK,KAAO,UAAU,GAAK,KAAO,IAAM,EAAE,CAC3F,MAAQ,QAAQA,KAAG,EAAI,aAAa,GAAK,KAAQ,aAAa,UAG5D,aAAe,OACjB,QAAU,aAAa,OAAO,CACrB,aAAe,MACxB,QAAU,aAAa,SAAS,CAEhC,QAAU,CAAC,aAAa,MAAM,GAAI,aAAa,MAAM,GAAI,aAAa,MAAM,GAAI,aAAa,MAAM,GAAI,aAAa,MAAM,GAAI,aAAa,MAAM,GAAI,aAAa,MAAM,GAAI,aAAa,MAAM,GAAI,aAAa,MAAM,GAAI,aAAa,MAAM,GAAI,aAAa,MAAM,IAAK,aAAa,MAAM,IAAK,aAAa,MAAM,IAAK,aAAa,MAAM,IAAK,aAAa,MAAM,IAAK,aAAa,MAAM,IAAI,CAGlY,QAAU,YAGR,sBAAwBA,KAC1B,YAAc,IAAI,YAAY,QAAS,SAAU,SAAU,SAAU,QAAS,QAAQ,EAErF,MAAQ,SAAS,gBAAgB,KAAK,YAAY,CAEnD,sBAAwB,EACxB,CAAC,MAAQ,SAAS,mBAAqB,KAEvC,aAAe,MAAQ,SAAS,gBAAgBA,KAChD,CAAC,MAAQ,SAAS,mBAAqB,YAAY,OAAO,QAAS,SAAU,SAAU,SAAU,QAAS,QAAQ,GAAK,MAAQ,SAAS,uBAK9I,qBAAqB,UAAU,SAAW,UAAY,EAC/C,MAAQ,SAAS,MAAM,WAAW,WAAa,MAAQ,SAAS,WAIrE,CAAC,MAAQ,SAAS,UAAY,MAAQ,SAAS,MAAM,WAAW,QAChE,KAAK,0BAA0B,GAGjC,qBAAqB,UAAU,QAAU,IAAI,OAC7C,qBAAqB,UAAU,kBAAoB,EAAE,CACrD,gBAAgB,CAAC,yBAAyB,CAAE,qBAAqB,CAKjE,SAAS,yBAAyB,KAAM,cAAe,UAAW,CAChE,IAAI,YAAc,CAChB,SAAU,GACX,CACG,QAAU,gBAAgB,QAC1B,wBAA0B,cAAc,EAC5C,CAAC,MAAQ,SAAS,EAAI,CACpB,EAAG,wBAAwB,EAAI,QAAQ,KAAM,wBAAwB,EAAG,EAAG,UAAW,UAAU,CAAG,YACnG,GAAI,wBAAwB,GAAK,QAAQ,KAAM,wBAAwB,GAAI,EAAG,UAAW,UAAU,CAAG,YACtG,GAAI,wBAAwB,GAAK,QAAQ,KAAM,wBAAwB,GAAI,EAAG,UAAW,UAAU,CAAG,YACtG,GAAI,wBAAwB,GAAK,QAAQ,KAAM,wBAAwB,GAAI,EAAG,UAAW,UAAU,CAAG,YACtG,GAAI,wBAAwB,GAAK,QAAQ,KAAM,wBAAwB,GAAI,EAAG,UAAW,UAAU,CAAG,YACtG,EAAG,wBAAwB,EAAI,QAAQ,KAAM,wBAAwB,EAAG,EAAG,IAAM,UAAU,CAAG,YAC9F,EAAG,wBAAwB,EAAI,QAAQ,KAAM,wBAAwB,EAAG,EAAG,EAAG,UAAU,CAAG,YAC3F,EAAG,wBAAwB,EAAI,QAAQ,KAAM,wBAAwB,EAAG,EAAG,IAAM,UAAU,CAAG,YAC9F,EAAG,wBAAwB,EAAI,QAAQ,KAAM,wBAAwB,EAAG,EAAG,EAAG,UAAU,CAAG,YAC3F,GAAI,wBAAwB,GAAK,QAAQ,KAAM,wBAAwB,GAAI,EAAG,EAAG,UAAU,CAAG,YAC9F,GAAI,wBAAwB,GAAK,QAAQ,KAAM,wBAAwB,GAAI,EAAG,EAAG,UAAU,CAAG,YAC9F,GAAI,wBAAwB,GAAK,QAAQ,KAAM,wBAAwB,GAAI,EAAG,EAAG,UAAU,CAAG,YAC9F,GAAI,wBAAwB,GAAK,QAAQ,KAAM,wBAAwB,GAAI,EAAG,EAAG,UAAU,CAAG,YAC9F,GAAI,wBAAwB,GAAK,QAAQ,KAAM,wBAAwB,GAAI,EAAG,IAAM,UAAU,CAAG,YACjG,GAAI,wBAAwB,GAAK,QAAQ,KAAM,wBAAwB,GAAI,EAAG,IAAM,UAAU,CAAG,YACjG,EAAG,wBAAwB,EAAI,QAAQ,KAAM,wBAAwB,EAAG,EAAG,EAAG,UAAU,CAAG,YAC5F,CACD,CAAC,MAAQ,SAAS,EAAI,iBAAiB,oBAAoB,KAAM,cAAc,EAAG,UAAU,CAC5F,CAAC,MAAQ,SAAS,EAAE,EAAI,cAAc,EAAE,EAG1C,SAAS,YAAY,EAAG,GAAI,GAAI,GAAI,EAAG,IAAG,CACxC,CAAC,MAAQ,SAAS,EAAI,EACtB,CAAC,MAAQ,SAAS,GAAK,GACvB,CAAC,MAAQ,SAAS,GAAK,GACvB,CAAC,MAAQ,SAAS,GAAK,GACvB,CAAC,MAAQ,SAAS,EAAI,EACtB,CAAC,MAAQ,SAAS,EAAIE,IACtB,CAAC,MAAQ,SAAS,KAAO,CACvB,EAAG,GACH,GAAI,CAAC,CAAC,GACN,GAAI,CAAC,CAAC,GACN,GAAI,CAAC,CAAC,GACN,EAAG,GACH,EAAG,GACJ,CAGH,YAAY,UAAU,OAAS,SAAU,EAAG,GAAI,GAAI,GAAI,EAAG,IAAG,CAC5D,CAAC,MAAQ,SAAS,KAAK,EAAI,GAC3B,CAAC,MAAQ,SAAS,KAAK,GAAK,GAC5B,CAAC,MAAQ,SAAS,KAAK,GAAK,GAC5B,CAAC,MAAQ,SAAS,KAAK,GAAK,GAC5B,CAAC,MAAQ,SAAS,KAAK,EAAI,GAC3B,CAAC,MAAQ,SAAS,KAAK,EAAI,GAC3B,IAAI,QAAU,GAsCd,OApCK,MAAQ,SAAS,IAAM,IAC1B,CAAC,MAAQ,SAAS,EAAI,EACtB,CAAC,MAAQ,SAAS,KAAK,EAAI,GAC3B,QAAU,KAGP,MAAQ,SAAS,KAAO,KAC3B,CAAC,MAAQ,SAAS,GAAK,GACvB,CAAC,MAAQ,SAAS,KAAK,GAAK,GAC5B,QAAU,KAGP,MAAQ,SAAS,KAAO,KAC3B,CAAC,MAAQ,SAAS,GAAK,GACvB,CAAC,MAAQ,SAAS,KAAK,GAAK,GAC5B,QAAU,KAGP,MAAQ,SAAS,KAAO,KAC3B,CAAC,MAAQ,SAAS,GAAK,GACvB,CAAC,MAAQ,SAAS,KAAK,GAAK,GAC5B,QAAU,KAGP,MAAQ,SAAS,IAAM,IAC1B,CAAC,MAAQ,SAAS,EAAI,EACtB,CAAC,MAAQ,SAAS,KAAK,EAAI,GAC3B,QAAU,IAGRA,IAAE,UAAY,MAAQ,SAAS,EAAE,KAAOA,IAAE,KAAO,MAAQ,SAAS,EAAE,KAAOA,IAAE,KAAO,MAAQ,SAAS,EAAE,KAAOA,IAAE,KAAO,MAAQ,SAAS,EAAE,KAAOA,IAAE,KAAO,MAAQ,SAAS,EAAE,MAAQA,IAAE,MAAQ,MAAQ,SAAS,EAAE,MAAQA,IAAE,OAC9N,CAAC,MAAQ,SAAS,EAAIA,IACtB,CAAC,MAAQ,SAAS,KAAK,EAAI,GAC3B,QAAU,IAGL,SAOT,SAAS,aAAa,KAAM,KAAM,CAChC,CAAC,MAAQ,SAAS,SAAW,oBAC7B,CAAC,MAAQ,SAAS,GAAK,GACvB,CAAC,MAAQ,SAAS,EAAI,GACtB,CAAC,MAAQ,SAAS,GAAK,GACvB,CAAC,MAAQ,SAAS,cAAgB,GAClC,CAAC,MAAQ,SAAS,KAAO,GACzB,CAAC,MAAQ,SAAS,KAAO,KACzB,CAAC,MAAQ,SAAS,KAAO,KACzB,CAAC,MAAQ,SAAS,MAAQ,MAAQ,SAAS,KAAK,KAChD,CAAC,MAAQ,SAAS,UAAY,EAC9B,CAAC,MAAQ,SAAS,UAAY,GAC9B,CAAC,MAAQ,SAAS,gBAAkB,EACpC,CAAC,MAAQ,SAAS,gBAAkB,EAAE,CACtC,CAAC,MAAQ,SAAS,YAAc,CAC9B,OAAQ,EACR,UAAW,MAAQ,SAAS,gBAC5B,EAAG,GACH,OAAQ,GACR,QAAS,GACT,GAAI,GACJ,EAAG,GACH,cAAe,GACf,EAAG,EAAE,CACL,GAAI,EACJ,WAAY,EAAE,CACd,GAAI,GACJ,GAAI,GACJ,EAAG,GACH,GAAI,GACJ,GAAI,EACJ,EAAG,EACH,GAAI,EACJ,GAAI,EACJ,GAAI,KACJ,cAAe,GACf,gBAAiB,GACjB,gBAAiB,GACjB,QAAS,EACT,UAAW,EACX,UAAW,EAAE,CACb,gBAAiB,EACjB,WAAY,GACb,CACD,KAAK,UAAU,MAAQ,SAAS,aAAc,MAAQ,SAAS,KAAK,EAAE,EAAE,GAAG,EAAE,CAExE,KAAK,gBAAgB,EACxB,KAAK,kBAAkB,MAAQ,SAAS,YAAY,CAIxD,aAAa,UAAU,gBAAkB,CAAC,EAAG,EAAE,CAE/C,aAAa,UAAU,SAAW,SAAU,IAAK,KAAM,CACrD,IAAK,IAAI,KAAK,KACR,OAAO,UAAU,eAAe,KAAK,KAAM,EAAE,GAC/C,IAAI,GAAK,KAAK,IAIlB,OAAO,KAGT,aAAa,UAAU,eAAiB,SAAU,KAAM,CACjD,KAAK,YACR,KAAK,iBAAiB,KAAK,CAG7B,CAAC,MAAQ,SAAS,YAAc,KAChC,CAAC,MAAQ,SAAS,YAAY,UAAY,MAAQ,SAAS,YAAY,WAAa,MAAQ,SAAS,gBACrG,CAAC,MAAQ,SAAS,KAAO,IAG3B,aAAa,UAAU,eAAiB,UAAY,CAClD,OAAO,KAAK,iBAAiB,EAG/B,aAAa,UAAU,gBAAkB,UAAY,CAOnD,MANA,CAAC,MAAQ,SAAS,IAAM,MAAQ,SAAS,KAAK,EAAE,EAAE,OAAS,GAEtD,MAAQ,SAAS,IACpB,KAAK,WAAW,MAAQ,SAAS,iBAAiB,KAAK,MAAQ,QAAQ,CAAC,EAGlE,MAAQ,SAAS,IAG3B,aAAa,UAAU,UAAY,SAAU,eAAgB,EAC1D,MAAQ,SAAS,gBAAgB,KAAK,eAAe,EAErD,MAAQ,SAAS,KAAK,mBAAmB,MAAQ,QAAQ,EAG5D,aAAa,UAAU,SAAW,SAAU,YAAa,CACvD,OAAM,MAAQ,SAAS,KAAK,WAAW,WAAa,MAAQ,SAAS,SAAW,EAAE,MAAQ,SAAS,gBAAgB,SAAW,CAAC,aAI/H,EAAC,MAAQ,SAAS,YAAY,GAAK,MAAQ,SAAS,KAAK,EAAE,GAAG,MAAQ,SAAS,WAAW,EAAE,EAC5F,IAAI,cAAgB,MAAQ,SAAS,YACjC,cAAgB,MAAQ,SAAS,UAErC,IAAK,MAAQ,SAAS,KAAM,CAC1B,KAAK,gBAAgB,MAAQ,SAAS,YAAY,CAClD,OAGF,CAAC,MAAQ,SAAS,KAAO,GACzB,CAAC,MAAQ,SAAS,KAAO,GACzB,IAAIF,IACA,KAAO,MAAQ,SAAS,gBAAgB,OACxC,WAAa,cAAgB,MAAQ,SAAS,KAAK,EAAE,GAAG,MAAQ,SAAS,WAAW,EAExF,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EAExB,AACE,WADE,gBAAkB,MAAQ,SAAS,WAGvB,MAAQ,SAAS,gBAAgBA,MAAI,MAAQ,SAAS,YAAa,WAAW,EAAE,EAFhF,MAAQ,SAAS,gBAAgBA,KAAG,WAAY,WAAW,EAAE,CAM3E,eAAiB,YACnB,KAAK,eAAe,WAAW,CAGjC,CAAC,MAAQ,SAAS,GAAK,MAAQ,SAAS,YACxC,CAAC,MAAQ,SAAS,IAAM,MAAQ,SAAS,EACzC,CAAC,MAAQ,SAAS,KAAO,GACzB,CAAC,MAAQ,SAAS,SAAW,MAAQ,SAAS,KAAK,WAAW,UAGhE,aAAa,UAAU,iBAAmB,UAAY,CAMpD,IALA,IAAI,UAAY,MAAQ,SAAS,KAAK,EAAE,EACpC,UAAY,MAAQ,SAAS,KAAK,KAAK,cACvCA,IAAI,EACJ,IAAM,SAAS,OAEZA,KAAK,IAAM,GACZA,QAAM,IAAM,GAAK,SAASA,IAAI,GAAG,EAAI,WAIzC,KAAK,EAOP,OAJK,MAAQ,SAAS,YAAcA,MAClC,CAAC,MAAQ,SAAS,UAAYA,MAGxB,MAAQ,SAAS,KAAK,EAAE,GAAG,MAAQ,SAAS,WAAW,GAGjE,aAAa,UAAU,eAAiB,SAAU,KAAM,CAOtD,IANA,IAAI,mBAAqB,YAAY,2BAA2B,CAC5D,gBAAkB,EAAE,CACpBA,IAAI,EACJ,IAAM,KAAK,OACX,SAEGA,IAAI,KACT,SAAW,KAAK,WAAWA,IAAE,CAEzB,mBAAmB,QAAQ,SAAS,GAAK,GAElC,UAAY,OAAS,UAAY,OAC1C,SAAW,KAAK,WAAWA,IAAI,EAAE,CAE7B,UAAY,OAAS,UAAY,OACnC,gBAAgB,KAAK,KAAK,OAAOA,IAAG,EAAE,CAAC,CACvC,KAAK,GAEL,gBAAgB,KAAK,KAAK,OAAOA,IAAE,CAAC,EAGtC,gBAAgB,KAAK,KAAK,OAAOA,IAAE,CAAC,CAXpC,gBAAgB,gBAAgB,OAAS,IAAM,KAAK,OAAOA,IAAE,CAc/D,KAAK,EAGP,OAAO,iBAGT,aAAa,UAAU,iBAAmB,SAAU,aAAc,CAChE,aAAa,WAAa,GAC1B,IAAI,aAAe,MAAQ,SAAS,KAAK,WAAW,YAChD,MAAQ,MAAQ,SAAS,KACzB,QAAU,EAAE,CACZA,IACA,IACA,YACAzI,QAAQ,EACR,IACA,eAAiB,KAAK,EAAE,EACxB,YAAc,EACd,WAAa,EACb,YAAc,EACd,WAAa,EAAE,CACf,UAAY,EACZ,aAAe,EACf,EACA,KACA,SAAW,YAAY,cAAc,aAAa,EAAE,CACpD,SACA,QAAU,EACV,UAAY,kBAAkB,SAAS,CAC3C,aAAa,QAAU,UAAU,OACjC,aAAa,OAAS,UAAU,MAChC,aAAa,UAAY,aAAa,EACtC,aAAa,UAAY,KAAK,eAAe,aAAa,EAAE,CAC5D,IAAM,aAAa,UAAU,OAC7B,aAAa,gBAAkB,aAAa,GAC5C,IAAI,eAAiB,aAAa,GAAK,IAAO,aAAa,UACvD,SAEJ,GAAI,aAAa,GAOf,IANA,IAAI,KAAO,GACP,SAAW,aAAa,GAAG,GAC3B,UAAY,aAAa,GAAG,GAC5B,cACA,UAEG,MAAM,CACX,UAAY,KAAK,eAAe,aAAa,EAAE,CAC/C,cAAgB,EAChB,UAAY,EACZ,IAAM,UAAU,OAChB,eAAiB,aAAa,GAAK,IAAO,aAAa,UACvD,IAAI,eAAiB,GAErB,IAAK,IAAI,EAAGyI,IAAI,IAAK,KAAK,EACxB,SAAW,UAAUA,KAAG,WAAW,EAAE,CACrC,YAAc,GAEV,UAAUA,OAAO,IACnB,eAAiBA,KACR,WAAa,IAAM,WAAa,KACzC,UAAY,EACZ,YAAc,GACd,eAAiB,aAAa,iBAAmB,aAAa,UAAY,KAGxE,YAAY,OACd,SAAW,YAAY,YAAY,UAAUA,KAAI,SAAS,OAAQ,SAAS,QAAQ,CACnF,QAAU,YAAc,EAAI,SAAS,EAAI,aAAa,UAAY,KAGlE,QAAU,YAAY,YAAY,UAAUA,KAAI,aAAa,EAAG,aAAa,UAAU,CAGrF,UAAY,QAAU,UAAY,UAAUA,OAAO,KACjD,iBAAmB,GACrB,KAAO,EAEP,IAAI,eAGN,eAAiB,aAAa,iBAAmB,aAAa,UAAY,IAC1E,UAAU,OAAOA,IAAG,iBAAmBA,IAAI,EAAI,EAAG,KAAK,CAEvD,eAAiB,GACjB,UAAY,IAEZ,WAAa,QACb,WAAa,gBAIjB,eAAiB,SAAS,OAAS,aAAa,UAAY,KAEvD,MAAQ,SAAS,WAAa,aAAa,WAAa,MAAQ,SAAS,iBAAmB,UAAY,eAC3G,eAAa,UACb,aAAa,gBAAkB,aAAa,UAAY,aAAa,GAAK,aAAa,IAEvF,aAAa,UAAY,UACzB,IAAM,aAAa,UAAU,OAC7B,KAAO,IAKb,UAAY,CAAC,eACb,QAAU,EACV,IAAI,kBAAoB,EACpB,YAEJ,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EA6CxB,GA5CA,YAAc,GACd,YAAc,aAAa,UAAUA,KACrC,SAAW,YAAY,WAAW,EAAE,CAEhC,WAAa,IAAM,WAAa,GAClC,kBAAoB,EACpB,WAAW,KAAK,UAAU,CAC1B,aAAe,UAAY,aAAe,UAAY,aACtD,UAAY,GAAK,eACjB,IAAM,GACN,YAAc,GACd,aAAe,GAEf,IAAM,YAGJ,YAAY,OACd,SAAW,YAAY,YAAY,YAAa,SAAS,OAAQ,YAAY,cAAc,aAAa,EAAE,CAAC,QAAQ,CACnH,QAAU,YAAc,EAAI,SAAS,EAAI,aAAa,UAAY,KAIlE,QAAU,YAAY,YAAY,IAAK,aAAa,EAAG,aAAa,UAAU,CAI5E,cAAgB,IAClB,mBAAqB,QAAU,gBAE/B,WAAa,QAAU,eAAiB,kBACxC,kBAAoB,GAGtB,QAAQ,KAAK,CACX,EAAG,QACH,GAAI,QACJ,IAAK,YACL,EAAG,YACH,UAAW,EAAE,CACR,IACL,KAAM,YACN,sBAAuB,EACxB,CAAC,CAEE,gBAAkB,EAIpB,IAFA,aAAe,QAEX,MAAQ,IAAM,MAAQ,KAAOA,MAAM,IAAM,EAAG,CAK9C,KAJI,MAAQ,IAAM,MAAQ,OACxB,aAAe,SAGV,YAAcA,KACnB,QAAQ,YAAY,GAAK,YACzB,QAAQ,YAAY,IAAMzI,QAC1B,QAAQ,YAAY,MAAQ,QAC5B,YAAc,EAGhB,SAAS,EACT,YAAc,WAEP,gBAAkB,EAI3B,IAFA,aAAe,QAEX,MAAQ,IAAMyI,MAAM,IAAM,EAAG,CAK/B,IAJI,MAAQ,KACV,aAAe,SAGV,YAAcA,KACnB,QAAQ,YAAY,GAAK,YACzB,QAAQ,YAAY,IAAMzI,QAC1B,QAAQ,YAAY,MAAQ,QAC5B,YAAc,EAGhB,YAAc,EACd,SAAS,QAGX,QAAQA,SAAO,IAAMA,QACrB,QAAQA,SAAO,MAAQ,EACvB,SAAS,EAQb,GAJA,aAAa,EAAI,QACjB,aAAe,UAAY,aAAe,UAAY,aACtD,WAAW,KAAK,UAAU,CAEtB,aAAa,GACf,aAAa,SAAW,aAAa,GAAG,GACxC,aAAa,cAAgB,OAI7B,OAFA,aAAa,SAAW,aAEhB,aAAa,EAArB,CACE,IAAK,GACH,aAAa,cAAgB,CAAC,aAAa,SAC3C,MAEF,IAAK,GACH,aAAa,cAAgB,CAAC,aAAa,SAAW,EACtD,MAEF,QACE,aAAa,cAAgB,EAInC,aAAa,WAAa,WAC1B,IAAI,UAAY,KAAK,EACjB,aACA,WACJ,KAAO,UAAU,OACjB,IAAI,MACA,IACA,QAAU,EAAE,CAEhB,IAAK,EAAI,EAAG,EAAI,KAAM,GAAK,EAAG,CAkB5B,IAjBA,aAAe,UAAU,GAErB,aAAa,EAAE,KACjB,aAAa,gBAAkB,IAG7B,aAAa,EAAE,KACjB,aAAa,gBAAkB,KAG7B,aAAa,EAAE,IAAM,aAAa,EAAE,IAAM,aAAa,EAAE,IAAM,aAAa,EAAE,MAChF,aAAa,cAAgB,IAG/B,IAAM,EACN,MAAQ,aAAa,EAAE,EAElB,IAAI,EAAGyI,IAAI,IAAK,KAAK,EACxB,WAAa,QAAQA,KACrB,WAAW,UAAU,GAAK,KAEtB,OAAS,GAAK,WAAW,MAAQ,IAAM,OAAS,GAAK,WAAW,MAAQ,IAAM,WAAW,MAAQ,KAAO,OAAS,IAAM,WAAW,GAAK,WAAW,KAAO,KAAOA,KAAK,IAAM,IAAM,OAAS,IAAM,WAAW,GAAKA,KAAK,IAAM,MAEzN,aAAa,EAAE,KAAO,GACxB,QAAQ,KAAK,IAAI,CAGnB,KAAO,GAIX,KAAK,EAAE,GAAG,EAAE,WAAa,IACzB,IAAI,WAAa,GACb,OAEJ,GAAI,aAAa,EAAE,KAAO,EACxB,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,WAAa,QAAQA,KAEjB,YAAc,WAAW,UAAU,KAErC,WAAa,WAAW,UAAU,GAClC,OAAS,QAAQ,OAAO,KAAK,MAAM,KAAK,QAAQ,CAAG,QAAQ,OAAO,CAAE,EAAE,CAAC,IAGzE,WAAW,UAAU,GAAK,OAKhC,aAAa,QAAU,aAAa,iBAAmB,aAAa,UAAY,IAChF,aAAa,GAAK,aAAa,IAAM,EACrC,aAAa,OAAS,SAAS,OAAS,aAAa,UAAY,KAGnE,aAAa,UAAU,mBAAqB,SAAU,QAAS,QAAO,CACpE,QAAQzI,UAAU,IAAA,IAAa,MAAQ,SAAS,UAAYA,QAC5D,IAAI,MAAQ,KAAK,SAAS,EAAE,EAAG,MAAQ,SAAS,KAAK,EAAE,EAAEA,SAAO,EAAE,CAClE,MAAQ,KAAK,SAAS,MAAO,QAAQ,CACrC,CAAC,MAAQ,SAAS,KAAK,EAAE,EAAEA,SAAO,EAAI,MACtC,KAAK,YAAYA,QAAM,EAEtB,MAAQ,SAAS,KAAK,mBAAmB,MAAQ,QAAQ,EAG5D,aAAa,UAAU,YAAc,SAAU,QAAO,CACpD,IAAI,OAAS,MAAQ,SAAS,KAAK,EAAE,EAAEA,SAAO,EAC9C,MAAM,WAAa,GACnB,CAAC,MAAQ,SAAS,UAAY,EAC9B,CAAC,MAAQ,SAAS,cAAgB,GAClC,KAAK,SAAS,MAAM,EAGtB,aAAa,UAAU,cAAgB,SAAU,WAAY,CAC3D,CAAC,MAAQ,SAAS,UAAY,WAC9B,KAAK,aAAa,MAAQ,SAAS,UAAU,EAE5C,MAAQ,SAAS,KAAK,mBAAmB,MAAQ,QAAQ,EAG5D,aAAa,UAAU,mBAAqB,SAAU,WAAY,CAChE,CAAC,MAAQ,SAAS,gBAAkB,KAAK,MAAM,WAAW,EAAI,EAC9D,KAAK,aAAa,MAAQ,SAAS,UAAU,EAE5C,MAAQ,SAAS,KAAK,mBAAmB,MAAQ,QAAQ,EAO5D,IAAI,iBAAmB,UAAY,CACjC,IAAI,IAAM,KAAK,IACX,IAAM,KAAK,IACX,MAAQ,KAAK,MAEjB,SAAS,wBAAwB,KAAM,KAAM,CAC3C,CAAC,MAAQ,SAAS,mBAAqB,GACvC,CAAC,MAAQ,SAAS,EAAI,GACtB,CAAC,MAAQ,SAAS,KAAO,KACzB,CAAC,MAAQ,SAAS,KAAO,KACzB,CAAC,MAAQ,SAAS,KAAO,KAAK,KAC9B,CAAC,MAAQ,SAAS,OAAS,EAC3B,CAAC,MAAQ,SAAS,OAAS,EAC3B,KAAK,6BAA6B,KAAK,CACvC,CAAC,MAAQ,SAAS,EAAI,gBAAgB,QAAQ,KAAM,KAAK,GAAK,CAC5D,EAAG,EACJ,CAAE,EAAG,EAAG,MAAQ,QAAQ,CAErB,MAAO,KACT,CAAC,MAAQ,SAAS,EAAI,gBAAgB,QAAQ,KAAM,KAAK,EAAG,EAAG,EAAG,MAAQ,QAAQ,CAElF,CAAC,MAAQ,SAAS,EAAI,CACpB,EAAG,IACJ,CAGH,CAAC,MAAQ,SAAS,EAAI,gBAAgB,QAAQ,KAAM,KAAK,GAAK,CAC5D,EAAG,EACJ,CAAE,EAAG,EAAG,MAAQ,QAAQ,CACzB,CAAC,MAAQ,SAAS,GAAK,gBAAgB,QAAQ,KAAM,KAAK,IAAM,CAC9D,EAAG,EACJ,CAAE,EAAG,EAAG,MAAQ,QAAQ,CACzB,CAAC,MAAQ,SAAS,GAAK,gBAAgB,QAAQ,KAAM,KAAK,IAAM,CAC9D,EAAG,EACJ,CAAE,EAAG,EAAG,MAAQ,QAAQ,CACzB,CAAC,MAAQ,SAAS,EAAI,gBAAgB,QAAQ,KAAM,KAAK,EAAG,EAAG,IAAM,MAAQ,QAAQ,EAE/E,MAAQ,SAAS,kBAAkB,QACvC,KAAK,UAAU,CAInB,wBAAwB,UAAY,CAClC,QAAS,SAAU,IAAK,EACjB,MAAQ,SAAS,sBAAwB,MAAQ,SAAS,KAAK,aAAa,YAAY,EAAE,QAC7F,KAAK,UAAU,CAIjB,IAAI,GAAK,EACL,GAAK,EACL,GAAK,EACL,GAAK,GAEJ,MAAQ,SAAS,GAAG,EAAI,EAC3B,IAAM,MAAQ,SAAS,GAAG,EAAI,IAE9B,GAAK,EAAE,MAAQ,SAAS,GAAG,EAAI,KAG5B,MAAQ,SAAS,GAAG,EAAI,EAC3B,GAAK,GAAK,MAAQ,SAAS,GAAG,EAAI,IAElC,GAAK,GAAK,MAAQ,SAAS,GAAG,EAAI,IAGpC,IAAI,MAAQ,cAAc,gBAAgB,GAAI,GAAI,GAAI,GAAG,CAAC,IACtD,KAAO,EACP,GAAK,MAAQ,SAAS,OACtB,GAAK,MAAQ,SAAS,OACtB,MAAQ,MAAQ,SAAS,KAAK,GAElC,GAAI,OAAS,EACX,AAGE,KAHE,IAAM,EACD,KAAO,EAAI,EAAI,EAEf,IAAI,EAAG,IAAI,IAAO,EAAI,IAAM,IAAM,IAAM,EAAI,GAAI,EAAE,CAAC,CAG5D,KAAO,MAAM,KAAK,SACT,OAAS,EAClB,AAGE,KAHE,IAAM,EACD,KAAO,EAAI,EAAI,EAEf,EAAI,IAAI,EAAG,IAAI,IAAO,EAAI,IAAM,IAAM,IAAM,EAAI,GAAI,EAAE,CAAC,CAGhE,KAAO,MAAM,KAAK,SACT,OAAS,EACd,IAAM,EACR,KAAO,GAEP,KAAO,IAAI,EAAG,IAAI,IAAO,EAAI,IAAM,IAAM,IAAM,EAAI,GAAI,EAAE,CAAC,CAEtD,KAAO,GACT,MAAQ,EAER,KAAO,EAAI,GAAK,KAAO,KAI3B,KAAO,MAAM,KAAK,SACT,OAAS,EAAG,CACrB,GAAI,IAAM,EACR,KAAO,MACF,CACL,IAAI,IAAM,EAAI,EAId,IAAM,IAAI,IAAI,EAAG,IAAM,GAAM,EAAE,CAAE,EAAI,EAAE,CACvC,IAAIiJ,IAAI,CAAC,IAAM,EAAI,IACf,EAAI,IAAM,EACd,KAAO,KAAK,KAAK,EAAIA,IAAIA,KAAK,EAAI,GAAG,CAGvC,KAAO,MAAM,KAAK,MACT,OAAS,GACd,IAAM,EACR,KAAO,GAEP,IAAM,IAAI,IAAI,EAAG,IAAM,GAAM,EAAE,CAAE,EAAI,EAAE,CACvC,MAAQ,EAAI,KAAK,IAAI,KAAK,GAAK,KAAK,GAAK,EAAI,KAAO,EAAI,GAAG,EAAI,GAGjE,KAAO,MAAM,KAAK,GAEd,KAAO,MAAM,EAAE,GACjB,AAGE,KAHE,IAAM,EAAI,EACL,IAAI,EAAG,IAAI,IAAI,EAAG,EAAE,EAAI,EAAI,KAAM,EAAE,CAAC,CAErC,IAAI,EAAG,IAAI,EAAI,IAAK,EAAE,CAAC,EAIlC,KAAO,MAAM,KAAK,EAGpB,OAAO,MAAQ,MAAQ,SAAS,EAAE,GAEpC,SAAU,SAAU,aAAc,CAChC,KAAK,0BAA0B,CAC/B,CAAC,MAAQ,SAAS,KAAO,eAAiB,MAAQ,SAAS,KAC3D,CAAC,MAAQ,SAAS,oBAAsB,MAAQ,SAAS,KAAK,aAAa,YAAY,EAAE,QAAU,EAE/F,eAAiB,MAAQ,SAAS,KAAK,IAAM,IAC/C,CAAC,MAAQ,SAAS,EAAE,GAAK,MAAQ,SAAS,oBAG5C,IAAI,SAAW,MAAQ,SAAS,KAAK,IAAM,EAAI,EAAI,KAAO,MAAQ,SAAS,KAAK,WAC5E,GAAK,MAAQ,SAAS,EAAE,EAAI,QAC5B,GAAK,MAAQ,SAAS,EAAE,EAAI,QAAU,EACtC,GAAK,MAAQ,SAAS,EAAE,EAAI,QAAU,EAE1C,GAAI,EAAI,EAAG,CACT,IAAI,GAAK,EACT,EAAI,EACJ,EAAI,GAGN,CAAC,MAAQ,SAAS,OAAS,EAC3B,CAAC,MAAQ,SAAS,OAAS,GAE9B,CACD,gBAAgB,CAAC,yBAAyB,CAAE,wBAAwB,CAEpE,SAAS,oBAAoB,KAAM,KAAM,IAAK,CAC5C,OAAO,IAAI,wBAAwB,KAAM,KAAM,IAAI,CAGrD,MAAO,CACgB,oBACtB,GACA,CAMC,YAAc,UAAY,CAC5B,OAAO,SAAU,cAAe,QAAS,SAAU,CACjD,IAAI,QAAU,EACV,WAAa,cACb,KAAO,iBAAiB,WAAW,CACnC,GAAK,CACK,WACH,QACV,CAED,SAAS,YAAa,CACpB,IAAI,QASJ,OAPI,SACF,UACA,QAAU,KAAK,UAEf,QAAU,SAAS,CAGd,QAGT,SAAS,QAAQ,QAAS,CACpB,UAAY,aACd,KAAO,QAAQ,OAAO,KAAK,CAC3B,YAAc,GAGZ,UACF,SAAS,QAAQ,CAGnB,KAAK,SAAW,QAChB,SAAW,EAGb,OAAO,MAER,CAMC,QAAU,UAAY,CACxB,SAAS,OAAO,IAAK,CACnB,OAAO,IAAI,OAAO,iBAAiB,IAAI,OAAO,CAAC,CAGjD,MAAO,CACG,OACT,GACA,CAMC,UAAY,UAAY,CAC1B,SAAS,QAAS,CAChB,OAAO,iBAAiB,UAAW,EAAE,CAGvC,OAAO,YAAY,EAAG,OAAO,GAC5B,CAMC,UAAY,UAAY,CAC1B,SAAS,QAAS,CAChB,OAAO,IAAI,UAGb,SAAS,QAAQ,UAAW,CAC1B,IAAI,IAAM,UAAU,QAChBR,IAEJ,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,UAAU,QAAQ,UAAU,EAAEA,KAAG,CACjC,UAAU,QAAQ,UAAU,EAAEA,KAAG,CACjC,UAAU,QAAQ,UAAU,EAAEA,KAAG,CACjC,UAAU,EAAEA,KAAK,KACjB,UAAU,EAAEA,KAAK,KACjB,UAAU,EAAEA,KAAK,KAGnB,UAAU,QAAU,EACpB,UAAU,EAAI,GAGhB,SAAS,MAAM,MAAO,CACpB,IAAI,OAAS,QAAQ,YAAY,CAC7BA,IACA,IAAM,MAAM,UAAY,IAAA,GAAY,MAAM,EAAE,OAAS,MAAM,QAI/D,IAHA,OAAO,UAAU,IAAI,CACrB,OAAO,EAAI,MAAM,EAEZ,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,OAAO,YAAY,MAAM,EAAEA,KAAG,GAAI,MAAM,EAAEA,KAAG,GAAI,MAAM,EAAEA,KAAG,GAAI,MAAM,EAAEA,KAAG,GAAI,MAAM,EAAEA,KAAG,GAAI,MAAM,EAAEA,KAAG,GAAIA,IAAE,CAGjH,OAAO,OAGT,IAAI,QAAU,YAAY,EAAG,OAAQ,QAAQ,CAE7C,MADA,SAAQ,MAAQ,MACT,UACN,CAMC,oBAAsB,UAAY,CACpC,IAAI,GAAK,CACa,mBACX,QACV,CACG,QAAU,EACV,WAAa,EACb,KAAO,iBAAiB,WAAW,CAEvC,SAAS,oBAAqB,CAC5B,IAAI,gBASJ,OAPI,SACF,UACA,gBAAkB,KAAK,UAEvB,gBAAkB,IAAI,gBAGjB,gBAGT,SAAS,QAAQ,gBAAiB,CAChC,IAAIA,IACA,IAAM,gBAAgB,QAE1B,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,UAAU,QAAQ,gBAAgB,OAAOA,KAAG,CAG9C,gBAAgB,QAAU,EAEtB,UAAY,aACd,KAAO,QAAQ,OAAO,KAAK,CAC3B,YAAc,GAGhB,KAAK,SAAW,gBAChB,SAAW,EAGb,OAAO,KACN,CAMC,mBAAqB,UAAY,CACnC,SAAS,QAAS,CAChB,MAAO,CACL,QAAS,EAAE,CACX,YAAa,EACd,CAGH,SAAS,QAAQ,QAAS,CACxB,IAAIA,IACA,IAAM,QAAQ,QAAQ,OAE1B,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,iBAAiB,QAAQ,QAAQ,QAAQA,KAAG,CAG9C,QAAQ,QAAQ,OAAS,EAG3B,OAAO,YAAY,EAAG,OAAQ,QAAQ,GACrC,CAMC,iBAAmB,UAAY,CACjC,SAAS,QAAS,CAChB,MAAO,CACL,YAAa,EACb,SAAU,iBAAiB,UAAW,qBAAqB,CAC3D,QAAS,iBAAiB,UAAW,qBAAqB,CAC3D,CAGH,OAAO,YAAY,EAAG,OAAO,GAC5B,CAIC,aAAe,UAAY,CAC7B,SAAS,kBAAkB,QAAS,CAMlC,IAAK,IALD,MAAQ,QAAQ,MAAM;EAAO,CAC7B,KAAO,EAAE,CACT,KACA,UAAY,EAEPA,IAAI,EAAGA,IAAI,MAAM,OAAQ,KAAK,EACrC,KAAO,MAAMA,KAAG,MAAM,IAAI,CAEtB,KAAK,SAAW,IAClB,KAAK,KAAK,IAAM,KAAK,GAAG,MAAM,CAC9B,WAAa,GAIjB,GAAI,YAAc,EAChB,MAAU,OAAO,CAGnB,OAAO,KAGT,OAAO,SAAU,SAAU,CAGzB,IAAK,IAFD,QAAU,EAAE,CAEPA,IAAI,EAAGA,IAAI,SAAS,OAAQ,KAAK,EAAG,CAC3C,IAAI,QAAU,SAASA,KACnB,WAAa,CACf,KAAM,QAAQ,GACd,SAAU,QAAQ,GACnB,CAED,GAAI,CACF,WAAW,QAAU,KAAK,MAAM,SAASA,KAAG,GAAG,MACrC,CACV,GAAI,CACF,WAAW,QAAU,kBAAkB,SAASA,KAAG,GAAG,MAC3C,CACX,WAAW,QAAU,CACnB,KAAM,SAASA,KAChB,EAIL,QAAQ,KAAK,WAAW,CAG1B,OAAO,WAER,CAIH,SAAS,cAAe,EAExB,aAAa,UAAU,YAAc,SAAU,IAAK,CAClD,IAAIA,IACA,KAAO,MAAQ,SAAS,OAAO,OAC/B,KAGJ,IAFA,CAAC,MAAQ,SAAS,eAAiB,GAE9B,IAAI,IAAM,EAAGA,KAAK,EAAG,OAClB,MAAQ,SAAS,SAASA,OAC9B,MAAQ,MAAQ,SAAS,OAAOA,KAE5B,KAAK,GAAK,KAAK,IAAM,KAAO,MAAQ,SAAS,OAAOA,KAAG,IAAM,KAAK,GAAK,KAAK,GAAK,KAAO,MAAQ,SAAS,OAAOA,KAAG,IACrH,KAAK,UAAUA,IAAE,EAIrB,CAAC,MAAQ,SAAS,gBAAkB,MAAQ,SAAS,SAASA,MAAM,MAAQ,SAAS,eAAiB,GAGxG,KAAK,sBAAsB,EAG7B,aAAa,UAAU,WAAa,SAAU,MAAO,CACnD,OAAQ,MAAM,GAAd,CACE,IAAK,GACH,OAAO,KAAK,YAAY,MAAM,CAEhC,IAAK,GACH,OAAO,KAAK,WAAW,MAAM,CAE/B,IAAK,GACH,OAAO,KAAK,YAAY,MAAM,CAEhC,IAAK,GACH,OAAO,KAAK,WAAW,MAAM,CAE/B,IAAK,GACH,OAAO,KAAK,YAAY,MAAM,CAEhC,IAAK,GACH,OAAO,KAAK,WAAW,MAAM,CAE/B,IAAK,GACH,OAAO,KAAK,YAAY,MAAM,CAEhC,IAAK,IACH,OAAO,KAAK,aAAa,MAAM,CAEjC,IAAK,IACH,OAAO,KAAK,cAAc,MAAM,CAElC,QACE,OAAO,KAAK,WAAW,MAAM,GAInC,aAAa,UAAU,aAAe,UAAY,CAChD,MAAU,MAAM,mDAAmD,EAGrE,aAAa,UAAU,YAAc,SAAU,KAAM,CACnD,OAAO,IAAI,aAAa,MAAO,MAAQ,SAAS,WAAY,MAAQ,QAAQ,EAG9E,aAAa,UAAU,cAAgB,SAAU,KAAM,CACrD,OAAO,IAAI,eAAe,MAAO,MAAQ,SAAS,WAAY,MAAQ,QAAQ,EAGhF,aAAa,UAAU,cAAgB,UAAY,CACjD,IAAIA,IACA,KAAO,MAAQ,SAAS,OAAO,OAEnC,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,KAAK,UAAUA,IAAE,CAGnB,KAAK,sBAAsB,EAG7B,aAAa,UAAU,cAAgB,SAAU,UAAW,CAC1D,CAAC,MAAQ,SAAS,eAAiB,GACnC,IAAIA,IACA,IAAM,UAAU,OAChB,EACA,MAAQ,MAAQ,SAAS,OAAO,OAEpC,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EAGxB,IAFA,EAAI,EAEG,EAAI,MAAM,CACf,IAAK,MAAQ,SAAS,OAAO,GAAG,KAAO,UAAUA,KAAG,GAAI,CACtD,CAAC,MAAQ,SAAS,OAAO,GAAK,UAAUA,KACxC,MAGF,GAAK,IAKX,aAAa,UAAU,oBAAsB,SAAU,WAAY,CACjE,CAAC,MAAQ,SAAS,WAAW,iBAAmB,YAGlD,aAAa,UAAU,UAAY,UAAY,EACvC,MAAQ,SAAS,WAAW,iBAChC,KAAK,eAAe,EAIxB,aAAa,UAAU,sBAAwB,SAAU,QAAS,WAAY,UAAW,CAMvF,IALA,IAAI,UAAY,MAAQ,SAAS,SAC7B,QAAU,MAAQ,SAAS,OAC3BA,IAAI,EACJ,IAAM,OAAO,OAEVA,IAAI,KACL,OAAOA,KAAG,KAAO,aAEf,CAAC,SAASA,MAAM,SAASA,OAAO,IAClC,KAAK,UAAUA,IAAE,CACjB,KAAK,kBAAkB,QAAQ,GAE/B,UAAU,KAAK,SAASA,KAAG,CAC3B,SAASA,KAAG,aAAa,CAErB,OAAOA,KAAG,SAAW,IAAA,GAGvB,QAAQ,aAAa,UAAU,CAF/B,KAAK,sBAAsB,QAAS,OAAOA,KAAG,OAAQ,UAAU,GAOtE,KAAK,GAIT,aAAa,UAAU,kBAAoB,SAAU,QAAS,EAC3D,MAAQ,SAAS,gBAAgB,KAAK,QAAQ,EAGjD,aAAa,UAAU,wBAA0B,SAAU,OAAQ,CACjE,IAAIA,IACA,IAAM,OAAO,OAEjB,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,GAAI,OAAOA,KAAG,GAAI,CAChB,IAAI,KAAO,KAAK,WAAW,OAAOA,KAAG,CACrC,KAAK,iBAAiB,EAErB,MAAQ,SAAS,WAAW,iBAAiB,oBAAoB,KAAK,GAK7E,aAAa,UAAU,gBAAkB,SAAU,SAAU,eAAgB,CAC3E,CAAC,MAAQ,SAAS,WAAW,YAAc,IAAI,aAE9C,MAAQ,SAAS,WAAW,YAAY,SAAS,SAAS,MAAM,EAEhE,MAAQ,SAAS,WAAW,YAAY,SAAS,SAAS,MAAO,eAAe,CAEjF,CAAC,MAAQ,SAAS,WAAW,cAAgB,MAAQ,SAAS,cAAc,aAAa,MAAM,MAAQ,SAAS,cAAc,CAC9H,CAAC,MAAQ,SAAS,WAAW,eAAiB,MAAQ,SAAS,cAAc,cAAc,MAAM,MAAQ,SAAS,cAAc,CAChI,CAAC,MAAQ,SAAS,WAAW,aAAe,MAAQ,SAAS,cAAc,eAC3E,CAAC,MAAQ,SAAS,WAAW,iBAAmB,MAAQ,SAAS,cAAc,gBAC/E,CAAC,MAAQ,SAAS,WAAW,QAAU,EACvC,CAAC,MAAQ,SAAS,WAAW,UAAY,SAAS,GAClD,CAAC,MAAQ,SAAS,WAAW,GAAK,SAAS,GAC3C,CAAC,MAAQ,SAAS,WAAW,SAAW,CACtC,EAAG,SAAS,EACZ,EAAG,SAAS,EACb,EAMH,SAAS,YAAY,cAAe,OAAQ,CAC1C,CAAC,MAAQ,SAAS,cAAgB,cAClC,CAAC,MAAQ,SAAS,OAAS,KAC3B,CAAC,MAAQ,SAAS,cAAgB,GAClC,CAAC,MAAQ,SAAS,WAAa,SAAS,MAAM,CAC9C,IAAI,UAAY,GAEhB,GAAI,QAAU,OAAO,MAAO,CAC1B,IAAI,aAAe,SAAS,QAAQ,CAChC,QAAU,iBAAiB,CAC/B,aAAa,aAAa,KAAM,QAAQ,CACxC,aAAa,YAAc,OAAO,OAEjC,MAAQ,SAAS,WAAW,YAAY,aAAa,CAEtD,WAAa,QAGf,GAAI,QAAU,OAAO,YAAa,CAChC,IAAI,YAAc,SAAS,OAAO,CAC9B,OAAS,iBAAiB,CAC9B,YAAY,aAAa,KAAM,OAAO,CACtC,YAAY,YAAc,OAAO,aAEhC,MAAQ,SAAS,WAAW,YAAY,YAAY,CAErD,WAAa,IAAM,OAGjB,YACD,MAAQ,SAAS,WAAW,aAAa,kBAAmB,UAAU,CAGzE,IAAI,KAAO,SAAS,OAAO,EAE1B,MAAQ,SAAS,WAAW,YAAY,KAAK,CAE9C,IAAI,YAAc,SAAS,IAAI,EAE9B,MAAQ,SAAS,WAAW,YAAY,YAAY,CAErD,CAAC,MAAQ,SAAS,aAAe,YACjC,CAAC,MAAQ,SAAS,aAAe,CAC/B,oBAAqB,QAAU,OAAO,qBAAuB,gBAC7D,yBAA0B,QAAU,OAAO,0BAA4B,iBACvE,gBAAiB,QAAU,OAAO,iBAAmB,GACrD,kBAAmB,EAAE,QAAU,OAAO,oBAAsB,IAC5D,YAAa,QAAU,OAAO,aAAe,GAC7C,YAAa,QAAU,OAAO,aAAe,GAC7C,UAAW,QAAU,OAAO,WAAa,GACzC,GAAI,QAAU,OAAO,IAAM,GAC3B,UAAW,QAAU,OAAO,UAC5B,WAAY,CACV,MAAO,QAAU,OAAO,YAAc,OAAO,WAAW,OAAS,OACjE,OAAQ,QAAU,OAAO,YAAc,OAAO,WAAW,QAAU,OACnE,EAAG,QAAU,OAAO,YAAc,OAAO,WAAW,GAAK,KACzD,EAAG,QAAU,OAAO,YAAc,OAAO,WAAW,GAAK,KAC1D,CACF,CACD,CAAC,MAAQ,SAAS,WAAa,CAC7B,KAAM,GACN,SAAU,GACJ,KACN,cAAe,MAAQ,SAAS,aACjC,CACD,CAAC,MAAQ,SAAS,SAAW,EAAE,CAC/B,CAAC,MAAQ,SAAS,gBAAkB,EAAE,CACtC,CAAC,MAAQ,SAAS,UAAY,GAC9B,CAAC,MAAQ,SAAS,aAAe,MAGnC,gBAAgB,CAAC,aAAa,CAAE,YAAY,CAE5C,YAAY,UAAU,WAAa,SAAU,KAAM,CACjD,OAAO,IAAI,YAAY,MAAO,MAAQ,SAAS,WAAY,MAAQ,QAAQ,EAG7E,YAAY,UAAU,YAAc,SAAU,KAAM,CAClD,OAAO,IAAI,gBAAgB,MAAO,MAAQ,SAAS,WAAY,MAAQ,QAAQ,EAGjF,YAAY,UAAU,WAAa,SAAU,KAAM,CACjD,OAAO,IAAI,qBAAqB,MAAO,MAAQ,SAAS,WAAY,MAAQ,QAAQ,EAGtF,YAAY,UAAU,YAAc,SAAU,KAAM,CAClD,OAAO,IAAI,cAAc,MAAO,MAAQ,SAAS,WAAY,MAAQ,QAAQ,EAG/E,YAAY,UAAU,WAAa,SAAU,KAAM,CACjD,OAAO,IAAI,eAAe,MAAO,MAAQ,SAAS,WAAY,MAAQ,QAAQ,EAGhF,YAAY,UAAU,YAAc,SAAU,KAAM,CAClD,OAAO,IAAI,cAAc,MAAO,MAAQ,SAAS,WAAY,MAAQ,QAAQ,EAG/E,YAAY,UAAU,gBAAkB,SAAU,SAAU,EACzD,MAAQ,SAAS,WAAW,aAAa,QAAS,6BAA6B,EAE3E,MAAQ,SAAS,aAAa,aAChC,MAAQ,SAAS,WAAW,aAAa,WAAY,MAAQ,SAAS,aAAa,YAAY,EAE/F,MAAQ,SAAS,WAAW,aAAa,UAAW,OAAS,SAAS,EAAI,IAAM,SAAS,EAAE,EAGxF,MAAQ,SAAS,aAAa,eACjC,MAAQ,SAAS,WAAW,aAAa,QAAS,SAAS,EAAE,EAE7D,MAAQ,SAAS,WAAW,aAAa,SAAU,SAAS,EAAE,CAE/D,CAAC,MAAQ,SAAS,WAAW,MAAM,MAAQ,OAC3C,CAAC,MAAQ,SAAS,WAAW,MAAM,OAAS,OAC5C,CAAC,MAAQ,SAAS,WAAW,MAAM,UAAY,uBAG5C,MAAQ,SAAS,aAAa,YAChC,MAAQ,SAAS,WAAW,aAAa,SAAU,MAAQ,SAAS,aAAa,UAAU,EAGzF,MAAQ,SAAS,aAAa,KAChC,MAAQ,SAAS,WAAW,aAAa,MAAO,MAAQ,SAAS,aAAa,GAAG,EAG/E,MAAQ,SAAS,aAAa,YAAc,IAAA,KAC9C,MAAQ,SAAS,WAAW,aAAa,aAAc,MAAQ,SAAS,aAAa,UAAU,EAGjG,MAAQ,SAAS,WAAW,aAAa,uBAAwB,MAAQ,SAAS,aAAa,oBAAoB,EAInH,MAAQ,SAAS,cAAc,QAAQ,aAAa,MAAQ,SAAS,WAAW,CAGjF,IAAI,MAAQ,MAAQ,SAAS,WAAW,KACxC,KAAK,gBAAgB,SAAU,KAAK,CACpC,CAAC,MAAQ,SAAS,WAAW,iBAAmB,MAAQ,SAAS,aAAa,gBAC9E,CAAC,MAAQ,SAAS,KAAO,SACzB,IAAI,YAAc,SAAS,WAAW,CAClC,KAAO,SAAS,OAAO,CAC3B,KAAK,aAAa,QAAS,SAAS,EAAE,CACtC,KAAK,aAAa,SAAU,SAAS,EAAE,CACvC,KAAK,aAAa,IAAK,EAAE,CACzB,KAAK,aAAa,IAAK,EAAE,CACzB,IAAI,OAAS,iBAAiB,CAC9B,YAAY,aAAa,KAAM,OAAO,CACtC,YAAY,YAAY,KAAK,EAE5B,MAAQ,SAAS,aAAa,aAAa,YAAa,OAAS,aAAe,IAAM,OAAS,IAAI,CAEpG,KAAK,YAAY,YAAY,CAC7B,CAAC,MAAQ,SAAS,OAAS,SAAS,OACpC,CAAC,MAAQ,SAAS,SAAW,iBAAiB,SAAS,OAAO,OAAO,EAGvE,YAAY,UAAU,QAAU,UAAY,EACrC,MAAQ,SAAS,cAAc,UAClC,CAAC,MAAQ,SAAS,cAAc,QAAQ,UAAY,IAGtD,CAAC,MAAQ,SAAS,aAAe,KACjC,CAAC,MAAQ,SAAS,WAAW,KAAO,KACpC,IAAIA,IACA,KAAO,MAAQ,SAAS,QAAU,MAAQ,SAAS,OAAO,OAAS,EAEvE,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,GACnB,MAAQ,SAAS,SAASA,OAC5B,MAAQ,SAAS,SAASA,KAAG,SAAS,CAI3C,CAAC,MAAQ,SAAS,SAAS,OAAS,EACpC,CAAC,MAAQ,SAAS,UAAY,GAC9B,CAAC,MAAQ,SAAS,cAAgB,MAGpC,YAAY,UAAU,oBAAsB,UAAY,GAExD,YAAY,UAAU,UAAY,SAAU,IAAK,CAC/C,IAAI,UAAY,MAAQ,SAAS,SAE7B,cAAS,OAAS,MAAQ,SAAS,OAAO,KAAK,KAAO,IAI1D,UAAS,KAAO,GAChB,IAAI,QAAU,KAAK,YAAY,MAAQ,SAAS,OAAO,KAAK,CAC5D,SAAS,KAAO,QAEZ,qBACG,MAAQ,SAAS,OAAO,KAAK,KAAO,IACtC,MAAQ,SAAS,WAAW,iBAAiB,oBAAoB,QAAQ,CAG5E,QAAQ,iBAAiB,EAG3B,KAAK,mBAAmB,QAAS,IAAI,EAEhC,MAAQ,SAAS,OAAO,KAAK,KAC5B,EAAE,MAAQ,SAAS,SAAS,IAAM,KAAO,MAAQ,SAAS,SAAS,IAAM,KAAO,IAClF,KAAK,UAAU,IAAM,EAAE,CACvB,KAAK,kBAAkB,QAAQ,EAE/B,QAAQ,SAAS,SAAS,IAAM,GAAG,QAAQ,IAKjD,YAAY,UAAU,qBAAuB,UAAY,CACvD,MAAQ,MAAQ,SAAS,gBAAgB,QAAQ,CAC/C,IAAI,SAAW,MAAQ,SAAS,gBAAgB,KAAK,CAIrD,GAFA,QAAQ,gBAAgB,CAEpB,QAAQ,KAAK,GAIf,IAHA,IAAIA,IAAI,EACJ,KAAO,MAAQ,SAAS,SAAS,OAE9BA,IAAI,KAAK,CACd,IAAK,MAAQ,SAAS,SAASA,OAAO,QAAS,CAC7C,QAAQ,UAAU,MAAQ,SAAS,SAASA,IAAI,GAAG,QAAQ,CAC3D,MAGF,KAAK,KAMb,YAAY,UAAU,YAAc,SAAU,IAAK,CACjD,MAAK,MAAQ,SAAS,gBAAkB,MAAQ,MAAQ,SAAS,WAejE,CAXI,MAAQ,KACV,KAAO,MAAQ,SAAS,cAExB,CAAC,MAAQ,SAAS,cAAgB,IAKpC,CAAC,MAAQ,SAAS,WAAW,SAAW,IACxC,CAAC,MAAQ,SAAS,WAAW,SAAW,EACxC,CAAC,MAAQ,SAAS,WAAW,iBAAiB,aAAe,IAC7D,CAAC,MAAQ,SAAS,WAAW,KAAO,GACpC,IAAIA,IACA,KAAO,MAAQ,SAAS,OAAO,OAMnC,KAJM,MAAQ,SAAS,gBACrB,KAAK,YAAY,IAAI,CAGlB,IAAI,IAAM,EAAGA,KAAK,EAAG,QACnB,MAAQ,SAAS,iBAAmB,MAAQ,SAAS,SAASA,QAChE,MAAQ,SAAS,SAASA,KAAG,aAAa,KAAO,MAAQ,SAAS,OAAOA,KAAG,GAAG,CAIpF,IAAK,MAAQ,SAAS,WAAW,SAC1B,IAAI,EAAGA,IAAI,IAAK,KAAK,IACnB,MAAQ,SAAS,iBAAmB,MAAQ,SAAS,SAASA,QAChE,MAAQ,SAAS,SAASA,KAAG,aAAa,GAMnD,YAAY,UAAU,mBAAqB,SAAU,QAAS,IAAK,CACjE,IAAI,WAAa,QAAQ,gBAAgB,CAEpC,cAOL,KAHA,IAAIA,IAAI,EACJ,YAEGA,IAAI,MACJ,MAAQ,SAAS,SAASA,OAAO,MAAQ,SAAS,SAASA,OAAO,KAAS,MAAQ,SAAS,SAASA,KAAG,gBAAgB,GAC3H,aAAe,MAAQ,SAAS,SAASA,KAAG,gBAAgB,EAG9D,KAAK,EAGH,aACD,MAAQ,SAAS,aAAa,aAAa,WAAY,YAAY,EAEnE,MAAQ,SAAS,aAAa,YAAY,WAAW,GAI1D,YAAY,UAAU,KAAO,UAAY,CACvC,CAAC,MAAQ,SAAS,aAAa,MAAM,QAAU,QAGjD,YAAY,UAAU,KAAO,UAAY,CACvC,CAAC,MAAQ,SAAS,aAAa,MAAM,QAAU,SAMjD,SAAS,eAAe,cAAe,OAAQ,CAC7C,CAAC,MAAQ,SAAS,cAAgB,cAClC,CAAC,MAAQ,SAAS,aAAe,CAC/B,YAAa,QAAU,OAAO,cAAgB,IAAA,GAAY,OAAO,YAAc,GAC/E,QAAS,QAAU,OAAO,SAAW,KACrC,gBAAiB,QAAU,OAAO,iBAAmB,GACrD,oBAAqB,QAAU,OAAO,qBAAuB,gBAC7D,yBAA0B,QAAU,OAAO,0BAA4B,iBACvE,UAAW,QAAU,OAAO,WAAa,GACzC,GAAI,QAAU,OAAO,IAAM,GAC5B,CACD,CAAC,MAAQ,SAAS,aAAa,IAAM,QAAU,OAAO,KAAO,GAExD,MAAQ,SAAS,cAAc,UAClC,CAAC,MAAQ,SAAS,aAAa,IAAM,QAAU,OAAO,KAAO7I,SAAO,kBAAoB,GAG1F,CAAC,MAAQ,SAAS,cAAgB,GAClC,CAAC,MAAQ,SAAS,WAAa,CAC7B,SAAU,GACV,KAAM,GACN,cAAe,MAAQ,SAAS,aAChC,mBAAoB,GACrB,CACD,CAAC,MAAQ,SAAS,YAAc,IAAI,cACpC,CAAC,MAAQ,SAAS,SAAW,EAAE,CAC/B,CAAC,MAAQ,SAAS,gBAAkB,EAAE,CACtC,CAAC,MAAQ,SAAS,aAAe,IAAI,OACrC,CAAC,MAAQ,SAAS,eAAiB,GACnC,CAAC,MAAQ,SAAS,aAAe,SAGnC,gBAAgB,CAAC,aAAa,CAAE,eAAe,CAE/C,eAAe,UAAU,YAAc,SAAU,KAAM,CACrD,OAAO,IAAI,eAAe,MAAO,MAAQ,SAAS,WAAY,MAAQ,QAAQ,EAGhF,eAAe,UAAU,WAAa,SAAU,KAAM,CACpD,OAAO,IAAI,cAAc,MAAO,MAAQ,SAAS,WAAY,MAAQ,QAAQ,EAG/E,eAAe,UAAU,YAAc,SAAU,KAAM,CACrD,OAAO,IAAI,eAAe,MAAO,MAAQ,SAAS,WAAY,MAAQ,QAAQ,EAGhF,eAAe,UAAU,WAAa,SAAU,KAAM,CACpD,OAAO,IAAI,cAAc,MAAO,MAAQ,SAAS,WAAY,MAAQ,QAAQ,EAG/E,eAAe,UAAU,YAAc,SAAU,KAAM,CACrD,OAAO,IAAI,eAAe,MAAO,MAAQ,SAAS,WAAY,MAAQ,QAAQ,EAGhF,eAAe,UAAU,WAAa,YAAY,UAAU,WAE5D,eAAe,UAAU,aAAe,SAAU,MAAO,CACnD,WAAM,KAAO,GAAK,MAAM,KAAO,GAAK,MAAM,KAAO,GAAK,MAAM,KAAO,GAAK,MAAM,MAAQ,GAAK,MAAM,MAAQ,GAI7G,IAAI,EAAE,MAAQ,SAAS,aAAa,YAAa,EAC9C,MAAQ,SAAS,cAAc,UAAU,MAAM,GAAI,MAAM,GAAI,MAAM,GAAI,MAAM,GAAI,MAAM,IAAK,MAAM,IAAI,CAEvG,QAGD,MAAQ,SAAS,aAAa,eAAe,MAAM,CAEpD,IAAI,QAAU,MAAQ,SAAS,YAAY,IAAI,OAE9C,MAAQ,SAAS,aAAa,UAAU,OAAO,GAAI,OAAO,GAAI,OAAO,GAAI,OAAO,GAAI,OAAO,GAAI,OAAO,GAAI,OAAO,GAAI,OAAO,GAAI,OAAO,GAAI,OAAO,GAAI,OAAO,IAAK,OAAO,IAAK,OAAO,IAAK,OAAO,IAAK,OAAO,IAAK,OAAO,IAAI,EAG7N,MAAQ,SAAS,YAAY,IAAI,gBAAgB,MAAQ,SAAS,aAAa,MAAM,CAEtF,IAAI,SAAW,MAAQ,SAAS,YAAY,IAAI,OAE/C,MAAQ,SAAS,cAAc,aAAa,QAAQ,GAAI,QAAQ,GAAI,QAAQ,GAAI,QAAQ,GAAI,QAAQ,IAAK,QAAQ,IAAI,GAGxH,eAAe,UAAU,WAAa,SAAU,GAAI,CAIlD,GAAI,EAAE,MAAQ,SAAS,aAAa,YAAa,CAC/C,CAAC,MAAQ,SAAS,cAAc,aAAe,GAAK,EAAI,EAAI,GAC5D,CAAC,MAAQ,SAAS,WAAW,oBAAsB,MAAQ,SAAS,YAAY,GAChF,OAGF,CAAC,MAAQ,SAAS,YAAY,IAAM,GAAK,EAAI,EAAI,IAE5C,MAAQ,SAAS,WAAW,sBAAwB,MAAQ,SAAS,YAAY,KACpF,CAAC,MAAQ,SAAS,cAAc,aAAe,MAAQ,SAAS,YAAY,GAC5E,CAAC,MAAQ,SAAS,WAAW,oBAAsB,MAAQ,SAAS,YAAY,KAIpF,eAAe,UAAU,MAAQ,UAAY,CAC3C,GAAI,EAAE,MAAQ,SAAS,aAAa,YAAa,EAC9C,MAAQ,SAAS,cAAc,SAAS,CAEzC,QAGD,MAAQ,SAAS,YAAY,OAAO,EAGvC,eAAe,UAAU,KAAO,SAAU,WAAY,CACpD,GAAI,EAAE,MAAQ,SAAS,aAAa,YAAa,EAC9C,MAAQ,SAAS,cAAc,MAAM,CAEtC,OAGE,aACD,MAAQ,SAAS,cAAc,MAAM,CAGxC,IAAI,OAAS,MAAQ,SAAS,YAAY,IAAI,OAEzC,MAAQ,SAAS,YAAY,UAAY,MAAQ,SAAS,YAAY,UACxE,MAAQ,SAAS,YAAY,WAAW,CAG3C,IAAI6I,IACA,KAAO,MAAQ,SAAS,YAAY,OAAO,MAAQ,SAAS,YAAY,SAE5E,IAAK,IAAI,EAAGA,IAAI,GAAI,KAAK,EACvB,IAAIA,KAAK,MAAMA,KAGjB,CAAC,MAAQ,SAAS,YAAY,SAAS,MAAQ,SAAS,YAAY,UAAY,MAAQ,SAAS,YAAY,GAC7G,CAAC,MAAQ,SAAS,YAAY,SAAW,GAG3C,eAAe,UAAU,QAAU,SAAU,WAAY,CACvD,GAAI,EAAE,MAAQ,SAAS,aAAa,YAAa,EAC9C,MAAQ,SAAS,cAAc,SAAS,CAEzC,OAGE,cACD,MAAQ,SAAS,cAAc,SAAS,CAEzC,CAAC,MAAQ,SAAS,WAAW,UAAY,eAG3C,GAAC,MAAQ,SAAS,YAAY,QAC9B,IAAI,QAAU,MAAQ,SAAS,YAAY,OAAO,MAAQ,SAAS,YAAY,SAC3EA,IACA,KAAO,MAAQ,SAAS,YAAY,IAAI,MAE5C,IAAK,IAAI,EAAGA,IAAI,GAAI,KAAK,EACvB,IAAIA,KAAK,OAAOA,MAGjB,MAAQ,SAAS,cAAc,aAAa,OAAO,GAAI,OAAO,GAAI,OAAO,GAAI,OAAO,GAAI,OAAO,IAAK,OAAO,IAAI,CAEhH,QAAU,MAAQ,SAAS,YAAY,SAAS,MAAQ,SAAS,YAAY,SAC7E,CAAC,MAAQ,SAAS,YAAY,GAAK,QAE9B,MAAQ,SAAS,WAAW,qBAAuB,SACtD,CAAC,MAAQ,SAAS,cAAc,YAAc,OAC9C,CAAC,MAAQ,SAAS,WAAW,mBAAqB,SAItD,eAAe,UAAU,gBAAkB,SAAU,SAAU,CAC7D,IAAK,MAAQ,SAAS,cAAc,QAAS,CAC3C,CAAC,MAAQ,SAAS,cAAc,UAAY,UAAU,SAAS,CAC/D,IAAI,gBAAkB,MAAQ,SAAS,cAAc,UAAU,MAC/D,eAAe,MAAQ,OACvB,eAAe,OAAS,OACxB,IAAI,OAAS,cACb,eAAe,gBAAkB,OACjC,eAAe,mBAAqB,OACpC,eAAe,sBAAwB,OACvC,eAAe,qBAAuB,QAErC,MAAQ,SAAS,cAAc,QAAQ,aAAa,MAAQ,SAAS,cAAc,UAAU,CAE9F,CAAC,MAAQ,SAAS,eAAiB,MAAQ,SAAS,cAAc,UAAU,WAAW,KAAK,EAEvF,MAAQ,SAAS,aAAa,YAChC,MAAQ,SAAS,cAAc,UAAU,aAAa,SAAU,MAAQ,SAAS,aAAa,UAAU,EAGtG,MAAQ,SAAS,aAAa,KAChC,MAAQ,SAAS,cAAc,UAAU,aAAa,MAAO,MAAQ,SAAS,aAAa,GAAG,MAGjG,CAAC,MAAQ,SAAS,eAAiB,MAAQ,SAAS,aAAa,QAGnE,CAAC,MAAQ,SAAS,KAAO,SACzB,CAAC,MAAQ,SAAS,OAAS,SAAS,OACpC,CAAC,MAAQ,SAAS,gBAAkB,CAClC,EAAG,SAAS,EACZ,EAAG,SAAS,EACZ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACL,CACD,KAAK,gBAAgB,SAAU,SAAS,KAAK,CAC7C,CAAC,MAAQ,SAAS,WAAW,eAAiB,MAAQ,SAAS,cAC/D,CAAC,MAAQ,SAAS,WAAW,SAAW,MAAQ,QAChD,CAAC,MAAQ,SAAS,WAAW,SAAW,GACxC,CAAC,MAAQ,SAAS,WAAW,iBAAmB,MAAQ,SAAS,aAAa,gBAC9E,CAAC,MAAQ,SAAS,WAAW,iBAAmB,MAAQ,SAAS,gBACjE,CAAC,MAAQ,SAAS,SAAW,iBAAiB,SAAS,OAAO,OAAO,CACrE,KAAK,qBAAqB,EAG5B,eAAe,UAAU,oBAAsB,UAAY,CACzD,KAAK,OAAO,CACZ,IAAI,aACA,eAEC,MAAQ,SAAS,cAAc,UAAY,MAAQ,SAAS,cAAc,WAC7E,cAAgB,MAAQ,SAAS,cAAc,QAAQ,YACvD,eAAiB,MAAQ,SAAS,cAAc,QAAQ,cAEvD,MAAQ,SAAS,cAAc,UAAU,aAAa,QAAS,cAAgB,MAAQ,SAAS,aAAa,IAAI,EAEjH,MAAQ,SAAS,cAAc,UAAU,aAAa,SAAU,eAAiB,MAAQ,SAAS,aAAa,IAAI,GAEpH,cAAgB,MAAQ,SAAS,cAAc,OAAO,OAAS,MAAQ,SAAS,aAAa,IAC7F,eAAiB,MAAQ,SAAS,cAAc,OAAO,QAAU,MAAQ,SAAS,aAAa,KAGjG,IAAI,WACA,aAEJ,IAAK,MAAQ,SAAS,aAAa,oBAAoB,QAAQ,OAAO,GAAK,KAAO,MAAQ,SAAS,aAAa,oBAAoB,QAAQ,QAAQ,GAAK,GAAI,CAC3J,IAAI,KAAO,MAAQ,SAAS,aAAa,oBAAoB,MAAM,IAAI,CAEnE,SAAW,IAAI,IAAM,OACrB,IAAM,IAAI,IAAM,WAChB,KAAO,IAAI,OAAO,EAAG,EAAE,CACvB,KAAO,IAAI,OAAO,EAAE,CACxB,WAAa,aAAe,cAC5B,cAAgB,MAAQ,SAAS,gBAAgB,GAAK,MAAQ,SAAS,gBAAgB,EAEnF,aAAe,YAAc,WAAa,QAAU,aAAe,YAAc,WAAa,SAChG,CAAC,MAAQ,SAAS,gBAAgB,GAAK,eAAiB,MAAQ,SAAS,gBAAgB,GAAK,MAAQ,SAAS,aAAa,KAC5H,CAAC,MAAQ,SAAS,gBAAgB,GAAK,eAAiB,MAAQ,SAAS,gBAAgB,GAAK,MAAQ,SAAS,aAAa,OAE5H,CAAC,MAAQ,SAAS,gBAAgB,GAAK,gBAAkB,MAAQ,SAAS,gBAAgB,GAAK,MAAQ,SAAS,aAAa,KAC7H,CAAC,MAAQ,SAAS,gBAAgB,GAAK,gBAAkB,MAAQ,SAAS,gBAAgB,GAAK,MAAQ,SAAS,aAAa,MAG3H,OAAS,SAAW,aAAe,YAAc,WAAa,QAAU,aAAe,YAAc,WAAa,SACpH,CAAC,MAAQ,SAAS,gBAAgB,IAAM,cAAgB,MAAQ,SAAS,gBAAgB,GAAK,eAAiB,MAAQ,SAAS,gBAAgB,IAAM,GAAK,MAAQ,SAAS,aAAa,IAChL,OAAS,SAAW,aAAe,YAAc,WAAa,QAAU,aAAe,YAAc,WAAa,SAC3H,CAAC,MAAQ,SAAS,gBAAgB,IAAM,cAAgB,MAAQ,SAAS,gBAAgB,GAAK,eAAiB,MAAQ,SAAS,gBAAgB,KAAO,MAAQ,SAAS,aAAa,IAErL,CAAC,MAAQ,SAAS,gBAAgB,GAAK,EAGrC,OAAS,SAAW,aAAe,YAAc,WAAa,QAAU,aAAe,YAAc,WAAa,SACpH,CAAC,MAAQ,SAAS,gBAAgB,IAAM,eAAiB,MAAQ,SAAS,gBAAgB,GAAK,cAAgB,MAAQ,SAAS,gBAAgB,IAAM,GAAK,MAAQ,SAAS,aAAa,IAChL,OAAS,SAAW,aAAe,YAAc,WAAa,QAAU,aAAe,YAAc,WAAa,SAC3H,CAAC,MAAQ,SAAS,gBAAgB,IAAM,eAAiB,MAAQ,SAAS,gBAAgB,GAAK,cAAgB,MAAQ,SAAS,gBAAgB,KAAO,MAAQ,SAAS,aAAa,IAErL,CAAC,MAAQ,SAAS,gBAAgB,GAAK,QAE/B,MAAQ,SAAS,aAAa,sBAAwB,QAChE,CAAC,MAAQ,SAAS,gBAAgB,GAAK,eAAiB,MAAQ,SAAS,gBAAgB,GAAK,MAAQ,SAAS,aAAa,KAC5H,CAAC,MAAQ,SAAS,gBAAgB,GAAK,gBAAkB,MAAQ,SAAS,gBAAgB,GAAK,MAAQ,SAAS,aAAa,KAC7H,CAAC,MAAQ,SAAS,gBAAgB,GAAK,EACvC,CAAC,MAAQ,SAAS,gBAAgB,GAAK,IAEvC,CAAC,MAAQ,SAAS,gBAAgB,IAAM,MAAQ,SAAS,aAAa,IACtE,CAAC,MAAQ,SAAS,gBAAgB,IAAM,MAAQ,SAAS,aAAa,IACtE,CAAC,MAAQ,SAAS,gBAAgB,GAAK,EACvC,CAAC,MAAQ,SAAS,gBAAgB,GAAK,GAGzC,CAAC,MAAQ,SAAS,gBAAgB,MAAQ,EAAE,MAAQ,SAAS,gBAAgB,GAAI,EAAG,EAAG,EAAG,GAAI,MAAQ,SAAS,gBAAgB,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,MAAQ,SAAS,gBAAgB,IAAK,MAAQ,SAAS,gBAAgB,GAAI,EAAG,EAAE,CAQtO,KAAK,cAAc,MAAQ,SAAS,gBAAgB,MAAM,EAEzD,MAAQ,SAAS,cAAc,WAAW,EAE1C,MAAQ,SAAS,cAAc,KAAK,EAAG,GAAI,MAAQ,SAAS,gBAAgB,GAAI,MAAQ,SAAS,gBAAgB,EAAE,EAEnH,MAAQ,SAAS,cAAc,WAAW,EAE1C,MAAQ,SAAS,cAAc,MAAM,CAEtC,KAAK,aAAa,MAAQ,SAAS,cAAe,GAAK,EAGzD,eAAe,UAAU,QAAU,UAAY,EACxC,MAAQ,SAAS,aAAa,cAAgB,MAAQ,SAAS,cAAc,UAChF,CAAC,MAAQ,SAAS,cAAc,QAAQ,UAAY,IAGtD,IAAIA,IAGJ,IAAK,MAFM,MAAQ,SAAS,QAAU,MAAQ,SAAS,OAAO,OAAS,GAExD,EAAGA,KAAK,EAAG,OACnB,MAAQ,SAAS,SAASA,OAC5B,MAAQ,SAAS,SAASA,KAAG,SAAS,CAI3C,CAAC,MAAQ,SAAS,SAAS,OAAS,EACpC,CAAC,MAAQ,SAAS,WAAW,cAAgB,KAC7C,CAAC,MAAQ,SAAS,cAAc,UAAY,KAC5C,CAAC,MAAQ,SAAS,UAAY,IAGhC,eAAe,UAAU,YAAc,SAAU,IAAK,YAAa,CACjE,MAAK,MAAQ,SAAS,gBAAkB,MAAQ,MAAQ,SAAS,aAAa,cAAgB,IAAQ,CAAC,cAAgB,MAAQ,SAAS,WAAa,MAAQ,IAQ7J,CAJA,CAAC,MAAQ,SAAS,cAAgB,IAClC,CAAC,MAAQ,SAAS,WAAW,SAAW,KAAO,MAAQ,SAAS,cAAc,cAC9E,CAAC,MAAQ,SAAS,WAAW,SAAW,EACxC,CAAC,MAAQ,SAAS,WAAW,KAAO,EAAE,MAAQ,SAAS,aAAa,aAAe,YACnF,CAAC,MAAQ,SAAS,WAAW,iBAAiB,aAAe,IAG7D,IAAIA,IACA,KAAO,MAAQ,SAAS,OAAO,OAMnC,KAJM,MAAQ,SAAS,gBACrB,KAAK,YAAY,IAAI,CAGlB,IAAI,EAAGA,IAAI,IAAK,KAAK,IACnB,MAAQ,SAAS,iBAAmB,MAAQ,SAAS,SAASA,QAChE,MAAQ,SAAS,SAASA,KAAG,aAAa,KAAO,MAAQ,SAAS,OAAOA,KAAG,GAAG,CAIpF,IAAK,MAAQ,SAAS,WAAW,KAAM,CAOrC,KANK,MAAQ,SAAS,aAAa,cAAgB,IAChD,MAAQ,SAAS,cAAc,UAAU,EAAG,GAAI,MAAQ,SAAS,gBAAgB,GAAI,MAAQ,SAAS,gBAAgB,EAAE,CAEzH,KAAK,MAAM,CAGR,IAAI,IAAM,EAAGA,KAAK,EAAG,QACnB,MAAQ,SAAS,iBAAmB,MAAQ,SAAS,SAASA,QAChE,MAAQ,SAAS,SAASA,KAAG,aAAa,EAI1C,MAAQ,SAAS,aAAa,cAAgB,IACjD,KAAK,SAAS,IAKpB,eAAe,UAAU,UAAY,SAAU,IAAK,CAClD,IAAI,UAAY,MAAQ,SAAS,SAE7B,cAAS,OAAS,MAAQ,SAAS,OAAO,KAAK,KAAO,IAI1D,KAAI,QAAU,KAAK,YAAY,MAAQ,SAAS,OAAO,KAAM,MAAQ,SAAU,MAAQ,SAAS,WAAW,CAC3G,SAAS,KAAO,QAChB,QAAQ,iBAAiB,GAM3B,eAAe,UAAU,qBAAuB,UAAY,CAC1D,MAAQ,MAAQ,SAAS,gBAAgB,SACxB,MAAQ,SAAS,gBAAgB,KAAK,CAE7C,gBAAgB,EAI5B,eAAe,UAAU,KAAO,UAAY,CAC1C,CAAC,MAAQ,SAAS,cAAc,UAAU,MAAM,QAAU,QAG5D,eAAe,UAAU,KAAO,UAAY,CAC1C,CAAC,MAAQ,SAAS,cAAc,UAAU,MAAM,QAAU,SAO5D,SAAS,eAAe,cAAe,OAAQ,CAC7C,CAAC,MAAQ,SAAS,cAAgB,cAClC,CAAC,MAAQ,SAAS,OAAS,KAC3B,CAAC,MAAQ,SAAS,cAAgB,GAClC,CAAC,MAAQ,SAAS,aAAe,CAC/B,UAAW,QAAU,OAAO,WAAa,GACzC,yBAA0B,QAAU,OAAO,0BAA4B,iBACvE,kBAAmB,EAAE,QAAU,OAAO,oBAAsB,IAC5D,WAAY,CACV,MAAO,QAAU,OAAO,YAAc,OAAO,WAAW,OAAS,OACjE,OAAQ,QAAU,OAAO,YAAc,OAAO,WAAW,QAAU,OACnE,EAAG,QAAU,OAAO,YAAc,OAAO,WAAW,GAAK,QACzD,EAAG,QAAU,OAAO,YAAc,OAAO,WAAW,GAAK,QAC1D,CACF,CACD,CAAC,MAAQ,SAAS,WAAa,CAC7B,KAAM,GACN,SAAU,GACV,cAAe,MAAQ,SAAS,aACjC,CACD,CAAC,MAAQ,SAAS,gBAAkB,EAAE,CACtC,CAAC,MAAQ,SAAS,SAAW,EAAE,CAC/B,CAAC,MAAQ,SAAS,eAAiB,EAAE,CACrC,CAAC,MAAQ,SAAS,UAAY,GAC9B,CAAC,MAAQ,SAAS,OAAS,KAC3B,CAAC,MAAQ,SAAS,WAAa,GAC/B,CAAC,MAAQ,SAAS,aAAe,OAGnC,gBAAgB,CAAC,aAAa,CAAE,eAAe,CAC/C,eAAe,UAAU,UAAY,YAAY,UAAU,UAE3D,eAAe,UAAU,qBAAuB,UAAY,CAC1D,MAAQ,MAAQ,SAAS,gBAAgB,SACxB,MAAQ,SAAS,gBAAgB,KAAK,CAE7C,gBAAgB,EAI5B,eAAe,UAAU,mBAAqB,SAAU,QAAS,IAAK,CACpE,IAAI,cAAgB,QAAQ,gBAAgB,CAEvC,iBAIL,KAAI,OAAS,MAAQ,SAAS,OAAO,KAErC,GAAI,CAAC,MAAM,KAAO,EAAE,MAAQ,SAAS,WACnC,IAAK,MAAQ,SAAS,eACpB,KAAK,iBAAiB,cAAe,IAAI,KACpC,CAML,IALA,IAAIA,IAAI,EACJ,eACA,UACA,cAEGA,IAAI,MACJ,MAAQ,SAAS,SAASA,OAAO,MAAQ,SAAS,SAASA,OAAO,KAAS,MAAQ,SAAS,SAASA,KAAG,iBAC3G,WAAa,MAAQ,SAAS,SAASA,KACvC,eAAiB,MAAQ,SAAS,OAAOA,KAAG,IAAM,KAAK,wBAAwBA,IAAE,CAAG,UAAU,gBAAgB,CAC9G,eAAiB,eAAiB,gBAGpC,KAAK,EAGH,gBACE,CAAC,MAAM,KAAO,EAAE,MAAQ,SAAS,cAClC,MAAQ,SAAS,aAAa,aAAa,cAAe,eAAe,EAEnE,CAAC,MAAM,KAAO,EAAE,MAAQ,SAAS,cACzC,MAAQ,SAAS,aAAa,YAAY,cAAc,MAI7D,KAAK,iBAAiB,cAAe,IAAI,GAI7C,eAAe,UAAU,YAAc,SAAU,KAAM,CAKrD,OAJM,MAAQ,SAAS,WAIhB,IAAI,cAAc,MAAO,MAAQ,SAAS,WAAY,MAAQ,QAAQ,CAHpE,IAAI,gBAAgB,MAAO,MAAQ,SAAS,WAAY,MAAQ,QAAQ,EAMnF,eAAe,UAAU,WAAa,SAAU,KAAM,CAKpD,OAJM,MAAQ,SAAS,WAIhB,IAAI,aAAa,MAAO,MAAQ,SAAS,WAAY,MAAQ,QAAQ,CAHnE,IAAI,qBAAqB,MAAO,MAAQ,SAAS,WAAY,MAAQ,QAAQ,EAMxF,eAAe,UAAU,aAAe,SAAU,KAAM,CAEtD,MADA,CAAC,MAAQ,SAAS,OAAS,IAAI,eAAe,MAAO,MAAQ,SAAS,WAAY,MAAQ,QAAQ,EAC1F,MAAQ,SAAS,QAG3B,eAAe,UAAU,YAAc,SAAU,KAAM,CAKrD,OAJM,MAAQ,SAAS,WAIhB,IAAI,cAAc,MAAO,MAAQ,SAAS,WAAY,MAAQ,QAAQ,CAHpE,IAAI,cAAc,MAAO,MAAQ,SAAS,WAAY,MAAQ,QAAQ,EAMjF,eAAe,UAAU,WAAa,SAAU,KAAM,CAKpD,OAJM,MAAQ,SAAS,WAIhB,IAAI,aAAa,MAAO,MAAQ,SAAS,WAAY,MAAQ,QAAQ,CAHnE,IAAI,eAAe,MAAO,MAAQ,SAAS,WAAY,MAAQ,QAAQ,EAMlF,eAAe,UAAU,YAAc,SAAU,KAAM,CAKrD,OAJM,MAAQ,SAAS,WAIhB,IAAI,cAAc,MAAO,MAAQ,SAAS,WAAY,MAAQ,QAAQ,CAHpE,IAAI,cAAc,MAAO,MAAQ,SAAS,WAAY,MAAQ,QAAQ,EAMjF,eAAe,UAAU,WAAa,YAAY,UAAU,WAE5D,eAAe,UAAU,wBAA0B,SAAU,IAAK,CAIhE,IAHA,IAAIA,IAAI,EACJ,KAAO,MAAQ,SAAS,eAAe,OAEpCA,IAAI,KAAK,CACd,IAAK,MAAQ,SAAS,eAAeA,KAAG,UAAY,MAAQ,MAAQ,SAAS,eAAeA,KAAG,QAAU,IACvG,OAAQ,MAAQ,SAAS,eAAeA,KAAG,gBAG7C,KAAK,EAGP,OAAO,MAGT,eAAe,UAAU,sBAAwB,SAAU,IAAK,KAAM,CACpE,IAAI,gBAAkB,UAAU,MAAM,CAClC,MACA,eACJ,SAAS,gBAAgB,CACzB,IAAI,UAAY,UAAU,MAAM,CAGhC,GAFA,SAAS,UAAU,CAEf,OAAS,KAAM,CACjB,MAAQ,gBAAgB,MACxB,MAAM,OAAS,MAAQ,SAAS,WAAW,SAAS,EAAI,KACxD,MAAM,QAAU,MAAQ,SAAS,WAAW,SAAS,EAAI,KACzD,IAAI,OAAS,UACb,MAAM,sBAAwB,OAC9B,MAAM,mBAAqB,OAC3B,MAAM,gBAAkB,OACxB,eAAiB,UAAU,MAC3B,IAAI,OAAS,4CACb,eAAe,UAAY,OAC3B,eAAe,gBAAkB,OAGnC,gBAAgB,YAAY,UAAU,CAEtC,IAAI,oBAAsB,CACb,UACM,gBACjB,SAAU,IACV,OAAQ,IACF,KACP,CAID,OAFC,MAAQ,SAAS,eAAe,KAAK,oBAAoB,CAEnD,qBAGT,eAAe,UAAU,kBAAoB,UAAY,CACvD,IAAIA,IACA,KAAO,MAAQ,SAAS,OAAO,OAC/B,wBACA,iBAAmB,GAEvB,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,GACnB,MAAQ,SAAS,OAAOA,KAAG,MAAQ,MAAQ,SAAS,OAAOA,KAAG,KAAO,GACpE,mBAAqB,OACvB,iBAAmB,KACnB,wBAA0B,KAAK,sBAAsBA,IAAG,KAAK,EAG/D,wBAAwB,OAAS,KAAK,IAAI,wBAAwB,OAAQA,IAAE,GAExE,mBAAqB,OACvB,iBAAmB,KACnB,wBAA0B,KAAK,sBAAsBA,IAAG,KAAK,EAG/D,wBAAwB,OAAS,KAAK,IAAI,wBAAwB,OAAQA,IAAE,EAMhF,IAFA,KAAO,MAAQ,SAAS,eAAe,OAElC,IAAI,IAAM,EAAGA,KAAK,EAAG,OACvB,MAAQ,SAAS,YAAY,aAAa,MAAQ,SAAS,eAAeA,KAAG,gBAAgB,EAIlG,eAAe,UAAU,iBAAmB,SAAU,KAAM,IAAK,CAI/D,IAHA,IAAIA,IAAI,EACJ,KAAO,MAAQ,SAAS,eAAe,OAEpCA,IAAI,KAAK,CACd,GAAI,MAAQ,MAAQ,SAAS,eAAeA,KAAG,OAAQ,CAIrD,IAHA,IAAI,GAAK,MAAQ,SAAS,eAAeA,KAAG,SACxC,YAEG,EAAI,MACJ,MAAQ,SAAS,SAAS,KAAO,MAAQ,SAAS,SAAS,GAAG,iBACjE,aAAe,MAAQ,SAAS,SAAS,GAAG,gBAAgB,EAG9D,GAAK,EAGH,aACD,MAAQ,SAAS,eAAeA,KAAG,UAAU,aAAa,KAAM,YAAY,EAE5E,MAAQ,SAAS,eAAeA,KAAG,UAAU,YAAY,KAAK,CAGjE,MAGF,KAAK,IAIT,eAAe,UAAU,gBAAkB,SAAU,SAAU,CAC7D,IAAI,YAAc,UAAU,MAAM,CAC9B,SAAW,MAAQ,SAAS,cAAc,QAC1C,MAAQ,YAAY,MACxB,MAAM,MAAQ,SAAS,EAAI,KAC3B,MAAM,OAAS,SAAS,EAAI,KAC5B,CAAC,MAAQ,SAAS,YAAc,YAChC,SAAS,YAAY,CACrB,MAAM,eAAiB,OACvB,MAAM,kBAAoB,OAC1B,MAAM,qBAAuB,QAExB,MAAQ,SAAS,aAAa,WACjC,YAAY,aAAa,SAAU,MAAQ,SAAS,aAAa,UAAU,CAG7E,QAAQ,YAAY,YAAY,CAChC,MAAM,SAAW,SACjB,IAAI,IAAM,SAAS,MAAM,CACzB,IAAI,aAAa,QAAS,IAAI,CAC9B,IAAI,aAAa,SAAU,IAAI,CAC/B,SAAS,IAAI,EAEZ,MAAQ,SAAS,YAAY,YAAY,IAAI,CAE9C,IAAI,KAAO,SAAS,OAAO,CAC3B,IAAI,YAAY,KAAK,CACrB,CAAC,MAAQ,SAAS,KAAO,SAEzB,KAAK,gBAAgB,SAAU,IAAI,CACnC,CAAC,MAAQ,SAAS,WAAW,KAAO,KACpC,CAAC,MAAQ,SAAS,OAAS,SAAS,OACpC,CAAC,MAAQ,SAAS,cAAgB,MAAQ,SAAS,YACnD,KAAK,mBAAmB,CACxB,KAAK,qBAAqB,EAG5B,eAAe,UAAU,QAAU,UAAY,EACxC,MAAQ,SAAS,cAAc,UAClC,CAAC,MAAQ,SAAS,cAAc,QAAQ,UAAY,IAGtD,CAAC,MAAQ,SAAS,cAAc,UAAY,KAC5C,CAAC,MAAQ,SAAS,WAAW,KAAO,KACpC,IAAIA,IACA,KAAO,MAAQ,SAAS,QAAU,MAAQ,SAAS,OAAO,OAAS,EAEvE,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,GACvB,MAAQ,SAAS,SAASA,KAAG,SAAS,CAGzC,CAAC,MAAQ,SAAS,SAAS,OAAS,EACpC,CAAC,MAAQ,SAAS,UAAY,GAC9B,CAAC,MAAQ,SAAS,cAAgB,MAGpC,eAAe,UAAU,oBAAsB,UAAY,CACzD,IAAI,cAAgB,MAAQ,SAAS,cAAc,QAAQ,YACvD,eAAiB,MAAQ,SAAS,cAAc,QAAQ,aACxD,WAAa,aAAe,cAC5B,cAAgB,MAAQ,SAAS,WAAW,SAAS,GAAK,MAAQ,SAAS,WAAW,SAAS,EAC/F,GACA,GACA,GACA,GAEA,aAAe,YACjB,GAAK,cAAgB,MAAQ,SAAS,WAAW,SAAS,EAC1D,GAAK,cAAgB,MAAQ,SAAS,WAAW,SAAS,EAC1D,GAAK,EACL,IAAM,eAAiB,MAAQ,SAAS,WAAW,SAAS,GAAK,cAAgB,MAAQ,SAAS,WAAW,SAAS,IAAM,IAE5H,GAAK,eAAiB,MAAQ,SAAS,WAAW,SAAS,EAC3D,GAAK,eAAiB,MAAQ,SAAS,WAAW,SAAS,EAC3D,IAAM,cAAgB,MAAQ,SAAS,WAAW,SAAS,GAAK,eAAiB,MAAQ,SAAS,WAAW,SAAS,IAAM,EAC5H,GAAK,GAGP,IAAI,OAAS,MAAQ,SAAS,YAAY,MAC1C,MAAM,gBAAkB,YAAc,GAAK,YAAc,GAAK,gBAAkB,GAAK,IAAM,GAAK,QAChG,MAAM,UAAY,MAAM,iBAG1B,eAAe,UAAU,YAAc,YAAY,UAAU,YAE7D,eAAe,UAAU,KAAO,UAAY,CAC1C,CAAC,MAAQ,SAAS,YAAY,MAAM,QAAU,QAGhD,eAAe,UAAU,KAAO,UAAY,CAC1C,CAAC,MAAQ,SAAS,YAAY,MAAM,QAAU,SAGhD,eAAe,UAAU,UAAY,UAAY,CAG/C,GAFA,KAAK,eAAe,EAEf,MAAQ,SAAS,QACnB,MAAQ,SAAS,OAAO,OAAO,KAC3B,CACL,IAAI,QAAU,MAAQ,SAAS,WAAW,SAAS,EAC/C,SAAW,MAAQ,SAAS,WAAW,SAAS,EAChDA,IACA,KAAO,MAAQ,SAAS,eAAe,OAE3C,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EAAG,CAC3B,IAAI,OAAS,MAAQ,SAAS,eAAeA,KAAG,gBAAgB,MAChE,MAAM,kBAAoB,KAAK,KAAc,QAAQ,EAAc,SAAS,EAAG,CAAG,KAClF,MAAM,YAAc,MAAM,qBAKhC,eAAe,UAAU,wBAA0B,SAAU,OAAQ,CACnE,IAAIA,IACA,IAAM,OAAO,OACb,kBAAoB,UAAU,MAAM,CAExC,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,GAAI,OAAOA,KAAG,GAAI,CAChB,IAAI,KAAO,KAAK,WAAW,OAAOA,KAAI,mBAAoB,MAAQ,SAAS,WAAW,KAAM,KAAK,CACjG,KAAK,iBAAiB,EAErB,MAAQ,SAAS,WAAW,iBAAiB,oBAAoB,KAAK,GAO7E,SAAS,YAAY,KAAM,QAAS,WAAY,CAC9C,CAAC,MAAQ,SAAS,KAAO,KACzB,CAAC,MAAQ,SAAS,QAAU,QAC5B,CAAC,MAAQ,SAAS,WAAa,WAC/B,CAAC,MAAQ,SAAS,WAAa,EAAE,CACjC,CAAC,MAAQ,SAAS,iBAAmB,MAAQ,SAAS,KAAK,iBAAmB,EAAE,CAChF,CAAC,MAAQ,SAAS,YAAc,KAChC,IAAI,MAAQ,MAAQ,SAAS,WAAW,KACpCA,IACA,KAAO,MAAQ,SAAS,iBAAmB,MAAQ,SAAS,gBAAgB,OAAS,EACzF,CAAC,MAAQ,SAAS,SAAW,iBAAiB,IAAI,CAClD,CAAC,MAAQ,SAAS,UAAY,GAC9B,IAAI,KACA,YAAc,MAAQ,SAAS,gBAC/B,MAAQ,EACR,aAAe,EAAE,CACjB,EACA,KACA,QAAU,iBAAiB,CAC3B,KACA,SACA,QACAQ,IACA,SAAW,WACX,QAAU,YAEd,IAAK,IAAI,EAAGR,IAAI,IAAK,KAAK,EAkBxB,IAjBI,WAAWA,KAAG,OAAS,KAAO,WAAWA,KAAG,OAAS,KAAO,WAAWA,KAAG,KAAO,WAAWA,KAAG,EAAE,IAAM,KAAO,WAAWA,KAAG,EAAE,KAChI,SAAW,OACX,QAAU,SAGP,WAAWA,KAAG,OAAS,KAAO,WAAWA,KAAG,OAAS,MAAQ,QAAU,GAC1E,KAAO,SAAS,OAAO,CACvB,KAAK,aAAa,OAAQ,UAAU,CACpC,KAAK,aAAa,SAAU,MAAQ,SAAS,QAAQ,KAAK,KAAK,GAAK,EAAE,CACtE,KAAK,aAAa,UAAW,MAAQ,SAAS,QAAQ,KAAK,KAAK,GAAK,EAAE,CACvE,aAAa,KAAK,KAAK,EAEvB,KAAO,KAGT,KAAO,SAAS,OAAO,CAEnB,WAAWA,KAAG,OAAS,IAEzB,CAAC,MAAQ,SAAS,SAASA,KAAK,CAC9B,GAAI,gBAAgB,SAAS,MAAQ,SAAS,QAAS,WAAWA,KAAG,EAAG,EAAG,KAAO,MAAQ,SAAS,QAAQ,CAC3G,KAAM,qBAAqB,cAAc,MAAQ,SAAS,QAAS,WAAWA,KAAI,EAAE,CACpF,KAAM,KACN,SAAU,GACX,CACD,KAAK,YAAY,KAAK,KACjB,CACL,OAAS,EACT,KAAK,aAAa,OAAQ,WAAWA,KAAG,OAAS,IAAM,UAAY,UAAU,CAC7E,KAAK,aAAa,YAAa,UAAU,CACzC,IAAI,SAgCJ,GA9BI,WAAWA,KAAG,EAAE,IAAM,GAexB,QAAU,KACV,IAAI,OAfJ,SAAW,OACX,QAAU,OACV,IAAI,gBAAgB,SAAS,MAAQ,SAAS,QAAS,WAAWA,KAAG,EAAG,EAAG,MAAO,MAAQ,SAAS,QAAQ,CAC3G,SAAW,iBAAiB,CAC5B,SAAW,SAAS,SAAS,CAC7B,SAAS,aAAa,KAAM,SAAS,CACrC,QAAU,SAAS,eAAe,CAClC,QAAQ,aAAa,WAAY,QAAQ,CACzC,QAAQ,aAAa,KAAM,gBAAgB,CAC3C,QAAQ,aAAa,SAAU,IAAI,CACnC,SAAS,YAAY,QAAQ,CAC7B,KAAK,YAAY,SAAS,CAC1B,KAAK,aAAa,SAAU,WAAWA,KAAG,OAAS,IAAM,UAAY,UAAU,EAOjF,CAAC,MAAQ,SAAS,WAAWA,KAAK,CAChC,KAAM,KACN,EAAGQ,IACH,MAAO,QACP,SAAU,GACV,aAAc,GACd,SAAU,SACV,WAAY,EACb,CAEG,WAAWR,KAAG,OAAS,IAAK,CAC9B,KAAO,aAAa,OACpB,IAAI,EAAI,SAAS,IAAI,CAErB,IAAK,EAAI,EAAG,EAAI,KAAM,GAAK,EACzB,EAAE,YAAY,aAAa,GAAG,CAGhC,IAAI,KAAO,SAAS,OAAO,CAC3B,KAAK,aAAa,YAAa,QAAQ,CACvC,KAAK,aAAa,KAAM,QAAU,IAAM,MAAM,CAC9C,KAAK,YAAY,KAAK,CACtB,KAAK,YAAY,KAAK,CACtB,EAAE,aAAa,OAAQ,OAAS,aAAe,IAAM,QAAU,IAAM,MAAQ,IAAI,CACjF,aAAa,OAAS,EACtB,aAAa,KAAK,EAAE,MAEpB,aAAa,KAAK,KAAK,CAGrB,WAAWA,KAAG,KAAO,EAAE,MAAQ,SAAS,YAC1C,CAAC,MAAQ,SAAS,UAAY,KAAK,sBAAsB,EAI3D,CAAC,MAAQ,SAAS,SAASA,KAAK,CAC9B,KAAM,KACN,SAAU,GACV,GAAI,gBAAgB,SAAS,MAAQ,SAAS,QAAS,WAAWA,KAAG,EAAG,EAAG,KAAO,MAAQ,SAAS,QAAQ,CAC3G,KAAM,qBAAqB,cAAc,MAAQ,SAAS,QAAS,WAAWA,KAAI,EAAE,CACpF,QAAS,KACV,EAEK,MAAQ,SAAS,SAASA,KAAG,KAAK,GACtC,KAAK,SAAS,WAAWA,MAAK,MAAQ,SAAS,SAASA,KAAG,KAAK,GAAI,MAAQ,SAAS,SAASA,KAAG,CAQvG,IAHA,CAAC,MAAQ,SAAS,YAAc,SAAS,SAAS,CAClD,IAAM,aAAa,OAEd,IAAI,EAAGA,IAAI,IAAK,KAAK,GACvB,MAAQ,SAAS,YAAY,YAAY,aAAaA,KAAG,CAGxD,MAAQ,KACT,MAAQ,SAAS,YAAY,aAAa,KAAM,QAAQ,EAExD,MAAQ,SAAS,QAAQ,cAAc,aAAa,QAAS,OAAS,aAAe,IAAM,QAAU,IAAI,CAE1G,KAAK,aAAa,MAAQ,SAAS,YAAY,GAG5C,MAAQ,SAAS,SAAS,SAC5B,MAAQ,SAAS,QAAQ,uBAAuB,MAAQ,QAAQ,CAIrE,YAAY,UAAU,gBAAkB,SAAU,IAAK,CACrD,OAAQ,MAAQ,SAAS,SAAS,KAAK,MAGzC,YAAY,UAAU,YAAc,SAAU,aAAc,CAC1D,IAAI,UAAY,MAAQ,SAAS,QAAQ,eAAe,IACpDA,IACA,KAAO,MAAQ,SAAS,gBAAgB,OAE5C,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EASxB,KARK,MAAQ,SAAS,SAASA,KAAG,KAAK,MAAQ,eAC7C,KAAK,UAAU,MAAQ,SAAS,gBAAgBA,MAAK,MAAQ,SAAS,SAASA,KAAG,KAAK,GAAI,MAAQ,SAAS,SAASA,KAAG,GAGrH,MAAQ,SAAS,SAASA,KAAG,GAAG,MAAQ,gBAC1C,MAAQ,SAAS,SAASA,KAAG,KAAK,aAAa,gBAAiB,MAAQ,SAAS,SAASA,KAAG,GAAG,EAAE,EAGhG,MAAQ,SAAS,gBAAgBA,KAAG,OAAS,OAC3C,MAAQ,SAAS,SAASA,KAAG,WAAa,MAAQ,SAAS,QAAQ,eAAe,MAAM,MAAQ,gBAClG,MAAQ,SAAS,SAASA,KAAG,QAAQ,aAAa,YAAa,SAAS,kBAAkB,CAAC,SAAS,CAAC,EAGnG,MAAQ,SAAS,WAAWA,KAAG,KAAO,MAAQ,SAAS,WAAWA,KAAG,EAAE,MAAQ,eAAe,CACjG,IAAI,SAAW,MAAQ,SAAS,WAAWA,KAAG,OAEzC,MAAQ,SAAS,WAAWA,KAAG,EAAE,EAAI,IACnC,MAAQ,SAAS,WAAWA,KAAG,eAAiB,UACnD,CAAC,MAAQ,SAAS,WAAWA,KAAG,aAAe,SAE9C,MAAQ,SAAS,WAAWA,KAAG,KAAK,aAAa,SAAU,OAAS,aAAe,KAAO,MAAQ,SAAS,WAAWA,KAAG,SAAW,IAAI,EAG3I,QAAQ,aAAa,SAAU,EAAE,MAAQ,SAAS,WAAWA,KAAG,EAAE,EAAE,IAE/D,MAAQ,SAAS,WAAWA,KAAG,eAAiB,WACnD,CAAC,MAAQ,SAAS,WAAWA,KAAG,aAAe,UAE9C,MAAQ,SAAS,WAAWA,KAAG,KAAK,aAAa,SAAU,KAAK,GAGlE,MAAQ,SAAS,WAAWA,KAAG,KAAK,aAAa,gBAAiB,MAAQ,SAAS,WAAWA,KAAG,EAAE,EAAI,EAAE,IAOpH,YAAY,UAAU,eAAiB,UAAY,CACjD,OAAQ,MAAQ,SAAS,aAG3B,YAAY,UAAU,qBAAuB,UAAY,CACvD,IAAI,KAAO,QAKX,MAJA,OAAQ,MAAQ,MAAQ,SAAS,WAAW,SAAS,EACrD,MAAQ,MAAQ,MAAQ,SAAS,WAAW,SAAS,EACrD,MAAQ,OAAS,MAAQ,SAAS,WAAW,SAAS,EACtD,MAAQ,OAAS,MAAQ,SAAS,WAAW,SAAS,EAAI,IACnD,MAGT,YAAY,UAAU,SAAW,SAAU,SAAU,UAAW,SAAU,CACxE,IAAI,WAAa,KAAO,UAAU,EAAE,GAAG,GAAK,IAAM,UAAU,EAAE,GAAG,GAC7DA,IACA,IACE,UAAU,QAEhB,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EAExB,YAAc,KAAO,UAAU,EAAEA,IAAI,GAAG,GAAK,IAAM,UAAU,EAAEA,IAAI,GAAG,GAAK,IAAM,UAAU,EAAEA,KAAG,GAAK,IAAM,UAAU,EAAEA,KAAG,GAAK,IAAM,UAAU,EAAEA,KAAG,GAAK,IAAM,UAAU,EAAEA,KAAG,GAShL,GALI,UAAU,GAAK,IAAM,IACvB,YAAc,KAAO,UAAU,EAAEA,IAAI,GAAG,GAAK,IAAM,UAAU,EAAEA,IAAI,GAAG,GAAK,IAAM,UAAU,EAAE,GAAG,GAAK,IAAM,UAAU,EAAE,GAAG,GAAK,IAAM,UAAU,EAAE,GAAG,GAAK,IAAM,UAAU,EAAE,GAAG,IAI5K,SAAS,WAAa,WAAY,CACpC,IAAI,eAAiB,GAEjB,SAAS,OACP,UAAU,IACZ,eAAiB,SAAS,KAAO,MAAQ,SAAS,UAAY,WAAa,YAG7E,SAAS,KAAK,aAAa,IAAK,eAAe,EAGjD,SAAS,SAAW,aAIxB,YAAY,UAAU,QAAU,UAAY,CAC1C,CAAC,MAAQ,SAAS,QAAU,KAC5B,CAAC,MAAQ,SAAS,WAAa,KAC/B,CAAC,MAAQ,SAAS,YAAc,KAChC,CAAC,MAAQ,SAAS,KAAO,KACzB,CAAC,MAAQ,SAAS,gBAAkB,MAStC,SAAS,kBAAmB,EAE5B,iBAAiB,UAAY,CAM3B,cAAe,UAAY,CAEzB,CAAC,MAAQ,SAAS,UAAY,EAAE,CAEhC,CAAC,MAAQ,SAAS,UAAY,GAC9B,KAAK,gBAAgB,EAUvB,aAAc,SAAU,UAAW,CACjC,CAAC,MAAQ,SAAS,UAAY,WAQhC,YAAa,UAAY,CACvB,CAAC,MAAQ,SAAS,UAAY,IAQhC,eAAgB,UAAY,EACrB,MAAQ,SAAS,KAAK,SAAW,IAAA,KACnC,MAAQ,SAAS,KAAK,sBAAsB,MAAQ,SAAU,MAAQ,SAAS,KAAK,OAAQ,EAAE,CAAC,EAGrG,CAQD,SAAS,cAAe,EAExB,aAAa,UAAY,CAMvB,UAAW,UAAY,CAErB,CAAC,MAAQ,SAAS,cAAgB,GAElC,CAAC,MAAQ,SAAS,kBAAoB,EAAE,CAExC,CAAC,MAAQ,SAAS,KAAO,IAa3B,kBAAmB,SAAU,IAAK,UAAW,CAC3C,IAAIA,IACA,KAAO,MAAQ,SAAS,kBAAkB,OAE9C,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,GACpB,YAAc,MAAQ,SAAS,YAAc,MAAQ,SAAS,kBAAkBA,KAAG,WAAa,gBACjG,MAAQ,SAAS,kBAAkBA,KAAG,UAAU,EAE5C,MAAQ,SAAS,kBAAkBA,KAAG,OACzC,CAAC,MAAQ,SAAS,WAAW,KAAO,GACpC,CAAC,MAAQ,SAAS,KAAO,MAKjC,mBAAoB,SAAU,KAAM,EAC7B,MAAQ,SAAS,kBAAkB,QAAQ,KAAK,GAAK,KACvD,MAAQ,SAAS,kBAAkB,KAAK,KAAK,EAGnD,CAGD,SAAS,kBAAmB,EAE5B,iBAAiB,UAAY,CAC3B,cAAe,UAAY,CACzB,CAAC,MAAQ,SAAS,eAAiB,CACjC,OAAQ,MAAQ,SAAS,KAAK,GAAK,yBAAyB,qBAAqB,MAAQ,SAAU,MAAQ,SAAS,KAAK,GAAI,MAAQ,QAAQ,CAAG,CAC9I,EAAG,EACJ,CACD,QAAS,GACT,OAAQ,GACR,IAAK,IAAI,OACV,EAEI,MAAQ,SAAS,KAAK,KACzB,CAAC,MAAQ,SAAS,eAAe,MAAM,aAAe,KAInD,MAAQ,SAAS,KAAK,IAG7B,gBAAiB,UAAY,CAI3B,GAHA,CAAC,MAAQ,SAAS,eAAe,QAAU,MAAQ,SAAS,eAAe,MAAM,EAAE,OAAS,MAAQ,SAAS,cAC7G,CAAC,MAAQ,SAAS,eAAe,SAAW,MAAQ,SAAS,eAAe,MAAM,OAAS,MAAQ,SAAS,eAEvG,MAAQ,SAAS,UAAW,CAC/B,IAAI,IACA,UAAY,MAAQ,SAAS,eAAe,IAC5CA,IAAI,EACJ,KAAO,MAAQ,SAAS,UAAU,OAEtC,GAAI,EAAE,MAAQ,SAAS,eAAe,QACpC,KAAOA,IAAI,KAAK,CACd,IAAK,MAAQ,SAAS,UAAUA,KAAG,eAAe,MAAM,KAAM,CAC5D,CAAC,MAAQ,SAAS,eAAe,QAAU,GAC3C,MAGF,KAAK,EAIT,IAAK,MAAQ,SAAS,eAAe,QAInC,IAHA,KAAO,MAAQ,SAAS,eAAe,MAAM,EAAE,MAC/C,SAAS,eAAe,IAAI,CAEvB,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,KAAO,MAAQ,SAAS,UAAUA,KAAG,eAAe,MAAM,EAAE,MAC5D,SAAS,UAAU,IAAI,GAAI,IAAI,GAAI,IAAI,GAAI,IAAI,GAAI,IAAI,GAAI,IAAI,GAAI,IAAI,GAAI,IAAI,GAAI,IAAI,GAAI,IAAI,GAAI,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAI,GAKhK,cAAe,SAAU,GAAI,CAC3B,IAAI,WAAa,EAAE,CACnB,WAAW,MAAM,MAAQ,SAAS,eAAe,CAIjD,IAHA,IAAI,KAAO,GACP,MAAQ,MAAQ,SAAS,KAEtB,MACD,KAAK,gBACH,KAAK,KAAK,SACZ,WAAW,OAAO,EAAG,EAAG,KAAK,eAAe,CAG9C,KAAO,KAAK,MAEZ,KAAO,GAIX,IAAIA,IACA,IAAM,WAAW,OACjB,MAEJ,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,MAAQ,WAAWA,KAAG,IAAI,kBAAkB,EAAG,EAAG,EAAE,CAEpD,GAAK,CAAC,GAAG,GAAK,MAAM,GAAI,GAAG,GAAK,MAAM,GAAI,EAAE,CAG9C,OAAO,IAET,QAAS,IAAI,OACd,CAED,SAAS,mBAAoB,EAE7B,kBAAkB,UAAY,CAC5B,eAAgB,UAAY,CAE1B,CAAC,MAAQ,SAAS,UAAY,GAE9B,CAAC,MAAQ,SAAS,OAAS,GAE3B,CAAC,MAAQ,SAAS,cAAgB,GAElC,CAAC,MAAQ,SAAS,qBAAuB,EAAE,EAE7C,uBAAwB,SAAU,UAAW,EACtC,MAAQ,SAAS,qBAAqB,QAAQ,UAAU,GAAK,KAC/D,MAAQ,SAAS,qBAAqB,KAAK,UAAU,EAG1D,0BAA2B,SAAU,UAAW,EACzC,MAAQ,SAAS,qBAAqB,QAAQ,UAAU,GAAK,KAC/D,MAAQ,SAAS,qBAAqB,QAAQ,MAAQ,SAAS,qBAAqB,QAAQ,UAAU,CAAE,EAAE,EAG/G,uBAAwB,SAAU,IAAK,CACrC,KAAK,iBAAiB,IAAI,EAE5B,kBAAmB,UAAY,EACxB,MAAQ,SAAS,eAAe,MAAM,EAAE,GAAK,EAC5C,EAAE,MAAQ,SAAS,gBAAkB,MAAQ,SAAS,WAAW,aAAa,oBAChF,CAAC,MAAQ,SAAS,cAAgB,GAClC,KAAK,MAAM,GAEH,MAAQ,SAAS,gBAC3B,CAAC,MAAQ,SAAS,cAAgB,GAClC,KAAK,MAAM,GAYf,iBAAkB,SAAU,IAAK,EAC1B,MAAQ,SAAS,KAAK,IAAM,MAAQ,SAAS,KAAK,IAAM,MAAQ,MAAQ,SAAS,KAAK,IAAM,MAAQ,SAAS,KAAK,GAAK,KACrH,MAAQ,SAAS,YAAc,KAClC,CAAC,MAAQ,SAAS,WAAW,KAAO,GACpC,CAAC,MAAQ,SAAS,KAAO,GACzB,CAAC,MAAQ,SAAS,UAAY,GAC9B,KAAK,MAAM,GAEH,MAAQ,SAAS,YAAc,KACzC,CAAC,MAAQ,SAAS,WAAW,KAAO,GACpC,CAAC,MAAQ,SAAS,UAAY,GAC9B,KAAK,MAAM,GAGf,iBAAkB,UAAY,CAC5B,IAAIA,IACA,KAAO,MAAQ,SAAS,qBAAqB,OAEjD,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,GACvB,MAAQ,SAAS,qBAAqBA,KAAG,aAAa,MAAQ,SAAS,cAAc,EAM1F,iBAAkB,UAAY,CAC5B,MAAO,CACL,IAAK,EACL,KAAM,EACN,MAAO,IACP,OAAQ,IACT,EAEH,aAAc,UAAY,CAQxB,OAPK,MAAQ,SAAS,KAAK,KAAO,EACzB,CACL,GAAI,MAAQ,SAAS,KAAK,SAAS,MACnC,GAAI,MAAQ,SAAS,KAAK,SAAS,OACpC,CAGI,CACL,GAAI,MAAQ,SAAS,KAAK,MAC1B,GAAI,MAAQ,SAAS,KAAK,OAC3B,EAEJ,CAGD,SAAS,sBAAuB,GAE/B,UAAY,CA4DX,gBAAgB,CAAC,kBAAmB,oBA3DnB,CACf,YAAa,SAAU,KAAM,WAAY,KAAM,CAC7C,KAAK,WAAW,CAChB,KAAK,aAAa,KAAM,WAAY,KAAK,CACzC,KAAK,cAAc,KAAM,WAAY,KAAK,CAC1C,KAAK,eAAe,CACpB,KAAK,gBAAgB,CACrB,KAAK,qBAAqB,CAC1B,KAAK,yBAAyB,CAC9B,KAAK,4BAA4B,CACjC,KAAK,eAAe,CACpB,KAAK,MAAM,EAEb,KAAM,UAAY,CAChB,GAAI,EAAE,MAAQ,SAAS,SAAW,EAAE,MAAQ,SAAS,YAAc,MAAQ,SAAS,eAAgB,CAClG,IAAI,MAAQ,MAAQ,SAAS,cAAgB,MAAQ,SAAS,aAC9D,KAAK,MAAM,QAAU,OACrB,CAAC,MAAQ,SAAS,OAAS,KAG/B,KAAM,UAAY,CAChB,IAAK,MAAQ,SAAS,WAAa,EAAE,MAAQ,SAAS,cAAe,CACnE,GAAI,EAAE,MAAQ,SAAS,KAAK,GAAI,CAC9B,IAAI,MAAQ,MAAQ,SAAS,cAAgB,MAAQ,SAAS,aAC9D,KAAK,MAAM,QAAU,QAGvB,CAAC,MAAQ,SAAS,OAAS,GAC3B,CAAC,MAAQ,SAAS,cAAgB,KAGtC,YAAa,UAAY,EAGlB,MAAQ,SAAS,KAAK,KAAO,MAAQ,SAAS,SAInD,KAAK,iBAAiB,CACtB,KAAK,kBAAkB,CACvB,KAAK,eAAe,CACpB,KAAK,oBAAoB,EAEpB,MAAQ,SAAS,gBACpB,CAAC,MAAQ,SAAS,cAAgB,MAGtC,mBAAoB,UAAY,GAChC,aAAc,SAAU,IAAK,CAC3B,CAAC,MAAQ,SAAS,KAAO,GACzB,KAAK,uBAAuB,IAAI,CAChC,KAAK,kBAAkB,KAAM,MAAQ,SAAS,UAAU,CACxD,KAAK,mBAAmB,EAE1B,QAAS,UAAY,CACnB,CAAC,MAAQ,SAAS,UAAY,KAC9B,KAAK,oBAAoB,EAE5B,CACkE,CAAC,CAAE,qBAAqB,IACzF,CAIJ,SAAS,iBAAiB,QAAS,SAAU,CAC3C,CAAC,MAAQ,SAAS,KAAO,QACzB,CAAC,MAAQ,SAAS,IAAM,SAK1B,SAAS,aAAa,KAAM,MAAO,CACjC,CAAC,MAAQ,SAAS,KAAO,KACzB,CAAC,MAAQ,SAAS,KAAO,KAAK,GAC9B,CAAC,MAAQ,SAAS,EAAI,GACtB,CAAC,MAAQ,SAAS,IAAM,MACxB,CAAC,MAAQ,SAAS,KAAO,GACzB,CAAC,MAAQ,SAAS,OAAS,KAAK,KAAO,GACvC,CAAC,MAAQ,SAAS,MAAQ,SAAS,OAAO,CAC1C,CAAC,MAAQ,SAAS,OAAS,KAG7B,aAAa,UAAU,MAAQ,UAAY,CACzC,CAAC,MAAQ,SAAS,EAAI,GACtB,CAAC,MAAQ,SAAS,KAAO,IAG3B,SAAS,aAAa,aAAc,MAAO,MAAO,CAChD,CAAC,MAAQ,SAAS,OAAS,EAAE,CAC7B,CAAC,MAAQ,SAAS,OAAS,EAAE,CAC7B,CAAC,MAAQ,SAAS,aAAe,aACjC,CAAC,MAAQ,SAAS,KAAO,GACzB,CAAC,MAAQ,SAAS,GAAK,MACvB,CAAC,MAAQ,SAAS,IAAM,MAIxB,CAAC,MAAQ,SAAS,YAAc,CAAC,CAAC,MAAM,EAKxC,IAHA,IAAIA,IAAI,EACJ,IAAM,aAAa,OAEhBA,IAAI,KAAK,CACd,GAAI,aAAaA,KAAG,OAAO,kBAAkB,OAAQ,CACnD,CAAC,MAAQ,SAAS,YAAc,GAChC,MAGF,KAAK,GAIT,aAAa,UAAU,cAAgB,UAAY,CACjD,CAAC,MAAQ,SAAS,YAAc,IAKlC,SAAS,iBAAiB,OAAQ,GAAI,UAAW,CAC/C,CAAC,MAAQ,SAAS,UAAY,CACpB,OACJ,GACO,UACZ,CACD,CAAC,MAAQ,SAAS,SAAW,EAAE,CAC/B,CAAC,MAAQ,SAAS,aAAe,MAAQ,SAAS,UAAU,OAAO,kBAAkB,SAAW,MAAQ,SAAS,UAAU,GAAG,gBAAgB,OAKhJ,SAAS,mBAAmB,KAAM,KAAM,QAAS,CAC/C,KAAK,6BAA6B,KAAK,CACvC,CAAC,MAAQ,SAAS,UAAY,MAAQ,SAAS,yBAC/C,CAAC,MAAQ,SAAS,EAAI,gBAAgB,QAAQ,KAAM,KAAK,EAAG,EAAG,IAAM,MAAQ,QAAQ,CACrF,CAAC,MAAQ,SAAS,EAAI,gBAAgB,QAAQ,KAAM,KAAK,EAAG,EAAG,KAAM,MAAQ,QAAQ,CACrF,CAAC,MAAQ,SAAS,EAAI,IAAI,aAAa,KAAM,KAAK,GAAK,EAAE,CAAE,MAAO,MAAQ,QAAQ,CAClF,CAAC,MAAQ,SAAS,EAAI,gBAAgB,QAAQ,KAAM,KAAK,EAAG,EAAG,IAAK,MAAQ,QAAQ,CACpF,CAAC,MAAQ,SAAS,MAAQ,QAC1B,CAAC,MAAQ,SAAS,YAAc,CAAC,EAAE,MAAQ,SAAS,YAGtD,gBAAgB,CAAC,yBAAyB,CAAE,mBAAmB,CAG/D,SAAS,iBAAiB,KAAM,KAAM,QAAS,CAC7C,KAAK,6BAA6B,KAAK,CACvC,CAAC,MAAQ,SAAS,UAAY,MAAQ,SAAS,yBAC/C,CAAC,MAAQ,SAAS,EAAI,gBAAgB,QAAQ,KAAM,KAAK,EAAG,EAAG,IAAM,MAAQ,QAAQ,CACrF,CAAC,MAAQ,SAAS,EAAI,gBAAgB,QAAQ,KAAM,KAAK,EAAG,EAAG,IAAK,MAAQ,QAAQ,CACpF,CAAC,MAAQ,SAAS,MAAQ,QAG5B,gBAAgB,CAAC,yBAAyB,CAAE,iBAAiB,CAI7D,SAAS,yBAAyB,KAAM,KAAM,QAAS,CACrD,KAAK,6BAA6B,KAAK,CACvC,CAAC,MAAQ,SAAS,UAAY,MAAQ,SAAS,yBAC/C,KAAK,iBAAiB,KAAM,KAAM,QAAQ,CAG5C,yBAAyB,UAAU,iBAAmB,SAAU,KAAM,KAAM,QAAS,CACnF,CAAC,MAAQ,SAAS,EAAI,gBAAgB,QAAQ,KAAM,KAAK,EAAG,EAAG,IAAM,MAAQ,QAAQ,CACrF,CAAC,MAAQ,SAAS,EAAI,gBAAgB,QAAQ,KAAM,KAAK,EAAG,EAAG,KAAM,MAAQ,QAAQ,CACrF,CAAC,MAAQ,SAAS,EAAI,gBAAgB,QAAQ,KAAM,KAAK,EAAG,EAAG,KAAM,MAAQ,QAAQ,CACrF,CAAC,MAAQ,SAAS,EAAI,gBAAgB,QAAQ,KAAM,KAAK,GAAK,CAC5D,EAAG,EACJ,CAAE,EAAG,IAAM,MAAQ,QAAQ,CAC5B,CAAC,MAAQ,SAAS,EAAI,gBAAgB,QAAQ,KAAM,KAAK,GAAK,CAC5D,EAAG,EACJ,CAAE,EAAG,UAAW,MAAQ,QAAQ,CACjC,CAAC,MAAQ,SAAS,EAAI,IAAI,iBAAiB,KAAM,KAAK,EAAG,MAAQ,QAAQ,CACzE,CAAC,MAAQ,SAAS,MAAQ,QAC1B,CAAC,MAAQ,SAAS,MAAQ,EAAE,CAC5B,KAAK,gBAAgB,QAAQ,MAAO,KAAK,CACzC,KAAK,mBAAmB,KAAM,QAAQ,CACtC,CAAC,MAAQ,SAAS,YAAc,CAAC,EAAE,MAAQ,SAAS,aAGtD,yBAAyB,UAAU,gBAAkB,SAAU,YAAa,KAAM,CAChF,IAAI,WAAa,iBAAiB,CAC9B,MAAQ,SAAS,KAAK,IAAM,EAAI,iBAAmB,iBAAiB,CACxE,MAAM,aAAa,KAAM,WAAW,CACpC,MAAM,aAAa,eAAgB,MAAM,CACzC,MAAM,aAAa,gBAAiB,iBAAiB,CACrD,IAAI,MAAQ,EAAE,CACV,KACA,EACA,KACG,KAAK,EAAE,EAAI,EAElB,IAAK,EAAI,EAAG,EAAI,KAAM,GAAK,EACzB,KAAO,SAAS,OAAO,CACvB,MAAM,YAAY,KAAK,CACvB,MAAM,KAAK,KAAK,CAGlB,YAAY,aAAa,KAAK,KAAO,KAAO,OAAS,SAAU,OAAS,aAAe,IAAM,WAAa,IAAI,CAC9G,CAAC,MAAQ,SAAS,GAAK,MACvB,CAAC,MAAQ,SAAS,IAAM,OAG1B,yBAAyB,UAAU,mBAAqB,SAAU,KAAM,QAAS,CAC/E,IAAK,MAAQ,SAAS,EAAE,aAAe,EAAE,MAAQ,SAAS,EAAE,aAAc,CACxE,IAAI,KACA,EACA,KACA,KAAO,SAAS,OAAO,CACvB,YAAc,SAAS,OAAO,CAClC,KAAK,YAAY,YAAY,CAC7B,IAAI,UAAY,iBAAiB,CAC7B,OAAS,iBAAiB,CAC9B,KAAK,aAAa,KAAM,OAAO,CAC/B,IAAI,OAAS,SAAS,KAAK,IAAM,EAAI,iBAAmB,iBAAiB,CACzE,OAAO,aAAa,KAAM,UAAU,CACpC,OAAO,aAAa,eAAgB,MAAM,CAC1C,OAAO,aAAa,gBAAiB,iBAAiB,CACtD,KAAO,KAAK,EAAE,EAAE,EAAE,GAAG,EAAI,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,OAAS,KAAK,EAAE,EAAE,EAAE,OAC7D,IAAI,OAAS,MAAQ,SAAS,MAE9B,IAAK,EAAI,KAAK,EAAE,EAAI,EAAG,EAAI,KAAM,GAAK,EACpC,KAAO,SAAS,OAAO,CACvB,KAAK,aAAa,aAAc,mBAAmB,CACnD,OAAO,YAAY,KAAK,CACxB,MAAM,KAAK,KAAK,CAGlB,YAAY,aAAa,KAAK,KAAO,KAAO,OAAS,SAAU,OAAS,aAAe,IAAM,UAAY,IAAI,CAC7G,CAAC,MAAQ,SAAS,GAAK,OACvB,CAAC,MAAQ,SAAS,GAAK,KACvB,CAAC,MAAQ,SAAS,IAAM,MACxB,CAAC,MAAQ,SAAS,OAAS,OAC3B,QAAQ,OAAS,cAIrB,gBAAgB,CAAC,yBAAyB,CAAE,yBAAyB,CAGrE,SAAS,2BAA2B,KAAM,KAAM,QAAS,CACvD,KAAK,6BAA6B,KAAK,CACvC,CAAC,MAAQ,SAAS,UAAY,MAAQ,SAAS,yBAC/C,CAAC,MAAQ,SAAS,EAAI,gBAAgB,QAAQ,KAAM,KAAK,EAAG,EAAG,KAAM,MAAQ,QAAQ,CACrF,CAAC,MAAQ,SAAS,EAAI,IAAI,aAAa,KAAM,KAAK,GAAK,EAAE,CAAE,MAAO,MAAQ,QAAQ,CAClF,KAAK,iBAAiB,KAAM,KAAM,QAAQ,CAC1C,CAAC,MAAQ,SAAS,YAAc,CAAC,EAAE,MAAQ,SAAS,YAGtD,gBAAgB,CAAC,yBAA0B,yBAAyB,CAAE,2BAA2B,CAKjG,SAAS,gBAAiB,CACxB,CAAC,MAAQ,SAAS,GAAK,EAAE,CACzB,CAAC,MAAQ,SAAS,aAAe,EAAE,CACnC,CAAC,MAAQ,SAAS,GAAK,SAAS,IAAI,CAOtC,IAAI,oBAAsB,UAAY,CACpC,IAAI,gBAAkB,IAAI,OAEtB,cAAgB,IAAI,OAEpB,GAAK,CACe,qBACvB,CAED,SAAS,qBAAqB,KAAM,CAClC,OAAQ,KAAK,GAAb,CACE,IAAK,KACH,OAAO,WAET,IAAK,KACH,OAAO,eAET,IAAK,KACH,OAAO,qBAET,IAAK,KACH,OAAO,aAET,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACH,OAAO,WAET,IAAK,KACH,OAAO,uBAET,QACE,OAAO,MAIb,SAAS,uBAAuB,UAAW,SAAU,aAAc,EAC7D,cAAgB,SAAS,UAAU,GAAG,OACxC,SAAS,UAAU,UAAU,aAAa,UAAW,SAAS,UAAU,GAAG,EAAE,EAG3E,cAAgB,SAAS,UAAU,OAAO,OAC5C,SAAS,UAAU,UAAU,aAAa,YAAa,SAAS,UAAU,OAAO,EAAE,SAAS,CAAC,CAIjG,SAAS,WAAW,UAAW,SAAU,aAAc,CACrD,IAAI,EACA,KACA,sBACA,OACA,UACAL,IACA,KAAO,SAAS,OAAO,OACvB,IAAM,SAAS,IACf,MACA,IACA,MACA,WACA,EAEJ,IAAK,IAAI,EAAGA,IAAI,KAAM,KAAK,EAAG,CAG5B,GAFA,OAAS,SAAS,GAAG,MAAQ,aAEzB,SAAS,OAAOA,KAAG,IAAM,IAAK,CAKhC,IAJA,IAAM,cAAc,OAAO,CAC3B,WAAa,IAAM,SAAS,OAAOA,KAAG,IACtC,EAAI,SAAS,aAAa,OAAS,EAE5B,CAAC,QAAU,WAAa,GAC7B,OAAS,SAAS,aAAa,GAAG,OAAO,MAAQ,OACjD,aACA,IAGF,GAAI,OAIF,IAHA,WAAa,IAAM,SAAS,OAAOA,KAAG,IACtC,EAAI,SAAS,aAAa,OAAS,EAE5B,WAAa,GAClB,MAAQ,SAAS,aAAa,GAAG,OAAO,EAAE,MAC1C,IAAI,UAAU,MAAM,GAAI,MAAM,GAAI,MAAM,GAAI,MAAM,GAAI,MAAM,GAAI,MAAM,GAAI,MAAM,GAAI,MAAM,GAAI,MAAM,GAAI,MAAM,GAAI,MAAM,IAAK,MAAM,IAAK,MAAM,IAAK,MAAM,IAAK,MAAM,IAAK,MAAM,IAAI,CACnL,aACA,SAIJ,IAAM,gBAMR,GAHA,MAAQ,SAAS,GAAG,MACpB,KAAO,MAAM,QAET,OAAQ,CAGV,IAFA,sBAAwB,GAEnB,EAAI,EAAG,EAAI,KAAM,GAAK,EACzB,UAAY,MAAM,OAAO,GAErB,WAAa,UAAU,UACzB,uBAAyB,iBAAiB,UAAW,UAAU,QAAS,UAAU,EAAG,IAAI,EAI7F,SAAS,OAAOA,KAAK,2BAErB,sBAAwB,SAAS,OAAOA,KAG1C,SAAS,OAAOA,KAAG,GAAK,UAAU,KAAO,GAAO,GAAK,sBACrD,SAAS,OAAOA,KAAG,KAAO,QAAU,SAAS,OAAOA,KAAG,MAI3D,SAAS,WAAW,UAAW,SAAU,aAAc,CACrD,IAAI,UAAY,SAAS,OAErB,SAAS,EAAE,MAAQ,eACrB,UAAU,MAAM,aAAa,OAAQ,OAAS,QAAQ,SAAS,EAAE,EAAE,GAAG,CAAG,IAAM,QAAQ,SAAS,EAAE,EAAE,GAAG,CAAG,IAAM,QAAQ,SAAS,EAAE,EAAE,GAAG,CAAG,IAAI,EAG7I,SAAS,EAAE,MAAQ,eACrB,UAAU,MAAM,aAAa,eAAgB,SAAS,EAAE,EAAE,CAI9D,SAAS,qBAAqB,UAAW,SAAU,aAAc,CAC/D,eAAe,UAAW,SAAU,aAAa,CACjD,aAAa,UAAW,SAAU,aAAa,CAGjD,SAAS,eAAe,UAAW,SAAU,aAAc,CACzD,IAAI,MAAQ,SAAS,GACjB,WAAa,SAAS,EAAE,YACxB,IAAM,SAAS,EAAE,EACjB,IAAM,SAAS,EAAE,EAErB,GAAI,SAAS,EAAE,MAAQ,aAAc,CACnC,IAAI,KAAO,UAAU,KAAO,KAAO,eAAiB,iBACpD,SAAS,MAAM,MAAM,aAAa,KAAM,SAAS,EAAE,EAAE,CAGvD,GAAI,SAAS,EAAE,MAAQ,aAAc,CACnC,IAAI,MAAQ,UAAU,IAAM,EAAI,KAAO,KACnC,MAAQ,QAAU,KAAO,KAAO,KACpC,MAAM,aAAa,MAAO,IAAI,GAAG,CACjC,MAAM,aAAa,MAAO,IAAI,GAAG,CAE7B,YAAc,CAAC,SAAS,EAAE,eAC5B,SAAS,GAAG,aAAa,MAAO,IAAI,GAAG,CACvC,SAAS,GAAG,aAAa,MAAO,IAAI,GAAG,EAI3C,IAAI,MACAK,IACA,IACA,KAEJ,GAAI,SAAS,EAAE,OAAS,aAAc,CACpC,MAAQ,SAAS,IACjB,IAAI,QAAU,SAAS,EAAE,EAGzB,IAFA,IAAM,MAAM,OAEP,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,KAAO,MAAMA,KACb,KAAK,aAAa,SAAU,QAAQA,IAAI,GAAK,IAAI,CACjD,KAAK,aAAa,aAAc,OAAS,QAAQA,IAAI,EAAI,GAAK,IAAM,QAAQA,IAAI,EAAI,GAAK,IAAM,QAAQA,IAAI,EAAI,GAAK,IAAI,CAI5H,GAAI,aAAe,SAAS,EAAE,OAAS,cAAe,CACpD,IAAI,QAAU,SAAS,EAAE,EAUzB,IARA,AAGE,MAHE,SAAS,EAAE,aACL,SAAS,IAET,SAAS,IAGnB,IAAM,MAAM,OAEP,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,KAAO,MAAMA,KAER,SAAS,EAAE,cACd,KAAK,aAAa,SAAU,QAAQA,IAAI,GAAK,IAAI,CAGnD,KAAK,aAAa,eAAgB,QAAQA,IAAI,EAAI,GAAG,CAIzD,GAAI,UAAU,IAAM,GACd,SAAS,EAAE,MAAQ,gBACrB,MAAM,aAAa,KAAM,IAAI,GAAG,CAChC,MAAM,aAAa,KAAM,IAAI,GAAG,CAE5B,YAAc,CAAC,SAAS,EAAE,eAC5B,SAAS,GAAG,aAAa,KAAM,IAAI,GAAG,CACtC,SAAS,GAAG,aAAa,KAAM,IAAI,GAAG,OAGrC,CACL,IAAI,IAWJ,IATI,SAAS,EAAE,MAAQ,SAAS,EAAE,MAAQ,gBACxC,IAAM,KAAK,MAAc,IAAI,GAAK,IAAI,KAAI,GAAc,IAAI,GAAK,IAAI,KAAI,EAAG,CAC5E,MAAM,aAAa,IAAK,IAAI,CAExB,YAAc,CAAC,SAAS,EAAE,cAC5B,SAAS,GAAG,aAAa,IAAK,IAAI,EAIlC,SAAS,EAAE,MAAQ,SAAS,EAAE,MAAQ,SAAS,EAAE,MAAQ,aAAc,CACzE,AACE,MAAM,KAAK,MAAc,IAAI,GAAK,IAAI,KAAI,GAAc,IAAI,GAAK,IAAI,KAAI,EAAG,CAG9E,IAAI,IAAM,KAAK,MAAM,IAAI,GAAK,IAAI,GAAI,IAAI,GAAK,IAAI,GAAG,CAClD,QAAU,SAAS,EAAE,EAErB,SAAW,EACb,QAAU,IACD,SAAW,KACpB,QAAU,MAGZ,IAAI,KAAO,IAAM,QACbQ,IAAI,KAAK,IAAI,IAAM,SAAS,EAAE,EAAE,CAAG,KAAO,IAAI,GAC9C,EAAI,KAAK,IAAI,IAAM,SAAS,EAAE,EAAE,CAAG,KAAO,IAAI,GAClD,MAAM,aAAa,KAAMA,IAAE,CAC3B,MAAM,aAAa,KAAM,EAAE,CAEvB,YAAc,CAAC,SAAS,EAAE,eAC5B,SAAS,GAAG,aAAa,KAAMA,IAAE,CACjC,SAAS,GAAG,aAAa,KAAM,EAAE,IAOzC,SAAS,aAAa,UAAW,SAAU,aAAc,CACvD,IAAI,UAAY,SAAS,MACrB,EAAI,SAAS,EAEb,IAAM,EAAE,MAAQ,eAAiB,EAAE,UACrC,UAAU,MAAM,aAAa,mBAAoB,EAAE,QAAQ,CAC3D,UAAU,MAAM,aAAa,oBAAqB,EAAE,WAAW,GAAG,EAGhE,SAAS,IAAM,SAAS,EAAE,MAAQ,eACpC,UAAU,MAAM,aAAa,SAAU,OAAS,QAAQ,SAAS,EAAE,EAAE,GAAG,CAAG,IAAM,QAAQ,SAAS,EAAE,EAAE,GAAG,CAAG,IAAM,QAAQ,SAAS,EAAE,EAAE,GAAG,CAAG,IAAI,EAG/I,SAAS,EAAE,MAAQ,eACrB,UAAU,MAAM,aAAa,iBAAkB,SAAS,EAAE,EAAE,EAG1D,SAAS,EAAE,MAAQ,gBACrB,UAAU,MAAM,aAAa,eAAgB,SAAS,EAAE,EAAE,CAEtD,UAAU,QACZ,UAAU,OAAO,aAAa,eAAgB,SAAS,EAAE,EAAE,EAKjE,OAAO,KACN,CAIH,SAAS,uBAAwB,CAC/B,CAAC,MAAQ,SAAS,UAAY,EAAE,CAChC,CAAC,MAAQ,SAAS,aAAe,EAAE,CACnC,CAAC,MAAQ,SAAS,oBAAsB,EAG1C,sBAAsB,UAAY,CAChC,qBAAsB,SAAU,WAAY,CAC1C,IAAIR,IACA,IAAM,WAAW,OACjB,IAAM,IAEV,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,KAAO,WAAWA,KAAG,UAAU,IAAM,IAGvC,IAAI,UAAY,MAAQ,SAAS,UAAU,KAa3C,OAXK,WACH,SAAW,CACT,WAAY,EAAE,CAAC,OAAO,WAAW,CACjC,eAAgB,IAAI,OACpB,KAAM,GACP,CACD,CAAC,MAAQ,SAAS,UAAU,KAAO,UAElC,MAAQ,SAAS,aAAa,KAAK,SAAS,EAGxC,UAET,gBAAiB,SAAU,SAAU,aAAc,CAKjD,IAJA,IAAIA,IAAI,EACJ,IAAM,SAAS,WAAW,OAC1B,KAAO,aAEJA,IAAI,KAAO,CAAC,cAAc,CAC/B,GAAI,SAAS,WAAWA,KAAG,UAAU,OAAO,KAAM,CAChD,KAAO,GACP,MAGF,KAAK,EAGP,GAAI,KAAM,CACR,IAAI,MAGJ,IAFA,SAAS,eAAe,OAAO,CAE1B,IAAI,IAAM,EAAGA,KAAK,EAAG,MACxB,MAAQ,SAAS,WAAWA,KAAG,UAAU,OAAO,EAAE,MAClD,SAAS,eAAe,UAAU,MAAM,GAAI,MAAM,GAAI,MAAM,GAAI,MAAM,GAAI,MAAM,GAAI,MAAM,GAAI,MAAM,GAAI,MAAM,GAAI,MAAM,GAAI,MAAM,GAAI,MAAM,IAAK,MAAM,IAAK,MAAM,IAAK,MAAM,IAAK,MAAM,IAAK,MAAM,IAAI,CAI3M,SAAS,KAAO,MAElB,iBAAkB,SAAU,aAAc,CACxC,IAAIA,IACA,KAAO,MAAQ,SAAS,aAAa,OAEzC,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,KAAK,iBAAiB,MAAQ,SAAS,aAAaA,KAAI,aAAa,EAGzE,UAAW,UAAY,CAErB,MADA,CAAC,MAAQ,SAAS,qBAAuB,EAClC,KAAO,MAAQ,SAAS,qBAElC,CAGD,SAAS,YAAY,QAAS,KAAM,OAAQ,kBAAmB,CAC7D,CAAC,MAAQ,SAAS,aAAe,EAAE,CACnC,CAAC,MAAQ,SAAS,GAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAE,CACzC,IAAI,GAAK,EAEL,KAAK,KAAO,KACd,GAAK,EACI,KAAK,KAAO,KACrB,GAAK,EACI,KAAK,KAAO,OACrB,GAAK,GAGP,CAAC,MAAQ,SAAS,GAAK,qBAAqB,aAAa,QAAS,KAAM,GAAI,QAAQ,CACpF,IAAIA,IACA,IAAM,OAAO,OACb,YAEJ,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EACnB,OAAOA,KAAG,SACb,YAAc,CACZ,WAAY,kBAAkB,qBAAqB,OAAOA,KAAG,WAAW,CACxE,QAAS,EAAE,CACZ,EAEA,MAAQ,SAAS,aAAa,KAAK,YAAY,CAEhD,OAAOA,KAAG,SAAS,KAAK,YAAY,EAK1C,YAAY,UAAU,cAAgB,aAAa,UAAU,cAI7D,SAAS,aAAc,EAEvB,YAAY,UAAY,CACtB,WAAY,UAAY,CACtB,GAAI,EAAE,MAAQ,SAAS,KAAK,QAC1B,MAAO,GAMT,IAHA,IAAIA,IAAI,EACJ,KAAO,MAAQ,SAAS,KAAK,gBAAgB,OAE1CA,IAAI,KAAK,CACd,IAAK,MAAQ,SAAS,KAAK,gBAAgBA,KAAG,OAAS,MAAQ,MAAQ,SAAS,KAAK,gBAAgBA,KAAG,KAAO,GAC7G,MAAO,GAGT,KAAK,EAGP,MAAO,IAET,gBAAiB,UAAY,CAC3B,CAAC,MAAQ,SAAS,eAAiB,yBAAyB,MAAQ,QAAQ,EAEvE,MAAQ,SAAS,KAAK,UAAY,MAAQ,SAAS,cACrD,MAAQ,SAAS,eAAe,uBAAuB,MAAQ,SAAS,YAAY,CAGvF,IAAI,iBAAmB,2BAA2B,uBAAuB,MAAQ,SAAU,MAAQ,SAAS,eAAe,EAE1H,MAAQ,SAAS,eAAe,yBAAyB,iBAAiB,EAEtE,MAAQ,SAAS,KAAK,KAAO,IAAM,MAAQ,SAAS,KAAK,GAC5D,CAAC,MAAQ,SAAS,cAAgB,wBAAwB,MAAQ,QAAQ,EAChE,MAAQ,SAAS,KAAK,KAAO,GACvC,CAAC,MAAQ,SAAS,eAAe,eAAiB,0BAA0B,MAAQ,SAAS,YAAa,MAAQ,SAAS,WAAY,MAAQ,SAAS,eAAe,CACvK,CAAC,MAAQ,SAAS,eAAe,SAAW,MAAQ,SAAS,eAAe,iBAClE,MAAQ,SAAS,KAAK,KAAO,IACvC,CAAC,MAAQ,SAAS,eAAe,cAAgB,wBAAwB,MAAQ,QAAQ,CACzF,CAAC,MAAQ,SAAS,eAAe,MAAQ,MAAQ,SAAS,eAAe,gBAG7E,aAAc,UAAY,CACxB,IAAI,eAAiB,cAAc,MAAQ,SAAS,KAAK,GAAG,CACxD,MAAQ,MAAQ,SAAS,cAAgB,MAAQ,SAAS,aAC9D,KAAK,MAAM,kBAAoB,gBAEjC,aAAc,SAAU,KAAM,WAAY,KAAM,CAC9C,CAAC,MAAQ,SAAS,WAAa,WAC/B,CAAC,MAAQ,SAAS,KAAO,KACzB,CAAC,MAAQ,SAAS,KAAO,KACzB,CAAC,MAAQ,SAAS,QAAU,iBAAiB,EAEvC,MAAQ,SAAS,KAAK,KAC1B,CAAC,MAAQ,SAAS,KAAK,GAAK,GAI9B,CAAC,MAAQ,SAAS,eAAiB,IAAI,gBAAgB,MAAQ,SAAS,KAAM,MAAQ,SAAU,MAAQ,SAAS,kBAAkB,EAErI,QAAS,UAAY,CACnB,OAAQ,MAAQ,SAAS,MAE3B,iBAAkB,UAAY,GAC/B,CAGD,SAAS,YAAY,KAAM,WAAY,KAAM,CAC3C,KAAK,WAAW,CAChB,KAAK,aAAa,KAAM,WAAY,KAAK,CACzC,KAAK,WAAW,CAChB,KAAK,cAAc,KAAM,WAAY,KAAK,CAC1C,KAAK,eAAe,CAGtB,YAAY,UAAU,aAAe,SAAU,IAAK,CAClD,KAAK,kBAAkB,IAAK,GAAK,EAGnC,YAAY,UAAU,YAAc,UAAY,GAEhD,YAAY,UAAU,eAAiB,UAAY,CACjD,OAAO,MAGT,YAAY,UAAU,QAAU,UAAY,GAE5C,YAAY,UAAU,iBAAmB,UAAY,GAErD,YAAY,UAAU,KAAO,UAAY,GAEzC,gBAAgB,CAAC,YAAa,iBAAkB,iBAAkB,aAAa,CAAE,YAAY,CAG7F,SAAS,gBAAiB,EAE1B,eAAe,UAAY,CACzB,oBAAqB,UAAY,CAC/B,CAAC,MAAQ,SAAS,aAAe,SAAS,IAAI,EAEhD,wBAAyB,UAAY,CACnC,CAAC,MAAQ,SAAS,aAAe,SAAS,IAAI,CAC9C,CAAC,MAAQ,SAAS,oBAAsB,MAAQ,SAAS,aACzD,CAAC,MAAQ,SAAS,eAAiB,MAAQ,SAAS,aACpD,CAAC,MAAQ,SAAS,aAAe,GACjC,IAAI,mBAAqB,KAErB,MACA,IACA,GAEJ,IAAK,MAAQ,SAAS,KAAK,QACpB,MAAQ,SAAS,KAAK,IAAM,IAAM,MAAQ,SAAS,KAAK,IAAM,EAAG,CAEpE,IAAI,OAAS,SAAS,OAAO,CAC7B,OAAO,aAAa,MAAO,MAAQ,SAAS,QAAQ,CACpD,OAAO,aAAa,aAAc,MAAQ,SAAS,KAAK,IAAM,EAAI,YAAc,QAAQ,CAExF,OAAO,aAAa,MAAQ,SAAS,aAAa,CAClD,mBAAqB,QAEpB,MAAQ,SAAS,WAAW,KAAK,YAAY,OAAO,CAGjD,CAAC,eAAe,WAAa,MAAQ,SAAS,KAAK,IAAM,IAE3D,OAAO,aAAa,YAAa,YAAY,CAC7C,MAAQ,iBAAiB,CACzB,IAAM,eAAe,aAAa,MAAM,EAEvC,MAAQ,SAAS,WAAW,KAAK,YAAY,IAAI,CAElD,IAAI,YAAY,eAAe,8BAA8B,CAAC,CAC9D,GAAK,SAAS,IAAI,CAClB,GAAG,aAAa,MAAQ,SAAS,aAAa,CAC9C,mBAAqB,GACrB,OAAO,YAAY,GAAG,CACtB,GAAG,aAAa,SAAU,OAAS,aAAe,IAAM,MAAQ,IAAI,WAE5D,MAAQ,SAAS,KAAK,IAAM,EAAG,CAEzC,IAAI,UAAY,SAAS,OAAO,CAChC,UAAU,aAAa,MAAO,MAAQ,SAAS,QAAQ,CACvD,UAAU,aAAa,YAAa,QAAQ,CAC5C,IAAI,YAAc,SAAS,IAAI,CAC/B,UAAU,YAAY,YAAY,CAClC,MAAQ,iBAAiB,CACzB,IAAM,eAAe,aAAa,MAAM,CAUxC,IAAI,MAAQ,SAAS,sBAAsB,CAC3C,MAAM,aAAa,KAAM,gBAAgB,CACzC,IAAI,YAAY,MAAM,CACtB,IAAI,OAAS,SAAS,UAAU,CAChC,OAAO,aAAa,OAAQ,QAAQ,CACpC,OAAO,aAAa,cAAe,UAAU,CAC7C,MAAM,YAAY,OAAO,EAExB,MAAQ,SAAS,WAAW,KAAK,YAAY,IAAI,CAElD,IAAI,UAAY,SAAS,OAAO,CAChC,UAAU,aAAa,SAAU,MAAQ,SAAS,KAAK,KAAK,EAAE,CAC9D,UAAU,aAAa,UAAW,MAAQ,SAAS,KAAK,KAAK,EAAE,CAC/D,UAAU,aAAa,IAAK,IAAI,CAChC,UAAU,aAAa,IAAK,IAAI,CAChC,UAAU,aAAa,OAAQ,UAAU,CACzC,UAAU,aAAa,UAAW,IAAI,CACtC,YAAY,aAAa,SAAU,OAAS,aAAe,IAAM,MAAQ,IAAI,CAC7E,YAAY,YAAY,UAAU,CAClC,YAAY,aAAa,MAAQ,SAAS,aAAa,CACvD,mBAAqB,YAEhB,eAAe,WAClB,UAAU,aAAa,YAAa,YAAY,CAChD,IAAI,YAAY,eAAe,8BAA8B,CAAC,CAC9D,GAAK,SAAS,IAAI,CAClB,YAAY,YAAY,UAAU,CAClC,GAAG,aAAa,MAAQ,SAAS,aAAa,CAC9C,mBAAqB,GACrB,YAAY,YAAY,GAAG,GAG5B,MAAQ,SAAS,WAAW,KAAK,YAAY,UAAU,QAEhD,MAAQ,SAAS,KAAK,KAC/B,MAAQ,SAAS,aAAa,aAAa,MAAQ,SAAS,aAAa,CAE1E,oBAAsB,MAAQ,SAAS,aACvC,CAAC,MAAQ,SAAS,aAAe,MAAQ,SAAS,cAElD,CAAC,MAAQ,SAAS,aAAe,MAAQ,SAAS,aAYpD,IATK,MAAQ,SAAS,KAAK,KACxB,MAAQ,SAAS,aAAa,aAAa,MAAO,MAAQ,SAAS,KAAK,GAAG,EAGzE,MAAQ,SAAS,KAAK,KACxB,MAAQ,SAAS,aAAa,aAAa,SAAU,MAAQ,SAAS,KAAK,GAAG,EAI5E,MAAQ,SAAS,KAAK,KAAO,GAAK,EAAE,MAAQ,SAAS,KAAK,GAAI,CACjE,IAAI,GAAK,SAAS,WAAW,CACzB,GAAK,SAAS,OAAO,CACzB,GAAG,aAAa,IAAK,UAAY,MAAQ,SAAS,KAAK,EAAI,QAAU,MAAQ,SAAS,KAAK,EAAI,KAAO,MAAQ,SAAS,KAAK,EAAI,QAAU,MAAQ,SAAS,KAAK,EAAI,IAAI,CACxK,IAAI,OAAS,iBAAiB,CAM9B,GALA,GAAG,aAAa,KAAM,OAAO,CAC7B,GAAG,YAAY,GAAG,EAEjB,MAAQ,SAAS,WAAW,KAAK,YAAY,GAAG,CAE7C,KAAK,YAAY,CAAE,CACrB,IAAI,QAAU,SAAS,IAAI,CAC3B,QAAQ,aAAa,YAAa,OAAS,aAAe,IAAM,OAAS,IAAI,CAC7E,QAAQ,aAAa,MAAQ,SAAS,aAAa,CACnD,CAAC,MAAQ,SAAS,mBAAqB,QAEnC,mBACF,mBAAmB,aAAa,MAAQ,SAAS,mBAAmB,CAEpE,CAAC,MAAQ,SAAS,aAAe,MAAQ,SAAS,yBAGnD,MAAQ,SAAS,aAAa,aAAa,YAAa,OAAS,aAAe,IAAM,OAAS,IAAI,EAInG,MAAQ,SAAS,KAAK,KAAO,GAChC,KAAK,cAAc,EAGvB,cAAe,UAAY,EACpB,MAAQ,SAAS,eAAe,UAClC,MAAQ,SAAS,mBAAmB,aAAa,aAAc,MAAQ,SAAS,eAAe,IAAI,SAAS,CAAC,EAG3G,MAAQ,SAAS,eAAe,SAClC,MAAQ,SAAS,mBAAmB,aAAa,WAAY,MAAQ,SAAS,eAAe,MAAM,EAAE,EAAE,EAG5G,mBAAoB,UAAY,CAC9B,CAAC,MAAQ,SAAS,aAAe,KACjC,CAAC,MAAQ,SAAS,aAAe,MAEhC,MAAQ,SAAS,YAAY,SAAS,EAEzC,eAAgB,UAAY,CAK1B,OAJK,MAAQ,SAAS,KAAK,GAClB,MAGD,MAAQ,SAAS,aAE3B,2BAA4B,UAAY,CACtC,CAAC,MAAQ,SAAS,YAAc,IAAI,aAAa,MAAQ,SAAS,KAAM,MAAQ,SAAU,MAAQ,SAAS,WAAW,CACtH,CAAC,MAAQ,SAAS,yBAA2B,IAAI,WAAW,MAAQ,QAAQ,EAE9E,SAAU,SAAU,KAAI,EAChB,MAAQ,SAAS,eAItB,MAAQ,SAAS,aAAa,aAAa,OAAQ,OAAS,aAAe,IAAMN,KAAK,IAAI,EAE9F,CAGD,SAAS,eAAgB,EAEzB,cAAc,UAAY,CACxB,oBAAqB,SAAU,KAAM,CACnC,IAAIM,IACA,KAAO,MAAQ,SAAS,eAAe,OAE3C,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,GACvB,MAAQ,SAAS,eAAeA,KAAG,SAAS,KAAK,EAGtD,2BAA4B,SAAU,KAAM,CAI1C,IAHA,IAAIA,IAAI,EACJ,KAAO,MAAQ,SAAS,eAAe,OAEpCA,IAAI,KACT,IAAK,MAAQ,SAAS,eAAeA,KAAG,oBAAoB,KAAK,CAC/D,MAAO,GAIX,MAAO,IAET,gBAAiB,UAAY,CACvB,IAAE,MAAQ,SAAS,eAAe,OAItC,KAAIA,IACA,KAAO,MAAQ,SAAS,OAAO,OAEnC,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,GACvB,MAAQ,SAAS,OAAOA,KAAG,GAAG,OAAO,CAGxC,KAAO,MAAQ,SAAS,eAAe,OACvC,IAAI,mBAEJ,IAAK,IAAI,IAAM,EAAGA,KAAK,IACrB,oBAAsB,MAAQ,SAAS,eAAeA,KAAG,eAAe,MAAQ,SAAS,cAAc,CAGnG,qBAJoB,UAS5B,OAAQ,CACN,EAAG,OACH,EAAG,QACH,EAAG,SACJ,CACD,OAAQ,CACN,EAAG,QACH,EAAG,QACH,EAAG,QACJ,CACD,uBAAwB,SAAU,KAAM,CAKtC,IAJA,IAAI,UAAY,MAAQ,SAAS,kBAC7BA,IAAI,EACJ,IAAM,SAAS,OAEZA,IAAI,KAAK,CACd,GAAI,SAASA,KAAG,OAAS,KACvB,OAAO,SAASA,KAAG,IAGrB,KAAK,EAGP,MAAO,IAET,oBAAqB,SAAU,KAAM,IAAK,CAIxC,IAHA,IAAI,UAAY,MAAQ,SAAS,kBAC7BA,IAAI,SAAS,OAEVA,KAGL,GAFA,MAEI,SAASA,KAAG,OAAS,KAAM,CAC7B,SAASA,KAAG,IAAM,IAClB,OAIJ,SAAS,KAAK,IAAI,iBAAiB,KAAM,IAAI,CAAC,EAEhD,aAAc,SAAU,IAAK,CAC3B,KAAK,uBAAuB,IAAI,CAChC,KAAK,kBAAkB,KAAM,MAAQ,SAAS,UAAU,EAE3D,CAGD,SAAS,cAAe,EAExB,aAAa,UAAU,YAAc,SAAU,KAAM,WAAY,KAAM,CACrE,CAAC,MAAQ,SAAS,mBAAqB,GACvC,KAAK,WAAW,CAChB,KAAK,aAAa,KAAM,WAAY,KAAK,CACzC,CAAC,MAAQ,SAAS,aAAe,IAAI,aAAa,MAAQ,QAAS,KAAK,GAAI,MAAQ,SAAS,kBAAkB,CAC/G,CAAC,MAAQ,SAAS,aAAe,IAAI,qBAAqB,KAAK,GAAI,MAAQ,SAAS,WAAY,MAAQ,QAAQ,CAChH,KAAK,cAAc,KAAM,WAAY,KAAK,CAC1C,KAAK,eAAe,CACpB,KAAK,gBAAgB,CACrB,KAAK,qBAAqB,CAC1B,KAAK,yBAAyB,CAC9B,KAAK,4BAA4B,CACjC,KAAK,eAAe,CACpB,KAAK,MAAM,EAEV,MAAQ,SAAS,aAAa,kBAAkB,MAAQ,SAAS,kBAAkB,EAGtF,aAAa,UAAU,aAAe,SAAU,IAAK,CACnD,CAAC,MAAQ,SAAS,KAAO,GACzB,KAAK,uBAAuB,IAAI,CAChC,KAAK,kBAAkB,KAAM,MAAQ,SAAS,UAAU,GAEnD,MAAQ,SAAS,aAAa,OAAS,MAAQ,SAAS,aAAa,iBACxE,KAAK,cAAc,CACnB,CAAC,MAAQ,SAAS,aAAa,cAAgB,GAC/C,CAAC,MAAQ,SAAS,aAAa,KAAO,KAI1C,aAAa,UAAU,gBAAkB,SAAU,aAAc,OAAQ,CACvE,IAAI,EACA,KAAO,OAAO,OACd,UACA,SAAW,GAEf,IAAK,EAAI,EAAG,EAAI,KAAM,GAAK,EACzB,UAAY,OAAO,GAAG,GAAG,EACzB,UAAY,iBAAiB,UAAW,UAAU,EAAE,OAAQ,GAAM,aAAa,CAGjF,OAAO,UAGT,aAAa,UAAU,mBAAqB,SAAU,QAAS,QAAO,EACnE,MAAQ,SAAS,aAAa,mBAAmB,QAASzI,QAAM,EAGnE,aAAa,UAAU,cAAgB,SAAU,WAAY,EAC1D,MAAQ,SAAS,aAAa,cAAc,WAAW,EAG1D,aAAa,UAAU,mBAAqB,SAAU,UAAW,EAC9D,MAAQ,SAAS,aAAa,mBAAmB,UAAU,EAG9D,aAAa,UAAU,4BAA8B,SAAU,aAAc,aAAc,WAAY,KAAM,KAAM,CAOjH,OANI,aAAa,IACf,aAAa,UAAU,aAAa,GAAG,GAAI,aAAa,GAAG,GAAK,aAAa,OAAQ,EAAE,CAGzF,aAAa,UAAU,EAAG,CAAC,aAAa,GAAI,EAAE,CAEtC,aAAa,EAArB,CACE,IAAK,GACH,aAAa,UAAU,aAAa,eAAiB,aAAa,SAAW,aAAa,WAAW,aAAc,EAAG,EAAE,CACxH,MAEF,IAAK,GACH,aAAa,UAAU,aAAa,eAAiB,aAAa,SAAW,aAAa,WAAW,aAAe,EAAG,EAAG,EAAE,CAC5H,MAEF,QACE,MAGJ,aAAa,UAAU,KAAM,KAAM,EAAE,EAGvC,aAAa,UAAU,WAAa,SAAU,UAAW,CACvD,MAAO,OAAS,KAAK,MAAM,UAAU,GAAK,IAAI,CAAG,IAAM,KAAK,MAAM,UAAU,GAAK,IAAI,CAAG,IAAM,KAAK,MAAM,UAAU,GAAK,IAAI,CAAG,KAGjI,aAAa,UAAU,UAAY,IAAI,YAEvC,aAAa,UAAU,QAAU,UAAY,GAI7C,SAAS,cAAe,EAExB,gBAAgB,CAAC,YAAa,iBAAkB,iBAAkB,aAAc,qBAAqB,CAAE,aAAa,CAEpH,aAAa,UAAU,YAAc,SAAU,KAAM,WAAY,KAAM,CACrE,KAAK,WAAW,CAChB,KAAK,aAAa,KAAM,WAAY,KAAK,CACzC,KAAK,cAAc,KAAM,WAAY,KAAK,CAC1C,KAAK,gBAAgB,CACrB,KAAK,eAAe,CACpB,KAAK,qBAAqB,CAC1B,KAAK,yBAAyB,CAC9B,KAAK,4BAA4B,GAE5B,MAAQ,SAAS,KAAK,IAAM,CAAC,WAAW,kBAC3C,KAAK,eAAe,CAGtB,KAAK,MAAM,EAeb,aAAa,UAAU,aAAe,SAAU,IAAK,CACnD,IAAC,MAAQ,SAAS,KAAO,GACzB,KAAK,uBAAuB,IAAI,CAChC,KAAK,kBAAkB,KAAM,MAAQ,SAAS,UAAU,CAEpD,IAAE,MAAQ,SAAS,WAAa,EAAE,MAAQ,SAAS,KAAK,IAI5D,KAAM,MAAQ,SAAS,GAAG,aASxB,CAAC,MAAQ,SAAS,cAAgB,KAAO,MAAQ,SAAS,KAAK,OATzB,CACtC,IAAI,cAAgB,MAAQ,SAAS,GAAG,EAEpC,gBAAkB,MAAQ,SAAS,KAAK,KAC1C,cAAgB,MAAQ,SAAS,KAAK,GAAK,GAG7C,CAAC,MAAQ,SAAS,cAAgB,aAKpC,IAAIyI,IACA,KAAO,MAAQ,SAAS,SAAS,OAOrC,KALM,MAAQ,SAAS,gBACrB,KAAK,aAAa,MAAQ,SAAS,cAAc,CAI9C,IAAI,IAAM,EAAGA,KAAK,EAAG,QACnB,MAAQ,SAAS,iBAAmB,MAAQ,SAAS,SAASA,SAChE,MAAQ,SAAS,SAASA,KAAG,cAAc,MAAQ,SAAS,eAAiB,MAAQ,SAAS,OAAOA,KAAG,GAAG,EAEvG,MAAQ,SAAS,SAASA,KAAG,OAChC,CAAC,MAAQ,SAAS,KAAO,OAMjC,aAAa,UAAU,mBAAqB,UAAY,CACtD,IAAIA,IACA,KAAO,MAAQ,SAAS,OAAO,OAEnC,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,IACnB,MAAQ,SAAS,iBAAmB,MAAQ,SAAS,SAASA,QAChE,MAAQ,SAAS,SAASA,KAAG,aAAa,EAKjD,aAAa,UAAU,YAAc,SAAU,MAAO,CACpD,CAAC,MAAQ,SAAS,SAAW,OAG/B,aAAa,UAAU,YAAc,UAAY,CAC/C,OAAQ,MAAQ,SAAS,UAG3B,aAAa,UAAU,gBAAkB,UAAY,CACnD,IAAIA,IACA,KAAO,MAAQ,SAAS,OAAO,OAEnC,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,GACnB,MAAQ,SAAS,SAASA,OAC5B,MAAQ,SAAS,SAASA,KAAG,SAAS,EAK7C,aAAa,UAAU,QAAU,UAAY,CAC3C,KAAK,iBAAiB,CACtB,KAAK,oBAAoB,EAK3B,SAAS,cAAc,KAAM,WAAY,KAAM,CAC7C,CAAC,MAAQ,SAAS,UAAY,WAAW,aAAa,KAAK,MAAM,CACjE,KAAK,YAAY,KAAM,WAAY,KAAK,CACxC,CAAC,MAAQ,SAAS,WAAa,CAC7B,IAAK,EACL,KAAM,EACN,OAAQ,MAAQ,SAAS,UAAU,EACnC,QAAS,MAAQ,SAAS,UAAU,EACrC,CAGH,gBAAgB,CAAC,YAAa,iBAAkB,eAAgB,iBAAkB,aAAc,qBAAqB,CAAE,cAAc,CAErI,cAAc,UAAU,cAAgB,UAAY,CAClD,IAAI,WAAa,MAAQ,SAAS,WAAW,eAAe,MAAQ,SAAS,UAAU,CAEvF,CAAC,MAAQ,SAAS,UAAY,SAAS,QAAQ,EAE9C,MAAQ,SAAS,UAAU,aAAa,SAAU,MAAQ,SAAS,UAAU,EAAI,KAAK,EAEtF,MAAQ,SAAS,UAAU,aAAa,UAAW,MAAQ,SAAS,UAAU,EAAI,KAAK,EAEvF,MAAQ,SAAS,UAAU,aAAa,uBAAwB,MAAQ,SAAS,UAAU,KAAO,MAAQ,SAAS,WAAW,aAAa,yBAAyB,EAEpK,MAAQ,SAAS,UAAU,eAAe,+BAAgC,OAAQ,UAAU,EAE5F,MAAQ,SAAS,aAAa,aAAa,MAAQ,SAAS,UAAU,EAGzE,cAAc,UAAU,iBAAmB,UAAY,CACrD,OAAQ,MAAQ,SAAS,YAK3B,SAAS,cAAc,KAAM,WAAY,KAAM,CAC7C,KAAK,YAAY,KAAM,WAAY,KAAK,CAG1C,gBAAgB,CAAC,cAAc,CAAE,cAAc,CAE/C,cAAc,UAAU,cAAgB,UAAY,CAClD,IAAI,KAAO,SAAS,OAAO,CAI3B,KAAK,aAAa,SAAU,MAAQ,SAAS,KAAK,GAAG,CACrD,KAAK,aAAa,UAAW,MAAQ,SAAS,KAAK,GAAG,CACtD,KAAK,aAAa,QAAS,MAAQ,SAAS,KAAK,GAAG,EAEnD,MAAQ,SAAS,aAAa,YAAY,KAAK,EAKlD,SAAS,aAAa,KAAM,WAAY,KAAM,CAC5C,KAAK,WAAW,CAChB,KAAK,gBAAgB,CACrB,CAAC,MAAQ,SAAS,UAAY,WAAW,aAAa,KAAK,MAAM,CACjE,KAAK,aAAa,KAAM,WAAY,KAAK,CACzC,CAAC,MAAQ,SAAS,WAAa,GAC/B,CAAC,MAAQ,SAAS,SAAW,GAE7B,IAAI,WAAa,MAAQ,SAAS,WAAW,eAAe,MAAQ,SAAS,UAAU,CAEvF,CAAC,MAAQ,SAAS,OAAS,MAAQ,SAAS,WAAW,gBAAgB,YAAY,UAAU,CAC7F,CAAC,MAAQ,SAAS,aAAe,GAEhC,MAAQ,SAAS,WAAW,gBAAgB,SAAS,MAAQ,QAAQ,CAEtE,CAAC,MAAQ,SAAS,GAAK,KAAK,GAAK,gBAAgB,QAAQ,MAAQ,QAAS,KAAK,GAAI,EAAG,WAAW,UAAW,MAAQ,QAAQ,CAAG,CAC7H,aAAc,GACf,CAGH,aAAa,UAAU,aAAe,SAAU,IAAK,CACnD,KAAK,uBAAuB,IAAK,GAAK,CACtC,KAAK,kBAAkB,IAAK,GAAK,EAE3B,MAAQ,SAAS,GAAG,aAIxB,CAAC,MAAQ,SAAS,aAAe,KAAO,MAAQ,SAAS,KAAK,GAF9D,CAAC,MAAQ,SAAS,cADE,MAAQ,SAAS,GAAG,GAO5C,gBAAgB,CAAC,kBAAmB,YAAa,aAAa,CAAE,aAAa,CAE7E,aAAa,UAAU,YAAc,UAAY,EAC1C,MAAQ,SAAS,YAAc,MAAQ,SAAS,YAC7C,MAAQ,SAAS,YAMZ,EAAE,MAAQ,SAAS,MAAM,SAAS,EAAI,KAAK,KAAK,MAAQ,SAAS,cAAgB,MAAQ,SAAS,WAAW,WAAa,MAAQ,SAAS,MAAM,MAAM,CAAC,CAAG,MACnK,MAAQ,SAAS,MAAM,MAAM,MAAQ,SAAS,cAAgB,MAAQ,SAAS,WAAW,UAAU,GANpG,MAAQ,SAAS,MAAM,MAAM,EAE7B,MAAQ,SAAS,MAAM,MAAM,MAAQ,SAAS,cAAgB,MAAQ,SAAS,WAAW,UAAU,CAErG,CAAC,MAAQ,SAAS,WAAa,MAOrC,aAAa,UAAU,KAAO,UAAY,GAG1C,aAAa,UAAU,KAAO,UAAY,EACvC,MAAQ,SAAS,MAAM,OAAO,CAE/B,CAAC,MAAQ,SAAS,WAAa,IAGjC,aAAa,UAAU,MAAQ,UAAY,EACxC,MAAQ,SAAS,MAAM,OAAO,CAE/B,CAAC,MAAQ,SAAS,WAAa,GAC/B,CAAC,MAAQ,SAAS,SAAW,IAG/B,aAAa,UAAU,OAAS,UAAY,CAC1C,CAAC,MAAQ,SAAS,SAAW,IAG/B,aAAa,UAAU,QAAU,SAAU,UAAW,EACnD,MAAQ,SAAS,MAAM,KAAK,UAAU,EAGzC,aAAa,UAAU,OAAS,SAAU,YAAa,EACpD,MAAQ,SAAS,MAAM,OAAO,YAAY,EAG7C,aAAa,UAAU,eAAiB,UAAY,CAClD,OAAO,MAGT,aAAa,UAAU,QAAU,UAAY,GAE7C,aAAa,UAAU,iBAAmB,UAAY,GAEtD,aAAa,UAAU,gBAAkB,UAAY,GAIrD,SAAS,eAAe,KAAM,WAAY,KAAM,CAC9C,KAAK,WAAW,CAChB,KAAK,gBAAgB,CACrB,CAAC,MAAQ,SAAS,UAAY,WAAW,aAAa,KAAK,MAAM,CACjE,CAAC,MAAQ,SAAS,YAAc,WAAW,YAAY,UAAU,MAAQ,SAAS,UAAU,CAC5F,KAAK,aAAa,KAAM,WAAY,KAAK,CAG3C,eAAe,UAAU,aAAe,UAAY,GAEpD,gBAAgB,CAAC,kBAAmB,YAAa,aAAa,CAAE,eAAe,CAE/E,eAAe,UAAU,eAAiB,UAAY,CACpD,OAAO,MAGT,eAAe,UAAU,YAAc,UAAY,GAEnD,eAAe,UAAU,QAAU,UAAY,GAE/C,eAAe,UAAU,gBAAkB,UAAY,CACrD,CAAC,MAAQ,SAAS,eAAiB,iBAAiB,MAAQ,QAAQ,EAGtE,eAAe,UAAU,eAAiB,UAAY,CACpD,OAAQ,MAAQ,SAAS,aAK3B,SAAS,eAAe,KAAM,WAAY,KAAM,CAC9C,CAAC,MAAQ,SAAS,OAAS,KAAK,OAChC,CAAC,MAAQ,SAAS,WAAa,GAC/B,CAAC,MAAQ,SAAS,eAAiB,GACnC,CAAC,MAAQ,SAAS,gBAAkB,EAAE,CACtC,CAAC,MAAQ,SAAS,UAAY,MAAQ,SAAS,OAAS,kBAAkB,MAAQ,SAAS,OAAO,OAAO,CAAG,EAAE,CAE9G,KAAK,YAAY,KAAM,WAAY,KAAK,CACxC,CAAC,MAAQ,SAAS,GAAK,KAAK,GAAK,gBAAgB,QAAQ,MAAQ,QAAS,KAAK,GAAI,EAAG,WAAW,UAAW,MAAQ,QAAQ,CAAG,CAC7H,aAAc,GACf,CAGH,gBAAgB,CAAC,YAAa,aAAc,eAAe,CAAE,eAAe,CAI5E,SAAS,qBAAqB,KAAM,WAAY,KAAM,CACpD,CAAC,MAAQ,SAAS,UAAY,EAAE,CAChC,CAAC,MAAQ,SAAS,WAAa,MAC/B,KAAK,YAAY,KAAM,WAAY,KAAK,CAG1C,gBAAgB,CAAC,YAAa,iBAAkB,eAAgB,iBAAkB,aAAc,qBAAsB,aAAa,CAAE,qBAAqB,CAE1J,qBAAqB,UAAU,cAAgB,UAAY,EACpD,MAAQ,SAAS,KAAK,aAAe,EAAE,MAAQ,SAAS,WAAW,YAAY,QAClF,CAAC,MAAQ,SAAS,cAAgB,SAAS,OAAO,GAItD,qBAAqB,UAAU,kBAAoB,SAAU,UAAW,CAMtE,IALA,IAAIA,IAAI,EACJ,IAAM,UAAU,OAChB,aAAe,EAAE,CACjB,mBAAqB,GAElBA,IAAI,KACL,UAAUA,OAAO,MAA2B,UAAUA,OAAO,KAC/D,aAAa,KAAK,mBAAmB,CACrC,mBAAqB,IAErB,oBAAsB,UAAUA,KAGlC,KAAK,EAIP,OADA,aAAa,KAAK,mBAAmB,CAC9B,cAGT,qBAAqB,UAAU,aAAe,UAAY,CACxD,IAAIA,IACA,IACA,cAAgB,MAAQ,SAAS,aAAa,YAClD,CAAC,MAAQ,SAAS,gBAAkB,iBAAiB,aAAe,aAAa,EAAE,OAAS,EAAE,CAE1F,aAAa,IACd,MAAQ,SAAS,aAAa,aAAa,OAAQ,KAAK,WAAW,aAAa,GAAG,CAAC,EAEpF,MAAQ,SAAS,aAAa,aAAa,OAAQ,gBAAgB,CAGlE,aAAa,MACd,MAAQ,SAAS,aAAa,aAAa,SAAU,KAAK,WAAW,aAAa,GAAG,CAAC,EAEtF,MAAQ,SAAS,aAAa,aAAa,eAAgB,aAAa,GAAG,GAG7E,MAAQ,SAAS,aAAa,aAAa,YAAa,aAAa,UAAU,CAEhF,IAAI,UAAY,MAAQ,SAAS,WAAW,YAAY,cAAc,aAAa,EAAE,CAErF,GAAI,SAAS,QACV,MAAQ,SAAS,aAAa,aAAa,QAAS,SAAS,OAAO,KAChE,EACJ,MAAQ,SAAS,aAAa,aAAa,cAAe,SAAS,QAAQ,CAE5E,IAAI,QAAU,aAAa,QACvB,OAAS,aAAa,QAEzB,MAAQ,SAAS,aAAa,aAAa,aAAc,OAAO,EAEhE,MAAQ,SAAS,aAAa,aAAa,cAAe,QAAQ,EAGpE,MAAQ,SAAS,aAAa,aAAa,aAAc,aAAa,EAAE,CAEzE,IAAI,QAAU,aAAa,GAAK,EAAE,CAC9B,WAAa,CAAC,EAAE,MAAQ,SAAS,WAAW,YAAY,MAC5D,IAAM,QAAQ,OACd,IAAI,MACA,cAAgB,MAAQ,SAAS,QACjC,OACA,SAAW,GACX,aAAe,MAAQ,SAAS,KAAK,YACrC,KAAO,EACP,KAAO,EACP,UAAY,GACZ,eAAiB,aAAa,GAAK,KAAQ,aAAa,UAE5D,GAAI,aAAe,CAAC,YAAc,CAAC,aAAa,GAAI,CAClD,IAAI,UAAY,MAAQ,SAAS,cAC7B,QAAU,QAEd,OAAQ,aAAa,EAArB,CACE,IAAK,GACH,QAAU,MACV,MAEF,IAAK,GACH,QAAU,SACV,MAEF,QACE,QAAU,QACV,MAGJ,SAAS,aAAa,cAAe,QAAQ,CAC7C,SAAS,aAAa,iBAAkB,eAAe,CACvD,IAAI,YAAc,KAAK,kBAAkB,aAAa,UAAU,CAIhE,IAHA,IAAM,YAAY,OAClB,KAAO,aAAa,GAAK,aAAa,GAAG,GAAK,aAAa,OAAS,EAE/D,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,OAAS,MAAQ,SAAS,UAAUA,MAAM,SAAS,QAAQ,CAC3D,MAAM,YAAc,YAAYA,KAChC,MAAM,aAAa,IAAK,EAAE,CAC1B,MAAM,aAAa,IAAK,KAAK,CAC7B,MAAM,MAAM,QAAU,UACtB,SAAS,YAAY,MAAM,CAC3B,CAAC,MAAQ,SAAS,UAAUA,KAAK,MACjC,MAAQ,aAAa,iBAGtB,MAAQ,SAAS,aAAa,YAAY,SAAS,KAC/C,CACL,IAAI,mBAAqB,MAAQ,SAAS,UAAU,OAChD,UACA,SAEJ,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,GACpB,CAAC,YAAc,CAAC,aAAeA,MAAM,KACvC,MAAQ,kBAAoBA,KAAK,MAAQ,SAAS,UAAUA,KAAK,SAAS,WAAa,OAAS,OAAO,CAEnG,mBAAqBA,MACvB,MAAM,aAAa,iBAAkB,OAAO,CAC5C,MAAM,aAAa,kBAAmB,QAAQ,CAC9C,MAAM,aAAa,oBAAqB,IAAI,CAC5C,CAAC,MAAQ,SAAS,UAAUA,KAAK,OAEhC,MAAQ,SAAS,aAAa,YAAY,MAAM,EAGnD,MAAM,MAAM,QAAU,WAGxB,aAAa,OAAO,CACpB,aAAa,MAAM,aAAa,UAAY,IAAK,aAAa,UAAY,IAAI,CAE1E,cACE,QAAQA,KAAG,IACb,KAAO,CAAC,eACR,MAAQ,aAAa,QACrB,MAAQ,UAAY,EAAI,EACxB,UAAY,IAGd,KAAK,4BAA4B,aAAc,aAAc,QAAQA,KAAG,KAAM,KAAM,KAAK,CACzF,MAAQ,QAAQA,KAAG,GAAK,EAExB,MAAQ,gBAGN,YACF,UAAY,MAAQ,SAAS,WAAW,YAAY,YAAY,aAAa,UAAUA,KAAI,SAAS,QAAS,MAAQ,SAAS,WAAW,YAAY,cAAc,aAAa,EAAE,CAAC,QAAQ,CAC3L,UAAY,UAAY,SAAS,MAAQ,EAAE,CAC3C,OAAS,UAAU,OAAS,UAAU,OAAO,GAAG,GAAK,EAAE,CAElD,YAGH,UAAY,KAAK,gBAAgB,aAAc,OAAO,CAFtD,MAAM,aAAa,IAAK,KAAK,gBAAgB,aAAc,OAAO,CAAC,GAKjE,aACF,MAAM,aAAa,YAAa,aAAe,aAAa,MAAM,IAAM,IAAM,aAAa,MAAM,IAAM,IAAI,CAG7G,MAAM,YAAc,QAAQA,KAAG,IAC/B,MAAM,eAAe,uCAAwC,YAAa,WAAW,EAKrF,aAAe,OACjB,MAAM,aAAa,IAAK,SAAS,CAIrC,KAAOA,KAAK,MAAQ,SAAS,UAAU,QACrC,CAAC,MAAQ,SAAS,UAAUA,KAAG,MAAM,QAAU,OAC/C,KAAK,EAGP,CAAC,MAAQ,SAAS,aAAe,IAGnC,qBAAqB,UAAU,iBAAmB,UAAY,CAI5D,GAHA,KAAK,cAAc,MAAQ,SAAS,KAAK,eAAiB,MAAQ,SAAS,KAAK,GAAG,CACnF,KAAK,oBAAoB,EAEpB,MAAQ,SAAS,aAAc,CAClC,CAAC,MAAQ,SAAS,aAAe,GAEjC,IAAI,SAAW,MAAQ,SAAS,aAAa,SAAS,CAEtD,CAAC,MAAQ,SAAS,KAAO,CACvB,IAAK,QAAQ,EACb,KAAM,QAAQ,EACd,MAAO,QAAQ,MACf,OAAQ,QAAQ,OACjB,CAGH,OAAQ,MAAQ,SAAS,MAG3B,qBAAqB,UAAU,mBAAqB,UAAY,CAC9D,GAAI,EAAE,MAAQ,SAAS,KAAK,eACzB,MAAQ,SAAS,aAAa,aAAa,MAAQ,SAAS,aAAa,aAAc,MAAQ,SAAS,mBAAmB,EAEvH,MAAQ,SAAS,qBAAuB,MAAQ,SAAS,aAAa,oBAAoB,CAC7F,CAAC,MAAQ,SAAS,aAAe,GACjC,IAAIA,IACA,IACA,iBAAmB,MAAQ,SAAS,aAAa,gBACjD,SAAW,MAAQ,SAAS,aAAa,YAAY,EACzD,IAAM,QAAQ,OACd,IAAI,eACA,SAEJ,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EACnB,QAAQA,KAAG,IACd,eAAiB,gBAAgBA,KACjC,UAAY,MAAQ,SAAS,UAAUA,KAEnC,eAAe,KAAK,GACtB,SAAS,aAAa,YAAa,eAAe,EAAE,CAGlD,eAAe,KAAK,GACtB,SAAS,aAAa,UAAW,eAAe,EAAE,CAGhD,eAAe,KAAK,IACtB,SAAS,aAAa,eAAgB,eAAe,GAAG,CAGtD,eAAe,KAAK,IACtB,SAAS,aAAa,SAAU,eAAe,GAAG,CAGhD,eAAe,KAAK,IACtB,SAAS,aAAa,OAAQ,eAAe,GAAG,IAa5D,SAAS,gBAAgB,KAAM,WAAY,KAAM,CAE/C,CAAC,MAAQ,SAAS,OAAS,EAAE,CAE7B,CAAC,MAAQ,SAAS,WAAa,KAAK,OAEpC,CAAC,MAAQ,SAAS,WAAa,EAAE,CAEjC,CAAC,MAAQ,SAAS,eAAiB,EAAE,CAErC,CAAC,MAAQ,SAAS,UAAY,EAAE,CAEhC,CAAC,MAAQ,SAAS,kBAAoB,EAAE,CAExC,CAAC,MAAQ,SAAS,iBAAmB,EAAE,CACvC,KAAK,YAAY,KAAM,WAAY,KAAK,CAGxC,CAAC,MAAQ,SAAS,aAAe,EAAE,CAGrC,gBAAgB,CAAC,YAAa,iBAAkB,eAAgB,cAAe,iBAAkB,aAAc,qBAAqB,CAAE,gBAAgB,CAEtJ,gBAAgB,UAAU,qBAAuB,UAAY,GAE7D,gBAAgB,UAAU,eAAiB,IAAI,OAE/C,gBAAgB,UAAU,yBAA2B,UAAY,GAEjE,gBAAgB,UAAU,cAAgB,UAAY,CACpD,KAAK,cAAc,MAAQ,SAAS,YAAa,MAAQ,SAAS,WAAY,MAAQ,SAAS,cAAe,MAAQ,SAAS,aAAc,EAAG,EAAE,CAAE,GAAK,CACzJ,KAAK,oBAAoB,EAO3B,gBAAgB,UAAU,mBAAqB,UAAY,CACzD,IAAIA,IACA,KAAO,MAAQ,SAAS,OAAO,OAC/B,MACA,EACA,MAAQ,MAAQ,SAAS,WAAW,OACpC,MACA,WAAa,EAAE,CACf,YAAc,GAElB,IAAK,EAAI,EAAG,EAAI,KAAM,GAAK,EAAG,CAK5B,IAJA,OAAS,MAAQ,SAAS,WAAW,GACrC,YAAc,GACd,WAAW,OAAS,EAEf,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,OAAS,MAAQ,SAAS,OAAOA,KAE7B,MAAM,OAAO,QAAQ,MAAM,GAAK,KAClC,WAAW,KAAK,MAAM,CACtB,YAAc,MAAM,aAAe,aAInC,WAAW,OAAS,GAAK,aAC3B,KAAK,oBAAoB,WAAW,GAK1C,gBAAgB,UAAU,oBAAsB,SAAU,OAAQ,CAChE,IAAIA,IACA,IAAM,OAAO,OAEjB,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,OAAOA,KAAG,eAAe,EAI7B,gBAAgB,UAAU,mBAAqB,SAAU,KAAM,MAAO,CAEpE,IAAI,YACA,QAAU,IAAI,aAAa,KAAM,MAAM,CACvC,YAAc,QAAQ,MAkD1B,OAhDI,KAAK,KAAO,KACd,YAAc,IAAI,mBAAmB,MAAQ,QAAS,KAAM,QAAQ,CAC3D,KAAK,KAAO,KACrB,YAAc,IAAI,iBAAiB,MAAQ,QAAS,KAAM,QAAQ,EACzD,KAAK,KAAO,MAAQ,KAAK,KAAO,QAEzC,YAAc,IADY,KAAK,KAAO,KAAO,yBAA2B,4BAClC,MAAQ,QAAS,KAAM,QAAQ,EAEpE,MAAQ,SAAS,WAAW,KAAK,YAAY,YAAY,GAAG,CAEzD,YAAY,UACb,MAAQ,SAAS,WAAW,KAAK,YAAY,YAAY,GAAG,EAE5D,MAAQ,SAAS,WAAW,KAAK,YAAY,YAAY,GAAG,CAE7D,YAAY,aAAa,OAAQ,OAAS,aAAe,IAAM,YAAY,OAAS,IAAI,IAIxF,KAAK,KAAO,MAAQ,KAAK,KAAO,QAClC,YAAY,aAAa,kBAAmB,MAAQ,SAAS,OAAO,KAAK,KAAO,QAAQ,CACxF,YAAY,aAAa,mBAAoB,MAAQ,SAAS,OAAO,KAAK,KAAO,QAAQ,CACzF,YAAY,aAAa,eAAgB,IAAI,CAEzC,KAAK,KAAO,GACd,YAAY,aAAa,oBAAqB,KAAK,GAAG,EAItD,KAAK,IAAM,GACb,YAAY,aAAa,YAAa,UAAU,CAG9C,KAAK,IACP,YAAY,aAAa,KAAM,KAAK,GAAG,CAGrC,KAAK,IACP,YAAY,aAAa,QAAS,KAAK,GAAG,CAGxC,KAAK,KACP,YAAY,MAAM,kBAAoB,aAAa,KAAK,GAAG,GAG5D,MAAQ,SAAS,WAAW,KAAK,QAAQ,CAE1C,KAAK,sBAAsB,KAAM,YAAY,CACtC,aAGT,gBAAgB,UAAU,mBAAqB,SAAU,KAAM,CAC7D,IAAI,YAAc,IAAI,eActB,OAZI,KAAK,IACP,YAAY,GAAG,aAAa,KAAM,KAAK,GAAG,CAGxC,KAAK,IACP,YAAY,GAAG,aAAa,QAAS,KAAK,GAAG,CAG3C,KAAK,KACP,YAAY,GAAG,MAAM,kBAAoB,aAAa,KAAK,GAAG,EAGzD,aAGT,gBAAgB,UAAU,uBAAyB,SAAU,KAAM,UAAW,CAC5E,IAAI,kBAAoB,yBAAyB,qBAAqB,MAAQ,QAAS,KAAM,MAAQ,QAAQ,CACzG,YAAc,IAAI,iBAAiB,kBAAmB,kBAAkB,EAAG,UAAU,CAEzF,OADA,KAAK,sBAAsB,KAAM,YAAY,CACtC,aAGT,gBAAgB,UAAU,mBAAqB,SAAU,KAAM,gBAAiB,MAAO,CACrF,IAAI,GAAK,EAEL,KAAK,KAAO,KACd,GAAK,EACI,KAAK,KAAO,KACrB,GAAK,EACI,KAAK,KAAO,OACrB,GAAK,GAGP,IAAI,cAAgB,qBAAqB,aAAa,MAAQ,QAAS,KAAM,GAAI,MAAQ,QAAQ,CAC7F,YAAc,IAAI,aAAa,gBAAiB,MAAO,cAAc,CAMzE,OAJC,MAAQ,SAAS,OAAO,KAAK,YAAY,CAE1C,KAAK,oBAAoB,YAAY,CACrC,KAAK,sBAAsB,KAAM,YAAY,CACtC,aAGT,gBAAgB,UAAU,sBAAwB,SAAU,KAAM,QAAS,CAIzE,IAHA,IAAIA,IAAI,EACJ,KAAO,MAAQ,SAAS,iBAAiB,OAEtCA,IAAI,KAAK,CACd,IAAK,MAAQ,SAAS,iBAAiBA,KAAG,UAAY,QACpD,OAGF,KAAK,GAGN,MAAQ,SAAS,iBAAiB,KAAK,CACtC,GAAI,oBAAoB,qBAAqB,KAAK,CACzC,QACH,KACP,CAAC,EAGJ,gBAAgB,UAAU,iBAAmB,SAAU,YAAa,CAClE,IAAI,IAAM,YAAY,OAClB,EACA,MAAQ,MAAQ,SAAS,WAAW,OAExC,IAAK,EAAI,EAAG,EAAI,KAAM,GAAK,GACnB,MAAQ,SAAS,WAAW,GAAG,QACnC,IAAI,MAAM,MAAQ,SAAS,WAAW,GAAG,EAK/C,gBAAgB,UAAU,aAAe,UAAY,CACnD,CAAC,MAAQ,SAAS,cAAgB,GAClC,IAAIA,IACA,KAAO,MAAQ,SAAS,UAAU,OAEtC,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,CAAC,MAAQ,SAAS,aAAaA,MAAM,MAAQ,SAAS,UAAUA,KAOlE,IAJA,KAAK,cAAc,MAAQ,SAAS,YAAa,MAAQ,SAAS,WAAY,MAAQ,SAAS,cAAe,MAAQ,SAAS,aAAc,EAAG,EAAE,CAAE,GAAK,CACzJ,KAAK,oBAAoB,CACzB,KAAO,MAAQ,SAAS,kBAAkB,OAErC,IAAI,EAAGA,IAAI,IAAK,KAAK,GACvB,MAAQ,SAAS,kBAAkBA,KAAG,UAAU,CAGnD,KAAK,iBAAiB,EAGxB,gBAAgB,UAAU,aAAe,SAAU,IAAK,UAAW,aAAc,UAAW,MAAO,aAAc,OAAQ,CACvH,IAAI,gBAAkB,EAAE,CAAC,OAAO,aAAa,CACzCA,IACA,IAAM,IAAI,OAAS,EACnB,EACA,KACA,UAAY,EAAE,CACd,aAAe,EAAE,CACjB,iBACA,SACA,aAEJ,IAAK,IAAI,IAAKA,KAAK,EAAG,MAAQ,CAS5B,GARA,aAAe,KAAK,uBAAuB,IAAIA,KAAG,CAE7C,aAGH,UAAUA,KAAK,aAAa,aAAe,GAF3C,IAAIA,KAAG,QAAU,OAKf,IAAIA,KAAG,KAAO,MAAQ,IAAIA,KAAG,KAAO,MAAQ,IAAIA,KAAG,KAAO,MAAQ,IAAIA,KAAG,KAAO,KAC7E,aAGH,UAAUA,KAAG,MAAM,OAAS,GAF5B,UAAUA,KAAK,KAAK,mBAAmB,IAAIA,KAAI,MAAM,CAKnD,IAAIA,KAAG,SACT,UAAU,YAAY,UAAUA,KAAG,MAAM,MAAM,CAGjD,UAAU,KAAK,UAAUA,KAAG,MAAM,SACzB,IAAIA,KAAG,KAAO,KAAM,CAC7B,GAAI,CAAC,aACH,UAAUA,KAAK,KAAK,mBAAmB,IAAIA,KAAG,MAI9C,IAFA,KAAO,UAAUA,KAAG,GAAG,OAElB,EAAI,EAAG,EAAI,KAAM,GAAK,EACzB,UAAUA,KAAG,aAAa,GAAK,UAAUA,KAAG,GAAG,GAInD,KAAK,aAAa,IAAIA,KAAG,GAAI,UAAUA,KAAG,GAAI,UAAUA,KAAG,aAAc,UAAUA,KAAG,GAAI,MAAQ,EAAG,gBAAiB,OAAO,CAEzH,IAAIA,KAAG,SACT,UAAU,YAAY,UAAUA,KAAG,GAAG,MAE/B,IAAIA,KAAG,KAAO,MAClB,eACH,UAAUA,KAAK,KAAK,uBAAuB,IAAIA,KAAI,UAAU,EAG/D,iBAAmB,UAAUA,KAAG,UAChC,gBAAgB,KAAK,iBAAiB,EAC7B,IAAIA,KAAG,KAAO,MAAQ,IAAIA,KAAG,KAAO,MAAQ,IAAIA,KAAG,KAAO,MAAQ,IAAIA,KAAG,KAAO,MACpF,eACH,UAAUA,KAAK,KAAK,mBAAmB,IAAIA,KAAI,gBAAiB,MAAM,EAGxE,KAAK,iBAAiB,UAAUA,KAAG,EAC1B,IAAIA,KAAG,KAAO,MAAQ,IAAIA,KAAG,KAAO,MAAQ,IAAIA,KAAG,KAAO,MAAQ,IAAIA,KAAG,KAAO,MACpF,cAOH,SAAW,UAAUA,KACrB,SAAS,OAAS,KAPlB,SAAW,eAAe,YAAY,IAAIA,KAAG,GAAG,CAChD,SAAS,KAAK,MAAQ,QAAS,IAAIA,KAAG,CACtC,UAAUA,KAAK,UAEd,MAAQ,SAAS,eAAe,KAAK,SAAS,EAMjD,aAAa,KAAK,SAAS,EAClB,IAAIA,KAAG,KAAO,OAClB,cASH,SAAW,UAAUA,KACrB,SAAS,OAAS,KATlB,SAAW,eAAe,YAAY,IAAIA,KAAG,GAAG,CAChD,UAAUA,KAAK,SACf,SAAS,KAAK,MAAQ,QAAS,IAAKA,IAAG,UAAU,EAEhD,MAAQ,SAAS,eAAe,KAAK,SAAS,CAE/C,OAAS,IAMX,aAAa,KAAK,SAAS,EAG7B,KAAK,oBAAoB,IAAIA,KAAIA,IAAI,EAAE,CAKzC,IAFA,IAAM,UAAU,OAEX,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,UAAUA,KAAG,OAAS,GAKxB,IAFA,IAAM,aAAa,OAEd,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,aAAaA,KAAG,OAAS,IAI7B,gBAAgB,UAAU,mBAAqB,UAAY,CACzD,KAAK,iBAAiB,CACtB,IAAIA,IACA,KAAO,MAAQ,SAAS,WAAW,OAEvC,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,GACvB,MAAQ,SAAS,WAAWA,KAAG,OAAO,CAKzC,IAFA,KAAK,aAAa,CAEb,IAAI,EAAGA,IAAI,IAAK,KAAK,IACnB,MAAQ,SAAS,WAAWA,KAAG,OAAS,MAAQ,SAAS,kBACvD,MAAQ,SAAS,WAAWA,KAAG,UACjC,MAAQ,SAAS,WAAWA,KAAG,OAAO,aAAa,KAAM,MAAQ,SAAS,WAAWA,KAAG,EAAE,CAG3F,CAAC,MAAQ,SAAS,WAAWA,KAAG,EAAI,QAAU,MAAQ,SAAS,WAAWA,KAAG,IAG9E,MAAQ,SAAS,WAAWA,KAAG,MAAM,aAAa,KAAM,MAAQ,SAAS,WAAWA,KAAG,GAAK,OAAO,GAK1G,gBAAgB,UAAU,YAAc,UAAY,CAClD,IAAIA,IACA,KAAO,MAAQ,SAAS,iBAAiB,OACzC,gBAEJ,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,iBAAmB,MAAQ,SAAS,iBAAiBA,OAE/C,MAAQ,SAAS,eAAiB,gBAAgB,QAAQ,cAAgB,gBAAgB,OAAS,IACvG,gBAAgB,GAAG,gBAAgB,KAAM,gBAAgB,SAAU,MAAQ,SAAS,cAAc,EAKxG,gBAAgB,UAAU,QAAU,UAAY,CAC9C,KAAK,oBAAoB,CACzB,CAAC,MAAQ,SAAS,WAAa,KAC/B,CAAC,MAAQ,SAAS,UAAY,MAKhC,SAAS,cAAc,OAAQ,cAAe,CAC5C,CAAC,MAAQ,SAAS,cAAgB,cAClC,IAAI,cAAgB,SAAS,gBAAgB,CAc7C,GAbA,cAAc,aAAa,OAAQ,SAAS,CAC5C,cAAc,aAAa,8BAA+B,YAAY,CACtE,cAAc,aAAa,SAAU,uFAAuF,CAC5H,cAAc,aAAa,SAAU,KAAK,CAC1C,OAAO,YAAY,cAAc,CACjC,cAAgB,SAAS,gBAAgB,CACzC,cAAc,aAAa,OAAQ,SAAS,CAC5C,cAAc,aAAa,8BAA+B,OAAO,CACjE,cAAc,aAAa,SAAU,0CAA0C,CAC/E,cAAc,aAAa,SAAU,KAAK,CAC1C,OAAO,YAAY,cAAc,CACjC,CAAC,MAAQ,SAAS,aAAe,cAE7B,cAAc,eAAe,GAAG,EAAE,IAAM,KAAO,cAAc,eAAe,GAAG,EAAE,EAAG,CACtF,IAAI,QAAU,SAAS,UAAU,CACjC,OAAO,YAAY,QAAQ,CAC3B,IAAI,YACU,SAAS,cAAc,CACrC,YAAY,aAAa,KAAM,gBAAgB,CAC/C,QAAQ,YAAY,YAAY,CAChC,YAAc,SAAS,cAAc,CACrC,YAAY,aAAa,KAAM,KAAK,CACpC,QAAQ,YAAY,YAAY,EAIpC,cAAc,UAAU,YAAc,SAAU,YAAa,CAC3D,GAAI,cAAgB,MAAQ,SAAS,cAAc,KAAM,CACvD,IAAI,YAAc,MAAQ,SAAS,cAAc,eAAe,GAAG,EAAE,EACjE,YAAc,MAAQ,SAAS,cAAc,eAAe,GAAG,EAAE,EACjE,SAAW,MAAQ,SAAS,cAAc,eAAe,GAAG,EAAE,EAAI,KAErE,MAAQ,SAAS,aAAa,aAAa,SAAU,WAAW,GAAK,WAAW,GAAK,UAAY,WAAW,GAAK,KAAO,WAAW,GAAK,WAAW,IAAM,UAAY,WAAW,GAAK,KAAO,WAAW,GAAK,WAAW,IAAM,UAAY,WAAW,GAAK,UAAY,QAAU,KAAK,GAMzR,SAAS,cAAc,OAAQ,cAAe,CAC5C,CAAC,MAAQ,SAAS,cAAgB,cAClC,IAAI,cAAgB,SAAS,gBAAgB,CAC7C,cAAc,aAAa,OAAQ,SAAS,CAC5C,cAAc,aAAa,8BAA+B,OAAO,CACjE,cAAc,aAAa,SAAU,0CAA0C,CAC/E,OAAO,YAAY,cAAc,CACjC,CAAC,MAAQ,SAAS,aAAe,cAGnC,cAAc,UAAU,YAAc,SAAU,YAAa,CAC3D,GAAI,cAAgB,MAAQ,SAAS,cAAc,KAAM,CACvD,IAAI,OAAS,MAAQ,SAAS,cAAc,eAAe,GAAG,EAAE,EAC5D,SAAW,MAAQ,SAAS,cAAc,eAAe,GAAG,EAAE,GAEjE,MAAQ,SAAS,aAAa,aAAa,SAAU,WAAa,MAAM,GAAK,YAAc,MAAM,GAAK,YAAc,MAAM,GAAK,UAAY,QAAU,KAAK,GAM/J,SAAS,sBAAsB,OAAQ,cAAe,CAEpD,OAAO,aAAa,IAAK,QAAQ,CACjC,OAAO,aAAa,IAAK,QAAQ,CACjC,OAAO,aAAa,QAAS,OAAO,CACpC,OAAO,aAAa,SAAU,OAAO,CACrC,CAAC,MAAQ,SAAS,cAAgB,cAClC,IAAI,eAAiB,SAAS,iBAAiB,CAC/C,OAAO,YAAY,eAAe,CAClC,CAAC,MAAQ,SAAS,eAAiB,eAGrC,sBAAsB,UAAU,YAAc,SAAU,YAAa,CACnE,GAAI,cAAgB,MAAQ,SAAS,cAAc,KAAM,CAGvD,IAAI,OAAS,MAAQ,SAAS,cAAc,eAAe,GAAG,EAAE,EADvC,GAQrB,YAAc,MAAQ,SAAS,cAAc,eAAe,GAAG,EAAE,EACjE,OAAS,YAAc,EAAI,EAAI,MAE/B,OAAS,YAAc,EAAI,EAAI,OAElC,MAAQ,SAAS,eAAe,aAAa,eAAgB,OAAS,IAAM,OAAO,CAMpF,IAAI,UAAY,MAAQ,SAAS,cAAc,eAAe,GAAG,EAAE,GAAK,EAAI,OAAS,aAEpF,MAAQ,SAAS,eAAe,aAAa,WAAY,SAAS,GAMvE,SAAS,gBAAgB,KAAM,cAAe,CAC5C,CAAC,MAAQ,SAAS,YAAc,GAChC,CAAC,MAAQ,SAAS,cAAgB,cAClC,CAAC,MAAQ,SAAS,KAAO,KACzB,CAAC,MAAQ,SAAS,MAAQ,EAAE,CAG9B,gBAAgB,UAAU,WAAa,UAAY,CACjD,IAAI,cAAgB,MAAQ,SAAS,KAAK,aAAa,WAAa,MAAQ,SAAS,KAAK,aAAa,WACnG,KACA,UACAA,IACA,IAeJ,KAbK,MAAQ,SAAS,cAAc,eAAe,GAAG,EAAE,IAAM,GAC5D,KAAO,MAAQ,SAAS,KAAK,YAAY,gBAAgB,OACzD,IAAI,IAEJ,KAAK,MAAQ,SAAS,cAAc,eAAe,GAAG,EAAE,EAAI,EAC5D,IAAMA,IAAI,GAGZ,UAAY,SAAS,IAAI,CACzB,UAAU,aAAa,OAAQ,OAAO,CACtC,UAAU,aAAa,iBAAkB,QAAQ,CACjD,UAAU,aAAa,oBAAqB,EAAE,CAEtCA,IAAI,IAAK,KAAK,EACpB,KAAO,SAAS,OAAO,CACvB,UAAU,YAAY,KAAK,EAE1B,MAAQ,SAAS,MAAM,KAAK,CAC3B,EAAG,KACH,EAAGA,IACJ,CAAC,CAGJ,IAAK,MAAQ,SAAS,cAAc,eAAe,IAAI,EAAE,IAAM,EAAG,CAChE,IAAI,KAAO,SAAS,OAAO,CACvBN,KAAK,iBAAiB,CAC1B,KAAK,aAAa,KAAMA,KAAG,CAC3B,KAAK,aAAa,YAAa,QAAQ,CACvC,KAAK,YAAY,UAAU,EAE1B,MAAQ,SAAS,KAAK,WAAW,KAAK,YAAY,KAAK,CAExD,IAAI,EAAI,SAAS,IAAI,CAGrB,IAFA,EAAE,aAAa,OAAQ,OAAS,aAAe,IAAMA,KAAK,IAAI,CAEvD,aAAa,IAClB,EAAE,YAAY,aAAa,GAAG,EAG/B,MAAQ,SAAS,KAAK,aAAa,YAAY,EAAE,CAElD,CAAC,MAAQ,SAAS,OAAS,KAC3B,UAAU,aAAa,SAAU,OAAO,UAC9B,MAAQ,SAAS,cAAc,eAAe,IAAI,EAAE,IAAM,IAAM,MAAQ,SAAS,cAAc,eAAe,IAAI,EAAE,IAAM,EAAG,CACvI,IAAK,MAAQ,SAAS,cAAc,eAAe,IAAI,EAAE,IAAM,EAG7D,IAFA,cAAgB,MAAQ,SAAS,KAAK,aAAa,WAAa,MAAQ,SAAS,KAAK,aAAa,WAE5F,aAAa,SACjB,MAAQ,SAAS,KAAK,aAAa,YAAY,aAAa,GAAG,EAInE,MAAQ,SAAS,KAAK,aAAa,YAAY,UAAU,EAEzD,MAAQ,SAAS,KAAK,aAAa,gBAAgB,OAAO,CAE3D,UAAU,aAAa,SAAU,OAAO,CAG1C,CAAC,MAAQ,SAAS,YAAc,GAChC,CAAC,MAAQ,SAAS,WAAa,WAGjC,gBAAgB,UAAU,YAAc,SAAU,YAAa,EACvD,MAAQ,SAAS,aACrB,KAAK,YAAY,CAGnB,IAAIM,IACA,KAAO,MAAQ,SAAS,MAAM,OAC9B,KACA,KAEJ,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,IAAK,MAAQ,SAAS,MAAMA,KAAG,IAAM,KACnC,MAAQ,MAAQ,SAAS,KAAK,YAAY,UAAU,MAAQ,SAAS,MAAMA,KAAG,GAC9E,MAAQ,MAAQ,SAAS,MAAMA,KAAG,GAE9B,cAAgB,MAAQ,SAAS,cAAc,MAAQ,KAAK,KAAK,OACnE,KAAK,aAAa,IAAK,KAAK,SAAS,CAGnC,cAAgB,MAAQ,SAAS,cAAc,eAAe,GAAG,EAAE,OAAS,MAAQ,SAAS,cAAc,eAAe,GAAG,EAAE,OAAS,MAAQ,SAAS,cAAc,eAAe,GAAG,EAAE,OAAS,MAAQ,SAAS,cAAc,eAAe,GAAG,EAAE,MAAQ,KAAK,KAAK,MAAM,CACjR,IAAI,eAEJ,IAAK,MAAQ,SAAS,cAAc,eAAe,GAAG,EAAE,IAAM,IAAM,MAAQ,SAAS,cAAc,eAAe,GAAG,EAAE,IAAM,IAAK,CAChI,IAAI,EAAI,KAAK,KAAK,MAAQ,SAAS,cAAc,eAAe,GAAG,EAAE,GAAI,MAAQ,SAAS,cAAc,eAAe,GAAG,EAAE,EAAE,CAAG,IAC7H,EAAI,KAAK,KAAK,MAAQ,SAAS,cAAc,eAAe,GAAG,EAAE,GAAI,MAAQ,SAAS,cAAc,eAAe,GAAG,EAAE,EAAE,CAAG,IAC7HL,IAAI,KAAK,gBAAgB,CAC7B,eAAiB,SAAWA,IAAI,EAAI,IACpC,IAAI,WAAaA,KAAK,EAAI,GACtB,QAAU,GAAK,MAAQ,SAAS,cAAc,eAAe,GAAG,EAAE,EAAI,GAAK,MAAQ,SAAS,cAAc,eAAe,GAAG,EAAE,EAAI,IAClI,MAAQ,KAAK,MAAM,WAAa,QAAQ,CACxC,EAEJ,IAAK,EAAI,EAAG,EAAI,MAAO,GAAK,EAC1B,gBAAkB,MAAQ,MAAQ,SAAS,cAAc,eAAe,GAAG,EAAE,EAAI,GAAK,MAAQ,SAAS,cAAc,eAAe,GAAG,EAAE,EAAI,IAAO,IAGtJ,gBAAkB,KAAOA,IAAI,GAAK,YAElC,eAAiB,MAAQ,MAAQ,SAAS,cAAc,eAAe,GAAG,EAAE,EAAI,GAAK,MAAQ,SAAS,cAAc,eAAe,GAAG,EAAE,EAAI,IAG9I,KAAK,aAAa,mBAAoB,eAAe,CAa3D,IARI,cAAgB,MAAQ,SAAS,cAAc,eAAe,GAAG,EAAE,QACpE,MAAQ,SAAS,WAAW,aAAa,gBAAiB,MAAQ,SAAS,cAAc,eAAe,GAAG,EAAE,EAAI,EAAE,EAGlH,cAAgB,MAAQ,SAAS,cAAc,eAAe,GAAG,EAAE,QACpE,MAAQ,SAAS,WAAW,aAAa,WAAY,MAAQ,SAAS,cAAc,eAAe,GAAG,EAAE,EAAE,GAGxG,MAAQ,SAAS,cAAc,eAAe,IAAI,EAAE,IAAM,IAAM,MAAQ,SAAS,cAAc,eAAe,IAAI,EAAE,IAAM,KACzH,cAAgB,MAAQ,SAAS,cAAc,eAAe,GAAG,EAAE,MAAM,CAC3E,IAAI,OAAS,MAAQ,SAAS,cAAc,eAAe,GAAG,EAAE,GAE/D,MAAQ,SAAS,WAAW,aAAa,SAAU,OAAS,QAAQ,MAAM,GAAK,IAAI,CAAG,IAAM,QAAQ,MAAM,GAAK,IAAI,CAAG,IAAM,QAAQ,MAAM,GAAK,IAAI,CAAG,IAAI,GAOjK,SAAS,iBAAiB,OAAQ,cAAe,CAC/C,CAAC,MAAQ,SAAS,cAAgB,cAClC,IAAI,cAAgB,SAAS,gBAAgB,CAC7C,cAAc,aAAa,OAAQ,SAAS,CAC5C,cAAc,aAAa,8BAA+B,YAAY,CACtE,cAAc,aAAa,SAAU,uFAAuF,CAC5H,cAAc,aAAa,SAAU,KAAK,CAC1C,OAAO,YAAY,cAAc,CACjC,IAAI,oBAAsB,SAAS,sBAAsB,CACzD,oBAAoB,aAAa,8BAA+B,OAAO,CACvE,OAAO,YAAY,oBAAoB,CACvC,CAAC,MAAQ,SAAS,aAAe,oBACjC,IAAI,QAAU,SAAS,UAAU,CACjC,QAAQ,aAAa,OAAQ,QAAQ,CACrC,oBAAoB,YAAY,QAAQ,CACxC,CAAC,MAAQ,SAAS,QAAU,QAC5B,IAAI,QAAU,SAAS,UAAU,CACjC,QAAQ,aAAa,OAAQ,QAAQ,CACrC,oBAAoB,YAAY,QAAQ,CACxC,CAAC,MAAQ,SAAS,QAAU,QAC5B,IAAI,QAAU,SAAS,UAAU,CACjC,QAAQ,aAAa,OAAQ,QAAQ,CACrC,oBAAoB,YAAY,QAAQ,CACxC,CAAC,MAAQ,SAAS,QAAU,QAG9B,iBAAiB,UAAU,YAAc,SAAU,YAAa,CAC9D,GAAI,cAAgB,MAAQ,SAAS,cAAc,KAAM,CACvD,IAAI,QAAU,MAAQ,SAAS,cAAc,eAAe,GAAG,EAAE,EAC7D,QAAU,MAAQ,SAAS,cAAc,eAAe,GAAG,EAAE,EAC7D,QAAU,MAAQ,SAAS,cAAc,eAAe,GAAG,EAAE,EAC7D,OAAS,OAAO,GAAK,IAAM,OAAO,GAAK,IAAM,OAAO,GACpD,OAAS,OAAO,GAAK,IAAM,OAAO,GAAK,IAAM,OAAO,GACpD,OAAS,OAAO,GAAK,IAAM,OAAO,GAAK,IAAM,OAAO,IAEvD,MAAQ,SAAS,QAAQ,aAAa,cAAe,OAAO,EAE5D,MAAQ,SAAS,QAAQ,aAAa,cAAe,OAAO,EAE5D,MAAQ,SAAS,QAAQ,aAAa,cAAe,OAAO,GAQjE,SAAS,mBAAmB,OAAQ,cAAe,CACjD,CAAC,MAAQ,SAAS,cAAgB,cAClC,IAAI,gBAAkB,MAAQ,SAAS,cAAc,eACjD,oBAAsB,SAAS,sBAAsB,EAErD,eAAe,IAAI,EAAE,GAAK,eAAe,IAAI,EAAE,IAAM,GAAK,eAAe,IAAI,EAAE,GAAK,eAAe,IAAI,EAAE,IAAM,GAAK,eAAe,IAAI,EAAE,GAAK,eAAe,IAAI,EAAE,IAAM,GAAK,eAAe,IAAI,EAAE,GAAK,eAAe,IAAI,EAAE,IAAM,GAAK,eAAe,IAAI,EAAE,GAAK,eAAe,IAAI,EAAE,IAAM,KAC/R,CAAC,MAAQ,SAAS,QAAU,KAAK,aAAa,UAAW,oBAAoB,GAG3E,eAAe,IAAI,EAAE,GAAK,eAAe,IAAI,EAAE,IAAM,GAAK,eAAe,IAAI,EAAE,GAAK,eAAe,IAAI,EAAE,IAAM,GAAK,eAAe,IAAI,EAAE,GAAK,eAAe,IAAI,EAAE,IAAM,GAAK,eAAe,IAAI,EAAE,GAAK,eAAe,IAAI,EAAE,IAAM,GAAK,eAAe,IAAI,EAAE,GAAK,eAAe,IAAI,EAAE,IAAM,KAC/R,CAAC,MAAQ,SAAS,QAAU,KAAK,aAAa,UAAW,oBAAoB,GAG3E,eAAe,IAAI,EAAE,GAAK,eAAe,IAAI,EAAE,IAAM,GAAK,eAAe,IAAI,EAAE,GAAK,eAAe,IAAI,EAAE,IAAM,GAAK,eAAe,IAAI,EAAE,GAAK,eAAe,IAAI,EAAE,IAAM,GAAK,eAAe,IAAI,EAAE,GAAK,eAAe,IAAI,EAAE,IAAM,GAAK,eAAe,IAAI,EAAE,GAAK,eAAe,IAAI,EAAE,IAAM,KAC/R,CAAC,MAAQ,SAAS,QAAU,KAAK,aAAa,UAAW,oBAAoB,GAG3E,eAAe,IAAI,EAAE,GAAK,eAAe,IAAI,EAAE,IAAM,GAAK,eAAe,IAAI,EAAE,GAAK,eAAe,IAAI,EAAE,IAAM,GAAK,eAAe,IAAI,EAAE,GAAK,eAAe,IAAI,EAAE,IAAM,GAAK,eAAe,IAAI,EAAE,GAAK,eAAe,IAAI,EAAE,IAAM,GAAK,eAAe,IAAI,EAAE,GAAK,eAAe,IAAI,EAAE,IAAM,KAC/R,CAAC,MAAQ,SAAS,QAAU,KAAK,aAAa,UAAW,oBAAoB,IAG1E,MAAQ,SAAS,UAAY,MAAQ,SAAS,UAAY,MAAQ,SAAS,UAAY,MAAQ,SAAS,WAC3G,oBAAoB,aAAa,8BAA+B,OAAO,CACvE,OAAO,YAAY,oBAAoB,CACvC,oBAAsB,SAAS,sBAAsB,GAGnD,eAAe,GAAG,EAAE,GAAK,eAAe,GAAG,EAAE,IAAM,GAAK,eAAe,GAAG,EAAE,GAAK,eAAe,GAAG,EAAE,IAAM,GAAK,eAAe,GAAG,EAAE,GAAK,eAAe,GAAG,EAAE,IAAM,GAAK,eAAe,GAAG,EAAE,GAAK,eAAe,GAAG,EAAE,IAAM,GAAK,eAAe,GAAG,EAAE,GAAK,eAAe,GAAG,EAAE,IAAM,KACrR,oBAAoB,aAAa,8BAA+B,OAAO,CACvE,OAAO,YAAY,oBAAoB,CACvC,CAAC,MAAQ,SAAS,gBAAkB,KAAK,aAAa,UAAW,oBAAoB,CACrF,CAAC,MAAQ,SAAS,gBAAkB,KAAK,aAAa,UAAW,oBAAoB,CACrF,CAAC,MAAQ,SAAS,gBAAkB,KAAK,aAAa,UAAW,oBAAoB,EAIzF,mBAAmB,UAAU,aAAe,SAAU,KAAM,oBAAqB,CAC/E,IAAI,OAAS,SAAS,KAAK,CAG3B,OAFA,OAAO,aAAa,OAAQ,QAAQ,CACpC,oBAAoB,YAAY,OAAO,CAChC,QAGT,mBAAmB,UAAU,cAAgB,SAAU,WAAY,WAAY,MAAO,YAAa,YAAa,CAc9G,IAbA,IAAI,IAAM,EACN,SAAW,IACX,KACA,IAAM,KAAK,IAAI,WAAY,WAAW,CACtC,IAAM,KAAK,IAAI,WAAY,WAAW,CACtC,MAAQ,MAAM,KAAK,KAAM,CAC3B,OAAQ,SACT,CAAC,CACE,WACA,IAAM,EACN,YAAc,YAAc,YAC5B,WAAa,WAAa,WAEvB,KAAO,KACZ,KAAO,IAAM,IAEb,AAKE,WALE,MAAQ,IACG,WAAa,EAAI,YAAc,YACnC,MAAQ,IACJ,WAAa,EAAI,YAAc,YAE/B,YAAc,cAAwB,KAAO,YAAc,cAAY,EAAI,OAG1F,MAAM,KAAO,WACb,KAAO,EACP,KAAO,KAAO,SAAW,GAG3B,OAAO,MAAM,KAAK,IAAI,EAGxB,mBAAmB,UAAU,YAAc,SAAU,YAAa,CAChE,GAAI,cAAgB,MAAQ,SAAS,cAAc,KAAM,CACvD,IAAI,IACA,gBAAkB,MAAQ,SAAS,cAAc,gBAEhD,MAAQ,SAAS,kBAAoB,aAAe,eAAe,GAAG,EAAE,MAAQ,eAAe,GAAG,EAAE,MAAQ,eAAe,GAAG,EAAE,MAAQ,eAAe,GAAG,EAAE,MAAQ,eAAe,GAAG,EAAE,QAC3L,IAAM,KAAK,cAAc,eAAe,GAAG,EAAE,EAAG,eAAe,GAAG,EAAE,EAAG,eAAe,GAAG,EAAE,EAAG,eAAe,GAAG,EAAE,EAAG,eAAe,GAAG,EAAE,EAAE,EAE1I,MAAQ,SAAS,gBAAgB,aAAa,cAAe,IAAI,EAEjE,MAAQ,SAAS,gBAAgB,aAAa,cAAe,IAAI,EAEjE,MAAQ,SAAS,gBAAgB,aAAa,cAAe,IAAI,GAG/D,MAAQ,SAAS,UAAY,aAAe,eAAe,IAAI,EAAE,MAAQ,eAAe,IAAI,EAAE,MAAQ,eAAe,IAAI,EAAE,MAAQ,eAAe,IAAI,EAAE,MAAQ,eAAe,IAAI,EAAE,QACxL,IAAM,KAAK,cAAc,eAAe,IAAI,EAAE,EAAG,eAAe,IAAI,EAAE,EAAG,eAAe,IAAI,EAAE,EAAG,eAAe,IAAI,EAAE,EAAG,eAAe,IAAI,EAAE,EAAE,EAE/I,MAAQ,SAAS,QAAQ,aAAa,cAAe,IAAI,GAGvD,MAAQ,SAAS,UAAY,aAAe,eAAe,IAAI,EAAE,MAAQ,eAAe,IAAI,EAAE,MAAQ,eAAe,IAAI,EAAE,MAAQ,eAAe,IAAI,EAAE,MAAQ,eAAe,IAAI,EAAE,QACxL,IAAM,KAAK,cAAc,eAAe,IAAI,EAAE,EAAG,eAAe,IAAI,EAAE,EAAG,eAAe,IAAI,EAAE,EAAG,eAAe,IAAI,EAAE,EAAG,eAAe,IAAI,EAAE,EAAE,EAE/I,MAAQ,SAAS,QAAQ,aAAa,cAAe,IAAI,GAGvD,MAAQ,SAAS,UAAY,aAAe,eAAe,IAAI,EAAE,MAAQ,eAAe,IAAI,EAAE,MAAQ,eAAe,IAAI,EAAE,MAAQ,eAAe,IAAI,EAAE,MAAQ,eAAe,IAAI,EAAE,QACxL,IAAM,KAAK,cAAc,eAAe,IAAI,EAAE,EAAG,eAAe,IAAI,EAAE,EAAG,eAAe,IAAI,EAAE,EAAG,eAAe,IAAI,EAAE,EAAG,eAAe,IAAI,EAAE,EAAE,EAE/I,MAAQ,SAAS,QAAQ,aAAa,cAAe,IAAI,GAGvD,MAAQ,SAAS,UAAY,aAAe,eAAe,IAAI,EAAE,MAAQ,eAAe,IAAI,EAAE,MAAQ,eAAe,IAAI,EAAE,MAAQ,eAAe,IAAI,EAAE,MAAQ,eAAe,IAAI,EAAE,QACxL,IAAM,KAAK,cAAc,eAAe,IAAI,EAAE,EAAG,eAAe,IAAI,EAAE,EAAG,eAAe,IAAI,EAAE,EAAG,eAAe,IAAI,EAAE,EAAG,eAAe,IAAI,EAAE,EAAE,EAE/I,MAAQ,SAAS,QAAQ,aAAa,cAAe,IAAI,IAOhE,SAAS,oBAAoB,OAAQ,cAAe,CAClD,IAAI,WAAa,cAAc,UAAU,WAAW,aAAa,WACjE,OAAO,aAAa,IAAK,WAAW,EAAE,CACtC,OAAO,aAAa,IAAK,WAAW,EAAE,CACtC,OAAO,aAAa,QAAS,WAAW,MAAM,CAC9C,OAAO,aAAa,SAAU,WAAW,OAAO,CAChD,CAAC,MAAQ,SAAS,cAAgB,cAClC,IAAI,eAAiB,SAAS,iBAAiB,CAC/C,eAAe,aAAa,KAAM,cAAc,CAChD,eAAe,aAAa,SAAU,gBAAgB,CACtD,eAAe,aAAa,eAAgB,IAAI,CAChD,CAAC,MAAQ,SAAS,eAAiB,eACnC,OAAO,YAAY,eAAe,CAClC,IAAI,SAAW,SAAS,WAAW,CACnC,SAAS,aAAa,KAAM,KAAK,CACjC,SAAS,aAAa,KAAM,IAAI,CAChC,SAAS,aAAa,KAAM,gBAAgB,CAC5C,SAAS,aAAa,SAAU,gBAAgB,CAChD,CAAC,MAAQ,SAAS,SAAW,SAC7B,OAAO,YAAY,SAAS,CAC5B,IAAI,QAAU,SAAS,UAAU,CACjC,QAAQ,aAAa,cAAe,UAAU,CAC9C,QAAQ,aAAa,gBAAiB,IAAI,CAC1C,QAAQ,aAAa,SAAU,gBAAgB,CAC/C,CAAC,MAAQ,SAAS,QAAU,QAC5B,OAAO,YAAY,QAAQ,CAC3B,IAAI,YAAc,SAAS,cAAc,CACzC,YAAY,aAAa,KAAM,gBAAgB,CAC/C,YAAY,aAAa,MAAO,gBAAgB,CAChD,YAAY,aAAa,WAAY,KAAK,CAC1C,YAAY,aAAa,SAAU,gBAAgB,CACnD,OAAO,YAAY,YAAY,CAC/B,IAAI,QAAU,SAAS,UAAU,CACjC,OAAO,YAAY,QAAQ,CAC3B,IAAI,YACU,SAAS,cAAc,CACrC,QAAQ,YAAY,YAAY,CAChC,YAAc,SAAS,cAAc,CACrC,YAAY,aAAa,KAAM,gBAAgB,CAC/C,CAAC,MAAQ,SAAS,YAAc,YAChC,CAAC,MAAQ,SAAS,QAAU,QAC5B,CAAC,MAAQ,SAAS,kBAAoB,GACtC,QAAQ,YAAY,YAAY,CAGlC,oBAAoB,UAAU,YAAc,SAAU,YAAa,CACjE,GAAI,cAAgB,MAAQ,SAAS,cAAc,KAAM,CAKvD,IAJI,cAAgB,MAAQ,SAAS,cAAc,eAAe,GAAG,EAAE,QACpE,MAAQ,SAAS,eAAe,aAAa,gBAAiB,MAAQ,SAAS,cAAc,eAAe,GAAG,EAAE,EAAI,EAAE,CAGtH,cAAgB,MAAQ,SAAS,cAAc,eAAe,GAAG,EAAE,KAAM,CAC3E,IAAI,KAAO,MAAQ,SAAS,cAAc,eAAe,GAAG,EAAE,GAE7D,MAAQ,SAAS,QAAQ,aAAa,cAAe,SAAS,KAAK,MAAM,IAAI,GAAK,IAAI,CAAE,KAAK,MAAM,IAAI,GAAK,IAAI,CAAE,KAAK,MAAM,IAAI,GAAK,IAAI,CAAC,CAAC,CAO/I,IAJI,cAAgB,MAAQ,SAAS,cAAc,eAAe,GAAG,EAAE,QACpE,MAAQ,SAAS,QAAQ,aAAa,iBAAkB,MAAQ,SAAS,cAAc,eAAe,GAAG,EAAE,EAAI,IAAI,CAGlH,cAAgB,MAAQ,SAAS,cAAc,eAAe,GAAG,EAAE,OAAS,MAAQ,SAAS,cAAc,eAAe,GAAG,EAAE,KAAM,CACvI,IAAI,UAAY,MAAQ,SAAS,cAAc,eAAe,GAAG,EAAE,EAC/D,QAAU,MAAQ,SAAS,cAAc,eAAe,GAAG,EAAE,EAAI,IAAM,UACvEa,IAAI,SAAW,KAAK,IAAI,MAAM,CAC9B,EAAI,SAAW,KAAK,IAAI,MAAM,EAEjC,MAAQ,SAAS,SAAS,aAAa,KAAMA,IAAE,EAE/C,MAAQ,SAAS,SAAS,aAAa,KAAM,EAAE,IAiBtD,IAAI,iBAAmB,EAAE,CAEzB,SAAS,gBAAgB,WAAY,cAAe,KAAM,CACxD,CAAC,MAAQ,SAAS,YAAc,GAChC,CAAC,MAAQ,SAAS,cAAgB,cAClC,CAAC,MAAQ,SAAS,WAAa,WAC/B,CAAC,MAAQ,SAAS,KAAO,KACzB,KAAK,aAAe,SAAS,IAAI,CACjC,KAAK,aAAa,YAAY,KAAK,aAAa,CAChD,KAAK,aAAa,YAAY,KAAK,mBAAmB,CACtD,KAAK,YAAc,KAAK,aAG1B,gBAAgB,UAAU,WAAa,SAAU,KAAM,CAIrD,IAHA,IAAIR,IAAI,EACJ,IAAM,iBAAiB,OAEpBA,IAAI,KAAK,CACd,GAAI,iBAAiBA,OAAO,KAC1B,OAAO,iBAAiBA,KAG1B,KAAK,EAGP,OAAO,MAGT,gBAAgB,UAAU,gBAAkB,SAAU,KAAM,SAAU,CACpE,IAAI,WAAa,KAAK,aAAa,WAE9B,cAQL,KAJA,IAAI,SAAW,WAAW,SACtBA,IAAI,EACJ,IAAM,SAAS,OAEZA,IAAI,KACL,SAASA,OAAO,KAAK,cAIzB,KAAK,EAGP,IAAI,UAEAA,KAAK,IAAM,IACb,UAAY,SAASA,IAAI,IAG3B,IAAI,QAAU,SAAS,MAAM,CAC7B,QAAQ,aAAa,OAAQ,IAAM,SAAS,CAExC,UACF,WAAW,aAAa,QAAS,UAAU,CAE3C,WAAW,YAAY,QAAQ,GAInC,gBAAgB,UAAU,iBAAmB,SAAU,KAAM,KAAM,CACjE,GAAI,CAAC,KAAK,WAAW,KAAK,CAAE,CAC1B,IAAI,SAAW,iBAAiB,CAC5B,OAAS,SAAS,OAAO,CAC7B,OAAO,aAAa,KAAM,KAAK,QAAQ,CACvC,OAAO,aAAa,YAAa,QAAQ,CAEzC,iBAAiB,KAAK,KAAK,CAE3B,IAAI,KAAO,KAAK,WAAW,KAC3B,KAAK,YAAY,OAAO,CACxB,IAAI,OAAS,SAAS,SAAS,CAC/B,OAAO,aAAa,KAAM,SAAS,CACnC,KAAK,gBAAgB,KAAM,SAAS,CACpC,OAAO,YAAY,KAAK,aAAa,CACrC,KAAK,YAAY,OAAO,CACxB,IAAI,QAAU,SAAS,MAAM,CAC7B,QAAQ,aAAa,OAAQ,IAAM,SAAS,CAC5C,OAAO,YAAY,QAAQ,CAC3B,KAAK,KAAK,GAAK,GACf,KAAK,MAAM,CAGb,KAAK,SAAS,KAAK,QAAQ,EAG7B,gBAAgB,UAAU,WAAa,UAAY,CAMjD,IALA,IAAI,KAAO,MAAQ,SAAS,cAAc,eAAe,GAAG,EAAE,EAC1D,UAAY,MAAQ,SAAS,KAAK,KAAK,SACvCA,IAAI,EACJ,IAAM,SAAS,OAEZA,IAAI,KACL,SAASA,MAAM,SAASA,KAAG,KAAK,MAAQ,KAC1C,KAAK,kBAAkB,MAAQ,SAAS,KAAM,SAASA,KAAG,CAG5D,KAAK,EAGP,CAAC,MAAQ,SAAS,YAAc,IAGlC,gBAAgB,UAAU,YAAc,UAAY,EAC5C,MAAQ,SAAS,aACrB,KAAK,YAAY,EAOrB,SAAS,WAAW,KAAM,CACxB,IAAIA,IACA,IAAM,KAAK,KAAK,GAAK,KAAK,KAAK,GAAG,OAAS,EAC3C,MAAQ,iBAAiB,CACzB,IAAM,eAAe,aAAa,MAAO,GAAK,CAC9C,MAAQ,EACZ,CAAC,MAAQ,SAAS,QAAU,EAAE,CAC9B,IAAI,cAEJ,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,cAAgB,KAEZ,KAAK,KAAK,GAAGA,KAAG,KAAO,IACzB,OAAS,EACT,cAAgB,IAAI,cAAc,IAAK,KAAK,eAAe,eAAeA,KAAG,EACpE,KAAK,KAAK,GAAGA,KAAG,KAAO,IAChC,OAAS,EACT,cAAgB,IAAI,cAAc,IAAK,KAAK,eAAe,eAAeA,KAAG,EACpE,KAAK,KAAK,GAAGA,KAAG,KAAO,GAChC,cAAgB,IAAI,gBAAgB,KAAM,KAAK,eAAe,eAAeA,KAAG,CACvE,KAAK,KAAK,GAAGA,KAAG,KAAO,IAChC,OAAS,EACT,cAAgB,IAAI,iBAAiB,IAAK,KAAK,eAAe,eAAeA,KAAG,EACvE,KAAK,KAAK,GAAGA,KAAG,KAAO,IAChC,OAAS,EACT,cAAgB,IAAI,mBAAmB,IAAK,KAAK,eAAe,eAAeA,KAAG,EACzE,KAAK,KAAK,GAAGA,KAAG,KAAO,IAChC,OAAS,EACT,cAAgB,IAAI,oBAAoB,IAAK,KAAK,eAAe,eAAeA,KAAG,EAC1E,KAAK,KAAK,GAAGA,KAAG,KAAO,GAEhC,cAAgB,IAAI,gBAAgB,IAAK,KAAK,eAAe,eAAeA,KAAI,KAAK,CAC5E,KAAK,KAAK,GAAGA,KAAG,KAAO,KAChC,OAAS,EACT,cAAgB,IAAI,sBAAsB,IAAK,KAAK,eAAe,eAAeA,KAAG,EAGnF,gBACD,MAAQ,SAAS,QAAQ,KAAK,cAAc,CAI7C,QACF,KAAK,WAAW,KAAK,YAAY,IAAI,CACrC,KAAK,aAAa,aAAa,SAAU,OAAS,aAAe,IAAM,MAAQ,IAAI,GAGhF,MAAQ,SAAS,QAAQ,QAC5B,KAAK,uBAAuB,MAAQ,QAAQ,CAIhD,WAAW,UAAU,YAAc,SAAU,cAAe,CAC1D,IAAIA,IACA,KAAO,MAAQ,SAAS,QAAQ,OAEpC,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,GACvB,MAAQ,SAAS,QAAQA,KAAG,YAAY,cAAc,EAM3D,SAAS,eAAgB,CACvB,CAAC,MAAQ,SAAS,MAAQ,EAAE,CAC5B,CAAC,MAAQ,SAAS,QAAU,EAC5B,CAAC,MAAQ,SAAS,IAAM,IAAI,OAC5B,CAAC,MAAQ,SAAS,GAAK,EACvB,IAAIA,IACA,IAAM,GAGV,IAFA,CAAC,MAAQ,SAAS,QAAU,iBAAiB,UAAW,IAAI,CAEvD,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,CAAC,MAAQ,SAAS,MAAMA,KAAK,iBAAiB,UAAW,GAAG,CAG9D,CAAC,MAAQ,SAAS,QAAU,IAG9B,cAAc,UAAU,UAAY,UAAY,CAC9C,IAAI,WAAa,MAAQ,SAAS,QAAU,EACxC,gBAAkB,MAAQ,SAAS,QACvC,CAAC,MAAQ,SAAS,QAAU,iBAAiB,UAAW,UAAU,EAEjE,MAAQ,SAAS,QAAQ,IAAI,eAAe,CAE7C,IAAIA,IAAI,EAER,IAAK,KAAK,MAAQ,SAAS,QAASA,IAAI,UAAW,KAAK,EACtD,CAAC,MAAQ,SAAS,MAAMA,KAAK,iBAAiB,UAAW,GAAG,CAG9D,CAAC,MAAQ,SAAS,QAAU,WAG9B,cAAc,UAAU,MAAQ,UAAY,CAC1C,CAAC,MAAQ,SAAS,QAAU,GAE3B,MAAQ,SAAS,IAAI,OAAO,CAE7B,CAAC,MAAQ,SAAS,GAAK,GAKzB,SAAS,eAAgB,EAEzB,cAAc,UAAY,CACxB,eAAgB,UAAY,GAC5B,oBAAqB,UAAY,GACjC,wBAAyB,UAAY,CACnC,CAAC,MAAQ,SAAS,eAAiB,MAAQ,SAAS,WAAW,cAC/D,CAAC,MAAQ,SAAS,yBAA2B,IAAI,UAAU,MAAQ,QAAQ,EAE7E,cAAe,UAAY,GAC3B,aAAc,UAAY,CACxB,IAAI,YAAc,MAAQ,SAAS,WAEnC,GAAI,WAAW,aAAe,MAAQ,SAAS,KAAK,GAAI,CACtD,WAAW,WAAa,MAAQ,SAAS,KAAK,GAC9C,IAAI,eAAiB,cAAc,MAAQ,SAAS,KAAK,GAAG,CAC5D,WAAW,cAAc,yBAA2B,iBAGxD,2BAA4B,UAAY,CACtC,CAAC,MAAQ,SAAS,YAAc,IAAI,eAAe,MAAQ,SAAS,KAAM,MAAQ,QAAQ,EAE5F,YAAa,UAAY,CACnB,EAAE,MAAQ,SAAS,SAAW,EAAE,MAAQ,SAAS,YAAc,MAAQ,SAAS,iBAClF,CAAC,MAAQ,SAAS,OAAS,KAG/B,YAAa,UAAY,EAClB,MAAQ,SAAS,WAAa,EAAE,MAAQ,SAAS,gBACpD,CAAC,MAAQ,SAAS,OAAS,GAC3B,CAAC,MAAQ,SAAS,cAAgB,GAClC,CAAC,MAAQ,SAAS,YAAY,cAAgB,KAGlD,YAAa,UAAY,CACvB,MAAK,MAAQ,SAAS,SAAW,MAAQ,SAAS,KAAK,IAMvD,CAFA,KAAK,iBAAiB,CACtB,KAAK,kBAAkB,CACvB,KAAK,cAAc,CACnB,IAAI,gBAAkB,MAAQ,SAAS,KAAK,KAAO,GAElD,MAAQ,SAAS,WAAW,SAAS,KAAK,eAAe,EAEzD,MAAQ,SAAS,WAAW,SAAS,cAAc,MAAQ,SAAS,eAAe,IAAI,MAAM,EAE7F,MAAQ,SAAS,WAAW,SAAS,YAAY,MAAQ,SAAS,eAAe,MAAM,EAAE,EAAE,CAE5F,KAAK,oBAAoB,EAExB,MAAQ,SAAS,WAAW,SAAS,QAAQ,eAAe,EAExD,MAAQ,SAAS,YAAY,WAC/B,MAAQ,SAAS,WAAW,SAAS,QAAQ,GAAK,EAGhD,MAAQ,SAAS,gBACpB,CAAC,MAAQ,SAAS,cAAgB,MAGtC,QAAS,UAAY,CACnB,CAAC,MAAQ,SAAS,cAAgB,KAClC,CAAC,MAAQ,SAAS,KAAO,KACzB,CAAC,MAAQ,SAAS,WAAa,MAE9B,MAAQ,SAAS,YAAY,SAAS,EAEzC,QAAS,IAAI,OACd,CACD,cAAc,UAAU,KAAO,cAAc,UAAU,YACvD,cAAc,UAAU,KAAO,cAAc,UAAU,YAIvD,SAAS,eAAe,KAAM,WAAY,KAAM,CAC9C,CAAC,MAAQ,SAAS,UAAY,WAAW,aAAa,KAAK,MAAM,CACjE,CAAC,MAAQ,SAAS,IAAM,WAAW,YAAY,UAAU,MAAQ,SAAS,UAAU,CACpF,KAAK,YAAY,KAAM,WAAY,KAAK,CAG1C,gBAAgB,CAAC,YAAa,iBAAkB,cAAe,iBAAkB,aAAc,kBAAkB,CAAE,eAAe,CAClI,eAAe,UAAU,YAAc,gBAAgB,UAAU,YACjE,eAAe,UAAU,aAAe,cAAc,UAAU,aAEhE,eAAe,UAAU,cAAgB,UAAY,CACnD,IAAK,MAAQ,SAAS,IAAI,SAAW,MAAQ,SAAS,UAAU,KAAO,MAAQ,SAAS,IAAI,QAAU,MAAQ,SAAS,UAAU,KAAO,MAAQ,SAAS,IAAI,QAAS,CACpK,IAAI,OAAS,UAAU,SAAS,CAChC,OAAO,OAAS,MAAQ,SAAS,UAAU,EAC3C,OAAO,QAAU,MAAQ,SAAS,UAAU,EAC5C,IAAI,IAAM,OAAO,WAAW,KAAK,CAC7B,MAAQ,MAAQ,SAAS,IAAI,MAC7B,MAAQ,MAAQ,SAAS,IAAI,OAC7B,OAAS,KAAO,KAChB,WAAa,MAAQ,SAAS,UAAU,GAAK,MAAQ,SAAS,UAAU,EACxE,UACA,WACA,KAAO,MAAQ,SAAS,UAAU,KAAO,MAAQ,SAAS,WAAW,aAAa,yBAElF,OAAS,WAAa,MAAQ,kBAAoB,OAAS,WAAa,MAAQ,kBAClF,WAAa,KACb,UAAY,WAAa,YAEzB,UAAY,KACZ,WAAa,UAAY,WAG3B,IAAI,WAAW,MAAQ,SAAS,KAAM,KAAO,WAAa,GAAI,KAAO,YAAc,EAAG,UAAW,WAAY,EAAG,GAAI,MAAQ,SAAS,UAAU,GAAI,MAAQ,SAAS,UAAU,EAAE,CAChL,CAAC,MAAQ,SAAS,IAAM,SAI5B,eAAe,UAAU,mBAAqB,UAAY,EACvD,MAAQ,SAAS,cAAc,WAAW,MAAQ,SAAS,IAAK,EAAG,EAAE,EAGxE,eAAe,UAAU,QAAU,UAAY,CAC7C,CAAC,MAAQ,SAAS,IAAM,MAK1B,SAAS,cAAc,KAAM,WAAY,KAAM,CAC7C,CAAC,MAAQ,SAAS,eAAiB,GACnC,CAAC,MAAQ,SAAS,OAAS,KAAK,OAChC,CAAC,MAAQ,SAAS,gBAAkB,EAAE,CACtC,CAAC,MAAQ,SAAS,SAAW,kBAAkB,MAAQ,SAAS,OAAO,OAAO,CAC9E,KAAK,YAAY,KAAM,WAAY,KAAK,CACxC,CAAC,MAAQ,SAAS,GAAK,KAAK,GAAK,gBAAgB,QAAQ,MAAQ,QAAS,KAAK,GAAI,EAAG,WAAW,UAAW,MAAQ,QAAQ,CAAG,CAC7H,aAAc,GACf,CAGH,gBAAgB,CAAC,eAAgB,aAAc,cAAc,CAAE,cAAc,CAE7E,cAAc,UAAU,mBAAqB,UAAY,CACvD,IAAI,KAAO,MAAQ,SAAS,cAC5B,IAAI,WAAW,CACf,IAAI,OAAO,EAAG,EAAE,CAChB,IAAI,QAAQ,MAAQ,SAAS,KAAK,EAAG,EAAE,CACvC,IAAI,QAAQ,MAAQ,SAAS,KAAK,GAAI,MAAQ,SAAS,KAAK,EAAE,CAC9D,IAAI,OAAO,GAAI,MAAQ,SAAS,KAAK,EAAE,CACvC,IAAI,OAAO,EAAG,EAAE,CAChB,IAAI,MAAM,CACV,IAAIA,IAGJ,IAAK,KAFM,MAAQ,SAAS,OAAO,OAEpB,EAAGA,KAAK,EAAG,QACnB,MAAQ,SAAS,iBAAmB,MAAQ,SAAS,SAASA,QAChE,MAAQ,SAAS,SAASA,KAAG,aAAa,EAKjD,cAAc,UAAU,QAAU,UAAY,CAC5C,IAAIA,IAGJ,IAAK,KAFM,MAAQ,SAAS,OAAO,OAEpB,EAAGA,KAAK,EAAG,OACnB,MAAQ,SAAS,SAASA,OAC5B,MAAQ,SAAS,SAASA,KAAG,SAAS,CAI3C,CAAC,MAAQ,SAAS,OAAS,KAC3B,CAAC,MAAQ,SAAS,SAAW,MAK/B,SAAS,cAAc,KAAM,QAAS,CACpC,CAAC,MAAQ,SAAS,KAAO,KACzB,CAAC,MAAQ,SAAS,QAAU,QAC5B,CAAC,MAAQ,SAAS,iBAAmB,MAAQ,SAAS,KAAK,iBAAmB,EAAE,CAChF,CAAC,MAAQ,SAAS,SAAW,kBAAkB,MAAQ,SAAS,gBAAgB,OAAO,CACvF,IAAIA,IACA,KAAO,MAAQ,SAAS,gBAAgB,OACxC,SAAW,GAEf,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,GACnB,MAAQ,SAAS,gBAAgBA,KAAG,OAAS,MAChD,SAAW,IAGb,CAAC,MAAQ,SAAS,SAASA,KAAK,qBAAqB,cAAc,MAAQ,SAAS,SAAU,MAAQ,SAAS,gBAAgBA,KAAI,EAAE,CAGvI,CAAC,MAAQ,SAAS,SAAW,SAEzB,WACD,MAAQ,SAAS,QAAQ,uBAAuB,MAAQ,QAAQ,CAIrE,cAAc,UAAU,YAAc,UAAY,CAC5C,IAAE,MAAQ,SAAS,SAIvB,KAAI,WAAa,MAAQ,SAAS,QAAQ,eAAe,IACrD,KAAO,MAAQ,SAAS,QAAQ,cAChCA,IACA,KAAO,MAAQ,SAAS,gBAAgB,OACxC,GACA,IACA,KAGJ,IAFA,IAAI,WAAW,CAEV,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,IAAK,MAAQ,SAAS,gBAAgBA,KAAG,OAAS,IAAK,EAChD,MAAQ,SAAS,gBAAgBA,KAAG,MACvC,IAAI,OAAO,EAAG,EAAE,CAChB,IAAI,QAAQ,MAAQ,SAAS,QAAQ,WAAW,SAAS,EAAG,EAAE,CAC9D,IAAI,QAAQ,MAAQ,SAAS,QAAQ,WAAW,SAAS,GAAI,MAAQ,SAAS,QAAQ,WAAW,SAAS,EAAE,CAC5G,IAAI,OAAO,GAAI,MAAQ,SAAS,QAAQ,WAAW,SAAS,EAAE,CAC9D,IAAI,OAAO,EAAG,EAAE,EAGlB,MAAQ,MAAQ,SAAS,SAASA,KAAG,EACrC,GAAK,UAAU,kBAAkB,KAAK,EAAE,GAAG,GAAI,KAAK,EAAE,GAAG,GAAI,EAAE,CAC/D,IAAI,OAAO,GAAG,GAAI,GAAG,GAAG,CACxB,IAAI,EACA,KAAO,KAAK,QAEhB,IAAK,EAAI,EAAG,EAAI,KAAM,GAAK,EACzB,IAAM,UAAU,oBAAoB,KAAK,EAAE,EAAI,GAAI,KAAK,EAAE,GAAI,KAAK,EAAE,GAAG,CACxE,IAAI,cAAc,IAAI,GAAI,IAAI,GAAI,IAAI,GAAI,IAAI,GAAI,IAAI,GAAI,IAAI,GAAG,CAGnE,IAAM,UAAU,oBAAoB,KAAK,EAAE,EAAI,GAAI,KAAK,EAAE,GAAI,KAAK,EAAE,GAAG,CACxE,IAAI,cAAc,IAAI,GAAI,IAAI,GAAI,IAAI,GAAI,IAAI,GAAI,IAAI,GAAI,IAAI,GAAG,EAIpE,MAAQ,SAAS,QAAQ,WAAW,SAAS,KAAK,GAAK,CAExD,IAAI,MAAM,GAGZ,cAAc,UAAU,gBAAkB,YAAY,UAAU,gBAEhE,cAAc,UAAU,QAAU,UAAY,CAC5C,CAAC,MAAQ,SAAS,QAAU,MAO9B,SAAS,eAAe,KAAM,WAAY,KAAM,CAC9C,CAAC,MAAQ,SAAS,OAAS,EAAE,CAC7B,CAAC,MAAQ,SAAS,WAAa,KAAK,OACpC,CAAC,MAAQ,SAAS,WAAa,EAAE,CACjC,CAAC,MAAQ,SAAS,UAAY,EAAE,CAChC,CAAC,MAAQ,SAAS,aAAe,EAAE,CACnC,CAAC,MAAQ,SAAS,eAAiB,EAAE,CACrC,CAAC,MAAQ,SAAS,kBAAoB,EAAE,CACxC,CAAC,MAAQ,SAAS,kBAAoB,IAAI,sBAC1C,KAAK,YAAY,KAAM,WAAY,KAAK,CAG1C,gBAAgB,CAAC,YAAa,iBAAkB,cAAe,cAAe,iBAAkB,aAAc,kBAAkB,CAAE,eAAe,CACjJ,eAAe,UAAU,YAAc,qBAAqB,UAAU,YACtE,eAAe,UAAU,gBAAkB,CACzC,QAAS,EACT,OAAQ,GACT,CACD,eAAe,UAAU,aAAe,EAAE,CAE1C,eAAe,UAAU,cAAgB,UAAY,CACnD,KAAK,cAAc,MAAQ,SAAS,YAAa,MAAQ,SAAS,WAAY,MAAQ,SAAS,aAAc,GAAM,EAAE,CAAC,EAGxH,eAAe,UAAU,mBAAqB,SAAU,KAAM,WAAY,CACxE,IAAI,UAAY,CACR,KACN,KAAM,KAAK,GACX,eAAgB,MAAQ,SAAS,kBAAkB,qBAAqB,WAAW,CACnF,WAAY,EAAE,CACd,SAAU,EAAE,CACZ,OAAQ,KAAK,KAAO,GACrB,CACG,YAAc,EAAE,CAqDpB,OAnDI,KAAK,KAAO,MAAQ,KAAK,KAAO,MAClC,YAAY,EAAI,gBAAgB,QAAQ,MAAQ,QAAS,KAAK,EAAG,EAAG,IAAK,MAAQ,QAAQ,CAEpF,YAAY,EAAE,IACjB,UAAU,GAAK,OAAS,QAAQ,YAAY,EAAE,EAAE,GAAG,CAAG,IAAM,QAAQ,YAAY,EAAE,EAAE,GAAG,CAAG,IAAM,QAAQ,YAAY,EAAE,EAAE,GAAG,CAAG,OAEvH,KAAK,KAAO,MAAQ,KAAK,KAAO,QACzC,YAAY,EAAI,gBAAgB,QAAQ,MAAQ,QAAS,KAAK,EAAG,EAAG,KAAM,MAAQ,QAAQ,CAC1F,YAAY,EAAI,gBAAgB,QAAQ,MAAQ,QAAS,KAAK,EAAG,EAAG,KAAM,MAAQ,QAAQ,CAC1F,YAAY,EAAI,gBAAgB,QAAQ,MAAQ,QAAS,KAAK,GAAK,CACjE,EAAG,EACJ,CAAE,EAAG,IAAM,MAAQ,QAAQ,CAC5B,YAAY,EAAI,gBAAgB,QAAQ,MAAQ,QAAS,KAAK,GAAK,CACjE,EAAG,EACJ,CAAE,EAAG,UAAW,MAAQ,QAAQ,CACjC,YAAY,EAAI,IAAI,iBAAiB,MAAQ,QAAS,KAAK,EAAG,MAAQ,QAAQ,EAGhF,YAAY,EAAI,gBAAgB,QAAQ,MAAQ,QAAS,KAAK,EAAG,EAAG,IAAM,MAAQ,QAAQ,CAEtF,KAAK,KAAO,MAAQ,KAAK,KAAO,MAClC,UAAU,IAAM,MAAQ,SAAS,OAAO,KAAK,KAAO,QACpD,UAAU,IAAM,MAAQ,SAAS,OAAO,KAAK,KAAO,QAEhD,KAAK,IAAM,IAEb,UAAU,GAAK,KAAK,IAGtB,YAAY,EAAI,gBAAgB,QAAQ,MAAQ,QAAS,KAAK,EAAG,EAAG,KAAM,MAAQ,QAAQ,CAErF,YAAY,EAAE,IACjB,UAAU,GAAK,YAAY,EAAE,GAG3B,KAAK,IAEP,YAAY,EADJ,IAAI,aAAa,MAAQ,QAAS,KAAK,EAAG,SAAU,MAAQ,QAAQ,CAGvE,YAAY,EAAE,IACjB,UAAU,GAAK,YAAY,EAAE,UAC7B,UAAU,GAAK,YAAY,EAAE,WAAW,MAI5C,UAAU,EAAI,KAAK,IAAM,EAAI,UAAY,WAG1C,MAAQ,SAAS,WAAW,KAAK,UAAU,CAE5C,YAAY,MAAQ,UACb,aAGT,eAAe,UAAU,mBAAqB,UAAY,CAKxD,MAJkB,CAChB,GAAI,EAAE,CACN,aAAc,EAAE,CACjB,EAIH,eAAe,UAAU,uBAAyB,SAAU,KAAM,CAUhE,MATkB,CAChB,UAAW,CACT,QAAS,EACT,OAAQ,GACR,KAAM,MAAQ,SAAS,kBAAkB,WAAW,CACpD,GAAI,gBAAgB,QAAQ,MAAQ,QAAS,KAAK,EAAG,EAAG,IAAM,MAAQ,QAAQ,CAC9E,OAAQ,yBAAyB,qBAAqB,MAAQ,QAAS,KAAM,MAAQ,QAAQ,CAC9F,CACF,EAIH,eAAe,UAAU,mBAAqB,SAAU,KAAM,CAC5D,IAAI,YAAc,IAAI,YAAY,MAAQ,QAAS,MAAO,MAAQ,SAAS,YAAa,MAAQ,SAAS,kBAAkB,CAK3H,OAHC,MAAQ,SAAS,OAAO,KAAK,YAAY,CAE1C,KAAK,oBAAoB,YAAY,CAC9B,aAGT,eAAe,UAAU,aAAe,UAAY,CAClD,CAAC,MAAQ,SAAS,cAAgB,GAClC,IAAIA,IACA,KAAO,MAAQ,SAAS,UAAU,OAEtC,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,CAAC,MAAQ,SAAS,aAAaA,MAAM,MAAQ,SAAS,UAAUA,KAMlE,IAHA,KAAK,cAAc,MAAQ,SAAS,YAAa,MAAQ,SAAS,WAAY,MAAQ,SAAS,aAAc,GAAM,EAAE,CAAC,CACtH,KAAO,MAAQ,SAAS,kBAAkB,OAErC,IAAI,EAAGA,IAAI,IAAK,KAAK,GACvB,MAAQ,SAAS,kBAAkBA,KAAG,UAAU,CAGnD,KAAK,iBAAiB,EAErB,MAAQ,SAAS,kBAAkB,kBAAkB,MAAQ,SAAS,cAAc,EAGvF,eAAe,UAAU,wBAA0B,SAAU,UAAW,CACtE,IAAIA,IACA,KAAO,MAAQ,SAAS,WAAW,OAEvC,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,GAClB,MAAQ,SAAS,WAAWA,KAAG,SAClC,MAAQ,SAAS,WAAWA,KAAG,WAAW,KAAK,UAAU,EAKhE,eAAe,UAAU,6BAA+B,UAAY,CAClE,IAAIA,IACA,KAAO,MAAQ,SAAS,WAAW,OAEvC,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,GAClB,MAAQ,SAAS,WAAWA,KAAG,SAClC,MAAQ,SAAS,WAAWA,KAAG,WAAW,KAAK,EAKtD,eAAe,UAAU,YAAc,SAAU,OAAQ,CACvD,IAAIA,IACA,IAAM,OAAO,OAEjB,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,OAAOA,KAAG,OAAS,IAIvB,eAAe,UAAU,aAAe,SAAU,IAAK,UAAW,aAAc,aAAc,WAAY,CACxG,IAAIA,IACA,IAAM,IAAI,OAAS,EACnB,EACA,KACA,UAAY,EAAE,CACd,aAAe,EAAE,CACjB,aACA,SACA,iBACA,cAAgB,EAAE,CAAC,OAAO,WAAW,CAEzC,IAAK,IAAI,IAAKA,KAAK,EAAG,MAAQ,CAS5B,GARA,aAAe,KAAK,uBAAuB,IAAIA,KAAG,CAE7C,aAGH,UAAUA,KAAK,aAAa,aAAe,GAF3C,IAAIA,KAAG,cAAgB,aAKrB,IAAIA,KAAG,KAAO,MAAQ,IAAIA,KAAG,KAAO,MAAQ,IAAIA,KAAG,KAAO,MAAQ,IAAIA,KAAG,KAAO,KAC7E,aAGH,UAAUA,KAAG,MAAM,OAAS,GAF5B,UAAUA,KAAK,KAAK,mBAAmB,IAAIA,KAAI,cAAc,CAK/D,UAAU,KAAK,UAAUA,KAAG,MAAM,SACzB,IAAIA,KAAG,KAAO,KAAM,CAC7B,GAAI,CAAC,aACH,UAAUA,KAAK,KAAK,mBAAmB,IAAIA,KAAG,MAI9C,IAFA,KAAO,UAAUA,KAAG,GAAG,OAElB,EAAI,EAAG,EAAI,KAAM,GAAK,EACzB,UAAUA,KAAG,aAAa,GAAK,UAAUA,KAAG,GAAG,GAInD,KAAK,aAAa,IAAIA,KAAG,GAAI,UAAUA,KAAG,GAAI,UAAUA,KAAG,aAAc,aAAc,cAAc,MAC5F,IAAIA,KAAG,KAAO,MAClB,eACH,iBAAmB,KAAK,uBAAuB,IAAIA,KAAG,CACtD,UAAUA,KAAK,kBAGjB,cAAc,KAAK,UAAUA,KAAG,CAChC,KAAK,wBAAwB,UAAUA,KAAG,EACjC,IAAIA,KAAG,KAAO,MAAQ,IAAIA,KAAG,KAAO,MAAQ,IAAIA,KAAG,KAAO,MAAQ,IAAIA,KAAG,KAAO,KACpF,eACH,UAAUA,KAAK,KAAK,mBAAmB,IAAIA,KAAG,EAEvC,IAAIA,KAAG,KAAO,MAAQ,IAAIA,KAAG,KAAO,MAAQ,IAAIA,KAAG,KAAO,MAC9D,cAOH,SAAW,UAAUA,KACrB,SAAS,OAAS,KAPlB,SAAW,eAAe,YAAY,IAAIA,KAAG,GAAG,CAChD,SAAS,KAAK,MAAQ,QAAS,IAAIA,KAAG,CACtC,UAAUA,KAAK,UAEd,MAAQ,SAAS,eAAe,KAAK,SAAS,EAMjD,aAAa,KAAK,SAAS,EAClB,IAAIA,KAAG,KAAO,OAClB,cASH,SAAW,UAAUA,KACrB,SAAS,OAAS,KATlB,SAAW,eAAe,YAAY,IAAIA,KAAG,GAAG,CAChD,UAAUA,KAAK,SACf,SAAS,KAAK,MAAQ,QAAS,IAAKA,IAAG,UAAU,EAEhD,MAAQ,SAAS,eAAe,KAAK,SAAS,CAE/C,aAAe,IAMjB,aAAa,KAAK,SAAS,EAG7B,KAAK,oBAAoB,IAAIA,KAAIA,IAAI,EAAE,CAOzC,IAJA,KAAK,8BAA8B,CACnC,KAAK,YAAY,UAAU,CAC3B,IAAM,aAAa,OAEd,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,aAAaA,KAAG,OAAS,IAI7B,eAAe,UAAU,mBAAqB,UAAY,CACxD,CAAC,MAAQ,SAAS,gBAAgB,QAAU,EAC5C,CAAC,MAAQ,SAAS,gBAAgB,OAAS,GAC3C,KAAK,iBAAiB,EAErB,MAAQ,SAAS,kBAAkB,kBAAkB,MAAQ,SAAS,cAAc,CAErF,KAAK,aAAa,MAAQ,SAAS,iBAAkB,MAAQ,SAAS,YAAa,MAAQ,SAAS,UAAW,GAAK,EAGtH,eAAe,UAAU,qBAAuB,SAAU,gBAAiB,eAAgB,EACrF,gBAAgB,QAAU,eAAe,GAAG,OAAS,MAAQ,SAAS,iBACxE,eAAe,QAAU,gBAAgB,QACzC,eAAe,SAAW,eAAe,GAAG,EAC5C,eAAe,OAAS,KAI5B,eAAe,UAAU,UAAY,UAAY,CAC/C,IAAIA,IACA,KAAO,MAAQ,SAAS,WAAW,OACnC,EACA,KACA,EACA,KACA,MACA,MACArI,YAAY,MAAQ,SAAS,WAAW,SACxC,KAAO,MAAQ,SAAS,WAAW,cACnC,KACA,aAEJ,IAAK,IAAI,EAAGqI,IAAI,IAAK,KAAK,EAQxB,GAPA,cAAgB,MAAQ,SAAS,WAAWA,KAC5C,KAAO,aAAa,KAMhB,GAAG,OAAS,MAAQ,OAAS,OAAS,aAAa,KAAO,GAAK,CAAC,aAAa,KAAK,eAAiB,aAAa,OAAS,IAAM,MAAQ,SAAS,WAAW,qBAAuB,GAAI,CAuBxL,IAtBA,WAAS,MAAM,CACf,MAAQ,aAAa,SAEjB,OAAS,MAAQ,OAAS,MAC5B,IAAI,YAAc,OAAS,KAAO,aAAa,GAAK,aAAa,IACjE,IAAI,UAAY,aAAa,GAC7B,IAAI,QAAU,aAAa,GAC3B,IAAI,SAAW,aAAa,GAC5B,IAAI,WAAa,aAAa,IAAM,GAEpC,IAAI,UAAY,OAAS,KAAO,aAAa,GAAK,aAAa,IAGjE,WAAS,WAAW,aAAa,KAAK,CAElC,OAAS,MAAQ,OAAS,MAC5B,IAAI,WAAW,CAGjB,WAAS,aAAa,aAAa,cAAc,eAAe,MAAM,CACtE,KAAO,MAAM,OAER,EAAI,EAAG,EAAI,KAAM,GAAK,EAAG,CAa5B,KAZI,OAAS,MAAQ,OAAS,QAC5B,IAAI,WAAW,CAEX,aAAa,KACf,IAAI,YAAY,aAAa,GAAG,CAChC,IAAI,eAAiB,aAAa,KAItC,MAAQ,MAAM,GAAG,QACjB,KAAO,MAAM,OAER,EAAI,EAAG,EAAI,KAAM,GAAK,EACrB,MAAM,GAAG,IAAM,IACjB,IAAI,OAAO,MAAM,GAAG,EAAE,GAAI,MAAM,GAAG,EAAE,GAAG,CAC/B,MAAM,GAAG,IAAM,IACxB,IAAI,cAAc,MAAM,GAAG,IAAI,GAAI,MAAM,GAAG,IAAI,GAAI,MAAM,GAAG,IAAI,GAAI,MAAM,GAAG,IAAI,GAAI,MAAM,GAAG,IAAI,GAAI,MAAM,GAAG,IAAI,GAAG,CAEvH,IAAI,WAAW,EAIf,OAAS,MAAQ,OAAS,QAC5B,IAAI,QAAQ,CAER,aAAa,IACf,IAAI,aAAa,MAAQ,SAAS,aAAa,EAKjD,OAAS,MAAQ,OAAS,MAC5B,IAAI,KAAK,aAAa,EAAE,CAG1B,WAAS,SAAS,GAKxB,eAAe,UAAU,YAAc,SAAU,gBAAiB,MAAO,KAAM,OAAQ,CACrF,IAAIA,IACA,IAAM,MAAM,OAAS,EACrB,eACa,gBAEjB,IAAK,IAAI,IAAKA,KAAK,EAAG,MAChB,MAAMA,KAAG,KAAO,MAClB,eAAiB,KAAKA,KAAG,UACzB,KAAK,qBAAqB,gBAAiB,eAAe,EACjD,MAAMA,KAAG,KAAO,MAAQ,MAAMA,KAAG,KAAO,MAAQ,MAAMA,KAAG,KAAO,MAAQ,MAAMA,KAAG,KAAO,KACjG,KAAK,WAAW,MAAMA,KAAI,KAAKA,KAAG,CACzB,MAAMA,KAAG,KAAO,KACzB,KAAK,WAAW,MAAMA,KAAI,KAAKA,KAAI,eAAe,CACzC,MAAMA,KAAG,KAAO,KACzB,KAAK,aAAa,MAAMA,KAAI,KAAKA,KAAI,eAAe,CAC3C,MAAMA,KAAG,KAAO,MAAQ,MAAMA,KAAG,KAAO,KACjD,KAAK,mBAAmB,MAAMA,KAAI,KAAKA,KAAI,eAAe,CACjD,MAAMA,KAAG,KAAO,KACzB,KAAK,YAAY,eAAgB,MAAMA,KAAG,GAAI,KAAKA,KAAG,GAAG,CAChD,MAAMA,KAAG,GAIlB,QACF,KAAK,WAAW,EAIpB,eAAe,UAAU,kBAAoB,SAAU,YAAa,MAAO,CACzE,IAAK,MAAQ,SAAS,eAAiB,MAAM,MAAQ,YAAY,WAAW,KAAM,CAChF,IAAI,WAAa,YAAY,QACzB,MAAQ,MAAM,MACdA,IACA,IACA,EACA,KAAO,MAAM,QACjB,WAAW,OAAS,EACpB,IAAI,kBAAoB,YAAY,WAAW,eAE/C,IAAK,EAAI,EAAG,EAAI,KAAM,GAAK,EAAG,CAC5B,IAAI,UAAY,MAAM,OAAO,GAE7B,GAAI,WAAa,UAAU,EAAG,CAG5B,IAFA,IAAM,UAAU,QAEX,IAAI,EAAGA,IAAI,IAAK,KAAK,EACpBA,MAAM,GACR,WAAW,KAAK,CACd,EAAG,IACH,EAAG,kBAAkB,kBAAkB,UAAU,EAAE,GAAG,GAAI,UAAU,EAAE,GAAG,GAAI,EAAE,CAChF,CAAC,CAGJ,WAAW,KAAK,CACd,EAAG,IACH,IAAK,kBAAkB,oBAAoB,UAAU,EAAEA,IAAI,GAAI,UAAU,EAAEA,KAAI,UAAU,EAAEA,KAAG,CAC/F,CAAC,CAGA,MAAQ,GACV,WAAW,KAAK,CACd,EAAG,IACH,EAAG,kBAAkB,kBAAkB,UAAU,EAAE,GAAG,GAAI,UAAU,EAAE,GAAG,GAAI,EAAE,CAChF,CAAC,CAGA,UAAU,GAAK,MACjB,WAAW,KAAK,CACd,EAAG,IACH,IAAK,kBAAkB,oBAAoB,UAAU,EAAEA,IAAI,GAAI,UAAU,EAAE,GAAI,UAAU,EAAE,GAAG,CAC/F,CAAC,CACF,WAAW,KAAK,CACd,EAAG,IACJ,CAAC,GAKR,YAAY,QAAU,aAI1B,eAAe,UAAU,WAAa,SAAU,SAAU,SAAU,CAClE,GAAI,SAAS,KAAO,IAAQ,SAAS,cAAe,CAClD,IAAIA,IACA,IAAM,SAAS,aAAa,OAEhC,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,KAAK,kBAAkB,SAAS,aAAaA,KAAI,SAAS,GAAG,GAKnE,eAAe,UAAU,WAAa,SAAU,UAAW,SAAU,eAAgB,CACnF,IAAI,UAAY,SAAS,OAErB,SAAS,EAAE,OAAS,MAAQ,SAAS,iBACvC,UAAU,GAAK,OAAS,QAAQ,SAAS,EAAE,EAAE,GAAG,CAAG,IAAM,QAAQ,SAAS,EAAE,EAAE,GAAG,CAAG,IAAM,QAAQ,SAAS,EAAE,EAAE,GAAG,CAAG,MAGnH,SAAS,EAAE,MAAQ,eAAe,SAAW,MAAQ,SAAS,iBAChE,UAAU,KAAO,SAAS,EAAE,EAAI,eAAe,UAInD,eAAe,UAAU,mBAAqB,SAAU,UAAW,SAAU,eAAgB,CAC3F,IAAI,UAAY,SAAS,MACrB,IAEJ,GAAI,CAAC,UAAU,KAAO,SAAS,EAAE,MAAQ,SAAS,EAAE,MAAQ,SAAS,EAAE,MAAQ,UAAU,IAAM,IAAM,SAAS,EAAE,MAAQ,SAAS,EAAE,MAAO,CACxI,IAAI,KAAO,MAAQ,SAAS,WAAW,cACnC,IAAM,SAAS,EAAE,EACjB,IAAM,SAAS,EAAE,EAErB,GAAI,UAAU,IAAM,EAClB,IAAM,IAAI,qBAAqB,IAAI,GAAI,IAAI,GAAI,IAAI,GAAI,IAAI,GAAG,KACzD,CACL,IAAI,IAAM,KAAK,MAAc,IAAI,GAAK,IAAI,KAAI,GAAc,IAAI,GAAK,IAAI,KAAI,EAAG,CAC5E,IAAM,KAAK,MAAM,IAAI,GAAK,IAAI,GAAI,IAAI,GAAK,IAAI,GAAG,CAClD,QAAU,SAAS,EAAE,EAErB,SAAW,EACb,QAAU,IACD,SAAW,KACpB,QAAU,MAGZ,IAAI,KAAO,IAAM,QACbQ,IAAI,KAAK,IAAI,IAAM,SAAS,EAAE,EAAE,CAAG,KAAO,IAAI,GAC9C,EAAI,KAAK,IAAI,IAAM,SAAS,EAAE,EAAE,CAAG,KAAO,IAAI,GAClD,IAAM,IAAI,qBAAqBA,IAAG,EAAG,EAAG,IAAI,GAAI,IAAI,GAAI,IAAI,CAG9D,IAAIR,IACA,IAAM,UAAU,EAAE,EAClB,QAAU,SAAS,EAAE,EACrB,QAAU,EAEd,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EACpB,SAAS,EAAE,aAAe,SAAS,EAAE,eACvC,QAAU,SAAS,EAAE,EAAEA,IAAI,EAAI,IAGjC,IAAI,aAAa,QAAQA,IAAI,GAAK,IAAK,QAAU,QAAQA,IAAI,EAAI,GAAK,IAAM,QAAQA,IAAI,EAAI,GAAK,IAAM,QAAQA,IAAI,EAAI,GAAK,IAAM,QAAU,IAAI,CAGlJ,UAAU,IAAM,IAGlB,UAAU,KAAO,SAAS,EAAE,EAAI,eAAe,SAGjD,eAAe,UAAU,aAAe,SAAU,UAAW,SAAU,eAAgB,CACrF,IAAI,UAAY,SAAS,MACrB,EAAI,SAAS,EAEb,IAAM,EAAE,OAAS,MAAQ,SAAS,iBACpC,UAAU,GAAK,EAAE,UACjB,UAAU,GAAK,EAAE,WAAW,KAG1B,SAAS,EAAE,OAAS,MAAQ,SAAS,iBACvC,UAAU,GAAK,OAAS,QAAQ,SAAS,EAAE,EAAE,GAAG,CAAG,IAAM,QAAQ,SAAS,EAAE,EAAE,GAAG,CAAG,IAAM,QAAQ,SAAS,EAAE,EAAE,GAAG,CAAG,MAGnH,SAAS,EAAE,MAAQ,eAAe,SAAW,MAAQ,SAAS,iBAChE,UAAU,KAAO,SAAS,EAAE,EAAI,eAAe,UAG7C,SAAS,EAAE,OAAS,MAAQ,SAAS,iBACvC,UAAU,GAAK,SAAS,EAAE,IAI9B,eAAe,UAAU,QAAU,UAAY,CAC7C,CAAC,MAAQ,SAAS,WAAa,KAC/B,CAAC,MAAQ,SAAS,WAAa,KAC/B,CAAC,MAAQ,SAAS,cAAgB,KAClC,CAAC,MAAQ,SAAS,WAAW,OAAS,EACtC,CAAC,MAAQ,SAAS,UAAU,OAAS,GAMvC,SAAS,eAAe,KAAM,WAAY,KAAM,CAC9C,KAAK,YAAY,KAAM,WAAY,KAAK,CAG1C,gBAAgB,CAAC,YAAa,iBAAkB,cAAe,iBAAkB,aAAc,kBAAkB,CAAE,eAAe,CAClI,eAAe,UAAU,YAAc,gBAAgB,UAAU,YACjE,eAAe,UAAU,aAAe,cAAc,UAAU,aAEhE,eAAe,UAAU,mBAAqB,UAAY,CACxD,IAAI,KAAO,MAAQ,SAAS,cAC5B,IAAI,WAAa,MAAQ,SAAS,KAAK,GACvC,IAAI,SAAS,EAAG,GAAI,MAAQ,SAAS,KAAK,IAAK,MAAQ,SAAS,KAAK,GAAG,EAM1E,SAAS,cAAc,KAAM,WAAY,KAAM,CAC7C,CAAC,MAAQ,SAAS,UAAY,EAAE,CAChC,CAAC,MAAQ,SAAS,QAAU,EAC5B,CAAC,MAAQ,SAAS,cAAgB,GAClC,CAAC,MAAQ,SAAS,gBAAkB,GACpC,CAAC,MAAQ,SAAS,gBAAkB,GACpC,CAAC,MAAQ,SAAS,OAAS,GAC3B,CAAC,MAAQ,SAAS,KAAO,GACzB,CAAC,MAAQ,SAAS,cAAgB,EAClC,CAAC,MAAQ,SAAS,cAAgB,KAClC,CAAC,MAAQ,SAAS,WAAa,SAC/B,CAAC,MAAQ,SAAS,OAAS,CACzB,KAAM,gBACN,OAAQ,gBACR,OAAQ,EACR,OAAQ,GACT,CACD,KAAK,YAAY,KAAM,WAAY,KAAK,CAG1C,gBAAgB,CAAC,YAAa,iBAAkB,cAAe,iBAAkB,aAAc,kBAAmB,aAAa,CAAE,cAAc,CAC/I,cAAc,UAAU,QAAU,UAAU,SAAS,CAAC,WAAW,KAAK,CAEtE,cAAc,UAAU,aAAe,UAAY,CACjD,IAAI,cAAgB,MAAQ,SAAS,aAAa,YAClD,CAAC,MAAQ,SAAS,gBAAkB,iBAAiB,aAAa,EAAI,aAAa,EAAE,OAAS,EAAE,CAChG,IAAI,QAAU,GAEV,aAAa,IACf,QAAU,GACV,CAAC,MAAQ,SAAS,OAAO,KAAO,KAAK,WAAW,aAAa,GAAG,EAEhE,CAAC,MAAQ,SAAS,OAAO,KAAO,gBAGlC,CAAC,MAAQ,SAAS,KAAO,QACzB,IAAI,UAAY,GAEZ,aAAa,KACf,UAAY,GACZ,CAAC,MAAQ,SAAS,OAAO,OAAS,KAAK,WAAW,aAAa,GAAG,CAClE,CAAC,MAAQ,SAAS,OAAO,OAAS,aAAa,IAGjD,IAAI,UAAY,MAAQ,SAAS,WAAW,YAAY,cAAc,aAAa,EAAE,CAEjFA,IACA,IACA,QAAU,aAAa,EACvB,cAAgB,MAAQ,SAAS,QACrC,CAAC,MAAQ,SAAS,OAAS,UAC3B,CAAC,MAAQ,SAAS,OAAO,OAAS,aAAa,UAAY,OAAS,MAAQ,SAAS,WAAW,YAAY,cAAc,aAAa,EAAE,CAAC,QAC1I,IAAM,aAAa,UAAU,OAE7B,IAAI,SACA,UACA,EACA,KACA,OACA,EACA,KACA,UACA,SACA,QACA,aAAe,MAAQ,SAAS,KAAK,YACrC,eAAiB,aAAa,GAAK,KAAQ,aAAa,UACxD,KAAO,EACP,KAAO,EACP,UAAY,GACZ,IAAM,EAEV,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EAAG,CAsB3B,IArBA,UAAY,MAAQ,SAAS,WAAW,YAAY,YAAY,aAAa,UAAUA,KAAI,SAAS,QAAS,MAAQ,SAAS,WAAW,YAAY,cAAc,aAAa,EAAE,CAAC,QAAQ,CAC3L,UAAY,UAAY,SAAS,MAAQ,EAAE,CAC3C,aAAa,OAAO,CAEhB,aAAe,QAAQA,KAAG,IAC5B,KAAO,CAAC,eACR,MAAQ,aAAa,QACrB,MAAQ,UAAY,EAAI,EACxB,UAAY,IAGd,OAAS,UAAU,OAAS,UAAU,OAAO,GAAG,GAAK,EAAE,CACvD,KAAO,OAAO,OACd,aAAa,MAAM,aAAa,UAAY,IAAK,aAAa,UAAY,IAAI,CAE1E,aACF,KAAK,4BAA4B,aAAc,aAAc,QAAQA,KAAG,KAAM,KAAM,KAAK,CAG3F,SAAW,iBAAiB,KAAK,CAE5B,EAAI,EAAG,EAAI,KAAM,GAAK,EAAG,CAK5B,IAJA,KAAO,OAAO,GAAG,GAAG,EAAE,EAAE,OACxB,UAAY,OAAO,GAAG,GAAG,EACzB,QAAU,EAAE,CAEP,EAAI,EAAG,EAAI,KAAM,GAAK,EACrB,IAAM,GACR,QAAQ,KAAK,aAAa,SAAS,UAAU,EAAE,GAAG,GAAI,UAAU,EAAE,GAAG,GAAI,EAAE,CAAE,aAAa,SAAS,UAAU,EAAE,GAAG,GAAI,UAAU,EAAE,GAAG,GAAI,EAAE,CAAC,CAG9I,QAAQ,KAAK,aAAa,SAAS,UAAU,EAAE,EAAI,GAAG,GAAI,UAAU,EAAE,EAAI,GAAG,GAAI,EAAE,CAAE,aAAa,SAAS,UAAU,EAAE,EAAI,GAAG,GAAI,UAAU,EAAE,EAAI,GAAG,GAAI,EAAE,CAAE,aAAa,SAAS,UAAU,EAAE,GAAG,GAAI,UAAU,EAAE,GAAG,GAAI,EAAE,CAAE,aAAa,SAAS,UAAU,EAAE,GAAG,GAAI,UAAU,EAAE,GAAG,GAAI,EAAE,CAAE,aAAa,SAAS,UAAU,EAAE,GAAG,GAAI,UAAU,EAAE,GAAG,GAAI,EAAE,CAAE,aAAa,SAAS,UAAU,EAAE,GAAG,GAAI,UAAU,EAAE,GAAG,GAAI,EAAE,CAAC,CAG9Z,QAAQ,KAAK,aAAa,SAAS,UAAU,EAAE,EAAI,GAAG,GAAI,UAAU,EAAE,EAAI,GAAG,GAAI,EAAE,CAAE,aAAa,SAAS,UAAU,EAAE,EAAI,GAAG,GAAI,UAAU,EAAE,EAAI,GAAG,GAAI,EAAE,CAAE,aAAa,SAAS,UAAU,EAAE,GAAG,GAAI,UAAU,EAAE,GAAG,GAAI,EAAE,CAAE,aAAa,SAAS,UAAU,EAAE,GAAG,GAAI,UAAU,EAAE,GAAG,GAAI,EAAE,CAAE,aAAa,SAAS,UAAU,EAAE,GAAG,GAAI,UAAU,EAAE,GAAG,GAAI,EAAE,CAAE,aAAa,SAAS,UAAU,EAAE,GAAG,GAAI,UAAU,EAAE,GAAG,GAAI,EAAE,CAAC,CAC5Z,SAAS,GAAK,QAGZ,cACF,MAAQ,QAAQA,KAAG,EACnB,MAAQ,iBAGL,MAAQ,SAAS,UAAU,KAC9B,CAAC,MAAQ,SAAS,UAAU,KAAK,KAAO,SAExC,CAAC,MAAQ,SAAS,UAAU,KAAO,CACjC,KAAM,SACP,CAGH,KAAO,IAIX,cAAc,UAAU,mBAAqB,UAAY,CACvD,IAAI,KAAO,MAAQ,SAAS,cAC5B,IAAI,MAAQ,MAAQ,SAAS,OAAO,OACpC,IAAI,QAAU,OACd,IAAI,SAAW,QACf,IAAI,WAAa,GAEX,MAAQ,SAAS,KAAK,cACzB,MAAQ,SAAS,aAAa,aAAa,MAAQ,SAAS,aAAa,aAAc,MAAQ,SAAS,mBAAmB,CAG9H,IAAIA,IACA,IACA,EACA,KACA,EACA,KACA,iBAAmB,MAAQ,SAAS,aAAa,gBACjD,SAAW,MAAQ,SAAS,aAAa,YAAY,EACzD,IAAM,QAAQ,OACd,IAAI,eACA,SAAW,KACX,WAAa,KACb,YAAc,KACd,SACA,QAEJ,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,GAAI,CAAC,QAAQA,KAAG,EAAG,CAWjB,GAVA,eAAiB,gBAAgBA,KAE7B,kBACD,MAAQ,SAAS,WAAW,SAAS,MAAM,EAE3C,MAAQ,SAAS,WAAW,SAAS,aAAa,eAAe,EAAE,EAEnE,MAAQ,SAAS,WAAW,SAAS,WAAW,eAAe,EAAE,GAG/D,MAAQ,SAAS,KAAM,CAgB1B,IAfI,gBAAkB,eAAe,GAC/B,WAAa,eAAe,KAC9B,SAAW,eAAe,GAC1B,IAAI,UAAY,eAAe,IAExB,YAAc,MAAQ,SAAS,OAAO,OAC/C,UAAY,MAAQ,SAAS,OAAO,KACpC,IAAI,WAAa,MAAQ,SAAS,OAAO,MAG3C,UAAY,MAAQ,SAAS,UAAUA,KAAG,KAC1C,KAAO,SAAS,QAEf,MAAQ,SAAS,WAAW,cAAc,WAAW,CAEjD,EAAI,EAAG,EAAI,KAAM,GAAK,EAMzB,IALA,QAAU,SAAS,GACnB,KAAO,QAAQ,QAEd,MAAQ,SAAS,WAAW,cAAc,OAAO,QAAQ,GAAI,QAAQ,GAAG,CAEpE,EAAI,EAAG,EAAI,KAAM,GAAK,GACxB,MAAQ,SAAS,WAAW,cAAc,cAAc,QAAQ,GAAI,QAAQ,EAAI,GAAI,QAAQ,EAAI,GAAI,QAAQ,EAAI,GAAI,QAAQ,EAAI,GAAI,QAAQ,EAAI,GAAG,EAIvJ,MAAQ,SAAS,WAAW,cAAc,WAAW,EAErD,MAAQ,SAAS,WAAW,cAAc,MAAM,CAInD,IAAK,MAAQ,SAAS,OAAQ,CA0B5B,IAzBI,gBAAkB,eAAe,GAC/B,cAAgB,eAAe,KACjC,YAAc,eAAe,GAC7B,IAAI,UAAY,eAAe,IAExB,eAAiB,MAAQ,SAAS,OAAO,SAClD,aAAe,MAAQ,SAAS,OAAO,OACvC,IAAI,WAAa,MAAQ,SAAS,OAAO,QAGvC,gBAAkB,eAAe,GAC/B,aAAe,eAAe,KAChC,WAAa,eAAe,GAC5B,IAAI,YAAc,eAAe,IAE1B,cAAgB,MAAQ,SAAS,OAAO,SACjD,YAAc,MAAQ,SAAS,OAAO,OACtC,IAAI,aAAe,MAAQ,SAAS,OAAO,QAG7C,UAAY,MAAQ,SAAS,UAAUA,KAAG,KAC1C,KAAO,SAAS,QAEf,MAAQ,SAAS,WAAW,cAAc,WAAW,CAEjD,EAAI,EAAG,EAAI,KAAM,GAAK,EAMzB,IALA,QAAU,SAAS,GACnB,KAAO,QAAQ,QAEd,MAAQ,SAAS,WAAW,cAAc,OAAO,QAAQ,GAAI,QAAQ,GAAG,CAEpE,EAAI,EAAG,EAAI,KAAM,GAAK,GACxB,MAAQ,SAAS,WAAW,cAAc,cAAc,QAAQ,GAAI,QAAQ,EAAI,GAAI,QAAQ,EAAI,GAAI,QAAQ,EAAI,GAAI,QAAQ,EAAI,GAAI,QAAQ,EAAI,GAAG,EAIvJ,MAAQ,SAAS,WAAW,cAAc,WAAW,EAErD,MAAQ,SAAS,WAAW,cAAc,QAAQ,CAIjD,iBACD,MAAQ,SAAS,WAAW,SAAS,SAAS,GAMvD,SAAS,WAAY,EAErB,UAAU,UAAU,YAAc,UAAY,GAI9C,SAAS,cAAe,EAExB,aAAa,UAAY,CACvB,eAAgB,UAAY,GAC5B,oBAAqB,UAAY,CAC/B,CAAC,MAAQ,SAAS,YAAc,WAAW,MAAQ,SAAS,KAAK,IAAM,MAAM,EAExE,MAAQ,SAAS,KAAK,SACzB,CAAC,MAAQ,SAAS,WAAa,SAAS,MAAM,CAC9C,CAAC,MAAQ,SAAS,aAAe,SAAS,IAAI,CAC9C,CAAC,MAAQ,SAAS,eAAiB,MAAQ,SAAS,cAEnD,MAAQ,SAAS,WAAW,aAAa,MAAQ,SAAS,aAAa,EAEvE,MAAQ,SAAS,YAAY,aAAa,MAAQ,SAAS,WAAW,EAEvE,CAAC,MAAQ,SAAS,cAAgB,MAAQ,SAAS,YAGrD,UAAU,MAAQ,SAAS,YAAY,EAEzC,wBAAyB,UAAY,CACnC,CAAC,MAAQ,SAAS,yBAA2B,IAAI,UAAU,MAAQ,QAAQ,CAC3E,CAAC,MAAQ,SAAS,oBAAsB,MAAQ,SAAS,YACzD,CAAC,MAAQ,SAAS,eAAiB,MAAQ,SAAS,cAE/C,MAAQ,SAAS,KAAK,KACxB,MAAQ,SAAS,aAAa,aAAa,MAAO,MAAQ,SAAS,KAAK,GAAG,EAGzE,MAAQ,SAAS,KAAK,KACxB,MAAQ,SAAS,aAAa,aAAa,SAAU,MAAQ,SAAS,KAAK,GAAG,EAG5E,MAAQ,SAAS,KAAK,KAAO,GAChC,KAAK,cAAc,EAGvB,cAAe,UAAY,CACzB,IAAI,yBAA2B,MAAQ,SAAS,oBAAsB,MAAQ,SAAS,mBAAmB,MAAQ,EAAE,CAEpH,IAAK,MAAQ,SAAS,eAAe,QAAS,CAC5C,IAAI,aAAe,MAAQ,SAAS,eAAe,IAAI,OAAO,CAE9D,wBAAwB,UAAY,YACpC,wBAAwB,gBAAkB,aAGvC,MAAQ,SAAS,eAAe,SACnC,wBAAwB,SAAW,MAAQ,SAAS,eAAe,MAAM,EAAE,IAG/E,YAAa,UAAY,EAGlB,MAAQ,SAAS,KAAK,KAAO,MAAQ,SAAS,SAInD,KAAK,iBAAiB,CACtB,KAAK,kBAAkB,CACvB,KAAK,eAAe,CACpB,KAAK,oBAAoB,EAEpB,MAAQ,SAAS,gBACpB,CAAC,MAAQ,SAAS,cAAgB,MAGtC,QAAS,UAAY,CACnB,CAAC,MAAQ,SAAS,aAAe,KACjC,CAAC,MAAQ,SAAS,mBAAqB,MAElC,MAAQ,SAAS,eACpB,CAAC,MAAQ,SAAS,aAAe,OAG9B,MAAQ,SAAS,eACnB,MAAQ,SAAS,YAAY,SAAS,CAEvC,CAAC,MAAQ,SAAS,YAAc,OAGpC,2BAA4B,UAAY,CACtC,CAAC,MAAQ,SAAS,YAAc,IAAI,aAAa,MAAQ,SAAS,KAAM,MAAQ,SAAU,MAAQ,SAAS,WAAW,EAExH,WAAY,UAAY,GACxB,SAAU,UAAY,GACvB,CACD,aAAa,UAAU,eAAiB,eAAe,UAAU,eACjE,aAAa,UAAU,mBAAqB,aAAa,UAAU,QACnE,aAAa,UAAU,sBAAwB,eAAe,UAAU,sBAIxE,SAAS,cAAc,KAAM,WAAY,KAAM,CAC7C,KAAK,YAAY,KAAM,WAAY,KAAK,CAG1C,gBAAgB,CAAC,YAAa,iBAAkB,aAAc,iBAAkB,aAAc,qBAAqB,CAAE,cAAc,CAEnI,cAAc,UAAU,cAAgB,UAAY,CAClD,IAAI,MAEC,MAAQ,SAAS,KAAK,SACzB,KAAO,SAAS,OAAO,CACvB,KAAK,aAAa,SAAU,MAAQ,SAAS,KAAK,GAAG,CACrD,KAAK,aAAa,UAAW,MAAQ,SAAS,KAAK,GAAG,CACtD,KAAK,aAAa,QAAS,MAAQ,SAAS,KAAK,GAAG,EAEnD,MAAQ,SAAS,WAAW,aAAa,SAAU,MAAQ,SAAS,KAAK,GAAG,EAE5E,MAAQ,SAAS,WAAW,aAAa,UAAW,MAAQ,SAAS,KAAK,GAAG,GAE9E,KAAO,UAAU,MAAM,CACvB,KAAK,MAAM,OAAS,MAAQ,SAAS,KAAK,GAAK,KAC/C,KAAK,MAAM,QAAU,MAAQ,SAAS,KAAK,GAAK,KAChD,KAAK,MAAM,iBAAmB,MAAQ,SAAS,KAAK,KAGrD,MAAQ,SAAS,aAAa,YAAY,KAAK,EAKlD,SAAS,aAAa,KAAM,WAAY,KAAM,CAC5C,CAAC,MAAQ,SAAS,OAAS,KAAK,OAChC,CAAC,MAAQ,SAAS,WAAa,CAAC,KAAK,QACrC,CAAC,MAAQ,SAAS,eAAiB,GACnC,CAAC,MAAQ,SAAS,gBAAkB,EAAE,CACtC,CAAC,MAAQ,SAAS,UAAY,MAAQ,SAAS,OAAS,kBAAkB,MAAQ,SAAS,OAAO,OAAO,CAAG,EAAE,CAC9G,KAAK,YAAY,KAAM,WAAY,KAAK,CACxC,CAAC,MAAQ,SAAS,GAAK,KAAK,GAAK,gBAAgB,QAAQ,MAAQ,QAAS,KAAK,GAAI,EAAG,WAAW,UAAW,MAAQ,QAAQ,CAAG,CAC7H,aAAc,GACf,CAGH,gBAAgB,CAAC,eAAgB,aAAc,aAAa,CAAE,aAAa,CAC3E,aAAa,UAAU,6BAA+B,aAAa,UAAU,wBAE7E,aAAa,UAAU,wBAA0B,UAAY,CAC3D,KAAK,8BAA8B,EAG9B,MAAQ,SAAS,KAAK,UACxB,MAAQ,SAAS,WAAW,aAAa,SAAU,MAAQ,SAAS,KAAK,EAAE,EAE3E,MAAQ,SAAS,WAAW,aAAa,UAAW,MAAQ,SAAS,KAAK,EAAE,CAE7E,CAAC,MAAQ,SAAS,oBAAsB,MAAQ,SAAS,aAEzD,CAAC,MAAQ,SAAS,oBAAsB,MAAQ,SAAS,cAI7D,aAAa,UAAU,iBAAmB,SAAU,KAAM,IAAK,CAI7D,IAHA,IAAI,EAAI,EACJ,YAEG,EAAI,MACJ,MAAQ,SAAS,SAAS,KAAO,MAAQ,SAAS,SAAS,GAAG,iBACjE,aAAe,MAAQ,SAAS,SAAS,GAAG,gBAAgB,EAG9D,GAAK,EAGH,aACD,MAAQ,SAAS,aAAa,aAAa,KAAM,YAAY,EAE7D,MAAQ,SAAS,aAAa,YAAY,KAAK,EAOpD,SAAS,cAAc,KAAM,WAAY,KAAM,CAE7C,CAAC,MAAQ,SAAS,OAAS,EAAE,CAE7B,CAAC,MAAQ,SAAS,WAAa,KAAK,OAEpC,CAAC,MAAQ,SAAS,WAAa,EAAE,CAEjC,CAAC,MAAQ,SAAS,eAAiB,EAAE,CAErC,CAAC,MAAQ,SAAS,UAAY,EAAE,CAEhC,CAAC,MAAQ,SAAS,kBAAoB,EAAE,CAExC,CAAC,MAAQ,SAAS,iBAAmB,EAAE,CACvC,CAAC,MAAQ,SAAS,gBAAkB,SAAS,IAAI,CACjD,KAAK,YAAY,KAAM,WAAY,KAAK,CAGxC,CAAC,MAAQ,SAAS,aAAe,EAAE,CACnC,CAAC,MAAQ,SAAS,YAAc,CAC9B,EAAG,OACH,EAAG,QACH,EAAG,EACH,EAAG,EACJ,CAGH,gBAAgB,CAAC,YAAa,iBAAkB,cAAe,gBAAiB,aAAc,iBAAkB,aAAc,kBAAkB,CAAE,cAAc,CAChK,cAAc,UAAU,kBAAoB,cAAc,UAAU,mBAEpE,cAAc,UAAU,cAAgB,UAAY,CAClD,IAAI,KAGJ,GAFA,CAAC,MAAQ,SAAS,YAAY,MAAM,SAAW,GAE1C,MAAQ,SAAS,KAAK,SACxB,MAAQ,SAAS,aAAa,aAAa,MAAQ,SAAS,gBAAgB,CAE7E,MAAQ,MAAQ,SAAS,eACpB,CACL,KAAO,SAAS,MAAM,CACtB,IAAI,MAAQ,MAAQ,SAAS,KAAK,MAAQ,MAAQ,SAAS,KAAK,MAAQ,MAAQ,SAAS,WAAW,SACpG,KAAK,aAAa,QAAS,KAAK,EAAE,CAClC,KAAK,aAAa,SAAU,KAAK,EAAE,CACnC,KAAK,aAAa,MAAQ,SAAS,gBAAgB,EAElD,MAAQ,SAAS,aAAa,YAAY,KAAK,CAGlD,KAAK,cAAc,MAAQ,SAAS,YAAa,MAAQ,SAAS,WAAY,MAAQ,SAAS,cAAe,MAAQ,SAAS,gBAAiB,EAAG,EAAE,CAAE,GAAK,CAC5J,KAAK,oBAAoB,CACzB,CAAC,MAAQ,SAAS,UAAY,MAGhC,cAAc,UAAU,oBAAsB,SAAU,aAAc,MAAO,CAC3E,IAAIA,IACA,IAAM,aAAa,OAEvB,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,MAAQ,aAAaA,KAAG,OAAO,EAAE,kBAAkB,MAAM,GAAI,MAAM,GAAI,EAAE,CAG3E,OAAO,OAGT,cAAc,UAAU,0BAA4B,SAAU,KAAM,YAAa,CAC/E,IAAI,MAAQ,KAAK,GAAG,EAChB,aAAe,KAAK,aACpBA,IACA,IAAM,MAAM,QACZ,OACA,OACA,WACA,WAEA,UAAO,GAIX,KAAK,IAAI,EAAGA,IAAI,IAAM,EAAG,KAAK,EAC5B,OAAS,KAAK,oBAAoB,aAAc,MAAM,EAAEA,KAAG,CAC3D,OAAS,KAAK,oBAAoB,aAAc,MAAM,EAAEA,KAAG,CAC3D,WAAa,KAAK,oBAAoB,aAAc,MAAM,EAAEA,IAAI,GAAG,CACnE,WAAa,KAAK,oBAAoB,aAAc,MAAM,EAAEA,IAAI,GAAG,CACnE,KAAK,YAAY,OAAQ,OAAQ,WAAY,WAAY,YAAY,CAGnE,MAAM,IACR,OAAS,KAAK,oBAAoB,aAAc,MAAM,EAAEA,KAAG,CAC3D,OAAS,KAAK,oBAAoB,aAAc,MAAM,EAAEA,KAAG,CAC3D,WAAa,KAAK,oBAAoB,aAAc,MAAM,EAAE,GAAG,CAC/D,WAAa,KAAK,oBAAoB,aAAc,MAAM,EAAE,GAAG,CAC/D,KAAK,YAAY,OAAQ,OAAQ,WAAY,WAAY,YAAY,IAIzE,cAAc,UAAU,YAAc,SAAU,OAAQ,OAAQ,WAAY,WAAY,YAAa,CACnG,KAAK,iBAAiB,OAAQ,OAAQ,WAAY,WAAW,CAC7D,IAAI,QAAU,MAAQ,SAAS,iBAC/B,YAAY,EAAI,MAAM,OAAO,KAAM,YAAY,EAAE,CACjD,YAAY,KAAO,MAAM,OAAO,MAAO,YAAY,KAAK,CACxD,YAAY,EAAI,MAAM,OAAO,IAAK,YAAY,EAAE,CAChD,YAAY,KAAO,MAAM,OAAO,OAAQ,YAAY,KAAK,EAG3D,cAAc,UAAU,iBAAmB,CACzC,KAAM,EACN,MAAO,EACP,IAAK,EACL,OAAQ,EACT,CACD,cAAc,UAAU,gBAAkB,CACxC,EAAG,EACH,KAAM,EACN,EAAG,EACH,KAAM,EACN,MAAO,EACP,OAAQ,EACT,CAED,cAAc,UAAU,iBAAmB,SAAU,GAAI,GAAI,GAAI,GAAI,CAGnE,IAAK,IAFD,OAAS,CAAC,CAAC,GAAG,GAAI,GAAG,GAAG,CAAE,CAAC,GAAG,GAAI,GAAG,GAAG,CAAC,CAEpC,EAAG,EAAG,EAAGS,IAAG,KAAM,GAAI,GAAIT,IAAI,EAAGA,IAAI,EAAG,EAAEA,IAEjD,EAAI,EAAI,GAAGA,KAAK,GAAK,GAAGA,KAAK,EAAI,GAAGA,KACpC,EAAI,GAAK,GAAGA,KAAK,EAAI,GAAGA,KAAK,EAAI,GAAGA,KAAK,EAAI,GAAGA,KAChD,EAAI,EAAI,GAAGA,KAAK,EAAI,GAAGA,KACvB,GAAK,EAEL,GAAK,EAEL,GAAK,EAED,IAAM,GAAK,IAAM,IACV,IAAM,GACf,IAAI,CAAC,EAAI,EAELS,IAAI,GAAKA,IAAI,GACf,OAAOT,KAAG,KAAK,KAAK,WAAWS,IAAG,GAAI,GAAI,GAAI,GAAIT,IAAE,CAAC,GAGvD,KAAO,EAAI,EAAI,EAAI,EAAI,EAEnB,MAAQ,IACV,IAAM,CAAC,EAAI,OAAO,KAAK,GAAK,EAAI,GAC5B,GAAK,GAAK,GAAK,GAAG,OAAOA,KAAG,KAAK,KAAK,WAAW,GAAI,GAAI,GAAI,GAAI,GAAIA,IAAE,CAAC,CAC5E,IAAM,CAAC,EAAI,OAAO,KAAK,GAAK,EAAI,GAC5B,GAAK,GAAK,GAAK,GAAG,OAAOA,KAAG,KAAK,KAAK,WAAW,GAAI,GAAI,GAAI,GAAI,GAAIA,IAAE,CAAC,IAKlF,CAAC,MAAQ,SAAS,iBAAiB,KAAO,MAAM,MAAM,KAAM,OAAO,GAAG,CACtE,CAAC,MAAQ,SAAS,iBAAiB,IAAM,MAAM,MAAM,KAAM,OAAO,GAAG,CACrE,CAAC,MAAQ,SAAS,iBAAiB,MAAQ,MAAM,MAAM,KAAM,OAAO,GAAG,CACvE,CAAC,MAAQ,SAAS,iBAAiB,OAAS,MAAM,MAAM,KAAM,OAAO,GAAG,EAG1E,cAAc,UAAU,WAAa,SAAU,IAAG,GAAI,GAAI,GAAI,GAAI,IAAG,CACnE,OAAO,MAAM,EAAIS,IAAG,EAAE,CAAG,GAAGT,KAAK,EAAI,MAAM,EAAIS,IAAG,EAAE,CAAGA,IAAI,GAAGT,KAAK,GAAK,EAAIS,KAAK,MAAMA,IAAG,EAAE,CAAG,GAAGT,KAAK,MAAMS,IAAG,EAAE,CAAG,GAAGT,MAG1H,cAAc,UAAU,qBAAuB,SAAU,UAAW,YAAa,CAC/E,IAAIA,IACA,IAAM,UAAU,OAEpB,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EACpB,UAAUA,MAAM,UAAUA,KAAG,GAC/B,KAAK,0BAA0B,UAAUA,KAAI,YAAY,CAChD,UAAUA,MAAM,UAAUA,KAAG,IACtC,KAAK,qBAAqB,UAAUA,KAAG,GAAI,YAAY,EAK7D,cAAc,UAAU,mBAAqB,SAAU,IAAK,CAC1D,OAAQ,MAAQ,SAAS,YAAY,GAAK,IAAI,IAAM,MAAQ,SAAS,YAAY,GAAK,IAAI,IAAM,MAAQ,SAAS,YAAY,OAAS,MAAQ,SAAS,YAAY,GAAK,IAAI,EAAI,IAAI,QAAU,MAAQ,SAAS,YAAY,QAAU,MAAQ,SAAS,YAAY,GAAK,IAAI,EAAI,IAAI,QAGrR,cAAc,UAAU,mBAAqB,UAAY,CAGvD,GAFA,KAAK,mBAAmB,CAEpB,EAAE,MAAQ,SAAS,UAAY,MAAQ,SAAS,gBAAkB,MAAQ,SAAS,MAAO,CAC5F,IAAI,iBAAmB,MAAQ,SAAS,gBACpC,IAAM,OASV,GARA,gBAAgB,EAAI,IACpB,gBAAgB,KAAO,CAAC,IACxB,gBAAgB,EAAI,IACpB,gBAAgB,KAAO,CAAC,IACxB,KAAK,sBAAsB,MAAQ,SAAS,UAAW,gBAAgB,CACvE,gBAAgB,MAAQ,gBAAgB,KAAO,gBAAgB,EAAI,EAAI,gBAAgB,KAAO,gBAAgB,EAC9G,gBAAgB,OAAS,gBAAgB,KAAO,gBAAgB,EAAI,EAAI,gBAAgB,KAAO,gBAAgB,EAE3G,KAAK,mBAAmB,gBAAgB,CAC1C,OAGF,IAAI,QAAU,GAkBd,IAhBK,MAAQ,SAAS,YAAY,IAAM,gBAAgB,QACtD,CAAC,MAAQ,SAAS,YAAY,EAAI,gBAAgB,OAEjD,MAAQ,SAAS,UAAU,aAAa,QAAS,gBAAgB,MAAM,CAExE,QAAU,KAGP,MAAQ,SAAS,YAAY,IAAM,gBAAgB,SACtD,CAAC,MAAQ,SAAS,YAAY,EAAI,gBAAgB,QAEjD,MAAQ,SAAS,UAAU,aAAa,SAAU,gBAAgB,OAAO,CAE1E,QAAU,IAGR,UAAY,MAAQ,SAAS,YAAY,IAAM,gBAAgB,IAAM,MAAQ,SAAS,YAAY,IAAM,gBAAgB,EAAG,CAC7H,CAAC,MAAQ,SAAS,YAAY,EAAI,gBAAgB,MAClD,CAAC,MAAQ,SAAS,YAAY,EAAI,gBAAgB,OAClD,CAAC,MAAQ,SAAS,YAAY,EAAI,gBAAgB,EAClD,CAAC,MAAQ,SAAS,YAAY,EAAI,gBAAgB,GAEjD,MAAQ,SAAS,UAAU,aAAa,WAAY,MAAQ,SAAS,YAAY,EAAI,KAAO,MAAQ,SAAS,YAAY,EAAI,KAAO,MAAQ,SAAS,YAAY,EAAI,KAAO,MAAQ,SAAS,YAAY,EAAE,CAE5M,IAAI,YAAc,MAAQ,SAAS,UAAU,MACzC,eAAiB,cAAgB,MAAQ,SAAS,YAAY,EAAI,OAAS,MAAQ,SAAS,YAAY,EAAI,MAChH,WAAW,UAAY,eACvB,WAAW,gBAAkB,kBAQnC,SAAS,aAAa,KAAM,WAAY,KAAM,CAC5C,CAAC,MAAQ,SAAS,UAAY,EAAE,CAChC,CAAC,MAAQ,SAAS,UAAY,EAAE,CAChC,CAAC,MAAQ,SAAS,YAAc,CAC9B,EAAG,OACH,EAAG,QACH,EAAG,EACH,EAAG,EACJ,CACD,CAAC,MAAQ,SAAS,WAAa,MAC/B,CAAC,MAAQ,SAAS,SAAW,GAC7B,KAAK,YAAY,KAAM,WAAY,KAAK,CAG1C,gBAAgB,CAAC,YAAa,iBAAkB,aAAc,iBAAkB,aAAc,qBAAsB,aAAa,CAAE,aAAa,CAEhJ,aAAa,UAAU,cAAgB,UAAY,CAGjD,GAFA,CAAC,MAAQ,SAAS,SAAW,KAAK,YAAY,EAEzC,MAAQ,SAAS,SAAU,CAC9B,CAAC,MAAQ,SAAS,WAAa,MAC/B,CAAC,MAAQ,SAAS,OAAS,MAAQ,SAAS,KAAK,KAAK,EACtD,CAAC,MAAQ,SAAS,OAAS,MAAQ,SAAS,KAAK,KAAK,GAErD,MAAQ,SAAS,WAAW,aAAa,SAAU,MAAQ,SAAS,MAAM,EAE1E,MAAQ,SAAS,WAAW,aAAa,UAAW,MAAQ,SAAS,MAAM,CAE5E,IAAI,EAAI,SAAS,IAAI,EAEpB,MAAQ,SAAS,cAAc,YAAY,EAAE,CAE9C,CAAC,MAAQ,SAAS,UAAY,OAE9B,CAAC,MAAQ,SAAS,WAAa,OAC/B,CAAC,MAAQ,SAAS,WAAa,MAAQ,SAAS,aAGlD,KAAK,gBAAgB,EAGvB,aAAa,UAAU,aAAe,UAAY,CAChD,IAAI,cAAgB,MAAQ,SAAS,aAAa,YAClD,CAAC,MAAQ,SAAS,gBAAkB,iBAAiB,aAAa,EAAI,aAAa,EAAE,OAAS,EAAE,CAChG,IAAI,gBAAkB,MAAQ,SAAS,UAAU,MAC7C,UAAY,aAAa,GAAK,KAAK,WAAW,aAAa,GAAG,CAAG,gBACrE,eAAe,KAAO,UACtB,eAAe,MAAQ,UAEnB,aAAa,KACf,eAAe,OAAS,KAAK,WAAW,aAAa,GAAG,CACxD,eAAe,YAAc,aAAa,GAAK,MAGjD,IAAI,UAAY,MAAQ,SAAS,WAAW,YAAY,cAAc,aAAa,EAAE,CAErF,GAAI,EAAE,MAAQ,SAAS,WAAW,YAAY,MAI5C,GAHA,eAAe,SAAW,aAAa,UAAY,KACnD,eAAe,WAAa,aAAa,UAAY,KAEjD,SAAS,OACX,CAAC,MAAQ,SAAS,UAAU,UAAY,SAAS,WAC5C,CACL,eAAe,WAAa,SAAS,QACrC,IAAI,QAAU,aAAa,QAE3B,eAAe,UADF,aAAa,OAE1B,eAAe,WAAa,QAIhC,IAAIA,IACA,IACA,QAAU,aAAa,EAC3B,IAAM,QAAQ,OACd,IAAI,MACA,QACA,MACA,cAAgB,MAAQ,SAAS,QACjC,OACA,SAAW,GACX,IAAM,EAEV,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EAAG,CAuC3B,IAtCK,MAAQ,SAAS,WAAW,YAAY,QACrC,MAAQ,SAAS,UAAU,KAM/B,OAAS,MAAQ,SAAS,UAAU,MALpC,MAAQ,SAAS,OAAO,CACxB,MAAM,aAAa,iBAAkB,OAAO,CAC5C,MAAM,aAAa,kBAAmB,QAAQ,CAC9C,MAAM,aAAa,oBAAqB,IAAI,GAKxC,MAAQ,SAAS,YAChB,MAAQ,SAAS,UAAU,MAC9B,SAAW,MAAQ,SAAS,UAAU,KACtC,MAAQ,QAAQ,SAAS,KAEzB,QAAU,UAAU,MAAM,CAC1B,QAAQ,MAAM,WAAa,EAC3B,MAAQ,SAAS,MAAM,CACvB,MAAM,YAAY,MAAM,CACxB,SAAS,QAAQ,KAGV,MAAQ,SAAS,SAY5B,OAAS,MAAQ,SAAS,UAAU,MAAQ,MAAQ,SAAS,UAAU,KAAO,SAAS,OAAO,EAXzF,MAAQ,SAAS,UAAU,MAC9B,SAAW,MAAQ,SAAS,UAAU,KACtC,OAAS,MAAQ,SAAS,UAAU,OAEpC,QAAU,UAAU,OAAO,CAC3B,SAAS,QAAQ,CACjB,MAAQ,UAAU,OAAO,CACzB,SAAS,MAAM,CACf,QAAQ,YAAY,MAAM,GAOzB,MAAQ,SAAS,WAAW,YAAY,MAAO,CAClD,IAAI,UAAY,MAAQ,SAAS,WAAW,YAAY,YAAY,aAAa,UAAUA,KAAI,SAAS,QAAS,MAAQ,SAAS,WAAW,YAAY,cAAc,aAAa,EAAE,CAAC,QAAQ,CAE3L,UAEA,SACU,SAAS,KAET,KAYd,GATA,aAAa,OAAO,CAEhB,WAAa,UAAU,SACzB,OAAS,UAAU,OAAO,GAAG,GAC7B,aAAa,MAAM,aAAa,UAAY,IAAK,aAAa,UAAY,IAAI,CAC9E,SAAW,KAAK,gBAAgB,aAAc,OAAO,CACrD,MAAM,aAAa,IAAK,SAAS,GAG7B,MAAQ,SAAS,UAsBpB,MAAQ,SAAS,UAAU,YAAY,MAAM,KAtBf,CAG/B,IAFC,MAAQ,SAAS,UAAU,YAAY,QAAQ,CAE5C,WAAa,UAAU,OAAQ,CAEjC,SAAS,KAAK,YAAY,MAAM,CAChC,IAAI,YAAc,MAAM,SAAS,CACjC,MAAM,aAAa,QAAS,YAAY,MAAQ,EAAE,CAClD,MAAM,aAAa,SAAU,YAAY,OAAS,EAAE,CACpD,MAAM,aAAa,UAAW,YAAY,EAAI,EAAI,KAAO,YAAY,EAAI,GAAK,KAAO,YAAY,MAAQ,GAAK,KAAO,YAAY,OAAS,GAAG,CAC7I,IAAI,WAAa,MAAM,MACnB,iBAAmB,cAAgB,YAAY,EAAI,GAAK,OAAS,YAAY,EAAI,GAAK,MAC1F,WAAW,UAAY,iBACvB,WAAW,gBAAkB,iBAC7B,QAAQA,KAAG,QAAU,YAAY,EAAI,OAErC,MAAM,aAAa,QAAS,EAAE,CAC9B,MAAM,aAAa,SAAU,EAAE,CAGjC,QAAQ,YAAY,MAAM,UAK5B,MAAM,YAAc,QAAQA,KAAG,IAC/B,MAAM,eAAe,uCAAwC,YAAa,WAAW,EAE/E,MAAQ,SAAS,UASpB,MAAQ,SAAS,UAAU,YAAY,MAAM,KATf,EAC9B,MAAQ,SAAS,UAAU,YAAY,QAAQ,CAGhD,IAAI,OAAS,MAAM,MACf,iBAAmB,iBAAmB,CAAC,aAAa,UAAY,IAAM,QAC1E,OAAO,UAAY,iBACnB,OAAO,gBAAkB,kBAOvB,MAAQ,SAAS,SAGrB,CAAC,MAAQ,SAAS,UAAU,KAAO,MAFnC,CAAC,MAAQ,SAAS,UAAU,KAAO,QAKrC,CAAC,MAAQ,SAAS,UAAU,KAAK,MAAM,QAAU,QACjD,CAAC,MAAQ,SAAS,UAAU,KAAO,MACnC,KAAO,EAGT,KAAO,KAAO,MAAQ,SAAS,UAAU,QACvC,CAAC,MAAQ,SAAS,UAAU,KAAK,MAAM,QAAU,OACjD,KAAO,GAIX,aAAa,UAAU,mBAAqB,UAAY,CACtD,IAAI,SAEJ,IAAK,MAAQ,SAAS,KAAK,YAAa,CACtC,GAAI,EAAE,MAAQ,SAAS,eAAiB,EAAE,MAAQ,SAAS,mBACzD,OAGF,IAAK,MAAQ,SAAS,WAAa,MAAQ,SAAS,eAAe,QAAS,EAEzE,MAAQ,SAAS,WAAW,aAAa,UAAW,EAAE,MAAQ,SAAS,eAAe,MAAM,EAAE,EAAE,GAAK,IAAM,EAAE,MAAQ,SAAS,eAAe,MAAM,EAAE,EAAE,GAAK,KAAO,MAAQ,SAAS,MAAQ,KAAO,MAAQ,SAAS,MAAM,CAE3N,UAAY,MAAQ,SAAS,WAAW,MACxC,IAAI,YAAc,aAAe,EAAE,MAAQ,SAAS,eAAe,MAAM,EAAE,EAAE,GAAK,MAAQ,EAAE,MAAQ,SAAS,eAAe,MAAM,EAAE,EAAE,GAAK,MAC3I,SAAS,UAAY,YACrB,SAAS,gBAAkB,aAI/B,IAAC,MAAQ,SAAS,aAAa,aAAa,MAAQ,SAAS,aAAa,aAAc,MAAQ,SAAS,mBAAmB,CAExH,IAAE,MAAQ,SAAS,oBAAsB,EAAE,MAAQ,SAAS,aAAa,oBAI7E,KAAIA,IACA,IACA,MAAQ,EACR,iBAAmB,MAAQ,SAAS,aAAa,gBACjD,SAAW,MAAQ,SAAS,aAAa,YAAY,EACzD,IAAM,QAAQ,OACd,IAAI,eACA,SACA,SAEJ,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EACpB,QAAQA,KAAG,EACb,OAAS,GAET,UAAY,MAAQ,SAAS,UAAUA,KACvC,UAAY,MAAQ,SAAS,UAAUA,KACvC,eAAiB,gBAAgB,OACjC,OAAS,EAEL,eAAe,KAAK,KAChB,MAAQ,SAAS,SAIrB,SAAS,aAAa,YAAa,eAAe,EAAE,EAHpD,SAAS,MAAM,gBAAkB,eAAe,EAChD,SAAS,MAAM,UAAY,eAAe,IAO9C,SAAS,MAAM,QAAU,eAAe,EAEpC,eAAe,IAAM,eAAe,KAAK,IAC3C,SAAS,aAAa,eAAgB,eAAe,GAAG,CAGtD,eAAe,IAAM,eAAe,KAAK,IAC3C,SAAS,aAAa,SAAU,eAAe,GAAG,CAGhD,eAAe,IAAM,eAAe,KAAK,KAC3C,SAAS,aAAa,OAAQ,eAAe,GAAG,CAChD,SAAS,MAAM,MAAQ,eAAe,KAK5C,IAAK,MAAQ,SAAS,UAAU,SAAW,EAAE,MAAQ,SAAS,UAAY,MAAQ,SAAS,gBAAkB,MAAQ,SAAS,MAAO,CACnI,IAAI,aAAe,MAAQ,SAAS,UAAU,SAAS,EAElD,MAAQ,SAAS,YAAY,IAAM,YAAY,QAClD,CAAC,MAAQ,SAAS,YAAY,EAAI,YAAY,OAE7C,MAAQ,SAAS,WAAW,aAAa,QAAS,YAAY,MAAM,GAGlE,MAAQ,SAAS,YAAY,IAAM,YAAY,SAClD,CAAC,MAAQ,SAAS,YAAY,EAAI,YAAY,QAE7C,MAAQ,SAAS,WAAW,aAAa,SAAU,YAAY,OAAO,EAGzE,IAAI,OAAS,EAEb,IAAK,MAAQ,SAAS,YAAY,IAAM,YAAY,MAAQ,OAAS,IAAM,MAAQ,SAAS,YAAY,IAAM,YAAY,OAAS,OAAS,IAAM,MAAQ,SAAS,YAAY,IAAM,YAAY,EAAI,SAAW,MAAQ,SAAS,YAAY,IAAM,YAAY,EAAI,OAAQ,CACzQ,CAAC,MAAQ,SAAS,YAAY,EAAI,YAAY,MAAQ,OAAS,EAC/D,CAAC,MAAQ,SAAS,YAAY,EAAI,YAAY,OAAS,OAAS,EAChE,CAAC,MAAQ,SAAS,YAAY,EAAI,YAAY,EAAI,OAClD,CAAC,MAAQ,SAAS,YAAY,EAAI,YAAY,EAAI,QAEjD,MAAQ,SAAS,WAAW,aAAa,WAAY,MAAQ,SAAS,YAAY,EAAI,KAAO,MAAQ,SAAS,YAAY,EAAI,KAAO,MAAQ,SAAS,YAAY,EAAI,KAAO,MAAQ,SAAS,YAAY,EAAE,CAE7M,UAAY,MAAQ,SAAS,WAAW,MACxC,IAAI,aAAe,cAAgB,MAAQ,SAAS,YAAY,EAAI,OAAS,MAAQ,SAAS,YAAY,EAAI,MAC9G,SAAS,UAAY,aACrB,SAAS,gBAAkB,iBAQjC,SAAS,cAAc,KAAM,WAAY,KAAM,CAC7C,CAAC,MAAQ,SAAS,UAAY,WAAW,aAAa,KAAK,MAAM,CACjE,KAAK,YAAY,KAAM,WAAY,KAAK,CAG1C,gBAAgB,CAAC,YAAa,iBAAkB,aAAc,cAAe,iBAAkB,aAAc,kBAAkB,CAAE,cAAc,CAE/I,cAAc,UAAU,cAAgB,UAAY,CAClD,IAAI,WAAa,MAAQ,SAAS,WAAW,eAAe,MAAQ,SAAS,UAAU,CAEnF,IAAM,IAAI,OAET,MAAQ,SAAS,KAAK,SACzB,CAAC,MAAQ,SAAS,UAAY,SAAS,QAAQ,EAE9C,MAAQ,SAAS,UAAU,aAAa,SAAU,MAAQ,SAAS,UAAU,EAAI,KAAK,EAEtF,MAAQ,SAAS,UAAU,aAAa,UAAW,MAAQ,SAAS,UAAU,EAAI,KAAK,EAEvF,MAAQ,SAAS,UAAU,eAAe,+BAAgC,OAAQ,UAAU,EAE5F,MAAQ,SAAS,aAAa,aAAa,MAAQ,SAAS,UAAU,EAEtE,MAAQ,SAAS,YAAY,aAAa,SAAU,MAAQ,SAAS,UAAU,EAAE,EAEjF,MAAQ,SAAS,YAAY,aAAa,UAAW,MAAQ,SAAS,UAAU,EAAE,GAElF,MAAQ,SAAS,aAAa,YAAY,IAAI,CAGjD,IAAI,YAAc,YAClB,IAAI,IAAM,WAEL,MAAQ,SAAS,KAAK,KACxB,MAAQ,SAAS,YAAY,aAAa,MAAO,MAAQ,SAAS,KAAK,GAAG,EAM/E,SAAS,eAAe,KAAM,WAAY,KAAM,CAC9C,KAAK,WAAW,CAChB,KAAK,aAAa,KAAM,WAAY,KAAK,CACzC,KAAK,eAAe,CACpB,IAAI,QAAU,gBAAgB,QAe9B,GAdA,CAAC,MAAQ,SAAS,GAAK,QAAQ,MAAQ,QAAS,KAAK,GAAI,EAAG,EAAG,MAAQ,QAAQ,CAE3E,KAAK,GAAG,EAAE,GACZ,CAAC,MAAQ,SAAS,GAAK,QAAQ,MAAQ,QAAS,KAAK,GAAG,EAAE,EAAG,EAAG,EAAG,MAAQ,QAAQ,CACnF,CAAC,MAAQ,SAAS,GAAK,QAAQ,MAAQ,QAAS,KAAK,GAAG,EAAE,EAAG,EAAG,EAAG,MAAQ,QAAQ,CACnF,CAAC,MAAQ,SAAS,GAAK,QAAQ,MAAQ,QAAS,KAAK,GAAG,EAAE,EAAG,EAAG,EAAG,MAAQ,QAAQ,EAEnF,CAAC,MAAQ,SAAS,EAAI,QAAQ,MAAQ,QAAS,KAAK,GAAG,EAAG,EAAG,EAAG,MAAQ,QAAQ,CAG9E,KAAK,GAAG,IACV,CAAC,MAAQ,SAAS,EAAI,QAAQ,MAAQ,QAAS,KAAK,GAAG,EAAG,EAAG,EAAG,MAAQ,QAAQ,EAG9E,KAAK,GAAG,GAAG,EAAE,QAAU,KAAK,GAAG,GAAG,EAAE,GAAG,GAAI,CAC7C,IAAIA,IACA,IAAM,KAAK,GAAG,GAAG,EAAE,OAEvB,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,KAAK,GAAG,GAAG,EAAEA,KAAG,GAAK,KACrB,KAAK,GAAG,GAAG,EAAEA,KAAG,GAAK,KAIzB,CAAC,MAAQ,SAAS,GAAK,QAAQ,MAAQ,QAAS,KAAK,GAAG,GAAI,EAAG,UAAW,MAAQ,QAAQ,CAC1F,CAAC,MAAQ,SAAS,GAAG,GAAK,GAC1B,CAAC,MAAQ,SAAS,GAAK,QAAQ,MAAQ,QAAS,KAAK,GAAG,GAAI,EAAG,UAAW,MAAQ,QAAQ,CAC1F,CAAC,MAAQ,SAAS,GAAK,QAAQ,MAAQ,QAAS,KAAK,GAAG,GAAI,EAAG,UAAW,MAAQ,QAAQ,CAC1F,CAAC,MAAQ,SAAS,GAAK,QAAQ,MAAQ,QAAS,KAAK,GAAG,GAAI,EAAG,UAAW,MAAQ,QAAQ,CAC1F,CAAC,MAAQ,SAAS,IAAM,IAAI,OAC5B,CAAC,MAAQ,SAAS,SAAW,IAAI,OACjC,CAAC,MAAQ,SAAS,cAAgB,GAElC,CAAC,MAAQ,SAAS,eAAiB,CACjC,MAAO,MAAQ,QAChB,CAGH,gBAAgB,CAAC,YAAa,aAAc,iBAAiB,CAAE,eAAe,CAE9E,eAAe,UAAU,MAAQ,UAAY,CAC3C,IAAIA,IACA,KAAO,MAAQ,SAAS,KAAK,eAAe,OAC5C,KACA,iBACA,eAEJ,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EAIxB,GAFA,MAAQ,MAAQ,SAAS,KAAK,eAAeA,KAEzC,KAAK,OAAS,KAAM,CACtB,iBAAmB,KAAK,gBAAgB,MACxC,eAAiB,KAAK,UAAU,MAChC,IAAI,aAAe,MAAQ,SAAS,GAAG,EAAI,KACvC,OAAS,cACT,OAAS,4CACb,iBAAiB,YAAc,YAC/B,iBAAiB,kBAAoB,YACrC,eAAe,gBAAkB,OACjC,eAAe,mBAAqB,OACpC,eAAe,sBAAwB,OACvC,iBAAiB,UAAY,OAC7B,iBAAiB,gBAAkB,SAKzC,eAAe,UAAU,eAAiB,UAAY,GAEtD,eAAe,UAAU,KAAO,UAAY,GAE5C,eAAe,UAAU,YAAc,UAAY,CACjD,IAAI,MAAQ,MAAQ,SAAS,cACzBA,IACA,IAEJ,IAAK,MAAQ,SAAS,UAGpB,IAFA,KAAO,MAAQ,SAAS,UAAU,OAE7B,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,MAAQ,MAAQ,SAAS,UAAUA,KAAG,eAAe,MAAM,MAAQ,KAIvE,GAAI,OAAS,MAAQ,SAAS,GAAG,OAAS,MAAQ,SAAS,IAAM,MAAQ,SAAS,EAAE,OAAS,MAAQ,SAAS,MAAQ,MAAQ,SAAS,GAAG,OAAS,MAAQ,SAAS,GAAG,OAAS,MAAQ,SAAS,GAAG,QAAU,MAAQ,SAAS,GAAG,OAAS,MAAQ,SAAS,GAAG,OAAS,MAAQ,SAAS,GAAG,OAAS,MAAQ,SAAS,GAAG,OAAS,MAAQ,SAAS,IAAM,MAAQ,SAAS,EAAE,KAAM,CAGhX,IAFC,MAAQ,SAAS,IAAI,OAAO,EAExB,MAAQ,SAAS,UAGpB,IAFA,KAAO,MAAQ,SAAS,UAAU,OAAS,EAEtC,IAAI,IAAKA,KAAK,EAAG,MAAQ,CAC5B,IAAI,SAAW,MAAQ,SAAS,UAAUA,KAAG,eAAe,OAE3D,MAAQ,SAAS,IAAI,UAAU,CAAC,QAAQ,EAAE,EAAE,GAAI,CAAC,QAAQ,EAAE,EAAE,GAAI,QAAQ,EAAE,EAAE,GAAG,EAEhF,MAAQ,SAAS,IAAI,QAAQ,CAAC,QAAQ,GAAG,EAAE,GAAG,CAAC,QAAQ,CAAC,QAAQ,GAAG,EAAE,GAAG,CAAC,QAAQ,QAAQ,GAAG,EAAE,GAAG,EAEjG,MAAQ,SAAS,IAAI,QAAQ,CAAC,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,GAAG,EAAE,CAAC,QAAQ,QAAQ,GAAG,EAAE,EAExF,MAAQ,SAAS,IAAI,MAAM,EAAI,QAAQ,EAAE,EAAE,GAAI,EAAI,QAAQ,EAAE,EAAE,GAAI,EAAI,QAAQ,EAAE,EAAE,GAAG,EAEtF,MAAQ,SAAS,IAAI,UAAU,QAAQ,EAAE,EAAE,GAAI,QAAQ,EAAE,EAAE,GAAI,QAAQ,EAAE,EAAE,GAAG,CAUnF,IANK,MAAQ,SAAS,GACnB,MAAQ,SAAS,IAAI,UAAU,EAAE,MAAQ,SAAS,EAAE,EAAE,GAAI,EAAE,MAAQ,SAAS,EAAE,EAAE,IAAK,MAAQ,SAAS,EAAE,EAAE,GAAG,EAE9G,MAAQ,SAAS,IAAI,UAAU,EAAE,MAAQ,SAAS,GAAG,EAAG,EAAE,MAAQ,SAAS,GAAG,GAAI,MAAQ,SAAS,GAAG,EAAE,EAGtG,MAAQ,SAAS,EAAG,CACvB,IAAI,YAEC,MAAQ,SAAS,EACP,EAAE,MAAQ,SAAS,EAAE,EAAE,IAAM,MAAQ,SAAS,EAAE,EAAE,IAAK,MAAQ,SAAS,EAAE,EAAE,IAAM,MAAQ,SAAS,EAAE,EAAE,IAAK,MAAQ,SAAS,EAAE,EAAE,IAAM,MAAQ,SAAS,EAAE,EAAE,GAAG,CAE/J,EAAE,MAAQ,SAAS,GAAG,GAAK,MAAQ,SAAS,EAAE,EAAE,IAAK,MAAQ,SAAS,GAAG,GAAK,MAAQ,SAAS,EAAE,EAAE,IAAK,MAAQ,SAAS,GAAG,GAAK,MAAQ,SAAS,EAAE,EAAE,GAAG,CAGpK,IAAM,KAAK,KAAc,WAAW,IAAI,EAAc,WAAW,IAAI,EAAc,WAAW,IAAI,EAAG,CAErG,QAAU,CAAC,WAAW,GAAK,IAAK,WAAW,GAAK,IAAK,WAAW,GAAK,IAAI,CACzE,eAAiB,KAAK,KAAK,QAAQ,GAAK,QAAQ,GAAK,QAAQ,GAAK,QAAQ,GAAG,CAC7E,WAAa,KAAK,MAAM,QAAQ,GAAI,eAAe,CACnD,WAAa,KAAK,MAAM,QAAQ,GAAI,CAAC,QAAQ,GAAG,EAEnD,MAAQ,SAAS,IAAI,QAAQ,WAAW,CAAC,QAAQ,CAAC,WAAW,EAG/D,MAAQ,SAAS,IAAI,QAAQ,EAAE,MAAQ,SAAS,GAAG,EAAE,CAAC,QAAQ,EAAE,MAAQ,SAAS,GAAG,EAAE,CAAC,SAAS,MAAQ,SAAS,GAAG,EAAE,EAEtH,MAAQ,SAAS,IAAI,QAAQ,EAAE,MAAQ,SAAS,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,MAAQ,SAAS,GAAG,EAAE,GAAG,CAAC,SAAS,MAAQ,SAAS,GAAG,EAAE,GAAG,EAE/H,MAAQ,SAAS,IAAI,WAAW,MAAQ,SAAS,WAAW,SAAS,EAAI,GAAI,MAAQ,SAAS,WAAW,SAAS,EAAI,EAAG,EAAE,EAE3H,MAAQ,SAAS,IAAI,UAAU,EAAG,GAAI,MAAQ,SAAS,GAAG,EAAE,CAE7D,IAAI,iBAAmB,EAAE,MAAQ,SAAS,SAAS,QAAQ,MAAQ,SAAS,IAAI,CAEhF,IAAK,mBAAqB,MAAQ,SAAS,GAAG,QAAU,MAAQ,SAAS,KAAK,eAAgB,CAC5F,KAAO,MAAQ,SAAS,KAAK,eAAe,OAC5C,IAAI,KACA,iBACA,eAEJ,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EAGxB,GAFA,MAAQ,MAAQ,SAAS,KAAK,eAAeA,KAEzC,KAAK,OAAS,KAAM,CACtB,GAAI,iBAAkB,CACpB,IAAI,UAAY,MAAQ,SAAS,IAAI,OAAO,CAE5C,eAAiB,KAAK,UAAU,MAChC,eAAe,UAAY,SAC3B,eAAe,gBAAkB,UAG9B,MAAQ,SAAS,GAAG,OACvB,iBAAmB,KAAK,gBAAgB,MACxC,iBAAiB,aAAe,MAAQ,SAAS,GAAG,EAAI,KACxD,iBAAiB,mBAAqB,MAAQ,SAAS,GAAG,EAAI,OAKnE,MAAQ,SAAS,IAAI,OAAO,MAAQ,SAAS,SAAS,EAI3D,CAAC,MAAQ,SAAS,cAAgB,IAGpC,eAAe,UAAU,aAAe,SAAU,IAAK,CACrD,KAAK,kBAAkB,IAAK,GAAK,EAGnC,eAAe,UAAU,QAAU,UAAY,GAE/C,eAAe,UAAU,eAAiB,UAAY,CACpD,OAAO,MAGT,SAAS,UAAW,EAEpB,SAAS,UAAU,YAAc,UAAY,GAM7C,IAAI,iBAAmB,UAAY,CACjC,IAAI,SAAW,EAAE,CACb,qBAAuB,EAAE,CACzB,SAAW,EACX,IAAM,EACN,qBAAuB,EACvB,SAAW,GACX,UAAY,GAEhB,SAAS,cAAc,GAAI,CAIzB,IAHA,IAAIA,IAAI,EACJ,SAAW,GAAG,OAEXA,IAAI,KACL,qBAAqBA,KAAG,YAAc,WACxC,qBAAqB,OAAOA,IAAG,EAAE,CACjC,MACA,MAEK,SAAS,UACZ,sBAAsB,EAI1B,KAAK,EAIT,SAAS,kBAAkB,QAAS,gBAAe,CACjD,GAAI,CAAC,QACH,OAAO,KAKT,IAFA,IAAIA,IAAI,EAEDA,IAAI,KAAK,CACd,GAAI,qBAAqBA,KAAG,OAAS,SAAW,qBAAqBA,KAAG,OAAS,KAC/E,OAAO,qBAAqBA,KAAG,UAGjC,KAAK,EAGP,IAAI,SAAW,IAAI,cAGnB,OAFA,eAAe,SAAU,QAAQ,CACjC,SAAS,QAAQ,QAAS3I,gBAAc,CACjC,SAGT,SAAS,yBAA0B,CACjC,IAAI2I,IACA,SAAW,qBAAqB,OAChC,WAAa,EAAE,CAEnB,IAAK,IAAI,EAAGA,IAAI,SAAU,KAAK,EAC7B,WAAW,KAAK,qBAAqBA,KAAG,UAAU,CAGpD,OAAO,WAGT,SAAS,iBAAkB,CACzB,sBAAwB,EACxB,UAAU,CAGZ,SAAS,sBAAuB,CAC9B,uBAGF,SAAS,eAAe,SAAU,QAAS,CACzC,SAAS,iBAAiB,UAAW,cAAc,CACnD,SAAS,iBAAiB,UAAW,gBAAgB,CACrD,SAAS,iBAAiB,QAAS,qBAAqB,CACxD,qBAAqB,KAAK,CACxB,KAAM,QACN,UAAW,SACZ,CAAC,CACF,KAAO,EAGT,SAASpI,gBAAc,OAAQ,CAC7B,IAAI,SAAW,IAAI,cAGnB,OAFA,eAAe,SAAU,KAAK,CAC9B,SAAS,UAAU,OAAO,CACnB,SAGT,SAAS,SAAS,IAAK,YAAW,CAChC,IAAIoI,IAEJ,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,qBAAqBA,KAAG,UAAU,SAAS,IAAKnI,YAAU,CAI9D,SAAS,aAAa,IAAK,YAAW,CACpC,IAAImI,IAEJ,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,qBAAqBA,KAAG,UAAU,aAAa,IAAKnI,YAAU,CAIlE,SAAS,KAAK,YAAW,CACvB,IAAImI,IAEJ,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,qBAAqBA,KAAG,UAAU,KAAKnI,YAAU,CAIrD,SAAS,OAAO,QAAS,CACvB,IAAI,YAAc,QAAU,SACxBmI,IAEJ,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,qBAAqBA,KAAG,UAAU,YAAY,YAAY,CAG5D,SAAW,QAEP,sBAAwB,CAAC,UAC3B,SAAO,sBAAsB,OAAO,CAEpC,SAAW,GAIf,SAAS,MAAM,QAAS,CACtB,SAAW,QACX,SAAO,sBAAsB,OAAO,CAGtC,SAAS,MAAM,YAAW,CACxB,IAAIA,IAEJ,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,qBAAqBA,KAAG,UAAU,MAAMnI,YAAU,CAItD,SAAS,YAAY,MAAO,QAAS,YAAW,CAC9C,IAAImI,IAEJ,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,qBAAqBA,KAAG,UAAU,YAAY,MAAO,QAASnI,YAAU,CAI5E,SAAS,KAAK,YAAW,CACvB,IAAImI,IAEJ,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,qBAAqBA,KAAG,UAAU,KAAKnI,YAAU,CAIrD,SAAS,YAAY,YAAW,CAC9B,IAAImI,IAEJ,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,qBAAqBA,KAAG,UAAU,YAAYnI,YAAU,CAI5D,SAAS,QAAQ,YAAW,CAC1B,IAAImI,IAEJ,IAAK,IAAI,IAAM,EAAGA,KAAK,EAAG,MACxB,qBAAqBA,KAAG,UAAU,QAAQnI,YAAU,CAIxD,SAASC,mBAAiB,gBAAe,aAAY,WAAU,CAC7D,IAAI,aAAe,EAAE,CAAC,OAAO,EAAE,CAAC,MAAM,KAAK,SAAS,uBAAuB,SAAS,CAAC,CAAE,EAAE,CAAC,MAAM,KAAK,SAAS,uBAAuB,YAAY,CAAC,CAAC,CAC/IkI,IACA,SAAW,aAAa,OAE5B,IAAK,IAAI,EAAGA,IAAI,SAAU,KAAK,EACzBrI,YACF,aAAaqI,KAAG,aAAa,eAAgBrI,WAAS,CAGxD,kBAAkB,aAAaqI,KAAI3I,gBAAc,CAGnD,GAAIU,cAAc,WAAa,EAAG,CAChC,AACE,aAAW,MAGb,IAAI,KAAO,SAAS,qBAAqB,OAAO,CAAC,GACjD,KAAK,UAAY,GACjB,IAAI,IAAM,UAAU,MAAM,CAC1B,IAAI,MAAM,MAAQ,OAClB,IAAI,MAAM,OAAS,OACnB,IAAI,aAAa,eAAgBJ,WAAS,CAC1C,KAAK,YAAY,IAAI,CACrB,kBAAkB,IAAKN,gBAAc,EAIzC,SAAS,QAAS,CAChB,IAAI2I,IAEJ,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,qBAAqBA,KAAG,UAAU,QAAQ,CAI9C,SAAS,UAAW,CACd,CAAC,WAAa,uBAGd,YADA,SAAO,sBAAsB,MAAM,CACxB,KAKjB,SAAS,QAAS,CAChB,UAAY,GAGd,SAAS,UAAW,CAClB,UAAY,GACZ,UAAU,CAGZ,SAAS,UAAU,IAAK,YAAW,CACjC,IAAIA,IAEJ,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,qBAAqBA,KAAG,UAAU,UAAU,IAAKnI,YAAU,CAI/D,SAAS,KAAK,YAAW,CACvB,IAAImI,IAEJ,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,qBAAqBA,KAAG,UAAU,KAAKnI,YAAU,CAIrD,SAAS,OAAO,YAAW,CACzB,IAAImI,IAEJ,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,qBAAqBA,KAAG,UAAU,OAAOnI,YAAU,CAuBvD,MAnBA,UAAS,kBAAoB,kBAC7B,SAAS,cAAgBD,gBACzB,SAAS,SAAW,SACpB,SAAS,aAAe,aACxB,SAAS,KAAO,KAChB,SAAS,MAAQ,MACjB,SAAS,KAAO,KAChB,SAAS,YAAc,YACvB,SAAS,iBAAmBE,mBAC5B,SAAS,OAAS,OAElB,SAAS,YAAc,YACvB,SAAS,QAAU,QACnB,SAAS,OAAS,OAClB,SAAS,SAAW,SACpB,SAAS,UAAY,UACrB,SAAS,KAAO,KAChB,SAAS,OAAS,OAClB,SAAS,wBAA0B,wBAC5B,WACN,CAOC,cAAgB,UAAY,CAC9B,CAAC,MAAQ,SAAS,KAAO,EAAE,CAC3B,CAAC,MAAQ,SAAS,KAAO,GACzB,CAAC,MAAQ,SAAS,KAAO,GACzB,CAAC,MAAQ,SAAS,SAAW,GAC7B,CAAC,MAAQ,SAAS,aAAe,EACjC,CAAC,MAAQ,SAAS,gBAAkB,EACpC,CAAC,MAAQ,SAAS,WAAa,EAC/B,CAAC,MAAQ,SAAS,YAAc,EAChC,CAAC,MAAQ,SAAS,UAAY,EAC9B,CAAC,MAAQ,SAAS,UAAY,EAC9B,CAAC,MAAQ,SAAS,UAAY,EAC9B,CAAC,MAAQ,SAAS,cAAgB,EAClC,CAAC,MAAQ,SAAS,UAAY,EAC9B,CAAC,MAAQ,SAAS,cAAgB,EAAE,CACpC,CAAC,MAAQ,SAAS,OAAS,EAAE,CAC7B,CAAC,MAAQ,SAAS,SAAW,GAC7B,CAAC,MAAQ,SAAS,SAAW,GAC7B,CAAC,MAAQ,SAAS,KAAO,GACzB,CAAC,MAAQ,SAAS,SAAW,KAC7B,CAAC,MAAQ,SAAS,YAAc,iBAAiB,CACjD,CAAC,MAAQ,SAAS,WAAa,GAC/B,CAAC,MAAQ,SAAS,cAAgB,EAClC,CAAC,MAAQ,SAAS,WAAa,EAC/B,CAAC,MAAQ,SAAS,kBAAoB,gBACtC,CAAC,MAAQ,SAAS,SAAW,EAAE,CAC/B,CAAC,MAAQ,SAAS,MAAQ,GAC1B,CAAC,MAAQ,SAAS,eAAiB,GACnC,CAAC,MAAQ,SAAS,iBAAmB,kBAAkB,CACvD,CAAC,MAAQ,SAAS,eAAiB,IAAI,eACvC,CAAC,MAAQ,SAAS,gBAAkB,wBAAwB,CAC5D,CAAC,MAAQ,SAAS,QAAU,EAAE,EAGhC,gBAAgB,CAAC,UAAU,CAAE,cAAc,CAE3C,cAAc,UAAU,UAAY,SAAU,OAAQ,EAChD,OAAO,SAAW,OAAO,aAC3B,CAAC,MAAQ,SAAS,QAAU,OAAO,SAAW,OAAO,WAGvD,IAAI,SAAW,MAQf,OANI,OAAO,SACT,SAAW,OAAO,SACT,OAAO,WAChB,SAAW,OAAO,UAGZ,SAAR,CACE,IAAK,SACH,CAAC,MAAQ,SAAS,SAAW,IAAI,eAAe,MAAQ,QAAS,OAAO,iBAAiB,CACzF,MAEF,IAAK,MACH,CAAC,MAAQ,SAAS,SAAW,IAAI,YAAY,MAAQ,QAAS,OAAO,iBAAiB,CACtF,MAEF,QACE,CAAC,MAAQ,SAAS,SAAW,IAAI,eAAe,MAAQ,QAAS,OAAO,iBAAiB,CACzF,OAGH,MAAQ,SAAS,eAAe,aAAa,UAAW,MAAQ,SAAS,SAAS,WAAW,KAAK,EAElG,MAAQ,SAAS,SAAS,qBAAqB,MAAQ,SAAS,iBAAiB,CAElF,CAAC,MAAQ,SAAS,SAAW,SAEzB,OAAO,OAAS,IAAM,OAAO,OAAS,MAAQ,OAAO,OAAS,IAAA,IAAa,OAAO,OAAS,GAC7F,CAAC,MAAQ,SAAS,KAAO,GAChB,OAAO,OAAS,GACzB,CAAC,MAAQ,SAAS,KAAO,GAEzB,CAAC,MAAQ,SAAS,KAAO,SAAS,OAAO,KAAM,GAAG,CAGpD,CAAC,MAAQ,SAAS,SAAW,aAAc,OAAS,OAAO,SAAW,GACtE,CAAC,MAAQ,SAAS,KAAO,OAAO,KAAO,OAAO,KAAO,GACrD,CAAC,MAAQ,SAAS,iBAAmB,OAAO,UAAU,eAAe,KAAK,OAAQ,mBAAmB,CAAG,OAAO,iBAAmB,GAClI,CAAC,MAAQ,SAAS,WAAa,OAAO,WACtC,CAAC,MAAQ,SAAS,eAAiB,OAAO,eAEtC,OAAO,eACR,MAAQ,SAAS,gBAAgB,gBAAgB,OAAO,aAAa,CAGpE,OAAO,cACT,KAAK,gBAAgB,OAAO,cAAc,CACjC,OAAO,OACZ,OAAO,KAAK,YAAY,KAAK,GAAK,GAGpC,CAAC,MAAQ,SAAS,KAAO,OAAO,KAAK,OAAO,EAAG,OAAO,KAAK,YAAY,IAAI,CAAG,EAAE,CAFhF,CAAC,MAAQ,SAAS,KAAO,OAAO,KAAK,OAAO,EAAG,OAAO,KAAK,YAAY,KAAK,CAAG,EAAE,CAKnF,CAAC,MAAQ,SAAS,SAAW,OAAO,KAAK,OAAO,OAAO,KAAK,YAAY,IAAI,CAAG,EAAE,CACjF,CAAC,MAAQ,SAAS,UAAY,MAAQ,SAAS,SAAS,OAAO,GAAI,MAAQ,SAAS,SAAS,YAAY,QAAQ,CAAC,CAClH,YAAY,KAAK,OAAO,MAAO,MAAQ,SAAS,gBAAgB,KAAK,MAAQ,QAAQ,CAAE,UAAY,CACjG,KAAK,QAAQ,cAAc,EAC3B,KAAK,MAAQ,QAAQ,CAAC,GAI5B,cAAc,UAAU,QAAU,SAAU,QAAS,gBAAe,CAC9DT,iBACE,OAAOA,iBAAkB,WAC3B,gBAAgB,KAAK,MAAMA,gBAAc,EAI7C,IAAI,OAAS,CACF,QACT,cAAeA,gBAChB,CACG,kBAAoB,QAAQ,WAChC,OAAO,KAAO,kBAAkB,aAAa,sBAAsB,CACjE,kBAAkB,aAAa,sBAAsB,CAAC,MAAQ,kBAAkB,aAAa,eAAe,CAC5G,kBAAkB,aAAa,eAAe,CAAC,MAAQ,kBAAkB,aAAa,UAAU,CAAG,kBAAkB,aAAa,UAAU,CAAC,MAAQ,GACvJ,OAAO,SAAW,kBAAkB,aAAa,iBAAiB,CAChE,kBAAkB,aAAa,iBAAiB,CAAC,MAAQ,kBAAkB,aAAa,eAAe,CACvG,kBAAkB,aAAa,eAAe,CAAC,MAAQ,kBAAkB,aAAa,UAAU,CAChG,kBAAkB,aAAa,UAAU,CAAC,MAAQ,kBAAkB,aAAa,mBAAmB,CACpG,kBAAkB,aAAa,mBAAmB,CAAC,MAAQ,kBAAkB,aAAa,cAAc,CAAG,kBAAkB,aAAa,cAAc,CAAC,MAAQ,SACnK,IAAI,KAAO,kBAAkB,aAAa,iBAAiB,CACzD,kBAAkB,aAAa,iBAAiB,CAAC,MAAQ,kBAAkB,aAAa,eAAe,CACvG,kBAAkB,aAAa,eAAe,CAAC,MAAQ,kBAAkB,aAAa,UAAU,CAAG,kBAAkB,aAAa,UAAU,CAAC,MAAQ,GAEnJ,OAAS,QACX,OAAO,KAAO,GACL,OAAS,OAClB,OAAO,KAAO,GACL,OAAS,KAClB,OAAO,KAAO,SAAS,KAAM,GAAG,EAMlC,OAAO,UAHQ,kBAAkB,aAAa,qBAAqB,CACjE,kBAAkB,aAAa,qBAAqB,CAAC,MAAQ,kBAAkB,aAAa,mBAAmB,CAC/G,kBAAkB,aAAa,mBAAmB,CAAC,MAAQ,kBAAkB,aAAa,cAAc,CAAG,kBAAkB,aAAa,cAAc,CAAC,MAAQ,MACpI,QAC/B,OAAO,KAAO,kBAAkB,aAAa,YAAY,CACvD,kBAAkB,aAAa,YAAY,CAAC,MAAQ,kBAAkB,aAAa,eAAe,CAClG,kBAAkB,aAAa,eAAe,CAAC,MAAQ,kBAAkB,aAAa,UAAU,CAAG,kBAAkB,aAAa,UAAU,CAAC,MAAQ,IACvI,kBAAkB,aAAa,sBAAsB,CACnE,kBAAkB,aAAa,sBAAsB,CAAC,MAAQ,kBAAkB,aAAa,oBAAoB,CACjH,kBAAkB,aAAa,oBAAoB,CAAC,MAAQ,kBAAkB,aAAa,eAAe,CAAG,kBAAkB,aAAa,eAAe,CAAC,MAAQ,MAEpJ,UAChB,OAAO,UAAY,IAGrB,KAAK,UAAU,OAAO,EAGxB,cAAc,UAAU,cAAgB,SAAU,KAAM,CAClD,KAAK,IAAM,MAAQ,SAAS,cAAc,KAC5C,CAAC,MAAQ,SAAS,cAAc,GAAK,KAAK,GAC1C,CAAC,MAAQ,SAAS,YAAc,KAAK,MAAM,KAAK,IAAM,MAAQ,SAAS,cAAc,GAAG,EAG1F,IAAI,QAAU,MAAQ,SAAS,cAAc,OACzC2I,IACA,IAAM,OAAO,OACb,UAAY,KAAK,OACjB,EACA,KAAO,UAAU,OAErB,IAAK,EAAI,EAAG,EAAI,KAAM,GAAK,EAGzB,IAFA,IAAI,EAEGA,IAAI,KAAK,CACd,GAAI,OAAOA,KAAG,KAAO,UAAU,GAAG,GAAI,CACpC,OAAOA,KAAK,UAAU,GACtB,MAGF,KAAK,EAUT,IANI,KAAK,OAAS,KAAK,UACpB,MAAQ,SAAS,SAAS,WAAW,YAAY,SAAS,KAAK,MAAM,EAErE,MAAQ,SAAS,SAAS,WAAW,YAAY,SAAS,KAAK,OAAQ,MAAQ,SAAS,SAAS,WAAW,KAAK,EAGhH,KAAK,OAGP,IAFA,IAAM,KAAK,OAAO,OAEb,IAAI,EAAGA,IAAI,IAAK,KAAK,GACvB,MAAQ,SAAS,cAAc,OAAO,KAAK,KAAK,OAAOA,KAAG,CAI/D,CAAC,MAAQ,SAAS,cAAc,WAAa,GAC7C,YAAY,cAAc,MAAQ,SAAS,eAAgB,MAAQ,SAAS,SAAS,WAAW,YAAY,EAE3G,MAAQ,SAAS,SAAS,cAAc,KAAK,OAAO,CAEjD,mBACF,kBAAkB,gBAAgB,MAAQ,QAAQ,CAGpD,KAAK,iBAAiB,EAGxB,cAAc,UAAU,gBAAkB,UAAY,CACpD,IAAI,UAAY,MAAQ,SAAS,cAAc,SAE/C,GAAI,CAAC,UAAY,SAAS,SAAW,GAAK,EAAE,MAAQ,SAAS,iBAAkB,CAC7E,KAAK,QAAQ,aAAa,CAC1B,CAAC,MAAQ,SAAS,eAAiB,MAAQ,SAAS,YACpD,OAIF,CAAC,MAAQ,SAAS,cADJ,SAAS,OAAO,CACY,MAAQ,MAAQ,SAAS,UACnE,IAAI,aAAe,MAAQ,SAAS,MAAQ,MAAQ,SAAS,SAAW,KAAO,MAAQ,SAAS,WAAa,QAC7G,CAAC,MAAQ,SAAS,YAAc,EAChC,YAAY,KAAK,aAAc,MAAQ,SAAS,cAAc,KAAK,MAAQ,QAAQ,CAAE,UAAY,CAC/F,KAAK,QAAQ,cAAc,EAC3B,KAAK,MAAQ,QAAQ,CAAC,EAG1B,cAAc,UAAU,aAAe,UAAY,EACjC,MAAQ,SAAS,cAAc,WAG7C,CAAC,MAAQ,SAAS,eAAiB,MAAQ,SAAS,aAGtD,KAAK,iBAAiB,EAGxB,cAAc,UAAU,aAAe,UAAY,CACjD,KAAK,QAAQ,gBAAgB,CAC7B,KAAK,aAAa,EAGpB,cAAc,UAAU,cAAgB,UAAY,EACjD,MAAQ,SAAS,eAAe,eAAe,MAAQ,SAAS,WAAW,EAE3E,MAAQ,SAAS,eAAe,SAAS,MAAQ,SAAS,KAAK,EAE/D,MAAQ,SAAS,eAAe,YAAY,MAAQ,SAAS,cAAc,QAAS,MAAQ,SAAS,aAAa,KAAK,MAAQ,QAAQ,CAAC,EAG3I,cAAc,UAAU,gBAAkB,SAAU,SAAU,CACxD,IAAE,MAAQ,SAAS,SAIvB,GAAI,CACF,CAAC,MAAQ,SAAS,cAAgB,UAE7B,MAAQ,SAAS,gBACpB,CAAC,MAAQ,SAAS,YAAc,KAAK,OAAO,MAAQ,SAAS,eAAe,IAAM,MAAQ,SAAS,eAAe,GAAG,CACrH,CAAC,MAAQ,SAAS,WAAa,KAAK,OAAO,MAAQ,SAAS,eAAe,GAAG,GAE9E,CAAC,MAAQ,SAAS,YAAc,KAAK,OAAO,MAAQ,SAAS,cAAc,IAAM,MAAQ,SAAS,cAAc,GAAG,CACnH,CAAC,MAAQ,SAAS,WAAa,KAAK,OAAO,MAAQ,SAAS,cAAc,GAAG,GAG9E,MAAQ,SAAS,SAAS,gBAAgB,SAAS,CAEpD,AACE,SAAS,SAAS,EAAE,CAGtB,CAAC,MAAQ,SAAS,QAAU,MAAQ,SAAS,cAAc,OAC3D,CAAC,MAAQ,SAAS,WAAa,MAAQ,SAAS,cAAc,GAC9D,CAAC,MAAQ,SAAS,WAAa,MAAQ,SAAS,cAAc,GAAK,KAElE,MAAQ,SAAS,SAAS,wBAAwB,SAAS,OAAO,CAEnE,CAAC,MAAQ,SAAS,QAAU,aAAa,SAAS,SAAW,EAAE,CAAC,CAChE,KAAK,QAAQ,eAAe,CAC5B,KAAK,eAAe,CACpB,KAAK,cAAc,CACnB,KAAK,mBAAmB,CACxB,KAAK,oBAAoB,EAEpB,MAAQ,SAAS,WACnB,MAAQ,SAAS,gBAAgB,OAAO,OAEpC,MAAO,CACd,KAAK,mBAAmB,MAAM,GAIlC,cAAc,UAAU,mBAAqB,UAAY,EACjD,MAAQ,SAAS,YAIlB,MAAQ,SAAS,SAAS,WAAW,YAAY,SACpD,KAAK,aAAa,CAElB,YAAY,MAAQ,SAAS,mBAAmB,KAAK,MAAQ,QAAQ,CAAE,GAAG,GAI9E,cAAc,UAAU,YAAc,UAAY,CAC5C,EAAE,MAAQ,SAAS,WAAa,MAAQ,SAAS,SAAS,WAAW,YAAY,YAAc,MAAQ,SAAS,eAAe,cAAc,GAAK,MAAQ,SAAS,SAAS,eAAiB,YAAc,MAAQ,SAAS,eAAe,gBAAgB,GAC7P,CAAC,MAAQ,SAAS,SAAW,GAC7B,YAAY,cAAc,MAAQ,SAAS,eAAgB,MAAQ,SAAS,SAAS,WAAW,YAAY,CAExG,mBACF,kBAAkB,gBAAgB,MAAQ,QAAQ,EAGnD,MAAQ,SAAS,SAAS,WAAW,CAEtC,WAAW,UAAY,CACrB,KAAK,QAAQ,YAAY,EACzB,KAAK,MAAQ,QAAQ,CAAE,EAAE,CAC3B,KAAK,WAAW,EAEX,MAAQ,SAAS,UACpB,KAAK,MAAM,GAKjB,cAAc,UAAU,OAAS,UAAY,EAC1C,MAAQ,SAAS,SAAS,qBAAqB,EAGlD,cAAc,UAAU,YAAc,SAAU,KAAM,CACpD,CAAC,MAAQ,SAAS,kBAAoB,CAAC,CAAC,MAG1C,cAAc,UAAU,UAAY,UAAY,CAC9C,CAAC,MAAQ,SAAS,cAAgB,MAAQ,SAAS,mBAAqB,MAAQ,SAAS,gBAAkB,CAAC,EAAE,MAAQ,SAAS,iBAE1H,MAAQ,SAAS,iBAAmB,MAAQ,SAAS,cAAgB,MAAQ,SAAS,cAAgB,MAAQ,SAAS,gBAC1H,CAAC,MAAQ,SAAS,cAAgB,MAAQ,SAAS,eAGrD,KAAK,QAAQ,aAAa,CAC1B,KAAK,aAAa,EAGpB,cAAc,UAAU,YAAc,UAAY,CAChD,MAAK,MAAQ,SAAS,WAAa,IAAS,EAAE,MAAQ,SAAS,UAI/D,GAAI,EACD,MAAQ,SAAS,SAAS,aAAa,MAAQ,SAAS,cAAgB,MAAQ,SAAS,WAAW,OAC9F,MAAO,CACd,KAAK,wBAAwB,MAAM,GAIvC,cAAc,UAAU,KAAO,SAAU,OAAM,CACzCW,SAAS,MAAQ,SAAS,OAASA,SAIlC,MAAQ,SAAS,WAAa,KACjC,CAAC,MAAQ,SAAS,SAAW,IAE5B,MAAQ,SAAS,gBAAgB,QAAQ,EAErC,MAAQ,SAAS,QACpB,CAAC,MAAQ,SAAS,MAAQ,GAC1B,KAAK,QAAQ,UAAU,IAK7B,cAAc,UAAU,MAAQ,SAAU,OAAM,CAC1CA,SAAS,MAAQ,SAAS,OAASA,SAIlC,MAAQ,SAAS,WAAa,KACjC,CAAC,MAAQ,SAAS,SAAW,GAC7B,CAAC,MAAQ,SAAS,MAAQ,GAC1B,KAAK,QAAQ,QAAQ,EAEpB,MAAQ,SAAS,gBAAgB,OAAO,GAI7C,cAAc,UAAU,YAAc,SAAU,OAAM,CAChDA,SAAS,MAAQ,SAAS,OAASA,UAIlC,MAAQ,SAAS,WAAa,GACjC,KAAK,MAAM,CAEX,KAAK,OAAO,GAIhB,cAAc,UAAU,KAAO,SAAU,OAAM,CACzCA,SAAS,MAAQ,SAAS,OAASA,SAIvC,KAAK,OAAO,CACZ,CAAC,MAAQ,SAAS,UAAY,EAC9B,CAAC,MAAQ,SAAS,eAAiB,GACnC,KAAK,wBAAwB,EAAE,GAGjC,cAAc,UAAU,cAAgB,SAAU,WAAY,CAG5D,IAAK,IAFD,OAEKX,IAAI,EAAGA,KAAK,MAAQ,SAAS,QAAQ,OAAQ,KAAK,EAGzD,GAFA,QAAU,MAAQ,SAAS,QAAQA,KAE/B,OAAO,SAAW,OAAO,QAAQ,OAAS,WAC5C,OAAO,OAIX,OAAO,MAGT,cAAc,UAAU,YAAc,SAAU,MAAO,QAAS,OAAM,CAChEW,cAAS,MAAQ,SAAS,OAASA,QAIvC,KAAI,SAAW,OAAO,MAAM,CAE5B,GAAI,MAAM,SAAS,CAAE,CACnB,IAAI,OAAS,KAAK,cAAc,MAAM,CAElC,QACF,KAAK,YAAY,OAAO,KAAM,GAAK,MAE5B,QACT,KAAK,wBAAwB,MAAM,CAEnC,KAAK,wBAAwB,OAAS,MAAQ,SAAS,cAAc,CAGvE,KAAK,OAAO,GAGd,cAAc,UAAU,YAAc,SAAU,MAAO,QAAS,OAAM,CAChEA,cAAS,MAAQ,SAAS,OAASA,QAIvC,KAAI,SAAW,OAAO,MAAM,CAE5B,GAAI,MAAM,SAAS,CAAE,CACnB,IAAI,OAAS,KAAK,cAAc,MAAM,CAElC,SACG,OAAO,SAGV,KAAK,aAAa,CAAC,OAAO,KAAM,OAAO,KAAO,OAAO,SAAS,CAAE,GAAK,CAFrE,KAAK,YAAY,OAAO,KAAM,GAAK,OAMvC,KAAK,YAAY,SAAU,QAASA,OAAK,CAG3C,KAAK,MAAM,GAGb,cAAc,UAAU,YAAc,SAAU,MAAO,CACrD,MAAK,MAAQ,SAAS,WAAa,KAAS,MAAQ,SAAS,WAAa,IAI1E,KAAI,WAAa,MAAQ,SAAS,gBAAkB,OAAS,MAAQ,SAAS,cAC1E,YAAc,GAGd,YAAc,MAAQ,SAAS,YAAc,IAAM,MAAQ,SAAS,cAAgB,EAClF,EAAE,MAAQ,SAAS,OAAS,MAAQ,SAAS,aAAe,MAAQ,SAAS,KAC1E,KAAK,cAAc,WAAa,MAAQ,SAAS,YAAc,WAAa,MAAQ,SAAS,YAAc,EAAE,GAChH,YAAc,GACd,WAAa,MAAQ,SAAS,YAAc,GAErC,YAAc,MAAQ,SAAS,aACxC,CAAC,MAAQ,SAAS,WAAa,EAE1B,KAAK,cAAc,WAAa,MAAQ,SAAS,YAAY,GAChE,KAAK,wBAAwB,WAAa,MAAQ,SAAS,YAAY,CACvE,CAAC,MAAQ,SAAS,eAAiB,GACnC,KAAK,QAAQ,eAAe,GAG9B,KAAK,wBAAwB,UAAU,CAEhC,UAAY,EAChB,KAAK,cAAc,WAAa,MAAQ,SAAS,YAAY,IAC3D,MAAQ,SAAS,MAAQ,EAAE,CAAC,MAAQ,SAAS,aAAe,IAAM,MAAQ,SAAS,OAAS,KAE/F,KAAK,yBAAyB,MAAQ,SAAS,YAAc,WAAa,MAAQ,SAAS,YAAY,EAEjG,MAAQ,SAAS,eAGrB,KAAK,QAAQ,eAAe,CAF5B,CAAC,MAAQ,SAAS,eAAiB,KAKrC,YAAc,GACd,UAAY,IAIhB,KAAK,wBAAwB,UAAU,CAGrC,cACF,KAAK,wBAAwB,UAAU,CACvC,KAAK,OAAO,CACZ,KAAK,QAAQ,WAAW,IAI5B,cAAc,UAAU,cAAgB,SAAU,IAAK,OAAQ,CAC7D,CAAC,MAAQ,SAAS,UAAY,EAE1B,IAAI,GAAK,IAAI,KACV,MAAQ,SAAS,cAAgB,KAC/B,MAAQ,SAAS,UAAY,EAChC,KAAK,SAAS,EAAE,MAAQ,SAAS,UAAU,CAE3C,KAAK,aAAa,GAAG,EAIzB,CAAC,MAAQ,SAAS,YAAc,IAAI,GAAK,IAAI,GAC7C,CAAC,MAAQ,SAAS,eAAiB,MAAQ,SAAS,YACpD,CAAC,MAAQ,SAAS,WAAa,IAAI,GACnC,KAAK,yBAAyB,MAAQ,SAAS,YAAc,KAAQ,OAAO,EACnE,IAAI,GAAK,IAAI,MACjB,MAAQ,SAAS,cAAgB,KAC/B,MAAQ,SAAS,UAAY,EAChC,KAAK,SAAS,EAAE,MAAQ,SAAS,UAAU,CAE3C,KAAK,aAAa,EAAE,EAIxB,CAAC,MAAQ,SAAS,YAAc,IAAI,GAAK,IAAI,GAC7C,CAAC,MAAQ,SAAS,eAAiB,MAAQ,SAAS,YACpD,CAAC,MAAQ,SAAS,WAAa,IAAI,GACnC,KAAK,wBAAwB,KAAQ,OAAO,EAG9C,KAAK,QAAQ,eAAe,EAG9B,cAAc,UAAU,WAAa,SAAU,KAAM,IAAK,CACxD,IAAI,aAAe,IAEd,MAAQ,SAAS,YACf,MAAQ,SAAS,iBAAmB,MAAQ,SAAS,WAAa,KACrE,aAAe,MACL,MAAQ,SAAS,iBAAmB,MAAQ,SAAS,WAAa,MAC5E,aAAe,IAAM,OAIzB,CAAC,MAAQ,SAAS,WAAa,KAC/B,CAAC,MAAQ,SAAS,YAAc,IAAM,KACtC,CAAC,MAAQ,SAAS,eAAiB,MAAQ,SAAS,YAEhD,eAAiB,IACnB,KAAK,YAAY,aAAc,GAAK,EAIxC,cAAc,UAAU,aAAe,SAAU,IAAK,UAAW,CAK/D,GAJI,YACF,CAAC,MAAQ,SAAS,SAAS,OAAS,GAGlC,OAAO,IAAI,IAAO,SAAU,CAC9B,IAAIX,IACA,IAAM,IAAI,OAEd,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,GACvB,MAAQ,SAAS,SAAS,KAAK,IAAIA,KAAG,OAGxC,MAAQ,SAAS,SAAS,KAAK,IAAI,EAGjC,MAAQ,SAAS,SAAS,QAAU,WACvC,KAAK,eAAe,MAAQ,SAAS,SAAS,OAAO,CAAE,EAAE,EAGtD,MAAQ,SAAS,UACpB,KAAK,MAAM,EAIf,cAAc,UAAU,cAAgB,SAAU,UAAW,CAC3D,CAAC,MAAQ,SAAS,SAAS,OAAS,GAEnC,MAAQ,SAAS,SAAS,KAAK,EAAE,MAAQ,SAAS,cAAc,IAAK,MAAQ,SAAS,cAAc,GAAG,CAAC,CAGrG,WACF,KAAK,cAAc,EAAE,EAIzB,cAAc,UAAU,cAAgB,SAAU,OAAQ,CAMxD,OALK,MAAQ,SAAS,SAAS,QAC7B,KAAK,eAAe,MAAQ,SAAS,SAAS,OAAO,CAAE,OAAO,CACvD,IAGF,IAGT,cAAc,UAAU,QAAU,SAAU,OAAM,CAC5CW,SAAS,MAAQ,SAAS,OAASA,QAAQ,EAAE,MAAQ,SAAS,YAIjE,MAAQ,SAAS,SAAS,SAAS,EAEnC,MAAQ,SAAS,eAAe,SAAS,CAE1C,KAAK,QAAQ,UAAU,CACvB,CAAC,MAAQ,SAAS,KAAO,KACzB,CAAC,MAAQ,SAAS,aAAe,KACjC,CAAC,MAAQ,SAAS,eAAiB,KACnC,CAAC,MAAQ,SAAS,WAAa,KAC/B,CAAC,MAAQ,SAAS,eAAiB,KACnC,CAAC,MAAQ,SAAS,UAAY,KAC9B,CAAC,MAAQ,SAAS,SAAW,KAC7B,CAAC,MAAQ,SAAS,SAAW,KAC7B,CAAC,MAAQ,SAAS,eAAiB,KACnC,CAAC,MAAQ,SAAS,iBAAmB,OAGvC,cAAc,UAAU,wBAA0B,SAAU,MAAO,CACjE,CAAC,MAAQ,SAAS,gBAAkB,MACpC,KAAK,WAAW,EAGlB,cAAc,UAAU,SAAW,SAAU,IAAK,CAChD,CAAC,MAAQ,SAAS,UAAY,IAC9B,KAAK,mBAAmB,EAG1B,cAAc,UAAU,aAAe,SAAU,IAAK,CACpD,CAAC,MAAQ,SAAS,cAAgB,IAAM,EAAI,GAAK,EACjD,KAAK,mBAAmB,EAG1B,cAAc,UAAU,UAAY,SAAU,IAAK,OAAM,CACnDA,SAAS,MAAQ,SAAS,OAASA,SAItC,MAAQ,SAAS,gBAAgB,UAAU,IAAI,EAGlD,cAAc,UAAU,UAAY,UAAY,CAC9C,OAAQ,MAAQ,SAAS,gBAAgB,WAAW,EAGtD,cAAc,UAAU,KAAO,SAAU,OAAM,CACzCA,SAAS,MAAQ,SAAS,OAASA,SAItC,MAAQ,SAAS,gBAAgB,MAAM,EAG1C,cAAc,UAAU,OAAS,SAAU,OAAM,CAC3CA,SAAS,MAAQ,SAAS,OAASA,SAItC,MAAQ,SAAS,gBAAgB,QAAQ,EAG5C,cAAc,UAAU,kBAAoB,UAAY,CACtD,CAAC,MAAQ,SAAS,eAAiB,MAAQ,SAAS,WAAa,MAAQ,SAAS,WAAa,MAAQ,SAAS,eAE/G,MAAQ,SAAS,gBAAgB,SAAS,MAAQ,SAAS,WAAa,MAAQ,SAAS,cAAc,EAG1G,cAAc,UAAU,QAAU,UAAY,CAC5C,OAAQ,MAAQ,SAAS,MAG3B,cAAc,UAAU,cAAgB,SAAU,UAAW,CAC3D,IAAI,KAAO,GAEX,GAAI,UAAU,EACZ,KAAO,UAAU,WACP,MAAQ,SAAS,WAAY,CACvC,IAAI,UAAY,UAAU,EAEtB,UAAU,QAAQ,UAAU,GAAK,KACnC,UAAY,UAAU,MAAM,IAAI,CAAC,IAGnC,MAAQ,MAAQ,SAAS,WAAa,eAEtC,MAAQ,MAAQ,SAAS,KACzB,MAAQ,UAAU,EAAI,UAAU,EAAI,GACpC,MAAQ,UAAU,EAGpB,OAAO,MAGT,cAAc,UAAU,aAAe,SAAU,KAAI,CAInD,IAHA,IAAIX,IAAI,EACJ,KAAO,MAAQ,SAAS,OAAO,OAE5BA,IAAI,KAAK,CACd,GAAIN,QAAQ,MAAQ,SAAS,OAAOM,KAAG,GACrC,OAAQ,MAAQ,SAAS,OAAOA,KAGlC,KAAK,EAGP,OAAO,MAGT,cAAc,UAAU,KAAO,UAAY,EACxC,MAAQ,SAAS,SAAS,MAAM,EAGnC,cAAc,UAAU,KAAO,UAAY,EACxC,MAAQ,SAAS,SAAS,MAAM,EAGnC,cAAc,UAAU,YAAc,SAAU,QAAS,CACvD,OAAO,SAAW,MAAQ,SAAS,aAAe,MAAQ,SAAS,aAAe,MAAQ,SAAS,WAGrG,cAAc,UAAU,QAAU,SAAU,OAAM,CAChD,IAAK,MAAQ,SAAS,OAAS,MAAQ,SAAS,KAAKW,QACnD,OAAQA,OAAR,CACE,IAAK,aACH,KAAK,aAAaA,OAAM,IAAI,kBAAkBA,QAAO,MAAQ,SAAS,cAAe,MAAQ,SAAS,aAAc,MAAQ,SAAS,cAAc,CAAC,CACpJ,MAEF,IAAK,eACH,KAAK,aAAaA,OAAM,IAAI,oBAAoBA,QAAO,MAAQ,SAAS,MAAO,MAAQ,SAAS,WAAY,MAAQ,SAAS,UAAU,CAAC,CACxI,MAEF,IAAK,WACH,KAAK,aAAaA,OAAM,IAAI,gBAAgBA,QAAO,MAAQ,SAAS,UAAU,CAAC,CAC/E,MAEF,IAAK,eACH,KAAK,aAAaA,OAAM,IAAI,oBAAoBA,QAAO,MAAQ,SAAS,YAAa,MAAQ,SAAS,YAAY,CAAC,CACnH,MAEF,IAAK,UACH,KAAK,aAAaA,OAAM,IAAI,eAAeA,OAAM,MAAQ,QAAQ,CAAC,CAClE,MAEF,QACE,KAAK,aAAaA,OAAK,CAIzBA,SAAS,eAAiB,MAAQ,SAAS,eAC5C,MAAQ,SAAS,aAAa,KAAK,MAAQ,QAAS,IAAI,kBAAkBA,QAAO,MAAQ,SAAS,cAAe,MAAQ,SAAS,aAAc,MAAQ,SAAS,UAAU,CAAC,CAG3KA,SAAS,iBAAmB,MAAQ,SAAS,iBAC9C,MAAQ,SAAS,eAAe,KAAK,MAAQ,QAAS,IAAI,oBAAoBA,QAAO,MAAQ,SAAS,MAAO,MAAQ,SAAS,WAAY,MAAQ,SAAS,UAAU,CAAC,CAGrKA,SAAS,aAAe,MAAQ,SAAS,aAC1C,MAAQ,SAAS,WAAW,KAAK,MAAQ,QAAS,IAAI,gBAAgBA,QAAO,MAAQ,SAAS,UAAU,CAAC,CAGxGA,SAAS,iBAAmB,MAAQ,SAAS,iBAC9C,MAAQ,SAAS,eAAe,KAAK,MAAQ,QAAS,IAAI,oBAAoBA,QAAO,MAAQ,SAAS,YAAa,MAAQ,SAAS,YAAY,CAAC,CAGhJA,SAAS,YAAc,MAAQ,SAAS,YACzC,MAAQ,SAAS,UAAU,KAAK,MAAQ,QAAS,IAAI,eAAeA,OAAM,MAAQ,QAAQ,CAAC,EAIhG,cAAc,UAAU,wBAA0B,SAAU,YAAa,CACvE,IAAI,MAAQ,IAAI,wBAAwB,aAAc,MAAQ,SAAS,aAAa,CACpF,KAAK,aAAa,QAAS,MAAM,EAE5B,MAAQ,SAAS,UACnB,MAAQ,SAAS,QAAQ,KAAK,MAAQ,QAAS,MAAM,EAI1D,cAAc,UAAU,mBAAqB,SAAU,YAAa,CAClE,IAAI,MAAQ,IAAI,mBAAmB,aAAc,MAAQ,SAAS,aAAa,CAC/E,KAAK,aAAa,QAAS,MAAM,EAE5B,MAAQ,SAAS,UACnB,MAAQ,SAAS,QAAQ,KAAK,MAAQ,QAAS,MAAM,EAuD1D,kBA/CkB,UAAY,CAC5B,IAAI,GAAK,EAAE,CACX,GAAG,gBAAkB,gBAErB,SAAS,gBAAgB,YAAW,CAClC,IAAI,WAAa,EACb,UAAY,EAAE,CAElB,SAAS,gBAAiB,CACxB,YAAc,EAGhB,SAAS,eAAgB,CACvB,aAEI,aAAe,GACjB,kBAAkB,CAItB,SAAS,2BAA2B,WAAY,CAC1C,UAAU,QAAQ,WAAW,GAAK,IACpC,UAAU,KAAK,WAAW,CAI9B,SAAS,kBAAmB,CAC1B,IAAIX,IACA,IAAM,UAAU,OAEpB,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,UAAUA,KAAG,SAAS,CAGxB,UAAU,OAAS,EAGrB,YAAU,SAAS,cAAgB,wBAAwBnI,YAAU,SAAS,CAC9E,YAAU,SAAS,WAAW,iBAAiB,oBAAoBA,YAAU,SAAS,CACtF,YAAU,SAAS,WAAW,eAAiB,eAC/C,YAAU,SAAS,WAAW,cAAgB,cAC9C,YAAU,SAAS,WAAW,2BAA6B,2BAG7D,OAAO,KACN,CAOH,IAAI,kBAAoB,UAAY,CAGlC,IAAI,GAAK,EAAE,CACPG,OAAO,OACPb,SAAS,KACTc,WAAW,KAEf,SAAS,sBAAsB,IAAK,CAClC,OAAO,IAAI,cAAgB,OAAS,IAAI,cAAgB,aAG1D,SAAS,YAAY,KAAM,EAAG,CAC5B,OAAO,OAAS,UAAY,OAAS,WAAa,OAAS,UAAY,aAAa,OA6BtF,IAAI,UAAY,cAAc,gBAAgB,KAAO,EAAG,KAAO,KAAO,SAAS,CAAC,IAC5E,WAAa,cAAc,gBAAgB,KAAO,KAAO,KAAO,EAAG,UAAU,CAAC,IAC9E,aAAe,cAAc,gBAAgB,IAAM,EAAG,KAAO,EAAG,YAAY,CAAC,IAEjF,SAAS,IAAI,EAAG,EAAG,CACjB,IAAI,KAAO,OAAO,EACd,KAAO,OAAO,EAMlB,GAJI,OAAS,UAAY,OAAS,UAI9B,YAAY,KAAM,EAAE,EAAI,YAAY,KAAM,EAAE,CAC9C,OAAO,EAAI,EAGb,GAAI,sBAAsB,EAAE,EAAI,YAAY,KAAM,EAAE,CAGlD,MAFA,GAAI,EAAE,MAAM,EAAE,CACd,EAAE,IAAM,EACD,EAGT,GAAI,YAAY,KAAM,EAAE,EAAI,sBAAsB,EAAE,CAGlD,MAFA,GAAI,EAAE,MAAM,EAAE,CACd,EAAE,GAAK,EAAI,EAAE,GACN,EAGT,GAAI,sBAAsB,EAAE,EAAI,sBAAsB,EAAE,CAAE,CAMxD,IALA,IAAI+H,IAAI,EACJ,KAAO,EAAE,OACT,KAAO,EAAE,OACT,OAAS,EAAE,CAERA,IAAI,MAAQA,IAAI,OAChB,OAAO,EAAEA,MAAO,UAAY,EAAEA,eAAc,UAAY,OAAO,EAAEA,MAAO,UAAY,EAAEA,eAAc,QACvG,OAAOA,KAAK,EAAEA,KAAK,EAAEA,KAErB,OAAOA,KAAK,EAAEA,OAAO,IAAA,GAAY,EAAEA,KAAK,EAAEA,MAAM,EAAEA,KAGpD,KAAK,EAGP,OAAO,OAGT,MAAO,GAGT,IAAI,IAAM,IAEV,SAAS,IAAI,EAAG,EAAG,CACjB,IAAI,KAAO,OAAO,EACd,KAAO,OAAO,EAElB,GAAI,YAAY,KAAM,EAAE,EAAI,YAAY,KAAM,EAAE,CAS9C,OARI,OAAS,WACX,EAAI,SAAS,EAAG,GAAG,EAGjB,OAAS,WACX,EAAI,SAAS,EAAG,GAAG,EAGd,EAAI,EAGb,GAAI,sBAAsB,EAAE,EAAI,YAAY,KAAM,EAAE,CAGlD,MAFA,GAAI,EAAE,MAAM,EAAE,CACd,EAAE,IAAM,EACD,EAGT,GAAI,YAAY,KAAM,EAAE,EAAI,sBAAsB,EAAE,CAGlD,MAFA,GAAI,EAAE,MAAM,EAAE,CACd,EAAE,GAAK,EAAI,EAAE,GACN,EAGT,GAAI,sBAAsB,EAAE,EAAI,sBAAsB,EAAE,CAAE,CAMxD,IALA,IAAIA,IAAI,EACJ,KAAO,EAAE,OACT,KAAO,EAAE,OACT,OAAS,EAAE,CAERA,IAAI,MAAQA,IAAI,OAChB,OAAO,EAAEA,MAAO,UAAY,EAAEA,eAAc,UAAY,OAAO,EAAEA,MAAO,UAAY,EAAEA,eAAc,QACvG,OAAOA,KAAK,EAAEA,KAAK,EAAEA,KAErB,OAAOA,KAAK,EAAEA,OAAO,IAAA,GAAY,EAAEA,KAAK,EAAEA,MAAM,EAAEA,KAGpD,KAAK,EAGP,OAAO,OAGT,MAAO,GAGT,SAAS,IAAI,EAAG,EAAG,CACjB,IAAI,KAAO,OAAO,EACd,KAAO,OAAO,EACd,IAEJ,GAAI,YAAY,KAAM,EAAE,EAAI,YAAY,KAAM,EAAE,CAC9C,OAAO,EAAI,EAGb,IAAIA,IACA,IAEJ,GAAI,sBAAsB,EAAE,EAAI,YAAY,KAAM,EAAE,CAAE,CAIpD,IAHA,IAAM,EAAE,OACR,IAAM,iBAAiB,UAAW,IAAI,CAEjC,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,IAAIA,KAAK,EAAEA,KAAK,EAGlB,OAAO,IAGT,GAAI,YAAY,KAAM,EAAE,EAAI,sBAAsB,EAAE,CAAE,CAIpD,IAHA,IAAM,EAAE,OACR,IAAM,iBAAiB,UAAW,IAAI,CAEjC,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,IAAIA,KAAK,EAAI,EAAEA,KAGjB,OAAO,IAGT,MAAO,GAGT,SAAS,IAAI,EAAG,EAAG,CACjB,IAAI,KAAO,OAAO,EACd,KAAO,OAAO,EACd,IAEJ,GAAI,YAAY,KAAM,EAAE,EAAI,YAAY,KAAM,EAAE,CAC9C,OAAO,EAAI,EAGb,IAAIA,IACA,IAEJ,GAAI,sBAAsB,EAAE,EAAI,YAAY,KAAM,EAAE,CAAE,CAIpD,IAHA,IAAM,EAAE,OACR,IAAM,iBAAiB,UAAW,IAAI,CAEjC,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,IAAIA,KAAK,EAAEA,KAAK,EAGlB,OAAO,IAGT,GAAI,YAAY,KAAM,EAAE,EAAI,sBAAsB,EAAE,CAAE,CAIpD,IAHA,IAAM,EAAE,OACR,IAAM,iBAAiB,UAAW,IAAI,CAEjC,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,IAAIA,KAAK,EAAI,EAAEA,KAGjB,OAAO,IAGT,MAAO,GAGT,SAAS,IAAI,EAAG,EAAG,CASjB,OARI,OAAO,GAAM,WACf,EAAI,SAAS,EAAG,GAAG,EAGjB,OAAO,GAAM,WACf,EAAI,SAAS,EAAG,GAAG,EAGd,EAAI,EAGb,IAAI,QAAU,IACV,QAAU,IACV,QAAU,IACV,QAAU,IACV,QAAU,IAYd,SAAS,iBAAiB,IAAK,CAC7B,OAAO,IAAM,UAGf,IAAI,mBAAqB,iBAMrB,mBAAqB,iBACrB,kBAAoB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAE,CAoM1C,SAAS,mBAAmB,KAAM,KAAM,SAAU,CAChD,IAAI,IAAM,KAAK,EACX,cAAgB,qBAAqB,KAAK,IAAI,CAE9C,aAAe,IAAI,QAAQ,SAAS,GAAK,GAEzC,SAAW,KAAK,KAAK,GACrB,UACA,cACA9C,UACA,OACA,aAAe,SACnB,aAAa,YAAc,aAAa,eACxC,OAAO,eAAe,aAAc,QAAS,CAC3C,IAAK,UAAY,CACf,OAAO,aAAa,GAEvB,CAAC,CACF,KAAK,KAAK,cAAgB,EAAI,KAAK,KAAK,WAAW,UACnD,KAAK,KAAK,iBAAmB,EAC7B,IAAI,QAAU,KAAK,KAAK,GAAK,KAAK,KAAK,WAAW,UAC9C,SAAW,KAAK,KAAK,GAAK,KAAK,KAAK,WAAW,UAC/C,MAAQ,KAAK,KAAK,GAAK,KAAK,KAAK,GAAK,EACtC,OAAS,KAAK,KAAK,GAAK,KAAK,KAAK,GAAK,EACvCyD,OAAO,KAAK,KAAK,GACjB,OACA,QACA,QACA,SACA,OACA,QACA,UACA,SACA,OACA,kBACA,SACA,SACA,YACA,MACA,UACA,SACA,KACA,YACA,eACA,aACA,oBAAsB,KAAK,oCAAsC,IAAM,yBAAyB,CAAC,GAEjG,QAAU,SAAS,GAAK,KAAK,EAAE,OAAS,EACxC,OAAS,EAAE,MAAQ,SAAS,OAAS,MAAQ,SAAS,KAAK,KAAO,GAElE,OAAS,SAAgB,KAAM,IAAK,CACtC,IAAI,QACA,EACA,WAAa,MAAQ,SAAS,GAAG,QAAU,MAAQ,SAAS,GAAG,OAAS,EACxE,UAAY,iBAAiB,UAAW,UAAU,CACtD,KAAO,EACP,IAAI,WAAa3I,OAAK,MAAM,KAAO,KAAK,CAIxC,IAHA,QAAU,EACV,EAAI,EAEG,QAAU,YAAY,CAE3B,IAAK,EAAI,EAAG,EAAI,UAAW,GAAK,EAC9B,UAAU,IAAM,CAAC,IAAM,IAAM,EAAI,OAAO,QAAQ,CAGlD,SAAW,EAIb,IAAI,QAAU,KAAO,KACjB,KAAO,QAAUA,OAAK,MAAM,QAAQ,CACpC,IAAM,iBAAiB,UAAW,UAAU,CAEhD,GAAI,UAAY,EAAG,CACjB,IAAK,EAAI,EAAG,EAAI,UAAW,GAAK,EAC9B,IAAI,IAAM,MAAQ,SAAS,GAAG,GAAK,UAAU,IAAM,CAAC,IAAM,IAAM,EAAI,OAAO,QAAQ,EAAI,KAIzF,OAAO,IAGT,OAAQ,MAAQ,SAAS,GAAK,UAAU,IAAM,CAAC,IAAM,IAAM,EAAI,OAAO,QAAQ,EAAI,MAClF,KAAK,MAAQ,QAAQ,CAEnB,aAAa,QACN,aAAa,OAAO,KAAK,aAAa,CAI7C,aAAa,SACL,aAAa,QAAQ,KAAK,aAAa,CAI/C,aAAa,QACN,aAAa,OAAO,KAAK,aAAa,EAW5C,MAAQ,SAAS,iBACL,MAAQ,SAAS,eAAe,KAAK,MAAQ,QAAQ,EAGjE,MAAQ,SAAS,oBACpB,gBAAkB,MAAQ,SAAS,kBAAkB,KAAK,MAAQ,QAAQ,EAG5E,IAAI,KAAO,KAAK,KAAK,WAAW,iBAAiB,KAAK,KAAK,KAAK,WAAW,iBAAiB,CAiJ5F,SAAS,WAAW,KAAM,CACxB,OAAO,WAAW,SAAW,KAAK,CAoCpC,IAAI,KACA,SACA,MACA,KACA,UACA,UACA,cACAT,QAAQ,KAAK,KAAK,IAClB,UAAY,CAAC,EAAE,KAAK,WAAa,KAAK,UAAU,QAChD,OACA,SAAWS,OAAK,MAAMA,OAAK,QAAQ,CAAG,IAAQ,CAC9C,WAAa,KAAK,WAEtB,SAAS,kBAAkB,OAAQ,CAsEjC,MApEA,OAAQ,OAEJ,cACF,WAAW,SAAS,EAGjB,MAAQ,SAAS,oBAAsB,KAAK,WAAW,UAAY,MAAQ,SAAS,WAAa,eAC7F,QAGJ,MAAQ,SAAS,WAAa,kBACpB,MAAQ,SAAS,WACjB,MAAQ,SAAS,WACb,MAAQ,SAAS,eAG/B,YACI,KAAK,eAAe,KAC3B,UAAY,KAAK,eACN,KAAK,KAAK,cACX,UAAU,QAAQ,KAAK,UAAU,CAC/B,UAAU,UAAU,KAAK,UAAU,CACpC,UAAU,SAAS,KAAK,UAAU,CACpC,UAAU,OAAO,KAAK,UAAU,CAClC,UAAU,MAAO,UAAU,KAAK,KAAK,UAAU,EAInD,YACH,UAAY,KAAK,eAAe,uBAAuB,CAGnD,WACY,UAAU,aAOxB,WAAa,GAAK,CAACkF,YACrB,UAAU,UAAU,0BAA0B,EAGhD,AACE,SAAS,UAAU,EAAE,CAGvB,UAAY,CAAC,EAAE,KAAK,WAAa,KAAK,UAAU,QAE5C,WAAa,CAAC,SAChB,OAAS,KAAK,UAAU,GAAG,gBAG7B,MAAQ,MAAQ,SAAS,KAAK,eAAiB,MAAQ,SAAS,KAAK,WAAW,UAE5E,eACS,eAAe,KAAK,CAGjC,qBAAqB,CACrB,CAAC,MAAQ,SAAS,kBAAoB,KAAK,WAAW,QAElD,aAAa,WAAa,UAC5B,aAAe,aAAa,GAIvB,cAGT,OAAO,kBAIT,MADA,IAAG,mBAAqB,mBACjB,KACN,CAMC,kBAAoB,UAAY,CAClC,SAAS,kBAAkB,KAAM,KAAM,KAAM,CACvC,KAAK,IACP,KAAK,EAAI,GACT,KAAK,EAAI,GACT,KAAK,mBAAqB,kBAAkB,mBAC5C,KAAK,gBAAgB,KAAK,KAAK,mBAAmB,KAAM,KAAM,KAAK,CAAC,KAAK,KAAK,CAAC,EAInF,SAAS,eAAe,SAAU,CAUhC,MATA,YAAa,MAAQ,SAAS,KAAK,WAAW,UAC9C,WAAa,MAAQ,SAAS,WAE1B,YAAc,MAAQ,SAAS,eAAe,YAChD,CAAC,MAAQ,SAAS,eAAe,WAAa,MAAQ,SAAS,eAAe,UAAY,UAAY,MAAQ,SAAS,eAAe,UAAY,EAClJ,CAAC,MAAQ,SAAS,eAAe,MAAQ,KAAK,iBAAiB,UAAW,MAAQ,SAAS,eAAe,CAC1G,CAAC,MAAQ,SAAS,eAAe,UAAY,WAGvC,MAAQ,SAAS,eAAe,MAG1C,SAAS,eAAe,SAAU,CAChC,IAAI,MAAQ,KACR,GAAK,KAAK,eAAe,SAAS,CAClC,GAAK,KAAK,eAAe,SAAW,MAAM,CAC1C,MAAQ,EAEZ,GAAI,GAAG,OAAQ,CACb,IAAI8C,IAEJ,IAAK,IAAI,EAAGA,IAAI,GAAG,OAAQ,KAAK,EAC9B,QAAkB,GAAGA,KAAK,GAAGA,OAAI,EAGnC,MAAQ,KAAK,KAAK,MAAM,CAAG,SAE3B,MAAQ,EAGV,OAAO,MAGT,SAAS,kBAAkB,SAAU,CACnC,IAAK,MAAQ,SAAS,MAAQ,IAAA,GAC5B,OAAQ,MAAQ,SAAS,IAG3B,IAAI,MAAQ,MAER,GAAK,KAAK,eAAe,SAAS,CAClC,GAAK,KAAK,eAAe,SAAW,MAAM,CAC1C,SAEJ,GAAI,GAAG,OAAQ,CACb,SAAW,iBAAiB,UAAW,GAAG,OAAO,CACjD,IAAIA,IAEJ,IAAK,IAAI,EAAGA,IAAI,GAAG,OAAQ,KAAK,EAI9B,SAASA,MAAM,GAAGA,KAAK,GAAGA,MAAM,WAGlC,UAAY,GAAK,IAAM,MAGzB,OAAO,SAGT,SAAS,sBAAuB,CAC9B,OAAQ,MAAQ,SAAS,GAG3B,SAAS,iBAAiB,cAAe,CACvC,CAAC,MAAQ,SAAS,cAAgB,cAGpC,MAAO,CACc,kBACH,eACG,kBACH,eACM,qBACJ,iBACnB,GACA,EAKF,UAAgC,CAC/B,SAAS,QAAQ,KAAM,SAAU,aAAc,CAC7C,GAAI,EAAE,MAAQ,SAAS,GAAK,EAAE,MAAQ,SAAS,UAC7C,OAAQ,MAAQ,SAAS,GAG3B,KAAO,KAAO,KAAK,aAAa,CAAG,GACnC,IAAI,cAAgB,MAAQ,SAAS,KAAK,cACtC,WAAa,MAAQ,SAAS,UAC9B,aAAe,UAAU,UAAU,OAAS,GAAG,EAEnD,GAAI,cAAgB,aAClB,OAAQ,MAAQ,SAAS,GAG3B,IAAI,cACA,cAEC,cAQH,AACE,cADG,SAGa,KAAK,IAAI,cAAgB,MAAQ,SAAS,KAAK,KAAK,WAAW,UAAY,SAAS,CAFpF,KAAK,IAAI,EAAG,cAAgB,MAAQ,SAAS,KAAK,KAAK,GAAG,CAK5E,cAAgB,aAAe,iBAb3B,CAAC,UAAY,SAAW,UAAU,OAAS,KAC7C,SAAW,UAAU,OAAS,GAGhC,cAAgB,UAAU,UAAU,OAAS,EAAI,UAAU,EAC3D,cAAgB,aAAe,eAWjC,IAAIA,IACA,IACA,IAEJ,GAAI,OAAS,eACM,KAAK,OAAO,aAAe,eAAiB,cAAc,CAE1D,GAAM,EACrB,OAAO,KAAK,gBAAgB,eAAiB,aAAe,eAAiB,cAAgB,gBAAkB,MAAQ,SAAS,KAAK,WAAW,UAAW,EAAE,SAEtJ,OAAS,SAAU,CAC5B,IAAI,MAAQ,KAAK,eAAe,eAAiB,MAAQ,SAAS,KAAK,WAAW,UAAW,EAAE,CAC3F,KAAO,KAAK,eAAe,cAAgB,MAAQ,SAAS,KAAK,WAAW,UAAW,EAAE,CACzF,QAAU,KAAK,iBAAiB,aAAe,eAAiB,cAAgB,gBAAkB,MAAQ,SAAS,KAAK,WAAW,UAAW,EAAE,CAEhJ,QAAU,KAAK,OAAO,aAAe,eAAiB,cAAc,CAExE,IAAK,MAAQ,SAAS,GAAG,OAAQ,CAI/B,IAHA,IAAU,MAAM,MAAM,OAAO,CAC7B,IAAM,IAAI,OAEL,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,IAAIA,MAAM,KAAKA,KAAK,MAAMA,MAAM,QAAU,QAAQA,KAGpD,OAAO,IAGT,OAAQ,KAAO,OAAS,QAAU,gBACzB,OAAS,WAAY,CAC9B,IAAI,UAAY,KAAK,eAAe,cAAgB,MAAQ,SAAS,KAAK,WAAW,UAAW,EAAE,CAC9F,cAAgB,KAAK,gBAAgB,aAAe,OAAU,MAAQ,SAAS,KAAK,WAAW,UAAW,EAAE,CAEhH,IAAK,MAAQ,SAAS,GAAG,OAAQ,CAI/B,IAHA,IAAU,MAAM,UAAU,OAAO,CACjC,IAAM,IAAI,OAEL,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,IAAIA,KAAK,UAAUA,MAAM,UAAUA,KAAK,cAAcA,QAAQ,aAAe,eAAiB,MAAQ,SAAS,KAAK,WAAW,WAAa,KAG9I,OAAO,IAGT,OAAO,WAAa,UAAY,iBAAmB,aAAe,cAAgB,MAGpF,OAAO,KAAK,iBAAiB,aAAe,eAAiB,cAAgB,gBAAkB,MAAQ,SAAS,KAAK,WAAW,UAAW,EAAE,CAG/I,SAAS,OAAO,KAAM,SAAU,aAAc,CAC5C,GAAI,EAAE,MAAQ,SAAS,EACrB,OAAQ,MAAQ,SAAS,GAG3B,KAAO,KAAO,KAAK,aAAa,CAAG,GACnC,IAAI,cAAgB,MAAQ,SAAS,KAAK,cACtC,WAAa,MAAQ,SAAS,UAC9B,cAAgB,UAAU,GAAG,EAEjC,GAAI,cAAgB,cAClB,OAAQ,MAAQ,SAAS,GAG3B,IAAI,cACA,aAEC,cAQH,AACE,cADG,SAGa,KAAK,KAAK,MAAQ,SAAS,KAAK,KAAK,WAAW,UAAY,SAAS,CAFrE,KAAK,IAAI,GAAI,MAAQ,SAAS,KAAK,KAAK,GAAK,cAAc,CAK7E,aAAe,cAAgB,iBAb3B,CAAC,UAAY,SAAW,UAAU,OAAS,KAC7C,SAAW,UAAU,OAAS,GAGhC,aAAe,UAAU,UAAU,EACnC,cAAgB,aAAe,eAWjC,IAAIA,IACA,IACA,IAEJ,GAAI,OAAS,eACM,KAAK,OAAO,cAAgB,cAAgB,cAAc,CAE1D,GAAM,EACrB,OAAO,KAAK,iBAAiB,cAAgB,cAAgB,cAAgB,gBAAkB,MAAQ,SAAS,KAAK,WAAW,UAAW,EAAE,SAEtI,OAAS,SAAU,CAC5B,IAAI,MAAQ,KAAK,eAAe,eAAiB,MAAQ,SAAS,KAAK,WAAW,UAAW,EAAE,CAC3F,KAAO,KAAK,eAAe,cAAgB,MAAQ,SAAS,KAAK,WAAW,UAAW,EAAE,CACzF,QAAU,KAAK,gBAAgB,eAAiB,cAAgB,cAAgB,cAAgB,gBAAkB,MAAQ,SAAS,KAAK,WAAW,UAAW,EAAE,CAChK,QAAU,KAAK,OAAO,cAAgB,cAAgB,cAAc,CAAG,EAE3E,IAAK,MAAQ,SAAS,GAAG,OAAQ,CAI/B,IAHA,IAAU,MAAM,MAAM,OAAO,CAC7B,IAAM,IAAI,OAEL,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,IAAIA,KAAK,QAAQA,MAAM,KAAKA,KAAK,MAAMA,MAAM,QAG/C,OAAO,IAGT,OAAO,SAAW,KAAO,OAAS,gBACzB,OAAS,WAAY,CAC9B,IAAI,WAAa,KAAK,eAAe,eAAiB,MAAQ,SAAS,KAAK,WAAW,UAAW,EAAE,CAChG,eAAiB,KAAK,gBAAgB,cAAgB,OAAU,MAAQ,SAAS,KAAK,WAAW,UAAW,EAAE,CAElH,IAAK,MAAQ,SAAS,GAAG,OAAQ,CAI/B,IAHA,IAAU,MAAM,WAAW,OAAO,CAClC,IAAM,IAAI,OAEL,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,IAAIA,KAAK,WAAWA,MAAM,WAAWA,KAAK,eAAeA,OAAO,cAAgB,cAAgB,KAGlG,OAAO,IAGT,OAAO,YAAc,WAAa,iBAAmB,cAAgB,cAAgB,KAGvF,OAAO,KAAK,gBAAgB,gBAAkB,cAAgB,cAAgB,cAAgB,iBAAmB,MAAQ,SAAS,KAAK,WAAW,UAAW,EAAE,CAGjK,SAAS,OAAO,MAAO,QAAS,CAQ9B,GAPI,EAAE,MAAQ,SAAS,IAIvB,OAAS,OAAS,IAAO,GACzB,QAAU,KAAK,MAAM,SAAW,EAAE,CAE9B,SAAW,GACb,OAAQ,MAAQ,SAAS,GAmB3B,IAhBA,IAAI,aAAe,MAAQ,SAAS,KAAK,eAAiB,MAAQ,SAAS,KAAK,WAAW,UACvF,UAAY,YAAc,MAC1B,SAAW,YAAc,MACzB,gBAAkB,QAAU,GAAK,SAAW,YAAc,QAAU,GAAK,EACzEA,IAAI,EACJ,EAAI,EACJ,OAEC,MAAQ,SAAS,GAAG,OACf,iBAAiB,WAAY,MAAQ,SAAS,GAAG,OAAO,CAExD,EAGN,YAEGA,IAAI,SAAS,CAGlB,GAFA,YAAc,KAAK,eAAe,UAAYA,IAAI,gBAAgB,EAE7D,MAAQ,SAAS,GAAG,OACvB,IAAK,EAAI,EAAG,GAAK,MAAQ,SAAS,GAAG,OAAQ,GAAK,EAChD,MAAM,IAAM,YAAY,QAG1B,OAAS,YAGX,KAAK,EAGP,IAAK,MAAQ,SAAS,GAAG,OACvB,IAAK,EAAI,EAAG,GAAK,MAAQ,SAAS,GAAG,OAAQ,GAAK,EAChD,MAAM,IAAM,aAGd,OAAS,QAGX,OAAO,MAGT,SAAS,wBAAwB,KAAM,EAC/B,MAAQ,SAAS,0BACrB,CAAC,MAAQ,SAAS,wBAA0B,CAC1C,EAAG,IAAI,OACR,EAIH,IAAI,QAAU,MAAQ,SAAS,wBAAwB,EAGvD,GAFA,OAAO,gBAAgB,MAAQ,SAAS,IAAI,MAAM,EAE7C,MAAQ,SAAS,uBAAyB,EAAG,CAChD,IAAI,QAAU,MAAQ,SAAS,EAAE,eAAe,KAAK,CAErD,OAAO,UAAU,CAAC,OAAO,IAAM,MAAQ,SAAS,EAAE,KAAM,CAAC,OAAO,IAAM,MAAQ,SAAS,EAAE,KAAM,OAAO,IAAM,MAAQ,SAAS,EAAE,KAAK,CAGtI,IAAK,MAAQ,SAAS,uBAAyB,EAAG,CAChD,IAAI,OAAS,MAAQ,SAAS,EAAE,eAAe,KAAK,CAEpD,OAAO,MAAM,MAAM,IAAM,MAAQ,SAAS,EAAE,KAAM,MAAM,IAAM,MAAQ,SAAS,EAAE,KAAM,MAAM,IAAM,MAAQ,SAAS,EAAE,KAAK,CAG7H,IAAK,MAAQ,SAAS,KAAO,MAAQ,SAAS,uBAAyB,EAAG,CACxE,IAAI,MAAQ,MAAQ,SAAS,GAAG,eAAe,KAAK,CAEhD,UAAY,MAAQ,SAAS,GAAG,eAAe,KAAK,CAExD,OAAO,aAAa,CAAC,MAAQ,MAAQ,SAAS,GAAG,KAAM,UAAY,MAAQ,SAAS,GAAG,KAAK,CAG9F,IAAK,MAAQ,SAAS,IAAM,MAAQ,SAAS,uBAAyB,EAAG,CACvE,IAAI,UAAY,MAAQ,SAAS,EAAE,eAAe,KAAK,CAEvD,OAAO,OAAO,CAAC,UAAY,MAAQ,SAAS,EAAE,KAAK,SAC1C,EAAE,MAAQ,SAAS,IAAM,MAAQ,SAAS,uBAAyB,EAAG,CAC/E,IAAI,WAAa,MAAQ,SAAS,GAAG,eAAe,KAAK,CAErD,WAAa,MAAQ,SAAS,GAAG,eAAe,KAAK,CAErD,WAAa,MAAQ,SAAS,GAAG,eAAe,KAAK,CAErD,aAAe,MAAQ,SAAS,GAAG,eAAe,KAAK,CAE3D,OAAO,QAAQ,CAAC,WAAa,MAAQ,SAAS,GAAG,KAAK,CAAC,QAAQ,WAAa,MAAQ,SAAS,GAAG,KAAK,CAAC,QAAQ,WAAa,MAAQ,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,YAAY,IAAM,MAAQ,SAAS,GAAG,KAAK,CAAC,QAAQ,YAAY,IAAM,MAAQ,SAAS,GAAG,KAAK,CAAC,QAAQ,YAAY,IAAM,MAAQ,SAAS,GAAG,KAAK,CAGnT,IAAK,MAAQ,SAAS,KAAK,IAAM,MAAQ,SAAS,KAAK,EAAE,EAAG,CAC1D,IAAI,WAAa,MAAQ,SAAS,GAAG,eAAe,KAAK,CAErD,WAAa,MAAQ,SAAS,GAAG,eAAe,KAAK,CAEzD,IAAK,MAAQ,SAAS,KAAK,EAAE,EAAG,CAC9B,IAAI,WAAa,MAAQ,SAAS,GAAG,eAAe,KAAK,CAEzD,OAAO,UAAU,WAAa,MAAQ,SAAS,GAAG,KAAM,WAAa,MAAQ,SAAS,GAAG,KAAM,CAAC,WAAa,MAAQ,SAAS,GAAG,KAAK,MAEtI,OAAO,UAAU,WAAa,MAAQ,SAAS,GAAG,KAAM,WAAa,MAAQ,SAAS,GAAG,KAAM,EAAE,KAE9F,CACL,IAAI,UAAY,MAAQ,SAAS,EAAE,eAAe,KAAK,CAEvD,OAAO,UAAU,SAAS,IAAM,MAAQ,SAAS,EAAE,KAAM,SAAS,IAAM,MAAQ,SAAS,EAAE,KAAM,CAAC,SAAS,IAAM,MAAQ,SAAS,EAAE,KAAK,CAG3I,OAAO,OAGT,SAAS,+BAAgC,CACvC,OAAQ,MAAQ,SAAS,EAAE,MAAM,IAAI,OAAS,CAGhD,IAAI,qBAAuB,yBAAyB,qBAEpD,yBAAyB,qBAAuB,SAAU,KAAM,KAAM,UAAW,CAC/E,IAAI,KAAO,qBAAqB,KAAM,KAAM,UAAU,CAStD,OAPI,KAAK,kBAAkB,OACzB,KAAK,eAAiB,wBAAwB,KAAK,KAAK,CAExD,KAAK,eAAiB,8BAA8B,KAAK,KAAK,CAGhE,KAAK,iBAAmB,kBAAkB,iBACnC,MAGT,IAAI,gBAAkB,gBAAgB,QAEtC,gBAAgB,QAAU,SAAU,KAAM,KAAM,KAAM,KAAM,UAAW,CACrE,IAAI,KAAO,gBAAgB,KAAM,KAAM,KAAM,KAAM,UAAU,CAIzD,KAAK,GACP,KAAK,eAAiB,kBAAkB,eAAe,KAAK,KAAK,CAEjE,KAAK,eAAiB,kBAAkB,qBAAqB,KAAK,KAAK,CAGzE,KAAK,iBAAmB,kBAAkB,iBAC1C,KAAK,QAAU,QACf,KAAK,OAAS,OACd,KAAK,OAAS,OACd,KAAK,kBAAoB,kBAAkB,kBAAkB,KAAK,KAAK,CACvE,KAAK,eAAiB,kBAAkB,eAAe,KAAK,KAAK,CACjE,KAAK,QAAU,KAAK,IAAM,EAAI,KAAK,EAAE,OAAS,EAC9C,KAAK,cAAgB,KAAK,GAC1B,IAAI,MAAQ,EAiBZ,OAfI,OAAS,IACX,MAAQ,iBAAiB,UAAW,KAAK,IAAM,EAAI,KAAK,EAAE,GAAG,EAAE,OAAS,KAAK,EAAE,OAAO,EAGxF,KAAK,eAAiB,CACpB,UAAW,oBACX,UAAW,EACJ,MACR,CACD,kBAAkB,kBAAkB,KAAM,KAAM,KAAK,CAEjD,KAAK,GACP,UAAU,mBAAmB,KAAK,CAG7B,MAGT,SAAS,oBAAoB,SAAU,CAmBrC,OAjBM,MAAQ,SAAS,iBACrB,CAAC,MAAQ,SAAS,eAAiB,CACjC,WAAY,UAAU,OAAO,MAAQ,SAAS,GAAG,CACjD,UAAW,EACX,SAAU,oBACX,EAGH,WAAa,MAAQ,SAAS,KAAK,WAAW,UAC9C,WAAa,MAAQ,SAAS,WAE1B,YAAc,MAAQ,SAAS,eAAe,WAChD,CAAC,MAAQ,SAAS,eAAe,WAAa,MAAQ,SAAS,eAAe,SAAW,UAAY,MAAQ,SAAS,SAAS,UAAY,EAC3I,CAAC,MAAQ,SAAS,eAAe,SAAW,SAC5C,KAAK,iBAAiB,UAAW,MAAQ,SAAS,eAAe,YAAa,MAAQ,SAAS,eAAe,GAGxG,MAAQ,SAAS,eAAe,WAG1C,IAAI,iCAAmC,qBAAqB,wBAAwB,CAChF,0CAA4C,qBAAqB,iCAAiC,CAEtG,SAAS,kBAAmB,EAE5B,iBAAiB,UAAY,CAC3B,SAAU,SAAU,KAAM,KAAM,EACzB,MAAQ,SAAS,GACpB,KAAK,UAAU,CAGjB,IAAI,WAAa,MAAQ,SAAS,EAE9B,OAAS,IAAA,KACX,UAAY,KAAK,eAAe,KAAM,EAAE,EAG1C,IAAIA,IACA,IAAM,UAAU,QAChB,SAAW,UAAU,MACrB,OAAS,UAAU,EACnB,IAAM,iBAAiB,IAAI,CAE/B,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EACpB,OAAS,KAAO,OAAS,IAC3B,IAAIA,KAAK,CAAC,SAASA,KAAG,GAAK,OAAOA,KAAG,GAAI,SAASA,KAAG,GAAK,OAAOA,KAAG,GAAG,CAEvE,IAAIA,KAAK,CAAC,SAASA,KAAG,GAAI,SAASA,KAAG,GAAG,CAI7C,OAAO,KAET,OAAQ,SAAU,KAAM,CACtB,OAAO,KAAK,SAAS,IAAK,KAAK,EAEjC,WAAY,SAAU,KAAM,CAC1B,OAAO,KAAK,SAAS,IAAK,KAAK,EAEjC,YAAa,SAAU,KAAM,CAC3B,OAAO,KAAK,SAAS,IAAK,KAAK,EAEjC,SAAU,UAAY,CACpB,OAAQ,MAAQ,SAAS,EAAE,GAE7B,YAAa,SAAU,KAAM,KAAM,CACjC,IAAI,WAAa,MAAQ,SAAS,EAE9B,OAAS,IAAA,KACX,UAAY,KAAK,eAAe,KAAM,EAAE,GAGpC,MAAQ,SAAS,kBACrB,CAAC,MAAQ,SAAS,gBAAkB,IAAI,kBAAkB,UAAU,EAWtE,IARA,IAAI,gBAAkB,MAAQ,SAAS,gBACnC,QAAU,eAAe,QACzB,UAAY,eAAe,YAAc,KACzCA,IAAI,EACJ,IAAM,QAAQ,OACd,kBAAoB,EACpB,GAEGA,IAAI,KAAK,CACd,GAAI,kBAAoB,QAAQA,KAAG,YAAc,UAAW,CAC1D,IAAI,UAAYA,IACZ,SAAW,UAAU,GAAKA,MAAM,IAAM,EAAI,EAAIA,IAAI,EAClD,aAAe,UAAY,mBAAqB,QAAQA,KAAG,YAC/D,GAAK,IAAI,kBAAkB,UAAU,EAAE,WAAY,UAAU,EAAE,UAAW,UAAU,EAAE,WAAY,UAAU,EAAE,UAAW,YAAa,QAAQA,KAAG,CACjJ,WAEA,mBAAqB,QAAQA,KAAG,YAGlC,KAAK,EAOP,MAJA,CACE,KAAK,UAAU,EAAI,CAAC,UAAU,EAAE,GAAG,GAAI,UAAU,EAAE,GAAG,GAAG,CAAG,CAAC,UAAU,EAAE,UAAU,QAAU,GAAG,GAAI,UAAU,EAAE,UAAU,QAAU,GAAG,GAAG,CAGrI,IAET,aAAc,SAAU,KAAM,KAAM,WAAY,CAE1C,MAAQ,EAEV,MAAQ,MAAQ,SAAS,EAAE,EAClB,MAAQ,IAEjB,KAAO,MAGT,IAAI,IAAM,KAAK,YAAY,KAAM,KAAK,CAClC,IAAM,KAAK,YAAY,KAAO,KAAO,KAAK,CAC1C,QAAU,IAAI,GAAK,IAAI,GACvB,QAAU,IAAI,GAAK,IAAI,GACvB,UAAY,KAAK,KAAc,SAAS,EAAc,SAAS,EAAG,CAOtE,OALI,YAAc,EACT,CAAC,EAAG,EAAE,CAGE,aAAe,UAAY,CAAC,QAAU,UAAW,QAAU,UAAU,CAAG,CAAC,CAAC,QAAU,UAAW,QAAU,UAAU,EAGtI,cAAe,SAAU,KAAM,KAAM,CACnC,OAAO,KAAK,aAAa,KAAM,KAAM,UAAU,EAEjD,aAAc,SAAU,KAAM,KAAM,CAClC,OAAO,KAAK,aAAa,KAAM,KAAM,SAAS,EAEhD,iBAAkB,kBAAkB,iBACpC,eAAgB,kBAAkB,qBACnC,CACD,gBAAgB,CAAC,iBAAiB,CAAE,iCAAiC,CACrE,gBAAgB,CAAC,iBAAiB,CAAE,0CAA0C,CAC9E,0CAA0C,UAAU,eAAiB,oBACrE,0CAA0C,UAAU,mBAAqB,kBAAkB,mBAC3F,IAAI,qBAAuB,qBAAqB,aAEhD,qBAAqB,aAAe,SAAU,KAAM,KAAM,KAAM,IAAK,MAAO,CAC1E,IAAI,KAAO,qBAAqB,KAAM,KAAM,KAAM,IAAK,MAAM,CAc7D,MAbA,MAAK,cAAgB,KAAK,GAC1B,KAAK,KAAO,GAER,OAAS,EACX,kBAAkB,kBAAkB,KAAM,KAAK,GAAI,KAAK,CAC/C,OAAS,GAClB,kBAAkB,kBAAkB,KAAM,KAAK,GAAI,KAAK,CAGtD,KAAK,GACP,KAAK,mBAAmB,KAAK,CAGxB,SAEP,EAIH,UAAwB,CACvB,SAAS,mBAAoB,CAO3B,OANK,MAAQ,SAAS,KAAK,EAAE,GAC3B,CAAC,MAAQ,SAAS,oBAAsB,kBAAkB,mBAAmB,KAAK,MAAQ,QAAQ,EAAE,MAAQ,SAAS,MAAO,MAAQ,SAAS,KAAK,EAAG,MAAQ,QAAQ,CACrK,KAAK,WAAW,MAAQ,SAAS,mBAAmB,KAAK,MAAQ,QAAQ,CAAC,CACnE,IAGF,KAGT,aAAa,UAAU,mBAAqB,SAAU,aAAc,KAAM,CACxE,IAAI,SAAW,KAAK,oBAAoB,KAAK,CAE7C,GAAI,aAAa,IAAM,SAAU,CAC/B,IAAI,QAAU,EAAE,CAIhB,OAHA,KAAK,SAAS,QAAS,aAAa,CACpC,QAAQ,EAAI,SAAS,UAAU,CAC/B,QAAQ,WAAa,GACd,QAGT,OAAO,cAGT,aAAa,UAAU,eAAiB,UAAY,CAClD,IAAI,YAAc,KAAK,iBAAiB,CACpC,eAAiB,KAAK,mBAAmB,CAE7C,MADA,CAAC,MAAQ,SAAS,GAAK,aAAe,gBAC9B,MAAQ,SAAS,IAG3B,aAAa,UAAU,kBAAoB,qBACzC,CAMJ,IAAI,mBAAqB,UAAY,CACnC,OAAO,SAA8B,MAAO,KAAM,cAAe,CAC/D,IAAI,KAAO,KAAK,GAEhB,SAAS,kBAAkB,IAAK,CAK9B,OAJI,MAAQ,SAAW,MAAQ,SAAW,MAAQ,QAAU,MAAQ,QAAU,MAAQ,qBAAuB,MAAQ,EAC5G,kBAAkB,KAGpB,KAGT,IAAI,eAAiB,qBAAqB,kBAAmB,cAAc,CAsC3E,OApCA,KAAK,iBAAiB,kBAAkB,OAAQ,eAAe,CAAC,CAChE,OAAO,iBAAiB,kBAAmB,CACzC,KAAM,CACJ,IAAK,UAAY,CAKf,OAJI,KAAK,GACP,KAAK,UAAU,CAGV,MAEV,CACD,MAAO,CACL,IAAK,UAAY,CAKf,OAJI,KAAK,GACP,KAAK,UAAU,CAGV,MAEV,CACD,MAAO,CACL,MAAO,MAAM,GACd,CACD,GAAI,CACF,MAAO,MAAM,GACd,CACD,cAAe,CACb,MAAO,MAAM,GACd,CACD,GAAI,CACF,MAAO,MAAM,GACd,CACD,cAAe,CACb,MAAO,cACR,CACF,CAAC,CACK,qBAER,CAIC,qBAAuB,UAAY,CACrC,OAAO,SAAU,kBAAmB,oBAAqB,CACvD,OAAO,SAAU,IAAK,CAOpB,MANA,KAAM,MAAQ,IAAA,GAAY,EAAI,IAE1B,KAAO,EACF,kBAGF,oBAAoB,IAAM,EAAE,KAGtC,CAIC,kBAAoB,UAAY,CAClC,OAAO,SAAU,eAAc,cAAe,CAC5C,IAAI,kBAAoB,CACtB,MAAO5H,eACR,CAED,SAAS,eAAe,IAAK,CAO3B,MANA,KAAM,MAAQ,IAAA,GAAY,EAAI,IAE1B,KAAO,EACF,kBAGF,cAAc,IAAM,EAAE,CAG/B,OAAO,kBAER,CAMC,yBAA2B,UAAY,CACzC,SAAS,gBAAgB,OAAQ,KAAM,cAAe,CACpD,IAAI,IAAM,EAAE,CACR4H,IACA,IAAM,OAAS,OAAO,OAAS,EAEnC,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EACpB,OAAOA,KAAG,KAAO,KACnB,IAAI,KAAK,sBAAsB,OAAOA,KAAI,KAAKA,KAAI,cAAc,CAAC,CACzD,OAAOA,KAAG,KAAO,KAC1B,IAAI,KAAK,qBAAqB,OAAOA,KAAI,KAAKA,KAAI,cAAc,CAAC,CACxD,OAAOA,KAAG,KAAO,KAC1B,IAAI,KAAK,uBAAuB,OAAOA,KAAI,KAAKA,KAAI,cAAc,CAAC,CAC1D,OAAOA,KAAG,KAAO,KAC1B,IAAI,KAAK,qBAAqB,OAAOA,KAAI,KAAKA,KAAI,cAAc,CAAC,CACxD,OAAOA,KAAG,KAAO,OACjB,OAAOA,KAAG,KAAO,KAC1B,IAAI,KAAK,wBAAwB,OAAOA,KAAI,KAAKA,KAAI,cAAc,CAAC,CAC3D,OAAOA,KAAG,KAAO,KAC1B,IAAI,KAAK,qBAAqB,OAAOA,KAAI,KAAKA,KAAI,cAAc,CAAC,CACxD,OAAOA,KAAG,KAAO,KAC1B,IAAI,KAAK,mBAAmB,OAAOA,KAAI,KAAKA,KAAI,cAAc,CAAC,CACtD,OAAOA,KAAG,KAAO,KAC1B,IAAI,KAAK,qBAAqB,OAAOA,KAAI,KAAKA,KAAI,cAAc,CAAC,CACxD,OAAOA,KAAG,KAAO,KAC1B,IAAI,KAAK,wBAAwB,OAAOA,KAAI,KAAKA,KAAI,cAAc,CAAC,CAC3D,OAAOA,KAAG,KAAO,MAC1B,IAAI,KAAK,yBAAyB,OAAOA,KAAI,KAAKA,KAAI,cAAc,CAAC,EAIzE,OAAO,IAGT,SAAS,yBAAyB,MAAO,KAAM,cAAe,CAC5D,IAAI,WAEA,kBAAoB,SAA4B,MAAO,CAIzD,IAHA,IAAIA,IAAI,EACJ,IAAM,WAAW,OAEdA,IAAI,KAAK,CACd,GAAI,WAAWA,KAAG,QAAU,OAAS,WAAWA,KAAG,KAAO,OAAS,WAAWA,KAAG,gBAAkB,OAAS,WAAWA,KAAG,KAAO,OAAS,WAAWA,KAAG,MAAQ,MAC9J,OAAO,WAAWA,KAGpB,KAAK,EAOP,OAJI,OAAO,OAAU,SACZ,WAAW,MAAQ,GAGrB,MAUT,MAPA,mBAAkB,cAAgB,qBAAqB,kBAAmB,cAAc,CACxF,WAAa,gBAAgB,MAAM,GAAI,KAAK,GAAI,kBAAkB,cAAc,CAChF,kBAAkB,cAAgB,WAAW,OAE7C,kBAAkB,UADO,0BAA0B,MAAM,GAAG,MAAM,GAAG,OAAS,GAAI,KAAK,GAAG,KAAK,GAAG,OAAS,GAAI,kBAAkB,cAAc,CAE/I,kBAAkB,cAAgB,MAAM,IACxC,kBAAkB,MAAQ,MAAM,GACzB,kBAGT,SAAS,sBAAsB,MAAO,KAAM,cAAe,CACzD,IAAI,kBAAoB,SAA4B,MAAO,CACzD,OAAQ,MAAR,CACE,IAAK,qBACL,IAAK,WACL,IAAK,GACH,OAAO,kBAAkB,QAK3B,QACE,OAAO,kBAAkB,YAI/B,kBAAkB,cAAgB,qBAAqB,kBAAmB,cAAc,CACxF,IAAI9C,UAAU,yBAAyB,MAAO,KAAM,kBAAkB,cAAc,CAChF,mBAAqB,0BAA0B,MAAM,GAAG,MAAM,GAAG,OAAS,GAAI,KAAK,GAAG,KAAK,GAAG,OAAS,GAAI,kBAAkB,cAAc,CAa/I,MAZA,mBAAkB,QAAUA,UAC5B,kBAAkB,UAAY,mBAC9B,OAAO,eAAe,kBAAmB,QAAS,CAChD,IAAK,UAAY,CACf,OAAO,MAAM,IAEhB,CAAC,CAEF,kBAAkB,cAAgB,MAAM,GACxC,kBAAkB,cAAgB,MAAM,GACxC,kBAAkB,GAAK,MAAM,GAC7B,kBAAkB,GAAK,MAAM,GACtB,kBAGT,SAAS,qBAAqB,MAAO,KAAM,cAAe,CACxD,SAAS,kBAAkB,IAAK,CAS9B,OARI,MAAQ,SAAW,MAAQ,QACtB,kBAAkB,MAGvB,MAAQ,WAAa,MAAQ,UACxB,kBAAkB,QAGpB,KAmBT,OAhBA,OAAO,iBAAiB,kBAAmB,CACzC,MAAO,CACL,IAAK,4BAA4B,KAAK,EAAE,CACzC,CACD,QAAS,CACP,IAAK,4BAA4B,KAAK,EAAE,CACzC,CACD,MAAO,CACL,MAAO,MAAM,GACd,CACD,GAAI,CACF,MAAO,MAAM,GACd,CACF,CAAC,CACF,KAAK,EAAE,iBAAiB,kBAAkB,QAAS,cAAc,CAAC,CAClE,KAAK,EAAE,iBAAiB,kBAAkB,UAAW,cAAc,CAAC,CAC7D,kBAGT,SAAS,uBAAuB,MAAO,KAAM,cAAe,CAC1D,IAAI,eAAiB,qBAAqB,kBAAmB,cAAc,CAEvE,mBAAqB,qBAAqB,OAAQ,eAAe,CAErE,SAAS,oBAAoB,IAAG,CAC9B,OAAO,eAAe,OAAQ,MAAM,EAAE8C,KAAG,GAAI,CAC3C,IAAK,4BAA4B,KAAK,EAAE,UAAUA,KAAG,EAAE,CACxD,CAAC,CAGJ,IAAIA,IACA,IAAM,MAAM,EAAI,MAAM,EAAE,OAAS,EACjC,OAAS,EAAE,CAEf,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,oBAAoBA,IAAE,CACtB,KAAK,EAAE,UAAUA,KAAG,EAAE,iBAAiB,mBAAmB,CAG5D,SAAS,kBAAkB,IAAK,CAa9B,OAZI,MAAQ,SAAW,MAAQ,QACtB,kBAAkB,MAGvB,MAAQ,WAAa,MAAQ,UACxB,kBAAkB,QAGvB,MAAQ,gBAAkB,MAAQ,eAC7B,kBAAkB,YAGpB,KA4BT,OAzBA,OAAO,iBAAiB,kBAAmB,CACzC,MAAO,CACL,IAAK,4BAA4B,KAAK,EAAE,CACzC,CACD,QAAS,CACP,IAAK,4BAA4B,KAAK,EAAE,CACzC,CACD,YAAa,CACX,IAAK,4BAA4B,KAAK,EAAE,CACzC,CACD,KAAM,CACJ,IAAK,UAAY,CACf,OAAO,QAEV,CACD,MAAO,CACL,MAAO,MAAM,GACd,CACD,GAAI,CACF,MAAO,MAAM,GACd,CACF,CAAC,CACF,KAAK,EAAE,iBAAiB,kBAAkB,QAAS,eAAe,CAAC,CACnE,KAAK,EAAE,iBAAiB,kBAAkB,UAAW,eAAe,CAAC,CACrE,KAAK,EAAE,iBAAiB,kBAAkB,eAAgB,eAAe,CAAC,CACnE,kBAGT,SAAS,qBAAqB,MAAO,KAAM,cAAe,CACxD,SAAS,kBAAkB,IAAK,CAa9B,OAZI,MAAQ,MAAM,EAAE,IAAM,MAAQ,OAAS,MAAQ,MAC1C,kBAAkB,IAGvB,MAAQ,MAAM,EAAE,GACX,kBAAkB,MAGvB,MAAQ,MAAM,EAAE,GACX,kBAAkB,OAGpB,KAGT,IAAI,eAAiB,qBAAqB,kBAAmB,cAAc,CAuB3E,MArBA,mBAAkB,cAAgB,MAAM,GACxC,KAAK,EAAE,iBAAiB,kBAAkB,QAAS,eAAe,CAAC,CACnE,KAAK,EAAE,iBAAiB,kBAAkB,MAAO,eAAe,CAAC,CACjE,KAAK,EAAE,iBAAiB,kBAAkB,SAAU,eAAe,CAAC,CACpE,kBAAkB,cAAgB,MAAM,GACxC,kBAAkB,cAAgB,cAClC,OAAO,iBAAiB,kBAAmB,CACzC,MAAO,CACL,IAAK,4BAA4B,KAAK,EAAE,CACzC,CACD,IAAK,CACH,IAAK,4BAA4B,KAAK,EAAE,CACzC,CACD,OAAQ,CACN,IAAK,4BAA4B,KAAK,EAAE,CACzC,CACD,MAAO,CACL,MAAO,MAAM,GACd,CACF,CAAC,CACF,kBAAkB,GAAK,MAAM,GACtB,kBAGT,SAAS,0BAA0B,MAAO,KAAM,cAAe,CAC7D,SAAS,kBAAkB,MAAO,CA6BhC,OA5BI,MAAM,EAAE,KAAO,OAAS,QAAU,eAC7B,kBAAkB,YAGvB,MAAM,EAAE,KAAO,OAAS,QAAU,UAC7B,kBAAkB,QAGvB,MAAM,EAAE,KAAO,OAAS,QAAU,WAC7B,kBAAkB,SAGvB,MAAM,EAAE,KAAO,OAAS,QAAU,YAAc,QAAU,uBACrD,kBAAkB,SAGvB,MAAM,EAAE,KAAO,OAAS,QAAU,QAC7B,kBAAkB,MAGvB,MAAM,IAAM,MAAM,GAAG,KAAO,OAAS,QAAU,OAC1C,kBAAkB,KAGvB,MAAM,IAAM,MAAM,GAAG,KAAO,OAAS,QAAU,YAC1C,kBAAkB,SAGpB,KAGT,IAAI,eAAiB,qBAAqB,kBAAmB,cAAc,CA2C3E,OAzCA,KAAK,UAAU,OAAO,EAAE,iBAAiB,kBAAkB,UAAW,eAAe,CAAC,CACtF,KAAK,UAAU,OAAO,EAAE,iBAAiB,kBAAkB,WAAY,eAAe,CAAC,CACvF,KAAK,UAAU,OAAO,EAAE,iBAAiB,kBAAkB,eAAgB,eAAe,CAAC,CAC3F,KAAK,UAAU,OAAO,EAAE,iBAAiB,kBAAkB,QAAS,eAAe,CAAC,CACpF,KAAK,UAAU,OAAO,EAAE,iBAAiB,kBAAkB,WAAY,eAAe,CAAC,CAEnF,KAAK,UAAU,OAAO,KACxB,KAAK,UAAU,OAAO,GAAG,iBAAiB,kBAAkB,OAAQ,eAAe,CAAC,CACpF,KAAK,UAAU,OAAO,GAAG,iBAAiB,kBAAkB,aAAc,eAAe,CAAC,EAG5F,KAAK,UAAU,GAAG,iBAAiB,kBAAkB,UAAW,eAAe,CAAC,CAChF,OAAO,iBAAiB,kBAAmB,CACzC,QAAS,CACP,IAAK,4BAA4B,KAAK,UAAU,OAAO,EAAE,CAC1D,CACD,SAAU,CACR,IAAK,4BAA4B,KAAK,UAAU,OAAO,EAAE,CAC1D,CACD,YAAa,CACX,IAAK,4BAA4B,KAAK,UAAU,OAAO,EAAE,CAC1D,CACD,MAAO,CACL,IAAK,4BAA4B,KAAK,UAAU,OAAO,EAAE,CAC1D,CACD,SAAU,CACR,IAAK,4BAA4B,KAAK,UAAU,OAAO,EAAE,CAC1D,CACD,KAAM,CACJ,IAAK,4BAA4B,KAAK,UAAU,OAAO,GAAG,CAC3D,CACD,SAAU,CACR,IAAK,4BAA4B,KAAK,UAAU,OAAO,GAAG,CAC3D,CACD,MAAO,CACL,MAAO,MAAM,GACd,CACF,CAAC,CACF,kBAAkB,GAAK,KACvB,kBAAkB,GAAK,MAAM,GAC7B,kBAAkB,cAAgB,cAC3B,kBAGT,SAAS,wBAAwB,MAAO,KAAM,cAAe,CAC3D,SAAS,kBAAkB,MAAO,CAShC,OARI,MAAM,EAAE,KAAO,MACV,kBAAkB,SAGvB,MAAM,EAAE,KAAO,MACV,kBAAkB,KAGpB,KAGT,IAAI,eAAiB,qBAAqB,kBAAmB,cAAc,CAE3E,kBAAkB,cAAgB,MAAM,GACxC,IAAI,KAAO,KAAK,GAAG,KAAO,KAAO,KAAK,GAAG,KAAO,KAAK,GAerD,OAdA,KAAK,EAAE,iBAAiB,kBAAkB,OAAQ,eAAe,CAAC,CAClE,KAAK,EAAE,iBAAiB,kBAAkB,WAAY,eAAe,CAAC,CACtE,OAAO,iBAAiB,kBAAmB,CACzC,KAAM,CACJ,IAAK,4BAA4B,KAAK,EAAE,CACzC,CACD,SAAU,CACR,IAAK,4BAA4B,KAAK,EAAE,CACzC,CACD,MAAO,CACL,MAAO,MAAM,GACd,CACF,CAAC,CACF,kBAAkB,GAAK,MAAM,GACtB,kBAGT,SAAS,qBAAqB,MAAO,KAAM,cAAe,CACxD,SAAS,kBAAkB,MAAO,CA6BhC,OA5BI,MAAM,EAAE,KAAO,MACV,kBAAkB,SAGvB,MAAM,EAAE,KAAO,MACV,kBAAkB,SAGvB,MAAM,GAAG,KAAO,MACX,kBAAkB,OAGvB,MAAM,GAAG,KAAO,OAAS,QAAU,gCAC9B,kBAAkB,YAGvB,MAAM,GAAG,KAAO,MACX,kBAAkB,eAGvB,MAAM,KAAO,MAAM,GAAG,KAAO,OAAS,QAAU,iCAC3C,kBAAkB,YAGvB,MAAM,IAAM,MAAM,GAAG,KAAO,MACvB,kBAAkB,eAGpB,KAGT,IAAI,eAAiB,qBAAqB,kBAAmB,cAAc,CAEvE,KAAO,KAAK,GAAG,KAAO,KAAO,KAAK,GAAG,KAAO,KAAK,GAwCrD,MAvCA,mBAAkB,cAAgB,MAAM,GACxC,KAAK,GAAG,iBAAiB,kBAAkB,eAAgB,eAAe,CAAC,CAC3E,KAAK,GAAG,iBAAiB,kBAAkB,kBAAmB,eAAe,CAAC,CAC9E,KAAK,GAAG,iBAAiB,kBAAkB,SAAU,eAAe,CAAC,CACrE,KAAK,EAAE,iBAAiB,kBAAkB,WAAY,eAAe,CAAC,CACtE,KAAK,EAAE,iBAAiB,kBAAkB,WAAY,eAAe,CAAC,CAElE,MAAM,KACR,KAAK,GAAG,iBAAiB,kBAAkB,eAAgB,eAAe,CAAC,CAC3E,KAAK,GAAG,iBAAiB,kBAAkB,kBAAmB,eAAe,CAAC,EAGhF,OAAO,iBAAiB,kBAAmB,CACzC,SAAU,CACR,IAAK,4BAA4B,KAAK,EAAE,CACzC,CACD,SAAU,CACR,IAAK,4BAA4B,KAAK,EAAE,CACzC,CACD,OAAQ,CACN,IAAK,4BAA4B,KAAK,GAAG,CAC1C,CACD,YAAa,CACX,IAAK,4BAA4B,KAAK,GAAG,CAC1C,CACD,eAAgB,CACd,IAAK,4BAA4B,KAAK,GAAG,CAC1C,CACD,YAAa,CACX,IAAK,4BAA4B,KAAK,GAAG,CAC1C,CACD,eAAgB,CACd,IAAK,4BAA4B,KAAK,GAAG,CAC1C,CACD,MAAO,CACL,MAAO,MAAM,GACd,CACF,CAAC,CACF,kBAAkB,GAAK,MAAM,GACtB,kBAGT,SAAS,qBAAqB,MAAO,KAAM,cAAe,CACxD,SAAS,kBAAkB,MAAO,CAahC,OAZI,MAAM,EAAE,KAAO,MACV,kBAAkB,SAGvB,MAAM,EAAE,KAAO,MACV,kBAAkB,UAGvB,MAAM,EAAE,KAAO,OAAS,QAAU,QAAU,QAAU,wBACjD,kBAAkB,KAGpB,KAGT,IAAI,eAAiB,qBAAqB,kBAAmB,cAAc,CAEvE,KAAO,KAAK,GAAG,KAAO,KAAO,KAAK,GAAG,KAAO,KAAK,GAoBrD,MAnBA,mBAAkB,cAAgB,MAAM,GACxC,KAAK,EAAE,iBAAiB,kBAAkB,WAAY,eAAe,CAAC,CACtE,KAAK,EAAE,iBAAiB,kBAAkB,OAAQ,eAAe,CAAC,CAClE,KAAK,EAAE,iBAAiB,kBAAkB,WAAY,eAAe,CAAC,CACtE,OAAO,iBAAiB,kBAAmB,CACzC,SAAU,CACR,IAAK,4BAA4B,KAAK,EAAE,CACzC,CACD,UAAW,CACT,IAAK,4BAA4B,KAAK,EAAE,CACzC,CACD,KAAM,CACJ,IAAK,4BAA4B,KAAK,EAAE,CACzC,CACD,MAAO,CACL,MAAO,MAAM,GACd,CACF,CAAC,CACF,kBAAkB,GAAK,MAAM,GACtB,kBAGT,SAAS,wBAAwB,MAAO,KAAM,cAAe,CAC3D,SAAS,kBAAkB,MAAO,CAKhC,OAJI,MAAM,EAAE,KAAO,OAAS,QAAU,kBAC7B,kBAAkB,OAGpB,KAGT,IAAI,eAAiB,qBAAqB,kBAAmB,cAAc,CAEvE,KAAO,KAYX,MAXA,mBAAkB,cAAgB,MAAM,GACxC,KAAK,GAAG,iBAAiB,kBAAkB,SAAU,eAAe,CAAC,CACrE,OAAO,iBAAiB,kBAAmB,CACzC,OAAQ,CACN,IAAK,4BAA4B,KAAK,GAAG,CAC1C,CACD,MAAO,CACL,MAAO,MAAM,GACd,CACF,CAAC,CACF,kBAAkB,GAAK,MAAM,GACtB,kBAGT,SAAS,yBAAyB,MAAO,KAAM,cAAe,CAC5D,SAAS,kBAAkB,MAAO,CAShC,OARI,MAAM,EAAE,KAAO,OAAS,QAAU,SAC7B,kBAAkB,OAGvB,MAAM,EAAE,KAAO,OAAS,QAAU,SAC7B,kBAAkB,OAGpB,KAGT,IAAI,eAAiB,qBAAqB,kBAAmB,cAAc,CAEvE,KAAO,KAgBX,MAfA,mBAAkB,cAAgB,MAAM,GACxC,KAAK,EAAE,iBAAiB,kBAAkB,SAAU,eAAe,CAAC,CACpE,KAAK,EAAE,iBAAiB,kBAAkB,SAAU,eAAe,CAAC,CACpE,OAAO,iBAAiB,kBAAmB,CACzC,OAAQ,CACN,IAAK,4BAA4B,KAAK,EAAE,CACzC,CACD,OAAQ,CACN,IAAK,4BAA4B,KAAK,EAAE,CACzC,CACD,MAAO,CACL,MAAO,MAAM,GACd,CACF,CAAC,CACF,kBAAkB,GAAK,MAAM,GACtB,kBAGT,OAAO,SAAU,OAAQ,KAAM,cAAe,CAC5C,IAAI,WAEJ,SAAS,mBAAmB,MAAO,CACjC,GAAI,OAAO,OAAU,SAOnB,MANA,OAAQ,QAAU,IAAA,GAAY,EAAI,MAE9B,QAAU,EACL,cAGF,WAAW,MAAQ,GAM5B,IAHA,IAAIA,IAAI,EACJ,IAAM,WAAW,OAEdA,IAAI,KAAK,CACd,GAAI,WAAWA,KAAG,QAAU,MAC1B,OAAO,WAAWA,KAGpB,KAAK,EAGP,OAAO,KAGT,SAAS,oBAAqB,CAC5B,OAAO,cAOT,MAJA,oBAAmB,cAAgB,qBAAqB,mBAAoB,mBAAmB,CAC/F,WAAa,gBAAgB,OAAQ,KAAM,mBAAmB,cAAc,CAC5E,mBAAmB,cAAgB,WAAW,OAC9C,mBAAmB,MAAQ,WACpB,sBAER,CAIC,wBAA0B,UAAY,CACxC,OAAO,SAAU,KAAM,CACrB,IAAI,WAEA,YAEJ,SAAS,mBAAmB,OAAM,CAChC,OAAQW,OAAR,CACE,IAAK,qBACH,OAAO,mBAAmB,WAE5B,QACE,OAAO,MAoBb,OAhBA,OAAO,eAAe,mBAAoB,aAAc,CACtD,IAAK,UAAY,CACf,KAAK,aAAa,UAAU,CAC5B,IAAI,YAAc,KAAK,aAAa,YAAY,EAUhD,OARI,cAAgB,aAClB,KAAK,aAAa,YAAY,EAAI,WAClC,YAAc,IAAI,OAAO,YAAY,CAGrC,YAAY,MAAQ,aAAe,IAAI,OAAO,YAAY,EAGrD,aAEV,CAAC,CACK,sBAER,CAMC,yBAA2B,UAAY,CACzC,SAAS,UAAU,KAAM,CACvB,IAAI,WAAa,IAAI,OAWrB,OATI,OAAS,IAAA,IAKS,MAAQ,SAAS,MAAM,eAAe,MAC7C,cAAc,WAAW,EALpB,MAAQ,SAAS,MAAM,eAAe,MAAM,eAAe,KAAK,CAEvE,MAAM,WAAW,CAMvB,WAGT,SAAS,WAAW,IAAK,KAAM,CAC7B,IAAI,WAAa,KAAK,UAAU,KAAK,CAIrC,MAHA,YAAW,MAAM,IAAM,EACvB,WAAW,MAAM,IAAM,EACvB,WAAW,MAAM,IAAM,EAChB,KAAK,WAAW,WAAY,IAAI,CAGzC,SAAS,QAAQ,IAAK,KAAM,CAC1B,IAAI,WAAa,KAAK,UAAU,KAAK,CACrC,OAAO,KAAK,WAAW,WAAY,IAAI,CAGzC,SAAS,aAAa,IAAK,KAAM,CAC/B,IAAI,WAAa,KAAK,UAAU,KAAK,CAIrC,MAHA,YAAW,MAAM,IAAM,EACvB,WAAW,MAAM,IAAM,EACvB,WAAW,MAAM,IAAM,EAChB,KAAK,YAAY,WAAY,IAAI,CAG1C,SAAS,UAAU,IAAK,KAAM,CAC5B,IAAI,WAAa,KAAK,UAAU,KAAK,CACrC,OAAO,KAAK,YAAY,WAAY,IAAI,CAG1C,SAAS,WAAW,OAAQ,IAAK,CAC/B,IAAK,MAAQ,SAAS,MAAM,YAAc,MAAQ,SAAS,MAAM,UAAU,OAAQ,CACjF,IAAIX,IACA,KAAO,MAAQ,SAAS,MAAM,UAAU,OAE5C,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,GACvB,MAAQ,SAAS,MAAM,UAAUA,KAAG,eAAe,MAAM,cAAc,OAAO,CAInF,OAAO,OAAO,kBAAkB,IAAI,GAAI,IAAI,GAAI,IAAI,IAAM,EAAE,CAG9D,SAAS,YAAY,OAAQ,IAAK,CAChC,IAAK,MAAQ,SAAS,MAAM,YAAc,MAAQ,SAAS,MAAM,UAAU,OAAQ,CACjF,IAAIA,IACA,KAAO,MAAQ,SAAS,MAAM,UAAU,OAE5C,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,GACvB,MAAQ,SAAS,MAAM,UAAUA,KAAG,eAAe,MAAM,cAAc,OAAO,CAInF,OAAO,OAAO,aAAa,IAAI,CAGjC,SAAS,SAAS,IAAK,CACrB,IAAI,WAAa,IAAI,OAKrB,GAJA,WAAW,OAAO,EAEjB,MAAQ,SAAS,MAAM,eAAe,MAAM,cAAc,WAAW,EAEjE,MAAQ,SAAS,MAAM,YAAc,MAAQ,SAAS,MAAM,UAAU,OAAQ,CACjF,IAAIA,IACA,KAAO,MAAQ,SAAS,MAAM,UAAU,OAE5C,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,GACvB,MAAQ,SAAS,MAAM,UAAUA,KAAG,eAAe,MAAM,cAAc,WAAW,CAGrF,OAAO,WAAW,aAAa,IAAI,CAGrC,OAAO,WAAW,aAAa,IAAI,CAGrC,SAAS,aAAc,CACrB,MAAO,CAAC,EAAG,EAAG,EAAG,EAAE,CAGrB,OAAO,SAAU,KAAM,CACrB,IAAI,mBAEJ,SAAS,uBAAuB,YAAa,CAC3C,mBAAmB,KAAO,IAAI,qBAAqB,YAAa,KAAK,CAGvE,SAAS,0BAA0B,QAAS,CAC1C,mBAAmB,OAAS,QAG9B,SAAS,mBAAmB,OAAM,CAChC,OAAQW,OAAR,CACE,IAAK,0BACL,IAAK,WACL,IAAK,GACH,OAAO,mBAAmB,eAE5B,IAAK,GACL,IAAK,GACL,IAAK,YACL,IAAK,YACL,IAAK,uBACH,OAAO,mBAET,IAAK,GACL,IAAK,qBACL,IAAK,UACL,IAAK,UACH,OAAO,mBAAmB,OAE5B,IAAK,uBACH,OAAO,mBAAmB,cAE5B,QACE,OAAO,MAIb,mBAAmB,UAAY,UAC/B,mBAAmB,YAAc,YACjC,mBAAmB,WAAa,WAChC,mBAAmB,QAAU,QAC7B,mBAAmB,WAAa,WAChC,mBAAmB,UAAY,UAC/B,mBAAmB,aAAe,aAClC,mBAAmB,OAAS,QAC5B,mBAAmB,SAAW,SAC9B,mBAAmB,YAAc,YACjC,mBAAmB,iBAAmB,KAAK,iBAAiB,KAAK,KAAK,CACtE,mBAAmB,MAAQ,KAC3B,mBAAqB,6BAA6B,KAAK,eAAe,MAAM,CAC5E,IAAI,sBAAwB,cAAc,mBAAoB,cAAc,CAuC5E,OAtCA,OAAO,iBAAiB,mBAAoB,CAC1C,UAAW,CACT,IAAK,UAAY,CACf,OAAO,KAAK,UAAU,QAEzB,CACD,OAAQ,CACN,IAAK,UAAY,CACf,OAAO,KAAK,UAAU,GAAG,gBAE5B,CACD,SAAU,cAAc,mBAAoB,WAAW,CACvD,MAAO,cAAc,mBAAoB,QAAQ,CACjD,SAAU,cAAc,mBAAoB,WAAW,CACvD,QAAS,cAAc,mBAAoB,UAAU,CACrD,YAAa,sBACb,aAAc,sBACd,UAAW,CACT,IAAK,UAAY,CACf,OAAO,oBAEV,CACD,OAAQ,CACN,IAAK,UAAY,CACf,OAAO,KAAK,WAEf,CACF,CAAC,CACF,mBAAmB,UAAY,KAAK,KAAK,GACzC,mBAAmB,MAAQ,KAAK,KAAK,IACrC,mBAAmB,OAAS,KAAK,KAAK,MACtC,mBAAmB,OAAS,KAAK,KAAK,KAAO,EAAI,KAAK,KAAK,EAAI,IAC/D,mBAAmB,MAAQ,KAAK,KAAK,KAAO,EAAI,KAAK,KAAK,EAAI,IAC9D,mBAAmB,QAAU,KAAK,KAAK,GAAK,KAAK,KAAK,WAAW,UACjE,mBAAmB,SAAW,KAAK,KAAK,GAAK,KAAK,KAAK,WAAW,UAClE,mBAAmB,MAAQ,KAAK,KAAK,GACrC,mBAAmB,sBAAwB,uBAC3C,mBAAmB,yBAA2B,0BACvC,sBAER,CAMC,iBAAmB,UAAY,CACjC,IAAI,wBAA0B,SAAU,KAAM,CAC5C,IAAI,oBAAsB,GACtB,gBAAkB,KAAK,gBAAgB,CAE3C,SAAS,MAAO,CAGd,MAFA,qBAAsB,GACtB,gBAAkB,KAAK,gBAAgB,CAChC,eAGT,SAAS,eAAe,MAAO,CAC7B,GAAI,gBAAgB,OAQlB,MAPA,qBAAsB,MACtB,gBAAkB,gBAAgB,OAE9B,OAAO,iBAAoB,SACtB,eAGF,gBAGT,IAAI,kBAAoB,MAAM,QAAQ,oBAAoB,CAE1D,GAAI,oBAAsB,GAAI,CAC5B,IAAIpJ,QAAQ,SAAS,MAAM,OAAO,kBAAoB,oBAAoB,OAAO,CAAE,GAAG,CAOtF,MANA,iBAAkB,gBAAgBA,SAE9B,OAAO,iBAAoB,SACtB,eAGF,gBAGT,MAAO,GAGT,OAAO,MAGL,qBAAuB,SAAU,KAAM,CACzC,SAAS,kBAAkB,MAAO,CAKhC,OAJI,QAAU,UACL,kBAAkB,kBAAkB,CAGtC,KAKT,MAFA,mBAAkB,MAAQ,UAC1B,kBAAkB,iBAAmB,wBAAwB,KAAK,CAC3D,mBAGT,OAAO,SAAU,KAAM,CACrB,SAAS,mBAAmB,MAAO,CAKjC,OAJI,QAAU,OACL,mBAAmB,cAGrB,KAKT,MAFA,oBAAmB,MAAQ,OAC3B,mBAAmB,cAAgB,qBAAqB,KAAK,CACtD,sBAER,CAIC,wBAA0B,UAAY,CACxC,OAAO,SAAU,KAAM,CACrB,SAAS,mBAAmB,OAAM,CAIhC,IAHA,IAAIyI,IAAI,EACJ,IAAM,KAAK,OAAO,OAEfA,IAAI,KAAK,CACd,GAAI,KAAK,OAAOA,KAAG,KAAOW,QAAQ,KAAK,OAAOX,KAAG,MAAQW,OACvD,OAAO,KAAK,SAASX,KAAG,eAG1B,KAAK,EAGP,OAAO,KAcT,OAXA,OAAO,eAAe,mBAAoB,QAAS,CACjD,MAAO,KAAK,KAAK,GAClB,CAAC,CACF,mBAAmB,MAAQ,mBAC3B,mBAAmB,YAAc,EACjC,mBAAmB,OAAS,KAAK,KAAK,GAAK,KAAK,WAAW,SAAS,EACpE,mBAAmB,MAAQ,KAAK,KAAK,GAAK,KAAK,WAAW,SAAS,EACnE,mBAAmB,YAAc,EACjC,mBAAmB,cAAgB,EAAI,KAAK,WAAW,UACvD,mBAAmB,iBAAmB,EACtC,mBAAmB,UAAY,KAAK,OAAO,OACpC,sBAER,CAMC,6BAA+B,UAAY,CAC7C,OAAO,SAAU,UAAW,CAC1B,SAAS,cAAc,OAAM,CAC3B,OAAQW,OAAR,CACE,IAAK,QACL,IAAK,QACL,IAAK,aACL,IAAK,GACH,OAAO,cAAc,MAEvB,IAAK,WACL,IAAK,WACL,IAAK,gBACL,IAAK,gBACL,IAAK,IACH,OAAO,cAAc,SAEvB,IAAK,gBACH,OAAO,cAAc,UAEvB,IAAK,gBACH,OAAO,cAAc,UAEvB,IAAK,WACL,IAAK,WACL,IAAK,gBACL,IAAK,GACH,OAAO,cAAc,SAEvB,IAAK,kBACH,OAAO,cAAc,UAEvB,IAAK,kBACH,OAAO,cAAc,UAEvB,IAAK,kBACH,OAAO,cAAc,UAEvB,IAAK,cACL,IAAK,cACL,IAAK,eACL,IAAK,mBACL,IAAK,GACH,OAAO,cAAc,YAEvB,IAAK,UACL,IAAK,UACL,IAAK,IACH,OAAO,cAAc,QAEvB,QACE,OAAO,MAIb,OAAO,eAAe,cAAe,WAAY,CAC/C,IAAK,4BAA4B,UAAU,GAAK,UAAU,GAAG,CAC9D,CAAC,CACF,OAAO,eAAe,cAAe,YAAa,CAChD,IAAK,4BAA4B,UAAU,IAAM,UAAU,EAAE,CAC9D,CAAC,CACF,OAAO,eAAe,cAAe,YAAa,CAChD,IAAK,4BAA4B,UAAU,GAAG,CAC/C,CAAC,CACF,OAAO,eAAe,cAAe,YAAa,CAChD,IAAK,4BAA4B,UAAU,GAAG,CAC/C,CAAC,CACF,OAAO,eAAe,cAAe,QAAS,CAC5C,IAAK,4BAA4B,UAAU,EAAE,CAC9C,CAAC,CAEF,IAAI,IAEA,IAEA,IAEA,kBA8CJ,OA5CI,UAAU,EACZ,kBAAoB,4BAA4B,UAAU,EAAE,EAE5D,IAAM,4BAA4B,UAAU,GAAG,CAC/C,IAAM,4BAA4B,UAAU,GAAG,CAE3C,UAAU,KACZ,IAAM,4BAA4B,UAAU,GAAG,GAInD,OAAO,eAAe,cAAe,WAAY,CAC/C,IAAK,UAAY,CAKf,OAJI,UAAU,EACL,mBAAmB,CAGrB,CAAC,KAAK,CAAE,KAAK,CAAE,IAAM,KAAK,CAAG,EAAE,EAEzC,CAAC,CACF,OAAO,eAAe,cAAe,YAAa,CAChD,IAAK,4BAA4B,UAAU,GAAG,CAC/C,CAAC,CACF,OAAO,eAAe,cAAe,YAAa,CAChD,IAAK,4BAA4B,UAAU,GAAG,CAC/C,CAAC,CACF,OAAO,eAAe,cAAe,YAAa,CAChD,IAAK,4BAA4B,UAAU,GAAG,CAC/C,CAAC,CACF,OAAO,eAAe,cAAe,cAAe,CAClD,IAAK,4BAA4B,UAAU,EAAE,CAC9C,CAAC,CACF,OAAO,eAAe,cAAe,UAAW,CAC9C,IAAK,4BAA4B,UAAU,EAAE,CAC9C,CAAC,CACF,OAAO,eAAe,cAAe,OAAQ,CAC3C,IAAK,4BAA4B,UAAU,GAAG,CAC/C,CAAC,CACF,OAAO,eAAe,cAAe,WAAY,CAC/C,IAAK,4BAA4B,UAAU,GAAG,CAC/C,CAAC,CACF,OAAO,eAAe,cAAe,cAAe,CAClD,IAAK,4BAA4B,UAAU,GAAG,CAC/C,CAAC,CACK,iBAER,CAIH,iBAAmB,UAAY,CAC7B,SAAS,oBAAoB,KAAM,EAChC,MAAQ,SAAS,aAAa,KAAK,KAAK,CAG3C,OAAO,UAAY,CACjB,SAAS,qBAAqB,OAAM,CAIlC,IAHA,IAAIX,IAAI,EACJ,KAAO,MAAQ,SAAS,aAAa,OAElCA,IAAI,KAAK,CACd,IAAK,MAAQ,SAAS,aAAaA,KAAG,OAAS,MAAQ,SAAS,aAAaA,KAAG,KAAK,KAAOW,OAK1F,OAJK,MAAQ,SAAS,aAAaX,KAAG,eAAiB,MAAQ,SAAS,aAAaA,KAAG,KAAK,KAC1F,MAAQ,SAAS,aAAaA,KAAG,cAAc,MAAQ,SAAS,aAAa,EAGxE,MAAQ,SAAS,aAAaA,KAAG,cAG3C,KAAK,EAGP,OAAO,KAMT,MAHA,sBAAqB,aAAe,EAAE,CACtC,qBAAqB,aAAe,EACpC,qBAAqB,oBAAsB,oBACpC,wBAER,CAMH,IAAI,2BAA6B,UAAY,CAC3C,IAAI,GAAK,CACiB,uBACzB,CAED,SAAS,uBAAuB,KAAM,cAAe,CACnD,GAAI,KAAK,eAAgB,CACvB,IAAI,eAAiB,EAAE,CACnB,YAAc,KAAK,KAAK,GACxBA,IACA,IAAM,KAAK,eAAe,eAAe,OAE7C,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,eAAe,KAAK,qBAAqB,YAAYA,KAAI,KAAK,eAAe,eAAeA,KAAI,cAAe,KAAK,CAAC,CAGvH,IAAI,QAAU,KAAK,KAAK,IAAM,EAAE,CAE5B,eAAiB,SAAU,OAAM,CAInC,IAHA,IAAI,EACJ,IAAM,QAAQ,OAEPA,IAAI,KAAK,CACd,GAAIW,SAAS,QAAQX,KAAG,IAAMW,SAAS,QAAQX,KAAG,IAAMW,SAAS,QAAQX,KAAG,GAC1E,OAAO,eAAeA,KAGxB,KAAK,EAGP,OAAO,MAQT,OALA,OAAO,eAAe,eAAgB,gBAAiB,CACrD,IAAK,UAAY,CACf,OAAO,QAAQ,QAElB,CAAC,CACK,eAGT,OAAO,KAGT,SAAS,qBAAqB,KAAM,SAAU,cAAe,KAAM,CACjE,SAAS,eAAe,OAAM,CAK5B,IAJA,IAAI,QAAU,KAAK,GACfA,IAAI,EACJ3H,MAAM,QAAQ,OAEX2H,IAAI3H,OAAK,CACd,GAAIsI,SAAS,QAAQX,KAAG,IAAMW,SAAS,QAAQX,KAAG,IAAMW,SAAS,QAAQX,KAAG,GAK1E,OAJI,QAAQA,KAAG,KAAO,EACb,eAAeA,KAGjB,eAAeA,MAAI,CAG5B,KAAK,EAGP,MAAU,OAAO,CAGnB,IAAI,eAAiB,qBAAqB,eAAgB,cAAc,CAEpE,eAAiB,EAAE,CACnBA,IACA,IAAM,KAAK,GAAG,OAElB,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EACpB,KAAK,GAAGA,KAAG,KAAO,EACpB,eAAe,KAAK,qBAAqB,KAAK,GAAGA,KAAI,SAAS,eAAeA,KAAI,SAAS,eAAeA,KAAG,cAAe,KAAK,CAAC,CAEjI,eAAe,KAAK,qBAAqB,SAAS,eAAeA,KAAI,KAAK,GAAGA,KAAG,GAAI,KAAM,eAAe,CAAC,CA2B9G,OAvBI,KAAK,KAAO,sBACd,OAAO,eAAe,eAAgB,QAAS,CAC7C,IAAK,UAAY,CACf,OAAO,eAAe,IAAI,EAE7B,CAAC,CAGJ,OAAO,iBAAiB,eAAgB,CACtC,cAAe,CACb,IAAK,UAAY,CACf,OAAO,KAAK,IAEf,CACD,MAAO,CACL,MAAO,KAAK,GACb,CACD,cAAe,CACb,MAAO,eACR,CACF,CAAC,CACF,eAAe,QAAU,KAAK,KAAO,EACrC,eAAe,OAAS,eAAe,QAChC,eAGT,SAAS,qBAAqB,QAAS,KAAM,KAAM,cAAe,CAChE,IAAI,mBAAqB,4BAA4B,QAAQ,EAAE,CAE/D,SAAS,mBAAoB,CAK3B,OAJI,OAAS,GACJ,KAAK,KAAK,cAAc,QAAQ,EAAE,EAAE,CAGtC,oBAAoB,CAO7B,OAJI,QAAQ,EAAE,kBACZ,QAAQ,EAAE,iBAAiB,kBAAkB,GAAI,cAAc,CAAC,CAG3D,kBAGT,OAAO,KACN,CAMC,qBAAuB,UAAY,CACrC,SAAS,cAAc,KAAM,KAAM,CACjC,CAAC,MAAQ,SAAS,MAAQ,KAC1B,CAAC,MAAQ,SAAS,MAAQ,KAiD5B,OA9CA,OAAO,eAAe,cAAc,UAAW,WAAY,CACzD,IAAK,UAAY,CAKf,OAJK,MAAQ,SAAS,MAAM,KAAK,IAC9B,MAAQ,SAAS,MAAM,KAAK,UAAU,EAGjC,MAAQ,SAAS,MAAM,MAElC,CAAC,CACF,OAAO,eAAe,cAAc,UAAW,cAAe,CAC5D,IAAK,UAAY,CAKf,OAJK,MAAQ,SAAS,MAAM,GAAG,IAC5B,MAAQ,SAAS,MAAM,GAAG,UAAU,EAG/B,MAAQ,SAAS,MAAM,GAAG,EAAI,KAEzC,CAAC,CAEgB,SAAU,YAAa,CACvC,IAAI,iBAAmB,iBAAiB,YAAY,SAAS,OAAO,CAEhEA,IACA,IAAM,YAAY,SAAS,OAE/B,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,iBAAiBA,KAAK,IAAI,cAAc,YAAY,SAASA,KAAI,YAAY,gBAAgBA,KAAG,CAiBlG,OAdmB,SAAU,OAAM,CAGjC,IAFA,IAAI,EAEGA,IAAI,KAAK,CACd,GAAI,YAAY,gBAAgBA,KAAG,KAAOW,OACxC,OAAO,iBAAiBX,KAG1B,KAAK,EAGP,OAAO,SAOV,CAMC,4BAA8B,UAAY,CAC5C,IAAI,2BAA6B,CAC/B,GAAI,EACJ,EAAG,EACH,KAAM,EACP,CACG,6BAA+B,CACjC,GAAI,CAAC,EAAG,EAAG,EAAE,CACb,EAAG,CAAC,EAAG,EAAG,EAAE,CACZ,KAAM,EACP,CAED,SAAS,iBAAiB,gBAAiB,SAAU,KAAM,CACzD,OAAO,eAAe,gBAAiB,WAAY,CACjD,IAAK,UAAY,CACf,OAAO,SAAS,kBAAkB,SAAS,KAAK,aAAa,EAEhE,CAAC,CACF,gBAAgB,QAAU,SAAS,UAAY,SAAS,UAAU,OAAS,EAE3E,gBAAgB,IAAM,SAAU,IAAK,CACnC,GAAI,CAAC,gBAAgB,QACnB,MAAO,GAGT,IAAI,MAAQ,GAEZ,AAKE,MALE,MAAO,SAAS,UAAU,IAAM,GAC1B,SAAS,UAAU,IAAM,GAAG,EAC3B,MAAO,SAAS,UAAU,IAAM,GACjC,SAAS,UAAU,IAAM,GAAG,EAE5B,SAAS,UAAU,IAAM,GAAG,EAGtC,IAAI,UAAY,OAAS,iBAAmB,IAAI,OAAO,MAAM,CAAG,OAAO,OAAO,EAAE,CAAE,MAAM,CAIxF,MAFA,WAAU,KAAO,SAAS,UAAU,IAAM,GAAG,EAAI,SAAS,KAAK,KAAK,WAAW,UAC/E,UAAU,MAAQ,OAAS,iBAAmB,MAAM,GAAK,MAClD,WAGT,gBAAgB,YAAc,SAAS,eACvC,gBAAgB,YAAc,SAAS,eACvC,gBAAgB,eAAiB,SAAS,kBAC1C,gBAAgB,cAAgB,SAAS,cAG3C,SAAS,gCAAgC,SAAU,EAC7C,CAAC,UAAY,EAAE,OAAQ,aACzB,SAAW,4BAGb,IAAI,KAAO,EAAI,SAAS,KACpB,IAAM,SAAS,GAAK,KACpB,gBAAkB,IAAI,OAAO,IAAI,CAIrC,MAFA,iBAAgB,MAAQ,IACxB,iBAAiB,gBAAiB,SAAU,iBAAiB,CACtD,UAAY,CAcjB,OAbI,SAAS,GACX,SAAS,UAAU,CAGrB,IAAM,SAAS,EAAI,KAEf,gBAAgB,QAAU,MAC5B,gBAAkB,IAAI,OAAO,IAAI,CAEjC,gBAAgB,MAAQ,IACxB,iBAAiB,gBAAiB,SAAU,iBAAiB,EAGxD,iBAIX,SAAS,kCAAkC,SAAU,EAC/C,CAAC,UAAY,EAAE,OAAQ,aACzB,SAAW,8BAGb,IAAI,KAAO,EAAI,SAAS,KACpB,IAAM,SAAS,MAAQ,SAAS,KAAK,GAAK,SAAS,GAAG,OACtD,gBAAkB,iBAAiB,UAAW,IAAI,CAClD,SAAW,iBAAiB,UAAW,IAAI,CAG/C,MAFA,iBAAgB,MAAQ,SACxB,iBAAiB,gBAAiB,SAAU,mBAAmB,CACxD,UAAY,CACb,SAAS,GACX,SAAS,UAAU,CAGrB,IAAK,IAAIA,IAAI,EAAGA,IAAI,IAAK,KAAK,EAC5B,SAASA,KAAK,SAAS,EAAEA,KAAK,KAC9B,gBAAgBA,KAAK,SAASA,KAGhC,OAAO,iBAKX,SAAS,eAAgB,CACvB,OAAO,2BAGT,OAAO,SAAU,SAAU,CASzB,OARK,SAID,SAAS,WAAa,iBACjB,gCAAgC,SAAS,CAG3C,kCAAkC,SAAS,CAPzC,iBASV,EAMF,UAAY,CACX,IAAI,2BAA6B,UAAY,CAE3C,SAAS,cAAc,QAAO,MAAO,CAInC,MAHA,CAAC,MAAQ,SAAS,UAAYzI,QAAQ,EACtC,CAAC,MAAQ,SAAS,UAAY,MAC9B,CAAC,MAAQ,SAAS,EAAI,KAAK,UAAU,EAAI,MAAQ,SAAS,MAClD,MAAQ,SAAS,EAG3B,OAAO,SAA2C,KAAM,KAAM,CAC5D,CAAC,MAAQ,SAAS,GAAK,EACvB,CAAC,MAAQ,SAAS,KAAO,KAAK,KAC9B,CAAC,MAAQ,SAAS,KAAO,KACzB,CAAC,MAAQ,SAAS,KAAO,IACzB,CAAC,MAAQ,SAAS,SAAW,eAC7B,CAAC,MAAQ,SAAS,UAAY,KAAK,WACnC,CAAC,MAAQ,SAAS,cAAgB,IAClC,CAAC,MAAQ,SAAS,UAAY,CAAC,EAAG,EAAG,EAAE,CACvC,CAAC,MAAQ,SAAS,EAAI,GACtB,CAAC,MAAQ,SAAS,EAAI,GACtB,CAAC,MAAQ,SAAS,SAAW,kBAAkB,mBAAmB,KAAK,MAAQ,QAAQ,CAAC,KAAM,KAAM,MAAQ,QAAQ,CACpH,CAAC,MAAQ,SAAS,QAAU,cAC5B,CAAC,MAAQ,SAAS,kBAAoB,kBAAkB,mBAEnD,MAAQ,SAAS,GACpB,CAAC,MAAQ,SAAS,eAAiB,kBAAkB,eAAe,KAAK,MAAQ,QAAQ,CAEzF,CAAC,MAAQ,SAAS,eAAiB,kBAAkB,qBAAqB,KAAK,MAAQ,QAAQ,CAGjG,CAAC,MAAQ,SAAS,iBAAmB,kBAAkB,oBAExD,CAEC,oBAAsB,iBAAiB,oBAE3C,iBAAiB,oBAAsB,SAAU,KAAM,KAAM,IAAK,CAKhE,OAJI,KAAK,IAAM,EACN,IAAI,kCAAkC,KAAM,KAAM,IAAI,CAGxD,oBAAoB,KAAM,KAAM,IAAI,KAE3C,CAMJ,SAAS,aAAa,KAAM,KAAM,UAAW,CAC3C,CAAC,MAAQ,SAAS,EAAI,gBAAgB,QAAQ,KAAM,KAAK,EAAG,EAAG,EAAG,UAAU,CAG9E,SAAS,YAAY,KAAM,KAAM,UAAW,CAC1C,CAAC,MAAQ,SAAS,EAAI,gBAAgB,QAAQ,KAAM,KAAK,EAAG,EAAG,EAAG,UAAU,CAG9E,SAAS,YAAY,KAAM,KAAM,UAAW,CAC1C,CAAC,MAAQ,SAAS,EAAI,gBAAgB,QAAQ,KAAM,KAAK,EAAG,EAAG,EAAG,UAAU,CAG9E,SAAS,YAAY,KAAM,KAAM,UAAW,CAC1C,CAAC,MAAQ,SAAS,EAAI,gBAAgB,QAAQ,KAAM,KAAK,EAAG,EAAG,EAAG,UAAU,CAG9E,SAAS,iBAAiB,KAAM,KAAM,UAAW,CAC/C,CAAC,MAAQ,SAAS,EAAI,gBAAgB,QAAQ,KAAM,KAAK,EAAG,EAAG,EAAG,UAAU,CAG9E,SAAS,gBAAgB,KAAM,KAAM,UAAW,CAC9C,CAAC,MAAQ,SAAS,EAAI,gBAAgB,QAAQ,KAAM,KAAK,EAAG,EAAG,EAAG,UAAU,CAG9E,SAAS,eAAe,KAAM,KAAM,UAAW,CAC7C,CAAC,MAAQ,SAAS,EAAI,gBAAgB,QAAQ,KAAM,KAAK,EAAG,EAAG,EAAG,UAAU,CAG9E,SAAS,eAAgB,CACvB,CAAC,MAAQ,SAAS,EAAI,EAAE,CAM1B,SAAS,eAAe,KAAM,QAAS,CACrC,IAAI,QAAU,KAAK,IAAM,EAAE,CAC3B,CAAC,MAAQ,SAAS,eAAiB,EAAE,CACrC,IAAIyI,IACA,IAAM,QAAQ,OACd,WAEJ,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EACxB,WAAa,IAAI,YAAY,QAAQA,KAAI,QAAQ,EAEhD,MAAQ,SAAS,eAAe,KAAK,WAAW,CAIrD,SAAS,YAAY,KAAM,QAAS,CAClC,KAAK,KAAK,KAAM,QAAQ,CAG1B,gBAAgB,CAAC,yBAAyB,CAAE,YAAY,CACxD,YAAY,UAAU,SAAW,YAAY,UAAU,yBAEvD,YAAY,UAAU,KAAO,SAAU,KAAM,QAAS,CACpD,CAAC,MAAQ,SAAS,KAAO,KACzB,CAAC,MAAQ,SAAS,eAAiB,EAAE,CACrC,KAAK,6BAA6B,QAAQ,CAC1C,IAAIA,IACA,KAAO,MAAQ,SAAS,KAAK,GAAG,OAChC,IACA,SAAW,MAAQ,SAAS,KAAK,GAErC,IAAK,IAAI,EAAGA,IAAI,IAAK,KAAK,EAAG,CAG3B,OAFA,IAAM,KAEE,QAAQA,KAAG,GAAnB,CACE,IAAK,GACH,IAAM,IAAI,aAAa,QAAQA,KAAI,QAAS,MAAQ,QAAQ,CAC5D,MAEF,IAAK,GACH,IAAM,IAAI,YAAY,QAAQA,KAAI,QAAS,MAAQ,QAAQ,CAC3D,MAEF,IAAK,GACH,IAAM,IAAI,YAAY,QAAQA,KAAI,QAAS,MAAQ,QAAQ,CAC3D,MAEF,IAAK,GACH,IAAM,IAAI,YAAY,QAAQA,KAAI,QAAS,MAAQ,QAAQ,CAC3D,MAEF,IAAK,GACL,IAAK,GACH,IAAM,IAAI,eAAe,QAAQA,KAAI,QAAS,MAAQ,QAAQ,CAC9D,MAEF,IAAK,IACH,IAAM,IAAI,iBAAiB,QAAQA,KAAI,QAAS,MAAQ,QAAQ,CAChE,MAEF,IAAK,IACH,IAAM,IAAI,gBAAgB,QAAQA,KAAI,QAAS,MAAQ,QAAQ,CAC/D,MAEF,IAAK,GACH,IAAM,IAAI,eAAe,QAAQA,KAAI,QAAS,MAAQ,QAAQ,CAC9D,MAGF,QACE,IAAM,IAAI,cAAc,QAAQA,KAAI,QAAS,MAAQ,QAAQ,CAC7D,MAGA,MACD,MAAQ,SAAS,eAAe,KAAK,IAAI,GAKhD,IAAI,OAAS,EAAE,CAEf,SAAS,gBAAgB,KAAM,CAC7B,aAAe,KAGjB,SAAS,kBAAmB,CACtB,aAAe,GACjB,iBAAiB,iBAAiB,cAAe,WAAY,SAAS,CAEtE,iBAAiB,kBAAkB,CAIvC,SAAS,qBAAqB,KAAM,CAClC,gBAAkB,KAGpB,SAAS,cAAc,OAAQ,CAK7B,OAJI,aAAe,KACjB,OAAO,cAAgB,KAAK,MAAM,cAAc,EAG3C,iBAAiB,cAAc,OAAO,CAG/C,SAAS,WAAW,MAAO,CACzB,GAAI,OAAO,OAAU,SACnB,OAAQ,MAAR,CACE,IAAK,OACH,qBAAuB,IACvB,MAEF,QACA,IAAK,SACH,qBAAuB,GACvB,MAEF,IAAK,MACH,qBAAuB,GACvB,WAEK,CAAC,MAAM,MAAM,EAAI,MAAQ,IAClC,qBAAuB,OAIvB,YADE,wBAAwB,IAGT,CAIrB,SAAS,WAAY,CACnB,OAAc,YAAc,OAG9B,SAAS,cAAc,KAAM,OAAQ,CAC/B,OAAS,gBACX,kBAAoB,QAIxB,SAAS,WAAW,OAAM,CACxB,OAAQW,OAAR,CACE,IAAK,kBACH,OAAO,gBAET,IAAK,uBACH,OAAO,qBAET,IAAK,SACH,OAAO,OAET,QACE,OAAO,MAIb,OAAO,KAAO,iBAAiB,KAC/B,OAAO,MAAQ,iBAAiB,MAChC,OAAO,gBAAkB,gBACzB,OAAO,YAAc,iBAAiB,YACtC,OAAO,SAAW,iBAAiB,SACnC,OAAO,aAAe,iBAAiB,aACvC,OAAO,KAAO,iBAAiB,KAC/B,OAAO,iBAAmB,iBAC1B,OAAO,kBAAoB,iBAAiB,kBAC5C,OAAO,cAAgB,cACvB,OAAO,qBAAuB,qBAC9B,OAAO,OAAS,iBAAiB,OAEjC,OAAO,YAAc,iBAAiB,YACtC,OAAO,QAAU,iBAAiB,QAClC,OAAO,WAAa,WACpB,OAAO,UAAY,UACnB,OAAO,cAAgB,cACvB,OAAO,OAAS,iBAAiB,OACjC,OAAO,SAAW,iBAAiB,SACnC,OAAO,UAAY,iBAAiB,UACpC,OAAO,KAAO,iBAAiB,KAC/B,OAAO,OAAS,iBAAiB,OACjC,OAAO,wBAA0B,iBAAiB,wBAClD,OAAO,aAAe,WACtB,OAAO,QAAU,QAEjB,SAAS,YAAa,CAChB,SAAS,aAAe,aAC1B,cAAc,wBAAwB,CACtC,kBAAkB,EAItB,SAAS,iBAAiB,SAAU,CAGlC,IAAK,IAFD,KAAO,YAAY,MAAM,IAAI,CAExBX,IAAI,EAAGA,IAAI,KAAK,OAAQ,KAAK,EAAG,CACvC,IAAIvB,OAAO,KAAKuB,KAAG,MAAM,IAAI,CAE7B,GAAI,mBAAmBvB,OAAK,GAAG,EAAI,SAEjC,OAAO,mBAAmBA,OAAK,GAAG,CAItC,OAAO,KAGT,IAAI,WAAa,mBACb,cAAgB,sBAChB,SAAW,GACX,YAEJ,GAAI,WAAY,CACd,IAAI,QAAU,SAAS,qBAAqB,SAAS,CACjD,MAAQ,QAAQ,OAAS,EAI7B,aAHe,QAAQ,QAAU,CAC/B,IAAK,GACN,EACsB,IAAI,QAAQ,aAAc,GAAG,CAEpD,SAAW,iBAAiB,WAAW,CAGzC,IAAI,wBAA0B,YAAY,WAAY,IAAI,CAC1D,OAAO,QACP,CACE,UAAY,mCAED,yEC/ikBqC,ICQhD,SAAgB,OAAO,MAAM,CAAC,GAAK,CAAC,MAAM,OAAO,QAAQ,QAAQ,OAAO,SAAS,YAAY,QAAQ,KAAK,eAAe,cAAc,oBAAoB,MAAM,QAAQ,aAAa,aAAa,YAAY,UAAU,YAAY,MAAY,WAAW,aAAa,SAAS,GAAG,aAAa,OAAa,YAAY,CAAC,eAAe,CAAC,aAAa,QAAc,UAAU,oBAAoB,EAAE,GAAS,eAAe,SAAS,OAAO,OAAa,GAAGxD,IAAQ,CAAO,gBAAgBA,GAAO,GAAM,CAAO,cAAcA,GAAO,CAAC,KAAK,KAAK,UAAU,KAAK,SAAS,KAAK,CAAC,CAAO,SAAS,mBAAmB,YAAY,CAAC,UAAU,GAAG,EAAE,IAAI,CAAC,CAAO,SAAS,CAAC,IAAI,IAAI,KAAK,OAAW,cAAc,SAA+C,WAA6C,MAAM,EAAS,UAAU,CAAC,IAAI,IAAI,KAAK,OAAW,cAAc,SAA+C,WAA6C,OAAO,EAAS,YAAY,CAAC,IAAI,IAAI,KAAK,OAAW,cAAc,SAA+C,WAA6C,SAAS,EAAS,QAAQxC,IAAa,mBAAmB,kBAAkB,CAAC,GAAG,CAAC,cAAc,QAAQ,UAAU,CAAC,cAAc,QAAQ,UAAU,OACxtC,IAAM,kBAAkB,qBAAqB,EAAE,cAAc,QAAQ,SAAS,EAAE,mBAAmB,cAAc,QAAQ,SAAY,gBAAgB,cAAc,QAAQ,UAAU,YAAY,kBAAkB,GAAK,CAAM,cAAc,QAAQ,UAAU,YAAY,kBAAkB,GAAK,EAAG,EAAE,CAAC,CAAO,gBAAgBA,GAAY,KAAM,MAAU,IAA2B,MAAM,MAAM,IAAI,CAAC,OAAO,MAAM,YAAY,OAAO,SAAS,SAAS,CAAC,CAAC,KAAK,GAAG,EAAE,MAAM,CAAC,CAAtG,KAAqH,EAAE,CAAC,CACvd,KAAKA,GAAY,SAAS,CAChC,SAAS,CAAC,IAAI,QAAW,UAAU,QAAQ,MAAI,QAAQ,QAAU,UAAU,QAAQ,OAAK,QAAQ,SAAQ,AAAgE,WAAnD,QAAQ,KAAK,qCAAqC,CAAS,gBAAgB,IAAM,KAAK,MAAM,gBAAgB,QAAQ,CAAiC,MAAhC,eAAc,QAAQ,KAAK,KAAY,MAAM,gBAAgB,QAAQ,EAAG,CAAC,QAAQ,OAAO,QAAQ,CAAC,CACrU,MAAMA,GAAY,iBAAiB,CAAC,GAAG,CAAC,GAAG,QAAQ,OAAO,SAAS,CAAC,IAAM,QAAQ,CAAC,UAAU,GAAG,QAAQ,SAAS,MAAM,KAAK,CAAC,YAAY,KAAK,SAAS,WAAW,cAAc,cAAc,QAAQ,KAAK,iBAAiB,CAAC,oBAAoB,iBAAiB,CAAC,CAAO,KAAK,cAAc,QAAQ,UAAUC,2BAAO,cAAc,QAAQ,CAA2P,MAA1P,eAAc,QAAQ,SAAS,KAAK,YAAY,GAAK,CAAC,KAAK,aAAa,UAAU,CAAC,KAAK,SAAS,MAAM,CAAC,gBAAgB,QAAQ,GAAQ,YAAY,eAAe,QAAQ,eAAe,GAAM,CAAM,QAAQ,SAAS,KAAK,CAAC,YAAY,gBAAgB,KAAW,CAAC,KAAK,SAAS,GAAK,CAAC,KAAK,WAAW,MAAM,UAAU,WAAW,eAAe,eAAgB,CAAC,CAS4N,OARn5B,OAAc,CAAC,IAAI,QAAkC,OAA1B,MAAM,CAAC,KAAK,GAAG,QAAQ,EAAE,KAAW,CAAI,SAAQ,SAAS,GAAK,CAAC,QAAQ,QAAQ,OAAO,CAAC,CAClH,OAAc,CAAK,mBAAgB,QAAe,OAAO,MAAM,GAAM,EAAG,CAAC,KAAK,CAAC,CAC/E,OAAcA,2BAAO,WAAW,WAAW,MAAM,SAAS,CAAC,EAAE,CAAC,CAM9D,OAAc,SAAS,SAAS,KAAK,CAAI,aAAqB,WAAW,QAAQ,IAAI,GAAK,CAAM,QAAQ,IAAI,GAAM,GAAG,CAAC,EAAE,CAAC,CAAC,OAAc,CAAC,IAAM,IAAI,SAAS,KAAK,CAAI,WAAW,QAAQ,IAAI,GAAK,CAAM,QAAQ,IAAI,GAAM,EAAG,CAAC,YAAY,CAAC,CAAC,OAAc,CAAC,GAAG,CAAC,WAAW,OAAO,IAAM,yBAAyB,eAAe,IAAsB,QAAf,eAAuB,yBAA6C,SAAS,KAAK,CAAlC,GAAyC,EAAG,CAAC,eAAe,eAAe,CAAC,CAAC,OAAc,CAAC,IAAI,IAAc,cAAc,SAAyC,YAAkB,cAAc,QAAQ,UAAU,SAAS,MAAM,CAAC,QAAQ,SAAS,KAAK,CAAC,GAAK,GAAG,CAAC,MAAM,CAAC,CAAC,OAAc,CAAC,IAAI,IAAc,cAAc,SAAyC,YAAkB,cAAc,QAAQ,UAAU,aAAa,UAAU,CAAC,QAAQ,SAAS,KAAK,CAAC,GAAK,GAAG,CAAC,UAAU,CAAC,CAAC,OAAc,CAAI,WAAW,MAAM,CAAM,OAAO,EAAG,CAAC,WAAW,CAAC,CAAsB,EAAK,OAAO,IAAI,CAAC,IAAI,GAAS,MAAM,QAAQ,aAAa,aAAa,YAAY,UAAU,CAAC,gFArB19B,sBAAgD,uBAAwE,8BAAgF,iCAAwF,sBAAsD,EAAa,SAAS,UAAQ,CAAC,UAAQ,KAAQ,SAAS,UAAQ,IAAO,QAAS,AAAU,UAAQ,EAAE,CAAE,EAAa,SAAS,SAAO,CAAC,SAAO,KAAQ,OAAO,SAAO,OAAU,WAAY,AAAS,SAAO,EAAE,CAAE,CAAO,eAAe,0FAqBqa,OAAO,aAAa,CAAC,OAAO,IAAI,MAAM,IAAI,QAAQ,QAAQ,IAAI,cAAc,GAAK,OAAO,eAAe,SAAS,EAAE,OAAO,OAAO,KAAK,eAAe,EAAE,CAAC,oBAAoB,OAAO,CAAC,QAAQ,CAAC,KAAK,YAAY,KAAK,wBAAwB,GAAK,MAAM,SAAS,QAAQ,CAAC,QAAQ,IAAI,QAAQ,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,YAAY,OAAO,MAAM,IAAI,YAAY,kBAAkB,OAAO,OAAO,MAAM,UAAU,QAAQ,KAAK,CAAC,QAAQ,CAAC,KAAK,YAAY,KAAK,MAAM,IAAI,iBAAiB,CAAC,OAAO,CAAC,OAAO,OAAO,MAAM,UAAU,QAAQ,IAAI,CAAC,QAAQ,CAAC,KAAK,YAAY,QAAQ,MAAM,UAAU,aAAa,MAAM,cAAc,KAAK,CAQnmD,KAAK,CAAC,KAAK,YAAY,QAAQ,MAAM,OAAO,aAAa,MAAM,cAAc,KAAK,CAAC,oBAAoB,CAAC,MAAM,YAAY,KAAK,YAAY,QAAQ,aAAa,SAAS,cAAc,UAAU,CAAC,MAAM,CAAC,KAAK,YAAY,OAAO,aAAa,EAAE,IAAI,EAAE,IAAI,GAAG,KAAK,GAAG,eAAe,GAAK,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,SAAS,KAAK,YAAY,KAAK,QAAQ,CAAC,OAAO,KAAK,OAAO,OAAO,CAAC,wBAAwB,GAAK,CAAC,eAAe,CAAC,MAAM,IAAI,KAAK,YAAY,OAAO,IAAI,IAAI,IAAI,EAAE,KAAK,IAAI,QAAQ,CAAC,UAAU,SAAS,OAAO,KAAK,CAAC,SAAS,CAAC,MAAM,WAAW,KAAK,YAAY,OAAO,IAAI,IAAI,IAAI,EAAE,KAAK,IAAI,YAAY,oGAAoG,CAAC,GAAG,cAAc,CAAC,IC5BtF,SAASe,uBAAqB,YAAU,GAAG,SAAS,CAAC,IAAM,cAAc,EAAE,CAA+H,OAA9H,UAAmD,QAAQ,SAAS,SAAS,OAAO,OAAO,cAAciB,YAAU,SAAS,CAAC,CAAQ,0PAAnxB,uBAA6K,8BAAkE,sBAA4B,cAA8G,CAAM,YAAY,SAAS,OAAO,CAAOd,aAAW,CAAC,YAAY,YAAY,CAA8CE,oBAAkB,CAAC,UAAU,mBAAmB,UAAU,mBAAmB,CAAuO,YAAY,CAAC,QAAQ,CAAC,QAAQ,GAAG,MAAM,EAAE,KAAK,EAAE,UAAU,IAAI,KAAK,SAAS,CAAC,UAAU,CAAC,SAAS,EAAE,KAAK,QAAQ,CAAC,CAAO,mBAAmB,EAAE,MAAI,yBAAyB2G,MAAUzG,cAAY,CAAC,MAAM,YAAY,CAAC,IAAM,OAAOc,GAAiB,oBAAoB,CAAO,WAAW,OAAmC,OAAO,WAAiB,aAAaC,QAAmB,CAAC,GAAG,OAAO,WAAW,EAAE,CAAC,KAAK,UAAU,WAAW,CAAC,CAAC,CAAC,OAAoB,EAAK,oBAAoB,SAAS,CAAC,MAAM,aAAsB,SAAS,CAAC,EAAS5B,0BAAwB,CAAC,sBAAsB,YAAY,eAAe,YAAY,CAAOkB,YAAU,CAAC,OAAO,GAAA,KAAG,MAAM,GAAG,SAAS,CAAC,IAAI,uCAAuC,KAAK,MAAM,CAAC,GAAG,MAAM,QAAsDlB,0BAAwB,MAAM,UAAyG,MAAM,SAAoC,YAAY,EAASmB,0BAAwB,MAAM,WAAW,SAAS,KAAK,IAAI,CAAC,MAAM,iBAM12D,gBAAgB,QANw4D,EAAiB,SAAS,MAAM,IAAI,CAAC,GAAK,CAAC,aAAa,WAAW,eAAe,CAAM,CAAC,MAAM,UAAA,YAAU,SAAS,QAAQ,GAAG,WAAWD,WAAS,MAAM,CAAM,CAAC,YAAY,WAAW,eAAe,gBAAgB,WAAW,WAAW,UAAU,gBAAgB,CAAC,WAAA,aAAW,eAAe,YAAY,YAAY,QAAQ,kBAAA,oBAAkB,CAAC,CAAO,iBAAiBC,yBAAuB,MAAM,SAAS,CAAM,CAAC,sBAAsB,OAAO,yBAAyB,YAAY,CAAO,gBAAgB,sBAAsB,MAAM,GAAG,OAAO,CAAC,MAAM,UAAU,WAAW,kBAAkB,CAAC,KAAK,EAAG,CAAO,cAAc,sBAAsB,MAAM,GAAG,OAAO,CAAC,MAAM,UAAU,WAAW,kBAAkB,CAAC,IAAI,EAAG,CAAC,mBAAmB,YAAY,CAAC,QAAQ,gBAAgB,CAAC,CAAC,IAAM,KAAKC,GAAa,KAAK,CAAO,gBAAoB,cAAc,YAA6C,gBAAgBW,IAAa,CAAgC,OAAoB,EAAK,YAAY,CAAC,GAAG,UAA4C,gBAAgB,SAAsB,EAAK,OAAO,IAAI,CAAC,QAAQ,QAAQ,QAAQ,SAAS,iBAAiB,gBAAgB,CAAC,UAAU,GAAK,CAAC,CAAC,eAAe,gBAAgB,CAAC,UAAU,GAAM,CAAC,CAAC,eAAe,gBAAgB,CAAC,UAAU,GAAK,CAAC,CAAC,UAAU,gBAAgB,CAAC,UAAU,GAAM,CAAC,CAAC,gBAAgB,gBAAgB,CAAC,UAAU,GAAM,CAAC,CAAC,UAAU,GAAG,eAAwC,WAAW,CAAC,MAAM,CAAC,QAAQ,WAAW,CAAC,SAAsB,EAAKlB,aAAW,CAAC,MAAM,WAAW,SAAsB,EAAM,OAAO,IAAI,CAAC,GAAG,UAAU,UAAU,GAAG,iBAAiBoB,YAAU,CAAC,mBAAmB,sBAAsB,iBAAiB,GAAsB,iBAAiB,SAAS,YAAY,IAAI,KAA6B,KAAK,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG3B,uBAAqB,CAAC,UAAU,CAAC,mBAAmB,eAAe,CAAC,CAAC,YAAY,eAAe,CAAC,SAAS,CAAc,EAAK,OAAO,IAAI,CAAC,UAAU,iBAAkC,iBAAiB,SAAS,YAAY,MAAM,CAAC,gBAAgB,wEAAwE,uBAAuB,GAAG,wBAAwB,GAAG,oBAAoB,GAAG,qBAAqB,GAAG,CAAmB,kBAAkB,CAAC,CAAC,aAAa,EAAe,EAAK,OAAO,IAAI,CAAC,UAAU,2BAA4C,iBAAiB,SAAS,sBAAsB,SAAsB,EAAK,OAAO,CAAC,OAAO,OAAO,GAAG,YAAY,oBAAoB,GAAK,SAAS,YAAY,KAAK,GAAK,QAAQ,cAAc,QAAQ,GAAK,OAAO,OAAO,eAAe,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,wEAAwE,QAAQ,SAAS,OAAO,0FAA0F,MAAM,CAAC,OAAO,OAAO,MAAM,OAAO,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAG,CAAW,CAAC,sZAAsZ,kFAAkF,oDAAoD,uQAAuQ,4MAA4M,yGAAyG,mXAAmX,+DAA+D,yEAAyE,CAMruM,eAAe,mBAAgB,gBAAgB,gBAAgB,YAAY,sBAAsB,gBAAgB,aAAa,CAAC,OAAO,GAAG,MAAM,GAAG,CAAC,oBAAoB,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,YAAY,CAAC,aAAa,CAAC,sBAAsB,eAAe,CAAC,MAAM,UAAU,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,SAAS,gBAAgB,CAAC,GAAG,YAAY,CAAC,ICNqO,SAASA,uBAAqB,YAAU,GAAG,SAAS,CAAC,IAAM,cAAc,EAAE,CAA+H,OAA9H,UAAmD,QAAQ,SAAS,SAAS,OAAO,OAAO,cAAciB,YAAU,SAAS,CAAC,CAAQ,wQAAtxB,uBAA4I,8BAAkE,sBAA4B,iBAA0H,CAAM,qBAAqB,SAASf,kBAAgB,CAAO,gBAAgB,CAAC,UAAU,CAAC,MAAM,GAAK,CAAC,CAAOC,aAAW,CAAC,YAAY,CAAOC,oBAAkB,eAAqBC,oBAAkB,CAAC,UAAU,mBAAmB,CAAuOC,cAAY,CAAC,QAAQ,GAAG,MAAM,EAAE,KAAK,EAAE,UAAU,IAAI,KAAK,SAAS,CAAOC,cAAY,CAAC,MAAM,YAAY,CAAC,IAAM,OAAOc,GAAiB,oBAAoB,CAAO,WAAW,OAAmC,OAAO,WAAiB,aAAaC,QAAmB,CAAC,GAAG,OAAO,WAAW,EAAE,CAAC,KAAK,UAAU,WAAW,CAAC,CAAC,CAAC,OAAoB,EAAK,oBAAoB,SAAS,CAAC,MAAM,aAAsB,SAAS,CAAC,EAASZ,WAAS,OAAOa,EAAe,CAAOX,YAAU,CAAC,OAAO,GAAA,KAAG,MAAM,GAAG,UAAgB,CAAC,GAAG,MAAM,EAASC,0BAAwB,MAAM,WAAW,SAAS,KAAK,IAAI,CAAC,MAAM,iBAQz6C,gBAAgB,QARu8C,EAAiB,SAAS,MAAM,IAAI,CAAC,GAAK,CAAC,aAAa,WAAW,eAAe,CAAM,CAAC,MAAM,UAAA,YAAU,SAAS,QAAQ,GAAG,WAAWD,WAAS,MAAM,CAAM,CAAC,YAAY,WAAW,eAAe,gBAAgB,WAAW,UAAU,gBAAgB,CAAC,WAAA,aAAW,eAAe,YAAY,gBAAgB,QAAQ,kBAAA,oBAAkB,CAAC,CAAO,iBAAiBC,yBAAuB,MAAM,SAAS,CAAO,KAAKC,GAAa,KAAK,CAAO,gBAAgBW,IAAa,CAAO,sBAAsB,EAAE,CAAgD,OAAvB,sBAAsB,CAAqB,EAAK,YAAY,CAAC,GAAG,UAA4C,gBAAgB,SAAsB,EAAKf,WAAS,CAAC,QAAQ,SAAS,QAAQ,GAAM,SAAsB,EAAKH,aAAW,CAAC,MAAMD,cAAY,SAAsB,EAAK,KAAK,CAAC,KAAK,CAAC,UAAU,YAAY,CAAC,SAAsB,EAAM,OAAO,EAAE,CAAC,GAAG,UAAU,UAAU,GAAG,GAAGF,oBAAkB,GAAG,sBAAsB,iBAAiBuB,YAAU,WAAW,CAAC,iBAAiB,mBAAmB,SAA0B,iBAAiB,SAAS,YAAY,eAAe,gBAAgB,CAAC,UAAU,GAAM,CAAC,CAAC,iBAAiB,gBAAgB,CAAC,UAAU,GAAK,CAAC,CAAC,UAAU,gBAAgB,CAAC,UAAU,GAAM,CAAC,CAAC,gBAAgB,gBAAgB,CAAC,UAAU,GAAM,CAAC,CAAC,eAAe,gBAAgB,CAAC,UAAU,GAAK,CAAC,CAAC,IAAI,KAA6B,KAAK,MAAM,CAAC,uBAAuB,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,GAAG,MAAM,CAAC,GAAG3B,uBAAqB,CAAC,kBAAkB,CAAC,mBAAmB,IAAA,GAAU,CAAC,CAAC,YAAY,eAAe,CAAC,SAAS,CAAc,EAAK,0BAA0B,CAAC,SAAsB,EAAK,OAAO,IAAI,CAAC,UAAU,0BAA2C,iBAAiB,SAAS,sBAAsB,SAAsB,EAAKE,kBAAgB,CAAC,OAAO,OAAO,GAAG,YAAY,SAAS,YAAY,MAAM,CAAC,OAAO,OAAO,MAAM,OAAO,CAAC,QAAQ,YAAY,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,EAAK,SAAS,CAAC,sBAAsB,GAAK,SAAsB,EAAKqB,EAAe,CAAC,SAAsB,EAAK,OAAO,EAAE,CAAC,MAAM,CAAC,kBAAkB,mCAAmC,uBAAuB,2BAA2B,qBAAqB,OAAO,sBAAsB,iGAAiG,CAAC,SAAS,gBAAgB,CAAC,CAAC,CAAC,CAAC,UAAU,iBAAiB,MAAM,CAAC,yBAAyB,CAAkB,iBAAiB,SAAS,YAAY,MAAM,CAAC,qBAAqB,wEAAwE,CAAC,SAAS,CAAC,kBAAkB,CAAC,qBAAqB,wEAAwE,CAAC,CAAC,kBAAkB,MAAM,mBAAmB,GAAK,GAAGvB,uBAAqB,CAAC,kBAAkB,CAAC,SAAsB,EAAKuB,EAAe,CAAC,SAAsB,EAAK,OAAO,EAAE,CAAC,MAAM,CAAC,kBAAkB,mCAAmC,uBAAuB,2BAA2B,qBAAqB,OAAO,sBAAsB,iGAAiG,CAAC,SAAS,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAG,CAAW,CAAC,kFAAkF,kFAAkF,2TAA2T,wGAAwG,iHAAiH,6WAA6W,CAQtmL,eAAe,mBAAgB,gBAAgB,gBAAgB,YAAY,kBAAkB,gBAAgB,aAAa,CAAC,OAAO,GAAG,MAAM,IAAI,CAAC,SAAS,gBAAgB,CAAC,CAAC,cAAc,GAAK,MAAM,CAAC,CAAC,OAAO,cAAc,OAAO,SAAS,MAAM,SAAS,IAAI,sGAAsG,OAAO,MAAM,CAAC,CAAC,CAAC,GAAG,qBAAqB,CAAC,CAAC,6BAA6B,GAAK,CAAC,ICR+uB,SAAS,qBAAqB,YAAU,GAAG,SAAS,CAAC,IAAM,cAAc,EAAE,CAAsF,OAArF,UAAU,QAAQ,SAAS,SAAS,OAAO,OAAO,cAAcN,YAAU,SAAS,CAAC,CAAQ,sTAA9zC,uBAAyP,8BAAkE,sBAA4B,iBAAmJ,iBAAyH,iBAA4H,iBAAuH,CAAM,oBAAoB,SAASC,kBAAe,CAAO,uBAAuB,SAASC,kBAAkB,CAAO,kBAAkB,SAASC,kBAAa,CAAO,WAAW,CAAC,YAAY,YAAY,CAAO,kBAAkB,eAAqB,kBAAkB,CAAC,UAAU,kBAAkB,UAAU,mBAAmB,CAA8L,YAAY,CAAC,QAAQ,GAAG,MAAM,EAAE,KAAK,EAAE,UAAU,IAAI,KAAK,SAAS,CAAO,YAAY,CAAC,MAAM,YAAY,CAAC,IAAM,OAAOC,GAAiB,oBAAoB,CAAO,WAAW,OAAO,OAAO,WAAiB,aAAaC,QAAmB,CAAC,GAAG,OAAO,WAAW,EAAE,CAAC,KAAK,UAAU,WAAW,CAAC,CAAC,CAAC,OAAoB,EAAK,oBAAoB,SAAS,CAAC,MAAM,aAAsB,SAAS,CAAC,EAAS,SAAS,OAAO,OAAOC,EAAe,CAAO,wBAAwB,CAAC,QAAQ,YAAY,OAAO,YAAY,CAAO,UAAU,CAAC,OAAO,GAAA,KAAG,MAAM,GAAG,UAAgB,CAAC,GAAG,MAAM,QAAQ,wBAAwB,MAAM,UAAU,MAAM,SAAS,YAAY,EAAS,wBAAwB,MAAM,WAAe,MAAM,iBAAwB,SAAS,KAAK,IAAI,CAAC,MAAM,iBAAwB,SAAS,KAAK,IAAI,CAAS,UAAuB,EAAiB,SAAS,MAAM,IAAI,CAAC,IAAM,YAAYC,GAAO,KAAK,CAAO,WAAW,KAAK,YAAkB,gBAAgBC,IAAa,CAAM,CAAC,aAAa,WAAW,eAAe,CAAO,kBAAkB,sBAAsB,CAAM,CAAC,MAAM,UAAA,YAAU,SAAS,QAAQ,GAAG,WAAW,SAAS,MAAM,CAAM,CAAC,YAAY,WAAW,oBAAoB,gBAAgB,eAAe,UAAU,gBAAgB,WAAW,UAAU,gBAAgB,CAAC,WAAW,eAAe,YAAY,IAAI,WAAW,QAAQ,kBAAkB,CAAC,CAAO,iBAAiB,uBAAuB,MAAM,SAAS,CAA2D,kBAAkB,GAAG,kBAAlDC,UAA6F,CAA0B,OAAZ,WAAW,CAAqB,EAAK,YAAY,CAAC,GAAG,UAAU,gBAAgB,SAAsB,EAAK,SAAS,CAAC,QAAQ,SAAS,QAAQ,GAAM,SAAsB,EAAK,WAAW,CAAC,MAAM,YAAY,SAAsB,EAAK,OAAO,OAAO,CAAC,GAAG,UAAU,GAAG,gBAAgB,UAAU,GAAG,kBAAkB,gBAAgBC,YAAU,WAAW,CAAC,mBAAmB,UAA2B,iBAAiB,SAAS,YAAY,IAAI,WAAW,MAAM,CAAC,gBAAgB,iBAAiB,GAAG,MAAM,CAAC,GAAG,qBAAqB,CAAC,UAAU,CAAC,mBAAmB,SAAS,CAAC,CAAC,YAAY,eAAe,CAAC,SAAsB,EAAM,OAAO,IAAI,CAAC,UAAU,gBAAgB,mBAAmB,YAA6B,iBAAiB,SAAS,YAAY,SAAS,CAAc,EAAK,OAAO,IAAI,CAAC,UAAU,iBAAiB,mBAAmB,QAAyB,iBAAiB,SAAS,YAAY,SAAsB,EAAM,OAAO,IAAI,CAAC,UAAU,iBAAiB,mBAAmB,QAAyB,iBAAiB,SAAS,YAAY,SAAS,CAAc,EAAM,OAAO,IAAI,CAAC,UAAU,iBAAiB,mBAAmB,OAAwB,iBAAiB,SAAS,YAAY,SAAS,CAAc,EAAK,0BAA0B,CAAC,SAAsB,EAAK,8BAA8B,CAAC,UAAU,0BAA2C,iBAAiB,SAAS,sBAAsB,OAAO,YAAY,kBAAkB,GAAK,QAAQ,YAAY,SAAsB,EAAKT,kBAAe,CAAC,OAAO,OAAO,GAAG,YAAY,SAAS,YAAY,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,EAAK,OAAO,IAAI,CAAC,UAAU,gBAAiC,iBAAiB,SAAS,YAAY,SAAsB,EAAK,aAAa,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,UAAU,YAAY,CAAC,sBAAsB,IAAA,GAAU,CAAC,CAAC,KAAK,CAAC,UAAU,YAAY,CAAC,sBAAsB,IAAA,GAAU,CAAC,CAAC,SAAS,eAA4B,EAAK,0BAA0B,CAAC,OAAO,GAAG,MAAM,OAAO,GAAG,mBAAmB,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,qBAAqB,CAAC,UAAU,CAAC,GAAG,mBAAmB,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,YAAY,eAAe,CAAC,SAAsB,EAAK,8BAA8B,CAAC,UAAU,2BAA4C,iBAAiB,SAAS,sBAAsB,OAAO,YAAY,kBAAkB,GAAK,QAAQ,YAAY,SAAsB,EAAKC,kBAAkB,CAAC,OAAO,OAAO,GAAG,YAAY,SAAS,YAAY,MAAM,CAAC,OAAO,OAAO,MAAM,OAAO,CAAC,QAAQ,YAAY,UAAU,cAAc,GAAG,MAAM,OAAO,GAAG,qBAAqB,CAAC,UAAU,CAAC,UAAU,cAAc,GAAG,CAAC,CAAC,YAAY,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,EAAM,OAAO,IAAI,CAAC,UAAU,iBAAiB,mBAAmB,MAAuB,iBAAiB,SAAS,YAAY,SAAS,CAAc,EAAK,SAAS,CAAC,sBAAsB,GAAK,SAAsB,EAAKI,EAAe,CAAC,SAAsB,EAAK,OAAO,GAAG,CAAC,MAAM,CAAC,kBAAkB,2BAA2B,uBAAuB,2BAA2B,qBAAqB,OAAO,uBAAuB,MAAM,uBAAuB,QAAQ,sBAAsB,kGAAkG,0BAA0B,YAAY,CAAC,SAAS,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,iBAAiB,MAAM,CAAC,qBAAqB,CAAkB,iBAAiB,SAAS,YAAY,MAAM,CAAC,sBAAsB,wEAAwE,2BAA2B,mBAAmB,gCAAgC,YAAY,CAAC,kBAAkB,MAAM,mBAAmB,GAAK,CAAC,CAAc,EAAK,SAAS,CAAC,sBAAsB,GAAK,SAAsB,EAAKA,EAAe,CAAC,SAAsB,EAAK,OAAO,EAAE,CAAC,MAAM,CAAC,kBAAkB,mCAAmC,uBAAuB,2BAA2B,qBAAqB,OAAO,uBAAuB,QAAQ,0BAA0B,OAAO,sBAAsB,iGAAiG,CAAC,SAAsB,EAAK,KAAK,CAAC,KAAK,CAAC,UAAU,YAAY,CAAC,YAAY,GAAK,OAAO,YAAY,aAAa,GAAM,QAAQ,YAAY,aAAa,GAAM,SAAsB,EAAK,OAAO,EAAE,CAAC,UAAU,8BAA8B,qBAAqB,YAAY,SAAS,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,gBAAgB,MAAM,CAAC,yBAAyB,CAAkB,iBAAiB,SAAS,YAAY,MAAM,CAAC,qBAAqB,wEAAwE,CAAC,kBAAkB,MAAM,mBAAmB,GAAK,CAAC,CAAc,EAAK,SAAS,CAAC,sBAAsB,GAAK,SAAsB,EAAKA,EAAe,CAAC,SAAsB,EAAK,OAAO,EAAE,CAAC,MAAM,CAAC,kBAAkB,mCAAmC,uBAAuB,2BAA2B,qBAAqB,OAAO,uBAAuB,QAAQ,0BAA0B,OAAO,sBAAsB,iGAAiG,CAAC,SAAsB,EAAK,KAAK,CAAC,KAAK,CAAC,UAAU,YAAY,CAAC,YAAY,GAAK,OAAO,YAAY,aAAa,GAAM,QAAQ,YAAY,aAAa,GAAM,SAAsB,EAAK,OAAO,EAAE,CAAC,UAAU,8BAA8B,qBAAqB,YAAY,SAAS,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,iBAAiB,MAAM,CAAC,yBAAyB,CAAkB,iBAAiB,SAAS,YAAY,MAAM,CAAC,qBAAqB,wEAAwE,CAAC,kBAAkB,MAAM,mBAAmB,GAAK,CAAC,CAAc,EAAK,OAAO,IAAI,CAAC,UAAU,iBAAkC,iBAAiB,SAAS,YAAY,SAAsB,EAAK,SAAS,CAAC,sBAAsB,GAAK,SAAsB,EAAKA,EAAe,CAAC,SAAsB,EAAK,OAAO,EAAE,CAAC,MAAM,CAAC,kBAAkB,mCAAmC,uBAAuB,2BAA2B,qBAAqB,OAAO,uBAAuB,QAAQ,0BAA0B,OAAO,sBAAsB,iGAAiG,CAAC,SAAsB,EAAK,KAAK,CAAC,KAAK,CAAC,UAAU,YAAY,CAAC,YAAY,GAAK,OAAO,YAAY,aAAa,GAAM,QAAQ,YAAY,aAAa,GAAM,SAAsB,EAAK,OAAO,EAAE,CAAC,UAAU,8BAA8B,qBAAqB,YAAY,SAAS,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,iBAAiB,MAAM,CAAC,yBAAyB,CAAkB,iBAAiB,SAAS,YAAY,MAAM,CAAC,qBAAqB,wEAAwE,CAAC,kBAAkB,MAAM,mBAAmB,GAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,EAAK,OAAO,IAAI,CAAC,UAAU,iBAAkC,iBAAiB,SAAS,YAAY,SAAsB,EAAM,OAAO,IAAI,CAAC,UAAU,iBAAiB,cAAc,GAAK,mBAAmB,OAAwB,iBAAiB,SAAS,YAAY,MAAM,CAAC,wBAAwB,MAAM,iBAAiB,qEAAqE,sBAAsB,MAAM,uBAAuB,MAAM,iBAAiB,QAAQ,qBAAqB,MAAM,CAAC,SAAS,CAAc,EAAK,OAAO,IAAI,CAAC,UAAU,gBAAgB,mBAAmB,YAA6B,iBAAiB,SAAS,YAAY,SAAsB,EAAK,SAAS,CAAC,sBAAsB,GAAK,SAAsB,EAAKA,EAAe,CAAC,SAAsB,EAAK,OAAO,EAAE,CAAC,MAAM,CAAC,kBAAkB,mCAAmC,uBAAuB,2BAA2B,qBAAqB,OAAO,sBAAsB,iGAAiG,CAAC,SAAS,wCAA2C,CAAC,CAAC,CAAC,CAAC,UAAU,iBAAiB,MAAM,CAAC,yBAAyB,CAAkB,iBAAiB,SAAS,YAAY,MAAM,CAAC,qBAAqB,wEAAwE,2BAA2B,mBAAmB,gCAAgC,YAAY,CAAC,kBAAkB,MAAM,mBAAmB,GAAK,CAAC,CAAC,CAAC,CAAc,EAAK,OAAO,IAAI,CAAC,UAAU,iBAAiB,mBAAmB,kBAAmC,iBAAiB,SAAS,YAAY,SAAsB,EAAK,0BAA0B,CAAC,OAAO,GAAG,GAAG,mBAAmB,GAAG,GAAG,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,qBAAqB,CAAC,UAAU,CAAC,GAAG,mBAAmB,GAAG,GAAG,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,YAAY,eAAe,CAAC,SAAsB,EAAK,8BAA8B,CAAC,UAAU,0BAA2C,iBAAiB,SAAS,sBAAsB,OAAO,YAAY,kBAAkB,GAAK,QAAQ,YAAY,SAAsB,EAAKH,kBAAa,CAAC,OAAO,OAAO,GAAG,YAAY,SAAS,YAAY,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAG,CAAO,IAAI,CAAC,kFAAkF,kFAAkF,0QAA0Q,oSAAoS,oRAAoR,yRAAyR,+RAA+R,gJAAgJ,sRAAsR,yGAAyG,uRAAuR,4OAA4O,qRAAqR,qRAAqR,uRAAuR,gSAAgS,qRAAqR,2FAA2F,+DAA+D,wFAAwF,8HAA8H,gJAAgJ,8DAA8D,+DAA+D,GAAGQ,MAAgB,gcAAgc,CAUvthB,gBAAgB,QAAQ,UAAU,IAAI,eAAe,mBAAgB,gBAAgB,gBAAgB,YAAY,kBAAkB,gBAAgB,aAAa,CAAC,OAAO,IAAI,MAAM,KAAK,CAAC,oBAAoB,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,YAAY,CAAC,aAAa,CAAC,UAAU,SAAS,CAAC,MAAM,UAAU,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,SAAS,gBAAgB,CAAC,CAAC,cAAc,GAAK,MAAM,CAAC,CAAC,OAAO,cAAc,OAAO,SAAS,MAAM,SAAS,IAAI,sGAAsG,OAAO,MAAM,CAAC,CAAC,OAAO,cAAc,OAAO,SAAS,MAAM,SAAS,IAAI,sGAAsG,OAAO,MAAM,CAAC,CAAC,CAAC,GAAG,oBAAoB,GAAG,uBAAuB,GAAG,kBAAkB,GAAG,wBAAwBC,MAAkB,CAAC,CAAC,CAAC,6BAA6B,GAAK,CAAC,IC6BsqI,SAAS,WAAW,KAAK,CAAC,IAAI,OAAO,GAAG,IAAI,IAAI,QAAQ,KAAK,QAAQ,KAAK,OAAO,EAAE,OAAO,OAAQ,SAAS,WAAW,KAAK,OAAO,KAAK,EAAE,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE0E,IAAE,EAAE,MAAM,GAAKA,IAAE,KAAK,QAAQ,KAAK,GAAG,MAAI,CAAC,IAAI,KAAK,KAAKA,KAAG,IAAI,IAAI,KAAK,OAAU,KAAK,OAAS,IAAI,KAAG,KAAK,KAAK,MAAM,EAAE,GAAG,IAAI,EAAI,IAAI,OAAK,KAAK,KAAK,MAAM,KAAK,IAAI,EAAI,OAAO,OAAO,OAAO,OAAO,IAAI,KAAK,MAAM,IAAY,OAAO,KAAK,KAAK,EAAE,IAAI,IAAI,EAAG,OAAO,OAAQ,SAAS,UAAU,KAAK,KAAK,GAAG,CAAC,OAAO,WAAW,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,CAIjhI,SAAS,gBAAgB,OAAK,CAAC,IAAI,IAAIA,IAAE,EAAEA,IAAE,OAAO,OAAO,KAAG,EAAE,GAAG,OAAOA,KAAGnD,OAAK,OAAO,OAAOmD,IAAE,IAAInD,OAAK,MAAO,GAAO,SAAS,oBAAoB,OAAK,CAAC,OAAOA,QAAM,QAAQA,QAAM,OAAqB,SAAS,iBAAiB,IAAI,IAAI,QAAQ,GAAK,iBAAiB,GAAK,CAAC,OAAO,QAAQ,iBAAiB,kBAAkB,IAAI,IAAI,iBAAiB,CAAE,SAAS,iBAAiB,IAAI,IAAI,iBAAiB,CAAC,GAAG,KAAK,IAAI,OAAO,OAAO,IAAO,KAAK,aAAa,IAAI,WAAW,IAAI,CAAC,EAAE,cAAc,IAAI,WAAW,IAAI,EAAE,CAAC,EAAC,MAAM,IAAI,KAAK,YAAY,IAAI,IAAI,CAA0B,IAAzB,KAAK,cAAc,KAAK,CAAO,IAAI,IAAI,QAAO,CAAC,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,GAAG,MAAM,KAAK,MAAM,KAAK,kBAAkB,gBAAgB,KAAK,CAAE,KAAK,cAAc,KAAK,CAAC,KAAK,aAAc,oBAAoB,KAAK,CAAC,CAAC,IAAI,YAAY,EAAEmD,IAAE,IAAI,EAAE,KAAMA,KAAG,GAAG,oBAAoB,YAAY,IAAIA,IAAE,CAAC,EAAE,cAAc,KAAG,EAAG,GAAG,YAAY,GAAG,EAAE,MAAW,KAAK,OAAQ,MAAQ,OAAO,IAAK,SAAS,iBAAiB,IAAI,IAAI,iBAAiB,CAAC,KAAM,IAAI,GAAE,CAAC,IAAI,MAAM,iBAAiB,IAAI,IAAI,EAAE,iBAAiB,CAAC,GAAG,MAAM,IAAI,OAAO,MAAM,MAAO,MAAO,GAAG,SAAS,aAAa,GAAG,CAAC,OAAO,IAAI,OAAO,GAAG,MAAO,SAAS,cAAc,GAAG,CAAC,OAAO,IAAI,OAAO,GAAG,MAAO,SAAS,YAAY,IAAI,IAAI,CAAC,IAAI,MAAM,IAAI,WAAW,IAAI,CAAC,GAAG,CAAC,cAAc,MAAM,EAAE,IAAI,GAAG,IAAI,OAAO,OAAO,MAAM,IAAI,MAAM,IAAI,WAAW,IAAI,EAAE,CAAsC,OAAjC,aAAa,MAAM,EAAqB,MAAM,OAAO,KAAK,MAAM,OAAO,MAA5C,MAAmD,SAAS,cAAc,OAAK,CAA6D,OAAzDnD,QAAM,MAAa,OAAO,aAAaA,OAAK,EAAC,QAAM,MAAa,OAAO,cAAcA,QAAM,IAAI,OAAOA,OAAK,MAAM,MAAM,EAAE,SAAS,cAAc,OAAK,CAAC,OAAOA,OAAK,MAAM,EAAE,EAsGl9F,SAAS,WAAW,SAAS,IAAI,IAAI,UAAU,GAAM,CAAC,GAAG,KAAK,GAAG,KAAK,EAAE,OAAO,IAAI,KAAK,SAAS,OAAO,EAAK,MAAM,GAAG,KAAK,GAAG,KAAK,SAAS,KAAK,GAAG,SAAS,OAAO,IAAY,KAAK,GAAG,SAAS,OAAO,EAAE,SAAS,KAAK,IAAI,IAAY,WAAW,SAAS,OAAO,IAAI,SAAS,KAAK,IAAI,KAAU,SAAS,KAAK,IAAI,IAAI,CAAE,SAAS,UAAU,OAAO,SAAS,MAAM,CAAC,GAAG,MAAM,QAAQ,EAAE,OAAO,IAAI,MAAM,SAAS,OAAO,GAAG,EAAE,GAAG,MAAM,OAAO,OAAQ,OAAO,OAAO,OAAO,GAAG,OAAO,OAAO,OAAO,GAAG,OAAO,MAAM,KAAM,CAAC,KAAM,OAAO,OAAO,OAAM,OAAO,KAAK,KAAK,MAAM,CAAC,OAAO,KAAK,MAAM,EAAG,SAAS,YAAY,KAAK,EAAE,WAAW,CAAC,IAAI,SAAS,KAAK,SAAS,IAAI,IAAI,KAAK,EAAE,KAAK,EAAEmD,IAAE,EAAEA,IAAE,KAAK,SAAS,QAAQ,CAAC,IAAI,IAAI,KAAK,SAAS,OAAK,IAAI,KAAK,SAAS,OAAK,GAAG,IAAI,EAAG,MAAM,IAAI,MAAM,QAAS,CAAC,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,KAAQ,MAAM,IAAI,MAAM,IAAO,KAAK,WAAS,KAAK,KAAK,OAAO,SAASA,IAAE,GAAG,GAAG,EAAI,cAAYA,KAAG,KAAK,SAAS,QAAQ,KAAK,SAASA,IAAE,GAAG,IAAQ,IAAI,KAAK,SAAS,OAAK,IAAI,KAAK,SAAS,OAAM,EAAE,KAAK,KAAK,KAAK,KAAK,KAAK,CAAC,KAAK,KAAK,KAAK,OAAQ,SAAS,OAAO,KAAK,KAAK,OAAO,MAAM,GAAM,CAAC,IAAI,SAAS,EAAE,CAAC,QAAQ,MAAM,EAAE,CAAC,KAAS,EAAE,IAAI,YAAY,KAAK,CAAC,EAAE,IAAI,YAAY,KAAK,CAAC,IAAI,IAAI,SAAS,KAAM,GAAG,EAAE,KAAK,IAAI,EAAE,KAAK,GAAG,CAAC,IAAI,IAAI,KAAK,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,SAAS,IAAI,GAAG,CAAC,EAAE,QAAQ,IAAI,CAAC,EAAE,QAAQ,IAAI,SAAU,EAAE,KAAK,IAAI,EAAE,IAAI,GAAG,UAAU,EAAE,GAAG,EAAE,KAAK,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI,KAAK,EAAE,IAAkC,IAA9B,WAAW,SAAS,EAAE,IAAI,GAAG,CAAO,MAAK,CAAC,IAAI,MAAM,KAAK,IAAI,EAAE,IAAI,KAAK,CAAI,EAAE,KAAK,GAAG,SAAS,EAAE,GAAG,EAAE,KAAK,QAAO,WAAW,SAAS,EAAE,EAAE,IAAI,CAAI,SAAQ,UAAU,QAAQ,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,GAAG,EAAE,QAAQ,MAAM,CAAC,MAAM,MAAO,EAAE,MAAM,SAAU,EAAE,KAAK,EAAE,CAAC,IAAI,KAAK,EAAE,KAAK,EAAE,IAAI,KAAM,MAAM,GAAG,EAAE,KAAK,GAAG,CAAC,IAAI,OAAO,KAAK,IAAI,KAAK,EAAE,IAAI,CAAC,MAAM,OAAO,MAAM,OAAO,EAAE,QAAQ,OAAO,SAAU,EAAE,KAAK,GAAG,EAAE,IAAI,KAAM,MAAM,EAAE,IAAI,EAAE,MAAM,MAAO,MAAQ,WAAW,SAAS,KAAK,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,CAAI,SAAS,SAAS,EAAE,GAAE,UAAU,QAAQ,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,KAAK,SAAU,EAAE,MAAM,EAAE,KAAM,OAAO,QAAQ,UAAU,UAAU,SAAS,QAAQ,CAAC,WAAW,OAAO,SAAS,MAAO,MAAU,MAAM,gCAAgC,CAAI,SAAS,YAAY,KAAK,KAAK,MAAM,GAAM,CAAC,IAAI,SAAS,EAAE,CAAK,QAAQ,MAAM,EAAE,CAAC,KAAS,EAAE,IAAI,YAAY,KAAK,CAAC,EAAE,IAAI,YAAY,KAAK,CAAC,IAAI,IAAI,KAAK,KAAS,GAAG,EAAE,MAAM,EAAE,KAAM,OAAO,QAAQ,UAAU,UAAU,SAAS,QAAQ,CAAC,WAAW,OAAO,SAAS,SAAU,EAAE,KAAK,EAAG,WAAW,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,MAAM,SAAU,EAAE,KAAK,GAAG,CAAC,EAAE,KAAM,WAAW,SAAS,EAAE,EAAE,IAAI,KAAK,CAAI,SAAQ,UAAU,QAAQ,SAAS,EAAE,KAAK,CAAC,EAAE,MAAM,SAAU,EAAE,MAAM,EAAE,KAAM,MAAU,MAAM,gCAAgC,KAAM,CAAC,IAAI,IAAI,KAAK,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,SAAS,OAAO,GAAG,EAAE,KAAK,GAAG,CAAC,IAAI,KAAK,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,WAAW,SAAS,IAAI,KAAK,KAAK,CAAI,SAAS,MAAK,UAAU,QAAQ,SAAS,EAAE,KAAK,MAAU,EAAE,KAAK,IAAI,WAAW,SAAS,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,CAAI,SAAQ,UAAU,QAAQ,SAAS,EAAE,QAAQ,IAAI,CAAC,GAAO,WAAW,SAAS,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,IAAI,KAAK,CAAI,SAAS,CAAC,EAAE,KAAI,UAAU,QAAQ,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,KAAK,EAAE,KAAK,GAAG,EAAE,IAAI,OAAO,MAAM,SAAS,OAAO,YAAY,EAAE,SAAS,IAAI,CAAC,EAAE,QAAQ,IAAI,EAqExxF,SAAS,eAAe,UAAU,UAAU,CAAC,IAAI,IAAI,SAAS,UAAU,OAAO,GAAG,MAAM,GAAG,UAAU,MAAU,WAAW,uCAAuC,CAe7O,SAASvE,YAAU,EAAE,EAAE,CAAC,OAAO,GAAG,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAI,IAAI,EAAEuE,KAAG,CAAg4C,SAAS,aAAa,EAAE,EAAE,SAAS,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,MAAO,GAAM,IAAI,IAAIA,IAAE,EAAEA,IAAE,EAAE,OAAO,MAAI,GAAG,CAAC,SAAS,EAAEA,KAAG,EAAEA,KAAG,CAAC,MAAO,GAAM,MAAO,GAAM,SAAS,UAAU,MAAM,MAAM,CAAC,IAAI,QAAQ,GAAM,IAAI,IAAI,QAAQ,MAAS,WAAW,MAAM,KAAK,CAAC,IAAE,QAAQ,IAAK,OAAO,QAAS,SAAS,iBAAiB,UAAU,MAAM,UAAU,CAAC,IAAI,cAAc,UAAU,IAAI,KAAG,UAAUE,IAAE,IAAI,CAAK,cAAc,UAAU,IAAI,KAAGA,IAAE,KAAK,CAAK,QAAQ,cAAc,OAAO,KAAG,EAAEA,IAAE,GAAG,CAAK,IAAI,UAAU,MAAM,KAAK,EAAE,SAAS,IAAI,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC,IAAI,IAAIF,IAAE,EAAEA,IAAE,cAAc,OAAO,MAAI,CAAC,IAAI,MAAM,QAAQ,MAAM,cAAcA,KAAG,CAAC,GAAG,cAAcA,MAAI,EAAE,IAAI,IAAI,OAAO,MAAM,OAAO,KAAK,IAAI,MAAM,OAAO,KAAK,MAAM,CAAE,OAAO,MAAM,QAAQ,OAAO,CAAE,MAAM,CAAC,OAAO,MAAM,CAAC,IAAI,IAAI,QAAQ,cAAc,WAAW,MAAM,KAAK,CAA8B,MAA7B,OAAM,OAAO,KAAK,IAAI,MAAM,CAAQ,GAAI,OAAO,MAAM,GAAG,CAAC,GAAG,CAAC,UAAU,MAAM,QAAQ,CAAC,MAAO,GAAE,IAAI,MAAM,IAAI,MAAM,CAA4E,OAAxE,MAAM,QAAQ,MAAM,MAAM,OAAO,KAAK,CAAQ,GAAE,MAAM,OAAO,KAAK,MAAa,IAAI,YAAY,MAAM,SAAS,CAAC,IAAI,WAAW,UAAU,MAAM,cAAc,CAAK,aAAa,SAAS,OAAO,OAAO,MAAM,IAAI,SAAS,SAAS,MAAM,MAAM,CAAC,GAAG,cAAc,CAAC,YAAYvE,YAAU,UAAU,aAAa,CAA6B,MAA3B,OAAM,OAAO,KAAK,SAAgB,EAAG,IAAI,MAAM,IAAI,MAAM,CAAgG,OAA5F,MAAM,QAAQ,MAAM,SAAS,EAAE,MAAM,OAAO,KAAK,SAAgB,IAAG,MAAM,OAAO,KAAK,MAAa,IAAI,CAYrjG,SAAS,KAAK,MAAM,CAAC,MAAO,MAAK,IAAI,cAAc,IAAI,MAAM,CAuBuuD,SAAS,QAAQ,UAAU,aAAa,gBAAgB,CAAC,IAAI,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAK,KAAqB,IAAI,IAAI,SAAS,MAAM,IAAI,MAAM,CAAC,IAAI,MAAM,KAAK,IAAI,IAAI,CAAC,GAAG,OAAO,KAAK,CAAC,GAAG,OAAO,MAAM,OAAO,IAAI,MAAM,OAAO,OAAO,QAAQ,IAAI,CAAI,MAAM,IAAG,OAAO,OAAO,OAAO,MAAM,EAAE,CAAI,eAAe,qBAAoB,gBAAgB,OAAO,IAAI,YAAY,CAAsB,GAApB,KAAK,IAAI,IAAI,MAAM,CAAI,MAAM,QAAQ,IAAI,CAAE,IAAI,IAAI,KAAK,IAAI,MAAM,EAAE,MAAM,SAAU,eAAe,oBAAoB,CAAC,GAAG,gBAAgB,IAAI,IAAI,YAAY,CAAC,MAAU,WAAW,6CAA6C,CAAC,IAAIyB,UAAQ,aAAa,IAAI,IAAI,YAAY,EAAE,IAAI,MAAM,gBAAgB,IAAI,IAAI,YAAYA,UAAQ,CAAC,MAAMA,UAAQ,MAAM,SAAU,eAAe,cAAe,MAAM,IAAI,MAAM,IAAI,KAAK,SAAU,eAAe,WAAY,OAAO,OAAO,KAAK,IAAI,CAAI,IAAI,UAAS,MAAM,IAAI,SAAS,MAAM,SAAU,eAAe,cAAe,OAAO,OAAO,KAAK,IAAI,CAAI,IAAI,MAAM,YAAW,MAAM,IAAI,MAAM,WAAW,MAAM,QAAQ,KAAM,CAAC,IAAI,SAAS,IAAI,UAAU,GAAG,CAAC,SAAS,MAAU,MAAM,kDAAkD,IAAI,mHAAmH,CAAC,MAAM,SAAS,MAAM,EAAkC,OAA/B,MAAM,UAAU,MAAM,QAAQ,CAAQ,OAAO,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAE,SAAS,WAAW,MAAM,KAAK,CAAC,GAAG,KAAK,EAAE,MAAO,GAAE,IAAI,IAAI,MAAM,EAAM,OAAO,MAAM,OAAO,KAAK,GAAG,QAAQ,EAAE,MAAU,MAAM,iDAAiD,CAAC,GAAG,OAAO,EAAE,OAAO,OAAO,MAAM,OAAO,KAAK,EAAE,IAAI,QAAQ,MAAM,YAAY,MAAM,MAAM,OAAO,aAAa,KAAK,CAAC,MAAO,OAAM,OAAO,KAAK,EAAE,QAAS,SAAS,QAAQ,MAAM,KAAK,CAAC,OAAO,KAAK,EAAE,MAAM,OAAO,aAAa,MAAM,GAAG,MAAM,OAAO,MAAM,GA6Dn7F,SAAS,WAAW,EAAE,EAAE,CAAC,IAAI,OAAO,EAAE,CAAC,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC,IAAI,KAAK,GAAG,GAAG,GAAG,EAAE,SAAS,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAM,KAAK,EAAE,MAAM,GAAG,EAAE,cAAe,GAAG,EAAE,OAAQ,KAAK,EAAE,MAAM,GAAG,EAAE,WAAY,OAAO,OAAU,CAAC,OAAO,QAAQ,OAAO,OAAO,OAAO,GAAG,KAAK,OAAO,KAAK,KAAK,GAAG,CAAS,OAAO,OAAO,OAAO,GAAG,KAAG,OAAO,OAAO,OAAO,GAAG,KAAK,SAAS,iBAAiB,EAAE,EAAE,WAAW,CAAC,IAAIiD,KAAG,IAAI,QAAQ,QAAQ,QAA6O,OAAlO,YAAY,QAAQ,EAAE,QAAQ,QAAQ,UAAU,MAAM,EAAE,QAAQ,OAAO,CAAC,QAAQ,EAAE,QAAQ,QAAQ,EAAE,QAAQ,GAAO,QAAQ,EAAE,QAAQ,IAAI,EAAE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,QAAQ,EAAE,QAAQ,GAAK,CAAC,QAAQ,EAAE,QAAQ,QAAQ,QAAQ,EAAQ,CAAC,QAAQ,UAAU,EAAE,UAAU,EAAE,UAAU,IAAI,QAAQ,CAAK,EAAE,WAAyC,IAAI,QAAQ,CAAC,QAAQ,YAAY,WAAW,EAAE,QAAQ,QAAQ,CAAC,OAAO,YAAY,WAAW,EAAE,QAAQ,QAAQ,CAAC,CAAC,YAAY,EAAE,YAAY,OAAO,EAAE,YAAY,OAAO,EAAE,YAAY,CAAC,EAAE,YAAY,eAAe,EAAE,gBAAgB,EAAE,eAAe,CAAE,SAAS,wBAAwB,MAAM,KAAK,QAAQ,CAAC,IAAI,IAAI,KAAK,UAAU,YAAYtE,UAAQ,KAAK,YAAY,CAA4F,OAAxF,KAAK,YAAU,YAAY,YAAY,OAAO,YAAY,UAAU,GAAG,KAAK,UAAU,CAAC,EAAO,CAAC,QAAQ,KAAK,mBAAmB,UAAU,KAAK,QAAQ,UAAU,GAAG,KAAK,SAAS,EAAE,CAAC,QAAQ,MAAM,MAAM,cAAc,CAAC,CAAC,UAAU,MAAM,eAAe,gBAAgB,IAAI,gBAAgB,OAAO,IAAI,OAAO,IAAI,KAAK,EAAE,QAAQA,UAAQ,KAAK,QAAQ,CAAC,YAAY,eAAe,CAAC,CAAC,KAAK,eAAe,CAAE,SAAS,mBAAmB,MAAM,MAAM,OAAO,CAAC,IAAI,EAAE,wBAAwB,MAAM,MAAM,OAAO,MAAM,GAAG,EAAE,CAAC,MAAM,IAAI,OAAO,CAAI,MAAM,QAAQ,MAAM,GAAG,SAAS,KAAM,OAAO,IAAM,IAAI,IAAImE,IAAE,EAAEA,IAAE,MAAM,OAAO,MAAI,CAAI,MAAMA,KAAG,SAAS,KAAM,OAAO,IAAM,IAAI,IAAI,CAAC,CAAC,MAAMA,KAAG,WAAW,EAAE,iBAAiB,EAAE,wBAAwB,MAAM,MAAMA,KAAG,IAAI,EAAE,QAAQ,UAAU,MAAM,IAAI,OAAO,CAAC,IAAI,CAAE,IAAI,GAAG,YAAY,OAAO,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,eAAe,CAAC,OAAO,kBAAkB,OAAO,kBAAkB,GAAG,CAAC,GAAG,CAAE,SAAS,kBAAkB,GAAG,CAAC,IAAI,MAAM,GAAG,WAAe,OAAO,GAAK,IAAI,IAAI,UAAU,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,MAAM,OAAO,GAAG,CAAC,GAAG,QAAQ,GAAM,CAAC,OAAO,GAAM,MAAU,MAAM,QAAQ,MAAM,GAAC,OAAO,SAAS,GAAK,MAAM,WAAW,OAAO,MAAM,EAAE,GAAG,SAAS,GAAK,CAAC,IAAI,QAAQ,KAAK,GAAG,SAAS,GAAO,KAAK,GAAG,QAAQ,aAAa,QAAQ,UAAU,MAAM,MAAM,IAAI,OAAO,KAAM,CAAC,IAAI,SAAS,GAAG,QAAQ,OAAO,OAAO,CAAC,QAAQ,SAAS,QAAQ,KAAK,SAAS,SAAS,QAAQ,SAAS,QAAQ,CAAC,aAAc,GAAG,YAAY,OAAO,MAAM,QAAQ,GAAG,WAAW,GAAG,UAAU,IAAI,KAAK,CAAC,YAAY,WAAW,GAAG,QAAQ,KAAK,CAAC,GAAG,YAAY,GAAG,eAAe,CAAE,IAAI,QAAQ,MAAM,MAAM,kBAAkB,CAAC,IAAI,IAAIA,IAAE,QAAQ,OAAO,EAAEA,KAAG,EAAE,MAAI,CAAC,IAAI,UAAU,QAAQA,KAAG,GAAG,CAAC,AAAgK,GAA7J,qBAAqB,YAAe,UAAkB,MAAM,QAAQ,UAAU,EAAE,UAAU,QAAQ,GAAG,UAAU,aAAa,YAAe,UAAU,GAAW,mBAAmB,MAAMnE,UAAQ,UAAU,CAAC,GAAM,CAAE,OAAO,GAAI,SAAS,kBAAkB,GAAG,CAAC,IAAI,MAAM,GAAG,WAAW,UAAU,MAAM,MAAM,oBAAoB,CAAC,KAAK,GAAG,IAAI,IAAImE,IAAE,UAAU,OAAO,EAAEA,KAAG,EAAE,MAAI,CAAC,IAAI,UAAU,UAAUA,KAAG,GAAG,CAAI,WAAW,OAAO,KAAK,UAAU,CAAC,SAAO,KAAK,iBAAiB,KAAK,wBAAwB,MAAM,UAAU,GAAG,QAAQ,UAAU,CAAC,GAAK,EAAE,OAAO,MAAM,GAAG,GAAG,YAAY,OAAO,MAAM,GAAG,QAAQ,GAAG,UAAU,KAAK,QAAQ,KAAK,YAAY,KAAK,eAAe,CAAc,SAASnE,UAAQ,MAAM,CAAC,OAAO,OAAO,KAAK,KAAK,MAAM,QAAQ,MAAM,CAAC,MAAM,CAAC,MAAM,CAAif,SAAS,YAAY,IAAI,CAAC,GAAG,SAAS,OAAO,SAAS,KAAK,IAAI,CAAC,IAAI,IAAImE,IAAE,EAAEA,IAAE,IAAI,OAAO,MAAI,CAAC,IAAI,GAAG,IAAIA,KAAG,GAAG,KAAK,KAAK,GAAG,EAAE,GAAG,MAAS,GAAG,aAAa,EAAE,GAAG,aAAa,EAAE,2BAA2B,KAAK,GAAG,EAAE,MAAO,GAAM,MAAO,GAAO,SAAS,gBAAgB,UAAU,CAAC,MAAO,OAAM,CAAC,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC,OAAO,aAAa,MAAM,GAAG,YAAY,KAAK,CAAC,OAAO,aAAa,KAAK,IAAI,IAAIA,IAAE,EAAEA,IAAE,UAAU,OAAO,MAAI,GAAG,KAAK,QAAQ,UAAUA,KAAG,CAAC,GAAG,OAAO,aAAa,KAAK,OAAO,aAAa,OAuGr8H,SAAS,cAAc,QAAQ,SAAS,QAAQ,EAAE,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC,IAAI,IAAI,UAAU,QAAQ,IAAI,IAAI,OAAO,OAAO,KAAK,OAAO,CAAC,CAAC,IAAI,MAAM,OAAO,KAAK,QAAQ,OAAO,KAAK,GAAG,UAAU,IAAK,GAAE,OAAO,KAAK,cAAc,YAAU,OAAO,QAAQ,IAAK,OAAW,OAAO,eAAe,KAAK,QAAQ,IAAI,CAAC,OAAO,KAAK,QAAQ,KAAK,QAAQ,MAAM,MAAM,MAAU,MAAM,mCAAmC,IAAI,CAAE,IAAI,IAAI,QAAQ,SAAY,OAAO,QAAQ,IAAK,KAAE,OAAO,MAAM,SAAS,OAAM,OAAO,OAU5rD,SAAS,SAAS,EAAE,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,EAAE,MAAM,UAmDmM,SAAS,SAAS,OAAO,CAAC,GAAG,OAAO,OAAO,EAAE,IAAI,IAAI,KAAK,OAAO,GAAGA,IAAE,EAAEA,IAAE,OAAO,OAAO,MAAI,CAAC,IAAI,IAAI,OAAOA,KAAG,GAAG,SAAS,KAAK,IAAI,CAAC,EAAE,OAAO,OAAO,OAAO,CAAC,KAAK,SAAS,CAAC,KAAK,IAAK,OAAO,OAcxX,SAAS,iBAAiB,EAAE,EAAE,SAAS,CAAC,IAAI,IAAoB,IAAI,IAAI,IAAI,IAAI,OAAO,EAAE,IAAI,IAAIA,IAAE,EAAEA,IAAE,IAAI,MAAM,OAAO,MAAO,IAAI,MAAMA,KAAG,UAAU,GAAE,IAAI,IAAI,IAAI,MAAMA,KAAG,IAAI,SAASA,KAAG,CAAC,IAAI,OAAuB,IAAI,IAAI,IAAI,IAAI,QAAQ,EAAE,IAAI,IAAI,GAAG,EAAE,GAAG,KAAK,MAAM,OAAO,KAAK,CAAC,IAAI,MAAM,IAAI,IAAI,KAAK,MAAM,IAAI,CAAI,OAAO,OAAO,SAAS,SAAS,OAAO,MAAM,CAAC,QAAQ,KAAK,SAAS,KAAK,CAAE,UAAmD,aAAa,MAAM,MAAM,KAAK,MAAM,IAAI,OAAO,EAAE,OAAO,IAAI,KAAK,MAAM,IAAI,CAAE,OAAO,OAAkxF,SAAS,WAAW,KAAK,MAAM,CAAC,IAAI,IAAI,IAAI,KAAK,SAAS,CAAC,IAAI,YAAY,OAAO,GAAG,EAAE,GAAG,YAAY,KAAK,OAAO,MAAM,IAAI,MAAM,KAAK,YAAsH,GAAvG,WAAW,EAAE,KAAK,QAAQ,MAAM,QAAQ,KAAK,WAAW,GAAG,EAAE,IAAG,MAAM,KAAK,WAAW,GAAG,cAAiB,IAAI,QAAQ,MAAM,CAAC,EAAE,MAAM,KAAK,YAAY,IAAI,KAAK,OAAO,MAAM,MAAM,YAErpE,SAAS,QAAQ,EAAE,OAAO,EAAE,OAAO,OAAO,WAAW,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,KAAK,OAAO,CAAC,IAAI,KAAK,OAAO,OAAW,IAAI,OAAO,KAAK,OAAO,OAAO,OAAO,CAAC,IAAI,KAAK,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAY,IAAI,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,GAAG,QAAQ,KAAK,IAAI,IAAI,KAAK,CAAmT,GAA/S,EAAE,OAAO,EAAE,MAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,WAAW,EAAE,eAAe,EAAE,GAAG,CAAC,EAAE,eAAe,EAAE,GAAG,CAAC,EAAE,WAAW,aAAa,IAAI,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAU,QAAQ,KAAK,CAAC,WAAW,EAAE,OAAO,EAAE,OAAO,EAAC,WAAW,aAAa,IAAI,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAK,IAAI,KAAK,MAAM,IAAI,IAAO,MAAM,GAAE,EAAE,MAAM,CAAI,MAAM,GAAE,EAAE,MAAM,EAAG,SAAS,WAAW,EAAE,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,MAAO,GAAM,IAAI,IAAIA,IAAE,EAAEA,IAAE,EAAE,OAAO,MAAI,GAAG,EAAEA,MAAI,EAAEA,MAAI,CAAC,EAAEA,KAAG,GAAG,EAAEA,KAAG,CAAC,MAAO,GAAM,MAAO,GAAM,SAAS,OAAO,MAAM,MAAM,CAAC,IAAI,IAAIA,IAAE,MAAM,EAAE,MAAM,OAAO,EAAEA,IAAE,EAAE,MAAI,MAAMA,KAAG,MAAMA,IAAE,GAAG,MAAM,KAAK,CAAE,SAAS,OAAO,MAAM,MAAM,MAAM,CAAC,IAAI,IAAIA,IAAE,MAAM,OAAO,EAAEA,KAAG,MAAM,MAAI,MAAMA,IAAE,GAAG,MAAMA,KAAG,MAAM,OAAO,MAAO,SAAS,aAAa,MAAM,MAAM,CAAC,IAAI,MAAM,GAAG,SAAS,IAAI,IAAI,IAAIA,IAAE,EAAEA,IAAE,MAAM,OAAO,OAAQ,MAAMA,KAAG,UAAU,MAAMA,KAAG,QAAQ,MAAM,OAAO,SAAS,IAAG,MAAMA,IAAE,SAAS,MAAMA,MAAI,OAAO,MAAO,SAAS,YAAY,SAAO,QAAQ,GAAGV,SAAO,OAAO,CAAC,IAAI,EAAE,EAAE,IAAI,IAAIU,IAAE,EAAEA,IAAE,IAAQV,SAAO,WAAWU,IAAE,EAAE,GAAG,GAAG,QAAQ,EAAE,QAAQ,QAAU,IAAI,IAAE,iBAAiBV,SAAOU,IAAE,EAAG,OAAO,EAAG,SAAS,WAAW,SAAO,IAAI,QAAQ,OAAO,CAAC,IAAI,IAAIA,IAAE,EAAE,EAAE,IAAI,CAAC,GAAG,GAAG,IAAI,OAAOA,IAAE,GAAGA,KAAGV,SAAO,OAAO,MAAM,GAAGA,SAAO,WAAWU,IAAE,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAE,iBAAiBV,SAAOU,IAAE,CAAE,OAAO,SAAS,GAAK,GAAGV,SAAO,qpBArfhuG,KAAK,KAAK,CAET,OAAO,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,KAAK,OAAO,MAAU,WAAW,oBAAoB,IAAI,yBAAyB,KAAK,SAAS,CAAC,OAAO,KAAK,UAAU,IAAI,GAAM,EAAE,EAAE,CAE/J,KAAK,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,MAAM,MAAU,WAAW,uBAAuB,EAAE,MAAM,KAAK,MAAM,gBAAgB,CAAC,OAAO,KAAK,UAAU,EAAE,GAAK,EAAE,EAAE,CAE9I,QAAQ,KAAK,GAAG,KAAK,CAAC,IAAI,MAAM,EAAE,CAA8H,OAA7H,KAAK,UAAU,EAAE,KAAK,MAAM,EAAE,CAAI,KAAK,QAAO,KAAK,UAAU,EAAE,KAAK,OAAO,MAAM,EAAI,CAAC,KAAK,UAAU,GAAG,KAAK,OAAO,MAAM,EAAE,CAAQ,SAAS,KAAK,MAAM,KAAK,QAAQ,GAAG,MAAM,KAAK,OAAO,CAE7N,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,KAAK,OAAO,KAAK,OAAO,MAAM,CAEhE,MAAM,KAAK,GAAG,KAAK,OAAO,CAAC,IAAI,MAAM,EAAE,CAAiC,OAAhC,KAAK,UAAU,KAAK,GAAG,MAAM,EAAE,CAAQ,SAAS,KAAK,MAAM,GAAG,KAAK,CAE3G,GAAG,MAAM,CAAC,GAAG,OAAO,KAAK,MAAO,GAAK,GAAG,MAAM,QAAQ,KAAK,QAAQ,MAAM,OAAO,KAAK,MAAM,MAAO,GAAM,IAAI,MAAM,KAAK,cAAc,MAAM,EAAE,CAAC,IAAI,KAAK,OAAO,KAAK,cAAc,MAAM,GAAG,CAAK,EAAE,IAAI,cAAc,KAAK,CAAC,EAAE,IAAI,cAAc,MAAM,CAAC,IAAI,IAAI,KAAK,MAAM,IAAI,QAAQ,CAAkC,GAAjC,EAAE,KAAK,KAAK,CAAC,EAAE,KAAK,KAAK,CAAC,KAAK,EAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,MAAO,GAA0B,GAApB,KAAK,EAAE,MAAM,OAAU,EAAE,MAAM,KAAK,IAAI,MAAO,IAI/a,KAAK,IAAI,EAAE,CAAC,OAAO,IAAI,cAAc,KAAK,IAAI,CAG9C,UAAU,KAAK,GAAG,KAAK,OAAO,CAAC,OAAO,IAAI,kBAAkB,KAAK,KAAK,GAAG,CAMzE,UAAU,KAAK,GAAG,CAAC,IAAI,MAAM,GAAG,MAAM,KAAM,MAAM,KAAK,MAAM,KAAM,CAAC,AAAY,KAAG,KAAK,MAAM,EAAE,IAAI,MAAM,KAAK,KAAK,KAAK,CAAC,KAAK,MAAM,KAAK,UAAU,MAAM,KAAK,IAAI,MAAM,IAAI,KAAK,MAAM,EAAE,KAAK,OAAO,IAAI,EAAE,EAAE,KAAK,KAAK,GAAG,EAAE,CAAC,GAAG,CAAC,CAAE,OAAO,IAAI,WAAW,MAAM,CAGhQ,UAAU,CAAC,OAAO,KAAK,YAAY,EAAE,CAGrC,QAAQ,CAAC,IAAI,MAAM,EAAE,CAAqB,OAApB,KAAK,QAAQ,MAAM,CAAQ,MAEjD,OAAO,GAAG,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE,MAAU,WAAW,yCAAyC,CAA+C,OAA3C,KAAK,QAAQ,GAAG,CAAC,KAAK,GAAU,KAAK,MAAa,KAAK,QAAQ,GAAG,IAAI,SAAS,KAAK,CAAC,SAAS,KAAK,SAAS,MAAM,KAAK,EAAE,CAAC,CAAC,CAE/N,aAAa,IAAQ,SAAS,cAAc,IAAI,CAAC,IAAI,OAAO,CAAC,OAAO,KAAK,KAAK,OAAQ,IAAI,UAAU,CAAC,OAAO,KAAM,UAAU,OAAO,OAAO,KAAK,OAAO,CAAC,IAAI,IAAIU,IAAE,GAAG,MAAI,CAAC,IAAIV,SAAO,KAAK,KAAKU,KAAG,IAAI,OAAOV,SAAO,OAAO,IAAI,OAAO,KAAK,MAAM,OAAO,OAAO,IAAI,KAAK,OAAO,IAAI,KAAKA,SAAO,CAAC,OAAO,IAAI,EAAE,QAAS,UAAU,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,KAAK,MAAM,GAAG,IAAI,KAAK,OAAO,KAAK,IAAI,SAAS,UAAU,KAAK,KAAK,KAAK,GAAG,CAAC,KAAK,IAAI,GAAG,KAAK,OAAO,CAAC,KAAK,IAAI,EAAE,KAAK,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,IAAI,KAAK,OAAO,KAAK,CAAK,OAAO,WAAW,KAAK,KAAK,KAAK,KAAK,OAAO,CAAC,EAAE,KAAK,OAAO,CAAC,GAAG,OAAO,QAAQ,GAAI,OAAO,KAAK,IAAI,SAAS,OAAO,KAAK,OAAO,KAAK,OAAO,CAAC,KAAM,CAAC,IAAI,IAAI,OAAO,QAAQ,EAAE,OAAO,KAAK,IAAI,SAAS,OAAO,MAAM,EAAE,IAAI,CAAC,CAAC,IAAI,SAAS,OAAO,MAAM,IAAI,CAAC,CAAC,OAAQ,OAAO,KAAK,KAAK,CAAG,QAAQ,KAAK,GAAG,KAAK,CAAC,GAAG,EAAE,gBAAgB,UAAU,OAAO,MAAM,QAAQ,KAAK,GAAG,KAAK,CAAC,IAAI,MAAM,WAAW,KAAK,KAAK,WAAW,KAAK,KAAK,UAAU,KAAK,KAAK,EAAE,KAAK,CAAC,CAAC,GAAG,CAAK,OAAO,KAAK,OAAO,KAAK,QAAQ,GAAG,MAA4D,OAAnD,MAAM,QAAQ,GAAU,IAAI,SAAS,MAAM,OAAO,CAAQ,SAAS,KAAK,SAAS,MAAM,MAAM,EAAE,CAAC,CAAC,OAAO,CAAE,YAAY,KAAK,GAAG,KAAK,OAAO,QAAQ;EAAK,CAAC,IAAI,OAAO,GAAG,IAAI,IAAI,IAAI,EAAEU,IAAE,EAAE,KAAK,IAAIA,IAAE,KAAK,KAAK,OAAO,MAAI,CAAC,IAAI,KAAK,KAAK,KAAKA,KAAG,IAAI,IAAI,KAAK,OAAU,IAAI,MAAMA,MAAE,QAAQ,SAAW,KAAK,KAAK,GAAG,MAAI,QAAQ,KAAK,MAAM,KAAK,IAAI,EAAE,KAAK,IAAI,CAAC,GAAG,IAAI,EAAC,IAAI,IAAI,EAAG,OAAO,OAAQ,QAAQ,OAAO,CAAC,IAAI,IAAI,QAAQ,KAAK,KAAK,OAAO,KAAK,KAAK,CAAE,eAAe,CAAC,MAAO,GAAG,OAAO,MAAM,KAAK,OAAO,CAAC,IAAI,KAAK,EAAE,CAAC,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAM,KAAK,KAAK,KAAK,CAAC,KAAK,KAAK,OAAO,EAAK,KAAK,QAAQ,KAAI,OAAO,KAAK,IAAI,SAAS,KAAK,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,IAAmD,OAA3C,IAAI,IAAG,OAAO,KAAK,IAAI,SAAS,KAAK,IAAI,CAAC,CAAQ,OAAQ,YAAY,KAAK,OAAO,WAAW,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,KAAK,KAAK,KAAK,OAAO,SAAc,SAAS,cAAc,IAAI,CAAC,UAAU,OAAO,OAAO,KAAK,OAAO,CAAC,IAAI,IAAIA,IAAE,GAAG,MAAI,CAAC,IAAI,MAAM,KAAK,SAASA,KAAG,IAAI,OAAO,MAAM,OAAO,QAAQ,KAAK,MAAM,MAAM,EAAE,IAAI,OAAO,QAAQ,MAAM,OAAO,OAAO,MAAM,UAAU,OAAO,OAAO,KAAK,OAAO,CAAC,OAAO,IAAI,EAAE,KAAK,QAAQ,GAAI,UAAU,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,IAAIA,IAAE,EAAE,IAAI,EAAE,KAAK,IAAIA,IAAE,KAAK,SAAS,OAAO,MAAI,CAAC,IAAI,MAAM,KAAK,SAASA,KAAG,IAAI,IAAI,MAAM,OAAO,GAAG,MAAM,KAAK,IAAI,IAAI,CAAC,IAAI,UAAU,OAAO,KAAK,KAAK,EAAE,IAAI,KAAK,GAAG,EAAE,IAAO,KAAK,MAAM,KAAK,IAAI,CAAC,UAAU,OAAO,KAAK,MAAM,CAAM,MAAM,UAAU,KAAK,IAAI,GAAG,IAAI,OAAO,UAAU,CAAE,IAAI,IAAI,GAAI,QAAQ,KAAK,GAAG,KAAK,CAAC,GAAG,KAAK,MAAM,KAAK,MAAM,IAAI,IAAIA,IAAE,EAAE,IAAI,EAAEA,IAAE,KAAK,SAAS,OAAO,MAAI,CAAC,IAAI,MAAM,KAAK,SAASA,KAAG,IAAI,IAAI,MAAM,OAAO,GAAG,MAAM,KAAK,IAAI,IAAI,CAAC,IAAI,QAAQ,MAAM,QAAQ,KAAK,IAAI,GAAG,IAAI,KAAK,CAAK,WAAW,KAAK,MAAM,MAAM,MAAM,QAAQ,MAAM,GAAG,QAAQ,MAAM,YAAY,GAAK,QAAQ,MAAM,YAAY,EAAI,CAAC,IAAI,KAAK,KAAK,SAAS,OAAO,CAAiB,MAAhB,MAAKA,KAAG,QAAe,IAAI,SAAS,KAAK,KAAK,QAAQ,GAAG,MAAM,KAAK,OAAO,CAAE,OAAO,MAAM,QAAQ,IAAI,IAAI,QAAQ,CAAE,IAAI,IAAI,EAAG,OAAO,MAAM,QAAQ,KAAK,GAAG,KAAK,CAAE,YAAY,KAAK,GAAG,KAAK,OAAO,QAAQ;EAAK,CAAC,IAAI,OAAO,GAAG,IAAI,IAAIA,IAAE,EAAE,IAAI,EAAEA,IAAE,KAAK,SAAS,QAAQ,KAAK,GAAG,MAAI,CAAC,IAAI,MAAM,KAAK,SAASA,KAAG,IAAI,IAAI,MAAM,OAAU,IAAI,MAAMA,MAAE,QAAQ,SAAW,KAAK,KAAK,GAAG,MAAI,QAAQ,MAAM,YAAY,KAAK,IAAI,GAAG,IAAI,QAAQ,EAAC,IAAI,IAAI,EAAG,OAAO,OAAQ,QAAQ,OAAO,CAAC,IAAI,IAAI,SAAS,KAAK,SAAS,MAAM,QAAQ,OAAO,CAAE,cAAc,MAAM,IAAI,CAAC,GAAG,EAAE,iBAAiB,UAAU,MAAO,GAAE,IAAI,OAAO,EAAK,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,EAAE,EAAE,KAAK,SAAS,OAAO,MAAM,SAAS,OAAO,CAAC,CAAC,KAAK,SAAS,OAAO,EAAE,MAAM,SAAS,OAAO,EAAE,GAAG,GAAG,CAAC,MAAM,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,IAAI,GAAG,OAAO,OAAO,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,MAAM,SAAS,IAAI,GAAG,KAAK,IAAI,OAAO,OAAO,IAAI,cAAc,IAAI,IAAI,CAAC,QAAQ,IAAI,OAAO,GAAI,OAAO,KAAK,SAAS,OAAO,SAAS,QAAQ,IAAE,KAAKL,IAAE,GAAG,OAAO,EAAE,GAAG,CAAC,CAAC,IAAI,MAAM,EAAE,IAAI,IAAI,MAAM,SAAS,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,KAAK,EAAE,CAAC,IAAI,IAAI,OAAO,SAAS,IAAI,QAAQ,KAAK,CAAC,OAAO,IAAI,SAAS,KAAK,OAAO,CAAE,IAAI,MAAM,KAAK,IAAI,GAAG,OAAO,EAAE,CAAC,SAAS,OAAO,EAAE,SAAS,OAAO,EAAM,QAAQ,EAAE,CAAC,aAAa,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,SAAS,IAAI,MAAM,CAAC,IAAI,KAAK,GAAG,MAAM,MAAM,UAAU,iBAAiB,SAAU,IAAI,IAAI,QAAQ,MAAM,SAAS,IAAI,KAAK,MAAU,MAAM,MAAM,WAAW,aAAa,UAAU,CAAC,eAAe,OAAO,CAAC,QAAQ,KAAK,MAAM,EAAU,iBAAiB,UAAU,eAAe,KAAK,aAAa,aAAa,OAAO,cAAc,UAAU,MAAM,MAAM,KAAK,OAAO,IAAI,cAAc,MAAM,MAAM,YAAY,MAAM,OAAO,EAAE,aAAa,aAAa,OAAO,GAAG,IAAI,SAAS,KAAK,KAAK,OAAO,MAAM,KAAK,CAAC,KAAK,OAAO,EAAE,MAAM,OAAO,GAAU,aAAa,MAAM,MAAM,OAAM,OAAO,CAAC,cAAc,MAAM,MAAM,YAAY,MAAM,OAAO,EAAE,aAAa,KAAK,MAAM,EAAG,SAAS,OAAO,CAAI,cAAc,IAAS,QAAQ,KAAK,aAAa,QAAQ,EAAE,aAAa,GAAG,SAAS,KAAK,aAAa,WAAW,CAAC,CAAC,WAAW,GAAG,aAAa,aAAa,OAAO,GAAG,IAAI,IAAI,SAAS,SAAS,IAAI,MAAM,CAAS,OAAR,OAAO,CAAQ,QAAQ,QAAQ,EAAE,QAAQ,GAAG,IAAI,SAAS,QAAQ,OAAO,CAAE,YAAY,SAAS,OAAO,CAAC,OAAO,CAAC,KAAK,SAAS,SAAS,KAAK,OAAO,OAAO,KAAK,MAAM,EAAE,IAAI,IAAI,SAAS,SAAS,KAAK,OAAO,MAAM,QAAS,KAAK,MAAsB,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE,CAA0f,cAAc,KAAK,CAAC,UAAU,KAAK,IAAI,CAAgC,IAA/B,KAAK,KAAK,KAAK,UAAU,KAAa,CAAC,IAAI,KAAK,KAAK,MAAM,OAAO,EAAMU,MAAI,KAAK,MAAM,MAAM,YAAY,KAAK,QAAQ,MAAM,OAAO,aAAa,EAAM,KAAKA,iBAAe,SAASA,MAAI,KAAK,OAAOA,MAAI,SAAS,OAAO,GAAG,SAAS,IAAI,EAAE,KAAK,GAAG,CAAC,GAAG,MAAM,EAAgC,MAA7B,MAAK,KAAK,GAAK,KAAK,MAAM,GAAU,KAAS,IAAI,GAAE,KAAK,QAAQ,KAAK,KAAK,KAAK,MAAM,KAAK,CAAC,KAAK,QAAQ,KAAK,UAAW,YAAY,KAAK,IAAI,EAAE,EAAE,GAAG,CAAyB,GAAxB,KAAK,QAAQ,OAAO,IAAO,MAAM,EAAuC,MAApC,MAAK,UAAU,GAAK,KAAK,MAAM;EAAY,KAAM,eAAgBA,iBAAe,SAAS,CAAC,IAAI,KAAKA,MAAI,KAAK,QAAQ,IAAI,EAAE,GAAG,IAA4B,GAAxB,KAAK,QAAQ,OAAO,IAAO,KAAK,OAAO,KAAK,IAAI,EAAE,KAAK,CAAgF,MAA9E,MAAK,MAAM,MAAM,EAAE,KAAK,IAAI,EAAE,KAAK,MAAM,KAAK,CAAC,KAAK,MAAM,EAAE,KAAK,OAAO,KAAK,CAAQ,KAAM,MAAM,KAAK,WAAY,CAAC,IAAI,MAAMA,MAAI,SAAS,QAAQ,IAAI,EAAE,GAAG,IAAO,KAAK,MAAM,QAAQ,MAAM,MAAM,OAAO,KAAK,QAAQ,OAAO,MAAa,IAAI,GAAE,KAAK,QAAQ,QAAQ,KAAK,MAAM,KAAK,MAAM,CAAC,KAAK,QAAQ,KAAK,IAAI,EAAE,GAAG,iBAAiB,SAAS,MAAM,KAAK,OAAO,MAAM,SAAS,SAAS,EAAE,IAAK,KAAK,KAAK,EAAE,CAAoE,OAAhE,KAAK,IAAG,KAAK,UAAU,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,KAAK,KAAK,MAAM,QAAe,KAAK,UAAU,KAAK,KAAK,IAAI,CAAE,YAAY,KAAK,IAAI,EAAE,CAAC,KAAK,IAAI,IAAI,KAAK,KAAK,GAAM,KAAK,UAAU,GAAM,KAAK,MAAM,GAAG,KAAK,MAAM,CAAC,KAAK,CAAC,KAAK,QAAQ,CAAC,IAAI,EAAE,GAAG,gBAAgB,SAAS,KAAK,KAAK,OAAO,KAAK,SAAS,SAAS,EAAG,GAAQ,kBAAkB,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC,GAAG,IAAI,EAAE,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAiC,MAA7B,MAAK,MAAM,GAAG,KAAK,KAAK,GAAY,KAAM,MAAM,KAAK,IAAI,EAAE,IAAI,EAAE,KAAK,IAAI,KAAK,GAAG,KAAK,KAAK,KAAK,IAAI,CAAC,IAAI,MAAM,IAAI,EAAE,KAAK,IAAI,KAAK,KAAK,KAAK,GAAG,KAAK,IAAO,KAAK,QAAM,KAAK,OAAM,OAAO,KAAK,GAAG,CAAC,OAAO,KAAK,OAAO,KAAK,KAAK,CAAyJ,MAAxJ,MAAK,MAAM,MAAM,OAAO,MAAM,IAAI,KAAK,MAAM,MAAM,QAAQ,MAAM,MAAM,IAAI,EAAE,MAAM,MAAM,MAAM,OAAO,MAAM,CAAC,MAAM,MAAM,EAAE,MAAM,CAAC,KAAK,KAAK,CAAC,KAAK,MAAa,KAAM,KAAK,KAAK,EAAE,CAAsG,OAAlG,KAAK,EAAE,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,CAAS,KAAK,IAAE,KAAK,KAAK,IAAI,KAAK,KAAK,GAAG,KAAK,IAAI,EAAQ,KAAK,UAAU,KAAK,KAAK,OAAO,IAAI,CAAE,IAAI,WAAW,CAAC,OAAO,KAAK,OAAO,WAAW,KAAK,OAAO,GAAI,YAAY,KAAK,MAAM,IAAI,CAAC,KAAK,MAAM,GAAG,KAAK,KAAK,GAAM,KAAK,OAAO,IAAI,cAAc,KAAK,MAAM,IAAI,GAAG,EAAE,CAAC,KAAK,IAAI,MAAM,IAAI,KAAK,OAAO,EAAE,KAAK,KAAK,KAAK,IAAI,MAAM,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,MAAM,IAAI,GAAQ,WAAW,KAAK,CAAC,KAAK,KAAK,EAAE,CAAC,GAAG,CAAC,KAAK,UAAU,OAAO,KAAK,MAAM,KAAK,KAAK,CAAmL,OAA/K,MAAM,KAAK,KAAK,GAAK,KAAK,MAAM,IAAY,UAAc,KAAK,WAAY,KAAK,MAAM,IAAS,KAAK,WAAW,GAAK,KAAK,MAAM,GAAQ,KAAK,MAAM,MAAM,KAAK,WAAW,IAAc,KAAM,IAAI,WAAW,CAAC,MAAO,GAAO,YAAY,MAAM,CAAC,KAAK,MAAM,MAAM,KAAK,WAAW,GAAK,KAAK,MAAM,GAAG,KAAK,KAAK,KAAY,OAAO,OAAQ,MAAa,KAAK,UAAU,OAAO,UAAU,UAAU,CAAC,OAAO,KAAK,MAAM,EAAG,cAAc,UAAU,OAAO,UAAU,kBAAkB,UAAU,OAAO,UAAU,WAAW,UAAU,OAAO,UAAU,UAAU,CAAC,OAAO,OAAY,KAAK,KAAK,CAEn5Q,IAAI,QAAQ,CAAC,OAAO,KAAK,GAAG,KAAK,KAEjC,YAAY,KAAK,GAAG,SAAO,KAAK,CAAC,KAAK,KAAK,KAAK,KAAK,GAAG,GAAG,KAAK,OAAO9C,SAAO,KAAK,KAAK,OAAY,OAAuB,izCAAizC,MAAM,IAAI,CAAC,IAAI,GAAG,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI,IAAIyC,IAAE,EAAEA,IAAE,OAAO,OAAO,MAAI,OAAOA,MAAI,OAAOA,IAAE,GAAsM,IAAI,KAA+5C,aAAa,WAAe,QAAwB,SAAS,SAAS,CAAuL,MAAtL,UAAS,SAAS,OAAU,GAAG,SAAS,SAAS,SAAS,SAAY,GAAG,WAAW,SAAS,SAAS,YAAe,GAAG,cAAc,SAAS,SAAS,WAAc,GAAG,aAAoB,UAAW,AAAU,UAAQ,EAAE,CAAE,CAAK,WAAW,KAAK,CAEz6G,IAAI,QAAQ,CAAC,IAAI,OAAO,EAAE,IAAI,IAAIA,IAAE,EAAEA,IAAE,KAAK,SAAS,OAAO,KAAG,EAAE,QAAQ,KAAK,SAASA,KAAG,OAAO,OAElG,IAAI,WAAW,CAAC,IAAI,OAAO,EAAE,IAAI,IAAIA,IAAE,EAAEA,IAAE,KAAK,SAAS,OAAO,KAAG,EAAE,CAAC,IAAI,IAAI,KAAK,SAASA,IAAE,GAAG,QAAQ,IAAI,EAAE,KAAK,SAASA,KAAG,IAAK,OAAO,OAE5I,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,QAAQ,GAAG,KAAK,SAAS,QAAQ,GAAG,KAAK,SAAS,GAAG,EAItF,SAAS,EAAE,CAAC,IAAI,IAAIA,IAAE,EAAE,KAAK,EAAE,KAAK,EAAEA,IAAE,KAAK,SAAS,QAAQ,CAAC,IAAI,IAAI,KAAK,SAAS,OAAK,IAAI,KAAK,SAAS,OAAQ,IAAI,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC,MAAM,KAAU,MAAM,IAAK,MAAM,KAW7K,kBAAkB,EAAE,WAAW,GAAM,CAAC,YAAY,KAAK,EAAE,WAAW,CAEpE,IAAI,cAAc,CAAC,IAAI,SAAS,EAAE,CAAC,IAAI,IAAIA,IAAE,EAAEA,IAAE,KAAK,SAAS,QAAQ,CAAC,IAAI,IAAI,KAAK,SAAS,OAAK,IAAI,KAAK,SAAS,OAAQ,IAAI,EAAE,SAAS,KAAK,IAAI,IAAI,CAAM,SAAS,KAAK,IAAI,IAAI,CAAE,OAAO,IAAI,WAAW,SAAS,CAItN,YAAY,MAAM,CAAC,OAAO,KAAK,MAAM,MAAM,MAAM,MAAM,KAAK,YAAY,KAAK,MAAM,CAKnF,QAAQ,MAAM,OAAO,GAAM,CAAC,OAAO,MAAM,MAAM,KAAK,OAAO,KAAK,MAAM,OAAO,CAAE,OAAO,IAAI,MAAM,GAAG,KAAK,QAAQ,OAAO,CAAC,IAAI,KAAK,EAAE,KAAK,EAAE,IAAI,IAAIA,IAAE,EAAEA,IAAE,KAAK,SAAS,QAAQ,CAAC,IAAI,IAAI,KAAK,SAAS,OAAK,IAAI,KAAK,SAAS,OAAK,KAAK,KAAK,IAAI,GAAG,IAAI,EAAE,CAAC,GAAG,KAAK,IAAI,OAAO,MAAM,IAAI,MAAM,MAAM,QAAS,CAAC,GAAG,MAAM,QAAQ,QAAQ,MAAM,MAAM,MAAM,QAAQ,UAAU,KAAK,KAAK,KAAK,KAAK,MAAM,QAAQ,aAAa,KAAK,KAAK,MAAM,QAAQ,YAAY,KAAK,KAAK,OAAO,KAAK,GAAG,KAAK,KAAK,MAAM,KAAK,MAAM,GAAG,CAAC,IAAI,OAAO,KAAK,MAAM,MAAM,EAAE,KAAK,KAAK,IAAI,MAAM,IAAK,KAAK,KAAM,GAAG,IAAI,KAAK,MAAU,WAAW,YAAY,IAAI,2CAA2C,OAAO,CAAC,OAAO,KAIjqB,aAAa,KAAK,GAAG,KAAK,CAAC,IAAI,IAAIA,IAAE,EAAE,IAAI,EAAEA,IAAE,KAAK,SAAS,QAAQ,KAAK,IAAI,CAAC,IAAI,IAAI,KAAK,SAAS,OAAK,IAAI,KAAK,SAAS,OAAK,IAAI,IAAI,IAAI,GAAG,KAAK,GAAG,KAAK,IAAI,KAAK,KAAK,OAAO,IAAI,MAAM,IAAI,GAAG,QAAQ,GAAK,IAAI,IAAK,MAAO,GAEhO,UAAU,CAAC,IAAI,OAAO,GAAG,IAAI,IAAIA,IAAE,EAAEA,IAAE,KAAK,SAAS,QAAQ,CAAC,IAAI,IAAI,KAAK,SAAS,OAAK,IAAI,KAAK,SAAS,OAAK,SAAS,OAAO,IAAI,IAAI,KAAK,KAAK,EAAE,IAAI,IAAI,IAAK,OAAO,OAExK,QAAQ,CAAC,OAAO,KAAK,SAGrB,OAAO,SAAS,KAAK,CAAC,GAAG,CAAC,MAAM,QAAQ,KAAK,EAAE,KAAK,OAAO,GAAG,KAAK,KAAK,GAAG,OAAO,GAAG,SAAS,CAAC,MAAU,WAAW,4CAA4C,CAAC,OAAO,IAAI,WAAW,KAAK,CAE5L,OAAO,OAAO,SAAS,CAAC,OAAO,IAAI,WAAW,SAAS,CAOvD,YAAY,SAAS,CAAC,KAAK,SAAS,WAAgB,UAAU,cAAc,UAAU,CAGtF,MAAM,MAAI,CAAC,GAAG,KAAK,QAAQJ,MAAI,OAAO,MAAU,WAAW,0DAA0D,CAAoG,OAAnG,YAAY,MAAM,MAAM,IAAI,MAAM,KAAK,OAAO,MAAIA,MAAI,QAAQ,MAAM,OAAO,IAAI,OAAO,KAAK,CAAC,GAAM,CAAQA,MAAK,QAAQ,MAAM,OAAO,GAAM,CAAC,OAAO,OAAO,KAAK,MAAM,OAAO,GAAK,CAKtS,OAAO,MAAI,CAAC,IAAI,SAAS,KAAK,SAAS,OAAO,CAAC,SAAS,EAAE,CAAC,IAAI,IAAII,IAAE,EAAE,IAAI,EAAEA,IAAE,SAAS,OAAO,KAAG,EAAE,CAAC,IAAI,IAAI,SAASA,KAAG,IAAI,SAASA,IAAE,GAAG,GAAG,KAAK,EAAE,CAAC,SAASA,KAAG,IAAI,SAASA,IAAE,GAAG,IAAI,IAAI,MAAMA,KAAG,EAAE,KAAM,SAAS,OAAO,OAAM,SAAS,KAAK,KAAK,MAAM,CAAC,SAAS,KAAK,IAAIJ,MAAI,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,MAAM,CAAE,KAAK,IAAK,OAAO,IAAI,UAAU,SAAS,SAAS,CAKpW,QAAQ,MAAM,CAAC,OAAO,KAAK,MAAM,MAAM,MAAM,MAAM,KAAK,YAAY,KAAK,MAAM,GAAK,CAYpF,IAAI,MAAM,OAAO,GAAM,CAAC,OAAO,MAAM,MAAM,KAAK,OAAO,KAAK,MAAM,OAAO,GAAK,CAQ9E,YAAY,EAAE,WAAW,GAAM,CAAC,YAAY,KAAK,EAAE,WAAW,CAG9D,IAAI,MAAM,CAAC,OAAO,WAAW,OAAO,KAAK,SAAS,CAElD,OAAO,OAAO,CAAC,IAAI,eAAe,EAAE,CAAC,eAAe,EAAE,CAAC,iBAAiB,EAAE,CAAK,KAAK,IAAI,YAAY,KAAK,CAAC,KAAK,IAAI,IAAII,IAAE,EAAE,IAAI,IAAI,CAAC,IAAI,KAAKA,KAAG,OAAO,OAAO,IAAI,OAAO,OAAK,KAAM,IAAI,MAAM,KAAK,MAAM,KAAK,KAAK,GAAE,CAAC,GAAG,KAAK,KAAK,MAAM,KAAK,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,CAAC,WAAW,iBAAiB,IAAI,GAAG,CAAC,IAAI,IAAI,KAAK,KAAK,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,EAAE,WAAW,eAAe,IAAI,IAAI,CAAI,IAAI,GAAE,UAAU,eAAe,eAAe,KAAK,KAAK,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAK,IAAI,IAAI,OAAO,OAAK,KAAM,IAAI,KAAI,CAAC,GAAG,KAAK,KAAK,MAAM,KAAK,IAAI,KAAK,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,eAAe,KAAK,GAAG,CAAC,WAAW,iBAAiB,KAAK,KAAK,KAAK,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,KAAK,QAAQ,KAAK,CAAC,KAAK,MAAO,MAAM,CAAC,QAAQ,IAAI,UAAU,eAAe,eAAe,CAAC,SAAS,WAAW,OAAO,iBAAiB,CAAC,CAEnzB,QAAQ,CAAC,IAAI,MAAM,EAAE,CAAC,IAAI,IAAIA,IAAE,EAAEA,IAAE,KAAK,SAAS,OAAO,KAAG,EAAE,CAAC,IAAI,IAAI,KAAK,SAASA,KAAG,IAAI,KAAK,SAASA,IAAE,GAAM,IAAI,EAAE,MAAM,KAAK,IAAI,CAAS,KAAK,EAAE,MAAM,KAAK,CAAC,IAAI,CAAC,CAAM,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,KAAK,SAASA,KAAG,GAAG,QAAQ,CAAC,CAAC,CAAE,OAAO,MAG7O,OAAO,GAAG,QAAQ,OAAO,QAAQ,CAAC,IAAI,SAAS,EAAE,CAAC,SAAS,EAAE,CAAC,IAAI,EAAM,MAAM,KAAK,SAAS,MAAM,MAAM,GAAM,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,OAAO,OAAU,IAAI,QAAO,WAAW,SAAS,OAAO,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,UAAU,SAAS,SAAS,CAAC,MAAM,MAAM,MAAM,QAAQ,IAAI,IAAI,MAAM,CAAC,CAAC,IAAI,SAAS,EAAE,CAAC,SAAS,EAAE,CAAC,IAAI,EAAG,SAAS7D,UAAQ,KAAK,CAAC,GAAG,MAAM,QAAQ,KAAK,CAAE,IAAI,IAAI,OAAO,KAAK,UAAQ,IAAI,SAAU,gBAAgB,UAAU,CAAC,GAAG,KAAK,QAAQ,OAAO,MAAU,WAAW,qCAAqC,KAAK,OAAO,aAAa,OAAO,GAAG,CAAC,OAAO,CAAC,MAAM,MAAM,MAAM,QAAQ,KAAK,IAAI,MAAM,CAAC,CAAC,SAAU,CAAC,GAAG,CAAC,KAAK,GAAG,KAAK,OAAO,SAAS,KAAK,GAAG,KAAK,IAAI,KAAK,GAAG,GAAG,OAAO,MAAU,WAAW,wBAAwB,KAAK,MAAM,GAAG,qBAAqB,OAAO,GAAG,CAAC,IAAI,QAAS,QAAmB,OAAO,SAAS,SAAS,KAAK,GAAG,QAAQ,MAAM,SAAS,aAAa,CAAC,CAAC,QAAlF,KAAK,MAAyF,OAAO,QAAQ,OAAO,GAAG,MAAM,IAAI,QAAQ,EAAE,OAAU,KAAK,KAAI,OAAO,CAAI,KAAK,KAAI,WAAW,SAAS,KAAK,IAAI,GAAG,CAAC,WAAW,SAAS,GAAG,KAAK,OAAO,CAAC,UAAU,SAAS,SAAS,QAAQ,CAAC,IAAI,IAAoC,OAA/B,UAAQ,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAQ,MAE/lC,OAAO,MAAM,OAAO,CAAC,OAAO,IAAI,UAAU,OAAO,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAGnE,OAAO,SAAS,KAAK,CAAC,GAAG,CAAC,MAAM,QAAQ,KAAK,CAAC,MAAU,WAAW,2CAA2C,CAAC,IAAI,SAAS,EAAE,CAAC,SAAS,EAAE,CAAC,IAAI,IAAI6D,IAAE,EAAEA,IAAE,KAAK,OAAO,MAAI,CAAC,IAAI,KAAK,KAAKA,KAAG,GAAG,OAAO,MAAM,SAAU,SAAS,KAAK,KAAK,GAAG,SAAU,CAAC,MAAM,QAAQ,KAAK,EAAE,OAAO,KAAK,IAAI,UAAU,KAAK,MAAM,EAAE,KAAK,IAAI,OAAO,GAAG,SAAS,CAAE,MAAU,WAAW,2CAA2C,SAAU,KAAK,QAAQ,EAAG,SAAS,KAAK,KAAK,GAAG,EAAE,KAAM,CAAC,KAAM,SAAS,OAAOA,KAAE,SAAS,KAAK,KAAK,MAAM,CAAC,SAASA,KAAG,KAAK,GAAG,KAAK,MAAM,EAAE,CAAC,CAAC,SAAS,KAAK,KAAK,GAAG,SAASA,KAAG,OAAO,EAAG,OAAO,IAAI,UAAU,SAAS,SAAS,CAEjnB,OAAO,UAAU,SAAS,SAAS,CAAC,OAAO,IAAI,UAAU,SAAS,SAAS,CAAE,YAAY,SAAS,SAAS,CAAC,MAAM,SAAS,CAAC,KAAK,SAAS,WAA0sG,YAAY,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,KAAK,IAAO,KAAK,EAAE,SAAS,QAAQ,KAAK,IAAI,SAAS,KAAK,KAAK,KAAK,IAAI,SAAS,KAAK,OAAW,KAAK,IAAI,EAAE,KAAK,IAAI,IAAI,KAAK,IAAI,EAAG,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,GAAI,IAAI,MAAM,CAAC,OAAO,KAAK,IAAI,EAAE,KAAK,IAAI,KAAK,IAAK,IAAI,MAAM,CAAC,GAAG,CAAC,UAAU,KAAK,IAAI,MAAM,KAAK,EAAE,GAAG,EAAE,OAAO,OAAO,SAAS,OAAO,KAAK,MAAM,SAAS,OAAQ,QAAQ,IAAI,CAAC,GAAG,CAAC,UAAU,KAAK,IAAI,MAAM,KAAK,EAAE,GAAG,EAAE,OAAO,OAAO,SAAS,QAAQ,CAAC,IAAI,KAAK,MAAM,SAAS,OAAO,MAAM,KAAK,IAAI,KAAK,KAAK,IAAK,GAAE,KAAK,IAAI,IAAI,CAAE,QAAQ,IAAI,CAAI,KAAK,KAAK,IAAI,KAAK,MAAM,EAAM,KAAK,KAAK,IAAI,KAAK,KAAK,KAAM,SAAS,IAAI,CAAI,KAAK,KAAK,GAAG,KAAK,QAAQ,IAAI,CAAS,KAAK,KAAK,IAAI,KAAK,MAAM,EAAM,KAAK,KAAK,IAAI,KAAK,KAAK,KAAM,YAAY,IAAI,CAAC,KAAK,IAAI,IAAI,KAAK,EAAE,EAAE,KAAK,MAAM,GAAQ,eAAe,KAAK,CAGnnI,IAAI,QAAQ,CAAC,OAAO,KAAK,MAAM,GAAG,KAAK,GAAG,KAAK,KAG/C,IAAI,MAAM,CAAC,OAAO,KAAK,MAAM,GAAG,KAAK,KAAK,KAAK,GAE/C,IAAI,OAAO,CAAC,OAAO,KAAK,MAAM,KAAK,GAKnC,IAAI,OAAO,CAAC,OAAO,KAAK,MAAM,EAAE,GAAG,KAAK,MAAM,EAAE,EAAE,EAGlD,IAAI,WAAW,CAAC,IAAI,MAAM,KAAK,MAAM,EAAE,OAAO,OAAO,EAAE,KAAK,MAK5D,IAAI,YAAY,CAAC,IAAI,MAAM,KAAK,OAAO,EAAE,OAAO,OAAO,SAAS,IAAK,GAAE,MAGvE,IAAI,OAAO,MAAM,GAAG,CAAC,IAAI,KAAK,GAA6H,OAAvH,KAAK,MAAO,KAAK,GAAG,OAAO,OAAO,KAAK,KAAK,MAAM,EAAO,KAAK,OAAO,OAAO,KAAK,KAAK,EAAE,CAAC,GAAG,OAAO,OAAO,KAAK,GAAG,GAAG,EAAS,MAAM,KAAK,MAAM,IAAI,KAAK,GAAG,KAAK,IAAI,eAAe,KAAK,GAAG,KAAK,MAAM,CAE1O,OAAO,KAAK,GAAG,KAAK,CAAC,GAAG,MAAM,KAAK,QAAQ,IAAI,KAAK,OAAO,OAAO,gBAAgB,MAAM,KAAK,GAAG,CAAC,IAAI,KAAK,KAAK,IAAI,KAAK,KAAK,OAAO,CAAC,KAAK,IAAI,GAAG,KAAK,OAAO,CAAC,KAAK,GAAG,OAAO,gBAAgB,MAAM,KAAK,OAAO,KAAK,CAEpN,GAAG,MAAM,CAAC,OAAO,KAAK,QAAQ,MAAM,QAAQ,KAAK,MAAM,MAAM,KAE7D,QAAQ,CAAC,MAAM,CAAC,OAAO,KAAK,OAAO,KAAK,KAAK,KAAK,CAGlD,OAAO,SAAS,KAAK,CAAC,GAAG,CAAC,MAAM,OAAO,KAAK,QAAQ,UAAU,OAAO,KAAK,MAAM,SAAS,MAAU,WAAW,iDAAiD,CAAC,OAAO,gBAAgB,MAAM,KAAK,OAAO,KAAK,KAAK,CAEnN,OAAO,OAAO,KAAK,GAAG,MAAM,CAAC,OAAO,IAAI,eAAe,KAAK,GAAG,MAAM,CAAE,YAAY,KAAK,GAAG,MAAM,CAAC,KAAK,KAAK,KAAK,KAAK,GAAG,GAAG,KAAK,MAAM,QAAa,gBAAgB,KAAK,CAGzK,IAAI,OAAO,MAAM,GAAG,CAA6B,OAAzB,OAAO,MAAa,KAAY,gBAAgB,OAAO,KAAK,OAAO,IAAI,GAAG,EAAE,IAAI,OAAO,MAAM,CAAC,CAAC,KAAK,UAAU,CAEtI,GAAG,MAAM,CAAC,GAAG,KAAK,OAAO,QAAQ,MAAM,OAAO,QAAQ,KAAK,WAAW,MAAM,UAAU,MAAO,GAAM,IAAI,IAAIA,IAAE,EAAEA,IAAE,KAAK,OAAO,OAAO,MAAI,GAAG,CAAC,KAAK,OAAOA,KAAG,GAAG,MAAM,OAAOA,KAAG,CAAC,MAAO,GAAM,MAAO,GAInM,IAAI,MAAM,CAAC,OAAO,KAAK,OAAO,KAAK,WAGnC,UAAU,CAAC,OAAO,KAAK,OAAO,QAAQ,EAAE,KAAK,IAAI,gBAAgB,CAAC,KAAK,KAAK,CAAC,EAAE,CAE/E,SAAS,MAAM,KAAK,GAAK,CAAC,OAAO,gBAAgB,OAAO,CAAC,MAAM,CAAC,OAAO,KAAK,OAAO,CAAC,KAAK,EAAE,KAAK,UAAU,EAAE,CAG5G,aAAa,MAAM,MAAM,KAAK,UAAU,CAAC,IAAI,OAAO,KAAK,OAAO,OAAO,CAAqB,MAApB,QAAO,OAAO,MAAa,gBAAgB,OAAO,OAAO,KAAK,UAAU,CAGhJ,QAAQ,CAAC,MAAM,CAAC,OAAO,KAAK,OAAO,IAAI,GAAG,EAAE,QAAQ,CAAC,CAAC,KAAK,KAAK,UAAU,CAE1E,OAAO,SAAS,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,QAAQ,KAAK,OAAO,EAAE,OAAO,KAAK,MAAM,UAAU,KAAK,MAAM,KAAK,OAAO,OAAO,MAAU,WAAW,kDAAkD,CAAC,OAAO,IAAI,gBAAgB,KAAK,OAAO,IAAI,GAAG,eAAe,SAAS,EAAE,CAAC,CAAC,KAAK,KAAK,CAEnR,OAAO,OAAO,OAAO,KAAK,OAAO,CAAC,OAAO,IAAI,gBAAgB,CAAC,gBAAgB,MAAM,OAAO,KAAK,CAAC,CAAC,EAAE,CAGpG,OAAO,OAAO,OAAO,UAAU,EAAE,CAAC,GAAG,OAAO,QAAQ,EAAE,MAAU,WAAW,uCAAuC,CAAC,IAAI,IAAI,IAAI,EAAEA,IAAE,EAAEA,IAAE,OAAO,OAAO,MAAI,CAAC,IAAI,MAAM,OAAOA,KAAG,GAAG,MAAM,MAAM,MAAM,MAAM,IAAI,MAAM,KAAK,IAAI,OAAO,gBAAgB,WAAW,OAAO,OAAO,CAAC,UAAU,CAAC,IAAI,MAAM,GAAI,OAAO,IAAI,gBAAgB,OAAO,UAAU,CAGlV,OAAO,OAAO,IAAI,MAAM,EAAE,UAAU,WAAW,CAAC,OAAO,eAAe,OAAO,IAAI,KAAK,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,WAAW,KAAK,EAAE,KAAK,IAAI,EAAE,UAAU,GAAG,YAAkD,WAAW,EAAE,CAExN,OAAO,MAAM,OAAO,KAAK,WAAW,UAAU,CAAC,IAAI,OAAO,YAAkD,WAAW,GAAG,WAAW,KAAK,EAAE,KAAK,IAAI,EAAE,UAAU,EAAE,OAAO,KAAK,OAAO,eAAe,OAAO,KAAK,OAAO,GAAK,MAAM,CAAC,eAAe,OAAO,OAAO,MAAM,KAAK,OAAO,EAAE,GAAG,MAAM,CAE9R,OAAO,WAAW,OAAO,UAAU,EAAE,CAAC,IAAI,KAAK,OAAO,WAAW,OAAO,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,UAAU,OAAO,QAAQ,KAAK,CAAC,IAAI,IAAIA,IAAE,EAAEA,IAAE,OAAO,OAAO,MAAI,CAAC,IAAI,MAAM,OAAOA,KAAG,KAAK,OAAOA,IAAE,GAAG,GAAG,MAAM,MAAM,MAAM,MAAM,KAAK,GAAG,MAAM,KAAK,KAAK,GAAG,CAAC,IAAI,KAAK,KAAK,KAAK,GAAG,KAAK,IAAI,MAAM,GAAG,KAAK,GAAG,CAAIA,KAAG,WAAU,YAAY,OAAO,OAAO,EAAEA,IAAE,EAAE,MAAM,OAAO,MAAM,KAAK,gBAAgB,MAAM,GAAG,KAAK,CAAC,gBAAgB,MAAM,KAAK,GAAG,CAAC,EAAG,OAAO,IAAI,gBAAgB,OAAO,UAAU,CAAE,YAAY,OAAO,UAAU,CAAC,KAAK,OAAO,OAAO,KAAK,UAAU,YAAoL,OAAO,EAAM,MAAM,KAAK,CAEnvB,OAAO,OAAO,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,MAAM,OAAO,UAAU,GAAG,GAAG,OAAO,gBAAgB,EAAE,IAAI,IAAI,GAAG,OAAO,UAAW,OAAO,SAAmB,EAAE,IAAI,IAAI,EAArBvE,aAAwB,CAAC,CAAC,OAAO,OAAO,OAAO,QAAQ,CAE7L,GAAG,MAAM,CAAC,OAAO,IAAI,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,CAQnD,QAAQ,KAAK,IAAI,CAAC,GAAG,KAAK,SAAS,MAAU,MAAM,+BAA+B,CAAC,OAAO,IAAI,cAAc,KAAK,KAAK,EAAE,IAAI,CAG5H,SAAS,KAAK,IAAI,CAAC,GAAG,KAAK,SAAS,MAAU,MAAM,+BAA+B,CAAC,OAAO,IAAI,cAAc,KAAK,KAAK,EAAE,IAAI,CAAE,KAAK,MAAM,IAAI,CAAkB,MAAjB,CAAQ,MAAI,KAAG+E,IAAS,KAAK,QAAQ,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,MAAM,MAAM,CAAC,CAAC,CAAE,YAAY,QAAQ,aAAa,SAAS,SAAS,QAAQ,CAAC,KAAK,QAAQ,QAAQ,KAAK,aAAa,aAAa,KAAK,QAAQ,SAAS,KAAK,SAAS,SAAS,KAAK,GAAG,SAAS,KAAK,QAAQ,QAAQ,EAAE,CAAC,CAAC,KAAK,WAAW,OAAO,SAAS,WAAW,QAAQ,KAAK,CAAC,UAAkG,cAAc,KAAK,CAAC,YAAY,UAAU,CAAC,IAAIL,KAAG,IAAI,OAAO,KAAK,MAAU,SAAS,KAAK,MAAM,aAAiBT,KAAG,KAAK,GAAG,IAAI,UAAUA,OAAK,EAAE,MAAM,KAAK,MAAM,EAAM,OAAO,GAAM,OAAO,GAAM,SAAS,EAAE,CAAC,IAAI,IAAI,OAAO,KAAK,aAAiB,KAAK,MAAM,OAAO,GAAa,KAAK,YAAY,OAAO,IAAmB,UAAU,IAAI,KAA4B,GAAG,GAAM,SAAS,KAAK,UAAU,IAAI,IAAI,CAAE,MAAM,CAAC,OAAO,MAAM,CAAiC,MAAhC,OAAM,OAAO,KAAK,OAAO,MAAM,CAAQ,GAAI,OAAO,MAAM,GAAG,CAAC,GAAG,QAAQ,GAAG,YAAY,SAAS,GAAG,YAAY,GAAG,YAAY,UAAU,MAAM,SAAS,CAAC,CAAC,IAAI,OAAO,OAAO,MAAM,CAAC,GAAG,MAAM,CAAC,aAAa,OAAO,MAAM,OAAO,KAAK,SAAS,CAAC,CAAC,SAAS,OAAO,MAAM,OAAO,KAAK,CAA2B,MAAzB,OAAM,OAAO,KAAK,OAAc,EAAI,MAAO,IAAI,aAAa,MAAM,WAAW,CAAC,IAAI,OAAO,QAAQ,SAAS,OAAO,QAAQA,MAAI,GAAG,SAAS,KAAK,CAAC,IAAI,OAAO,QAAQ,SAAS,QAAQ,CAAC,GAAG,KAAK,aAAa,MAAM,KAAa,eAAe,MAAM,SAAS,MAAM,IAAI,GAAG,MAAM,MAAM,IAAI,CAAC,eAAe,WAAW,SAAS,MAAM,IAAI,GAAM,EAAE,MAAM,MAAM,IAAI,GAAM,CAAC,GAAO,GAAG,MAAM,aAAa,OAAO,OAAO,MAAM,CAAC,OAAO,SAAS,CAAC,SAAS,OAAO,OAAO,MAAM,CAAC,OAAO,EAA4B,MAAzB,OAAM,OAAO,KAAK,OAAc,OAAS,OAAO,OAAO,MAAM,CAA2B,MAAzB,OAAM,OAAO,KAAK,OAAc,GAAI,CAAE,YAAY,aAAa,MAAM,KAAK,MAAM,CAAC,KAAK,aAAa,aAAa,KAAK,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,KAAK,GAAG,WAAk4C,UAA0B,MAAM,OAAO,CAAC,OAAO,GAAK,CAAC,CAAK,WAAW,KAAK,CAEz3G,OAAO,OAAO,OAAO,CAAC,IAAI,MAAM,IAAI,WAAW,SAAS,OAAO,OAAO,OAAO,OAAO,OAAO,WAAW,EAAE,IAAI,IAAI,GAAG,OAAO,CAAwD,OAApD,OAAO,UAAQ,MAAM,SAAS,OAAO,QAAQ,MAAM,EAAQ,MAAO,OAAO,MAAM,CAAwD,OAA9C,MAAM,MAAM,UAAU,CAAC,KAAK,KAAGM,IAAE,OAAO,KAAK,EAAgD,QAAS,KAAK,SAAS,MAAM,CAEjV,KAAK,UAAU,CAAC,IAAI,IAAI,UAAU,KAAK,KAAK,EAAE,MAAM,CAAC,OAAO,QAAQ,MAAM,OAAO,KAAK,KAAK,OAAO,MAAM,CAAQ,GAAI,QAAQ,MAAM,KAAK,CAAC,IAAI,OAAO,MAAM,OAAO,KAAS,MAAM,KAAK,QAAQ,OAAO,GAAG,CAAiE,OAA7D,KAAK,SAAS,OAAO,MAAM,CAAQ,GAAE,MAAM,OAAO,KAAK,MAAa,IAAI,aAAa,MAAM,WAAe,SAAS,OAAO,QAAQ,KAAK,KAAK,MAAuD,MAAM,OAAO,KAAK,KAAK,OAAO,MAAM,CAAQ,IAA7F,MAAM,OAAO,KAAK,SAAS,MAAM,KAAK,CAAQ,GAAmD,CAI7b,KAAK,OAAO,CAAC,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAI3D,IAAI,WAAW,CAAC,OAAO,KAAM,YAAY,KAAG,QAAQ,QAAQ,SAAS,KAAK,CAAC,KAAK,GAAGN,KAAG,KAAK,QAAQ,QAAQ,KAAK,QAAQ,QAAQ,KAAK,SAAS,SAAS,KAAK,KAAK,KAAK,KAAK,SAAS,IAAK,KAAS,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAoE,KAAK,CAG5T,QAAwB,KAAK,MAAM,QAAQ,CAG3C,KAAqB,KAAK,MAAM,KAAK,CAGrC,QAAwB,KAAK,MAAM,QAAQ,CAE3C,IAAoB,KAAK,MAAM,IAAI,CAGnC,OAAuB,KAAK,MAAM,OAAO,CAAC,CAAK,cAAc,KAAK,CAAC,YAAY,MAAM,MAAM,CAAC,KAAK,MAAM,MAAM,KAAK,KAAK,QAAa,YAAY,KAAK,CAGrJ,GAAG,IAAI,CAAC,OAAO,IAAI,oBAAoB,KAAK,IAAI,CAGhD,YAAY,UAAQ,CAAC,OAAO,YAAY,YAAY,GAAG,CAAC,YAAY,KAAK,UAAUxC,UAAQ,CAAC,CAG5F,IAAI,MAAM,CAAC,OAAO,MAAM,OAAO,aAAa,IAAI,KAAK,GAAQ,oBAAoB,KAAK,CAAC,YAAY,YAAY,MAAM,CAAC,KAAK,YAAY,YAAY,KAAK,MAAM,QAAa,cAAc,KAAK,CAAC,YAAY,MAAM,CAAC,IAAI,KAAK,KAAK,QAAQ,MAAM,IAAI,OAAO,MAAM,KAAK,MAAM,QAAQ,KAAK,aAAa,MAAM,GAAI,OAAO,QAAQ,OAAK,aAAa,SAAS,CAAC,IAAI,OAAO,EAAE,CAAK,OAAuB,OAAO,OAAO,KAAK,CAAK,gBAAgC,IAAI,IAAI,IAAI,IAAI,OAAO,QAAQkD,OAAK,aAAa,gBAAgB,CAAK,eAAe,WAAW,OAAO,KAAK,IAAI,EAAM,OAAO,IAAI,MAAM,MAAM,OAAO,IAAI,MAAM,IAAI,EAAE,GAAG,KAAK,IAAI,CAAE,IAAI,QAAwB,OAAO,OAAO,KAAK,CAAK,aAAa,EAAE,CAAK,aAAa,EAAE,CAAC,IAAI,IAAI,SAAS,OAAQ,QAAQ,MAAM,IAAI,aAAa,QAAQ,EAAE,aAAa,KAAK,GAAG,MAAM,KAAK,EAAE,CAAC,CAAE,IAAI,UAAU,UAAmD,OAAO,OAAO,IAAI,IAAIV,QAAM,OAAO,CAAC,IAAI,UAAU,OAAOA,MAAI,MAAM,UAAU,GAAG,MAAU,aAAa,WAAW,UAAUA,OAAK,EAAE,CAAC,GAAG,UAAU,MAAM,KAAGQ,IAAE,MAAM,EAAE,CAA6C,GAA3C,QAAQ,MAAM,IAAI,aAAa,QAAQ,EAAE,EAAKzE,YAAU,aAAa,UAAU,CAAE,aAAa,KAAK,SAAS,MAAM,MAAM,CAAC,KAAM,CAAC,IAAI,MAAM,MAAM,QAAQ,UAAU,IAAI,KAAGyE,IAAE,MAAM,CAAC,CAAC,aAAa,KAAK,UAAU,MAAM,QAAQ,MAAM,SAAS,MAAM,MAAM,CAAC,CAAC,SAAS,MAAM,MAAM,CAAC,MAAM,KAAO,CAAC,IAAI,IAAIA,OAAK,UAAcA,IAAE,MAAM,GAAG,QAAQA,IAAE,IAAI,aAAa,QAAQ,EAAE,EAAE,aAAa,KAAKA,IAAE,MAAM,GAAO,QAAQA,IAAE,IAAI,aAAa,QAAQ,EAAE,aAAa,KAAK,GAAGA,IAAE,YAAY,EAAE,CAAC,EAAG,QAAQ,MAAM,IAAI,aAAa,QAAQ,EAAE,aAAa,KAAK,GAAG,iBAAiB,EAAE,MAAM,UAAU,CAAC,EAAG,IAAI,QAAQ,aAAa,IAAI,GAAG,EAAE,QAAQ,CAAC,CAAC,OAAO,IAAI,cAAcE,OAAK,gBAAgB,QAAQ,QAAQ,aAAa,OAAO,CAAE,YAAY,OAAK,aAAa,aAAa,QAAQ,aAAa,OAAO,CAA4K,IAA3K,KAAK,KAAKA,OAAK,KAAK,aAAa,aAAa,KAAK,aAAa,aAAa,KAAK,QAAQ,QAAQ,KAAK,aAAa,aAAa,KAAK,OAAO,OAAO,KAAK,eAAe,EAAE,CAAO,KAAK,eAAe,OAAO,aAAa,QAAO,KAAK,eAAe,KAAK,EAAE,GAA8uD,aAA6B,MAAM,QAAQ,CAAK,wBAAwC,MAAM,OAAO,CAAC,QAAQ,QAAQ,OAAO,KAAK,GAAG,EAAE,CAAC,OAAO,GAAK,CAAC,CAAK,cAA8B,MAAM,OAAO,CAAC,QAAQ,QAAQ,OAAO,OAAO,OAAO,GAAG,IAAK,GAAE,OAAO,GAAK,CAAC,CAAK,aAA6B,MAAM,QAAQ,CAAK,kBAAkC,MAAM,QAAQ,CAAK,oBAAoC,MAAM,QAAQ,CAAK,SAAyB,MAAM,OAAO,CAAC,QAAQ,QAAQ,OAAO,OAAO,OAAO,GAAG,GAAM,CAAC,CAAK,WAAW,KAAK,CAEhxI,OAAO,QAAQ,CAAC,OAAO,IAAI,eAE3B,YAAY,KAAK,MAAM,CAAC,KAAK,KAAK,KAAK,KAAK,MAAM,QAAa,eAAe,KAAK,CAEnF,GAAG,MAAM,CAAC,OAAO,IAAI,WAAW,KAAK,MAAM,GAAQ,gBAAgB,KAAK,CAGxE,GAAG,MAAM,CAAC,OAAO,IAAI,YAAY,KAAK,MAAM,CAE5C,YAAY,IAAI,CAAC,KAAK,IAAI,MAAW,YAAY,KAAK,CAGtD,IAAI,QAAQ,CAAC,IAAI,OAAO,KAAK,KAAK,IAAI,KAAK,MAAM,QAAQ,CAAC,OAAO,SAAS,IAAK,GAAE,IAAK,GAAE,QAAQ,KAAK,MAAM,KAAK,IAAI,YAAY,KAAK,KAAK,OAAO,CAGjJ,GAAG,KAAK,CAAC,OAAO,KAAK,MAAM,KAM3B,OAAO,OAAO,KAAK,EAAE,CAAC,CAAC,OAAO,IAAI,gBAAgB,KAAK,MAAM,GAAG,GAAG,CAEnE,OAAO,WAAW,QAAQ,QAAQ,CAAC,GAAG,CAAC,QAAQ,OAAO,OAAO,QAAQ,IAAI,OAAO,EAAE,CAAC,IAAI,IAAI,UAAU,QAAQ,CAAC,IAAI,OAAO,OAAO,IAAI,QAAQ,CAAI,QAAO,OAAO,KAAK,OAAO,CAAE,OAAO,OAEnL,YAAY,KAAK,MAAM,CAAC,KAAK,KAAK,KAAK,KAAK,MAAM,QAAS,YAAY,YAA4B,YAAY,QAAQ,CAAC,YAAY,aAA6B,YAAY,QAAQ,CAAK,YAAY,KAAK,CAE3M,OAAO,OAAO,WAAW,QAAQ,UAAU,QAAQ,YAAY,iBAAe,CAAC,OAAO,IAAI,YAAY,WAAW,QAAQ,UAAU,QAAQ,YAAY7D,iBAAe,CAOtK,IAAI,QAAQ,CAAC,MAAO,CAAY,KAAK,OAAK,KAAK,QAAQ,MAAM,KAAK,WAAW,IAAI,CAKjF,IAAI,cAAc,CAAC,OAAO,KAAK,WAAW,KAAK,WAAW,UAAU,IAAI,KAAK,QAAQ,CAKrF,IAAI,OAAO,CAAwD,OAAnD,KAAK,QAAO,KAAK,WAAW,iBAAiB,KAAK,CAAQ,KAAK,OAE/E,WAAW,KAAK,CAAC,IAAI,IAAI,OAAO,KAAK,YAAY,GAAG,IAAI,MAAM,KAAK,OAAO,IAAI,MAE9E,IAAI,YAAY,CAAC,MAAM,CAAC,KAAK,QAAQ,MAKrC,IAAI,cAAc,CAAC,OAAO,KAAK,WAAW,QAAQ,KAAK,MAAM,OAM7D,YAAY,MAAM,CAAC,IAAI,EAAE,KAAK,WAAW,YAAY,UAAU,CAAC,MAAM,CAAC,EAAE,IAAI,GAAG,OAAO,EAAE,OAAO,MAAM,QAAQ,EAAE,MAAM,EAAE,MAAM,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,MAAO,YAAY,WAAW,QAAQ,UAAU,QAAQ,YAAY,iBAAe,CAAC,KAAK,WAAW,WAAW,KAAK,QAAQ,QAAQ,KAAK,UAAU,UAAU,KAAK,QAAQ,QAAQ,KAAK,YAAY,YAAY,KAAK,eAAeA,iBAAe,KAAK,KAAK,KAAK,KAAK,OAAO,KAAQ,WAAU,eAAe,UAAU,QAAQ,UAAU,CAAK,YAAY,KAAK,GAAG,EAAE,MAAM,YAAY,KAAK,GAAC,KAAK,YAAY,YAAY,OAAO,YAAY,KAAK,GAAG,KAAK,KAAK,CAAC,CAAC,IAAI,YAAY,KAAqB,WAAW,QAAQ,CAAC,YAAY,UAA0B,WAAW,QAAQ,CAAC,YAAY,aAA6B,WAAW,QAAQ,CAAC,YAAY,OAAuB,WAAW,QAAQ,CAAs6G,KAAK,EAAE,CAAyF,aAA6B,SAAS,cAAc,CAA+I,MAA9I,eAAc,cAAc,KAAQ,GAAG,OAAO,cAAc,cAAc,MAAS,GAAG,QAAQ,cAAc,cAAc,MAAS,GAAG,QAAe,eAAgB,AAAe,eAAa,EAAE,CAAE,CAAK,2BAA2B,4GAAyH,GAAG,CAAC,SAA6B,OAAO,gCAAgC,IAAI,MAAU,EAA4f,YAAY,KAAK,CAAC,MAAM,MAAM,SAAS,GAAK,CAAC,IAAI,KAAK,KAAK,OAAO,QAAQ,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,SAAS,MAAU,WAAW,qCAAqC,CAAC,OAAqC,OAAtB,WAAW,KAAK,KAAK,CAAQ,QAAQ,KAAK,KAAK,CAczhL,OAAO,GAAG,MAAM,CAAC,OAAO,mBAAmB,KAAK,MAAM,GAAK,CAE3D,iBAAiB,GAAG,CAAC,IAAI,KAAK,KAAK,OAAO,CAAC,KAAA,OAAK,cAAc,KAAK,IAAI,IAAI,UAAU,GAAG,QAAY,OAAO,GAAG,YAAY,YAAY,EAAE,AAA8G,QAArG,aAA6B,IAAI,IAAI,KAAK,aAAa,SAAS,IAAI,MAAM,aAAa,IAAI,IAAI,IAAI,CAAC,CAAM,MAAM,aAAa,IAAI,OAAO,MAAM,YAAY,OAAO,MAAM,UAAU,EAAU,OAAO,GAAG,YAAY,YAAY,EAAE,KAAK,KAAK,OAAK,OAAO,OAAe,OAAO,GAAG,YAAY,aAAa,GAAE,KAAK,KAAK,OAAKV,UAAQuE,OAAK,CAAC,OAAO,OAAO,MAAM,EAAG,IAAI,YAAgB,KAAwP,YAAY,GAAG,WAAW,OAAO,OAAO,EAA1R,KAAK,cAAc,QAAQA,OAAK,aAAa,KAAK,CAAqJ,YAA9H,IAAI,YAAY,KAAK,KAAK,IAAI,KAAK,UAAU,KAAK,aAAa,QAAQ,KAAK,EAAE,MAAM,OAAO,KAAK,YAAY,MAAM,KAAK,CAAC,KAAK,CAA+B,QAAuD,IAAI,YAAY,KAAK,GAAG,OAAO,GAAG,aAAa,aAAa,MAAM,OAAO,KAAK,OAAO,MAAM,GAAG,CAAC,GAAG,CAGt4B,iBAAiB,KAAK,CAAiD,OAA7C,OAAO,MAAM,WAAS,KAAK,KAAK,OAAO,KAAK,EAAQ,KAAK,cAAc,QAAQ,CAAC,QAAQ,CAAC,KAAK,MAAM,KAAK,GAAG,MAAM,GAAG,OAAO,KAAK,CAAC,MAAM,gBAAgB,OAAO,MAAM,KAAK,KAAK,OAAO,CAAC,EAAE,CAUnN,cAAc,EAAE,CAAC,IAAI,IAAI,KAAK,UAAc,QAAQ,EAAE,IAAI,OAAO,GAAG,CAAK,QAAQ,KAAK,QAAQ,QAAQ,QAAQ,CAAC,OAAO,CAAC,QAAQ,MAAM,CAAK,QAAQvE,UAAQ,QAAQ,QAAQ,CAAC,IAAI,IAAImE,IAAE,EAAEA,IAAE,IAAI,OAAO,OAAO,MAAI,CAAC,IAAI,OAAO,EAAE,IAAI,OAAOA,KAAG,CAAK,WAAW,KAAK,QAAQ,OAAO,QAAQ,CAAC,UAAU,WAAW,IAAI,QAAQ,CAAC,IAAI,IAAI,EAAE,EAAE,EAAEA,IAAE,IAAI,OAAO,GAAG,OAAO,GAAG,IAAI,UAAU,CAAC,IAAI,MAAM,QAAQ,QAAQ,WAAW,GAAK,CAAC,OAAO,KAAK,OAAO,MAAM,IAAI,MAAM,CAAC,CAAC,QAAQ,QAAQ,QAAQ,UAAU,CAAC,QAAQ,YAAY,WAAW,QAAQ,UAAU,CAAC,OAAO,YAAY,WAAWnE,UAAQ,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAE,MAAM,CAAC,QAAQ,UAAU,gBAAgB,OAAO,OAAO,IAAI,UAAU,CAAC,QAAQ,CAInqB,QAAQ,KAAK,EAAE,CAAC,CAA0C,OAAtC,gBAAgB,UAAiB,KAAY,UAAU,GAAG,KAAK,KAAK,IAAI,OAAO,KAAK,MAAM,YAAY,cAAc,CAAC,CAIzI,OAAO,SAAO,CAAC,OAAO,KAAK,GAAGyD,SAAO,MAAM,KAAK,MAAM,YAAY,cAAc,EAAE,aAAa,CAAC,CAEhG,SAAS,KAAK,EAAE,GAAG,KAAK,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI,YAAY,KAAK,GAAG,KAAK,UAAU,CAEvF,MAAM,MAAM,CAAC,IAAI,KAAK,KAAK,OAAO,QAAQ,MAAM,IAA6D,OAAtD,MAAM,KAAY,MAAM,SAAQ,WAAW,KAAK,KAAK,CAAQ,QAAQ,KAAK,KAAK,EAKtI,OAAO,OAAO,CAAC,IAAI,OAAO,CAAC,IAAI,KAAK,UAAU,CAAC,UAAU,KAAK,UAAU,QAAQ,CAAC,CAAC,GAAG,OAAO,IAAI,IAAI,QAAQ,OAAO,CAAC,IAAI,MAAM,OAAO,MAAS,iBAAiB,YAAY,KAAK,OAAO,QAAQ,MAAM,KAAK,OAAK,OAAO,MAAM,MAAM,KAAK,OAAO,KAAK,MAAM,OAAO,MAAM,CAAC,KAAK,EAAE,OAAO,OAKrR,OAAO,SAAS,KAAK,OAAO,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,OAAO,KAAK,KAAK,SAAS,MAAU,WAAW,8CAA8C,CAAC,IAAI,UAAU,EAAE,CAAC,GAAG,YAAW,IAAI,QAAQ,OAAQ,GAAG,OAAO,UAAU,eAAe,KAAK,KAAK,KAAK,CAAC,CAAC,IAAI,MAAM,OAAO,MAAM,MAAM,KAAK,MAAM,UAAU,KAAK,MAAM,KAAK,OAAO,MAAM,KAAK,SAAS,MAAM,MAAM,CAAC,CAAC,EAAG,OAAO,YAAY,OAAO,CAAC,IAAI,KAAK,IAAI,UAAU,gBAAgB,SAAS,KAAK,UAAU,CAAC,WAAW,OAAO,WAAW,UAAU,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,UAAU,CAAC,CAI7gB,OAAO,OAAO,OAAO,EAAE,CAAC,CAAC,IAAI,cAAc,cAAc,QAAQ,OAAO,YAAY,EAAE,CAAiB,IAAI,IAAI,CAAKM,MAAI,OAAO,eAAe,KAAK,OAAO,IAAI,KAAK,IAAI,OAAO,KAAK,IAAI,MAAM,cAAc,YAAY,YAAY,cAAc,EAAE,aAAa,CAAC,CAAK,UAAW,OAAO,UAAoC,OAAO,qBAAqB,gBAAgB,OAAO,UAAU,gBAAgB,OAAO,OAAO,UAAU,OAAO,OAAO,UAAU,KAAK,CAA5J,gBAAgB,OAAO,EAAE,CAA+P,OAA3H,eAAe,UAAUA,MAAI,OAAO,CAAK,cAAc,YAAY,wBAAwB,GAAC,UAAU,UAAU,UAAU,EAAQ,IAAI,YAAY,cAAcA,MAAI,UAAU,cAAc,aAAa,QAAQ,KAAK,EAAE,MAAM,OAAO,KAAK,OAAO,MAAM,CAAC,KAAK,CAG5rB,IAAI,SAAS,CAAC,OAAO,KAAK,MAAM,YAAY,QAAQ,CAGpD,IAAI,WAAW,CAAC,OAAO,KAAK,MAAM,YAAY,cAAc,EAAE;EAG9D,IAAI,UAAU,CAAC,OAAO,KAAK,MAAM,SAAS,CAS1C,OAAO,OAAO,GAAG,QAAQ,CAAC,IAAI,IAAI,OAAO,KAAK,MAAM,YAAY,QAAQ,CAAC,GAAG,OAAO,UAAU,eAAe,KAAK,IAAI,OAAO,CAAC,CAAC,OAAO,IAAI,QAAQ,MAAoJ,OAA1I,QAAQ,SAAO,OAAO,OAAO,QAAQ,eAAe,EAAE,MAAI,CAAC,GAAGI,KAAG,IAAI,MAAM,IAAI,IAAI,EAAE,EAAEA,KAAG,GAAG,MAAM,CAAC,GAAG,EAAE,QAAQ,OAAO,EAAE,QAAQ,EAAE,IAAK,EAAQ,OAe5S,eAAe,OAAK,IAAI,KAAK,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC,IAAI,IAAI,YAAY,KAAK,MAAM,aAAa,CAAE,IAAI,IAAI,UAAU,SAAS,KAAK,IAAI,KAAK,CAAK,OAAO,UAAU,eAAe,KAAK,OAAOW,OAAK,EAAC,OAAO,KAAK,OAAOA,QAAM,CAAG,OAAO,OAUhO,gBAAgB,GAAG,CAAC,OAAO,gBAAgB,KAAK,eAAe,YAAY,GAAG,CAAC,KAAK,GAAG,CAAC,CAKxF,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,QAAQ,KAAK,IAAI,OAAO,IAAI,CAAK,IAAI,KAAK,gBAAgB,IAAI,CAAK,MAAM,IAAI,KAAK,IAAI,IAAI,KAAK,KAAM,MAAM,GAAE,CAAC,IAAI,KAAK,iBAAiB,KAAK,MAAM,GAAM,CAAC,GAAG,IAAI,KAAK,MAAM,KAAK,MAAM,CAAC,EAAE,aAAa,KAAK,MAAM,MAAM,KAAM,KAAM,IAAI,QAAO,CAAC,IAAI,KAAK,iBAAiB,KAAK,IAAI,CAAC,GAAG,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,EAAE,aAAa,KAAK,MAAM,IAAI,KAAM,OAAO,OAAO,IAAI,KAAK,gBAAgB,MAAM,MAAM,KAAK,IAAI,KAAK,CAAE,YAAY,OAAO,MAAI,UAAU,OAAO,YAAY,GAAG,CAAC,KAAK,OAAO,OAAO,KAAK,IAAIf,MAAI,KAAK,UAAU,UAAU,KAAK,OAAO,OAAO,KAAK,OAAO,OAAO,eAAe,OAAO,CAAC,KAAK,YAAY,YAAe,KAAG,GAAG,OAAO,MAAK,IAAI,IAAII,IAAE,EAAEA,IAAE,KAAK,OAAO,aAAa,OAAO,MAAI,WAAW,KAAKA,KAAG,EAAE,CAAC,KAAK,YAAY,OAAQ,YAAY,wBAAwB,wBAAwB,YAAY,QAAwB,MAAM,OAAO,CAAC,QAAQ,QAAQ,OAAO,OAAO,OAAO,GAAG,EAAE,CAAC,CAAC,YAAY,cAAc,cAAc,YAAY,SAAS,SAAS,YAAY,QAAwB,MAAM,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,GAAG,OAAO,KAAK,EAAE,CAAC,GAAG,OAAO,KAAK,EAAE,CAAC,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,EAAE,IAAI,EAAE,GAAG,EAAG,CAAC,CAAC,YAAY,aAAa,aAAa,YAAY,aAAa,aAAa,YAAY,kBAAkB,kBAAkB,YAAY,oBAAoB,oBAAoB,YAAY,YAA4B,YAAY,QAAQ,CAAif,WAAW,KAAK,CAM/1D,GAAG,MAAM,CAAC,OAAO,MAAM,MAEvB,MAAM,KAAK,GAAG,KAAK,CAAC,OAAOvD,QAAM,OAAO,KAAK,GAAG,KAAK,GAAI,WAAW,UAAU,UAAU,WAAW,UAAU,QAAQ,EAAE,WAAW,UAAU,MAAM,GAAM,WAAW,UAAU,QAAQ,QAAQ,SAAaA,QAAM,KAAK,CAErN,OAAO,OAAO,KAAK,GAAG,MAAM,CAAC,OAAO,IAAIA,QAAM,KAAK,GAAG,MAAM,CAAE,YAAY,KAAK,GAAG,MAAM,CAAC,KAAK,KAAK,KAAK,KAAK,GAAG,GAAG,KAAK,MAAM,QAA+F,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,OAAO,KAAK,GAAG,KAAK,GAAG,OAAO,GAEzR,UAAU,IAAI,KAAK,IAAI,QAAQ,EAAE,CAAC,IAAI,IAAI,IAAI,KAAK,GAAG,KAAK,KAAK,IAAI,IAAI,GAAG,QAAQ,GAAG,IAAI,SAAS,CAAC,GAAG,IAAI,GAAG,OAAO,GAAG,IAAI,IAAI,GAAG,IAAI,EAAM,KAAK,IAAI,KAAK,MAAM,IAAI,KAAK,MAAM,KAAK,QAAQ,KAAK,MAAM,KAAK,WAAW,KAAK,GAAG,KAAK,GAAG,OAAO,MAAM,EAAE,GAAG,GAAM,MAAM,EAAE,GAAG,IAAS,GAAG,IAAI,GAAI,QAAQ,OAAO,KAAK,GAAG,EAAE,CAAC,IAAI,IAAIuD,IAAE,KAAK,UAAU,KAAK,KAAK,GAAK,CAAC,EAAE,KAAK,UAAU,GAAG,IAAI,GAAMA,IAAE,CAACA,IAAE,EAAE,MAAI,GAAG,EAAE,KAAK,KAAKA,KAAG,OAAO,KAAK,GAAGA,KAAG,OAAO,KAAK,MAAMA,KAAG,GAAG,GAAM,MAAO,GAAO,IAAI,OAAO,QAAQ,CAAC,IAAI,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,GAAG,SAAS,GAAG,IAAI,IAAIA,IAAE,EAAEA,IAAE,KAAK,MAAM,OAAO,MAAI,CAAC,IAAI,IAAI,KAAK,MAAMA,KAAG,QAAQ,KAAK,KAAKA,KAAG,OAAO,MAAM,KAAK,GAAGA,KAAG,OAAO,QAAQ,MAAM,GAAG,SAAS,MAAM,CAAC,IAAI,OAAO,QAAQ,OAAO,QAAQ,IAAI,UAAU,IAAI,QAAQ,CAA+C,GAA3C,QAAQ,OAAc,QAAQ,MAAM,OAAU,IAAI,WAAW,IAAI,UAAS,MAAM,QAAQ,OAAO,QAAQ,IAAI,QAAQ,CAAI,MAAM,UAAQ,iBAAgB,QAAQ,QAAQ,OAAO,QAAQ,IAAI,UAAU,CAAC,MAAM,QAAQ,OAAO,MAAM,IAAI,QAAQ,CAAI,QAAQ,OAAO,SAAS,OAAO,IAAI,UAAU,GAAG,IAAI,SAAS,EAAE,UAAc,MAAM,SAAS,IAAI,QAAQ,IAAI,WAAW,IAAc,OAAO,IAAE,OAAO,SAAW,IAAI,QAAM,SAAS,KAAK,IAAI,SAAS,MAAM,QAAQ,EAAC,MAAM,KAAK,IAAI,CAAC,KAAK,KAAK,QAAQ,OAAO,CAAC,GAAG,KAAK,MAAM,OAAO,EAAE,MAAM,CAAC,OAAO,MAAM,OAAO,IAAI,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,KAAK,IAAI,OAAO,CAAE,YAAY,KAAK,GAAG,MAAM,SAAS,CAAC,KAAK,KAAK,KAAK,KAAK,GAAG,GAAG,KAAK,MAAM,MAAM,KAAK,SAAS,WAAgB,SAAS,KAAK,CAEx7C,OAAO,OAAO,SAAS,MAAM,UAAU,SAAS,CAAC,OAAO,IAAI,SAAS,SAAS,MAAM,UAAU,SAAS,CAEvG,IAAI,QAAQ,CAAC,IAAI,KAAK,KAAK,MAAM,OAAO,EAAE,OAAO,KAAK,EAAE,EAAE,KAAK,IAAI,KAAK,SAAS,KAAK,CAAC,KAAK,UAAU,OAAO,CAE7G,IAAI,MAAM,CAAC,GAAG,KAAK,QAAQ,MAAO,GAAE,IAAI,KAAK,KAAK,UAAU,KAAK,IAAI,IAAI,SAAS,KAAK,MAAM,MAAM,MAAM,MAAM,OAAO,OAAO,KAE7H,SAAS,MAAM,CAAC,OAAO,KAAK,SAAS,OAAO,KAAK,MAAM,OAAO,OAQ9D,OAAO,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,GAAM,WAAW,EAAE,SAAS,KAAK,QAAQ,WAAe,OAAO,WAAW,OAAO,GAAG,IAAI,QAAQ,GAAG,CAAC,OAAO,OAAO,KAA4C,GAApC,OAAK,IAAI,IAAI,OAAO,CAAC,KAAK,SAAS,EAAI,KAAK,QAAQ,OAAO,IAAI,OAAO,SAAS,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,IAAI,YAAY,KAAK,KAAK,GAAG,CAAC,KAAK,EAAE,CAACA,IAAE,EAAE,MAAM,EAAE,CAAK,QAAQ,IAAI,gBAAgB,KAAM,IAAI,OAAOA,IAAE,IAAI,QAAQ,GAAGA,IAAE,IAAI,SAAS,IAAI,KAAK,IAAIA,KAAG,MAAM,IAAI,UAAU,IAAIA,KAAG,MAAM,YAAY,EAAE,CAAC,IAAI,MAAM,IAAI,OAAS,QAAQ,SAAS,MAAM,KAAK,MAAM,GAAG,MAAM,MAAM,EAAC,MAAM,KAAK,MAAM,MAAU,IAAI,YAAY,GAAG,IAAI,WAAW,KAAK,MAAM,SAASA,KAAG,IAAI,QAAQ,KAAK,SAAS,IAAI,WAAW,CAAC,IAAIA,KAAG,QAAQ,CAAC,QAAQ,WAAW,KAAK,SAAS,IAAI,WAAW,EAAE,SAAS,KAAK,SAAS,IAAI,cAAc,QAAQ,SAAS,KAAK,SAAS,IAAI,YAAY,KAAK,MAAM,IAAI,YAAY,CAAE,IAAI,WAAW,GAAU,CAAC,QAAQ,WAAW,IAAI,IAAI,SAAS,IAAI,MAAM,OAAO,IAAI,KAAK,IAAI,GAAG,IAAI,MAAM,IAAM,QAAQ,SAAS,IAAI,KAAK,IAAI,GAAG,IAAI,MAAM,EAAC,MAAM,KAAKvD,QAAM,OAAO,IAAI,KAAK,IAAI,GAAG,IAAI,MAAM,CAAC,EAAE,IAAI,MAAM,EAAG,OAAO,QAAQ,YAAY,KAAK,UAAU,SAAS,CAAC,MAAM,OAAO,SAAS,MAAM,KAAK,UAAU,OAAO,CAAC,IAAI,MAAM,OAAO,WAAW,SAAS,CAAC,CAAC,CAE9qC,IAAI,QAAQ,CAAC,GAAG,QAAQ,OAAO,KAAK,QAAQ,OAAO,KAAK,IAAI,OAAO,EAAE,CAAC,SAAS,EAAE,CAAC,SAAS,GAAG,IAAI,IAAIuD,IAAE,EAAEA,IAAE,KAAK,MAAM,OAAO,MAAI,CAAC,IAAI,MAAM,KAAK,SAASA,KAAG,MAAM,KAAK,MAAMA,KAAO,MAAM,QAAQ,aAAa,MAAM,MAAM,MAAM,OAAO,CAAC,GAAG,QAAQ,GAAO,SAAS,KAAK,IAAI,SAAS,MAAM,SAAS,CAAC,OAAO,KAAK,MAAM,CAAC,SAAS,KAAK,QAAQ,OAAO,MAAM,CAAC,SAAU,QAAQ,GAAK,CAAC,GAAG,CAAC,OAAO,KAAK,MAAM,IAAI,MAAM,QAAQ,CAAI,SAAQ,SAAS,KAAK,IAAI,SAAS,OAAO,SAAS,CAAC,OAAO,KAAK,OAAO,CAAC,SAAS,KAAK,IAAI,GAAI,IAAI,KAAK,KAAK,UAAU,IAAI,QAAQ,CAAC,OAAO,OAAO,QAAQ,EAAE,KAAK,IAAI,SAAS,SAAS,OAAO,MAAM,SAAS,MAAM,SAAS,CAK9nB,QAAQ,KAAK,GAAG,EAAE,CAAI,SAAK,QAAe,KAAI,IAAIA,IAAE,EAAEA,IAAE,KAAK,MAAM,OAAO,MAAI,CAAC,IAAI,MAAM,KAAK,SAASA,KAAG,MAAM,KAAK,MAAMA,KAAG,GAAG,IAAI,OAAO,MAAM,MAAM,MAAM,QAAQ,MAAM,QAAQ,MAAM,KAAK,MAAM,GAAG,MAAM,EAAE,GAAG,GAAM,OAAQ,KAAK,UAAU,QAAQ,KAAK,GAAG,EAAE,EAGlQ,KAAK,KAAK,EAAE,CAAC,OAAO,WAAW,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,CAEtD,IAAI,SAAS,CAAC,OAAO,KAAK,WAAW,KAGrC,OAAO,KAAK,KAAK,KAAK,EAAE,CAAC,OAAO,WAAW,KAAK,KAAK,CAAC,KAAK,KAAK,CAGhE,OAAO,QAAQ,QAAQ,QAAQ,SAAS,WAAW,aAAa,GAAG,CAAC,IAAI,EAAE,QAAQ,OAAO,KAAK,IAAI,SAAS,GAAG,CAAC,IAAI,SAAS,IAAI,UAAU,aAAa,CAAK,EAAE,QAAQ,OAAO,KAAK,IAAI,SAAS,GAAG,CAAC,IAAI,SAAS,IAAI,UAAU,aAAa,CAAK,aAAa,iBAAiB,EAAE,EAAE,SAAS,CAAK,MAAM,IAAI,WAAW,EAAE,aAAa,aAAa,CAAK,MAAM,IAAI,WAAW,EAAE,aAAa,aAAa,CAAC,SAAS,UAAU,MAAM,MAAM,SAAS,QAAQ,MAAM,MAAM,MAAM,MAAM,OAAO,WAAW,CAAC,CAAI,SAAS,OAAO,SAAS,QAAQ,GAAE,QAAQ,MAAM,EAAE,MAAM,EAAE,EAAE,WAAW,CAG/iB,OAAO,GAAG,QAAQ,QAAQ,KAAK,EAAE,GAAG,CAAC,AAAY,KAAG,UAAM,IAAI,EAAE,QAAQ,OAAO,KAAK,CAAC,IAAI,SAAS,QAAQ,QAAQ,IAAI,CAAC,EAAE,CAAK,EAAE,QAAQ,OAAO,KAAK,CAAC,IAAI,SAAS,QAAQ,QAAQ,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,MAAO,GAAM,GAAG,CAAC,EAAE,OAAO,MAAO,GAAK,IAAI,aAAa,iBAAiB,EAAE,EAAE,CAAK,MAAM,IAAI,WAAW,EAAE,aAAa,EAAE,CAAC,KAAK,KAAK,CAAC,MAAM,IAAI,WAAW,EAAE,aAAa,EAAE,CAAC,KAAK,KAAK,CAAC,OAAO,CAAC,GAAG,MAAM,IAAI,MAAM,IAAI,CAAC,WAAW,MAAM,OAAO,MAAM,OAAO,EAAE,MAAM,QAAQ,CAAC,MAAM,OAAO,CAAC,MAAM,MAAM,GAAG,MAAM,MAAM,EAAE,MAAO,GAAM,GAAG,MAAM,GAAG,GAAG,MAAO,GAAK,MAAM,MAAM,CAAC,MAAM,MAAM,EAMvkB,OAAO,MAAM,KAAK,KAAK,GAAG,SAAS,aAAa,GAAG,CAAC,IAAI,OAAO,IAAI,WAAW,KAAK,KAAK,aAAa,CAAC,KAAK,KAAK,CAAC,IAAI,KAAS,WAAW,OAAO,UAAU,OAAO,CAAC,IAAI,MAAM,KAAK,IAAI,OAAO,GAAG,GAAG,CAAC,GAAG,OAAO,MAAM,CAAC,IAAI,OAAO,OAAO,eAAe,OAAO,GAAG,CAAK,UAAU,OAAO,UAAU,KAAK,OAAO,OAAO,EAAE,KAAK,IAAI,OAAO,OAAO,WAAW,CAAC,SAAS,MAAM,IAAI,MAAM,OAAO,MAAM,OAAO,UAAU,OAAO,UAAU,CAAC,WAAW,KAAK,IAAI,OAAO,QAAQ,MAAM,CAAC,OAAO,OAAO,MAAU,MAAM,MAAK,SAAS,KAAK,IAAI,MAAM,OAAO,OAAO,WAAW,CAAC,WAAW,OAAO,QAAQ,MAAM,EAAE,GAAG,OAAO,GAAG,GAAG,OAAO,YAAY,OAAO,OAAO,OAAO,GAAG,GAAG,EAAE,GAAG,IAAI,OAAO,GAAG,OAAO,MAAM,EAM/pB,OAAO,GAAG,OAAO,KAAK,GAAM,CAAC,IAAI,MAAM,IAAI,gBAAgB,IAAI,IAAI,SAAS,kBAAkBvD,QAAM,CAAC,OAAO,CAAC,KAAK,SAAS,OAAO,CAAC,OAAO,MAAM,IAAI,MAAM,KAAK,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,MAAM,QAAQ,CAAE,YAAY,SAAS,MAAM,UAAU,SAAS,CAAC,KAAK,SAAS,SAAS,KAAK,MAAM,MAAM,KAAK,UAAU,UAAU,KAAK,SAAS,WAAY,SAAS,MAAsB,IAAI,SAAS,EAAE,CAAC,EAAE,CAAC,KAAK,GAAG,CAAsM,SAAS,MAAM,UAAU,SAAS,MAAU,gBAAgB,KAAK,CAAC,YAAY,UAAU,CAAC,KAAK,OAAO,KAAK,IAAI,MAAM,KAAK,KAAK,KAAK,GAAG,KAAK,MAAM,KAAK,SAAS,CAAC,CAAC,KAAK,SAAS,KAAK,KAAK,WAAW,CAAC,KAAK,WAAW,GAAG,KAAK,YAAY,KAAK,IAAI,KAAK,YAAY,KAAK,SAAS,CAAC,KAAK,SAAS,GAAM,YAAW,KAAK,KAAK,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK,MAAM,EAAE,EAG56B,IAAI,KAAK,GAAG,MAAM,CAAK,KAAK,SAAS,KAAK,GAAG,MAAM,GAAE,AAAiB,KAAK,YAAU,IAAI,iBAAkB,IAAI,KAAK,GAAG,MAAM,CAE7H,SAAS,KAAK,GAAG,MAAM,CAAC,IAAI,KAAK,KAAK,KAAK,QAAQ,MAAM,UAAU,KAAK,KAAK,QAAQ,GAAG,MAAM,IAAI,KAAK,KAAK,UAAU,MAAM,UAAU,KAAK,KAAK,WAAW,EAAE,MAAU,MAAM,iEAAiE,CAA8T,OAA1T,KAAK,EAAS,IAAS,KAAK,KAAK,QAAQ,KAAI,KAAK,YAAY,GAAK,CAAI,KAAK,WAAW,IAAE,KAAK,WAAW,MAAK,KAAK,KAAK,KAAK,KAAK,KAAK,WAAW,CAAC,KAAK,GAAG,KAAK,GAAG,KAAK,WAAW,CAAC,KAAK,KAAK,MAAM,KAAK,SAAS,KAAK,KAAK,OAAO,GAAG,KAAK,MAAM,KAAK,MAAM,CAAI,MAAM,QAAM,KAAK,SAAS,KAAK,IAAI,KAAK,SAAS,GAAG,KAAK,EAAQ,IAEnjB,SAAS,KAAK,MAAM,CAAC,IAAI,KAAK,KAAK,QAAQ,MAAM,MAAM,GAAG,UAAU,KAAK,KAAK,SAAS,EAAE,MAAO,GAAS,KAAK,KAAK,QAAO,KAAK,YAAY,GAAK,CAAC,KAAK,YAAY,KAAK,IAAI,KAAK,YAAY,MAAM,SAAS,CAAC,KAAK,OAAO,KAAK,MAAM,CAAC,KAAK,SAAS,KAAK,KAAK,CAAC,IAAI,KAAK,MAAM,MAAM,OAAO,EAAkG,MAAhG,MAAK,KAAK,MAAM,MAAM,MAAM,KAAK,SAAS,MAAM,KAAK,MAAM,KAAK,KAAK,OAAO,MAAM,GAAG,MAAM,KAAY,GAGlY,QAAQ,CAAC,OAAO,KAAK,YAAY,SAAS,MAAM,CAEhD,YAAY,KAAK,CAA6C,GAAzC,KAAK,KAAK,QAAO,KAAK,YAAY,GAAM,CAAI,KAAK,OAAO,QAAQ,EAAE,OAAO,KAAK,IAAI,OAAO,SAAS,OAAO,KAAK,SAAS,KAAK,OAAO,KAAK,UAAU,KAAK,UAAU,YAAY,KAAK,CAAC,KAAK,KAAK,YAAY,CAAgB,MAAf,MAAK,KAAK,KAAY,OAErP,aAAa,CAAC,KAAK,OAAO,EAAE,CAAC,KAAK,SAAS,EAAE,CAAC,KAAK,WAAW,GAAG,KAAK,KAAK,KAAK,KAAK,SAAS,KAAK,KAAK,OAAO,KAAK,KAAK,KAAK,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK,MAAM,EAAE,CAAC,KAAK,SAAS,GAAG,KAAK,YAAY,GAAG,KAAK,UAAU,OAAsiB,YAAY,KAAK,CAAC,IAAI,WAAW,CAAC,OAAO,KAAK,MAAM,KAAK,MAAM,UAAU,EAAG,IAAI,SAAS,CAAC,OAAO,KAAK,MAAM,KAAK,MAAM,QAAQ,EAAG,KAAK,IAAI,KAAK,KAAK,CAAkE,MAAjE,MAAK,WAAW,KAAK,WAAW,EAAE,KAAK,UAAU,IAAI,KAAK,GAAM,CAAQ,KAAM,UAAU,IAAI,KAAK,QAAQ,CAAC,KAAM,KAAK,WAAW,KAAK,MAAM,MAAM,QAAO,CAAC,IAAI,KAAK,KAAK,MAAM,MAAM,KAAK,YAAY,GAAG,EAAE,KAAK,MAAM,KAAK,KAAK,IAAI,KAAK,EAAE,KAAK,MAAM,SAAS,KAAK,WAAW,CAAC,KAAK,KAAK,SAAS,KAAK,UAAU,MAAM,KAAK,aAAa,QAAQ,GAAO,GAAG,KAAK,WAAW,KAAK,MAAM,MAAM,OAAO,CAAC,IAAI,WAAW,KAAK,MAAM,MAAM,KAAK,YAAY,UAAU,IAAI,KAAK,MAAM,SAAS,KAAK,YAAY,KAAK,GAAK,EAAI,CAAC,SAAS,KAAK,WAAW,aAAW,KAAK,cAAc,WAAW,CAAE,KAAK,MAAM,CAAE,QAAQ,IAAI,KAAK,EAAK,KAAK,GAAG,KAAK,KAAK,QAAQ,MAAM,GAAE,KAAK,UAAU,IAAI,KAAK,GAAK,CAAE,MAAM,CAAC,OAAQ,GAAG,KAAK,YAAY,KAAK,MAAM,MAAM,OAAO,CAAC,KAAK,KAAK,KAAK,GAAG,IAAI,KAAK,MAAM,KAAK,UAAW,CAAC,IAAI,SAAS,KAAK,MAAM,SAAS,KAAK,YAAY,MAAM,KAAK,MAAM,MAAM,KAAK,YAAkM,GAAxI,KAAK,KAA1C,SAAS,MAAM,KAAK,KAAK,YAA2B,KAAK,GAAG,SAAS,MAAM,GAAG,KAAK,YAAY,KAAK,MAAM,MAAM,MAAM,KAAK,YAAY,KAAK,cAAc,KAAK,WAAW,EAAE,CAAI,KAAK,SAAS,GAAG,KAAK,MAAM,OAAO,KAAK,GAAG,KAAK,MAAM,KAAK,SAAS,OAAS,cAAc,MAAM,CAAC,GAAG,OAAO,KAAK,MAAM,MAAM,KAAK,YAAY,MAAM,OAAO,CAAmB,GAAlB,KAAK,aAAgB,KAAK,KAAM,KAAM,KAAK,WAAW,KAAK,MAAM,MAAM,QAAQ,KAAK,KAAK,IAAI,KAAK,MAAM,MAAM,KAAK,YAAY,EAAC,KAAK,aAAc,KAAK,WAAW,OAAQ,KAAK,WAAW,MAAQ,WAAW,CAAC,KAAK,aAAa,KAAK,WAAW,EAAE,KAAK,MAAM,CAAE,QAAQ,MAAM,CAAC,OAAO,KAAK,KAAK,MAAM,MAAM,KAAK,UAAU,MAAM,WAAW,KAAK,KAAK,MAAM,MAAM,KAAK,GAAG,MAAM,IAAI,KAAK,QAAQ,MAAM,QAAS,YAAY,MAAM,KAAK,SAAS,KAAK,EAAE,CAAC,KAAK,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,SAAS,SAAS,KAAK,KAAK,OAAY,WAAW,KAAK,CAAC,OAAO,KAAK,KAAK,KAAK,KAAK,SAAS,GAAG,CAAC,IAAI,KAAK,EAAE,CAAC,IAAI,IAAIuD,IAAE,EAAEA,IAAE,KAAK,OAAO,MAAK,IAAI,IAAI,IAAI,KAAKA,KAAG,CAAC,IAAI,QAAQ,IAAI,IAAI,UAAc,IAAI,UAAU,UAAS,KAAK,KAAK,IAAI,YAAY,IAAI,KAAK,SAASA,IAAE,CAAC,CAAG,OAAO,KAAK,QAAQ,EAAE,KAAK,GAAG,IAAI,WAAW,KAAK,CAAE,IAAI,WAAW,CAAC,OAAO,KAAK,MAAM,KAAK,MAAM,UAAU,EAAG,KAAK,IAAI,KAAK,KAAK,CAAC,IAAI,IAAI,OAAO,KAAK,KAAK,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,IAAIA,IAAE,KAAK,KAAK,QAAQ,EAAEA,KAAG,EAAE,MAAI,WAAW,KAAK,KAAKA,IAAE,CAAa,OAAZ,KAAK,MAAM,CAAQ,KAAM,QAAQ,IAAI,KAAK,CAAC,IAAI,IAAI,OAAO,KAAK,KAAK,IAAI,QAAQ,IAAI,KAAK,CAAC,IAAI,IAAIA,IAAE,KAAK,KAAK,QAAQ,EAAEA,KAAG,EAAE,MAAI,WAAW,KAAK,KAAKA,IAAE,EAAK,KAAK,GAAG,KAAK,KAAK,MAAM,QAAQ,MAAM,GAAE,KAAK,MAAM,CAAE,MAAM,CAAC,GAAG,KAAK,KAAK,QAAQ,EAAG,KAAK,KAAK,KAAK,GAAG,IAAI,KAAK,MAAM,KAAK,KAAK,KAAK,OAAQ,CAAC,IAAIK,MAAI,KAAK,KAAK,GAAG,KAAK,KAAKA,MAAI,KAAK,KAAK,GAAGA,MAAI,GAAG,KAAK,MAAMA,MAAI,MAAM,KAAK,KAAKA,MAAI,KAAQA,MAAI,OAAM,MAAI,MAAM,CAAC,WAAW,KAAK,KAAK,EAAE,EAAG,YAAY,KAAK,CAAC,KAAK,KAAK,OAAiW,WAAW,KAAK,CAAC,KAAK,IAAI,KAAK,KAAK,CAA2K,OAA1K,KAAK,OAAO,KAAK,IAAI,KAAK,CAAC,KAAK,OAAO,OAAO,KAAK,SAAS,OAAO,KAAK,WAAW,OAAO,EAAE,KAAK,UAAU,GAAG,KAAK,GAAG,IAAI,KAAK,QAAQ,KAAK,KAAK,UAAU,GAAG,KAAK,MAAM,CAAQ,KAAM,QAAQ,IAAI,KAAK,CAAC,KAAM,KAAK,UAAU,KAAK,KAAK,SAAS,KAAK,WAAW,KAAK,KAAK,OAAO,KAAK,WAAW,QAAQ,MAAM,GAAE,KAAK,aAAa,KAAK,UAAU,CAAC,KAAK,OAAO,QAAQ,IAAI,KAAK,CAAE,aAAa,MAAM,CAAC,OAAO,KAAK,OAAO,MAAM,CAAC,OAAO,KAAK,SAAS,MAAM,CAAC,OAAO,KAAK,WAAW,MAAM,CAAC,KAAK,UAAU,aAAa,KAAK,OAAO,KAAK,SAAS,CAAE,UAAU,UAAU,CAAC,IAAIL,IAAE,EAAE,CAAC,MAAM,GAAG,MAAM,KAAK,OAAO,KAAMA,IAAE,KAAK,WAAW,QAAQ,KAAK,WAAWA,MAAI,MAAK,MAAI,OAAO,KAAK,OAAOA,IAAE,MAAM,CAAC,OAAO,KAAK,SAASA,IAAE,GAAG,CAAC,OAAO,KAAK,WAAWA,IAAE,KAAK,CAAI,WAAU,OAAO,UAAUA,IAAE,KAAK,OAAO,KAAK,CAAC,KAAK,UAAU,aAAa,KAAK,OAAO,KAAK,SAAS,CAEpsJ,MAAM,CAAC,IAAI,KAAK,KAAK,GAAG,SAAS,KAAK,MAAM,KAAK,MAAM,KAAK,IAAI,UAAU,KAAK,UAAU,EAAE,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,EAAE,KAAK,UAAU,GAAG,EAAE,KAAK,KAAK,SAAS,GAAG,KAAK,OAAO,MAAM,KAAK,OAAO,GAAG,QAAQ,KAAK,OAAO,WAAW,EAAE,CAAC,GAAG,KAAK,SAAS,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,SAAS,GAAG,KAAK,QAAQ,KAAK,OAAO,GAAG,QAAQ,MAAO,KAAK,aAAa,EAAE,CAAI,WAAU,OAAO,UAAU,EAAE,SAAW,KAAK,OAAO,SAA+C,KAAK,OAAO,KAAK,KAAK,CAAC,KAAK,GAAG,KAAK,OAAO,KAAK,KAAK,QAAQ,KAAK,OAAO,UAAU,UAAW,CAAC,IAAI,QAAQ,KAAK,OAAO,MAAM,GAAG,CAAC,QAAQ,MAAO,KAAK,UAAU,UAAU,CAAC,KAAK,OAAO,MAAM,SAAU,UAAU,KAAK,OAAO,IAAI,KAAK,IAAI,KAAK,OAAO,KAAK,KAAK,OAAO,GAAI,KAAK,OAAO,MAAM,KAAM,CAAC,KAAK,MAAM,QAAQ,KAAK,UAAU,KAAK,OAAO,KAAK,KAAK,UAAU,KAAK,OAAO,KAAK,KAAK,GAAG,KAAK,OAAO,GAAG,KAAK,QAAQ,QAAQ,QAAQ,KAAK,OAAO,MAAM,CAAC,KAAK,QAAQ,KAAK,GAAG,KAAK,QAAQ,CAAC,WAAzgB,CAAC,KAAK,GAAG,KAAK,QAAQ,IAAI,OAAwf,GAAG,UAAU,CAAC,KAAK,UAAU,EAAE,IAAI,IAAIA,IAAE,UAAU,OAAO,EAAEA,KAAG,GAAG,UAAUA,KAAG,KAAK,MAAI,KAAK,aAAc,eAAe,GAAG,CAAC,GAAG,CAAC,KAAK,OAAO,OAAO,OAAO,KAAK,OAAO,IAAI,OAAO,EAAE,CAAC,IAAI,IAAIA,IAAE,KAAK,OAAO,OAAO,EAAEA,KAAG,GAAU,OAAK,WAAWA,KAAG,KAAK,WAAhC,OAAmD,KAAK,SAASA,KAAG,IAAI,KAAK,SAASA,MAAI,IAAI,KAAK,OAAOA,KAAG,SAAS,KAAK,MAAM,UAAQ,OAAO,KAAK,KAAK,OAAOA,KAAG,CAAE,OAAO,OAAO,SAAS,CAAE,QAAQ,GAAG,CAAC,IAAI,KAAK,EAAE,IAAI,IAAIA,IAAE,KAAK,SAAS,OAAO,EAAEA,KAAG,GAAG,KAAK,SAASA,KAAG,GAAG,MAAI,OAAO,OAAO,KAAM,YAAY,KAAK,KAAK,SAAS,CAAC,KAAK,SAAS,SAAS,KAAK,OAAO,EAAE,CAAC,KAAK,SAAS,EAAE,CAAC,KAAK,WAAW,EAAE,CAAC,KAAK,UAAU,GAAG,KAAK,MAAM,KAAK,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,KAAK,GAAG,KAAK,KAAK,QAAQ,EAAE,KAAK,UAAU,GAAG,KAAK,OAAO,WAAW,KAAK,KAAK,KAAK,SAAS,MC7dzf,SAAS,QAAQ,MAAM,CAAgK,IAAIW,OAAK,EAA1J,KAAK,MAAM,SAAS,MAAM,UAAU,CAAC,MAAM,SAAS,CAAC,MAAM,QAAQ,IAAI,MAAM,UAAU,MAAM,KAAK,MAAM,IAAI,QAAQ,GAAG,MAAM,KAAK,iBAAoC,MAAM,MAAM,MAAM,SAAS,MAAM,MAAM,MAAM,UAAU,MAAM,KAAK,eAA2M,OAAzLA,QAAM,QAAM,OAAK,UAAYA,QAAM,QAAM,OAAK,UAAYA,QAAM,SAAO,OAAK,aAAeA,QAAM,OAAK,OAAK,WAAaA,QAAM,UAAQ,OAAK,cAAgBA,QAAM,SAAO,OAAK,aAAmBA,OACrpD,SAAS,aAAa,KAAK,CAAC,IAAI,OAAiG,MAA1F,CAA6E,OAA1E,KAAK,UAAU,GAAW,KAAK,aAAa,KAAK,KAAK,cAA2B,KAAa,OAAO,cAAc,CAAE,SAAS,SAAS,IAAI,KAAK,CAAC,OAAO,KAAK,KAAK,MAAM,IAAI,SAAS,KAAK,UAAU,EAAkB,KAAhB,KAAK,WAAgB,CAAC,GAAO,SAAS,kBAAkB,KAAK,CAAC,IAAI,IAAI,KAAK,cAAc,KAAM,KAAK,IAAI,YAAW,IAAI,IAAI,WAAW,cAAc,OAAO,IAAK,SAAS,aAAa,IAAI,UAAU,CAAC,GAAG,CAAC,UAAU,WAAW,MAAO,GAAM,GAAG,CAAC,OAAO,SAAS,IAAI,UAAU,WAAW,MAAU,CAAC,MAAO,IAAQ,SAAS,eAAe,IAAI,CAA2I,OAAvI,IAAI,UAAU,EAAS,UAAU,IAAI,EAAE,IAAI,UAAU,OAAO,CAAC,gBAAgB,CAAS,IAAI,UAAU,EAAS,IAAI,gBAAgB,CAAY,EAAE,CAAE,SAAS,qBAAqB,KAAK,IAAI,WAAW,UAAU,CAAC,OAAO,WAAW,QAAQ,KAAK,IAAI,WAAW,UAAU,GAAG,EAAE,QAAQ,KAAK,IAAI,WAAW,UAAU,EAAE,CAAC,GAAO,SAAS,SAAS,KAAK,CAAC,IAAI,IAAI,MAAM,GAAG,QAAmC,GAA1B,KAAK,KAAK,gBAAmB,CAAC,KAAK,OAAO,MAAQ,SAAS,QAAQ,KAAK,IAAI,WAAW,UAAU,IAAI,CAAC,OAAO,CAAC,GAAG,MAAM,YAAY,KAAK,UAAU,MAAO,GAAK,GAAG,MAAM,IAAI,EAAE,EAAE,UAAU,KAAK,EAAE,CAAC,GAAG,KAAK,UAAU,MAAM,MAAO,GAAM,IAAI,OAAO,KAAK,WAAW,GAAG,CAAC,QAAQ,OAAO,UAAU,EAAE,MAAO,GAAM,IAAI,SAAS,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,KAAK,eAAgB,KAAK,UAAU,EAAE,CAAwC,GAAvC,KAAK,KAAK,WAAW,KAAK,IAAI,EAAE,GAAG,IAAO,KAAK,UAAU,GAAG,KAAK,iBAAiB,QAAQ,MAAO,GAAM,IAAI,IAAI,EAAE,UAAU,KAAK,CAAC,OAAQ,MAAO,IAAS,SAAS,UAAU,KAAK,CAAC,OAAO,KAAK,UAAU,EAAE,KAAK,UAAU,OAAO,KAAK,WAAW,OAAQ,SAAS,YAAY,KAAK,KAAK,CAAC,IAAIH,IAAE,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,CAAC,KAAKA,IAAE,MAAMA,IAAE,IAAI,KAAK,IAAI,OAAO,KAAK,OAAO,CAAE,SAAS,WAAW,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,IAAI,WAAW,IAAI,EAAE,OAAO,IAAI,YAAY,CAAE,SAAS,mBAAmB,IAAI,KAAK,KAAK,IAAE,EAAE,QAAQ,QAAQ,IAAI,CAAC,IAAI,KAAK,IAAI,cAAc,IAAI,KAAK,aAAa,OAAO,IAAI,IAAI,IAAI,IAAI,KAAM,GAAG,IAAI,UAAU,EAAE,CAAC,IAAI,SAAS,KAAK,KAAK,KAAK,KAAK,GAAG,KAAM,SAAS,WAAW,IAAI,KAAM,CAAC,GAAG,IAAI,cAAc,IAAI,cAAc,IAAI,aAAa,IAAI,YAAY,CAAC,IAAI,IAAI,cAAc,IAAI,WAAW,SAAU,IAAI,MAAM,IAAI,uBAAuB,CAAC,SAAS,CAAC,KAAK,MAAM,KAAK,MAAM,MAAM,KAAK,IAAI,YAAY,IAAI,MAAM,IAAI,OAAO,MAAM,IAAI,IAAI,aAAa,CAAE,IAAI,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,UAAc,KAAK,IAAI,SAAS,KAAK,MAAM,EAAE,SAAS,IAAI,KAAK,IAAI,SAAY,KAAK,GAAG,KAAK,OAAO,SAAS,OAAO,QAAM,MAAM,KAAK,OAAO,SAAS,OAAO,MAAM,UAAiB,KAAK,OAAO,SAAS,SAAQ,MAAM,KAAK,OAAO,SAAS,OAAO,QAAW,KAAK,GAAG,KAAK,IAAI,MAAM,SAAS,MAAI,MAAM,EAAE,SAAS,IAAI,MAAM,KAAK,IAAI,eAAe,CAAC,IAAI,WAAW,KAAK,OAAO,KAAK,IAAI,eAAe,SAAS,OAAO,SAAS,IAAqL,OAAnK,GAAG,UAAU,YAAY,eAAe,KAAK,IAAI,WAAW,EAAE,eAAe,EAAE,GAAG,SAAS,GAAG,UAAU,KAAK,EAAE,KAAK,IAAI,QAAQ,KAAK,OAAO,eAAe,SAAwB,SAAS,IAAkjB,GAA1iBA,KAAG,UAAc,KAAK,KAAK,SAAS,MAAM,MAAM,EAAE,SAAS,KAAK,KAAK,KAAK,SAAY,KAAK,GAAG,KAAK,MAAM,SAAS,MAAM,QAAM,MAAM,KAAK,MAAM,SAAS,MAAM,MAAM,UAAiB,KAAK,MAAM,SAAS,QAAO,MAAM,KAAK,MAAM,SAAS,MAAM,QAAW,KAAK,GAAG,KAAK,KAAK,SAAS,KAAK,QAAM,MAAM,EAAE,SAAS,KAAK,MAAM,KAAK,KAAK,WAAmM,OAApKA,KAAG,SAAS,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,GAAG,SAAS,MAAM,SAAS,MAAM,EAAEA,KAAG,SAAS,IAAI,KAAK,KAAK,QAAQ,KAAK,OAAO,SAAS,MAAM,SAAS,MAAM,SAAyB,SAAS,KAAS,OAAO,MAAO,GAAG,KAAM,IAAI,SAAS,MAAM,MAAM,KAAM,CAAC,IAAI,OAAO,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,IAAI,MAAM,IAAI,UAAU,IAAI,WAAW,MAAM,OAAO,IAAI,UAAU,MAAO,GAAG,MAAM,CAAC,IAAI,OAAO,IAAI,WAAW,IAAI,YAAY,MAAM,OAAO,IAAI,WAAW,OAAQ,KAAK,CAAC,KAAK,KAAK,KAAK,OAAO,IAAI,KAAK,IAAI,OAAO,MAAM,KAAK,MAAM,OAAO,OAAO,KAAK,OAAO,OAAO,CAAI,QAAQ,KAAK,IAAI,OAAO,MAAM,CAAC,IAAE,IAAE,WAAa,QAAQ,KAAK,IAAI,OAAO,MAAM,CAAC,IAAE,EAAE,WAAY,GAAG,KAAK,MAAM,IAAI,IAAI,cAAc,IAAI,mBAAoB,IAAI,UAAU,GAAI,IAAI,IAAI,UAAW,MAAS,SAAS,iBAAiB,IAAI,CAAC,IAAI,KAAK,IAAI,cAAc,IAAI,IAAI,IAAI,IAAI,WAAW,KAAS,KAAK,KAAK,SAAqB,IAAI,UAAU,EAAE,CAAC,GAAG,IAAI,aAAa,IAAI,cAAc,IAAI,YAAY,IAAI,YAAY,OAAO,IAAI,IAAI,IAAI,cAAc,IAAI,mBAAoB,IAAI,UAAU,GAAI,IAAI,IAAI,UAAW,MAAQ,OAAO,KAA0rB,SAAS,mBAAmB,IAAI,CAAC,GAAG,IAAI,UAAU,OAAO,IAAI,WAAW,CAAC,GAAG,uBAAuB,OAAO,IAAI,MAAM,uBAAuB,CAAC,IAAI,MAAM,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,MAAwB,MAAM,KAAK,IAAI,IAAI,UAAU,IAAI,WAAW,CAAI,KAAK,IAAI,eAA7E,IAAI,IAAI,YAAyN,GAA/H,IAAI,MAAM,wBAAwB,KAAK,CAAC,IAAI,eAAe,CAA6C,MAA5C,wBAAuB,CAAC,cAAc,GAAK,CAAQ,IAAO,CAAC,IAAK,GAAE,CAAI,CAAC,uBAAuB,CAAC,uBAAuB,GAAM,IAAI,IAAIR,IAAE,EAAEA,IAAE,MAAM,QAAQ,CAAC,IAAI,IAAI,MAAM,OAAK,KAAK,MAAM,OAAK,KAAK,MAAM,OAAQ,IAAI,WAAW,OAAK,IAAI,UAAU,MAAQ,IAAI,YAAY,OAAK,IAAI,WAAW,QAAyB,SAAS,UAAU,KAAK,KAAK,GAAG,KAAK,CAAC,IAAI,MAAM,AAAe,eAAa,SAAS,aAAa,CAAkD,OAAhD,MAAM,OAAO,KAAK,GAAG,CAAC,MAAM,SAAS,KAAK,KAAK,CAAQ,MAAO,SAAS,YAAY,IAAI,OAAK,OAAK,CAAC,IAAI,QAAQ,CAAC,IAAIW,OAAK,KAAKA,OAAK,QAAQ9D,OAAK,MAAMA,OAAK,WAAW,GAAK,CAAK,KAAK,IAAI,cAAc,UAAU,QAAQ,CAAC,KAAK,UAAU,GAAK,IAAI,cAAc,KAAK,CAAC,IAAI,GAAG,IAAI,cAAc,QAAQ,QAAQ,CAAyC,MAAxC,IAAG,UAAU,GAAK,IAAI,cAAc,GAAG,CAAQ,KAAK,kBAAkB,GAAG,iBAAkB,SAAS,QAAQ,KAAK,CAAC,KAAM,MAAK,CAAC,GAAG,OAAO,KAAK,UAAU,GAAG,KAAK,UAAU,IAAI,KAAK,MAAM,OAAO,KAAK,KAAK,KAAK,cAAc,KAAK,WAAY,OAAO,KAAM,SAAS,gBAAgB,KAAK,CAAC,KAAM,KAAK,WAAW,QAAO,KAAK,oBAAoB,KAAK,WAAW,GAAG,CAAE,SAAS,eAAe,KAAK,UAAU,CAAC,IAAI,KAAK,UAAU,UAAU,OAAO,UAAU,YAAY,GAAG,CAAC,MAAM,UAAU,YAAY,MAAM,UAAU,cAAc,OAAO,MAAO,GAA8C,IAAxC,OAAO,KAAK,IAAI,OAAO,UAAU,KAAK,CAAC,GAAS,GAAG,OAAO,CAAC,GAAG,KAAK,UAAU,EAAE,MAAO,GAAM,IAAI,KAAK,KAAK,WAAW,OAAO,GAAM,KAAK,iBAAiB,QAAQ,UAAc,KAAK,KAAK,OAAO,UAAU,KAAK,UAAW,MAAM,KAAM,MAAO,QAAW,OAAO,SAAS,KAAK,CAAC,KAAK,KAAK,WAGxnN,SAAS,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,YAA4C,OAAhC,IAAI,WAAW,YAAY,IAAI,CAAQ,KAAoV,SAAS,aAAa,OAAO,MAAM,QAAQ,IAAI,MAAM,SAAO,aAAa,UAAU,QAAQ,CAAC,GAAG,CAAC,UAAU,OAAW,OAAO,SAAS,OAAO,SAAS,OAAO,KAAS,KAAK0D,SAAO,OAAOA,SAAOA,SAAO,OAAO,GAAG,KAAS,WAAW,KAAK,KAAK,WAAW,aAAgB,YAAO,KAAK,QAAQ,CAAC,cAAc,CAAC,YAAYA,SAAO,OAAO,GAAG,OAAO,MAAM,QAAQ,MAAMA,SAAO,OAAO,KAAK,KAAK,SAAS,EAAE,UAAU,QAAQ,EAAQ,IAAG,IAAI,SAAS,OAAO,CAAC,IAAI,MAAM,SAAS,KAAQ,OAAO,MAAM,MAAM,QAAW,OAAO,MAAK,MAAM,MAAM,MAAM,MAAM,CAAC,MAAM,GAAM,CAAC,YAAY,MAAM,MAAM,MAAM,EAAE,MAAM,KAAK,GAAK,EAAE,QAAQ,CAAE,SAAOA,SAAO,OAAO,GAAG,OAAe,OAAM,MAAM,MAAM,EAAE,MAAM,KAAK,GAAM,EAAE,QAAQ,CAAC,SAAO,KAAK,MAAM,GAAW,OAA0C,aAAe,KAAK,KAAK,WAAW,EAAO,aAAa,GAAG,MAAgY,IAAtX,SAAQ,OAAO,WAAW,aAAgB,QAAQ,IAAM,CAAC,cAAcA,SAAO,QAAQ,OAAO,MAAM,QAAQ,OAAO,OAAOA,SAAO,GAAG,GAAM,UAAU,EAAE,CAAE,OAAO,WAAWA,SAAO,OAAO,CAAC,YAAoB,QAAQ,OAAO,QAAQ,OAAO,SAAS,QAAQ,OAAO,SAAS,OAAO,SAAS,OAAO,GAAG,QAAQ,IAAG,OAAO,MAAM,QAAQ,OAAO,OAAO,KAAK,GAAM,UAAU,EAAE,CAAE,UAAgB,MAAM,KAAKA,SAAO,QAAQ,GAAG,SAAS,IAAI,GAAG,OAAOA,SAAOA,SAAO,OAAO,GAAG,CAAE,MAAM,SAAO,KAAK,CAAC,QAAQA,SAAO,OAAO,EAAE,kBAAmB,SAAS,OAAO,OAAOA,SAAO,GAAG,CAAE,QAAQ,SAAO,OAAO,CAAC,UAAUA,SAAO,OAAO,EAAE,aAAc,MAAW,CAACA,SAAO,QAAQ,OAAO,IAAI,SAAS,QAAQ,CAAC,SAAS,MAAM,GAAG,YAAY,SAAS,KAAK,MAAM,EAAE,EAAE,SAAS,MAAM,GAAG,GAAM,UAAU,QAAQ,EAAC,SAAW,MAAM,KAAKA,SAAO,SAAO,OAAO,gBAAgB,MAAM,IAAIA,SAAO,EAAE,SAAS,kBAAkB,OAAO,KAAK,GAAG,SAAO,UAAU,QAAQ,CAAC,IAAI,IAAI,OAAO,aAAa,CAAI,CAAC,EAAE,IAAI,IAAI,OAAO,IAAI,QAAQ,GAAG,EAAE,CAAI,CAAC,EAAE,MAAM,IAAI,SAAS,IAAI,QAAQ,KAAK,GAAG,CAAK,KAAK,KAAK,GAAG,IAAI,IAAI,QAAQA,SAAO,MAAM,KAAK,OAAO,OAAO,QAAQ,KAAK,aAAa,OAAO,MAAM,QAAQ,IAAI,MAAMA,SAAO,EAAE,UAAU,QAAQ,CAAw2H,SAAS,WAAW,KAAK,IAAI,KAAK,CAAC,IAAI,OAAO,KAAK,UAAU,OAAU,IAAI,SAAO,IAAI,QAAO,IAAI,KAAK,IAAI,GAAG,IAAIxD,UAAQ,EAAK,KAAK,GAAG,KAAK,GAAG,KAAK,QAAQ,MAAM,EAAQ,QAAQ,QAAQ,QAAQ,QAAW,KAAK,OAAO,UAAQ,GAAW,GAAG,SAAQ,KAAK,UAAQ,KAAc,KAAK,EAAE,OAAe,GAAG,QAAO,KAAM,IAAI,MAAM,UAAU,KAAK,KAAK,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,OAAO,OAAO,KAAK,IAAI,KAAK,OAAOA,UAAQA,UAAQ,EAAE,MAAM,GAAG,EAAE,MAAM,OAAO,GAAqG,OAA/F,QAAQ,QAAQ,CAACA,WAAS,KAAK,OAAO,IAAE,KAAK,MAAM,UAAU,KAAK,KAAK,MAAM,GAAG,EAAE,MAAM,EAAE,MAAYA,UAAQ,YAAY,KAAKA,UAAQ,EAAE,CAAC,MAAM,KAA6sG,SAAS,oBAAoB,IAAI,KAAK,KAAK,KAAK,KAAK,UAAU,SAAS,CAAC,GAAG,gBAAgB,SAAS,CAAC,IAAI,IAAI,MAAM,KAAK,IAAI,WAAW,MAAM,MAAM,MAAM,YAAY,CAAC,IAAI,KAAK,YAAY,IAAI,MAAM,CAAC,GAAI,KAAmH,CAAC,IAAI,QAAQ,SAAS,MAAM,KAAK,CAAK,IAAI,KAAK,QAAQ,QAAQ,KAAK,GAAG,GAAG,IAAI,KAAK,KAAK,KAAK,KAAK,SAAS,EAAE,EAAE,OAAO,QAAQ,oBAAoB,IAAI,KAAK,KAAK,KAAK,KAAK,UAAU,SAAS,CAAC,UAAU,KAAK,IAAI,KAAK,CAAC,KAAK,QAA1U,CAAC,IAAI,MAAM,oBAAoB,IAAI,KAAK,MAAM,SAAS,CAAC,GAAG,OAAO,OAAO,SAAS,OAAO,MAAM,IAAI,OAA6O,OAAO,UAAU,KAAK,KAAK,OAAO,GAAG,SAAU,KAAK,KAAK,KAAM,OAAO,SAAS,KAAK,IAAI,KAAK,MAAO,OAAO,UAAU,KAAK,IAAI,KAAK,CAAG,SAAS,oBAAoB,IAAI,KAAK,KAAK,SAAS,CAAC,GAAG,KAAK,UAAU,EAAE,CAAC,IAAI,IAAI,KAAK,UAAU,OAAO,GAAG,KAAK,IAAI,OAAO,SAAS,KAAK,IAAI,KAAK,CAAC,KAAK,YAAa,KAAK,UAAU,GAAG,KAAK,iBAAiB,QAAS,IAAI,IAAI,MAAM,KAAK,WAAW,MAAM,MAAM,MAAM,YAAY,CAAC,IAAI,MAAM,oBAAoB,IAAI,KAAK,MAAM,SAAS,CAAC,GAAG,OAAO,OAAO,SAAS,OAAO,MAAM,IAAI,MAAQ,OAAO,IAAK,SAAS,4BAA4B,KAAK,OAAO,KAAK,KAAK,KAAK,CAAC,GAAG,gBAAgB,SAAS,CAAC,IAAI,IAAI,EAAE,IAAI,IAAI,MAAM,KAAK,IAAI,WAAW,MAAM,MAAM,MAAM,YAAY,CAAC,IAAI,UAAU,YAAY,IAAI,MAAM,CAAC,GAAG,UAAU,CAAC,IAAI,QAAQ,SAAS,MAAM,KAAK,CAAC,GAAG,SAAS,MAAM,KAAK,CAAC,OAAO,KAAK,QAAQ,4BAA4B,KAAK,OAAO,UAAU,KAAK,KAAK,CAAC,UAAU,gBAAgB,KAAK,OAAO,EAAE,KAAK,UAAU,QAAQ,QAAQ,KAAK,OAAQ,CAAC,IAAI,MAAM,uBAAuB,KAAK,OAAO,MAAM,CAAC,GAAG,MAAM,QAAQ,KAAK,OAAO,IAAI,MAAM,OAAO,KAAK,MAAM,eAAgB,KAAK,KAAK,KAAM,OAAO,KAAK,IAAI,OAAO,KAAK,UAAU,OAAO,CAAE,OAAO,KAAK,gBAAgB,KAAK,OAAO,CAAE,SAAS,uBAAuB,KAAK,OAAO,OAAO,CAAC,GAAG,OAAO,UAAU,EAAG,OAAO,MAAM,OAAO,CAAC,OAAO,OAAO,CAAC,CAAC,KAAK,OAAO,UAAU,OAAO,IAAU,OAAO,UAAU,GAAG,OAAO,iBAAiB,QAAQ,CAAC,IAAI,IAAI,EAAE,IAAI,IAAI,MAAM,OAAO,WAAWiD,IAAE,GAAG,MAAM,MAAM,YAAY,MAAI,CAAC,GAAG,MAAM,QAAQA,KAAG,OAAO,MAAM,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,MAAM,CAAC,KAAK,IAAI,CAAC,IAAI,MAAM,uBAAuB,KAAK,OAAO,MAAM,CAAC,GAAG,MAAM,QAAQ,KAAK,MAAM,CAAC,OAAO,OAAO,MAAM,OAAO,CAAC,KAAK,MAAM,WAAY,OAAO,OAAO,SAAS,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,CAA4yB,SAAS,eAAe,OAAO,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,CAAC,UAAU,OAAOA,IAAE,EAAE,IAAI,IAAI,IAAI,EAAEA,IAAE,SAAS,OAAO,MAAI,CAAC,IAAI,MAAM,SAASA,KAAG,IAAI,IAAI,MAAM,OAAU,UAAK,KAAK,MAAM,SAAS,EAAE,GAAW,IAAG,IAAI,KAAK,IAAI,KAAK,MAAM,IAAI,YAAY,IAAI,OAAO,MAAM,SAAS,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,MAAM,IAAI,KAAK,IAAI,IAAI,EAAEA,IAAE,EAAE,EAAE,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,GAAG,GAAG,KAAK,IAAI,YAAY,IAAI,OAAO,KAAK,SAAS,KAAK,OAAO,CAAE,IAAI,IAAI,GAAGA,IAAE,GAAG,SAAS,OAAO,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,YAAY,IAAI,OAAO,KAAK,SAAS,EAAE,CAAE,OAAO,IAAI,OAAO,IAAI,EAAE,CAAE,SAAS,eAAe,OAAO,KAAK,KAAK,CAAC,IAAI,KAAK,CAAC,UAAU,OAAU,KAAK,GAAG,gBAAgB,UAAU,SAAS,SAAS,KAAK,SAAS,SAAS,OAAO,cAAc,UAAU,KAAK,KAAK,GAAG,KAAK,KAAK,CAAE,eAAe,KAAK,KAAK,SAAS,GAAG,KAAK,EAAE,EAAO,SAAS,KAAK,KAAK,CAAC,KAAK,UAAU,OAAO,EAAE,OAAO,QAAQ,KAAK,OAAQ,SAAS,iBAAiB,KAAK,IAAI,KAAK,CAAC,IAAI,OAAO,KAAK,UAAU,GAAG,MAAM,KAAK,SAAS,GAAG,SAAS,KAAK,MAAM,KAAK,CAAC,IAAI,IAAIA,IAAE,EAAE,IAAI,EAAEA,IAAE,MAAM,SAAS,QAAQ,KAAK,KAAK,MAAI,CAAC,IAAI,MAAM,MAAM,SAASA,KAAG,IAAI,IAAI,MAAM,OAAU,KAAK,OAAS,MAAM,SAAS,OAAQ,KAAK,MAAM,KAAK,IAAI,EAAW,CAAC,OAAO,MAAM,UAAU,KAAK,KAAK,IAAI,MAAM,KAAK,KAAK,MAAM,SAAS,CAAC,IAAI,MAAM,MAAM,SAAS,KAAK,MAAa,IAAI,MAAM,KAAK,KAAK,MAAM,SAAS,CAAC,GAAG,CAAC,MAAM,YAAU,OAAO,MAAM,UAAU,KAAK,MAAM,IAAI,KAAM,KAAK,KAAK,IAAI,CAAC,IAAI,QAAQ,KAAK,EAAE,OAAO,QAAQ,QAAQ,MAA2F,OAAlF,OAAc,OAAO,SAAS,KAAK,IAAI,EAAE,QAAQ,OAAO,UAAU,SAAS,CAAC,KAAK,CAAQ,aAAa,KAAK,CAAE,SAAS,aAAa,KAAK,CAAC,IAAI,KAAK,KAAK,IAAI,UAAU,GAAG,CAAC,KAAK,OAAO,KAAK,IAAI,uBAAuB,CAAC,IAAI,MAAM,eAAe,KAAK,CAAC,OAAO,MAAM,MAAM,OAAO,IAAI,KAAM,SAAS,aAAa,OAAO,OAAO,CAAC,IAAI,IAAIW,UAAQ,OAAWA,QAAM,SAAS,OAAO,MAAM,OAAO,OAAO,IAAI,OAAO,MAAcA,QAAM,SAAS,OAAO,MAAM,OAAO,OAAO,IAAI,OAAO,MAAW,OAAOA,QAAM,OAAOA,QAAO,OAAO,OAAQ,SAAS,QAAQ,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,MAAO,GAAK,GAAG,CAAC,GAAG,CAAC,EAAE,MAAO,GAAM,IAAI,MAAM,OAAO,KAAK,EAAE,CAAC,MAAM,OAAO,KAAK,EAAE,CAAC,GAAG,MAAM,QAAQ,MAAM,OAAO,MAAO,GAAM,IAAI,IAAI,OAAO,MAAO,GAAG,MAAM,QAAQ,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,MAAO,GAAO,MAAO,GAAM,SAAS,YAAY,IAAI,KAAK,MAAM,CAAC,IAAI,QAAQ,KAAK,GAAG,SAAU,IAAIA,UAAQ,KAAU,OAAOA,UAAQ,OAAO,IAAI,gBAAgB,QAAQA,OAAK,CAAE,GAAG,UAAW,IAAI,SAAS,MAAW,MAAM,KAAK,QAAQ,MAAM,QAAQ,IAAI,aAAa,QAAQ,MAAM,MAAM,OAAO,CAAE,MAAM,CAAC,CAAC,QAqEppd,SAAS,aAAa,KAAK,MAAM,GAAM,CAAC,GAAG,CAAC,eAAe,MAAM,aAAa,KAAK,KAAyE,MAApE,CAAe,QAAM,KAAK,UAAU,AAAa,MAAI,KAAK,UAAgB,CAAC,MAAM,OAAmC,MAAM,IAAI,KAA6B,MAAM,CAAE,SAAS,UAAU,EAAE,EAAE,CAAC,OAAO,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,EAAE,QAAQ,EAAE,EAAG,SAAS,SAAS,KAAK,GAAG,OAAO,OAAO,EAAE,CAAC,IAAI,KAAK,OAAO,OAAO,EAAK,MAAM,GAAG,OAAO,MAAM,QAAQ,KAAK,OAAO,MAAM,KAAK,IAAI,OAAO,MAAM,GAAG,CAAM,OAAO,KAAK,KAAK,GAAG,CAE49M,SAAS,UAAU,KAAK,OAAO,CAAC,IAAI,IAAI,QAAQ,OAAO,KAAK,IAAI,SAAS,KAAK,CAAC,KAAK,CAAC,KAAK,OAAO,CAAC,OAAO,KAA8pC,SAAS,aAAa,MAAM,UAAU,QAAQ,CAAC,IAAI,QAAQ,MAAM,MAAM,cAAc,CAAI,QAAQ,OAAO,QAAQ,GAAG,UAAU,CAAS,OAAO,QAAQ,OAAO,QAAQ,OAAO,UAAU,CAAC,QAAQ,IAAK,GAAE,IAAK,GAAE,UAAU,CAAS,QAAQ,QAAQ,MAAM,QAAQ,IAAI,UAAU,CAAM,QAAQ,MAAM,UAAU,CAMvtQ,SAAS,iBAAiB,KAAK,CAAC,IAAI,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,IAAI,UAAU,KAAK,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,EAAE,OAAO,KAAK,CAAI,IAAM,EAAE,MAAM,OAAK,KAAK,KAAK,IAAI,KAAK,EAAE,KAAK,EAAI,EAAE,OAAO,OAAK,MAAM,KAAK,IAAI,MAAM,EAAE,MAAM,EAAI,EAAE,KAAK,OAAK,KAAK,KAAK,IAAI,KAAK,EAAE,IAAI,EAAI,EAAE,QAAQ,OAAK,OAAO,KAAK,IAAI,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC,KAAK,MAAM,IAAI,KAAK,OAAO,CAoBh4B,SAAS,IAAI,IAAI,CAAC,IAAI,OAAO,EAAE,CAAC,IAAI,IAAIX,IAAE,EAAEA,IAAE,IAAI,OAAO,MAAI,OAAO,KAAK,GAAI,IAAIA,KAAG,CAAC,OAAO,OAAgxB,SAAS,SAAS,GAAG,CAAC,OAAO,IAAI,IAAI,SAAS,IAAI,MAAM,IAAI,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,KAAK,YAAY,GAAG,MAAM,MAAM,IAAI,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,KAAK,IAAI,OAAO,IAAI,IAAI,MAAM,EAAE,IAAI,KAAK,IAAI,EAQtqD,SAAS,aAAa,KAAK,UAAU,CAAC,IAAI,IAAI,KAAK,OAAO,UAAU,WAAW,IAAI,EAAE,EAAE,aAAa,WAAW,IAAI,EAAE,EAAE,GAAG,CAAC,MAAM,WAAW,GAAG,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,aAAa,IAAI,CAAC,IAAI,IAAIA,IAAE,EAAE,KAAK,UAAU,WAAW,UAAUA,IAAE,IAAI,MAAI,CAAC,IAAI,KAAK,SAAS,KAAK,WAAWA,IAAE,CAAC,CAAI,MAAM,IAAI,KAAK,KAAa,MAAM,GAAG,YAAY,IAAE,KAAK,IAAG,MAAMA,KAAG,MAAM,EAAE,EAAE,KAAQ,KAAK,IAAE,WAAW,MAAK,KAAK,KAAM,IAAI,IAAI,GAAG,EAAE,MAAM,UAAU,YAAY,UAAU,GAAG,IAAI,KAAK,CAAC,IAAI,MAAM,MAAM,IAAI,GAAG,OAAO,IAAQ,GAAG,IAAI,GAAG,OAAO,MAAM,GAAG,IAAI,MAAM,GAAG,MAAM,MAAM,IAAI,MAAW,MAAM,IAAI,YAAa,OAAO,GAAG,CAAC,IAAI,IAAI,GAAG,EAAE,KAAM,IAAI,KAAK,MAAM,MAAM,IAAG,MAAM,IAAI,QAAQ,IAAI,OAAO,GAAG,IAAI,KAAK,MAAM,MAAM,EAAE,aAAa,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,EAAE,GAAG,EAAE,IAAI,IAAI,MAAM,GAAG,QAAQ,GAAG,IAAI,OAAW,OAAO,GAAG,aAAa,IAAG,MAAM,IAAI,GAAG,MAAM,MAAS,MAAM,IAAE,YAAY,OAAO,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,GAAG,MAAM,GAAG,IAAI,KAAM,GAAG,GAAG,SAAS,GAAG,KAAK,WAAW,GAAG,EAAG,GAAG,GAAG,OAAO,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,IAAI,EAAG,GAAG,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,MAAM,aAAa,GAAG,GAAO,OAAO,MAAM,EAAE,UAAY,MAAM,EAAK,MAAM,EAAE,aAAa,UAAvB,EAAoC,SAAO,MAAM,IAAI,MAAM,aAAa,KAAK,QAAO,GAAG,GAAG,eAAiB,aAAa,QAAQ,IAAK,WAAY,aAAa,MAAM,GAAG,aAAa,MAAM,GAAG,aAAa,MAAM,iBAAmB,MAAM,MAAM,MAAM,GAAG,OAAO,EAAE,CAAC,IAAI,MAAM,OAAO,UAAU,QAAQ,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,IAAI,IAAI,aAAa,IAAI,GAAG,GAAG,IAAI,EAAE,MAAM,GAAG,MAAO,aAAa,IAAI,IAAI,MAAO,CAAC,GAAG,IAAI,EAAE,MAAM,aAAa,IAAI,IAAI,IAAM,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,KAAM,GAAG,MAAM,KAAK,IAAI,CAAC,IAAI,KAAK,GAAG,EAAE,KAAM,KAAK,KAAK,MAAM,OAAO,KAAI,OAAO,IAAI,SAAS,GAAG,MAAM,GAAG,GAAG,YAAY,EAAM,QAAQ,KAAK,IAAI,MAAM,MAAM,YAAY,EAAM,SAAS,SAAS,OAAO,QAAQ,EAAE,EAAE,UAAU,IAAI,IAAI,GAAG,GAAG,GAAG,KAAK,KAAK,MAAM,IAAI,SAAS,GAAG,KAAK,EAAI,IAAI,MAAM,EAAE,CAAC,GAAG,WAAW,EAAG,IAAI,IAAI,GAAG,EAAE,GAAG,KAAK,CAAC,IAAI,MAAM,GAAG,IAAI,MAAM,OAAO,EAAE,KAAM,GAAG,KAAK,MAAM,MAAM,KAAK,IAAG,KAAK,GAAG,IAAK,IAAI,IAAI,GAAG,GAAG,GAAG,OAAO,CAAC,IAAI,KAAK,GAAGL,IAAE,MAAM,EAAE,KAAK,EAAE,KAAM,GAAG,OAAOA,MAAI,MAAM,GAAG,IAAI,IAAG,KAAK,MAAM,KAAK,IAAI,SAAS,GAAG,KAAKA,IAAE,EAAE,EAAE,CAAC,MAAQ,MAAM,KAAK,IAAI,SAAS,MAAM,GAAG,EAAE,CAAC,MAAS,IAAI,IAAI,GAAG,EAAE,GAAG,KAAK,CAAC,IAAI,OAAO,GAAG,KAAK,MAAM,OAAO,EAAE,KAAM,GAAG,KAAK,OAAO,MAAM,KAAK,IAAG,KAAK,MAAM,KAAK,IAAI,SAAS,OAAO,GAAG,KAAK,EAAE,EAAE,CAAC,CAAG,OAAO,MAAO,SAAS,aAAa,OAAO,CAAC,MAAM,CAAC,IAAI,SAAS,EAAE,OAAO,EAAE,CAAC,CAAmB,SAAS,aAAa,KAAK,MAAM,IAAI,MAAM,QAAQ,CAAC,IAAIQ,KAAG,IAAI,WAAW,MAAM,KAAK,KAAK,KAAK,MAAM,GAAG,GAAG,YAAY,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,OAAO,OAAO,KAAQ,MAAM,GAAG,OAAO,MAAK,WAAW,MAAM,GAAG,KAAK,GAAM,IAAI,CAAC,MAAM,WAAY,YAAY,KAAK,OAAO,CAAC,GAAG,QAAQ,OAAO,KAAK,IAAI,KAAK,MAAM,MAAM,OAAO,GAAM,KAAK,OAAO,MAAK,WAAW,KAAK,KAAK,GAAK,IAAI,CAAC,MAAM,MAAM,OAAO,GAAO,MAAM,IAAE,MAAM,SAAS,KAAK,MAAM,WAAe,MAAM,WAAkC,GAAG,MAAM,MAAM,EAAC,IAAI,KAAK,MAAM,OAAU,YAAY,KAAK,KAAK,QAAQ,IAAI,GAAE,KAAK,MAAM,OAAO,QAAQ,EAAE,IAAI,WAAW,KAAK,KAAK,CAAC,QAAQ,IAAI,EAAE,IAAI,aAAa,UAAU,KAAK,KAAK,KAAS,UAAU,iBAAiB,KAAK,KAAK,WAAW,aAAa,CAA0F,GAAzF,UAAU,KAAK,KAAK,MAAM,KAAK,IAAI,WAAW,UAAU,CAAC,KAAK,IAAI,WAAW,UAAU,CAAC,CAAI,WAAW,KAAK,KAAK,QAAQ,IAAI,CAAC,OAAO,gBAAgB,OAAO,UAAU,KAAK,KAAK,aAAa,GAAG,EAAE,KAAK,MAAM,CAAC,IAAI,SAAS,QAAQ,QAAQ,MAAM,OAAO,EAAE,GAAG,KAAK,MAAM,OAAO,QAAQ,EAAE,KAAqP,MAA7O,CAAC,UAAU,KAAK,OAAO,IAAW,gBAAgB,OAAO,QAAQ,KAAK,GAAG,KAAK,KAAK,QAAQ,GAAG,EAAE,IAAI,CAAI,UAAU,SAAS,MAAM,KAAK,MAAa,gBAAgB,OAAO,SAAS,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,GAAG,SAAS,MAAM,CAAQ,gBAAgB,OAAO,UAAU,KAAK,KAAK,QAAQ,GAAG,EAAE,KAAK,MAAM,CAAmpE,SAAS,eAAe,KAAK,CAAC,OAAO,KAAK,UAAU,GAAG,sDAAsD,KAAK,KAAK,SAAS,CAIwwD,SAAS,kBAAkB,IAAI,CAAC,OAAO,IAAI,KAAK,UAAU,GAAG,IAAI,KAAK,aAAa,IAAI,QAAQ,GAAG,IAAI,KAAK,WAAW,IAAI,OAAO,GAAG,iBAAiB,WAAW,IAAI,QAAQ,IAAI,KAAK,WAAW,QAAQ,IAAI,KAAK,WAAW,IAAI,QAAQ,iBAAiB,SAA0U,SAAS,2BAA2B,KAAK,CAAC,IAAI,IAAI,KAAK,SAAS,eAAmB,SAAS,IAAI,WAAW,eAAe,IAAI,UAAU,IAAI,YAAY,EAAE,CAAC,GAAG,CAAC,SAAS,OAAO,KAAK,IAAI,MAAM,KAAK,QAAQ,QAAQ,SAAS,CAAC,GAAG,CAAC,MAAM,OAAO,KAAK,GAAG,iBAAiB,SAAS,CAAC,IAAI,QAAQ,SAAS,KAAM,QAAQ,YAAY,MAAM,KAAI,QAAQ,QAAQ,WAAW,IAAI,KAAK,QAAQ,gBAAgB,KAAM,MAAM,CAAC,YAAY,IAAI,KAAK,EAAC,KAAK,KAAK,gBAAgB,IAAI,IAAI,KAAK,YAAY,IAAI,KAAK,CAAC,SAAS,MAAM,WAAW,MAAM,CAAC,KAAK,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK,SAAS,KAAM,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,MAAM,GAAG,CAAC,OAAO,OAAO,KAAK,GAAG,kBAAkB,SAAS,MAAM,MAAM,OAAQ,IAAI,KAAK,MAAM,WAAW,MAAM,CAAC,KAAK,GAAG,KAAK,MAAM,OAAO,KAAK,MAAM,IAAI,KAAK,SAAS,EAAG,SAAS,uBAAuB,KAAK,QAAQ,CAAC,IAAI,YAAY,2BAA2B,KAAK,CAAC,GAAG,CAAC,YAAY,OAAO,WAAW,KAAK,GAAG,CAAC,KAAK,GAAG,KAAK,KAAK,UAAU,YAAgB,QAAQ,QAAQ,OAAO,KAAK,EAAE,CAAC,MAAM,KAAK,IAAI,QAAQ,QAAQ,OAAO,GAAG,GAAG,CAAC,CAAI,CAAC,OAAO,KAAK,OAAO,IAAI,UAAU,EAAE,CAAC,MAAM,CAAI,KAAK,UAAU,EAAE,OAAO,aAAa,KAAK,CAAM,OAAO,UAAU,KAAK,WAAW,KAAK,CAAC,GAAG,CAAC,MAAM,OAAO,GAAG,KAAK,QAAQ,qBAAqB,CAAC,GAAG,OAAO,WAAW,KAAK,GAAG,MAAM,QAAQ,KAAK,OAAQ,GAAG,MAAM,IAAI,YAAY,QAAQ,KAAK,IAAI,MAAM,IAAI,OAAO,QAAQ,KAAK,OAAO,CAAC,EAAE,KAAK,MAAM,QAAQ,KAAK,eAAe,MAAM,IAAI,YAAY,KAAK,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,KAAK,QAAQ,MAAM,KAAK,YAAY,OAAO,WAAW,aAAc,MAAM,IAAI,YAAY,QAAQ,MAAM,EAAE,KAAM,OAAO,WAAW,KAAM,IAAI,QAAQ,YAAY,IAAI,KAAK,CAA0G,OAAtG,mBAAmB,gBAAgB,QAAQ,QAAQ,OAAO,QAAgB,UAAQ,QAAQ,OAAO,MAAY,WAAW,IAAI,WAAW,QAAQ,CAAC,OAAO,IAAI,kBAAkB,KAAK,SAAS,QAAQ,CAAC,UAAU,GAAK,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,CAAwS,SAAS,eAAe,UAAU,YAAY,KAAK,CAAC,GAAG,MAAM,EAAE,IAAI,IAAI,KAAK,UAAU,OAAO,cAAc,CAAC,GAAG,KAAK,UAAU,EAAE,OAAO,KAAK,GAAG,KAAK,UAAU,GAAG,OAAO,EAAG,KAAK,KAAK,WAAW,OAAO,GAAG,OAAO,UAAU,KAAK,MAAO,MAAQ,GAAG,MAAM,EAAE,IAAI,IAAI,MAAM,UAAU,QAAQ,cAAc,CAAC,GAAG,MAAM,UAAU,EAAE,OAAO,MAAM,GAAG,MAAM,UAAU,GAAG,QAAQ,MAAM,WAAW,QAAQ,MAAM,EAAG,MAAM,MAAM,WAAW,SAAS,QAAQ,OAAQ,MAAQ,OAAO,KAAM,SAAS,iBAAiB,KAAK,OAAO,CAA8B,OAA1B,KAAK,UAAU,GAAkB,QAAQ,KAAK,WAAW,OAAO,GAAG,iBAAiB,QAAQ,EAAE,IAAI,OAAO,KAAK,WAAW,QAAQ,KAAK,WAAW,QAAQ,iBAAiB,QAAQ,EAAE,GAA5J,EAA8U,SAAS,gBAAgB,EAAE,EAAE,KAAK,CAAC,IAAI,KAAK,IAAI,uBAAuD,OAAhC,SAAS,QAAQ,EAAE,EAAE,KAAK,KAAK,CAAQ,KAAK,QAAS,SAAS,aAAa,KAAK,QAAQ,CAAC,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,QAAQ,IAAI,IAAI,cAAc,IAAI,WAAY,GAAG,IAAI,UAAU,GAAG,IAAI,iBAAiB,QAAS,MAAO,GAAO,MAAO,GAAO,SAAS,QAAQ,MAAM,IAAI,KAAK,EAAE,CAAC,IAAI,WAAW,MAAM,gBAAgB,IAAI,CAAK,KAAK,MAAM,IAAI,OAAO,IAAI,CAAC,QAAQ,IAAI,KAAK,KAAK,GAAG,KAAK,QAAQ,EAAE,OAAO,gBAAgB,OAAO,IAAI,CAAI,SAAS,EAAE,KAAK,EAAU,SAAS,KAAK,SAAO,KAAK,IAAG,IAAI,KAAK,QAAQ,GAAG,QAAW,KAAK,EAAE,KAAK,iBAAiB,KAAK,KAAK,QAAQ,GAAM,CAAM,GAAG,iBAAiB,KAAK,KAAK,QAAQ,CAAC,IAAI,IAAI,WAAW,KAAK,KAAK,MAAM,KAAK,GAAG,CAAC,CAAC,KAAM,KAAK,GAAE,CAAC,IAAI,KAAK,iBAAiB,KAAK,KAAK,KAAK,GAAM,CAAC,GAAG,WAAW,KAAK,KAAK,MAAM,KAAK,KAAK,CAAC,EAAE,IAAI,MAAM,KAAK,KAAM,KAAM,GAAG,KAAK,QAAO,CAAC,IAAI,KAAK,iBAAiB,KAAK,KAAK,GAAG,CAAC,GAAG,WAAW,KAAK,KAAK,MAAM,GAAG,KAAK,CAAC,EAAE,IAAI,MAAM,GAAG,KAAM,OAAO,gBAAgB,MAAM,KAAK,KAAK,KAAK,GAAG,KAAK,KAAK,CAAE,SAAS,MAAM,IAAE,KAAK,CAAC,OAAO,KAAK,KAAKK,IAAE,KAAK,KAAKA,IAAE,KAAK,IAAI,EAAEA,IAAE,KAAK,MAAM,CAAE,SAAS,MAAM,EAAE,KAAK,CAAC,OAAO,KAAK,IAAI,EAAE,KAAK,IAAI,EAAE,KAAK,IAAI,EAAE,EAAE,KAAK,OAAO,CAAE,SAAS,SAAS,EAAE,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,EAAE,OAAO,EAAE,IAAI,EAAG,SAAS,MAAM,KAAK,KAAK,CAAC,OAAO,KAAK,KAAK,IAAI,CAAC,IAAI,KAAK,KAAK,KAAK,KAAK,MAAM,KAAK,MAAM,OAAO,KAAK,OAAO,CAAC,KAAM,SAAS,MAAM,KAAK,OAAO,CAAC,OAAO,OAAO,KAAK,OAAO,CAAC,IAAI,KAAK,IAAI,KAAK,KAAK,KAAK,MAAM,KAAK,MAAM,OAAO,CAAC,KAAM,SAAS,eAAe,OAAO,IAAE,EAAE,CAAC,IAAI,QAAQ,YAAY,SAAS,SAAS,eAAe,GAAU,MAAM,MAAM,UAAU,UAAU,IAAI,IAAI,MAAM,OAAO,WAAW,MAAM,MAAM,MAAM,YAAY,CAAC,IAAI,MAAM,eAAe,MAAM,CAAC,IAAI,IAAIR,IAAE,EAAEA,IAAE,MAAM,OAAO,MAAI,CAAC,IAAI,KAAK,MAAMA,KAAM,aAAa,SAAS,YAAY,KAAK,GAAC,KAAK,MAAM,MAAM,KAAK,YAAY,OAAO,CAAC,YAAY,IAAI,EAAC,IAAI,GAAG,MAAMQ,IAAE,KAAK,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,GAAG,IAAI,GAAG,IAAI,EAAE,OAAO,MAAM,UAAU,EAAE,aAAa,MAAMA,IAAE,EAAE,CAAC,eAAe,MAAMA,IAAE,EAAE,CAAC,GAAG,CAAC,SAAS,SAAS,IAAI,UAAU,IAAI,SAAS,GAAG,CAAC,QAAQ,MAAM,YAAY,KAAK,SAAS,GAAG,SAAS,GAAG,IAAI,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,GAAGA,IAAE,KAAK,KAAK,GAAG,EAAE,EAAE,eAAe,CAAC,OAAO,KAAK,EAAER,IAAE,MAAM,OAAO,EAAEA,IAAE,GAAO,IAAI,EAAM,EAAE,KAAK,SAAS,CAAC,WAAW,UAAU,OAAO,KAAK,SAAS,MAAM,MAAM,UAAU,MAAc,EAAE,KAAK,MAAM,CAAC,WAAW,UAAU,IAAI,KAAK,OAAM,MAAM,MAAM,UAAU,MAAe,WAAW,SAAS,UAAU,KAAK,CAAE,UAAU,MAAM,UAAU,KAAK,OAAO,CAAU,WAAW,SAAS,UAAU,KAAK,GAAE,UAAU,MAAM,UAAU,KAAK,IAAI,GAAsJ,GAA/I,WAAW,UAAU,QAAQ,GAAG,QAAQ,MAAM,YAAY,WAAmB,WAAW,UAAU,KAAK,IAAG,QAAQ,MAAM,YAAY,WAAc,CAAC,QAAQ,MAAM,CAAC,KAAK,OAAO,OAAO,EAAE,CAAC,IAAI,MAAM,KAAK,IAAI,YAAY,KAAK,KAAK,IAAI,YAAY,MAAMQ,IAAE,CAAC,CAAC,GAAG,QAAQ,UAAU,EAAE,OAAO,aAAa,QAAQ,MAAM,EAAE,CAAC,GAAG,gBAAgB,QAAQ,iBAAiB,QAAQ,OAAO,eAAe,QAAQ,MAAM,EAAE,CAAC,IAAI,OAAO,MAAM,UAAU,QAAQ,KAAK,OAAO,WAAW,QAAQ,EAAEA,MAAI,YAAY,KAAK,YAAY,OAAO,EAAE,EAAE,GAAG,MAAM,CAAC,KAAK,OAAO,OAAO,CAAE,SAAS,aAAa,KAAK,IAAE,EAAE,CAAC,IAAI,IAAI,KAAK,UAAU,OAAW,cAAc,GAAG,UAAU,IAAI,YAAY,EAAE,IAAI,IAAIR,IAAE,EAAEA,IAAE,IAAI,MAAI,CAAC,IAAI,MAAM,UAAU,KAAKA,IAAEA,IAAE,EAAE,CAAC,gBAAgB,CAAC,IAAI,IAAI,EAAE,EAAE,EAAE,MAAM,OAAO,IAAI,CAAC,IAAI,KAAK,MAAM,GAAG,GAAG,KAAK,KAAK,KAAK,OAAO,SAAS,AAAgB,cAAYQ,IAAE,KAAK,KAAK,IAAI,IAAI,KAAK,IAAI,EAAE,KAAK,IAAI,EAAE,EAAE,KAAK,QAAQ,EAAE,GAAG,KAAK,KAAK,GAAGA,KAAG,KAAK,MAAM,GAAGA,KAAG,GAAG,UAAU,CAAC,IAAI,MAAMA,MAAI,KAAK,KAAK,KAAK,OAAO,EAAE,MAAM,MAA8I,IAArI,QAAQ,QAAQ,QAAQ,QAAsB,UAAU,KAAKR,IAAE,CAAC,uBAAuB,CAAe,MAAM,KAAK,QAAM,MAAM,CAAC,OAAU,IAAI,EAAE,MAAM,CAAC,KAAK,OAAOA,KAAG,MAAM,EAAE,GAAG,CAAC,cAAcA,KAAG,MAAM,EAAE,GAAG,UAAU,KAAM,MAAM,CAAC,KAAK,OAAO,cAAc,GAAG,cAAc,YAAY,EAAE,KAAK,UAAU,OAAO,EAAE,CAAE,SAAS,YAAY,KAAK,OAAO,QAAQ,KAAK,GAAG,CAAC,IAAIG,KAAG,GAAG,IAAIjD,UAAQ,KAAK,WAAW,uBAAuB,CAAC,OAAOA,UAAQ,IAAI,KAAK,UAAU,WAAe,MAAM,CAAC,WAAW,KAAK,UAAa,CAAC,EAAA,IAAE,GAAG,OAAO,QAAQ,EAAE,OAAO,GAAG,QAAQ,EAAE,MAAO,GAAE,GAAG,QAAQ,UAAU,OAAO,KAAK,MAAM,IAAI,OAAO,IAAI,IAAI,SAAS,KAAK,kBAAkB,EAAE,QAAQ,GAAS,MAAM,KAAK,gBAAgB,QAAQ,CAAI,MAAM,MAAM,UAAU,MAAW,KAAQ,QAAQ,KAAK,EAAE,MAAM,OAAO,SAAS,MAAM,IAAI,SAAY,WAAS,GAAG,SAAS,YAAjF,CAAiG,GAAG,QAAQ,OAAO,QAAQ,KAAK,EAAE,QAAQ,GAAK,KAAK,CAAC,KAAO,EAAE,OAAO,QAAQ,IAAI,UAAU,MAAM,KAAK,GAAG,UAAU,KAAK,SAAS,KAAK,OAAO,KAAK,SAAS,MAAM,EAAE,EAAE,QAAQ,KAAK,qBAAqB,KAAKA,UAAQ,MAAMsD,IAAE,EAAE,CAAC,GAAG,UAAU,KAAK,SAAS,GAAG,OAAO,KAAK,SAAS,IAAI,KAAK,MAAM,IAAI,OAAO,KAAK,MAAM,IAAI,OAAO,QAAQ,KAAK,qBAAqB,KAAKtD,UAAQ,MAAMsD,IAAE,EAAE,CAAC,IAAI,KAAK,KAAK,IAAI,cAAkB,KAAK,KAAK,KAAK,iBAAiB,KAAK,KAAK,KAAS,QAAQ,KAAK,iBAAiBA,IAAE,EAAE,CAAI,SAAS,CAAC,KAAK,WAAW,SAAS,QAAQ,GAAC,QAAQ,MAAS,UAAS,IAAE,KAAK,IAAItD,UAAQ,KAAK,EAAE,KAAK,IAAIA,UAAQ,MAAM,EAAEsD,IAAE,CAAC,CAAC,QAAQ,KAAK,iBAAiBA,IAAE,EAAE,CAAI,SAAS,CAAC,KAAK,WAAW,SAAS,QAAQ,GAAC,QAAQ,OAAM,IAAI,KAAK,OAAO,GAAG,GAAG,SAAc,KAAK,QAAQ,QAAQ,QAAQ,EAAgC,YAAa,MAAU,KAAK,uBAAuB,CAAC,IAAI,IAAI,KAAK,uBAAuBA,IAAE,EAAE,CAAI,MAAK,CAAC,WAAW,KAAK,QAAQ,aAAc,KAAK,oBAAoB,CAAC,IAAI,MAAM,KAAK,oBAAoBA,IAAE,EAAE,CAAI,QAAQ,CAAC,eAAe,KAAK,YAAY,QAAQ,OAAU,CAAC,KAAK,WAAW,SAAS,KAAK,EAAE,QAAQ,QAAQ,8BAA8B,KAAK,OAAOA,IAAE,EAAE,QAAQ,QAAQ,8BAA8B,KAAK,OAAOA,IAAE,IAAC,KAAK,IAAK,MAAK,GAAG,CAAC,MAAM,CAAC,KAAK,QAAQ,IAAI,SAAS,KAAK,CAAC,CAAC,IAAI,KAAK,SAAS,KAAK,KAAK,QAAQ,UAAU,CAAC,GAAG,CAAC,KAAK,OAAO,QAAQ,MAAM,IAAI,MAAM,OAAO,EAAE,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,QAAQ,eAAe,KAAK,IAAIA,IAAE,EAAE,EAAG,IAAI,QAAQ,KAAK,QAAQ,QAAQ,KAAK,CAAC,GAAG,CAAC,QAAQ,OAAO,KAAK,GAAG,QAAQ,UAAe,QAAQ,KAAmC,UAAW,EAAE,CAAC,IAAI,KAAK,QAAQ,IAAI,uBAAuB,CAAC,OAAO,OAAO,EAAE,KAAK,KAAK,OAAO,GAAG,KAAK,QAAQ,OAAO,IAAI,KAAK,KAAK,KAAK,OAAO,EAAE,QAAQ,WAAW,QAAQ,cAAe,OAAO,QAAQ,gBAAgB,KAAK,OAAO,CAAC,QAAQ,WAAa,SAAS,qBAAqB,KAAK,YAAY,MAAM,IAAE,EAAE,CAAC,IAAI,KAAK,KAAK,OAAOA,IAAE,YAAY,MAAM,KAAK,sBAAsB,CAAC,GAAG,KAAK,cAAc,MAAM,OAAO,KAAK,kBAAkB,IAAI,CAAC,IAAI,KAAK,KAAK,OAAO,EAAE,MAAM,KAAK,KAAK,kBAAkB,CAAC,MAAM,KAAK,KAAK,UAAU,aAAa,WAAY,IAAItD,UAAQ,KAAK,MAAM,SAAS,MAAM,KAAK,MAAM,GAAG,CAAC,OAAO,MAAM,KAAK,WAAWA,UAAQ,KAAK,KAAK,MAAM,QAAQ,CAAE,SAAS,8BAA8B,KAAK,OAAO,IAAE,CAAC,IAAI,IAAI,GAAG,KAAK,UAAU,GAAG,SAAS,IAAI,KAAK,UAAU,QAAQ,MAAO,GAAM,IAAI,IAAI,KAAK,KAAK,YAAY,KAAK,KAAK,KAAK,YAAY,GAAG,KAAK,UAAU,GAAG,KAAK,UAAU,KAAK,MAAO,GAAM,OAAO,UAAU,KAAK,IAAI,EAAE,IAAI,CAAC,uBAAuB,CAAC,KAAKsD,IAAG,SAAS,8BAA8B,KAAK,OAAO,IAAE,CAAC,GAAG,QAAQ,EAAE,MAAO,GAAM,IAAI,IAAI,IAAI,OAAO,CAAC,IAAI,OAAO,IAAI,WAAW,GAAG,CAAC,QAAQ,OAAO,UAAU,GAAG,OAAO,YAAY,IAAI,MAAO,GAAM,GAAG,OAAO,UAAU,SAAS,UAAU,CAAC,MAAM,IAAI,OAAQ,IAAI,KAAK,KAAK,UAAU,EAAE,KAAK,uBAAuB,CAAC,UAAU,KAAK,EAAE,KAAK,IAAI,KAAK,UAAU,OAAO,EAAE,CAAC,CAAC,uBAAuB,CAAC,OAAOA,IAAE,KAAK,KAAK,EAAG,SAAS,QAAQ,KAAK,IAAI,CAAC,IAAI,KAAK,KAAK,YAAY,IAAI,CAAC,GAAG,MAAM,QAAQ,KAAK,KAAK,MAAK,IAAIb,OAAK,KAAK,KAAM,GAAGA,IAAE,GAAG,KAAKA,IAAE,IAAI,MAAMA,IAAE,IAAI,KAAK,IAAIA,IAAE,MAAM,UAAU,MAAM,OAAOA,IAAG,OAAO,KAAM,SAAS,mBAAmB,KAAK,MAAM,QAAQ,YAAY,CAAC,IAAI,KAAK,QAAQ,KAAK,MAAM,KAAK,CAAK,OAAO,CAAC,aAAa,KAAK,MAAM,UAAU,MAAM,EAAE,KAAK,cAAc,KAAK,kBAAkB,KAAK,KAAK,YAAY,MAAM,MAAM,GAAG,MAAM,KAAK,KAAK,KAAK,MAAM,KAAK,EAAE,MAAM,KAAK,CAAC,GAAG,OAAO,CAAC,IAAI,WAAW,KAAK,IAAI,uBAAuB,CAAK,UAAU,KAAK,gBAAgB,KAAK,KAAK,CAAK,IAAI,KAAK,YAAY,CAAC,EAAE,UAAU,WAAW,UAAU,KAAK,WAAW,MAAM,EAAE,WAAW,KAAK,EAAE,GAAG,OAAO,IAAI,OAAO,QAAQ,EAAE,CAAC,CAAC,GAAG,KAAK,KAAK,OAAO,gBAAgB,OAAO,IAAI,QAAQ,GAAG,EAAE,CAAE,OAAO,gBAAgB,OAAO,QAAQ,KAAK,GAAG,KAAK,KAAK,QAAQ,GAAG,EAAE,CAAE,SAAS,WAAW,KAAK,MAAM,QAAQ,GAAG,CAAC,IAAI,KAAK,KAAK,MAAM,IAAI,OAAO,MAAM,KAAK,CAAC,MAAM,KAAK,UAAU,KAAK,CAAK,UAAU,KAAK,gBAAgB,KAAK,KAAK,CAAC,IAAI,IAAI,IAAI,MAAM,MAAM,OAAO,CAAC,IAAI,KAAK,aAAa,KAAK,MAAM,UAAU,IAAI,QAAQ,CAAC,KAAK,UAAU,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK,SAAS,QAAQ,KAAK,MAAM,IAAI,MAAM,GAAG,OAAO,IAAI,KAAK;EAAK,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,QAAQ,QAAQ,EAAE,IAAI,CAAC,MAAM,KAAK,UAAU,KAAK,CAAC,KAAK,gBAAgB,OAAO,QAAQ,KAAK,KAAK,KAAK,GAAG,CAAE,GAAI,UAAkD,CAAC,MAAM,KAAK,CAAE,OAAO,QAAjE,CAAC,GAAG,CAAC,GAAG,OAAO,KAAK,MAAM,GAAG,KAAK,CAAoC,IAAI,MAAO,SAAS,QAAQ,KAAK,IAAI,MAAM,CAAC,IAAI,WAAW,KAAK,MAAM,gBAAgB,IAAI,CAAK,IAAI,WAAW,MAAM,CAAC,MAAO,OAAM,CAAC,IAAI,QAAQ,WAAW,KAAK,CAAwC,OAApC,KAAK,aAAa,QAAM,IAAI,SAAe,KAAK,SAAW,SAAS,eAAe,KAAK,MAAM,QAAQ,SAAS,CAAC,IAAI,SAAS,MAAM,KAAK,IAAI,QAAQ,EAAE,GAAG,GAAG,WAAW,QAAQ,KAAK,MAAM,IAAI,OAAO,GAAG,OAAO,gBAAgB,OAAO,SAAS,MAAM,MAAM,CAAC,IAAI,KAAK,MAAM,WAAW,OAAW,KAAK,KAAK,WAAW,uBAAuB,CAAK,YAAY,KAAK,YAAY,SAAS,CAAC,OAAO,KAAK,YAAY,GAAG,YAAa,AAAc,OAAK,YAAY,KAAK,KAAK,KAAK,OAAO,IAAI,EAAE,YAAY,IAAI,YAAY,WAAY,CAAC,IAAI,KAAK,KAAK,UAAU,YAAY,SAAS,CAAC,AAAc,OAAK,KAAK,IAAI,KAAK,MAAM,KAAK,KAAK,KAAK,uBAAuB,SAAS,KAAK,MAAM,CAAC,QAAQ,IAAI,EAAE,KAAK,IAAI,KAAK,QAAQ,OAAQ,IAAI,aAAa,KAAK,KAAK,KAAS,KAAK,UAA4C,KAAK,mBAAmB,EAAE,IAAI,IAAI,MAAM,GAAG,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,KAAK,OAAO,IAAQ,IAAI,YAAY,KAAK,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,GAAM,IAAI,CAAC,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,SAAS,IAAI,EAAE,IAAI,SAAS,IAAI,UAAU,OAAO,gBAAgB,OAAO,IAAI,MAAM,MAAM,IAAK,GAAE,KAAK,EAAG,SAAS,iBAAiB,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,MAAM,EAAE,IAAI,IAAI,OAAO,MAAO,IAAI,QAAQ,IAAI,EAAE,IAAI,GAAG,KAAK,GAAG,QAAQ,CAAC,GAAG,IAAI,MAAM,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,OAAO,IAAI,KAAK,GAAG,IAAI,GAAG,GAAG,IAAI,KAAK,EAAE,KAAK,GAAG,MAAM,OAAQ,CAAE,GAAG,CAAC,MAAM,OAAO,KAAM,SAAS,UAAU,KAAK,OAAO,IAAI,CAAC,IAAI,OAAO,iBAAiB,KAAK,MAAM,MAAM,aAAa,CAAC,IAAI,GAAG,EAAE,KAAK,CAAC,CAAC,IAAI,KAAK,OAAO,KAAK,IAAI,KAAK,GAAG,EAAE,CAAC,OAAO,QAAQ,IAAI,KAAK,IAAI,gBAAgB,OAAO,OAAO,OAAO,IAAI,KAAK,EAAE,GAAG,CAAq9J,SAAS,gBAAgB,KAAK,CAAC,OAAO,KAAK,IAAI,EAAE,KAAK,CAAC,GAAG,EAAm7G,SAAS,mBAAmB,KAAK,MAAM,CAAC,IAAI,MAAM,KAAK,MAAM,MAAM,wBAAwB,CAAC,OAAO,MAAM,OAAO,MAAM,GAAG,MAAM,CAAC,QAAQ,IAAI,MAAM,QAAQ,MAAM,QAAS,SAAS,mBAAmB,KAAK,MAAM,CAAC,IAAI,MAAM,KAAK,MAAM,MAAM,qBAAqB,CAAC,OAAO,MAAM,OAAO,MAAM,GAAG,MAAM,CAAC,QAAQ,IAAI,CAAC,MAAM,OAAO,CAAC,MAAM,QAAS,SAAS,qBAAqB,KAAK,MAAM,CAAC,GAAG,CAAC,MAAM,KAAK,MAAM,UAAU,GAAG,KAAK,MAAM,MAAO,GAAM,IAAI,IAAI,aAAa,KAAK,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,YAAY,EAAE,MAAO,GAAK,IAAI,MAAM,IAAI,WAAW,EAAE,CAAC,gBAAgB,CAAC,IAAI,IAAIK,IAAE,EAAEA,IAAE,MAAM,OAAO,MAAI,CAAC,IAAI,KAAK,MAAMA,KAAG,GAAG,KAAK,MAAM,MAAM,SAAS,KAAK,OAAO,MAAM,SAAS,KAAK,KAAK,MAAM,SAAS,KAAK,QAAQ,MAAM,QAAQ,MAAO,GAAM,MAAO,GAAO,SAAS,qBAAqB,KAAK,MAAM,CAAC,GAAG,CAAC,MAAM,QAAQ,MAAO,GAAK,GAAG,MAAM,iBAAiB,MAAO,GAAM,IAAI,IAAI,KAAK,MAAM,OAAO,MAAM,MAAM,KAAK,WAAW,KAAK,KAAK,WAAW,GAAG,CAAC,MAAM,KAAK,UAAU,KAAK,MAAM,YAAY,IAAI,KAAK,GAAG,MAAM,YAAY,MAAM,CAAC,MAAO,GAAM,MAAO,GAAgN,SAAS,aAAa,KAAK,CAAC,IAAI,OAAO,KAAK,IAAI,WAAW,GAAG,CAAC,OAAO,OAAO,IAAI,OAAO,OAAO,YAAY,SAAS,cAAc,WAAW,CAAC,CAAC,OAAO,MAAM,QAAQ,6CAA6C,OAAO,OAAO,CAAC,eAAe,CAAC,KAAK,OAAO,CAAC,OAAO,QAAQ,CAAC,QAAQ,KAAK,OAAO,MAAM,EAAG,GAAG,CAAE,SAAS,QAAQ,KAAK,MAAM,CAAC,GAAG,CAAC,OAAO,KAAK,QAAQA,IAAE,EAAE,KAAK,MAAM,OAAO,MAAM,CAAK,OAAO,KAAK,OAAO,MAAM,UAAU,OAAO,OAAwH,GAApG,kBAAkB,MAAM,MAAM,UAAU,OAAO,MAAM,GAAG,EAAE,MAAM,EAAE,kBAAkB,KAAK,UAAU,CAAa,CAAC,IAAI,SAAS,GAAG,QAAQ,MAAM,cAAc,OAAO,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,MAAM,KAAK,CAAC,GAAG,KAAK,MAAM,SAAS,MAAM,CAAC,MAAM,CAAC,SAAS,KAAK,KAAK,IAAIO,SAAO,MAAM,QAAQ,OAAO,KAAK,KAAK,MAAI,CAAC,KAAK,OAAO,MAAM,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,KAAK,KAAK,OAAA,SAAO,CAAC,MAAM,gBAAgB,OAAO,MAAM,KAAKA,SAAO,OAAO,CAAC,EAAG,MAA2M,QAAjM,OAAgB,MAAM,cAAc,OAAO,CAAC,IAAI,KAAK,KAAK,KAAK,MAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,MAAM,KAAK,GAAG,MAAM,GAAG,OAAO,KAAK,KAAK,CAAC,MAAM,gBAAgB,OAAO,MAAM,KAAK,KAAK,OAAO,CAAC,EAAG,CAAe,MAAM,iBAAiB,KAAK,CAAE,KAAK,SAAS,QAAQ,CAAC,UAAU,cAAc,eAAe,GAAK,CAAC,CAAw/B,SAAS,cAAc,KAAK,IAAI,KAAK,KAAK,CAAC,GAAG,MAAM,EAAG,OAAO,gBAAgB,OAAO,IAAI,KAAK,IAAU,MAAM,EAAG,OAAO,QAAQ,KAAK,MAAM,IAAI,KAAK,CAAM,CAAC,IAAI,OAAO,SAAS,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,KAAK,MAAM,IAAI,OAAO,OAAO,OAAO,SAAS,IAAI,CAAK,KAAK,OAAO,OAAO,WAAW,KAAK,KAAK,GAAG,OAAO,OAAO,SAAS,KAAK,GAAiD,OAA3C,GAAG,KAAK,MAAM,IAAI,QAAQ,IAAI,KAAK,IAAG,KAAY,gBAAgB,MAAM,KAAK,GAAG,EAAyH,SAAS,iBAAiB,KAAK,IAAI,IAAE,EAAE,CAAC,IAAI,KAAK,SAAS,KAAK,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,KAAK,MAAO,GAAE,IAAI,IAAI,IAAI,KAAK,WAAW,GAAG,KAAK,EAAE,MAAO,GAAE,GAAG,KAAK,KAAK,OAAO,MAAM,GAAG,IAAI,OAAO,KAAK,SAAS,IAAI,GAAG,CAAC,GAAG,QAAQ,OAAOC,IAAE,EAAE,OAAO,CAAC,MAAM,GAAG,IAAI,MAAM,KAAK,SAAS,IAAI,EAAE,CAAsC,OAAlC,OAAO,OAAOA,IAAE,EAAE,MAAM,CAAQ,EAAS,QAAQ,QAAQ,EAAE,OAAO,CAAC,GAAG,EAAG,SAAS,SAAS,KAAK,MAAM,CAAC,IAAI,IAAI,KAAK,YAAY,CAAC,EAAE,MAAM,QAAQ,EAAE,MAAM,QAAQ,CAAC,GAAM,CAAC,MAAM,CAAC,IAAI,KAAK,iBAAiB,KAAK,IAAI,MAAM,QAAQ,MAAM,QAAQ,CAAC,CAAgI,SAAS,aAAa,MAAM,CAAC,GAAG,CAAC,eAAe,OAAO,MAAM,OAAO,IAAI,KAAK,cAAc,SAAS,kBAAmE,MAAjD,eAAc,MAAM,kBAAkB,KAAK,KAAK,CAAQ,mBAAmB,CAAC,MAAM,SAAS,KAAK,KAAK,CAAC,KAAK,KAAK,IAAI,KAAK,QAAQ,MAAM,QAAQ,CAAC,GAAG,KAAK,IAAI,KAAK,QAAQ,MAAM,QAAQ,CAAC,GAAG,mBAAmB,GAAG,EAAE,EAAG,SAAS,oBAAoB,KAAK,MAAM,CAAC,IAAI,MAAM,SAAS,KAAK,MAAM,CAAC,KAAK,aAAa,MAAM,CAAK,SAAS,KAAK,MAAM,UAAU,MAAM,CAAC,OAAO,OAAO,CAAI,OAAO,aAAY,MAAM,IAAI,OAAO,QAAQ,OAAO,MAAM,IAAI,CAAC,SAAS,SAAS,IAAI,OAAO,QAAQ,GAAI,IAAI,OAAO,SAAO,SAAS,CAAC,IAAI,IAAI,SAAS,KAAK,OAAO,CAAC,QAAY,MAAM,cAAc,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,CAAC,GAAG,MAAM,KAAK,IAAI,KAAK,CAACrD,SAAO,CAAC,IAAI,WAAW,cAAc,KAAK,MAAM,IAAI,MAAM,KAAK,KAAK,CAAK,KAAK,KAAK,IAAI,WAAW,KAAK,MAAM,KAAK,CAAC,GAAG,KAAK,IAAI,WAAW,GAAG,MAAM,GAAG,CAAC,MAAM,KAAK,MAAM,KAAK,gBAAgB,MAAM,KAAK,GAAG,CAAC,gBAAgB,MAAM,GAAG,KAAK,CAA4P,OAAvPA,SAAc,SAAS,aAAa,SAAS,KAAK,OAAO,MAAM,KAAK,MAAM,GAAG,CAAC,CAAS,UAAU,MAAM,GAAG,SAAS,OAAO,OAAO,IAAI,QAAQ,kBAAkB,SAAS,IAAI,IAAI,EAAS,QAAgB,SAAgB,SAAS,SAAS,MAAM,CAAa,gBAAgB,OAAO,CAAC,MAAM,CAAC,EAAG,CAAE,SAAS,kBAAkB,IAAI,IAAI,CAAC,IAAI,IAAI6C,IAAE,EAAEA,IAAE,IAAI,OAAO,OAAO,MAAI,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,OAAOA,KAAG,GAAG,MAAM,KAAK,IAAI,IAAI,OAAO,gBAAgB,OAAO,IAAI,OAAO,MAAM,EAAEA,IAAE,CAAC,OAAO,IAAI,OAAO,MAAMA,IAAE,EAAE,CAAC,CAAC,IAAI,WAAWA,IAAE,EAAE,IAAI,WAAW,IAAI,UAAUA,IAAE,EAAE,GAAG,CAAE,OAAO,KAA4S,SAAS,SAAS,KAAK,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,KAAK,OAAO,IAAI,QAAQ,KAAK,YAAY,CAAC,EAAE,MAAM,QAAQ,EAAE,MAAM,QAAQ,CAAC,GAAM,CAAC,MAAM,gBAAgB,CAAC,GAAG,CAAC,gBAAgB,KAAK,WAAe,IAAI,QAAQ,gBAAgB,eAAe,UAAU,eAAe,SAAS,CAAC,KAAK,eAAe,SAAS,KAAK,GAAG,eAAe,SAAS,GAAG,CAAC,KAAS,IAAI,CAAC,KAAK,QAAQ,OAAO,KAAK,CAAK,QAAQ,KAAK,MAAM,QAAQ,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,KAAK,SAAS,CAAC,QAAQ,UAAU,CAAC,OAAO,QAAQ,OAAO,QAAQ,GAAG,CAAC,KAAK,QAAQ,OAAO,QAAQ,EAAE,CAAC,CAAC,UAAU,IAAI,YAAY,aAAa,CAAC,CAAu6B,SAAS,YAAY,KAAK,KAAK,CAAC,IAAI,OAAO,KAAK,IAAI,WAAW,GAAG,CAAC,OAAO,OAAO,IAAI,OAAO,OAAO,YAAY,SAAS,cAAc,WAAW,CAAC,CAAC,OAAO,MAAM,QAAQ,6CAA6C,OAAO,MAAM,KAAK,OAAO,OAAO,CAAC,OAAO,aAAa,KAAK,OAAO,OAAO,eAAe,EAAE,eAAe,CAAC,OAAO,QAAQ,CAAC,KAAK,OAAO,EAAG,GAAG,CAAE,SAAS,YAAY,MAAM,CAAC,IAAI9C,UAAQ,EAAE,CAAC,OAAO,EAAE,CAAC,SAAS,GAAM,IAAI,IAAI,SAAS,MAAM,UAAU,OAAW,MAAM,QAAO,UAAQ,KAAK,MAAM,SAAS,MAAM,KAAK,MAAM,GAAG,CAAC,CAAC,OAAO,KAAK,MAAM,EAAE,GAAG,CAACA,UAAQ,OAAO,CAAC,IAAI,KAAK,GAAG,IAAI,GAAG,CAAC,QAAQ,MAAM,UAAU,OAAO,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,KAAK,CAAI,KAAK,OAAO,OAAM,UAAQ,KAAK,KAAK,KAAK,CAAC,OAAO,KAAK,CAAC,KAAK,KAAK,KAAK,GAAG,KAAK,IAAI,MAAM,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,OAAQ,SAAS,GAAM,MAAM,CAAC,KAAKA,UAAQ,KAAK,MAAM,UAAU,CAAC,OAAO,SAAS,CAAygB,SAAS,uBAAuB,MAAM,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC,IAAI,IAAI,aAAa,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI,OAAO,UAAU,MAAM,MAAM,CAAI,QAAO,QAAQ,KAAK,OAAO,CAAE,OAAO,QAAQ,MAAM,OAAO,CAAC,QAAQ,YAAY,cAAc,GAAG,GAAK,CAAC,CAAC,CAAC,KAAM,SAAS,qBAAqB,KAAK,CAAC,eAAe,CAAC,IAAI,MAAM,KAAK,SAAS,GAAG,OAAO,KAAK,WAAW,gBAAgB,CAAC,IAAI,GAAG,uBAAuB,KAAK,MAAM,MAAM,CAAI,GAAG,KAAK,SAAS,GAAG,CAAM,KAAK,OAAO,EAAE,CAAC,GAAI,GAAG,CAyBt+6B,SAAS,UAAU,MAAM,OAAO,CAAC,IAAI,OAAO,MAAS,MAAM,SAAS,OAAO,OAAO,MAAM,OAAO,cAAc,eAAe,MAAM,MAAM,OAAO,cAAc,cAAa,MAAM,OAAO,OAAO,EAAE,EAAE,IAAI,aAAa,OAAO,OAAO,EAAE,MAAM,OAAO,CAAC,CAKniU,SAAS,0BAA0B,EAAE,EAAE,KAAK,CAAC,IAAI,KAAK,IAAI,qBAAuD,OAAlC,SAAS,QAAQ,EAAE,EAAE,KAAK,KAAK,EAAE,CAAQ,KAAK,QAA0M,SAAS,kBAAkB,IAAI,WAAW,CAAC,IAAI,KAAK,IAAI,uBAAuB,CAAK,KAAK,IAAI,cAAc,IAAI,KAAK,aAAa,OAAW,KAAK,KAAK,IAAI,EAAE,KAAK,KAAK,CAAC,MAAM,KAAK,IAAI,IAAI,WAAW,KAAK,MAAM,CAAK,KAAK,KAAK,IAAI,EAAE,KAAK,IAAI,CAAC,OAAO,KAAK,IAAI,IAAI,YAAY,KAAK,OAAO,CAAC,IAAI,IAAI,OAAO,IAAI,WAAW,QAAQ,QAAQ,KAAK,MAAO,GAAG,OAAO,UAAU,EAAE,CAAC,IAAI,IAAI,OAAW,MAAM,OAAO,iBAAiB,IAAI,CAAC,IAAI,IAAI,aAAa,IAAI,cAAc,IAAI,YAAY,IAAI,cAAc,MAAM,UAAU,UAAU,CAAC,IAAI,WAAW,IAAI,uBAAuB,CAAC,KAAK,KAAK,IAAI,KAAK,WAAW,KAAK,CAAC,MAAM,KAAK,IAAI,MAAM,WAAW,MAAM,CAAC,KAAK,KAAK,IAAI,KAAK,WAAW,IAAI,CAAC,OAAO,QAAQ,IAAI,WAAW,WAAW,OAAO,KAAK,IAAI,OAAO,WAAW,OAAO,CAAE,OAAO,MAAM,UAAU,YAAY,MAAM,UAAU,QAAQ,IAAI,aAAa,IAAI,mBAAoB,OAAO,UAAU,GAAI,OAAO,OAAO,UAAW,MAAQ,MAAM,CAAC,KAAK,KAAK,KAAK,KAAK,MAAM,KAAK,IAAI,KAAK,MAAM,CAAC,KAAK,KAAK,IAAI,MAAM,KAAK,IAAI,YAAY,OAAO,KAAK,IAAI,KAAK,OAAO,EAAE,KAAK,IAAI,YAAY,CAAE,SAAS,eAAe,IAAI,WAAW,CAAC,IAAI,KAAK,IAAI,uBAAuB,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,KAAK,KAAK,IAAI,WAAW,OAAO,KAAK,QAAQ,KAAK,IAAI,YAAY,CASooG,SAAS,cAAc,KAAK,GAAG,UAAU,CAAC,IAAI,OAAO,EAAE,CAAC,IAAI,KAAK,MAAM,EAAmM,OAAjM,SAAS,MAAM,UAAU,KAAK,GAAG,CAAC,MAAM,GAAG,MAAM,MAAM,IAAI,CAAI,MAAM,MAAK,OAAO,KAAK,CAAC,KAAK,IAAI,GAAG,MAAM,CAAC,CAAC,OAAO,MAAM,KAAK,IAAI,KAAM,CAAC,GAAG,CAAI,IAAI,KAAI,OAAO,KAAK,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC,OAAO,GAAG,KAAW,CAAC,MAAM,OAAO,CAAE,SAAS,aAAa,CAAC,MAAM,QAAQ,MAAM,CAAC,GAAG,OAAO,EAAE,OAAO,OAAO,GAAG,KAAK,GAAG,OAAO,EAAE,OAAO,OAAO,OAAO,OAAO,GAAG,GAAG,IAAI,KAAK,KAAK,MAAM,MAAM,MAAM,CAAC,IAAI,IAAI8C,IAAE,GAAG,MAAI,CAAC,GAAG,CAAC,KAAK,IAAI,OAAOA,KAAG,KAAK,GAAG,KAAK,GAAG,MAAM,KAAK,OAAO,KAAK,KAAK,MAAM,MAAO,SAAS,aAAa,UAAU,IAAI,CAAC,IAAI,QAAQ,EAAE,IAAI,GAAG,CAAC,KAAK,MAAM,UAAU,OAAO,CAAC,GAAG,KAAK,GAAG,CAAC,SAAS,IAAI,KAAK,MAAO,SAAS,GAAG,KAAM,OAAO,QAAQ,UAAU,MAAO,SAAS,KAAK,MAAM,EAAE,CAAC,IAAI,IAAI,OAAO,MAAM,GAAG,EAAE,IAAI,CAAC,OAAO,IAAulC,SAAS,WAAW,MAAM,OAAO,CAAC,GAAG,OAAO,OAAO,EAAE,OAAO,MAAM,IAAI,KAAK,OAAO,MAAM,MAAM,IAAI,CAAC,QAAQ,OAAO,MAAM,MAAM,OAAO,CAAC,OAAO,IAAI,UAAU,MAAM,KAAK,MAAM,OAAO,KAAK,QAAQ,KAAK,MAAM,QAAQ,MAAM,SAAS,CAAC,MAAM,SAAS,IAAI,GAAG,WAAW,EAAE,OAAO,CAAC,CAAC,MAAM,SAAS,CAAmY,SAAS,WAAW,KAAK,KAAK,OAAO,CAAC,OAAO,IAAI5C,cAAY,KAAK,CAAC,OAAO,IAAI,CAAC,MAAM,IAAI,KAAK,IAAI,CAAC,IAAI,QAAQ,OAAO,GAAG,CAAC,GAAG,GAAG,IAAI,OAAO,KAAK,GAAG,CAAC,QAAQ,CAAC,OAAO,GAAG,MAAU,WAAW,yBAAyB,IAAI,CAAC,OAAO,OAAO,IAAK,CAAC,KAAK,IAAI,KAAM,CAAC,CAWvvH,SAAS,eAAe,KAAK,UAAU,CAAC,IAAI,OAAU,CAAC,QAAQ,UAAU,IAAI,KAAK,MAAM,UAAU,KAAS,QAAQ,KAAK,WAAW,YAAY,KAAK,KAAK,CAAC,IAAI,KAAK,WAAW,YAAY,GAAG,GAAG,UAAU,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,UAAU,OAAW,aAAa,IAAI,KAAK,cAAc,MAAQ,UAAU,GAAG,QAAQ,SAAS,UAAU,KAAK,OAAO,GAAG,QAAM,aAAa,IAAI,GAAG,cAAc,OAAO,IAAI,KAAK,SAAS,KAAK,MAAM,IAAI,YAAY,KAAK,GAAG,qBAAqB,CAAC,UAAU,KAAK,aAAa,KAAK,cAAc,CAAI,OAAS,QAAQ,QAAQ,SAAS,IAAI,KAAK,KAAK,KAAK,KAAK,GAAG,UAAU,KAAK,MAAM,KAAK,KAAK,KAAK,IAAI,EAAE,qBAAqB,sBAAqB,KAAK,MAAM,OAAO,CAAC,KAAK,KAAK,KAAK,KAAK,GAAG,KAAK,KAAK,IAAI,OAAO,KAAK,GAAG,UAAU,KAAK,MAAM,KAAK,KAAK,KAAK,IAAI,CAAC,MAAM,qBAAqB,CAAC,CAAC,OAAW,SAAS,CAAC,KAAK,UAAU,KAAK,MAAM,MAAM,SAAS,EAAE,OAAO,KAAK,GAAG,IAAI,IAAG,OAAO,MAAM,GAAG,CAAC,QAAQ,CAAC,OAAO,MAAO,GAAmjC,GAA1iC,CAAC,QAAQ,UAAU,UAAU,CAAC,IAAI,OAAO,QAAQ,OAAO,KAAK,MAAO,OAAO,CAAC,KAAK,IAAI,KAAK,GAAG,IAAI,GAAG,OAAO,KAAK,MAAM,IAAI,MAAM,IAAI,KAAK,IAAI,GAAG,CAAC,CAAU,QAAQ,OAAO,MAAM,IAAI,MAAM,OAAO,IAAI,IAAI,KAAK,OAAO,MAAM,IAAI,MAAM,OAAO,IAAI,IAAI,KAAK,IAAI,GAAG,IAAI,MAAM,OAAO,GAAG,OAAO,OAAO,EAAG,OAAO,CAAC,KAAK,IAAI,KAAK,GAAG,IAAI,GAAG,OAAO,KAAK,MAAM,IAAI,MAAM,IAAI,KAAK,OAAO,KAAK,CAAC,OAAO,OAAO,OAAO,CAAC,OAAO,KAAK,MAAM,IAAI,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,EAAW,QAAQ,KAAK,QAAQ,UAAU,QAAQ,OAAO,MAAM,OAAO,IAAI,OAAO,MAAM,IAAI,KAAK,GAAG,SAAS,KAAK,OAAO,OAAO,UAAU,CAAC,EAAE,KAAK,WAAW,aAAa,cAAc,EAAE,OAAU,QAAQ,OAAO,OAAO,QAAQ,IAAE,OAAO,gBAAgB,OAAO,OAAO,KAAK,OAAO,EAAE,OAAO,KAAK,KAAK,EAAE,EAAC,OAAO,CAAC,KAAK,IAAI,KAAK,GAAG,IAAI,GAAG,OAAO,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,EAAU,QAAQ,QAAQ,QAAQ,OAAO,MAAM,OAAO,IAAI,OAAO,MAAM,IAAI,MAAM,OAAO,OAAO,UAAU,EAAE;IAAO,KAAK,eAAc,AAAU,SAAO,gBAAgB,OAAO,OAAO,KAAK,OAAO,EAAE,OAAO,KAAK,KAAK,EAAE,CAAC,OAAO,CAAC,KAAK,IAAI,KAAK,GAAG,IAAI,GAAG,OAAO,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,EAAK,OAAO,CAAC,IAAI,WAAW,KAAK,MAAoE,GAA3D,QAAQ,KAAK,KAAK,WAAW,YAAY,KAAK,EAAgB,QAAQ,UAAU,OAAO,MAAM,IAAI,MAAM,OAAO,IAAI,IAAI,IAAI,OAAO,OAAO,QAAQ,GAAG,OAAO,OAAO,OAAO,GAAG,YAAY,KAAK,WAAW,QAAQ,GAAG,GAAG,OAAO,MAAM,IAAI,KAAK,GAAG,OAAO,IAAI,IAAI,IAAI,OAAO,OAAO,QAAQ,GAAG,SAAS,GAAG,OAAO,OAAO,OAAO,OAAO,GAAG,OAAO,OAAO,YAAY,KAAK,WAAW,YAAY,EAAE,EAAE,OAAO,MAAM,IAAI,MAAM,OAAO,IAAI,IAAI,GAAG,GAAG,OAAO,OAAO,QAAQ,GAAG,YAAY,KAAK,WAAW,SAAS,GAAG,EAAE,MAAO,GAAK,IAAI,KAAK,OAAO,OAAO,UAAU,CAAC,GAAG,KAAK,MAAM,MAAM,aAAa,CAAC,KAAK,GAAG,EAAE,KAAK,OAAO,KAAK,OAAO,GAAG,KAAK,CAAC,CAAC,MAAO,GAAQ,KAAK,WAAW,WAAW,GAAE,KAAK,WAAW,YAAY,IAAI,GAAG,GAAG,OAAO,MAAM,IAAI,MAAM,OAAO,IAAI,IAAI,IAAI,OAAO,GAAG,OAAO,OAAO,IAAI,GAAG,IAAI,MAAM,IAAI,CAAC,QAAQ,OAAO,KAAK,OAAO,OAAO,KAAK,MAAM,OAAO,KAAK,OAAO,OAAO,SAAS,KAAK,WAAW,UAAU,EAAE,CAAC,IAAI,OAAO,IAAI,KAAK,OAAO,KAAK,WAAW,SAAS,IAAI,KAAK,OAAO,KAAK,CAAC,GAAO,MAAM,IAAI,GAAG,OAAO,GAAG,WAAW,SAAS,OAAO,GAAG,IAAI,GAAG,CAAC,GAAG,GAAG,WAAW,iBAAiB,KAAK,MAAM,OAAO,OAAO,OAAO,OAAO,YAAY,EAAE,IAAK,GAAE,KAAK,MAAM,UAAU,CAAC,MAAM,CAAC,KAAM,CAAC,IAAI,QAAQ,WAAW,QAAQ,OAAO,CAAK,QAAQ,QAAQ,OAAO,KAAK,IAAI,QAAQ,UAAU,OAAO,KAAK,IAAK,GAAE,GAAG,WAAW,UAAU,OAAO,OAAO,GAAG,KAAK,WAAW,WAAW,GAAG,OAAO,IAAI,IAAI,IAAI,OAAO,IAAI,IAAI,GAAG,GAAG,CAAC,IAAI,SAAS,KAAK,MAAM,SAAS,OAAO,KAAK,OAAO,GAAG,CAAK,iBAAiB,2BAA2B,KAAK,EAAE,KAAK,MAAM,IAAI,OAAO,IAAI,KAAK,CAAK,OAAO,IAAI,GAAG,OAAO,GAAG,KAAK,IAAI,GAAG,IAAI,KAAK,GAAG,WAAW,cAAc,OAAO,CAAC,GAAG,MAAM,MAAM,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,MAAM,CAAC,QAAQ,MAAM,SAAS,MAAM,IAAI,QAAQ,CAAC,CAAC,IAAI,GAAG,MAAM,GAAG,OAAO,KAAK,GAAG,SAAS,OAAO,GAAG,MAAM,GAAG,MAAM,MAAM,MAAM,KAAK,MAAM,SAAS,KAAK,GAAG,EAAE,UAG3uP,kBAAkB,MAAM,IAAI,iBAAiB,MAAM,MAAM,MAAM,iBAAiB,GAAI,MAAM,CAAC,MAAM,CAAC,IAAI,aAAa,WAAW,QAAQ,CAAC,KAAK,GAAG,OAAO,OAAO,OAAO,CAAC,CAAC,OAAO,MAAM,GAAG,IAAI,GAAG,MAAM,CAAC,QAAQ,aAAa,MAAO,QAAgC,gBAAgB,MAAM,KAAK,IAAI,EAAE,QAAQ,OAAO,OAAO,CAAC,KAAK,IAAI,EAAE,QAAQ,KAAK,OAAO,CAAC,CAAhH,MAAM,IAAI,aAAa,CAA0F,EAAG,MAAO,GAAG,CAAC,QAAQ,UAAU,SAAS,WAAW,UAAU,aAAa,QAAQ,CAAC,CAAG,IAAI,UAAU,aAAiW,OAAjV,KAAK,WAAW,KAAK,WAAW,0BAA0B,KAAK,WAAW,mBAAmB,KAAK,KAAK,CAAC,MAAI,KAAK,WAAW,yBAAyB,GAAM,WAAW,WAAc,KAAK,WAAW,yBAAwB,WAAW,SAAS,KAAK,WAAW,uBAAuB,KAAQ,KAAK,SAAS,GAAG,CAAC,eAAe,GAAK,UAAU,CAAC,CAAQ,WAAc,QAAQ,CAAC,OAAO,KAAK,GAAG,IAAI,CAAC,CAAC,IAAI,gBAAgB,GAAM,WAAW,SAAyQ,OAA7P,KAAK,WAAW,kBAAkB,KAAK,KAAK,CAAC,KAAO,KAAK,WAAW,qBAAqB,WAAS,gBAAgB,IAAK,WAAW,KAAK,WAAW,qBAAqB,KAAK,SAAS,CAAC,UAAU,OAAO,eAAe,gBAAgB,UAAU,WAAW,CAAC,CAAQ,QAAW,MAAO,GAAQ,SAAS,SAAS,EAAE,EAAE,aAAa,cAAc,CAAC,IAAI,OAAO,KAAK,IAAI,EAAE,OAAO,EAAE,OAAO,CAAK,KAAK,EAAE,KAAM,KAAK,QAAQ,EAAE,WAAW,KAAK,EAAE,EAAE,WAAW,KAAK,EAAC,OAAO,GAAG,MAAM,QAAQ,EAAE,QAAQ,EAAE,OAAO,OAAO,KAAK,IAAI,IAAI,EAAE,OAAO,IAAI,EAAE,OAAO,KAAM,IAAI,GAAG,IAAI,GAAG,EAAE,WAAW,IAAI,EAAE,EAAE,EAAE,WAAW,IAAI,EAAE,EAAE,MAAM,MAAO,GAAG,eAAe,MAAM,CAAC,IAAI,OAAO,KAAK,IAAI,EAAE,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,CAAC,cAAc,IAAI,OAAO,KAAM,GAAG,IAAI,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,KAAK,cAAc,MAAM,cAAc,IAAI,KAAK,aAAa,EAAE,MAAM,KAAK,IAAI,MAAM,IAAI,KAAK,IAAI,aAAc,IAAI,KAAK,CAAC,IAAI,MAAM,cAAc,MAAM,cAAc,IAAI,KAAK,aAAa,EAAE,MAAM,MAAM,IAAI,MAAM,IAAI,KAAK,IAAI,KAAM,MAAM,CAAC,KAAK,IAAI,IAAI,CAAE,SAAS,gBAAgB,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC,GAAG,KAAK,KAAK,eAAe,KAAK,WAAW,OAAO,OAAO,GAAG,CAAC,WAAW,aAAa,UAAU,aAAa,KAAK,SAAS,eAAuL,OAArK,aAAY,OAAO,KAAK,IAAI,SAAS,WAAW,aAAa,CAAC,EAAI,WAAW,YAAY,aAAa,eAAa,OAAO,KAAK,IAAI,SAAS,UAAU,YAAY,CAAC,EAAS,OAAQ,SAAS,oBAAoB,OAAO,MAAM,CAAC,GAAG,OAAO,QAAQ,EAAE,OAAO,KAAK,IAAI,OAAO,OAAO,GAAG,IAAI,KAAK,OAAO,QAAQ,EAAE,OAAO,GAAG,IAAI,OAAO,OAAO,OAAO,IAAI,KAAK,GAAG,gBAAgB,OAAO,OAAO,MAAM,KAAK,MAAM,CAAC,KAco4D,SAAS,UAAU,MAAM,IAAI,IAAI,CAAC,KAAM,KAAI,CAAC,IAAI,QAAQ,YAAY,IAAI,IAAI,CAAC,GAAG,SAAS,QAAQ,QAAQ,MAAM,OAAO,QAAQ,IAAI,OAAO,IAAI,WAAW,IAAI,QAAQ,MAAM,IAAW,IAAI,EAAE,IAAI,YAAY,IAAI,gBAAjC,OAAkD,OAAO,KAAM,SAAS,yBAAyB,KAAK,CAAC,IAAI,MAAM,KAAK,SAAS,KAAK,MAAM,CAAC,MAAM,gBAAgB,CAAC,MAAM,0BAA0B,CAAC,MAAM,MAAM,iBAAiB,CAAC,GAAwK,GAApK,KAAK,WAAW,iBAAiB,cAAc,KAAK,GAAK,CAAC,KAAK,IAAI,cAAc,YAAY,SAAS,CAAC,KAAK,WAAW,oBAAoB,cAAc,KAAK,GAAK,CAAI,CAAC,MAAM,OAAO,KAAK,IAAI,WAAW,MAAM,eAAe,aAAa,MAAM,YAAgB,UAAU,MAAM,aAAa,YAAY,MAAM,UAAc,UAAU,KAAK,QAAQ,SAAS,KAAK,MAAM,UAAU,KAAK,OAAO,CAAiL,OAA7K,qBAAqB,UAAU,KAAK,UAAU,OAAO,UAAU,YAAY,GAAC,CAAC,WAAW,aAAa,UAAU,aAAa,CAAC,UAAU,YAAY,WAAW,aAAc,EAAO,CAAC,WAAW,aAAa,UAAU,YAAY,CAyOxnF,SAAS,eAAe,KAAK,MAAM,MAAM,CAAC,IAAI,IAAI,QAAQ,KAAK,MAAM,MAAM,MAAM,CAAC4C,IAAE,QAAQ,OAAO,EAAEA,KAAG,EAAE,MAAI,CAAC,IAAI,OAAO,QAAQA,KAAG,MAAM,OAAO,QAAQ,WAAW,OAAO,KAAK,CAAC,OAAU,OAAM,aAAa,MAAM,MAAM,CAAE,OAAO,MAA+F,SAAS,iBAAiB,OAAK,SAAS,CAAC,IAAM,MAAMW,OAAK,MAAM,SAAS,CAAK,OAAO,MAAM,MAAM,OAAO,GAAM,QAAQ,UAAQ,OAAO,KAAI,IAAI,IAAI,KAAK,OAAOtD,OAAK,IAAI,IAAI2C,IAAE,EAAEA,IAAE,MAAM,OAAO,EAAE,EAAEA,IAAE,CAAC,IAAM,IAAI,MAAMA,KAAG,GAAG,kBAAkB,KAAK,IAAI,CAAC,OAAK,WAAa,YAAY,KAAK,IAAI,CAAC,IAAI,WAAa,sBAAsB,KAAK,IAAI,CAAC,KAAK,WAAa,cAAc,KAAK,IAAI,CAAC,OAAO,WAAa,SAAS,KAAK,IAAI,CAAK,UAAU,MAAM,OAAK,GAAU,KAAK,QAAW,MAAU,MAAM,+BAA+B,IAAI,CAA2H,OAAtH,MAAI,OAAO,OAAO,QAAU,OAAK,OAAO,QAAQ,QAAU3C,SAAK,OAAO,QAAQ,QAAU,SAAO,OAAO,SAAS,QAAc,OAAQ,SAAS,UAAU,OAAK,MAAM,OAAO,CAA6J,OAAzJ,MAAM,SAAO,OAAK,OAAOsD,QAAQ,MAAM,UAAQ,OAAK,QAAQA,QAAQ,MAAM,UAAQ,OAAK,QAAQA,QAAQ,SAAS,IAAO,MAAM,WAAS,OAAK,SAASA,QAAYA,OAAsS,SAAS,UAAU,MAAM,CAAC,IAAI,SAAS,MAAM,MAAM,OAAO,CAAK,IAAI,QAAQ,IAAI,SAAS,CAAuF,OAAlF,KAAI,QAAQ,IAAI,SAAS,IAAI,YAAY,SAAS,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAQ,IAAyJ,SAAS,YAAY,SAAS,SAAS,gBAAgB,CAAC,IAAI,MAAsB,OAAO,OAAO,KAAK,CAAK,SAAyB,OAAO,OAAO,KAAK,CAAK,aAAa,OAAK,KAAK,CAAC,IAAI,QAAQ,SAASA,QAAM,GAAG,SAAS,KAAK,SAASA,QAAM,WAAW,SAAS,GAAG,MAAU,MAAM,eAAeA,OAAK,kEAAkE,EAAO,KAAK,MAAM,IAAI,QAAQ,iBAAiB,CAAC,IAAIR,KAAG,GAAG,IAAI,SAAS,MAAM,SAAS,MAAM,OAAuB,OAAO,OAAO,KAAK,EAAM,MAAM,IAAI,MAAM,SAAS,CAAC,IAAI,GAAG,iBAAiB,EAAE,SAAS,CAAC,CAAC,IAAI,IAAIH,IAAE,EAAEA,IAAE,MAAM,OAAO,MAAI,CAAC,IAAI,OAAO,MAAM,MAAM,EAAEA,IAAE,CAAC,KAAK,IAAI,CAAC,YAAY,OAAO,GAAK,CAAK,SAAS,UAAQ,SAAS,QAAQ,CAAC,eAAe,GAAK,IAAI,CAAC,MAAM,CAAC,IAAI,OAAO,aAAa,CAAC,KAAK,OAAO,MAAM,CAA4E,OAA3E,eAAe,CAAI,cAAc,SAAO,aAAa,OAAO,cAAc,CAAQ,IAAQ,CAAC,EAAE,IAAI,KAAK,MAAM,KAAK,IAAI,CAAC,YAAY,KAAK,GAAM,CAAC,IAAI,QAAQ,SAAS,QAAQ,SAAS,MAAM,CAAC,eAAe,GAAM,KAAa,SAAS,MAAoC,MAAmC,OAAO,EAAG,EAAE,CAAC,EAAK,SAAQ,QAAQ,IAAI,KAAK,QAAQ,CAAI,iBAAe,QAAQ,eAAe,KAAO,IAAI,IAAI,KAAK,SAAS,CAAC,IAAI,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,IAAI,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,IAAI,IAAI,SAAS,OAAO,CAAC,IAAI,SAAS,MAAM,SAAS,MAAM,OAAuB,OAAO,OAAO,KAAK,EAAgE,IAAI,IAAI,MAAtE,CAAkB,SAAS,OAAK,CAAC,eAAe,GAAM,IAAI,EAAE,CAAC,CAAgB,SAAS,SAAS,KAAK,IAAI,KAAK,EAAE,IAAI,CAAE,IAAIW,OAAK,EAAE,WAAW,EAAE,IAAI,GAAG,CAACA,OAAK,SAAS,IAAI,IAAI,UAAU,OAAQ,IAAI,OAAOA,OAAK,EAAE,IAAI,EAAE,eAAe,CAAI,EAAE,OAAM,IAAI,OAAO,SAASA,OAAK,EAAE,MAAM,EAAE,eAAe,CAAG,OAAO,MAAO,SAAS,YAAY,IAAI,MAAM,KAAK,MAAM,CAAC,IAAIA,OAAK,QAAQ,MAAM,CAAK,SAAS,YAAYA,OAAK,EAAE,CAAC,OAAO,cAAc,SAAS,EAAEA,OAAK,QAAQA,QAAM,IAAQ,OAAO,GAAG,YAAY,GAAS,cAAc,aAAa,MAAM,MAAM,aAAa,OAAO,QAAO,OAAO,aAAa,OAAO,KAAO,YAAY,cAAc,QAAQ,MAAM,QAAQ,CAAC,KAAE,aAAa,OAAM,IAAI,IAAoB,IAAI,IAAQ,OAAO,SAAS,CAAC,GAAG,QAAQ,CAAC,IAAI,IAAI,OAAO,QAAQ,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,GAAE,IAAI,IAAI,IAAI,CAAI,IAAI,KAAK,MAAM,EAAC,MAAO,GAAS,QAAQ,iBAAe,YAAY,IAAM,MAAO,IAAY,SAAS,IAAI,OAAO,SAAS,UAAU,GAAG,SAAS,CAAC,GAAG,OAAO,SAAS,OAAO,UAAUA,OAAK,MAAM,CAAC,OAAO,EAAE,CAAC,MAAO,GAAK,GAAG,SAAS,MAAM,QAAQ,MAAM,SAAS,MAAM,UAAU,EAAE,QAAQ,SAAS,MAAM,SAAS,MAAM,UAAU,SAAS,KAAK,MAAM,WAAW,UAAUA,WAAS,OAAO,SAAS,OAAO,UAAU,SAAS,MAAM,GAAK,EAAE,EAAqB,MAAM,WAAW,UAAU,MAAM,MAAM,WAAWA,QAAM,WAAW,UAAU,OAAO,SAAS,OAAO,UAAU,UAAU,MAAM,GAAM,EAAE,CAAC,MAAO,WAAc,QAAQ,MAAM,UAAa,OAAO,SAAS,OAAO,UAAUA,OAAK,MAAM,GAAK,EAAE,CAAC,MAAO,GAAM,GAAG,OAAO,SAAS,KAAK,CAAC,MAAO,GAAM,OAAO,YAS4kF,SAAS,YAAY,KAAK,KAAG,KAAK,GAAG,EAAE,CAAC,KAAG,UAAU,EAAE,IAAI,IAAI,OAAO,KAAK,UAAU,KAAK,GAAG,CAAC,IAAI,KAAK,EAAE,CAAC,OAAO,MAAM,CAAC,KAAK,KAAK,OAAO,MAAM,OAAQ,GAAG,CAAC,OAAO,UAAU,KAAM,EAAErD,KAAG,KAAK,OAAO,MAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAG,SAAS,YAAY,KAAK,UAAU,CAAC,IAAI,QAAQ,KAAK,cAAc,GAAG,QAAQ,QAAQ,GAAG,QAAQ,GAAG,MAAM,KAAK,SAAS,MAAM,QAAQ,GAAG,IAAI,KAAK,SAAS,GAAG,OAAO,QAAQ,IAAI,OAAO,EAAE,CAAC,IAAI,GAAG,CAAC,KAAK,MAAM,QAAS,KAAK,KAAK,IAAI,KAAK,MAAM,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,UAAU,CAAC,GAAG,KAAK,IAAI,KAAK,MAAM,IAAI,OAAO,GAAG,CAAC,GAAG,GAAG,UAAU,CAAI,OAAO,QAAQ,OAAO,OAAO,OAAO,GAAG,IAAI,KAAK,OAAO,OAAO,OAAO,GAAG,GAAG,GAAQ,OAAO,KAAK,CAAC,KAAK,GAAG,CAAC,CAAE,OAAO,OAU9lS,SAAS,iBAAiB,CAAC,IAAI6C,KAAG,GAAG,kBAAkB,MAAM,OAAO,SAAU,KAAa,SAAS,KAAK,CAAC,IAAI,OAAO,SAAS,KAAK,MAAM,kBAAsB,OAAO,SAAgC,OAAO,aAAa,KAAM,OAAO,kBAAkB,GAAmc,SAAS,sBAAsB,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAmB,SAAS,mBAAmB,CAAC,MAAO,CAAU,UAAQ,WAAW,UAAU,KAAK,CAAC,cAAc,KAAK,CAAC,OAAO,IAAI,eAAe,CAAC,OAAO,KAAK,aAAa,YAAY,EAAE,KAAK,MAAM,CAAC,GAAG,CAAC,IAAI,MAAM,KAAK,MAAUtD,OAAK,YAAY,EAAE,GAAG,EAAE,CAAC,GAAGA,QAAM,EAAE,CAAC,IAAI,KAAK,KAAK,OAAO,IAAI,CAAK,KAAK,KAAK,MAAM,QAAQ,IAAI,YAAY,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,CAAC,OAAO,WAAW,QAAQ,CAAC,OAAO,IAAI,WAAW,KAAK,IAAI,MAAM,KAAK,KAAK,sBAAsB,CAAC,CAAC,CAAE,OAAO,KAAK,gBAAgBA,UAAQ,KAAK,gBAAgBA,QAAM,WAAW,QAAQ,CAAC,OAAO,IAAI,kBAAkB,KAAKA,OAAK,CAAC,CAAC,GAAI,SAAS,KAAK,YAAY,IAAK,GAAE,MAAM,CAAC,CAAE,OAAO,OAAO,CAAC,IAAI,KAAK,OAAO,MAAM,MAAM,kBAAkB,CAAI,OAAO,WAAW,MAAM,kBAAkB,EAAE,KAA4G,KAAK,YAAY,KAAK,UAAU,WAAW,OAAO,KAAK,YAAY,EAAzK,KAAK,UAAU,KAAK,cAAc,KAAK,CAAC,KAAK,YAAY,KAAK,UAAU,WAAW,OAAO,KAAK,EAA6E,YAAY,KAAK,CAAC,KAAK,KAAK,KAAK,KAAK,YAAY,WAAW,KAAK,KAAK,gBAAgC,OAAO,OAAO,KAAK,CAAC,KAAK,UAAU,KAAK,cAAc,KAAK,MAAM,MAAM,kBAAkB,CAAC,CAAC,KAAK,YAAY,KAAK,UAAU,WAAW,KAAK,GAAI,CAAC,YAAY,GAAG,EAAE,YAAY,CAAC,CAA8B,SAAS,cAAc,OAAK,CAA6D,OAAzDA,QAAM,GAAU,mBAAsBA,QAAM,GAAS,IAAW,OAAO,aAAa,KAAKA,OAAK,CAAy2C,SAAS,qBAAqB,CAAC,OAAO,sBAQlqI,SAAS,QAAQ,OAAO,CAAC,IAAI,OAAO,CAAC,WAAW,CAAoE,OAAhE,QAAQ,OAAO,QAAQ,IAAM,OAAO,KAAK,aAAa,GAAG,GAAK,CAAC,CAAQ,OAAyiG,SAAS,QAAQ,IAAI,CAAC,OAAO,MAAM,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAE,SAAS,cAAc,OAAO,QAAQ,IAAI,CAAC,KAAM,OAAO,OAAO,OAAO,MAAM,KAAQ,OAAO,MAAM,KAAI,QAAQ,KAAK,OAAO,MAAM,CAAC,OAAO,MAAM,CAAyyH,SAAS,YAAY,EAAE,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,MAAO,GAAM,IAAI,IAAImD,IAAE,EAAEA,IAAE,EAAE,OAAO,MAAI,GAAG,CAAC,EAAEA,KAAG,QAAQ,EAAEA,KAAG,CAAC,MAAO,GAAM,MAAO,GAAumB,SAAS,aAAa,KAAK,SAAO,CAAC,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAC,aAAazC,SAAO,KAAK,MAAM,CAAyyB,SAAS,YAAY,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,iBAAiB,GAAG,OAAO,CAAC,SAAS,CAAC,iBAAiB,CAAE,SAAS,cAAc,MAAM,CAAC,IAAI,KAAK,EAAE,KAAM,KAAK,OAAM,KAAK,KAAK,GAAG,EAAE,OAAO,4oEAxbjxR,oDAxBzkB,CAC1VC,IAAE,IAAQC,QAAM,OAAO,OAAQ,IAAY,KAAKD,IAAE,OAAO,IAAIA,IAAE,CAAKE,MAAI,OAAO,OAAQ,IAAY,aAAa,KAAK,MAAM,KAAK,QAAQ,CAAC,IAAI,CAAC,OAAO,WAAW,CAAK2C,MAAI,OAAO,WAAY,IAAY,WAAkB,SAAQ,OAAmB,EAAE,CAAT,OAAcjD,cAAY,KAAK,CAEjR,UAAU,CAAC,OAAO,KAAK,MAAM,KAAK;EAAK,CAEvC,OAAO,SAAS,CAAC,IAAIsC,KAAGW,MAAI5C,UAAQ,EAAkB,MAAhB,OAAIA,SAAOiC,KAAG,EAASlC,IAAEkC,KAAG,SAAS,GAAG,CAa9E,OAAO,MAAM,KAAK,QAAQ,EAAE,KAAKhC,QAAM,IAAIG,WAAS,KAAK,EAAE,MAAM,MAAM,QAAQ,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAK1G,YAAY,KAAK,QAAQ,CAAC,KAAK,MAAM,EAAE,CAAC,GAAG,CAAC,QAAQ,SAAS,EAAE,CAAC,SAAS,cAAc,SAAS,CAAC,MAAM,KAAK,KAAK,SAAS,CAAC,CAAC,SAAS,CAAC,SAAS,MAAM,OAAO,CAAE,SAAS,OAAO,UAAU,MAAM,OAAO,YAAY,CAAC,IAAI,MAAM,EAAE,CAAC,KAAK,YAAY,KAAK,UAAU,GAAG,CAAC,UAAU,MAAM,KAAK,IAAI,YAAY,GAAG,MAAM,OAAO,KAAK,OAAO,OAAO,KAAK,UAAU,GAAG,IAAI,CAAC,IAAI,IAAI,QAAQ,MAAM,CAAC,IAAI,MAAM,MAAM,MAAM,GAAG,IAAI,KAAK,KAAK,CAAE,OAAO,KAAK,MAAM,OAAO,CAAC,IAAI,MAAM,UAAU,IAAI,KAAK,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,OAAO,SAAU,OAAO,OAAO,OAAO,SAAS,CAAC,GAAG,CAAC,KAAK,MAAU,WAAW,4BAA4B,KAAK,iCAAiC,CAAC,OAAO,cAAc,KAAK,CAAC,MAAM,MAAM,UAAU,MAAU,OAAO,MAAM,MAAM,KAAK,KAAK,QAAQ,MAAM,GAAG,CAAC,QAAQ,SAAS,KAAG,IAAI8B,IAAE,aAAa,CAAC,CAAC,KAAK,MAAM,IAAI,EAAM,MAAM,QAAQ,YAAW,OAAO,MAAM,QAAQ,CAAC,MAAM,CAAC,YAAY,UAAU,IAAI,OAAO,CAAC,WAAW,KAAK,KAAK,CAAC,KAAK,MAAM,KAAK,IAAI,CAAC,IAAI,CAAG,IAAI,IAAI,QAAQ,KAAK,OAAO,cAAc,KAAK,CAAC,KAAK,MAAM,KAAK,MAAM,GAAQ7B,aAA2B,IAAI,IAAQD,WAAS,KAAK,CAAC,MAAM,QAAQ,CAAC,IAAI,MAAM,KAAK,MAAU,IAAI,EAAE,EAAE,EAAE,IAAI,IAAImC,IAAE,EAAEA,IAAE,QAAQ,OAAO,MAAI,CAAC,IAAI,IAAI,QAAQA,KAAG,MAAM,KAAK,QAAQ,QAAQ,IAAI,CAAkE,GAA9D,MAAM,GAAG,MAAM,KAAI,KAAK,QAAQ,OAAO,MAAM,EAAE,CAAC,IAAI,MAAM,IAAO,OAAO,GAAmC,IAA/B,KAAK,QAAQ,OAAO,IAAI,EAAE,IAAI,CAAI,MAAM,IAAI,IAAI,EAAE,EAAE,EAAE,IAAI,MAAM,OAAO,IAAI,MAAM,WAAW,IAAI,MAAM,GAAG,MAAM,KAAM,CAAC,KAAM,EAAE,OAAM,KAAK,KAAK,QAAQ,KAAK,MAAM,OAAO,KAAK,IAAI,MAAM,OAAO,KAAM,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,GAAG,KAAK,QAAQ,OAAO,KAAK,MAAM,KAAK,QAAQ,IAAI,UAAU,CAAC;EAAK,KAAK,SAAS,YAAY,MAAO,YAAY,KAAK,CAAC,IAAI,KAAK,KAAK,eAAe,KAAK,IAAI,KAAK,YAAY,GAAG,CAAC,KAAK,MAAM,KAAK,oBAAoB,IAAI,cAAc,CAAC,IAAI,QAAQlC,aAAW,IAAI,KAAK,CAAC,GAAG,QAA6E,MAApE,MAAK,mBAAmB,CAAC,QAAQ,MAAM,GAAG,KAAK,mBAAoB,CAAQ,KAAKJ,OAAK,QAAS,KAAK,MAAM,IAAI,IAAI,cAAc,KAAK,mBAAmB,CAAC,KAAK,MAAM,GAAG,KAAK,mBAAmB,CAAC,aAAW,IAAI,KAAK,KAAK,KAAM,CAAC,KAAK,SAAS,KAAK,cAAc,QAAQ,CAAC,IAAI,OAAO,KAAK,MAAM,KAAK,OAAO,aAAa,KAAK,SAAS,OAAO,WAAW,CAAE,KAAK,QAAQ,EAAE,CAAC,KAAKA,OAAK,OAC5pE,KAAK,CAAC,EAAE,YAAY,EAAE,MAAM,GAAG,QAAQ,GAAG,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,GAAG,WAAW,GAAG,SAAS,GAAG,IAAI,GAAG,SAAS,GAAG,WAAW,GAAG,MAAM,GAAG,OAAO,GAAG,YAAY,GAAG,UAAU,GAAG,aAAa,GAAG,YAAY,GAAG,cAAc,GAAG,SAAS,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,OAAO,GAAG,OAAO,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,UAAU,IAAI,aAAa,IAAI,QAAQ,IAAI,QAAQ,IAAI,UAAU,IAAI,UAAU,IAAI,MAAM,IAAI,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,CAAK,MAAM,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,CAAK,IAAW,YAAW,QAAa,MAAM,KAAK,UAAU,SAAS,CAAK,GAAU,YAAW,QAAa,gDAAgD,KAAK,UAAU,UAAU,CAAK,EAAE,EAAE,EAAE,GAAG,IAAI,KAAK,GAAG,GAAG,KAAK,GAAG,GAAG,OAAO,EAAE,CAAO,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,KAAK,EAAE,KAAK,IAAI,EAAQ,IAAI,EAAE,GAAG,GAAG,GAAG,IAAK,KAAK,GAAG,OAAO,aAAa,EAAE,GAAG,CAAC,MAAM,GAAG,OAAO,aAAa,EAAE,CAAQ,IAAI,QAAQ,KAAS,MAAM,eAAe,KAAK,GAAC,MAAM,MAAM,KAAK,OAC+mG,kBAAkB,KAAK,CAAC,GAAG,OAAO,CAAC,OAAO,KAAK,YAAY,OAAO,YAAY,KAAK,cAAc,OAAO,cAAc,KAAK,WAAW,OAAO,WAAW,KAAK,aAAa,OAAO,YAAa,SAAS,MAAM,CAAC,GAAG,CAAC,WAAW,WAAW,MAAM,KAAK,IAAI,WAAW,KAAK,IAAI,MAAM,aAAa,WAAW,UAAU,WAAW,CAAC,EAAE,CAAC,UAAU,KAAK,IAAI,MAAM,YAAY,UAAU,UAAU,UAAU,CAAC,EAAE,CAAC,CAAE,IAAI,WAAW,aAAa,UAAU,YAAY,CAAC,KAAK,WAAW,WAAW,KAAK,aAAa,aAAa,KAAK,UAAU,UAAU,KAAK,YAAY,YAAa,aAAa,CAAC,KAAK,WAAW,KAAK,KAAK,aAAa,EAAE,KAAK,UAAU,KAAK,KAAK,YAAY,IAAS,uBAAuB,KAA01D,OAAO,KAAK,CAAC,OAAO,OAAO,IAAI,QAAQ,CAAC,OAAO,IAAI,OAAO,IAAI,WAAW,SAAS,IAAI,CAAC,QAAQ,CAAE,OAAO,MAAM,IAAI,QAAQ,CAAC,OAAO,IAAI,OAAO,IAAI,WAAW,SAAS,IAAI,CAAC,EAAE,QAAQ,CAAE,YAAY,KAAK,OAAO,QAAQ,GAAK,CAAC,KAAK,KAAK,KAAK,KAAK,OAAO,OAAO,KAAK,QAAQ,UAAe,WAAW,EAAE,CAAK,YAAY,KAAK,CAAC,IAAI,iBAAiB,CAAC,OAAO,KAAM,IAAI,YAAY,CAAC,OAAO,KAAK,OAAO,KAAK,OAAO,UAAU,KAAK,CAAC,EAAG,IAAI,UAAU,CAAC,OAAO,KAAK,WAAW,KAAK,OAAQ,UAAU,KAAK,CAAC,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,SAAS,KAAK,SAAS,CAAC,GAAG,OAAO,KAAK,OAAO,IAAI,KAAK,MAAM,OAAO,MAAM,WAAY,MAAU,WAAW,6BAA6B,CAAE,SAAS,KAAK,CAAC,OAAO,KAAK,UAAU,KAAK,CAAC,KAAK,OAAQ,KAAK,KAAK,MAAM,CAAC,GAAG,KAAK,MAAM,EAAE,CAAC,IAAI,OAAO,KAAK,IAAQ,KAAK,KAAK,KAAK,IAAI,IAAI,SAAS,KAAK,SAAS,CAAC,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,MAAM,MAAM,KAAK,KAAK,KAAK,YAAY,OAAO,YAAY,CAAC,IAAI,YAAY,YAAY,IAAI,KAAK,EAAI,CAAC,aAAa,CAAC,YAAY,QAAQ,YAAY,YAAY,MAAM,GAAC,MAAM,SAAS,KAAK,CAAE,MAAM,KAAK,KAAK,MAAM,CAAC,MAAM,MAAM,EAAiI,GAA9H,KAAK,KAAK,KAAK,YAAY,OAAO,WAAc,OAAO,CAAC,MAAM,SAAS,MAAM,MAAM,QAAQ,MAAM,MAAM,MAAI,MAAM,QAAQ,IAAQ,MAAM,IAAI,YAAY,OAAQ,KAAM,MAAM,MAAM,MAAM,KAAI,KAAK,KAAK,KAAK,MAAO,OAAO,aAAa,MAAM,IAAI,KAAK,CAAE,KAAK,MAAM,IAAwG,IAAnG,KAAK,KAAK,KAAK,YAAY,OAAO,WAAc,MAAM,OAAO,MAAM,MAAM,SAAO,MAAM,QAAQ,IAAW,MAAK,KAAK,KAAK,KAAK,SAAU,KAAK,MAAM,MAAO,IAAI,UAAU,KAAK,SAAS,AAAyC,OAAO,SAA/B,OAAO,KAAK,KAAK,MAAM,CAAc,GAAK,SAAS,KAAK,EAAE,gBAAgB,KAAK,OAAO,CAAC,IAAI,MAAM,GAAG,MAAM,KAAK,IAAK,MAAM,KAAK,IAAI,WAAW,YAAa,CAAC,IAAI,KAAK,UAAU,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,IAAI,OAAO,KAAK,WAAW,GAAG,QAAQ,KAAK,IAAI,MAAS,MAAM,GAAG,OAAO,YAAY,OAAO,YAAW,AAAwC,KAArC,MAAM,OAAO,WAAgB,GAAa,GAAG,KAAK,OAAQ,AAA0B,MAAvB,KAAK,EAAQ,KAAgB,KAAK,YAAa,GAAG,OAAO,KAAK,IAAI,WAAW,MAAO,GAAE,KAAM,OAAO,CAAC,YAAY,IAAI,MAAM,EAAC,MAAM,MAAM,YAAY,GAAG,CAAC,MAAM,OAAO,KAAK,OAAO,IAAI,IAAIsC,IAAE,EAAE,IAAI,GAAG,MAAI,CAAC,IAAI,MAAM,KAAK,SAASA,KAAG,GAAG,MAAM,KAAK,MAAM,OAAO,IAAI,KAAK,MAAM,OAAO,MAAM,YAAa,gBAAgB,KAAK,GAAG,OAAO,EAAE,CAAC,IAAI,MAAM,GAAG,UAAU,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,IAAIA,IAAE,EAAE,IAAI,OAAO,QAAQ,OAAOA,IAAE,KAAK,SAAS,OAAO,MAAI,CAAC,IAAI,MAAM,KAAK,SAASA,KAAG,IAAI,IAAI,MAAM,OAAO,GAAG,IAAI,MAAM,IAAI,GAAG,OAAO,MAAM,gBAAgB,KAAK,GAAG,IAAI,CAAiD,GAA7C,KAAK,MAAM,OAAO,KAAI,MAAMA,IAAE,UAAU,KAAQ,IAAI,IAAI,MAAM,IAAI,YAAY,KAAK,IAAI,CAAC,IAAIA,IAAE,MAAM,QAAQ,MAAO,QAAQ,IAAI,IAAI,IAAI,MAAM,WAAY,MAAM,CAAC,KAAK,UAAU,GAAG,MAAM,EAAE,OAAO,KAAK,OAAO,MAAM,UAAU,MAAM,KAAK,SAAS,MAAM,GAAG,IAAI,YAAY,OAAO,KAAK,IAAI,WAAW,OAAO,IAAI,KAAK,SAAS,QAAQ,KAAK,EAAE,KAAK,SAAS,KAAK,IAAI,KAAK,CAAE,UAAU,UAAU,GAAM,CAAC,KAAK,OAAO,EAAE,KAAK,iBAAiB,UAAU,CAAE,iBAAiB,UAAU,CAAC,IAAI,IAAI,OAAO,KAAK,OAAO,OAAO,OAAO,OAAO,OAAO,CAA8B,GAA1B,YAAU,OAAO,OAAO,GAAK,OAAO,MAAM,EAAE,OAAO,OAAO,OAAO,EAAE,UAAU,IAAQ,UAAU,OAAO,CAAI,KAAK,QAAQ,SAAQ,KAAK,OAAO,OAAU,KAAK,OAAM,KAAK,iBAAiB,GAAK,EAAG,OAAO,IAAI,CAAI,KAAK,MAAI,KAAK,IAAI,OAAO,MAAK,KAAK,IAAI,IAAI,IAAI,OAAO,KAAM,IAAI,UAAU,CAAC,IAAI,IAAI,EAAE,OAAO,CAAC,IAAI,OAAO,EAAE,OAAO,GAAG,CAAC,OAAO,OAAO,EAAE,EAAE,QAAS,gBAAgB,KAAK,GAAG,SAAS,WAAW,CAAC,KAAK,WAAW,CAAC,IAAI,IAAIA,IAAE,KAAKA,IAAE,GAAG,MAAI,CAAC,IAAI,MAAM,KAAK,SAASA,KAAM,MAAM,QAAQ,MAAK,MAAM,SAAS,CAAE,KAAK,SAAS,OAAO,KAAK,GAAG,KAAK,GAAG,SAAS,CAAC,IAAI,IAAI,GAAG,EAAE,GAAG,SAAS,OAAO,KAAK,SAAS,IAAI,UAAU,KAAK,CAAE,eAAe,KAAK,CAAC,MAAO,GAAO,YAAY,OAAO,CAAC,MAAO,GAAO,YAAY,IAAI,KAAK,OAAO,CAAC,OAAO,IAAI,YAAY,KAAK,SAAS,IAAI,KAAK,SAAS,OAAO,CAAE,SAAS,IAAI,KAAK,EAAE,CAAC,OAAO,KAAK,aAAa,CAAC,QAAQ,IAAI,KAAK,CAAE,UAAU,CAAC,IAAIW,OAAK,KAAK,YAAY,KAAK,QAAQ,OAAO,GAAG,CAAC,OAAOA,QAAM,KAAK,SAAS,OAAO,IAAI,KAAK,SAAS,MAAM,CAAC,IAAI,KAAK,OAAO,KAAKA,QAAM,OAAO,KAAK,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,WAAW,IAAI,IAAK,OAAO,IAAI,KAAK,CAAC,OAAO,KAAK,OAAQ,IAAI,YAAY,CAAC,MAAO,GAAM,IAAI,UAAU,CAAC,MAAO,GAAO,IAAI,UAAU,CAAC,MAAO,GAAO,MAAM,KAAK,GAAG,OAAO,SAAS,UAAU,QAAQ,CAAC,MAAO,GAAO,OAAO,MAAM,CAAC,MAAO,GAAO,YAAY,MAAM,CAAC,OAAO,MAAM,aAAa,KAAK,YAGj+V,SAAS,CAAC,MAAO,GAAG,SAAS,CAAC,KAAK,OAAO,KAAM,aAAa,CAAC,KAAK,OAAO,KAAK,KAAK,IAAI,KAAK,KAAK,MAAM,IAAK,YAAY,UAAU,WAAW,EAA+F,YAAY,KAAK,CAAC,QAAQ,IAAI,KAAK,EAAE,CAAC,OAAO,CAAC,GAAG,IAAI,KAAK,KAAK,KAAK,KAAK,MAAM,KAAK,GAAG,KAAK,GAAG,GAAG,KAAK,SAAS,KAAK,EAAE,GAAG,YAAmC,MAAtB,MAAK,IAAI,IAAI,KAAK,IAAW,KAAM,IAAI,KAAK,KAAK,SAAS,EAAE,KAAK,GAAG,KAAK,KAAK,KAAK,OAAO,KAAK,YAAa,YAAY,SAAS,IAAI,IAAE,CAAC,KAAK,SAAS,SAAS,KAAK,IAAI,IAAI,KAAK,EAAEX,IAAE,KAAK,IAAI,IAA2+D,IAAW,YAAW,OAAsB,CAAC,UAAU,GAAG,OAAO,GAAG,SAAS,GAAG,CAA9C,UAAmD,IAAI,OAAO,SAAU,IAAY,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAK,QAAwB,cAAc,KAAK,IAAI,UAAU,CAAK,UAA0B,UAAU,KAAK,IAAI,UAAU,CAAK,QAAwB,wCAAwC,KAAK,IAAI,UAAU,CAAK,IAAI,CAAC,EAAE,WAAW,SAAS,SAAa,MAAM,CAAC,KAAqB,gBAAgB,KAAK,IAAI,UAAU,CAAK,OAAO,CAAC,KAAqB,gBAAgB,KAAK,IAAI,UAAU,CAAK,OAAO,wBAAwB,IAAI,gBAAgB,MAAU,OAAO,CAAC,KAAqB,iBAAiB,KAAK,IAAI,OAAO,CAAK,IAAI,SAAyB,cAAc,KAAK,IAAI,UAAU,EAAE,IAAI,eAAe,GAAO,QAAQ,CAAC,IAAI,KAAqB,MAAM,KAAK,IAAI,SAAS,CAAC,QAAwB,MAAM,KAAK,IAAI,SAAS,CAAC,MAAsB,YAAY,KAAK,IAAI,SAAS,CAAC,GAAG,IAAI,WAAW,UAAU,IAAI,cAAc,EAAE,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,GAAG,EAAE,MAAM,cAAc,MAAM,EAAkB,iBAAiB,KAAK,IAAI,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,OAAO,eAAe,OAAO,CAAC,OAAO,GAAG,EAAE,IAAI,QAAwB,YAAY,KAAK,IAAI,UAAU,CAAC,OAAO,OAAO,eAAe,OAAO,EAAkB,uBAAuB,KAAK,UAAU,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,QAAQ,IAAI,gBAAgB,MAAM,SAAS,KAAgB,gBAAX,WAA2B,CAAK,WAAW,IAAQ,SAAS,cAAc,WAAW,CAAC,IAAI,QAAQ,CAAC,OAAO,KAAK,KAAK,OAAQ,UAAU,QAAQ,CAAC,KAAK,OAAO,SAAS,SAAS,eAAe,KAAK,KAAK,CAAC,CAAE,KAAK,KAAK,MAAM,CAAK,KAAK,KAAI,KAAK,WAAW,CAAI,KAAK,IAAI,WAAW,KAAK,OAAS,OAAO,MAAM,MAAM,KAAK,MAAI,MAAM,QAAQ,IAAK,KAAK,IAAI,UAAU,KAAK,MAAO,SAAS,IAAI,CAAI,IAAI,UAAU,GAAE,KAAK,UAAU,IAAI,CAAE,MAAM,KAAK,GAAG,OAAO,CAAwM,OAApM,SAAS,EAAE,kBAAkB,WAAW,KAAK,QAAQ,GAAG,MAAM,OAAO,OAAO,YAAmB,IAAM,KAAK,KAAK,KAAK,KAAK,MAAM,EAAE,KAAK,EAAE,OAAO,OAAO,KAAK,IAAI,KAAK,KAAK,MAAM,GAAG,CAAC,KAAK,WAAW,CAAQ,IAAM,MAAM,KAAK,CAAC,IAAI,OAAO,IAAI,SAAS,KAAK,KAAK,MAAM,KAAK,CAAC,CAAoD,MAAnD,MAAK,KAAK,KAAK,KAAK,MAAM,EAAE,KAAK,CAAC,KAAK,WAAW,CAAQ,OAAQ,gBAAgB,KAAK,OAAO,CAAC,OAAO,MAAM,KAAK,IAAI,OAAO,OAAO,KAAK,KAAK,OAAO,EAAG,SAAS,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,IAAI,IAAI,CAAE,gBAAgB,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,OAAO,GAAG,OAAO,KAAK,OAAO,SAAS,KAAK,IAAI,OAAO,KAAK,IAAI,YAAY,CAAE,SAAS,IAAI,KAAK,CAAC,OAAO,WAAW,KAAK,IAAI,IAAI,KAAK,CAAE,YAAY,KAAK,CAAC,OAAO,CAAC,KAAK,KAAK,OAAY,SAAS,cAAc,WAAW,CAAC,SAAS,IAAI,CAAuE,GAAtE,gBAAgB,IAAI,CAAI,KAAK,KAAK,QAAM,IAAI,UAAU,KAAK,KAAK,OAAS,KAAK,KAAK,MAAM,IAAI,IAAIW,UAAQ,KAAK,KAAK,MAAM,IAAI,aAAaA,OAAK,KAAK,KAAK,MAAMA,QAAM,CAAC,OAAO,IAAK,SAAS,KAAK,CAAI,KAAK,UAAU,KAAK,KAAK,QAAQ,aAAa,GAAE,KAAK,OAAO,KAAK,CAAC,KAAK,OAAO,GAAM,KAAK,KAAK,MAAM,CAAK,KAAK,IAAkF,KAAK,MAAM,GAAE,KAAK,SAAS,KAAK,IAAI,CAAlH,KAAK,OAAO,KAAK,SAAS,SAAS,cAAc,KAAK,KAAK,QAAQ,CAAC,CAAC,CAA8C,MAAM,KAAK,KAAK,MAAM,CAAE,MAAM,KAAK,GAAG,OAAO,UAAU,UAAU,QAAQ,CAAqO,OAAjO,SAAS,EAAE,kBAAkB,UAAU,OAAO,KAAK,GAAG,KAAK,KAAK,GAAG,MAAM,WAAW,GAAG,GAAG,KAAK,QAAQ,SAAS,GAAU,IAAM,kBAAkB,KAAK,KAAK,GAAG,OAAO,OAAO,SAAS,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,CAAC,KAAK,WAAW,CAAQ,IAAM,MAAM,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC,IAAI,EAAE,WAAW,GAAGX,IAAE,EAAE,IAAI,IAAI,OAAO,KAAK,SAAS,CAAC,IAAI,IAAI,IAAI,IAAI,OAAU,IAAI,MAAK,OAAO,KAAK,IAAI,KAAK,IAAI,MAAM,KAAK,IAAI,CAAC,IAAI,CAAI,WAAW,GAAG,KAAK,OAAK,WAAWA,KAAE,IAAI,IAAI,MAAK,IAAI,OAAO,KAAK,OAAO,KAA0F,MAArF,MAAK,OAAO,KAAQ,WAAW,KAAI,KAAK,SAAS,OAAO,WAAW,KAAK,WAAW,EAAS,IAAI,SAAS,KAAK,KAAK,OAAO,OAAO,CAAE,SAAS,IAAI,CAAC,OAAO,eAAe,KAAK,IAAI,CAAE,SAAS,IAAI,KAAK,CAAC,OAAO,iBAAiB,KAAK,IAAI,KAAK,CAAE,YAAY,KAAK,SAAS,EAAE,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,KAAK,KAAK,KAAK,SAAS,SAAS,KAAK,OAAO,OAAO,IAAI,IAAI,MAAM,SAAS,GAAG,UAAU,KAAK,GAAqmB,WAAW,cAAc,WAAW,CAAC,OAAO,OAAO,OAAO,OAAO,KAAK,CAAC,OAAO,IAAI,OAAO,YAAY,YAAY,OAAO,OAAO,KAAK,CAAE,MAAM,KAAK,CAAC,IAAI,OAAO,WAAW,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,KAAK,KAAK,CAAmB,MAAlB,MAAK,QAAQ,KAAY,OAAQ,KAAK,KAAK,EAAI,CAAC,KAAK,KAAK,CAAC,KAAK,OAAO,UAAU,KAAK,IAAI,KAAK,IAAK,KAAK,KAAK,KAAK,YAAW,KAAK,WAAW,QAAQ,KAAK,IAAI,CAAC,KAAK,WAAW,KAAK,KAAK,OAAO,KAAK,OAAO,MAAM,KAAK,CAAC,CAAC,KAAK,IAAI,gBAAgB,SAAU,SAAS,CAAC,OAAO,KAAK,KAAM,MAAM,KAAK,GAAG,OAAO,SAAS,UAAU,QAAQ,CAA6M,OAAzM,SAAS,EAAE,kBAAkB,aAAa,CAAC,KAAK,OAAO,QAAQ,OAAO,OAAO,EAAE,KAAK,GAAG,WAAW,GAAG,GAAG,KAAK,QAAQ,SAAS,GAAU,IAAM,KAAK,OAAO,MAAM,OAAO,OAAO,OAAO,IAAI,KAAK,OAAO,IAAW,IAAM,OAAO,MAAM,CAA+R,OAA3R,iBAAiB,YAAY,MAAM,MAAM,KAAK,MAAM,KAAK,OAAO,aAAa,MAAM,OAAO,aAAiB,KAAK,OAAO,QAAQ,MAAM,OAAO,EAAC,KAAK,UAAU,GAAK,CAAI,KAAK,KAAK,CAAC,KAAK,aAAW,KAAK,WAAW,KAAK,QAAO,KAAK,OAAO,MAAM,OAAO,KAAK,OAAO,MAAM,OAAc,IAAa,GAAO,gBAAgB,CAAC,MAAO,GAAM,YAAY,MAAM,CAAC,OAAO,KAAK,OAAO,YAAY,MAAM,CAAE,IAAI,iBAAiB,CAAC,GAAG,KAAK,QAAQ,EAAE,OAAO,KAAK,MAAM,IAAI,KAAK,KAAK,KAAM,KAAK,QAAO,KAAK,KAAK,OAAO,GAAG,CAAC,MAAM,KAAK,KAAK,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,WAAW,OAAO,KAAK,KAAK,MAAM,MAAM,MAAM,KAAK,OAAO,CAAC,KAAK,MAAO,SAAS,IAAI,CAAC,OAAO,KAAK,OAAO,KAAK,EAAE,KAAK,KAAK,GAAG,OAAO,OAAO,KAAK,IAAI,CAAC,OAAO,MAAM,KAAK,IAAI,KAAK,KAAK,OAAO,CAAE,iBAAiB,CAAC,OAAO,KAAM,SAAS,IAAI,KAAK,CAAC,IAAI,OAAO,KAAK,OAAO,SAAS,KAAK,IAAI,IAAI,KAAK,CAAC,GAAG,OAAO,OAAO,OAAO,IAAI,MAAM,KAAK,IAAI,gBAAgB,CAAC,KAAK,KAAK,GAAG,CAAC,MAAM,OAAO,OAAO,KAAK,IAAI,SAAS,KAAK,KAAK,KAAK,KAAK,EAAE,IAAI,EAAE,IAAI,IAAIA,IAAE,SAAS,MAAM,OAAO,EAAE,EAAqB,KAAK,MAAMA,KAAM,MAAI,EAAEA,KAAG,EAAEA,KAAG,MAAM,OAAO,GAAG,KAAK,IAAI,KAAK,QAA/E,KAAG,SAAS,GAAG,GAA8E,OAAO,KAAK,OAAO,KAAK,YAAY,KAAK,CAAC,SAAS,CAAE,IAAI,YAAY,CAAC,MAAO,GAAO,IAAI,UAAU,CAAC,MAAO,GAAM,IAAI,UAAU,CAAC,OAAO,KAAK,OAAO,SAAU,SAAS,CAAC,MAAM,SAAS,CAAI,KAAK,KAAI,KAAK,OAAO,QAAQ,KAAK,IAAI,CAAE,YAAY,OAAO,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,OAAO,OAAO,KAAK,OAAO,OAAO,KAAK,KAAK,KAAK,KAAK,WAAW,OAAY,gBAAgB,cAAc,UAAU,CAAC,SAAS,IAAI,CAAC,GAAG,CAAC,QAAQ,MAAM,KAAK,OAA+E,OAApE,QAA2E,oBAAoB,IAAI,EAAE,QAAQ,KAAK,KAAK,OAAO,QAAQ,QAAQ,EAAE,MAAI,EAAE,SAASE,IAAE,EAAE,MAAM,MAAI,IAAI,OAAO,MAAM,KAAK,IAAIA,IAAE,MAAM,UAAU,OAAO,CAAC,CAAC,CAAnN,IAAI,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,UAAU,OAAO,CAAC,CAAiK,MAAM,CAAC,KAAK,OAAO,KAAK,OAAO,OAAO,CAAC,CAAE,gBAAgB,KAAK,OAAO,CAAC,GAAG,CAAC,QAAQ,MAAM,KAAK,OAAuD,OAA5C,QAAmD,4BAA4B,KAAK,OAAO,QAAQ,KAAK,KAAK,OAAO,QAAQ,OAAO,CAApH,KAAK,IAAI,OAAO,KAAK,OAAO,CAA0F,gBAAgB,CAAC,MAAO,GAAO,IAAI,iBAAiB,CAAC,OAAO,KAAM,SAAS,IAAI,KAAK,CAAC,GAAG,CAAC,QAAQ,MAAM,KAAK,OAAoD,OAAzC,QAAgD,oBAAoB,IAAI,KAAK,QAAQ,KAAK,KAAK,OAAO,QAAQ,QAAQ,EAAE,KAAK,QAAQ,EAAE,SAAS,KAAK,MAAM,EAAE,MAAM,KAAK,QAAQ,WAAW,MAAM,KAAK,MAAM,CAAC,CAA9L,WAAW,KAAK,IAAI,KAAK,CAAuK,SAAS,CAAC,IAAIC,KAAG,MAAM,SAAS,EAAE,KAAG,KAAK,OAAO,UAAW,MAAyBA,KAAG,SAAS,CAAE,IAAI,YAAY,CAAC,MAAO,GAAM,aAAa,CAAC,MAAO,KAAovE,iBAAiB,cAAc,WAAW,CAAC,IAAI,QAAQ,CAAC,MAAO,GAAG,OAAO,CAAC,MAAO,GAAO,OAAO,MAAM,CAAC,OAAO,iBAAiB,kBAAkB,MAAM,MAAM,KAAK,KAAM,OAAO,CAAC,OAAO,IAAI,iBAAiB,KAAK,KAAK,CAAE,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,IAAI,IAAI,SAAS,cAAc,MAAM,CAAC,IAAI,UAAU,kBAAkB,IAAI,aAAa,cAAc,OAAO,CAAC,KAAK,OAAO,IAAI,EAAG,SAAS,CAAC,OAAO,KAAK,KAAM,SAAS,IAAI,CAAC,OAAO,KAAK,KAAK,EAAE,OAAO,OAAO,KAAK,IAAI,CAAC,OAAO,MAAM,KAAK,IAAI,CAAE,iBAAiB,CAAC,MAAO,GAAG,iBAAiB,CAAC,OAAO,KAAM,SAAS,IAAI,CAAC,OAAO,KAAK,IAAI,uBAAuB,CAAE,IAAI,iBAAiB,CAAC,OAAO,KAAK,MAAO,IAAI,UAAU,CAAC,MAAO,GAAM,YAAY,KAAK,CAAC,OAAO,CAAC,KAAK,KAAK,OAAQ,SAAS,UAAU,SAAS,WAAW,UAAU,SAAS,iBAAiB,UAAU,SAAS,WAA88E,WAAW,KAAK,CAQlof,GAAG,OAAO,CAAC,MAAO,GAMlB,UAAU,IAAI,KAAK,CAAC,MAAO,GAE3B,QAAQ,MAAM,CAAC,OAAO,MAAM,OAAO,KAAK,aAAa,MAAM,aAAa,KAAK,GAAG,MAAM,CAKtF,IAAI,iBAAiB,CAAC,MAAM,GAK5B,IAAI,YAAY,CAAC,MAAO,GAIxB,YAAY,MAAM,CAAC,MAAO,GAM1B,SAAS,IAAI,IAAI,KAAK,CAAC,OAAO,KAE9B,IAAI,YAAY,CAAC,OAAO,KAExB,IAAI,UAAU,CAAC,MAAO,GAGtB,QAAQ,IAAI,IAAQ,UAA0B,SAAS,WAAW,CAA6M,MAA5M,YAAW,WAAW,KAAQ,GAAG,OAAO,WAAW,WAAW,aAAgB,GAAG,eAAe,WAAW,WAAW,YAAe,GAAG,cAAc,WAAW,WAAW,YAAe,GAAG,cAAqB,YAAa,AAAY,YAAU,EAAE,CAAE,CAAK,WAAW,cAAc,UAAU,CAErW,IAAI,gBAAgB,CAAC,MAAO,GAQ5B,OAAO,KAAK,KAAK,CAAC,OAAO,IAAI,eAAe,KAAK,CAGjD,OAAO,OAAO,KAAK,CAAC,IAAI,KAAK,KAAK,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,MAAkD,MAA5C,OAAM,MAAM,KAAK,EAAE,IAAI,KAAK,KAAK,EAAE,IAAI,KAAY,IAAI,gBAAgB,KAAK,KAAK,KAAK,MAAM,KAAK,QAAQ,KAAK,GAAM,CAG9M,OAAO,QAAQ,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC,KAAK,MAAM,UAAU,QAAQ,GAAG,KAAK,WAAY,UAAU,KAAK,QAAQ,QAAS,CAAC,GAAG,CAAC,MAAM,KAAK,aAAa,KAAK,MAAM,CAAC,WAAW,MAAM,MAAM,KAAK,GAAG,KAAK,EAAE,SAAS,IAAI,MAAM,IAAI,EAAE,MAAM,EAAG,OAAO,IAAI,gBAAgB,KAAK,UAAU,QAAQ,MAAM,KAAK,QAAQ,KAAK,GAAK,CAGlT,OAAO,KAAK,KAAK,CAAC,OAAO,IAAI,eAAe,KAAK,CAIjD,OAAO,IAAI,GAAG,KAAK,GAAM,CAAC,OAAO,SAAS,GAAG,GAAG,KAAK,CAErD,WAAW,CAAC,OAAO,KAAK,OAAO,KAAK,OAAO,gBAAgB,GAAG,GAAO,YAAY,UAAU,QAAQ,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,UAAU,UAAU,KAAK,QAAQ,QAAQ,KAAK,OAAO,OAAO,KAAK,KAAK,OAAQ,WAAW,KAAK,SAAS,MAAU,eAAe,cAAc,UAAU,CAAC,GAAG,MAAM,CAAC,OAAO,MAAM,OAAO,iBAAiB,gBAAgB,KAAK,SAAS,MAAM,SAAS,KAAK,OAAO,MAAM,OAAO,QAAQ,KAAK,MAAM,MAAM,MAAM,CAAE,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,MAAM,GAAG,MAAU,WAAW,oCAAoC,CAAC,OAAO,MAAM,MAAM,KAAK,GAAG,CAAE,YAAY,KAAK,CAAC,GAAG,CAAC,MAAM,KAAK,aAAa,KAAK,CAAC,MAAM,MAAM,GAAG,IAAI,IAAI,EAAE,KAAK,KAAK,KAAK,CAAC,KAAK,QAAQ,KAAK,SAAS,OAAO,KAAK,MAAM,KAAK,OAAO,GAAG,KAAK,MAAM,KAAK,YAAY,OAAQ,eAAe,UAAU,MAAM,GAAU,eAAe,cAAc,UAAU,CAAC,GAAG,MAAM,CAAC,OAAO,iBAAiB,gBAAgB,KAAK,KAAK,OAAO,MAAM,KAAK,OAAO,QAAQ,KAAK,KAAK,WAAW,MAAM,KAAK,WAAW,CAAE,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,IAAI,KAAK,MAAU,WAAW,6CAA6C,CAAC,OAAO,MAAM,MAAM,KAAK,GAAG,CAAE,YAAY,KAAK,CAAC,MAAM,KAAK,KAAK,KAAK,KAAK,GAAI,eAAe,UAAU,QAAQ,QAAQ,YAAY,eAAe,UAAU,MAAM,GAAS,gBAAgB,cAAc,UAAU,CACrvC,IAAI,MAAM,CAAC,OAAO,KAAK,UAAU,KAAK,QAAQ,UAAU,YAAY,KAAK,WAAW,EAAE,UAAU,aAAa,UAAU,YAAa,IAAI,gBAAgB,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,KAAK,SAAS,KAAK,OAAO,iBAAiB,GAAG,KAAK,OAAO,WAAW,GAAI,GAAG,MAAM,CAAC,OAAO,iBAAiB,iBAAiB,UAAU,KAAK,OAAO,MAAM,OAAO,EAAE,KAAK,OAAO,MAAM,OAAO,KAAK,WAAW,MAAM,WAAW,KAAK,SAAS,MAAM,QAAS,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,KAAK,YAAY,KAAK,IAAI,MAAM,IAAI,KAAK,UAAU,GAAG,KAAK,SAAS,GAAG,MAAU,WAAW,2CAA2C,CAAC,GAAG,CAAC,KAAK,WAAW,IAAI,KAAK,MAAU,WAAW,sDAAsD,CAAC,OAAO,MAAM,MAAM,KAAK,GAAG,CAAE,YAAY,KAAK,UAAU,QAAQ,MAAM,OAAO,UAAU,CAAC,MAAM,UAAU,QAAQ,OAAO,KAAK,CAAC,KAAK,MAAM,MAAM,KAAK,UAAU,UAAU,KAAK,QAAS,MAAuB,WAAW,EAAE,QAAQ,YAAY,QAAQ,WAA1D,QAAQ,WAAgE,gBAAgB,UAAU,MAAM,GAA6e,SAAS,cAAc,WAAW,CACh+C,MAAM,KAAK,GAAG,OAAO,SAAS,UAAU,QAAQ,CAAC,GAAG,OAAO,CAAC,GAAG,EAAE,kBAAkB,UAAU,MAAO,GAAU,KAAK,KAAI,OAAO,YAAY,KAAK,CAAiI,OAA5H,UAAS,KAAK,QAAQ,OAAO,OAAO,MAAM,KAAK,CAAC,kBAAkB,KAAK,KAAK,GAAG,OAAO,OAAO,SAAS,EAAE,CAAC,UAAU,QAAQ,CAAQ,GAAM,MAAM,GAAG,CAAC,IAAI,IAAI,IAAI,SAAwC,GAA/B,IAAI,WAAW,KAAK,WAAc,KAAK,QAAQ,EAAE,OAAO,IAAI,GAAG,CAAC,EAAA,IAAE,KAAK,KAAK,SAAS,GAAG,CAAI,MAAK,IAAI,OAAO,KAAK,SAASH,KAAG,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,SAASA,KAAG,MAAM,IAAI,KAAK,SAASA,KAAG,OAAO,KAAK,GAAM,EAAE,EAAE,CAAC,OAAK,IAAI,IAAI,EAAEA,IAAE,EAAE,KAAK,SAAS,OAAO,IAAI,IAAI,OAAO,KAAK,SAAS,GAAG,EAAE,CAAC,KAAMA,IAAE,GAAG,KAAK,SAASA,IAAE,GAAG,QAAQ,GAAE,KAAK,SAAS,EAAEA,KAAG,SAAS,CAAwD,MAAvD,MAAK,SAAS,OAAOA,IAAE,KAAK,WAAW,CAAC,KAAK,OAAO,GAAU,IAAK,YAAY,MAAM,CAAK,AAAgJ,KAAK,OAArI,KAAK,WAAW,CAAC,MAAM,OAAO,KAAK,IAAI,CAAC,MAAM,UAAU,KAAK,YAAY,IAAK,GAAE,KAAK,MAAM,KAAK,UAAU,KAAK,UAAU,IAAK,GAAW,MAAM,QAAQ,MAAM,CAAK,QAAQ,KAAK,MAAM,MAAM,GAAK,KAAK,MAAK,KAAK,UAAU,KAAK,MAAM,KAAK,WAAW,EAAE,KAAK,MAAM,OAAQ,OAAO,MAAM,UAAU,CAAC,eAAe,KAAK,MAAM,UAAU,CACzkC,YAAY,KAAK,CAAC,IAAI,MAAM,KAAK,KAAK,WAAW,IAAI,KAAK,KAAK,MAAS,QAAM,KAAK,MAAM,aAAa,MAAM,KAAK,OAAO,EAAE,CAAC,EAAI,MAAI,KAAK,MAAM,aAAa,CAAC,MAAM,IAAI,CAAC,KAAK,OAAO,EAAE,CAAC,EAAE,SAAS,IAAI,CAAC,OAAO,eAAe,KAAK,IAAI,CAAE,SAAS,KAAK,CAAI,KAAK,UAAU,QAAO,KAAK,OAAO,KAAK,CAAC,KAAK,OAAO,GAAM,KAAK,KAAK,MAAM,CAAC,IAAIG,KAAO,KAAK,IAA4H,KAAK,MAAM,IAAG,gBAAgB,KAAK,IAAI,CAAC,KAAK,IAAI,UAAU,UAAU,KAAK,UAAU,KAAK,MAAM,KAAK,IAAK,KAAhO,KAAK,OAAO,SAAS,cAAc,MAAM,CAAC,CAAC,KAAK,IAAI,UAAU,UAAU,KAAK,UAAU,KAAK,MAAM,KAAK,IAAK,IAA0H,KAAK,YAAY,IAAK,KAAG,YAAY,KAAK,IAAI,KAAK,UAAU,KAAK,MAAM,CAAC,KAAK,IAAI,UAAU,IAAI,UAAU,CAAC,KAAK,UAAU,IAAK,IAAG,MAAM,KAAK,KAAK,MAAM,CAAC,IAAI,KAAK,KAAK,IAAI,UAAU,KAAM,MAAM,YAAY,IAAI,KAAK,WAAY,UAAS,KAAK,KAAK,UAAU,GAAG,CAAC,MAAM,CAAC,KAAK,QAAQ,KAAK,UAAU,MAAW,YAAY,IAAI,KAAK,EAAgC,YAAa,IAAQ,CAAC,QAAQ,KAAK,CAAC,KAAK,SAAS,KAAK,IAAI,cAAc,SAAS,EAAE,CAAC,IAAI,KAAK,SAAS,cAAc,KAAK,CAAC,KAAK,SAAS,GAAK,KAAK,IAAI,YAAY,KAAK,EAAG,iBAAiB,CAAC,GAAG,KAAK,SAAS,QAAQ,GAAG,KAAK,OAAO,GAAG,OAAO,KAAK,IAAI,WAAW,EAAE,WAAW,IAAI,IAAI,SAAS,KAAK,SAAS,CAAC,GAAG,EAAE,iBAAiB,WAAW,SAAS,KAAK,MAAM,KAAK,CAAC,OAAO,KAAK,IAAI,MAAM,eAAe,MAAM,IAAI,CAAC,GAAG,MAAM,QAAQ,EAAE,OAAO,KAAK,YAAY,MAAM,GAAG,MAAM,WAAW,MAAM,GAAG,OAAQ,OAAO,WAAgB,CAAC,WAAW,KAAK,IAAI,uBAAuB,CAAC,OAAO,UAAU,WAAW,KAAK,OAAO,WAAW,CAArG,KAAuG,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,SAAS,QAAQ,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,cAAc,KAAK,OAAO,KAAK,UAAU,OAAO,KAAK,OAAO,KAAK,IAAI,GAAG,KAAK,IAAI,OAAO,aAAa,WAAW,CAAC,GAAG,aAAa,WAAW,OAAO,CAAC,IAAI,MAAM,OAAO,aAAa,YAAY,EAAE,MAAM,CAAC,IAAI,KAAK,IAAI,KAAK,OAAO,KAAK,OAAO,KAAK,KAAK,KAAK,KAAK,MAAM,KAAK,KAAK,EAAG,OAAO,KAAM,OAAO,OAAO,CAAC,MAAO,GAAO,IAAI,MAAM,CAAC,OAAO,UAAU,KAAM,OAAO,KAAK,QAAQ,IAAI,CAAC,IAAI,IAAIH,IAAE,EAAE,IAAI,EAAEA,IAAE,QAAQ,SAAS,OAAO,MAAI,CAAC,IAAI,MAAM,QAAQ,SAASA,KAAG,IAAI,IAAI,MAAM,OAAO,GAAG,KAAK,IAAI,CAAC,GAAG,iBAAiB,SAAS,OAAO,MAAM,GAAG,IAAI,IAAI,MAAO,IAAI,IAAI,MAAM,WAAY,OAAO,KAAM,aAAa,CAAC,MAAM,GAAG,UAAU,CAAC,KAAK,SAAS,EAAE,CAAC,KAAK,OAAO,EAAE,KAAK,UAAU,IAAK,GAAE,KAAK,MAAM,KAAK,KAAK,WAAW,IAAS,gBAAgB,cAAc,WAAW,CAAC,MAAM,KAAK,GAAG,OAAO,UAAU,UAAU,QAAQ,CAAkN,OAA9M,SAAS,EAAE,kBAAkB,kBAAkB,CAAC,KAAK,OAAO,QAAQ,OAAO,OAAO,EAAE,KAAK,GAAG,WAAW,GAAG,GAAG,KAAK,QAAQ,SAAS,GAAU,IAAM,KAAK,OAAO,MAAM,OAAO,OAAO,OAAO,IAAI,KAAK,OAAO,IAAW,IAAM,SAAS,IAAI,CAAC,OAAO,KAAK,EAAE,OAAO,OAAO,KAAK,IAAI,CAAC,OAAO,MAAM,KAAK,IAAI,KAAK,KAAK,OAAO,CAAE,MAAM,GAAG,CAAC,IAAI,IAAI,KAAK,OAAO,GAAG,KAAK,OAAO,GAAG,IAAI,IAAI,IAAI,gBAAgB,KAAK,OAAO,IAAI,KAAK,KAAK,CAAgC,MAA/B,KAAI,WAAW,KAAK,WAAkB,IAAK,IAAI,UAAU,CAAC,OAAO,WAAY,KAAK,KAAK,EAAI,CAAC,KAAK,KAAK,CAAC,KAAK,OAAO,UAAU,KAAK,IAAI,KAAK,IAAK,KAAK,KAAK,KAAK,YAAW,KAAK,WAAW,QAAQ,KAAK,IAAI,CAAC,KAAK,WAAW,KAAK,KAAK,OAAO,KAAK,OAAO,MAAM,KAAK,CAAC,CAAC,KAAK,IAAI,gBAAgB,SAAU,IAAI,iBAAiB,CAAC,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,MAAM,IAAI,MAAM,KAAK,WAAW,KAAK,SAAS,CAAC,KAAK,MAAO,iBAAiB,CAAC,OAAO,KAAM,OAAO,MAAM,CAAmU,OAA/T,iBAAiB,iBAAiB,MAAM,OAAO,aAAa,KAAK,OAAO,aAAiB,MAAM,OAAO,QAAQ,KAAK,OAAO,EAAC,KAAK,UAAU,GAAK,CAAI,KAAK,KAAK,CAAC,KAAK,aAAW,KAAK,WAAW,KAAK,QAAO,KAAK,OAAO,MAAM,OAAO,KAAK,OAAO,MAAM,OAAO,KAAK,KAAK,MAAM,KAAK,KAAK,WAAW,MAAM,WAAkB,IAAa,GAAO,gBAAgB,CAAC,MAAO,GAAM,YAAY,MAAM,CAAC,OAAO,KAAK,OAAO,YAAY,MAAM,CAAE,IAAI,YAAY,CAAC,MAAO,GAAO,IAAI,UAAU,CAAC,MAAO,GAAM,SAAS,IAAI,KAAK,CAAC,OAAO,KAAK,OAAO,SAAS,KAAK,IAAI,IAAI,KAAK,CAAE,SAAS,CAAC,MAAM,SAAS,CAAI,KAAK,KAAI,KAAK,OAAO,QAAQ,KAAK,IAAI,CAAE,YAAY,OAAO,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,OAAO,OAAO,KAAK,OAAO,OAAO,KAAK,KAAK,KAAK,KAAK,WAAW,EAAE,KAAK,WAAW,OAAY,eAAe,KAAK,CAAC,YAAY,CAAC,GAAG,KAAK,QAAQ,QAAQ,EAAE,MAAM,CAAC,KAAK,cAAc,KAAK,IAAI,OAAO,KAAK,IAAI,CAAC,MAAM,KAAK,IAAI,IAAI,KAAK,KAAK,QAAQ,KAAK,QAAQ,OAAO,GAAG,MAAM,CAAC,KAAK,YAAY,EAAE,gBAAgB,iBAAiB,KAAK,MAAM,UAAU,cAAe,SAAS,CAAuF,OAAlF,KAAK,UAAS,KAAK,QAAQ,KAAK,KAAK,QAAQ,IAAI,SAAS,CAAC,KAAK,YAAY,IAAa,KAAK,QAAS,YAAY,OAAO,KAAK,YAAY,CAAC,AAAqG,KAAK,iBAAnF,KAAK,QAAQ,OAAO,UAAU,IAAI,iBAAiB,GAAG,CAAC,OAAO,CAAC,OAAO,OAAO,CAAoB,GAAI,eAAe,KAAK,CAAC,KAAK,aAAa,CAAC,KAAK,QAAQ,KAAK,KAAK,QAAQ,KAAK,KAAK,CAAE,OAAO,QAAQ,CAAI,KAAK,eAAe,SAAS,KAAK,YAAY,OAAO,KAAK,aAAa,CAAM,KAAK,cAAc,EAAM,KAAK,YAAY,EAAC,KAAK,SAAS,CAAE,UAAU,OAAO,OAAO,UAAU,CAAC,KAAM,OAAO,GAAE,CAAC,GAAG,KAAK,SAAS,KAAK,KAAK,OAAO,CAAC,GAAG,CAAC,MAAM,UAAU,MAAM,KAAK,OAAO,KAAK,KAAK,KAAK,CAAa,GAAZ,KAAK,KAAK,EAAK,KAAK,MAAU,MAAM,oDAAoD,CAAC,GAAG,UAAU,CAAK,KAAK,YAAY,EAAC,KAAK,SAAS,CAAI,KAAK,QAAQ,OAAO,KAAK,QAAQ,KAAK,QAAQ,OAAO,GAAG,WAAW,EAAO,KAAK,aAAa,EAAE,KAAK,aAAa,CAAC,KAAK,QAAQ,KAAK,KAAK,YAAY,GAAK,SAAS,cAAe,KAAK,KAAK,MAAM,KAAK,QAAQ,EAAI,IAAI,KAAK,KAAK,IAAI,KAAK,KAAK,OAAO,KAAK,QAAQ,OAAO,IAAI,CAAC,KAAK,YAAY,OAAO,MAAM,OAAO,OAAO,UAAU,CAAC,CAAC,KAAK,SAAS,CAAC,OAAO,UAAU,IAAI,SAAS,KAAK,KAAK,MAAM,KAAK,QAAQ,KAAK,QAAQ,KAAK,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,YAAY,GAAK,KAAK,SAAS,KAAK,QAAQ,KAAK,UAAU,GAAI,KAAK,KAAK,GAAG,OAAO,UAAU,CAAC,KAAK,UAAU,GAAG,KAAK,OAAO,UAAU,CAAC,KAAK,IAAI,GAAM,KAAK,UAAU,IAAE,KAAK,UAAU,WAAW,MAAM,KAAK,GAAG,KAAK,OAAO,UAAU,MAAM,CAAC,GAAG,KAAK,wBAAwB,QAAQ,gBAAgB,gBAAgB,CAAC,GAAG,KAAK,MAAM,MAAU,WAAW,qDAAqD,CAAC,GAAG,GAAG,KAAK,IAAI,OAAO,KAAK,IAAI,CAAC,GAAG,MAAU,WAAW,wEAAwE,CAAE,IAAI,IAAI,GAAG,KAAK,GAAG,gBAAgB,gBAAiB,GAAG,KAAK,MAAM,CAAC,GAAG,CAAC,MAAM,KAAQ,MAAM,UAAU,aAAa,CAAC,KAAK,YAAY,EAAC,KAAK,SAAS,CAAC,KAAK,eAAe,IAAI,gBAAgB,KAAK,QAAQ,IAAI,WAAW,MAAM,CAAC,IAAI,KAAK,CAAC,KAAM,CAAC,IAAI,KAAK,WAAW,OAAO,KAAK,QAAQ,IAAI,WAAW,OAAO,CAAC,IAAI,IAAI,EAAE,KAAK,UAAU,CAAK,aAAa,KAAK,aAAa,CAAC,KAAK,YAAY,WAAW,OAAO,SAAS,KAAK,IAAI,KAAK,UAAU,GAAO,YAAY,CAAC,KAAK,aAAa,KAAK,IAAI,UAAU,OAAO,QAAQ,KAAK,WAAW,GAAO,KAAK,KAAK,SAAS,CAAI,KAAK,eAAe,GAAG,CAAC,cAAc,CAAC,KAAK,aAAW,KAAK,cAAc,GAAE,KAAK,YAAY,OAAO,CAAI,eAAc,KAAK,OAAO,UAAU,IAAI,iBAAiB,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,OAAO,OAAO,KAAK,IAAI,EAAE,UAAU,OAAO,OAAO,EAAE,KAAK,OAAO,UAAU,KAAK,OAAO,CAAC,UAAU,CAAC,KAAK,YAAY,YAAY,KAAK,cAAe,YAAc,KAAK,IAAI,UAAU,OAAO,OAAO,EAAE,EAArC,EAA0C,KAAK,gBAAc,KAAK,YAAY,OAAO,OAAO,OAAW,KAAK,IAAI,OAAO,KAAK,IAAI,CAAC,MAAM,KAAK,KAAK,KAAK,SAAS,CAAC,YAAY,KAAK,CAAK,MAAQ,KAAK,QAAQ,KAAK,KAAK,KAAK,OAAQ,KAAK,SAAS,KAAU,KAAK,MAAM,KAAK,KAAK,KAAK,OAAO,KAAK,SAAS,KAAK,KAAK,GAAG,KAAK,QAAQ,GAAG,KAAK,IAAI,IAAO,KAAK,UAAU,IAAE,KAAK,UAAU,WAAW,OAAO,MAAM,KAAK,KAAK,GAAG,aAAa,qBAAqB,CAAC,IAAI,QAAQ,IAAI,eAAe,KAAK,KAAK,GAAG,qBAAqB,CAAuJ,MAAtJ,SAAQ,QAAQ,SAAS,MAAM,aAAa,KAAK,GAAG,QAAQ,CAAI,QAAQ,UAAU,IAAE,QAAQ,UAAU,QAAQ,SAAQ,QAAQ,OAAO,QAAQ,QAAQ,CAAQ,QAAS,YAAY,KAAK,IAAI,IAAI,wBAAwB,CAAC,KAAK,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,IAAI,IAAI,KAAK,wBAAwB,wBAAwB,KAAK,QAAQ,EAAE,CAAC,KAAK,QAAQ,KAAK,KAAK,aAAa,EAAE,KAAK,cAAc,EAAE,KAAK,YAAY,EAAE,CAAC,KAAK,YAAY,GAAK,KAAK,UAAU,GAAG,KAAK,QAAQ,GAAG,KAAK,KAAK,GAAG,KAAK,QAAQ,EAAE,KAAK,OAAO,KAAK,MAAM,CAAC,KAAK,KAAK,MAA0H,WAAW,cAAc,UAAU,CAAC,GAAG,MAAM,CAAC,OAAO,MAAM,KAAK,KAAK,IAAK,OAAO,CAAC,OAAO,SAAS,cAAc,KAAK,IAAI,CAAE,UAAU,IAAI,CAAC,OAAO,IAAI,SAAS,aAAa,EAAE,KAAK,IAAK,IAAI,UAAU,CAAC,MAAO,GAAM,YAAY,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,MAAW,wBAAwC,MAAM,QAAQ,CAAK,qBAAqC,MAAM,QAAQ,CAAK,oBAAoC,MAAM,QAAQ,CAAK,cAA8B,MAAM,QAAQ,CAAK,eAA+B,MAAM,QAAQ,CAAK,aAA6B,MAAM,QAAQ,CAAK,kBAAkC,MAAM,QAAQ,CAAK,qBAAqC,MAAM,OAAO,CAAC,QAAQ,QAAQ,OAAO,KAAK,KAAGQ,IAAE,CAAC,CAAC,CAAK,sBAAsC,MAAM,OAAO,CAAC,QAAQ,QAAQ,OAAO,KAAK,KAAGA,IAAE,CAAC,CAAC,CAAK,aAAa,KAAK,CAAC,IAAI,QAAQ,CAAC,OAAO,QAAQ,MAAM,KAAK,IAAI,aAAa,KAAK,MAAM,IAAI,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,QAAQ,KAAK,QAAQ,CAAE,YAAY,MAAM,EAAE,UAAU,IAAE,UAAU,QAAQ,EAAE,QAAQ,EAAE,CAAC,KAAK,MAAM,MAAM,KAAK,EAAE,EAAE,KAAK,EAAEA,IAAE,KAAK,QAAQ,QAAQ,KAAK,QAAQ,UAAe,eAA+B,YAAY,OAAO,CAAC,KAAK,IAAE,KAAKC,IAAE,IAAI,GAAG,CAAC,CAAC,CAAgT,SAAyB,MAAM,OAAO,CAAC,QAAQ,QAAQ,OAAO,OAAO,OAAO,GAAG,GAAK,CAAC,CAAK,aAAa,EAAM,WAA2B,MAAM,QAAQ,CAAK,WAAW,KAAK,CAGhnT,OAAO,OAAO,OAAO,KAAK,CAAC,GAAK,CAAC,cAAc,QAAQ,YAAY,MAAM,MAAM,EAAE,CAAC,OAAO,IAAI,WAAW,eAAe,OAAO,cAAc,SAAS,CAAC,IAAI,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,CAAyK,OAArK,MAAK,IAAI,KAAK,YAAY,GAAG,MAAM,CAAC,IAAI,WAAW,KAAK,OAAO,QAAQ,CAAC,OAAO,WAAW,KAAK,WAAW,CAAC,WAAW,MAAO,CAAC,CAAI,SAAQ,IAAI,KAAK,QAAQ,QAAQ,CAAC,CAAQ,KAAM,CAG5W,OAAO,UAAU,IAAI,KAAK,CAAC,OAAO,WAAW,OAAO,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAE,YAAY,KAAG,OAAO,iBAAiB,gBAAgB,CAAC,KAAK,GAAGf,KAAG,KAAK,OAAO,OAAO,KAAK,iBAAiB,iBAAiB,KAAK,UAAU,gBAAgB,KAAK,GAAQ,eAAe,KAAK,CAAC,OAAO,KAAK,CAAC,GAAI,KAAK,UAAyJ,KAAK,WAAW,CAAC,IAAI,OAAO,KAAK,WAAgC,GAArB,KAAK,WAAW,KAAQ,KAAK,MAAM,OAAQ,GAAG,CAAC,KAAK,MAAM,OAAO,OAAO,OAAQ,GAAG,CAA2D,GAA1D,aAAa,OAAO,MAAM,GAAG,4BAA4B,CAAI,KAAK,MAAM,QAAQ,GAAG,CAAC,KAAK,MAAM,SAAS,MAAU,EAAE,KAAK,YAAY,WAApZ,KAAK,KAAM,GAAG,CAAC,KAAK,MAAM,KAAK,KAAK,OAAO,KAAK,OAAQ,EAAE,CAAC,aAAa,KAAK,MAAM,EAAE,4BAA4B,CAAC,KAAK,YAAY,CAAqR,OAAO,KAAM,QAAQ,KAAK,CAAC,IAAIS,KAAG,GAAO,KAAK,OAAqC,QAAS,GAAG,CAAC,KAAK,MAAM,SAAS,OAAQ,EAAE,CAAC,aAAa,KAAK,MAAM,EAAE,4BAA4B,EAAI,YAAY,CAAC,KAAK,KAAK,KAAK,MAAM,KAAM,YAAY,KAAK,CAAC,KAAK,KAAK,KAAK,KAAK,WAAW,KAAK,KAAK,MAAM,OAAY,iBAAiC,MAAM,QAAQ,CAAK,kBAAkC,MAAM,QAAQ,CAAK,YAA4B,MAAM,QAAQ,CAAK,aAA6B,MAAM,QAAQ,CAAK,cAA8B,MAAM,QAAQ,CAAgX,YAA4B,MAAM,QAAQ,CAAK,aAAa,KAAK,CAAC,KAAK,MAAM,CAAC,OAAO,IAAI,aAAa,KAAK,IAAI,KAAK,MAAM,MAAM,MAAM,CAAC,KAAK,IAAI,KAAK,IAAI,MAAM,IAAI,CAAC,KAAK,IAAI,KAAK,MAAM,MAAM,MAAM,CAAC,KAAK,IAAI,KAAK,IAAI,MAAM,IAAI,CAAC,CAAE,SAAS,IAAI,CAAC,IAAIH,IAAE,IAAI,OAAO,GAAG,KAAK,KAAKA,IAAE,EAAE,MAAI,CAAC,IAAI,MAAM,IAAIA,IAAE,GAAM,WAAM,MAAM,GAAG,KAAa,IAAG,MAAM,IAAI,GAAG,MAAM,MAAM,GAAG,GAAG,KAAK,MAAM,CAAC,IAAI,OAAOA,IAAE,EAAE,EAAE,EAAqB,OAAnB,IAAI,OAAOA,IAAE,EAAE,GAAG,CAAQ,IAAK,OAAO,iBAAiB,KAAK,OAAO,CAAC,GAAG,OAAO,QAAQ,EAAE,OAAO,KAAK,IAAI,OAAO,EAAE,CAAC,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,CAAC,IAAI,KAAK,IAAI,KAAK,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAS,IAAI,KAAK,KAAK,MAAM,IAAI,KAAM,GAAG,OAAO,QAAQ,OAAO,IAAI,KAAI,CAAC,IAAI,KAAK,OAAO,IAAI,GAAG,OAAO,GAAG,GAAO,MAAM,KAAK,IAAI,KAAK,KAAK,CAAC,IAAI,KAAK,IAAI,IAAI,GAAG,CAA8E,GAA1E,OAAO,KAAI,IAAI,aAAa,MAAM,IAAI,IAAI,IAAI,MAAM,IAAI,CAAC,SAAS,OAAO,CAAI,GAAG,IAAI,MAAW,IAAI,EAAG,GAAG,CAAC,KAAK,OAAO,OAAO,IAAI,aAAa,KAAK,MAAM,KAAK,IAAI,KAAK,MAAM,KAAK,IAAI,CAAC,SAAS,OAAO,CAAC,KAAK,KAAK,IAAI,KAAK,KAAK,KAAM,YAAY,MAAM,IAAI,MAAM,IAAI,CAAC,KAAK,MAAM,MAAM,KAAK,IAAI,IAAI,KAAK,MAAM,MAAM,KAAK,IAAI,MAAW,WAAW,KAAK,CAEzqF,OAAO,OAAO,KAAK,MAAM,aAAa,CAAC,OAAO,IAAI,WAAW,KAAK,MAAM,aAAa,CAIrF,IAAI,iBAAiB,CAAC,OAAO,KAAK,MAAM,GAAG,EAG3C,IAAI,eAAe,CAAC,OAAO,KAAK,MAAM,GAAG,EAGzC,IAAI,iBAAiB,CAAC,OAAO,KAAK,aAAa,KAAK,MAAO,IAAM,EAEjE,IAAI,cAAc,CAAC,OAAO,KAAK,MAAM,GAAG,EAExC,IAAI,YAAY,CAAC,MAAM,CAAC,KAAK,QAAQ,MAErC,IAAI,cAAc,CAAC,OAAO,KAAK,aAAa,KAAK,IAAI,GAAG,UAAU,CAElE,IAAI,OAAO,CAAC,OAAO,KAAK,OAAO,GAAG,KAAK,aAAa,QAAQ,EAAG,YAAY,KAAK,MAAM,aAAa,CAAC,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,KAAK,aAAa,aAAa,KAAK,MAAM,EAAE,KAAK,WAAW,KAAK,MAAM,KAAK,QAAQ,UAAU,MAAM,KAAK,WAAW,IAAI,OAAO,CAAC,IAAI,IAAI,MAAM,aAAa,KAAK,QAAQ,KAAK,QAAQ,QAAQ,GAAG,QAAQ,CAAC,IAAI,cAAc,EAAE,CAAC,KAAK,QAAQ,mBAAmB,MAAM,IAAI,MAAM,MAAM,cAAc,KAAK,IAAI,aAAa,MAAM,IAAI,MAAM,IAAI,CAAC,CAAC,CAAC,KAAK,cAAc,gBAAqB,UAA0B,SAAS,WAAW,CAA6E,MAA5E,YAAW,WAAW,IAAO,GAAG,MAAM,WAAW,WAAW,IAAO,GAAG,MAAa,YAAa,AAAY,YAAU,EAAE,CAAE,CAAK,IAAI,UAAU,IAAQ,IAAI,UAAU,IAA4G,SAAyB,IAAI,2PAA2P,CAAK,YAA4B,IAAI,6PAA6P,CAAK,SAAyB,OAAO,OAAO,KAAK,CAAK,aAAa,EAAE,CAAC,IAAI,IAAIE,MAAI,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,IAAIP,IAAkB,IAAE,WAAW,EAAE,CAAC,EAAkB,IAAE,WAAW,EAAE,CAAC,SAASA,KAAG,EAAE,SAAS,GAAG,CAACA,IAAyM,OAAO,yDAA6D,SAAS,KAAK,CAEr1D,IAAI,KAAK,CAAC,OAAO,KAAK,MAAM,EAAE,IAAI,IAElC,KAAK,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,KAAK,IAAI,KAAK,GAAG,KAAK,KAErD,OAAO,KAAK,MAAM,MAAM,MAAM,MAAM,CAAC,IAAI,MAAM,GAAG,IAAI,IAAIK,IAAE,EAAEA,IAAE,MAAM,OAAO,MAAI,CAAC,IAAI,KAAK,MAAMA,KAAG,GAAG,KAAK,MAAM,OAAO,KAAK,IAAI,MAAM,CAAC,GAAG,KAAK,OAAO,MAAM,OAAOA,KAAK,MAAM,IAAI,OAAO,EAAwC,MAAM,OAAO,MAAM,KAAK,MAA9D,MAAM,EAAE,KAAK,KAAK,MAAM,KAAK,GAAG,UAAqC,MAAMA,MAAI,GAAG,MAAM,EAAE,MAAU,WAAW,qBAAqB,CAAC,OAAO,MAEzU,YAAY,KAAK,GAAG,MAAM,CAAC,KAAK,KAAK,KAAK,KAAK,GAAG,GAAG,KAAK,MAAM,QAAa,MAAM,EAAE,CAA61E,UAAU,GAAi0C,qBAAqB,IAAQ,UAAU,KAAK,CAAC,OAAO,KAAK,CAAC,KAAK,MAAM,KAAM,WAAW,CAAC,KAAK,MAAM,qBAAsB,UAAU,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,OAAO,KAAK,IAAI,OAAO,MAAM,WAAW,IAAI,IAAI,IAAI,QAAQ,CAAC,KAAK,gBAAgB,OAAO,IAAI,CAAC,IAAI,OAAO,KAAK,KAAK,OAAO,KAAK,SAAS,IAAI,CAAC,IAAI,KAAK,IAAI,YAAY,GAAG,MAAM,IAAI,MAAM,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,SAAS,YAAY,IAAI,KAAK,EAAI,MAAM,SAAS,KAAK,YAAY,KAAK,KAAK,WAAW,eAAe,IAAI,GAAG,eAAe,KAAK,GAAG,IAAI,UAAU,MAAM,IAAI,WAAW,KAAK,KAAK,OAAO,SAAO,KAAK,WAAW,CAAC,IAAI,KAAuC,OAAjC,KAAK,gBAAgB,OAAO,IAAI,CAAQ,KAAM,aAAa,KAAK,CAAC,IAAI,KAAK,KAAK,UAAU,IAAI,IAAI,SAAS,KAAK,OAAU,MAAM,MAAM,OAAK,MAAM,IAAI,KAAK,KAAK,OAAO,KAAK,IAAI,MAAM,OAAO,KAAK,OAAO,EAAC,IAAI,IAAI,IAAI,EAAE1C,KAAG,KAAK,cAAc,KAAK,cAAc,CAAC,IAAI,UAAU,GAAG,UAAU,EAAE,EAA8O,GAAzO,KAAK,eAAe,UAAU,KAAK,QAAQ,KAAK,cAAc,IAAI,CAAC,UAAU,KAAK,cAAc,SAAgB,EAAEA,KAAG,KAAK,KAAK,IAAE,UAAU,EAAE,MAAM,UAAU,EAAE,GAAG,QAAQ,KAAK,OAAO,KAAK,MAAM,IAAI,UAAU,EAAE,KAAK,OAAO,UAAU,CAAC,CAAI,UAAU,EAAE,MAAuB,GAAjB,KAAK,WAAW,CAAI,UAAU,MAAO,IAAI,UAAU,KAAK,OAAU,OAAO,MAAM,MAAM,OAAO,IAAI,KAAK,KAAK,SAAO,OAAO,KAAK,UAAU,GAAG,IAAI,UAAU,WAAY,SAAS,KAAK,CAAC,GAAG,KAAK,SAAS,OAAO,IAAI,KAAK,YAAY,IAAI,KAAK,CAAK,SAAS,MAAM,KAAK,gBAAgB,GAAG,UAAU,KAAK,CAAC,KAAK,gBAAgB,KAAK,SAAS,OAAO,CAAC,IAAI,IAAI0C,IAAE,SAAS,MAAM,CAAC,CAACA,IAAE,MAAM,CAAC,MAAUA,IAAE,UAAU,KAAK,WAAW,CAAM,KAAK,OAAOA,IAAE,MAAM,MAAW,KAAK,UAAU,EAAG,KAAK,aAAa,KAAK,CAAU,KAAK,UAAU,KAAS,KAAK,aAAY,KAAK,WAAW,CAAU,KAAK,UAAU,GAAG,KAAK,UAAU,KAAK,WAAW,KAAK,CAAG,gBAAgB,KAAK,KAAK,CAAC,IAAI,IAAI,SAAS,KAAK,OAAU,MAAM,MAAM,MAAM,KAAK,WAAW,MAAM,SAAS,OAAK,MAAM,IAAI,KAAK,KAAK,QAAQ,gBAAgB,KAAK,OAAO,CAAC,IAAI,IAAI,SAAS,KAAK,QAAU,KAAK,UAAU,EAAE,MAAM,MAAM,KAAK,KAAK,SAAS,MAAM,KAAK,IAAC,MAAM,IAAI,KAAK,KAAK,OAAO,KAAK,IAAI,OAAO,MAAM,OAAO,EAAE,YAAY,OAAO,MAAM,CAAC,KAAK,OAAO,OAAO,KAAK,KAAK,GAAG,KAAK,cAAc,MAAM,MAAM,YAAY,cAAc,GAA0I,SAAS,KAAK,CAAC,YAAY,KAAK,OAAO,CAAC,KAAK,KAAK,KAAK,KAAK,OAAO,OAAO,KAAK,IAAI,KAAU,QAAQ,cAAc,WAAW,CAAC,IAAI,QAAQ,CAAC,OAAO,KAAK,KAAK,MAAM,IAAI,OAC5rM,OAAO,OAAO,CAAC,IAAI,cAAc,OAAO,cAAiB,KAAK,SAAS,GAAG,cAAc,SAAY,cAAc,OAAO,CAAC,MAAM,OAAO,IAAI,KAAK,cAAc,MAAM,KAAK,WAAW,EAA0D,KAAK,aAAa,OAAO,QAAQ,OAAO,KAAK,aAAa,EAAE,CAAC,KAAK,WAAW,OAAO,QAAQ,OAAO,KAAK,WAAW,EAAE,EAA7K,KAAK,SAAS,KAAK,aAAa,KAAK,WAAW,GAAmI,KAAK,KAAK,WAAW,UAAU,EAAE,KAAK,gBAAgB,WAAW,MAAa,OAAO,aAAa,QAAQ,KAAK,SAAM,KAAK,gBAAgB,uBAAuB,KAAK,KAAK,OAAO,QAAQ,GAAK,QAAQ,IAAI,QAAQ,SAAS,CAAC,KAAK,gBAAgB,MAAM,QAAQ,OAAO,MAAM,IAAI,OAAO,OAAO,WAAW,IAAI,QAAM,KAAK,eAAe,IAAK,IAAI,SAAS,KAAK,YAAY,KAAK,KAAK,YAAY,CAAK,SAAS,gBAAgB,SAAS,KAAK,OAAO,QAAQ,CAAyP,MAAxP,eAAc,aAAa,iBAAiB,cAAc,SAAS,CAAI,KAAK,OAAO,GAAG,cAAc,QAAQ,EAAU,IAAY,KAAK,YAAY,cAAc,OAAO,WAAW,IAAI,OAAO,CAAI,OAAO,aAAa,SAAO,KAAK,WAAW,KAAK,KAAK,EAAQ,IAEriC,YAAY,QAAQ,UAAU,CAAC,KAAK,KAAK,UAAU,mBAAmB,GAAK,KAAK,eAAe,QAAQ,UAAU,CAAC,GAAG,CAAC,UAAU,KAAK,KAAK,SAAS,WAAW,CAAC,KAAK,IAAI,MAAM,OAAO,KAAK,KAAK,UAAU,cAAc,KAAK,KAAK,IAAI,MAAM,UAAU,KAAK,SAAS,KAAK,SAAS,KAAK,GAAG,IAAI,MAAM,QAAQ,QAAQ,QAAQ,IAAI,CAAC,KAAK,SAAS,eAAe,UAAU,QAAQ,GAAM,CAAC,IAAK,GAAE,KAAK,KAAK,KAAK,KAAK,MAAM,CAAC,KAAK,MAAM,EAAK,QAAQ,MAAM,SAAS,SAAS,eAAe,WAAW,MAAM,QAAM,KAAK,eAAe,IAAK,KAAK,IAAI,MAAM,OAAO,IAAK,CAAC,IAAI,KAAK,EAAE,CAAC,GAAG,KAAK,KAAK,SAAS,MAAM,KAAK,KAAK,SAAS,GAAG,KAAK,KAAK,MAAM,IAAI,WAAY,IAAI,SAAS,KAAK,SAAY,iBAAiB,iBAAiB,MAAM,kBAAkB,gBAAe,KAAK,KAAK,MAAM,IAAI,CAAE,SAAS,WAAW,KAAK,CAAE,eAAe,QAAQ,UAAU,CAAC,IAAI,OAAO,KAAK,YAAY,UAAU,CAAC,IAAI,IAAIA,IAAE,QAAQ,OAAO,GAAG,MAAI,CAAC,IAAI,KAAKA,KAAG,EAAE,QAAQA,KAAG,KAAK,GAAG,CAAC,KAAK,MAAM,GAAG,CAAC,MAAM,IAAI,MAAM,KAAK,KAAQ,CAAC,QAAA,UAAQ,aAAa,UAAU,SAAS,eAAe,MAAM,KAAK,KAAK,MAAM,IAAI,MAAM,IAAI,KAAK,YAAY,KAAK,qBAAqB,CAAI,CAAC,EAAE,IAAI,IAAI,OAAO,OAAO,QAAQ,IAAI,EAAE,CAAI,CAAC,EAAE,MAAM,IAAI,SAAS,OAAO,QAAQ,MAAM,GAAG,CAAC,aAAa,KAAK,MAAM,QAAQ,IAAI,MAAM9C,UAAQ,aAAa,UAAU,QAAQ,EACvwC,gBAAgB,SAAS,GAAM,YAAY,GAAM,EAAI,UAAU,CAAC,KAAK,KAAK,SAAS,eAAe,YAAU,KAAK,KAAK,SAAS,oBAAoB,CAAC,IAAI,UAAU,KAAK,KAAK,KAAK,cAAc,QAAQ,WAAW,KAAK,IAAQ,kBAAkB,CAAC,SAAS,aAAa,KAAK,IAAI,KAAK,KAAK,SAAS,eAAe,EAAE,EAAE,WAAW,KAAK,IAAI,SAAS,UAAU,EAAE,GAAG,EAAE,SAAS,aAAa,mBAAmB,OAAO,IAAI,MAAM,KAAK,eAAe,KAAK,eAAe,GAAM,IAAI,KAAK,KAAK,KAAK,MAAM,UAAU,KAAS,OAAO,KAAK,SAAS,KAAK,OAAO,CAAK,KAAK,KAAK,MAAM,OAAO,KAAK,SAAS,KAAK,KAAK,CAAC,GAAG,QAAQ,OAAO,KAAK,OAAO,CAAC,KAAK,gBAAgB,MAAM,kBAAkB,OAAO,CAAC,CAAC,IAAI,MAAM,SAAS,eAAe,GAAG,CAAC,KAAK,KAAK,SAAS,WAAW,OAAO,KAAK,aAAa,MAAM,OAAO,KAAK,WAAW,OAAO,SAAS,KAAK,CAAC,CAAC,OAAO,KAAK,IAAI,OAAO,MAAM,EAAE,CAAC,MAAM,GAAM,IAAI,OAAO,KAAK,KAAK,SAAS,gBAAkB,OAAO,CAAC,OAAO,WAAW,CAAC,qBAAqB,OAAO,KAAK,OAAO,OAAO,OAAO,WAAW,OAAO,aAAa,EAAE,CAAC,qBAAqB,KAAK,KAAK,KAAK,OAAO,OAAO,UAAU,OAAO,YAAY,IAAE,KAAK,KAAK,SAAS,WAAW,CAAI,QAAQ,SAAS,QAAQ,QAAQ,KAAK,IAAI,SAAS,OAAO,UAAU,EAAE,aAAa,OAAO,UAAU,KAAK,IAAI,GAAE,KAAK,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,cAAc,GAAK,CAAC,EAAE,IAAI,OAAO,aAAa,KAAK,KAAK,KAAK,CAAC,GAAI,UAAgB,KAAK,MAAM,CAAC,GAAG,QAAQ,MAAM,CAAC,IAAI,OAAO,iBAAiB,OAAO,KAAK,OAAO,OAAO,CAAC,GAAG,QAAQ,QAAS,EAAK,CAAC,IAAI,KAAK,eAAe,OAAO,KAAK,OAAO,OAAO,QAAQ,EAAE,EAAE,GAAG,CAAI,OAAK,OAAO,IAAI,OAAO,KAAK,QAAQ,EAAE,EAAE,KAAK,UAAU,OAAO,GAAG,OAAO,SAAS,OAAO,KAAK,OAAO,OAAO,CAAI,KAAK,WAAW,MAAM,OAAO,iBAAiB,OAAK,OAAO,gBAAgB,KAAK,mBAAmB,OAAO,OAAO,CAAC,OAAO,SAAS,OAAO,KAAK,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO,OAAO,KAAK,KAAK,KAAK,OAAO,MAAU,OAAO,CAAC,IAAI,MAAM,SAAS,aAAa,CAAI,KAAK,OAAO,KAAK,OAAK,CAAC,OAAO,MAAM,CAAC,KAAK,OAAO,EAAC,MAAM,OAAO,KAAK,KAAK,KAAK,OAAO,CAAC,MAAM,SAAS,OAAO,KAAK,OAAO,OAAO,CAAC,OAAO,iBAAiB,CAAC,OAAO,SAAS,MAAM,CAAK,mBAAmB,KAAK,KAAK,KAAK,eAAe,KAAK,MAAK,KAAK,IAAI,MAAM,CAAI,WAAU,UAAU,OAAO,GAAI,CAAC,KAAK,KAAK,SAAS,kBAAkB,OAAO,KAAK,EAAE,KAAK,gBAAgB,OAAO,QAAQ,KAAK,IAAI,OAAO,OAAO,WAAW,OAAO,aAAa,CAAC,KAAK,cAAc,KAAK,QAAQ,KAAK,IAAI,OAAO,OAAO,UAAU,OAAO,YAAY,CAAE,oBAAoB,CAAC,GAAG,KAAK,gBAAgB,KAAK,OAAO,GAAG,CAAC,MAAM,KAAK,OAAO,KAAK,MAAM,UAAU,KAAS,IAAI,aAAa,KAAK,KAAK,CAAI,CAAC,WAAW,cAAc,KAAK,SAAS,eAAe,GAAG,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,OAAO,OAAO,CAAC,IAAI,OAAO,OAAO,IAAI,KAAK,SAAS,KAAK,KAAK,OAAO,KAAK,CAAC,GAAG,CAAC,KAAK,OAAO,IAAI,UAAU,KAAK,WAAW,GAAG,OAAO,MAAM,WAAW,OAAO,MAAM,UAAU,KAAK,OAAO,OAAO,IAAI,OAAO,KAAK,SAAS,OAAO,KAAK,GAAG,CAAC,MAAM,KAAK,SAAS,OAAO,KAAK,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,OAAO,OAAO,MAAM,IAAI,OAAO,IAAI,IAAI,KAAK,SAAS,OAAO,KAAK,OAAO,MAAM,CAAC,IAAI,SAAS,IAAI,KAAK,IAAI,OAAO,CAAC,IAAI,OAAO,OAAO,OAAO,MAAM,EAAE,UAAU,WAAW,eAAe,CAAC,KAAK,SAAS,oBAAoB,CAAC,IAAI,SAAS,KAAK,SAAS,eAAkB,KAAK,QAAQ,WAAW,SAAS,WAAW,SAAS,aAAa,EAAE,OAAO,MAAK,IAAI,SAAS,WAAW,aAAa,CAAE,QAAQ,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,QAAQ,YAAY,IAAI,IAAI,CAAC,GAAG,SAAS,QAAQ,UAAU,KAAK,OAAO,QAAQ,IAAI,IAAI,WAAY,OAAO,KAAM,WAAW,KAAK,OAAO,CAAC,IAAI,KAAK,KAAK,QAAQ,KAAK,CAAC,GAAG,CAAC,KAAK,MAAU,WAAW,qEAAqE,CAAC,OAAO,KAAK,gBAAgB,KAAK,OAAO,CAAC,KAAK,WAAY,SAAS,IAAI,CAAC,GAAG,CAAC,EAAA,IAAE,KAAK,KAAK,aAAa,CAAC,QAAQ,IAAI,GAAG,CAAC,KAAK8C,IAAE,KAAK,SAAS,OAAO,GAAG,CAAC,IAAI,MAAM,KAAK,SAASA,KAAG,GAAG,IAAI,MAAM,QAAQ,iBAAiB,SAAS,MAAM,MAAI,IAAI,EAAG,OAAO,KAAK,SAASA,KAAG,SAAS,IAAI,CAAE,SAAS,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,KAAK,OAAOA,IAAE,KAAK,SAAS,OAAO,GAAG,MAAI,CAAC,IAAI,MAAM,KAAK,SAASA,KAAG,MAAM,IAAI,MAAM,WAAW,MAAM,OAAO,GAAG,IAAI,OAAO,KAAK,OAAO,MAAM,MAAM,UAAU,cAAc,MAAM,MAAM,UAAU,cAAc,CAACA,KAAG,MAAM,GAAG,KAAK,SAASA,IAAE,GAAG,YAAY,KAAK,SAASA,IAAE,GAAG,MAAM,UAAU,cAAc,KAAK,IAAI,OAAO,MAAM,SAAS,IAAI,MAAM,KAAK,CAAC,IAAI,OAAQ,0BAA0B,SAAS,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,SAAa,aAAa,KAAK,KAAK,WAAW,YAAgB,QAAQ,aAAa,KAAK,IAAI,KAAK,KAAK,UAAU,YAAY,KAAK,SAAS,CAAC,EAAM,OAAO,GAAG,IAAI,KAAK,KAAK,eAAe,UAAU,IAAI,IAAI,IAAI,IAAI,EAAEA,IAAE,EAAEA,IAAE,KAAK,SAAS,OAAO,MAAI,CAAC,IAAI,MAAM,KAAK,SAASA,KAAG,IAAI,IAAI,MAAM,OAAO,GAAG,IAAI,GAAG,MAAM,GAAG,KAAK,KAAK,CAAC,IAAI,UAAU,MAAM,IAAI,uBAAuB,CAA+B,GAA9B,OAAO,KAAK,UAAU,OAAO,CAAI,QAAQ,CAAC,IAAI,KAAK,MAAM,IAAI,UAAc,MAAM,KAAK,eAAe,KAAK,CAAC,EAAE,CAAC,GAAG,MAAM,OAAO,CAAC,IAAI,KAAK,MAAM,MAAM,OAAO,GAAO,MAAM,IAAI,KAAK,MAAM,UAAU,KAAK,UAAU,MAAM,KAAK,KAAQ,MAAM,SAAQ,OAAO,MAAM,KAAK,SAAS,aAAa,KAAK,aAAa,IAAI,KAAK,WAAW,OAAQ,IAAI,IAAI,MAAM,WAAY,OAAO,OAAQ,gBAAgB,IAAI,CAAC,GAAG,CAAC,EAAA,KAAG,KAAK,SAAS,IAAI,EAAE,CAAC,OAAO,iBAAiB,KAAK,SAASA,KAAG,IAAI,CAAC,WAAW,MAAM,UAAU,IAAI,UAAU,IAAK,iBAAiB,CAAC,IAAI,IAAI,SAAS,KAAK,SAAU,GAAG,iBAAiB,SAAS,CAAC,IAAI,QAAQ,MAAM,iBAAiB,CAAC,GAAG,QAAQ,OAAO,QAAU,IAAI,MAAM,SAAS,cAAc,MAAM,CAAC,WAAW,UAAU,WAAiW,MAAtV,OAAM,UAAU,UAAU,MAAM,MAAM,MAAM,UAAU,MAAM,YAAY,8BAA8B,KAAK,KAAK,SAAS,WAAW,CAAC,KAAK,IAAI,YAAY,MAAM,CAAC,IAAI,KAAK,eAAe,MAAM,WAAW,CAAC,GAAG,WAAW,MAAM,uBAAuB,CAAC,OAAO,UAAU,KAAK,KAAK,MAAM,GAAG,EAAE,WAAW,KAAK,KAAK,OAAO,WAAW,MAAM,QAAQ,EAAG,CAAO,CAAC,WAAW,UAAU,WAAW,CAAE,YAAY,IAAI,KAAK,OAAO,CAAC,IAAIA,IAAE,KAAK,SAAS,OAA2C,OAAjCA,MAAE,KAAK,KAAK,SAAS,EAAEA,KAAG,QAAc,IAAI,YAAY,KAAK,SAAS,IAAIA,IAAE,CAAE,qBAAqB,CAAC,IAAI,KAAK,EAAE,CAAC,GAAG,KAAK,KAAK,UAAU,IAAI,IAAI,IAAI,EAAEA,IAAE,GAAG,MAAI,CAAC,IAAI,KAAKA,KAAG,GAAG,UAAU,OAAO,KAAK,GAAG,UAAUA,KAAO,IAAI,KAAK,KAAK,KAAK,EAAE,KAAK,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,OAAO,GAAG,YAAY,IAAI,CAAC,OAAO,GAAG,YAAY,IAAI,CAAC,IAAI,KAAK,KAAK,WAAW,QAAQ,CAAC,OAAO,IAAI,eAAe,OAAO,CAAC,MAAM,GAAK,UAAU,GAAK,WAAW,GAAK,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,CAAE,GAAG,CAAC,KAAK,MAAM,IAAI,KAAK,GAAG,EAAG,OAAO,WAAW,IAAI,KAAK,CAAE,YAAY,CAAC,IAAI,QAAQ,KAAK,KAAK,MAAM,MAAM,YAAY,CAAC,KAAK,EAAE,OAAiB,KAAK,qBAAqBA,KAAG,OAAO,GAAG,YAA0B,EAAE,KAAK,KAAK,CAAC,EAAI,CAAC,IAAI,IAAIA,IAAE,QAAQ,OAAOA,IAAE,QAAQ,OAAO,EAAE,MAAI,KAAK,qBAAqBA,KAAG,GAAM,MAAO,MAAK,YAAY,CAAC,GAAG,QAAQ,KAAK,gBAAgB,KAAK,qBAAqB,CAAC,KAAK,KAAK,UAAU,YAAa,CAAE,eAAe,OAAO,CAAC,GAAG,CAAC,OAAO,OAAW,KAAK,KAAK,SAAS,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,MAAM,OAAO,GAAG,EAAE,CAAC,MAAM,GAAG,CAAC,KAAK,OAAU,CAAC,MAAM,QAAQ,MAAM,KAAK,SAAS,MAAM,OAAO,MAAM,OAAO,MAAM,KAAK,GAAG,EAAE,IAAE,KAAK,CAAC,KAAK,KAAK,IAAI,KAAK,KAAK,MAAM,KAAK,CAAC,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,IAAI,CAAC,MAAM,KAAK,IAAI,KAAK,MAAM,MAAM,MAAM,CAAC,OAAO,KAAK,IAAI,KAAK,OAAO,MAAM,OAAO,CAAC,EAAC,IAAI,QAAQ,iBAAiB,KAAK,KAAK,CAAK,WAAW,CAAC,KAAK,KAAK,KAAK,QAAQ,KAAK,IAAI,KAAK,IAAI,QAAQ,IAAI,MAAM,KAAK,MAAM,QAAQ,MAAM,OAAO,KAAK,OAAO,QAAQ,OAAO,CAAC,mBAAmB,KAAK,KAAK,UAAU,WAAW,MAAM,KAAK,MAAM,OAAO,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,QAAQ,OAAO,QAAQ,KAAK,KAAK,eAAe,UAAU,IAAI,CAAE,YAAY,KAAK,CAAC,OAAO,CAAC,KAAK,KAAK,KAAK,KAAK,gBAAgB,WAAW,KAAK,KAAK,YAAY,EAAE,CAAC,KAAK,qBAAqB,EAAE,CAAC,KAAK,SAAS,EAAE,KAAK,aAAa,EAAE,KAAK,WAAW,EAAE,KAAK,gBAAgB,KAAK,KAAK,cAAc,KAAK,KAAK,eAAe,GAAM,KAAK,WAAW,KAAK,KAAK,CAAC,KAAK,OAAO,KAAK,WAAW,CAAC,KAAK,SAAS,CAAC,IAAI,SAAS,CAAC,KAAK,SAAS,GAAG,UAAU,KAAK,CAAC,KAAK,YAAY,CAAC,KAAK,YAAY,CAAC,IAAI,aAAa,EAAE,EAAE,EAAE,KAAK,MAAM,IAAI,OAAO,CAAC,CAAC,EAAE,GAA2Q,eAAe,cAAc,UAAU,CAAC,OAAO,CAAC,IAAI,IAAI,SAAS,cAAc,MAAM,CAAqB,OAApB,KAAK,UAAU,IAAI,CAAQ,IAAK,GAAG,MAAM,CAAC,OAAO,MAAM,QAAQ,KAAK,OAAQ,UAAU,IAAI,CAAmC,MAAlC,KAAI,MAAM,OAAO,KAAK,OAAO,KAAY,GAAM,IAAI,iBAAiB,CAAC,OAAO,KAAK,OAAQ,YAAY,OAAO,CAAC,OAAO,CAAC,KAAK,OAAO,SAA80D,kBAAkB,cAAc,UAAU,CAAC,GAAG,MAAM,CAAC,OAAO,KAAK,KAAK,MAAM,KAAK,KAAK,MAAM,MAAM,KAAM,OAAO,CAAC,OAAO,KAAK,IAAK,aAAa,CAAC,MAAO,GAAO,IAAI,YAAY,CAAC,OAAO,gBAAiB,YAAY,KAAK,KAAK,QAAQ,CAAC,OAAO,CAAC,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,QAAQ,UAAisB,uBAAuB,KAAK,CAAC,aAAa,KAAK,GAAG,CAAC,SAAS,KAAK,GAAG,KAAK,QAAQ,CAAE,aAAa,KAAK,GAAG,CAAC,SAAS,KAAK,GAAG,KAAK,QAAQ,CAAE,aAAa,CAAC,KAAK,QAAQ,EAAE,GAA4wU,WAAW,KAAK,CAAC,mBAAmB,OAAO,CAAC,KAAK,oBAAoB,OAAO,KAAK,kBAAkB,KAAK,KAAK,CAAE,eAAe,KAAK,QAAQ,CAAC,IAAIG,KAAG,IAAI,UAAU,KAAK,eAAe,EAAE,CAAC,IAAI,IAAI,WAAW,QAAQ,GAAG,UAAc,QAAQ,OAAO,KAAK,CAAC,MAAoC,iBAAsF,IAAI,IAAI,QAA5E,KAAK,eAAe,KAAK,CAAC,OAAO,QAAQ,MAAM,SAAS,UAAU,CAAC,CAAiB,UAAa,KAAK,iBAAiB,QAAQ,KAAK,CAAC,GAAG,MAAM,WAAU,KAAK,iBAAiB,KAAK,KAAK,CAAC,KAAK,WAAW,iBAAiB,KAAK,OAAO,CAAK,qBAAqB,KAAK,MAAM,EAAW,KAAK,kBAAkB,KAAK,KAAK,MAAM,EAAC,MAAM,gBAAgB,EAAG,EAAI,kBAAkB,KAAK,KAAK,MAAM,CAAC,IAAI,IAAI,OAAO,KAAK,eAAe,CAAC,IAAI,QAAQ,IAAI,SAAS,MAAM,GAAG,QAAS,GAAG,CAAC,GAAG,QAAQ,KAAK,IAAI,OAAO,MAAM,KAAK,EAAE,MAAM,iBAAiB,MAAO,SAAY,EAAE,CAAC,aAAa,KAAK,MAAM,EAAE,EAAI,MAAO,GAAO,kBAAkB,KAAK,MAAM,CAAC,KAAK,cAAc,KAAK,UAAU,UAAU,KAAK,eAAe,KAAK,UAAU,WAAW,IAAI,IAAI,OAAO,KAAK,eAAe,CAAC,IAAI,QAAQ,IAAI,SAAS,OAAO,GAAG,QAAS,GAAG,CAAC,QAAQ,KAAK,IAAI,OAAO,MAAM,KAAK,OAAQ,EAAE,CAAC,aAAa,KAAK,MAAM,EAAE,GAAK,QAAQ,KAAK,MAAM,CAA4D,GAA3D,KAAK,YAAY,MAAM,QAAQ,KAAK,YAAY,KAAK,KAAK,CAAI,MAAM,SAAS,GAAG,KAAK,KAAK,CAAC,KAAK,aAAa,IAAI,MAAO,GAAiG,GAAzF,MAAM,SAAS,IAAI,cAAc,QAAQ,MAAM,QAAQ,CAAC,IAAE,KAAK,WAAW,aAAa,GAAK,QAAQ,SAAS,QAAQ,QAAQ,CAAC,MAAM,YAAY,MAAM,SAAS,IAAI,MAAM,SAAS,GAA2D,OAAvD,KAAK,SAAS,gBAAgB,MAAM,IAAI,MAAM,QAAQ,CAAQ,GAAM,IAAI,QAA2T,OAAhT,QAAQ,KAAK,CAAC,MAAM,WAAW,CAAC,MAAM,QAAQ,CAAC,MAAM,WAAW,QAAQ,YAAY,KAAK,KAAK,IAAI,SAAS,MAAM,QAAQ,GAAG,CAAC,MAAM,SAAS,kBAAkB,QAAQ,MAAM,IAAI,CAAC,IAAI,MAAM,SAAS,CAAC,MAAM,WAAW,KAAK,cAAc,SAAS,MAAM,eAAe,KAAK,YAAY,KAAK,CAAC,IAAI,CAAQ,IAAa,GAAO,YAAY,KAAK,CAAC,IAAI,IAAI,KAAK,cAA6D,OAA3C,KAAiB,KAAK,cAAc,IAAK,GAAS,YAAY,KAAK,WAAW,IAAI,IAAI,IAAI,QAAQ,EAAvF,GAAyF,wBAAwB,MAAM,CAA6N,MAAxN,OAAO,KAAK,MAAM,KAAK,CAAiB,KAAK,UAAU,EAAS,GAAQ,QAAQ,QAAQ,CAAC,QAAQ,KAAK,KAAK,uBAAuB,KAAK,KAAK,CAAC,KAAK,mBAAmB,KAAK,KAAK,sBAAsB,GAAa,IAAa,GAAhM,GAAuM,kBAAkB,MAAM,CAAC,OAAO,MAAM,MAAM,WAAW,MAAM,SAAS,IAAK,oBAAoB,eAAe,CAAI,KAAK,gBAAe,KAAK,eAAe,SAAS,CAAC,KAAK,eAAe,eAAgB,OAAO,OAAO,CAAI,KAAK,gBAAe,KAAK,eAAe,OAAO,OAAO,CAAI,OAAO,aAAa,SAAO,KAAK,YAAY,KAAK,kBAAkB,GAAG,SAAS,CAAI,KAAK,gBAAe,KAAK,eAAe,SAAS,CAAE,YAAY,KAAK,CAAC,KAAK,YAAY,EAAE,KAAK,YAAY,EAAE,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,KAAK,eAAe,EAAE,KAAK,iBAAiB,GAAG,KAAK,cAAc,IAAK,GAAE,KAAK,oBAAoB,KAAK,KAAK,kBAAkB,EAAE,KAAK,aAAa,EAAE,KAAK,gBAAgB,EAAE,KAAK,eAAe,EAAE,CAAC,KAAK,iBAAiB,EAAE,CAAC,KAAK,eAAe,EAAE,CAAC,KAAK,UAAU,GAAG,KAAK,uBAAuB,KAAK,KAAK,mBAAmB,EAAE,KAAK,sBAAsB,GAAM,KAAK,yBAAyB,GAAM,KAAK,eAAe,KAAK,IAAI,aAAa,QAAQ,QAAQ,CAAI,KAAK,wBAAwB,MAAM,EAAW,MAAM,MAAM,WAAW,KAAK,QAAQ,KAAK,MAAM,GAAW,KAAK,kBAAkB,MAAM,EAAC,KAAK,SAAS,YAAY,CAAI,KAAK,kBAAkB,MAAM,KAAK,KAAK,MAAM,CAAC,MAAM,gBAAgB,CAAM,QAAQ,KAAK,MAAM,GAAG,IAAI,IAAI,QAAQ,SAAS,CAAC,IAAI,QAAQ,SAAS,MAAM,KAAK,WAAW,iBAAiB,KAAK,OAAO,CAAI,qBAAqB,KAAK,MAAM,EAAC,YAAY,QAAQ,MAAM,EAAG,eAAe,MAAM,CAAC,KAAK,iBAAiB,KAAK,KAAK,CAAE,KAAK,UAAU,iBAAiB,YAAY,OAAO,CAAC,GAAG,MAAM,QAAQ,KAAK,WAAW,MAAM,QAAQ,KAAK,WAAW,uBAAuB,CAAC,SAAQ,YAAY,SAAS,UAAU,MAAM,CAAI,CAAC,MAAM,kBAAkB,MAAM,QAAQ,GAAE,CAAC,IAAI,MAAM,KAAK,WAAW,MAAM,UAAU,KAAK,WAAW,MAAM,UAAU,OAAO,eAAe,KAAK,WAAW,MAAM,UAAU,MAAM,IAAI,GAAK,CAAC,KAAK,UAAU,iBAAiB,OAAO,OAAO,CAAI,MAAM,QAAQ,KAAK,WAAW,MAAM,QAAQ,KAAK,WAAW,uBAAuB,CAAC,QAAO,YAAY,SAAS,KAAK,MAAM,EAAG,CAAI,QAAQ,QAAQ,QAAQ,gBAAgB,KAAK,KAAK,UAAU,iBAAiB,YAAY,CAAI,KAAK,iBAAiB,EAAE,KAAK,WAAW,MAAM,cAAc,OAAY,OAAO,aAAa,KAAK,iBAAiB,CAAC,KAAK,iBAAiB,eAAe,CAAC,KAAK,iBAAiB,GAAG,KAAK,WAAW,MAAM,cAAc,IAAK,IAAI,EAAG,CAAC,QAAQ,GAAK,CAAC,CAAE,KAAK,gBAAgB,KAAK,SAAY,QAAQ,QAAO,KAAK,WAAW,iBAAiB,YAAY,KAAK,GAAQ,YAAY,CAAC,CAAC,IAAI,YAAY,QAAQ,EAAE,UAAU,wBAAwB,CAAC,CAAC,IAAI,QAAQ,QAAQ,GAAG,UAAU,kBAAkB,CAAC,CAAC,IAAI,SAAS,QAAQ,GAAG,UAAU,uBAAuB,CAAE,CAAK,kBAAkB,QAAY,cAAc,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,CAAK,iBAAiB,EAAmE,eAAe,KAAK,CAAC,MAAM,MAAM,CAAI,KAAK,WAAW,KAAO,MAAM,gBAAgB,CAAC,KAAK,OAAO,MAAM,EAAG,KAAK,MAAM,CAAC,IAAIA,KAAG,GAAG,MAAM,SAAS,EAAE,OAAO,KAAK,SAAS,CAAC,GAAG,KAAK,WAAW,GAAM,OAAO,KAAK,OAAO,KAAK,UAAU,MAAM,CAAC,IAAI,GAAG,EAAE,GAAG,EAAM,KAAU,KAAK,cAA4C,uBAAuB,EAAG,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,KAAK,KAAK,IAAI,WAAW,OAAO,KAAK,KAAK,IAAI,YAAY,CAAK,QAAQ,iBAAiB,KAAK,KAAK,CAAI,MAAM,QAAQ,QAAQ,MAAM,KAAK,KAAK,iBAAiB,GAAG,CAAC,gBAAgB,KAAK,KAAK,MAAM,QAAQ,CAAS,MAAM,QAAQ,QAAQ,OAAO,KAAK,MAAM,mBAAiB,GAAG,gBAAgB,MAAM,QAAQ,KAAK,MAAM,EAAI,MAAM,QAAQ,QAAQ,KAAK,KAAK,IAAI,iBAAiB,GAAG,CAAC,gBAAgB,KAAK,IAAI,MAAM,QAAQ,CAAS,MAAM,QAAQ,QAAQ,QAAQ,KAAK,OAAO,mBAAiB,GAAG,gBAAgB,MAAM,QAAQ,KAAK,OAAO,EAAC,KAAK,eAAe,GAAG,GAAG,CAAE,GAAG,MAAM,CAAI,KAAK,UAAe,KAAK,OAAO,KAAK,UAAU,CAAK,KAAK,UAAS,MAAM,gBAAgB,CAAC,KAAK,SAAS,CAAE,SAAS,CAAC,KAAK,eAAe,EAAE,EAAE,CAAC,IAAI,KAAK,KAAK,KAAK,WAAW,cAAc,KAAK,oBAAoB,YAAY,KAAK,KAAK,CAAC,KAAK,oBAAoB,UAAU,KAAK,GAAG,CAAC,KAAK,KAAK,WAAW,eAAe,KAAM,eAAe,GAAG,GAAG,CAAC,KAAK,YAAY,CAAC,EAAE,GAAG,EAAE,GAAG,CAAI,IAAI,GAAO,KAAK,UAAU,IAAE,KAAK,UAAU,gBAAgB,KAAK,QAAQ,CAAC,GAAG,EAAU,KAAK,UAAU,KAAI,cAAc,KAAK,UAAU,CAAC,KAAK,UAAU,IAAK,QAAQ,CAAI,KAAK,cAAc,KAAK,aAAa,YAAY,KAAK,YAAY,EAAE,KAAK,aAAa,WAAW,KAAK,YAAY,GAAQ,KAAK,KAAK,IAAI,SAAS,KAAK,YAAY,EAAE,KAAK,YAAY,EAAE,CAAK,KAAK,WAAW,IAAM,KAAK,OAAO,KAAK,UAAU,CAAE,UAAU,IAAI,CAAC,IAAI,OAAO,KAAK,IAAI,IAAIH,IAAE,EAAEA,IAAE,IAAI,OAAO,OAAO,MAAI,CAAC,IAAI,MAAM,IAAI,OAAOA,KAAG,QAAQ,KAAK,GAAG,MAAM,MAAM,CAAC,IAAI,IAAI,iBAAiB,KAAK,MAAM,MAAM,KAAK,EAAE,CAAI,KAAK,MAAM,OAAK,QAAQ,gBAAgB,OAAO,IAAI,GAAG,MAAM,CAAC,IAAI,KAAK,iBAAiB,KAAK,MAAM,MAAM,KAAK,GAAG,CAAK,GAAG,iBAAiB,KAAK,MAAM,MAAM,GAAG,EAAE,EAAI,MAAM,MAAM,MAAM,IAAI,MAAM,MAAG,QAAQ,gBAAgB,MAAM,MAAM,MAAM,MAAM,OAAO,KAAK,GAAG,MAAM,MAAM,MAAM,KAAK,KAAK,GAAG,EAAK,UAAS,AAAW,SAAO,IAAI,OAAO,OAAO,CAAC,OAAOA,KAAG,SAAU,OAAO,OAAO,gBAAgB,OAAO,OAAO,IAAI,UAAU,CAAC,IAAK,OAAO,MAAM,CAAC,GAAG,CAAC,MAAM,KAAK,UAAU,KAAK,UAAU,KAAK,MAAM,IAAI,MAAM,KAAK,OAAO,KAAK,SAAS,CAAC,EAAI,KAAK,YAAY,CAAC,UAAU,GAAG,KAAK,MAAM,UAAU,EAAE,UAAU,KAAK,OAAO,KAAK,MAAM,UAAU,KAAK,QAAM,KAAK,KAAK,SAAS,CAAC,UAAU,UAAU,iBAAiB,CAAC,CAAC,KAAK,WAAW,GAAO,OAAO,OAAO,CAAI,OAAO,YAAY,KAAK,WAAS,KAAK,SAAS,KAAK,SAAS,IAAI,OAAO,QAAQ,EAAI,KAAK,MAAM,OAAO,OAAO,EAAC,eAAe,KAAK,OAAO,KAAK,UAAU,CAAC,GAAG,CAAE,YAAY,KAAK,WAAW,MAAM,WAAW,CAAC,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,KAAK,WAAW,WAAW,KAAK,YAAY,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,KAAK,UAAU,GAAG,KAAK,UAAU,WAAW,KAAK,aAAa,iBAAiB,KAAK,WAAW,CAAC,KAAK,MAAM,KAAK,MAAM,MAAM,aAAa,CAAC,IAAI,GAAG,EAAE,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,WAAW,cAAc,KAAK,iBAAiB,YAAY,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,CAAC,CAAC,KAAK,iBAAiB,UAAU,KAAK,GAAG,KAAK,GAAG,KAAK,KAAK,CAAC,CAAC,KAAK,OAAO,WAAW,SAAS,KAAK,SAAS,KAAK,MAAM,MAAM,YAAY,wBAAwB,EAAE,mBAAmB,KAAK,WAAW,CAAC,KAAK,SAAS,mBAAmB,KAAK,WAAW,CAAC,KAAK,SAAS,qBAAqB,KAAK,WAAW,EAAE,aAAa,WAAW,EAAE,EAAE,KAAK,KAAuhC,SAAyB,OAAO,OAAO,KAAK,CAAK,eAA+B,OAAO,OAAO,KAAK,CAAK,mBAAmB,QAAQ,IAAI,QAAQ,WAAW,IAAI,QAAQ,KAAK,QAAQ,eAAe,IAA8qC,SAAS,SAAS,KAAK,QAAQ,CAAC,KAAK,WAAW,mBAAmB,SAAS,CAAI,MAAM,SAAS,KAAG,KAAK,WAAW,aAAa,KAAK,KAAK,GAAG,SAAS,YAAY,KAAK,IAAI,CAAC,KAAK,WAAW,cAAc,KAAK,KAAK,CAAC,KAAK,WAAW,mBAAmB,iBAAiB,EAAG,SAAS,UAAU,MAAM,CAAC,KAAK,WAAW,mBAAmB,iBAAiB,EAAG,eAAe,WAAW,eAAe,UAAU,CAAC,QAAQ,GAAK,CAAC,SAAS,WAAW,KAAK,QAAQ,CAAuB,GAAtB,KAAK,SAAS,OAAO,CAAI,KAAK,WAAW,cAAc,KAAK,KAAK,CAAC,IAAI,OAAO,IAAI,MAAM,KAAK,IAAI,IAAI,aAAa,KAAK,MAAM,MAAM,oBAAoB,CAA8B,GAA5B,MAAM,UAAU,KAAK,MAAM,CAAI,MAAM,MAAwE,GAA9D,CAAC,OAAO,MAAM,QAAQ,IAAE,MAAM,oBAAoB,KAAK,MAAM,EAAI,MAAM,CAAC,IAAI,UAAU,KAAK,KAAK,eAAe,KAAK,WAAW,KAAK,WAAW,oBAAoB,IAAI,eAAe,KAAK,MAAM,MAAM,UAAU,CAAC,CAAI,WAAU,KAAK,SAAS,WAAW,mBAAmB,KAAK,WAAW,CAAC,CAAI,KAAK,WAAW,gBAAe,KAAK,WAAW,eAAe,MAAM,MAAM,GAAya,SAAS,EAAE,OAAO,GAAG,KAAK,KAAK,GAAG,KAAK,OAAW,QAAQ,IAAE,EAAE,OAAO,QAAQ,EAAE,KAAK,EAAEQ,KAAG,KAAK,MAAMA,KAAG,KAAK,MAAqhB,eAAe,QAAQ,IAAI,QAAQ,YAAY,GAAO,cAAc,KAAS,mBAAmB,EAAM,kBAAkB,EAAkgD,SAAS,WAAW,KAAK,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,KAAK,MAAS,CAAC,gBAAgB,KAAK,WAAc,iBAAe,eAAe,SAAS,MAAQ,MAAM,eAAc,MAAM,aAAa,QAAQ,OAAO,KAAK,MAAM,SAAS,KAAK,KAAK,KAAK,GAAG,CAAC,CAAC,MAAM,aAAa,cAAc,aAAilB,SAAS,MAAM,KAAK,QAAQ,CAAC,GAAG,CAAC,MAAM,aAAa,OAAO,GAAG,KAAK,MAAM,SAAS,OAAO,MAAM,gBAAgB,CAAC,IAAI,MAAM,MAAM,aAAa,MAAM,GAAG,OAAO,MAAM,OAAO,CAAC,MAAM,gBAAgB,CAAC,IAAI,KAAK,MAAM,MAAM,OAAO,CAAC,KAAK,EAAM,eAAe,CAAI,EAAE,MAAM,MAAM,QAAO,SAAS,KAAK,MAAM,KAAK,OAAO,GAAG,GAAG,KAAK,CAAC,KAAK,KAAK,MAAM,UAAU,CAAC,GAAM,EAAG,IAAI,IAAIR,IAAE,EAAEA,IAAE,MAAM,OAAO,MAAI,CAAC,IAAI,OAAO,IAAI,WAAW,OAAO,QAAQ,WAAW,OAAO,WAAW,CAAK,0BAA0B,KAAK,OAAO,OAAO,GAAC,KAAKA,KAAG,OAAO,QAAO,YAAY,EAAG,OAAO,WAAW,MAAMA,KAAG,OAAQ,SAAS,KAAK,MAAM,MAAM,aAAa,QAAQ,OAAO,CAAC,GAAK,EAAI,SAAS,OAAO,KAAK,QAAQ,CAAC,GAAG,KAAK,MAAM,SAAS,OAAO,MAAM,gBAAgB,CAAC,KAAK,SAAS,OAAO,CAAC,IAAI,KAAK,mBAAmB,KAAK,MAAM,cAAiB,MAAM,QAAQ,KAAK,KAAK,QAAQ,aAAa,EAAE,KAAK,QAAQ,gBAAgB,CAAC,CAAC,MAAM,gBAAgB,EAAO,aAAa,KAAK,EAAs2B,iBAAiB,KAAK,SAAS,KAAK,SAAS,KAAK,KAAK,QAAQ,CAAC,GAAG,CAAC,KAAK,OAAO,UAAU,YAAY,KAAK,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,OAAO,iBAAiB,SAAS,KAAK,KAAK,IAAI,KAAK,mBAAmB,KAAK,MAAM,cAAiB,MAAM,MAAM,gBAAgB,CAAC,KAAK,WAAW,CAAC,KAAK,QAAQ,aAAa,KAAK,EAAO,YAAY,KAAK,KAAK,CAAK,MAAM,MAAM,OAAO,CAAC,KAAK,MAAM,UAAS,KAAK,SAAS,CAAC,QAAQ,OAAO,eAAe,GAAK,UAAU,aAAa,CAAC,EAAO,cAA8B,WAAW,QAAQ,CAAge,SAAS,MAAM,MAAM,CAAC,KAAK,WAAW,cAAc,KAAK,KAAK,CAAI,CAAC,KAAK,UAAU,YAAY,KAAK,WAAW,eAAe,KAAK,WAAW,kBAAiB,KAAK,UAAU,UAAU,KAAK,WAAW,cAAc,KAAK,UAAU,WAAW,KAAK,WAAW,gBAAgB,qBAAqB,KAAK,EAAG,SAAS,KAAK,MAAM,CAAC,KAAK,SAAS,qBAAqB,CAAC,qBAAqB,KAAK,EAAG,SAAS,iBAAiB,SAAS,kBAAkB,MAAM,CAAI,KAAK,WAAW,yBAA6B,KAAK,WAAW,uBAAuB,IAAQ,KAAK,WAAW,UAAU,IAAG,KAAK,WAAW,UAAU,IAAK,SAAS,eAAe,MAAM,CAAC,KAAK,WAAW,UAAU,GAAG,KAAK,WAAW,mBAAmB,KAAK,KAAK,CAAC,KAAK,WAAW,sBAAsB,GAAK,KAAK,WAAW,yBAAyB,KAAK,SAAS,gBAAgB,CAAC,OAAO,EAAE,KAAK,WAAW,uBAAuB,KAAQ,QAAQ,QAAQ,QAAQ,QAAS,KAAK,SAAS,WAAW,CAAU,KAAK,WAAW,yBAA0B,QAAQ,SAAS,CAAC,SAAS,KAAK,SAAS,OAAO,CAAC,CAAO,eAAe,CAAI,KAAK,WAAW,UAAU,GAAG,KAAK,QAAQ,gBAAgB,MAAK,KAAK,OAAO,EAAE,CAAC,EAAG,GAAG,EAAI,SAAS,YAAY,MAAM,CAAC,KAAK,WAAW,gBAAgB,KAAK,KAAK,EAAG,SAAS,aAAa,KAAK,QAAQ,CAAC,IAAIG,KAAG,IAAI,QAAQ,GAAG,QAAQ,QAAQ,QAAQ,UAAU,QAAQ,YAAY,KAAK,KAAK,IAAI,WAAW,MAAM,UAAU,IAAG,KAAK,SAAS,gBAAgB,QAAQ,IAAI,QAAQ,QAAQ,CAAI,QAAQ,KAAK,aAAa,QAAQ,KAAK,UAAS,CAAC,IAAI,gBAAqB,OAAO,gBAA8C,QAAS,EAAE,eAAe,CAAC,IAAI,KAAc,OAAO,gBAAgD,QAAS,GAAG,gBAAgB,IAAI,KAAK,WAAU,KAAK,WAAW,MAAM,CAAC,KAAK,OAAO,GAAI,IAAI,GAAS,mBAAmB,CAAC,WAAW,SAAS,WAAW,eAAe,CAAK,aAAa,KAAK,CAAC,aAAa,KAAK,GAAG,CAAC,IAAI,MAAM,KAAK,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,IAAI,OAAO,KAAK,CAAC,OAAO,EAAwG,OAAnG,KAAK,eAAa,OAAO,KAAK,IAAI,EAAE,KAAK,MAAM,GAAG,KAAK,MAAM,KAAK,WAAW,IAAI,KAAK,WAAW,CAAC,EAAQ,KAAK,WAAW,MAAO,cAAc,OAAO,CAA8H,OAAzH,KAAK,cAA8C,EAAE,KAAK,IAAI,EAAE,KAAK,MAAM,OAAO,KAAK,aAAa,KAAK,WAAW,GAAG,CAAC,EAAc,KAAK,WAAlH,KAAK,WAAyH,OAAO,KAAK,CAAe,MAAd,MAAK,IAAI,KAAY,KAAM,uBAAuB,WAAW,CAAC,OAAO,mBAAmB,QAAQ,WAAW,CAAC,IAAI,KAAK,aAAc,sBAAsB,YAAY,CAAC,IAAI,UAAU,GAAM,IAAI,IAAIH,IAAE,EAAEA,IAAE,YAAY,OAAO,MAAI,CAAC,IAAI,EAAE,YAAYA,KAAM,EAAE,EAAG,MAAc,KAAK,cAAc,KAAK,MAAM,EAAE,GAAG,IAAG,UAAU,GAAK,KAAK,cAAc,KAAK,MAAM,EAAE,GAAG,EAAE,IAAO,OAAO,UAAW,QAAQ,WAAW,WAAW,UAAU,WAAW,WAAW,aAAa,CAAC,IAAI,aAAa,mBAAmB,QAAQ,WAAW,CAAC,GAAO,QAAQ,KAAK,MAAM,WAAW,EAAE,KAAK,MAAM,KAAK,WAAW,EAAE,KAAK,cAAc,aAAsJ,GAAzI,KAAK,aAAa,aAAa,KAAK,WAAW,WAAW,KAAK,UAAU,UAAU,KAAK,WAAW,WAAW,KAAK,WAAW,WAAc,QAAQ,CAAC,KAAK,cAAc,EAAE,CAAC,IAAI,IAAIA,IAAE,EAAEA,IAAE,aAAa,OAAO,MAAI,CAAC,IAAI,EAAE,aAAaA,KAAM,EAAE,EAAE,MAAS,KAAK,cAAc,KAAK,MAAM,EAAE,GAAG,EAAE,IAAO,OAAO,QAAS,YAAY,aAAa,CAAC,KAAK,aAAa,aAAa,KAAK,IAAI,KAAK,MAAM,KAAK,cAAc,EAAE,CAAC,KAAK,WAAW,GAAG,KAAK,UAAU,EAAE,KAAK,WAAW,GAAG,KAAK,WAAW,GAAG,KAAK,cAAc,KAAa,gBAAgB,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,KAAK,MAAM,KAAK,QAAQ,OAAQ,YAAY,KAAK,QAAQ,CAAC,KAAK,KAAK,KAAK,KAAK,QAAQ,QAAQ,KAAK,MAAM,IAAS,UAAU,KAAK,CAGnj2C,IAAI,MAAM,CAAC,OAAO,OAAO,KAAK,UAAU,SAAS,UAAU,KAAK,MAAM,QAAQ,KAAK,SAAS,CAAC,KAAK,SAAS,KAAK,SAAS,KAEzH,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,KAAK,OAE/B,IAAI,QAAQ,CAAC,OAAO,KAAK,IAAI,KAAK,OAGlC,IAAI,QAAQ,CAAC,OAAO,KAAK,oBAAoB,gBAAgB,KAAK,SAAS,OAAO,KAGlF,IAAI,kBAAkB,CAAC,OAAO,OAAO,KAAK,UAAU,SAAS,KAAK,SAAS,EAE3E,KAAK,MAAM,CAAC,IAAI9C,WAAS,MAAM,QAAQ,KAAK,SAAS,CAAC,KAAK,SAAS,CAAC,KAAK,EAAE,OAAO,MAAM,QAAQ,MAAM,SAAS,CAAC,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC,OAAO,IAAI,UAAU,KAAK,KAAK,KAAK,OAAO,MAAM,OAAO,KAAK,IAAI,KAAK,OAAO,MAAM,OAAOA,UAAQ,CAE3O,YAAY,KAAK,OAAO,KAAK,OAAO,SAAS,CAAC,KAAK,KAAK,KAAK,KAAK,OAAO,OAAO,KAAK,IAAI,KAAK,KAAK,OAAO,OAAO,KAAK,SAAS,WAAgB,UAA0B,SAAS,WAAW,CAAqJ,MAApJ,YAAW,WAAW,MAAS,GAAG,QAAQ,WAAW,WAAW,SAAY,GAAG,WAAW,WAAW,WAAW,cAAiB,GAAG,gBAAuB,YAAa,AAAY,YAAU,EAAE,CAAE,CAAK,QAAQ,KAAS,UAAU,KAAK,CAAC,IAAI,UAAU,CAAC,OAAO,KAAK,MAAM,GAAG,EAAG,IAAI,SAAS,MAAM,CAAC,KAAK,OAAO,MAAM,EAAE,GAAG,KAAK,MAAM,GAAI,UAAU,OAAO,OAAO,CAAI,KAAK,QAAQ,SAAW,KAAK,IAAI,KAAK,OAAO,OAAO,CAAC,UAAQ,OAAO,cAAc,IAAK,KAAK,OAAO,QAG3oB,QAAQ,MAAM,IAAI,MAAM,CAAC,OAAO,UAAU,GAAG,MAAM,CACnD,cAAc,IAAI,OAAO,CAAC,OAAO,KAAK,KAAK,CAAE,eAAe,MAAM,OAAO,CAAC,OAAO,KAAK,KAAK,CAAE,aAAa,aAAa,OAAO,OAAO,QAAQ,CAAC,IAAI,GAAG,KAAK,KAAK,OAAO,IAAI,IAAI,IAAI8C,IAAE,QAAQ,OAAO,EAAEA,KAAG,EAAE,MAAI,CAAC,GAAG,CAAC,MAAM,IAAI,MAAM,KAAK,QAAQA,KAAO,MAAM,GAAG,OAAO,MAAM,UAAU,cAAc,OAAO,OAAO,OAAO,CAAC,EAAE,EAAE,CAAK,IAAI,MAAM,IAAI,IAAI,MAAM,GAAG,OAAO,IAAI,UAAU,cAAc,OAAO,EAAE,EAAE,CAA4B,IAA3B,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,GAASA,IAAE,GAAG,MAAM,MAAM,QAAQA,IAAE,GAAG,KAAK,MAAM,QAAQA,IAAE,GAAG,MAAM,MAAM,QAAQA,IAAE,GAAG,MAAM,MAAO,MAAM,MAAM,OAAK,MAAM,GAAG,OAAO,MAAM,UAAU,cAAc,OAAO,EAAE,EAAE,EAAE,OAAO,MAAM,KAAK,MAAM,MAAM,MAAM,KAAK,IAAI,MAAM,YAAY,MAAM,OAAO,OAAO,KAAK,CAAC,aAAa,MAAM,IAAI,CAAC,GAAG,GAAG,QAAQ,MAAM,IAAI,MAAM,CAAE,OAAO,GAAG,aAAa,OAAO,EAAE,CAAE,OAAO,OAAO,CAAC,OAAO,IAAI,cAAc,EAAE,EAAE,CAItzB,OAAO,GAAG,MAAM,CAAC,GAAG,MAAM,QAAQ,EAAE,OAAO,MAAM,GAAG,IAAIA,IAAE,EAAE,EAAE,MAAM,OAAO,OAAO,EAAE,MAAM,EAAE,OAAQ,GAAGA,KAAG,EAAG,GAAG,OAAO,MAAM,EAAE,CAAC,IAAI,MAAM,MAAMA,IAAE,GAAM,MAAM,MAAM,MAAM,OAAO,EAAEA,IAAE,EAAE,MAAM,KAAK,KAAK,MAAM,MAAM,CAAM,MAAM,OAAO,EAAEA,IAAE,EAAE,MAAM,KAAK,MAAM,MAAM,CAAC,GAAG,EAAE,MAAM,MAAM,QAAQ,MAAM,aAAc,MAAM,OAAO,EAAE,CAAC,IAAI,OAAO,MAAM,GAAM,OAAO,MAAM,MAAM,OAAO,EAAE,EAAE,OAAO,KAAK,KAAK,OAAO,MAAM,CAAM,MAAM,OAAO,EAAE,EAAE,OAAO,KAAK,OAAO,MAAM,CAAC,GAAG,EAAE,OAAO,MAAM,OAAO,OAAO,UAAW,cAAgB,OAAO,MAAM,CAAC,IAAI,KAAK,MAAM,OAAQ,OAAK,QAAQ,KAAK,UAAU,CAAC,IAAI,MAAM,MAAM,EAAE,GAAM,QAAM,OAAO,MAAM,MAAO,IAAI,IAAI,EAAqE,OAAhE,MAAMA,IAAE,IAAI,MAAM,IAAI,EAAE,OAAa,MAAMA,OAAU,IAAI,EAAE,KAAY,IAAI,gBAAgB,UAAU,GAAG,MAAM,MAAM,EAAEA,IAAE,CAAC,CAAC,IAAI,UAAU,GAAG,MAAM,MAAM,EAAE,CAAC,CAAC,CAAE,YAAY,OAAO,OAAO,MAAM,EAAE,CAAC,KAAK,OAAO,OAAO,KAAK,OAAO,OAAO,KAAK,MAAM,QAAS,UAAU,UAAU,KAAK,EAAM,eAAe,cAAc,SAAS,CAAC,QAAQ,QAAQ,QAAQ,KAAK,OAAO,CAAC,OAAO,IAAI,UAAU,OAAO,KAAK,OAAO,KAAK,KAAK,OAAO,KAAK,MAAM,EAAE,CAAE,OAAO,OAAO,MAAM,OAAO,KAAK,OAAO,CAAC,OAAO,KAAK,QAAQ,EAAE,OAAO,KAAK,OAAO,CAAE,YAAY,KAAK,GAAG,OAAO,KAAK,OAAO,EAAE,CAAI,MAAM,OAAO,KAAK,QAAQ,IAAI,QAAO,EAAE,KAAK,QAAQ,EAAE,OAAO,KAAK,OAAO,CAAC,CAAE,aAAa,OAAO,OAAO,EAAE,OAAO,GAAM,SAAS,CAAiI,OAA7H,UAAU,SAAS,MAAM,QAAQ,SAAS,MAAK,KAAK,UAAU,OAAO,SAAS,QAAQ,SAAS,SAAS,CAAC,KAAK,SAAS,GAAa,KAAM,UAAU,CAAC,MAAM,SAAS,KAAK,OAAO,GAAI,YAAY,OAAO,OAAO,KAAK,CAAC,MAAM,OAAO,OAAO,CAAC,KAAK,KAAK,OAAY,cAAc,cAAc,cAAc,CAAC,QAAQ,QAAQ,QAAQ,KAAK,OAAO,CAAC,OAAO,IAAI,UAAU,OAAO,KAAK,OAAO,KAAK,KAAK,OAAO,KAAK,OAAO,CAAE,QAAQ,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,GAA+S,OAAzS,MAAM,QAAQ,IAAI,gBAAgB,eAAe,gBAAgB,cAAc,KAAK,MAAM,IAAI,KAAK,IAAI,KAAK,OAAO,KAAK,OAAO,CAAC,IAAO,gBAAgB,aAAa,KAAK,IAAI,cAAc,KAAK,OAAO,KAAK,OAAO,CAAM,KAAK,OAAO,KAAK,OAAW,KAAK,WAAS,KAAK,SAAS,IAAa,MAAkB,UAAU,GAAG,MAAM,CAAG,aAAa,OAAO,OAAO,EAAE,MAAM,GAAM,SAAS,CAAgS,OAA5R,UAAU,SAAS,MAAM,QAAQ,SAAS,KAAK,KAAK,UAAU,OAAO,SAAS,QAAQ,SAAS,SAAS,EAAS,OAAO,KAAK,WAAS,KAAK,UAAU,OAAO,KAAK,IAAI,KAAK,aAAa,OAAO,cAAc,KAAK,OAAO,KAAK,UAAU,CAAC,CAAC,KAAK,OAAO,OAAO,WAAW,CAAC,KAAK,SAAS,GAAa,KAAM,UAAU,CAAC,MAAM,QAAQ,KAAK,SAAS,KAAK,UAAU,CAAC,KAAK,UAAU,KAAK,KAAK,aAAa,IAAI,KAAK,aAAa,GAAG,GAAI,YAAY,OAAO,OAAO,CAAC,MAAM,OAAO,OAAO,KAAK,CAAC,KAAK,UAAU,EAAE,KAAK,aAAa,EAAE,KAAK,OAAO,IAAS,aAAa,cAAc,SAAS,CAAC,cAAc,OAAO,OAAO,CAAC,IAAI,UAAU,OAAO,IAAI,OAAO,OAAO,CAAC,OAAO,SAAS,OAAO,IAAI,OAAO,OAAO,KAAK,OAAO,CAAC,OAAW,MAAM,SAAS,UAAU,EAAM,QAAQ,QAAQ,EAAE,GAAG,OAAO,aAAa,CAAC,IAAI,aAAa,KAAK,IAAI,KAAK,OAAO,OAAO,WAAW,MAAM,CAAC,QAAQ,aAAa,MAAS,KAAK,OAAO,MAAM,IAAE,SAAS,KAAK,OAAO,eAAe,KAAK,OAAO,MAAM,SAAS,QAAQ,KAAK,OAAO,MAAO,MAAM,CAAC,UAAU,SAAS,QAAQ,QAAQ,CAAE,QAAQ,OAAO,OAAO,KAAK,OAAO,CAAC,GAAG,CAAC,UAAU,SAAS,QAAQ,SAAS,KAAK,cAAc,OAAO,OAAO,CAAC,GAAG,OAAO,aAAa,CAAC,IAAI,MAAM,OAAO,KAAK,MAAM,KAAK,IAAI,EAAE,KAAK,IAAI,GAAG,OAAO,MAAM,KAAK,OAAO,CAAC,CAAC,KAAK,OAAO,CAAK,KAAK,OAAO,IAAI,OAAO,MAAM,CAAC,WAAW,QAAQ,KAAK,OAAO,QAAY,QAAQ,KAAK,IAAI,KAAK,OAAO,WAAW,EAAE,CAAC,OAAO,IAAI,UAAU,KAAK,KAAK,KAAK,OAAO,QAAQ,WAAW,EAAE,KAAM,CAAC,IAAI,MAAM,KAAK,IAAI,EAAE,KAAK,IAAI,SAAS,UAAU,KAAK,OAAO,OAAO,MAAM,QAAQ,CAAC,CAAC,CAAI,CAAC,KAAK,QAAQ,OAAO,IAAI,KAAK,UAAU,MAAM,CAAC,OAAO,IAAI,UAAU,KAAK,OAAO,KAAK,QAAQ,MAAM,QAAQ,EAAE,EAAG,OAAO,MAAM,KAAK,OAAO,KAAK,OAAO,CAAC,GAAG,MAAM,UAAU,SAAS,OAAO,KAAK,QAAQ,MAAM,OAAO,KAAK,OAAO,CAAC,GAAG,MAAM,UAAU,cAAc,CAAC,GAAG,CAAC,KAAK,IAAI,OAAO,IAAI,OAAO,MAAM,CAAC,OAAO,IAAI,UAAU,KAAK,GAAG,KAAK,EAAE,EAAE,EAAE,CAAE,GAAG,CAAC,UAAU,QAAQ,SAAS,KAAK,cAAc,OAAO,OAAO,CAAK,KAAK,OAAO,IAAI,OAAO,MAAM,CAAC,WAAW,QAAQ,KAAK,OAAO,QAAY,WAAW,KAAK,OAAO,UAAc,QAAQ,KAAK,QAAQ,WAAW,SAAS,KAAK,KAAK,OAAO,YAAY,OAAO,IAAI,UAAU,KAAK,KAAK,KAAK,OAAO,KAAK,IAAI,KAAK,KAAK,IAAI,QAAQ,KAAK,KAAK,OAAO,WAAW,CAAC,CAAC,WAAW,EAAE,CAAE,YAAY,KAAK,GAAG,OAAO,KAAK,OAAO,EAAE,CAAC,KAAK,KAAK,IAAI,KAAK,OAAO,CAAC,GAAG,KAAK,IAAI,GAAG,OAAO,KAAK,OAAO,CAAC,GAAG,CAAC,UAAU,QAAQ,SAAS,KAAK,cAAc,OAAO,OAAO,CAAC,IAAI,IAAI,IAAI,KAAK,QAAQ,KAAK,KAAK,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,OAAO,IAAI,CAAC,GAAG,KAAK,KAAK,CAAC,IAAI,WAAW,KAAK,OAAO,UAAU,SAAS,QAAQ,WAAW,SAAS,KAAK,OAAO,YAAa,IAAI,WAAW,QAAQ,QAAQ,KAAK,OAAO,EAAE,IAAI,UAAU,KAAK,KAAK,KAAK,OAAO,QAAQ,WAAW,EAAE,CAAC,CAAC,SAAS,WAAW,IAAI,KAAK,GAAG,GAAI,QAAQ,KAAK,GAAG,MAAM,CAAC,IAAI,MAAM,KAAK,OAAO,GAAG,GAAG,MAAM,EAAE,CAAC,IAAI,KAAK,MAAM,MAAM,OAAO,GAAM,gBAAgB,aAAa,MAAM,MAAM,OAAO,GAAG,IAAI,aAAa,KAAK,OAAO,MAAM,CAAM,MAAM,KAAK,KAAK,IAAI,aAAa,MAAM,EAAE,CAAC,CAAE,GAAG,KAAK,EAAE,CAAC,IAAI,MAAM,MAAM,GAAM,iBAAiB,aAAa,MAAM,GAAG,IAAI,aAAa,KAAK,MAAM,OAAO,CAAM,MAAM,QAAQ,IAAI,aAAa,KAAK,EAAE,CAAC,KAAK,CAAE,OAAO,UAAU,GAAG,MAAM,CAAE,cAAc,GAAG,OAAO,CAAC,OAAO,KAAK,IAAI,aAAa,GAAG,EAAE,CAAC,KAAK,CAAE,eAAe,KAAK,OAAO,CAAC,OAAO,KAAK,KAAK,IAAI,aAAa,KAAK,OAAO,KAAK,EAAE,CAAC,CAAE,aAAa,OAAO,OAAO,EAAE,MAAM,GAAM,SAAS,CAAC,IAAI,IAAI,OAAO,KAAK,OAAO,GAAG,UAAU,SAAS,MAAM,OAAO,KAAK,QAAQ,SAAS,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC,IAAI,KAAK,IAAI,OAAO,SAAS,KAAK,CAAC,aAAa,GAA4G,IAAtG,SAAS,KAAK,QAAO,MAAM,KAAK,IAAI,aAAa,SAAS,KAAK,OAAO,EAAE,CAAC,aAAa,OAAO,OAAO,CAAC,CAAO,KAAK,KAAK,SAAS,MAAK,CAAC,IAAI,IAAI,OAAO,IAAI,OAAO,IAAI,CAAC,OAAU,MAAM,QAAO,MAAM,KAAK,KAAK,CAAC,IAAI,OAAO,SAAS,QAAQ,SAAS,SAAY,cAAc,GAAG,aAAa,OAAe,KAAK,IAAI,OAAO,aAAa,EAAE,UAAQ,aAAa,IAAG,IAAI,KAAK,IAAI,cAAc,IAAI,OAAO,CAAC,KAAK,SAAS,GAAM,MAAM,KAAK,KAAK,CAAC,KAAK,IAAI,EAAM,KAAK,KAAI,MAAM,KAAK,KAAK,IAAI,aAAa,IAAI,IAAI,CAAC,aAAa,OAAO,IAAI,CAAC,CAAC,IAAI,OAAO,UAAU,GAAG,MAAM,CAAsK,OAAlK,aAAa,GAAG,KAAK,IAAI,OAAO,OAAO,KAAK,OAAO,EAAE,SAAS,KAAK,IAAI,aAAa,KAAK,cAAc,OAAO,OAAO,CAAC,QAAQ,EAAE,WAAQ,OAAO,cAAc,IAAY,aAAgB,OAAO,KAAK,YAAU,KAAK,UAAU,OAAO,OAAO,aAAa,OAAO,OAAO,KAAK,OAAO,CAAC,CAAC,KAAK,SAAS,IAAO,OAAO,KAAM,UAAU,CAAC,MAAM,OAAO,KAAK,OAAO,GAAI,YAAY,OAAO,CAAC,MAAM,OAAO,EAAE,GAAQ,gBAAgB,cAAc,SAAS,CAAC,IAAI,OAAO,CAAC,OAAO,KAAK,MAAM,EAAG,QAAQ,OAAO,OAAO,KAAK,OAAO,CAAC,IAAI,IAAI,KAAK,KAAK,KAAK,OAAO,OAAO,OAAO,IAAI,KAAK,KAAK,QAAQ,OAAO,OAAO,KAAK,OAAO,CAAC,KAAK,MAAM,QAAQ,OAAO,OAAO,IAAI,OAAO,KAAK,KAAK,OAAO,KAAK,MAAM,CAAE,OAAO,MAAM,KAAK,OAAO,KAAK,OAAO,CAAC,IAAI,SAAS,KAAK,KAAK,KAAK,OAAO,YAAY,OAAO,KAAK,KAAK,OAAO,KAAK,MAAU,KAAK,MAAM,UAAU,SAAS,MAAM,SAAS,MAAM,YAAgB,MAAM,KAAK,KAAK,KAAK,OAAO,MAAM,KAAK,OAAO,KAAK,OAAO,CAAC,KAAK,MAAM,OAAO,MAAM,KAAK,OAAO,SAAS,YAAY,CAAC,GAAG,KAAK,QAAQ,KAAK,MAAM,GAAG,YAAY,MAAM,KAAK,aAAa,OAAO,MAAM,IAAI,SAAS,MAAM,UAAU,cAAc,UAAU,cAAc,UAAU,MAA0G,OAAjG,KAAY,MAAM,KAAK,KAAK,MAAM,OAAO,YAAY,SAAS,OAAO,SAAS,YAAY,CAAC,CAAa,KAAK,KAAK,OAAO,YAAY,SAAS,OAAO,KAAK,OAAO,CAAC,KAAK,MAAM,CAAE,YAAY,KAAK,GAAG,OAAO,KAAK,OAAO,EAAE,CAAC,IAAI,SAAS,KAAK,KAAK,KAAK,OAAO,YAAY,OAAO,KAAK,KAAK,OAAO,KAAK,MAAM,GAAG,KAAK,MAAU,KAAK,aAAY,KAAK,KAAK,YAAY,KAAK,GAAG,OAAO,KAAK,OAAO,EAAE,CAAI,IAAI,aAAY,KAAK,MAAM,YAAY,KAAK,GAAG,OAAO,SAAS,YAAY,EAAE,KAAM,CAAC,IAAI,IAAI,KAAK,OAAO,YAAY,UAAU,MAAM,OAAO,KAAK,OAAO,CAAI,KAAK,IAAI,MAAK,KAAK,KAAK,YAAY,KAAK,IAAI,KAAK,EAAE,OAAO,KAAK,OAAO,EAAE,CAAI,IAAI,IAAI,MAAM,IAAI,MAAM,IAAG,EAAE,IAAI,CAAI,GAAG,IAAI,IAAG,KAAK,MAAM,YAAY,IAAI,GAAG,EAAE,GAAG,OAAO,SAAS,YAAY,EAAE,EAAG,QAAQ,KAAK,GAAG,MAAM,CAAC,IAAI,WAAW,KAAK,KAAK,OAAO,KAAK,MAAM,GAAG,GAAG,WAAW,OAAO,KAAK,SAAS,KAAK,KAAK,QAAQ,KAAK,GAAG,MAAM,CAAC,KAAK,MAAM,CAAC,GAAG,KAAK,KAAK,KAAK,OAAO,OAAO,KAAK,SAAS,KAAK,KAAK,KAAK,MAAM,QAAQ,KAAK,WAAW,GAAG,WAAW,MAAM,CAAC,CAAC,IAAI,OAAO,EAAE,CAAI,KAAK,GAAE,KAAK,cAAc,KAAK,OAAO,CAAC,IAAI,KAAK,OAAO,OAAO,IAAI,IAAI,QAAQ,MAAM,OAAO,KAAK,KAAK,CAAoC,GAAhC,KAAK,GAAE,UAAU,OAAO,KAAK,EAAE,CAAI,GAAG,KAAK,OAAO,CAAC,IAAI,MAAM,OAAO,OAAO,KAAK,eAAe,GAAG,OAAO,CAAC,UAAU,OAAO,MAAM,CAAE,OAAO,UAAU,GAAG,OAAO,CAAE,cAAc,GAAG,OAAO,CAAC,IAAI,KAAK,KAAK,KAAK,OAAO,GAAG,IAAI,KAAK,OAAO,KAAK,KAAK,cAAc,GAAG,OAAO,CAAC,OAAO,KAAK,KAAK,KAAK,CAAI,KAAK,QAAO,OAAU,IAAI,MAAK,OAAO,KAAK,KAAK,EAAK,GAAG,MAAK,KAAK,MAAM,cAAc,GAAG,KAAK,OAAO,CAAE,eAAe,KAAK,OAAO,CAAC,IAAI,KAAK,KAAK,KAAK,OAAO,MAAM,KAAK,KAAK,MAAM,GAAG,MAAM,MAAM,OAAO,KAAK,MAAM,eAAe,KAAK,MAAM,OAAO,CAAI,KAAK,MAAK,KAAK,KAAK,eAAe,KAAK,OAAO,CAAI,KAAK,OAAO,KAAK,OAAM,OAAO,KAAK,KAAK,CAAC,OAAO,KAAK,KAAK,MAAM,CAAE,SAAS,KAAK,MAAM,CAAkT,OAA9S,KAAK,KAAK,EAAE,MAAM,MAAM,MAAM,KAAK,EAAE,KAAK,KAAY,UAAU,GAAG,KAAK,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,EAAC,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,KAAK,OAAO,KAAK,OAAO,MAAM,OAAO,KAAK,SAAS,KAAK,UAAU,MAAM,SAAS,KAAK,KAAK,KAAK,KAAK,MAAM,KAAK,KAAK,OAAO,KAAK,OAAO,KAAK,MAAM,MAAM,OAAc,MAAM,aAAa,OAAO,OAAO,EAAE,MAAM,GAAM,SAAS,CAAC,GAAG,CAAC,KAAK,OAAO,KAAK,WAAW,OAAO,KAAK,OAAO,KAAK,MAAM,UAAU,KAAwd,OAAhd,UAAU,SAAS,MAAM,OAAO,KAAK,QAAQ,SAAS,KAAK,UAAU,KAAK,KAAK,aAAa,OAAO,OAAO,MAAM,SAAS,CAAM,KAAK,aAAa,OAAO,OAAO,MAAM,CAAI,UAAU,SAAS,MAAM,WAAW,MAAM,QAAQ,SAAS,KAAK,UAAU,MAAM,MAAM,aAAa,OAAO,WAAW,MAAM,SAAS,CAAM,MAAM,aAAa,OAAO,WAAW,MAAM,CAAI,UAAiB,KAAK,SAAS,KAAK,MAAM,EAAC,KAAK,OAAO,KAAK,KAAK,OAAO,KAAK,MAAM,OAAO,KAAK,SAAS,GAAa,MAAM,UAAU,CAAC,OAAO,KAAK,MAAM,KAAK,MAAM,IAAI,KAAK,KAAK,MAAO,YAAY,KAAK,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO,IAAI,MAAM,OAAO,KAAK,OAAO,MAAM,OAAO,KAAK,KAAK,UAAU,MAAM,SAAS,EAAE,GAAG,CAAC,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,MAAM,OAA+P,qBAAqB,EAAM,YAAY,KAAK,CAAC,IAAI,WAAW,CAAC,OAAO,KAAK,UAAU,KAAK,MAAM,KAAK,MAAM,OAAO,IAAI,KAAK,SAAU,KAAK,MAAM,GAAG,CAAC,GAAG,KAAK,UAAU,GAAG,CAAC,IAAI,IAAI,KAAK,IAAI,GAAG,KAAK,QAAQ,CAAC,KAAK,KAAK,MAAM,KAAK,MAAM,OAAO,GAAM,gBAAgB,cAAc,KAAK,QAAQ,IAAI,KAAK,KAAY,IAAI,KAAK,KAAK,CAAC,KAAK,YAAU,KAAK,MAAM,KAAK,IAAI,cAAc,IAAI,KAAK,IAAI,GAAG,CAAC,CAAC,KAAK,UAAU,IAAO,GAAG,MAAK,KAAK,MAAM,KAAK,KAAK,CAAC,KAAK,YAAY,KAAK,UAAU,IAAK,KAAK,IAAI,GAAI,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,KAAK,IAAI,KAAK,eAAe,CAAC,IAAI,OAAO,KAAK,OAAO,KAAK,OAAO,gBAAgB,EAAM,OAAO,KAAK,OAAO,KAAK,OAAO,WAAW,EAAK,OAAO,IAAE,OAAO,KAAK,OAAO,YAAW,IAAI,IAAI,GAAG,KAAQ,KAAK,MAAO,KAAK,SAAS,IAAI,eAAe,IAAI,OAAO,KAAK,CAAC,EAAU,KAAK,QAAQ,QAAQ,uBAAsB,KAAK,YAAY,OAAO,OAAO,IAAI,MAAW,GAAG,MAAM,KAAK,KAAK,KAAK,GAAG,CAAK,KAAK,QAAQ,IAAI,KAAK,QAAQ,KAAK,MAAI,KAAK,QAAQ,KAAK,OAAO,IAAI,OAAO,KAAK,IAAI,CAAC,IAAI,WAAW,CAAC,GAAG,KAAK,UAAU,GAAG,OAAO,GAAG,CAAC,KAAK,IAAI,KAAK,OAAO,IAAI,OAAO,KAAK,IAAI,CAAC,KAAK,UAAU,KAAK,KAAK,QAAQ,GAAM,KAAK,UAAU,QAAS,KAAK,UAAU,KAAK,GAAG,KAAK,MAAM,KAAK,MAAM,OAAO,IAAI,OAAK,KAAK,MAAM,KAAK,KAAK,aAAa,KAAK,UAAU,KAAK,EAAE,CAAC,CAAC,KAAK,MAAM,KAAK,KAAK,EAAK,KAAK,IAAI,MAAK,KAAK,MAAM,KAAK,IAAI,cAAc,KAAK,IAAI,KAAK,GAAG,CAAC,CAAC,KAAK,UAAU,KAAK,IAAK,aAAa,KAAK,GAAG,CAAC,IAAI,IAAI,IAAI,aAAa,GAAG,KAAK,CAAqD,OAAjD,KAAK,OAAO,IAAI,OAAO,KAAK,CAAC,IAAI,KAAG,IAAI,OAAO,GAAS,IAAK,YAAY,CAAC,KAAK,WAAW,CAAC,IAAI,KAAK,KAAK,MAAM,OAAO,KAAK,MAAM,KAAK,MAAM,OAAO,GAAG,KAAK,GAAG,gBAAgB,cAAc,OAAO,KAAK,IAAI,KAAK,IAAI,cAAc,EAAE,GAAG,CAAuB,OAAtB,KAAK,MAAM,KAAK,KAAK,CAAQ,KAAM,SAAS,MAAM,CAAC,IAAIG,KAAG,KAAK,WAAW,CAAC,IAAI,KAAS,MAAM,MAAoC,KAAQ,MAAM,UAAU,aAAa,CAAC,KAAK,WAAU,KAAK,YAAY,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,KAAK,UAAU,KAAK,KAAa,MAAM,OAAU,MAAM,UAAU,eAAa,KAAK,SAAS,OAAO,YAAY,OAAO,OAAO,OAAO,CAAC,IAAI,KAAK,KAAK,YAAY,CAAC,KAAK,QAAQ,OAAO,KAAK,WAAW,OAAO,KAAK,aAAa,KAAK,IAAI,KAAK,aAAa,OAAO,CAAC,KAAK,QAAQ,OAAO,KAAK,UAAU,KAAK,KAAa,OAAQ,OAAO,KAAK,CAAC,IAAI,KAAK,KAAK,MAAM,QAAQ,EAAE,KAAK,KAAK,MAAM,KAAK,MAAM,OAAO,GAAM,KAAK,UAAU,IAAI,EAAE,gBAAgB,gBAAgB,CAAC,KAAK,UAAU,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,GAAG,CAAC,EAAS,KAAK,UAAU,KAAK,KAAK,MAAM,OAAK,KAAK,MAAM,KAAK,KAAK,aAAa,KAAK,UAAU,KAAK,IAAI,CAAC,CAAC,IAAI,IAAI,KAAK,IAAI,IAAI,QAAQ,KAAK,MAAU,gBAAgB,eAAc,KAAK,aAAa,KAAK,OAAO,IAAI,CAAC,KAAK,KAAK,KAAK,OAAO,EAAG,OAAO,KAAK,MAKl7Z,OAAO,MAAM,OAAO,aAAa,KAAK,GAAG,CAAC,IAAI,QAAQ,IAAI,YAAY,KAAK,OAAO,CAAgD,OAA/C,SAAS,MAAM,aAAa,KAAK,GAAG,QAAQ,EAAE,CAAQ,QAAQ,OAAO,KAAK,CAAE,YAAY,IAAI,OAAO,CAAC,KAAK,IAAI,IAAI,KAAK,OAAO,OAAO,KAAK,MAAM,EAAE,CAAC,KAAK,UAAU,GAAG,KAAK,QAAQ,GAAG,KAAK,SAAS,KAAK,KAAK,UAAU,MAAiJ,qBAAqB,KAAK,CAAC,cAAc,EAAE,aAAa,KAAK,GAAG,EAAE,EAAE,EAAI,KAAK,IAAI,GAAG,EAAE,gBAAgB,GAAG,EAAE,iBAAe,SAAS,KAAK,GAAG,KAAK,QAAQ,EAAE,CAAE,aAAa,CAAC,KAAK,QAAQ,EAAE,GAA0tC,QAAQ,KAAK,CAAC,OAAO,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,MAAO,GAAM,IAAI,IAAIH,IAAE,EAAEA,IAAE,EAAE,OAAO,MAAI,CAAC,IAAI,GAAG,EAAEA,KAAG,GAAG,EAAEA,KAAG,GAAG,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,GAAG,KAAK,MAAO,GAAO,MAAO,GAAM,KAAK,SAAS,CAAC,OAAO,WAAW,QAAQ,CAAC,OAAO,IAAI,cAAc,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,KAAK,KAAK,KAAK,GAAG,CAAE,YAAY,KAAK,GAAG,KAAK,CAAC,KAAK,KAAK,KAAK,KAAK,GAAG,GAAG,KAAK,KAAK,OAAY,cAAc,cAAc,UAAU,CAAC,GAAG,MAAM,CAAC,OAAO,MAAM,MAAM,KAAK,MAAM,MAAM,UAAU,KAAK,SAAU,OAAO,CAAC,IAAI,IAAI,SAAS,cAAc,MAAM,CAAiJ,OAA7I,KAAK,SAAU,IAAI,MAAM,OAAO,KAAK,KAAK,MAAW,IAAI,MAAM,MAAM,KAAK,KAAK,KAAK,IAAI,MAAM,OAAO,MAAM,IAAI,MAAM,QAAQ,gBAAuB,IAAK,IAAI,iBAAiB,CAAC,OAAO,KAAK,SAAS,KAAK,KAAK,GAAI,YAAY,KAAK,SAAS,CAAC,OAAO,CAAC,KAAK,KAAK,KAAK,KAAK,SAAS,WAAgB,UAAU,KAAK,CAAC,mBAAmB,CAAC,IAAI,UAAU,CAAC,KAAK,SAAS,CAAC,CAAC,MAAM,KAAK,MAAM,UAAU,IAAI,IAAIA,IAAE,EAAEA,KAAG,EAAE,MAAI,CAAC,IAAI,IAAIA,IAAE,KAAK,KAAK,KAAK,OAAO,GAAG,CAAC,UAAU,MAAM,CAAC,KAAK,MAAM,KAAK,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,YAAY,IAAI,CAAC,UAAU,KAAK,IAAI,SAAS,KAAK,GAAG,CAAC,EAAG,KAAK,UAAU,UAAU,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,OAAO,KAAK,UAAU,QAAQ,IAAI,SAAS,IAAI,UAAU,KAAK,aAAa,KAAK,UAAU,KAAK,UAAU,CAAE,qBAAqB,CAAC,KAAK,cAAc,EAAE,CAAC,KAAK,UAAU,YAAY,KAAK,SAAS,KAAK,KAAK,SAAS,GAAG,KAAK,aAAa,OAAO,KAAK,MAAM,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,KAAK,cAAc,KAAK,KAAK,OAAO,OAAO,EAAE,MAAM,WAAW,MAAM,KAAK,OAAO,CAAC,EAAG,CAAE,OAAO,OAAO,aAAa,KAAK,CAAC,KAAK,MAAM,OAAO,MAAM,IAAI,SAAS,KAAK,UAAU,KAAK,UAAU,KAAK,MAAM,MAAM,YAAY,CAAC,OAAO,GAAG,OAAO,GAAG,WAAW,CAAC,IAAI,eAAe,OAAO,cAAkB,cAAc,aAAa,iBAAiB,eAAe,0BAA0B,SAAS,KAAK,UAAU,OAAO,OAAO,QAAQ,UAAU,MAAM,KAAK,MAAM,IAAI,OAAO,CAAC,CAAC,CAAK,WAAW,KAAK,UAAU,OAAW,aAAa,KAAK,iBAAiB,KAAK,KAAK,kBAAkB,KAAK,UAAU,CAAC,KAAK,UAAU,KAAK,UAAU,aAAa,KAAK,UAAU,OAAO,WAAW,IAAI,KAAK,aAAa,OAAO,KAAK,MAAM,IAAI,CAAC,cAAc,CAAI,KAAK,UAAU,QAAQ,aAAW,OAAO,OAAO,GAAK,cAAc,KAAK,gBAAgB,OAAO,QAAQ,OAAO,aAAa,KAAK,GAAG,CAAC,KAAK,mBAAmB,aAAa,MAAU,KAAK,gBAAgB,GAAG,KAAK,mBAAmB,KAAK,UAAU,QAAQ,IAAI,SAAS,cAAc,OAAO,KAAK,YAAY,KAAK,SAAS,OAAO,QAAQ,CAAC,KAAK,UAAY,eAAe,aAAa,MAAM,KAAK,SAAS,MAAM,aAAa,MAAM,KAAK,SAAS,KAAK,CAAC,KAAK,sBAAsB,SAAS,IAAC,SAAS,KAAK,YAAY,EAAE,aAAa,EAAC,IAAI,YAAY,CAAC,OAAO,QAAQ,OAAO,OAAO,MAAM,GAAG,SAAS,MAAM,KAAK,SAAS,MAAM,SAAS,IAAI,KAAK,SAAS,GAAG,KAAK,SAAS,SAAS,KAAK,mBAAmB,CAAI,aAAY,KAAK,qBAAqB,EAAI,KAAK,SAAS,QAAQ,KAAK,SAAS,GAAG,KAAK,SAAS,KAAK,MAAO,KAAK,eAAe,KAAK,eAAe,KAAK,YAAY,KAAK,SAAS,OAAO,QAAQ,CAAC,CAAC,CAAC,OAAO,OAAO,KAAK,sBAAsB,CAAI,eAAa,KAAK,aAAa,cAAgB,CAAC,KAAK,wBAAwB,OAAO,cAAc,OAAO,KAAK,cAAc,OAAO,MAAM,UAAU,KAAK,OAAO,OAAO,MAAM,UAAU,KAAK,OAAO,CAAC,OAAO,MAAM,MAAM,sBAAsB,GAAC,KAAK,uBAAuB,IAAM,QAAQ,KAAK,CAAC,IAAI,IAAI,KAAK,WAAW,MAAM,OAAO,iBAAiB,IAAI,CAAK,OAAO,KAAK,aAAiB,WAAW,MAAM,WAAW,KAAK,qBAAqB,MAAM,WAAW,MAAM,UAAU,IAAI,UAAU,IAAI,IAAI,QAAQ,KAAK,aAAa,uBAAuB,WAAW,CAAK,QAAQ,IAAI,uBAAuB,CAAK,eAAe,SAAS,KAAK,oBAAoB,KAAK,kBAAkB,QAAQ,OAAO,KAAK,iBAAiB,QAAQ,OAAO,KAAK,mBAAmB,GAAM,IAAI,OAAO,EAAE,KAAK,EAAM,WAAW,SAAS,MAAM,WAAW,EAAE,EAAE,cAAc,SAAS,MAAM,cAAc,EAAE,GAAK,KAAK,YAAY,YAAY,KAAK,eAAe,iBAAe,KAAK,WAAW,WAAW,KAAK,cAAc,cAAc,QAAQ,IAAQ,KAAK,aAAa,KAAK,UAAU,cAAgB,OAAO,eAAa,eAAe,IAAK,KAAK,YAAY,KAAK,UAAU,YAAY,QAAQ,GAAM,KAAK,WAAW,KAAK,UAAU,YAAW,KAAK,mBAAmB,GAAG,KAAK,UAAU,KAAK,UAAU,WAAW,KAAK,iBAAiB,KAAK,UAAU,KAAK,UAAU,aAAa,KAAK,UAAU,aAAa,EAAE,IAAI,eAAe,KAAK,SAAS,eAAe,mBAAmB,IAAI,KAAK,WAAW,CAAK,KAAK,cAAc,IAAI,KAAK,cAAc,IAAI,QAAQ,cAAc,OAAO,KAAK,cAAc,OAAO,KAAK,cAAc,cAAc,IAAI,OAAO,KAAK,cAAc,OAAO,KAAK,cAAc,KAAK,KAAK,cAAc,MAAM,KAAK,cAAc,KAA+E,GAAvE,QAAQ,KAAK,SAAQ,KAAK,OAAO,OAAU,SAAO,eAAe,KAAS,CAAC,KAAK,QAAQ,CAAC,KAAK,aAAa,MAAO,GAAE,IAAI,aAAa,QAAQ,MAAyL,IAAhL,KAAK,iBAAiB,cAAc,KAAK,cAAc,KAAK,UAAU,gBAAc,KAAK,gBAAgB,QAAQ,MAAM,KAAK,aAAa,KAAK,UAAU,aAAa,QAAQ,GAAM,eAAe,CAAC,IAAI,YAAY,KAAK,QAAQ,0BAA0B,KAAK,SAAS,CAA2D,GAAvD,OAAO,sBAAsB,YAAY,GAAC,QAAQ,IAAQ,SAAS,OAAO,cAAc,KAAK,IAAI,aAAa,KAAK,gBAAgB,CAAC,OAAO,UAAU,CAAC,GAAG,CAAC,WAAW,UAAU,YAAY,KAAK,QAAQ,iBAAiB,CAAC,QAAQ,WAAW,GAAG,OAAO,QAAQ,WAAW,WAAW,UAAU,WAAW,aAAa,UAAU,YAAY,CAAI,UAAS,KAAK,QAAQ,SAAS,EAAE,QAAQ,GAAO,KAAK,GAAG,QAAQ,EAAE,KAAK,KAAK,IAAI,KAAK,QAAQ,CAAS,KAAK,GAAG,QAAQ,IAAE,KAAK,KAAK,IAAI,KAAK,QAAQ,EAAC,OAAO,cAAc,GAAM,IAAI,IAAI,MAAM,KAAK,UAAU,CAAC,IAAI,QAAQ,GAAG,MAAM,KAAK,SAAS,KAAK,YAAY,KAAK,QAAQ,0BAA0B,GAAG,CAAC,KAAK,WAAW,QAAQ,UAAU,OAAO,CAAC,aAAa,KAAK,UAAU,KAAK,MAAM,KAAK,aAAa,CAAC,IAAI,aAAa,EAAE,EAAE,EAAE,KAAK,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,WAAW,aAAa,OAAO,EAAE,QAAQ,IAAI,gBAAgB,GAAG,KAAK,QAAQ,CAAC,CAAK,OAAO,gBAAc,QAAQ,GAAG,IAAI,eAAe,CAAC,KAAK,sBAAsB,KAAK,SAAS,KAAK,EAAE,KAAK,eAAe,KAAK,aAAa,MAAM,KAAK,KAAK,SAAS,MAAM,KAAK,aAAa,MAAM,KAAK,KAAK,SAAS,IAAkb,OAA3a,iBAAe,KAAK,SAAS,KAAK,YAAY,KAAK,KAAK,aAAa,EAAC,KAAK,mBAAmB,EAAI,OAAO,GAAG,iBAAe,KAAK,qBAAqB,EAAI,KAAK,SAAS,QAAQ,KAAK,SAAS,GAAG,KAAK,SAAS,KAAK,MAAO,KAAK,eAAe,KAAK,eAAe,QAAQ,EAAE,CAAC,KAAK,SAAS,KAAK,CAAC,CAAC,QAAQ,KAAK,sBAAsB,CAAI,KAAK,yBAAwB,KAAK,uBAAuB,GAAM,KAAK,QAAQ,oBAAoB,EAAS,OAAQ,IAAI,YAAY,CAAC,OAAO,KAAK,OAAO,QAAQ,KAAK,cAAc,IAAI,CAAE,IAAI,eAAe,CAAC,OAAO,KAAK,OAAO,QAAQ,KAAK,cAAc,OAAO,CAAE,YAAY,KAAK,aAAa,CAAC,IAAI,UAAU,GAAG,KAAK,IAAI,IAAI,KAAK,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC,CAAK,IAAI,KAAK,UAAU,OAAO,KAAK,aAAgB,CAAC,WAAW,eAAe,KAAS,SAAS,IAAI,SAAS,IAAI,OAAO,WAAW,UAAU,IAAI,UAAU,SAAS,OAAO,EAAE,EAAE,CAAC,KAAK,IAAI,OAAO,eAAe,EAAE,WAAW,IAAI,UAAU,SAAS,OAAO,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC,MAAM,aAAa,MAAM,GAAG,KAAK,SAAS,MAAM,KAAK,SAAS,GAAG,CAAC,IAAI,WAAW,KAAK,IAAI,KAAK,aAAa,KAAK,cAAc,OAAO,KAAK,cAAc,IAAI,CAAK,MAAM,IAAI,OAAO,KAAK,UAAU,MAAM,OAAO,EAAE,EAAE,CAAC,OAAO,AAAgL,OAA7K,aAAa,GAAG,UAAiB,MAAM,IAAI,MAAM,QAAQ,EAAE,WAAW,EAAU,aAAa,GAAG,SAAS,aAAa,GAAG,WAAW,KAAK,SAAS,KAAY,MAAM,IAAgB,MAAM,OAAO,WAAW,SAAS,IAAI,SAAS,IAAI,OAAO,OAAO,IAAI,EAAE,UAAU,SAAS,OAAO,EAAE,EAAE,CAAC,KAAK,IAAI,OAAO,OAAO,WAAW,IAAI,EAAE,UAAU,SAAS,OAAO,EAAE,EAAE,CAAC,GAAG,EAAG,OAAO,SAAU,YAAY,SAAS,QAAQ,CAAC,IAAI,KAAK,QAAQ,OAAO,SAAS,KAAK,GAAG,CAAC,GAAG,QAAQ,OAAO,SAAS,GAAG,EAAE,CAAC,OAAO,IAAI,SAAS,KAAK,UAAU,OAAO,KAAK,UAAU,MAAM,KAAK,aAAa,EAAE,EAAE,CAAC,KAAK,KAAK,UAAU,OAAO,GAAG,UAAU,MAAM,KAAK,aAAa,EAAE,EAAE,CAAC,GAAG,CAEhvT,sBAAsB,CAAC,KAAK,IAAI,KAAK,EAAE,CAAC,GAAG,CAAC,KAAK,OAAO,MAAO,GAAK,GAAG,CAAC,IAAI,MAAM,KAAK,UAAU,OAAO,KAAK,UAAU,MAAM,KAAK,aAAa,EAAE,EAAE,CAAI,CAAC,QAAQ,KAAK,UAAU,OAAO,GAAG,UAAU,MAAM,KAAK,aAAa,EAAE,EAAE,CAAI,CAAC,WAAW,eAAe,KAAK,OAAO,MAAM,GAAG,MAAM,WAAW,KAAK,IAAI,GAAG,KAAK,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,IAAI,KAAK,MAAM,IAAI,QAAQ,QAAQ,cAAc,KAAK,IAAI,GAAG,KAAK,IAAI,KAAK,IAAI,CAAC,GAAG,KAAK,WAAW,EAAE,KAAK,OAAO,cAAc,EAAE,IAAK,YAAY,KAAK,QAAQ,CAAC,GAAG,CAAC,KAAK,QAAQ,QAAQ,MAAM,OAAO,KAAK,IAAI,OAAO,EAAE,CAAC,IAAI,IAAI,OAAO,KAAS,QAAQ,aAAa,IAAI,KAAK,IAAI,GAAG,EAAC,OAAO,KAAK,IAAI,QAAQ,QAAQ,OAAO,IAAI,KAAK,CAAC,QAAQ,OAAO,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,OAOzrB,eAAe,QAAQ,WAAW,CAAC,IAAI,SAAS,KAAK,aAAa,aAAiB,OAAO,SAAS,IAAI,IAAI,WAAW,QAAQ,EAAE,aAAa,QAAQ,EAAE,GAAG,KAAK,sBAAsB,UAAU,KAAK,CAAC,SAAS,MAAM,EAAE,CAAC,IAAI,KAAK,EAAE,CAAK,QAAQ,KAAK,GAAG,KAAK,YAAY,CAAC,GAAG,GAAG,KAAK,WAAW,OAAO,IAAI,IAAI,KAAK,MAAM,UAAU,KAAK,MAAM,CAAC,IAAI,KAAK,CAAK,IAAI,OAAM,MAAM,KAAK,IAAI,GAAG,CAAC,IAAI,IAAI,OAAO,MAAO,GAAG,IAAI,MAAM,IAAI,GAAG,CAAC,OAAO,KAAK,IAAI,GAAG,KAAK,UAAU,CAAC,OAAO,IAAI,GAAG,GAAG,KAAK,UAAU,CAAC,OAAS,IAAI,IAAI,KAAK,QAAQ,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,KAAK,KAAK,CAAC,YAAY,KAAK,IAAI,KAAK,GAAG,GAAG,CAAC,YAAY,CAAC,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,KAAK,IAAI,YAAY,UAAU,WAAW,cAAc,KAAK,GAAG,EAAE,MAAM,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,IAAI,UAAU,WAAW,mBAAmB,gBAAgB,OAAO,GAAG,CAAC,GAAM,GAAK,CAAC,KAAQ,UAAU,OAAK,GAAG,WAAW,IAAI,IAAI,QAAQ,KAAK,GAAG,KAAK,QAAQ,KAAK,KAAK,GAAG,UAAU,CAAC,CAAE,KAAK,KAAK,IAAI,EAAG,IAAI,IAAI,QAAQ,KAAK,cAAc,CAAC,GAAG,KAAK,OAAO,aAAa,SAAS,IAAI,UAAU,cAAc,KAAK,KAAK,KAAK,GAAG,KAAK,UAAU,CAAC,GAAG,UAAU,MAAM,aAAa,SAAS,IAAI,OAAO,KAAK,aAAa,KAAK,aAAa,MAAM,KAAK,KAAS,SAAS,OAAO,GAAG,SAAS,CAAC,IAAI,aAAa,OAAO,KAAK,aAAa,WAAW,KAAK,aAAa,WAAe,KAAK,IAAI,GAAG,QAAQ,KAAK,CAAC,IAAI,WAAW,aAAa,UAAU,OAAO,CAAK,YAAY,KAAK,cAAc,KAAK,YAAY,EAAE,cAAc,KAAK,OAAO,KAAK,WAAW,UAAU,IAAI,WAAW,eAAgB,MAAM,KAAK,WAAW,KAAK,IAAI,cAAc,KAAK,OAAO,KAAK,KAAK,cAAc,KAAK,IAAI,cAAc,KAAK,OAAQ,SAAS,aAAa,UAAU,KAAK,CAAC,OAAO,aAAa,UAAU,IAAI,KAAM,CAAC,IAAI,WAAW,UAAU,MAAM,KAAK,aAAa,UAAc,YAAY,OAAO,KAAK,aAAa,UAAc,KAAK,MAAM,GAAG,QAAQ,KAAK,CAAC,IAAI,YAAY,aAAa,UAAU,OAAO,CAAK,aAAa,KAAK,cAAc,MAAM,KAAK,cAAc,MAAM,EAAE,aAAa,WAAW,KAAK,YAAY,WAAW,MAAM,YAAY,gBAAiB,MAAM,KAAK,cAAc,KAAK,aAAa,WAAW,OAAO,KAAK,cAAc,MAAM,aAAa,WAAY,SAAS,aAAa,UAAU,KAAK,CAAC,OAAO,aAAa,UAAU,MAAM,CAAK,SAAS,KAAK,MAAK,OAAO,KAAK,KAAK,SAAS,KAAK,UAAU,CAAI,OAAO,KAAK,IAAG,OAAO,OAAO,KAAK,GAAG,KAAK,UAAU,CAAE,OAAO,KAAM,QAAQ,KAAK,KAAK,GAAG,UAAU,CAAC,IAAI,SAAS,aAAa,UAAU,GAAG,CAAC,aAAa,UAAU,KAAK,CAAsE,OAAlE,KAAK,aAAa,aAAqB,KAAK,OAAO,SAAsB,UAAU,MAAM,KAAK,aAAa,UAAU,SAAW,eAAe,KAAK,CAAK,QAAQ,KAAK,KAAK,KAAK,SAAS,GAAE,KAAK,SAAS,KAAK,KAAK,YAAY,WAAW,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,KAAK,aAAa,aAAa,CAAC,CAAC,EAAG,sBAAsB,CAAC,IAAI,KAAK,KAAK,UAAa,KAAK,SAAS,SAAO,KAAK,KAAK,OAAO,KAAK,YAAY,EAAC,IAAI,OAAO,EAAE,CAAC,SAAS,MAAM,KAAK,KAAK,SAAS,KAAK,KAAK,SAAS,GAAG,CAAC,KAAK,KAAK,GAAG,CAAC,OAAO,KAAK,CAAC,KAAK,GAAG,CAAC,EAAG,OAAO,GAAG,CAAC,GAAG,CAAC,IAAI,QAAQ,OAAO,QAAQ,KAAK,cAAc,QAAQ,KAAK,cAAc,MAAM,EAAE,MAAI,EAAE,MAAM,OAAOA,KAAG,MAAM,EAAE,IAAI,OAAOA,KAAG,GAAG,CAA2B,MAA1B,MAAK,cAAc,OAAc,QAAQ,EAAE,EAAG,YAAY,IAAI,CAAC,OAAO,KAAK,KAAK,SAAS,MAAM,KAAK,KAAK,SAAS,IAAI,KAAK,cAAc,KAAK,GAAG,EAAE,MAAM,KAAK,EAAE,IAAI,IAAI,EAAE,WAAW,KAAK,UAAU,OAAO,IAAI,UAAU,MAAM,KAAK,aAAa,EAAE,EAAE,CAAC,KAAK,OAAO,CAAE,kBAAkB,OAAO,CAAC,OAAO,WAAW,KAAK,UAAU,OAAO,KAAK,OAAO,QAAQ,OAAO,CAAC,UAAU,SAAS,KAAK,aAAa,EAAE,EAAE,CAAC,KAAK,OAAO,CAAE,gBAAgB,OAAO,CAAC,OAAO,WAAW,KAAK,UAAU,QAAQ,KAAK,OAAO,QAAQ,OAAO,CAAC,KAAK,aAAa,EAAE,EAAE,CAAC,KAAK,OAAO,CAAE,IAAI,WAAW,CAAC,OAAO,KAAK,OAAO,MAAM,KAAK,UAAU,OAAO,CAAE,IAAI,eAAe,CAAC,OAAO,KAAK,UAAU,KAAK,WAAW,KAAK,cAAe,YAAY,MAAM,CAAC,KAAK,MAAM,MAAM,KAAK,cAAc,CAAC,KAAK,EAAE,MAAM,OAAO,WAAW,IAAI,EAAE,OAAO,EAAE,CAAC,KAAK,OAAO,GAAK,KAAK,WAAW,EAAE,KAAK,cAAc,EAAE,KAAK,gBAAgB,EAAE,KAAK,iBAAiB,EAAE,KAAK,aAAa,EAAE,KAAK,YAAY,EAAE,KAAK,UAAU,EAAE,KAAK,iBAAiB,GAAK,KAAK,gBAAgB,EAAE,KAAK,mBAAmB,GAAG,KAAK,OAAO,SAAS,KAAK,aAAa,KAAK,KAAK,SAAS,GAAM,KAAK,mBAAmB,GAAK,KAAK,qBAAqB,UAAU,IAAI,KAAK,cAAc,EAAE,CAAC,KAAK,uBAAuB,GAAM,IAAI,cAAc,MAAM,MAAM,kBAAkB,CAAC,KAAK,GAAG,OAAO,GAAG,YAAY,EAAE,OAAO,kBAAkB,CAAC,KAAK,aAAa,IAAI,aAAa,cAAc,CAAC,KAAK,UAAU,MAAM,MAAM,YAAY,CAAC,OAAO,GAAG,OAAO,GAAG,WAAW,CAAC,KAAK,UAAU,UAAU,OAAO,CAAC,aAAa,KAAK,UAAU,KAAK,MAAM,KAAK,aAAa,OAAO,MAAM,IAAI,CAAC,CAAC,IAAI,aAAa,EAAE,EAAE,EAAE,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,SAAS,KAAK,YAAY,EAAE,KAAK,CAAC,KAAK,qBAAqB,CAAC,KAAK,mBAAmB,CAAC,KAAK,SAAS,KAAK,eAAe,EAAE,CAAC,CAAC,KAAK,YAAY,WAAW,IAAI,KAAK,SAAS,IAAI,KAAK,IAAI,KAAK,GAAM,CAAC,CAAC,CAAC,KAAK,sBAAsB,GAAQ,SAAS,KAAK,CAAC,YAAY,KAAK,GAAG,CAAC,KAAK,KAAK,KAAK,KAAK,GAAG,KAAwyB,SAAS,CAAC,MAAM,EAAE,CAAC,OAAO,GAAI,QAAQ,EAAE,CAAC,OAAO,GAAI,MAAM,EAAE,CAAK,UAAU,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,IAAIA,IAAE,EAAE,MAAM,EAAE,QAAQ,GAAG,MAAI,CAAC,IAAI,GAAGA,IAAE,KAAK,UAAU,OAAO,KAAK,UAAUA,KAAG,KAAK,GAAG,CAAC,IAAI,EAAE,GAAG,IAAI,OAAO,SAAS,EAAE,OAAO,KAAK,MAAM,GAAG,GAAG,GAAG,OAAO,OAAO,GAAG,QAAQ,EAAE,GAAG,KAAK,MAAM,GAAG,OAAO,QAAQ,GAAG,WAAY,QAAQ,EAAE,CAAC,IAAI,IAAIA,IAAE,EAAE,MAAM,EAAE,QAAQ,GAAG,MAAI,CAAC,IAAI,GAAGA,IAAE,KAAK,UAAU,OAAO,KAAK,UAAUA,KAAG,KAAK,GAAG,CAAC,IAAI,EAAE,GAAG,OAAO,OAAO,OAAO,EAAE,SAAS,KAAK,MAAM,GAAG,GAAG,GAAG,UAAU,OAAO,GAAG,KAAK,EAAE,GAAG,QAAQ,MAAM,GAAG,OAAO,QAAQ,GAAG,WAAY,YAAY,OAAO,UAAU,UAAU,CAAC,IAAI,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,UAAU,UAAU,KAAK,CAAC,KAAK,MAAM,CAAC,IAAI,KAAK,UAAU,OAAO,KAAK,UAAU,MAAM,OAAO,EAAE,EAAE,CAAC,IAAQ,OAAO,UAAU,OAAO,GAAG,UAAU,MAAM,OAAO,EAAE,EAAE,CAAC,OAA6B,MAAtB,WAAU,OAAO,KAAW,CAAC,KAAK,GAAG,IAAI,KAAK,OAAO,OAAO,EAAE,UAAU,EAAE,EAAG,CAAC,KAAK,OAAO,IAAI,WAAW,UAAU,OAAO,UAAU,IAAI,IAAI,OAAO,KAAK,UAAW,IAAI,OAAO,SAAS,IAAI,IAAI,OAAO,KAAK,MAAM,QAAQ,IAAI,UAAU,IAAI,QAAQ,IAAI,OAAO,IAAI,KAAK,MAAM,IAAI,SAA+S,MAAsB,MAAM,OAAO,CAAC,QAAQ,MAAM,KAAK,KAAK,IAAI,CAAC,CAAC,CAAK,UAA0B,MAAM,OAAO,CAAC,QAAQ,QAAQ,OAAO,QAAQ,GAAK,CAAC,GAAG,CAAC,CAAK,YAA4B,cAAY,SAAS,CAAK,YAA4B,cAAY,SAAS,CAAK,WAA2B,cAAY,SAAS,CAAK,aAAa,CAAC,SAAS,IAAI,YAAY,QAAQ,IAAI,WAAW,CAAqQ,YAA4B,WAAW,IAAI,YAAY,CAAC,IAAI,CAAC,SAAS,sBAAsB,UAAU,aAAa,eAAe,CAQp1P,QAAQ,qBAAqB,CAAC,QAAQ,kBAAkB,cAAc,SAAS,CAAC,eAAe,CAAC,QAAQ,kBAAkB,WAAW,wBAAwB,WAAW,YAAY,WAAW,IAAI,OAAO,OAAO,UAAU,OAAO,SAAS,WAAW,OAAO,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,QAAQ,WAAW,MAAM,SAAS,SAAS,UAAU,aAAa,QAAQ,QAAQ,QAAQ,OAAO,0BAA0B,CAAC,iBAAiB,4BAA4B,CAAC,CAAC,mBAAmB,CAAC,oBAAoB,WAAW,WAAW,eAAe,UAAU,aAAa,aAAa,WAAW,WAAW,EAAE,CAAC,qBAAqB,CAAC,WAAW,QAAQ,CAAC,oBAAoB,CAAC,WAAW,QAAQ,CAAC,WAAW,CAAC,QAAQ,QAAQ,QAAQ,cAAc,CAAC,YAAY,CAAC,SAAS,WAAW,KAAK,EAAE,IAAI,EAAE,QAAQ,aAAa,QAAQ,CAAC,SAAS,WAAW,CAAC,CAAC,iCAAiC,CAAC,WAAW,UAAU,CAAC,gCAAgC,CAAC,WAAW,OAAO,CAAC,gFAAgF,CAAC,WAAW,UAAU,CAAC,+EAA+E,CAAC,WAAW,OAAO,CAAC,kBAAkB,CAAC,cAAc,OAAO,CAAC,gDAAgD,CAAC,UAAU,kCAAkC,CAGjxC,sBAAsB,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,uBAAuB,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,6BAA6B,CAAC,WAAW,oBAAoB,WAAW,SAAS,cAAc,OAAO,CAAC,aAAa,CAAC,QAAQ,OAAO,CAAC,mBAAmB,CAAC,gBAAgB,OAAO,CAAC,iBAAiB,CAAC,SAAS,WAAW,CAAC,2DAA2D,CAAC,QAAQ,QAAQ,CAAC,wBAAwB,CAAC,gBAAgB,YAAY,CAAC,uBAAuB,CAAC,gBAAgB,YAAY,CAAC,yBAAyB,CAAC,MAAM,MAAM,CAAC,wBAAwB,CAAC,MAAM,OAAO,CAAC,cAAc,CAAC,WAAW,EAAE,QAAQ,OAAO,OAAO,OAAO,UAAU,aAAa,KAAK,EAAE,OAAO,IAAI,CAAC,qBAAqB,CAAC,gBAAgB,UAAU,MAAM,UAAU,YAAY,iBAAiB,CAAC,oBAAoB,CAAC,gBAAgB,UAAU,MAAM,OAAO,CAAC,aAAa,CAAC,QAAQ,kBAAkB,cAAc,SAAS,WAAW,EAAE,UAAU,aAAa,UAAU,OAAO,SAAS,SAAS,CAAC,oBAAoB,CAAC,UAAU,aAAa,CAAC,oCAAoC,CAAC,QAAQ,cAAc,SAAS,OAAO,UAAU,QAAQ,WAAW,SAAS,CAAC,8BAA8B,CAAC,gBAAgB,UAAU,CAAC,6BAA6B,CAAC,gBAAgB,UAAU,CAAC,aAAa,CAAC,UAAU,aAAa,SAAS,SAAS,KAAK,EAAE,MAAM,EAAE,CAAC,oBAAoB,CAAC,gBAAgB,UAAU,MAAM,QAAQ,CAAC,wBAAwB,CAAC,aAAa,iBAAiB,CAAC,2BAA2B,CAAC,UAAU,iBAAiB,CAAC,mBAAmB,CAAC,gBAAgB,UAAU,MAAM,QAAQ,CAAC,UAAU,CAAC,QAAQ,eAAe,SAAS,SAAS,cAAc,SAAS,CAAC,mBAAmB,CAAC,cAAc,WAAW,OAAO,MAAM,MAAM,EAAE,QAAQ,SAAS,CAAC,kBAAkB,CAAC,MAAM,OAAO,QAAQ,eAAe,cAAc,MAAM,CAAC,4BAA4B,CAAC,QAAQ,qBAAqB,SAAS,WAAW,cAAc,OAAO,MAAM,OAAO,CAAC,mBAAmB,CAAC,gBAAgB,sMAAsM,eAAe,YAAY,mBAAmB,YAAY,iBAAiB,YAAY,CAAC,oBAAoB,CAAC,gBAAgB,YAAY,CAAC,aAAa,CAAC,cAAc,SAAS,MAAM,UAAU,SAAS,MAAM,QAAQ,WAAW,aAAa,MAAM,CAAC,oBAAoB,CAAC,gBAAgB,oCAAoC,OAAO,iBAAiB,WAAW,CAAC,gBAAgB,oCAAoC,CAAC,CAAC,mBAAmB,CAAC,gBAAgB,iCAAiC,OAAO,iBAAiB,WAAW,CAAC,gBAAgB,8BAA8B,CAAC,CAAC,gBAAgB,CAAC,cAAc,SAAS,MAAM,UAAU,SAAS,MAAM,OAAO,mBAAmB,QAAQ,YAAY,CAAC,uBAAuB,CAAC,gBAAgB,QAAQ,CAAC,sBAAsB,CAAC,OAAO,iBAAiB,gBAAgB,UAAU,CAAC,CAAC,aAAa,CAAK,UAAU,KAAK,CAAC,YAAY,KAAK,MAAM,IAAI,SAAS,CAAC,KAAK,SAAS,SAAS,KAAK,OAAO,KAAK,KAAK,KAAK,GAAG,GAAG,CAAC,cAAc,MAAM,gBAAgB,SAAS,KAAK,QAAQ,GAAG,KAAK,MAAM,UAAU,MAAM,GAAI,KAAK,OAAO,aAAc,MAAM,KAAK,KAAK,OAAO,KAAK,QAAQ,gBAAgB,MAAM,IAAI,EAAE,EAAE,CAAC,IAAI,UAAU,OAAO,QAAQ,EAAE,CAAC,gBAAgB,KAAK,CAAK,OAAO,IAAI,UAAU,UAAU,KAAK,MAAM,CAAC,OAAO,UAAU,KAAK,OAAO,SAAS,KAAK,OAAO,OAAO,CAAC,KAAK,KAAK,OAAO,KAAK,KAAK,OAAO,oBAAoB,UAAU,KAAK,OAAO,KAAK,KAAM,CAAC,IAAI,OAAO,KAAK,SAAS,eAAmB,KAAK,OAAO,MAAM,MAAM,OAAO,WAAW,MAAM,QAAQ,OAAO,aAAa,CAAC,SAAS,KAAK,WAAW,OAAO,UAAU,CAAC,KAAK,MAAM,UAAU,KAAK,KAAK,KAAK,QAAQ,WAAW,OAAO,UAAU,OAAO,YAAY,CAAK,OAAO,SAAS,QAAQ,MAAM,OAAO,YAAY,QAAQ,QAAQ,OAAO,cAAc,CAAC,SAAS,KAAK,WAAW,OAAO,WAAW,CAAC,KAAK,MAAM,UAAU,KAAK,OAAO,KAAK,QAAQ,WAAW,OAAO,WAAW,OAAO,aAAa,CAAC,KAAK,OAAO,gBAAgB,OAAO,OAAO,KAAK,IAGzhD,eAAe,CAAC,UAAU,GAAK,cAAc,GAAK,QAAQ,GAAK,WAAW,GAAK,sBAAsB,GAAK,CAAK,YAAY,QAAQ,IAAI,QAAQ,YAAY,GAAO,YAAY,KAAK,CAAC,gBAAgB,EAAE,CAAC,KAAK,KAAK,WAAW,kBAAkB,KAAK,KAAK,EAAE,CAAI,KAAK,cAAa,KAAK,KAAK,SAAS,CAAE,SAAS,EAAE,CAAI,KAAK,cAAa,KAAK,MAAM,GAAM,CAAC,KAAK,gBAAgB,EAAE,CAAE,UAAU,CAAI,KAAK,cAAc,IAAE,KAAK,cAAc,eAAe,CAAC,KAAK,cAAc,GAAG,KAAK,KAAK,gBAAgB,EAAG,GAAG,EAAE,SAAS,CAAC,KAAK,KAAK,UAAU,SAAS,GAAK,KAAK,KAAK,SAAS,CAAC,eAAe,CAAC,KAAK,KAAK,UAAU,SAAS,GAAM,KAAK,KAAK,gBAAgB,EAAG,IAAI,CAAE,WAAW,KAAK,CAAC,GAAG,KAAK,kBAAkB,KAAK,QAAQ,KAAK,KAAK,QAAQ,KAAK,KAAK,MAAM,EAAE,MAAI,GAAG,KAAKA,KAAG,EAAE,CAAC,KAAK,gBAAgB,YAAY,CAAC,IAAI,IAAI,OAAO,KAAK,KAAK,gBAAgB,QAAQ,IAAI,CAAC,KAAK,KAAK,MAAO,kBAAkB,MAAM,CAAC,IAAI,WAAW,KAAK,iBAAiB,GAAG,CAAC,KAAK,oBAAoB,EAAE,KAAK,kBAAkB,OAAO,GAAG,CAAC,MAAM,KAAK,IAAI,KAAK,eAAe,GAAG,KAAK,MAAM,MAAM,SAAS,CAAC,KAAK,KAAK,eAAe,KAAK,IAAI,CAAC,aAAa,KAAK,IAAI,IAAI,CAAC,OAAO,IAAI,QAAQ,IAAI,YAAY,KAAK,QAAQ,QAAQ,IAAI,WAAW,CAAC,GAAG,SAAS,QAAQ,YAAY,MAAM,CAAC,CAAK,aAAW,KAAK,iBAAiB,IAAM,QAAY,QAAQ,IAAI,QAAQ,YAAY,IAAI,QAAQ,SAAS,QAAQ,SAAS,CAAC,KAAK,MAAM,UAAU,KAAK,OAAO,IAAI,WAAW,qBAAqB,IAAI,UAAU,IAAI,YAAY,IAAI,WAAW,IAAI,aAAa,CAAC,KAAK,WAAW,CAAM,KAAK,MAAM,GAAM,CAAE,oBAAoB,CAAC,GAAG,CAAC,MAAM,KAAS,MAAM,QAAQ,QAAQ,KAAK,KAAK,UAAU,IAAI,kBAAkB,KAAK,IAAI,cAAc,EAAE,KAAK,KAAK,yBAAyB,KAAK,KAAK,EAAE,aAAa,KAAK,KAAK,CAAC,GAAG,CAAC,OAAO,KAAK,eAAe,GAAG,MAAM,CAAC,MAAO,GAAM,IAAI,MAAM,aAAa,KAAK,IAAI,MAAM,CAAyT,OAArT,OAAO,CAAC,KAAK,kBAAkB,KAAK,WAAW,cAAc,KAAK,KAAK,CAAC,KAAK,KAAK,WAAW,cAAc,KAAK,KAAK,CAAC,KAAK,eAAe,KAAK,IAAI,MAAM,EAAE,KAAK,KAAK,WAAW,cAAc,EAAE,KAAK,QAAQ,iBAAiB,CAAQ,KAAO,KAAK,eAAe,SAAS,MAAM,CAAI,QAAM,KAAK,iBAAiB,IAAY,IAAM,kBAAkB,OAAO,KAAK,CAAC,KAAK,eAAe,IAAI,OAAO,KAAK,OAAO,OAAO,KAAK,KAAK,KAAK,OAAO,CAAC,KAAK,iBAAiB,GAAO,qBAAqB,CAAC,KAAK,eAAe,IAAI,KAAK,EAAE,KAAK,EAAE,CAAE,iBAAiB,CAAC,KAAK,YAAY,GAAG,IAAIA,IAAE,EAAE,QAAQ,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,KAAM,GAAG,IAAI,UAAU,EAAM,CAAC,SAASA,IAAE,KAAK,cAAc,QAAQ,KAAK,cAAcA,MAAI,IAAI,MAAqB,UAAQ,KAAK,cAAc,MAAM,EAAEA,IAAE,CAAI,SAAQ,QAAQ,KAAK,IAAI,CAAC,IAAI,IAAI,cAAc,IAAI,mBAAoB,IAAI,UAAU,GAAI,IAAI,IAAI,UAAW,MAAuF,GAA5EA,IAAE,KAAK,cAAc,QAAQ,CAAC,UAAQ,QAAQ,KAAK,cAAc,MAAM,EAAEA,IAAE,EAAI,QAAQ,CAAC,IAAI,IAAI,QAAQ,KAAK,cAAc,KAAK,oBAAoB,SAAS,KAAK,SAAS,CAAC,IAAI,IAAI,OAAQ,MAAK,cAAc,QAAQ,KAAK,iBAAiB,SAAS,KAAK,SAAS,EAAG,OAAO,EAAE,CAAC,GAAG,CAAC,KAAK,OAAO,OAAO,GAAG,CAAC,GAAG,CAAa,OAAZ,KAAK,MAAM,CAAQ,GAAG,QAAS,CAAC,KAAK,OAAO,CAAC,KAAK,OAAO,EAAG,OAAO,CAAI,AAAuJ,KAAK,UAAzI,KAAK,SAAS,QAAQ,KAAK,IAAI,eAAe,CAAI,aAAY,KAAK,IAAI,iBAAiB,2BAA2B,KAAK,WAAW,CAAa,IAAM,MAAM,CAAK,KAAK,SAAc,KAAK,OAAO,GAAM,KAAK,SAAS,YAAY,CAAI,aAAY,KAAK,IAAI,oBAAoB,2BAA2B,KAAK,WAAW,EAChwL,OAAO,CAAC,KAAK,gBAAgB,CAAC,KAAK,MAAM,OAAO,EAAE,KAAK,iBAAiB,GAQxE,gBAAgB,IAAI,QAAQ,CAAC,IAAIG,KAAO,KAAK,oBAAmS,KAAK,mBAAmB,KAAK,KAAK,IAAI,0BAAxS,CAAC,IAAI,KAAK,KAAK,kBAAqB,OAAM,KAAK,wBAAwB,CAAC,KAAK,KAAK,WAAW,YAAY,KAAK,QAAQ,KAAK,KAAK,WAAW,YAAY,KAAK,KAAK,CAA6B,CAAhB,KAAK,OAAO,EAAc,KAAK,OAAM,YAAY,KAAK,IAAI,KAAK,IAAI,KAAK,QAAQ,GAAsE,GAAK,CAAC,KAAK,mBAAmB,KAAK,WAAQ,KAAK,kBAAkB,CAAC,IAAI,QAIzd,MAAM,KAAK,WAAW,KAAK,KAAK,CAAC,IAAI,CAAC,CAAM,KAAK,mBAAiD,MAAO,EAAE,wBAAwB,CAAC,KAAK,IAAI,qBAAqB,KAAK,mBAAmB,CAAC,KAAK,kBAAkB,KAAK,KAAK,mBAAmB,GAAI,WAAW,CAAI,KAAK,aAAa,IAAE,KAAK,aAAa,KAAK,KAAK,IAAI,0BAA0B,CAAC,KAAK,aAAa,GAAG,KAAK,OAAO,EAAG,EAAE,YAAY,CAAI,KAAK,cAAc,IAAG,KAAK,KAAK,IAAI,qBAAqB,KAAK,aAAa,CAAC,KAAK,aAAa,IAAI,KAAK,OAAO,CAAE,gBAAgB,CAAC,IAAI,IAAI,OAAO,KAAK,SAAS,aAAa,CAAC,KAAK,MAAM,KAAK,IAAI,CAAC,OAAO,KAAK,MAAO,gBAAgB,CAAC,IAAI,QAAQ,KAAK,gBAAgB,CAAI,QAAQ,SAAO,KAAK,MAAM,EAAE,EAAC,IAAI,KAAK,GAAG,GAAG,GAAG,SAAS,GAAM,IAAI,IAAI,UAAU,QAAQ,CAAC,IAAI,MAAM,KAAK,aAAa,OAAO,CAAC,GAAG,CAAC,MAAM,SAAY,MAAM,WAAS,SAAS,IAAQ,MAAM,GAAK,CAAC,KAAK,IAAI,OAAa,KAAK,KAAK,IAAI,MAAM,KAAK,KAAK,CAAC,GAAG,KAAK,IAAI,MAAM,GAAG,GAAG,EAAG,MAAM,CAAC,KAAK,GAAG,SAAS,CAAE,YAAY,CAAC,GAAG,CAAC,KAAK,GAAG,UAAU,KAAK,gBAAgB,CAAK,OAAO,KAAK,kBAAkB,aAAa,KAAK,IAAI,KAAK,eAAe,CAAuI,OAAnI,KAAK,GAAG,CAAC,OAAc,MAAQ,KAAK,KAAG,KAAK,WAAW,KAAK,KAAK,EAAC,KAAK,KAAK,WAAW,cAAc,EAAE,KAAK,iBAAiB,GAAa,IAAI,UAAU,KAAK,KAAK,KAAK,GAAG,SAAS,EACtvC,MAAM,cAAc,GAAK,CAAC,GAAG,KAAK,cAAc,GAAG,KAAK,kBAAkB,MAAO,GAAS,eAAc,KAAK,oBAAoB,CAAC,IAAI,UAAU,KAAK,YAAY,CAAC,GAAG,CAAC,UAAU,MAAO,GAAM,IAAI,WAAW,KAAK,KAAK,MAAU,QAAQ,eAAe,KAAK,KAAK,UAAU,CAAqD,OAAjD,KAAK,KAAK,OAAO,YAAW,KAAK,KAAK,OAAO,EAAE,CAAC,CAAQ,QAAS,aAAa,IAAI,CAAC,IAAI,MAAM,KAAK,KAAK,QAAQ,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,MAAM,eAAe,IAAI,CAAC,OAAO,KAAsF,GAAjF,MAAM,UAAU,IAAI,MAAM,aAAa,CAAI,IAAI,MAAM,eAAa,MAAM,OAAO,GAAK,IAAI,MAAM,YAAY,CAAC,IAAI,YAAY,UAAU,MAAM,IAAI,iBAAiB,IAAI,OAAO,gBAAgB,GAAG,CAAK,WAAW,UAAU,MAAM,IAAI,aAAa,IAAI,OAAO,YAAY,EAAE,CAAC,MAAM,CAAC,KAAK,YAAY,MAAM,SAAS,YAAY,CAAC,MAAM,WAAW,GAAG,WAAW,MAAM,UAAU,WAAW,CAAC,MAAM,SAAS,SAAS,GAAM,SAAU,IAAI,MAAM,gBAAiB,MAAM,CAAC,KAAK,MAAM,WAAW,GAAG,MAAM,SAAS,SAAS,IAAI,OAAO,WAAW,IAAI,SAAS,MAAO,OAAO,KAAO,UAAU,IAAI,CAAI,KAAK,KAAK,MAAK,KAAK,sBAAsB,KAAK,IAAI,CAAC,KAAK,IAAI,IAAI,KAAK,mBAAmB,KAAK,IAAI,EAAG,mBAAmB,IAAI,CAAC,IAAI,iBAAiB,SAAS,KAAK,SAAS,CAAC,IAAI,iBAAiB,cAAc,KAAK,QAAQ,CAAC,IAAI,iBAAiB,SAAS,KAAK,SAAS,CAAC,IAAI,SAAS,iBAAiB,kBAAkB,KAAK,kBAAkB,CAAE,sBAAsB,IAAI,CAAC,IAAI,oBAAoB,SAAS,KAAK,SAAS,CAAC,IAAI,oBAAoB,SAAS,KAAK,SAAS,CAAC,IAAI,oBAAoB,cAAc,KAAK,QAAQ,CAAC,IAAI,SAAS,oBAAoB,kBAAkB,KAAK,kBAAkB,CAAE,SAAS,CAAC,IAAIA,KAAG,GAAG,GAAG,GAAG,KAAK,MAAM,EAAE,KAAG,KAAK,eAAgB,MAAyBA,KAAG,YAAY,EAAE,GAAG,KAAK,kBAAmB,MAAyB,GAAG,YAAY,EAAE,GAAG,KAAK,eAAgB,MAAyB,GAAG,YAAY,EAAE,GAAG,KAAK,gBAAiB,MAAyB,GAAG,YAAY,CAAC,IAAI,IAAI,OAAO,KAAK,cAAc,IAAI,oBAAoB,SAAS,KAAK,SAAS,CAAC,KAAK,sBAAsB,KAAK,IAAI,CAAC,aAAa,KAAK,YAAY,CAAC,aAAa,KAAK,cAAc,CAAC,KAAK,IAAI,qBAAqB,KAAK,aAAa,CAAC,KAAK,IAAI,qBAAqB,KAAK,mBAAmB,CAAE,YAAY,KAAK,CAAC,KAAK,KAAK,KAAK,KAAK,OAAO,GAAM,KAAK,eAAe,IAAI,kBAAkB,KAAK,iBAAiB,GAAM,KAAK,aAAa,GAAG,KAAK,cAAc,GAAG,KAAK,MAAM,EAAE,CAAC,KAAK,kBAAkB,KAAK,KAAK,mBAAmB,GAAG,KAAK,WAAW,EAAE,KAAK,cAAc,EAAE,CAAC,KAAK,aAAa,KAAK,KAAK,aAAa,KAAK,KAAK,cAAc,KAAK,KAAK,aAAa,GAAM,KAAK,gBAAgB,KAAK,KAAK,KAAK,EAAE,CAAC,KAAK,YAAY,GAAG,KAAK,IAAI,KAAK,WAAW,KAAK,SAAS,IAAI,iBAAiB,WAAW,CAAC,IAAI,IAAI,OAAO,UAAU,KAAK,MAAM,KAAK,IAAI,EAAK,QAAQ,IAAI,QAAQ,YAAY,IAAI,QAAQ,KAAK,KAAK,YAAY,UAAU,KAAK,GAAG,EAAE,MAAM,aAAa,EAAE,aAAa,QAAQ,EAAE,MAAM,iBAAiB,EAAE,SAAS,OAAO,EAAE,OAAO,UAAU,OAAO,CAAC,KAAK,WAAW,CAAM,KAAK,OAAO,EAAG,CAAI,cAAY,KAAK,WAAW,OAAO,CAAC,KAAK,MAAM,KAAK,CAAC,OAAO,MAAM,OAAO,KAAK,gBAAgB,SAAS,MAAM,UAAU,CAAC,CAAC,KAAK,WAAW,GAAG,KAAK,kBAAkB,KAAK,kBAAkB,KAAK,KAAK,CAAC,KAAK,SAAS,KAAK,SAAS,KAAK,KAAK,CAAC,KAAK,QAAQ,KAAK,QAAQ,KAAK,KAAK,CAAC,KAAK,SAAS,KAAK,SAAS,KAAK,KAAK,CAAI,OAAO,gBAAgB,aAAY,KAAK,aAAa,IAAI,mBAAmB,CAAC,IAAIA,KAAW,KAAK,KAAK,SAAuC,WAAY,KAAK,KAAK,CAAC,IAAG,KAAK,UAAU,EAAG,CAAC,KAAK,aAAa,QAAQ,KAAK,UAAU,CAAC,KAAK,cAAc,IAAI,mBAAmB,KAAK,KAAK,gBAAgB,CAAC,CAAC,KAAK,cAAc,QAAQ,KAAK,WAAW,EAAE,KAAK,mBAAmB,KAAK,IAAI,KAAK,IAAI,CAAC,KAAK,OAAO,CAAI,OAAO,sBAAsB,aAAY,KAAK,aAAa,IAAI,qBAAqB,SAAS,CAAI,KAAK,YAAY,IAAE,KAAK,YAAY,WAAW,KAAK,gBAAgB,KAAK,KAAK,CAAC,IAAI,EAAI,QAAQ,OAAO,GAAG,QAAQ,QAAQ,OAAO,GAAG,kBAAkB,GAAG,KAAK,eAAc,KAAK,aAAa,CAAC,KAAK,aAAgB,KAAK,cAAc,KAAK,KAAK,QAAO,KAAK,gBAAgB,SAAS,YAAY,QAAQ,CAAC,GAAI,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,aAAa,QAAQ,KAAK,IAAI,CAAC,KAAK,gBAAgB,IAAI,qBAAqB,SAAS,CAAI,QAAQ,OAAO,GAAG,QAAQ,QAAQ,OAAO,GAAG,kBAAkB,GAAE,KAAK,gBAAgB,SAAS,YAAY,QAAQ,CAAC,EAAG,EAAE,CAAC,EAAE,KAAK,iBAAiB,CAAC,KAAK,oBAAoB,GAAmgC,WAAW,KAAK,CAE3zK,IAAI,OAAO,CAAC,OAAO,KAAK,UAAU,MAMlC,IAAI,UAAU,CAAC,OAAO,KAAK,UAAU,SAOrC,IAAI,eAAe,CAAC,OAAO,KAAK,UAAU,cAG1C,IAAI,QAAQ,CAAC,OAAO,KAAK,UAAU,OAInC,IAAI,WAAW,CAAC,OAAO,KAAK,WAAW,UAAU,EAKjD,IAAI,oBAAoB,CAAC,OAAO,KAAK,WAAW,WAAW,EAE3D,IAAI,MAAM,CAAC,OAAO,KAAK,MAEvB,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,cAAc,aAAa,OAAQ,SAAS,GAAG,MAAM,CAAC,IAAI,GAAG,MAAM,QAAQ,GAAG,MAAM,aAAa,YAAY,MAAM,GAAG,KAAK,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,UAAU,GAAG,KAAK,CAOnM,OAAO,aAAa,CAAC,GAAG,KAAK,aAAa,EAAE,MAAU,MAAM,4EAA4E,CAAC,IAAI,QAAQ,GAAM,aAAa,GAAM,OAAW,MAAM,KAAK,MAAM,IAAI,IAAI,MAAM,aAAa,CAAC,GAAG,GAAG,YAAY,MAAM,MAAU,WAAW,wFAAwF,CAAC,MAAM,GAAG,MAAO,GAAG,KAAK,UAAU,CAAC,KAAK,UAAU,MAAM,MAAM,OAAQ,IAAI,MAAM,KAAK,SAAS,UAAU,EAAE,cAAc,KAAQ,aAAa,KAAK,IAAI,GAAG,WAAW,cAAc,CAAC,EAAE,KAAK,WAAW,gBAAgB,MAAM,UAAU,GAAW,OAAO,KAAK,WAAW,kBAAiB,KAAK,WAAW,gBAAgB,MAAM,cAAc,uBAAuB,MAAM,MAAM,CAAK,gBAAc,UAAU,IAAG,IAAI,WAAW,KAAK,SAAS,kBAAkB,UAAU,KAAmO,GAA3N,YAAY,KAAK,SAAS,wBAAwB,CAAC,UAAU,KAAK,SAAS,YAAY,EAAI,WAAW,CAAC,KAAK,MAAM,IAAI,GAAG,MAAM,IAAI,EAAE,CAAC,KAAK,MAAM,UAAU,GAAG,MAAM,UAAU,IAAC,UAAU,OAAW,KAAK,SAAS,OAAO,CAAK,MAAM,MAAM,YAAY,QAAQ,EAAE,KAAK,MAAM,MAAM,YAAY,QAAQ,CAAC,OAAO,KAAK,SAAS,MAAM,CAAC,OAAO,WAAW,OAAO,KAAK,MAAM,aAAa,CAAC,OAAO,OAAO,UAAU,IAAI,aAAa,KAAK,UAAU,aAAa,GAAG,CAAC,KAAK,YAAY,EAAE,IAAI,IAAI,OAAO,aAAa,CAA4D,GAA3D,AAAgB,eAAa,aAAa,IAAI,IAAI,QAAQ,CAAI,IAAI,eAAe,CAAC,GAAG,CAAC,MAAM,IAAI,MAAM,UAAU,aAAa,IAAI,aAAa,KAAK,MAAM,KAAK,gBAAgB,OAAO,KAAK,KAAK,KAAK,KAAK,KAAK,OAAO,GAAG,EAAE,CAAC,CAAE,IAAI,IAAI,KAAK,IAAI,QAAW,EAAE,GAAG,eAAe,GAAC,aAAa,EAAE,OAAO,KAAK,UAAU,OAAO,OAAO,aAAa,CAAC,KAAK,UAAU,YAAY,OAAO,KAAK,UAAU,OAAO,QAAQ,CAAK,OAAO,QAAO,KAAK,cAAc,OAAO,CAAC,KAAK,WAAW,OAAO,OAAO,EAAE,QAAQ,KAAK,QAAQ,OAAO,OAAO,CAAI,KAAK,MAAM,MAAM,YAAY,EAAE,KAAK,cAAa,KAAK,aAAa,CAAC,aAAa,KAAK,aAAa,CAAC,KAAK,kBAAkB,aAAa,CAAC,KAAK,QAAQ,gBAAgB,QAAQ,aAAa,KAAK,IAAI,GAAG,YAAY,iBAAiB,CAAC,CAAC,QAAS,CAAC,KAAK,YAAY,EAA8O,GAAxO,OAAO,WAAW,MAAM,MAAM,EAAE,OAAO,MAAM,MAAM,MAAM,GAAC,KAAK,UAAU,mBAAmB,KAAQ,SAAS,cAAc,cAAc,KAAK,UAAU,wBAAwB,KAAK,UAAU,qBAAmB,KAAK,gBAAgB,CAAI,CAAC,OAAO,MAAM,IAAI,IAAI,YAAY,KAAK,MAAM,MAAM,eAAe,CAAC,SAAS,OAAO,EAAI,eAAe,YAAU,QAAQ,SAAS,CAAC,SAAS,CAAI,eAAe,KAAK,OAAO,cAAc,YAAW,KAAK,SAAS,cAAc,CAAI,WAAc,CAAC,eAAe,KAAK,UAAU,EAAE,WAAW,OAAM,YAAY,KAAK,WAAW,WAAW,IAAI,WAAW,QAAQ,EAAI,CAMpoF,SAAS,SAAS,CAAC,GAAG,KAAK,aAAa,EAAE,MAAU,MAAM,8EAA8E,CAAC,GAAG,KAAK,UAAU,CAAC,KAAK,UAAU,MAAM,SAAS,OAAQ,KAAK,YAAY,EAAE,IAAI,SAAS,KAAK,SAAS,GAAG,CAAC,IAAI,IAAI,WAAW,KAAK,QAAQ,QAAQ,QAAQ,KAAK,CAAC,KAAK,UAAU,IAAI,UAAU,SAAS,CAAC,KAAK,QAAQ,SAAS,MAAM,WAAW,CAAC,IAAI,MAAM,IAAI,eAAe,KAAK,CAAC,CAAC,KAAK,UAAU,OAAO,CAAC,IAAI,IAAI,YAAY,KAAK,QAAQ,SAAS,OAAO,KAAK,CAAC,KAAK,QAAQ,IAAI,QAAQ,KAAK,CAAC,KAAK,WAAW,eAAe,KAAK,KAAK,QAAQ,CAAC,KAAK,aAAa,CAAC,KAAK,aAAa,CAAC,KAAK,UAAU,EAAE,QAAS,CAAC,KAAK,YAAY,EAAM,UAAS,KAAK,OAAO,CAAC,KAAK,gBAAgB,CAAE,cAAc,OAAO,CAAC,IAAI,UAAU,OAAO,WAAW,MAAM,WAAW,CAAC,MAAM,OAAO,MAAM,MAAM,WAAW,CAAC,GAAG,WAAW,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC,IAAI,IAAI,QAAQ,MAAM,CAAC,IAAI,MAAM,UAAU,QAAQ,KAAK,CAAC,GAAG,MAAM,EAAG,WAAW,KAAK,IAAI,eAAe,KAAK,CAAC,KAAM,CAAC,IAAI,QAAQ,KAAK,QAAQ,OAAO,QAAQ,WAAW,OAAO,WAAW,KAAK,QAAQ,EAAG,IAAI,IAAI,YAAY,KAAK,QAAW,SAAS,YAAY,QAAO,SAAS,QAAQ,KAAK,CAAC,KAAK,QAAQ,WAAW,KAAK,UAAU,OAAO,CAAC,KAAK,WAAW,eAAe,KAAK,KAAK,QAAQ,MAAO,IAAI,IAAID,OAAK,KAAK,QAAQ,IAAE,WAAW,OAAQ,IAAI,IAAIF,IAAE,EAAEA,IAAE,KAAK,QAAQ,OAAO,MAAI,KAAK,QAAQA,KAAG,OAAO,KAAK,CAE90C,QAAQ,MAAM,GAAK,CAAC,GAAG,KAAK,UAAU,OAAU,KAAK,iBAAiB,IAAG,KAAK,IAAI,qBAAqB,KAAK,iBAAiB,CAAC,KAAK,iBAAiB,EAAK,OAAM,KAAK,SAAS,YAAY,CAAC,IAAI,QAAQ,KAAS,KAAK,KAAK,UAAU,CAAC,gBAAgB,oBAAoB,KAAK,UAA+C,GAArC,KAAK,UAAU,mBAAmB,GAAM,mBAAmB,GAAG,KAAK,WAAW,KAAK,UAAU,UAAW,GAAG,KAAK,UAAU,KAAK,aAAa,KAAK,aAAa,EAAG,gBAAgB,GAAG,mBAAmB,KAAK,UAAU,UAAU,WAAY,CAAC,IAAI,MAAM,KAAK,UAAU,kBAAkB,KAAK,UAAU,CAAC,gBAAgB,MAAM,KAAK,mBAAmB,MAAM,IAAM,GAAG,CAAC,IAAI,IAAIA,IAAE,GAAG,MAAI,CAAC,KAAK,YAAY,EAAE,IAAI,YAAY,KAAK,SAAa,QAAQ,KAAK,UAAU,QAAQ,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,gBAAgB,QAAQ,KAAK,UAAU,cAAc,KAAK,MAAM,GAAGA,IAAE,EAAE,CAAC,QAAQ,KAAK,KAAK,gBAAgB,OAAO,2CAA2C,+BAA+B,CAAC,MAAO,IAAI,UAAU,EAAE,CAAM,QAAQ,IAAG,CAAC,KAAK,gBAAgB,WAAW,CAAC,UAAU,KAAK,gBAAiB,EAAC,IAAI,SAAS,UAAU,IAAI,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,KAAK,OAAQ,EAAE,CAA4B,OAA3B,aAAa,KAAK,MAAM,EAAE,CAAQ,aAAc,CAAK,OAAO,WAAW,OAAO,KAAK,KAAK,MAAM,EAAE,CAAC,CAAC,QAAQ,GAAM,SAAS,GAAM,OAAO,OAAO,QAAY,QAA4B,QAAQ,OAAO,QAAnC,QAAQ,OAAmC,KAAK,YAAY,EAAM,OAAO,QAAO,KAAK,cAAc,OAAO,CAAC,KAAK,WAAW,OAAO,OAAO,CAAC,KAAK,aAAa,CAAC,QAAQ,KAAK,QAAQ,OAAO,OAAO,EAAE,IAAI,IAAI,GAAG,EAAE,GAAG,UAAU,OAAO,KAAK,GAAG,SAAS,KAAK,WAAY,GAAG,CAAC,IAAI,EAAE,UAAU,IAAO,EAAE,OAAM,EAAE,MAAM,SAAS,IAAI,KAAK,OAAQ,EAAE,CAAC,aAAa,KAAK,MAAM,EAAE,CAAG,GAAG,KAAK,UAAU,iBAAiB,KAAK,UAAU,aAAc,KAAK,QAAQ,eAAe,KAAK,UAAU,aAAa,CAAC,KAAK,UAAU,aAAa,KAAK,SAAS,WAAc,mBAAmB,GAAG,CAAuH,IAAI,MAAtG,gBAAgB,EAAE,KAAK,UAAU,UAAU,OAAO,KAAK,UAAU,YAAY,gBAAgB,CAAC,KAA6B,oBAAsB,KAAK,GAAG,KAAK,MAAI,KAAK,WAAW,KAAK,SAAS,KAAsD,GAA3C,SAAQ,KAAK,QAAQ,gBAAgB,GAAK,CAAI,KAAK,SAAS,MAAM,YAAY,MAAM,KAAK,SAAS,IAAI,YAAY,IAAI,CAAC,UAAU,KAAK,gBAAgB,QAAQ,EAAE,MAAM,mBAAmB,WAAY,CAAC,KAAK,YAAY,EAAE,KAAK,iBAAiB,GAAI,GAAG,SAAS,CAAC,QAAQ,MAAM,IAAI,IAAI,YAAY,KAAK,MAAM,MAAM,eAAe,CAAC,SAAS,QAAQ,CAE12E,IAAI,cAAc,CAAC,OAAO,YAAY,KAAK,KAAK,MAAM,MAAM,UAAU,CAAC,WAAW,aAAa,IAAI,KAAK,MAAM,MAAM,MAAM,CAAE,aAAa,CAAC,IAAI,YAAY,eAAe,KAAK,iBAAiB,CAAC,MAAM,aAAa,KAAK,SAAS,eAAe,KAAK,KAAK,aAAa,CAAC,CAAK,aAAa,CAAC,WAAW,QAAQ,YAAY,MAAM,eAAe,MAAM,UAAU,KAAK,gBAAiB,KAAK,MAAM,MAAM,SAAS,CAAS,OAAR,QAAe,MAAM,aAAa,MAAM,GAAG,QAAQ,QAAQ,IAAI,KAAK,MAAM,UAAU,KAAK,UAAU,iBAAiB,OAAO,CAAI,KAAK,MAAM,WAAS,aAAa,iBAAiB,QAAO,eAAe,KAAK,kBAAkB,aAAa,CAAC,IAAI,QAAQ,KAAK,SAAS,WAAW,CAAC,IAAI,eAAe,YAAY,KAAK,WAAW,KAAK,aAAa,aAAa,CAAK,cAAc,YAAY,KAAK,IAAI,KAAK,YAAY,YAAY,CAAC,OAAO,gBAAgB,eAAgB,CAA6D,MAA5D,MAAK,YAAY,YAAY,KAAK,aAAa,aAAoB,QAAS,kBAAkB,IAAI,CAAC,IAAI,MAAM,GAAK,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,UAAU,GAAG,QAAQ,GAAG,OAAO,GAAG,WAAW,SAAS,CAAC,CAAI,QAAM,KAAK,YAAY,YAAY,IAAG,MAAM,GAAM,IAAI,IAAI,KAAK,YAAY,YAAY,SAAS,cAAc,MAAM,CAAC,CAAC,IAAI,YAAY,OAAO,OAAQ,aAAa,CAAC,KAAK,aAAa,KAAK,MAAM,MAAM,YAAY,CAAC,cAAY,MAAM,KAAK,KAAK,KAAK,aAAa,OAAO,YAAY,CAAC,SAAS,CAAC,CAAE,cAAc,CAAC,GAAG,KAAK,aAAa,EAAE,MAAU,MAAM,2DAA2D,CAAI,KAAK,aAAa,GAAG,KAAK,iBAAiB,IAAG,KAAK,QAAQ,GAAM,CAO5/C,eAAe,QAAQ,CAAqG,GAAjG,KAAK,iBAAiB,IAAE,KAAK,iBAAiB,KAAK,IAAI,0BAA0B,KAAK,SAAS,CAAC,EAAI,QAAQ,CAAC,GAAG,KAAK,gBAAgB,QAAQ,QAAQ,CAAC,GAAG,OAAO,GAAG,QAAQ,KAAK,UAAS,IAAIA,IAAE,EAAEA,IAAE,KAAK,gBAAgB,OAAO,MAAK,GAAG,KAAK,gBAAgBA,KAAG,MAAM,QAAQ,IAAI,CAAC,KAAK,gBAAgBA,KAAG,QAAQ,QAAS,KAAK,gBAAgB,KAAK,QAAQ,EAKxX,OAAO,QAAQ,CAAC,IAAI,MAAM,KAAK,UAAU,IAAI,QAAQ,CAA6H,OAAzH,QAAQ,IAAK,IAAG,OAAO,MAAM,MAAM,UAAQ,KAAK,UAAU,IAAI,QAAQ,MAAM,KAAK,QAAQ,KAAK,KAAGE,IAAE,MAAM,QAAQ,EAAE,KAAK,CAAQ,OAAO,MAAM,OAAO,KAAK,CAAC,MAInN,IAAI,aAAa,CAAC,OAAO,KAAK,WAAW,uBAAuB,CAAC,IAAI,KAAK,UAAU,WAEpF,IAAI,iBAAiB,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,WAAW,OAAO,KAAK,UAAU,cAAc,CAI/F,gBAAgB,OAAO,CAAqB,OAApB,KAAK,cAAc,CAAQ,KAAK,UAAU,gBAAgB,OAAO,CAKzF,kBAAkB,OAAO,CAAqB,OAApB,KAAK,cAAc,CAAQ,KAAK,UAAU,kBAAkB,OAAO,CAK7F,IAAI,oBAAoB,CAAC,OAAO,KAAK,UAAU,cAO/C,YAAY,IAAI,CAAC,OAAO,KAAK,UAAU,YAAY,IAAI,CAEvD,IAAI,eAAe,CAAC,OAAO,KAAK,UAAU,cAe1C,WAAW,MAAM,QAAQ,GAAG,CAAC,OAAO,UAAU,KAAK,MAAM,WAAW,KAAK,MAAM,QAAQ,GAAG,CAAC,CAI3F,YAAY,MAAM,QAAQ,CAAC,OAAO,UAAU,KAAK,MAAM,WAAW,KAAK,MAAM,QAAQ,SAAS,QAAQ,KAAK,MAAM,KAAK,QAAQ,CAAC,CAAC,CAMhI,mBAAmB,MAAM,QAAQ,YAAY,GAAK,CAAC,OAAO,mBAAmB,KAAK,MAAM,QAAQ,YAAY,CAY5G,eAAe,MAAM,QAAQ,SAAS,CAAC,OAAO,UAAU,KAAK,MAAM,eAAe,KAAK,MAAM,QAAQ,SAAS,CAAC,CAS/G,SAAS,IAAI,CAAC,OAAO,KAAK,QAAQ,SAAS,IAAI,CAI/C,SAAS,KAAK,OAAO,EAAE,CAAC,OAAO,KAAK,QAAQ,WAAW,KAAK,OAAO,CAAE,YAAY,OAAO,QAAQ,GAAK,CAAqB,OAApB,KAAK,cAAc,CAAQ,YAAY,KAAK,OAAO,QAAQ,CAMjK,YAAY,IAAI,KAAK,EAAE,CAAC,KAAK,cAAc,CAAC,IAAI,KAAK,KAAK,QAAQ,SAAS,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,KAAK,MAAM,KAAK,MAAM,OAAO,KAAK,IAAI,KAAK,KAAK,MAAM,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,UAAU,KAAK,CAAK,KAAK,MAAM,SAAS,KAAK,MAAM,IAAI,KAAK,KAAK,GAAG,KAAK,EAAE,OAAO,YAAY,KAAK,KAAK,KAAK,UAAU,KAAK,KAAK,EAAE,CAInT,IAAI,uBAAuB,CAAC,OAAO,KAAK,UAAU,aAAa,UAG/D,IAAI,mBAAmB,CAAC,OAAO,KAAK,UAAU,aAAa,WAI3D,IAAI,eAAe,CAAC,OAAO,KAAK,UAAU,qBAQ1C,gBAAgB,IAAI,CAA4J,MAArG,CAA1C,KAAK,MAAM,MAAM,qBAAqB,EAAc,IAAI,KAAK,SAAS,MAAM,IAAI,KAAK,SAAS,GAAU,KAAK,eAAc,KAAK,cAAc,CAAQ,KAAK,QAAQ,gBAAgB,IAAI,EAKxN,IAAI,cAAc,CAAC,OAAO,KAAK,UAAU,aAAa,aAOtD,UAAU,KAAK,CAAC,GAAG,KAAK,OAAO,YAAY,OAAO,aAAa,KAAK,OAAO,CAAC,IAAI,IAAI,KAAK,gBAAgB,KAAK,KAAK,CAAC,IAAI,IAAI,SAAS,KAAK,UAAU,GAAG,MAAM,MAAM,KAAK,MAAM,MAAM,KAAK,IAAI,OAAO,MAAM,MAAM,IAAI,MAAM,aAAa,KAAK,KAAK,IAAI,CAAmE,OAAlE,KAAK,UAAU,KAAK,IAAI,YAAY,KAAK,KAAK,KAAK,GAAG,IAAI,MAAM,CAAC,CAAQ,MAE/T,IAAI,UAAU,CAAC,IAAIC,KAAG,OAAO,KAAK,IAAI,cAAc,UAAU,EAAE,QAAQ,QAAa,KAAK,YAA0C,gBAAiB,KAAK,KAAK,CAAC,MAAM,KAAK,KAAK,eAAe,KAAK,WAEpM,OAAO,CAAC,KAAK,SAAS,WAAW,CAAC,mBAAmB,KAAK,WAAW,CAAC,KAAK,QAAQ,iBAAiB,EAAG,CAGvG,QAAQ,KAAK,CAAI,KAAK,OAAO,OAAM,KAAK,MAAM,KAAK,KAAK,SAAS,WAAW,KAAK,UAAU,EAAE,KAAK,KAAK,eAAe,aAAa,OAAO,CAAC,KAAK,aAAa,EAK7J,SAAS,CAAC,IAAI,IAAI,WAAW,KAAK,QAAQ,QAAQ,QAAQ,KAAK,CAAC,KAAK,QAAQ,EAAE,CAAC,KAAK,WAAW,SAAS,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK,SAAS,SAAS,CAAI,KAAK,iBAAiB,IAAG,KAAK,IAAI,qBAAqB,KAAK,iBAAiB,CAAC,KAAK,UAAU,GAIpP,OAAO,eAAe,IAAI,QAAQ,EAAE,CAAC,CAAC,OAAO,eAAe,GAAG,IAAI,aAAa,OAAO,KAAK,SAAS,gBAAgB,OAAO,IAAI,CAAC,IAAI,QAAQ,EAAE,QAAQ,EAAE,QAAQ,QAAQ,QAAQ,QAAQ,CAAC,CAW1L,OAAO,iBAAiB,UAAU,CAAC,OAAO,WAAW,YAAY,EAAE,EAAE,CAAC,cAAc,UAAU,CAAC,CAiB/F,OAAO,MAAM,KAAK,QAAQ,CAAC,IAAI,OAAO/C,cAAY,SAAS,CAAK,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,WAAW,IAAI,SAAS,KAAK,CAAC,CAAE,CAA0D,OAAtD,SAAS,QAAQ,MAAK,OAAO,KAAK,UAAU,GAAG,GAAK,CAAC,CAAQ,OAMzM,OAAO,UAAU,KAAK,CAAC,OAAO,KAAK,OAAO,YAAY,GAAG,WAAW,IAAI,YAAY,KAAK,aAAa,CAAC,CAAC,CAGxG,OAAO,YAAY,IAAI,CAAC,IAAI+C,KAAG,IAAIjD,UAAQ,IAAI,cAAc,cAAc,CAAmE,OAAxDA,WAAS,YAAY,IAAIA,UAAQ,EAAE,YAAY,IAAI,IAAI,GAAsD,UAAwC,MAAO,KAIlP,YAAY,OAAO,EAAE,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC,KAAK,UAA0B,IAAI,IAAI,KAAK,YAAY,EAAE,CAAC,KAAK,aAAa,EAAE,CAAC,KAAK,UAAU,EAAE,CAAC,KAAK,UAAU,GAAM,KAAK,YAAY,EAAE,KAAK,iBAAiB,GAAG,KAAK,gBAAgB,EAAE,CAAC,KAAK,WAAW,SAAS,cAAc,MAAM,CAAC,KAAK,UAAU,SAAS,cAAc,MAAM,CAAC,KAAK,UAAU,SAAS,GAAG,KAAK,UAAU,UAAU,cAAc,KAAK,UAAU,YAAY,KAAK,WAAW,CAAC,KAAK,YAAY,SAAS,cAAc,MAAM,CAAC,KAAK,YAAY,MAAM,QAAQ,iCAAiC,KAAK,YAAY,aAAa,YAAY,SAAS,CAAC,KAAK,IAAI,SAAS,cAAc,MAAM,CAAC,KAAK,IAAI,YAAY,KAAK,YAAY,CAAC,KAAK,IAAI,YAAY,KAAK,UAAU,CAAC,KAAK,UAAU,OAAO,WAAW,IAAI,KAAK,OAAO,CAAC,GAAG,CAAC,EAAE,KAAK,SAAS,KAAK,SAAS,KAAK,KAAK,CAAC,KAAK,MAAM,OAAO,MAAM,QAAQ,OAAO,OAAO,EAAE,SAAS,KAAK,UAAU,IAAI,UAAU,OAAO,OAAO,YAAY,OAAO,OAAO,CAAC,CAAC,KAAK,QAAQ,KAAK,MAAM,MAAM,WAAW,CAAC,IAAI,MAAM,IAAI,eAAe,KAAK,CAAC,CAAC,IAAI,IAAI,WAAW,KAAK,QAAQ,QAAQ,OAAO,KAAK,CAAC,KAAK,SAAS,IAAI,YAAY,KAAK,CAAC,KAAK,WAAW,IAAI,WAAW,KAAK,CAAC,KAAK,WAAW,eAAe,KAAK,KAAK,QAAQ,CAAC,KAAK,QAAQ,IAAI,QAAQ,KAAK,CAAC,KAAK,aAAa,CAAC,KAAK,aAAa,CAAC,KAAK,YAAY,EAAE,KAAK,gBAAgB,CAAI,OAAO,QAAO,OAAO,OAAO,YAAY,KAAK,IAAI,GAAI,WAAW,YAAY,YAAY,WAAW,aAAa,aAAa,WAAW,kBAAkB,kBAAkB,WAAW,qBAAqB,qBAAqB,WAAW,cAAc,cAAc,WAAW,eAAe,eAAe,WAAW,SAAS,SAAS,WAAW,oBAAoB,oBAAoB,WAAW,mBAAmB,qBAAqB,WAAW,wBAAwB,wBAAwB,WAAW,YAAY,YAAY,WAAW,aAAa,aAAa,WAAW,cAAc,cAAc,WAAW,UAAU,UAAU,WAAW,kBAAkB,kBAAkB,WAAW,iBAAiB,iBAAiB,WAAW,aAA6B,WAAW,kBAAkB,GAAG,CAAC,MAAM,kBAAkB,CAAC,CAAC,WAAW,SAAyB,YAAY,QAAQ,CAAK,YAAY,KAAS,WAAW,EAAE,CAAK,YAAY,KAAK,CAAC,OAAO,OAAO,MAAM,QAAQ,CAAC,GAAG,QAAQ,MAAM,OAAO,MAAM,IAAI,OAAO,EAAE,CAAC,QAAQ,MAAM,OAAO,MAAM,MAAM,OAAO,GAAG,IAAI,UAAU,IAAI,IAAI,IAAI8C,IAAE,KAAK,IAAI,EAAE,MAAM,OAAO,GAAG,CAACA,IAAE,MAAM,OAAO,MAAI,CAAC,IAAI,MAAM,MAAMA,KAAM,MAAM,KAAK,SAAS,CAAC,QAAQ,aAAa,MAAM,KAAK,MAAM,GAAG,EAAC,OAAO,KAAK,IAAI,YAAY,QAAQ,OAAO,MAAM,KAAK,EAAE,CAAC,QAAQ,OAAO,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,MAAM,MAAM,CAAC,CAAE,OAAO,OAAQ,YAAY,KAAK,GAAG,IAAI,MAAM,CAAC,KAAK,KAAK,KAAK,KAAK,GAAG,GAAG,KAAK,IAAI,IAAI,KAAK,MAAM,QAAwP,gBAAgB,QAAQ,IAAI,MAAM,QAAQ,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAy2B,gBAAgC,KAAK,QAAwB,WAAW,iBAAiB,CAAC,QAAQ,MAAM,KAAK,CAAC,OAAO,YAAY,UAAU,KAAK,MAAM,CAAC,MAAM,KAAK,SAAS,EAAG,CAAC,CAAC,CAAK,OAAuB,MAAM,OAAO,CAAC,QAAQ,gBAAgB,CAAC,CAAK,QAAwB,IAAI,QAA+S,aAAa,KAAS,cAAc,IASizC,eAAe,CAAC,QAAQ,IAA+xD,UAAU,CAAC,WAAW,CAAC,gBAAgB,CAAC,gBAAgB,yBAAyB,CAAC,eAAe,CAAC,gBAAgB,yBAAyB,CAAC,CAAC,CAAI,iBAAe,UAAU,YAAY,WAAW,0BAAiyF,eAAe,KAAK,CAIxhV,WAAW,KAAK,CAAC,IAAI,MAAM,IAAI,gBAAgB,IAAI,MAAM,IAAI,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,KAAK,MAAM,YAAY,KAAK,KAAK,UAAU,CAAC,YAAY,KAAK,MAAM,IAAI,KAAK,OAAO,KAAK,IAAI,MAAM,IAAI,KAAK,SAAS,EAAE,KAAK,MAAM,IAAI,CAAC,CAAC,OAAO,MAAM,QAAQ,CAI7O,WAAW,OAAO,KAAK,CAAC,IAAI,WAAW,IAAI,SAAS,GAAoY,OAA9X,OAAO,YAAW,OAAO,QAAQ,aAAa,GAAG,GAAG,KAAK,KAAK,CAAI,GAAG,OAAO,KAAK,SAAS,MAAM,KAAK,OAAO,KAAK,SAAS,KAAI,WAAW,KAAK,IAAI,KAAK,WAAW,CAAC,SAAS,KAAK,IAAI,GAAG,SAAS,GAAI,CAAI,OAAO,iBAAiB,SAAS,WAAW,IAAW,KAAK,WAAW,OAAO,KAAK,CAAI,SAAS,GAAU,KAAK,YAAY,OAAO,KAAK,KAAK,IAAI,OAAO,QAAQ,CAAC,WAAW,SAAS,CAAQ,KAAM,YAAY,KAAK,KAAK,WAAW,SAAS,CAAC,IAAI,IAAI,KAAK,KAAK,cAAc,CAAC,IAAI,KAAK,KAAK,IAAI,EAAE,KAAK,WAAW,CAAC,GAAG,KAAK,IAAI,EAAE,GAAG,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC,IAAI,SAAS,KAAK,MAAM,IAAI,OAAO,KAAK,CAAC,OAAO,SAAS,GAAG,GAAG,KAAK,MAAM,IAAI,OAAO,GAAG,CAAC,SAAa,MAAM,KAAK,IAAI,EAAE,KAAK,SAAS,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE,GAAG,OAAO,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,KAAK,KAAK,SAAS,KAAK,OAAO,GAAG,KAAK,SAAS,KAAK,SAAS,KAAK,KAAK,EAAE,SAAS,MAAM,CAAC,CAAC,MAAM,KAAK,MAAO,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,SAAS,KAAK,OAAO,KAAK,GAAG,OAAO,MAAM,CAAC,CAAC,IAAI,GAAG,OAAQ,IAAI,OAAO,EAAE,CAAC,EAAM,KAAK,MAAM,IAAI,QAAQ,OAAO,KAAK,MAAM,MAAM,MAAM,IAAI,CAAC,CAAC,GAAG,UAAU,OAAkD,IAA1C,KAAK,OAAO,UAAU,MAAM,SAAS,MAAY,EAAE,KAAK,OAAO,KAAK,SAAS,KAAK,GAAG,EAAE,MAAM,IAAI,SAAS,MAAK,KAAK,SAAS,EAAE,KAAK,EAAE,MAAM,SAAS,KAAK,IAAI,MAAO,YAAY,KAAK,MAAM,IAAI,KAAK,OAAO,MAAM,KAAK,MAAM,KAAK,KAAK,SAAS,GAAG,KAAK,MAAM,IAAI,CAAC,CAAE,KAAK,KAAK,OAAO,CAAC,WAAW,MAAM,SAAS,IAAI,QAAQ,MAAM,MAAM,MAAM,OAAO,IAAI,IAAI,IAAI,OAAO,CAAC,EAAG,OAAO,KAEt7C,YAAY,OAAO,CAAC,GAAK,CAAC,OAAO,WAAW,SAAS,SAAS,UAAU,KAAK,OAAO,GAAG,CAAC,OAAO,OAAO,MAAU,WAAW,8EAA8E,CAAoB,GAAnB,KAAK,OAAO,OAAU,SAAU,KAAK,UAAU,MAAM,KAAK,KAAK,MAAM,SAAS,IAAI,KAAK,KAAK,MAAM,GAAG,OAAO,MAAM,KAAK,SAAU,OAAO,YAAY,WAAY,KAAK,UAAU,MAAM,KAAK,KAAK,MAAM,CAAC,IAAI,KAAK,WAAW,MAAM,KAAK,KAAK,CAAI,MAAK,IAAI,KAAK,KAAK,MAAM,GAAG,OAAO,KAAK,UAAY,WAAY,KAAK,UAAU,MAAM,MAAM,KAAK,MAAM,IAAI,KAAK,KAAK,MAAM,GAAG,OAAO,WAAW,MAAO,MAAU,WAAW,yEAAyE,CAAE,KAAK,SAAS,SAAS,KAAK,UAAU,YAAiB,qBAAqB,IAAI,SAAS,KAAU,IAAL,KAAa,SAA6B,OAAO;kCAA4D,qBAAqB,CAAK,MAAM,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,GAAG,UAAU,GAAG,eAAe,GAAG,kBAAkB,GAAG,SAAS,KAAK,mBAAmB,KAAK,wBAAwB,KAAK,oBAAoB,KAAK,qBAAqB,KAAK,qBAAqB,KAAK,iBAAiB,KAAK,yBAAyB,KAAK,yBAAyB,KAAK,wBAAwB,KAAK,wBAAwB,KAAK,0BAA0B,KAAK,sBAAsB,MAAM,4BAA4B,MAAM,qBAAqB,CAAK,iBAAiB,KAAyQ,kBAAkC,MAAM,OAAO,CAAC,QAAQ,QAAQ,CAAC,IAAI,OAAO,cAAc,QAAQ,CAAC,OAAO,KAAK,aAAa,SAAS,gBAAgB,KAAK,CAAC,CAA2Q,OAAvQ,OAAO,YAAY,CAAC,iBAAiB,IAAC,OAAO,aAAiB,OAAO,KAAK,OAAO,aAAa,OAAO,qBAAqB,EAAI,OAAO,kBAAgB,OAAO,aAAiB,OAAO,OAAO,aAAa,OAAO,IAAI,OAAO,gBAAgB,OAAO,qBAAqB,EAAQ,QAAS,CAAC,CAAyG,QAAQ,KAAuqC,mBAAmB,IAAwI,kBAAkB,cAAc,UAAU,CAAC,GAAG,MAAM,CAAC,OAAO,MAAM,MAAM,KAAK,KAAM,MAAM,KAAK,CAAC,IAAI,GAAG,cAAc,KAAK,KAAK,CAAK,KAAK,KAAK,MAAM,OAAO,oBAAoB,CAAC,KAAK,MAAM,KAAK,OAAO,KAAK,KAAK,KAAK,SAAS,GAAG,EAAM,OAAO,KAAK,QAAQ,QAAQ,KAAK,QAAQ,OAAO,KAAK,KAAK,KAAK,GAAG,CAAC,GAAG,OAAO,OAAO,OAAO,IAAI,KAAK,SAAS,cAAc,OAAO,CAA0G,MAAzG,MAAK,YAAY,GAAG,KAAK,MAAM,KAAK,KAAK,aAAa,aAAa,KAAK,CAAC,KAAK,UAAU,iBAAwB,KAAM,aAAa,CAAC,MAAO,GAAO,YAAY,QAAQ,OAAK,CAAC,OAAO,CAAC,KAAK,QAAQ,QAAQ,KAAK,KAAKnD,SAAY,UAAU,cAAc,UAAU,CAAC,GAAG,MAAM,CAAC,OAAO,MAAM,OAAO,KAAK,MAAO,OAAO,CAAC,IAAI,KAAK,SAAS,cAAc,OAAO,CAA+E,MAA9E,MAAK,YAAY,IAAI,KAAK,UAAU,SAAS,KAAK,MAAM,MAAM,KAAK,MAAM,KAAY,KAAM,aAAa,CAAC,MAAO,GAAO,YAAY,MAAM,CAAC,OAAO,CAAC,KAAK,MAAM,QAAikB,SAAyB,WAAW,KAAK,CAAC,MAAM,gBAAgB,CAAC,CAAK,sBAAsC,WAAW,UAAU,KAAK,CAAC,OAAO,OAAO,EAAI,OAAO,YAAY,OAAO,gBAAa,KAAK,YAAY,KAAK,QAAQ,OAAO,KAAK,EAAE,QAAQ,KAAK,CAAC,IAAI,cAAc,GAAG,KAAK,EAAE,CAAC,IAAI,IAAI,KAAK,KAAK,MAAM,UAAU,OAAO,CAAC,IAAI,KAAK,KAAK,YAAY,EAAE,KAAK,CAAI,KAAK,KAAK,gBAAe,KAAK,KAAK,SAAS,MAAM,KAAK,KAAK,CAAC,CAAC,cAAc,KAAK,MAAO,OAAO,WAAW,IAAI,KAAK,CAAE,YAAY,KAAK,CAAC,KAAK,YAAY,KAAK,QAAQ,KAAK,GAAI,CAAC,YAAY,GAAG,EAAE,YAAY,CAAC,CAC6oI,aAAa,cAAc,UAAU,CAEjpT,QAAQ,MAAM,CAAC,OAAO,MAAM,OAAO,KAAK,aAAa,MAAM,aAAa,KAAK,GAAG,MAAM,CAEtF,GAAG,MAAM,CAAC,MAAO,GAGjB,QAAQ,IAAI,IAAI,aAAa,UAAU,aAAa,GAAG,aAAa,UAAU,MAAM,IAAK,GAAE,aAAa,UAAU,QAAQ,QAAQ,YAAY,aAAa,UAAU,UAAU,aAAa,UAAU,QAAQ,GAAG,aAAa,UAAU,MAAM,GAAS,gBAAgC,MAAM,QAAQ,CAA2N,cAA8B,MAAM,QAAQ,CAAoH,aAA6B,MAAM,OAAO,CAAC,QAAQ,QAAQ,OAAO,KAAK,KAAG2D,IAAE,CAAC,CAAC,CAAwI,WAA2B,WAAW,UAAU,KAAK,CAAC,OAAO,OAAO,CAAC,GAAG,KAAK,cAAc,OAAO,CAAC,CAAC,IAAI,IAAI,KAAK,aAAa,IAAI,OAAO,KAAK,SAAa,UAAU,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,IAAI,IAAI,KAAK,IAAI,KAAK,CAAC,KAAK,YAAY,WAAW,IAAI,GAAG,IAAI,MAAM,GAAG,CAAK,OAAO,kBAAgB,KAAK,IAAI,MAAM,UAAU,KAAK,KAAK,cAAc,MAAQ,KAAK,KAAK,MAAM,MAAM,aAAa,EAAE,CAAC,KAAK,QAAO,KAAK,MAAM,CAAC,KAAK,MAAM,KAAK,IAAI,MAAM,SAAS,KAAK,MAAM,SAAS,IAAI,KAAK,aAAa,OAAO,KAAK,SAAU,YAAY,OAAO,CAAC,IAAI,MAAM,KAAK,IAAI,YAAe,QAAO,KAAK,IAAI,QAAQ,CAAC,IAAI,YAAY,SAAS,KAAK,KAAK,KAAK,MAAM,MAAM,gBAAgB,CAAC,KAAK,KAAK,SAAS,KAAK,CAAK,SAAS,EAAE,CAAK,SAAS,KAAK,QAAQ,IAAI,SAAS,IAAI,cAAc,QAAQ,KAAK,KAAK,SAAS,CAAC,KAAK,KAAK,gBAAgB,IAAI,CAAC,CAAC,IAAI,IAAI,QAAQ,KAAK,KAAK,mBAAmD,GAA5B,SAAS,SAAO,SAAS,EAAE,EAAI,MAAM,QAAQ,KAAK,KAAK,CAAC,CAAC,IAAI,MAAM,GAAK,IAAI,IAAI,KAAK,KAAK,KAAM,GAAG,EAAE,MAAM,UAAU,MAAM,MAAM,CAAC,cAAc,YAAY,SAAS,EAAE,KAAK,CAAC,IAAI,IAAIP,QAAM,SAAS,KAAG,KAAK,KAAK,KAAK,EAAE,SAAS,CAAC,MAAM,WAAe,EAAE,OAAQ,IAAI,IAAI,OAAO,SAAS,IAAI,OAAO,KAAK,KAAK,EAAE,SAAY,KAAK,MAAM,UAAU,KAAK,CAAC,cAAc,YAAY,SAAS,KAAK,KAAK,CAAC,IAAI,IAAI,OAAO,SAAS,IAAI,KAAK,KAAK,KAAK,KAAK,SAAS,CAAG,IAAI,IAAI,OAAO,SAAS,IAAI,QAAQ,CAAI,QAAO,KAAK,KAAK,UAAU,aAAa,KAAK,IAAI,MAAM,CAAE,cAAc,OAAO,CAAC,IAAI,KAAK,OAAO,WAAW,MAAM,cAAc,CAAC,IAAI,OAAO,MAAM,MAAM,cAAc,CAAK,OAAO,OAAO,YAAY,OAAO,eAAe,OAAO,iBAAiB,CAAC,SAAS,GAAG,OAAO,WAAW,MAAM,gBAAgB,CAAC,OAAO,MAAM,MAAM,gBAAgB,CAAC,OAAO,KAAK,SAAS,KAAK,OAAO,KAAK,SAAS,GAAG,CAAC,GAAG,MAAM,QAAS,IAAI,WAAW,KAAK,QAAW,QAAQ,OAAO,OAAO,GAAC,OAAO,QAAU,CAAC,OAAO,GAAK,IAAI,SAAS,EAAE,CAAC,IAAI,IAAI,QAAQ,IAAI,CAAC,IAAI,MAAM,KAAK,QAAQ,KAAK,CAAI,MAAM,EAAG,SAAS,KAAK,IAAI,iBAAiB,KAAK,KAAK,KAAK,CAAC,EAAO,KAAK,QAAQ,OAAO,OAAO,OAAO,CAAC,SAAS,KAAK,KAAK,QAAQ,OAAO,EAAG,IAAI,IAAI,KAAK,KAAK,QAAS,EAAE,IAAI,QAAQ,CAAI,SAAS,QAAQ,EAAE,CAAC,GAAE,EAAE,SAAS,CAAE,IAAI,IAAI,MAAM,SAAS,KAAK,IAAI,YAAY,GAAG,IAAI,CAAC,KAAK,QAAQ,SAAU,OAAO,OAAQ,SAAS,CAAC,IAAI,IAAI,QAAQ,KAAK,QAAQ,KAAK,SAAS,CAAC,KAAK,IAAI,QAAQ,CAAE,YAAY,KAAK,CAAC,KAAK,KAAK,KAAK,KAAK,aAAa,KAAK,SAAS,KAAK,IAAI,SAAS,cAAc,MAAM,CAAC,KAAK,IAAI,UAAU,aAAa,KAAK,IAAI,aAAa,cAAc,OAAO,CAAC,KAAK,IAAI,MAAM,UAAU,KAAK,KAAK,cAAc,KAAK,KAAK,QAAQ,KAAK,MAAM,MAAM,cAAc,CAAC,IAAI,MAAM,IAAI,iBAAiB,KAAK,KAAK,CAAC,CAAC,IAAI,IAAI,WAAW,KAAK,QAAQ,KAAK,IAAI,YAAY,QAAQ,IAAI,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,MAAM,aAAa,CAAI,KAAK,QAAO,KAAK,IAAI,MAAM,SAAS,UAAU,KAAK,YAAY,GAAM,CAAC,KAAK,UAAU,aAAa,KAAK,IAAI,KAAK,WAAW,GAAI,CAAC,QAAQ,SAAS,WAAW,cAAc,GAAG,MAAM,CAAC,IAAI,MAAM,KAAK,OAAO,QAAQ,CAA8D,MAA1D,CAAC,OAAO,MAAM,QAAQ,QAAQ,GAAG,CAAC,MAAM,MAAa,KAAY,KAAK,eAAe,UAAU,IAAI,CAAC,KAAK,MAAM,IAAI,YAAY,CAAC,CAAC,MAAM,MAAM,IAAI,YAAY,EAAG,CAAC,CAAC,CAAgN,cAAc,KAAK,CAAC,WAAW,KAAK,MAAM,QAAQ,CAAC,GAAG,CAAC,OAAO,SAAS,KAAK,MAAM,MAAM,IAAI,KAAK,OAAO,GAAG,KAAK,GAAG,QAAQ,SAAS,OAAO,CAAC,IAAI,OAAO,IAAI,cAAc,KAAK,MAAM,OAAO,MAAM,QAAQ,CAAC,QAAQ,SAAS,KAAK,OAAO,CAAC,QAAQ,IAAI,YAAY,OAAO,IAAI,MAAO,QAAQ,SAAS,KAAK,GAAG,OAAO,KAAK,MAAM,OAAO,MAAM,QAAQ,CAAE,KAAK,OAAO,MAAM,OAAO,KAAK,IAAK,KAAK,KAAK,KAAK,aAAa,CAAC,IAAI,aAAa,EAAE,CAAC,cAAc,KAAK,OAAO,aAAa,KAAK,KAAK,CAAI,aAAa,SAAO,aAAa,aAAa,OAAO,aAAa,EAAC,IAAI,QAAQ,KAAK,OAAO,OAAO,WAAW,KAAK,KAAK,aAAa,CAAI,SAAQ,aAAa,QAAQ,QAAQ,CAAC,IAAI,QAAQ,KAAK,OAAU,aAAa,QAAQ,GAAG,CAAC,QAAQ,OAAO,qBAA2B,KAAK,WAAW,KAAK,KAAK,aAAa,CAAE,OAAO,KAAK,MAAM,CAAC,IAAI,OAAO,KAAK,OAAO,OAAO,aAAa,KAAK,MAAM,OAAO,MAAM,CAAI,QAAO,KAAK,WAAW,KAAK,MAAM,CAAC,OAAO,CAAC,CAAE,QAAQ,CAAC,IAAI,QAAQ,KAAK,OAAO,KAAM,QAAQ,SAAS,OAAO,KAAK,GAAE,CAAC,IAAI,KAAK,QAAQ,SAAS,KAAK,CAAC,QAAQ,IAAI,YAAY,KAAK,IAAI,CAAC,KAAK,SAAS,EAAG,YAAY,QAAQ,SAAS,OAAO,CAAC,KAAK,OAAO,QAAQ,KAAK,OAAO,OAAO,KAAK,EAAE,EAAE,KAAK,OAAO,SAAS,KAAK,QAAQ,QAAQ,SAAS,KAAK,GAAQ,iBAAiB,KAAK,CAAC,OAAO,OAAO,CAAC,IAAI,YAAY,KAAK,QAA+D,GAAvD,KAAK,QAAQ,QAAQ,KAAK,OAAO,QAAQ,OAAO,KAAK,CAAC,CAAI,KAAK,QAAQ,KAAK,OAAO,aAAa,CAAC,IAAI,QAAQ,KAAK,OAAO,aAAa,KAAK,OAAO,QAAQ,GAAG,OAAO,CAAI,SAAS,KAAK,OAAO,QAAQ,IAAG,KAAK,OAAO,OAAO,OAAO,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAE,IAAI,GAAG,OAAO,KAAK,SAAS,MAAM,CAAC,SAAS,GAAG,KAAK,QAAQ,YAAY,GAAG,KAAK,GAAG,GAAG,GAAG,KAAK,OAAO,iBAAiB,KAAK,OAAO,iBAAiB,OAAO,CAAC,IAAQ,SAAS,CAAC,IAAI,IAAI,OAAO,KAAK,SAAS,IAAI,SAAS,CAAE,YAAY,KAAK,OAAO,CAAwL,IAAI,IAAI,OAA/L,MAAK,KAAK,KAAK,KAAK,OAAO,OAAO,KAAK,SAAS,EAAE,CAAC,KAAK,OAAO,KAAK,KAAK,IAAI,SAAS,cAAc,MAAM,CAAC,KAAK,IAAI,UAAU,aAAa,KAAK,OAAO,MAAM,IAAI,KAAK,OAAO,MAAM,IAAoB,OAAO,iBAAkB,KAAK,IAAI,iBAAiB,KAAK,OAAO,CAAC,IAAI,OAAO,MAAM,OAAO,EAAE,GAAG,QAAQ,KAAK,KAAK,KAAK,IAAI,SAAS,OAAO,CAAC,CAAC,KAAM,OAAO,YAAY,KAAK,KAAI,OAAO,OAAO,WAAW,IAAI,KAAK,OAAO,uBAAuB,CAAC,GAAG,KAAK,IAAI,KAAK,QAAQ,OAAQ,EAAE,MAAM,QAAS,IAAI,KAAK,KAAK,kBAAkB,EAAE,KAAK,YAAY,CAAI,OAAO,iBAAiB,MAAM,KAAK,KAAK,MAAM,EAAC,MAAM,gBAAgB,EAAG,CAAE,KAAK,QAAQ,QAAQ,OAAO,QAAQ,KAAK,CAAC,CAAI,OAAO,gBAAe,KAAK,OAAO,IAAI,cAAc,KAAK,EAAE,EAAE,CAAC,OAAO,cAAc,KAAK,CAAE,CAAC,CAAC,KAAK,IAAI,YAAY,KAAK,OAAO,IAAI,CAAC,KAAK,OAAO,IAAI,MAAM,SAAS,8CAAmD,cAAc,KAAK,CAAC,OAAO,KAAK,OAAO,MAAM,QAAQ,CAAI,KAAK,QAAQ,SAAO,KAAK,IAAI,MAAM,QAAQ,KAAK,OAAO,QAAQ,MAAQ,KAAK,OAAO,QAAM,KAAK,IAAI,MAAM,WAAW,KAAK,MAAM,OAAO,MAAM,KAAK,IAAO,YAAY,KAAK,QAAQ,QAAQ,EAAC,KAAK,WAAW,KAAK,QAAQ,CAAE,WAAW,KAAK,QAAQ,CAAC,IAAI,IAAI,mBAAmB,OAAO,KAAK,IAAI,WAAW,IAAI,IAAI,KAAK,EAAE,KAAK,IAAI,CAAC,IAAI,OAAO,KAAK,OAAO,KAAK,QAAQ,OAAO,QAAQ,QAAQ,KAAK,QAAQ,GAAM,GAAG,OAAO,CAAC,IAAI,EAAE,OAAO,aAAgB,IAAE,KAAK,IAAI,GAAE,IAAI,IAAID,IAAE,KAAKA,IAAE,KAAK,QAAQ,OAAO,MAAI,GAAG,KAAK,QAAQA,KAAG,QAAQ,OAAO,CAAC,CAAC,OAAOA,IAAE,QAAQ,GAAK,YAAa,OAAO,KAAK,QAAQ,OAAQ,KAAM,KAAK,QAAO,CAAC,IAAI,KAAK,KAAK,QAAQ,QAAQ,GAAG,KAAK,MAAM,CAAC,KAAK,QAAQ,OAAO,CAAC,IAAI,MAAM,OAAO,YAAY,OAAO,QAAQ,CAAC,OAAO,OAAQ,GAAG,CAAC,OAAO,MAAS,OAAO,QAAU,QAAQ,OAAO,OAAO,YAAiB,KAAK,IAAI,aAAa,OAAO,MAAM,KAAK,CAAC,OAAO,EAAK,SAAQ,OAAQ,KAAK,IAAI,UAAU,IAAI,KAAK,QAAQ,QAAS,SAAS,CAAC,KAAK,WAAW,KAAK,EAAE,CAAC,CAAE,YAAY,KAAK,OAAO,MAAM,QAAQ,CAAC,KAAK,OAAO,GAAG,KAAK,MAAM,EAAE,KAAK,QAAQ,EAAE,CAAC,KAAK,IAAI,SAAS,cAAc,MAAM,CAAC,KAAK,IAAI,UAAU,mBAAmB,KAAK,OAAO,KAAK,OAAO,MAAM,QAAQ,GAAiJ,kBAAkC,MAAM,QAAQ,CAAK,iBAAiC,MAAM,OAAO,CAAC,QAAQ,OAAO,CAAC,OAAO,cAAc,OAAO,CAAC,aAAa,OAAO,iBAAiB,EAAE,CAAC,CAAC,CAAC,iBAAiB,EAAE,EAAE,CAAC,IAAI,OAAO,OAAO,OAAO,EAAE,CAAC,EAAE,CAAC,IAAI,IAAI,SAAS,EAAE,CAAC,IAAI,OAAO,OAAO,OAAO,IAAI,EAAE,OAAO,OAAO,OAAO,QAAQ,KAAK,KAAK,SAAS,OAAO,KAAK,KAAK,OAAO,EAAE,IAAI,KAAK,KAAK,OAAO,CAAC,IAAK,OAAO,QAAS,CAAC,EAAG,CAAC,CAAK,aAAa,cAAc,YAAY,CAAC,GAAG,MAAM,CAAC,OAAO,KAAK,QAAQ,MAAM,OAAQ,OAAO,CAAC,OAAO,SAAS,eAAe,KAAK,OAAO,CAAE,YAAY,SAAO,CAAC,OAAO,CAAC,KAAK,OAAOzC,WAA4H,iBAAiC,cAAc,QAAQ,CAAC,iBAAiB,CAAC,QAAQ,CAAC,MAAM,iBAAiB,oBAAoB,GAAM,QAAQ,KAAK,CAAC,OAAO,KAAK,MAAM,MAAM,kBAAkB,EAAG,WAAW,KAAK,KAAK,OAAO,CAAwC,OAApC,OAAO,KAAK,GAAG,EAAE,MAAM,CAAQ,KAAY,IAAI,aAAa,aAAa,KAAK,KAAK,MAAM,IAAI,OAAO,KAAK,KAAK,CAAC,OAAO,CAAC,EAAG,iBAAiB,KAAK,iBAAiB,QAAQ,OAAO,WAAW,MAAM,iBAAiB,EAAE,OAAO,MAAM,MAAM,iBAAiB,CAAC,cAAc,KAAK,CAAC,OAAO,IAAI,aAAa,aAAa,KAAK,cAAc,KAAK,MAAM,IAAI,MAAM,CAAC,CAAC,EAAG,aAAa,OAAO,OAAO,CAAC,IAAI,IAAI,aAAa,OAAO,KAAK,cAAc,OAAO,KAAK,MAAM,IAAI,MAAM,CAAC,CAAC,OAAO,KAAK,OAAO,OAAO,OAAO,IAAI,aAAa,IAAI,EAAG,iBAAiB,MAAM,MAAM,iBAAiB,CAAC,iBAAiB,EAAE,ICrYl7S,SAAS,UAAU,KAAK,IAAI,KAAK,GAAG,CAAC,OAAO,KAAP,CAAa,IAAI,GAAG,OAAO,KAAK,IAAI,IAAI,GAAG,OAAO,IAAI,KAAK,KAAK,IAAI,IAAK,GAAE,OAAO,KAAK,KAAK,GAAG,IAAI,IAAK,GAAE,OAAO,MAAM,KAAK,GAAG,IAAI,IAAK,GAAE,OAAO,GAAG,IAAI,IAAK,GAAE,MAAO,IAAO,SAAS,2BAA2B,KAAK,IAAI,CAAC,IAAI,KAAK,KAAK,YAAY,IAAI,CAAC,KAAM,MAAK,CAAC,IAAI,KAAK,KAAK,UAAU,GAAG,CAAC,MAAM,KAAK,IAAI,KAAK,GAAG,MAAS,KAAK,KAAK,SAAS,KAAK,MAAM,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,aAAkB,KAAK,KAAO,OAAO,KAAM,SAAS,YAAY,KAAK,IAAI,KAAK,SAAS,CAAQ,IAAP,IAAI4C,KAAS,KAAK,MAAM,KAAK,KAAK,KAAK,EAAE,KAAK,MAAM,IAAI,KAAK,KAAK,OAAO,KAAK,GAAG,KAAK,IAAI,IAAI,KAAK,GAAG,MAAK,CAAC,IAAI,OAAO,CAAC,UAAU,gBAAgB,UAAU,KAAK,MAAM,EAAE,KAAK,KAAK,OAAO,GAAG,CAAC,OAAO,OAAO,KAAK,KAAK,OAAQ,IAAI,KAAK,SAAS,EAAE,SAAS,eAAe,GAAG,aAAa,IAAI,KAAK,KAAK,QAAQ,KAAK,OAAO,QAAQ,KAAK,QAAQ,QAAQ,KAAK,OAAW,gBAAgB,UAAU,KAAK,MAAM,GAAQ,QAAQ,MAAM,IAAI,KAAK,KAAK,EAAgC,MAAO,KAAK,OAAK,KAAK,SAAS,OAAO,CAAC,IAAI,MAAM,KAAK,MAAM,IAAI,KAAK,KAAK,CAAC,GAAG,CAAC,MAAM,OAAO,KAAK,KAAK,OAC15B,SAAS,YAAY,KAAK,KAAK,OAAO,MAAM,CAAC,IAAI,IAAI,KAAK,QAAQ,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,OAAO,OAAO,GAAG,QAAQ,WAAY,CAAC,IAAI,KAAK,GAAG,OAAO,EAAC,GAAG,CAAC,IAAI,aAAa,CAAC,OAAO,OAAQ,OAAO,CAAC,GAAG,OAAO,MAAM,IAAI,KAAK,GAAG,MAAM,CAAC,OAAO,OAAkD,GAAxC,IAAI,KAAK,GAAG,KAAK,EAAC,OAAO,KAAK,IAAI,KAAK,CAAI,CAAC,IAAI,aAAa,CAAC,OAAO,OAAO,KAAK,OAAO,EAAE,EAAG,SAAS,iBAAiB,KAAK,QAAQ,IAAE,QAAQ,OAAO,EAAE,CAAC,IAAI,IAAID,IAAE,KAAK,OAAOF,KAAG,EAAE,IAAEE,IAAE,OAAO,CAAC,GAAG,CAACA,IAAE,MAAO,GAAM,GAAG,CAACA,IAAE,KAAK,YAAY,CAAC,GAAG,QAAQF,MAAI,QAAQA,MAAIE,IAAE,KAAK,MAAO,GAAM,OAAM,MAAO,GA2Cnc,SAAS,SAAS,KAAK,CAAC,OAAO,KAAK,SAAS,KAAK,IAAI,cAAc,YAAY,CAAC,GAAG,KAAK,aAAa,SAAS,GAAG,CAAC,CAAE,SAAS,UAAU,KAAK,CAAC,IAAIC,KAAG,GAAG,CAAC,OAAO,QAAA,UAAQ,gBAAgB,oBAAoB,OAAO,EAAE,CAAC,cAAcG,UAAQ,MAAM,QAAQ,KAAS,OAAO,MAAM,QAAQ,OAAO,CAAC,IAAI,iBAAiB,OAAO,OAAO,OAAO,CAAC,OAAWhC,QAAMgC,UAAQ,MAAU,YAAY,EAAE,UAAU,EAAE,SAAS,SAAS,YAAY,OAAO,UAAU,WAAW,SAAS,CAAC,GAAG,CAAC,GAAA,KAAG,MAAM,IAAI,MAAM,OAAW,iBAAiB,UAAU,KAAM,KAAK,GAAiB,GAAd,OAAO,MAAM,CAAI,MAAM,GAAG,CAAC,IAAI,MAAM,OAAOZ,MAAI,UAAU,KAAK,MAAM,CAAC,WAAW,KAAK,MAAM,YAAY,CAAC,eAAgB,MAAM,GAAG,CAAC,YAAYA,KAAG,eAAgB,MAAM,GAAG,CAAC,UAAUA,KAAG,YAAa,MAAU,WAAW,6BAA6B,OAAO,CAAG,IAAI,KAAKpB,QAAMoB,MAAI,KAAK,QAAY,SAAS,MAAM,YAAY,GAAG,IAAI,OAAO,kBAAkB,QAAQ,eAAe,OAAO,IAAI,OAAO,SAAS,EAAE,CAAC,IAAI,MAAM,IAAI,YAAY,QAAQ,KAAK,QAAQ,KAAK,CAAK,OAAO,OAAO,IAAI,QAAQ,KAAK,MAAM,MAAM,OAAO,KAAM,OAAO,IAAI,QAAO,MAAM,aAAa,QAAQ,MAAM,MAAM,MAAM,CAAC,KAAK,IAAI,WAAW,MAAM,IAAI,QAAQ,MAAMY,UAAQ,CAAC,SAAS,QAAQ,MAAM,gBAAiB,CAAC,IAAI,QAAQ,OAAO,IAAI,KAAK,OAAO,MAAM,CAAC,IAAI,cAAc,EAAE,CAAC,eAAe,EAAE,CAAK,cAAcZ,MAAI,cAAcA,KAAG,GAAO,UAAU,EAAE,QAAQ,IAAI,KAAM,OAAO,IAAI,SAAY,eAAe,GAAG,OAAO,IAAI,eAAe,OAAO,MAAM,GAAM,OAAO,KAAK,QAAQ,kBAAiB,eAAe,cAAc,eAAe,MAAM,UAAU,OAAO,IAAI,QAAQ,cAAc,iBAAiB,CAAC,UAAU,cAAc,OAAO,QAAQ,OAAO,KAAK,OAAO,MAAM,EAAO,SAAS,MAAM,QAAQ,cAAc,eAAe,cAAc,CAA+N,GAAzN,eAAe,GAAG,UAAU,GAAG,UAAU,cAAc,QAAO,eAAe,cAAc,eAAe,MAAM,UAAU,MAAM,QAAQ,cAAc,iBAAiB,CAAC,cAAc,SAAS,CAAC,eAAe,SAAS,CAAI,cAAc,IAAI,UAAU,EAAE,CAAC,IAAI,KAAK,aAAa,KAAK,CAAC,KAAK,aAAa,KAAK,cAAc,eAAe,EAAE,cAAc,OAAO,EAAE,IAAI,MAAM,KAAK,KAAK,MAAO,KAAK,SAAS,KAAK,cAAc,eAAe,IAAI,MAAM,iBAAiB,IAAI,CAAG,UAAU,KAAK,KAAK,CAAC,WAAW,KAAK,SAAS,CAAE,SAAS,aAAa,KAAK,CAAC,OAAO,UAAU,WAAW,UAAU,CAAC,IAAI,WAAW,EAAE,MAAM,UAAU,OAAO,EAAE,KAAK,cAAc,GAAG,OAAO,IAAI,KAAK,UAAU,kBAAkB,KAAK,CAAC,GAAG,CAAC,OAAO,KAAK,MAAM,MAAM,KAAK,QAAQ,QAAQ,OAAO,MAAQ,cAAc,KAAK,KAAK,SAAS,UAAU,IAAC,WAAW,WAAW,OAAO,KAAK,OAAO,eAAe,OAAO,SAAS,KAAK,UAAU,WAAW,QAAQ,WAAW,EAAI,SAAS,eAAe,UAAU,WAAW,OAAK,IAAE,KAAK,GAAG,KAAK,WAAW,CAAC,IAAI,cAAc,EAAE,CAAC,eAAe,EAAE,CAAC,KAAM,UAAU,OAAOM,KAAG,cAAc,KAAK,UAAU,KAAK,CAAC,CAAC,eAAe,KAAK,WAAW,KAAK,CAACI,OAAK,KAAK,CAAE,UAAU,KAAK,SAASE,UAAQ,MAAM,MAAM,cAAc,eAAe,GAAG,KAAK,WAAW,GAAG,CAAC,CAAC,WAAW,KAAK,KAAKF,OAAK,CAAE,SAAS,SAAS,KAAK,UAAU,WAAW,QAAQ,WAAW,EAAE,MAAM,CAAC,GAAG,YAAY,CAAC,IAAI3B,OAAK,CAAC,SAAS,YAAY,YAAY,CAAC,MAAM,MAAM,CAACA,OAAK,CAAC,OAAO,MAAM,CAAC,CAACA,OAAK,CAAE,GAAG,WAAW,GAAG,CAAC,IAAI,MAAM,CAAC,SAAS,UAAU,WAAW,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,OAAO,MAAM,CAAC,CAAC,MAAM,CAAE,OAAO,IAAI,KAAK,KAAK,UAAU,WAAW,QAAQ,MAAM,CAAE,SAAS,eAAe,QAAQ,SAAS,CAAC,IAAI,KAAK,OAAO,MAAM,CAAK,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,KAAK,IAAI,gBAAoB,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,KAAK,IAAI,IAAI,OAAO,KAAK,IAAI,QAAQ,KAAK,IAAI,QAAQ,CAAC,IAAI,UAAU,KAAK,KAAK,GAAG,KAAK,IAAI,UAAU,WAAW,EAAE,CAAC,OAAO,KAAK,KAAK,OAAO,MAAM,MAAM,OAAO,KAAK,KAAK,MAAM,EAAE,MAAM,EAAE,KAAK,MAAM,CAAC,SAAU,IAAI,SAAS,KAAK,IAAI,UAAU,GAAG,UAAU,GAAG,SAAS,QAAQ,KAAK,MAAM,SAAS,MAAM,IAAI,aAAa,KAAK,IAAI,cAAc,EAAE,EAAM,UAAU,KAAK,MAAkB,IAAZ,KAAK,MAAM,CAAO,KAAK,IAAI,UAAS,CAAC,GAAG,KAAK,KAAK,EAAG,GAAG,KAAK,MAAM,GAAG,cAAc,OAAO,MAAM,UAAc,KAAK,IAAI,gBAAe,cAAc,GAAG,KAAK,MAAM,CAAE,MAAM,UAAU,MAAM,UAAU,MAAM,aAAkG,OAAjF,SAAS,GAAG,MAAM,WAAS,OAAO,KAAK,KAAK,OAAO,MAAM,MAAM,OAAO,KAAK,MAAa,OAAO,KAAK,EAAE,OAAO,IAAK,GAAG,SAAS,aAAa,YAAY,QAAQ,MAAM,CAAC,GAAG,CAAC,GAAA,KAAG,MAAM,IAAI,MAAM,OAAqB,GAAd,OAAO,MAAM,CAAI,MAAM,GAAGiB,KAAG,cAAc,CAAC,IAAI,WAAW,MAAM,GAAG,KAAK,EAAE,CAAC,IAAI,OAAO,OAAO,KAAK,KAAK,GAAG,KAAM,OAAO,IAAI,QAAO,MAAM,aAAa,YAAY,QAAQ,MAAM,CAAE,QAAQ,EAAE,OAAO,WAAW,QAAQ,EAAE,OAAO,IAAI,YAAY,QAAQ,EAAE,OAAO,MAAM,YAAY,QAAQ,EAAE,OAAOA,UAAY,MAAM,GAAI,YAAYA,KAAY,MAAM,KAAI,UAAUA,MAAI,OAAO,MAAO,IAAI,SAAS,EAAE,CAAC,UAAU,EAAE,CAAC,KAAM,OAAO,IAAI,GAAE,SAAS,KAAK,OAAO,EAAE,KAAK,aAAa,EAAE,SAAS,UAAU,GAAG,CAAC,IAAI,OAAW,KAAK,SAA+B,SAAS,OAAO,UAAU,GAAG,SAAS,GAAG,OAAO,GAAE,OAAO,IAAI,KAAKpB,QAAM,KAAK,OAAO,SAAS,SAAS,CAAC,UAAU,SAAS,CAAC,OAAO,CAAgD,SAAS,SAAS,YAAY,KAAK,CAAC,GAAG,CAAC,YAAY,aAAa,gBAAgB,YAAY,KAAK,MAAM,YAAY,MAAO,GAAE,IAAI,KAAK,cAAc,IAAI,KAAK,CAAC,GAAG,MAAM,KAAK,CAAC,KAAK,EAAE,IAAI,IAAI,SAAS,KAAK,SAAS,CAAC,GAAG,MAAM,MAAM,aAAa,EAAE,iBAAiB,MAAM,CAAC,KAAK,EAAE,MAAO,MAAM,SAAS,YAAY,MAAM,CAAE,cAAc,IAAI,KAAK,KAAK,CAAE,OAAO,KAAM,SAAS,aAAa,YAAY,SAAS,UAAU,KAAK,GAAG,MAAM,OAAO,MAAM,OAAO,CAAC,IAAI,MAAM,EAAE,IAAI,IAAI0B,IAAE,KAAKA,IAAE,GAAG,MAAI,OAAO,SAAS,YAAY,SAASA,KAAG,CAAC,IAAI,SAAS,KAAK,KAAK,MAAM,IAAI,EAAE,CAAK,cAAc,EAAE,CAAC,eAAe,EAAE,CAAC,SAAS,OAAO,UAAU,WAAW,MAAM,IAAI,OAAO,CAAC,IAAI,IAAIA,IAAE,MAAMA,IAAE,KAAK,CAAC,IAAI,UAAUA,IAAE,WAAW,WAAWA,KAAG,UAAU,SAAS,YAAY,UAAUA,KAAG,CAAK,IAAJ,MAASA,IAAE,IAAI,MAAI,CAAC,IAAI,SAAS,SAAS,YAAY,UAAUA,KAAG,CAAC,GAAG,UAAU,UAAU,SAAS,MAAM,WAAW,SAAU,GAAGA,KAAG,UAAU,EAAE,CAAC,GAAG,UAAU,SAAS,CAAC,IAAI,KAAK,UAAU,WAAW,OAAO,KAAK,SAAS,KAAK,UAAU,EAAE,KAAK,SAAS,OAAO,WAAW,WAAW,OAAO,CAAC,SAAU,cAAc,KAAK,UAAU,WAAW,KAAM,CAAC,IAAI,QAAQ,WAAWA,IAAE,GAAG,UAAUA,IAAE,GAAG,OAAO,WAAW,cAAc,KAAK,aAAa,YAAY,UAAU,WAAW,UAAUA,IAAE,WAAW,QAAQ,KAAK,OAAO,CAAC,CAAE,eAAe,KAAK,WAAW,OAAO,MAAM,EAAwC,OAArC,OAAO,SAAS,UAAU,KAAK,GAAG,EAAE,EAAQ,OAAO,QAAQ,cAAc,eAAe,OAAO,CAiCrwM,SAAS,WAAW,KAAK,CAAC,OAAO,MAAM,MAAM,UAAU,SAAS,IAAI,WAAW,MAAM,KAAK,MAAM,UAAU,OAAO,CAAyqI,SAAS,WAAW,QAAQ,KAAK,GAAG,CAAC,IAAI,IAAI,SAAS,QAAQ,CAAC,GAAG,MAAM,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,OAAO,MAAM,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,EAAG,MAAO,GAAG,SAAS,SAAS,IAAI,OAAO,KAAK,MAAM,UAAU,IAAI,CAAC,GAAG,OAAO,KAAK,CAAC,IAAI,KAAK,IAAI,OAAO,OAAO,GAAG,MAAM,KAAK,IAAI,MAAM,OAAO,KAAK,KAAK,CAAC,CAAC,UAAU,KAAK,KAAK,IAAI,EAAG,SAAS,YAAY,OAAO,CAAC,GAAG,CAAC,MAAM,OAAO,MAAM,EAAE,GAAG,OAAO,QAAQ,CAAC,cAAe,CAAC,OAAO,MAAK,IAAIA,IAAE,EAAEI,OAAK,OAAO,KAAK,IAAI,EAAE,KAAW,IAAIA,OAAK,UAAUJ,KAAG,OAAO,KAAQ,OAAK,KAAK,MAAM,IAAII,OAAK,SAASJ,KAAG,QAAQ,KAAK,IAA5F,OAAsG,IAAI,IAAII,OAAK,SAASJ,KAAG,EAAE,IAAI,OAAO,SAAS,MAAM,OAAO,KAAK,KAAK,YAAY,OAAO,CAAC,IAAI,GAAG,OAAO,KAAM,EAAE,GAAG,GAAG,KAAK,KAAK,MAAK,GAAG,EAAE,GAAG,GAAG,IAAI,SAAS,EAAE,CAAC,UAAU,EAAE,CAAC,SAAS,IAAI,OAAO,GAAG,SAAS,UAAU,YAAY,CAAC,IAAI,KAAK,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAO,SAAS,KAAK,KAAK,KAAK,MAAM,GAAG,KAAK,KAAK,IAAI,EAAE,KAAK,KAAK,KAAK,GAA0L,OAAvL,SAAS,KAAK,SAAS,KAAK,QAAQ,CAAC,MAAM,GAAG,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,EAAE,KAAK,KAAK,GAAG,KAAK,CAAC,CAAC,UAAU,KAAK,KAAK,YAAY,CAAC,SAAS,IAAI,EAAE,GAAG,GAAG,KAAK,SAAS,UAAU,YAAY,CAAQ,IAAI,KAAK,KAAK,SAAS,UAAU,OAAO,CAAE,OAAK,SAASA,KAAG,MAAM,EAAE,EAAE,OAAO,SAAS,KAAK,EAAE,IAAI,OAAO,CAAC,IAAI,IAAI,EAAE,EAAE,GAAG,MAAM,IAAI,OAAO,WAAW,KAAK,KAAK,CAC/9H,SAAS,YAAY,MAAM,OAAO,CAAC,IAAI,KAAK,KAAK,QAAQ,OAAO,IAAI,IAAIA,IAAE,EAAE,EAAE,EAAEA,IAAE,MAAM,OAAO,MAAI,CAAC,IAAI,QAAQ,MAAMA,IAAE,GAAG,GAAG,MAAM,MAAMA,KAAG,KAAK,KAAK,EAAE,QAAQ,OAAO,IAAI,CAAC,IAAI,EAAE,QAAQ,GAAG,GAAG,EAAE,MAAM,MAAM,MAAS,EAAE,IAAI,UAAqB,OAAK,QAAQ,KAAK,OAAO,OAAO,EAAI,EAAE,KAAK,SAAS,KAAK,GAAG,IAAI,MAAM,EAAE,KAAK,QAAQ,CAAI,EAAE,GAAG,OAAM,KAAK,OAAO,EAAE,EAAE,EAAE,IAAI,MAAM,MAAM,EAAE,GAAG,CAAC,EAAU,EAAE,GAAG,MAAO,KAAK,KAAK,IAAI,MAAM,MAAM,EAAE,GAAG,CAAO,KAAK,OAAO,IAAI,EAAE,GAAI,OAAO,QAAS,SAAS,iBAAiB,EAAE,EAAE,KAAK,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,IAAI,GAAM,IAAI,GAAM,IAAI,KAAS,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,MAAM,IAAI,EAAE,OAAO,IAAI,IAAI,EAAE,IAAI,GAAG,EAAE,IAAI,KAAS,MAAM,IAAI,EAAE,OAAO,IAAI,IAAI,EAAE,IAAI,GAAG,EAAE,IAAI,KAAK,GAAG,KAAK,IAAI,CAAC,IAAI,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,MAAM,MAAM,GAAG,CAAI,MAAM,KAAI,OAAO,KAAK,IAAI,MAAM,MAAM,IAAI,CAAC,CAA4B,GAA1B,IAAI,KAAK,IAAI,MAAM,MAAM,CAAI,KAAK,IAAI,MAAS,OAAO,MAAS,KAAkB,IAAI,GAAM,MAAxB,IAAI,IAA8B,OAAO,MAAS,KAAkB,IAAI,GAAM,MAAxB,IAAI,IAA4B,OAAO,OAAQ,SAAS,eAAe,OAAO,OAAO,CAAC,IAAI,OAAO,EAAE,CAAC,IAAI,GAAG,CAAC,IAAI,MAAM,QAAQ,OAAO,CAAC,IAAI,SAAS,KAAK,MAAM,QAAQ,MAAM,QAAQ,GAAG,KAAK,GAAG,OAAO,SAAS,MAAM,KAAK,OAAW,KAAK,KAAK,IAAI,KAAK,KAAK,SAAS,CAAC,GAAG,KAAK,IAAI,KAAK,GAAG,OAAO,CAAC,GAAG,MAAM,QAAQ,CAAC,IAAI,QAAQ,MAAM,QAAQ,IAAI,GAAG,IAAI,MAAM,EAAE,KAAK,IAAI,EAAE,GAAG,IAAI,CAAC,CAAK,QAAQ,iBAAiB,OAAO,QAAQ,KAAK,GAAG,CAAC,IAAI,IAAIA,IAAE,EAAE,KAAK,MAAM,MAAI,CAAC,IAAI,KAAKA,KAAG,QAAQ,OAAO,IAAI,KAAK,GAAG,QAAQA,KAAG,KAAyI,GAAjI,IAAI,MAAK,OAAO,KAAK,IAAI,aAAa,KAAK,IAAI,MAAM,KAAK,CAAC,SAAS,KAAK,MAAM,MAAM,KAAK,UAAU,KAAK,IAAI,KAAK,KAAK,QAAQ,CAAC,CAAI,KAAK,MAAM,KAAK,QAAQA,KAAG,SAAU,OAAO,KAAK,IAAI,aAAa,KAAK,GAAG,MAAM,KAAK,CAAC,SAAS,KAAK,MAAM,UAAU,KAAK,UAAU,KAAK,IAAI,QAAQ,KAAK,QAAQ,CAAC,CAAG,OAAO,6XAzJ3kH,oBAAoB,KAAS,WAAW,EAAM,MAAM,KAAK,CAAC,YAAY,KAAK,GAAG,CAAC,KAAK,KAAK,KAAK,KAAK,GAAG,KAAU,SAAS,KAAK,CAOlI,IAAI,MAAM,CAAC,GAAG,KAAK,QAAQ,MAAU,WAAW,yCAAyC,CAAyD,OAArD,OAAO,OAAO,aAAW,MAAM,SAAS,MAAM,MAAM,EAAQ,MAAM,CAAC,IAAI,OAAO,MAAM,KAAK,CAAC,OAAO,SAAS,IAAK,GAAE,KAAK,CAAC,KAAK,OAAO,EAChO,YAAY,OAAO,EAAE,CAAC,CAAC,KAAK,GAAG,aAAa,KAAK,QAAQ,CAAC,CAAC,OAAO,QAAQ,KAAK,YAAY,OAAO,kBAAkB,CAAC,MAAU,MAAM,uDAAuD,KAAO,SAAS,SAAS,IAAI,SAAS,CAAC,YAAY,KAAK,IAAI,MAAM,IAAI,CAAC,CAAC,CAAC,SAAS,SAAS,IAAI,SAAS,CAAC,YAAY,KAAK,IAAI,MAAM,IAAI,CAAC,CAAC,CAAC,SAAS,MAAM,IAAI,SAAS,CAAC,YAAY,KAAK,IAAI,MAAM,IAAI,CAAC,CAAC,CAAC,SAAS,YAAY,IAAI,SAAS,CAAC,QAAQ,GAAK,CAAC,CAAC,SAAS,UAAU,IAAI,SAAS,CAAC,QAAQ,GAAK,CAAC,CAAC,SAAS,QAAQ,IAAI,SAAS,CAAC,QAAQ,GAAK,CAAC,CAAK,YAAY,KAAK,CAAC,YAAY,KAAK,QAAQ,OAAO,CAAC,KAAK,KAAK,KAAK,KAAK,QAAQ,QAAQ,KAAK,OAAO,SAAc,QAAwB,OAAO,OAAO,KAAK,CAAK,SAAS,KAAK,CACzsB,OAAO,OAAO,KAAK,CAAC,IAAI,MAAM,KAAK,OAAO,KAAK,MAAM,OAAuB,OAAO,OAAO,KAAK,CAAC,QAAY,OAAO,KAAK,IAAI,EAAE,IAAI,KAAK,QAAQ,EAAE,IAAI,KAAK,MAAM,EAAE,IAAI,KAAK,MAAM,KAAK,EAAE,GAAO,KAAK,IAAI,SAAS,KAAK,MAAM,GAAG,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,KAAK,MAAM,KAAI,IAAI,OAAO,KAAK,MAA4C,GAAjC,MAAM,QAAQ,IAAI,GAAC,IAAI,IAAI,KAAK,EAAI,IAAI,CAAC,GAAG,IAAI,GAAG,QAAQ,MAAU,WAAW,6CAA6C,CAAC,MAAM,IAAI,GAAG,IAAI,IAAI,IAAK,OAAO,KAEhc,KAAK,KAAK,CAAC,OAAO,KAAK,MAAM,KAAK,IAClC,IAAI,OAAO,CAAC,OAAO,KAAK,MAAM,GAAG,EACjC,IAAI,WAAW,CAAC,OAAO,KAAK,MAAM,GAAG,EACrC,IAAI,SAAS,CAAC,OAAO,KAAK,MAAM,GAAG,EAEnC,IAAI,aAAa,CAAC,OAAO,KAAK,MAAM,GAAG,EAEvC,GAAG,OAAK,CAAC,GAAG,OAAOW,QAAM,SAAS,CAAC,GAAG,KAAK,MAAMA,OAAK,MAAO,GAAK,IAAI,MAAM,KAAK,KAAK,SAAS,MAAM,CAAC,OAAO,MAAM,MAAM,QAAQA,OAAK,CAAC,GAAG,GAAO,OAAO,KAAK,IAAIA,OAMjK,OAAO,MAAM,IAAI,CAAC,IAAI,OAAuB,OAAO,OAAO,KAAK,CAAC,IAAI,IAAI,QAAQ,IAAI,IAAI,IAAIA,UAAQ,KAAK,MAAM,IAAI,CAAC,OAAOA,QAAM,IAAI,MAAM,MAAO,OAAM,CAAC,IAAI,IAAI,OAAO,KAAK,KAAK,SAAS,MAAM,CAACX,IAAE,GAAGA,KAAG,OAAO,OAAO,OAAO,GAAG,MAAI,CAAC,IAAI,MAAM,OAAOA,IAAE,EAAE,KAAK,KAAK,OAAOA,MAAI,GAAG,MAAM,OAAO,QAClS,YAAY,OAAK,MAAM,KAAG,MAAM,EAAE,CAAC,KAAK,KAAKW,OAAK,KAAK,MAAM,MAAM,KAAK,GAAGjB,KAAG,KAAK,MAAM,QAAS,SAAS,KAAK,IAAI,SAAS,GAAmB,OAAO,OAAO,KAAK,CAAC,EAAE,EAAE,CAAK,QAAQ,KAAK,CAG1L,OAAO,GAAG,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC,IAAI,IAAI,QAAQ,KAAK,MAAM,CAAC,IAAI,SAAS,KAAK,IAAI,IAAI,UAAU,MAAM,CAAC,IAAI,IAAI,OAAO,KAAK,CAAI,MAAK,AAAa,WAAS,OAAO,OAAO,EAAE,CAAC,KAAK,MAAM,CAAC,SAAS,IAAI,GAAG,IAAI,IAAI,IAAK,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,KAAK,SAAS,KAAK,GAAG,KAAK,MAAM,CAAC,KAAK,CAAE,OAAO,IAAI,QAAQ,SAAS,CAEnU,YAAY,QAAM,CAAC,KAAK,MAAMpB,QAAM,IAAI,IAAI0B,IAAE,EAAEA,IAAE1B,QAAM,OAAO,MAAI,GAAGA,QAAM0B,KAAG,IAAIA,IAAE,MAAU,WAAW,8EAA8E,GAAQ,WAA2B,IAAI,QAAY,gBAAgC,IAAI,SAAsB,SAAS,UAAU,CAAC,UAAU,UAAU,eAAkB,GAAG,iBAAiB,UAAU,UAAU,iBAAoB,GAAG,mBAAmB,UAAU,UAAU,aAAgB,GAAG,eAAe,UAAU,UAAU,eAAkB,GAAG,mBAAoB,AAAW,WAAS,EAAE,CAAE,CAAK,KAAK,KAAK,CAC3kB,UAAU,CAAC,IAAI,QAAQ,KAAK,KAAK,SAAS,QAAQ,CAAC,GAAG,SAAS,CAAC,QAAQ,QAAQ,OAAO,QAAQ,KAAK,UAAU,CAAC,IAAI,SAAS,GAAG,IAAI,IAAI,MAAM,KAAK,SAAS,CAAC,IAAI,IAAI,GAAG,UAAU,CAAI,MAAQ,WAAS,UAAU,KAAI,UAAU,KAAM,OAAO,KAAK,KAAK,MAAe,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,CAAC,KAAK,KAAK,QAAQ,KAAK,UAAU,KAAK,KAAK,KAAK,CAAC,KAAK,KAAK,OAAO,SAAS,OAAO,IAAI,SAAS,IAAI,IAAzI,SAG1P,OAAO,KAAK,EAAE,CAAC,OAAO,IAAI,WAAW,KAAK,QAAQ,KAAK,CAGvD,SAAS,IAAI,KAAK,EAAE,KAAK,EAAE,CAAC,IAAI,MAAM,WAAW,IAAI,KAAK,EAAE,KAAK,QAAY,OAAO,IAAI,WAAW,MAAM,CAA2D,OAA1D,OAAO,OAAO,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,OAAO,MAAM,CAAQ,OAE3K,IAAI,SAAS,CAAC,OAAO,IAAI,SAAS,KAAK,EAAE,EAAE,KAAK,CAShD,QAAQ,IAAI,KAAK,EAAE,CAAC,IAAI,KAAK,YAAY,WAAW,IAAI,KAAK,EAAE,KAAK,QAAQ,IAAI,KAAK,GAAM,CAA2B,OAA1B,WAAW,IAAI,KAAK,KAAK,CAAQ,KAK7H,aAAa,IAAI,KAAK,EAAE,CAAC,IAAI,KAAK,YAAY,gBAAgB,IAAI,KAAK,EAAE,KAAK,QAAQ,IAAI,KAAK,GAAK,CAAgC,OAA/B,gBAAgB,IAAI,KAAK,KAAK,CAAQ,KAK3I,QAAQ,KAAK,CAAC,GAAG,CAAC,MAAM,MAAM,KAAK,EAAE,GAAG,KAAK,QAAQ,KAAS,KAAK,KAAK,MAAM,EAAE,MAAM,KAAK,SAAS,kBAAkB,EAAE,IAAI,IAAI,EAAE,KAAK,OAAO,KAAK,SAAS,iBAAiB,GAAG,CAAC,IAAI,QAAQ,GAAM,GAAG,EAAE,MAAM,IAAI,EAAE,IAAI,OAAO,CAAC,MAAM,EAAE,KAAK,aAAa,MAAM,EAAE,GAAG,IAAO,CAAC,GAAG,EAAE,YAAY,CAAC,SAAS,QAAQ,GAAM,KAAW,SAAS,QAAQ,MAAM,CAAC,EAAE,KAAK,cAAa,MAAM,EAAE,CAAI,GAAE,aAAa,EAA3E,CAAkF,GAAG,CAAC,EAAE,QAAQ,CAAC,OAAO,QAAQ,KAE7a,KAAK,KAAK,CAAC,OAAO,KAAK,QAA6B,KAAK,MAAM,KAAK,MAAM,KAAK,IAAI,IAAK,GAAzD,KAAK,KAAK,KAAK,KAAK,CAGnD,IAAI,YAAY,CAAC,IAAI,OAAO,EAAE,CAAC,GAAG,KAAK,MAAM,IAAI,IAAIN,QAAM,KAAK,MAAM,OAAO,KAAK,CAAC,CAACA,KAAG,KAAK,MAAMA,MAAI,CAAC,CAAC,OAAO,OAG/G,QAAQ,OAAO,EAAE,CAAC,CAAC,OAAO,KAAK,SAAS,QAAQ,EAAE,KAAK,aAAa,SAAS,KAAK,KAAK,SAAS,KAAK,UAAU,EAAE,KAAK,SAAS,OAAO,EAAE,KAAK,QAAQ,SAAS,UAAU,SAAS,IAAI,KAAK,KAAK,KAAK,SAAS,UAAU,OAAO,KAAK,WAAW,CAAC,OAAO,YAAY,SAAS,UAAU,SAAS,IAAI,KAAK,SAAS,KAAK,SAAS,UAAU,OAAO,EAAE,CAEjV,OAAO,MAAM,KAAK,CAAC,OAAO,UAAU,KAAK,CACzC,YAAY,KAAK,SAAS,UAAU,OAAO,MAAM,CAAmG,GAAlG,KAAK,KAAK,KAAK,KAAK,SAAS,SAAS,KAAK,UAAU,UAAU,KAAK,OAAO,OAAO,KAAK,MAAM,KAAQ,OAAO,MAAM,OAAO,CAAC,KAAK,MAAsB,OAAO,OAAO,KAAK,CAAC,IAAI,GAAG,CAAC,KAAK,SAAS,MAAM,KAAK,MAAM,OAAO,MAAM,SAAS,KAAK,KAAK,IAAI,SAAU,KAAK,MAAM,IAAI,KAAK,SAAS,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAK,iBAAiB,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,KAAK,MAAM,GAAI,IAAI,OAAO,CAAC,OAAO,KAAK,OAAO,KAAK,MAAM,GAAI,IAAI,KAAK,CAAC,OAAO,KAAK,OAAO,KAAK,MAAM,GAAI,IAAI,MAAM,CAAC,OAAO,KAAK,OAAO,KAAK,MAAM,GAAI,IAAI,KAAK,CAAC,OAAO,KAAK,MAAO,MAAM,CAAC,KAAK,OAAO,EAAG,MAAM,CAAC,OAAO,IAAI,iBAAiB,KAAK,OAAO,KAAK,MAAM,CAAE,YAAY,OAAO,MAAM,CAAC,KAAK,OAAO,OAAO,KAAK,MAAM,QAAa,WAAW,KAAK,CAC5uB,IAAI,MAAM,CAAC,OAAO,SAAS,KAC3B,UAAU,CAAC,IAAI,OAAO,EAAE,CAAC,IAAI,IAAI,MAAM,EAAE,MAAM,KAAK,OAAO,QAAS,OAAO,KAAK,KAAK,YAAY,MAAM,CAAC,CAAC,MAAM,KAAK,OAAO,MAAM,GAAI,OAAO,OAAO,KAAK,IAAI,CAC5J,YAAY,MAAM,CAAC,IAAIA,KAAG,KAAK,OAAO,OAAO,SAAS,KAAK,OAAO,MAAM,GAAO,KAAK,KAAK,IAAI,MAAMA,MAAI,OAAO,KAAK,KAAgF,GAAxE,KAAK,KAAK,OAAO,EAAE,CAAC,KAAK,UAAQ,OAAO,KAAK,UAAU,OAAO,EAAC,OAAO,EAAK,UAAU,MAAM,OAAO,OAAO,IAAI,SAAS,EAAE,CAAC,KAAM,MAAM,UAAU,SAAS,KAAK,KAAK,YAAY,MAAM,CAAC,CAAC,MAAM,KAAK,OAAO,MAAM,GAAI,OAAO,OAAO,IAAI,SAAS,KAAK,IAAI,CAAC,IAClX,UAAU,WAAW,SAAS,IAAI,IAAI,KAAK,CAAC,GAAG,CAAC,QAAQ,KAAK,KAAK,GAAG,IAAI,IAAIM,IAAE,WAAWA,KAAG,YAA2B,UAAU,KAAK,IAAI,OAAOA,IAAE,GAAG,OAAOA,IAAE,GAAG,GAAE,KAAKA,IAAK,IAAI,IAA7E,IAAE,OAAOA,IAAE,IAA4E,OAAO,KACpM,MAAM,OAAO,KAAK,KAAK,CAAC,IAAI,EAAE,KAAK,OAAW,KAAK,IAAI,YAAY,KAAK,OAAO,CAAC,IAAI,EAAE,IAAI,IAAIA,IAAE,OAAO,EAAE,EAAEA,IAAE,MAAM,CAAC,KAAK,KAAK,EAAE,OAAK,KAAK,KAAK,EAAE,OAAK,KAAK,IAAI,GAAG,KAAK,KAAK,EAAE,OAAK,KAAK,KAAK,KAAK,EAAE,OAAK,OAAO,IAAI,KAAK,IAAI,IAAI,GAAG,CAAE,OAAO,IAAI,WAAW,KAAK,IAAI,KAAK,IAAI,CAC9Q,YAAY,OAAO,OAAO,IAAI,CAAC,KAAK,OAAO,OAAO,KAAK,OAAO,OAAO,KAAK,IAAI,MAAqkC,SAAS,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,KAAK,MAAM,KAAM,IAAI,MAAM,CAAC,OAAO,KAAK,MAAM,KAAK,KAAM,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,KAAK,MAAM,OAAQ,UAAU,IAAE,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC,IAAI,IAAI,OAAO,OAAO,CAAC,IAAI,GAAG,CAAC,SAAS,WAAW,OAAO,MAAM,EAAE,IAAI,EAAE,SAAS,OAAO,GAAGA,KAAG,EAAE,KAAG,IAAI,CAAC,IAAI,KAAK,SAASA,KAAG,MAAM,UAAUA,KAAG,OAAO,KAAS,aAAU,KAAK,IAAI,MAAM,MAAM,KAAK,OAAO,CAAU,IAAG,gBAAgB,WAAW,CAAC,GAAG,KAAK,SAAS,eAAe,SAAS,IAAI,MAAM,KAAK,UAAU,EAAE,KAAK,OAAO,OAAO,IAAI,IAAI,MAAM,KAAK,CAAC,GAAG,MAAM,GAAG,OAAO,IAAI,WAAW,IAAI,cAAc,OAAO,KAAKA,IAAE,MAAM,CAAC,KAAK,MAAM,SAAU,KAAK,SAAS,kBAAkB,CAAC,KAAK,KAAK,aAAa,SAAS,KAAK,CAAC,CAAC,IAAI,QAAQ,GAAG,EAAE,KAAK,SAAS,eAAe,KAAK,QAAQ,QAAQ,KAAK,KAAK,SAAS,QAAQ,GAAG,CAAC,QAAQ,QAAQ,OAAO,IAAI,SAAS,QAAQ,KAAK,MAAMA,IAAE,OAAO,CAAC,IAAI,MAAM,IAAI,SAAS,KAAK,MAAMA,IAAE,OAAO,CAAC,OAAO,KAAK,SAAS,kBAAkB,CAAC,MAAM,KAAK,YAAY,MAAM,MAAM,UAAU,IAAI,EAAE,KAAK,SAAS,OAAO,EAAE,EAAE,IAAI,IAAI,KAAK,GAA4L,GAAtL,KAAK,SAAS,kBAAkB,CAAC,OAAO,KAAK,cAAwB,AAA2C,IAAxC,OAAO,OAAO,EAAI,OAAO,MAAM,IAAW,IAAI,EAAE,GAAG,OAAO,QAAQ,MAAM,SAAS,OAAO,OAAO,OAAO,QAAW,CAAC,QAAO,OAAO,MAAO,IAAI,YAAY,CAAC,OAAO,KAAK,UAAU,EAAE,EAAE,EAAE,EAAE,CAAE,IAAI,WAAW,CAAC,OAAO,KAAK,UAAU,KAAK,MAAM,SAAS,OAAO,EAAE,GAAG,EAAE,EAAE,CAAE,WAAW,IAAI,CAAC,OAAO,KAAK,UAAU,EAAE,EAAE,IAAI,EAAE,CAAE,YAAY,IAAI,CAAC,OAAO,KAAK,UAAU,KAAK,MAAM,SAAS,OAAO,EAAE,GAAG,IAAI,GAAG,CAAE,MAAM,IAAI,KAAK,KAAK,EAAE,CAAC,IAAI,QAAQ,GAAG,EAAE,KAAK,SAAS,kBAAkB,QAAQ,KAAK,MAAM,KAAK,SAAS,QAAQ,GAAG,QAAQ,QAAQ,CAAC,IAAI,KAAK,IAAI,KAAK,KAAK,IAAI,GAAG,CAAC,KAAK,MAAM,QAAQ,QAAS,IAAI,KAAK,EAAE,MAAM,KAAK,KAAK,QAAQ,KAAK,EAAE,IAAI,KAAK,GAAG,MAAM,OAAO,IAAI,SAAS,QAAQ,KAAK,QAAQ,QAAQ,GAAG,KAAK,KAAK,KAAK,GAAG,KAAK,CAAG,OAAO,KAAK,UAAU,EAAE,EAAE,IAAI,KAAK,KAAK,CAAE,uBAAuB,CAAC,IAAI,IAAI,KAAK,KAAM,IAAI,KAAK,aAAa,IAAI,SAAQ,IAAI,IAAI,QAAQ,OAAO,IAAK,IAAI,QAAQ,CAAC,OAAO,KAAK,QAAQ,KAAK,QAAQ,uBAAuB,CAAC,KAAM,IAAI,aAAa,CAAC,OAAO,KAAK,SAAS,KAAK,OAAO,EAAE,KAAK,QAAQ,UAAU,KAAK,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,KAAM,IAAI,aAAa,CAAC,OAAO,KAAK,SAAS,KAAK,OAAO,EAAE,KAAK,QAAQ,UAAU,KAAK,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,KAAM,OAAO,KAAK,EAAE,CAAC,OAAO,IAAI,WAAW,KAAK,KAAK,CAAE,IAAI,MAAM,CAAC,OAAO,KAAK,MAAO,QAAQ,CAAC,OAAO,KAAK,MAAO,QAAQ,IAAI,KAAK,EAAE,CAAC,OAAO,YAAY,KAAK,IAAI,KAAK,GAAM,CAAE,aAAa,IAAI,KAAK,EAAE,CAAC,OAAO,YAAY,KAAK,IAAI,KAAK,GAAK,CAAE,2BAA2B,IAAI,CAAC,OAAO,2BAA2B,KAAK,IAAI,CAAE,SAAS,KAAK,OAAO,KAAK,MAAM,KAAK,CAAC,IAAI,EAAE,YAAY,KAAK,KAAK,OAAO,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,KAAM,YAAY,KAAK,OAAO,KAAK,MAAM,KAAK,CAAC,OAAO,YAAY,KAAK,KAAK,OAAO,MAAM,CAC90H,UAAU,CAAC,OAAO,KAAK,MAAM,UAAU,CAAE,IAAI,MAAM,CAAC,OAAO,KAAM,aAAa,QAAQ,CAAC,OAAO,iBAAiB,KAAK,QAAQ,CAAE,YAAY,MAAM,KAAK,MAAM,QAAQ,CAAC,KAAK,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,KAAK,QAAQ,UAAwjB,cAAc,KAAK,CAAC,YAAY,OAAO,OAAO,MAAM,MAAM,CAAC,KAAK,OAAO,OAAO,KAAK,OAAO,OAAO,KAAK,MAAM,MAAM,KAAK,MAAM,QAAa,WAAW,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,KAAM,IAAI,MAAM,CAAC,OAAO,KAAK,QAAQ,MAAM,KAAK,QAAQ,OAAO,OAAO,KAAK,MAAM,GAAI,IAAI,IAAI,CAAC,OAAO,KAAK,QAAQ,MAAM,KAAK,QAAQ,OAAO,OAAO,KAAK,MAAM,GAAI,MAAM,IAAI,IAAI,KAAK,CAAC,GAAG,CAAC,QAAQ,KAAK,QAAY,MAAM,OAAO,UAAU,KAAK,MAAM,EAAE,OAAO,OAAO,KAAK,MAAM,GAAG,IAAI,IAAI,KAAK,QAAQ,MAAM,KAAK,CAAC,OAAO,MAAM,EAAE,KAAK,IAAI,WAAW,KAAK,QAAQ,KAAK,MAAM,CAAE,IAAI,YAAY,CAAC,OAAO,KAAK,MAAM,EAAE,EAAE,EAAE,CAAE,IAAI,WAAW,CAAC,OAAO,KAAK,MAAM,GAAG,EAAE,EAAE,CAAE,WAAW,IAAI,CAAC,OAAO,KAAK,MAAM,EAAE,IAAI,EAAE,CAAE,YAAY,IAAI,CAAC,OAAO,KAAK,MAAM,GAAG,IAAI,GAAG,CAAE,MAAM,IAAI,KAAK,KAAK,EAAE,CAAC,GAAG,KAAK,SAAS,eAAe,OAAO,KAAK,GAAG,CAAC,QAAQ,KAAK,QAAY,MAAM,OAAO,UAAU,KAAK,MAAM,EAAE,OAAO,OAAO,KAAK,MAAM,GAAG,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,QAAQ,MAAM,KAAK,CAAC,OAAO,MAAM,EAAE,KAAK,IAAI,WAAW,KAAK,QAAQ,KAAK,MAAM,CAAE,IAAI,QAAQ,CAAC,OAAO,KAAK,SAAS,KAAK,QAAQ,OAAO,uBAAuB,CAAE,gBAAgB,IAAI,CAAC,OAAO,KAAK,QAAQ,KAAK,KAAK,QAAQ,OAAO,UAAU,KAAK,QAAQ,MAAM,IAAI,IAAI,EAAE,EAAE,CAAE,IAAI,aAAa,CAAC,GAAG,CAAC,QAAQ,KAAK,QAAY,MAAM,OAAO,OAAO,KAAK,MAAM,GAA2I,OAArI,OAAO,KAAK,QAAQ,OAAO,OAAO,KAAK,QAAQ,MAAM,GAAG,OAAO,OAAO,QAAe,IAAI,WAAW,KAAK,QAAQ,KAAK,QAAQ,MAAM,CAAQ,KAAK,gBAAgB,EAAE,CAAE,IAAI,aAAa,CAAC,GAAG,CAAC,QAAQ,KAAK,QAAY,YAAY,KAAK,QAAQ,KAAK,QAAQ,MAAM,EAAE,EAA6D,OAAxD,KAAK,OAAO,YAAmB,KAAK,gBAAgB,GAAG,CAAQ,IAAI,WAAW,KAAK,QAAQ,KAAK,QAAQ,OAAO,UAAU,YAAY,KAAK,MAAM,GAAG,EAAE,EAAE,CAAC,CAAE,OAAO,KAAK,EAAE,CAAC,OAAO,IAAI,WAAW,KAAK,KAAK,CAAE,IAAI,MAAM,CAAC,OAAO,KAAM,QAAQ,CAAC,IAAI,SAAS,EAAE,CAAC,UAAU,EAAE,CAAI,CAAC,QAAQ,KAAK,QAAY,OAAO,KAAK,MAAM,EAAE,KAAK,OAAO,OAAO,KAAK,MAAM,GAAG,GAAG,KAAK,OAAO,CAAC,IAAI,KAAK,OAAO,OAAO,KAAK,MAAM,GAAG,SAAS,KAAK,OAAO,MAAM,OAAO,KAAK,KAAK,CAAC,CAAC,UAAU,KAAK,EAAE,CAAE,OAAO,IAAI,KAAK,KAAK,KAAK,SAAS,UAAU,KAAK,GAAG,KAAK,KAAK,CAAE,QAAQ,IAAI,KAAK,EAAE,CAAC,OAAO,YAAY,KAAK,IAAI,KAAK,GAAM,CAAE,aAAa,IAAI,KAAK,EAAE,CAAC,OAAO,YAAY,KAAK,IAAI,KAAK,GAAK,CAAE,2BAA2B,IAAI,CAAC,OAAO,2BAA2B,KAAK,IAAI,CAC3+F,UAAU,CAAC,OAAO,KAAK,QAAQ,OAAO,YAAY,KAAK,MAAM,CAAE,SAAS,KAAK,OAAO,KAAK,MAAM,KAAK,CAAC,IAAI,EAAE,YAAY,KAAK,KAAK,OAAO,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,KAAM,YAAY,KAAK,OAAO,KAAK,MAAM,KAAK,CAAC,OAAO,YAAY,KAAK,KAAK,OAAO,MAAM,CAAE,IAAI,MAAM,CAAC,OAAO,KAAM,aAAa,QAAQ,CAAC,OAAO,iBAAiB,KAAK,QAAQ,CAAE,YAAY,QAAQ,QAAQ,MAAM,CAAC,KAAK,QAAQ,QAAQ,KAAK,QAAQ,QAAQ,KAAK,MAAM,MAAM,KAAK,KAAK,QAAQ,OAAO,IAAI,MAAM,QAAQ,OAAO,OAAO,UAAe,WAAW,KAAK,CAC1gB,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,KAAM,UAAU,KAAK,CAA+F,OAA1F,MAAkB,KAAK,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,KAAK,GAAU,IAArF,GAA2F,SAAS,MAAM,KAAK,CAAC,KAAK,MAAM,MAAM,GAAG,CAAC,MAAM,QAAQ,KAAK,OAA0I,MAAnI,MAAK,KAAK,MAAM,OAAO,IAAI,MAAM,OAAO,OAAO,QAAQ,KAAK,KAAK,MAAM,OAAO,OAAO,MAAM,GAAG,KAAK,GAAG,MAAM,OAAO,OAAO,MAAM,GAAU,GAAM,MAAM,KAAK,CAA2H,OAAtH,KAAqB,gBAAgB,UAAU,KAAK,OAAO,KAAY,KAAK,UAAU,KAAK,GAAE,KAAK,OAAO,KAAK,QAAe,KAAK,SAAS,KAAK,MAAM,KAAK,KAAK,EAApJ,GAC7Y,UAAU,CAAC,OAAO,KAAK,OAAO,KAAK,OAAO,OAAO,YAAY,KAAK,MAAM,CAAC,KAAK,MAAM,UAAU,CAC9F,WAAW,IAAI,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,OAAO,OAAO,KAAK,MAAM,KAAK,MAAM,UAAU,IAAI,EAAE,KAAK,MAAM,MAAM,SAAS,OAAO,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,KAAK,CAAC,CAAC,GAAG,CAAC,QAAQ,KAAK,OAAW,MAAM,OAAO,UAAU,KAAK,MAAM,EAAE,OAAO,OAAO,KAAK,MAAM,GAAG,IAAI,IAAI,KAAK,OAAO,MAAM,KAAK,CAAqD,OAAjD,MAAM,EAAS,IAAM,KAAK,MAAM,KAAK,KAAK,MAAM,CAAQ,KAAK,SAAS,MAAM,EAE/V,YAAY,CAAC,OAAO,KAAK,WAAW,EAAE,EAAE,EAAE,CAC1C,WAAW,CAAC,OAAO,KAAK,WAAW,GAAG,EAAE,EAAE,CAC1C,WAAW,IAAI,CAAC,OAAO,KAAK,WAAW,EAAE,IAAI,EAAE,CAC/C,YAAY,IAAI,CAAC,OAAO,KAAK,WAAW,GAAG,IAAI,GAAG,CAKlD,MAAM,IAAI,KAAK,KAAK,KAAK,KAAK,CAAoE,OAA/D,KAAK,OAAiE,KAAK,SAAS,eAAe,GAAM,KAAK,WAAW,EAAE,IAAI,KAAK,CAAjH,KAAK,MAAM,KAAK,MAAM,MAAM,IAAI,KAAK,KAAK,CAAC,CACjG,QAAQ,CAAC,GAAG,CAAC,KAAK,OAAO,OAAO,KAAK,UAAU,KAAK,KAAK,SAAS,iBAAiB,KAAK,MAAM,QAAQ,KAAK,MAAM,OAAO,CAAC,GAAG,KAAK,MAAM,OAAO,OAAO,KAAK,SAAS,KAAK,MAAM,KAAK,CAAC,CAAC,IAAI,OAAO,KAAK,KAAK,SAAS,iBAAiB,KAAK,OAAO,OAAO,KAAK,OAAO,OAAO,uBAAuB,CAAkB,MAAjB,MAAK,OAAO,KAAY,KAAK,UAAU,OAAO,CAChV,QAAQ,IAAI,CAAC,GAAG,CAAC,KAAK,OAAO,OAAO,KAAK,MAAM,QAAc,KAAK,MAAM,KAAK,MAAM,MAAM,EAAE,KAAK,KAAK,MAAM,QAAQ,UAAU,KAAK,MAAM,MAAM,IAAI,IAAI,EAAE,EAAE,KAAK,KAAK,CAAC,CAA9G,GAA+G,GAAG,CAAC,QAAQ,KAAK,OAAO,EAAE,KAAK,MAAM,OAAO,EAAE,GAAG,IAAI,EAAE,CAAC,IAAI,YAAY,EAAE,EAAE,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,KAAK,OAAO,YAAY,OAAO,KAAK,SAAS,OAAO,UAAU,YAAY,KAAK,MAAM,GAAG,EAAE,EAAE,CAAC,KAAM,CAAC,IAAI,MAAM,OAAO,OAAO,KAAK,MAAM,GAAG,GAAG,OAAO,EAAE,EAAE,OAAO,OAAO,OAAO,OAAO,OAAO,KAAK,MAAM,GAAG,IAAI,OAAO,KAAK,SAAS,MAAM,CAAE,OAAO,EAAE,EAAE,KAAK,MAAM,KAAK,OAAO,OAAO,UAAU,KAAK,OAAO,MAAM,IAAI,IAAI,EAAE,EAAE,KAAK,KAAK,CAAC,CAAC,GAC9kB,aAAa,CAAC,OAAO,KAAK,QAAQ,EAAE,CACpC,aAAa,CAAC,OAAO,KAAK,QAAQ,GAAG,CAAE,WAAW,IAAI,CAAC,IAAI,MAAM,OAAO,CAAC,QAAQ,KAAK,GAAG,OAAO,CAAC,GAAG,IAAI,MAAM,KAAK,MAAM,OAAO,OAAO,OAAO,OAAO,MAAO,QAAY,IAAI,IAAIA,IAAE,EAAEA,IAAE,KAAK,MAAM,MAAI,GAAG,OAAO,OAAO,OAAOA,IAAE,GAAG,KAAK,MAAM,MAAO,IAAQ,CAAC,MAAM,QAAQ,cAAe,CAAC,MAAM,QAAQ,QAAQ,KAAK,OAAQ,KAAK,OAAO,CAAC,MAAM,QAAQ,QAAQ,OAAQ,GAAG,MAAM,GAAG,IAAI,IAAI,GAAG,MAAM,IAAI,EAAE,IAAI,EAAE,GAAG,OAAO,MAAM,SAAS,OAAO,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,MAAM,OAAO,MAAM,SAAS,IAAI,GAAG,KAAK,KAAK,SAAS,kBAAkB,iBAAiB,YAAY,CAAC,MAAM,KAAK,aAAa,SAAS,MAAM,CAAC,MAAO,GAAQ,MAAO,GAAM,KAAK,IAAI,MAAM,CAAC,GAAG,OAAO,KAAK,WAAW,IAAI,EAAE,EAAE,CAAC,MAAO,GAAK,OAAO,CAAC,GAAG,KAAK,QAAQ,IAAI,CAAC,MAAO,GAAK,GAAG,KAAK,WAAW,IAAI,EAAE,CAAC,KAAK,QAAQ,CAAC,MAAO,IAKtwB,KAAK,MAAM,GAAK,CAAC,OAAO,KAAK,KAAK,EAAE,MAAM,CAI1C,KAAK,MAAM,GAAK,CAAC,OAAO,KAAK,KAAK,GAAG,MAAM,CAG3C,OAAO,IAAI,KAAK,EAAE,CAAC,MAAM,KAAK,MAAM,KAAK,KAAK,KAAK,EAAE,KAAK,MAAM,IAAI,KAAK,KAAK,OAAO,KAAK,GAAG,KAAK,IAAI,IAAI,KAAK,GAAG,OAAS,KAAK,QAAQ,GAAO,KAAM,KAAK,WAAW,EAAE,IAAI,KAAK,GAAG,OAAO,KAE1L,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,OAAO,OAAO,KAAK,MAAM,IAAI,MAAM,KAAK,WAAW,OAAO,KAAK,MAAM,EAAE,GAAG,OAAO,MAAM,SAAS,KAAK,OAAQ,KAAK,IAAI,IAAI,MAAM,KAAK,MAAM,EAAE,KAAK,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,GAAG,EAAE,OAAO,MAAM,CAAC,GAAG,OAAO,KAAK,MAAM,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,MAAM,KAAM,MAAM,KAAK,MAAM,EAAE,GAAK,IAAI,IAAIA,IAAE,MAAMA,IAAE,KAAK,MAAM,OAAO,MAAI,OAAO,IAAI,WAAW,KAAK,OAAO,OAAO,KAAK,MAAMA,KAAG,CAAC,MAAO,MAAK,WAAW,IAAI,WAAW,KAAK,OAAO,OAAO,KAAK,MAAM,CAGpe,IAAI,MAAM,CAAC,OAAO,KAAK,OAAO,KAAK,KAAK,MAAM,MAI9C,QAAQ,MAAM,MAAM,CAAC,IAAI,IAAI,MAAM,IAAI,CAAC,IAAI,UAAU,GAAM,GAAG,KAAK,KAAK,aAAa,MAAM,KAAK,GAAG,GAAM,CAAC,GAAG,KAAK,YAAY,CAAC,CAAC,QAAQ,SAAc,KAAK,KAAK,cAAY,UAAU,IAAM,KAAW,WAAW,OAAM,MAAM,KAAK,CAAC,UAAU,KAAK,KAAK,YAAe,MAAK,aAAa,EAAtF,CAA6F,GAAG,CAAC,MAAM,OAAO,KAAK,QAAQ,CAAC,QAAQ,UAAU,KAGlV,aAAa,QAAQ,CAAC,GAAG,CAAC,KAAK,OAAO,OAAO,iBAAiB,KAAK,KAAK,QAAQ,CAAC,GAAG,CAAC,QAAQ,KAAK,OAAO,CAAC,MAAA,SAAO,OAAO,IAAI,IAAI,IAAIA,IAAE,QAAQ,OAAO,EAAE,EAAE,KAAK,MAAM,OAAO,EAAEA,KAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,OAAO,iBAAiB,KAAK,KAAK,QAAQA,IAAE,CAAC,IAAI,KAAK1B,QAAM,OAAO,OAAO,KAAK,MAAM,KAAK,GAAG,CAAC,KAAK,YAAY,CAAC,GAAG,QAAQ0B,MAAI,QAAQA,MAAI,KAAK,KAAK,MAAO,GAAM,OAAM,MAAO,GAC7W,YAAY,KAAK,KAAK,EAAE,CAAiF,GAAhF,KAAK,KAAK,KAAK,KAAK,OAAO,KAAK,KAAK,MAAM,EAAE,CAAC,KAAK,MAAM,EAAE,KAAK,WAAW,KAAQ,gBAAgB,SAAU,KAAK,UAAU,KAAK,KAAM,CAAC,KAAK,MAAM,KAAK,QAAQ,OAAO,KAAK,OAAO,KAAK,QAAQ,IAAI,IAAI,EAAE,KAAK,QAAQ,EAAE,EAAE,EAAE,QAAQ,KAAK,MAAM,QAAQ,EAAE,MAAM,CAAC,KAAK,WAAW,KAAK,KAAK,SAAS,KAAK,MAAM,IAAk3J,cAA8B,IAAI,QAA45C,YAAY,KAAK,CAAC,UAAU,OAAO,MAAM,MAAM,CAAC,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,CAAK,OAAM,KAAK,IAAI,IAAI,OAAO,MAAsB,IAAI,IAAI,CAAC,MAAM,IAAI,MAAM,MAAM,CAAE,UAAU,OAAO,MAAM,CAAC,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,CAAC,OAAO,OAAO,MAAM,IAAI,MAAM,CACj3N,IAAI,KAAK,MAAM,CAAI,gBAAgB,WAAW,KAAK,UAAU,KAAK,QAAQ,OAAO,KAAK,MAAM,MAAM,CAAS,gBAAgB,UAAS,KAAK,IAAI,IAAI,KAAK,KAAK,MAAM,CACjK,IAAI,KAAK,CAAC,OAAO,gBAAgB,WAAW,KAAK,UAAU,KAAK,QAAQ,OAAO,KAAK,MAAM,CAAC,gBAAgB,SAAS,KAAK,IAAI,IAAI,KAAK,KAAK,CAAC,IAAK,GACjJ,UAAU,OAAO,MAAM,CAAI,OAAO,OAAO,KAAK,UAAU,OAAO,OAAO,OAAO,OAAO,MAAM,MAAM,CAAM,KAAK,IAAI,IAAI,OAAO,KAAK,MAAM,CAErI,UAAU,OAAO,CAAC,OAAO,OAAO,OAAO,KAAK,UAAU,OAAO,OAAO,OAAO,OAAO,MAAM,CAAC,KAAK,IAAI,IAAI,OAAO,KAAK,CAAE,aAAa,CAAC,KAAK,IAAoB,IAAI,UAAe,aAAa,KAAK,CAIhM,IAAI,WAAW,CAAC,OAAO,KAAK,KAAK,GAAG,EAEpC,IAAI,SAAS,CAAC,OAAO,KAAK,KAAK,GAAG,EAMlC,OAAO,QAAQ,KAAK,UAAU,EAAE,CAAC,QAAQ,GAAM,CAAC,IAAI,OAAO,CAAC,IAAI,aAAa,EAAE,KAAK,OAAO,KAAK,EAAE,GAAM,QAAQ,CAAC,CAAC,IAAI,IAAI,KAAK,UAAa,EAAE,GAAG,KAAK,QAAO,OAAO,KAAK,EAAE,CAAC,OAAO,OAGnL,OAAO,aAAa,UAAU,QAAQ,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,OAAO,OAAO,UAAU,IAAI,OAAO,EAAE,CAAK,GAAG,EAAE,MAAM,UAAU,OAAO,UAAU,GAAG,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,IAAI,GAAG,KAAK,CAAC,IAAI,MAAM,GAAG,QAAQ,OAAO,QAAQ,IAAI,KAAS,QAAQ,MAAM,MAAM,MAAM,IAAI,GAAG,QAAQ,KAAK,OAAO,KAAM,OAAO,MAAM,KAAK,SAAQ,CAAC,IAAI,IAAI,MAAM,GAAG,KAAK,IAAI,MAAM,SAAS,IAAI,IAAI,IAAI,CAAC,IAAI,MAAM,KAAK,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,KAAK,IAAI,IAAI,GAAG,QAAQ,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,IAAI,aAAa,MAAM,IAAI,IAAI,KAAK,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,CAAC,MAAM,CAA0B,GAArB,KAAI,OAAO,KAAK,IAAI,CAAI,MAAM,GAAG,QAAQ,MAAM,MAAM,GAAG,UAAU,OAAO,UAAU,MAAM,KAAM,GAAG,CAAC,MAAM,MAAM,IAAI,MAAM,IAAI,IAAI,MAAM,IAAI,MAAM,IAAK,OAAO,OAI/qB,YAAY,KAAK,GAAG,KAAK,OAAO,UAAU,GAAM,QAAQ,GAAM,CAAC,KAAK,KAAK,KAAK,KAAK,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,OAAO,OAAO,KAAK,MAAM,UAAU,EAAE,IAAI,QAAQ,EAAE,KAAU,OAAO,KAAK,CAQtL,WAAW,MAAM,UAAU,OAAO,CAAwK,OAApK,OAAO,OAAO,WAAS,MAAM,IAAI,YAAY,MAAM,EAAC,OAAQ,OAAmC,OAAO,OAAO,OAAO,IAAI,GAAG,IAAI,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE,EAAE,CAAC,CAAhG,CAAC,IAAI,MAAM,EAAE,MAAM,OAAO,CAAC,CAA6E,KAAK,YAAY,MAAM,WAAW,EAAE,CAAC,OAAO,CAC7P,MAAM,MAAM,UAAU,OAAO,CAAC,IAAI,MAAM,KAAK,WAAW,MAAM,UAAU,OAAO,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,SAAS,CAAC,GAAG,KAAK,OAAO,QAAa,YAAY,KAAK,CAAC,IAAI,QAAQ,CAAC,OAAO,KAAK,OAAO,OAAQ,MAAM,KAAK,CAAC,OAAO,KAAK,OAAO,MAAM,KAAK,CAAE,IAAI,YAAY,CAAC,MAAO,GAAO,KAAK,KAAK,GAAG,CAAC,OAAO,KAAK,OAAO,MAAM,KAAK,GAAG,CAAE,YAAY,SAAO,CAAC,KAAK,OAAOV,WAAiI,WAAW,KAAK,CAAC,YAAY,OAAO,MAAM,QAAQ,OAAO,OAAO,CAAgG,GAA/F,KAAK,OAAO,OAAO,KAAK,MAAM,MAAM,KAAK,QAAQ,QAAQ,KAAK,OAAO,OAAO,KAAK,OAAO,OAAU,CAAC,OAAO,QAAQ,OAAO,KAAK,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,MAAU,WAAW,qCAAqC,KAAK,UAAU,OAAO,CAAC,GAAQ,cAAc,KAAK,CAAC,YAAY,OAAO,UAAU,OAAO,MAAM,MAAM,OAAO,KAAK,CAAC,KAAK,OAAO,OAAO,KAAK,UAAU,UAAU,KAAK,OAAO,OAAO,KAAK,MAAM,MAAM,KAAK,MAAM,MAAM,KAAK,OAAO,OAAO,KAAK,KAAK,KAAK,KAAK,MAAM,EAAE,KAAK,OAAO,EAAE,GAAQ,aAAa,IAAI,SAAS,CAAC,QAAQ,GAAK,CAAC,CAAK,WAAW,KAAK,CAAC,SAAS,CAAC,GAAG,KAAK,UAAU,CAAC,IAAI,MAAM,KAAK,UAAU,SAAS,CAAC,GAAG,CAAC,MAAM,OAAO,KAA+D,GAA1D,KAAK,UAAU,KAAK,KAAK,SAAS,MAAM,KAAK,YAAY,CAAI,KAAK,WAAW,KAAK,IAAI,IAAI,UAAU,KAAK,MAAM,OAAO,MAAM,OAAO,KAAK,UAAU,CAAE,GAAG,KAAK,WAAW,KAAK,MAAM,OAAO,CAAC,IAAI,OAAO,KAAK,SAAuK,OAA3J,KAAK,WAAW,OAAK,OAAO,IAAI,KAAK,OAAO,KAAK,OAAO,SAAS,OAAO,UAAU,OAAO,OAAO,OAAO,WAAW,OAAO,CAAC,CAAC,aAAa,KAAK,UAAU,CAAC,CAAC,CAAC,EAAQ,OAAQ,IAAI,MAAM,KAAK,MAAM,KAAK,WAAW,KAAK,MAAM,MAAM,SAAS,CAAC,GAAG,KAAK,CAAC,KAAK,YAAY,IAAI,MAAM,OAAO,OAAuB,OAAO,OAAO,KAAK,CAAC,MAAM,OAAO,MAAM,CAAC,MAAM,SAAS,QAAQ,IAAI,IAAI,YAAY,KAAK,MAAM,QAAQ,MAAM,OAAO,CAAC,MAAM,OAAO,MAAM,MAAO,OAAO,KAAM,IAAI,WAAW,CAAC,GAAG,KAAK,UAAU,MAAO,GAAE,IAAI,IAAI,KAAK,MAAM,OAAO,IAAI,IAAIU,IAAE,KAAK,UAAUA,IAAE,KAAK,MAAM,OAAO,MAAQ,KAAK,MAAMA,KAAG,OAAO,GAAG,KAAK,MAAI,IAAI,KAAK,IAAI,IAAI,KAAK,MAAMA,KAAG,MAAM,UAAU,EAAE,OAAO,IAAK,OAAO,IAAI,CAAoB,GAAnB,KAAK,UAAU,IAAO,KAAK,UAAU,KAAK,UAAU,OAAO,IAAI,MAAM,IAAI,IAAIA,IAAE,KAAK,UAAUA,IAAE,KAAK,MAAM,OAAO,MAAI,KAAK,MAAMA,KAAG,MAAM,OAAO,IAAI,CAAE,YAAY,CAAC,IAAI,eAAe,IAAIpB,iBAAe,KAAK,UAAU,CAAK,QAAQ,KAAS,QAAQ,KAAS,OAAO,IAAI,WAAW,IAAI,SAAS,KAAK,SAAS,KAAK,OAAO,GAAG,KAAK,EAAE,KAAK,CAAC,SAAS,iBAAiB,SAAS,aAAa,CAAC,KAAK,IAAI,IAAI,KAAK,UAAU,KAAK,WAAW,MAAM,OAAO,KAAK,KAAK,WAAW,CAAC,IAAI,MAAM,GAAK,MAAM,GAAG,eAAe,QAAQ,OAAO,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI,MAAM,QAAQ,OAAO,KAAK,GAAG,EAAE,KAAK,MAAM,OAAO,MAAM,EAAE,KAAK,IAAI,OAAO,IAAI,EAAE,MAAM,QAAQ,CAAC,GAAG,MAAM,IAAI,IAAI,KAAK,MAAM,MAAM,QAAQ,CAAC,IAAI,KAAK,EAAE,KAAK,MAAM,IAAI,GAAG,EAAE,GAAG,MAAM,IAAO,MAAM,OAAO,MAAM,IAAI,OAAO,IAAI,CAAC,QAAQ,OAAO,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG,GAAG,KAAK,EAAC,QAAQ,OAAO,KAAK,CAAC,KAAK,GAAG,CAAC,EAAG,MAAM,WAAe,UAAU,UAAU,WAAW,QAAQ,OAAO,OAAO,KAAK,OAAO,GAAG,EAAG,MAAM,WAAW,UAAW,CAAC,OAAO,KAAK,aAAa,OAAO,KAAK,OAAO,KAAK,KAAK,KAAK,KAAK,OAAO,KAAK,MAAM,EAAE,CAAK,OAAO,MAAK,YAAY,OAAO,CAAC,IAAI,UAAU,eAAe,WAAW,OAAO,KAAK,KAAK,OAAO,CAAC,GAAG,OAAO,KAAK,SAAS,WAAY,QAAQ,IAAI,cAAc,KAAK,OAAO,KAAK,QAAQ,UAAU,KAAK,MAAM,OAAO,OAAO,KAAK,OAAO,KAAK,QAAQ,KAAM,CAAC,IAAI,OAAO,YAAY,KAAK,OAAO,KAAK,SAAS,CAAC,IAAI,MAAM,OAAO,KAAK,OAAO,GAAG,CAAC,CAAC,CAAI,OAAO,QAAO,KAAK,MAAM,KAAK,IAAI,WAAW,KAAK,OAAO,KAAK,OAAO,WAAW,KAAK,MAAM,eAAe,UAAU,OAAO,CAAC,OAAO,CAAC,KAAK,QAAQ,KAAK,QAAQ,IAAI,GAAG,IAAI,MAAM,EAAE,KAAK,OAAO,KAAK,EAAE,GAAG,OAAO,KAAK,CAAC,CAAC,KAAK,OAAO,KAAK,OAAO,CAAC,CAAK,KAAK,QAA4B,OAAO,SAAO,QAAQ,CAAC,OAAO,MAAM,EAAE,KAAK,QAAQ,EAAvE,MAAM,SAA4E,UAAU,MAAM,QAAQ,UAAU,OAAO,IAAM,QAAQ,KAAK,MAAM,IAAI,MAAM,OAAO,KAAK,OAAO,GAAG,EAAI,MAAM,KAAK,MAAM,IAAG,QAAQ,OAAO,KAAK,MAAM,EAAE,GAAG,OAAO,OAAO,YAAY,CAAK,SAAQ,QAAQ,QAAW,SAAQ,QAAQ,aAAc,KAAW,QAAO,aAAa,EAAxB,CAA+B,GAAG,CAAC,OAAO,QAAQ,CAAC,MAAM,KAAK,GAAG,SAAS,CAAC,EAAE,QAAQ,MAAM,CAAC,IAAI,QAAQ,YAAY,KAAK,OAAO,QAAQ,OAAO,CAAI,QAAQ,QAAO,KAAK,MAAM,OAAO,QAAQ,MAAM,EAAE,IAAI,WAAW,QAAQ,OAAO,QAAQ,OAAO,WAAW,KAAK,MAAM,eAAe,QAAQ,OAAO,QAAQ,CAAC,QAAQ,CAAC,QAAQ,OAAO,IAAI,GAAG,IAAI,MAAM,EAAE,KAAK,QAAQ,MAAM,EAAE,GAAG,QAAQ,MAAM,CAAC,CAAC,QAAQ,OAAO,QAAQ,CAAC,CAAC,QAAQ,QAAQ,KAAS,SAAS,CAAC,EAAE,QAAQ,QAAM,QAAQ,QAAQ,QAAS,YAAY,OAAK,KAAK,MAAM,UAAU,OAAO,CAAC,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,KAAK,UAAU,UAAU,KAAK,OAAO,OAAO,KAAK,MAAM,EAAE,CAAC,KAAK,UAAU,EAAE,KAAK,SAAS,KAAK,KAAK,UAAU,KAAK,KAAK,UAAUwB,SAAquC,gBAAgB,KAAK,CACz3L,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,KAAKF,IAAE,IAAI,KAAK,OAAO,KAAM,CAAC,KAAK,MAAM,OAAO,KAAKA,KAAM,OAAO,IAAI,KAAK,OAAO,MAAMA,IAAE,EAAE,SAAS,eAAe,SAAS,eAAe,EAAW,OAAO,KAAK,GAAM,GAAC,KAAK,KAAK,IAAO,QAAQ,OAAO,CAA0B,GAAzB,KAAK,OAAO,OAAO,KAAK,CAAI,CAAC,KAAK,MAAM,KAAK,OAAO,KAAK,KAAK,QAAQ,OAAO,MAAM,KAAK,OAAO,KAAM,IAAI,IAAI,KAAK,KAAK,OAAO,OAAO,CAAC,GAAG,MAAM,OAAO,KAAK,MAAO,GAAK,GAAG,KAAK,SAAS,QAAQ,KAAK,UAAU,IAAI,GAAG,KAAK,SAAS,aAAa,KAAK,KAAK,KAAK,SAAS,QAAQ,MAAQ,MAAO,GAAO,YAAY,KAAK,OAAO,CAAC,KAAK,OAAO,OAAO,KAAK,KAAK,GAAM,KAAK,OAAO,KAAK,OAAO,SAAS,iBAAiB,SAAS,aAAa,GAAQtB,iBAAe,KAAK,CAAC,QAAQ,KAAK,CAAC,KAAM,KAAK,SAAS,KAAK,MAAM,KAAK,OAAM,KAAK,UAAU,CAAC,OAAO,KAAK,SAAS,KAAK,QAAQ,MAAM,KAAK,MAAM,KAAK,OAAO,KAAK,IAAI,KAAK,MAAM,QAAQ,KAAK,CAAE,UAAU,CAAC,IAAIuB,KAAgB,GAAb,KAAK,QAAW,KAAK,OAAO,KAAK,UAAU,OAAQ,KAAK,QAAQ,KAAK,MAAM,SAAU,CAAC,IAAI,KAAK,KAAK,QAAQ,KAAK,UAAU,KAAK,OAAO,KAAK,MAAU,KAAK,KAAK,KAAK,aAAa,EAAyB,KAAK,GAAG,KAAK,MAAM,IAAI,gBAAgB,KAAK,KAAK,CAAC,KAAK,OAAO,EAAG,WAAW,IAAI,OAAO,CAAC,IAAIA,KAAG,IAAI,OAAO,EAAE,CAAC,GAAG,KAAK,MAAM,CAAC,KAAK,MAAM,OAAO,OAAO,IAAI,EAAE,CAAC,IAAI,IAAI,KAAK,KAAK,MAAM,OAAO,KAAK,KAAK,KAAK,KAAK,OAAO,CAAC,IAAI,MAAU,KAAK,MAAoC,KAAK,SAAS,QAAQ,CAAC,GAAG,OAAO,MAAM,QAAQ,OAAQ,IAAI,IAAIH,IAAE,KAAK,MAAMA,IAAE,KAAK,UAAU,OAAO,MAAI,CAAC,IAAI,KAAK,KAAK,UAAUA,KAAG,GAAG,KAAK,MAAM,KAAK,GAAG,MAAS,KAAK,MAAM,KAAK,QAAQ,MAAK,OAAO,KAAK,CAAC,KAAK,IAAI,KAAK,KAAK,KAAK,OAAO,MAAM,CAAC,GAAK,OAAO,OAAQ,YAAY,UAAU,CAAC,IAAIG,KAAsD,GAAnD,KAAK,UAAU,UAAU,KAAK,MAAM,EAAE,KAAK,MAAM,EAAK,UAAU,OAAO,CAAC,IAAI,MAAM,KAAK,QAAQ,UAAU,GAAG,KAAK,MAAU,MAAM,KAAK,KAAK,aAAa,EAAyB,MAAM,GAAG,KAAK,MAAM,IAAI,gBAAgB,MAAM,KAAK,CAAC,MAAM,OAAO,MAAO,KAAK,QAAQ,KAAK,MAAM,UCtI7xC,SAAS,UAAU,EAAE,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,IAAE,MAAIK,KAAG,EAAER,KAAG,CAAE,SAAS,SAAS,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,IAAIA,IAAE,EAAEA,IAAE,MAAM,OAAO,MAAK,IAAI,IAAI,EAAE,EAAE,EAAE,KAAK,OAAO,EAAE,EAAE,IAAK,KAAK,KAAK,KAAK,GAAG,OAAO,MAAMA,KAAG,CAAC,CAAG,OAAO,KAAK,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAE,SAAS,UAAU,KAAK,CAAC,IAAI,OAAuB,OAAO,OAAO,KAAK,CAAC,IAAI,IAAI,QAAQ,KAAK,CAAC,IAAI,MAAM,KAAK,MAAU,MAAM,QAAQ,MAAM,GAAC,MAAM,CAAC,MAAM,EAAC,IAAI,IAAI,QAAQ,KAAK,MAAM,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,MAAM,OAAO,IAAI,GAAG,IAAI,GAAG,KAAK,OAAO,CAAC,KAAK,EAAE,MAAO,IAAI,EAAE,8BAA8B,KAAK,KAAK,CAAC,GAAG,CAAC,EAAE,MAAU,WAAW,iBAAiB,KAAK,CAA+E,GAA9E,OAAO,KAAK,EAAE,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,KAAK,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,OAAU,KAAK,KAAK,OAAO,MAAM,IAAI,KAAK,KAAK,OAAO,GAAG,KAAK,KAAK,QAAQ,MAAM,IAAI,CAAC,KAAK,EAAE,MAAO,GAAG,MAAM,IAAI,MAAU,WAAW,iBAAiB,KAAK,CAAC,KAAK,KAAK,MAAM,IAAI,CAAE,IAAI,KAAK,OAAO,OAAO,EAAE,MAAM,OAAO,MAAM,GAAG,CAAC,MAAM,MAAU,WAAW,iBAAiB,KAAK,CAAgE,OAAO,OAA7D,IAAI,KAAK,MAAM,KAAK,KAAK,EAAE,OAAO,MAAM,EAAE,KAAK,CAAC,KAAK,CAAoB,KAAK,OAAO,OAAO,EAAG,OAAO,aAAa,IAAI,OAAO,CAAgb,SAAS,eAAe,MAAM,QAAQ,CAAC,IAAI,IAAoB,OAAO,OAAO,KAAK,CAAC,IAAI,IAAI,SAAS,MAAO,GAAG,CAAC,MAAM,QAAQ,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,IAAI,MAAM,WAAW,IAAI,IAAI,OAAO,MAAM,IAAI,IAAI,IAAI,IAAI,MAAM,MAAO,GAAG,CAAC,MAAM,IAAI,MAAM,SAAS,EAAE,CAAC,MAAM,CAAC,MAAM,OAAO,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,OAAO,MAAO,IAAI,IAAI,OAAO,IAAI,IAAI,CAAC,IAAI,SAAS,IAAI,IAAI,IAAI,GAAG,SAAS,CAAC,IAAI,IAAI,IAAI,IAAI,SAAS,SAAS,OAAS,OAAO,KAAM,MAAM,CAAE,SAAS,cAAc,aAAa,MAAM,CAAC,IAAI,OAAO,KAAK,IAAI,IAAI,eAAe,aAAa,CAAC,IAAI,MAAM,YAAY,MAAM,MAAM,CAAI,QAAM,OAAO,OAAO,OAAO,IAAI,MAAM,OAAO,OAAO,OAAQ,SAAS,cAAc,KAAK,YAAY,SAAS,KAAK,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,QAAQ,IAAI,iBAAiB,KAAK,MAAM,QAAQ,YAAY,CAAC,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC,QAAQ,eAAe,KAAK,QAAQ,CAAC,KAAK,GAAG,GAAG,QAAQ,aAAa,CAAC,QAAQ,MAAM,GAAG,CAAu7D,SAAS,aAAa,KAAK,CAAC,IAAI,KAAK,KAAK,KAAK,KAAK,aAAa,CAAC,KAAM,MAAM,KAAK,SAAS,CAAC,KAAK,aAAa,KAAK,QAAQ,EAAC,KAAK,KAAK,KAAK,OAAO,MAAM,oRAnBl9J,CAAI,UAAU,EAAM,IAAI,KAAK,CAM9I,OAAO,OAAO,OAAO,CAAC,GAAG,QAA6C,KAAK,MAAU,MAAM,qCAAqC,CAAC,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC,CAAmB,GAAlB,IAAI,IAAI,KAAK,IAAI,CAAI,OAAO,IAAI,IAAI,MAAM,OAAO,IAAI,IAAI,IAAI,KAAK,GAAG,CAAC,OAAO,IAW1O,OAAO,gBAAgB,CAAC,IAAI,IAAI,IAAI,SAAS,MAAO,MAAS,IAAI,SAAS,QAAQ,IAAI,CAAC,GAAU,IAAW,SAAS,IAAI,IAAI,MAAM,IAAI,IAAI,SAAS,OAAO,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAEvL,YAAY,IAAI,OAAK,SAAS,CAAC,KAAK,IAAI,IAAI,KAAK,KAAKI,OAAK,KAAK,SAAS,SAAS,KAAK,GAAG,cAAmB,eAAe,EAAM,SAAS,KAAK,CAAC,OAAO,IAAI,OAAK,KAAK,CAAC,GAAG,CAAC,KAAK,OAAO,OAAOA,OAAK,IAAI,OAAO,KAAK,GAAG,UAAU,KAAK,IAAI,GAAG,MAAMA,QAAM,UAAU,KAAK,GAAG,SAAS,CAAC,CAAC,GAAG,OAAO,OAAO,OAAO,IAAI,IAAI,EAAE,CAAC,IAAI,IAAI,IAAI,IAAIA,OAAK,KAAK,CAAC,IAAI,IAAI,KAAK,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC,IAAI,QAAQ,SAAS,KAAK,CAAC,IAAI,IAAI,UAAUA,OAAK,IAAI,GAAG,CAAC,OAAO,SAAS,OAAO,IAAI,IAAI,UAAU,QAAQ,IAAI,KAAK,SAAS,IAAI,OAAO,OAAO,CAAC,CAAC,OAAO,IAAK,aAAa,CAAC,KAAK,UAAU,EAAE,CAAC,KAAK,GAAG,mBAAkpC,aAAa,IAAI,SAAa,KAAK,KAAK,CAAC,IAAI,QAAQ,CAAC,OAAO,KAAK,MAAM,EAAG,IAAI,SAAS,CAAC,OAAO,KAAK,MAAM,EAAG,KAAK,MAAM,CAAkG,MAA9F,CAAC,OAAO,MAAM,MAAM,KAAK,OAAO,KAAK,KAAK,MAAa,OAAM,MAAM,KAAK,KAAK,KAAK,MAAM,KAAK,CAAQ,OAAO,IAAI,OAAO,CAAC,OAAO,KAAK,QAAQ,KAAK,QAAQ,OAAO,EAAG,YAAY,MAAM,KAAK,QAAQ,KAAK,CAAC,KAAK,KAAK,MAAM,KAAK,KAAK,KAAK,KAAK,QAAQ,QAAQ,KAAK,KAAK,OAAQ,KAAK,MAAM,IAAI,KAAK,EAAE,CAAC,EAAE,KAAK,CAA83B,iBAAiB,KAAK,CAAC,UAAU,GAAG,IAAI,CAAI,KAAK,KAAK,QAAO,KAAK,MAAM,GAAG,CAAI,GAAG,KAAK,KAAG,KAAK,GAAG,IAAG,KAAK,MAAM,KAAM,MAAM,GAAG,CAAI,GAAG,KAAK,IAAI,KAAK,OAAM,KAAK,KAAK,KAAK,GAAG,GAAG,KAAK,MAAM,CAAE,eAAe,OAAO,KAAK,GAAG,eAAe,aAAa,CAAC,GAAG,CAAC,KAAK,KAAK,MAAM,GAAG,KAAK,OAAO,GAAG,OAAO,IAAI,KAAK,KAAK,OAAU,KAAK,QAAM,aAAa,KAAK,aAAa,OAAO,GAAG,CAAC,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC,EAAC,IAAI,IAAI,eAAmB,KAAK,aAAa,OAAO,EAAE,KAAK,MAAU,OAAO,cAAc,aAAa,KAAK,KAAK,CAAiJ,GAA7I,SAAW,MAAI,KAAK,KAAI,KAAK,OAAU,KAAK,MAAM,IAAE,iBAAiB,eAAe,IAAI,IAAI,SAAQ,KAAK,UAAU,KAAK,IAAI,KAAK,MAAM,CAAC,IAAI,CAAI,KAAK,OAAO,OAAO,IAAI,QAAQ,OAAO,MAAM,OAAO,KAAK,KAAK,SAAS,QAAQ,CAAC,GAAG,SAAS,QAAQ,QAAQ,CAAC,IAAI,MAAM,OAAO,KAAK,MAAM,QAAQ,QAAQ,GAAG,KAAK,MAAM,EAAE,CAAK,kBAAkB,KAAK,aAAa,OAAO,GAAG,CAAC,EAAE,OAAO,EAAE,MAAM,QAAQ,KAAK,KAAK,CAAC,CAAKpB,WAAS,OAAO,YAAY,CAAC,IAAI,IAAIgB,IAAE,EAAE,IAAI,OAAO,MAAI,CAAC,IAAI,KAAKA,IAAE,QAAQ,QAAQ,OAAO,QAAQ,QAAQA,KAAG,KAAS,QAAQ,KAAK,KAAK,KAAK,MAAM,IAAQ,UAAU,KAAK,IAAI,KAAK,IAAI,CAAC,QAAQ,KAAK,IAAI,GAAG,QAAQ,CAAC,GAAG,UAAU,SAAShB,WAAU,KAAM,OAAO,KAAK,UAAS,KAAK,eAAe,OAAO,UAAU,QAAQ,eAAe,aAAa,CAAC,KAAK,UAAU,KAAK,IAAI,QAAQ,OAAO,GAAG,CAAC,IAAI,CAAI,SAAO,IAAI,SAAS,CAAC,OAAO,aAAa,KAAS,GAAG,CAAC,MAAM,QAAQ,GAAG,MAAM,IAAI,KAAK,GAAG,MAAS,IAAI,OAAM,KAAK,eAAe,MAAM,QAAQ,CAAC,KAAK,IAAI,KAAK,KAAK,KAAK,MAAM,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC,GAAG,kBAAkB,CAAC,KAAK,UAAU,KAAK,IAAI,GAAG,IAAI,CAAC,IAAI,EAAMA,YAAS,OAAO,QAAQ,SAAU,OAAO,YAAY,CAAC,CAAI,UAAQ,eAAe,IAAG,EAAE,CAAC,GAAG,OAAO,IAAI,KAAK,SAAS,GAAG,OAAO,MAAM,GAAG,MAAM,KAAK,eAAe,OAAO,KAAK,GAAG,eAAe,aAAa,CAAC,KAAK,UAAU,KAAK,IAAI,GAAG,OAAO,GAAG,CAAC,IAAI,OAAQ,OAAO,aAAa,EAAC,OAAO,QAAQ,EAAG,YAAY,GAAG,aAAa,KAAK,CAAC,KAAK,GAAG,GAAG,KAAK,aAAa,aAAa,KAAK,KAAK,KAAK,KAAK,MAAM,KAAyK,EAAE,IAAI,OAAW,QAAQ,GAAG,CAAK,KAAK,GAAG,CAAK,SAAS,EAAE,KAAK,CAAK,aAAa,EAAE,KAAK,CAAK,QAAQ,GAAG,CAAK,OAAO,EAAE,QAAQ,CAAK,OAAO,EAAE,QAAQ,CAAK,QAAQ,GAAG,CAAK,QAAQ,EAAE,QAAQ,CAAK,QAAQ,GAAG,CAAK,SAAS,GAAG,CAAK,YAAY,GAAG,CAAK,QAAQ,EAAE,YAAY,CAAK,KAAK,GAAG,CAAK,KAAK,CAE92K,QAEA,YAAY,EAAE,QAAQ,CAEtB,aAAa,EAAE,QAAQ,CAEvB,WAAW,EAAE,QAAQ,CAErB,KAEA,aAAa,EAAE,KAAK,CAEpB,SAEA,QAAQ,EAAE,SAAS,CAEnB,aAEA,cAAc,EAAE,aAAa,CAE7B,UAAU,EAAE,KAAK,CAEjB,UAAU,EAAE,KAAK,CAEjB,UAAU,EAAE,KAAK,CAEjB,UAAU,EAAE,KAAK,CAEjB,QAEA,OAEA,UAAU,EAAE,OAAO,CAEnB,UAAU,EAAE,OAAO,CAEnB,eAAe,EAAE,OAAO,CAExB,OAEA,QAAQ,EAAE,OAAO,CAEjB,MAAM,EAAE,OAAO,CAEf,KAAK,EAAE,QAAQ,CAEf,OAAO,EAAE,QAAQ,CAGjB,OAAO,EAAE,QAAQ,CAEjB,MAAM,EAAE,QAAQ,CAEhB,IAAI,EAAE,QAAQ,CAEd,QAGA,KAAK,EAAE,QAAQ,CAEf,KAAK,EAAE,QAAQ,CAEf,KAAK,EAAE,QAAQ,CAEf,KAAK,EAAE,QAAQ,CAEf,SAAS,EAAE,QAAQ,CAEnB,gBAAgB,EAAE,QAAQ,CAE1B,eAAe,EAAE,QAAQ,CAEzB,kBAAkB,EAAE,QAAQ,CAG5B,cAAc,EAAE,QAAQ,CAExB,SAEA,cAAc,EAAE,SAAS,CAEzB,mBAAmB,EAAE,SAAS,CAE9B,cAAc,EAAE,SAAS,CAEzB,gBAAgB,EAAE,SAAS,CAE3B,gBAAgB,EAAE,SAAS,CAE3B,eAAe,EAAE,SAAS,CAE1B,mBAAmB,EAAE,SAAS,CAE9B,aAAa,EAAE,SAAS,CAExB,gBAAgB,EAAE,SAAS,CAE3B,YAGA,UAAU,EAAE,YAAY,CAExB,QAGA,aAAa,EAAE,QAAQ,CAGvB,cAAc,EAAE,QAAQ,CAGxB,MAAM,EAAE,QAAQ,CAGhB,MAAM,EAAE,QAAQ,CAEhB,QAEA,QAEA,SAAS,EAAE,QAAQ,CAEnB,SAAS,EAAE,QAAQ,CAEnB,SAAS,EAAE,QAAQ,CAEnB,SAAS,EAAE,QAAQ,CAEnB,SAAS,EAAE,QAAQ,CAEnB,SAAS,EAAE,QAAQ,CAEnB,iBAAiB,EAAE,QAAQ,CAE3B,KAAK,EAAE,QAAQ,CAEf,MAAM,EAAE,QAAQ,CAEhB,SAAS,EAAE,QAAQ,CAEnB,OAAO,EAAE,QAAQ,CAEjB,KAAK,EAAE,QAAQ,CAGf,UAAU,EAAE,QAAQ,CAGpB,cAAc,EAAE,QAAQ,CAExB,SAAS,GAAG,CAEZ,QAAQ,GAAG,CAEX,QAAQ,GAAG,CAEX,QAAQ,GAAG,CAEX,KAGA,aAAa,EAAE,KAAK,CAGpB,WAAW,EAAE,KAAK,CAGlB,sBAAsB,EAAE,KAAK,CAI7B,WAAW,IAAI,gBAAgB,CAI/B,SAAS,IAAI,gBAAgB,CAK7B,SAAS,IAAI,gBAAgB,CAI7B,SAAS,IAAI,gBAAgB,CAG7B,MAAM,IAAI,gBAAgB,CAO1B,QAAQ,IAAI,gBAAgB,CAAC,CAAsB,eAAe,CAAC,CAAC,IAAI,KAAK,KAAK,MAAM,WAAW,CAAC,CAAC,IAAI,KAAK,QAAQ,MAAM,cAAc,CAAC,CAAC,IAAI,KAAK,SAAS,MAAM,eAAe,CAAC,CAAC,IAAI,KAAK,OAAO,MAAM,aAAa,CAAC,CAAC,IAAI,KAAK,QAAQ,MAAM,cAAc,CAAC,CAAC,IAAI,KAAK,KAAK,MAAM,WAAW,CAAC,CAAC,IAAI,KAAK,KAAK,MAAM,WAAW,CAAC,CAAC,IAAI,KAAK,IAAI,MAAM,UAAU,CAAC,CAAC,IAAI,KAAK,UAAU,MAAM,gBAAgB,CAAC,CAAC,IAAI,KAAK,SAAS,MAAM,eAAe,CAAC,CAAC,IAAI,KAAK,QAAQ,MAAM,cAAc,CAAC,CAAC,IAAI,KAAK,QAAQ,MAAM,cAAc,CAAC,CAAC,IAAI,KAAK,OAAO,MAAM,aAAa,CAAC,CAAC,IAAI,KAAK,OAAO,MAAM,aAAa,CAAC,CAAC,IAAI,CAAC,KAAK,OAAO,KAAK,OAAO,KAAK,QAAQ,KAAK,OAAO,CAAC,CAAC,MAAM,cAAc,CAAC,CAAC,IAAI,KAAK,aAAa,MAAM,mBAAmB,CAAC,CAAC,IAAI,KAAK,MAAM,KAAK,aAAa,CAAC,MAAM,6BAA6B,CAAC,CAAC,IAAI,KAAK,WAAW,KAAK,aAAa,CAAC,MAAM,kCAAkC,CAAC,CAAC,IAAI,KAAK,QAAQ,KAAK,aAAa,CAAC,MAAM,oBAAoB,CAAC,CAAC,IAAI,KAAK,WAAW,KAAK,aAAa,CAAC,MAAM,kCAAkC,CAAC,CAAC,IAAI,KAAK,SAAS,MAAM,eAAe,CAAC,CAAC,IAAI,KAAK,UAAU,MAAM,gBAAgB,CAAC,CAAC,IAAI,KAAK,UAAU,MAAM,gBAAgB,CAAC,CAAC,IAAI,KAAK,UAAU,MAAM,gBAAgB,CAAC,CAAC,IAAI,KAAK,aAAa,MAAM,mBAAmB,CAAC,CAAC,IAAI,KAAK,SAAS,MAAM,eAAe,CAAC,CAAC,IAAI,KAAK,QAAQ,MAAM,cAAc,CAAC,CAAC,IAAI,KAAK,KAAK,MAAM,WAAW,CAAC,CAAC,IAAI,KAAK,QAAQ,MAAM,cAAc,CAAC,CAAC,IAAI,KAAK,YAAY,MAAM,kBAAkB,CAAE,CAAC,IC/Lr2C,SAAS,oBAAoB,SAAS,CAAC,OAAO,MAAM,OAAO,CAAC,QAAQ,SAAS,QAAQ,OAAO,OAAO,SAAS,CAAC,IAAK,GAAE,CAAC,CAemmB,SAAS,UAAU,MAAM,IAAI,KAAK,CAAC,IAAI,QAAQ,MAAM,MAAM,SAAS,CAAC,KAAK,WAAW,MAAM,CAAC,QAAQ,GAAG,CAAC,SAAS,QAAQ,kBAAmB,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,IAAI,KAAK,SAAS,eAAe,CAAI,KAAK,KAAK,QAAM,KAAK,MAAM,OAAO,KAKpxB,SAAS,WAAW,MAAM,CAAC,IAAI,MAAM,MAAM,MAAM,SAAS,MAAM,GAAM,CAAC,OAAO,MAAM,MAAM,KAAK,KAAK,MA+Bf,SAAS,aAAa,UAAU,KAAK,GAAG,CAAC,OAAO,aAAa,aAAa,UAAU,CAAC,CAAC,MAAM,KAAK,IAAI,GAAG,MAAM,KAAK,IAAI,GAAG,CAAE,CAAC,CAoBsY,SAAS,cAAc,MAAM,CAAC,IAAI,KAAK,MAAM,MAAM,WAAW,CAAC,OAAO,KAAK,WAAW,EAAE,EAAE,EAAE,MAAM,QAAQ,KAAK,OAAO,KAAK,OAAQ,SAAS,aAAa,MAAM,KAAK,CAAC,IAAI,OAAO,GAAG,GAAG,MAAM,QAAQ,GAAG,MAAM,MAAM,WAAW,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,KAAM,MAAM,IAAI,QAAQ,IAAI,MAAM,GAAI,GAAG,IAAK,IAAI,IAAIgB,IAAE,EAAEA,IAAE,KAAK,MAAI,QAAQ,GAAG,OAAO,OAAQ,SAAS,eAAe,QAAQ,IAAI,CAAI,mBAAmB,cAAY,QAAQ,IAAI,cAAc,QAAQ,EAAC,IAAI,IAAI,WAAW,QAAQ,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,OAAO,QAAQ,QAAQ,IAAI,CAAC,GAAG,SAAS,IAAK,GAAE,OAAO,OAAQ,IAAI,KAAK,WAAW,QAAQ,MAAM,CAAC,OAAO,KAAK,kBAAkB,QAAQ,KAAK,IAAI,CAAC,KAuBnzC,SAAS,kBAAkB,KAAG,IAAI,IAAI,CAAC,OAAO,WAAW,IAAI,aAAa,IAAI,CAAC,2BAA2B,IAAI,CAAC,IAAIC,KAAG,CAAE,SAAS,aAAa,KAAG,CAAC,OAAOA,KAAG,KAAKA,KAAG,QAAQ,eAAeA,KAAG,QAAQ,oBAAqB,SAAS,eAAe,KAAK,CAAC,IAAI,SAAS,KAAK,KAAK,KAAK,eAAe,CAAC,GAAG,SAAS,OAAO,SAAS,IAAI,MAAM,KAAK,WAAW,MAAM,GAAG,QAAQ,MAAM,MAAM,KAAK,KAAK,SAAS,SAAS,EAAE,CAAC,IAAI,KAAK,KAAK,UAAU,OAAO,MAAM,MAAM,QAAQ,KAAK,KAAK,CAAC,GAAG,MAAO,OAAI,kBAAkBA,KAAG,GAAK,EAAE,IAAK,GAAE,QAAQ,CAAC,aAAaA,KAAG,CAAC,KAAK,KAAK,IAAK,GAAE,CAAE,OAAO,KAAK,QAAQ,KAAK,UAAU,KAAM,SAAS,WAAW,KAAK,IAAI,OAAK,CAAC,KAAK,KAAK,KAAK,KAAK,OAAO,CAAC,IAAI,SAAS,eAAe,KAAK,CAAC,GAAG,SAAS,OAAO,SAAS,kBAAkB,OAAOG,OAAK,IAAI,KAAK,CAAC,CAAE,OAAO,KAAM,SAAS,WAAW,CAAC,MAAO,GAc5vB,SAAS,SAAS,OAAO,GAAG,CAAC,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,OAAO,GAAG,QAAQ,IAAI,MAAO,GAAK,MAAO,GAAO,SAAS,iBAAiB,QAAQ,CAAC,IAAI,KAAK,QAAQ,KAAS,UAAU,KAAK,WAAW,KAAK,KAAK,CAAC,KAAK,KAAK,UAAU,GAAG,CAAC,UAAU,OAAO,KAAK,IAAI,IAAI,QAAQ,QAAQ,cAAkB,SAAS,QAAQ,MAAM,IAAI,OAAO,UAAU,KAAK,CAAK,QAAQ,KAAK,MAAM,KAAK,SAAS,KAAK,SAAS,GAAG,KAAK,IAAI,SAAS,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,UAAU,KAAK,CAAC,IAAI,KAAK,KAAK,WAAW,IAAI,CAAC,GAAG,CAAC,MAAM,MAAM,KAAK,OAAO,KAAK,GAAG,CAAC,KAAK,KAAK,UAAU,OAAO,KAAK,KAAK,QAAQ,UAAU,KAAK,IAAI,KAAK,IAAK,SAAS,gBAAgB,CAAC,QAAQ,MAAM,GAAK,MAAM,GAAG,CAAC,MAAO,UAAS,kBAAkB,QAAQ,MAAM,MAAM,QAAQ,CAAE,SAAS,kBAAkB,QAAQ,MAAM,MAAM,QAAQ,SAAS,CAAC,IAAI,MAAM,QAAQ,UAAU,MAAM,MAAM,MAAM,OAAO,CAAC,GAAG,OAAW,OAAO,SAAS,MAAM,MAAM,MAAM,MAAM,QAAQ,OAAO,EAAE,SAAS,UAAU,QAAQ,IAAI,MAAU,QAAQ,MAAM,iBAAiB,QAAQ,CAAC,KAAsF,OAA9E,QAAe,OAAO,QAAQ,OAAO,QAAQ,KAAK,CAAC,QAAQ,OAAO,QAAQ,GAAG,CAAQ,QAAQ,YAAY,OAAO,EAAE,QAAQ,KAAK,OAAmD,SAAS,gBAAgB,CAAC,OAAO,MAAM,GAAG,EAAE,CAAC,CAAC,MAAO,UAAS,CAAC,IAAI,YAAY,QAAQ,OAAO,KAAK,QAAQ,UAAU,CAAC,OAAO,QAAQ,YAAY,YAAY,EAAE,MAAM,QAAQ,OAA+hC,SAAS,WAAW,KAAK,CAAC,IAAI,MAAM,KAAK,WAAW,KAAK,KAAK,UAAU,OAAO,OAAO,MAAM,GAAG,KAAK,KAAK,CAAC,KAAK,MAAM,GAAG,GAAG,KAAK,KAAK,QAAQ,KAAK,GAAG,KAAK,KAAK,CAAC,KAct0D,SAAS,gBAAgB,MAAM,CAAC,IAAI,KAAK,MAAM,MAAM,iBAAiB,CAAC,OAAO,KAAK,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAE,SAAS,mBAAmB,YAAY,QAAQ,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,UAAoe,OAAvd,uBAAuB,iBAAmB,YAAY,QAAO,IAAI,KAAK,WAAW,YAAY,GAAG,YAAY,OAAO,CAAC,CAAC,UAAU,YAAY,WAAc,SAAgD,SAAS,IAAI,KAAK,oBAAoB,GAAG,YAAY,CAAC,CAAS,UAAU,IAAI,KAAK,iBAAiB,SAAS,CAAC,WAAW,UAAU,CAAC,OAAe,MAAM,MAAM,WAAW,UAAU,GAAG,WAAW,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAG,CAAC,CAAM,IAAI,KAAK,iBAAiB,GAAG,YAAY,CAAC,CAAQ,IAAuiG,SAAS,mBAAmB,MAAM,CAAC,IAAIhB,cAAY,EAAE,CAAK,KAAK,MAAM,QAAQ,aAAa,gBAAqJ,OAArI,cAAY,KAAK,KAAK,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,GAAG,CAAC,CAAI,MAAM,KAAI,cAAY,KAAK,KAAK,MAAM,MAAM,IAAI,KAAK,MAAM,IAAI,GAAG,CAAC,CAAQA,cAAsxB,SAAS,gBAAgB,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAyD,SAAS,cAAc,KAAK,IAAI,SAAS,CAAC,IAAI,OAAO,KAAK,KAAK,IAAI,EAAE,SAAS,SAAS,SAAS,SAAS,CAAC,GAAG,OAAO,OAAO,OAAO,GAAG,KAAK,KAAK,QAAQ,EAAE,CAAC,IAAI,MAAM,SAAS,QAAQ,KAAK,KAAK,CAAC,GAAG,MAAM,IAAI,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,MAAM,CAAC,SAAS,MAAM,KAAK,CAAE,OAAO,KAAM,SAAS,WAAW,KAAK,CAAC,IAAI,UAAU,KAAK,KAAK,KAAK,sBAAsB,CAAC,OAAO,UAAU,UAAU,KAAK,KAAK,CAAC,KAAM,SAAS,cAAc,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC,CAAC,IAAI,gBAAgB,OAAO,iBAAiB,gBAAgB,SAAS,OAAO,UAAU,gBAAoB,KAAK,WAAW,MAAM,CAAC,KAAK,KAAK,aAAa,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,OAAO,CAAC,IAAI,QAAQ,cAAc,IAAI,KAAK,IAAI,SAAS,CAAC,GAAG,SAAS,IAAI,KAAK,IAAI,GAAG,CAAC,IAAI,OAAO,WAAW,IAAI,CAAC,GAAG,SAAS,IAAI,EAAE,KAAK,OAAO,MAAM,IAAI,OAAO,GAAG,IAAI,OAAO,MAAM,KAAK,OAAO,IAAI,OAAO,oBAAoB,MAAM,IAAI,IAAI,IAAI,OAAO,QAAQ,SAAS,EAAG,OAAO,mBAAmB,MAAM,IAAI,IAAI,KAAK,KAAK,KAAK,gBAAgB,SAAS,CAAE,SAAS,oBAAoB,OAAO,KAAK,IAAI,MAAM,OAAO,SAAS,SAAS,CAAC,IAAI,OAAO,MAAM,OAAO,WAAW,CAAC,KAAK,OAAO,KAAK,GAAG,OAAO,GAAG,CAAK,MAAM,EAAE,OAAO,QAA6C,QAAQ,CAAC,GAAG,SAAS,IAAI,EAAE,OAAO,YAAY,MAAM,KAAK,CAAC,OAAO,WAAW,MAAM,GAAG,EAAE,EAAG,IAAG,IAAI,EAAE,OAAO,IAAI,MAAM,KAAK,OAAO,MAAM,MAAM,OAAO,OAAO,GAAG,SAAS,QAAQ,OAAO,KAAK,KAAK,CAAC,IAAI,OAAO,KAAK,OAAO,GAAG,CAAC,IAAI,UAAU,WAAW,OAAO,CAAC,MAAM,CAAC,MAAM,WAAW,IAAI,UAAU,CAAC,KAAK,UAAU,KAAK,GAAG,UAAU,GAAG,CAAC,IAAK,GAAE,QAAQ,GAAK,SAAU,cAAc,OAAO,KAAK,IAAI,SAAS,CAAE,gBAAiB,cAAc,OAAO,KAAK,CAAC,IAAI,SAAS,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,IAAI,WAAW,WAAW,OAAO,CAAC,MAAM,CAAC,MAAM,WAAW,IAAI,YAAY,WAAW,KAAK,WAAW,GAAG,CAAC,KAAK,WAAW,KAAK,GAAG,WAAW,GAAG,CAAC,IAAK,GAAE,QAAQ,GAAM,CAAE,eAAiB,IAAI,EAAE,OAAO,aAAa,CAAC,OAAO,aAAa,EAAC,MAAM,CAAC,MAAM,WAAW,QAAQ,GAAM,CAAE,SAAS,mBAAmB,MAAM,IAAI,IAAI,KAAK,UAAU,gBAAgB,SAAS,CAAC,IAAI,QAAQ,IAAI,EAAE,MAAM,SAAS,IAAI,EAAE,IAAI,CAAC,MAAM,SAAS,IAAI,IAAI,EAAE,CAAKC,UAAQ,SAAS,QAAQ,QAAQ,CAAC,GAAGA,UAAQ,GAAGA,UAAQ,GAAG,GAAG,IAAI,EAAE,OAAO,KAAK,IAAI,WAAW,CAAC,KAAK,IAAI,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,CAAK,KAAK,MAAM,IAAI,UAAU,IAAI,IAAI,EAAE,MAAM,IAAI,OAAO,EAAE,CAAC,MAAM,EAAE,IAAI,IAAI,SAAS,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,UAAU,iBAAiB,CAAC,IAAI,KAAK,KAAK,MAAS,IAAI,IAAE,UAAU,KAAK,QAAO,IAAI,QAAQ,IAAI,SAAS,IAAI,IAAI,IAAI,KAAK,IAAI,EAAE,EAAE,KAAK,OAAO,EAAE,IAAI,IAAI,EAAE,KAAK,OAAO,GAAG,MAAM,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,SAAS,QAAQ,KAAK,MAAM,CAAI,WAAM,GAAG,KAAK,aAAa,QAAQ,KAAK,EAAE,CAAC,MAAM,WAAmB,GAAG,MAAM,GAAG,GAAG,IAAI,EAAG,gBAAiB,OAAO,EAAG,MAAM,CAAC,MAAM,WAAW,IAAI,CAAC,KAAK,QAAQ,KAAK,GAAG,QAAQ,KAAK,EAAE,CAAC,QAAQ,OAAO,GAAGA,WAAS,EAAE,MAAO,QAAa,IAAI,IAAE,UAAU,KAAK,QAAQ,OAAO,KAAK,KAAK,CAAC,MAAM,WAAW,QAAQ,GAAM,CAAC,KAAM,SAAS,SAAS,SAAO,IAAI,QAAQ,WAAW,EAAE,WAAW,EAAE,CAAI,MAAW,IAAIC,SAAO,OAAO,cAAc,CAAI,KAAK,KAAG,IAAIA,SAAO,SAAQ,IAAI,EAAE,WAAW,IAAI,IAAIU,IAAE,WAAWA,IAAE,IAAI,MAAQV,SAAO,WAAWU,IAAE,EAAE,EAAE,GAAG,QAAQ,EAAE,QAAa,IAAK,OAAO,EA4CplR,SAAS,WAAW,KAAK,CAAC,MAAM,CAAC,KAAK,KAAK,MAAM,GAAG,MAAM,KAAK,MAAM,UAAU,KAAK,gBAAgB,IAAI,WAAW,KAAK,iBAAiB,IAAM,UAAU,KAAK,WAAW,iBAAiB,OAAO,KAAK,aAAa,MAAM,aAAa,KAAK,cAAc,EAAE,CAAC,WAAW,KAAK,YAAY,SAAS,CAAE,SAAS,iBAAiB,MAAM,CAAC,GAAG,OAAO,OAAO,SAAS,OAAO,MAAM,IAAI,SAAS,EAAE,CAAC,IAAI,IAAI,QAAQ,MAAM,CAAC,IAAI,IAAI,MAAM,MAAM,SAAS,MAAM,eAAe,MAAM,IAAI,OAAO,CAAC,IAAK,OAAO,SAE69B,SAAS,UAAU,KAAK,KAAK,IAAI,SAAS,OAAO,CAAC,IAAI,MAAM,KAAK,UAAU,IAAI,KAAK,QAAQ,QAAQ,KAAK,KAAK,KAAK,WAAW,CAAC,GAAG,MAAM,MAAM,CAAC,MAAM,KAAK,aAAa,UAAU,MAAM,CAAC,IAAI,IAAI,KAAK,OAAO,CAAC,IAAI,IAAIA,IAAE,KAAK,SAAS,OAAO,EAAEA,KAAG,EAAE,MAAI,CAAC,IAAI,MAAM,KAAK,SAASA,KAAG,IAAI,IAAI,KAAK,UAAUA,KAAO,MAAM,iBAAiB,MAAM,IAAI,QAAQ,UAAU,KAAK,MAAM,IAAI,SAAS,OAAO,CAAC,GAAG,MAAM,OAAO,MAAO,OAAO,KAAM,SAAS,QAAQ,KAAK,KAAK,KAAK,GAAG,SAAO,CAAC,GAAGT,UAAQ,MAAM,GAAG,IAAI,KAAK,OAAO,OAAO,KAAQ,CAACA,UAAQ,KAAK,MAAM,KAAK,UAAQ,SAAO,IAAK,IAAI,IAAIS,IAAE,KAAK,SAAS,OAAO,EAAEA,KAAG,EAAE,MAAI,CAAC,IAAI,IAAI,KAAK,UAAUA,KAAG,MAAM,KAAK,SAASA,KAAG,MAAM,GAAG,IAAI,IAAI,iBAAiB,KAAK,CAAC,GAAG,EAAE,MAAM,QAAQ,KAAK,MAAM,KAAK,IAAI,GAAG,IAAIT,SAAO,EAAE,MAAM,OAAOA,SAAa,IAAI,KAAK,KAAK,KAAK,KAAK,SAAS,MAAM,EAAES,IAAE,CAAC,OAAO,MAAM,CAAC,KAAK,UAAU,MAAM,EAAEA,IAAE,EAAE,CAAC,IAAI,MAAM,OAAO,CAA7G,OAAgH,OAAO,KAAM,SAAS,qBAAqB,KAAK,UAAU,SAAS,YAAY,CAAC,IAAI,IAAI,KAAK,UAAU,CAAC,IAAI,KAAK,EAAE,MAAM,EAAE,UAAU,GAAG,GAAG,GAAG,EAAE,IAAI,EAAE,QAAQ,GAAG,GAAO,MAAM,MAAM,UAAU,GAAG,UAAU,UAAU,KAAK,EAAE,KAAK,EAAE,EAAE,OAAO,SAAS,GAAG,CAAC,KAAK,GAAG,QAAQ,KAAK,QAAQ,KAAK,EAAE,KAAK,SAAS,EAAE,OAAO,MAAM,IAAI,EAAE,OAAO,GAAM,EAAE,MAAM,CAAC,MAAM,MAAM,MAAM,KAAK,CAAE,MAAM,CAAC,MAAM,KAAK,aAAa,WAAW,YAAY,cAAc,YAAY,CAAC,EAAE,CAAC,KAAK,KAAK,MAAM,CAAurH,SAASR,YAAU,MAAM,OAAO,MAAM,CAAC,OAAO,MAAM,OAAO,IAAI,IAAI,IAAIQ,IAAE,EAAEA,IAAE,GAAG,MAAI,CAAC,IAAI,OAAO,MAAM,OAAO,MAAM,CAAC,GAAG,OAAO,IAAI,OAAO,MAAM,OAAO,OAAQ,MAAU,MAAM,0CAA0C,CAAw5B,SAAS,YAAY,KAAK,IAAI,CAAI,OAAO,QAAQ,KAAK,CAAC,KAAU,OAAO,KAAK,KAAK,CAAC,QAAQ,KAAK,IAAI,EAAE,SAAS,gBAAgB,MAAM,OAAO,CAAC,IAAI,IAAI,KAAK,IAAI,IAAI,QAAQ,OAAO,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,MAAM,OAAO,KAAK,MAAU,MAAqE,OAAO,OAAO,WAAgB,IAAmE,IAAI,MAAM,IAAI,CAA7E,YAAY,KAAK,YAAY,KAAK,uBAAuB,CAA8B,IAAI,YAAY,KAAK,OAAO,KAAK,mBAAmB,CAAM,IAAI,MAArP,YAAY,KAAK,4BAA4B,OAAO,CAAyM,GAAG,CAAC,IAAI,MAAO,GAAE,IAAIW,OAAK,OAAO,QAAQ,KAAK,IAAI,CAAC,KAAK,SAAS,OAAO,CAAC,GAAG,UAAU,OAAO,KAAA,OAAK,MAAM,CAAC,UAAU,EAAEA,QAAM,IAAI,CAAC,CAAC,CAAC,CAAC,CAAsB,OAArB,UAAU,KAAK,KAAK,CAAQ,KAAK,GAAI,SAAS,MAAM,KAAK,CAAC,IAAI,KAAK,SAAS,OAAO,CAAC,GAAG,UAAU,OAAO,KAAK,WAAW,MAAM,CAAC,iBAAiB,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAsB,OAArB,UAAU,KAAK,KAAK,CAAQ,wyBAhMp5Q,wBAAkN,uBAA6L,uBAA4J,CAChtB,EAAE,IAAQ,MAAM,OAAO,OAAQ,IAAY,KAAK,EAAE,OAAO,IAAI,EAAE,CAAK,IAAI,OAAO,OAAQ,IAAY,aAAa,KAAK,MAAM,KAAK,QAAQ,CAAC,IAAI,CAAC,OAAO,WAAW,CAAK,IAAI,OAAO,WAAY,IAAY,WAAkB,SAAQ,OAAmB,EAAE,CAAT,OAAc,YAAY,KAAK,CAEjR,UAAU,CAAC,OAAO,KAAK,MAAM,KAAK;EAAK,CAEvC,OAAO,SAAS,CAAC,IAAIjB,KAAG,IAAI,QAAQ,EAAkB,MAAhB,KAAI,OAAOA,KAAG,EAAS,EAAEA,KAAG,SAAS,GAAG,CAa9E,OAAO,MAAM,KAAK,QAAQ,EAAE,KAAK,MAAM,IAAI,SAAS,KAAK,EAAE,MAAM,MAAM,QAAQ,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAK1G,YAAY,KAAK,QAAQ,CAAC,KAAK,MAAM,EAAE,CAAC,GAAG,CAAC,QAAQ,SAAS,EAAE,CAAC,SAAS,cAAc,SAAS,CAAC,MAAM,KAAK,KAAK,SAAS,CAAC,CAAC,SAAS,CAAC,SAAS,MAAM,OAAO,CAAE,SAAS,OAAO,UAAU,MAAM,OAAO,YAAY,CAAC,IAAI,MAAM,EAAE,CAAC,KAAK,YAAY,KAAK,UAAU,GAAG,CAAC,UAAU,MAAM,KAAK,IAAI,YAAY,GAAG,MAAM,OAAO,KAAK,OAAO,OAAO,KAAK,UAAU,GAAG,IAAI,CAAC,IAAI,IAAI,QAAQ,MAAM,CAAC,IAAI,MAAM,MAAM,MAAM,GAAG,IAAI,KAAK,KAAK,CAAE,OAAO,KAAK,MAAM,OAAO,CAAC,IAAI,MAAM,UAAU,IAAI,KAAK,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,OAAO,SAAU,OAAO,OAAO,OAAO,SAAS,CAAC,GAAG,CAAC,KAAK,MAAU,WAAW,4BAA4B,KAAK,iCAAiC,CAAC,OAAO,cAAc,KAAK,CAAC,MAAM,MAAM,UAAU,MAAU,OAAO,MAAM,MAAM,KAAK,KAAK,QAAQ,MAAM,GAAG,CAAC,QAAQ,SAAS,KAAG,IAAIC,IAAE,aAAa,CAAC,CAAC,KAAK,MAAM,IAAI,EAAM,MAAM,QAAQ,YAAW,OAAO,MAAM,QAAQ,CAAC,MAAM,CAAC,YAAY,UAAU,IAAI,OAAO,CAAC,WAAW,KAAK,KAAK,CAAC,KAAK,MAAM,KAAK,IAAI,CAAC,IAAI,CAAG,IAAI,IAAI,QAAQ,KAAK,OAAO,cAAc,KAAK,CAAC,KAAK,MAAM,KAAK,MAAM,GAAQ,WAA2B,IAAI,IAAQ,SAAS,KAAK,CAAC,MAAM,QAAQ,CAAC,IAAI,MAAM,KAAK,MAAU,IAAI,EAAE,EAAE,EAAE,IAAI,IAAIK,IAAE,EAAEA,IAAE,QAAQ,OAAO,MAAI,CAAC,IAAI,IAAI,QAAQA,KAAG,MAAM,KAAK,QAAQ,QAAQ,IAAI,CAAkE,GAA9D,MAAM,GAAG,MAAM,KAAI,KAAK,QAAQ,OAAO,MAAM,EAAE,CAAC,IAAI,MAAM,IAAO,OAAO,GAAmC,IAA/B,KAAK,QAAQ,OAAO,IAAI,EAAE,IAAI,CAAI,MAAM,IAAI,IAAI,EAAE,EAAE,EAAE,IAAI,MAAM,OAAO,IAAI,MAAM,WAAW,IAAI,MAAM,GAAG,MAAM,KAAM,CAAC,KAAM,EAAE,OAAM,KAAK,KAAK,QAAQ,KAAK,MAAM,OAAO,KAAK,IAAI,MAAM,OAAO,KAAM,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,GAAG,KAAK,QAAQ,OAAO,KAAK,MAAM,KAAK,QAAQ,IAAI,UAAU,CAAC;EAAK,KAAK,SAAS,YAAY,MAAO,YAAY,KAAK,CAAC,IAAIJ,MAAI,KAAK,eAAe,KAAK,IAAIA,MAAI,YAAY,GAAG,CAAC,KAAK,MAAM,KAAK,oBAAoB,IAAI,cAAc,CAAC,IAAI,QAAQ,WAAW,IAAIA,MAAI,CAAC,GAAG,QAA6E,MAApE,MAAK,mBAAmB,CAAC,QAAQ,MAAM,GAAG,KAAK,mBAAoB,CAAQ,KAAK,KAAK,QAAS,KAAK,MAAM,IAAI,IAAI,cAAc,KAAK,mBAAmB,CAAC,KAAK,MAAM,GAAG,KAAK,mBAAmB,CAAC,WAAW,IAAIA,MAAI,KAAK,KAAM,CAAC,KAAK,SAASA,MAAI,cAAc,QAAQ,CAAC,IAAI,OAAO,KAAK,MAAM,KAAK,OAAO,aAAa,KAAK,SAAS,OAAO,WAAW,CAAE,KAAK,QAAQ,EAAE,CAAC,KAAK,KAAK,OAChpE,iBAAiC,IAAI,SAAoI,gBAAgC,IAAI,SAAa,SAAS,KAAK,CAE9O,WAAW,MAAM,IAAI,KAAK,GAAG,CAAC,OAAO,UAAU,MAAM,IAAI,KAAK,CAAC,KAAK,KAAK,iBAAiB,EAAE,KAAK,KAIjG,YAAY,MAAM,CAAC,IAAI,KAAK,MAAM,MAAM,SAAS,CAAC,GAAI,MAAuC,MAAO,KAAK,KAAK,MAAM,CAAC,CAAC,KAAK,EAAE,GAAG,MAAM,IAAI,OAAO,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,cAAc,MAAM,EAAE,CAAC,IAAI,OAAO,EAAE,CAAK,SAAS,KAAK,OAAO,CAAC,GAAG,KAAK,KAAK,iBAAiB,EAAE,KAAK,KAAK,CAAC,OAAO,KAAK,CAAC,KAAK,GAAG,KAAK,KAAK,OAAO,CAAC,CAAC,OAAQ,IAAI,MAAM,KAAK,KAAK,SAAS,QAAQ,CAAC,GAAG,UAAU,MAAM,KAAK,KAAK,iBAAiB,EAAE,KAAK,KAAK,CAAC,GAAG,MAAM,QAAQ,IAAI,IAAI,KAAK,MAAM,QAAQ,OAAO,KAAK,CAAC,KAAK,EAAE,KAAK,KAAK,GAAG,EAAE,GAAG,KAAK,CAAC,MAAM,OAAO,KAAK,CAAC,KAAK,GAAG,KAAK,KAAK,OAAO,CAAC,CAAC,eAAgB,MAAM,QAAQ,CAAC,IAAI,KAAK,OAAO,OAAsD,GAA/C,QAAQ,MAAM,KAAK,MAAM,QAAQ,GAAG,KAAK,KAAK,CAAI,OAAO,OAAO,KAAK,QAAS,IAAI,IAAII,IAAE,EAAEA,IAAE,KAAK,SAAS,OAAO,MAAI,CAAC,IAAI,GAAG,KAAK,SAASA,KAAM,cAAc,MAAK,QAAQ,GAAG,KAAK,UAAUA,KAAG,KAAK,GAAiC,OAA7B,QAAQ,WAAW,MAAM,CAAC,EAAE,CAAQ,OAGx0B,IAAI,eAAe,CAAC,MAAO,GAM3B,YAAY,KAAK,OAAO,gBAAgB,EAAE,CAAC,OAAK,GAAG,CAAC,KAAK,KAAK,KAAK,KAAK,KAAKW,OAAS,YAAY,UAAU,eAAe,OAAO,EAAC,OAAO,eAAe,YAAY,UAAU,OAAO,CAAC,KAAK,CAAC,OAAO,WAAW,KAAK,EAAG,CAAC,CAAC,KAAK,OAAO,OAAO,KAAK,UAAU,CAAC,SAAS,GAAG,KAAK,CAAC,YAAY,aAAa,IAAI,MAAM,IAAI,OAAO,CAAC,IAAI,KAAK,UAAU,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,KAAK,iBAAiB,CAAC,GAAG,CAAC,MAAM,MAAM,EAAE,CAAC,IAAIP,OAAK,MAAM,MAAM,MAAM,CAAC,IAAI,KAAK,KAAK,KAAK,gBAAgB,CAAC,GAAG,IAAI,CAAC,IAAI,UAAU,KAAK,QAAQ,IAAI,KAAK,KAAK,KAAK,CAAC,IAAI,IAAI,WAAW,IAAI,GAAG,QAAQ,KAAK,UAAU,MAAM,CAAC,CAAC,IAAI,MAAM,MAAM,MAAM,QAAQ,MAAM,CAAC,OAAO,QAAQ,MAAM,UAAU,MAAM,MAAM,OAAOA,OAAK,EAAG,OAAOA,QAAO,CAAE,CAAC,OAAO,gBAAgB,GAAI,SAAS,SAAyB,YAAY,QAAQ,CAAiQ,WAAW,cAAc,QAAQ,CAE7iC,OAAO,OAAO,KAAK,CAAC,IAAI,KAAK,oBAAoB,KAAK,aAAa,CAAC,OAAO,IAAI,WAAW,KAAK,KAAK,OAAO,UAAU,CAAC,MAAM,CAAC,iBAAiB,IAAI,MAAM,KAAK,MAAM,KAAK,IAAK,GAAE,CAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAG9L,UAAU,QAAQ,OAAK,CAAC,OAAO,IAAI,WAAW,KAAK,KAAK,KAAK,OAAO,UAAU,QAAQ,CAACO,QAAM,KAAK,KAAK,CAAE,IAAI,eAAe,CAAC,OAAO,KAAK,OAAO,aAAa,CAAE,YAAY,KAAK,OAAO,OAAK,CAAC,MAAM,KAAK,OAAO,EAAE,CAACA,OAAK,CAAC,KAAK,OAAO,SAA88B,SAAS,KAAK,CAAC,IAAI,QAAQ,CAAC,OAAO,KAAK,IAAI,OAAQ,OAAO,IAAI,CAA8F,MAA7F,MAAK,OAAO,KAAK,OAAO,KAAK,IAAI,KAAK,UAAU,CAAC,MAAM,KAAK,UAAU,IAAI,KAAK,OAAO,OAAc,KAAK,UAAU,KAAK,OAAO,OAAQ,MAAM,IAAI,CAAkB,OAAjB,KAAK,OAAO,IAAI,CAAQ,KAAK,OAAQ,IAAI,YAAY,CAAC,MAAO,GAAM,KAAK,KAAK,GAAG,CAAC,IAAI,YAAY,KAAK,UAAU,KAAK,OAAO,OAAyF,OAA/E,KAAK,aAAa,IAAI,KAAK,UAAiB,KAAK,IAAI,YAAY,KAAK,GAAG,CAAa,KAAK,OAAO,MAAM,KAAK,YAAY,GAAG,YAAY,CAElpD,YAAY,MAAI,CAAC,KAAK,IAAIf,MAAI,KAAK,UAAU,EAAE,KAAK,OAAO,GAAG,KAAK,OAAOA,MAAI,MAAM,GAAQ,eAAe,KAAS,aAAa,KAAK,CAEtI,OAAO,OAAO,OAAO,MAAM,SAAS,CAAC,OAAO,IAAI,aAAa,OAAO,MAAM,EAAE,CAAC,KAAK,MAAM,EAAE,SAAS,EAAE,CAAC,KAAK,CAAE,YAAY,CAAC,OAAO,KAAK,OAAO,WAAW,IAAI,SAAS,KAAK,MAAM,IAAI,CAAC,KAAK,UAAU,CAEpM,KAAK,MAAM,KAAK,CAAmL,OAA/K,MAAM,MAAM,MAAM,KAAK,MAAM,IAAI,SAAO,KAAK,IAAK,IAAK,KAAK,MAAM,KAAK,OAAO,KAAK,OAAO,MAAgC,KAAK,MAAM,IAAI,OAAO,EAAE,KAAK,UAAU,CAAQ,IAAa,KAAK,gBAAgB,CAAC,IAAI,IAAI,GAAG,OAAO,OAAO,SAAS,CAAC,IAAI,QAAQ,KAAK,KAAK,CAAC,MAAM,UAAU,KAAK,KAAK,CAAC,QAAgL,IAAvK,AAAe,KAAK,QAAM,KAAK,YAAY,CAAI,MAAM,OAAO,KAAK,MAAM,WAAW,MAAM,KAAK,MAAM,UAAU,OAAO,KAAK,KAAK,MAAM,IAAI,QAAO,KAAK,MAAM,OAAO,KAAK,GAAQ,CAAC,IAAI,KAAK,KAAK,MAAM,SAAS,CAAC,GAAG,KAAyO,GAAnO,KAAK,UAAU,KAAK,mBAAmB,aAAa,QAAQ,KAAK,KAAK,UAAU,KAAK,MAAM,WAAW,KAAK,CAAC,CAAC,KAAK,QAAa,KAAK,MAAM,WAAoC,KAAK,MAAM,IAAI,OAAO,KAAK,KAAK,KAAK,KAAK,MAAM,KAAQ,KAAK,SAAS,MAAgC,KAAK,MAAM,IAAI,QAAQ,KAAK,MAAM,KAAK,YAAY,MAAM,MAAO,GAAM,GAAG,OAAO,CAAC,MAAO,KAAS,CAEz4B,UAAU,CAAC,IAAI,IAAI,KAAQ,KAAK,QAAQ,IAAI,KAAK,MAAM,YAAY,KAAK,WAAY,KAAK,MAAM,WAAW,MAAM,KAAK,MAAM,UAAU,MAAI,KAAK,MAAM,OAAO,IAAI,CAAC,KAAK,gBAAgB,CAAC,KAAM,EAAE,KAAK,KAAK,MAAM,SAAS,MAAM,CAAC,KAAK,QAAQ,IAAI,KAAK,KAAK,KAAK,KAAK,UAAU,KAAK,mBAAmB,aAAa,QAAQ,KAAK,KAAK,KAAK,UAAU,GAAK,CAAC,CAAC,KAAK,MAAM,MAAO,YAAY,EAAE,CAAC,IAAI,KAAK,eAAe,eAAe,KAAK,GAAG,CAAC,OAAO,GAAG,QAAS,CAAC,eAAe,MAAO,mBAAmB,UAAU,CAAC,IAAI,IAAI,EAAE,EAAE,KAAK,YAAY,KAAK,EAAE,UAAU,aAAa,UAAU,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,UAE5kB,QAAQ,QAAQ,SAAS,CAAC,GAAG,CAAC,UAAU,KAAK,QAAQ,SAAS,SAAS,KAAqB,GAAhB,KAAK,UAAU,CAAI,CAAC,QAAQ,MAAM,CAAC,IAAI,OAAO,EAAE,CAAwP,GAAvP,QAAQ,mBAAmB,MAAM,IAAI,MAAM,MAAM,OAAO,KAAK,CAAC,MAAM,IAAI,MAAM,IAAI,CAAC,CAAC,CAAC,UAAU,aAAa,aAAa,UAAU,OAAO,CAAC,KAAK,KAAK,MAAM,QAAQ,EAAE,SAAS,CAAC,KAAK,QAAQ,OAAO,SAAS,KAAK,GAAG,CAAC,GAAG,QAAQ,OAAO,SAAS,GAAG,EAAE,CAAC,CAAI,KAAK,QAAQ,OAAO,CAAC,QAAQ,EAAE,CAAC,IAAI,IAAI,KAAK,KAAK,QAAQ,CAAC,IAAI,KAAK,QAAQ,OAAO,EAAE,KAAK,EAAE,CAAC,GAAG,QAAQ,OAAO,EAAE,GAAG,GAAG,CAAI,KAAK,IAAG,QAAQ,KAAK,CAAC,KAAK,GAAG,CAAC,GAAI,OAAO,IAAI,aAAa,KAAK,OAAO,SAAS,UAAU,KAAK,QAAQ,SAAS,QAAQ,KAAK,WAAW,CAE1nB,eAAe,SAAS,CAAC,GAAG,KAAK,SAAS,MAAM,SAAS,MAAM,KAAK,SAAS,IAAI,SAAS,GAAG,MAAO,GAAM,KAAK,SAAS,SAAS,IAAI,SAAS,KAAK,QAAQ,OAAO,IAAI,IAAII,IAAE,EAAEA,IAAE,KAAK,QAAQ,OAAO,MAAI,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,QAAQA,KAAM,KAAK,SAAS,IAAI,GAAG,SAAS,OAAM,KAAK,UAAU,aAAa,KAAK,UAAU,KAAK,GAAG,CAAC,KAAK,QAAQ,OAAO,MAAI,EAAE,EAA8D,OAAxD,KAAK,QAAQ,QAAQ,SAAgB,IAAM,KAAK,OAAO,CAAQ,IAEha,OAAO,CAAC,AAA+B,KAAK,SAArB,KAAK,UAAU,CAAY,MAIlD,gBAAgB,KAAK,GAAG,CAAC,KAAK,QAAQ,KAAK,CAAC,KAAK,GAAG,CAAC,CAQrD,OAAO,kBAAkB,MAAM,CAAC,OAAO,IAAI,cAAc,MAAM,CAAC,YAAY,MAAM,UAAU,OAAO,CAAC,IAAI,KAAK,OAAO,GAAG,KAAK,GAAG,OAAO,OAAO,OAAO,GAAG,GAA2R,MAA7Q,CAAC,UAAU,KAAK,SAAS,CAAC,IAAIC,KAAG,eAAe,GAAGA,KAAG,CAAC,IAAI,IAAI,KAAK,OAAO,KAAG,YAAY,KAAK,EAAE,CAAI,QAAM,KAAG,WAAWA,KAAG,WAAW,QAAQ,IAAI,CAACA,KAAG,WAAW,MAAM,CAAC,CAAC,OAAyB,MAAlB,MAAK,UAAU,GAAU,IAAI,KAAK,SAAS,KAAK,EAAE,CAAC,EAAE,CAAC,GAAG,KAAK,EAAG,UAAU,KAAK,QAAQ,GAAG,GAEjb,OAAO,KAAK,CAAC,KAAK,KAAK,IAAI,KAAK,KAAK,MAAM,IAAI,OAAO,CAAC,IAAI,MAAM,KAAK,UAAU,OAAO,KAAK,SAAS,MAAM,MAAM,QAAQ,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,KAGxJ,OAAO,KAAK,CAAC,OAAO,eAAgB,YAAY,OAAO,MAAM,UAAU,EAAE,CAAC,KAAK,QAAQ,SAAS,QAAQ,WAAW,CAAC,KAAK,OAAO,OAAO,KAAK,MAAM,MAAM,KAAK,UAAU,UAAU,KAAK,KAAK,KAAK,KAAK,QAAQ,QAAQ,KAAK,SAAS,SAAS,KAAK,QAAQ,QAAQ,KAAK,WAAW,WAAW,KAAK,MAAM,KAAK,KAAK,YAAY,EAAE,GAAuI,cAAc,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,YAAY,KAAK,MAAM,KAAK,QAAQ,KAAK,OAAO,KAAK,IAAI,MAAM,KAAK,QAAQ,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAK,KAAK,KAAK,QAAQ,SAAS,GAAG,WAAW,IAAI,OAAO,IAAK,GAAE,KAAK,IAAI,GAAG,QAAQ,OAAO,KAAK,QAAQ,QAAQ,CAAC,MAAM,SAAS,GAAG,CAA0C,OAArC,MAAM,KAAK,GAAG,KAAK,EAAC,MAAM,UAAU,CAAQ,IAAI,cAAc,MAAM,CAAE,OAAO,KAAK,MAAM,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,IAAI,OAAO,CAAK,WAAW,aAAa,OAAO,MAAM,MAAM,SAAS,CAAC,OAAO,MAAM,CAAC,KAAK,EAAE,GAAG,KAAK,CAAC,CAAoD,OAA/C,WAAW,KAAK,GAAG,KAAK,EAAC,WAAW,UAAU,CAAQ,IAAI,cAAc,WAAW,CAAE,YAAY,QAAQ,CAAC,KAAK,QAAQ,QAAQ,KAAK,KAAK,QAAQ,OAAQ,SAAS,MAAsB,WAAW,OAAO,CAAC,OAAO,cAAc,KAAK,OAAO,MAAM,GAAG,CAAC,IAAI,IAAI,KAAK,GAAG,QAAQ,GAAG,EAAE,GAAG,SAAS,SAAS,CAAC,OAAO,EAAE,MAAqG,OAA5F,GAAG,WAAW,MAAM,SAAS,EAAE,GAAG,MAAM,MAAM,SAAS,CAA4C,MAAM,MAAM,GAAG,CAAnD,cAAc,KAAK,GAAG,MAAM,EAA0B,CAAC,CAAK,YAAY,UAAU,CAAC,IAAI,QAAQ,eAAe,UAAU,CAAC,IAAI,CAAC,UAAU,aAAa,QAAQ,EAAM,OAAO,oBAAqB,MAAY,YAAY,UAAU,CAAC,IAAI,KAAK,GAAG,QAAQ,eAAe,CAAC,KAAK,oBAAoB,SAAS,CAAC,QAAQ,IAAQ,CAAC,EAAG,IAAI,CAAC,UAAU,KAAK,EAAE,aAAa,QAAQ,CAAC,mBAAmB,KAAK,GAAO,eAAsB,YAAW,QAAkB,UAAU,YAA0C,mBAAoB,UAAU,WAAW,gBAAgB,CAAC,KAAS,YAA4B,WAAW,UAAU,KAAiB,CAAC,OAAO,OAAO,CAAC,IAAIA,KAAG,KAAK,KAAK,MAAM,MAAM,SAAS,MAAM,CAAC,SAAWA,KAAG,eAAe,OAAO,KAAK,SAAS,EAAE,KAAK,KAAK,SAAS,GAAGA,KAAG,UAAQ,KAAK,cAAc,CAAI,OAAO,aAAe,KAAK,KAAK,WAAS,KAAK,aAAa,IAAG,KAAK,cAAc,EAAE,KAAK,mBAAmBA,KAAG,CAAE,cAAc,CAAC,GAAG,KAAK,QAAQ,OAAO,GAAG,CAAC,OAAO,KAAK,KAAK,MAAM,MAAM,MAAM,SAAS,MAAM,EAAI,MAAM,MAAM,MAAM,QAAQ,MAAM,CAAC,MAAM,QAAQ,OAAO,MAAM,IAAI,OAAO,IAAC,KAAK,QAAQ,YAAY,KAAK,KAAK,EAAE,KAAK,SAAS,CAAC,KAAK,QAAQ,KAAK,IAAI,IAAI,KAAK,KAAK,CAA0G,GAAtG,KAAK,SAAS,MAAM,KAAK,SAAS,GAAG,KAAK,KAAK,YAAW,KAAK,SAAS,IAAI,IAAI,KAAK,YAAY,KAAQ,KAAK,aAAa,EAAE,OAAO,GAAG,CAAC,MAAM,SAAS,CAAC,GAAG,OAAO,KAAK,KAAK,MAAM,MAAM,MAAM,SAAS,MAAM,CAAC,GAAG,MAAM,MAAM,MAAM,QAAQ,MAAM,MAAM,QAAQ,OAAO,KAAK,IAAI,CAAC,OAAO,IAAI,QAAQ,KAAK,KAAK,CAAC,KAAK,IAAI,KAAK,YAAY,IAAI,UAAU,CAAC,eAAe,KAAK,IAAI,GAAG,SAAS,eAAe,CAAC,EAAE,CAAC,IAAI,CAAK,cAAc,MAAM,QAAQ,QAAQ,MAAM,MAAM,IAAI,OAAO,KAAK,IAAQ,KAAK,MAAM,QAAQ,SAAiB,gBAAgB,gBAAgB,EAAE,KAAK,KAAK,CAAC,QAAU,MAAM,cAAc,EAAE,KAAK,CAAC,KAAK,aAAa,KAAK,KAAK,CAAC,KAAO,MAAM,KAAK,aAAa,KAAG,MAAM,QAAQ,UAAU,CAAC,KAAK,KAAK,SAAS,CAAC,QAAQ,SAAS,SAAS,GAAG,IAAI,cAAc,MAAM,QAAQ,CAAC,CAAC,CAAC,EAAK,KAAK,YAAY,GAAG,EAAE,MAAM,CAAC,gBAAe,KAAK,cAAc,CAAC,KAAK,mBAAmB,MAAM,QAAQ,CAAE,mBAAmB,KAAG,CAAC,AAAgK,KAAG,cAAjJ,KAAK,gBAAgB,KAAG,WAAW,SAAS,KAAK,cAAc,CAAC,CAAC,MAAM,KAAK,aAAa,KAAK,KAAK,MAAM,IAAI,CAAC,CAAC,SAAS,KAAK,gBAAgB,CAAe,MAAO,SAAS,CAAI,KAAK,SAAQ,KAAK,SAAS,CAAE,WAAW,CAAC,MAAM,CAAC,EAAE,KAAK,SAAS,KAAK,cAAc,GAAI,YAAY,KAAK,CAAC,KAAK,KAAK,KAAK,KAAK,QAAQ,KAAK,KAAK,cAAc,EAAE,KAAK,SAAS,GAAG,KAAK,YAAY,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,CAAC,KAAK,cAAc,GAAI,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,cAAc,EAAG,CAAC,CAAC,CAAK,SAAyB,MAAM,OAAO,CAAC,QAAQ,UAAU,CAAC,OAAO,UAAU,OAAO,UAAU,GAAG,MAAO,QAAQ,WAAW,CAAC,SAAS,MAAM,YAAY,WAAW,kBAAkB,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,MAAM,UAAU,CAAC,OAAO,MAAM,KAAK,KAAK,CAAC,gBAAgB,KAAK,KAAK,CAAC,EAAE,EAAG,CAAE,CAAC,CAAC,CAAK,gBAAgB,KAAK,CAE9nI,YAAY,UAAU,QAAQ,EAAE,CAAC,CAAC,KAAK,SAAS,UAAU,KAAK,QAAQ,QAAQ,KAAK,UAAU,CAAC,UAAU,QAAQ,GAAQ,oBAAoB,KAAK,CAIlJ,MAAM,CAAC,MAAO,CAAe,KAAK,UAAQ,KAAK,UAAU,CAAC,KAAK,SAAS,KAAK,QAAQ,QAAQ,KAAK,CAAmB,KAAlB,MAAK,QAAQ,KAAW,KAAM,CAEjI,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,SAAS,KAAK,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,MAAU,WAAW,iEAAiE,CAAC,SAAS,QAAQ,QAAQ,QAAQ,CAAE,OAAO,IAAI,oBAAoB,KAAK,MAAM,KAAK,OAAO,EAAE,EAAE,OAAO,KAAK,KAAK,CAAC,IAAI,GAAG,EAAE,aAAa,CAAC,CAAC,KAAK,YAAY,EAAE,CAAC,KAAK,SAAS,KAAK,QAAQ,CAM1U,OAAO,cAAc,MAAM,SAAS,CAAC,IAAI,IAAI,KAAK,MAAM,GAAG,EAAE,UAAU,EAAE,SAAS,KAAK,SAAS,CAAC,OAAO,EAAE,IAAI,IAAI,aAAa,KAAK,SAAS,CAAC,GAAG,SAAS,IAAI,MAAM,MAAM,GAAG,GAAG,WAAW,QAAQ,IAAI,GAAG,CAAC,GAAG,OAAO,GAAI,OAAO,KAMhO,OAAO,kBAAkB,MAAM,OAAK,MAAM,GAAK,CAAC,OAAKU,OAAK,aAAa,CAAC,IAAI,IAAI,KAAK,MAAM,GAAG,EAAE,MAAM,KAAK,GAAG,GAAGA,OAAK,CAAC,OAAO,EAAE,GAAG,MAAM,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,MAAMA,OAAK,QAAQ,EAAE,CAAC,GAAG,MAAM,KAAK,EAAE,OAAO,GAAG,CAAC,KAAK,KAAKA,OAAK,MAAM,GAAG,EAAE,CAAC,KAAK,KAAKA,OAAK,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAI,OAAO,KAAM,YAAY,OAAK,MAAM,WAAW,SAAS,SAAS,QAAQ,IAAK,GAAE,CAAC,KAAK,KAAKA,OAAK,KAAK,MAAM,MAAM,KAAK,WAAW,WAAW,KAAK,SAAS,SAAS,KAAK,SAAS,SAAS,KAAK,QAAQ,QAAQ,KAAK,QAAQ,OAAY,cAA8B,MAAM,QAAQ,CAAK,WAA2B,MAAM,OAAO,CAAC,QAAQ,QAAQ,CAAC,GAAG,CAAC,OAAO,OAAO,MAAM,KAAK,IAAI,KAAK,OAAO,GAAG,GAAG,CAAC,MAAM,KAAK,KAAK,KAAK,EAAE,MAAM,KAAK,KAAK,CAAC,KAAK,GAAG,GAAG,KAAK,GAAG,CAAC,MAAU,MAAM,wBAAwB,KAAK,UAAU,OAAO,GAAG,CAAC,CAAC,OAAO,MAAO,CAAC,CAAuvC,cAAc,KAAK,CAO/kE,OAAO,IAAI,KAAK,EAAE,CAAC,IAAI,KAAK,KAAK,MAAM,IAAI,OAAO,IAAI,CAAI,CAAC,cAAc,qBAAqB,KAAK,QAAgW,OAArV,eAAe,MAAM,eAAe,KAAK,MAAM,eAAe,KAAK,GAAO,qBAAqB,eAAe,IAAU,CAAC,KAAK,GAAG,KAAK,IAAI,EAAS,KAAK,EAAE,cAAc,IAAI,eAAe,KAAU,CAAC,KAAK,KAAK,KAAK,MAAM,cAAc,KAAK,KAAK,CAAC,KAAK,cAAc,CAAY,CAAC,KAAK,KAAK,KAAK,MAAM,EAAE,cAAc,KAAK,KAAK,CAAC,KAAK,KAAK,KAAK,CAAS,KAG1c,aAAa,IAAI,KAAK,EAAE,CAAC,GAAG,KAAK,QAAQ,qBAAqB,KAAK,KAAK,QAAQ,cAAc,MAAM,GAAG,GAAG,CAAC,KAAK,MAAM,KAAK,OAAO,IAAI,KAAK,CAAC,OAAO,KAAK,MAAM,IAAI,KAAK,KAAK,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,CAAC,CAE1M,OAAO,IAAI,KAAK,EAAE,CAAC,GAAG,CAAC,KAAK,MAAM,KAAK,OAAO,IAAI,KAAK,CAAK,OAAO,KAAK,YAAY,KAAK,IAAI,KAAK,CAAK,SAAS,KAAK,QAAQ,oBAAoB,KAAK,QAAQ,oBAAoB,KAAK,CAAC,GAA8E,OAAxE,SAAS,KAAG,QAAQ,SAAS,KAAK,YAAY,KAAK,KAAK,OAAO,OAAO,CAAC,EAAQ,OAG7Q,YAAY,KAAK,IAAI,KAAK,OAAO,CAAC,OAAO,YAAY,KAAK,KAAK,MAAM,QAAQ,IAAI,CAEjF,WAAW,IAAI,KAAK,EAAE,CAAC,GAAG,CAAC,KAAK,MAAM,KAAK,OAAO,IAAI,KAAK,CAAK,SAAS,KAAK,QAAQ,oBAAoB,GAAG,SAAS,CAAC,IAAI,UAAU,SAAS,KAAK,CAAC,GAAG,UAAU,GAAG,OAAO,UAAW,OAAO,KAAK,YAAY,KAAK,KAAK,OAAO,OAAO,CAAC,CAIvO,IAAI,gBAAgB,CAAC,OAAO,KAAK,QAAQ,eAAe,KAExD,YAAY,MAAM,QAAQ,EAAE,CAAC,CAAC,KAAK,MAAM,MAAM,KAAK,QAAQ,QAAQ,KAAK,KAAK,cAAc,MAAM,GAAQ,eAA+B,IAAI,SAA4zB,kBAAkB,cAAc,aAAa,CAEt/B,OAAO,OAAO,OAAK,IAAI,KAAK,CAAC,OAAO,IAAI,kBAAkBP,OAAK,IAAI,KAAK,CAGxE,IAAI,WAAW,CAAC,OAAO,KAAK,aAAa,KAAK,IAAI,CAMlD,IAAI,YAAY,CAAC,IAAI,KAAK,KAAK,MAAM,IAAI,OAAO,KAAK,KAAK,KAAK,CAAC,OAAO,CAAC,IAAI,QAAQ,KAAK,KAAK,QAAQ,KAAK,KAAK,CAAC,KAAM,QAAQ,QAAQ,QAAQ,OAAO,MAAM,QAAQ,MAAK,QAAQ,QAAQ,OAAO,GAAG,SAAS,QAAQ,KAAK,KAAK,CAAC,MAAM,KAAK,KAAK,MAAM,IAAI,OAAO,QAAQ,KAAK,CAAE,OAAO,KAAK,WAAW,KAAK,KAAK,CAGhT,UAAU,CAAC,IAAI,OAAO,KAAK,KAAK,OAAO,OAAO,OAAO,WAAW,OAAO,KAAK,IAAI,KAAK,KAAK,CAAC,EAAG,YAAY,OAAK,IAAI,KAAK,CAAC,MAAMA,OAAK,MAAMA,OAAK,QAAQ,CAAC,KAAK,KAAKA,OAAK,KAAK,IAAI,IAAI,KAAK,KAAK,OAA8mC,WAAW,SAAS,QAAQ,WAA8nC,YAA4B,MAAM,QAAQ,CAAK,aAA6B,IAAI,SAA8yR,eAAe,KAAK,CAcx1W,OAAO,OAAO,MAAM,QAAQ,CAAC,OAAO,IAAI,eAAe,MAAM,SAAS,EAAE,CAAC,CAAE,YAAY,MAAM,QAAQ,CAAC,KAAK,MAAM,MAAM,IAAI,QAAQ,SAAS,IAAI,KAAK,CAAC,IAAI,IAAI,YAAY,SAAS,CAAwE,MAAvE,CAAC,AAAU,UAAwB,OAAO,OAAO,KAAK,EAAG,IAAI,KAAK,KAAY,IAAK,IAAM,IAAI,OAAO,QAAQ,KAAK,SAAS,QAAQ,IAAI,QAAQ,IAAI,IAAI,QAAQ,IAAI,CAAC,IAAK,GAAQ,SAAS,QAAQ,MAAM,KAAK,MAAM,oBAAoB,SAAS,MAAM,KAAK,KAAK,iBAAiB,EAAE,SAAS,KAAK,SAAS,MAAM,MAAM,SAAS,IAAK,GAAE,KAAK,MAAM,eAAe,MAAM,IAAI,QAAQ,CAAC,IAAI,MAAM,IAAI,MAAM,MAAM,OAAO,IAAI,OAAO,OAAO,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,OAAO,QAAQ,IAAI,YAAY,QAAQ,CAAC,KAAK,KAAK,UAAU,QAAQ,YAAiB,iBAAiC,MAAM,QAAQ,CAAK,oBAAoC,MAAM,OAAO,CAAC,QAAQ,OAAO,CAAC,OAAO,OAAO,OAAO,CAAC,OAAO,GAAG,CAAC,MAAO,CAAC,CAA4+B,gBAAgB,KAAK,CAAC,OAAO,OAAO,CAAC,IAAI,KAAK,WAAW,OAAO,MAAM,CAAC,aAAa,gBAAgB,OAAO,MAAM,CAAK,YAAY,cAAc,gBAAgB,OAAO,WAAW,CAAI,KAAK,OAAO,OAAO,KAAK,SAAS,IAAI,CAAC,aAAa,KAAK,MAAM,KAAK,KAAK,KAAM,KAAK,YAAY,KAAK,YAAY,IAAI,OAAO,QAAQ,EAAU,MAAM,KAAK,MAAM,OAAO,iBAAiB,eAAa,KAAK,KAAK,KAAK,KAAK,YAAY,KAAK,UAAU,OAAO,KAAK,aAAa,EAAG,UAAU,KAAK,aAAa,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,KAAK,OAAO,OAAO,WAAW,KAAK,IAAI,QAAQ,IAAI,gBAAgB,IAAI,GAAG,CAAC,KAAK,MAAM,KAAK,cAAe,cAAc,KAAK,KAAK,cAAc,MAAM,IAAI,QAAQ,CAAC,QAAQ,IAAI,MAAM,IAAI,KAAK,UAAU,SAAS,KAAK,UAAU,OAAO,WAAW,KAAK,CAAC,MAAM,MAAM,CAAC,EAAE,EAAG,KAAK,GAAG,CAAE,OAAO,QAAQ,QAAQ,CAAE,YAAY,KAAK,CAAC,KAAK,UAA0B,OAAO,OAAO,KAAK,CAAC,KAAK,KAAK,WAAW,KAAK,MAAM,CAAC,KAAK,YAAY,KAAK,UAAU,KAAK,gBAAgB,KAAK,MAAM,CAAC,GAAQ,gBAAgC,KAAK,KAAqB,WAAW,UAAU,gBAAgB,CAAC,YAAY,GAAG,EAAE,YAAY,CAAC,CAAC,CAAuE,KAAK,KAA2B,KAAK,KAAsC,KAAK,QAA2D,KAAK,SAAkC,KAAK,OAA+B,KAAK,cAAkD,KAAK,QAA4B,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,iBAAiB,KAAK,UAAgC,KAAK,QAAQ,KAAK,SAA8B,KAAK,OAAO,KAAK,QAA6B,KAAK,OAAO,KAAK,OAAoC,KAAK,OAA6D,KAAK,aAA4D,KAAK,aAAkC,KAAK,SAAS,KAAK,UAA8B,KAAK,UAA2D,KAAK,aAAc,KAAK,UAA8D,KAAK,aAAiC,KAAK,QAA2B,KAAK,QAA6B,UAA0B,WAAW,UAAU,CAAC,mCAAmC,CAAC,gBAAgB,YAAY,CAAC,sCAAsC,CAAC,gBAAgB,YAAY,CAAC,CAAC,CAAK,gBAAgB,IAAQ,gBAAgB,SAAa,sBAAsC,MAAM,OAAO,CAAC,QAAQ,QAAQ,CAAC,OAAO,cAAc,QAAQ,CAAC,YAAY,GAAK,SAAS,gBAAgB,gBAAgB,gBAAgB,YAAY,mBAAmB,CAAC,EAAG,CAAC,CAAK,aAA6B,WAAW,KAAK,CAAC,MAAM,qBAAqB,CAAC,CAAK,gBAAgC,WAAW,KAAK,CAAC,MAAM,wBAAwB,CAAC,CAAs9B,sBAAsB,CAA/rB,WAAW,OAAO,CAAC,QAAQ,CAAC,OAAO,WAAW,MAAO,OAAO,KAAK,GAAG,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,GAAG,UAAU,OAAO,KAAK,IAAIhB,cAAY,EAAE,CAAK,OAAO,GAAG,MAAM,MAAM,sBAAsB,CAAC,IAAI,IAAI,SAAS,GAAG,MAAM,UAAU,OAAO,CAAC,GAAG,CAAC,MAAM,MAAM,SAAS,IAAI,MAAM,cAAc,GAAG,MAAM,MAAM,KAAK,GAAG,OAAO,EAAE,MAAM,KAAK,GAAG,cAAc,GAAG,MAAM,MAAM,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,cAAc,cAAc,GAAG,MAAM,MAAM,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,GAAG,MAAM,IAAI,QAAQ,cAAc,GAAG,MAAM,MAAM,KAAK,EAAE,GAAG,OAAO,EAAK,QAAM,cAAYA,cAAY,OAAO,OAAO,YAAY,MAAM,GAAG,MAAM,CAAC,EAAE,OAAO,WAAW,IAAIA,cAAY,GAAK,EAAG,QAAQ,GAAG,WAAW,YAAY,KAAK,EAAE,CAAC,CAAC,CAAiD,UAAU,CAAyG,sBAAsC,IAAI,SAA2kG,aAAa,KAAK,CAEl1R,KAAK,CAAC,OAAO,KAAK,KAAK,KAAK,OAAO,OAEnC,KAAK,CAAC,OAAO,KAAK,KAAK,EAGvB,MAAM,CAAC,OAAO,KAAK,OAAO,OAAO,KAAK,IAAI,EAAE,IAAK,GAEjD,MAAM,CAAC,GAAG,KAAK,IAAI,KAAK,OAAO,OAAO,OAAO,KAAK,OAAO,OAAO,KAAK,MAAM,CAG3E,IAAI,MAAM,CAAC,IAAI,GAAG,KAAK,OAAO,OAAO,KAAK,IAAI,CAAK,GAAyG,GAAtG,AAA4C,GAAzC,OAAO,OAAO,SAAY,IAAI,MAAc,KAAK,iBAAiB,OAAO,MAAM,KAAK,GAAG,CAAC,MAAM,GAAG,EAAK,GAAe,MAAX,EAAE,KAAK,IAAW,GAIrL,SAAS,MAAM,CAAC,IAAI,MAAM,KAAK,IAAI,KAAM,KAAK,IAAI,MAAM,GAAG,OAAO,KAAK,IAAI,MAG3E,UAAU,CAAC,IAAI,MAAM,KAAK,IAAI,KAAM,aAAa,KAAK,KAAK,OAAO,OAAO,KAAK,IAAI,CAAC,EAAC,EAAE,KAAK,IAAI,OAAO,KAAK,IAAI,MAE/G,WAAW,CAAC,KAAK,IAAI,KAAK,OAAO,OAGjC,OAAO,GAAG,CAAC,IAAI,MAAM,KAAK,OAAO,QAAQ,GAAG,KAAK,IAAI,CAAC,GAAG,MAAM,GAAmB,MAAf,MAAK,IAAI,MAAa,GAEzF,OAAO,EAAE,CAAC,KAAK,KAAK,EAEpB,QAAQ,CAA6K,OAAzK,KAAK,cAAc,KAAK,QAAO,KAAK,gBAAgB,SAAS,KAAK,OAAO,KAAK,MAAM,KAAK,QAAQ,KAAK,cAAc,KAAK,gBAAgB,CAAC,KAAK,cAAc,KAAK,OAAc,KAAK,gBAEjM,aAAa,CAAC,IAAI,IAAI,OAAW,KAAK,gBAAyC,SAAS,KAAK,OAAO,KAAK,KAAK,QAAQ,CAUtH,MAAM,QAAQ,QAAQ,gBAAgB,CAAC,GAAG,OAAO,SAAS,SAAS,CAAC,IAAI,MAAM,KAAK,gBAAgB,IAAI,aAAa,CAAC,IAAQ,OAAO,KAAK,OAAO,OAAO,KAAK,IAAI,QAAQ,OAAO,CAAiG,OAA7F,MAAM,OAAO,EAAE,MAAM,QAAQ,EAAK,UAAU,KAAM,KAAK,KAAK,QAAQ,QAAc,IAAkB,SAAU,CAAC,IAAI,MAAM,KAAK,OAAO,MAAM,KAAK,IAAI,CAAC,MAAM,QAAQ,CAAyF,OAArF,OAAO,MAAM,MAAM,EAAS,MAAQ,OAAO,UAAU,KAAM,KAAK,KAAK,MAAM,GAAG,QAAc,QAEtb,SAAS,CAAC,OAAO,KAAK,OAAO,MAAM,KAAK,MAAM,KAAK,IAAI,CAEvD,YAAY,SAAO,QAAQ,YAAY,eAAe,CAAC,KAAK,OAAOE,SAAO,KAAK,QAAQ,QAAQ,KAAK,WAAW,YAAY,KAAK,eAAe,eAAe,KAAK,IAAI,EAAE,KAAK,MAAM,EAAE,KAAK,cAAc,EAAE,KAAK,gBAAgB,IAAqf,aAA6B,IAAI,QAAY,eAAe,cAAc,QAAQ,CAEvyB,OAAO,OAAO,KAAK,CAAC,OAAO,IAAI,eAAe,KAAK,CAAE,UAAU,KAAG,IAAI,CAAC,IAAI,KAAK,WAAWW,KAAG,MAAM,CAAC,GAAG,KAAK,QAAQ,IAAI,CAAC,KAAM,IAAI,GAAG,MAAM,KAAK,SAAQ,GAAG,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,KAAK,IAAI,KAAe,CAAC,qBAAqBA,KAAG,QAAW,sBAAqB,KAAK,aAAa,IAAIA,KAAG,MAAM,CAAI,MAAM,MAAM,KAAK,IAAI,MAAI,KAAK,IAAK,KAAG,IAAI,MAAM,UAAU,KAAK,KAAK,EAAE,GAAG,KAAK,MAAgC,IAAI,CAAC,SAAS,MAAqH,GAA5G,OAAO,MAAM,MAAM,MAAM,SAAS,MAAM,IAAI,IAAQ,MAAM,KAAK,aAAa,WAAWA,KAAG,KAAK,CAAC,SAAS,GAAM,IAAI,SAAS,IAAI,OAAO,KAAK,KAAM,SAAS,KAAI,CAAC,IAAI,MAAMA,KAAG,MAAM,IAAI,OAAO,SAAS,CAAC,IAAI,KAAK,IAAI,IAAI,MAAM,GAAG,CAAC,GAAG,MAAM,OAAO,CAAC,IAAI,YAAY,oBAAoB,oBAAoB,MAAM,KAAK,CAAC,GAAO,OAAO,IAAI,aAAa,MAAM,KAAKA,KAAG,MAAM,QAAQA,KAAG,KAAK,YAAY,EAAE,IAAK,GAAE,YAAY,CAAC,KAAM,OAAO,IAAI,IAAI,MAAM,MAAK,YAAU,KAAK,aAAa,MAAM,OAAO,MAAM,MAAO,KAAK,aAAa,UAAU,MAAMA,KAAG,KAAK,CAAE,GAAG,KAAK,IAAI,MAAM,SAAS,MAAM,GAAG,EAAG,IAAI,KAAKA,KAAG,OAAO,IAAI,CAAyE,OAArE,qBAAqB,MAAM,MAAK,aAAa,IAAIA,KAAG,MAAM,KAAK,KAAK,CAAQ,KAAK,aAAa,OAAO,MAAM,WAAW,KAAK,KAAK,KAAK,CAAC,GAAGA,KAAG,CAAE,IAAI,eAAe,CAAC,MAAO,GAAO,YAAY,OAAO,CAAC,IAAI,KAAK,oBAAoB,OAAO,aAAa,CAAKC,IAAE,WAAW,OAAO,CAACJ,OAAS,KAAK,IAAI,cAAc,MAAM,CAAC,YAAY,MAAM,UAAU,OAAO,CAAC,OAAO,IAAIC,QAAMD,OAAK,MAAM,UAAU,OAAO,GAAI,MAAM,KAAK,KAAK,CAAC,cAAc,IAAI,KAAG,MAAM,KAAK,UAAUG,KAAG,IAAI,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,KAAK,QAAQ,MAAM,KAAK,CAAC,OAAK,KAAK,KAAK,aAAaC,IAAE,KAAK,WAAW,IAAI,SAAS,CAAC,QAAQ,GAAK,CAAC,CAAC,KAAK,WAAW,OAAO,WAAW,IAAI,WAAWA,IAAE,WAAW,CAAC,oBAAg2CH,QAAM,KAAK,CAAC,SAAS,CAAC,IAAI,QAAQ,aAAa,KAAK,CAAK,SAAS,KAAK,WAAW,KAAK,KAAK,GAAG,KAAK,IAAI,KAAK,GAAG,KAAK,UAAU,CAAK,IAAI,KAAK,IAAI,SAAS,KAAK,WAAW,KAAK,CAAkD,IAA9C,UAAQ,IAAI,KAAK,IAAI,IAAI,QAAQ,SAAS,GAAG,EAAO,KAAK,UAAU,KAAI,KAAK,UAAU,QAAQ,CAA+N,OAA3N,KAAK,WAAW,KAAK,WAAU,KAAK,aAAa,CAAI,KAAK,WAAW,SAAgB,KAAK,QAAQ,CAAI,SAAS,KAAK,WAAW,QAAQ,SAAS,IAAI,QAAQ,gBAAgB,KAAK,UAAU,SAAS,CAAQ,KAAK,QAAQ,EAAS,KAAM,OAAO,IAAI,CAAC,KAAK,UAAU,IAAK,UAAU,IAAI,CAAC,IAAI,MAAM,KAAK,MAAM,MAAM,IAAI,CAAC,GAAI,KAAK,MAAM,WAAoF,OAAO;IAAM,MAAM,QAA5F,CAAC,IAAI,IAAI,MAAM,QAAQ;EAAK,CAAI,IAAI,KAAG,MAAM,MAAM,MAAM,EAAE,IAAI,EAAiC,OAAO,IAAI,MAAM,QAAQ,KAAK,GAAG,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,CAAE,UAAU,CAAC,IAAI,KAAK,KAAK,UAAU,KAAK,KAAK,UAAU,KAAK,CAAC,IAAI,KAAK,KAAK,OAAO,IAAI,IAAI,MAAM,KAAK,aAAa,CAAC,IAAI,SAAS,KAAK,OAAO,OAAO,GAAgF,GAA1E,UAAU,MAAU,KAAK,KAAK,MAAM,EAAE,UAAU,IAAI,KAAK,QAAQ,CAAC,QAAW,OAAO,KAAK,OAAO,QAAO,MAAM,IAAI,WAAW,KAAK,OAAO,OAAO,KAAS,MAAM,KAAK,UAAU,WAAW,CAAC,MAAM,MAAM,IAAI,WAAW,MAAM,OAAQ,MAAM,CAAC,KAAK,IAAI,CAAE,WAAW,IAAI,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,IAAI,KAAK,OAAO,KAAK,YAAY,GAAG,OAAO,IAAI,OAAO,GAAG,KAAK,EAAE,IAAI,OAAO,KAAK,OAAO,MAAM,IAAI,MAAM,KAAK,OAAO,EAAE,KAAK,YAAY,KAAK,QAAQ,MAAM,IAAK,OAAO,OAAQ,gBAAgB,CAAC,KAAM,KAAK,OAAO,KAAK,YAAY,GAAG,KAAK,WAAU,KAAK,aAAc,UAAU,KAAG,KAAK,GAAG,KAAK,OAAO,CAAC,GAAG,KAAK,OAAO,OAAO,EAAE,CAAC,OAAO,KAAK,WAAW,KAAK,OAAO,EAAE,CAAC,MAAM,OAAO,IAAI,KAAK,KAAK,MAAM,OAAO,OAAO,KAAK,WAAW,GAAG,OAAO,GAAG,CAAC,IAAI,OAAO,MAAM,KAAK,MAAM,OAAO,KAAuC,OAAjC,KAAK,MAAM,KAAKL,KAAG,KAAK,GAAG,KAAK,CAAQ,OAAQ,UAAU,QAAQ,CAAC,GAAG,CAAC,KAAK,KAAK,KAAK,UAAU,CAAC,OAAO,EAAE,CAAC,cAAc,KAAK,KAAS,OAAO,IAAI,aAAa,KAAK,QAAQ,QAAQ,MAAM,QAAQ,EAAE,QAAQ,cAAc,QAAQ,MAAM,CAAC,EAAE,CAAC,GAAG,OAAO,KAAK,CAAE,aAAa,UAAU,KAAK,MAAM,OAAO,WAAW,MAAO,KAAM,CAAC,OAAO,KAAK,EAAC,CAAC,IAAI,MAAMF,YAAU,aAAa,MAAM,OAAO,KAAK,MAAM,CAAoI,GAAhI,QAAM,OAAO,KAAK,UAAU,KAAK,KAAK,WAAW,QAAQ,MAAM,CAAC,KAAK,UAAU,OAAO,MAAM,KAAK,UAAU,OAAO,IAAI,EAAE,OAAO,EAAI,OAAO,MAAM,IAAI,MAAQ,KAAK,UAAU,IAAI,KAAK,gBAAgB,CAAI,KAAK,UAAU,KAAK,IAAG,KAAK,YAAa,aAAa,CAAC,IAAI,KAAK,KAAK,MAAM,CAAC,OAAO,KAAK,MAAM,MAAM,KAAK,WAAW,OAAO,KAAK,UAAU,KAAK,WAAW,QAAQ,MAAM,EAAE,gBAAgB,KAAK,OAAO,KAAK,YAAY,CAAC,CAAC,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,SAAS,KAAK,UAAU,KAAK,OAAO,CAAC,CAAC,KAAK,KAAK,WAAW,KAAK,KAAK,aAAa,UAAU,KAAK,MAAM,CAAE,CAAE,CAAC,CAAC,KAAK,OAAO,KAAK,KAAK,CAAC,KAAK,SAAS,KAAK,KAAK,WAAW,KAAK,OAAO,GAAG,KAAK,CAAC,KAAK,MAAM,EAAE,CAAC,KAAK,YAAY,IAAK,GAAE,KAAK,WAAW,KAAK,UAAW,QAAQ,CAAC,OAAO,IAAI,KAAK,KAAK,KAAK,QAAQ,KAAK,OAAO,KAAK,SAAS,KAAK,UAAU,KAAK,OAAO,GAAG,KAAK,CAAC,SAAS,CAAE,YAAY,KAAK,MAAM,UAAU,OAAO,CAAC,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,KAAK,UAAU,UAAU,KAAK,OAAO,OAAO,KAAK,UAAU,KAAK,KAAK,OAAO,EAAE,CAAC,KAAK,SAAS,EAAE,CAAC,KAAK,MAAM,EAAE,CAAC,KAAK,YAAY,IAAK,GAAE,KAAK,WAAW,EAAE,KAAK,GAAG,OAAO,OAAO,OAAO,GAAG,GAAG,IAAI,QAAQ,aAAa,KAAK,CAAC,KAAK,OAAO,GAAG,KAAQ,CAAC,MAAM,MAAM,qBAAqB,KAAK,UAAU,KAAK,SAAgD,MAAM,CAAC,KAAK,MAAM,MAAM,KAAK,UAAU,KAAK,WAAW,KAAK,KAAK,OAAO,IAAI,IAAIQ,IAAE,EAAEA,IAAE,KAAK,SAAS,OAAO,MAAK,KAAK,OAAO,KAAK,KAAK,SAASA,KAAG,CAAC,KAAK,SAAS,KAAK,KAAK,UAAUA,KAAG,CAAK,SAAS,KAAK,UAAU,QAAQ,SAAS,KAAK,MAAK,KAAK,MAAM,KAAK,KAAK,aAAa,WAAW,cAAc,QAAQ,MAAM,CAAC,CAAC,QAAQ,gBAAgB,KAAK,UAAU,QAAQ,SAAS,KAAK,CAAC,KAAK,UAAU,QAAQ,SAAS,MAAM,KAAK,gBAAgB,GAAkO,SAAyB,OAAO,OAAO,KAAK,CAAK,UAAU,CAAC,SAAS,KAAK,CAAK,QAAwB,IAAI,QAAQ,UAAU,CAAK,OAAO,EAAE,CAAK,aAA6B,OAAO,OAAO,KAAK,CAAC,IAAI,GAAG,CAAC,WAAWW,SAAO,CAAC,CAAC,WAAW,eAAe,CAAC,CAAC,aAAa,uBAAuB,CAAC,CAAC,WAAW,iBAAiB,CAAC,CAAC,MAAM,0BAA0B,CAAC,CAAC,MAAM,UAAU,CAAC,CAAC,YAAY,gBAAgB,CAAC,CAAC,OAAO,WAAW,CAAC,CAAC,UAAU,wBAAwB,CAAC,CAAC,YAAY,WAAW,CAAC,CAAC,QAAQ,UAAU,CAAC,CAAC,SAAS,UAAU,CAAC,CAAC,WAAW,eAAe,CAAE,CAAC,aAAa,YAA4B,gBAAgB,SAASA,OAAK,CAAK,WAAW,KAAK,CAAC,QAAQ,IAAI,CAAC,OAAO,IAAM,KAAK,MAAM,OAAO,KAAK,MAAM,KAAK,gBAAgB,KAAK,MAAM,IAAI,EAAnE,EAAsE,YAAY,MAAM,CAAC,KAAK,MAAM,MAAM,KAAK,MAAM,OAAO,OAAuB,OAAO,OAAO,KAAK,CAAC,aAAa,GAAQ,kBAAkC,IAAI,WAAW,SAAS,ICzIhwL,SAAS,YAAY,MAAM,KAAK,YAAY,CAAC,GAAG,OAAO,OAAO,SAAS,OAAO,MAAM,IAAI,MAAM,KAAK,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,IAAI,MAAM,QAAQ,CAAC,IAAI,MAAM,EAAE,OAAO,CAAC,IAAI,KAAK,MAAM,WAAW,MAAM,CAAC,KAAK,GAAM,GAAG,MAAM,IAAI,CAAC,MAAM,MAAM,MAAU,MAAM,IAAG,OAAU,MAAM,IAAG,OAAO,IAAI,MAAM,KAAK,GAAmD,GAA7C,OAAO,KAAI,OAAO,GAAG,KAAK,IAAM,OAAO,MAAS,KAAK,MAAM,OAAO,GAAO,MAAM,MAAM,OAAO,MAAW,MAAM,IAAI,KAAK,MAAM,CAAE,OAAO,MAwB1yE,SAAS,UAAU,KAAK,MAAM,MAAM,MAAM,UAAU,WAAW,CAAC,IAAI,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC,SAAS,MAAM,EAAE,OAAO,KAAK,MAAY,UAAU,KAAK,SAAS,GAA7B,CAAqC,IAAI,OAAO,KAAK,MAAM,GAAG,IAAI,IAAIX,IAAE,MAAM,EAAEA,IAAE,OAAO,KAAG,EAAE,IAAI,KAAKA,IAAE,GAAG,WAAW,EAAE,CAAC,IAAI,KAAK,KAAKA,KAAG,GAAG,QAAQ,OAAO,KAAK,GAAG,MAAM,MAAM,OAAO,IAAI,MAAM,MAAM,OAAO,MAAM,UAAU,KAAK,MAAM,MAAM,MAAM,UAAU,WAAW,EAAE,CAAC,MAAM,YAAY,KAAK,CAAC,OAAQ,IAAI,KAAK,MAAM,KAAK,IAAI,EAAE,KAAK,KAAK,MAAM,GAAG,GAAG,MAAM,KAAK,GAAG,KAAK,KAAK,KAAK,OAAO,KAAK,EAAE,IAAI,OAAO,KAAK,OAAO,KAAK,EAAE,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO,KAAK,EAAE,GAAG,SAAS,KAAM,KAAK,IAAI,MAAM,CAAC,IAAI,IAAI,IAAI,MAAM,EAAM,MAAM,OAAO,KAAK,KAAK,GAAO,KAAK,KAAK,OAAO,GAAG,KAAK,MAAM,IAAI,MAAM,GAAG,KAAK,KAAK,KAAK,YAAY,MAAM,GAAG,IAAI,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,GAAG,MAAM,SAAS,CAAC,SAAS,MAAO,OAAQ,SAAS,WAAW,KAAK,MAAM,KAAK,CAAC,IAAI,IAAIA,IAAE,MAAM,MAAM,KAAK,KAAKA,OAAK,MAAM,MAAI,GAAG,MAAM,KAAK,OAAOA,IAAE,MAAM,MAAM,GAAI,SAAS,UAAU,MAAM,KAAK,UAAU,YAAY,CAAC,IAAI,MAAM,WAAW,UAAU,YAAY,KAAK,CAAC,OAAO,MAAM,GAAG,WAAW,UAAU,YAAY,MAAM,CAAC,MAA8M,SAAS,MAAM,KAAK,IAAI,KAAK,CAAC,IAAI,OAAO,KAAK,OAAO,SAAS,iBAAiB,CAAoB,IAAnB,OAAO,OAAO,IAAI,GAAS,GAAG,EAAE,KAAK,EAAE,OAAO,YAAY,IAAI,CAAC,OAAO,WAAW,IAAI,EAAE,OAAO,CAAC,IAAI,KAAK,EAAE,OAAO,GAAG,IAAI,OAAO,KAAK,MAAM,CAAC,OAAO,KAAK,QAAQ,OAAO,KAAK,EAAE,KAAK,IAAI,EAAE,KAAK,IAAI,OAAO,GAAG,EAAE,IAAI,GAAG,CAAC,CAAC,KAAK,IAAI,KAAK,OAAO,KAAK,IAAI,OAAO,KAAK,EAAE,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,OAAO,aAAa,CAAC,OAAO,aAAa,CAAC,MAAM,GAAG,CAAC,OAAO,QAAQ,CAAC,OAAO,KAAK,EAAE,EAAE,KAAK,QAe70B,SAAS,eAAe,MAAM,UAAU,CAAC,IAAI,IAAIA,IAAE,EAAEA,IAAE,UAAU,OAAO,MAAI,CAAC,IAAI,MAAM,UAAUA,KAAG,GAAG,MAAM,KAAK,MAAM,KAAK,MAAM,UAAU,MAAM,CAAC,CAAI,UAAUA,KAAG,MAAM,MAAM,QAAM,UAAUA,KAAG,OAAM,QAAS,UAAU,KAAK,MAAM,CA0BszB,SAAS,KAAK,KAAK,IAAI,CAAC,OAAO,KAAK,KAAK,KAAK,IAAI,IAAI,GAAI,SAAS,aAAa,OAAO,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,SAAS,OAAO,CAAC,IAAI,QAAQ,MAAM,EAAE,WAAc,MAAM,KAAK,MAAM,EAAE,OAAO,KAAK,SAAS,MAAM,MAAM,IAAI,UAAU,MAAM,EAAE,OAAO,UAAU,MAAM,MAAM,EAAE,GAAG,CAAC,MAAM,KAAK,MAAM,MAAM,SAAO,KAAK,OAAO,OAAO,KAAM,SAAS,eAAe,KAAK,CAAC,GAAG,KAAK,SAAS,CAAC,IAAI,KAAK,KAAK,OAAO,EAAE,EAAE,OAAO,MAAM,QAAQ,KAAK,SAAS,MAAM,MAAM,EAAE,EAAE,KAAM,OAAO,KAAK,kSAxHh3E,CAAI,MAAM,KAAK,CAC/L,UAAU,CAAC,MAAM,IAAI,KAAK,MAAM,QAAQ,EAAE,MAAIA,IAAE,GAAG,EAAE,CAAC,OAAO,KAAK,MAAM,CAAC,IAAI,KAAK,MAAM,KAAK,MAAM,IAAI,KAAK,MAAM,KAElH,OAAO,MAAM,IAAE,MAAM,IAAI,EAAE,CAAC,IAAIC,KAAGC,IAAE,OAAO,QAAQ,OAAO,IAAI,MAAMA,IAAE,EAAE,CAAC,MAAM,IAAI,IAAI,EAAE,EAAE,CAAC,EAAED,KAAG,IAAI,aAAaA,KAAGA,KAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAI5I,IAAI,SAAS,CAAC,OAAO,KAAK,WAAW,KAAK,WAAW,QAAQ,KAG7D,UAAU,MAAM,MAAM,CAAC,KAAK,MAAM,KAAK,KAAK,MAAM,MAAM,KAAK,WAAW,KAAK,OAAO,OAAO,CAAC,KAAK,MAAM,MAEvG,OAAO,OAAO,CAAC,IAAIE,KAAG,IAAI,MAAM,QAAQ,GAAG,KAAK,OAAO,MAAS,CAAC,QAAQ,KAAK,EAAM,MAAM,OAAO,kBAAkB,KAAK,CAA4B,GAAxB,QAAM,KAAK,OAAO,OAAS,OAAO,EAAE,CAAC,KAAK,UAAU,OAAO,QAAQ,KAAK,MAAM,KAAK,GAAK,CAAC,KAAK,UAAU,CAAI,KAAK,OAAO,eAAc,KAAK,UAAU,KAAK,KAAK,UAAU,KAAK,UAAU,EAAE,GAAK,CAAC,KAAK,cAAc,KAAK,KAAK,UAAU,CAAC,OAAQ,IAAIC,OAAK,KAAK,MAAM,QAAQ,MAAM,GAAG,GAAG,OAAO,OAAO,EAAE,GAAO,MAAMA,OAAK,KAAK,MAAMA,OAAK,GAAG,KAAK,EAAE,OAAO,GAAG,KAAK,KAAK,KAAK,UAAU,MAAS,MAAM,KAAK,CAAM,KAAK,EAAE,OAAO,QAAQ,MAAM,OAAqC,cAAiB,OAAO,KAAK,EAAE,uBAAuB,KAAK,EAAE,oBAAoB,KAAK,EAAE,qBAAqB,MAAc,KAAK,EAAE,qBAAqB,OAAM,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,sBAAsB,MAAM,KAAK,EAAE,qBAAqB,OAAO,IAAI,WAAWA,OAAK,KAAK,MAAMA,OAAK,GAAG,EAAE,MAAM,KAAK,WAAW,KAAK,OAAO,OAAO,WAAW,GAAG,KAAK,OAAO,eAAe,OAAO,OAAO,CAAC,IAAI,IAAI,OAAO,UAAU,KAAK,MAAM,EAAE,CAAC,KAAK,IAAI,KAAK,UAAU,KAAK,UAAU,KAAK,MAAM,IAAI,MAAM,EAAE,GAAK,CAAE,GAAG,OAAO,OAAQ,KAAK,MAAM,KAAK,MAAMA,YAAW,CAAC,IAAI,YAAY,KAAK,MAAMA,OAAK,GAAG,KAAK,MAAM,OAAO,QAAQ,YAAY,KAAK,GAAK,CAAE,KAAM,KAAK,MAAM,OAAOA,QAAK,KAAK,MAAM,KAAK,CAAC,KAAK,cAAc,KAAK,MAAM,CAEvxC,UAAU,KAAK,MAAM,IAAI,KAAK,EAAE,SAAS,GAAM,CAAC,GAAG,MAAM,IAAI,CAAC,KAAK,MAAM,QAAQ,KAAK,MAAM,KAAK,MAAM,OAAO,GAAG,KAAK,OAAO,OAAO,KAAK,YAAY,CAAC,IAAI,IAAI,KAAKC,MAAI,KAAK,OAAO,OAAuF,GAA7EA,OAAK,GAAG,IAAI,SAAQ,MAAI,IAAI,WAAW,IAAI,OAAO,WAAW,IAAI,IAAI,QAAWA,MAAI,GAAG,IAAI,OAAOA,MAAI,IAAI,GAAG,IAAI,OAAOA,MAAI,GAAG,GAAG,CAAC,GAAG,OAAO,IAAI,OAAO,GAAG,IAAI,OAAOA,MAAI,IAAI,MAAM,CAAC,IAAI,OAAOA,MAAI,GAAG,IAAI,SAAU,GAAG,CAAC,UAAU,KAAK,KAAK,IAAK,KAAK,OAAO,KAAK,KAAK,MAAM,IAAI,KAAK,KAAM,CAAC,IAAI,MAAM,KAAK,OAAO,OAAO,GAAG,MAAM,GAAG,KAAK,OAAO,MAAM,IAAI,EAAE,KAAM,MAAM,GAAG,KAAK,OAAO,MAAM,GAAG,KAAK,KAAK,OAAO,OAAO,KAAK,OAAO,MAAM,GAAG,KAAK,OAAO,MAAM,GAAG,KAAK,OAAO,MAAM,GAAG,KAAK,OAAO,MAAM,GAAG,KAAK,OAAO,MAAM,GAAG,KAAK,OAAO,MAAM,GAAG,KAAK,OAAO,MAAM,GAAG,OAAO,EAAK,KAAK,IAAE,MAAM,GAAG,KAAK,OAAO,OAAO,KAAK,KAAK,OAAO,MAAM,GAAG,MAAM,KAAK,OAAO,MAAM,GAAG,IAAI,KAAK,OAAO,MAAM,GAAG,MAEx2B,MAAM,OAAO,KAAK,QAAQ,CAAC,IAAI,MAAM,KAAK,IAAI,GAAG,OAAO,OAAQ,KAAK,UAAU,OAAO,MAAM,KAAK,IAAI,SAAW,OAAO,OAA0S,KAAK,IAAI,QAAQ,KAAK,aAAa,KAAK,MAAM,CAAI,MAAM,KAAK,EAAE,OAAO,SAAQ,KAAK,OAAO,KAAK,KAAK,MAAM,QAAQ,EAAE,KAAnZ,CAAC,IAAI,UAAU,OAAO,CAAC,QAAQ,KAAK,GAAK,QAAQ,KAAK,KAAK,MAAM,OAAO,WAAS,KAAK,IAAI,QAAY,OAAO,UAAU,UAAU,EAAE,GAAC,KAAK,UAAU,UAAS,KAAK,UAAU,UAAU,MAAM,CAAC,KAAK,aAAa,KAAK,MAAM,CAAI,MAAM,OAAO,SAAQ,KAAK,OAAO,KAAK,KAAK,MAAM,QAAQ,EAAE,EAE1Z,MAAM,OAAO,KAAK,QAAQ,CAAI,OAAO,MAAM,KAAK,OAAO,OAAO,CAAM,KAAK,MAAM,OAAO,KAAK,QAAQ,CAEnG,QAAQ,MAAM,KAAK,CAAC,IAAI,MAAM,KAAK,EAAE,OAAO,OAAO,GAAK,MAAM,GAAG,KAAK,EAAE,OAAO,QAAQ,SAAO,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC,SAAS,IAAI,MAAM,KAAK,IAAI,KAAK,UAAU,KAAK,IAAI,MAAM,MAAM,OAAO,KAAK,UAAU,KAAK,MAAM,CAAC,KAAK,OAAO,KAAK,MAAM,MAAM,KAAK,UAAU,GAAG,CAAI,KAAK,YAAW,KAAK,cAAc,KAAK,WAAW,QAAQ,MAAM,KAAK,WAAW,QAAQ,MAAM,KAAK,KAAK,EAAE,OAAO,MAAM,KAAK,IAAI,MAAM,OAAO,CAAC,CAAC,CAI7Z,OAAO,CAAC,IAAI,OAAO,KAAS,IAAI,OAAO,OAAO,OAAO,KAAM,IAAI,GAAG,OAAO,OAAO,IAAI,GAAG,OAAO,WAAU,KAAK,EAAE,IAAI,OAAO,OAAO,OAAO,MAAM,IAAI,CAACD,OAAK,OAAO,WAAW,IAAI,KAAM,QAAQA,QAAM,OAAO,YAAW,OAAO,OAAO,OAAO,OAAO,IAAI,MAAM,KAAK,EAAE,KAAK,MAAM,OAAO,CAAC,KAAK,MAAM,KAAK,UAAU,KAAK,IAAI,KAAK,MAAM,OAAOA,OAAK,KAAK,WAAW,KAAK,UAAU,OAAO,CAEpX,gBAAgB,KAAK,QAAQ,CAAC,IAAI,OAAO,MAAM,KAAK,EAAE,OAAO,QAAW,QAAO,KAAK,UAAU,KAAK,KAAK,IAAI,QAAQ,EAAE,CAAC,KAAK,UAAU,EAAE,KAAK,IAAI,QAAQ,OAAO,EAAE,EAAE,CAAC,KAAK,IAAI,KAAK,UAAU,QAAQ,KAAK,OAAO,IAIjN,SAAS,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,eAAe,KAAK,GAAG,CAAC,IAAI,OAAO,KAAK,EAAE,OAAO,UAAU,IAAI,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,UAAU,IAAI,MAAM,KAAK,CAAC,GAAG,QAAQ,EAAE,MAAO,GAAM,GAAA,EAAI,OAAO,OAAU,MAAO,GAAK,IAAI,OAAO,OAAO,EAG7N,gBAAgB,KAAK,CAAC,GAAG,KAAK,MAAM,QAAQ,IAAI,MAAM,EAAE,CAAC,IAAI,WAAW,KAAK,EAAE,OAAO,WAAW,KAAK,MAAM,CAAC,GAAG,WAAW,OAAO,GAAM,KAAK,MAAM,QAAQ,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC,IAAI,IAAIJ,IAAE,EAAE,EAAEA,IAAE,WAAW,OAAO,KAAG,GAAO,EAAE,WAAWA,IAAE,KAAK,KAAK,OAAO,KAAK,EAAE,OAAO,UAAU,EAAE,KAAK,EAAC,KAAK,KAAK,WAAWA,KAAG,EAAE,CAAE,GAAG,KAAK,MAAM,OAAO,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,OAAO,GAAM,GAAG,WAAW,OAAO,IAAI,EAAE,CAAC,IAAI,GAAG,WAAW,GAAG,GAAO,KAAK,MAAM,EAAE,KAAK,GAAG,GAAG,GAAG,GAAG,EAAC,KAAK,KAAK,WAAW,IAAI,GAAG,CAAE,WAAW,KAAM,IAAI,OAAO,EAAE,CAAC,IAAI,IAAI,GAAG,EAAE,GAAG,WAAW,QAAQ,OAAO,OAAO,EAAE,IAAI,EAAE,CAAC,IAAI,GAAG,WAAW,GAAG,GAAG,GAAG,IAAI,KAAK,MAAM,SAAS,IAAI,MAAM,KAAK,OAAO,CAAC,MAAM,UAAU,GAAG,KAAK,IAAI,CAAC,MAAM,UAAU,EAAE,MAAM,IAAI,MAAM,IAAI,EAAE,GAAK,CAAC,MAAM,aAAa,WAAW,IAAI,KAAK,IAAI,CAAC,MAAM,OAAO,IAAI,OAAO,KAAK,MAAM,CAAE,OAAO,OAGvyB,aAAa,CAAC,GAAG,CAAC,QAAQ,KAAK,EAAM,OAAO,OAAO,UAAU,KAAK,MAAM,EAAE,CAAC,GAAA,EAAI,OAAO,OAAU,MAAO,GAAM,GAAG,CAAC,OAAO,YAAY,KAAK,MAAM,OAAO,CAAC,CAAC,IAAI,MAAM,QAAQ,GAAG,KAAK,OAAO,MAAU,OAAO,KAAK,MAAM,OAAO,MAAM,EAAE,GAAG,OAAO,GAAG,OAAO,QAAQ,KAAK,MAAM,QAAQ,KAAK,GAAM,CAAC,EAAE,CAAC,IAAI,OAAO,KAAK,qBAAqB,CAAC,GAAG,QAAQ,KAAK,MAAO,GAAM,OAAO,OAAQ,KAAK,UAAU,EAAE,KAAK,UAAU,KAAK,UAAU,EAAE,GAAK,CAAC,KAAK,OAAO,IAAiD,MAA5C,MAAK,UAAU,KAAK,IAAI,KAAK,OAAO,OAAO,CAAQ,GAG/e,qBAAqB,CAAC,GAAG,CAAC,QAAQ,KAAK,EAAE,KAAK,EAAE,CAAK,SAAS,MAAM,QAAQ,CAAI,SAAK,SAAS,MAAM,CAAyB,OAAjB,KAAK,KAAK,MAAM,CAAQ,OAAO,WAAW,MAAM,QAAQ,CAAC,GAAG,SAAQ,WAAwB,OAAO,MAAM,CAAC,IAAI,QAAQ,QAAQ,IAAI,MAAM,GAAG,OAAO,EAAE,CAAC,IAAI,KAAK,OAAO,MAAM,OAAO,KAAK,MAAM,OAAO,OAAO,EAAE,GAAG,QAAQ,GAAG,OAAO,QAAQ,KAAK,MAAM,QAAQ,KAAK,GAAM,EAAE,EAAE,OAAO,QAAQ,GAAG,MAAM,UAAW,CAAC,IAAI,MAAM,QAAQ,OAAO,MAAM,EAAE,CAAC,GAAG,OAAO,KAAK,OAAO,QAAS,EAAG,OAAO,QAAQ,KAAK,MAAM,EAAE,CAC5f,UAAU,CAAC,KAAM,CAAC,KAAK,EAAE,OAAO,UAAU,KAAK,MAAM,EAAE,EAAE,GAAG,CAAC,KAAK,aAAa,CAAC,CAAC,KAAK,UAAU,EAAE,KAAK,IAAI,KAAK,IAAI,EAAE,GAAK,CAAC,MAAQ,OAAO,KAG3I,IAAI,SAAS,CAAC,GAAG,KAAK,MAAM,QAAQ,EAAE,MAAO,GAAM,GAAG,CAAC,QAAQ,KAAK,EAAE,OAAO,OAAO,KAAK,OAAO,UAAU,KAAK,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,UAAU,KAAK,MAAM,EAAE,CAGhK,SAAS,CAAC,KAAK,MAAM,KAAK,MAAM,GAAG,KAAK,MAAM,OAAO,EACrD,UAAU,MAAM,CAAC,GAAG,KAAK,OAAO,MAAM,OAAO,KAAK,MAAM,QAAQ,MAAM,MAAM,OAAO,MAAO,GAAM,IAAI,IAAIA,IAAE,EAAEA,IAAE,KAAK,MAAM,OAAO,KAAG,EAAE,GAAG,KAAK,MAAMA,MAAI,MAAM,MAAMA,KAAG,MAAO,GAAM,MAAO,GAC1L,IAAI,QAAQ,CAAC,OAAO,KAAK,EAAE,OAE3B,eAAe,UAAU,CAAC,OAAO,KAAK,EAAE,OAAO,QAAQ,MAAM,WAAY,aAAa,KAAK,MAAM,CAAI,KAAK,YAAW,KAAK,cAAc,KAAK,WAAW,QAAQ,MAAM,KAAK,WAAW,QAAQ,KAAK,KAAK,KAAK,EAAE,OAAO,MAAM,MAAM,CAAC,CAAC,CAAE,cAAc,KAAK,MAAM,CAAI,KAAK,YAAW,KAAK,cAAc,KAAK,WAAW,QAAQ,OAAO,KAAK,WAAW,QAAQ,KAAK,KAAK,KAAK,EAAE,OAAO,MAAM,MAAM,CAAC,CAAC,CACnY,aAAa,CAAC,IAAI,KAAK,KAAK,OAAO,OAAO,GAAK,KAAK,GAAG,KAAK,OAAO,OAAO,KAAG,KAAK,OAAO,KAAK,KAAK,WAAW,KAAK,KAAK,IAAI,KAAK,IAAI,GAAG,CACxI,eAAe,CAAC,IAAI,KAAK,KAAK,OAAO,OAAO,GAAK,KAAK,GAAG,KAAK,OAAO,OAAO,KAAG,KAAK,OAAO,KAAK,KAAK,UAAU,KAAK,IAAI,KAAK,IAAI,GAAG,CAAE,cAAc,QAAQ,CAAC,GAAG,SAAS,KAAK,WAAW,QAAQ,CAAC,IAAI,MAAM,IAAI,aAAa,KAAK,WAAW,QAAQ,QAAQ,CAAI,MAAM,MAAM,KAAK,WAAW,MAAK,KAAK,aAAa,CAAC,KAAK,WAAW,OACrU,aAAa,UAAU,CAAI,UAAU,KAAK,YAAW,KAAK,eAAe,CAAC,KAAK,UAAU,WACzF,OAAO,CAAI,KAAK,YAAY,KAAK,WAAW,QAAQ,QAAO,KAAK,aAAa,CAAI,KAAK,UAAU,GAAE,KAAK,eAAe,CACtH,YAAY,IAAE,MAAM,MAAM,UAAU,IAAI,MAAM,OAAO,WAAW,WAAW,UAAU,EAAE,OAAO,CAAC,KAAK,EAAEE,IAAE,KAAK,MAAM,MAAM,KAAK,MAAM,MAAM,KAAK,UAAU,UAAU,KAAK,IAAI,IAAI,KAAK,MAAM,MAAM,KAAK,OAAO,OAAO,KAAK,WAAW,WAAW,KAAK,WAAW,WAAW,KAAK,UAAU,UAAU,KAAK,OAAO,SAAc,aAAa,KAAK,CAAC,YAAY,QAAQ,QAAQ,CAAC,KAAK,QAAQ,QAAQ,KAAK,QAAQ,QAAQ,KAAK,KAAK,QAAQ,OAAO,QAAQ,KAAK,QAAQ,CAAC,KAAkB,SAAS,SAAS,CAAC,SAAS,SAAS,OAAU,KAAK,SAAS,SAAS,SAAS,OAAU,KAAK,SAAS,SAAS,SAAS,OAAU,KAAK,SAAS,SAAS,SAAS,QAAW,GAAG,UAAU,SAAS,SAAS,oBAAuB,KAAK,sBAAsB,SAAS,SAAS,uBAA0B,KAAK,yBAAyB,SAAS,SAAS,gBAAmB,KAAK,oBAAqB,AAAU,UAAQ,EAAE,CAAE,CAAK,eAAe,KAAK,CAAC,OAAO,OAAO,CAAC,IAAI,KAAK,OAAO,MAAM,MAAM,QAAQ,GAAM,OAAO,GAAM,KAAK,OAAO,KAAK,MAAM,QAAM,KAAK,MAAM,KAAK,MAAM,OAAO,EAAC,KAAK,MAAM,KAAK,KAAK,MAAM,EAAE,EAAE,CAAC,KAAK,MAAM,GAAQ,KAAK,OAAO,MAAM,GAAG,EAA2E,KAAK,MAApE,KAAK,MAAM,EAAE,OAAO,QAAQ,KAAK,MAAM,KAAK,KAAK,GAAG,KAAK,GAAK,CAAkB,YAAY,MAAM,CAAC,KAAK,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,MAAM,SAAc,kBAAkB,KAAK,CAAC,OAAO,OAAO,MAAM,IAAI,MAAM,WAAW,MAAM,OAAO,OAAO,CAAC,OAAO,IAAI,kBAAkB,MAAM,IAAI,IAAI,MAAM,WAAW,CAAE,WAAW,CAAC,IAAI,KAAK,KAAK,MAAM,OAAU,MAAM,OAAM,KAAK,MAAM,KAAK,MAAM,WAAW,KAAK,WAAW,KAAK,MAAM,KAAK,KAAK,OAAO,KAAK,QAAS,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,KAAK,MAAM,GAAI,IAAI,OAAO,CAAC,OAAO,KAAK,OAAO,KAAK,MAAM,GAAI,IAAI,KAAK,CAAC,OAAO,KAAK,OAAO,KAAK,MAAM,GAAI,IAAI,MAAM,CAAC,OAAO,KAAK,OAAO,KAAK,MAAM,GAAI,MAAM,CAAC,KAAK,OAAO,EAAE,KAAK,KAAK,EAAK,KAAK,OAAO,GAAE,KAAK,WAAW,CAAE,MAAM,CAAC,OAAO,IAAI,kBAAkB,KAAK,MAAM,KAAK,IAAI,KAAK,MAAM,CAAE,YAAY,MAAM,IAAI,MAAM,CAAC,KAAK,MAAM,MAAM,KAAK,IAAI,IAAI,KAAK,MAAM,MAAM,KAAK,OAAO,MAAM,OAAU,KAAK,OAAO,GAAE,KAAK,WAAW,GAA0b,YAAY,KAAK,CAAC,aAAa,CAAC,KAAK,MAAM,GAAG,KAAK,MAAM,GAAG,KAAK,IAAI,GAAG,KAAK,SAAS,GAAG,KAAK,UAAU,EAAE,KAAK,KAAK,EAAE,KAAK,QAAQ,IAAS,UAAU,IAAI,YAAgB,YAAY,KAAK,CACroF,cAAc,OAAO,MAAM,CAAC,IAAI,MAAM,KAAK,MAAM,MAAM,KAAK,WAAe,IAAI,KAAK,IAAI,OAAO,KAAM,IAAI,MAAM,MAAK,CAAC,GAAG,CAAC,MAAM,OAAO,KAAK,IAAI,KAAK,KAAK,OAAO,EAAE,OAAO,KAAK,MAAM,KAAK,KAAK,GAAG,MAAM,KAAM,KAAM,MAAM,EAAE,IAAI,MAAM,GAAG,KAAK,MAAM,IAAG,CAAC,GAAG,OAAO,KAAK,OAAO,OAAO,EAAE,OAAO,KAAK,IAAI,MAAM,KAAK,OAAO,EAAE,OAAO,KAAK,MAAM,KAAK,MAAM,GAAG,MAAM,MAAO,OAAO,IAC9W,QAAQ,IAAI,CAAC,GAAG,KAAK,KAAK,MAAM,MAAM,IAAI,KAAK,MAAM,GAAG,OAAO,IAAI,IAAI,IAAI,SAAS,KAAK,OAAO,GAAG,MAAM,GAAG,IAAI,OAAO,KAAK,IAAI,IAAI,MAAM,KAAK,CAAC,OAAO,KAAK,IAS5J,KAAK,OAAO,CAAC,IAAI,IAAI,KAAK,SAAS,OAAO,IAAI,OAAO,GAAG,KAAK,GAAG,IAAI,KAAK,MAAM,OAAQ,IAAI,KAAK,IAAI,OAAO,OAAO,KAAK,MAAM,WAAW,IAAI,KAAM,CAAC,IAAI,SAAS,KAAK,cAAc,OAAO,EAAE,CAAC,GAAG,UAAU,KAAK,MAAM,GAAgB,GAAb,IAAI,SAAY,KAAK,KAAK,WAAW,IAAI,KAAK,UAAU,KAAK,OAAO,OAAQ,OAAO,KAAK,OAAO,WAAW,IAAI,KAAK,UAAU,KAAM,CAAC,IAAIF,IAAE,KAAK,WAAW,MAAM,KAAK,MAAM,KAAM,MAAM,IAAI,KAAI,MAAM,KAAK,OAAO,EAAEA,KAAG,KAAK,OAAO,KAAK,MAAM,MAAM,KAAK,UAAU,IAAI,CAAI,IAAI,KAAK,OAAO,OAAO,MAAM,KAAG,KAAK,OAAO,KAAK,OAAO,MAAM,EAAE,MAAM,GAAG,IAAI,EAAC,OAAO,KAAK,OAAO,WAAW,EAAE,EAA2D,OAArD,KAAK,KAAK,MAAM,YAAU,KAAK,MAAM,UAAU,IAAI,GAAS,OAGlpB,YAAY,MAAM,UAAU,EAAE,CAAC,IAAI,IAAI,UAAU,KAAK,cAAc,UAAU,GAAG,CAAC,KAAK,IAAI,GAAG,KAAK,MAAM,IAAI,KAAK,MAAM,MAAM,MAAU,WAAW,0BAA0B,CAAC,KAAK,MAAM,MAAM,MAAM,KAAK,MAAM,IAAI,IAAK,UAAU,CAAC,GAAG,KAAK,KAAK,KAAK,WAAW,KAAK,IAAI,KAAK,UAAU,KAAK,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,UAAU,KAAK,KAAK,MAAM,KAAK,OAAO,KAAK,SAAS,KAAK,UAAU,KAAK,OAAO,MAAM,KAAK,UAAU,SAAS,KAAK,SAAS,KAAK,IAAI,KAAK,aAAc,CAAC,KAAK,OAAO,KAAK,MAAM,KAAK,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,MAAM,MAAM,KAAK,IAAI,CAAmC,KAAK,MAA/B,KAAK,IAAI,UAAU,OAAsB,KAAK,MAAM,GAAG,UAAU,MAAM,EAAE,KAAK,MAAM,GAAG,KAAK,IAAI,CAAC,UAAU,KAAK,SAAS,KAAK,IAAI,KAAK,SAAS,GAAI,UAAU,CAA+G,OAA3G,KAAK,UAAU,KAAK,MAAM,SAAQ,KAAK,UAAU,CAAI,KAAK,UAAU,KAAK,MAAM,QAAc,KAAK,KAAK,GAAW,KAAK,KAAK,KAAK,MAAM,WAAW,KAAK,SAAS,CAEt3B,QAAQ,EAAE,EAAE,CAAkB,IAAjB,KAAK,UAAU,EAAQ,KAAK,IAAI,GAAG,KAAK,MAAM,IAAG,CAAC,GAAG,KAAK,YAAY,KAAK,OAAO,OAAO,EAAE,OAAO,KAAK,SAAS,CAAC,GAAG,KAAK,MAAM,GAAG,KAAK,IAAI,KAAK,MAAM,KAAK,OAAO,EAAE,KAAK,YAAY,KAAK,IAAI,KAAK,MAAM,KAAoF,MAA9E,MAAK,KAAK,EAAK,KAAK,KAAK,KAAK,MAAM,YAAU,KAAK,MAAM,UAAU,KAAK,IAAI,GAAS,KAAK,UAAU,CAAE,SAAS,CAA4G,MAA3G,MAAK,IAAI,KAAK,SAAS,KAAK,IAAI,KAAK,MAAM,KAAK,OAAO,KAAK,WAAW,KAAK,OAAO,OAAO,GAAG,KAAK,MAAM,GAAU,KAAK,KAAK,GACxc,MAAM,IAAI,MAAM,CAA4H,GAAxH,OAAO,KAAK,MAAM,MAAM,MAAM,MAAM,IAAI,MAAM,UAAU,IAAI,EAAE,MAAM,MAAM,MAAM,SAAS,IAAS,KAAK,MAAM,UAAc,KAAK,KAAK,IAAI,CAAc,GAAb,KAAK,IAAI,IAAO,KAAK,KAAK,IAAoB,OAAf,KAAK,SAAS,CAAQ,KAAM,KAAM,IAAI,KAAK,MAAM,MAAK,KAAK,MAAM,KAAK,OAAO,EAAE,KAAK,YAAY,KAAM,KAAK,KAAK,MAAM,IAAG,KAAK,MAAM,KAAK,OAAO,EAAE,KAAK,YAAe,KAAK,KAAK,UAAU,IAAI,KAAK,SAAS,KAAK,MAAM,OAAQ,KAAK,SAAS,IAAI,KAAK,UAAe,KAAK,MAAM,GAAG,KAAK,SAAS,GAAG,KAAK,UAAU,CAAE,OAAO,KACzf,KAAK,KAAK,GAAG,CAAC,GAAG,MAAM,KAAK,UAAU,IAAI,KAAK,SAAS,KAAK,MAAM,OAAO,OAAO,KAAK,MAAM,MAAM,KAAK,KAAK,SAAS,GAAG,KAAK,SAAS,CAAC,GAAG,MAAM,KAAK,WAAW,IAAI,KAAK,UAAU,KAAK,OAAO,OAAO,OAAO,KAAK,OAAO,MAAM,KAAK,KAAK,UAAU,GAAG,KAAK,UAAU,CAAC,GAAG,MAAM,KAAK,MAAM,MAAM,IAAI,KAAK,MAAM,GAAG,OAAO,KAAK,MAAM,KAAK,KAAK,GAAG,CAAC,IAAI,OAAO,GAAG,IAAI,IAAI,KAAK,KAAK,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAS,EAAE,GAAG,OAAK,QAAQ,KAAK,MAAM,KAAK,KAAK,IAAI,EAAE,KAAK,KAAK,CAAC,KAAK,IAAI,EAAE,GAAG,GAAG,CAAC,EAAE,OAAO,OACpe,YAAY,MAAM,OAAO,CAAC,KAAK,MAAM,MAAM,KAAK,OAAO,OAAO,KAAK,MAAM,GAAG,KAAK,SAAS,EAAE,KAAK,OAAO,GAAG,KAAK,UAAU,EAAE,KAAK,KAAK,GAAG,KAAK,MAAM,UAAU,KAAK,WAAW,EAAE,KAAK,IAAI,KAAK,SAAS,OAAO,GAAG,KAAK,KAAK,MAAM,OAAO,GAAG,KAAK,IAAI,OAAO,OAAO,OAAO,GAAG,GAAG,KAAK,UAAU,GAAQ,WAAW,KAAK,CAAC,MAAM,MAAM,MAAM,CAAC,GAAG,CAAC,QAAQ,MAAM,EAAE,UAAU,KAAK,KAAK,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,OAAO,eAAe,CAAE,YAAY,KAAK,IAAI,CAAC,KAAK,KAAK,KAAK,KAAK,GAAG,MAAO,WAAW,UAAU,WAAW,WAAW,UAAU,SAAS,WAAW,UAAU,OAAO,GAAU,gBAAgB,KAAK,CAAC,MAAM,MAAM,MAAM,CAAC,IAAI,MAAM,MAAM,IAAI,QAAQ,EAAE,KAAQ,UAAU,KAAK,KAAK,MAAM,MAAM,EAAE,KAAK,KAAK,KAAK,UAAU,CAAI,QAAM,MAAM,MAAM,KAAlF,CAA2F,GAAG,KAAK,WAAW,KAAK,OAAO,GAAG,MAAM,KAAK,EAAE,MAAM,MAAM,SAAS,CAAC,MAAM,MAAM,MAAM,IAAI,MAAM,MAAM,CAAC,UAAc,UAAS,MAAM,MAAM,MAAM,MAAM,MAAM,CAAC,MAAM,YAAY,KAAK,UAAU,QAAQ,EAAG,YAAY,KAAK,UAAU,UAAU,CAAC,KAAK,UAAU,UAAU,KAAK,UAAU,UAAU,KAAK,KAAK,OAAO,MAAM,SAAS,YAAY,KAAK,CAAC,OAAQ,gBAAgB,UAAU,WAAW,WAAW,UAAU,SAAS,WAAW,UAAU,OAAO,GAAU,kBAAkB,KAAK,CAKvsC,YAAY,MAAM,QAAQ,EAAE,CAAC,CAAC,KAAK,MAAM,MAAM,KAAK,WAAW,CAAC,CAAC,QAAQ,WAAW,KAAK,SAAS,CAAC,CAAC,QAAQ,SAAS,KAAK,OAAO,CAAC,CAAC,QAAQ,SAAgnC,QAAQ,OAAO,QAAS,KAAa,QAAQ,KAAK,YAAY,KAAK,QAAQ,IAAI,IAAI,CAAK,SAAS,MAAiB,SAAS,QAAQ,CAAC,QAAQ,QAAQ,OAAU,IAAI,WAAY,AAAS,SAAO,EAAE,CAAE,CAA6c,eAAe,KAAK,CAAC,cAAc,CAAC,IAAI,GAAG,KAAK,SAAS,KAAK,GAAG,KAAK,UAAU,OAAO,KAAK,KAAK,UAAU,KAAK,KAAK,GAAG,GAAG,CAA0J,IAAzJ,KAAK,SAAS,GAAG,UAAU,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,EAAE,CAAC,GAAG,OAAO,GAAG,KAAK,KAAK,OAAO,GAAG,QAAQ,MAAM,GAAG,KAAK,GAAG,GAAG,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,GAAS,KAAK,MAAM,QAAQ,KAAK,MAAM,KAAK,CAAC,KAAK,MAAM,KAAK,CAAC,KAAK,MAAM,KAAK,CAAE,KAAK,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,MAAM,KAAK,CAAC,GAAG,OAAO,CAAC,KAAK,MAAM,KAAK,EAAE,CAAC,KAAK,UAAU,KAAK,cAAe,KAAK,UAAU,IACt2E,OAAO,IAAI,CAAC,GAAG,IAAI,KAAK,UAAU,OAAO,KAAK,KAAM,KAAK,UAAU,KAAK,QAAQ,KAAI,KAAK,cAAc,CAAC,GAAG,CAAC,KAAK,SAAS,OAAO,KAAK,OAAO,CAAC,IAAI,KAAK,KAAK,MAAM,OAAO,EAAE,GAAG,KAAK,EAAuB,OAApB,KAAK,cAAc,CAAQ,KAAM,IAAIK,MAAI,KAAK,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,GAAG,OAAOA,MAAI,SAAS,OAAO,CAAC,KAAK,MAAM,KAAK,CAAC,KAAK,MAAM,KAAK,CAAC,KAAK,MAAM,KAAK,CAAC,SAAU,IAAI,KAAKA,MAAI,SAAS,OAAW,MAAM,KAAK,MAAM,MAAMA,MAAI,UAAU,OAAO,GAAG,MAAM,IAA0B,MAArB,MAAK,UAAU,MAAa,KAAM,GAAG,gBAAgB,KAAK,CAAC,GAAG,OAAO,IAAI,CAAC,GAAG,MAAM,KAAK,SAAS,OAAO,KAAK,IAAI,IAAI,MAAM,KAAK,OAAO,GAAG,KAAK,KAAK,OAAO,CAAC,IAAI,UAAU,KAAK,KAAK,SAAS,UAAU,CAAC,GAAG,CAAC,WAAW,IAAI,UAAU,KAAK,SAAS,GAAG,OAAO,MAAO,KAAK,MAAM,QAAW,MAAM,KAAK,QAAQ,KAAK,IAAI,KAAK,SAAS,IAAI,GAAE,KAAK,MAAM,KAAK,KAAK,CAAC,KAAK,MAAM,KAAK,MAAM,CAAC,KAAK,MAAM,KAAK,EAAE,OAAQ,KAAK,MAAM,QAAQ,KAAK,UAAU,MAAM,KAAK,QAAU,YAAY,UAAU,UAAQ,CAAC,KAAK,UAAU,UAAU,KAAK,QAAQC,UAAQ,KAAK,EAAE,EAAE,KAAK,SAAS,KAAK,KAAK,SAAS,GAAG,KAAK,OAAO,GAAG,KAAK,MAAM,EAAE,CAAC,KAAK,MAAM,EAAE,CAAC,KAAK,MAAM,EAAE,CAAC,KAAK,cAAc,GAAQ,WAAW,KAAK,CAAC,WAAW,MAAM,CAAC,IAAI,YAAY,EAAM,KAAK,KAAQ,CAAC,QAAQ,MAAM,EAAE,CAAC,YAAY,OAAW,KAAK,OAAO,UAAU,MAAM,MAAM,EAAE,CAAK,QAAQ,MAAM,WAAW,MAAM,WAAW,KAAK,EAAM,UAAU,EAAE,IAAI,IAAIN,IAAE,EAAEA,IAAE,WAAW,OAAO,MAAI,CAAC,GAAA,EAAI,GAAGA,IAAE,MAAS,SAAS,IAAI,UAAU,WAAWA,KAAG,MAAM,KAAK,OAAOA,KAAM,WAAM,CAAC,UAAU,aAAqB,UAAU,YAAY,MAAM,OAAO,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,SAAS,WAAS,KAAK,kBAAkB,MAAM,UAAU,MAAM,CAAC,MAAM,KAAK,KAAK,MAAM,QAAQ,SAAY,MAAM,UAAU,MAAM,IAAI,KAAG,UAAU,KAAK,IAAI,MAAM,UAAU,UAAU,EAAI,MAAM,OAAO,GAAE,CAAC,IAAI,WAAW,YAA8K,GAA/J,MAAM,SAAS,KAAG,YAAY,KAAK,WAAW,MAAM,MAAM,SAAS,MAAM,IAAI,YAAY,EAAC,YAAY,KAAK,WAAW,MAAM,MAAM,MAAM,MAAM,IAAI,YAAY,CAAI,CAAC,UAAU,SAAQ,KAAK,MAAS,YAAY,YAAW,OAAS,KAAM,KAAK,QAAQ,OAAO,aAAY,KAAK,QAAQ,KAAK,CAA+P,OAA3P,WAAU,MAAM,aAAa,UAAU,CAAI,CAAC,MAAM,MAAM,KAAK,KAAK,OAAO,MAAK,KAAK,IAAI,YAAY,KAAK,MAAM,MAAM,EAAE,OAAO,QAAQ,KAAK,MAAM,KAAK,IAAI,MAAM,IAAI,YAAY,KAAK,WAAW,MAAM,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,KAAK,UAAU,KAAY,KAAK,QAAS,aAAa,MAAM,CAAC,GAAG,KAAK,UAAU,OAAO,KAAK,UAAU,IAAI,KAAK,IAAI,YAAY,CAAC,IAAI,EAAA,KAAG,MAA2G,MAArG,MAAK,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,EAAEE,IAAE,OAAO,IAAI,CAAC,KAAK,MAAM,KAAKA,IAAE,OAAO,IAAIA,IAAE,OAAO,QAAQ,EAAS,KAAM,kBAAkB,MAAM,UAAU,MAAM,CAAC,IAAI,MAAM,KAAK,OAAO,QAAQ,MAAM,IAAI,CAAuD,GAAtD,UAAU,MAAM,KAAK,OAAO,MAAM,MAAM,MAAM,CAAC,MAAM,CAAI,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,QAAQ,MAAM,EAAE,IAAI,IAAIF,IAAE,EAAEA,IAAE,OAAO,YAAY,OAAO,MAAI,GAAG,OAAO,YAAYA,MAAI,MAAM,MAAM,CAAC,IAAI,OAAO,OAAO,aAAaA,KAAG,KAAK,OAAO,KAAK,MAAM,MAAM,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,QAAQ,GAAG,MAAM,EAAE,OAAO,QAAQ,OAAO,QAAQ,EAAE,CAAC,CAAK,OAAO,EAAiC,MAAM,SAAS,QAAQ,EAAlD,MAAM,MAAM,QAAQ,EAAgC,aAAc,MAAM,MAAM,EAAE,MAAM,IAAI,KAAK,OAAO,QAAQ,MAAM,EAAE,CAAG,UAAU,OAAO,MAAM,IAAI,MAAM,CAAC,IAAI,IAAIA,IAAE,EAAEA,IAAE,MAAM,KAAG,EAAE,GAAG,KAAK,QAAQA,MAAI,OAAO,OAAO,MAAyF,MAAnF,MAAK,QAAQ,SAAS,OAAO,KAAK,QAAQ,SAAS,MAAM,KAAK,QAAQ,SAAS,IAAW,MAAO,WAAW,MAAM,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,MAAM,CAAC,QAAQ,MAAM,EAAE,CAAC,MAAM,OAAO,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,MAAO,IAAI,IAAIA,IAAE,OAAO,UAAU,MAAM,IAAI,EAAE,EAAE,EAAE,KAAG,EAAE,CAAC,GAAG,KAAKA,MAAI,MAAO,GAAG,KAAKA,IAAE,IAAI,EAAG,IAAE,KAAK,KAAKA,IAAE,EAAE,KAAM,CAAI,OAAO,GAAG,KAAKA,IAAE,IAAI,IAAE,MAAM,KAAK,UAAU,KAAK,KAAKA,IAAE,EAAE,CAAC,MAAM,IAAI,MAAM,EAAC,MAAW,KAAKA,MAAI,QAAM,MAAM,KAAK,UAAU,KAAK,KAAKA,IAAE,EAAE,CAAC,MAAM,IAAI,MAAM,EAAG,OAAO,MAAO,YAAY,OAAO,OAAO,CAAC,KAAK,OAAO,OAAO,KAAK,OAAO,EAAE,CAAC,KAAK,UAAU,KAAK,KAAK,QAAQ,EAAE,CAAC,KAAK,OAAO,OAAO,WAAW,IAAI,GAAG,IAAI,YAAY,IAAa,SAAS,KAAK,CAAC,KAAK,KAAK,SAAY,GAAG,WAAW,KAAK,KAAK,oBAAuB,GAAG,sBAAsB,KAAK,KAAK,qBAAwB,KAAK,uBAAuB,KAAK,KAAK,iBAAoB,IAAI,mBAAmB,KAAK,KAAK,SAAY,MAAM,WAAW,KAAK,KAAK,MAAS,KAAK,QAAQ,KAAK,KAAK,iCAAoC,KAAK,mCAAmC,KAAK,KAAK,cAAiB,IAAI,kBAAmB,AAAM,MAAI,EAAE,CAAE,CAAK,MAAM,KAAK,CAAC,IAAI,WAAW,CAAC,OAAO,KAAK,YAMpuI,SAAS,CAAC,IAAI,OAAO,KAAK,OAAO,IAAI,KAAK,YAAgB,UAAU,KAAK,OAAO,EAAE,CAAK,QAAQ,cAAc,GAAG,KAAK,kBAAkB,KAAK,OAAO,QAAQ,EAAE,CAAC,GAAG,CAAC,GAAG,OAAO,KAAM,EAAE,aAAa,EAAE,EAAE,MAAM,QAAQ,EAAE,MAAM,EAAE,MAAM,OAAO,IAAI,KAAK,wBAAwB,KAAK,kBAAkB,KAAK,qBAAqB,EAAG,IAAI,IAAIA,IAAE,EAAEA,IAAE,OAAO,OAAO,MAAI,CAAC,IAAI,MAAM,OAAOA,KAAG,OAAO,CAA4B,GAA3B,KAAK,OAAO,UAAU,KAAQ,MAAM,IAAI,IAAK,UAAU,KAAK,MAAM,SAAU,KAAK,aAAa,MAAM,UAAU,OAAO,CAAE,aAAc,CAAK,UAAS,QAAQ,EAAE,CAAC,cAAc,EAAE,EAAE,QAAQ,KAAK,MAAM,CAAC,IAAI,IAAI,KAAK,OAAO,aAAa,MAAM,CAAC,cAAc,KAAK,IAAI,MAAM,IAAI,IAAI,CAAE,OAAQ,GAAG,CAAC,UAAU,OAAO,CAAC,IAAI,SAAS,SAAS,aAAa,QAAQ,CAAC,GAAG,SAAS,OAAO,KAAK,YAAY,SAAS,CAAC,GAAG,KAAK,OAAO,OAA6I,MAAlI,SAAS,SAAQ,QAAQ,IAAI,qBAAqB,KAAK,OAAO,UAAU,KAAK,OAAO,QAAQ,KAAK,OAAO,UAAU,MAAM,CAAC,QAAQ,CAAW,YAAY,eAAe,IAAI,CAAE,AAAoB,KAAK,aAAW,EAAG,GAAG,KAAK,YAAY,QAAQ,CAAC,IAAI,UAAU,KAAK,WAAW,MAAM,QAAQ,GAAG,IAAI,KAAK,UAAU,QAAQ,GAAG,KAAK,YAAY,QAAQ,cAAc,UAAU,CAAC,GAAG,UAAU,OAAO,KAAK,YAAY,UAAU,UAAU,CAAC,CAAE,GAAG,KAAK,WAAW,CAAC,IAAI,aAAa,KAAK,YAAY,EAAE,EAAE,KAAK,WAAW,EAAE,GAAG,UAAU,OAAO,aAAqD,IAAvC,UAAU,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAO,UAAU,OAAO,cAAa,UAAU,KAAK,CAAK,UAAU,KAAK,GAAG,EAAE,UAAU,IAAI,EAAC,KAAK,qBAAsB,UAAU,OAAO,EAAE,CAAC,MAAM,IAAI,IAAI,GAAG,EAAE,GAAG,UAAU,OAAO,EAAE,KAAK,CAAC,IAAI,OAAO,UAAU,IAAI,IAAI,IAAI,EAAE,GAAG,EAAE,EAAE,UAAU,OAAO,IAAI,CAAC,IAAI,MAAM,UAAU,GAAG,GAAG,OAAO,UAAU,MAAM,EAAE,OAAO,OAAO,OAAO,KAAK,MAAM,OAAO,OAAO,IAAK,IAAI,OAAO,MAAM,MAAM,OAAO,OAAO,OAAO,OAAO,MAAM,OAAO,QAAQ,EAAG,UAAU,OAAO,IAAI,EAAE,KAAM,CAAC,UAAU,OAAO,KAAK,EAAE,CAAC,SAAS,QAAa,UAAU,OAAO,IAAG,UAAU,OAAO,GAAG,UAAU,OAAO,GAAG,CAAE,KAAK,YAAY,UAAU,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,GAAG,UAAU,OAAO,KAAQ,UAAU,IAAI,IAAI,KAAK,cAAY,KAAK,YAAY,UAAU,IAAI,KAAI,OAAO,KAAM,OAAO,IAAI,CAAC,GAAG,KAAK,WAAW,MAAM,KAAK,UAAU,IAAI,MAAU,WAAW,+BAA+B,CAAC,KAAK,UAAU,IAIjrE,aAAa,MAAM,OAAO,MAAM,CAAC,IAAI,MAAM,MAAM,IAAI,CAAC,QAAQ,KAASI,OAAK,QAAQ,KAAK,QAAQ,MAAM,CAAC,OAAO,GAAG,GAAG,KAAK,WAAW,MAAM,MAAM,KAAK,UAAU,OAAO,MAAM,aAAa,CAAC,MAAM,KAAK,GAAG,KAAK,UAAU,CAAC,IAAI,SAAS,MAAM,YAAY,MAAM,WAAW,QAAQ,OAAO,OAAO,SAAS,MAAM,WAAW,KAAK,EAAE,IAAI,IAAI,OAAO,KAAK,UAAU,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,MAAM,KAAK,OAAO,QAAQ,MAAM,OAAO,KAAK,KAAK,OAAO,KAAK,OAAO,QAAQ,MAAM,MAAM,OAAO,KAAK,GAAG,CAAC,GAAG,GAAG,MAAM,IAAI,OAAO,SAAS,CAAC,WAAW,OAAO,KAAK,SAAS,YAAY,EAAE,IAAI,QAA0I,OAAjI,MAAM,QAAQ,OAAO,MAAM,CAAI,SAAQ,QAAQ,IAAIA,OAAK,KAAK,QAAQ,MAAM,CAAC,kBAAkB,OAAO,QAAQ,OAAO,KAAK,GAAG,CAAC,GAAG,CAAQ,GAAM,GAAG,EAAE,kBAAkB,OAAO,OAAO,SAAS,QAAQ,GAAG,OAAO,UAAU,GAAG,EAAE,MAAM,IAAI,MAAM,OAAO,SAAS,GAAG,GAAG,iBAAiB,MAAM,OAAO,UAAU,IAAI,EAAE,OAAO,WAAW,OAAQ,IAAI,cAAc,OAAO,UAAU,MAAM,MAAM,EAAE,CAAC,GAAG,cAAc,EAA8I,OAA3I,MAAM,OAAO,cAAc,CAAI,SAAQ,QAAQ,IAAIA,OAAK,KAAK,QAAQ,MAAM,CAAC,uBAAuB,OAAO,QAAQ,cAAc,MAAM,CAAC,GAAG,CAAQ,GAAM,GAAG,MAAM,MAAM,QAAQ,KAAM,KAAM,MAAM,MAAM,OAAO,KAAK,MAAM,aAAa,GAAI,IAAI,QAAQ,KAAK,OAAO,WAAW,MAAM,CAAC,IAAI,IAAIJ,IAAE,EAAEA,IAAE,QAAQ,QAAQ,CAAC,IAAI,OAAO,QAAQ,OAAK,KAAK,QAAQ,OAAK,IAAI,QAAQ,OAAS,KAAKA,KAAG,QAAQ,QAAQ,CAAC,MAAU,WAAW,KAAK,MAAM,MAAM,OAAO,CAAmP,GAAlP,WAAW,MAAM,OAAO,KAAK,IAAI,CAAI,SAAQ,QAAQ,IAAII,OAAK,KAAK,QAAQ,WAAW,CAAC,SAAU,OAAO,MAAkB,aAAa,OAAO,QAAQ,OAAO,MAAM,GAAjD,QAAoD,OAAO,OAAO,QAAQ,KAAK,CAAC,KAAK,QAAQ,YAAY,MAAM,GAAG,UAAU,GAAG,CAAI,KAAK,MAAO,GAAa,WAAW,IAAI,MAAM,OAAO,KAAK,WAAW,CAAM,MAAM,KAAK,WAAW,CAAE,MAAO,GAGtuD,aAAa,MAAM,UAAU,CAAC,IAAI,IAAI,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,aAAa,MAAM,KAAK,KAAK,CAAC,MAAO,GAAM,GAAG,MAAM,IAAI,IAAqC,OAAhC,eAAe,MAAM,UAAU,CAAQ,IAAQ,YAAY,OAAO,OAAO,UAAU,CAAC,IAAI,SAAS,KAAK,UAAU,GAAM,IAAI,IAAIJ,IAAE,EAAEA,IAAE,OAAO,OAAO,MAAI,CAAC,IAAI,MAAM,OAAOA,KAAG,MAAM,OAAOA,KAAG,GAAG,SAAS,QAAQA,KAAG,GAAG,GAAOI,OAAK,QAAQ,KAAK,QAAQ,MAAM,CAAC,OAAO,GAAG,GAAG,MAAM,UAAY,YAAmB,UAAU,GAAK,MAAM,SAAS,CAAI,SAAQ,QAAQ,IAAIA,OAAK,KAAK,QAAQ,MAAM,CAAC,eAAe,CAAU,KAAK,aAAa,MAAM,UAAU,GAAS,SAAU,IAAI,MAAM,MAAM,OAAO,CAAC,UAAUA,OAAK,IAAI,IAAI,EAAE,EAAE,MAAM,aAAa,EAAE,EAAE,KAAW,SAAQ,QAAQ,IAAI,UAAU,KAAK,QAAQ,MAAM,CAAC,sBAAsB,CAAW,MAAK,aAAa,MAAM,UAAU,EAA7H,IAAgJ,UAAQ,UAAU,KAAK,QAAQ,MAAM,CAAC,QAAQ,IAAI,IAAIG,YAAU,MAAM,gBAAgB,MAAM,CAAK,SAAQ,QAAQ,IAAIH,OAAK,KAAK,QAAQG,SAAO,CAAC,wBAAwB,CAAC,KAAK,aAAaA,SAAO,UAAU,CAAK,KAAK,OAAO,IAAI,MAAM,KAAQ,UAAU,MAAM,MAAK,WAAW,MAAM,GAAG,MAAM,gBAAgB,MAAM,SAAS,CAAI,SAAQ,QAAQ,IAAIH,OAAK,KAAK,QAAQ,MAAM,CAAC,wBAAwB,KAAK,OAAO,QAAQ,MAAM,CAAC,GAAG,CAAC,eAAe,MAAM,UAAU,GAAU,CAAC,UAAU,SAAS,MAAM,MAAM,SAAO,SAAS,OAAQ,OAAO,SACnzC,YAAY,MAAM,CAAe,OAAd,MAAM,OAAO,CAAQ,KAAK,MAAM,CAAC,OAAO,kBAAkB,OAAO,MAAM,CAAC,QAAQ,KAAK,OAAO,QAAQ,MAAM,KAAK,QAAQ,gBAAgB,KAAK,OAAO,aAAa,OAAO,KAAK,OAAO,MAAM,KAAK,OAAO,GAAG,KAAK,OAAO,MAAM,IAAI,KAAK,OAAO,GAAG,KAAK,cAAc,KAAK,OAAO,cAAc,CAAC,CAAE,QAAQ,MAAM,CAAC,IAAI,KAAK,AAAW,WAAyB,IAAI,SAAU,IAAI,MAAM,CAA0E,OAArE,KAAI,SAAS,IAAI,MAAM,IAAI,OAAO,cAAc,KAAK,cAAc,CAAC,CAAQ,IAAI,MAAO,YAAY,OAAO,MAAM,UAAU,OAAO,CAAC,KAAK,OAAO,OAAO,KAAK,MAAM,MAAM,KAAK,OAAO,OAAO,KAAK,WAAW,EAAE,KAAK,YAAY,KAAK,KAAK,YAAY,EAAE,KAAK,OAAO,EAAE,CAAC,KAAK,UAAU,KAAK,KAAK,sBAAsB,GAAG,KAAK,qBAAqB,EAAE,KAAK,kBAAkB,EAAE,KAAK,OAAO,IAAI,YAAY,MAAM,OAAO,CAAC,KAAK,OAAO,IAAI,WAAW,OAAO,KAAK,OAAO,CAAC,KAAK,QAAQ,OAAO,IAAI,GAAG,GAAG,CAAC,MAAM,OAAO,GAAG,KAAK,OAAO,CAAC,MAAM,MAAM,KAAK,OAAO,IAAI,GAAG,KAAK,CAAC,CAAC,KAAK,UAAU,UAAU,QAAQ,KAAK,OAAO,IAAI,KAAK,OAAO,aAAa,EAAE,IAAI,eAAe,UAAU,OAAO,QAAQ,CAAC,OAAsP,QAAQ,KAAK,CAAC,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,UAAU,KAAK,SAAS,OAAO,EAAG,YAAY,OAAO,MAAM,SAAS,CAAC,KAAK,OAAO,OAAO,KAAK,MAAM,MAAM,KAAK,SAAS,WAAgB,GAAG,KAAGI,IAAM,eAAe,KAAK,CAC3+C,YAAY,KAAK,CAAC,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,OAAO,GAAG,KAAK,OAAO,KAAK,QAAQ,GAAG,KAAK,MAAM,KAAK,OAAO,GAAG,KAAK,KAAK,KAAK,WAAW,GAAG,KAAK,OAAO,KAAK,SAAS,KAAa,SAAS,cAAc,MAAM,CAAC,YAAY,MAAM,UAAU,OAAO,CAAC,IAAI,MAAM,IAAI,MAAM,KAAK,MAAM,UAAU,OAAO,CAAC,IAAI,IAAI,KAAK,KAAK,SAAS,MAAM,EAAE,MAAM,MAAM,UAAU,OAAO,CAAC,OAAO,MACvX,QAAQ,MAAM,KAAK,MAAM,GAAM,CAAC,IAAI,MAAM,KAAK,KAAK,GAAG,MAAM,MAAM,GAAG,MAAM,GAAG,IAAI,IAAI,IAAI,MAAM,KAAK,KAAK,CAAC,IAAI,SAAS,MAAM,OAAO,KAAK,SAAS,EAAM,OAAO,MAAM,OAAO,GAAG,MAAM,MAAM,OAAO,OAAO,IAAI,IAAI,IAAI,KAAK,UAAU,GAAG,IAAI,IAAI,MAAM,GAAG,MAAM,MAAM,MAAM,OAAO,OAAO,GAAG,KAAK,MAAM,IACxS,UAAU,MAAM,SAAS,CAAC,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,MAAO,IAAI,IAAIR,IAAE,KAAK,UAAU,MAAM,IAAI,EAAE,EAAE,CAAC,MAAM,KAAG,EAAE,CAAC,IAAI,KAAK,KAAKA,OAAK,MAAO,GAAG,KAAKA,IAAE,IAAI,EAAE,KAAK,KAAK,IAAE,KAAK,KAAKA,IAAE,EAAE,UAAU,KAAKA,IAAE,IAAI,EAAE,OAAO,KAAK,KAAKA,IAAE,EAAE,MAAM,MAAO,GAAG,MAAM,UAAU,MAAM,EAAE,OAAO,KAAK,KAAKA,IAAE,EAAE,CAAG,MAAO,GACnT,UAAU,MAAM,KAAK,CAAC,OAAO,KAAK,OAAO,MAAM,EAAE,MACjD,UAAU,MAAM,KAAK,CAAC,OAAO,KAAK,UAAU,MAAM,EAAE,CAAC,MAAM,EAC3D,YAAY,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,WAAW,MAAM,GAAG,GAAG,OAAO,GAAK,KAAK,CAC/E,WAAW,MAAM,OAAO,CAAC,IAAI,MAAM,KAAK,UAAU,MAAM,EAAE,CAAK,OAAO,MAAM,OAAO,MAAM,CAAC,IAAK,GAAE,IAAI,IAAIA,IAAE,KAAK,UAAU,MAAM,EAAE,CAAC,QAAQ,KAAK,KAAG,EAAE,CAAC,GAAG,KAAK,KAAKA,MAAI,MAAO,GAAG,KAAK,KAAKA,IAAE,IAAI,EAAE,IAAE,KAAK,KAAK,KAAKA,IAAE,EAAE,MAAM,MAAO,OAAO,OAAO,KAAK,KAAK,KAAKA,IAAE,EAAE,CAAC,CAAE,OAAO,OAEhR,WAAW,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC,IAAI,IAAIA,IAAE,KAAK,UAAU,MAAM,EAAE,EAAE,KAAG,EAAE,CAAC,GAAG,KAAK,KAAKA,MAAI,MAAO,GAAG,KAAK,KAAKA,IAAE,IAAI,EAAE,IAAE,KAAK,KAAK,KAAKA,IAAE,EAAE,MAAM,MAAO,GAAA,EAAI,KAAK,KAAKA,IAAE,GAAG,GAAc,CAAC,IAAI,MAAM,KAAK,KAAKA,IAAE,GAAO,OAAO,MAAM,EAAE,KAAK,GAAG,GAAG,GAAG,MAAM,EAAC,OAAO,KAAK,KAAK,KAAKA,KAAG,MAAM,EAAG,OAAO,OAGpS,UAAU,OAAO,CAAC,IAAI,KAAK,OAAO,OAAO,OAAO,OAAO,SAAS,UAAU,CAAC,KAAK,CAAmE,GAA/D,OAAO,QAAM,KAAK,QAAQ,KAAK,QAAQ,OAAO,GAAG,OAAO,MAAM,EAAI,OAAO,IAAI,CAAC,IAAI,KAAK,KAAK,SAAS,OAAO,KAAK,GAAG,CAAC,KAAK,MAAU,WAAW,yBAAyB,OAAO,MAAM,CAAC,KAAK,IAAI,KAAgwB,OAAvvB,OAAO,aAAW,KAAK,WAAW,KAAK,WAAW,IAAI,KAAG,CAAC,IAAI,MAAM,OAAO,WAAW,KAAK,GAAG,EAAE,MAAMS,IAAE,CAAC,OAAO,MAAM,MAAM,GAAGA,KAAI,EAAI,OAAO,eAAc,KAAK,aAAa,KAAK,aAAa,OAAO,CAAC,KAAK,iBAAiB,KAAK,iBAAiB,KAAK,EAAE,MAAI,CAAC,IAAI,MAAM,OAAO,aAAa,KAAK,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,MAAM,OAAO,EAAE,IAAI,KAAK,OAAO,OAAO,OAAO,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,SAAS,MAAM,GAAG,CAAC,CAA2C,MAA1C,MAAK,aAAaT,KAAG,eAAe,KAAK,CAAQ,MAAO,EAAK,OAAO,iBAAe,KAAK,QAAQ,OAAO,gBAAkB,OAAO,UAAQ,KAAK,QAAQ,KAAK,aAAa,OAAO,QAAQ,EAAI,OAAO,QAAQ,OAAK,KAAK,OAAO,OAAO,QAAU,OAAO,OAAK,KAAK,SAAS,KAAK,SAAS,OAAO,OAAO,KAAK,EAAI,OAAO,cAAc,OAAK,KAAK,aAAa,OAAO,cAAoB,KAE1hC,aAAa,CAAC,OAAO,KAAK,SAAS,OAAO,EAI1C,QAAQ,KAAK,CAAC,OAAO,KAAK,UAAU,KAAK,UAAU,MAAM,OAAO,MAAM,KAAK,SAAS,KAAK,QAAQ,MAAM,MAAM,MAAM,KAAK,CAExH,IAAI,SAAS,CAAC,OAAO,KAAK,QAAQ,EAClC,IAAI,SAAS,CAAC,OAAO,KAAK,QAAQ,MAAM,KAAK,IAAI,IACjD,kBAAkB,KAAK,CAAC,IAAIU,OAAK,KAAK,mBAAmB,OAAOA,QAAM,KAAK,EAAEA,OAAK,OAAO,EACzF,aAAa,QAAQ,CAAC,IAAI,OAAO,OAAO,KAAK,KAAK,SAAS,CAAC,MAAM,OAAO,QAAQ,GAAM,CAAC,GAAG,QAAQ,IAAI,IAAI,QAAQ,QAAQ,MAAM,IAAI,CAAC,CAAC,IAAI,IAAI,OAAO,QAAQ,KAAK,CAAI,KAAK,IAAE,MAAM,KAAK,IAAM,IAAI,SAAS,KAAK,IAAI,IAAIV,IAAE,EAAEA,IAAE,OAAO,OAAO,MAAI,GAAG,CAAC,MAAMA,KAAI,IAAI,IAAI,EAAE,KAAK,SAAS,OAAOA,MAAI,MAAM,KAAK,KAAK,KAAK,OAAO,OAAO,CAAC,AAAW,WAAS,IAAI,WAAW,KAAK,QAAQ,EAAE,EAAG,MAAM,EAAG,OAAO,IAAI,QAAQ,QAAQ,MAAM,SAAS,CAE9a,OAAO,YAAY,KAAK,CAAC,OAAO,IAAI,SAAS,KAAK,CAClD,YAAY,KAAK,CAA0B,GAAzB,OAAO,CAAC,KAAK,SAAS,EAAE,CAAI,KAAK,SAAS,GAAG,MAAU,WAAW,mBAAmB,KAAK,QAAQ,sCAAyC,CAAC,IAAI,UAAU,KAAK,UAAU,MAAM,IAAI,CAAC,KAAK,cAAc,UAAU,OAAO,IAAI,IAAIA,IAAE,EAAEA,IAAE,KAAK,gBAAgB,MAAI,UAAU,KAAK,GAAG,CAAC,IAAI,SAAS,OAAO,KAAK,KAAK,SAAS,CAAC,IAAI,GAAG,KAAK,SAAS,GAAG,GAAG,CAAK,UAAU,EAAE,CAAC,IAAI,IAAI,GAAG,EAAE,GAAG,UAAU,OAAO,KAAK,UAAU,KAAK,EAAE,CAAC,CAAC,SAAS,QAAQ,OAAO,KAAK,MAAM,CAAC,UAAU,QAAQ,KAAK,CAAC,KAAK,KAAK,YAAY,OAAO,MAAM,CAAC,CAAC,CAAC,CAAE,GAAG,KAAK,UAAU,IAAI,IAAI,YAAY,KAAK,UAAU,CAAC,IAAI,KAAK,SAAS,GAAM,OAAO,MAAM,WAAS,KAAK,SAAS,OAAM,IAAI,IAAI,GAAG,EAAE,GAAG,SAAS,QAAQ,CAAC,IAAI,KAAK,SAAS,MAAM,GAAG,MAAM,EAAG,QAAQ,KAAK,KAAK,SAAS,MAAM,KAAM,CAAC,IAAI,MAAM,SAAS,GAAG,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,IAAI,QAAQ,SAAS,MAAM,KAAK,MAAM,CAAC,OAAQ,KAAK,QAAQ,IAAI,QAAQ,UAAU,KAAK,OAAK,MAAI,SAAS,OAAO,CAAC,KAAKA,KAAG,KAAK,cAAc,IAAK,GAAEW,OAAK,GAAGX,IAAE,MAAM,UAAUA,KAAG,IAAI,SAAS,QAAQA,IAAE,CAAC,GAAG,MAAMA,KAAG,EAAE,QAAQ,KAAK,cAAc,KAAK,aAAa,QAAQA,IAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAI,KAAK,cAAY,KAAK,QAAQ,KAAK,QAAQ,OAAO,GAAG,KAAK,YAAY,EAAC,KAAK,OAAO,GAAM,KAAK,aAAa,oBAAoB,IAAI,WAAW,YAAY,KAAK,UAAU,CAAC,KAAK,QAAQ,KAAK,QAAQ,KAAK,iBAAiB,KAAK,aAAa,EAAE,CAAC,KAAK,YAAY,IAAI,YAAY,KAAK,iBAAiB,OAAO,CAAC,IAAI,IAAI,GAAG,EAAE,GAAG,KAAK,iBAAiB,OAAO,KAAK,KAAK,YAAY,IAAI,KAAK,iBAAiB,IAAI,KAAK,KAAK,aAAa,KAAK,iBAAiB,IAAI,eAAe,CAAC,KAAK,OAAO,YAAY,KAAK,OAAO,YAAY,CAAC,KAAK,KAAK,YAAY,KAAK,UAAU,CAAC,KAAK,KAAK,YAAY,KAAK,KAAK,CAAC,KAAK,QAAQ,KAAK,QAAQ,KAAK,WAAW,KAAK,WAAW,IAAI,OAAO,OAAO,OAAO,SAAS,IAAI,WAAW,WAAW,MAAM,CAAC,MAAM,CAAC,KAAK,SAAS,KAAK,SAAS,KAAK,SAAS,KAAK,UAAU,EAAE,CAAC,KAAK,mBAAmB,KAAK,oBAAoB,KAAK,KAAK,eAAe,KAAK,UAAU,KAAK,UAAU,KAAK,WAAW,KAAK,KAAK,QAAQ,KAAK,QAAQ,MAAM,OAAO,EAAE,KAAK,QAAQ,KAAK,cAAc,CAAC,KAAK,IAAI,KAAK,SAAS,OAAO,KAAK,KAAK,SAAS,CAAC"}