{"version":3,"file":"script_main.GVZzz0CL.mjs","names":["mask","SVG","getProps","Icon","className","mask","SVG","getProps","Icon","className","addPropertyOverrides","enabledGestures","cycleOrder","serializationHash","variantClassNames","transition1","Transition","React.useContext","React.useMemo","Variants","React.Fragment","humanReadableVariantMap","getProps","UserHeart","createLayoutDependency","useRef","React.useId","className","RichText","addPropertyOverrides","NavButton","ButtonFonts","Button","cycleOrder","serializationHash","variantClassNames","transition1","Transition","React.useContext","React.useMemo","Variants","React.Fragment","humanReadableEnumMap","humanReadableVariantMap","getProps","createLayoutDependency","useRef","React.useId","className","SVG","UserHeart","Partner","mask","SVG","getProps","Icon","className","mask","SVG","getProps","Icon","className","mask","SVG","getProps","Icon","className","getProps","className","addPropertyOverrides","cycleOrder","serializationHash","variantClassNames","transition1","Transition","React.useContext","React.useMemo","Variants","React.Fragment","humanReadableVariantMap","getProps","Apple","createLayoutDependency","useRef","React.useId","className","RichText","addPropertyOverrides","serializationHash","variantClassNames","transition1","transition2","Transition","React.useContext","React.useMemo","transition3","Variants","React.Fragment","getProps","createLayoutDependency","useRef","React.useId","sharedStyle.className","className","RichText","sharedStyle.css","sharedStyle.fonts","addPropertyOverrides","Button","ButtonAlt","PaaceIcon","PaaceLogo","cycleOrder","serializationHash","variantClassNames","transition1","t","Transition","React.useContext","React.useMemo","Variants","React.Fragment","humanReadableVariantMap","getProps","createLayoutDependency","useRef","React.useId","className","RichText","Apple","GooglePlay","SVG","useRef","v","useRef","useCallback","animate","i","r","g","b","f","p","t","h","v","d","a","c","e","k","m","o","x","z","global","mask","prng","seed","j","s","B","C","window","animationData","w","addFonts","renderer","text","loadAnimation","searchAnimations","standalone","Math","document","wiggle","index","time","len","TextExpressionSelectorPropFactory","useRef","v","useCallback","d","lottie","c","serializationHash","variantClassNames","React.useContext","React.useMemo","React.Fragment","humanReadableVariantMap","getProps","useRef","React.useId","className","e","i","t","r","a","c","h","o","e","p","r","t","o","a","i","c","u","d","m","v","b","S","C","$","z","f","n","s","r.createContext","useRef","useState","Component","LenisFonts","Lenis","PreloaderSimple","PreloaderSimpleInfo","NavigationFonts","Navigation","FooterFonts","Footer","breakpoints","serializationHash","variantClassNames","breakpointRules","breakpointKeys","rules","mediaQueries","HTMLStyle","humanReadableVariantMap","getProps","Component","useRef","React.useId","className","PropertyOverrides","css","css","Lenis","Navigation","Footer","sharedStyle.css","sharedStyle1.css","sharedStyle2.css","sharedStyle3.css","sharedStyle4.css","sharedStyle5.css","sharedStyle6.css","sharedStyle7.css","sharedStyle8.css","React.Fragment","Component","useRef","React.useId","sharedStyle.className","sharedStyle1.className","sharedStyle2.className","sharedStyle3.className","sharedStyle4.className","sharedStyle5.className","sharedStyle6.className","sharedStyle7.className","sharedStyle8.className","className","PropertyOverrides","RichText","sharedStyle.fonts","sharedStyle1.fonts","sharedStyle2.fonts","sharedStyle3.fonts","sharedStyle4.fonts","sharedStyle5.fonts","sharedStyle6.fonts","sharedStyle7.fonts","sharedStyle8.fonts","React.createElement","MainPage","Plain","Framer.PageRoot","Framer.lazy","Framer.useCurrentRoute","Framer.useLocaleInfo","Framer.useRouter","React.Fragment","React.memo","React.useCallback","React.useEffect","React.useRef","React.useState","React.useLayoutEffect","Framer.LazyValue","Framer.LibraryFeaturesProvider","Framer.GracefullyDegradingErrorBoundary","Framer.PageEffectsProvider","breakpoints","Framer.patchRoutesForABTesting","e","routeData","Framer.inferInitialRouteFromPath","Framer.yieldToMain","React.startTransition","Framer.ErrorPlaceholder"],"sources":["https:/framerusercontent.com/modules/ZDzt3L66H7zrGUK4x36u/1PoRolvL92ygVyQYef24/oZHRkVeOw.js","https:/framerusercontent.com/modules/bzWv369Q1Gy4XELxLWXo/zciaNtNw90YljEVWqRbw/tlw8F3Qxr.js","https:/framerusercontent.com/modules/2trpNabFNu7hnzlFp091/fXty4vNym8wuUt3CJgp2/XXA0nM5ST.js","https:/framerusercontent.com/modules/hLkHgetiPjXu32f43M8d/L9hp9jJzZJWbphlOa2kW/q2fHXJfMv.js","https:/framerusercontent.com/modules/lwf9lPHGKp6RC9MmUcks/DG86tUBQPitYveZcteqr/FeaToeU9c.js","https:/framerusercontent.com/modules/x4h5LQyFXUD7gbvx3qBg/XLKeVG7zEV9lgobCsxCc/y2Wh1LBLU.js","https:/framerusercontent.com/modules/m0ViLeOjxQLQIw4hQbcC/1iYLG994ImCQ0NW93BjP/zJXrTnKmc.js","https:/framerusercontent.com/modules/HTVju5ZzkGhp3JUbULAg/tZUc80CWpb4H3cS9Av3T/FeaToeU9c.js","https:/framerusercontent.com/modules/oaKQz6vrd9JJ80fLTrZt/2DXkpkZHRvtcy7vKdqC3/d5cAcwpH8.js","https:/framerusercontent.com/modules/3KW4H31czBO8P7AJBjv9/h5zYBFt99iKqB1iG2fJF/Xn1PAaHuI.js","https:/framerusercontent.com/modules/7ZN2UFc2guaT860sip2N/N28i9Rd2zniQmHfwFXAA/RfEppRLbS.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:/framerusercontent.com/modules/G4IfyjvwmaeSBpdb4TWu/OIjZRBmWDcIE2B6qgG1j/index.js","https:/framer.com/m/framer/default-utils.js@^0.45.0","https:/framerusercontent.com/modules/3mKFSGQqKHV82uOV1eBc/TbXI1XaZFNevVKcgIt7G/isMotionValue.js","https:/framerusercontent.com/modules/kNDwabfjDEb3vUxkQlZS/V4SPg9g59hF1vFH3ZTF0/useAutoMotionValue.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/RLfsHd78NBd0kbafA9hd/Lottie.js","https:/framerusercontent.com/modules/LLBNu4kG7OE47Hlu95hD/EcSp3dudvaCfVrq4QDgA/vL4UZmzdE.js","https:/ga.jspm.io/npm:universal-cookie@7.1.4/esm/index.mjs","https:/ga.jspm.io/npm:react-cookie@7.1.4/esm/index.mjs","https:/framerusercontent.com/modules/oZ3F6muMwYb6bEaQkOmF/ObNnqrJHNaGfgmDqH1qP/ShowOnce.js","https:/framerusercontent.com/modules/5I6FVvkxK9wNmbgeLyQB/E3i5fIKsentcL7woHNs1/kAsrRUY7M.js","https:/framerusercontent.com/modules/kadj2vx3mdYqDBRHLSSs/ai9FV9WiRafwCSpWCeIk/COumsfllp.js","https:/framerusercontent.com/modules/gXi6Uf3yJfuNSHzVsHF2/U15ds37YElSDtpnOVfIR/ldc246Sx4.js","framer:toplevel/main"],"sourcesContent":["// Generated by Framer (0138aee)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,cx,motion,withCSS}from\"framer\";import*as React from\"react\";import{forwardRef}from\"react\";const rC8E5sKlO=undefined;const mask='url(\\'data:image/svg+xml,<svg display=\"block\" role=\"presentation\" viewBox=\"0 0 40 40\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M 13.765 12.965 C 12.039 12.995 10.378 12.311 9.175 11.073 C 7.938 9.87 7.253 8.209 7.283 6.483 C 7.283 4.686 7.915 3.155 9.175 1.893 C 10.379 0.655 12.041 -0.03 13.768 0.001 C 15.565 0.001 17.093 0.631 18.355 1.893 C 19.617 3.155 20.247 4.686 20.247 6.486 C 20.247 8.283 19.617 9.811 18.355 11.073 C 17.152 12.311 15.491 12.995 13.765 12.965 Z M 13.765 9.846 C 14.698 9.846 15.492 9.519 16.145 8.863 C 16.801 8.211 17.127 7.419 17.127 6.483 C 17.143 5.588 16.788 4.726 16.145 4.103 C 15.522 3.461 14.66 3.105 13.765 3.121 C 12.832 3.121 12.038 3.45 11.385 4.103 C 10.732 4.756 10.403 5.547 10.403 6.483 C 10.403 7.416 10.732 8.211 11.385 8.863 C 12.038 9.519 12.832 9.846 13.765 9.846 Z M 13.765 38.337 L 1.841 26.412 C 1.24 25.819 0.77 25.106 0.46 24.321 C 0.147 23.504 -0.009 22.636 0 21.761 C 0 19.942 0.624 18.411 1.875 17.16 C 3.126 15.912 4.66 15.288 6.483 15.288 C 7.375 15.288 8.196 15.455 8.95 15.788 C 9.701 16.123 10.394 16.605 11.021 17.232 L 13.765 19.976 L 16.509 17.232 C 17.125 16.617 17.812 16.14 18.575 15.799 C 19.357 15.454 20.204 15.28 21.059 15.288 C 22.87 15.288 24.404 15.912 25.652 17.16 C 26.906 18.411 27.53 19.944 27.53 21.761 C 27.539 22.636 27.383 23.504 27.07 24.321 C 26.764 25.101 26.305 25.797 25.689 26.412 L 13.765 38.334 Z M 13.765 33.888 L 23.433 24.22 C 23.771 23.879 24.02 23.5 24.176 23.082 C 24.331 22.666 24.41 22.226 24.41 21.782 C 24.41 20.88 24.089 20.095 23.445 19.419 C 22.827 18.755 21.954 18.387 21.047 18.408 C 20.605 18.408 20.207 18.474 19.849 18.61 C 19.454 18.768 19.1 19.011 18.809 19.321 L 13.765 24.361 L 8.765 19.361 C 8.501 19.098 8.199 18.877 7.869 18.705 C 7.442 18.493 6.968 18.391 6.491 18.408 C 5.529 18.408 4.729 18.743 4.085 19.413 C 3.462 20.035 3.114 20.881 3.12 21.761 C 3.12 22.209 3.207 22.637 3.372 23.041 C 3.539 23.446 3.779 23.815 4.097 24.153 Z\" fill=\"var(--1oolg0, var(--token-0709f198-420c-4f9d-986e-3d4e155f33d3, rgb(71, 230, 255)))\" height=\"38.33672944664717px\" id=\"lIdRax0aP\" transform=\"translate(6 1)\" width=\"27.53000000000001px\"/></svg>\\') alpha no-repeat center / auto var(--framer-icon-mask-mode, add), var(--framer-icon-mask, none)';const SVG=/*#__PURE__*/forwardRef((props,ref)=>{const{animated,layoutId,children,...rest}=props;return animated?/*#__PURE__*/_jsx(motion.div,{...rest,layoutId:layoutId,ref:ref}):/*#__PURE__*/_jsx(\"div\",{...rest,ref:ref});});const getProps=({height,iconColour,id,width,...props})=>{return{...props,rC8E5sKlO:iconColour??props.rC8E5sKlO??\"var(--token-0709f198-420c-4f9d-986e-3d4e155f33d3, rgb(71, 230, 255))\"};};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const{style,className,layoutId,variant,rC8E5sKlO,...restProps}=getProps(props);return /*#__PURE__*/_jsx(SVG,{...restProps,className:cx(\"framer-IDpGQ\",className),layoutId:layoutId,ref:ref,style:{\"--1oolg0\":rC8E5sKlO,...style}});});const css=[`.framer-IDpGQ { -webkit-mask: ${mask}; aspect-ratio: 1; background-color: var(--1oolg0); mask: ${mask}; width: 40px; }`];/**\n * This is a generated Framer component.\n * @framerIntrinsicWidth 40\n * @framerIntrinsicHeight 40\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n * @framerVariables {\"rC8E5sKlO\":\"iconColour\"}\n * @framerImmutableVariables true\n * @framerVector {\"name\":\"User Heart\",\"color\":{\"type\":\"variable\",\"value\":\"1oolg0\"},\"set\":{\"localId\":\"vectorSet/u5hZJ0bHZ\",\"id\":\"u5hZJ0bHZ\",\"moduleId\":\"Srpc00kEjpOv3WaXtkIc\"}}\n */const Icon=withCSS(Component,css,\"framer-IDpGQ\");Icon.displayName=\"User Heart\";export default Icon;addPropertyControls(Icon,{rC8E5sKlO:{defaultValue:'var(--token-0709f198-420c-4f9d-986e-3d4e155f33d3, rgb(71, 230, 255)) /* {\"name\":\"Blue\"} */',hidden:false,title:\"Icon Colour\",type:ControlType.Color}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Icon\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"40\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerContractVersion\":\"1\",\"framerVariables\":\"{\\\"rC8E5sKlO\\\":\\\"iconColour\\\"}\",\"framerImmutableVariables\":\"true\",\"framerIntrinsicWidth\":\"40\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerVector\":\"{\\\"name\\\":\\\"User Heart\\\",\\\"color\\\":{\\\"type\\\":\\\"variable\\\",\\\"value\\\":\\\"1oolg0\\\"},\\\"set\\\":{\\\"localId\\\":\\\"vectorSet/u5hZJ0bHZ\\\",\\\"id\\\":\\\"u5hZJ0bHZ\\\",\\\"moduleId\\\":\\\"Srpc00kEjpOv3WaXtkIc\\\"}}\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (0138aee)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,cx,motion,withCSS}from\"framer\";import*as React from\"react\";import{forwardRef}from\"react\";const rC8E5sKlO=undefined;const mask='url(\\'data:image/svg+xml,<svg display=\"block\" role=\"presentation\" viewBox=\"0 0 40 40\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M 18.126 30.79 C 18.309 30.787 18.489 30.746 18.654 30.668 C 18.812 30.601 18.957 30.506 19.082 30.388 L 33.169 16.301 C 33.565 15.905 33.864 15.482 34.067 15.028 C 34.266 14.578 34.366 14.103 34.366 13.606 C 34.368 12.557 33.935 11.553 33.169 10.835 L 26.123 3.789 C 25.776 3.416 25.356 3.119 24.889 2.917 C 24.435 2.731 23.948 2.638 23.457 2.642 C 22.439 2.635 21.463 3.051 20.762 3.791 L 19.751 4.8 L 23.008 8.084 C 23.404 8.462 23.695 8.893 23.885 9.376 C 24.073 9.86 24.168 10.359 24.168 10.88 C 24.168 11.955 23.809 12.851 23.09 13.569 C 22.38 14.283 21.407 14.673 20.4 14.645 C 19.883 14.645 19.378 14.56 18.895 14.388 C 18.406 14.216 17.962 13.935 17.597 13.567 L 14.258 10.254 L 6.604 17.91 C 6.347 18.162 6.202 18.507 6.202 18.866 C 6.195 19.273 6.401 19.654 6.745 19.87 C 7.09 20.087 7.522 20.107 7.885 19.923 C 8.042 19.857 8.185 19.763 8.308 19.646 L 14.094 13.86 L 15.951 15.717 L 10.192 21.503 C 9.938 21.755 9.795 22.099 9.796 22.457 C 9.792 22.762 9.914 23.056 10.134 23.268 C 10.346 23.488 10.639 23.612 10.945 23.609 C 11.128 23.607 11.308 23.565 11.473 23.487 C 11.632 23.421 11.777 23.326 11.901 23.207 L 17.888 17.247 L 19.745 19.104 L 13.782 25.091 C 13.652 25.207 13.553 25.353 13.492 25.516 C 13.423 25.684 13.387 25.863 13.386 26.045 C 13.382 26.351 13.504 26.645 13.724 26.858 C 13.936 27.079 14.229 27.202 14.535 27.199 C 14.895 27.198 15.239 27.054 15.492 26.798 L 21.476 20.837 L 23.333 22.695 L 17.344 28.681 C 17.093 28.943 16.95 29.291 16.945 29.654 C 16.945 29.979 17.066 30.251 17.307 30.465 C 17.528 30.674 17.821 30.79 18.126 30.79 Z M 18.099 33.432 C 17.128 33.441 16.193 33.068 15.494 32.393 C 14.767 31.732 14.346 30.798 14.332 29.815 C 13.397 29.774 12.508 29.395 11.83 28.75 C 11.161 28.108 10.799 27.265 10.741 26.222 C 9.698 26.156 8.855 25.791 8.213 25.128 C 7.565 24.457 7.195 23.566 7.177 22.634 C 6.199 22.596 5.272 22.188 4.583 21.493 C 3.901 20.8 3.56 19.926 3.56 18.866 C 3.56 18.346 3.661 17.836 3.856 17.339 C 4.055 16.843 4.342 16.404 4.72 16.029 L 14.258 6.518 L 19.418 11.675 C 19.521 11.796 19.655 11.894 19.825 11.966 C 19.997 12.04 20.183 12.077 20.371 12.077 C 20.679 12.081 20.976 11.967 21.201 11.757 C 21.434 11.543 21.562 11.238 21.55 10.922 C 21.552 10.734 21.516 10.548 21.444 10.375 C 21.379 10.219 21.279 10.079 21.151 9.968 L 14.971 3.791 C 14.624 3.416 14.2 3.119 13.729 2.919 C 13.272 2.734 12.783 2.639 12.29 2.642 C 11.805 2.639 11.325 2.733 10.876 2.917 C 10.427 3.102 10.007 3.392 9.608 3.789 L 3.825 9.601 C 3.498 9.931 3.231 10.315 3.037 10.737 C 2.837 11.157 2.714 11.61 2.675 12.074 C 2.641 12.449 2.657 12.822 2.728 13.189 C 2.797 13.556 2.921 13.902 3.098 14.222 L 1.151 16.166 C -0.642 13.518 -0.311 9.972 1.941 7.701 L 7.706 1.934 C 8.366 1.292 9.085 0.811 9.859 0.486 C 10.636 0.161 11.449 0 12.303 0 C 13.156 0 13.967 0.161 14.739 0.486 C 15.532 0.826 16.251 1.318 16.855 1.934 L 17.864 2.943 L 18.873 1.934 C 19.534 1.292 20.247 0.811 21.019 0.486 C 21.788 0.161 22.601 0 23.455 0 C 24.308 0 25.122 0.161 25.898 0.486 C 26.673 0.811 27.383 1.292 28.023 1.934 L 35.024 8.935 C 35.666 9.577 36.157 10.309 36.498 11.125 C 36.839 11.944 37.008 12.779 37.008 13.635 C 37.008 14.486 36.839 15.3 36.498 16.069 C 36.155 16.837 35.666 17.545 35.024 18.185 L 20.937 32.245 C 20.189 33.007 19.166 33.434 18.099 33.432 Z\" fill=\"var(--1oolg0, var(--token-0709f198-420c-4f9d-986e-3d4e155f33d3, rgb(71, 230, 255)))\" height=\"33.43185817550669px\" id=\"zYhrp7Kye\" transform=\"translate(2 3)\" width=\"37.00799999999998px\"/></svg>\\') alpha no-repeat center / auto var(--framer-icon-mask-mode, add), var(--framer-icon-mask, none)';const SVG=/*#__PURE__*/forwardRef((props,ref)=>{const{animated,layoutId,children,...rest}=props;return animated?/*#__PURE__*/_jsx(motion.div,{...rest,layoutId:layoutId,ref:ref}):/*#__PURE__*/_jsx(\"div\",{...rest,ref:ref});});const getProps=({height,iconColour,id,width,...props})=>{return{...props,rC8E5sKlO:iconColour??props.rC8E5sKlO??\"var(--token-0709f198-420c-4f9d-986e-3d4e155f33d3, rgb(71, 230, 255))\"};};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const{style,className,layoutId,variant,rC8E5sKlO,...restProps}=getProps(props);return /*#__PURE__*/_jsx(SVG,{...restProps,className:cx(\"framer-B7gua\",className),layoutId:layoutId,ref:ref,style:{\"--1oolg0\":rC8E5sKlO,...style}});});const css=[`.framer-B7gua { -webkit-mask: ${mask}; aspect-ratio: 1; background-color: var(--1oolg0); mask: ${mask}; width: 40px; }`];/**\n * This is a generated Framer component.\n * @framerIntrinsicWidth 40\n * @framerIntrinsicHeight 40\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n * @framerVariables {\"rC8E5sKlO\":\"iconColour\"}\n * @framerImmutableVariables true\n * @framerVector {\"name\":\"Partner\",\"color\":{\"type\":\"variable\",\"value\":\"1oolg0\"},\"set\":{\"localId\":\"vectorSet/u5hZJ0bHZ\",\"id\":\"u5hZJ0bHZ\",\"moduleId\":\"Srpc00kEjpOv3WaXtkIc\"}}\n */const Icon=withCSS(Component,css,\"framer-B7gua\");Icon.displayName=\"Partner\";export default Icon;addPropertyControls(Icon,{rC8E5sKlO:{defaultValue:'var(--token-0709f198-420c-4f9d-986e-3d4e155f33d3, rgb(71, 230, 255)) /* {\"name\":\"Blue\"} */',hidden:false,title:\"Icon Colour\",type:ControlType.Color}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Icon\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerImmutableVariables\":\"true\",\"framerVector\":\"{\\\"name\\\":\\\"Partner\\\",\\\"color\\\":{\\\"type\\\":\\\"variable\\\",\\\"value\\\":\\\"1oolg0\\\"},\\\"set\\\":{\\\"localId\\\":\\\"vectorSet/u5hZJ0bHZ\\\",\\\"id\\\":\\\"u5hZJ0bHZ\\\",\\\"moduleId\\\":\\\"Srpc00kEjpOv3WaXtkIc\\\"}}\",\"framerIntrinsicWidth\":\"40\",\"framerVariables\":\"{\\\"rC8E5sKlO\\\":\\\"iconColour\\\"}\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerIntrinsicHeight\":\"40\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (569fd08)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ControlType,cx,Instance,Link,RichText,useActiveVariantCallback,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import UserHeart from\"https://framerusercontent.com/modules/ZDzt3L66H7zrGUK4x36u/1PoRolvL92ygVyQYef24/oZHRkVeOw.js\";const enabledGestures={QHkX6MSKV:{hover:true}};const cycleOrder=[\"QHkX6MSKV\",\"Kc8EX5opH\"];const serializationHash=\"framer-EOzhh\";const variantClassNames={Kc8EX5opH:\"framer-v-bm9jxv\",QHkX6MSKV:\"framer-v-u4oenv\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const sqCVfk4EE=undefined;const nLHE28WWj=undefined;const p7uVFdvwi=undefined;const kcwRwuMv0=undefined;const transition1={bounce:.2,delay:0,duration:.4,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={\"Variant 1\":\"QHkX6MSKV\",Active:\"Kc8EX5opH\"};const getProps=({buttonText,click,height,icon,id,link,width,...props})=>{return{...props,kcwRwuMv0:buttonText??props.kcwRwuMv0??\"Users\",nLHE28WWj:link??props.nLHE28WWj,p7uVFdvwi:icon??props.p7uVFdvwi??UserHeart,sqCVfk4EE:click??props.sqCVfk4EE,variant:humanReadableVariantMap[props.variant]??props.variant??\"QHkX6MSKV\"};};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,kcwRwuMv0,nLHE28WWj,p7uVFdvwi,sqCVfk4EE,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"QHkX6MSKV\",enabledGestures,ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const{activeVariantCallback,delay}=useActiveVariantCallback(baseVariant);const onTapll5rsx=activeVariantCallback(async(...args)=>{setGestureState({isPressed:false});if(sqCVfk4EE){const res=await sqCVfk4EE(...args);if(res===false)return false;}});const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsx(Link,{href:nLHE28WWj,motionChild:true,nodeId:\"QHkX6MSKV\",openInNewTab:false,scopeId:\"XXA0nM5ST\",children:/*#__PURE__*/_jsx(motion.a,{...restProps,...gestureHandlers,className:`${cx(scopingClassNames,\"framer-u4oenv\",className,classNames)} framer-1bzfiba`,\"data-framer-name\":\"Variant 1\",\"data-highlight\":true,layoutDependency:layoutDependency,layoutId:\"QHkX6MSKV\",onTap:onTapll5rsx,ref:refBinding,style:{backgroundColor:\"var(--token-b6a1d1f8-61cc-4b74-88e3-e5fc99129757, rgb(248, 248, 248))\",borderBottomLeftRadius:10,borderBottomRightRadius:10,borderTopLeftRadius:10,borderTopRightRadius:10,...style},variants:{Kc8EX5opH:{backgroundColor:\"var(--token-5761bd89-c3be-4f67-87d8-dc85135d2783, rgb(218, 250, 255))\"}},...addPropertyOverrides({\"QHkX6MSKV-hover\":{\"data-framer-name\":undefined},Kc8EX5opH:{\"data-framer-name\":\"Active\"}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsxs(motion.div,{className:\"framer-fqag7t\",\"data-framer-name\":\"Initial Colours\",layoutDependency:layoutDependency,layoutId:\"g1UD_Ml9y\",style:{borderBottomLeftRadius:10,borderBottomRightRadius:10,borderTopLeftRadius:10,borderTopRightRadius:10},children:[/*#__PURE__*/_jsx(Instance,{animated:true,className:\"framer-1gybuo1\",Component:p7uVFdvwi,layoutDependency:layoutDependency,layoutId:\"u5IavHO1h\",style:{\"--1oolg0\":\"var(--token-225e9e61-0e84-4e47-856f-3c1fe65ec629, rgb(4, 47, 61))\",opacity:.75},variants:{\"QHkX6MSKV-hover\":{opacity:1},Kc8EX5opH:{opacity:1}}}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7WmFsYW5kbyBTYW5zLTYwMA==\",\"--framer-font-family\":'\"Zalando Sans\", \"Zalando Sans Placeholder\", sans-serif',\"--framer-font-size\":\"14px\",\"--framer-font-weight\":\"600\",\"--framer-letter-spacing\":\"0.01em\",\"--framer-line-height\":\"90%\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-225e9e61-0e84-4e47-856f-3c1fe65ec629, rgb(4, 47, 61)))\",\"--framer-text-transform\":\"inherit\"},children:\"Users\"})}),className:\"framer-pvzblf\",\"data-framer-name\":\"Download App\",fonts:[\"GF;Zalando Sans-600\"],layoutDependency:layoutDependency,layoutId:\"cC5pEM_To\",style:{\"--extracted-r6o4lv\":\"var(--token-225e9e61-0e84-4e47-856f-3c1fe65ec629, rgb(4, 47, 61))\",\"--framer-paragraph-spacing\":\"129.68409729003906px\",opacity:.75},text:kcwRwuMv0,variants:{\"QHkX6MSKV-hover\":{opacity:1},Kc8EX5opH:{opacity:1}},verticalAlignment:\"top\",withExternalLayout:true})]})})})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-EOzhh.framer-1bzfiba, .framer-EOzhh .framer-1bzfiba { display: block; }\",\".framer-EOzhh.framer-u4oenv { align-content: center; align-items: center; cursor: pointer; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 7px; height: 42px; justify-content: center; overflow: visible; padding: 0px; position: relative; text-decoration: none; width: min-content; }\",\".framer-EOzhh .framer-fqag7t { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 5px; height: 42px; justify-content: center; overflow: visible; padding: 10px 15px 10px 15px; position: relative; width: min-content; }\",\".framer-EOzhh .framer-1gybuo1 { flex: none; height: var(--framer-aspect-ratio-supported, 40px); position: relative; width: 16px; }\",\".framer-EOzhh .framer-pvzblf { flex: none; height: auto; position: relative; white-space: pre; width: auto; }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 42\n * @framerIntrinsicWidth 90\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"auto\",\"fixed\"]},\"Kc8EX5opH\":{\"layout\":[\"auto\",\"fixed\"]},\"KdwA8ibRy\":{\"layout\":[\"auto\",\"fixed\"]}}}\n * @framerVariables {\"kcwRwuMv0\":\"buttonText\",\"nLHE28WWj\":\"link\",\"p7uVFdvwi\":\"icon\",\"sqCVfk4EE\":\"click\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n * @framerVectorSets [\"Srpc00kEjpOv3WaXtkIc\"]\n */const FramerXXA0nM5ST=withCSS(Component,css,\"framer-EOzhh\");export default FramerXXA0nM5ST;FramerXXA0nM5ST.displayName=\"Nav Button\";FramerXXA0nM5ST.defaultProps={height:42,width:90};addPropertyControls(FramerXXA0nM5ST,{variant:{options:[\"QHkX6MSKV\",\"Kc8EX5opH\"],optionTitles:[\"Variant 1\",\"Active\"],title:\"Variant\",type:ControlType.Enum},kcwRwuMv0:{defaultValue:\"Users\",displayTextArea:false,title:\"Button Text\",type:ControlType.String},nLHE28WWj:{title:\"Link\",type:ControlType.Link},p7uVFdvwi:{defaultValue:{identifier:\"local-module:vector/oZHRkVeOw:default\",moduleId:\"ZDzt3L66H7zrGUK4x36u\"},setModuleId:\"Srpc00kEjpOv3WaXtkIc\",title:\"Icon\",type:ControlType.VectorSetItem},sqCVfk4EE:{title:\"Click\",type:ControlType.EventHandler}});addFonts(FramerXXA0nM5ST,[{explicitInter:true,fonts:[{cssFamilyName:\"Zalando Sans\",source:\"google\",style:\"normal\",uiFamilyName:\"Zalando Sans\",url:\"https://fonts.gstatic.com/s/zalandosans/v2/FwZ67-Asy1Em_lq_aK3hpr-RrktWHD54lnesO2lsVvrnhgw8zPbXoT_lODkWYUMEgzhp.woff2\",weight:\"600\"}]}],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerXXA0nM5ST\",\"slots\":[],\"annotations\":{\"framerImmutableVariables\":\"true\",\"framerComponentViewportWidth\":\"true\",\"framerVectorSets\":\"[\\\"Srpc00kEjpOv3WaXtkIc\\\"]\",\"framerContractVersion\":\"1\",\"framerDisplayContentsDiv\":\"false\",\"framerAutoSizeImages\":\"true\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"fixed\\\"]},\\\"Kc8EX5opH\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"fixed\\\"]},\\\"KdwA8ibRy\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"fixed\\\"]}}}\",\"framerColorSyntax\":\"true\",\"framerIntrinsicHeight\":\"42\",\"framerIntrinsicWidth\":\"90\",\"framerVariables\":\"{\\\"kcwRwuMv0\\\":\\\"buttonText\\\",\\\"nLHE28WWj\\\":\\\"link\\\",\\\"p7uVFdvwi\\\":\\\"icon\\\",\\\"sqCVfk4EE\\\":\\\"click\\\"}\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./XXA0nM5ST.map","// Generated by Framer (569fd08)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,ControlType,cx,getFonts,getPropertyControls,ResolveLinks,SmartComponentScopedContainer,SVG,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 UserHeart from\"https://framerusercontent.com/modules/ZDzt3L66H7zrGUK4x36u/1PoRolvL92ygVyQYef24/oZHRkVeOw.js\";import Partner from\"https://framerusercontent.com/modules/bzWv369Q1Gy4XELxLWXo/zciaNtNw90YljEVWqRbw/tlw8F3Qxr.js\";import Button from\"https://framerusercontent.com/modules/YYvDFATiMWmC9L8xIkPz/OqrdO3A5STgnl0raV8um/Xn1PAaHuI.js\";import NavButton from\"https://framerusercontent.com/modules/2trpNabFNu7hnzlFp091/fXty4vNym8wuUt3CJgp2/XXA0nM5ST.js\";const NavButtonFonts=getFonts(NavButton);const ButtonFonts=getFonts(Button);const NavButtonControls=getPropertyControls(NavButton);const cycleOrder=[\"AAcdoj48l\",\"AdfeNu6uT\",\"hbOAzkVH7\"];const serializationHash=\"framer-3j5FK\";const variantClassNames={AAcdoj48l:\"framer-v-vntib2\",AdfeNu6uT:\"framer-v-1kf5qkf\",hbOAzkVH7:\"framer-v-1k57v1s\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const G9nbGulg2=undefined;const kN9jQvAfO=undefined;const transition1={damping:40,delay:0,mass:1,stiffness:400,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 humanReadableEnumMap={\"Variant 1\":\"QHkX6MSKV\",Active:\"Kc8EX5opH\"};const humanReadableVariantMap={\"Phone Open\":\"hbOAzkVH7\",Desktop:\"AAcdoj48l\",Phone:\"AdfeNu6uT\"};const getProps=({height,id,partnersActive,usersActive,width,...props})=>{return{...props,G9nbGulg2:humanReadableEnumMap[usersActive]??usersActive??props.G9nbGulg2??\"QHkX6MSKV\",kN9jQvAfO:humanReadableEnumMap[partnersActive]??partnersActive??props.kN9jQvAfO??\"QHkX6MSKV\",variant:humanReadableVariantMap[props.variant]??props.variant??\"AAcdoj48l\"};};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,G9nbGulg2,kN9jQvAfO,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"AAcdoj48l\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const{activeVariantCallback,delay}=useActiveVariantCallback(baseVariant);const onTapmbvzlq=activeVariantCallback(async(...args)=>{setVariant(\"hbOAzkVH7\");});const onTap17891lx=activeVariantCallback(async(...args)=>{setVariant(\"AdfeNu6uT\");});const sqCVfk4EExwsbgt=activeVariantCallback(async(...args)=>{await delay(()=>setVariant(\"AdfeNu6uT\"),200);});const XNwbUvlkNxwsbgt=activeVariantCallback(async(...args)=>{await delay(()=>setVariant(\"AdfeNu6uT\"),200);});const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);const isDisplayed=()=>{if([\"AdfeNu6uT\",\"hbOAzkVH7\"].includes(baseVariant))return true;return false;};const isDisplayed1=()=>{if(baseVariant===\"AdfeNu6uT\")return false;return true;};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.nav,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-vntib2\",className,classNames),\"data-framer-name\":\"Desktop\",layoutDependency:layoutDependency,layoutId:\"AAcdoj48l\",ref:refBinding,style:{...style},...addPropertyOverrides({AdfeNu6uT:{\"data-framer-name\":\"Phone\"},hbOAzkVH7:{\"data-framer-name\":\"Phone Open\"}},baseVariant,gestureVariant),children:[/*#__PURE__*/_jsxs(motion.div,{className:\"framer-e6t7zw\",\"data-framer-name\":\"Top\",layoutDependency:layoutDependency,layoutId:\"v__Y3xruY\",...addPropertyOverrides({AdfeNu6uT:{\"data-highlight\":true,onTap:onTapmbvzlq},hbOAzkVH7:{\"data-highlight\":true,onTap:onTap17891lx}},baseVariant,gestureVariant),children:[/*#__PURE__*/_jsx(SVG,{className:\"framer-1o05e5m\",\"data-framer-name\":\"Logo\",description:\"An SVG icon of the Framer Logo.\",layout:\"position\",layoutDependency:layoutDependency,layoutId:\"UcsvX5UmY\",opacity:1,svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 26 24\"></svg>',svgContentId:11566748720,title:\"Framer Logo\",withExternalLayout:true}),isDisplayed()&&/*#__PURE__*/_jsxs(motion.div,{className:\"framer-gogup8\",\"data-framer-name\":\"Icon\",layoutDependency:layoutDependency,layoutId:\"nmKxQMVn2\",style:{backgroundColor:\"rgba(0, 0, 0, 0)\",borderBottomLeftRadius:0,borderBottomRightRadius:0,borderTopLeftRadius:0,borderTopRightRadius:0},variants:{AdfeNu6uT:{backgroundColor:\"var(--token-90bca61f-7808-4177-bbdc-d83dc3bf50ec, rgb(255, 255, 255))\",borderBottomLeftRadius:4,borderBottomRightRadius:4,borderTopLeftRadius:4,borderTopRightRadius:4},hbOAzkVH7:{backgroundColor:\"var(--token-90bca61f-7808-4177-bbdc-d83dc3bf50ec, rgb(255, 255, 255))\",borderBottomLeftRadius:0,borderBottomRightRadius:0,borderTopLeftRadius:4,borderTopRightRadius:4}},children:[/*#__PURE__*/_jsx(motion.div,{className:\"framer-12pzs21\",\"data-framer-name\":\"Bottom\",layoutDependency:layoutDependency,layoutId:\"xJ0q2NDW1\",style:{backgroundColor:\"rgb(153, 153, 153)\",borderBottomLeftRadius:10,borderBottomRightRadius:10,borderTopLeftRadius:10,borderTopRightRadius:10,rotate:0},variants:{AdfeNu6uT:{backgroundColor:\"var(--token-225e9e61-0e84-4e47-856f-3c1fe65ec629, rgb(4, 47, 61))\"},hbOAzkVH7:{backgroundColor:\"var(--token-225e9e61-0e84-4e47-856f-3c1fe65ec629, rgb(4, 47, 61))\",rotate:-45}}}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-1dj0z8h\",\"data-framer-name\":\"Top\",layoutDependency:layoutDependency,layoutId:\"JIRgAb5Bb\",style:{backgroundColor:\"rgb(153, 153, 153)\",borderBottomLeftRadius:10,borderBottomRightRadius:10,borderTopLeftRadius:10,borderTopRightRadius:10,rotate:0},variants:{AdfeNu6uT:{backgroundColor:\"var(--token-225e9e61-0e84-4e47-856f-3c1fe65ec629, rgb(4, 47, 61))\"},hbOAzkVH7:{backgroundColor:\"var(--token-225e9e61-0e84-4e47-856f-3c1fe65ec629, rgb(4, 47, 61))\",rotate:45}}})]})]}),isDisplayed1()&&/*#__PURE__*/_jsx(motion.div,{className:\"framer-13yxiw\",\"data-framer-name\":\"Links\",layoutDependency:layoutDependency,layoutId:\"bUY5Jybss\",children:/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1tuuse8\",\"data-framer-name\":\"Menu\",layoutDependency:layoutDependency,layoutId:\"oBAR6MJTa\",style:{backgroundColor:\"var(--token-b6a1d1f8-61cc-4b74-88e3-e5fc99129757, rgb(248, 248, 248))\",borderBottomLeftRadius:10,borderBottomRightRadius:10,borderTopLeftRadius:10,borderTopRightRadius:10},variants:{hbOAzkVH7:{backgroundColor:\"var(--token-90bca61f-7808-4177-bbdc-d83dc3bf50ec, rgb(255, 255, 255))\",borderTopRightRadius:0}},children:[/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{webPageId:\"augiA20Il\"},implicitPathVariables:undefined},{href:{webPageId:\"augiA20Il\"},implicitPathVariables:undefined}],children:resolvedLinks=>/*#__PURE__*/_jsx(ComponentViewportProvider,{height:42,y:(componentViewport?.y||0)+(30+((componentViewport?.height||100)-48-52)/2)+0+5,...addPropertyOverrides({hbOAzkVH7:{width:\"152px\",y:(componentViewport?.y||0)+0+((componentViewport?.height||228)-0-228+74+0)+0+0+5+0}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1doxc5w-container\",layoutDependency:layoutDependency,layoutId:\"KPgp2Qom5-container\",nodeId:\"KPgp2Qom5\",rendersWithMotion:true,scopeId:\"q2fHXJfMv\",children:/*#__PURE__*/_jsx(NavButton,{height:\"100%\",id:\"KPgp2Qom5\",kcwRwuMv0:\"Users\",layoutId:\"KPgp2Qom5\",nLHE28WWj:resolvedLinks[0],p7uVFdvwi:UserHeart,style:{height:\"100%\"},variant:G9nbGulg2,width:\"100%\",...addPropertyOverrides({hbOAzkVH7:{nLHE28WWj:resolvedLinks[1],sqCVfk4EE:sqCVfk4EExwsbgt,style:{height:\"100%\",width:\"100%\"}}},baseVariant,gestureVariant)})})})}),/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{webPageId:\"Bmx3UxV8I\"},implicitPathVariables:undefined},{href:{webPageId:\"Bmx3UxV8I\"},implicitPathVariables:undefined}],children:resolvedLinks1=>/*#__PURE__*/_jsx(ComponentViewportProvider,{height:42,y:(componentViewport?.y||0)+(30+((componentViewport?.height||100)-48-52)/2)+0+5,...addPropertyOverrides({hbOAzkVH7:{width:\"152px\",y:(componentViewport?.y||0)+0+((componentViewport?.height||228)-0-228+74+0)+0+0+5+51}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-3ds4ej-container\",layoutDependency:layoutDependency,layoutId:\"fHxeEsh62-container\",nodeId:\"fHxeEsh62\",rendersWithMotion:true,scopeId:\"q2fHXJfMv\",children:/*#__PURE__*/_jsx(NavButton,{height:\"100%\",id:\"fHxeEsh62\",kcwRwuMv0:\"Partners\",layoutId:\"fHxeEsh62\",nLHE28WWj:resolvedLinks1[0],p7uVFdvwi:Partner,style:{height:\"100%\"},variant:kN9jQvAfO,width:\"100%\",...addPropertyOverrides({hbOAzkVH7:{nLHE28WWj:resolvedLinks1[1],sqCVfk4EE:sqCVfk4EExwsbgt,style:{height:\"100%\",width:\"100%\"}}},baseVariant,gestureVariant)})})})}),/*#__PURE__*/_jsx(ComponentViewportProvider,{height:42,y:(componentViewport?.y||0)+(30+((componentViewport?.height||100)-48-52)/2)+0+5,...addPropertyOverrides({hbOAzkVH7:{width:\"152px\",y:(componentViewport?.y||0)+0+((componentViewport?.height||228)-0-228+74+0)+0+0+5+102}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1yyynqg-container\",layoutDependency:layoutDependency,layoutId:\"qTPDyo_bD-container\",nodeId:\"qTPDyo_bD\",rendersWithMotion:true,scopeId:\"q2fHXJfMv\",children:/*#__PURE__*/_jsx(Button,{D2i7bM0Lp:\"var(--token-0709f198-420c-4f9d-986e-3d4e155f33d3, rgb(71, 230, 255))\",EIg46yIO_:\"Become a Partner\",GLjiYkiDq:\"var(--token-5761bd89-c3be-4f67-87d8-dc85135d2783, rgb(218, 250, 255))\",height:\"100%\",id:\"qTPDyo_bD\",JHPQAAwRR:\"var(--token-225e9e61-0e84-4e47-856f-3c1fe65ec629, rgb(4, 47, 61))\",layoutId:\"qTPDyo_bD\",style:{height:\"100%\"},VC6OcPZI9:\"https://partners.paace.co\",width:\"100%\",...addPropertyOverrides({hbOAzkVH7:{style:{height:\"100%\",width:\"100%\"},XNwbUvlkN:XNwbUvlkNxwsbgt}},baseVariant,gestureVariant)})})})]})})]})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-3j5FK.framer-1cvowt2, .framer-3j5FK .framer-1cvowt2 { display: block; }\",\".framer-3j5FK.framer-vntib2 { align-content: center; align-items: center; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 20px; height: min-content; justify-content: flex-end; overflow: hidden; padding: 30px 30px 18px 30px; position: relative; width: 1200px; }\",\".framer-3j5FK .framer-e6t7zw { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: center; overflow: visible; padding: 10px 0px 10px 10px; position: relative; width: min-content; }\",\".framer-3j5FK .framer-1o05e5m { flex: none; height: 24px; position: relative; width: 26px; }\",\".framer-3j5FK .framer-gogup8 { flex: none; height: 40px; overflow: hidden; position: relative; width: 40px; }\",\".framer-3j5FK .framer-12pzs21 { flex: none; height: 2px; left: calc(50.00000000000002% - 20px / 2); overflow: hidden; position: absolute; top: calc(62.50000000000002% - 2px / 2); width: 20px; will-change: var(--framer-will-change-override, transform); }\",\".framer-3j5FK .framer-1dj0z8h { flex: none; height: 2px; left: calc(50.00000000000002% - 20px / 2); overflow: hidden; position: absolute; top: calc(37.50000000000002% - 2px / 2); width: 20px; will-change: var(--framer-will-change-override, transform); }\",\".framer-3j5FK .framer-13yxiw { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 20px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: min-content; }\",\".framer-3j5FK .framer-1tuuse8 { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 9px; height: min-content; justify-content: flex-start; overflow: visible; padding: 5px; position: relative; width: min-content; }\",\".framer-3j5FK .framer-1doxc5w-container, .framer-3j5FK .framer-3ds4ej-container, .framer-3j5FK .framer-1yyynqg-container { flex: none; height: 42px; position: relative; width: auto; }\",\".framer-3j5FK.framer-v-1kf5qkf.framer-vntib2 { flex-direction: column; gap: 0px; padding: 0px; width: 390px; }\",\".framer-3j5FK.framer-v-1kf5qkf .framer-e6t7zw, .framer-3j5FK.framer-v-1k57v1s .framer-e6t7zw { cursor: pointer; gap: unset; justify-content: space-between; padding: 30px 30px 0px 30px; width: 100%; }\",\".framer-3j5FK.framer-v-1kf5qkf .framer-gogup8, .framer-3j5FK.framer-v-1k57v1s .framer-gogup8 { height: 44px; width: 44px; will-change: var(--framer-will-change-override, transform); }\",\".framer-3j5FK.framer-v-1k57v1s.framer-vntib2 { flex-direction: column; gap: 0px; max-height: calc(var(--framer-viewport-height, 100vh) * 1); overflow: auto; overscroll-behavior: contain; padding: 0px; width: 390px; }\",\".framer-3j5FK.framer-v-1k57v1s .framer-12pzs21, .framer-3j5FK.framer-v-1k57v1s .framer-1dj0z8h { top: calc(50.00000000000002% - 2px / 2); }\",\".framer-3j5FK.framer-v-1k57v1s .framer-13yxiw { align-content: flex-end; align-items: flex-end; flex-direction: column; gap: 0px; justify-content: flex-start; padding: 0px 30px 0px 30px; width: 100%; }\",\".framer-3j5FK.framer-v-1k57v1s .framer-1tuuse8 { align-content: flex-end; align-items: flex-end; flex-direction: column; flex-wrap: wrap; width: 162px; }\",\".framer-3j5FK.framer-v-1k57v1s .framer-1doxc5w-container, .framer-3j5FK.framer-v-1k57v1s .framer-3ds4ej-container, .framer-3j5FK.framer-v-1k57v1s .framer-1yyynqg-container { width: 100%; }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 100\n * @framerIntrinsicWidth 1200\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"auto\"]},\"AdfeNu6uT\":{\"layout\":[\"fixed\",\"auto\"]},\"hbOAzkVH7\":{\"layout\":[\"fixed\",\"auto\"],\"constraints\":[null,null,null,\"100vh\"]}}}\n * @framerVariables {\"G9nbGulg2\":\"usersActive\",\"kN9jQvAfO\":\"partnersActive\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const Framerq2fHXJfMv=withCSS(Component,css,\"framer-3j5FK\");export default Framerq2fHXJfMv;Framerq2fHXJfMv.displayName=\"Navigation\";Framerq2fHXJfMv.defaultProps={height:100,width:1200};addPropertyControls(Framerq2fHXJfMv,{variant:{options:[\"AAcdoj48l\",\"AdfeNu6uT\",\"hbOAzkVH7\"],optionTitles:[\"Desktop\",\"Phone\",\"Phone Open\"],title:\"Variant\",type:ControlType.Enum},G9nbGulg2:NavButtonControls?.[\"variant\"]&&{...NavButtonControls[\"variant\"],defaultValue:\"QHkX6MSKV\",description:undefined,hidden:undefined,title:\"Users Active\"},kN9jQvAfO:NavButtonControls?.[\"variant\"]&&{...NavButtonControls[\"variant\"],defaultValue:\"QHkX6MSKV\",description:undefined,hidden:undefined,title:\"Partners Active\"}});addFonts(Framerq2fHXJfMv,[{explicitInter:true,fonts:[]},...NavButtonFonts,...ButtonFonts],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Framerq2fHXJfMv\",\"slots\":[],\"annotations\":{\"framerComponentViewportWidth\":\"true\",\"framerIntrinsicWidth\":\"1200\",\"framerIntrinsicHeight\":\"100\",\"framerDisplayContentsDiv\":\"false\",\"framerImmutableVariables\":\"true\",\"framerContractVersion\":\"1\",\"framerVariables\":\"{\\\"G9nbGulg2\\\":\\\"usersActive\\\",\\\"kN9jQvAfO\\\":\\\"partnersActive\\\"}\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"AdfeNu6uT\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"hbOAzkVH7\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"],\\\"constraints\\\":[null,null,null,\\\"100vh\\\"]}}}\",\"framerColorSyntax\":\"true\",\"framerAutoSizeImages\":\"true\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./q2fHXJfMv.map","// Generated by Framer (0138aee)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,cx,motion,withCSS}from\"framer\";import*as React from\"react\";import{forwardRef}from\"react\";const rC8E5sKlO=undefined;const mask='url(\\'data:image/svg+xml,<svg display=\"block\" role=\"presentation\" viewBox=\"0 0 40 40\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M 16.553 3.133 C 18.97 0.015 22.332 0 22.332 0 C 22.332 0 22.832 2.931 20.43 5.755 C 17.865 8.77 14.95 8.276 14.95 8.276 C 14.95 8.276 14.402 5.905 16.553 3.133 Z M 15.257 10.329 C 16.501 10.329 18.81 8.657 21.815 8.657 C 26.987 8.657 29.022 12.257 29.022 12.257 C 29.022 12.257 25.042 14.248 25.042 19.078 C 25.042 24.527 30 26.405 30 26.405 C 30 26.405 26.534 35.947 21.853 35.947 C 19.703 35.947 18.032 34.53 15.766 34.53 C 13.458 34.53 11.167 36 9.675 36 C 5.4 36 0 26.948 0 19.672 C 0 12.513 4.571 8.757 8.858 8.757 C 11.646 8.757 13.808 10.329 15.257 10.329 Z\" fill=\"var(--1oolg0, var(--token-0709f198-420c-4f9d-986e-3d4e155f33d3, rgb(71, 230, 255)))\" height=\"36.00000059591654px\" id=\"O0kv8dYZ9\" transform=\"translate(4.41 2)\" width=\"30px\"/></svg>\\') alpha no-repeat center / auto var(--framer-icon-mask-mode, add), var(--framer-icon-mask, none)';const SVG=/*#__PURE__*/forwardRef((props,ref)=>{const{animated,layoutId,children,...rest}=props;return animated?/*#__PURE__*/_jsx(motion.div,{...rest,layoutId:layoutId,ref:ref}):/*#__PURE__*/_jsx(\"div\",{...rest,ref:ref});});const getProps=({height,iconColour,id,width,...props})=>{return{...props,rC8E5sKlO:iconColour??props.rC8E5sKlO??\"var(--token-0709f198-420c-4f9d-986e-3d4e155f33d3, rgb(71, 230, 255))\"};};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const{style,className,layoutId,variant,rC8E5sKlO,...restProps}=getProps(props);return /*#__PURE__*/_jsx(SVG,{...restProps,className:cx(\"framer-kPHkc\",className),layoutId:layoutId,ref:ref,style:{\"--1oolg0\":rC8E5sKlO,...style}});});const css=[`.framer-kPHkc { -webkit-mask: ${mask}; aspect-ratio: 1; background-color: var(--1oolg0); mask: ${mask}; width: 40px; }`];/**\n * This is a generated Framer component.\n * @framerIntrinsicWidth 40\n * @framerIntrinsicHeight 40\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n * @framerVariables {\"rC8E5sKlO\":\"iconColour\"}\n * @framerImmutableVariables true\n * @framerVector {\"name\":\"Apple\",\"color\":{\"type\":\"variable\",\"value\":\"1oolg0\"},\"set\":{\"localId\":\"vectorSet/u5hZJ0bHZ\",\"id\":\"u5hZJ0bHZ\",\"moduleId\":\"Srpc00kEjpOv3WaXtkIc\"}}\n */const Icon=withCSS(Component,css,\"framer-kPHkc\");Icon.displayName=\"Apple\";export default Icon;addPropertyControls(Icon,{rC8E5sKlO:{defaultValue:'var(--token-0709f198-420c-4f9d-986e-3d4e155f33d3, rgb(71, 230, 255)) /* {\"name\":\"Blue\"} */',hidden:false,title:\"Icon Colour\",type:ControlType.Color}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Icon\",\"slots\":[],\"annotations\":{\"framerIntrinsicWidth\":\"40\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerVariables\":\"{\\\"rC8E5sKlO\\\":\\\"iconColour\\\"}\",\"framerImmutableVariables\":\"true\",\"framerVector\":\"{\\\"name\\\":\\\"Apple\\\",\\\"color\\\":{\\\"type\\\":\\\"variable\\\",\\\"value\\\":\\\"1oolg0\\\"},\\\"set\\\":{\\\"localId\\\":\\\"vectorSet/u5hZJ0bHZ\\\",\\\"id\\\":\\\"u5hZJ0bHZ\\\",\\\"moduleId\\\":\\\"Srpc00kEjpOv3WaXtkIc\\\"}}\",\"framerContractVersion\":\"1\",\"framerIntrinsicHeight\":\"40\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (0138aee)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,cx,motion,withCSS}from\"framer\";import*as React from\"react\";import{forwardRef}from\"react\";const rC8E5sKlO=undefined;const mask='url(\\'data:image/svg+xml,<svg display=\"block\" role=\"presentation\" viewBox=\"0 0 40 40\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M 0.885 34.513 L 17.154 19.201 L 22.89 24.598 L 3.548 34.715 C 2.812 35.102 1.909 35.093 1.183 34.698 C 1.183 34.706 0.885 34.513 0.885 34.513 Z M 15.515 17.654 L 0 32.254 L 0 3.054 Z M 25.209 11.624 L 32.789 15.588 C 33.534 15.975 34 16.713 34 17.504 C 34 18.295 33.534 19.034 32.789 19.421 L 25.004 23.49 L 18.802 17.654 C 18.793 17.654 25.209 11.624 25.209 11.624 Z M 0.708 0.636 C 0.847 0.513 1.006 0.399 1.173 0.302 C 1.9 -0.093 2.803 -0.102 3.539 0.285 L 23.095 10.516 L 17.154 16.107 Z\" fill=\"var(--1oolg0, var(--token-0709f198-420c-4f9d-986e-3d4e155f33d3, rgb(71, 230, 255)))\" height=\"34.99999952665109px\" id=\"Fxk3xLPtz\" transform=\"translate(3.47 3)\" width=\"34.00000043703277px\"/></svg>\\') alpha no-repeat center / auto var(--framer-icon-mask-mode, add), var(--framer-icon-mask, none)';const SVG=/*#__PURE__*/forwardRef((props,ref)=>{const{animated,layoutId,children,...rest}=props;return animated?/*#__PURE__*/_jsx(motion.div,{...rest,layoutId:layoutId,ref:ref}):/*#__PURE__*/_jsx(\"div\",{...rest,ref:ref});});const getProps=({height,iconColour,id,width,...props})=>{return{...props,rC8E5sKlO:iconColour??props.rC8E5sKlO??\"var(--token-0709f198-420c-4f9d-986e-3d4e155f33d3, rgb(71, 230, 255))\"};};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const{style,className,layoutId,variant,rC8E5sKlO,...restProps}=getProps(props);return /*#__PURE__*/_jsx(SVG,{...restProps,className:cx(\"framer-ZZdsV\",className),layoutId:layoutId,ref:ref,style:{\"--1oolg0\":rC8E5sKlO,...style}});});const css=[`.framer-ZZdsV { -webkit-mask: ${mask}; aspect-ratio: 1; background-color: var(--1oolg0); mask: ${mask}; width: 40px; }`];/**\n * This is a generated Framer component.\n * @framerIntrinsicWidth 40\n * @framerIntrinsicHeight 40\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n * @framerVariables {\"rC8E5sKlO\":\"iconColour\"}\n * @framerImmutableVariables true\n * @framerVector {\"name\":\"Google Play\",\"color\":{\"type\":\"variable\",\"value\":\"1oolg0\"},\"set\":{\"localId\":\"vectorSet/u5hZJ0bHZ\",\"id\":\"u5hZJ0bHZ\",\"moduleId\":\"Srpc00kEjpOv3WaXtkIc\"}}\n */const Icon=withCSS(Component,css,\"framer-ZZdsV\");Icon.displayName=\"Google Play\";export default Icon;addPropertyControls(Icon,{rC8E5sKlO:{defaultValue:'var(--token-0709f198-420c-4f9d-986e-3d4e155f33d3, rgb(71, 230, 255)) /* {\"name\":\"Blue\"} */',hidden:false,title:\"Icon Colour\",type:ControlType.Color}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Icon\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"40\",\"framerContractVersion\":\"1\",\"framerVariables\":\"{\\\"rC8E5sKlO\\\":\\\"iconColour\\\"}\",\"framerImmutableVariables\":\"true\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerVector\":\"{\\\"name\\\":\\\"Google Play\\\",\\\"color\\\":{\\\"type\\\":\\\"variable\\\",\\\"value\\\":\\\"1oolg0\\\"},\\\"set\\\":{\\\"localId\\\":\\\"vectorSet/u5hZJ0bHZ\\\",\\\"id\\\":\\\"u5hZJ0bHZ\\\",\\\"moduleId\\\":\\\"Srpc00kEjpOv3WaXtkIc\\\"}}\",\"framerIntrinsicWidth\":\"40\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (397058d)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,cx,motion,withCSS}from\"framer\";import*as React from\"react\";import{forwardRef}from\"react\";const mask='url(\\'data:image/svg+xml,<svg display=\"block\" role=\"presentation\" viewBox=\"0 0 48 48\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M 39.121 0 C 44.024 0 48 3.975 48 8.878 L 48 39.121 C 48 44.024 44.024 47.999 39.121 47.999 L 8.878 47.999 C 3.975 47.999 0 44.024 0 39.121 L 0 8.878 C 0 3.975 3.975 0 8.878 0 Z M 40.354 13.66 C 37.985 7.838 28.743 6.095 19.71 9.771 C 10.678 13.445 5.276 21.145 7.645 26.967 C 8.95 30.175 12.96 32.233 17.253 32.74 L 17.253 26.827 C 15.534 26.553 13.671 25.754 13.211 24.622 C 12.094 21.877 16.007 17.635 21.95 15.217 C 27.893 12.799 33.616 13.121 34.733 15.865 C 35.849 18.609 31.936 22.794 25.993 25.212 C 25.657 25.348 25.322 25.475 24.988 25.595 L 24.988 16.426 C 24.078 16.691 23.071 17.052 22.012 17.544 C 21.04 17.997 20.181 18.486 19.434 18.972 L 19.434 26.826 L 19.433 26.827 L 19.433 32.775 L 19.434 32.774 L 19.434 40.152 L 24.988 40.152 L 24.988 31.96 C 26.083 31.67 27.188 31.305 28.289 30.857 C 37.321 27.182 42.722 19.483 40.354 13.66 Z\" fill=\"var(--nvn3oe, var(--token-0709f198-420c-4f9d-986e-3d4e155f33d3, rgb(71, 230, 255)))\" height=\"47.99896513362711px\" id=\"ysGPx00sa\" width=\"48px\"/></svg>\\') alpha no-repeat center / auto var(--framer-icon-mask-mode, add), var(--framer-icon-mask, none)';const SVG=/*#__PURE__*/forwardRef((props,ref)=>{const{animated,layoutId,children,...rest}=props;return animated?/*#__PURE__*/_jsx(motion.div,{...rest,layoutId:layoutId,ref:ref}):/*#__PURE__*/_jsx(\"div\",{...rest,ref:ref});});const getProps=({height,iconColour,id,width,...props})=>{return{...props,mM3X3kFty:iconColour??props.mM3X3kFty??\"var(--token-0709f198-420c-4f9d-986e-3d4e155f33d3, rgb(71, 230, 255))\"};};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const{style,className,layoutId,variant,mM3X3kFty,...restProps}=getProps(props);return /*#__PURE__*/_jsx(SVG,{...restProps,className:cx(\"framer-kyymY\",className),layoutId:layoutId,ref:ref,style:{\"--nvn3oe\":mM3X3kFty,...style}});});const css=[`.framer-kyymY { -webkit-mask: ${mask}; aspect-ratio: 1; background-color: var(--nvn3oe); mask: ${mask}; width: 48px; }`];/**\n * This is a generated Framer component.\n * @framerIntrinsicWidth 48\n * @framerIntrinsicHeight 48\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n * @framerVariables {\"mM3X3kFty\":\"iconColour\"}\n * @framerImmutableVariables true\n * @framerVector {\"name\":\"Paace Icon\",\"color\":{\"type\":\"variable\",\"value\":\"nvn3oe\"},\"set\":{\"localId\":\"vectorSet/i2bgpvLv7\",\"id\":\"i2bgpvLv7\",\"moduleId\":\"LceTqEfZyRrnOFZuLrA1\"}}\n */const Icon=withCSS(Component,css,\"framer-kyymY\");Icon.displayName=\"Paace Icon\";export default Icon;addPropertyControls(Icon,{mM3X3kFty:{defaultValue:'var(--token-0709f198-420c-4f9d-986e-3d4e155f33d3, rgb(71, 230, 255)) /* {\"name\":\"Blue\"} */',hidden:false,title:\"Icon Colour\",type:ControlType.Color}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Icon\",\"slots\":[],\"annotations\":{\"framerVector\":\"{\\\"name\\\":\\\"Paace Icon\\\",\\\"color\\\":{\\\"type\\\":\\\"variable\\\",\\\"value\\\":\\\"nvn3oe\\\"},\\\"set\\\":{\\\"localId\\\":\\\"vectorSet/i2bgpvLv7\\\",\\\"id\\\":\\\"i2bgpvLv7\\\",\\\"moduleId\\\":\\\"LceTqEfZyRrnOFZuLrA1\\\"}}\",\"framerIntrinsicHeight\":\"48\",\"framerImmutableVariables\":\"true\",\"framerIntrinsicWidth\":\"48\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerVariables\":\"{\\\"mM3X3kFty\\\":\\\"iconColour\\\"}\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (0138aee)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,cx,motion,withCSS}from\"framer\";import*as React from\"react\";import{forwardRef}from\"react\";const rC8E5sKlO=undefined;const mask='url(\\'data:image/svg+xml,<svg display=\"block\" role=\"presentation\" viewBox=\"0 0 40 40\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M 16.553 3.133 C 18.97 0.015 22.332 0 22.332 0 C 22.332 0 22.832 2.931 20.43 5.755 C 17.865 8.77 14.95 8.276 14.95 8.276 C 14.95 8.276 14.402 5.905 16.553 3.133 Z M 15.257 10.329 C 16.501 10.329 18.81 8.657 21.815 8.657 C 26.987 8.657 29.022 12.257 29.022 12.257 C 29.022 12.257 25.042 14.248 25.042 19.078 C 25.042 24.527 30 26.405 30 26.405 C 30 26.405 26.534 35.947 21.853 35.947 C 19.703 35.947 18.032 34.53 15.766 34.53 C 13.458 34.53 11.167 36 9.675 36 C 5.4 36 0 26.948 0 19.672 C 0 12.513 4.571 8.757 8.858 8.757 C 11.646 8.757 13.808 10.329 15.257 10.329 Z\" fill=\"var(--1oolg0, var(--token-0709f198-420c-4f9d-986e-3d4e155f33d3, rgb(71, 230, 255)))\" height=\"36.00000059591654px\" id=\"O0kv8dYZ9\" transform=\"translate(4.41 2)\" width=\"30px\"/></svg>\\') alpha no-repeat center / auto var(--framer-icon-mask-mode, add), var(--framer-icon-mask, none)';const SVG=/*#__PURE__*/forwardRef((props,ref)=>{const{animated,layoutId,children,...rest}=props;return animated?/*#__PURE__*/_jsx(motion.div,{...rest,layoutId:layoutId,ref:ref}):/*#__PURE__*/_jsx(\"div\",{...rest,ref:ref});});const getProps=({height,iconColour,id,width,...props})=>{return{...props,rC8E5sKlO:iconColour??props.rC8E5sKlO??\"var(--token-0709f198-420c-4f9d-986e-3d4e155f33d3, rgb(71, 230, 255))\"};};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const{style,className,layoutId,variant,rC8E5sKlO,...restProps}=getProps(props);return /*#__PURE__*/_jsx(SVG,{...restProps,className:cx(\"framer-kPHkc\",className),layoutId:layoutId,ref:ref,style:{\"--1oolg0\":rC8E5sKlO,...style}});});const css=[`.framer-kPHkc { -webkit-mask: ${mask}; aspect-ratio: 1; background-color: var(--1oolg0); mask: ${mask}; width: 40px; }`];/**\n * This is a generated Framer component.\n * @framerIntrinsicWidth 40\n * @framerIntrinsicHeight 40\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n * @framerVariables {\"rC8E5sKlO\":\"iconColour\"}\n * @framerImmutableVariables true\n * @framerVector {\"name\":\"Apple\",\"color\":{\"type\":\"variable\",\"value\":\"1oolg0\"},\"set\":{\"localId\":\"vectorSet/u5hZJ0bHZ\",\"id\":\"u5hZJ0bHZ\",\"moduleId\":\"Srpc00kEjpOv3WaXtkIc\"}}\n */const Icon=withCSS(Component,css,\"framer-kPHkc\");Icon.displayName=\"Apple\";export default Icon;addPropertyControls(Icon,{rC8E5sKlO:{defaultValue:'var(--token-0709f198-420c-4f9d-986e-3d4e155f33d3, rgb(71, 230, 255)) /* {\"name\":\"Blue\"} */',hidden:false,title:\"Icon Colour\",type:ControlType.Color}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Icon\",\"slots\":[],\"annotations\":{\"framerIntrinsicWidth\":\"40\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerVariables\":\"{\\\"rC8E5sKlO\\\":\\\"iconColour\\\"}\",\"framerImmutableVariables\":\"true\",\"framerVector\":\"{\\\"name\\\":\\\"Apple\\\",\\\"color\\\":{\\\"type\\\":\\\"variable\\\",\\\"value\\\":\\\"1oolg0\\\"},\\\"set\\\":{\\\"localId\\\":\\\"vectorSet/u5hZJ0bHZ\\\",\\\"id\\\":\\\"u5hZJ0bHZ\\\",\\\"moduleId\\\":\\\"Srpc00kEjpOv3WaXtkIc\\\"}}\",\"framerContractVersion\":\"1\",\"framerIntrinsicHeight\":\"40\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (0138aee)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ControlType,cx,Instance,Link,RichText,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import Apple from\"https://framerusercontent.com/modules/HTVju5ZzkGhp3JUbULAg/tZUc80CWpb4H3cS9Av3T/FeaToeU9c.js\";const cycleOrder=[\"I233:6249;127:6228\",\"IN6nGBpwP\"];const serializationHash=\"framer-qGI4q\";const variantClassNames={\"I233:6249;127:6228\":\"framer-v-1cgleps\",IN6nGBpwP:\"framer-v-16qrntf\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const z7eT5bGka=undefined;const RX71Mmhn4=undefined;const nvRzyR5m4=undefined;const tQmuOjRdr=undefined;const zYjO2pzM8=undefined;const transition1={bounce:.2,delay:0,duration:.4,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:\"I233:6249;127:6228\",Tablet:\"IN6nGBpwP\"};const getProps=({bottomLine,height,icon,iconColour,id,link,topLine,width,...props})=>{return{...props,nvRzyR5m4:icon??props.nvRzyR5m4??Apple,RX71Mmhn4:iconColour??props.RX71Mmhn4??\"var(--token-5761bd89-c3be-4f67-87d8-dc85135d2783, rgb(218, 250, 255))\",tQmuOjRdr:topLine??props.tQmuOjRdr??\"Download on the\",variant:humanReadableVariantMap[props.variant]??props.variant??\"I233:6249;127:6228\",z7eT5bGka:link??props.z7eT5bGka,zYjO2pzM8:bottomLine??props.zYjO2pzM8??\"App Store\"};};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,nvRzyR5m4,tQmuOjRdr,zYjO2pzM8,z7eT5bGka,RX71Mmhn4,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"I233:6249;127:6228\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsx(Link,{href:z7eT5bGka,motionChild:true,nodeId:\"I233:6249;127:6228\",openInNewTab:false,scopeId:\"d5cAcwpH8\",children:/*#__PURE__*/_jsxs(motion.a,{...restProps,...gestureHandlers,className:`${cx(scopingClassNames,\"framer-1cgleps\",className,classNames)} framer-juo43i`,\"data-framer-name\":\"Desktop\",layoutDependency:layoutDependency,layoutId:\"I233:6249;127:6228\",ref:refBinding,style:{backgroundColor:\"rgba(0, 0, 0, 0.2)\",borderBottomLeftRadius:10,borderBottomRightRadius:10,borderTopLeftRadius:10,borderTopRightRadius:10,...style},...addPropertyOverrides({IN6nGBpwP:{\"data-framer-name\":\"Tablet\"}},baseVariant,gestureVariant),children:[/*#__PURE__*/_jsx(motion.div,{className:\"framer-1lyx31u\",\"data-framer-name\":\"Social Media Icon\",layoutDependency:layoutDependency,layoutId:\"I233:6249;127:6228;103:1733\",children:/*#__PURE__*/_jsx(Instance,{animated:true,className:\"framer-1l1um3p\",Component:nvRzyR5m4,layoutDependency:layoutDependency,layoutId:\"C2NsCuH9Q\",style:{\"--1oolg0\":RX71Mmhn4}})}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1y2efq4\",\"data-framer-name\":\"Frame 48097050\",layoutDependency:layoutDependency,layoutId:\"I233:6249;127:6228;103:1734\",children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7WmFsYW5kbyBTYW5zLTUwMA==\",\"--framer-font-family\":'\"Zalando Sans\", \"Zalando Sans Placeholder\", sans-serif',\"--framer-font-size\":\"12px\",\"--framer-font-weight\":\"500\",\"--framer-line-height\":\"140%\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-5761bd89-c3be-4f67-87d8-dc85135d2783, rgb(218, 250, 255)))\"},children:\"Download on the\"})}),className:\"framer-dgl3a5\",\"data-framer-name\":\"Download on the\",fonts:[\"GF;Zalando Sans-500\"],layoutDependency:layoutDependency,layoutId:\"I233:6249;127:6228;103:1735\",style:{\"--extracted-r6o4lv\":\"var(--token-5761bd89-c3be-4f67-87d8-dc85135d2783, rgb(218, 250, 255))\",\"--framer-paragraph-spacing\":\"129.68409729003906px\"},text:tQmuOjRdr,verticalAlignment:\"center\",withExternalLayout:true,...addPropertyOverrides({IN6nGBpwP:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7WmFsYW5kbyBTYW5zLTUwMA==\",\"--framer-font-family\":'\"Zalando Sans\", \"Zalando Sans Placeholder\", sans-serif',\"--framer-font-size\":\"9px\",\"--framer-font-weight\":\"500\",\"--framer-line-height\":\"140%\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-5761bd89-c3be-4f67-87d8-dc85135d2783, rgb(218, 250, 255)))\"},children:\"Download on the\"})})}},baseVariant,gestureVariant)}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7WmFsYW5kbyBTYW5zLTcwMA==\",\"--framer-font-family\":'\"Zalando Sans\", \"Zalando Sans Placeholder\", sans-serif',\"--framer-font-size\":\"24px\",\"--framer-font-weight\":\"700\",\"--framer-letter-spacing\":\"-0.02em\",\"--framer-line-height\":\"100%\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-5761bd89-c3be-4f67-87d8-dc85135d2783, rgb(218, 250, 255)))\"},children:\"App Store\"})}),className:\"framer-1tn5s4q\",\"data-framer-name\":\"App Store\",fonts:[\"GF;Zalando Sans-700\"],layoutDependency:layoutDependency,layoutId:\"I233:6249;127:6228;103:1736\",style:{\"--extracted-r6o4lv\":\"var(--token-5761bd89-c3be-4f67-87d8-dc85135d2783, rgb(218, 250, 255))\",\"--framer-paragraph-spacing\":\"0px\"},text:zYjO2pzM8,verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({IN6nGBpwP:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7WmFsYW5kbyBTYW5zLTcwMA==\",\"--framer-font-family\":'\"Zalando Sans\", \"Zalando Sans Placeholder\", sans-serif',\"--framer-font-size\":\"17px\",\"--framer-font-weight\":\"700\",\"--framer-letter-spacing\":\"-0.02em\",\"--framer-line-height\":\"100%\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-5761bd89-c3be-4f67-87d8-dc85135d2783, rgb(218, 250, 255)))\"},children:\"App Store\"})})}},baseVariant,gestureVariant)})]})]})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-qGI4q.framer-juo43i, .framer-qGI4q .framer-juo43i { display: block; }\",\".framer-qGI4q.framer-1cgleps { align-content: center; align-items: center; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 7.210937976837158px; height: min-content; justify-content: center; overflow: visible; padding: 8px 15px 8px 15px; position: relative; text-decoration: none; width: min-content; }\",\".framer-qGI4q .framer-1lyx31u { aspect-ratio: 1 / 1; flex: none; gap: 0px; height: var(--framer-aspect-ratio-supported, 32px); overflow: visible; position: relative; width: 32px; }\",\".framer-qGI4q .framer-1l1um3p { flex: none; height: var(--framer-aspect-ratio-supported, 32px); left: 0px; position: absolute; right: 0px; top: 0px; width: calc(100% - 0px); }\",\".framer-qGI4q .framer-1y2efq4 { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: min-content; }\",\".framer-qGI4q .framer-dgl3a5 { flex: none; height: 13px; position: relative; white-space: pre-wrap; width: 95px; word-break: break-word; word-wrap: break-word; }\",\".framer-qGI4q .framer-1tn5s4q { flex: none; height: auto; position: relative; white-space: pre; width: auto; }\",\".framer-qGI4q.framer-v-16qrntf .framer-1lyx31u { height: var(--framer-aspect-ratio-supported, 23px); width: 23px; }\",\".framer-qGI4q.framer-v-16qrntf .framer-1l1um3p { height: var(--framer-aspect-ratio-supported, 23px); }\",\".framer-qGI4q.framer-v-16qrntf .framer-dgl3a5 { align-self: stretch; height: 9px; width: auto; }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 53\n * @framerIntrinsicWidth 182\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"auto\",\"auto\"]},\"IN6nGBpwP\":{\"layout\":[\"auto\",\"auto\"]}}}\n * @framerVariables {\"nvRzyR5m4\":\"icon\",\"tQmuOjRdr\":\"topLine\",\"zYjO2pzM8\":\"bottomLine\",\"z7eT5bGka\":\"link\",\"RX71Mmhn4\":\"iconColour\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n * @framerVectorSets [\"Srpc00kEjpOv3WaXtkIc\"]\n */const Framerd5cAcwpH8=withCSS(Component,css,\"framer-qGI4q\");export default Framerd5cAcwpH8;Framerd5cAcwpH8.displayName=\"Button (alt)\";Framerd5cAcwpH8.defaultProps={height:53,width:182};addPropertyControls(Framerd5cAcwpH8,{variant:{options:[\"I233:6249;127:6228\",\"IN6nGBpwP\"],optionTitles:[\"Desktop\",\"Tablet\"],title:\"Variant\",type:ControlType.Enum},nvRzyR5m4:{defaultValue:{identifier:\"local-module:vector/FeaToeU9c:default\",moduleId:\"HTVju5ZzkGhp3JUbULAg\"},setModuleId:\"Srpc00kEjpOv3WaXtkIc\",title:\"Icon\",type:ControlType.VectorSetItem},tQmuOjRdr:{defaultValue:\"Download on the\",displayTextArea:false,title:\"Top Line\",type:ControlType.String},zYjO2pzM8:{defaultValue:\"App Store\",displayTextArea:false,title:\"Bottom Line\",type:ControlType.String},z7eT5bGka:{title:\"Link\",type:ControlType.Link},RX71Mmhn4:{defaultValue:'var(--token-5761bd89-c3be-4f67-87d8-dc85135d2783, rgb(218, 250, 255)) /* {\"name\":\"Blue Tint\"} */',title:\"Icon Colour\",type:ControlType.Color}});addFonts(Framerd5cAcwpH8,[{explicitInter:true,fonts:[{cssFamilyName:\"Zalando Sans\",source:\"google\",style:\"normal\",uiFamilyName:\"Zalando Sans\",url:\"https://fonts.gstatic.com/s/zalandosans/v2/FwZ67-Asy1Em_lq_aK3hpr-RrktWHD54lnesO2lsVvrnhgw8zPbXoT8JPzkWYUMEgzhp.woff2\",weight:\"500\"},{cssFamilyName:\"Zalando Sans\",source:\"google\",style:\"normal\",uiFamilyName:\"Zalando Sans\",url:\"https://fonts.gstatic.com/s/zalandosans/v2/FwZ67-Asy1Em_lq_aK3hpr-RrktWHD54lnesO2lsVvrnhgw8zPbXoT_cODkWYUMEgzhp.woff2\",weight:\"700\"}]}],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Framerd5cAcwpH8\",\"slots\":[],\"annotations\":{\"framerVariables\":\"{\\\"nvRzyR5m4\\\":\\\"icon\\\",\\\"tQmuOjRdr\\\":\\\"topLine\\\",\\\"zYjO2pzM8\\\":\\\"bottomLine\\\",\\\"z7eT5bGka\\\":\\\"link\\\",\\\"RX71Mmhn4\\\":\\\"iconColour\\\"}\",\"framerIntrinsicHeight\":\"53\",\"framerImmutableVariables\":\"true\",\"framerDisplayContentsDiv\":\"false\",\"framerContractVersion\":\"1\",\"framerComponentViewportWidth\":\"true\",\"framerVectorSets\":\"[\\\"Srpc00kEjpOv3WaXtkIc\\\"]\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"IN6nGBpwP\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]}}}\",\"framerColorSyntax\":\"true\",\"framerIntrinsicWidth\":\"182\",\"framerAutoSizeImages\":\"true\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./d5cAcwpH8.map","// Generated by Framer (569fd08)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ControlType,cx,getFontsFromSharedStyle,Link,RichText,useActiveVariantCallback,useComponentViewport,useLocaleInfo,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/V1CRQzEEUz3DikeYKzOR/xyBrVlDq0sP8shVl3mEC/SqlL8P8Zf.js\";const enabledGestures={EqfxVpcpn:{hover:true,pressed:true}};const serializationHash=\"framer-W7EOZ\";const variantClassNames={EqfxVpcpn:\"framer-v-phv737\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const XNwbUvlkN=undefined;const VC6OcPZI9=undefined;const D2i7bM0Lp=undefined;const JHPQAAwRR=undefined;const EIg46yIO_=undefined;const GLjiYkiDq=undefined;const transition1={delay:0,duration:1,ease:[.02,.37,0,1.01],type:\"tween\"};const transition2={bounce:.2,delay:0,duration:.4,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 transition3={delay:0,duration:.4,ease:[.02,.37,0,1.01],type:\"tween\"};const Variants=motion.create(React.Fragment);const getProps=({buttonLink,buttonText,click,height,id,primaryButtonFill,primaryButtonText,secondaryButtonFill,width,...props})=>{return{...props,D2i7bM0Lp:primaryButtonFill??props.D2i7bM0Lp??\"var(--token-0709f198-420c-4f9d-986e-3d4e155f33d3, rgb(71, 230, 255))\",EIg46yIO_:buttonText??props.EIg46yIO_??\"Download App\",GLjiYkiDq:secondaryButtonFill??props.GLjiYkiDq??\"var(--token-5761bd89-c3be-4f67-87d8-dc85135d2783, rgb(218, 250, 255))\",JHPQAAwRR:primaryButtonText??props.JHPQAAwRR??\"var(--token-225e9e61-0e84-4e47-856f-3c1fe65ec629, rgb(4, 47, 61))\",VC6OcPZI9:buttonLink??props.VC6OcPZI9,XNwbUvlkN:click??props.XNwbUvlkN};};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,D2i7bM0Lp,JHPQAAwRR,VC6OcPZI9,EIg46yIO_,GLjiYkiDq,XNwbUvlkN,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({defaultVariant:\"EqfxVpcpn\",enabledGestures,ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const{activeVariantCallback,delay}=useActiveVariantCallback(baseVariant);const onTap12hki=activeVariantCallback(async(...args)=>{setGestureState({isPressed:false});if(XNwbUvlkN){const res=await XNwbUvlkN(...args);if(res===false)return false;}});const sharedStyleClassNames=[sharedStyle.className];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsx(Link,{href:VC6OcPZI9,motionChild:true,nodeId:\"EqfxVpcpn\",openInNewTab:false,scopeId:\"Xn1PAaHuI\",children:/*#__PURE__*/_jsxs(motion.a,{...restProps,...gestureHandlers,className:`${cx(scopingClassNames,\"framer-phv737\",className,classNames)} framer-1baiaoy`,\"data-framer-name\":\"Blue\",\"data-highlight\":true,layoutDependency:layoutDependency,layoutId:\"EqfxVpcpn\",onTap:onTap12hki,ref:refBinding,style:{borderBottomLeftRadius:10,borderBottomRightRadius:10,borderTopLeftRadius:10,borderTopRightRadius:10,...style},...addPropertyOverrides({\"EqfxVpcpn-hover\":{\"data-framer-name\":undefined,\"data-highlight\":undefined,onTap:undefined},\"EqfxVpcpn-pressed\":{\"data-framer-name\":undefined,\"data-highlight\":undefined,onTap:undefined}},baseVariant,gestureVariant),children:[/*#__PURE__*/_jsx(Transition,{value:transition2,...addPropertyOverrides({\"EqfxVpcpn-pressed\":{value:transition1}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(motion.div,{className:\"framer-xeebsj\",\"data-framer-name\":\"Initial Colours\",layoutDependency:layoutDependency,layoutId:\"win5FfmsQ\",style:{backgroundColor:D2i7bM0Lp,borderBottomLeftRadius:10,borderBottomRightRadius:10,borderTopLeftRadius:10,borderTopRightRadius:10,scale:1},variants:{\"EqfxVpcpn-pressed\":{scale:1.1}},children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-rnn2jv\",\"data-styles-preset\":\"SqlL8P8Zf\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--variable-reference-JHPQAAwRR-Xn1PAaHuI))\"},children:\"Download App\"})}),className:\"framer-zm79h3\",\"data-framer-name\":\"Download App\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"CM_xATpuO\",style:{\"--extracted-r6o4lv\":\"var(--variable-reference-JHPQAAwRR-Xn1PAaHuI)\",\"--framer-paragraph-spacing\":\"129.68409729003906px\",\"--variable-reference-JHPQAAwRR-Xn1PAaHuI\":JHPQAAwRR},text:EIg46yIO_,verticalAlignment:\"top\",withExternalLayout:true})})}),/*#__PURE__*/_jsx(Transition,{value:transition3,...addPropertyOverrides({\"EqfxVpcpn-hover\":{value:transition1},\"EqfxVpcpn-pressed\":{value:transition1}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(motion.div,{className:\"framer-177hu15\",\"data-framer-name\":\"Secondary Colours\",layoutDependency:layoutDependency,layoutId:\"N05hYDKLJ\",style:{backgroundColor:GLjiYkiDq,borderBottomLeftRadius:10,borderBottomRightRadius:10,borderTopLeftRadius:10,borderTopRightRadius:10,mask:\"radial-gradient(60% 169% at -9.5% 288.09999999999997%, rgba(0,0,0,1) 0%, rgb(0, 0, 0) 99.99%, rgba(0, 0, 0, 0) 100%) add\",scale:1,WebkitMask:\"radial-gradient(60% 169% at -9.5% 288.09999999999997%, rgba(0,0,0,1) 0%, rgb(0, 0, 0) 99.99%, rgba(0, 0, 0, 0) 100%) add\"},variants:{\"EqfxVpcpn-hover\":{mask:\"radial-gradient(200% 315.88785046728964% at 17.4% 278.6%, rgba(0,0,0,1) 0%, rgb(0, 0, 0) 99.99%, rgba(0, 0, 0, 0) 100%) add\",WebkitMask:\"radial-gradient(200% 315.88785046728964% at 17.4% 278.6%, rgba(0,0,0,1) 0%, rgb(0, 0, 0) 99.99%, rgba(0, 0, 0, 0) 100%) add\"},\"EqfxVpcpn-pressed\":{mask:\"radial-gradient(200% 315.88785046728964% at 17.4% 278.6%, rgba(0,0,0,1) 0%, rgb(0, 0, 0) 99.99%, rgba(0, 0, 0, 0) 100%) add\",scale:1.1,WebkitMask:\"radial-gradient(200% 315.88785046728964% at 17.4% 278.6%, rgba(0,0,0,1) 0%, rgb(0, 0, 0) 99.99%, rgba(0, 0, 0, 0) 100%) add\"}},children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-rnn2jv\",\"data-styles-preset\":\"SqlL8P8Zf\",style:{\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-225e9e61-0e84-4e47-856f-3c1fe65ec629, rgb(4, 47, 61)))\"},children:\"Download App\"})}),className:\"framer-17bvtif\",\"data-framer-name\":\"Download App\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"nvebKZFko\",style:{\"--extracted-r6o4lv\":\"var(--token-225e9e61-0e84-4e47-856f-3c1fe65ec629, rgb(4, 47, 61))\",\"--framer-paragraph-spacing\":\"129.68409729003906px\"},text:EIg46yIO_,verticalAlignment:\"top\",withExternalLayout:true})})})]})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-W7EOZ.framer-1baiaoy, .framer-W7EOZ .framer-1baiaoy { display: block; }\",\".framer-W7EOZ.framer-phv737 { align-content: center; align-items: center; cursor: pointer; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 7px; height: 42px; justify-content: center; overflow: visible; padding: 0px; position: relative; text-decoration: none; width: min-content; }\",\".framer-W7EOZ .framer-xeebsj { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 7px; height: 42px; justify-content: center; overflow: visible; padding: 12px 15px 12px 15px; position: relative; width: min-content; }\",\".framer-W7EOZ .framer-zm79h3, .framer-W7EOZ .framer-17bvtif { flex: none; height: auto; position: relative; white-space: pre; width: auto; }\",\".framer-W7EOZ .framer-177hu15 { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 7px; height: 42px; justify-content: center; left: 0px; overflow: visible; padding: 12px 15px 12px 15px; position: absolute; top: 0px; width: min-content; z-index: 1; }\",...sharedStyle.css];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 42\n * @framerIntrinsicWidth 128\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"auto\",\"fixed\"]},\"lTztjruW1\":{\"layout\":[\"auto\",\"fixed\"]},\"CoTVbTecs\":{\"layout\":[\"auto\",\"fixed\"]}}}\n * @framerVariables {\"D2i7bM0Lp\":\"primaryButtonFill\",\"JHPQAAwRR\":\"primaryButtonText\",\"VC6OcPZI9\":\"buttonLink\",\"EIg46yIO_\":\"buttonText\",\"GLjiYkiDq\":\"secondaryButtonFill\",\"XNwbUvlkN\":\"click\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerXn1PAaHuI=withCSS(Component,css,\"framer-W7EOZ\");export default FramerXn1PAaHuI;FramerXn1PAaHuI.displayName=\"Button\";FramerXn1PAaHuI.defaultProps={height:42,width:128};addPropertyControls(FramerXn1PAaHuI,{D2i7bM0Lp:{defaultValue:'var(--token-0709f198-420c-4f9d-986e-3d4e155f33d3, rgb(71, 230, 255)) /* {\"name\":\"Blue\"} */',title:\"Primary Button Fill\",type:ControlType.Color},JHPQAAwRR:{defaultValue:\"var(--token-225e9e61-0e84-4e47-856f-3c1fe65ec629, rgb(4, 47, 61))\",title:\"Primary Button Text\",type:ControlType.Color},VC6OcPZI9:{title:\"Button Link\",type:ControlType.Link},EIg46yIO_:{defaultValue:\"Download App\",displayTextArea:false,title:\"Button Text\",type:ControlType.String},GLjiYkiDq:{defaultValue:'var(--token-5761bd89-c3be-4f67-87d8-dc85135d2783, rgb(218, 250, 255)) /* {\"name\":\"Blue Tint\"} */',title:\"Secondary Button Fill\",type:ControlType.Color},XNwbUvlkN:{title:\"Click\",type:ControlType.EventHandler}});addFonts(FramerXn1PAaHuI,[{explicitInter:true,fonts:[{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5vvr9Vy74if2I6bQbJvbw7SY1pQ.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/EOr0mi4hNtlgWNn9if640EZzXCo.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/Y9k9QrlZAqio88Klkmbd8VoMQc.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/OYrD2tBIBPvoJXiIHnLoOXnY9M.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/JeYwfuaPfZHQhEG8U5gtPDZ7WQ.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/GrgcKwrN6d3Uz8EwcLHZxwEfC4.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/b6Y37FthZeALduNqHicBT6FutY.woff2\",weight:\"400\"}]},...getFontsFromSharedStyle(sharedStyle.fonts)],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerXn1PAaHuI\",\"slots\":[],\"annotations\":{\"framerImmutableVariables\":\"true\",\"framerAutoSizeImages\":\"true\",\"framerComponentViewportWidth\":\"true\",\"framerDisplayContentsDiv\":\"false\",\"framerIntrinsicHeight\":\"42\",\"framerVariables\":\"{\\\"D2i7bM0Lp\\\":\\\"primaryButtonFill\\\",\\\"JHPQAAwRR\\\":\\\"primaryButtonText\\\",\\\"VC6OcPZI9\\\":\\\"buttonLink\\\",\\\"EIg46yIO_\\\":\\\"buttonText\\\",\\\"GLjiYkiDq\\\":\\\"secondaryButtonFill\\\",\\\"XNwbUvlkN\\\":\\\"click\\\"}\",\"framerIntrinsicWidth\":\"128\",\"framerContractVersion\":\"1\",\"framerColorSyntax\":\"true\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"fixed\\\"]},\\\"lTztjruW1\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"fixed\\\"]},\\\"CoTVbTecs\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"fixed\\\"]}}}\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Xn1PAaHuI.map","// Generated by Framer (c0f92f4)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,ControlType,cx,getFonts,Link,RichText,SmartComponentScopedContainer,SVG,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import PaaceLogo from\"https://framerusercontent.com/modules/bVIjQLDvnDwYEpRsWEoU/j6rZ3rFfED6hi9Q58cJ4/cICg3q1q1.js\";import Apple from\"https://framerusercontent.com/modules/lwf9lPHGKp6RC9MmUcks/DG86tUBQPitYveZcteqr/FeaToeU9c.js\";import GooglePlay from\"https://framerusercontent.com/modules/x4h5LQyFXUD7gbvx3qBg/XLKeVG7zEV9lgobCsxCc/y2Wh1LBLU.js\";import PaaceIcon from\"https://framerusercontent.com/modules/m0ViLeOjxQLQIw4hQbcC/1iYLG994ImCQ0NW93BjP/zJXrTnKmc.js\";import ButtonAlt from\"https://framerusercontent.com/modules/oaKQz6vrd9JJ80fLTrZt/2DXkpkZHRvtcy7vKdqC3/d5cAcwpH8.js\";import Button from\"https://framerusercontent.com/modules/3KW4H31czBO8P7AJBjv9/h5zYBFt99iKqB1iG2fJF/Xn1PAaHuI.js\";const ButtonFonts=getFonts(Button);const ButtonAltFonts=getFonts(ButtonAlt);const PaaceIconFonts=getFonts(PaaceIcon);const PaaceLogoFonts=getFonts(PaaceLogo);const cycleOrder=[\"OGmBc9r72\",\"UZaMPQL5k\",\"sJzj2lUPf\",\"eBfPi01ks\"];const serializationHash=\"framer-Id4ss\";const variantClassNames={eBfPi01ks:\"framer-v-c1kbkn\",OGmBc9r72:\"framer-v-7yk21m\",sJzj2lUPf:\"framer-v-awx02s\",UZaMPQL5k:\"framer-v-180n6u2\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const NZ4H4somw=undefined;const xJevYXpOP=undefined;const U_NQ5RFmW=undefined;const Sd_c0aKoZ=undefined;const b9YW8J8m1=undefined;const vChcac1Wg=undefined;const transition1={bounce:.2,delay:0,duration:.4,type:\"spring\"};const transformTemplate1=(_,t)=>`translateX(-50%) ${t}`;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={\"Large Desktop\":\"eBfPi01ks\",Desktop:\"OGmBc9r72\",Mobile:\"sJzj2lUPf\",Tablet:\"UZaMPQL5k\"};const getProps=({height,id,instagramLink,linkedInLink,paaceTCs,partnerTCs,privacyPolicy,tikTokLink,width,...props})=>{return{...props,b9YW8J8m1:linkedInLink??props.b9YW8J8m1,NZ4H4somw:privacyPolicy??props.NZ4H4somw,Sd_c0aKoZ:instagramLink??props.Sd_c0aKoZ,U_NQ5RFmW:partnerTCs??props.U_NQ5RFmW,variant:humanReadableVariantMap[props.variant]??props.variant??\"OGmBc9r72\",vChcac1Wg:tikTokLink??props.vChcac1Wg,xJevYXpOP:paaceTCs??props.xJevYXpOP};};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,NZ4H4somw,xJevYXpOP,U_NQ5RFmW,vChcac1Wg,Sd_c0aKoZ,b9YW8J8m1,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"OGmBc9r72\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);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-7yk21m\",className,classNames),\"data-framer-name\":\"Desktop\",layoutDependency:layoutDependency,layoutId:\"OGmBc9r72\",ref:refBinding,style:{backgroundColor:\"var(--token-225e9e61-0e84-4e47-856f-3c1fe65ec629, rgb(4, 47, 61))\",...style},...addPropertyOverrides({eBfPi01ks:{\"data-framer-name\":\"Large Desktop\"},sJzj2lUPf:{\"data-framer-name\":\"Mobile\"},UZaMPQL5k:{\"data-framer-name\":\"Tablet\"}},baseVariant,gestureVariant),children:[/*#__PURE__*/_jsx(motion.div,{className:\"framer-i1p56m\",layoutDependency:layoutDependency,layoutId:\"eUeZ7v0_6\",children:/*#__PURE__*/_jsxs(motion.div,{className:\"framer-frdtuy\",\"data-framer-name\":\"Above Footer CTA\",layoutDependency:layoutDependency,layoutId:\"I233:6249;127:6202\",children:[/*#__PURE__*/_jsxs(motion.div,{className:\"framer-8ol9ez\",\"data-framer-name\":\"Stack\",layoutDependency:layoutDependency,layoutId:\"I233:6249;127:6205\",children:[/*#__PURE__*/_jsxs(motion.div,{className:\"framer-jr7qs5\",\"data-framer-name\":\"Text\",layoutDependency:layoutDependency,layoutId:\"goyGeKYpD\",children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7WmFsYW5kbyBTYW5zLTcwMA==\",\"--framer-font-family\":'\"Zalando Sans\", \"Zalando Sans Placeholder\", sans-serif',\"--framer-font-size\":\"20px\",\"--framer-font-weight\":\"700\",\"--framer-line-height\":\"150%\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(248, 248, 248))\"},children:\"Join our 400+ partners\"})}),className:\"framer-1kup24v\",\"data-framer-name\":\"Medium length displa\",fonts:[\"GF;Zalando Sans-700\"],layoutDependency:layoutDependency,layoutId:\"I233:6249;127:6203\",style:{\"--extracted-r6o4lv\":\"rgb(248, 248, 248)\",\"--framer-paragraph-spacing\":\"15px\"},verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({sJzj2lUPf:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7WmFsYW5kbyBTYW5zLTcwMA==\",\"--framer-font-family\":'\"Zalando Sans\", \"Zalando Sans Placeholder\", sans-serif',\"--framer-font-size\":\"20px\",\"--framer-font-weight\":\"700\",\"--framer-line-height\":\"125%\",\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(248, 248, 248))\"},children:\"Join our 400+ partners\"})})}},baseVariant,gestureVariant)}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7WmFsYW5kbyBTYW5zLXJlZ3VsYXI=\",\"--framer-font-family\":'\"Zalando Sans\", \"Zalando Sans Placeholder\", sans-serif',\"--framer-font-size\":\"20px\",\"--framer-line-height\":\"125%\",\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(248, 248, 248))\"},children:\"and reach a new audience\"})}),className:\"framer-gsbexf\",\"data-framer-name\":\"Medium length displa\",fonts:[\"GF;Zalando Sans-regular\"],layoutDependency:layoutDependency,layoutId:\"I233:6249;127:6204\",style:{\"--extracted-r6o4lv\":\"rgb(248, 248, 248)\",\"--framer-paragraph-spacing\":\"15px\"},verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({sJzj2lUPf:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7WmFsYW5kbyBTYW5zLXJlZ3VsYXI=\",\"--framer-font-family\":'\"Zalando Sans\", \"Zalando Sans Placeholder\", sans-serif',\"--framer-font-size\":\"18px\",\"--framer-line-height\":\"125%\",\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(248, 248, 248))\"},children:\"and reach a new audience\"})})}},baseVariant,gestureVariant)})]}),/*#__PURE__*/_jsx(ComponentViewportProvider,{height:42,...addPropertyOverrides({UZaMPQL5k:{y:(componentViewport?.y||0)+0+0+0+0+68+0+193}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1vn8gpe-container\",layoutDependency:layoutDependency,layoutId:\"h_ZeA2BxX-container\",nodeId:\"h_ZeA2BxX\",rendersWithMotion:true,scopeId:\"RfEppRLbS\",children:/*#__PURE__*/_jsx(Button,{D2i7bM0Lp:\"var(--token-0709f198-420c-4f9d-986e-3d4e155f33d3, rgb(71, 230, 255))\",EIg46yIO_:\"Become a partner\",GLjiYkiDq:\"var(--token-90bca61f-7808-4177-bbdc-d83dc3bf50ec, rgb(255, 255, 255))\",height:\"100%\",id:\"h_ZeA2BxX\",JHPQAAwRR:\"var(--token-225e9e61-0e84-4e47-856f-3c1fe65ec629, rgb(4, 47, 61))\",layoutId:\"h_ZeA2BxX\",style:{height:\"100%\"},VC6OcPZI9:\"https://partners.paace.co/\",width:\"100%\"})})})]}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-1ma1jfy\",\"data-framer-name\":\"Stack\",layoutDependency:layoutDependency,layoutId:\"x_naZSrtb\",children:/*#__PURE__*/_jsxs(motion.div,{className:\"framer-axi8a5\",\"data-framer-name\":\"Buttons\",layoutDependency:layoutDependency,layoutId:\"I233:6249;127:6227\",children:[/*#__PURE__*/_jsx(ComponentViewportProvider,{height:53,...addPropertyOverrides({UZaMPQL5k:{y:(componentViewport?.y||0)+0+0+0+0+68+0+0+0}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-qxstj5-container\",layoutDependency:layoutDependency,layoutId:\"zbC7fLy5y-container\",nodeId:\"zbC7fLy5y\",rendersWithMotion:true,scopeId:\"RfEppRLbS\",children:/*#__PURE__*/_jsx(ButtonAlt,{height:\"100%\",id:\"zbC7fLy5y\",layoutId:\"zbC7fLy5y\",nvRzyR5m4:Apple,RX71Mmhn4:\"var(--token-5761bd89-c3be-4f67-87d8-dc85135d2783, rgb(218, 250, 255))\",tQmuOjRdr:\"Download on the\",variant:\"I233:6249;127:6228\",width:\"100%\",z7eT5bGka:\"https://apps.apple.com/gb/app/paace/id1671548422?mt=8\",zYjO2pzM8:\"App Store\",...addPropertyOverrides({sJzj2lUPf:{variant:\"IN6nGBpwP\"},UZaMPQL5k:{variant:\"IN6nGBpwP\"}},baseVariant,gestureVariant)})})}),/*#__PURE__*/_jsx(ComponentViewportProvider,{height:53,...addPropertyOverrides({UZaMPQL5k:{y:(componentViewport?.y||0)+0+0+0+0+68+0+0+0}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-u1vde0-container\",layoutDependency:layoutDependency,layoutId:\"ABn8fU5Ix-container\",nodeId:\"ABn8fU5Ix\",rendersWithMotion:true,scopeId:\"RfEppRLbS\",children:/*#__PURE__*/_jsx(ButtonAlt,{height:\"100%\",id:\"ABn8fU5Ix\",layoutId:\"ABn8fU5Ix\",nvRzyR5m4:GooglePlay,RX71Mmhn4:\"var(--token-5761bd89-c3be-4f67-87d8-dc85135d2783, rgb(218, 250, 255))\",tQmuOjRdr:\"Get it on\",variant:\"I233:6249;127:6228\",width:\"100%\",z7eT5bGka:\"https://play.google.com/store/apps/details?id=com.paace&hl=en_US\",zYjO2pzM8:\"Google Play\",...addPropertyOverrides({sJzj2lUPf:{variant:\"IN6nGBpwP\"},UZaMPQL5k:{variant:\"IN6nGBpwP\"}},baseVariant,gestureVariant)})})}),/*#__PURE__*/_jsx(PaaceIcon,{animated:true,className:\"framer-18pds0l\",layoutDependency:layoutDependency,layoutId:\"uHjI3Anjk\",style:{\"--nvn3oe\":\"var(--token-0709f198-420c-4f9d-986e-3d4e155f33d3, rgb(71, 230, 255))\"}})]})})]})}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-kdzi7i\",\"data-framer-name\":\"Footer Middle\",layoutDependency:layoutDependency,layoutId:\"I233:6249;127:6220\",children:/*#__PURE__*/_jsx(motion.div,{className:\"framer-vcr95z\",\"data-framer-name\":\"Percentage height frame\",layoutDependency:layoutDependency,layoutId:\"I233:6249;127:6222\",children:/*#__PURE__*/_jsx(motion.div,{className:\"framer-tw1i4b\",layoutDependency:layoutDependency,layoutId:\"d9q6hx7uD\",children:/*#__PURE__*/_jsx(motion.div,{className:\"framer-ufwfp0\",\"data-framer-name\":\"Percentage width frame\",layoutDependency:layoutDependency,layoutId:\"I233:6249;127:6223\",children:/*#__PURE__*/_jsx(motion.div,{className:\"framer-1bjnueh\",\"data-framer-name\":\"Frame 40034\",layoutDependency:layoutDependency,layoutId:\"I233:6249;127:6224\",children:/*#__PURE__*/_jsx(PaaceLogo,{animated:true,className:\"framer-7m8u5k\",layoutDependency:layoutDependency,layoutId:\"XTwtustiS\",style:{\"--nvn3oe\":\"var(--token-0709f198-420c-4f9d-986e-3d4e155f33d3, rgb(71, 230, 255))\"}})})})})})}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-p7twxp\",\"data-framer-name\":\"Footer bottom\",layoutDependency:layoutDependency,layoutId:\"I9zKMZY9s\",children:/*#__PURE__*/_jsxs(motion.div,{className:\"framer-ki2xqm\",\"data-framer-name\":\"Frame 1000003536\",layoutDependency:layoutDependency,layoutId:\"WPcWAZC2d\",children:[/*#__PURE__*/_jsxs(motion.div,{className:\"framer-tcwetg\",\"data-framer-name\":\"Frame 1000003534\",layoutDependency:layoutDependency,layoutId:\"i9h77Jan0\",children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7WmFsYW5kbyBTYW5zIFNlbWlFeHBhbmRlZC03MDA=\",\"--framer-font-family\":'\"Zalando Sans SemiExpanded\", \"Zalando Sans SemiExpanded Placeholder\", sans-serif',\"--framer-font-size\":\"11px\",\"--framer-font-weight\":\"700\",\"--framer-letter-spacing\":\"0.1em\",\"--framer-line-height\":\"125%\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(71, 230, 255))\",\"--framer-text-transform\":\"uppercase\"},children:\"Copyright \\xa9 2025 Paace. All rights reserved\"})}),className:\"framer-45ubzs\",\"data-framer-name\":\"Copyright \\xa9 2025 Paace. All rights reserved\",fonts:[\"GF;Zalando Sans SemiExpanded-700\"],layoutDependency:layoutDependency,layoutId:\"cwZLjF92y\",style:{\"--extracted-r6o4lv\":\"rgb(71, 230, 255)\",\"--framer-paragraph-spacing\":\"129.68409729003906px\"},verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({sJzj2lUPf:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7WmFsYW5kbyBTYW5zIFNlbWlFeHBhbmRlZC03MDA=\",\"--framer-font-family\":'\"Zalando Sans SemiExpanded\", \"Zalando Sans SemiExpanded Placeholder\", sans-serif',\"--framer-font-size\":\"11px\",\"--framer-font-weight\":\"700\",\"--framer-letter-spacing\":\"0.1em\",\"--framer-line-height\":\"125%\",\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(71, 230, 255))\",\"--framer-text-transform\":\"uppercase\"},children:\"Copyright \\xa9 2025 Paace. All rights reserved\"})})}},baseVariant,gestureVariant)}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7WmFsYW5kbyBTYW5zIFNlbWlFeHBhbmRlZC03MDA=\",\"--framer-font-family\":'\"Zalando Sans SemiExpanded\", \"Zalando Sans SemiExpanded Placeholder\", sans-serif',\"--framer-font-size\":\"11px\",\"--framer-font-weight\":\"700\",\"--framer-letter-spacing\":\"0.1em\",\"--framer-line-height\":\"125%\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(71, 230, 255))\",\"--framer-text-transform\":\"uppercase\"},children:/*#__PURE__*/_jsx(Link,{href:NZ4H4somw,motionChild:true,nodeId:\"NEeniukk2\",openInNewTab:false,relValues:[],scopeId:\"RfEppRLbS\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{children:\"Privacy Policy\"})})})}),className:\"framer-k5yif\",\"data-framer-name\":\"Privacy Policy\",fonts:[\"GF;Zalando Sans SemiExpanded-700\"],layoutDependency:layoutDependency,layoutId:\"NEeniukk2\",style:{\"--extracted-r6o4lv\":\"rgb(71, 230, 255)\",\"--framer-paragraph-spacing\":\"129.68409729003906px\"},verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({sJzj2lUPf:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7WmFsYW5kbyBTYW5zIFNlbWlFeHBhbmRlZC03MDA=\",\"--framer-font-family\":'\"Zalando Sans SemiExpanded\", \"Zalando Sans SemiExpanded Placeholder\", sans-serif',\"--framer-font-size\":\"11px\",\"--framer-font-weight\":\"700\",\"--framer-letter-spacing\":\"0.1em\",\"--framer-line-height\":\"125%\",\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(71, 230, 255))\",\"--framer-text-transform\":\"uppercase\"},children:/*#__PURE__*/_jsx(Link,{href:NZ4H4somw,motionChild:true,nodeId:\"NEeniukk2\",openInNewTab:false,relValues:[],scopeId:\"RfEppRLbS\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{children:\"Privacy Policy\"})})})})}},baseVariant,gestureVariant)}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsxs(motion.p,{style:{\"--font-selector\":\"R0Y7WmFsYW5kbyBTYW5zIFNlbWlFeHBhbmRlZC03MDA=\",\"--framer-font-family\":'\"Zalando Sans SemiExpanded\", \"Zalando Sans SemiExpanded Placeholder\", sans-serif',\"--framer-font-size\":\"11px\",\"--framer-font-weight\":\"700\",\"--framer-letter-spacing\":\"0.1em\",\"--framer-line-height\":\"125%\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(71, 230, 255))\",\"--framer-text-transform\":\"uppercase\"},children:[/*#__PURE__*/_jsx(Link,{href:xJevYXpOP,motionChild:true,nodeId:\"cTWOcTg8s\",openInNewTab:false,relValues:[],scopeId:\"RfEppRLbS\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{children:\"Paace T&C's\"})}),\"  \"]})}),className:\"framer-h0xkt4\",\"data-framer-name\":\"Paace T&C's\",fonts:[\"GF;Zalando Sans SemiExpanded-700\"],layoutDependency:layoutDependency,layoutId:\"cTWOcTg8s\",style:{\"--extracted-r6o4lv\":\"rgb(71, 230, 255)\",\"--framer-paragraph-spacing\":\"129.68409729003906px\"},verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({sJzj2lUPf:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsxs(motion.p,{style:{\"--font-selector\":\"R0Y7WmFsYW5kbyBTYW5zIFNlbWlFeHBhbmRlZC03MDA=\",\"--framer-font-family\":'\"Zalando Sans SemiExpanded\", \"Zalando Sans SemiExpanded Placeholder\", sans-serif',\"--framer-font-size\":\"11px\",\"--framer-font-weight\":\"700\",\"--framer-letter-spacing\":\"0.1em\",\"--framer-line-height\":\"125%\",\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(71, 230, 255))\",\"--framer-text-transform\":\"uppercase\"},children:[/*#__PURE__*/_jsx(Link,{href:xJevYXpOP,motionChild:true,nodeId:\"cTWOcTg8s\",openInNewTab:false,relValues:[],scopeId:\"RfEppRLbS\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{children:\"Paace T&C's\"})}),\"  \"]})})}},baseVariant,gestureVariant)}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7WmFsYW5kbyBTYW5zIFNlbWlFeHBhbmRlZC03MDA=\",\"--framer-font-family\":'\"Zalando Sans SemiExpanded\", \"Zalando Sans SemiExpanded Placeholder\", sans-serif',\"--framer-font-size\":\"11px\",\"--framer-font-weight\":\"700\",\"--framer-letter-spacing\":\"0.1em\",\"--framer-line-height\":\"125%\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(71, 230, 255))\",\"--framer-text-transform\":\"uppercase\"},children:/*#__PURE__*/_jsx(Link,{href:U_NQ5RFmW,motionChild:true,nodeId:\"vOMnkcVwN\",openInNewTab:false,relValues:[],scopeId:\"RfEppRLbS\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{children:\"Partner T&Cs\"})})})}),className:\"framer-bc3gbg\",\"data-framer-name\":\"Partner T&Cs\",fonts:[\"GF;Zalando Sans SemiExpanded-700\"],layoutDependency:layoutDependency,layoutId:\"vOMnkcVwN\",style:{\"--extracted-r6o4lv\":\"rgb(71, 230, 255)\",\"--framer-paragraph-spacing\":\"129.68409729003906px\"},verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({sJzj2lUPf:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7WmFsYW5kbyBTYW5zIFNlbWlFeHBhbmRlZC03MDA=\",\"--framer-font-family\":'\"Zalando Sans SemiExpanded\", \"Zalando Sans SemiExpanded Placeholder\", sans-serif',\"--framer-font-size\":\"11px\",\"--framer-font-weight\":\"700\",\"--framer-letter-spacing\":\"0.1em\",\"--framer-line-height\":\"125%\",\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(71, 230, 255))\",\"--framer-text-transform\":\"uppercase\"},children:/*#__PURE__*/_jsx(Link,{href:U_NQ5RFmW,motionChild:true,nodeId:\"vOMnkcVwN\",openInNewTab:false,relValues:[],scopeId:\"RfEppRLbS\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{children:\"Partner T&Cs\"})})})})}},baseVariant,gestureVariant)})]}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-15yxkt9\",layoutDependency:layoutDependency,layoutId:\"oLLNsidMo\",children:[/*#__PURE__*/_jsx(Link,{href:Sd_c0aKoZ,motionChild:true,nodeId:\"ENturc8Cz\",openInNewTab:true,scopeId:\"RfEppRLbS\",children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-1i2o7pf framer-1fin2i3\",\"data-framer-name\":\"Instagram Icon\",layoutDependency:layoutDependency,layoutId:\"ENturc8Cz\",children:/*#__PURE__*/_jsx(SVG,{className:\"framer-1qmf40v\",\"data-framer-name\":\"Instagram\",fill:\"rgba(0,0,0,1)\",intrinsicHeight:22,intrinsicWidth:22,layoutDependency:layoutDependency,layoutId:\"s3o331Lpp\",svg:'<svg width=\"22\" height=\"22\" viewBox=\"0 0 22 22\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\\n<path d=\"M10.7998 0C15.114 0 17.2715 0.000290394 18.8252 1.02832C19.5189 1.48736 20.1133 2.0817 20.5723 2.77539C21.6 4.32903 21.5996 6.4861 21.5996 10.7998C21.5996 15.114 21.6003 17.2715 20.5723 18.8252C20.1132 19.519 19.519 20.1132 18.8252 20.5723C17.2715 21.6003 15.114 21.5996 10.7998 21.5996C6.4861 21.5996 4.32903 21.6 2.77539 20.5723C2.0817 20.1133 1.48736 19.5189 1.02832 18.8252C0.000290513 17.2715 0 15.114 0 10.7998C2.34568e-10 6.48585 0.00036823 4.32905 1.02832 2.77539C1.48739 2.08159 2.08159 1.48739 2.77539 1.02832C4.32905 0.000368181 6.48585 2.32296e-10 10.7998 0ZM10.7998 5.20898C7.71202 5.20922 5.20898 7.71294 5.20898 10.8008C5.20922 13.8884 7.71217 16.3914 10.7998 16.3916C13.8876 16.3916 16.3914 13.8886 16.3916 10.8008C16.3916 7.7128 13.8878 5.20898 10.7998 5.20898ZM10.7998 7.10059C12.843 7.10059 14.5 8.75755 14.5 10.8008C14.4998 12.8438 12.8429 14.5 10.7998 14.5C8.75692 14.4998 7.10082 12.8437 7.10059 10.8008C7.10059 8.75769 8.75677 7.10082 10.7998 7.10059ZM16.6123 3.61426C15.8869 3.61429 15.299 4.20236 15.2988 4.92773C15.2988 5.6533 15.8867 6.24215 16.6123 6.24219C17.3379 6.24219 17.9258 5.65332 17.9258 4.92773C17.9256 4.20234 17.3378 3.61426 16.6123 3.61426Z\" fill=\"#48E7FF\"/>\\n</svg>\\n',withExternalLayout:true})})}),/*#__PURE__*/_jsx(Link,{href:b9YW8J8m1,motionChild:true,nodeId:\"PC_tHGFJM\",openInNewTab:true,scopeId:\"RfEppRLbS\",children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-s845ar framer-1fin2i3\",\"data-framer-name\":\"LinkedIn Icon\",layoutDependency:layoutDependency,layoutId:\"PC_tHGFJM\",transformTemplate:transformTemplate1,...addPropertyOverrides({sJzj2lUPf:{transformTemplate:undefined}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SVG,{className:\"framer-1npfz9v\",\"data-framer-name\":\"Group 73\",fill:\"rgba(0,0,0,1)\",intrinsicHeight:21,intrinsicWidth:22,layoutDependency:layoutDependency,layoutId:\"yX7DKgWHI\",svg:'<svg width=\"22\" height=\"21\" viewBox=\"0 0 22 21\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\\n<path d=\"M0 2.38961C0 1.69696 0.24325 1.12553 0.72973 0.675324C1.21621 0.225101 1.84866 0 2.62703 0C3.39151 0 4.01003 0.221631 4.48263 0.664935C4.9691 1.12208 5.21236 1.71773 5.21236 2.45195C5.21236 3.11688 4.97607 3.67098 4.50347 4.11428C4.01699 4.57143 3.37761 4.8 2.58533 4.8H2.56448C1.79999 4.8 1.18147 4.57143 0.70888 4.11428C0.236286 3.65714 0 3.08224 0 2.38961ZM0.271042 20.5714V6.69091H4.89961V20.5714H0.271042ZM7.46409 20.5714H12.0927V12.8208C12.0927 12.3359 12.1483 11.9619 12.2595 11.6987C12.454 11.2277 12.7494 10.8294 13.1456 10.5039C13.5417 10.1783 14.0386 10.0156 14.6363 10.0156C16.1931 10.0156 16.9714 11.0615 16.9714 13.1532V20.5714H21.6V12.613C21.6 10.5628 21.1135 9.00779 20.1405 7.94805C19.1676 6.88831 17.8819 6.35844 16.2834 6.35844C14.4903 6.35844 13.0934 7.12727 12.0927 8.66493V8.70649H12.0718L12.0927 8.66493V6.69091H7.46409C7.49189 7.13419 7.50579 8.51254 7.50579 10.826C7.50579 13.1394 7.49189 16.3879 7.46409 20.5714Z\" fill=\"#48E7FF\"/>\\n</svg>\\n',withExternalLayout:true})})}),/*#__PURE__*/_jsx(Link,{href:vChcac1Wg,motionChild:true,nodeId:\"iU0GqrAUO\",openInNewTab:true,scopeId:\"RfEppRLbS\",children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-vxl0o5 framer-1fin2i3\",\"data-framer-name\":\"Tik Tok Icon\",layoutDependency:layoutDependency,layoutId:\"iU0GqrAUO\",children:/*#__PURE__*/_jsx(SVG,{className:\"framer-1w7otbn\",\"data-framer-name\":\"TikTok\",fill:\"rgba(0,0,0,1)\",intrinsicHeight:23,intrinsicWidth:21,layoutDependency:layoutDependency,layoutId:\"xjEcDeekk\",svg:'<svg width=\"21\" height=\"23\" viewBox=\"0 0 21 23\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\\n<path d=\"M20.022 5.7078C18.7199 5.7078 17.5159 5.27526 16.5527 4.54841C15.4468 3.71453 14.6486 2.48825 14.3677 1.07913C14.2963 0.731312 14.2607 0.370115 14.2562 0H10.5327V10.1715L10.5283 15.7411C10.5283 17.2304 9.55617 18.4924 8.21395 18.9383C7.82154 19.0676 7.40237 19.1301 6.96537 19.1033C6.4035 19.0721 5.88178 18.9026 5.42248 18.6306C4.45037 18.0509 3.79486 16.9986 3.77702 15.7901C3.75027 13.9083 5.27086 12.3699 7.15265 12.3699C7.52277 12.3699 7.87951 12.4323 8.21395 12.5393V9.76124V8.76683C7.86167 8.71332 7.50493 8.68656 7.13928 8.68656C5.07912 8.68656 3.15273 9.54273 1.77483 11.0856C0.735834 12.2495 0.111543 13.7389 0.0134401 15.2996C-0.111418 17.3464 0.637731 19.295 2.09144 20.7309C2.30548 20.9405 2.52844 21.1367 2.76478 21.3195C4.01336 22.2783 5.53396 22.8 7.13928 22.8C7.50047 22.8 7.86167 22.7732 8.21395 22.7197C9.71225 22.4968 11.0946 21.8101 12.1871 20.7309C13.5293 19.4065 14.2696 17.6451 14.2785 15.7723L14.2607 7.45136C14.9028 7.94633 15.5984 8.35212 16.352 8.66873C17.5203 9.1637 18.76 9.40896 20.0309 9.40896V6.70667V5.70334C20.0353 5.7078 20.022 5.7078 20.022 5.7078Z\" fill=\"#48E7FF\"/>\\n</svg>\\n',withExternalLayout:true})})})]})]})})]})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-Id4ss.framer-1fin2i3, .framer-Id4ss .framer-1fin2i3 { display: block; }\",\".framer-Id4ss.framer-7yk21m { align-content: flex-start; align-items: flex-start; display: flex; flex-direction: column; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: flex-start; overflow: visible; padding: 0px; position: relative; width: 1200px; }\",\".framer-Id4ss .framer-i1p56m { align-content: center; align-items: center; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: flex-end; overflow: visible; padding: 0px; position: relative; width: 100%; }\",\".framer-Id4ss .framer-frdtuy { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; height: min-content; justify-content: space-between; overflow: hidden; padding: 60px 116px 40px 116px; position: relative; width: 100%; }\",\".framer-Id4ss .framer-8ol9ez, .framer-Id4ss .framer-1ma1jfy { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 18px; height: 77px; justify-content: center; overflow: visible; padding: 0px; position: relative; width: min-content; }\",\".framer-Id4ss .framer-jr7qs5 { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: flex-start; overflow: var(--overflow-clip-fallback, clip); padding: 0px; position: relative; width: min-content; }\",\".framer-Id4ss .framer-1kup24v { flex: none; height: auto; position: relative; white-space: pre-wrap; width: 266px; word-break: break-word; word-wrap: break-word; }\",\".framer-Id4ss .framer-gsbexf, .framer-Id4ss .framer-45ubzs, .framer-Id4ss .framer-k5yif, .framer-Id4ss .framer-h0xkt4, .framer-Id4ss .framer-bc3gbg { flex: none; height: auto; position: relative; white-space: pre; width: auto; }\",\".framer-Id4ss .framer-1vn8gpe-container { flex: none; height: 42px; position: relative; width: auto; }\",\".framer-Id4ss .framer-axi8a5 { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 18px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: min-content; }\",\".framer-Id4ss .framer-qxstj5-container, .framer-Id4ss .framer-u1vde0-container { flex: none; height: auto; position: relative; width: auto; }\",\".framer-Id4ss .framer-18pds0l { flex: none; height: var(--framer-aspect-ratio-supported, 47px); position: relative; width: 47px; }\",\".framer-Id4ss .framer-kdzi7i { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 39px; height: min-content; justify-content: flex-start; overflow: visible; padding: 51px 20px 0px 20px; pointer-events: none; position: relative; width: 100%; }\",\".framer-Id4ss .framer-vcr95z { align-content: flex-start; align-items: flex-start; aspect-ratio: 4.549019607843137 / 1; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 18px; height: var(--framer-aspect-ratio-supported, 255px); justify-content: flex-start; overflow: visible; padding: 0px; position: relative; width: 100%; }\",\".framer-Id4ss .framer-tw1i4b { align-content: center; align-items: center; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; left: 0px; overflow: visible; padding: 0px; position: absolute; right: 0px; top: 0px; z-index: 1; }\",\".framer-Id4ss .framer-ufwfp0 { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: 100%; }\",\".framer-Id4ss .framer-1bjnueh { align-content: flex-start; align-items: flex-start; display: flex; flex: 1 0 0px; flex-direction: column; flex-wrap: nowrap; gap: 7px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: 1px; }\",\".framer-Id4ss .framer-7m8u5k { flex: none; height: var(--framer-aspect-ratio-supported, 310px); position: relative; width: 100%; }\",\".framer-Id4ss .framer-p7twxp { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 39px; height: min-content; justify-content: flex-start; overflow: hidden; padding: 38px 112px 48px 112px; position: relative; width: 100%; }\",\".framer-Id4ss .framer-ki2xqm { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 26px; height: min-content; justify-content: flex-start; overflow: visible; padding: 0px; position: relative; width: 100%; }\",\".framer-Id4ss .framer-tcwetg { align-content: center; align-items: center; display: flex; flex: 1 0 0px; flex-direction: row; flex-wrap: wrap; gap: 0px 38px; height: min-content; justify-content: flex-start; overflow: visible; padding: 0px; position: relative; width: 1px; }\",\".framer-Id4ss .framer-15yxkt9 { flex: none; height: 24px; overflow: visible; position: relative; width: 124px; }\",\".framer-Id4ss .framer-1i2o7pf { aspect-ratio: 1 / 1; bottom: 0px; flex: none; gap: 0px; left: 0px; overflow: visible; position: absolute; text-decoration: none; top: 0px; width: var(--framer-aspect-ratio-supported, 24px); }\",\".framer-Id4ss .framer-1qmf40v { flex: none; height: 22px; left: 1px; position: absolute; top: 1px; width: 22px; }\",\".framer-Id4ss .framer-s845ar { aspect-ratio: 1 / 1; bottom: 0px; flex: none; gap: 0px; left: 50%; overflow: visible; position: absolute; text-decoration: none; top: 0px; width: var(--framer-aspect-ratio-supported, 24px); }\",\".framer-Id4ss .framer-1npfz9v { flex: none; height: 21px; left: 1px; position: absolute; top: 1px; width: 22px; }\",\".framer-Id4ss .framer-vxl0o5 { aspect-ratio: 1 / 1; bottom: 0px; flex: none; gap: 0px; overflow: visible; position: absolute; right: 0px; text-decoration: none; top: 0px; width: var(--framer-aspect-ratio-supported, 24px); }\",\".framer-Id4ss .framer-1w7otbn { bottom: 0px; flex: none; left: 2px; position: absolute; right: 2px; top: 1px; }\",\".framer-Id4ss.framer-v-180n6u2.framer-7yk21m { width: 810px; }\",\".framer-Id4ss.framer-v-180n6u2 .framer-frdtuy { padding: 68px 40px 68px 40px; }\",\".framer-Id4ss.framer-v-180n6u2 .framer-8ol9ez { align-content: flex-start; align-items: flex-start; flex: 1 0 0px; flex-direction: column; height: min-content; justify-content: flex-start; width: 1px; }\",\".framer-Id4ss.framer-v-180n6u2 .framer-1ma1jfy { flex: 1 0 0px; height: min-content; justify-content: flex-end; width: 1px; }\",\".framer-Id4ss.framer-v-180n6u2 .framer-axi8a5 { align-content: flex-end; align-items: flex-end; gap: 8px; }\",\".framer-Id4ss.framer-v-180n6u2 .framer-18pds0l { height: var(--framer-aspect-ratio-supported, 42px); width: 42px; }\",\".framer-Id4ss.framer-v-180n6u2 .framer-kdzi7i { padding: 1px 40px 0px 40px; }\",\".framer-Id4ss.framer-v-180n6u2 .framer-vcr95z { aspect-ratio: 3.7628865979381443 / 1; height: var(--framer-aspect-ratio-supported, 194px); }\",\".framer-Id4ss.framer-v-180n6u2 .framer-ufwfp0 { gap: 28px; width: 105%; }\",\".framer-Id4ss.framer-v-180n6u2 .framer-7m8u5k { height: var(--framer-aspect-ratio-supported, 205px); }\",\".framer-Id4ss.framer-v-180n6u2 .framer-p7twxp { padding: 1px 40px 48px 40px; }\",\".framer-Id4ss.framer-v-180n6u2 .framer-ki2xqm { align-content: flex-start; align-items: flex-start; }\",\".framer-Id4ss.framer-v-180n6u2 .framer-tcwetg { align-content: flex-start; align-items: flex-start; flex-direction: column; gap: 8px; padding: 0px 0px 0px 60px; }\",\".framer-Id4ss.framer-v-awx02s.framer-7yk21m { width: 390px; }\",\".framer-Id4ss.framer-v-awx02s .framer-frdtuy { flex-direction: column; gap: 36px; justify-content: flex-start; padding: 60px 25px 40px 25px; width: 390px; }\",\".framer-Id4ss.framer-v-awx02s .framer-8ol9ez { flex-direction: column; height: min-content; width: 100%; }\",\".framer-Id4ss.framer-v-awx02s .framer-jr7qs5 { align-content: center; align-items: center; }\",\".framer-Id4ss.framer-v-awx02s .framer-1ma1jfy { align-content: flex-start; align-items: flex-start; flex-direction: column; height: min-content; justify-content: flex-start; width: 100%; }\",\".framer-Id4ss.framer-v-awx02s .framer-axi8a5 { gap: 8px; width: 100%; }\",\".framer-Id4ss.framer-v-awx02s .framer-18pds0l { height: var(--framer-aspect-ratio-supported, 30px); width: 30px; }\",\".framer-Id4ss.framer-v-awx02s .framer-kdzi7i { gap: 49px; padding: 14px 15px 15px 15px; }\",\".framer-Id4ss.framer-v-awx02s .framer-vcr95z { aspect-ratio: unset; height: min-content; min-height: 98px; }\",\".framer-Id4ss.framer-v-awx02s .framer-ufwfp0 { flex-direction: column; gap: 28px; }\",\".framer-Id4ss.framer-v-awx02s .framer-1bjnueh { align-content: center; align-items: center; flex: none; width: 100%; }\",\".framer-Id4ss.framer-v-awx02s .framer-7m8u5k { height: var(--framer-aspect-ratio-supported, 96px); }\",\".framer-Id4ss.framer-v-awx02s .framer-p7twxp { gap: 49px; padding: 14px 25px 48px 25px; }\",\".framer-Id4ss.framer-v-awx02s .framer-ki2xqm { flex-direction: column; flex-wrap: wrap; justify-content: center; }\",\".framer-Id4ss.framer-v-awx02s .framer-tcwetg { flex: none; gap: 16px 24px; justify-content: center; width: 100%; }\",\".framer-Id4ss.framer-v-awx02s .framer-45ubzs { max-width: 100%; white-space: pre-wrap; word-break: break-word; word-wrap: break-word; }\",\".framer-Id4ss.framer-v-awx02s .framer-15yxkt9 { align-content: center; align-items: center; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 20px; height: min-content; justify-content: center; padding: 0px; width: min-content; }\",\".framer-Id4ss.framer-v-awx02s .framer-1i2o7pf, .framer-Id4ss.framer-v-awx02s .framer-s845ar { bottom: unset; height: var(--framer-aspect-ratio-supported, 24px); left: unset; position: relative; top: unset; width: 24px; }\",\".framer-Id4ss.framer-v-awx02s .framer-vxl0o5 { bottom: unset; height: var(--framer-aspect-ratio-supported, 24px); position: relative; right: unset; top: unset; width: 24px; }\",\".framer-Id4ss.framer-v-c1kbkn.framer-7yk21m { width: 1920px; }\",\".framer-Id4ss.framer-v-c1kbkn .framer-vcr95z { aspect-ratio: 4.392523364485982 / 1; height: var(--framer-aspect-ratio-supported, 428px); }\",\".framer-Id4ss.framer-v-c1kbkn .framer-7m8u5k { height: var(--framer-aspect-ratio-supported, 503px); }\",\".framer-Id4ss.framer-v-c1kbkn .framer-ki2xqm { padding: 0px 0px 0px 120px; }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 593\n * @framerIntrinsicWidth 1200\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"auto\"]},\"UZaMPQL5k\":{\"layout\":[\"fixed\",\"auto\"]},\"sJzj2lUPf\":{\"layout\":[\"fixed\",\"auto\"]},\"eBfPi01ks\":{\"layout\":[\"fixed\",\"auto\"]}}}\n * @framerVariables {\"NZ4H4somw\":\"privacyPolicy\",\"xJevYXpOP\":\"paaceTCs\",\"U_NQ5RFmW\":\"partnerTCs\",\"vChcac1Wg\":\"tikTokLink\",\"Sd_c0aKoZ\":\"instagramLink\",\"b9YW8J8m1\":\"linkedInLink\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerRfEppRLbS=withCSS(Component,css,\"framer-Id4ss\");export default FramerRfEppRLbS;FramerRfEppRLbS.displayName=\"Footer\";FramerRfEppRLbS.defaultProps={height:593,width:1200};addPropertyControls(FramerRfEppRLbS,{variant:{options:[\"OGmBc9r72\",\"UZaMPQL5k\",\"sJzj2lUPf\",\"eBfPi01ks\"],optionTitles:[\"Desktop\",\"Tablet\",\"Mobile\",\"Large Desktop\"],title:\"Variant\",type:ControlType.Enum},NZ4H4somw:{title:\"Privacy Policy\",type:ControlType.Link},xJevYXpOP:{title:\"Paace T&Cs\",type:ControlType.Link},U_NQ5RFmW:{title:\"Partner T&Cs\",type:ControlType.Link},vChcac1Wg:{description:\"\",title:\"Tik Tok Link\",type:ControlType.Link},Sd_c0aKoZ:{title:\"Instagram Link\",type:ControlType.Link},b9YW8J8m1:{title:\"LinkedIn Link\",type:ControlType.Link}});addFonts(FramerRfEppRLbS,[{explicitInter:true,fonts:[{cssFamilyName:\"Zalando Sans\",source:\"google\",style:\"normal\",uiFamilyName:\"Zalando Sans\",url:\"https://fonts.gstatic.com/s/zalandosans/v2/FwZ67-Asy1Em_lq_aK3hpr-RrktWHD54lnesO2lsVvrnhgw8zPbXoT_cODkWYUMEgzhp.woff2\",weight:\"700\"},{cssFamilyName:\"Zalando Sans\",source:\"google\",style:\"normal\",uiFamilyName:\"Zalando Sans\",url:\"https://fonts.gstatic.com/s/zalandosans/v2/FwZ67-Asy1Em_lq_aK3hpr-RrktWHD54lnesO2lsVvrnhgw8zPbXoT87PzkWYUMEgzhp.woff2\",weight:\"400\"},{cssFamilyName:\"Zalando Sans SemiExpanded\",source:\"google\",style:\"normal\",uiFamilyName:\"Zalando Sans SemiExpanded\",url:\"https://fonts.gstatic.com/s/zalandosanssemiexpanded/v2/6qLhKYcHuh3msE9OaXROVVclRRa-ClZSEipa2hrEzR2jhk_n3T6ACkA8FXP4Fs7bOSO7.woff2\",weight:\"700\"}]},...ButtonFonts,...ButtonAltFonts,...PaaceIconFonts,...PaaceLogoFonts],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerRfEppRLbS\",\"slots\":[],\"annotations\":{\"framerComponentViewportWidth\":\"true\",\"framerIntrinsicHeight\":\"593\",\"framerContractVersion\":\"1\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"UZaMPQL5k\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"sJzj2lUPf\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"eBfPi01ks\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]}}}\",\"framerAutoSizeImages\":\"true\",\"framerVariables\":\"{\\\"NZ4H4somw\\\":\\\"privacyPolicy\\\",\\\"xJevYXpOP\\\":\\\"paaceTCs\\\",\\\"U_NQ5RFmW\\\":\\\"partnerTCs\\\",\\\"vChcac1Wg\\\":\\\"tikTokLink\\\",\\\"Sd_c0aKoZ\\\":\\\"instagramLink\\\",\\\"b9YW8J8m1\\\":\\\"linkedInLink\\\"}\",\"framerIntrinsicWidth\":\"1200\",\"framerImmutableVariables\":\"true\",\"framerDisplayContentsDiv\":\"false\",\"framerColorSyntax\":\"true\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./RfEppRLbS.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\"}}}}","/*\n * index (framer/default-utils@0.45.0)\n *\n * Learn More: https://www.framer.com/asset-urls\n */\n\nexport * from \"https://framerusercontent.com/modules/G4IfyjvwmaeSBpdb4TWu/OIjZRBmWDcIE2B6qgG1j/index.js\"\n","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","/*\n * useAutoMotionValue (framer/useAutoMotionValue@0.3.0)\n *\n * Learn More: https://www.framer.com/asset-urls\n */\n\nexport * from \"https://framerusercontent.com/modules/kNDwabfjDEb3vUxkQlZS/V4SPg9g59hF1vFH3ZTF0/useAutoMotionValue.js\"\n","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://misc.framerstatic.com/lottie/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===\"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 _animationInfo_current_animation,_animationInfo_current;return(_animationInfo_current=animationInfo.current)===null||_animationInfo_current===void 0?void 0:(_animationInfo_current_animation=_animationInfo_current.animation)===null||_animationInfo_current_animation===void 0?void 0:_animationInfo_current_animation.play();};const pause=()=>{var _animationInfo_current_animation,_animationInfo_current;return(_animationInfo_current=animationInfo.current)===null||_animationInfo_current===void 0?void 0:(_animationInfo_current_animation=_animationInfo_current.animation)===null||_animationInfo_current_animation===void 0?void 0:_animationInfo_current_animation.pause();};const destroy=()=>{var _animationInfo_current_animation,_animationInfo_current;return(_animationInfo_current=animationInfo.current)===null||_animationInfo_current===void 0?void 0:(_animationInfo_current_animation=_animationInfo_current.animation)===null||_animationInfo_current_animation===void 0?void 0:_animationInfo_current_animation.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===\"URL\")dataUrl=srcUrl;if(srcType===\"Upload\")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: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 _animationInfo_current;if(!((_animationInfo_current=animationInfo.current)===null||_animationInfo_current===void 0?void 0:_animationInfo_current.animation))return;animationInfo.current.animation.setSpeed(speed);scrubTo(progress.get(),true);},[speed]);useEffect(()=>{var _animationInfo_current;if(!((_animationInfo_current=animationInfo.current)===null||_animationInfo_current===void 0?void 0:_animationInfo_current.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:\"URL\",pauseOnCanvas:true,srcUrl:placeholderUrl,progress:0,poster:\"Auto\",posterProgress:0};addPropertyControls(Lottie,{srcType:{type:ControlType.Enum,displaySegmentedControl:true,title:\"Source\",options:[\"URL\",\"Upload\"]},srcUrl:{type:ControlType.String,title:\"URL\",placeholder:\"../example.json\",hidden:props=>props.srcType===\"Upload\"},srcFile:{type:ControlType.File,title:\"File\",allowedFileTypes:[\"json\"],hidden:props=>props.srcType===\"URL\"},playing:{type:ControlType.Boolean,title:\"Playing\",enabledTitle:\"Yes\",disabledTitle:\"No\"},// Temporarily disabling for perf\npauseOnCanvas:{type:ControlType.Boolean,title:\"Canvas\",disabledTitle:\"Play\",enabledTitle:\"Pause\",hidden:props=>props.playing===false},loop:{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:[\"Auto\",\"Custom\"],displaySegmentedControl:true},posterProgress:{title:\" \",type:ControlType.Number,max:100,min:0,unit:\"%\",hidden:({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\",\"framerIntrinsicWidth\":\"200\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Lottie.map","// Generated by Framer (569fd08)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,ControlType,cx,getFonts,SmartComponentScopedContainer,useActiveVariantCallback,useComponentViewport,useLocaleInfo,useOnVariantChange,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import{Lottie}from\"https://framerusercontent.com/modules/YbkSqZ7STzW5WsMb1yan/RLfsHd78NBd0kbafA9hd/Lottie.js\";const LottieFonts=getFonts(Lottie);const cycleOrder=[\"KkGl5c4xx\",\"r_sEJ9Wbf\",\"UMgUah9E7\"];const serializationHash=\"framer-BHDe6\";const variantClassNames={KkGl5c4xx:\"framer-v-1wba95r\",r_sEJ9Wbf:\"framer-v-12p7ksh\",UMgUah9E7:\"framer-v-mt883s\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={duration:0,type:\"tween\"};const transition2={delay:0,duration:1.2,ease:[.55,.01,.88,.77],type:\"tween\"};const transition3={delay:0,duration:1,ease:[.55,.01,.88,.77],type:\"tween\"};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={Appear:\"UMgUah9E7\",Desktop:\"KkGl5c4xx\",Leave:\"r_sEJ9Wbf\"};const getProps=({height,id,width,...props})=>{return{...props,variant:humanReadableVariantMap[props.variant]??props.variant??\"KkGl5c4xx\"};};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:\"KkGl5c4xx\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const{activeVariantCallback,delay}=useActiveVariantCallback(baseVariant);const onAppear1v6sk9i=activeVariantCallback(async(...args)=>{setVariant(\"UMgUah9E7\");});const onAppear21exfc=activeVariantCallback(async(...args)=>{await delay(()=>setVariant(\"r_sEJ9Wbf\"),1e3);});useOnVariantChange(baseVariant,{default:onAppear1v6sk9i,r_sEJ9Wbf:undefined,UMgUah9E7:onAppear21exfc});const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);const isDisplayed=()=>{if([\"r_sEJ9Wbf\",\"UMgUah9E7\"].includes(baseVariant))return true;return false;};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.div,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-1wba95r\",className,classNames),\"data-framer-name\":\"Desktop\",\"data-highlight\":true,layoutDependency:layoutDependency,layoutId:\"KkGl5c4xx\",ref:refBinding,style:{...style},...addPropertyOverrides({r_sEJ9Wbf:{\"data-framer-name\":\"Leave\",\"data-highlight\":undefined},UMgUah9E7:{\"data-framer-name\":\"Appear\"}},baseVariant,gestureVariant),children:isDisplayed()&&/*#__PURE__*/_jsx(Transition,{...addPropertyOverrides({r_sEJ9Wbf:{value:transition2}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(motion.div,{className:\"framer-8ogzm0\",\"data-framer-name\":\"Outer Ring\",layoutDependency:layoutDependency,layoutId:\"AP74g0DGz\",style:{backgroundColor:\"var(--token-5761bd89-c3be-4f67-87d8-dc85135d2783, rgb(218, 250, 255))\",mask:\"radial-gradient(129% 91% at 39.7% 31.900000000000002%, rgb(0, 0, 0) 0%, rgb(0, 0, 0) 99.99%, rgba(0, 0, 0, 0) 100%) intersect, linear-gradient(0deg, rgb(0, 0, 0) 0%, rgba(0,0,0,1) 100%) add\",WebkitMask:\"radial-gradient(129% 91% at 39.7% 31.900000000000002%, rgb(0, 0, 0) 0%, rgb(0, 0, 0) 99.99%, rgba(0, 0, 0, 0) 100%) intersect, linear-gradient(0deg, rgb(0, 0, 0) 0%, rgba(0,0,0,1) 100%) add\"},variants:{r_sEJ9Wbf:{backgroundColor:\"var(--token-0709f198-420c-4f9d-986e-3d4e155f33d3, rgb(71, 230, 255))\",mask:\"radial-gradient(129% 91% at -55.800000000000004% -112.00000000000001%, rgb(0, 0, 0) 0%, rgb(0, 0, 0) 99.99%, rgba(0, 0, 0, 0) 100%) intersect, linear-gradient(0deg, rgb(0, 0, 0) 0%, rgba(0,0,0,1) 100%) add\",WebkitMask:\"radial-gradient(129% 91% at -55.800000000000004% -112.00000000000001%, rgb(0, 0, 0) 0%, rgb(0, 0, 0) 99.99%, rgba(0, 0, 0, 0) 100%) intersect, linear-gradient(0deg, rgb(0, 0, 0) 0%, rgba(0,0,0,1) 100%) add\"}},children:/*#__PURE__*/_jsx(Transition,{...addPropertyOverrides({r_sEJ9Wbf:{value:transition3}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(motion.div,{className:\"framer-iqgsg\",\"data-framer-name\":\"Inner Ring\",layoutDependency:layoutDependency,layoutId:\"w1RUaQlMy\",style:{backgroundColor:\"var(--token-225e9e61-0e84-4e47-856f-3c1fe65ec629, rgb(4, 47, 61))\",mask:\"radial-gradient(129% 91% at 39.7% 31.900000000000002%, rgb(0, 0, 0) 0%, rgb(0, 0, 0) 99.99%, rgba(0, 0, 0, 0) 100%) intersect, linear-gradient(0deg, rgb(0, 0, 0) 0%, rgba(0,0,0,1) 100%) add\",WebkitMask:\"radial-gradient(129% 91% at 39.7% 31.900000000000002%, rgb(0, 0, 0) 0%, rgb(0, 0, 0) 99.99%, rgba(0, 0, 0, 0) 100%) intersect, linear-gradient(0deg, rgb(0, 0, 0) 0%, rgba(0,0,0,1) 100%) add\"},variants:{r_sEJ9Wbf:{mask:\"radial-gradient(129% 91% at -56.3% -112.00000000000001%, rgb(0, 0, 0) 0%, rgb(0, 0, 0) 99.99%, rgba(0, 0, 0, 0) 100%) intersect, linear-gradient(0deg, rgb(0, 0, 0) 0%, rgba(0,0,0,1) 100%) add\",WebkitMask:\"radial-gradient(129% 91% at -56.3% -112.00000000000001%, rgb(0, 0, 0) 0%, rgb(0, 0, 0) 99.99%, rgba(0, 0, 0, 0) 100%) intersect, linear-gradient(0deg, rgb(0, 0, 0) 0%, rgba(0,0,0,1) 100%) add\"}},children:/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-xpoz8x-container\",isAuthoredByUser:true,isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"dAGqK8LjK-container\",nodeId:\"dAGqK8LjK\",rendersWithMotion:true,scopeId:\"vL4UZmzdE\",children:/*#__PURE__*/_jsx(Lottie,{height:\"100%\",id:\"dAGqK8LjK\",isForwardsDirection:true,layoutId:\"dAGqK8LjK\",loop:false,pauseOnCanvas:true,playing:true,poster:\"Auto\",posterProgress:0,progress:0,speed:1,srcFile:\"https://framerusercontent.com/assets/EToTWrUyPTc5kdslYXYcpAMpo.json\",srcType:\"Upload\",srcUrl:\"https://misc.framerstatic.com/lottie/logo.json\",style:{width:\"100%\"},width:\"100%\"})})})})})})})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-BHDe6.framer-1ilv6ox, .framer-BHDe6 .framer-1ilv6ox { display: block; }\",\".framer-BHDe6.framer-1wba95r { align-content: center; align-items: center; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: 800px; justify-content: center; overflow: visible; padding: 0px; position: relative; width: 1200px; }\",\".framer-BHDe6 .framer-8ogzm0 { flex: none; height: calc(var(--framer-viewport-height, 100vh) * 1); left: 0px; overflow: visible; pointer-events: none; position: absolute; right: 0px; top: 0px; z-index: 1; }\",\".framer-BHDe6 .framer-iqgsg { align-content: center; align-items: center; bottom: 0px; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 10px; justify-content: center; left: 0px; overflow: visible; padding: 0px; position: absolute; top: 0px; width: 100%; z-index: 1; }\",\".framer-BHDe6 .framer-xpoz8x-container { flex: none; height: auto; position: relative; width: 90px; }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 800\n * @framerIntrinsicWidth 1200\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"fixed\"]},\"r_sEJ9Wbf\":{\"layout\":[\"fixed\",\"fixed\"]},\"UMgUah9E7\":{\"layout\":[\"fixed\",\"fixed\"]}}}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramervL4UZmzdE=withCSS(Component,css,\"framer-BHDe6\");export default FramervL4UZmzdE;FramervL4UZmzdE.displayName=\"Preloader (simple)\";FramervL4UZmzdE.defaultProps={height:800,width:1200};addPropertyControls(FramervL4UZmzdE,{variant:{options:[\"KkGl5c4xx\",\"r_sEJ9Wbf\",\"UMgUah9E7\"],optionTitles:[\"Desktop\",\"Leave\",\"Appear\"],title:\"Variant\",type:ControlType.Enum}});addFonts(FramervL4UZmzdE,[{explicitInter:true,fonts:[]},...LottieFonts],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramervL4UZmzdE\",\"slots\":[],\"annotations\":{\"framerComponentViewportWidth\":\"true\",\"framerContractVersion\":\"1\",\"framerDisplayContentsDiv\":\"false\",\"framerAutoSizeImages\":\"true\",\"framerIntrinsicHeight\":\"800\",\"framerColorSyntax\":\"true\",\"framerIntrinsicWidth\":\"1200\",\"framerImmutableVariables\":\"true\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"r_sEJ9Wbf\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"UMgUah9E7\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]}}}\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./vL4UZmzdE.map","var e=parse;var t=serialize;var i=Object.prototype.toString;var o=/^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;\n/**\n * Parse a cookie header.\n *\n * Parse the given cookie header string into an object\n * The object has the various cookies as keys(names) => values\n *\n * @param {string} str\n * @param {object} [options]\n * @return {object}\n * @public\n */function parse(e,t){if(typeof e!==\"string\")throw new TypeError(\"argument str must be a string\");var i={};var o=t||{};var n=o.decode||decode;var s=0;while(s<e.length){var r=e.indexOf(\"=\",s);if(r===-1)break;var a=e.indexOf(\";\",s);if(a===-1)a=e.length;else if(a<r){s=e.lastIndexOf(\";\",r-1)+1;continue}var c=e.slice(s,r).trim();if(void 0===i[c]){var h=e.slice(r+1,a).trim();h.charCodeAt(0)===34&&(h=h.slice(1,-1));i[c]=tryDecode(h,n)}s=a+1}return i}\n/**\n * Serialize data into a cookie header.\n *\n * Serialize the a name value pair into a cookie string suitable for\n * http headers. An optional options object specified cookie parameters.\n *\n * serialize('foo', 'bar', { httpOnly: true })\n *   => \"foo=bar; httpOnly\"\n *\n * @param {string} name\n * @param {string} val\n * @param {object} [options]\n * @return {string}\n * @public\n */function serialize(e,t,i){var n=i||{};var s=n.encode||encode;if(typeof s!==\"function\")throw new TypeError(\"option encode is invalid\");if(!o.test(e))throw new TypeError(\"argument name is invalid\");var r=s(t);if(r&&!o.test(r))throw new TypeError(\"argument val is invalid\");var a=e+\"=\"+r;if(null!=n.maxAge){var c=n.maxAge-0;if(isNaN(c)||!isFinite(c))throw new TypeError(\"option maxAge is invalid\");a+=\"; Max-Age=\"+Math.floor(c)}if(n.domain){if(!o.test(n.domain))throw new TypeError(\"option domain is invalid\");a+=\"; Domain=\"+n.domain}if(n.path){if(!o.test(n.path))throw new TypeError(\"option path is invalid\");a+=\"; Path=\"+n.path}if(n.expires){var h=n.expires;if(!isDate(h)||isNaN(h.valueOf()))throw new TypeError(\"option expires is invalid\");a+=\"; Expires=\"+h.toUTCString()}n.httpOnly&&(a+=\"; HttpOnly\");n.secure&&(a+=\"; Secure\");n.partitioned&&(a+=\"; Partitioned\");if(n.priority){var d=typeof n.priority===\"string\"?n.priority.toLowerCase():n.priority;switch(d){case\"low\":a+=\"; Priority=Low\";break;case\"medium\":a+=\"; Priority=Medium\";break;case\"high\":a+=\"; Priority=High\";break;default:throw new TypeError(\"option priority is invalid\")}}if(n.sameSite){var l=typeof n.sameSite===\"string\"?n.sameSite.toLowerCase():n.sameSite;switch(l){case true:a+=\"; SameSite=Strict\";break;case\"lax\":a+=\"; SameSite=Lax\";break;case\"strict\":a+=\"; SameSite=Strict\";break;case\"none\":a+=\"; SameSite=None\";break;default:throw new TypeError(\"option sameSite is invalid\")}}return a}\n/**\n * URL-decode string value. Optimized to skip native call when no %.\n *\n * @param {string} str\n * @returns {string}\n */function decode(e){return e.indexOf(\"%\")!==-1?decodeURIComponent(e):e}\n/**\n * URL-encode value.\n *\n * @param {string} val\n * @returns {string}\n */function encode(e){return encodeURIComponent(e)}\n/**\n * Determine if value is a Date.\n *\n * @param {*} val\n * @private\n */function isDate(e){return i.call(e)===\"[object Date]\"||e instanceof Date}\n/**\n * Try decoding a string using a decoding function.\n *\n * @param {string} str\n * @param {function} decode\n * @private\n */function tryDecode(e,t){try{return t(e)}catch(t){return e}}function hasDocumentCookie(){const e=typeof global===\"undefined\"?void 0:global.TEST_HAS_DOCUMENT_COOKIE;return typeof e===\"boolean\"?e:typeof document===\"object\"&&typeof document.cookie===\"string\"}function parseCookies(t){return typeof t===\"string\"?e(t):typeof t===\"object\"&&t!==null?t:{}}function readCookie(e,t={}){const i=cleanupCookieValue(e);if(!t.doNotParse)try{return JSON.parse(i)}catch(e){}return e}function cleanupCookieValue(e){return e&&e[0]===\"j\"&&e[1]===\":\"?e.substr(2):e}class Cookies{constructor(t,i={}){this.changeListeners=[];this.HAS_DOCUMENT_COOKIE=false;this.update=()=>{if(!this.HAS_DOCUMENT_COOKIE)return;const t=this.cookies;this.cookies=e(document.cookie);this._checkChanges(t)};const o=typeof document===\"undefined\"?\"\":document.cookie;this.cookies=parseCookies(t||o);this.defaultSetOptions=i;this.HAS_DOCUMENT_COOKIE=hasDocumentCookie()}_emitChange(e){for(let t=0;t<this.changeListeners.length;++t)this.changeListeners[t](e)}_checkChanges(e){const t=new Set(Object.keys(e).concat(Object.keys(this.cookies)));t.forEach((t=>{e[t]!==this.cookies[t]&&this._emitChange({name:t,value:readCookie(this.cookies[t])})}))}_startPolling(){this.pollingInterval=setInterval(this.update,300)}_stopPolling(){this.pollingInterval&&clearInterval(this.pollingInterval)}get(e,t={}){t.doNotUpdate||this.update();return readCookie(this.cookies[e],t)}getAll(e={}){e.doNotUpdate||this.update();const t={};for(let i in this.cookies)t[i]=readCookie(this.cookies[i],e);return t}set(e,i,o){o=o?Object.assign(Object.assign({},this.defaultSetOptions),o):this.defaultSetOptions;const n=typeof i===\"string\"?i:JSON.stringify(i);this.cookies=Object.assign(Object.assign({},this.cookies),{[e]:n});this.HAS_DOCUMENT_COOKIE&&(document.cookie=t(e,n,o));this._emitChange({name:e,value:i,options:o})}remove(e,i){const o=i=Object.assign(Object.assign(Object.assign({},this.defaultSetOptions),i),{expires:new Date(1970,1,1,0,0,1),maxAge:0});this.cookies=Object.assign({},this.cookies);delete this.cookies[e];this.HAS_DOCUMENT_COOKIE&&(document.cookie=t(e,\"\",o));this._emitChange({name:e,value:void 0,options:i})}addChangeListener(e){this.changeListeners.push(e);this.HAS_DOCUMENT_COOKIE&&this.changeListeners.length===1&&(typeof window===\"object\"&&\"cookieStore\"in window?window.cookieStore.addEventListener(\"change\",this.update):this._startPolling())}removeChangeListener(e){const t=this.changeListeners.indexOf(e);t>=0&&this.changeListeners.splice(t,1);this.HAS_DOCUMENT_COOKIE&&this.changeListeners.length===0&&(typeof window===\"object\"&&\"cookieStore\"in window?window.cookieStore.removeEventListener(\"change\",this.update):this._stopPolling())}}export{Cookies as default};\n//# sourceMappingURL=index.mjs.map\n","import e from\"universal-cookie\";export{default as Cookies}from\"universal-cookie\";import*as r from\"react\";import{useContext as t,useState as o,useLayoutEffect as n,useMemo as s}from\"react\";const a=r.createContext(new e);const{Provider:i,Consumer:c}=a;class CookiesProvider extends r.Component{constructor(r){super(r);r.cookies?this.cookies=r.cookies:this.cookies=new e(void 0,r.defaultSetOptions)}render(){return r.createElement(i,{value:this.cookies},this.props.children)}}function __rest(e,r){var t={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&r.indexOf(o)<0&&(t[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols===\"function\"){var n=0;for(o=Object.getOwnPropertySymbols(e);n<o.length;n++)r.indexOf(o[n])<0&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(t[o[n]]=e[o[n]])}return t}typeof SuppressedError===\"function\"?SuppressedError:function(e,r,t){var o=new Error(t);return o.name=\"SuppressedError\",o.error=e,o.suppressed=r,o};function getDefaultExportFromCjs(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,\"default\")?e.default:e}var u={exports:{}};var f={};\n/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */var p;function requireReactIs_production_min(){if(p)return f;p=1;var e=\"function\"===typeof Symbol&&Symbol.for,r=e?Symbol.for(\"react.element\"):60103,t=e?Symbol.for(\"react.portal\"):60106,o=e?Symbol.for(\"react.fragment\"):60107,n=e?Symbol.for(\"react.strict_mode\"):60108,s=e?Symbol.for(\"react.profiler\"):60114,a=e?Symbol.for(\"react.provider\"):60109,i=e?Symbol.for(\"react.context\"):60110,c=e?Symbol.for(\"react.async_mode\"):60111,u=e?Symbol.for(\"react.concurrent_mode\"):60111,l=e?Symbol.for(\"react.forward_ref\"):60112,y=e?Symbol.for(\"react.suspense\"):60113,d=e?Symbol.for(\"react.suspense_list\"):60120,m=e?Symbol.for(\"react.memo\"):60115,v=e?Symbol.for(\"react.lazy\"):60116,b=e?Symbol.for(\"react.block\"):60121,S=e?Symbol.for(\"react.fundamental\"):60117,C=e?Symbol.for(\"react.responder\"):60118,$=e?Symbol.for(\"react.scope\"):60119;function z(e){if(\"object\"===typeof e&&null!==e){var f=e.$$typeof;switch(f){case r:switch(e=e.type,e){case c:case u:case o:case s:case n:case y:return e;default:switch(e=e&&e.$$typeof,e){case i:case l:case v:case m:case a:return e;default:return f}}case t:return f}}}function A(e){return z(e)===u}f.AsyncMode=c;f.ConcurrentMode=u;f.ContextConsumer=i;f.ContextProvider=a;f.Element=r;f.ForwardRef=l;f.Fragment=o;f.Lazy=v;f.Memo=m;f.Portal=t;f.Profiler=s;f.StrictMode=n;f.Suspense=y;f.isAsyncMode=function(e){return A(e)||z(e)===c};f.isConcurrentMode=A;f.isContextConsumer=function(e){return z(e)===i};f.isContextProvider=function(e){return z(e)===a};f.isElement=function(e){return\"object\"===typeof e&&null!==e&&e.$$typeof===r};f.isForwardRef=function(e){return z(e)===l};f.isFragment=function(e){return z(e)===o};f.isLazy=function(e){return z(e)===v};f.isMemo=function(e){return z(e)===m};f.isPortal=function(e){return z(e)===t};f.isProfiler=function(e){return z(e)===s};f.isStrictMode=function(e){return z(e)===n};f.isSuspense=function(e){return z(e)===y};f.isValidElementType=function(e){return\"string\"===typeof e||\"function\"===typeof e||e===o||e===u||e===s||e===n||e===y||e===d||\"object\"===typeof e&&null!==e&&(e.$$typeof===v||e.$$typeof===m||e.$$typeof===a||e.$$typeof===i||e.$$typeof===l||e.$$typeof===S||e.$$typeof===C||e.$$typeof===$||e.$$typeof===b)};f.typeOf=z;return f}var l={};\n/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */var y;function requireReactIs_development(){if(y)return l;y=1;process.env.NODE_ENV!==\"production\"&&function(){var e=typeof Symbol===\"function\"&&Symbol.for;var r=e?Symbol.for(\"react.element\"):60103;var t=e?Symbol.for(\"react.portal\"):60106;var o=e?Symbol.for(\"react.fragment\"):60107;var n=e?Symbol.for(\"react.strict_mode\"):60108;var s=e?Symbol.for(\"react.profiler\"):60114;var a=e?Symbol.for(\"react.provider\"):60109;var i=e?Symbol.for(\"react.context\"):60110;var c=e?Symbol.for(\"react.async_mode\"):60111;var u=e?Symbol.for(\"react.concurrent_mode\"):60111;var f=e?Symbol.for(\"react.forward_ref\"):60112;var p=e?Symbol.for(\"react.suspense\"):60113;var y=e?Symbol.for(\"react.suspense_list\"):60120;var d=e?Symbol.for(\"react.memo\"):60115;var m=e?Symbol.for(\"react.lazy\"):60116;var v=e?Symbol.for(\"react.block\"):60121;var b=e?Symbol.for(\"react.fundamental\"):60117;var S=e?Symbol.for(\"react.responder\"):60118;var C=e?Symbol.for(\"react.scope\"):60119;function isValidElementType(e){return typeof e===\"string\"||typeof e===\"function\"||e===o||e===u||e===s||e===n||e===p||e===y||typeof e===\"object\"&&e!==null&&(e.$$typeof===m||e.$$typeof===d||e.$$typeof===a||e.$$typeof===i||e.$$typeof===f||e.$$typeof===b||e.$$typeof===S||e.$$typeof===C||e.$$typeof===v)}function typeOf(e){if(typeof e===\"object\"&&e!==null){var l=e.$$typeof;switch(l){case r:var y=e.type;switch(y){case c:case u:case o:case s:case n:case p:return y;default:var v=y&&y.$$typeof;switch(v){case i:case f:case m:case d:case a:return v;default:return l}}case t:return l}}}var $=c;var h=u;var g=i;var w=a;var O=r;var P=f;var k=o;var x=m;var M=d;var E=t;var _=s;var j=n;var R=p;var N=false;function isAsyncMode(e){if(!N){N=true;console.warn(\"The ReactIs.isAsyncMode() alias has been deprecated, and will be removed in React 17+. Update your code to use ReactIs.isConcurrentMode() instead. It has the exact same API.\")}return isConcurrentMode(e)||typeOf(e)===c}function isConcurrentMode(e){return typeOf(e)===u}function isContextConsumer(e){return typeOf(e)===i}function isContextProvider(e){return typeOf(e)===a}function isElement(e){return typeof e===\"object\"&&e!==null&&e.$$typeof===r}function isForwardRef(e){return typeOf(e)===f}function isFragment(e){return typeOf(e)===o}function isLazy(e){return typeOf(e)===m}function isMemo(e){return typeOf(e)===d}function isPortal(e){return typeOf(e)===t}function isProfiler(e){return typeOf(e)===s}function isStrictMode(e){return typeOf(e)===n}function isSuspense(e){return typeOf(e)===p}l.AsyncMode=$;l.ConcurrentMode=h;l.ContextConsumer=g;l.ContextProvider=w;l.Element=O;l.ForwardRef=P;l.Fragment=k;l.Lazy=x;l.Memo=M;l.Portal=E;l.Profiler=_;l.StrictMode=j;l.Suspense=R;l.isAsyncMode=isAsyncMode;l.isConcurrentMode=isConcurrentMode;l.isContextConsumer=isContextConsumer;l.isContextProvider=isContextProvider;l.isElement=isElement;l.isForwardRef=isForwardRef;l.isFragment=isFragment;l.isLazy=isLazy;l.isMemo=isMemo;l.isPortal=isPortal;l.isProfiler=isProfiler;l.isStrictMode=isStrictMode;l.isSuspense=isSuspense;l.isValidElementType=isValidElementType;l.typeOf=typeOf}();return l}process.env.NODE_ENV===\"production\"?u.exports=requireReactIs_production_min():u.exports=requireReactIs_development();var d=u.exports;var m=d;var v={childContextTypes:true,contextType:true,contextTypes:true,defaultProps:true,displayName:true,getDefaultProps:true,getDerivedStateFromError:true,getDerivedStateFromProps:true,mixins:true,propTypes:true,type:true};var b={name:true,length:true,prototype:true,caller:true,callee:true,arguments:true,arity:true};var S={$$typeof:true,render:true,defaultProps:true,displayName:true,propTypes:true};var C={$$typeof:true,compare:true,defaultProps:true,displayName:true,propTypes:true,type:true};var $={};$[m.ForwardRef]=S;$[m.Memo]=C;function getStatics(e){return m.isMemo(e)?C:$[e.$$typeof]||v}var h=Object.defineProperty;var g=Object.getOwnPropertyNames;var w=Object.getOwnPropertySymbols;var O=Object.getOwnPropertyDescriptor;var P=Object.getPrototypeOf;var k=Object.prototype;function hoistNonReactStatics(e,r,t){if(typeof r!==\"string\"){if(k){var o=P(r);o&&o!==k&&hoistNonReactStatics(e,o,t)}var n=g(r);w&&(n=n.concat(w(r)));var s=getStatics(e);var a=getStatics(r);for(var i=0;i<n.length;++i){var c=n[i];if(!b[c]&&!(t&&t[c])&&!(a&&a[c])&&!(s&&s[c])){var u=O(r,c);try{h(e,c,u)}catch(e){}}}}return e}var x=hoistNonReactStatics;var M=getDefaultExportFromCjs(x);function withCookies(e){const t=e.displayName||e.name;class CookieWrapper extends r.Component{constructor(){super(...arguments);this.onChange=()=>{this.forceUpdate()}}listen(){this.props.cookies.addChangeListener(this.onChange)}unlisten(e){(e||this.props.cookies).removeChangeListener(this.onChange)}componentDidMount(){this.listen()}componentDidUpdate(e){if(e.cookies!==this.props.cookies){this.unlisten(e.cookies);this.listen()}}componentWillUnmount(){this.unlisten()}render(){const t=this.props,{forwardedRef:o,cookies:n}=t,s=__rest(t,[\"forwardedRef\",\"cookies\"]);const a=n.getAll({doNotUpdate:true});return r.createElement(e,Object.assign({},s,{ref:o,cookies:n,allCookies:a}))}}CookieWrapper.displayName=`withCookies(${t})`;CookieWrapper.WrappedComponent=e;const o=r.forwardRef(((e,t)=>r.createElement(c,null,(o=>r.createElement(CookieWrapper,Object.assign({cookies:o},e,{forwardedRef:t}))))));o.displayName=CookieWrapper.displayName;o.WrappedComponent=CookieWrapper.WrappedComponent;return M(o,e)}function isInBrowser(){return typeof window!==\"undefined\"&&typeof window.document!==\"undefined\"&&typeof window.document.createElement!==\"undefined\"}function useCookies(e){const r=t(a);if(!r)throw new Error(\"Missing <CookiesProvider>\");const[i,c]=o((()=>r.getAll({doNotUpdate:true})));isInBrowser()&&n((()=>{function onChange(){const t=r.getAll({doNotUpdate:true});shouldUpdate(e||null,t,i)&&c(t)}r.addChangeListener(onChange);return()=>{r.removeChangeListener(onChange)}}),[r,i]);const u=s((()=>r.set.bind(r)),[r]);const f=s((()=>r.remove.bind(r)),[r]);const p=s((()=>r.update.bind(r)),[r]);return[i,u,f,p]}function shouldUpdate(e,r,t){if(!e)return true;for(let o of e)if(r[o]!==t[o])return true;return false}export{CookiesProvider,useCookies,withCookies};\n//# sourceMappingURL=index.mjs.map\n","import{jsx as _jsx}from\"react/jsx-runtime\";import{useState,useRef,useEffect}from\"react\";import{useCookies}from\"react-cookie\";import{useInView}from\"framer-motion\";function showOnce(Component,expiryHours){return props=>{const COOKIE_NAME=`preload_${props.id}`;const ref=useRef(null);const isInView=useInView(ref);const[cookies,setCookie]=useCookies([COOKIE_NAME]);const[hasVisited,setHasVisited]=useState(false);useEffect(()=>{setHasVisited(cookies[COOKIE_NAME]||false);},[]);useEffect(()=>{if(isInView){setCookie(COOKIE_NAME,true,{expires:getExpirationDate(expiryHours)});}},[isInView]);// Apply all props directly to Component to preserve external styling and sizing\nreturn!hasVisited?/*#__PURE__*/_jsx(Component,{...props,ref:ref}):null;};}const getExpirationDate=hours=>{const expirationDate=new Date;expirationDate.setTime(expirationDate.getTime()+hours*60*60*1e3);return expirationDate;};export const showOncePerHour=Component=>showOnce(Component,1);export const showOncePerDay=Component=>showOnce(Component,24);export const showOncePerWeek=Component=>showOnce(Component,24*7);export const showOncePerMonth=Component=>showOnce(Component,24*30);\nexport const __FramerMetadata__ = {\"exports\":{\"showOncePerHour\":{\"type\":\"reactHoc\",\"name\":\"showOncePerHour\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"showOncePerDay\":{\"type\":\"reactHoc\",\"name\":\"showOncePerDay\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"showOncePerWeek\":{\"type\":\"reactHoc\",\"name\":\"showOncePerWeek\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"showOncePerMonth\":{\"type\":\"reactHoc\",\"name\":\"showOncePerMonth\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ShowOnce.map","// Generated by Framer (c0f92f4)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,Container,cx,GeneratedComponentContext,getFonts,getPropertyControls,PropertyOverrides,RenderTarget,ResolveLinks,useCustomCursors,useHydratedBreakpointVariants,useIsOnFramerCanvas,useLocaleInfo,useRouter,withCodeBoundaryForOverrides,withCSS,withMappedReactProps}from\"framer\";import{LayoutGroup,motion}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import Lenis from\"https://framerusercontent.com/modules/bSeEZJm22jsjERCOGQvq/JvJGH52KIOlGPmaUpdkl/Lenis.js\";import Navigation from\"#framer/local/canvasComponent/q2fHXJfMv/q2fHXJfMv.js\";import Footer from\"#framer/local/canvasComponent/RfEppRLbS/RfEppRLbS.js\";import PreloaderSimple,*as PreloaderSimpleInfo from\"#framer/local/canvasComponent/vL4UZmzdE/vL4UZmzdE.js\";import{showOncePerDay}from\"#framer/local/codeFile/U988Pa5/ShowOnce.js\";const LenisFonts=getFonts(Lenis);const PreloaderSimpleFonts=getFonts(PreloaderSimple);const PreloaderSimpleShowOncePerDay1txro69WithMappedReactProps7yul6w=withMappedReactProps(withCodeBoundaryForOverrides(PreloaderSimple,{nodeId:\"RgLDKiJy1\",override:showOncePerDay,scopeId:\"kAsrRUY7M\"}),PreloaderSimpleInfo);const NavigationFonts=getFonts(Navigation);const FooterFonts=getFonts(Footer);const NavigationControls=getPropertyControls(Navigation);const breakpoints={A8C14a4iJ:\"(min-width: 1440px)\",P2ycjJk5W:\"(max-width: 809.98px)\",PPI4kfMqA:\"(min-width: 810px) and (max-width: 1199.98px)\",T2JsrMqWI:\"(min-width: 1200px) and (max-width: 1439.98px)\"};const isBrowser=()=>typeof document!==\"undefined\";const serializationHash=\"framer-HrIt0\";const variantClassNames={A8C14a4iJ:\"framer-v-jxeo67\",P2ycjJk5W:\"framer-v-eowuqz\",PPI4kfMqA:\"framer-v-1f4z2xx\",T2JsrMqWI:\"framer-v-1dzwv6i\"};const WseTHVtZW=undefined;const VVmu2MiT4=undefined;const breakpointRules={};const breakpointKeys=Object.keys(breakpointRules);const rules=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-HrIt0.framer-1wii21g, .framer-HrIt0 .framer-1wii21g { display: block; }\",\".framer-HrIt0.framer-1dzwv6i { align-content: center; align-items: center; background-color: var(--token-b6a1d1f8-61cc-4b74-88e3-e5fc99129757, #f8f8f8); display: flex; flex-direction: column; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: flex-start; overflow: var(--overflow-clip-fallback, clip); padding: 0px; position: relative; width: 100%; }\",\".framer-HrIt0 .framer-1dtha64-container { flex: none; height: auto; order: -1000; position: relative; width: auto; }\",\".framer-HrIt0 .framer-1txro69-container { flex: none; height: calc(min(var(--framer-viewport-height, 100vh), 100%) * 1); left: 0px; order: -999; pointer-events: none; position: var(--framer-canvas-fixed-position, fixed); top: 0px; width: 100%; z-index: 10; }\",\".framer-HrIt0 .framer-1wwxi34-container { flex: none; height: auto; left: 0px; order: -998; position: var(--framer-canvas-fixed-position, fixed); right: 0px; top: 0px; z-index: 9; }\",\".framer-HrIt0 .framer-11ps5n7 { background: transparent; flex-grow: 1; height: 0px; margin: 0px; margin-bottom: -0px; position: relative; width: 0px; }\",\".framer-HrIt0 .framer-ro10ak-container { flex: none; height: auto; order: 1004; position: relative; width: 100%; }\",'[data-layout-template=\"true\"] > #overlay { margin-bottom: -0px; }'];const mediaQueries={A8C14a4iJ:\"(min-width: 1440px)\",P2ycjJk5W:\"(max-width: 809.98px)\",PPI4kfMqA:\"(min-width: 810px) and (max-width: 1199.98px)\",T2JsrMqWI:\"(min-width: 1200px) and (max-width: 1439.98px)\"};const HTMLStyle=({value})=>{const onCanvas=useIsOnFramerCanvas();if(onCanvas)return null;return /*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:value},\"data-framer-html-style\":\"\"});};const humanReadableEnumMap={\"Variant 1\":\"QHkX6MSKV\",Active:\"Kc8EX5opH\"};const humanReadableVariantMap={\"Large Desktop\":\"A8C14a4iJ\",Desktop:\"T2JsrMqWI\",Phone:\"P2ycjJk5W\",Tablet:\"PPI4kfMqA\"};const getProps=({height,id,partnersActive,usersActive,width,...props})=>{return{...props,variant:humanReadableVariantMap[props.variant]??props.variant??\"T2JsrMqWI\",VVmu2MiT4:humanReadableEnumMap[partnersActive]??partnersActive??props.VVmu2MiT4??\"QHkX6MSKV\",WseTHVtZW:humanReadableEnumMap[usersActive]??usersActive??props.WseTHVtZW??\"QHkX6MSKV\"};};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{style,className,layoutId,variant,WseTHVtZW,VVmu2MiT4,children,...restProps}=getProps(props);const[baseVariant,hydratedBaseVariant]=useHydratedBreakpointVariants(variant,breakpoints,false);const gestureVariant=undefined;const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);const router=useRouter();useCustomCursors({});return /*#__PURE__*/_jsx(GeneratedComponentContext.Provider,{value:{isLayoutTemplate:true,primaryVariantId:\"T2JsrMqWI\",variantClassNames},children:/*#__PURE__*/_jsxs(LayoutGroup,{id:layoutId??defaultLayoutId,children:[/*#__PURE__*/_jsx(HTMLStyle,{value:\":root body { background: var(--token-b6a1d1f8-61cc-4b74-88e3-e5fc99129757, rgb(248, 248, 248)); }\"}),/*#__PURE__*/_jsxs(motion.div,{...restProps,className:cx(scopingClassNames,\"framer-1dzwv6i\",className),\"data-layout-template\":true,ref:refBinding,style:{...style},children:[/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-1dtha64-container\",isAuthoredByUser:true,isModuleExternal:true,nodeId:\"ESWhacC1V\",scopeId:\"kAsrRUY7M\",children:/*#__PURE__*/_jsx(Lenis,{height:\"100%\",id:\"ESWhacC1V\",infinite:false,intensity:10,layoutId:\"ESWhacC1V\",orientation:\"vertical\",smooth:true,width:\"100%\"})})}),/*#__PURE__*/_jsx(ComponentViewportProvider,{height:1e3,width:\"100vw\",y:0,children:/*#__PURE__*/_jsx(Container,{className:\"framer-1txro69-container\",layoutScroll:true,nodeId:\"RgLDKiJy1\",rendersWithMotion:true,scopeId:\"kAsrRUY7M\",children:/*#__PURE__*/_jsx(PreloaderSimpleShowOncePerDay1txro69WithMappedReactProps7yul6w,{height:\"100%\",id:\"RgLDKiJy1\",layoutId:\"RgLDKiJy1\",style:{height:\"100%\",width:\"100%\"},variant:\"KkGl5c4xx\",width:\"100%\"})})}),/*#__PURE__*/_jsx(ComponentViewportProvider,{height:100,width:\"100vw\",y:0,children:/*#__PURE__*/_jsx(Container,{className:\"framer-1wwxi34-container\",layoutScroll:true,nodeId:\"ZQpl6MnMK\",scopeId:\"kAsrRUY7M\",children:/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{P2ycjJk5W:{variant:\"AdfeNu6uT\"}},children:/*#__PURE__*/_jsx(Navigation,{G9nbGulg2:WseTHVtZW,height:\"100%\",id:\"ZQpl6MnMK\",kN9jQvAfO:VVmu2MiT4,layoutId:\"ZQpl6MnMK\",style:{width:\"100%\"},variant:\"AAcdoj48l\",width:\"100%\"})})})}),children,/*#__PURE__*/_jsx(\"div\",{className:\"framer-11ps5n7\"}),/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{webPageId:\"PIHShQEIT\"},implicitPathVariables:undefined},{href:{webPageId:\"lqE5WsvRn\"},implicitPathVariables:undefined},{href:{webPageId:\"PquogXvqS\"},implicitPathVariables:undefined},{href:{webPageId:\"PIHShQEIT\"},implicitPathVariables:undefined},{href:{webPageId:\"lqE5WsvRn\"},implicitPathVariables:undefined},{href:{webPageId:\"PquogXvqS\"},implicitPathVariables:undefined},{href:{webPageId:\"PIHShQEIT\"},implicitPathVariables:undefined},{href:{webPageId:\"lqE5WsvRn\"},implicitPathVariables:undefined},{href:{webPageId:\"PquogXvqS\"},implicitPathVariables:undefined},{href:{webPageId:\"PIHShQEIT\"},implicitPathVariables:undefined},{href:{webPageId:\"lqE5WsvRn\"},implicitPathVariables:undefined},{href:{webPageId:\"PquogXvqS\"},implicitPathVariables:undefined}],children:resolvedLinks=>/*#__PURE__*/_jsx(ComponentViewportProvider,{height:593,width:\"100vw\",y:1200,children:/*#__PURE__*/_jsx(Container,{className:\"framer-ro10ak-container\",nodeId:\"QooaJ3zfQ\",scopeId:\"kAsrRUY7M\",children:/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{A8C14a4iJ:{NZ4H4somw:resolvedLinks[9],U_NQ5RFmW:resolvedLinks[11],variant:\"eBfPi01ks\",xJevYXpOP:resolvedLinks[10]},P2ycjJk5W:{NZ4H4somw:resolvedLinks[6],U_NQ5RFmW:resolvedLinks[8],variant:\"sJzj2lUPf\",xJevYXpOP:resolvedLinks[7]},PPI4kfMqA:{NZ4H4somw:resolvedLinks[3],U_NQ5RFmW:resolvedLinks[5],variant:\"UZaMPQL5k\",xJevYXpOP:resolvedLinks[4]}},children:/*#__PURE__*/_jsx(Footer,{b9YW8J8m1:\"https://www.linkedin.com/company/paace-app/?originalSubdomain=uk\",height:\"100%\",id:\"QooaJ3zfQ\",layoutId:\"QooaJ3zfQ\",NZ4H4somw:resolvedLinks[0],Sd_c0aKoZ:\"https://www.instagram.com/paace_app/?hl=en\",style:{width:\"100%\"},U_NQ5RFmW:resolvedLinks[2],variant:\"OGmBc9r72\",vChcac1Wg:\"https://www.tiktok.com/@paace_app\",width:\"100%\",xJevYXpOP:resolvedLinks[1]})})})})})]}),/*#__PURE__*/_jsx(\"div\",{id:\"template-overlay\"})]})});});const css=target=>{const isStaticRenderer=target===RenderTarget.canvas||target===RenderTarget.export;if(!isStaticRenderer){return[...rules,...breakpointKeys.map(key=>{const query=mediaQueries[key];return`@media ${query} { ${breakpointRules[key].join(\" \")} }`;})];}return[...rules,...breakpointKeys.flatMap(key=>{const selector=breakpointRules[key];return breakpointRules[key].map(rule=>`${selector} {${rule}}`);})];};/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 1000\n * @framerIntrinsicWidth 1200\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"fixed\"]},\"PPI4kfMqA\":{\"layout\":[\"fixed\",\"fixed\"]},\"P2ycjJk5W\":{\"layout\":[\"fixed\",\"fixed\"]},\"A8C14a4iJ\":{\"layout\":[\"fixed\",\"fixed\"]}}}\n * @framerVariables {\"WseTHVtZW\":\"usersActive\",\"VVmu2MiT4\":\"partnersActive\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n * @framerHitTargets {\"T2JsrMqWI\":[\".framer-1dtha64-container\",\".framer-1txro69-container\",\".framer-1wwxi34-container\",\".framer-ro10ak-container\"],\"PPI4kfMqA\":[\".framer-1dtha64-container\",\".framer-1txro69-container\",\".framer-1wwxi34-container\",\".framer-ro10ak-container\"],\"P2ycjJk5W\":[\".framer-1dtha64-container\",\".framer-1txro69-container\",\".framer-1wwxi34-container\",\".framer-ro10ak-container\"],\"A8C14a4iJ\":[\".framer-1dtha64-container\",\".framer-1txro69-container\",\".framer-1wwxi34-container\",\".framer-ro10ak-container\"]}\n * @framerBreakpoints {\"A8C14a4iJ\":{\"min\":1440,\"canvasClassName\":\"framer-jxeo67-override\",\"minHeight\":1000,\"viewportHeight\":254,\"name\":\"Large Desktop\",\"width\":1440,\"rootFontSize\":16},\"T2JsrMqWI\":{\"min\":1200,\"max\":1439,\"canvasClassName\":\"framer-1dzwv6i-override\",\"minHeight\":1000,\"name\":\"Desktop\",\"width\":1200,\"rootFontSize\":16},\"PPI4kfMqA\":{\"min\":810,\"max\":1199,\"canvasClassName\":\"framer-1f4z2xx-override\",\"minHeight\":1000,\"viewportHeight\":1080,\"name\":\"Tablet\",\"width\":810,\"rootFontSize\":16},\"P2ycjJk5W\":{\"max\":809,\"canvasClassName\":\"framer-eowuqz-override\",\"minHeight\":1000,\"viewportHeight\":844,\"name\":\"Phone\",\"width\":390,\"rootFontSize\":16}}\n * @framerDefaultVariant T2JsrMqWI\n * @framerLayoutTemplate true\n */const FramerkAsrRUY7M=withCSS(Component,css,\"framer-HrIt0\");export default FramerkAsrRUY7M;FramerkAsrRUY7M.displayName=\"Main Page\";FramerkAsrRUY7M.defaultProps={height:1e3,width:1200};addPropertyControls(FramerkAsrRUY7M,{WseTHVtZW:NavigationControls?.[\"G9nbGulg2\"]&&{...NavigationControls[\"G9nbGulg2\"],defaultValue:\"QHkX6MSKV\",description:undefined,hidden:undefined,title:\"Users Active\"},VVmu2MiT4:NavigationControls?.[\"kN9jQvAfO\"]&&{...NavigationControls[\"kN9jQvAfO\"],defaultValue:\"QHkX6MSKV\",description:undefined,hidden:undefined,title:\"Partners Active\"}});addFonts(FramerkAsrRUY7M,[{explicitInter:true,fonts:[]},...LenisFonts,...PreloaderSimpleFonts,...NavigationFonts,...FooterFonts],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerkAsrRUY7M\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"1000\",\"framerLayoutTemplate\":\"true\",\"framerHitTargets\":\"{\\\"T2JsrMqWI\\\":[\\\".framer-1dtha64-container\\\",\\\".framer-1txro69-container\\\",\\\".framer-1wwxi34-container\\\",\\\".framer-ro10ak-container\\\"],\\\"PPI4kfMqA\\\":[\\\".framer-1dtha64-container\\\",\\\".framer-1txro69-container\\\",\\\".framer-1wwxi34-container\\\",\\\".framer-ro10ak-container\\\"],\\\"P2ycjJk5W\\\":[\\\".framer-1dtha64-container\\\",\\\".framer-1txro69-container\\\",\\\".framer-1wwxi34-container\\\",\\\".framer-ro10ak-container\\\"],\\\"A8C14a4iJ\\\":[\\\".framer-1dtha64-container\\\",\\\".framer-1txro69-container\\\",\\\".framer-1wwxi34-container\\\",\\\".framer-ro10ak-container\\\"]}\",\"framerDisplayContentsDiv\":\"false\",\"framerColorSyntax\":\"true\",\"framerAutoSizeImages\":\"true\",\"framerComponentViewportWidth\":\"true\",\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"1200\",\"framerDefaultVariant\":\"T2JsrMqWI\",\"framerVariables\":\"{\\\"WseTHVtZW\\\":\\\"usersActive\\\",\\\"VVmu2MiT4\\\":\\\"partnersActive\\\"}\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"PPI4kfMqA\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"P2ycjJk5W\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"A8C14a4iJ\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]}}}\",\"framerBreakpoints\":\"{\\\"A8C14a4iJ\\\":{\\\"min\\\":1440,\\\"canvasClassName\\\":\\\"framer-jxeo67-override\\\",\\\"minHeight\\\":1000,\\\"viewportHeight\\\":254,\\\"name\\\":\\\"Large Desktop\\\",\\\"width\\\":1440,\\\"rootFontSize\\\":16},\\\"T2JsrMqWI\\\":{\\\"min\\\":1200,\\\"max\\\":1439,\\\"canvasClassName\\\":\\\"framer-1dzwv6i-override\\\",\\\"minHeight\\\":1000,\\\"name\\\":\\\"Desktop\\\",\\\"width\\\":1200,\\\"rootFontSize\\\":16},\\\"PPI4kfMqA\\\":{\\\"min\\\":810,\\\"max\\\":1199,\\\"canvasClassName\\\":\\\"framer-1f4z2xx-override\\\",\\\"minHeight\\\":1000,\\\"viewportHeight\\\":1080,\\\"name\\\":\\\"Tablet\\\",\\\"width\\\":810,\\\"rootFontSize\\\":16},\\\"P2ycjJk5W\\\":{\\\"max\\\":809,\\\"canvasClassName\\\":\\\"framer-eowuqz-override\\\",\\\"minHeight\\\":1000,\\\"viewportHeight\\\":844,\\\"name\\\":\\\"Phone\\\",\\\"width\\\":390,\\\"rootFontSize\\\":16}}\",\"framerImmutableVariables\":\"true\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (4c8a172)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"Inter-Bold\",\"Inter-Black\",\"Inter-BlackItalic\",\"Inter-BoldItalic\"]);export const fonts=[{explicitInter:true,fonts:[{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/DpPBYI0sL4fYLgAkX8KXOPVt7c.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/4RAEQdEOrcnDkhHiiCbJOw92Lk.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/1K3W8DizY3v4emK8Mb08YHxTbs.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/tUSCtfYVM1I1IchuyCwz9gDdQ.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/VgYFWiwsAC5OYxAycRXXvhze58.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/syRNPWzAMIrcJ3wIlPIP43KjQs.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/GIryZETIX4IFypco5pYZONKhJIo.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/mkY5Sgyq51ik0AMrSBwhm9DJg.woff2\",weight:\"900\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/X5hj6qzcHUYv7h1390c8Rhm6550.woff2\",weight:\"900\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/gQhNpS3tN86g8RcVKYUUaKt2oMQ.woff2\",weight:\"900\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/cugnVhSraaRyANCaUtI5FV17wk.woff2\",weight:\"900\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/5HcVoGak8k5agFJSaKa4floXVu0.woff2\",weight:\"900\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/rZ5DdENNqIdFTIyQQiP5isO7M.woff2\",weight:\"900\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/P2Bw01CtL0b9wqygO0sSVogWbo.woff2\",weight:\"900\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/05KsVHGDmqXSBXM4yRZ65P8i0s.woff2\",weight:\"900\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/ky8ovPukK4dJ1Pxq74qGhOqCYI.woff2\",weight:\"900\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/vvNSqIj42qeQ2bvCRBIWKHscrc.woff2\",weight:\"900\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/3ZmXbBKToJifDV9gwcifVd1tEY.woff2\",weight:\"900\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/FNfhX3dt4ChuLJq2PwdlxHO7PU.woff2\",weight:\"900\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/gcnfba68tfm7qAyrWRCf9r34jg.woff2\",weight:\"900\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/efTfQcBJ53kM2pB1hezSZ3RDUFs.woff2\",weight:\"900\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/H89BbHkbHDzlxZzxi8uPzTsp90.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/u6gJwDuwB143kpNK1T1MDKDWkMc.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/43sJ6MfOPh1LCJt46OvyDuSbA6o.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/wccHG0r4gBDAIRhfHiOlq6oEkqw.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/WZ367JPwf9bRW6LdTHN8rXgSjw.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/ia3uin3hQWqDrVloC1zEtYHWw.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/2A4Xx7CngadFGlVV4xrO06OBHY.woff2\",weight:\"700\"}]}];export const css=['.framer-qpIRX .framer-styles-preset-1uybgin:not(.rich-text-wrapper), .framer-qpIRX .framer-styles-preset-1uybgin.rich-text-wrapper h5 { --framer-font-family: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold: \"Inter\", sans-serif; --framer-font-family-bold-italic: \"Inter\", sans-serif; --framer-font-family-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-open-type-features: \\'blwf\\' on, \\'cv09\\' on, \\'cv03\\' on, \\'cv04\\' on, \\'cv11\\' on; --framer-font-size: 18px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 700; --framer-font-weight-bold: 900; --framer-font-weight-bold-italic: 900; --framer-font-weight-italic: 700; --framer-letter-spacing: -0.04em; --framer-line-height: 1.4em; --framer-paragraph-spacing: 40px; --framer-text-alignment: start; --framer-text-color: #000000; --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }'];export const className=\"framer-qpIRX\";\nexport const __FramerMetadata__ = {\"exports\":{\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (e2c535a)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,Container,ControlType,cx,GeneratedComponentContext,getFonts,getFontsFromSharedStyle,PropertyOverrides,RenderTarget,ResolveLinks,RichText,useCustomCursors,useHydratedBreakpointVariants,useIsOnFramerCanvas,useLocaleInfo,useRouter,withCSS}from\"framer\";import{LayoutGroup,motion}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import Lenis from\"https://framerusercontent.com/modules/bSeEZJm22jsjERCOGQvq/JvJGH52KIOlGPmaUpdkl/Lenis.js\";import Navigation from\"#framer/local/canvasComponent/q2fHXJfMv/q2fHXJfMv.js\";import Footer from\"#framer/local/canvasComponent/RfEppRLbS/RfEppRLbS.js\";import*as sharedStyle6 from\"#framer/local/css/COumsfllp/COumsfllp.js\";import*as sharedStyle5 from\"#framer/local/css/fIgDpDoUl/fIgDpDoUl.js\";import*as sharedStyle from\"#framer/local/css/HENldXUte/HENldXUte.js\";import*as sharedStyle7 from\"#framer/local/css/KYKpi8WJi/KYKpi8WJi.js\";import*as sharedStyle3 from\"#framer/local/css/L_8MUBRcy/L_8MUBRcy.js\";import*as sharedStyle2 from\"#framer/local/css/PSC01ZoQM/PSC01ZoQM.js\";import*as sharedStyle8 from\"#framer/local/css/RUIDep6nA/RUIDep6nA.js\";import*as sharedStyle4 from\"#framer/local/css/WoR58wEUs/WoR58wEUs.js\";import*as sharedStyle1 from\"#framer/local/css/Y8ZGGjF1f/Y8ZGGjF1f.js\";const LenisFonts=getFonts(Lenis);const NavigationFonts=getFonts(Navigation);const FooterFonts=getFonts(Footer);const breakpoints={G0X8PvAJn:\"(min-width: 1200px)\",n2Gjgi8zX:\"(max-width: 809.98px)\",U1wvOhhF7:\"(min-width: 810px) and (max-width: 1199.98px)\"};const isBrowser=()=>typeof document!==\"undefined\";const serializationHash=\"framer-zwJbw\";const variantClassNames={G0X8PvAJn:\"framer-v-m66wzu\",n2Gjgi8zX:\"framer-v-nlvd6g\",U1wvOhhF7:\"framer-v-xxj9rh\"};const WseTHVtZWkAsrRUY7M=undefined;const VVmu2MiT4kAsrRUY7M=undefined;const qVp9W9iXt=undefined;const qo5WYh6hX=undefined;const bYHCROoPZ=undefined;const ivLpq63yT=undefined;const isSet=value=>{if(Array.isArray(value))return value.length>0;return value!==undefined&&value!==null&&value!==\"\";};const breakpointRules={n2Gjgi8zX:[\".framer-zwJbw .framer-1xjwicg { padding: 117px 25px 116px 25px; }\",\".framer-zwJbw .framer-6secvs { margin-bottom: -0px; }\"],U1wvOhhF7:[\".framer-zwJbw .framer-6secvs { margin-bottom: -0px; }\"]};const breakpointKeys=Object.keys(breakpointRules);const selectors={n2Gjgi8zX:\".framer-nlvd6g-override\",U1wvOhhF7:\".framer-xxj9rh-override\"};const rules=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-zwJbw.framer-rj0kyd, .framer-zwJbw .framer-rj0kyd { display: block; }\",\".framer-zwJbw.framer-m66wzu { align-content: center; align-items: center; background-color: #ffffff; display: flex; flex-direction: column; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: flex-start; overflow: var(--overflow-clip-fallback, clip); padding: 0px; position: relative; width: 100%; }\",\".framer-zwJbw .framer-11e4bat-container { flex: none; height: auto; position: relative; width: auto; }\",\".framer-zwJbw .framer-18j6kh7-container { flex: none; height: auto; left: 0px; position: var(--framer-canvas-fixed-position, fixed); right: 0px; top: 0px; z-index: 9; }\",\".framer-zwJbw .framer-1xjwicg { align-content: center; align-items: center; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: flex-start; max-width: 800px; overflow: visible; padding: 117px 40px 116px 40px; position: relative; width: 100%; }\",\".framer-zwJbw .framer-128fipt { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: flex-start; overflow: visible; padding: 0px 0px 60px 0px; position: relative; width: 100%; }\",\".framer-zwJbw .framer-1seykdy, .framer-zwJbw .framer-2jonor, .framer-zwJbw .framer-15f5ayo, .framer-zwJbw .framer-1add1m7 { --framer-link-text-color: #0099ff; --framer-link-text-decoration: underline; flex: none; height: auto; position: relative; white-space: pre-wrap; width: 100%; word-break: break-word; word-wrap: break-word; }\",\".framer-zwJbw .framer-6secvs { background: transparent; flex-grow: 1; height: 0px; margin: 0px; margin-bottom: -10px; position: relative; width: 0px; }\",\".framer-zwJbw .framer-3towd3-container { flex: none; height: auto; position: relative; width: 100%; }\",'[data-layout-template=\"true\"] > #overlay { margin-bottom: -0px; }',...sharedStyle.css,...sharedStyle1.css,...sharedStyle2.css,...sharedStyle3.css,...sharedStyle4.css,...sharedStyle5.css,...sharedStyle6.css,...sharedStyle7.css,...sharedStyle8.css];const mediaQueries={G0X8PvAJn:\"(min-width: 1200px)\",n2Gjgi8zX:\"(max-width: 809.98px)\",U1wvOhhF7:\"(min-width: 810px) and (max-width: 1199.98px)\"};const HTMLStyle=({value})=>{const onCanvas=useIsOnFramerCanvas();if(onCanvas)return null;return /*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:value},\"data-framer-html-style\":\"\"});};const humanReadableVariantMap={Desktop:\"G0X8PvAJn\",Phone:\"n2Gjgi8zX\",Tablet:\"U1wvOhhF7\"};const getProps=({content,height,id,metaTitle,pageTitle,publishDate,width,...props})=>{return{...props,bYHCROoPZ:publishDate??props.bYHCROoPZ,ivLpq63yT:content??props.ivLpq63yT??/*#__PURE__*/_jsxs(React.Fragment,{children:[/*#__PURE__*/_jsx(\"h2\",{children:\"Title\"}),/*#__PURE__*/_jsx(\"p\",{children:\"Suspendisse non diam sit amet augue luctus auctor non at augue. Cras vestibulum erat et diam malesuada, facilisis blandit erat imperdiet. Donec pulvinar pretium quam finibus gravida. Fusce mi sapien, efficitur eget turpis id, bibendum sodales arcu. Vestibulum cursus nec justo vel porttitor. Morbi ipsum leo, tempor sed porttitor a, vulputate a magna. Morbi fermentum ornare vehicula. Proin et vulputate mauris. Vestibulum porta laoreet scelerisque. Aenean dictum tellus ac massa sagittis, id aliquet enim lobortis.\"})]}),qo5WYh6hX:pageTitle??props.qo5WYh6hX??\"Page Title\",qVp9W9iXt:metaTitle??props.qVp9W9iXt??\"Legal\",variant:humanReadableVariantMap[props.variant]??props.variant??\"G0X8PvAJn\"};};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{style,className,layoutId,variant,qo5WYh6hX,qVp9W9iXt,bYHCROoPZ,ivLpq63yT,children,...restProps}=getProps(props);const[baseVariant,hydratedBaseVariant]=useHydratedBreakpointVariants(variant,breakpoints,false);const gestureVariant=undefined;const sharedStyleClassNames=[sharedStyle.className,sharedStyle1.className,sharedStyle2.className,sharedStyle3.className,sharedStyle4.className,sharedStyle5.className,sharedStyle6.className,sharedStyle7.className,sharedStyle8.className];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);const visible=isSet(bYHCROoPZ);const router=useRouter();useCustomCursors({});return /*#__PURE__*/_jsx(GeneratedComponentContext.Provider,{value:{isLayoutTemplate:true,primaryVariantId:\"G0X8PvAJn\",variantClassNames},children:/*#__PURE__*/_jsxs(LayoutGroup,{id:layoutId??defaultLayoutId,children:[/*#__PURE__*/_jsx(HTMLStyle,{value:\":root body { background: rgb(255, 255, 255); }\"}),/*#__PURE__*/_jsxs(motion.div,{...restProps,className:cx(scopingClassNames,\"framer-m66wzu\",className),\"data-layout-template\":true,ref:refBinding,style:{...style},children:[/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-11e4bat-container\",isAuthoredByUser:true,isModuleExternal:true,nodeId:\"HrwvTTlr_\",scopeId:\"ldc246Sx4\",children:/*#__PURE__*/_jsx(Lenis,{height:\"100%\",id:\"HrwvTTlr_\",infinite:false,intensity:10,layoutId:\"HrwvTTlr_\",orientation:\"vertical\",smooth:true,width:\"100%\"})})}),/*#__PURE__*/_jsx(ComponentViewportProvider,{height:100,width:\"100vw\",y:0,children:/*#__PURE__*/_jsx(Container,{className:\"framer-18j6kh7-container\",layoutScroll:true,nodeId:\"M_oAbd65I\",scopeId:\"ldc246Sx4\",children:/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{n2Gjgi8zX:{variant:\"AdfeNu6uT\"}},children:/*#__PURE__*/_jsx(Navigation,{G9nbGulg2:WseTHVtZWkAsrRUY7M,height:\"100%\",id:\"M_oAbd65I\",kN9jQvAfO:VVmu2MiT4kAsrRUY7M,layoutId:\"M_oAbd65I\",style:{width:\"100%\"},variant:\"AAcdoj48l\",width:\"100%\"})})})}),/*#__PURE__*/_jsxs(\"div\",{className:\"framer-1xjwicg\",\"data-framer-name\":\"Body Content\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"framer-128fipt\",children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"p\",{className:\"framer-styles-preset-18hu74c\",\"data-styles-preset\":\"HENldXUte\",style:{\"--framer-text-color\":\"var(--token-c7651f61-42ec-491e-b8dc-2cdfb7ecfc75, rgb(214, 104, 255))\"},children:\"Legal\"})}),className:\"framer-1seykdy\",fonts:[\"Inter\"],text:qVp9W9iXt,verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{n2Gjgi8zX:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"h1\",{style:{\"--font-selector\":\"R0Y7WmFsYW5kbyBTYW5zIFNlbWlFeHBhbmRlZC05MDA=\",\"--framer-font-family\":'\"Zalando Sans SemiExpanded\", sans-serif',\"--framer-font-size\":\"42px\",\"--framer-font-weight\":\"900\",\"--framer-letter-spacing\":\"-0.01em\",\"--framer-line-height\":\"78%\",\"--framer-text-color\":\"rgb(4, 47, 61)\",\"--framer-text-transform\":\"uppercase\"},children:\"Page Title\"})})},U1wvOhhF7:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"h1\",{style:{\"--font-selector\":\"R0Y7WmFsYW5kbyBTYW5zIFNlbWlFeHBhbmRlZC05MDA=\",\"--framer-font-family\":'\"Zalando Sans SemiExpanded\", sans-serif',\"--framer-font-size\":\"68px\",\"--framer-font-weight\":\"900\",\"--framer-letter-spacing\":\"-0.01em\",\"--framer-line-height\":\"78%\",\"--framer-text-color\":\"rgb(4, 47, 61)\",\"--framer-text-transform\":\"uppercase\"},children:\"Page Title\"})})}},children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"h1\",{style:{\"--font-selector\":\"R0Y7WmFsYW5kbyBTYW5zIFNlbWlFeHBhbmRlZC05MDA=\",\"--framer-font-family\":'\"Zalando Sans SemiExpanded\", sans-serif',\"--framer-font-size\":\"88px\",\"--framer-font-weight\":\"900\",\"--framer-letter-spacing\":\"-0.01em\",\"--framer-line-height\":\"78%\",\"--framer-text-color\":\"rgb(4, 47, 61)\",\"--framer-text-transform\":\"uppercase\"},children:\"Page Title\"})}),className:\"framer-2jonor\",fonts:[\"GF;Zalando Sans SemiExpanded-900\"],text:qo5WYh6hX,verticalAlignment:\"top\",withExternalLayout:true})}),visible&&/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(\"p\",{className:\"framer-styles-preset-6sxjjp\",\"data-styles-preset\":\"Y8ZGGjF1f\",style:{\"--framer-text-color\":\"var(--token-c7651f61-42ec-491e-b8dc-2cdfb7ecfc75, rgb(214, 104, 255))\"},children:\"Effective date: 27th November, 2024\"})}),className:\"framer-15f5ayo\",fonts:[\"Inter\"],text:bYHCROoPZ,verticalAlignment:\"top\",withExternalLayout:true})]}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:ivLpq63yT,className:\"framer-1add1m7\",fonts:[\"Inter\"],stylesPresetsClassNames:{a:\"framer-styles-preset-t06g4g\",h1:\"framer-styles-preset-1hil4e6\",h2:\"framer-styles-preset-iz68ah\",h3:\"framer-styles-preset-x5f0rn\",h4:\"framer-styles-preset-85lily\",h5:\"framer-styles-preset-1uybgin\",p:\"framer-styles-preset-1g88vq4\"},verticalAlignment:\"top\",withExternalLayout:true}),children,/*#__PURE__*/_jsx(\"div\",{className:\"framer-6secvs\"})]}),/*#__PURE__*/_jsx(ResolveLinks,{links:[{href:{webPageId:\"PIHShQEIT\"},implicitPathVariables:undefined},{href:{webPageId:\"lqE5WsvRn\"},implicitPathVariables:undefined},{href:{webPageId:\"PquogXvqS\"},implicitPathVariables:undefined},{href:{webPageId:\"PIHShQEIT\"},implicitPathVariables:undefined},{href:{webPageId:\"lqE5WsvRn\"},implicitPathVariables:undefined},{href:{webPageId:\"PquogXvqS\"},implicitPathVariables:undefined},{href:{webPageId:\"PIHShQEIT\"},implicitPathVariables:undefined},{href:{webPageId:\"lqE5WsvRn\"},implicitPathVariables:undefined},{href:{webPageId:\"PquogXvqS\"},implicitPathVariables:undefined}],children:resolvedLinks=>/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{n2Gjgi8zX:{y:1735.96},U1wvOhhF7:{y:1756.24}},children:/*#__PURE__*/_jsx(ComponentViewportProvider,{height:593,width:\"100vw\",y:1771.84,children:/*#__PURE__*/_jsx(Container,{className:\"framer-3towd3-container\",nodeId:\"jWlM3UQmn\",scopeId:\"ldc246Sx4\",children:/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{n2Gjgi8zX:{NZ4H4somw:resolvedLinks[6],U_NQ5RFmW:resolvedLinks[8],variant:\"sJzj2lUPf\",xJevYXpOP:resolvedLinks[7]},U1wvOhhF7:{NZ4H4somw:resolvedLinks[3],U_NQ5RFmW:resolvedLinks[5],variant:\"UZaMPQL5k\",xJevYXpOP:resolvedLinks[4]}},children:/*#__PURE__*/_jsx(Footer,{b9YW8J8m1:\"https://www.linkedin.com/company/paace-app/?originalSubdomain=uk\",height:\"100%\",id:\"jWlM3UQmn\",layoutId:\"jWlM3UQmn\",NZ4H4somw:resolvedLinks[0],Sd_c0aKoZ:\"https://www.instagram.com/paace_app/?hl=en\",style:{width:\"100%\"},U_NQ5RFmW:resolvedLinks[2],variant:\"OGmBc9r72\",vChcac1Wg:\"https://www.tiktok.com/@paace_app\",width:\"100%\",xJevYXpOP:resolvedLinks[1]})})})})})})]}),/*#__PURE__*/_jsx(\"div\",{id:\"template-overlay\"})]})});});const css=target=>{const isStaticRenderer=target===RenderTarget.canvas||target===RenderTarget.export;if(!isStaticRenderer){return[...rules,...breakpointKeys.map(key=>{const query=mediaQueries[key];return`@media ${query} { ${breakpointRules[key].join(\" \")} }`;})];}return[...rules,...breakpointKeys.flatMap(key=>{const selector=selectors[key];return breakpointRules[key].map(rule=>`${selector} {${rule}}`);})];};/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 1264\n * @framerIntrinsicWidth 1200\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"fixed\"]},\"U1wvOhhF7\":{\"layout\":[\"fixed\",\"fixed\"]},\"n2Gjgi8zX\":{\"layout\":[\"fixed\",\"fixed\"]}}}\n * @framerVariables {\"qo5WYh6hX\":\"pageTitle\",\"qVp9W9iXt\":\"metaTitle\",\"bYHCROoPZ\":\"publishDate\",\"ivLpq63yT\":\"content\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n * @framerHitTargets {\"G0X8PvAJn\":[\".framer-11e4bat-container\",\".framer-18j6kh7-container\",\".framer-1xjwicg\",\".framer-3towd3-container\"],\"U1wvOhhF7\":[\".framer-11e4bat-container\",\".framer-18j6kh7-container\",\".framer-1xjwicg\",\".framer-3towd3-container\"],\"n2Gjgi8zX\":[\".framer-11e4bat-container\",\".framer-18j6kh7-container\",\".framer-1xjwicg\",\".framer-3towd3-container\"]}\n * @framerBreakpoints {\"G0X8PvAJn\":{\"min\":1200,\"canvasClassName\":\"framer-m66wzu-override\",\"minHeight\":1264,\"name\":\"Desktop\",\"width\":1200,\"rootFontSize\":16},\"U1wvOhhF7\":{\"min\":810,\"max\":1199,\"canvasClassName\":\"framer-xxj9rh-override\",\"minHeight\":1264,\"viewportHeight\":1080,\"name\":\"Tablet\",\"width\":810,\"rootFontSize\":16},\"n2Gjgi8zX\":{\"max\":809,\"canvasClassName\":\"framer-nlvd6g-override\",\"minHeight\":1264,\"viewportHeight\":844,\"name\":\"Phone\",\"width\":390,\"rootFontSize\":16}}\n * @framerDefaultVariant G0X8PvAJn\n * @framerLayoutTemplate true\n */const Framerldc246Sx4=withCSS(Component,css,\"framer-zwJbw\");export default Framerldc246Sx4;Framerldc246Sx4.displayName=\"Plain\";Framerldc246Sx4.defaultProps={height:1264,width:1200};addPropertyControls(Framerldc246Sx4,{qo5WYh6hX:{defaultValue:\"Page Title\",displayTextArea:false,title:\"Page Title\",type:ControlType.String},qVp9W9iXt:{defaultValue:\"Legal\",displayTextArea:false,title:\"Meta Title\",type:ControlType.String},bYHCROoPZ:{defaultValue:\"\",description:\"\",displayTextArea:false,placeholder:\"Effective date: 27th November, 2024\",title:\"Publish Date\",type:ControlType.String},ivLpq63yT:{defaultValue:\"<h2>Title</h2><p>Suspendisse non diam sit amet augue luctus auctor non at augue. Cras vestibulum erat et diam malesuada, facilisis blandit erat imperdiet. Donec pulvinar pretium quam finibus gravida. Fusce mi sapien, efficitur eget turpis id, bibendum sodales arcu. Vestibulum cursus nec justo vel porttitor. Morbi ipsum leo, tempor sed porttitor a, vulputate a magna. Morbi fermentum ornare vehicula. Proin et vulputate mauris. Vestibulum porta laoreet scelerisque. Aenean dictum tellus ac massa sagittis, id aliquet enim lobortis.</p>\",description:\"\",title:\"Content\",type:ControlType.RichText}});addFonts(Framerldc246Sx4,[{explicitInter:true,fonts:[{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5vvr9Vy74if2I6bQbJvbw7SY1pQ.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/EOr0mi4hNtlgWNn9if640EZzXCo.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/Y9k9QrlZAqio88Klkmbd8VoMQc.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/OYrD2tBIBPvoJXiIHnLoOXnY9M.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/JeYwfuaPfZHQhEG8U5gtPDZ7WQ.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/GrgcKwrN6d3Uz8EwcLHZxwEfC4.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/b6Y37FthZeALduNqHicBT6FutY.woff2\",weight:\"400\"},{cssFamilyName:\"Zalando Sans SemiExpanded\",source:\"google\",style:\"normal\",uiFamilyName:\"Zalando Sans SemiExpanded\",url:\"https://fonts.gstatic.com/s/zalandosanssemiexpanded/v2/6qLhKYcHuh3msE9OaXROVVclRRa-ClZSEipa2hrEzR2jhk_n3T6ACkByFXP4Fs7bOSO7.woff2\",weight:\"900\"}]},...LenisFonts,...NavigationFonts,...FooterFonts,...getFontsFromSharedStyle(sharedStyle.fonts),...getFontsFromSharedStyle(sharedStyle1.fonts),...getFontsFromSharedStyle(sharedStyle2.fonts),...getFontsFromSharedStyle(sharedStyle3.fonts),...getFontsFromSharedStyle(sharedStyle4.fonts),...getFontsFromSharedStyle(sharedStyle5.fonts),...getFontsFromSharedStyle(sharedStyle6.fonts),...getFontsFromSharedStyle(sharedStyle7.fonts),...getFontsFromSharedStyle(sharedStyle8.fonts)],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Framerldc246Sx4\",\"slots\":[],\"annotations\":{\"framerBreakpoints\":\"{\\\"G0X8PvAJn\\\":{\\\"min\\\":1200,\\\"canvasClassName\\\":\\\"framer-m66wzu-override\\\",\\\"minHeight\\\":1264,\\\"name\\\":\\\"Desktop\\\",\\\"width\\\":1200,\\\"rootFontSize\\\":16},\\\"U1wvOhhF7\\\":{\\\"min\\\":810,\\\"max\\\":1199,\\\"canvasClassName\\\":\\\"framer-xxj9rh-override\\\",\\\"minHeight\\\":1264,\\\"viewportHeight\\\":1080,\\\"name\\\":\\\"Tablet\\\",\\\"width\\\":810,\\\"rootFontSize\\\":16},\\\"n2Gjgi8zX\\\":{\\\"max\\\":809,\\\"canvasClassName\\\":\\\"framer-nlvd6g-override\\\",\\\"minHeight\\\":1264,\\\"viewportHeight\\\":844,\\\"name\\\":\\\"Phone\\\",\\\"width\\\":390,\\\"rootFontSize\\\":16}}\",\"framerLayoutTemplate\":\"true\",\"framerDisplayContentsDiv\":\"false\",\"framerDefaultVariant\":\"G0X8PvAJn\",\"framerContractVersion\":\"1\",\"framerIntrinsicHeight\":\"1264\",\"framerComponentViewportWidth\":\"true\",\"framerImmutableVariables\":\"true\",\"framerAutoSizeImages\":\"true\",\"framerVariables\":\"{\\\"qo5WYh6hX\\\":\\\"pageTitle\\\",\\\"qVp9W9iXt\\\":\\\"metaTitle\\\",\\\"bYHCROoPZ\\\":\\\"publishDate\\\",\\\"ivLpq63yT\\\":\\\"content\\\"}\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"U1wvOhhF7\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"n2Gjgi8zX\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]}}}\",\"framerColorSyntax\":\"true\",\"framerHitTargets\":\"{\\\"G0X8PvAJn\\\":[\\\".framer-11e4bat-container\\\",\\\".framer-18j6kh7-container\\\",\\\".framer-1xjwicg\\\",\\\".framer-3towd3-container\\\"],\\\"U1wvOhhF7\\\":[\\\".framer-11e4bat-container\\\",\\\".framer-18j6kh7-container\\\",\\\".framer-1xjwicg\\\",\\\".framer-3towd3-container\\\"],\\\"n2Gjgi8zX\\\":[\\\".framer-11e4bat-container\\\",\\\".framer-18j6kh7-container\\\",\\\".framer-1xjwicg\\\",\\\".framer-3towd3-container\\\"]}\",\"framerIntrinsicWidth\":\"1200\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","\r\n\t\timport * as Framer from \"framer\";\r\nimport { Link } from \"framer\";\r\nimport { motion } from \"framer-motion\";\r\nimport * as React from \"react\";\r\nimport { createPortal } from \"react-dom\";\r\nimport * as ReactDOM from \"react-dom/client\";\r\nimport MainPage from \"https://framerusercontent.com/modules/5I6FVvkxK9wNmbgeLyQB/E3i5fIKsentcL7woHNs1/kAsrRUY7M.js\";\r\nimport Plain from \"https://framerusercontent.com/modules/gXi6Uf3yJfuNSHzVsHF2/U15ds37YElSDtpnOVfIR/ldc246Sx4.js\";\r\n\r\n\t\tconst routes = {augiA20Il: {elements: {ifmXHU1Az: \"intro-flow-2\", szSdZcVkn: \"intro-flow-3\", Uie0Q6H1U: \"intro-flow-1\", ukEUcnQrr: \"partner-logos\", ZMHr6dO9T: \"partner-carousel\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/1Dg5Kbj46uGwIouBYNh5/l1HrsmJP7Cfy1MbaK8zS/augiA20Il.js\")), path: \"/\"}, Bmx3UxV8I: {elements: {KXOl3PpdK: \"contact-form\", M2frgfIs2: \"partner-logos\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/wnbBW2FLQW5sjExj2r2C/UwwbHnNK567apXP6I6tE/Bmx3UxV8I.js\")), path: \"/partners\"}, i752NU1JP: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/atN9hau5BwEYMe0oSkkN/7iAWpsvewNkbwi9ayi1d/i752NU1JP.js\")), path: \"/styleguide\"}, PIHShQEIT: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/CLEPkEnE2Ht60VEPodoB/KIvTqaWnRxU2fpeFwiWK/PIHShQEIT.js\")), path: \"/privacy-policy\"}, lqE5WsvRn: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/cNQUXMkKrHMU07fGVhPn/tNaspJxVTQ9JIjDyMlIw/lqE5WsvRn.js\")), path: \"/paace-terms-conditions\"}, PquogXvqS: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/PQhJeuWcJMTcMLTqzo5a/YxygjVKjxkbRBjOgFmzu/PquogXvqS.js\")), path: \"/partner-terms-conditions\"}, VOi7CeZzV: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/bJn1htBQPvdscMrdjoPI/9hHGuDz9TsgJV2Vg0yF8/VOi7CeZzV.js\")), path: \"/competition-terms-conditions\"}, GCBDu4L9X: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/vUXpJaHNJfGl3TrZm5Zr/eArKevZUvCc9TnXmUOJ6/GCBDu4L9X.js\")), path: \"/404\"}, eTY54aZOc: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/ELBSV85JXencoxVGBKzc/UFpQDWpTkwt6tich1qxJ/eTY54aZOc.js\")), path: \"/delete-account\"}, vOOJX4lp4: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/MXxQMuzeW5bbscs3otDI/dJvEqoqCT8PiqKiH2yzt/vOOJX4lp4.js\")), path: \"/remove-data\"}}\r\n\r\n\t\tconst locales = [{code: \"en\", id: \"default\", name: \"English\", slug: \"\", textDirection: \"ltr\"}]\r\n\t\tconst collectionUtils = {}\r\n\t\tconst framerSiteId = \"756cd6d6dea0f2067a682e02931f07273efc4339d99ce782560cdb6ee04ee9d7\"\r\n\t\tconst text = React.createElement(React.Fragment, undefined, React.createElement(\"p\", undefined, React.createElement(\"strong\", undefined, \"1. INTRODUCTION\")), React.createElement(\"p\", undefined, \"This privacy policy (\", React.createElement(\"strong\", undefined, \"Policy\"), \") relates to your personal information in connection with your access to and use of paace.co (and all applicable subdomains) and the Paace mobile application software (together the \", React.createElement(\"strong\", undefined, \"Paace\"), \" \", React.createElement(\"strong\", undefined, \"Platform\"), \"), our social media and other communication or promotional channels, and in each case the materials, functions and services provided through such (together, the “\", React.createElement(\"strong\", undefined, \"Paace Services\"), \"”).\"), React.createElement(\"p\", undefined, \"We are committed to protecting your information and your right to privacy.  If you have any questions or concerns about our Policy, or our practices with regards to your personal information, please contact us via \", React.createElement(Link, {href: \"mailto:hello@paace.co\", motionChild: true, nodeId: \"PIHShQEIT\", openInNewTab: false, relValues: [], smoothScroll: false}, React.createElement(motion.a, undefined, React.createElement(\"strong\", undefined, \"hello@paace.co\"))), \".\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"When you use the Paace Services, you trust us with your information and we take your privacy very seriously.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"We seek to explain to you in the clearest way possible what information we collect, how we use it and what rights you have in relation to it.  We hope you take some time to read through it carefully, as it is important.  If there are any terms in this Policy that you do not agree with, please discontinue your use of the Paace Services.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"‍\", React.createElement(\"strong\", undefined, \"2. CHANGES TO THIS POLICY OR YOUR PERSONAL INFORMATION\")), React.createElement(\"p\", undefined, \"We review this Policy regularly and it is your responsibility to check regularly and determine whether you still agree to comply with the Policy.  If you do not agree to any changes to this Policy then you must immediately stop using the Paace Services. In the event we make any significant changes to this Policy we will use our reasonable endeavours to inform you of such changes in advance in writing.It is important that the personal information we hold about you is true, complete, accurate and current.Accordingly, you must notify us of any changes to your personal information (for example, if you change your email address).\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"‍\", React.createElement(\"strong\", undefined, \"3. ABOUT US\"), \"The Paace Services are owned and operated by Paace Ltd (trading as “Paace”), a company registered in England and Wales with company number 14085970 and whose registered office is situated at 32a Albert Bridge Road, London, England, SW11 4PY (\", React.createElement(\"strong\", undefined, \"Paace/we/us/our\"), \").  Paace is the controller (also known as a data controller) of, and is responsible for, your personal information.  The term “you” refers to the user wishing to access and/or use the Paace Services.The Paace Platform provides an electronic intermediary platform through which you can browse and offer to buy products sold by our brand partner sellers, and against which rewards may be redeemable which can be collected through your use of the Paace Platform.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"‍\", React.createElement(\"strong\", undefined, \"4. INFORMATION WE MAY COLLECT ABOUT YOU\"), \"‍\", React.createElement(\"strong\", undefined, \"4.1 Personal information you disclose to us\"), \"‍\", React.createElement(\"strong\", undefined, \"In Short: We collect personal information that you provide to us including information such as your name, address, contact information, date of birth, and payment card information, and we collect certain sensitive data.\"), \"‍\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"‍\", React.createElement(\"strong\", undefined, \"(a) Where and how we collect personal information\"), \"We collect personal information that you voluntarily provide to us when registering to use and actually using the Paace Services, or otherwise contacting us.If you apply or are put forward for a role with us, or work for us (either directly or indirectly) for any period of time, we also collect your personal information, which may include your contact details, financial and payment details, details of your education, qualifications and skills, your marital status, your nationality, your NI number, your job title and your CV.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"If you give us information on behalf of another individual, for example when putting that individual forward as your emergency/alternate contact or referee or next of kin, or by acting as that individual’s emergency/alternate contact, referee or next of kin, in providing that information to us you are confirming that you have sought and obtained, from that individual, permission for you to:\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"- Consent on their behalf to the processing of their personal data;\", React.createElement(\"br\", undefined), \"- Receive on their behalf any data protection notices; and\", React.createElement(\"br\", undefined), \"- If relevant, consent to the transfer of their personal data abroad,\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"and you shall indemnify us and hold us harmless against any claims, actions, proceedings, losses, damages, costs (including reasonable legal costs) and expenses (including taxation), in each case of any nature whatsoever, arising out of or in connection with your failure to obtain these permissions.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"More particularly, the personal information that we collect depends on the context of your interactions with us, the choices you make and the products and features you use. For example:\", React.createElement(\"br\", undefined), \"- We collect personal information via our website, mobile applications and other technical systems.\", React.createElement(\"br\", undefined), \"- We collect personal information when you use our website or mobile applications to sign up to, participate in or receive a service from us, for example where you contact us, request information online, report an issue, provide feedback or enter a live chat.\", React.createElement(\"br\", undefined), \"- We may monitor and record communications with you (such as telephone conversations and emails). We may do this for a number of reasons, such as to check the quality of our customer service, for training purposes, to prevent fraud or to make sure we are complying with legal requirements.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"Paace’s use and transfer of information received from Google APIs to any other app will adhere to\", React.createElement(\"strong\", undefined, \" \"), React.createElement(Link, {href: \"https://developers.google.com/terms/api-services-user-data-policy#additional_requirements_for_specific_api_scopes\", motionChild: true, nodeId: \"PIHShQEIT\", openInNewTab: false, relValues: [], smoothScroll: false}, React.createElement(motion.a, undefined, React.createElement(\"strong\", undefined, \"Google API Services User Data Policy\"))), \", including the Limited Use requirements.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"‍\", React.createElement(\"strong\", undefined, \"(b) The types of personal information we may collect\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"‍\"), \"When you use the Paace Services and/or when you otherwise deal with us, we may collect the following information about you (the \", React.createElement(\"strong\", undefined, \"Information\"), \"):\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"- \", React.createElement(\"strong\", undefined, \"Identity Data\"), \", which includes your first name, last name and gender.\", React.createElement(\"br\", undefined), \"- \", React.createElement(\"strong\", undefined, \"Contact Data\"), \", which means the data we use to contact you including your billing address, delivery address, email address and contact number.\", React.createElement(\"br\", undefined), \"- \", React.createElement(\"strong\", undefined, \"Financial Data\"), \", which means the payment method and card association used to process your payments for your orders. We do not store or process your card details ourselves, they are processed and stored via one of our contracted third-party service providers.\", React.createElement(\"br\", undefined), \"- \", React.createElement(\"strong\", undefined, \"Transaction Data\"), \", which means details about transactions you have made in connection with the Paace Services, including the payments to and from you along with other details of products you have purchased.\", React.createElement(\"br\", undefined), \"- \", React.createElement(\"strong\", undefined, \"Profile Data\"), \", which includes your username, email address and log-in data, details of any purchases or orders made by you, and your interests, preferences, feedback and survey or questionnaire responses and details of your next of kin, emergency/alternate contact(s) or referee(s) (note: you can delete or replace your next of kin, emergency/alternate contact(s) or referee(s) at any time by contacting us).\", React.createElement(\"br\", undefined), \"- \", React.createElement(\"strong\", undefined, \"Sensitive Data\"), \", as described in more detail below.\", React.createElement(\"br\", undefined), \"- \", React.createElement(\"strong\", undefined, \"Usage Data\"), \", which includes Information about how you use the Paace Services. This includes your browsing patterns and Information such as how long you might spend on one of our webpages on the Paace Platform and what you look at and for, the page that referred you to the Paace Platform and the click stream during your visit to our website, page response times, and page interaction Information (for example, clicks you make on a page).\", React.createElement(\"br\", undefined), \"- \", React.createElement(\"strong\", undefined, \"Marketing and Communications Data\"), \", which includes your preferences with regards to receiving marketing from us and your other communication preferences.\", React.createElement(\"br\", undefined), \"- \", React.createElement(\"strong\", undefined, \"Other Information relevant to services, customer surveys, questionnaires and/or offers\"), \".\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"‍\", React.createElement(\"strong\", undefined, \"4.2 Sensitive personal information\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"‍\"), \"‍\", React.createElement(\"strong\", undefined, \"In Short: We collect sensitive personal data due to the nature of the services we provide.\", React.createElement(\"br\", undefined), \"‍\"), \"Due to the nature of the services we provide, you will be asked to provide, or we may have access to, certain sensitive personal information relating your physical health, either as directly provided by you, or received by us from third parties as detailed below.  We will only collect your sensitive personal information with your explicit consent.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"‍\", React.createElement(\"strong\", undefined, \"4.3 Personal information from third parties\"), \"‍\", React.createElement(\"strong\", undefined, \"In Short: We may receive information about you from third parties, and we may use this information to provide, improve and personalise the Paace Services.\", React.createElement(\"br\", undefined), \"‍\", React.createElement(\"br\", undefined), \"‍\"), \"We may receive information about you from other sources, which we will add to the information we already hold about you in order to help us provide, improve and personalise the Paace Services. If you apply for a job with us, we may also receive information from those who provide references relating to your prospective or actual engagement or employment.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"‍\", React.createElement(\"strong\", undefined, \"4.4 Information automatically collected\"), \"‍\", React.createElement(\"strong\", undefined, \"In Short: Some Information – such as IP addresses and/or browser and device characteristics – is collected automatically when you use the Paace Platform.\", React.createElement(\"br\", undefined), \"‍\"), \"We automatically collect certain Information when you visit, use or navigate the Paace Platform.  This Information does not reveal your specific identity (unless your device name is the same as your name) but may include device and usage Information, such as your IP address, browser and device characteristics, operating system, language preferences, referring URLs, device name, country, location, Information about how and when you use the Paace Platform and other technical Information. This Information is primarily needed to maintain the security and operation of the Paace Platform, and for our internal analytics and reporting purposes.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"‍\", React.createElement(\"strong\", undefined, \"5. HOW DO WE USE YOUR INFORMATION?\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"‍\"), \"‍\", React.createElement(\"strong\", undefined, \"In Short: We process your Information for purposes based on legitimate business interests, the fulfilment of our contract with you, compliance with our legal obligations, and/or your consent.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"‍\"), \"We use your Information collected via the Paace Services for a variety of business purposes described below.  We process your Information for these purposes in reliance on our legitimate business interests (\", React.createElement(\"strong\", undefined, \"Business Purposes\"), \"), in order to enter into or perform a contract with you (\", React.createElement(\"strong\", undefined, \"Contractual Reasons\"), \"), with your consent (\", React.createElement(\"strong\", undefined, \"Consent\"), \"), and/or for compliance with our legal obligations (\", React.createElement(\"strong\", undefined, \"Legal Reasons\"), \").  We indicate the specific processing grounds we rely on next to each purpose listed below.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"We may process your Information for the following purposes:\", React.createElement(\"br\", undefined), \"- To take steps towards entering into a contract with you, to provide the Paace Services and to claim any right to be paid under our Terms and Conditions (Contractual Reasons). This includes collecting and using your personal information to:\", React.createElement(\"br\", undefined), \"- Prepare an agreement with you;\", React.createElement(\"br\", undefined), \"- Manage any accounts you hold with us;\", React.createElement(\"br\", undefined), \"- Contact you for reasons related to the Paace Services;\", React.createElement(\"br\", undefined), \"- Enable us to follow up on enquiries made by you in relation to the Paace Services and/or to provide information you have requested;\", React.createElement(\"br\", undefined), \"- Contact your next of kin or your emergency/alternate contact(s) in order to get in touch with you when we have failed to do so using your own contact details;\", React.createElement(\"br\", undefined), \"- Contact your referee(s) or to obtain a reference for a job that you are applying for;\", React.createElement(\"br\", undefined), \"- Deal with payment for the Paace Services;Notify you of any changes to the Paace Services that may affect you; andResolve disputes or collect overdue payments.\", React.createElement(\"br\", undefined), \"- To manage any orders, payments, returns and exchanges in connection with the Paace Services (Contractual Reasons).\", React.createElement(\"br\", undefined), \"- To pass it onto our brand partners and payment partners in connection with the fulfilment and management of your orders, payments, returns, and exchanges (Contractual Reasons).\", React.createElement(\"br\", undefined), \"- To contact you regarding enquiries you have made in relation to the Paace Services.\", React.createElement(\"br\", undefined), \"- To facilitate a recruitment process in which you are involved.\", React.createElement(\"br\", undefined), \"- To follow up on enquiries in accordance with industry guidelines and providing quotes for software/details of offers (Business Purposes).\", React.createElement(\"br\", undefined), \"- To send administrative Information to you for Business Purposes, Legal Reasons and/or possibly Contractual Reasons. We may use your Information to send you product, service and new feature information and/or information about changes to our Terms and Conditions and policies, as may be in place from time to time.\", React.createElement(\"br\", undefined), \"- To send you marketing and promotional communications for Business Purposes and/or with your Consent. We and/or our brand partners may use your Information for our marketing purposes, if this is in accordance with your marketing preferences.  You can opt-out of our marketing emails (see below for further details).\", React.createElement(\"br\", undefined), \"- To facilitate account creation and the log-in process with your Consent. If you choose to link your account with us to a third party account (such as your Google or Facebook account), we use the Information we are consequently allowed to collect from those third parties to facilitate account creation and the log-in process.  See the section below headed “How Do We Handle Your Social Media Log-ins” for further information.\", React.createElement(\"br\", undefined), \"- To administer promotions for our Business Purposes and/or with your Consent.\", React.createElement(\"br\", undefined), \"- To request feedback for our Business Purposes and/or with your Consent. For example, we may use your Information to request feedback and to contact you about your use of the Paace Platform.\", React.createElement(\"br\", undefined), \"- To protect the Paace Services for Business Purposes and/or Legal Reasons. We may use your Information as part of our efforts to keep the Paace Services safe and secure (for example, for the purposes of monitoring and/or preventing fraud).\", React.createElement(\"br\", undefined), \"- To enforce our Terms and Conditions and policies for Business Purposes, Legal Reasons and/or possibly Contractual Reasons.\", React.createElement(\"br\", undefined), \"- To respond to legal requests and prevent harm for Legal Reasons. For example, if we receive a subpoena or other legal request, we may need to inspect the data we hold to determine how to respond.\", React.createElement(\"br\", undefined), \"- We may use your Information for other Business Purposes, such as data analysis, identifying usage trends, determining the effectiveness of our promotional campaigns and to evaluate and improve the Paace Services, our products and services, our marketing and your experience.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"‍\", React.createElement(\"strong\", undefined, \"6. WILL YOUR INFORMATION BE SHARED WITH ANYONE?\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"‍\"), \"‍\", React.createElement(\"strong\", undefined, \"In Short: We only share Information for Contractual Reasons, to fulfil our Business Purposes, or with your Consent.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"‍\"), \"We only share and disclose your Information in the following situations:\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"- We may share Information with brand providers and partners to enable any orders for products or services, or obligations arising out of any such orders, to be fulfilled.\", React.createElement(\"br\", undefined), \"- \", React.createElement(\"strong\", undefined, \"Compliance with Legal Obligations. \"), \"We may disclose your Information where we are legally required to do so in order to comply with applicable laws, governmental requests, judicial proceedings, court orders, or legal processes, such as in response to a court order or a subpoena (including in response to requests from public authorities in order to meet national security or law enforcement requirements).\", React.createElement(\"br\", undefined), \"- \", React.createElement(\"strong\", undefined, \"Vital Interests. \"), \"We may disclose your Information where we believe it is necessary to investigate, prevent, or take action regarding potential violations of our policies, suspected fraud, illegal activities or situations involving potential threats to the safety of any person, or where we believe it is necessary for the purpose of providing evidence in connection with litigation proceedings in which we are involved.\", React.createElement(\"br\", undefined), \"- \", React.createElement(\"strong\", undefined, \"Third Party Service Providers. \"), \"We may share your Information with third party vendors, service providers, credit reference agencies, trade associations of which we are a member, credit card associations, contractors or agents who perform services and require access to such Information to carry out that work. Such third parties will only have access to your Information to the extent that they need to perform those services.  They are required to keep your Information confidential and may not use it other than as we ask them to and always in accordance with this Policy.\", React.createElement(\"br\", undefined), \"- \", React.createElement(\"strong\", undefined, \"Business Transfers. \"), \"We may share or transfer your Information in connection with, or during negotiations of, any merger, sale of company assets, financing, or acquisition of all or a portion of our business to another company.\", React.createElement(\"br\", undefined), \"- \", React.createElement(\"strong\", undefined, \"Third Party Advertisers. \"), \"We may use third party advertising companies to serve ads when you visit the Paace Platform.\", React.createElement(\"br\", undefined), \"- \", React.createElement(\"strong\", undefined, \"Business Partners. \"), \"Provided you have given us Consent to do so we may share your Information with our business partners to offer you certain products, services or promotions.\", React.createElement(\"br\", undefined), \"- \", React.createElement(\"strong\", undefined, \"With your Consent. \"), \"We may disclose your Information for any other purpose with your Consent, including with any person who you have named as a person we can contact to discuss your account and any agent or representative of yours.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"We may disclose aggregated, anonymous Information (i.e. Information from which you cannot be personally identified), or insights based on such anonymous Information, to selected third parties, including (without limitation) analytics and search engine providers to assist us in the improvement and optimisation of the Paace Services.  In such circumstances we will not disclose any Information which can identify you personally.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"‍\", React.createElement(\"strong\", undefined, \"7. IS YOUR INFORMATION TRANSFERRED INTERNATIONALLY?\"), \"‍\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"‍\", React.createElement(\"strong\", undefined, \"In Short: We may transfer, store, and process your Information in countries other than the UK, but will take all reasonable steps to ensure it is protected.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"‍\"), \"Whenever we transfer your Information outside of the UK, we will take all reasonably practicable measures to protect your Information in accordance with this Policy and applicable laws. To the extent that any transfer requires approved safeguards to be in place we will only transfer your Information to countries that have been deemed to provide an adequate level of protection for personal data.  Where we use certain service providers, we may use specific contracts approved for use in the UK which give personal data the same protection it has in the UK.  Please contact us if you want further information on the specific mechanism(s) used by us when transferring your personal data out of the UK.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"‍\", React.createElement(\"strong\", undefined, \"8. THIRD PARTY WEBSITES\"), \"‍\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"‍\", React.createElement(\"strong\", undefined, \"In Short: We are not responsible for the safety of any Information that you share with third party providers who feature or advertise, but are not affiliated with, the Paace Services.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"‍\"), \"The Paace Platform may feature links to third party websites or social media channels, or contain advertisements from third parties that are not affiliated with us and which may link to other websites, online services or mobile applications.  We cannot guarantee the safety and privacy of data you provide to any third parties.  Any data collected by third parties is not covered by this Policy.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"We are not responsible for the content or privacy and security practices and policies of any third parties, including other websites, services or applications that may be linked to or from the Paace Platform.  You should review the policies of such third parties and contact them directly if you have any related questions.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"‍\", React.createElement(\"strong\", undefined, \"9. FOR HOW LONG DO WE KEEP YOUR INFORMATION?\"), \"‍\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"‍\", React.createElement(\"strong\", undefined, \"In Short: We keep your Information for as long as necessary to fulfil the purposes outlined in this Policy, unless a longer retention period is permitted or required by law.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"‍\"), \"We will only keep your Information for as long as it is necessary for the purposes set out in this Policy, unless a longer retention period is required or permitted by law (such as tax law, accounting requirements  or other legal or regulatory requirements).\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"When we have no ongoing Business Purpose to justify the processing of your Information, we will either delete or anonymise it, or, if this is not possible (for example, because your Information has been stored in backup archives), then we will securely store your Information and isolate it from any further processing until deletion is possible.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"‍\", React.createElement(\"strong\", undefined, \"10. HOW DO WE KEEP INFORMATION SAFE?\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"‍\"), \"‍\", React.createElement(\"strong\", undefined, \"In Short: We aim to protect your Information through a system of organisational and technical security measures.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"‍\"), \"We have implemented appropriate technical and organisational security measures designed to protect the security of any Information we process.  For example, we store your personal data on secure servers and company data is stored on separate secure encrypted disks when not in use.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"We have procedures in place to deal with any suspected data security breach. We will notify you and any applicable supervisory body of a suspected data breach where we are legally required to do so.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"However, please also remember that we cannot guarantee that the Internet itself is 100% secure.  Although we will use our reasonable endeavours to protect your Information, we cannot guarantee the security or integrity of personal Information that is transferred from you or to you via the Internet. Transmission of personal Information to and from the Paace Platform is therefore at your own risk.  You should only access our services within a secure environment.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"‍\", React.createElement(\"strong\", undefined, \"11. DO WE COLLECT INFORMATION FROM MINORS?\"), \"‍\", React.createElement(\"strong\", undefined, \"In Short: We do not knowingly collect data from or market to children under 16 years of age.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"‍\"), \"We do not knowingly solicit data from or market to children under 16 years of age.  By using the Paace Services, you represent that you are at least 16 years of age.  If you become aware of any data we have collected from children under 16 years of age, please contact us immediately via \", React.createElement(Link, {href: \"mailto:hello@paace.co\", motionChild: true, nodeId: \"PIHShQEIT\", openInNewTab: false, relValues: [], smoothScroll: false}, React.createElement(motion.a, undefined, React.createElement(\"strong\", undefined, \"hello@paace.co\"))), \".\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"‍\", React.createElement(\"strong\", undefined, \"12. HOW DO WE HANDLE YOUR SOCIAL MEDIA LOG-INS?\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"‍\"), \"‍\", React.createElement(\"strong\", undefined, \"Summary: If you choose to register or log into our website using a social media account, we may have access to certain Information about you.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"‍\"), \"The Paace Platform may offer you the ability to register and log-in using your third-party social media account details (e.g. Facebook, Twitter etc).  Where you choose to do this, we will receive certain Information from your social media provider. The Information we receive may vary depending on the social media provider concerned, but will often include your name, e-mail address, friends list, profile picture and other Information that you choose to make public.  If you log-in using Facebook, we may also request access to other information related to your account, such as friends, check-ins and likes, and you may choose to grant or deny us access to each individual permission.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"The Information that you post, transmit, or otherwise make available on such social media platforms may be viewed and/or used by other users of those networks and we have no control over that viewing and use and cannot prevent further use of that Information by third parties.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"If you choose to link your Paace profile to a social media account, Information that you provide to us in the process may be included on your Paace profile.  Additionally, your contacts on the social media platform(s) (\", React.createElement(\"strong\", undefined, \"Friends\"), \") may be able to see your activity on the Paace Platform.  A link to your public profile on the social media site may be added to your Paace profile and other members and users of the Paace Services may be able to see any Friends or links (e.g. friends of Friends) via the social network(s) that you have in common with them.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"When you interact with us through social media networks, you acknowledge that we may access your Information that is held by that account, solely in accordance with your social media privacy settings.  Any links to social media are not under our control and remain solely your responsibility.  You acknowledge that any Information posted via social media through the Paace Platform, or via any third party which you allow to access your content, is posted entirely at your own risk and that by posting to a public platform you make that Information visible to third parties who can use that Information at their discretion.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"Please note that we do not control, and are not responsible for, other uses of your Information by your third-party social media provider(s).  We recommend that you review their privacy policies to understand how they collect, use and share your Information, and how you can set your privacy preferences on their sites and apps.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"‍\", React.createElement(\"strong\", undefined, \"13. YOUR CONSENT TO PROCESSING\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"‍\"), \"You will be required to give Consent to certain processing activities before we can process your Information.  Where applicable, we will seek Consent from you when you first submit Information to or through the Paace Services.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"If you have previously given your Consent you may freely withdraw such Consent at any time.  You can do this by emailing hello@paace.co or, where applicable, clicking the ‘Unsubscribe’ button that appears in mailing list communications.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"If you withdraw your Consent, and if we do not have another legal basis for processing your Information, then we will stop processing your Information.  If we do have another legal basis for processing your Information, then we may continue to do so subject to your legal rights.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"Please note that if we need to process your Information in order for you to use the Paace Services and you object or do not provide Consent to us processing your Information, you accept that the Paace Services will no longer be available to you.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"‍\", React.createElement(\"strong\", undefined, \"14. MARKETING AND OPTING OUT\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"‍\"), \"If you have given Consent to marketing we may contact you about our products, services, promotions and special offers.  If you no longer wish to receive such Information, you can withdraw your Consent at any time by sending an email to hello@paace.co or unsubscribing from the communications.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"If you have given Consent, we may share your Information with carefully selected third party organisations and business partners and they may contact you directly.  If you would prefer to no longer receive direct marketing communications from third parties and partners after previously giving your Consent, please contact those third parties and partners directly to withdraw the Consent.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"Where you opt out of receiving marketing messages, this will not apply to personal data provided to us in connection with your purchase of a product or service or your involvement in other related transactions.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"‍\", React.createElement(\"strong\", undefined, \"15. ACCOUNT INFORMATION\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"‍\"), \"You may at any time review or change the Information in your account by logging into your Paace account.If you wish to terminate your Paace account, you can do this by selecting to delete your account in the relevant section of the Paace Services, or you can contact us via hello@paace.co and we can arrange this for you.  Some Information may be retained in our files to prevent fraud, troubleshoot problems, assist with any investigations, enforce our Terms and Conditions and/or comply with legal requirements.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"‍\", React.createElement(\"strong\", undefined, \"16. WHAT ARE YOUR PRIVACY RIGHTS?\"), \"‍\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"‍\", React.createElement(\"strong\", undefined, \"In Short: You have certain rights in respect of your Information.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"‍\"), \"You have certain rights in relation to the Information that we hold about you.  Details of these rights and how to exercise them are set out below.  Please note that we will require evidence of your identity before we are able to respond to any requests.  This is a security measure to ensure that your Information is not disclosed to a person who does not have the right to receive it.  We may also contact you to ask you for further Information in relation to your request to speed up our response.  To exercise or discuss any of your rights, please contact us via \", React.createElement(Link, {href: \"mailto:hello@paace.co\", motionChild: true, nodeId: \"PIHShQEIT\", openInNewTab: false, relValues: [], smoothScroll: false}, React.createElement(motion.a, undefined, React.createElement(\"strong\", undefined, \"hello@paace.co\"))), \".\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"- \", React.createElement(\"strong\", undefined, \"Right of Access. \"), \"You have the right at any time to ask us for a copy of the Information that we hold about you and to check that we are lawfully processing it.  Where we have good reason, and where data protection law permits, we can refuse your request for a copy of your Information, or certain elements of the request.  If we refuse your request or any element of it, we will provide you with our reason(s) for doing so.\", React.createElement(\"br\", undefined), \"- \", React.createElement(\"strong\", undefined, \"Right of Correction or Completion. \"), \"If Information we hold about you is not accurate or is out of date and requires amendment or correction, you have a right to have the data rectified or completed.\", React.createElement(\"br\", undefined), \"- \", React.createElement(\"strong\", undefined, \"Right of Erasure. \"), \"In certain circumstances, you have the right to request that the Information we hold about you is erased (for example, if the Information is no longer necessary for the purposes for which it was collected or processed or our processing of the Information is based only on your Consent and there are no other legal grounds on which we may process the Information).\", React.createElement(\"br\", undefined), \"- \", React.createElement(\"strong\", undefined, \"Right to Object to or Restrict Processing\"), \". In certain circumstances, you have the right to object to our processing of your Information (for example, if we are processing your Information on the basis of our legitimate interests but there are no longer any compelling legitimate grounds to justify our processing overriding your rights and interests).\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"You may also have the right to restrict our use of your Information, for example during a period in which we are verifying the accuracy of your Information in circumstances where you have challenged the accuracy of that Information.\", React.createElement(\"br\", undefined), \"‍\", React.createElement(\"br\", undefined), \"- \", React.createElement(\"strong\", undefined, \"Right of Data Portability\"), \". In certain instances, you have a right to receive the Information that we hold about you (or a portion thereof) in a structured, commonly used and machine-readable format.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"In such circumstances, you can ask us to transmit your Information to you or directly to a third-party organisation on your behalf.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"While we are happy for such requests to be made, we are not able to guarantee technical compatibility with a third-party organisation’s systems.  We are also unable to comply with requests that relate to personal Information of others without their consent.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"If we are relying on Consent to process your Information, you have the right to withdraw your Consent at any time.  Please note however that this will not affect the lawfulness of the processing that occurred before the withdrawal of such Consent.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"‍\", React.createElement(\"strong\", undefined, \"17. CONTACT US\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"‍\"), \"If you would would like us to remove your data, please follow this link. https://www.paace.co/remove-data\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"To delete your account, follow this link: \", React.createElement(Link, {href: \"https://www.paace.co/delete-account\", motionChild: true, nodeId: \"PIHShQEIT\", openInNewTab: true, relValues: [], smoothScroll: false}, React.createElement(motion.a, undefined, \"https://www.paace.co/delete-account\")), React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"We welcome your feedback and questions on this Policy. If you wish to contact us about this Policy or have any other questions, please email us via\", React.createElement(\"strong\", undefined, \" \"), React.createElement(Link, {href: \"mailto:hello@paace.co\", motionChild: true, nodeId: \"PIHShQEIT\", openInNewTab: false, relValues: [], smoothScroll: false}, React.createElement(motion.a, undefined, React.createElement(\"strong\", undefined, \"hello@paace.co\"))), \".\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"You have the right to make a complaint at any time to the Information Commissioner’s Office (the \", React.createElement(\"strong\", undefined, \"ICO\"), \"), the UK supervisory authority for data protection issues (\", React.createElement(Link, {href: \"https://ico.org.uk/concerns/\", motionChild: true, nodeId: \"PIHShQEIT\", openInNewTab: false, relValues: [], smoothScroll: false}, React.createElement(motion.a, undefined, React.createElement(\"strong\", undefined, \"https://ico.org.uk/concerns\"))), \").  We would, however, appreciate the chance to deal with your concerns before you approach the ICO, so please contact us in the first instance.\"))\r\nconst text1 = React.createElement(React.Fragment, undefined, React.createElement(\"p\", undefined, \"Welcome to Paace! These Terms and Conditions (the \\\"Agreement\\\") govern your use of the Paace platform, operated by Paace Ltd, a company registered in England and Wales with company number 14085970 (\\\"Paace\\\", \\\"we\\\", \\\"us\\\", or \\\"our\\\"). By creating an account and using our platform, you (\\\"User\\\", \\\"you\\\", or \\\"your\\\") agree to these Terms and Conditions in full. \", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"If you do not agree, you must not create an account or use our services. These terms and conditions were most recently updated on 27th November, 2024. \", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), React.createElement(\"strong\", undefined, \"1. Using the Paace Platform\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"‍\"), \"1.1 \", React.createElement(\"strong\", undefined, \"Purpose\"), \": Paace is a platform that allows you to turn your physical activity into rewards that can be redeemed for discounts or offers from participating partners.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"1.2 \", React.createElement(\"strong\", undefined, \"Eligibility\"), \": By creating an account, you confirm that you are at least 18 years old or have the consent of a legal guardian if younger.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"1.3 \", React.createElement(\"strong\", undefined, \"Account Responsibility\"), \": You are responsible for maintaining the confidentiality of your login details and for all activities under your account. Notify us immediately if you suspect unauthorised use.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"1.4 \", React.createElement(\"strong\", undefined, \"Provision of Services\"), \": The Paace Services are provided on an “as is” and “as available” basis. We reserve the right to modify or discontinue, temporarily or permanently, any part of the Paace Services from time to time. Where this is the case, we will let you know as soon as reasonably practicable. \", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"1.5 \", React.createElement(\"strong\", undefined, \"Transfer of Rights and Obligations\"), \": We may transfer our rights and obligations under these T&Cs to another organisation at any time, for example if we decide to sell the company.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), React.createElement(\"strong\", undefined, \"2. Earning and Redeeming Rewards\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"‍\"), \"2.1 \", React.createElement(\"strong\", undefined, \"Activity Tracking\"), \": Paace tracks your physical activity through integrations with services including, but not limited to, Apple Health and Google Fit. By connecting these services, you consent to the processing of your activity data.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"2.2 \", React.createElement(\"strong\", undefined, \"Rewards\"), \": Steps, runs and cycles are converted into points (\\\"Rewards\\\") that can be redeemed for discounts or offers as displayed on the platform. Rewards have no monetary value and cannot be exchanged for cash.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"2.3 \", React.createElement(\"strong\", undefined, \"Redeeming Offers\"), \": Redeeming Rewards requires following the terms of the offer provided by our partners. Paace is not responsible for the availability or quality of goods or services offered by our partners.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"2.4 \", React.createElement(\"strong\", undefined, \"Points Value: \"), \"The current value of your accumulated Paace Points will be as detailed within the Paace app. We reserve the right to change the value of any Paace Points at any time. \", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"2.5 \", React.createElement(\"strong\", undefined, \"Contract for Sale: \"), \"When you purchase a Product, the contract for the sale and purchase of such Product (the “Contract”) is between you and the relevant Seller, not us. We are not a party to such Contracts and therefore accept no responsibility or liability for any issue arising in relation to such Contracts.\", React.createElement(\"br\", undefined), \"‍\", React.createElement(\"br\", undefined), \"​​\", React.createElement(\"strong\", undefined, \"3. User Conduct\", React.createElement(\"br\", undefined), \"‍\", React.createElement(\"br\", undefined), \"‍\"), \"3.1 \", React.createElement(\"strong\", undefined, \"Respectful Use\"), \": You agree to use the platform responsibly and not engage in activities such as:\", React.createElement(\"br\", undefined), \"- Providing false or misleading information.Attempting to manipulate \", React.createElement(\"br\", undefined), \"- Rewards by artificial means (e.g., faking activity data).\", React.createElement(\"br\", undefined), \"- Harassing, abusing, or discriminating against others on the platform.\", React.createElement(\"br\", undefined), \"- Harassing, abusing, or discriminating against members at staff at partner stores.\", React.createElement(\"br\", undefined), \"‍\", React.createElement(\"br\", undefined), \"3.2 \", React.createElement(\"strong\", undefined, \"Compliance with Laws\"), \": You are responsible for adhering to all applicable laws and regulations while using the platform.\", React.createElement(\"br\", undefined), \"‍\", React.createElement(\"br\", undefined), \"3.3 \", React.createElement(\"strong\", undefined, \"Improper Usage\"), \": You will not use any part of the Paace App in order to build a product, service, offering or following, whether for commercial purposes or otherwise, on your own behalf or for a third party. Nor will you print off, print screen, download, copy, modify, record, duplicate, reproduce, create derivative materials from, modify, frame, mirror, republish, transmit, distribute, display, share, distribute, transmit, retransmit, transfer, disseminate, broadcast, circulate or otherwise use the Paace Services or any portion of the Paace Services, including but not limited to any portion of the text, images, audio, videos, pages, structures, HTML, CSS, JavaScript or visual design elements that comprise the Paace Services in any form or by any means (“Sharing Content”) without our prior written consent.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"‍\", React.createElement(\"strong\", undefined, \"4. Privacy and Data Protection\", React.createElement(\"br\", undefined), \"‍\", React.createElement(\"br\", undefined), \"4.1 Your Data: \"), \"By using Paace, you consent to the collection and use of your personal data in accordance with our Privacy Policy.\", React.createElement(\"br\", undefined), \"‍\", React.createElement(\"br\", undefined), \"4.2 \", React.createElement(\"strong\", undefined, \"Third-Party Data Sharing\"), \": To provide Rewards and offers, we may share relevant data with our partners. These partners are required to handle your data in compliance with applicable laws.\", React.createElement(\"br\", undefined), \"‍\", React.createElement(\"br\", undefined), React.createElement(\"strong\", undefined, \"5. Disclaimers\", React.createElement(\"br\", undefined), \"‍\", React.createElement(\"br\", undefined), \"‍\"), \"5.1 \", React.createElement(\"strong\", undefined, \"No Guarantees\"), \": Paace does not guarantee the availability, accuracy, or uninterrupted operation of the platform. Offers and discounts are subject to change without notice.\", React.createElement(\"br\", undefined), \"‍\", React.createElement(\"br\", undefined), \"5.2 \", React.createElement(\"strong\", undefined, \"No Endorsement\"), \": The inclusion of partner offers does not constitute an endorsement of their products or services.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), React.createElement(\"strong\", undefined, \"6. Liability\", React.createElement(\"br\", undefined), \"‍\", React.createElement(\"br\", undefined), \"6.1 Limited Liability: \"), \"Paace is not liable for indirect, incidental, or consequential damages, including lost savings, data, or profits, arising from your use of the platform.\", React.createElement(\"strong\", undefined, React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"‍7. Termination\", React.createElement(\"br\", undefined), \"‍\", React.createElement(\"br\", undefined), \"‍\"), \"7.1 \", React.createElement(\"strong\", undefined, \"By You\"), \": You can terminate your account at any time by using the delete account functionality within the app or by contacting support. Any unused Rewards will be forfeited upon termination.\", React.createElement(\"br\", undefined), \"‍\", React.createElement(\"br\", undefined), \"7.2 \", React.createElement(\"strong\", undefined, \"By Us\"), \": Paace may suspend or terminate your account if you violate these Terms or for any other reason at our discretion.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), React.createElement(\"strong\", undefined, \"8. Updates to Terms\", React.createElement(\"br\", undefined), \"‍\", React.createElement(\"br\", undefined), \"‍\"), \"8.1 \", React.createElement(\"strong\", undefined, \"Updates\"), \": We may update these Terms and Conditions from time to time. Continued use of the platform after changes are posted constitutes your acceptance of the updated Terms.\", React.createElement(\"br\", undefined), \"‍\", React.createElement(\"br\", undefined), \"‍\", React.createElement(\"strong\", undefined, \"9. Governing Law\", React.createElement(\"br\", undefined), \"‍\", React.createElement(\"br\", undefined), \"‍\"), \"9.1 \", React.createElement(\"strong\", undefined, \"Jurisdiction\"), \": This Agreement is governed by the laws of England & Wales. Any disputes will be subject to the non-exclusive jurisdiction of the courts of England & Wales.\", React.createElement(\"br\", undefined), \"‍\", React.createElement(\"br\", undefined), \"‍\", React.createElement(\"strong\", undefined, \"10. Contact Us \"), \"If you have any questions about these Terms, please contact us at \", React.createElement(\"strong\", undefined, \"hello@paace.co\"), \".\", React.createElement(\"br\", undefined), React.createElement(\"strong\", undefined, \"‍\")))\r\nconst text2 = React.createElement(React.Fragment, undefined, React.createElement(\"p\", undefined, \"These Terms and Conditions (the ‘Agreement’) govern your use of the Paace platform, operated by Paace Ltd, a company registered in England and Wales with company number 14085970, (‘Paace’, ‘us’, ‘we’ and ‘our’). By creating an account and using our platform, you (‘Partner, ‘Supplier’, ‘you’ and ‘your’) agree to these Terms and Conditions in full. If you do not agree to these Terms and Conditions, you must not create an account or use our services.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), React.createElement(\"strong\", undefined, \"Supply of Services\"), React.createElement(\"br\", undefined), \"During the term (as defined below), Paace agrees to sell and advertise your goods on its app. Using the Paace app, users will be directed to your store and notify you that they have placed an order on the platform (an ‘Order’).\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"​​Each Order will constitute a binding obligation on you to supply the Goods in accordance with the terms of the Order and this Agreement and you are deemed to have accepted such Order on its receipt.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), React.createElement(\"strong\", undefined, \"Term\"), React.createElement(\"br\", undefined), \"This Agreement commences on the creation of your account and will continue until either party provides at least ninety (30) days written notice of its intent to terminate to the other, or unless terminated in accordance with the ‘Term & Termination’ provisions of this Agreement (the “Term”).\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), React.createElement(\"strong\", undefined, \"Your responsibilities\"), React.createElement(\"br\", undefined), React.createElement(\"strong\", undefined, \"a) Compliance with laws\"), React.createElement(\"br\", undefined), \"You understand and agree that you are responsible for complying with all applicable laws and regulations for the products listed for sale on our website. We will have no liability in this regard.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), React.createElement(\"strong\", undefined, \"b) Personal data\"), React.createElement(\"br\", undefined), \"You are responsible for protecting our customers’ personal information and must comply with all applicable data protection and privacy laws, including the UK General Data Protection Regulation (GDPR), the Data Protection Act 2018, and any other applicable regulations. This includes ensuring that:\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"- Customer personal data is processed lawfully, fairly, and transparently;\", React.createElement(\"br\", undefined), \"- You only collect, store, and process personal data that is necessary for fulfilling Orders or other lawful purposes related to this Agreement;\", React.createElement(\"br\", undefined), \"- You maintain appropriate security measures to protect personal data from unauthorized access, loss, or disclosure;\", React.createElement(\"br\", undefined), \"- You cooperate with Paace in responding to data subject requests, including those related to access, rectification, or deletion of personal data;\", React.createElement(\"br\", undefined), \"- If a data breach occurs that involves our customers’ personal data, you notify us immediately and comply with all relevant legal reporting obligations.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"Where you process personal data directly, you must have a privacy policy compatible with this Agreement and Paace’s privacy policy, ensuring it is available to customers. Failure to comply with applicable data protection laws may result in termination of this Agreement and legal action where applicable.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), React.createElement(\"strong\", undefined, \"c) Service levels\"), React.createElement(\"br\", undefined), \"You must provide an excellent standard of customer service and maintain trust with our customers.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"You agree that customers are customers of Paace and all the goodwill associated with that relationship shall belong to us. To help us preserve our goodwill and maintain good relationships with our customers, you agree to:\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"- operate all parts of your business which have contact with our customers strictly in accordance with the highest standards;\", React.createElement(\"br\", undefined), \"- not do anything which could or might in our opinion bring us into disrepute, damage our reputation or our business; and\", React.createElement(\"br\", undefined), \"- observe all our directions and instructions for the promotion and advertisement of any business traded under our brand.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), React.createElement(\"strong\", undefined, \"d) Customer complaints\"), React.createElement(\"br\", undefined), \"Customers may contact Paace regarding non-delivery or not-as-described goods. You must respond to these complaints within three working days or as instructed by Paace. We may request your assistance in resolving a complaint. In such instances, you agree to respond promptly and in a professional manner. \", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), React.createElement(\"strong\", undefined, \"e) Use of our branding and logos\"), React.createElement(\"br\", undefined), \"By selling on our website, you agree to use our brand, logo, trademarks or designs (whether\", React.createElement(\"br\", undefined), \"registered or unregistered) (the ‘Marks’) only in accordance with our brand guidelines. You must also ensure that any website that you use which includes our Marks complies with the quality standards and criteria set out in this Agreement.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), React.createElement(\"strong\", undefined, \"f) Our use of your materials and imagery\"), React.createElement(\"br\", undefined), \"We expect you to provide Paace with all relevant information about the Goods, including:\", React.createElement(\"br\", undefined), \"- General description;\", React.createElement(\"br\", undefined), \"- Composition;\", React.createElement(\"br\", undefined), \"- Country of manufacture;\", React.createElement(\"br\", undefined), \"- Measurements; \", React.createElement(\"br\", undefined), \"- all applicable sizing and fit information;\", React.createElement(\"br\", undefined), \"- Ingredients;\", React.createElement(\"br\", undefined), \"- Nutritional information;\", React.createElement(\"br\", undefined), \"- Weight.\", React.createElement(\"br\", undefined), \"‍\", React.createElement(\"br\", undefined), \"In addition, we will also ask you to provide adequate imagery of each of the Goods and products as required.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), React.createElement(\"strong\", undefined, \"Pricing\"), React.createElement(\"br\", undefined), \"The prices of the Goods shall be the retail prices discounted by at least 15%. You will be responsible for updating the app with any pricing changes via the vendor portal. You will also ensure that the price offered on the Paace app is the most favourable price on the market and that Paace users cannot find the same products on other apps, platforms or technology providers, or via other promotions, at a lower price.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"Prices displayed on our website shall be inclusive of VAT or any equivalent local sales taxes which may be applicable. If your products are discounted, Paace reserves the right to advertise the discounted price.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), React.createElement(\"strong\", undefined, \"Our fees\"), React.createElement(\"br\", undefined), \"We will charge you a monthly fee based on the volume of customers we send to you. Our pricing structure will be as follows:\", React.createElement(\"br\", undefined), \"- 0-50 customers - 15p per customer\", React.createElement(\"br\", undefined), \"- 51-100 customers - 12p per customer\", React.createElement(\"br\", undefined), \"- 101+ customers - 10p per customer\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"We reserve the right to amend our pricing at our discretion. You will be notified of any amendments by email.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), React.createElement(\"strong\", undefined, \"Payment terms\"), React.createElement(\"br\", undefined), \"Payment will be made monthly via direct debit. The direct debit will be set up on Paace’s vendor portal and facilitated by a payment gateway of Paace’s choice. We reserve the right to change our payment gateway at any time. If you believe a payment has been charged in error, you must notify us within 30 days of the charge for resolution.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), React.createElement(\"strong\", undefined, \"Mutual Confidentiality\"), React.createElement(\"br\", undefined), \"Each party may be granted access to Confidential Information of the other party during the term of this Agreement. Each party agrees that it will not use or disclose to any third party any Confidential Information of the other party except as permitted by this Agreement or as authorised by the other party’s prior written consent. In no event, will either party use less care to maintain the Confidential Information of the other party than it uses to maintain the confidentiality of its own non-public information, and in no event less than a reasonable degree of care. Disclosure of Confidential Information will not be precluded if such disclosure is in response to a valid order of a court or other governmental body or is otherwise required to be disclosed by law; provided that, wherever legally able to do so, the recipient of the Confidential Information will first have given written notice to the discloser of the Confidential Information so that the discloser may seek an appropriate protective order.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"“Confidential Information” means non-public information that is marked or identified as confidential by the disclosing party or that by its nature and/or by the circumstances surrounding disclosure, a reasonable person should understand it to be proprietary or confidential. Confidential Information includes (but is not limited to) business methods and strategies, business plans, pricing strategies, and the terms of this Agreement. Confidential Information will not include information that: (a) is or becomes publicly available through no act or omission of the receiving party; (b) is rightfully acquired by the recipient from a third party without any obligation of confidentiality; (c) is independently developed without knowledge or access to such Confidential Information; or (d) is previously known to the recipient without nondisclosure obligations.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), React.createElement(\"strong\", undefined, \"Term & Termination\"), React.createElement(\"br\", undefined), \"Either party may terminate this Agreement, immediately, if the other has failed to perform any obligation hereunder and has not rectified such failure within thirty (30) days after receiving written notice of the failure.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"Upon any expiration or termination of this Agreement, each party will return or destroy and make no\", React.createElement(\"br\", undefined), \"further use of any Confidential Information belonging to the other party. Also, you will fulfil any pending\", React.createElement(\"br\", undefined), \"orders (for which you will be paid in accordance with the terms of the Agreement), and you will be\", React.createElement(\"br\", undefined), \"permitted to access and use the Paace platform solely in order to, and to the extent necessary to, fulfil such pending orders. \", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), React.createElement(\"strong\", undefined, \"Indemnification\"), React.createElement(\"br\", undefined), \"You will indemnify and hold harmless Paace from and against all claims, liabilities, losses, damages, expenses, and costs (including reasonable legal fees) incurred by Paace as a result of any action, demand or claim:\", React.createElement(\"br\", undefined), \"‍\", React.createElement(\"br\", undefined), \"(a) arising from your (including your representatives and agents) negligence, misconduct, breach of this Agreement or violation of law, rule or regulation (including without limitation false advertising);\", React.createElement(\"br\", undefined), \"‍\", React.createElement(\"br\", undefined), \"(b) That our use or possession of the Goods infringes the intellectual property rights of any third party;\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"(c) that Paace is in breach of any applicable laws as a result of any act or omission of the Supplier;\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"(d) made against Paace by a third party (including our customers) arising from any defect in the Goods caused by your breach of this Agreement.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"You agree to provide our customers with any and all product warranties that you customarily provide to your other customers, and shall honour such warranties in accordance with their terms.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"Paace will:\", React.createElement(\"br\", undefined), \"(a) promptly notify you in writing of any claims;\", React.createElement(\"br\", undefined), \"(b) provide you, at your expense, any assistance reasonably requested by you and necessary for the defence or settlement of such claim; and\", React.createElement(\"br\", undefined), \"(c) allow you to direct and control the defence or settlement of such claim, provided, however, that we reserve the right to retain counsel to participate in any claim for which indemnification is sought, at our expense. Notwithstanding the preceding sentence, the failure of Paace to give notice hereunder shall not release you from your obligations under this section, except to the extent you are actually and materially prejudiced by such failure to give notice.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"Our total liability to you, whether in contract, tort, or otherwise, shall not exceed the total fees paid by you to Paace in the 12 months preceding the claim.\", React.createElement(\"br\", undefined), \"‍\", React.createElement(\"br\", undefined), React.createElement(\"strong\", undefined, \"Mutual Limitation of Liability\"), React.createElement(\"br\", undefined), \"Neither party shall be liable for consequential, indirect or special losses. Neither party shall be liable for any of the following:\", React.createElement(\"br\", undefined), \"- Loss of profit;\", React.createElement(\"br\", undefined), \"- Loss of data;\", React.createElement(\"br\", undefined), \"- Loss of use;\", React.createElement(\"br\", undefined), \"- Loss of contract;\", React.createElement(\"br\", undefined), \"- Loss of opportunity;\", React.createElement(\"br\", undefined), \"- Loss of savings, discount or rebate.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"Any limits on liability or disclaimed damages shall not apply to breaches of confidentiality by either party or the Supplier’s indemnification obligations. Each party shall be responsible for its own actions or inaction (including without limitation, as between the parties, to end users).\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"Notwithstanding the above provisions set out in this section, the liability of the parties shall not be limited in any way in respect of the following:\", React.createElement(\"br\", undefined), \"‍\", React.createElement(\"br\", undefined), \"- Death or personal injury caused by negligence;\", React.createElement(\"br\", undefined), \"- Fraud or fraudulent misrepresentation;\", React.createElement(\"br\", undefined), \"- Any other losses that cannot be excluded by law;\", React.createElement(\"br\", undefined), \"- Any losses caused by wilful misconduct.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), React.createElement(\"strong\", undefined, \"Intellectual property rights\"), React.createElement(\"br\", undefined), \"Except as expressly stated in this Agreement no intellectual property rights of either party are transferred or licensed as a result of this Agreement.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), React.createElement(\"strong\", undefined, \"Force majeure\"), React.createElement(\"br\", undefined), \"Neither party shall have any liability under or be deemed to be in breach of this Agreement for any delays or failures in performance of this Agreement which result from an event or sequence of events beyond a party’s reasonable control preventing or delaying it from performing its obligations under this Agreement save that an inability to pay is not a Force Majeure event (“Force Majeure”).The party subject to the Force Majeure event shall promptly notify the other party in writing when such the event causes a delay or failure in performance and when it ceases to do so. If the event continues for a continuous period of more than three months, the party not affected may terminate this Agreement by written notice to the other party.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), React.createElement(\"strong\", undefined, \"Variation\"), React.createElement(\"br\", undefined), \"No variation of this Agreement shall be valid or effective unless it is in writing, refers to this Agreement and is duly signed or executed by, or on behalf of, each party.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), React.createElement(\"strong\", undefined, \"Representations and Warranties\"), React.createElement(\"br\", undefined), React.createElement(\"strong\", undefined, \"(a) Title to Products\"), React.createElement(\"br\", undefined), \"You warrant and represent that you have marketable title or rights to the goods or services, and have obtained and will maintain all necessary permits, licenses and consents, to deliver the goods or services, free of liens and encumbrances.\", React.createElement(\"br\", undefined), React.createElement(\"strong\", undefined, \"(b) Intellectual Property\"), React.createElement(\"br\", undefined), \"You represent and warrant that you own (or otherwise have the right to license to us) all of your intellectual property and other content and materials if any, that you provide to us (“Supplier Content”). You hereby grant to Paace a non-exclusive, royalty-free, perpetual, fully paid-up licence to use and copy Supplier Content solely for the purpose of promoting your products and services, including as offered or sold on or through the Paace app. Supplier Content and Goods will not infringe any third-party rights and will comply with all applicable laws and regulations.\", React.createElement(\"br\", undefined), React.createElement(\"strong\", undefined, \"(c) Insurance\"), React.createElement(\"br\", undefined), \"You represent that you carry all relevant and appropriate insurance cover against all liabilities\", React.createElement(\"br\", undefined), \"which may arise in connection with this Agreement (including, but not limited to, product liability coverage). You agree that such insurance policies and cover will be evidenced by a certificate of insurance which shall be provided to Paace upon written request.\", React.createElement(\"br\", undefined), React.createElement(\"strong\", undefined, \"(d) Country of Manufacture\"), React.createElement(\"br\", undefined), \"You represent and warrant that each and every product shipped to a customer has an accurate country-of-origin label, and contains all other labels and/or warnings as required by law.\", React.createElement(\"br\", undefined), React.createElement(\"strong\", undefined, \"(e) Safety and Fitness\"), React.createElement(\"br\", undefined), \"You represent and warrant to us and our customers that each and every one of the Goods offered for sale on or through Paace is fit and safe for the purposes and uses for which it was manufactured and presents no abnormal hazards to persons or their environment.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), React.createElement(\"strong\", undefined, \"Disclaimers\"), React.createElement(\"br\", undefined), \"While we strive to provide uninterrupted access to the Paace platform, we do not guarantee that the platform will be available at all times or free from errors. Access to the platform may be temporarily unavailable due to maintenance, technical issues, or other unforeseen circumstances. Paace will endeavor to resolve any disruptions promptly but shall not be liable for any loss or damage arising from platform downtime.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), \"Additionally, Paace makes no guarantees regarding the volume of sales or customer engagement generated through the platform. By agreeing to these Terms, you acknowledge and accept that success on the platform depends on various factors beyond our control.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), React.createElement(\"strong\", undefined, \"Governing law and jurisdiction\"), React.createElement(\"br\", undefined), \"This Agreement will be governed by and construed in accordance with the laws of England & Wales. The parties irrevocably agree that the courts of England & Wales shall have exclusive jurisdiction to settle any dispute or claim arising out of, or in connection with this Agreement, its subject matter or formation (including non-contractual disputes or claims).\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), React.createElement(\"strong\", undefined, \"Our Relationship\"), React.createElement(\"br\", undefined), \"This Agreement does not create between us any agency, joint venture, sales representative, partner, franchise, or employee relationship.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), React.createElement(\"strong\", undefined, \"Assignments\"), React.createElement(\"br\", undefined), \"This Agreement will be binding on and inure to the benefit of the parties and their respective successors in interest and assigns. You may not assign any of this Agreement, in whole or in part, without Paace’s prior written consent.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), React.createElement(\"strong\", undefined, \"Severability\"), React.createElement(\"br\", undefined), \"The provisions of this Agreement are severable, and in the event that any provision thereof is determined to be invalid or unenforceable, such invalidity or unenforceability will not in any way affect the validity or enforceability of the remaining provisions.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), React.createElement(\"strong\", undefined, \"Entire Agreement\"), React.createElement(\"br\", undefined), \"This Agreement, including all documents referred to herein, and all exhibits and schedules hereto and\", React.createElement(\"br\", undefined), \"thereto, constitutes the entire agreement between you and Paace with respect to the subject matter hereof and supersedes all prior agreements. Paace hereby objects to and shall not be bound by any additional, different or conflicting terms contained in a purchase order or any other document pertaining to the subject matter hereof.\", React.createElement(\"br\", undefined), React.createElement(\"br\", undefined), React.createElement(\"strong\", undefined, \"Acceptance and Updates\"), React.createElement(\"br\", undefined), \"By creating an account, you confirm that you have read, understood and agree to be bound by these Terms and Conditions. Paace reserves the right to update or modify these Terms and Conditions at any time, and such changes will be effective immediately upon posting. Continued use of the platform after changes are made constitutes acceptance of the updated terms. We recommend reviewing these Terms and Conditions periodically to stay informed of any updates. If you have any questions or concerns about the Terms and Conditions, please contact us at \", React.createElement(\"strong\", undefined, \"hello@paace.co\")))\r\nconst text3 = React.createElement(React.Fragment, undefined, React.createElement(\"p\", {dir: \"auto\"}, React.createElement(\"strong\", undefined, \"1. Promoter\")), React.createElement(\"p\", {dir: \"auto\"}, React.createElement(\"strong\", undefined, \"The promoter of this competition is Paace Ltd, a company incorporated in England and Wales (\\\"Paace\\\", \\\"we\\\", \\\"us\\\", \\\"our\\\"). By entering the competition, entrants agree to be bound by these terms and conditions.\")), React.createElement(\"p\", {dir: \"auto\"}, React.createElement(\"br\", {className: \"trailing-break\"})), React.createElement(\"p\", {dir: \"auto\"}, React.createElement(\"strong\", undefined, \"2. Competition Period\")), React.createElement(\"p\", {dir: \"auto\"}, React.createElement(\"strong\", undefined, \"The competition runs from 00:00 on 1 July 2026 to 23:59 on 31 July 2026 (\\\"Competition Period\\\"). Entries submitted outside this window will not be valid. The prize draw will take place on 1 August 2026.\")), React.createElement(\"p\", {dir: \"auto\"}, React.createElement(\"br\", {className: \"trailing-break\"})), React.createElement(\"p\", {dir: \"auto\"}, React.createElement(\"strong\", undefined, \"3. Eligibility\")), React.createElement(\"p\", {dir: \"auto\"}, React.createElement(\"strong\", undefined, \"To be eligible to enter, participants must:\")), React.createElement(\"ol\", {dir: \"auto\"}, React.createElement(\"li\", {\"data-preset-tag\": \"p\"}, React.createElement(\"p\", undefined, \"be aged 18 or over at the time of entry;\")), React.createElement(\"li\", {\"data-preset-tag\": \"p\"}, React.createElement(\"p\", undefined, \"be a resident of the United Kingdom; and\")), React.createElement(\"li\", {\"data-preset-tag\": \"p\"}, React.createElement(\"p\", undefined, \"have joined the July Challenge within the Paace app during the Competition Period.\"))), React.createElement(\"p\", {dir: \"auto\"}, \"Employees of Paace Ltd and their immediate family members are not eligible to enter.\"), React.createElement(\"p\", {dir: \"auto\"}, React.createElement(\"br\", {className: \"trailing-break\"})), React.createElement(\"p\", {dir: \"auto\"}, React.createElement(\"strong\", undefined, \"4. How to Enter\")), React.createElement(\"p\", {dir: \"auto\"}, React.createElement(\"strong\", undefined, \"Eligible participants will accumulate entries during the Competition Period as follows:\")), React.createElement(\"ol\", {dir: \"auto\"}, React.createElement(\"li\", {\"data-preset-tag\": \"p\"}, React.createElement(\"p\", undefined, \"1 entry for reaching the monthly step target of 250,000 steps during the Competition Period;\")), React.createElement(\"li\", {\"data-preset-tag\": \"p\"}, React.createElement(\"p\", undefined, \"1 entry for each eligible friend referred to Paace during the Competition Period (see clause 5 for referral eligibility); and\")), React.createElement(\"li\", {\"data-preset-tag\": \"p\"}, React.createElement(\"p\", undefined, \"5 entries for holding an active Paace+ subscription. To qualify for these entries, the participant must hold an active Paace+ subscription at the time of the draw on 1 August 2026. Paace+ subscriptions that have lapsed, been cancelled, or are in a free trial period at the time of the draw will not qualify for these 5 entries.\"))), React.createElement(\"p\", {dir: \"auto\"}, \"There is no limit on the total number of entries a participant may accumulate. Entries are non-transferable.\"), React.createElement(\"p\", {dir: \"auto\"}, React.createElement(\"br\", {className: \"trailing-break\"})), React.createElement(\"p\", {dir: \"auto\"}, React.createElement(\"strong\", undefined, \"5. Referral Entries\")), React.createElement(\"p\", {dir: \"auto\"}, React.createElement(\"strong\", undefined, \"A referral entry is awarded where a participant refers a new user to Paace during the Competition Period using the participant's unique referral link or code, and the referred user creates a new Paace account. Referrals to existing Paace users do not qualify. Paace reserves the right to disqualify referral entries it reasonably suspects have been generated fraudulently or by artificial means.\")), React.createElement(\"p\", {dir: \"auto\"}, React.createElement(\"br\", {className: \"trailing-break\"})), React.createElement(\"p\", {dir: \"auto\"}, React.createElement(\"strong\", undefined, \"6. Prize\")), React.createElement(\"p\", {dir: \"auto\"}, React.createElement(\"strong\", undefined, \"The total prize pool for the July 2026 competition is £1,000 (one thousand pounds sterling) (\\\"Prize\\\"). The Prize will be awarded to one winner selected by random draw. The Prize is non-transferable and no cash alternative will be offered, save that Paace reserves the right to substitute a prize of equivalent or greater value if circumstances beyond its control make the original prize unavailable.\")), React.createElement(\"p\", {dir: \"auto\"}, React.createElement(\"br\", {className: \"trailing-break\"})), React.createElement(\"p\", {dir: \"auto\"}, React.createElement(\"strong\", undefined, \"7. Draw and Winner Selection\")), React.createElement(\"p\", {dir: \"auto\"}, React.createElement(\"strong\", undefined, \"The prize draw will take place on 1 August 2026. The winner will be selected by random draw from all valid entries accumulated during the Competition Period. The draw will be conducted using a verifiably random method. The decision of Paace is final and no correspondence will be entered into.\")), React.createElement(\"p\", {dir: \"auto\"}, React.createElement(\"br\", {className: \"trailing-break\"})), React.createElement(\"p\", {dir: \"auto\"}, React.createElement(\"strong\", undefined, \"8. Winner Notification and Prize Fulfilment\")), React.createElement(\"p\", {dir: \"auto\"}, React.createElement(\"strong\", undefined, \"The winner will be notified via the contact details associated with their Paace account within 5 working days of the draw. The winner must respond within 14 days of notification to claim their prize. Failure to respond within this period may result in forfeiture and Paace reserves the right to select an alternative winner.\")), React.createElement(\"p\", {dir: \"auto\"}, React.createElement(\"br\", {className: \"trailing-break\"})), React.createElement(\"p\", {dir: \"auto\"}, React.createElement(\"strong\", undefined, \"The Prize will be paid by bank transfer to a UK bank account nominated by the winner. Paace may require the winner to provide proof of identity and bank account ownership before payment is made. Paace will not be liable for any bank charges incurred by the winner in connection with receipt of the Prize.\")), React.createElement(\"p\", {dir: \"auto\"}, React.createElement(\"br\", {className: \"trailing-break\"})), React.createElement(\"p\", {dir: \"auto\"}, React.createElement(\"strong\", undefined, \"9. Disqualification\")), React.createElement(\"p\", {dir: \"auto\"}, React.createElement(\"strong\", undefined, \"Paace reserves the right to disqualify any entrant who:\")), React.createElement(\"ol\", {dir: \"auto\"}, React.createElement(\"li\", {\"data-preset-tag\": \"p\"}, React.createElement(\"p\", undefined, \"provides false or misleading information in connection with the competition;\")), React.createElement(\"li\", {\"data-preset-tag\": \"p\"}, React.createElement(\"p\", undefined, \"tampers with or attempts to manipulate the entry process;\")), React.createElement(\"li\", {\"data-preset-tag\": \"p\"}, React.createElement(\"p\", undefined, \"acts in a way that Paace reasonably considers to be fraudulent, abusive, or contrary to these terms; or\")), React.createElement(\"li\", {\"data-preset-tag\": \"p\"}, React.createElement(\"p\", undefined, \"has not fulfilled the eligibility requirements set out in clause 3.\"))), React.createElement(\"p\", {dir: \"auto\"}, React.createElement(\"br\", {className: \"trailing-break\"})), React.createElement(\"p\", {dir: \"auto\"}, React.createElement(\"strong\", undefined, \"10. Limitation of Liability\")), React.createElement(\"p\", {dir: \"auto\"}, React.createElement(\"strong\", undefined, \"To the fullest extent permitted by law, Paace accepts no responsibility for:\")), React.createElement(\"ol\", {dir: \"auto\"}, React.createElement(\"li\", {\"data-preset-tag\": \"p\"}, React.createElement(\"p\", undefined, \"entries that are lost, misdirected, or fail to reach Paace for any reason;\")), React.createElement(\"li\", {\"data-preset-tag\": \"p\"}, React.createElement(\"p\", undefined, \"technical errors or failures affecting entry or the draw;\")), React.createElement(\"li\", {\"data-preset-tag\": \"p\"}, React.createElement(\"p\", undefined, \"any loss or damage arising from participation in or inability to participate in the competition; or\")), React.createElement(\"li\", {\"data-preset-tag\": \"p\"}, React.createElement(\"p\", undefined, \"events outside Paace’s reasonable control that affect the running of the competition.\"))), React.createElement(\"p\", {dir: \"auto\"}, \"Nothing in these terms shall limit Paace’s liability for death or personal injury caused by its negligence, fraud, or fraudulent misrepresentation.\"), React.createElement(\"p\", {dir: \"auto\"}, React.createElement(\"br\", {className: \"trailing-break\"})), React.createElement(\"p\", {dir: \"auto\"}, React.createElement(\"strong\", undefined, \"11. Data Protection\")), React.createElement(\"p\", {dir: \"auto\"}, React.createElement(\"strong\", undefined, \"Personal data provided in connection with this competition will be processed by Paace Ltd in accordance with its Privacy Policy, available at www.paace.app. Personal data will be used solely for the purpose of administering the competition and fulfilling the prize. By entering, participants consent to Paace contacting them for these purposes.\")), React.createElement(\"p\", {dir: \"auto\"}, React.createElement(\"br\", {className: \"trailing-break\"})), React.createElement(\"p\", {dir: \"auto\"}, React.createElement(\"strong\", undefined, \"12. Publicity\")), React.createElement(\"p\", {dir: \"auto\"}, React.createElement(\"strong\", undefined, \"By entering, participants agree that Paace may use their first name, last initial, and general location for promotional purposes in connection with the competition result, without further compensation. If participants object to such use, they should contact Paace at [contact email] before the end of the Competition Period.\")), React.createElement(\"p\", {dir: \"auto\"}, React.createElement(\"br\", {className: \"trailing-break\"})), React.createElement(\"p\", {dir: \"auto\"}, React.createElement(\"strong\", undefined, \"13. General\")), React.createElement(\"p\", {dir: \"auto\"}, React.createElement(\"strong\", undefined, \"These terms and conditions are governed by the laws of England and Wales. Any dispute arising in connection with this competition shall be subject to the exclusive jurisdiction of the courts of England and Wales.\")), React.createElement(\"p\", {dir: \"auto\"}, React.createElement(\"strong\", undefined, \"Paace reserves the right to amend these terms or cancel the competition at any time, for any reason, including circumstances beyond its reasonable control. Any material changes will be communicated to participants via the Paace app.\")), React.createElement(\"p\", {dir: \"auto\"}, React.createElement(\"strong\", undefined, \"These terms do not affect your statutory rights.\")))\r\nfunction Template({webPageId, children, style, ...rest}) {const props1 = {VVmu2MiT4: \"QHkX6MSKV\", WseTHVtZW: \"Kc8EX5opH\"}\r\nconst props2 = {...props1, VVmu2MiT4: \"Kc8EX5opH\", WseTHVtZW: \"QHkX6MSKV\"}\r\nconst props3 = {bYHCROoPZ: \"\", ivLpq63yT: text, qo5WYh6hX: \"Privacy Policy\", qVp9W9iXt: \"Legal\"}\r\nconst props4 = {...props3, bYHCROoPZ: \"Effective date: 27th November, 2024\", ivLpq63yT: text1, qo5WYh6hX: \"Paace Terms & Conditions\"}\r\nconst props5 = {...props3, ivLpq63yT: text2, qo5WYh6hX: \"Partner Terms & Conditions\"}\r\nconst props6 = {...props3, ivLpq63yT: text3, qo5WYh6hX: \"250k Step Challenge Terms & Conditions\"}\r\nconst props7 = {...props1, WseTHVtZW: \"QHkX6MSKV\"}\r\nconst templateProps = {augiA20Il: props1, Bmx3UxV8I: props2, eTY54aZOc: props7, GCBDu4L9X: props7, lqE5WsvRn: props4, PIHShQEIT: props3, PquogXvqS: props5, VOi7CeZzV: props6, vOOJX4lp4: props7}\r\nconst props = templateProps[webPageId] ?? {}\r\nswitch (webPageId) {case \"augiA20Il\":\r\ncase \"Bmx3UxV8I\":\r\ncase \"GCBDu4L9X\":\r\ncase \"eTY54aZOc\":\r\ncase \"vOOJX4lp4\":\r\nreturn React.createElement(MainPage, {...props, key: \"MainPage\", style}, children(true));\r\ncase \"PIHShQEIT\":\r\ncase \"lqE5WsvRn\":\r\ncase \"PquogXvqS\":\r\ncase \"VOi7CeZzV\":\r\nreturn React.createElement(Plain, {...props, key: \"Plain\", style}, children(true));\r\ndefault: { return children(false) }}}\r\nexport function getLayoutTemplateBreakpoints(routeId) {switch (routeId) {case \"augiA20Il\":\r\ncase \"Bmx3UxV8I\":\r\ncase \"GCBDu4L9X\":\r\ncase \"eTY54aZOc\":\r\ncase \"vOOJX4lp4\":\r\nreturn [{hash: \"eowuqz\", mediaQuery: \"(max-width: 809.98px)\"}, {hash: \"1f4z2xx\", mediaQuery: \"(min-width: 810px) and (max-width: 1199.98px)\"}, {hash: \"1dzwv6i\", mediaQuery: \"(min-width: 1200px) and (max-width: 1439.98px)\"}, {hash: \"jxeo67\", mediaQuery: \"(min-width: 1440px)\"}]\r\ncase \"PIHShQEIT\":\r\ncase \"lqE5WsvRn\":\r\ncase \"PquogXvqS\":\r\ncase \"VOi7CeZzV\":\r\nreturn [{hash: \"nlvd6g\", mediaQuery: \"(max-width: 809.98px)\"}, {hash: \"xxj9rh\", mediaQuery: \"(min-width: 810px) and (max-width: 1199.98px)\"}, {hash: \"m66wzu\", mediaQuery: \"(min-width: 1200px)\"}]\r\ndefault: { return undefined }}}\r\n\r\n\t\tconst isBrowser = typeof document !== \"undefined\"\r\n\t\tconst isBot = isBrowser && /bot|-google|google-|yandex|ia_archiver|crawl|spider/iu.test(navigator.userAgent)\r\n\r\n\t\texport async function getPageRoot({ routeId, pathVariables, localeId, collectionItemId }) {\r\n\t\t\tconst rootPreload = routes[routeId].page.preload()\r\n\r\n\t\t\tconst content = React.createElement(\r\n\t\t\t\tFramer.PageRoot,\r\n\t\t\t\t{\r\n\t\t\t\t\tisWebsite: true,\r\n\t\t\t\t\tenvironment: \"site\",\r\n\t\t\t\t\trouteId,\r\n\t\t\t\t\tpathVariables,\r\n\t\t\t\t\troutes,\r\n\t\t\t\t\tcollectionUtils,\r\n\t\t\t\t\tframerSiteId,\r\n\t\t\t\t\tnotFoundPage: Framer.lazy(() => import(\"https://framerusercontent.com/modules/vUXpJaHNJfGl3TrZm5Zr/eArKevZUvCc9TnXmUOJ6/GCBDu4L9X.js\")),\r\n\t\t\t\t\tisReducedMotion: undefined,\r\n\t\t\t\t\tlocaleId,\r\n\t\t\t\t\tlocales,\r\n\t\t\t\t\tpreserveQueryParams: false,\r\n\t\t\t\t\tsiteCanonicalURL: \"https://www.paace.co\",\r\n\t\t\t\t\tEditorBar: \r\n\t\t\ttypeof window !== \"undefined\" ? (() => {\r\n\t\t\t\tif (isBot) {\r\n\t\t\t\t\tconsole.log(\"[Framer On-Page Editing] Unavailable because navigator is bot\")\r\n\t\t\t\t\treturn\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn Framer.lazy(async () => {\r\n\t\t\t\t\tconst dependencies = {\r\n\t\t\t\t\t\t__version: 3,\r\n\t\t\t\t\t\tframer: {\r\n\t\t\t\t\t\t\tuseCurrentRoute: Framer.useCurrentRoute,\r\n\t\t\t\t\t\t\tuseLocaleInfo: Framer.useLocaleInfo,\r\n\t\t\t\t\t\t\tuseRouter: Framer.useRouter,\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\treact: {\r\n\t\t\t\t\t\t\tcreateElement: React.createElement,\r\n\t\t\t\t\t\t\tFragment: React.Fragment,\r\n\t\t\t\t\t\t\tmemo: React.memo,\r\n\t\t\t\t\t\t\tuseCallback: React.useCallback,\r\n\t\t\t\t\t\t\tuseEffect: React.useEffect,\r\n\t\t\t\t\t\t\tuseRef: React.useRef,\r\n\t\t\t\t\t\t\tuseState: React.useState,\r\n\t\t\t\t\t\t\tuseLayoutEffect: React.useLayoutEffect,\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\"react-dom\": { createPortal },\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\twindow.__framer_editorBarDependencies = dependencies\r\n\r\n\t\t\t\t\tconst { createEditorBar } = await import(\"https://framer.com/edit/init.mjs\")\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tdefault: createEditorBar(),\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t})() : undefined\r\n\t\t,\r\n\t\t\t\t\tadaptLayoutToTextDirection: true,\r\n\t\t\t\t\tLayoutTemplate: Template,\r\n\t\t\t\t\tloadSnippetsModule: new Framer.LazyValue(() => import(\"https://framerusercontent.com/modules/DVauPESh59rH8q2gbK3x/k8DZqT0VjwMK42XC2ROT/snippets.js\")),\r\n\t\t\t\t\tinitialCollectionItemId: collectionItemId,\r\n\t\t\t\t}\r\n\t\t\t)\r\n\r\n\t\t\tconst contentWithFeaturesContext = React.createElement(\r\n\t\t\t\tFramer.LibraryFeaturesProvider,\r\n\t\t\t\t{\r\n\t\t\t\t\tchildren: content,\r\n\t\t\t\t\tvalue: {autobahnNavigation: true, disableCustomCode: false, editorBarDisableFrameAncestorsSecurity: false, motionDivToDiv: false, onPageLocalizationSupport: true, onPageMoveTool: true, synchronousNavigationOnDesktop: false, yieldOnTap: false}\r\n\t\t\t\t}\r\n\t\t\t)\r\n\r\n\t\t\tconst contentWithGracefullyDegradingErrorBoundary = React.createElement(Framer.GracefullyDegradingErrorBoundary, {\r\n\t\t\t\tchildren: contentWithFeaturesContext\r\n\t\t\t})\r\n\r\n\t\t\t\r\n\t\t\tconst page = React.createElement(Framer.PageEffectsProvider, {\r\n\t\t\t\tchildren: contentWithGracefullyDegradingErrorBoundary,\r\n\t\t\t\tvalue: {routes: {}}\r\n\t\t\t})\r\n\r\n\t\t\t// We don't want the initial render to immediately have to suspend.\r\n\t\t\tawait rootPreload\r\n\t\t\treturn page\r\n\t\t}\r\n\r\n\t\tif (isBrowser) {\r\n\t\t\twindow.__framer_importFromPackage = (packageAndFilename, exportIdentifier) => () => {\r\n\t\t\t\treturn React.createElement(Framer.ErrorPlaceholder, { error: 'Package component not supported: \"' + exportIdentifier + '\" in \"' + packageAndFilename + '\"' })\r\n\t\t\t}\r\n\r\n\t\t\t\r\n\t\t\twindow.__framer_events = window.__framer_events || []\r\n\r\n\t\t\t// Initialize lazy modules cache for hydration\r\n\t\t\tFramer.initLazyModulesCache()\r\n\r\n\t\t\t// Fallback support for stack gaps\r\n\t\t\tFramer.installFlexboxGapWorkaroundIfNeeded()\r\n\r\n\t\t\tconst container = document.getElementById(\"main\")\r\n\t\t\t// We know that #main is parsed before this script, so we don't need to wait for DOMContentLoaded or similar events.\r\n\t\t\tif (\"framerHydrateV2\" in container.dataset) main(true, container)\r\n\t\t\telse main(false, container)\r\n\t\t}\r\n\r\n\t\tfunction track() {\r\n\t\t\tif (!isBrowser) return\r\n\t\t\twindow.__framer_events.push(arguments)\r\n\t\t}\r\n\r\n\t\tasync function main(shouldHydrate, container) {\r\n\t\t\tfunction handleError(error, errorInfo, recoverable = true) {\r\n\t\t\t\tif (error.caught || window.__framer_hadFatalError) return // we already logged it\r\n\r\n\t\t\t\tconst componentStack = errorInfo?.componentStack\r\n\t\t\t\tif (recoverable) {\r\n\t\t\t\t\tconsole.warn(\"Caught a recoverable error. The site is still functional, but might have some UI flickering or degraded page load performance. If you are the author of this website, update external components and check recently added custom code or code overrides to fix the following server/client mismatches:\\n\", error, componentStack)\r\n\t\t\t\t\t// we only want to collect 1%, because this can be quite noisy (floods the data pipeline)\r\n\t\t\t\t\tif (Math.random() > 0.01) return\r\n\t\t\t\t} else {\r\n\t\t\t\t\tconsole.error(\"Caught a fatal error. Please report the following to the Framer team via https://www.framer.com/contact/:\\n\", error, componentStack)\r\n\t\t\t\t}\r\n\t\t\t\ttrack(recoverable ? \"published_site_load_recoverable_error\" : \"published_site_load_error\", {\r\n\t\t\t\t\tmessage: String(error),\r\n\t\t\t\t\tcomponentStack, // componentStack is more useful\r\n\t\t\t\t\tstack: componentStack ? undefined : error instanceof Error && typeof error.stack === \"string\" ? error.stack : null,\r\n\t\t\t\t})\r\n\t\t\t}\r\n\r\n\t\t\ttry {\r\n\t\t\t\tlet routeId, localeId, pathVariables, breakpoints, routeData\r\n\t\t\t\tif (shouldHydrate) {\r\n\t\t\t\t\trouteData = JSON.parse(container.dataset[\"framerHydrateV2\"])\r\n\t\t\t\t\trouteId = routeData.routeId\r\n\t\t\t\t\tlocaleId = routeData.localeId\r\n\t\t\t\t\tpathVariables = routeData.pathVariables\r\n\t\t\t\t\tbreakpoints = routeData.breakpoints\r\n\r\n\t\t\t\t\trouteId = Framer.patchRoutesForABTesting(routes, routeId) // Prioritize optimized route id to avoid flickering in browsers not supporting the server-timing header (Safari older than 16.4)\r\n\t\t\t\t} else {\r\n\t\t\t\t\tFramer.patchRoutesForABTesting(routes, undefined) // This must happen before inferInitialRouteFromPath\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\tconst serverRouteExperimentEnabled = true\r\n\t\t\t\t\tconst serverRoute = serverRouteExperimentEnabled && performance.getEntriesByType(\"navigation\")[0]?.serverTiming?.find(e => e.name === \"route\")?.description\r\n\t\t\t\t\tif (serverRoute) {\r\n\t\t\t\t\t\tconst routeData = new URLSearchParams(serverRoute)\r\n\t\t\t\t\t\trouteId = routeData.get(\"id\")\r\n\t\t\t\t\t\tlocaleId = routeData.get(\"locale\")\r\n\t\t\t\t\t\tfor (const [key, value] of routeData.entries()) {\r\n\t\t\t\t\t\t\tif (!key.startsWith(\"var.\")) continue\r\n\t\t\t\t\t\t\tpathVariables ??= {}\r\n\t\t\t\t\t\t\tpathVariables[key.slice(4)] = value\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (!routeId || !localeId) {\r\n\t\t\t\t\t\tconst routeData = Framer.inferInitialRouteFromPath(routes, decodeURIComponent(location.pathname), true, locales)\r\n\t\t\t\t\t\trouteId = routeData.routeId\r\n\t\t\t\t\t\tlocaleId = routeData.localeId\r\n\t\t\t\t\t\tpathVariables = routeData.pathVariables\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst pagePromise = getPageRoot({\r\n\t\t\t\t\trouteId,\r\n\t\t\t\t\tlocaleId,\r\n\t\t\t\t\tpathVariables,\r\n\t\t\t\t\tcollectionItemId: routeData?.collectionItemId,\r\n\t\t\t\t})\r\n\r\n\t\t\t\t\r\nif (typeof window !== \"undefined\") {\r\n\tvoid (async () => {\r\n\t\tconst route = routes[routeId]\r\n\r\n\t\tconst defaultLocaleId = \"default\"\r\n\t\tconst framerLocale = locales.find(({ id }) => !localeId ? id === defaultLocaleId : id === localeId).code\r\n\r\n\t\tlet collectionItemId = routeData?.collectionItemId ?? null\r\n\t\tif (collectionItemId === null && route?.collectionId && collectionUtils) {\r\n\t\t\t  const utils = await collectionUtils[route.collectionId]?.()\r\n\t\t\t  const [slug] = Object.values(pathVariables)\r\n\t\t\t  if (utils && typeof slug === \"string\") {\r\n\t\t\t\t  collectionItemId = (await utils.getRecordIdBySlug(slug, framerLocale || undefined)) ?? null\r\n\t\t\t  }\r\n\t\t}\r\n\r\n\t\tconst resolvedDateTimeOptions = Intl.DateTimeFormat().resolvedOptions()\r\n\t\tconst timezone = resolvedDateTimeOptions.timeZone\r\n\t\tconst locale = resolvedDateTimeOptions.locale\r\n\r\n\t\t// wait for the page to be activated before sending the pageview event\r\n\t\t// https://developer.chrome.com/docs/web-platform/prerender-pages#impact-on-analytics\r\n\t\tawait new Promise((resolve) => {\r\n\t\t\tif (document.prerendering) {\r\n\t\t\t\tdocument.addEventListener(\"prerenderingchange\", resolve, { once: true })\r\n\t\t\t} else {\r\n\t\t\t\tresolve()\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\twindow.__framer_events.push([\r\n\t\t\t\"published_site_pageview\",\r\n\t\t\t{\r\n\t\t\t\tframerSiteId: framerSiteId ?? null,\r\n\t\t\t\tversion: 2,\r\n\t\t\t\troutePath: route?.path || \"/\",\r\n\t\t\t\tcollectionItemId,\r\n\t\t\t\tframerLocale: framerLocale || null,\r\n\t\t\t\twebPageId: route?.abTestingVariantId ?? routeId,\r\n\t\t\t\tabTestId: route?.abTestId,\r\n\t\t\t\treferrer: document.referrer || null,\r\n\t\t\t\turl: window.location.href,\r\n\t\t\t\thostname: window.location.hostname || null,\r\n\t\t\t\tpathname: window.location.pathname || null,\r\n\t\t\t\thash: window.location.hash || null,\r\n\t\t\t\tsearch: window.location.search || null,\r\n\t\t\t\ttimezone,\r\n\t\t\t\tlocale,\r\n\t\t\t},\r\n\t\t\t\"eager\"\r\n\t\t])\r\n\r\n\t\t// Yield to avoid blocking the main thread with the user code\r\n\t\tawait Framer.yieldToMain({ priority: \"background\", ensureContinueBeforeUnload: true, continueAfter: \"paint\" })\r\n\r\n\t\tdocument.dispatchEvent(new CustomEvent(\"framer:pageview\", {\r\n\t\t\tdetail: { framerLocale: framerLocale || null }\r\n\t\t}))\r\n\t})()\r\n}\r\n\r\n\r\n\t\t\t\tconst page = await pagePromise\r\n\t\t\t\tif (shouldHydrate) {\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\tFramer.withPerformanceMarks(\"framer-rewrite-breakpoints\", () => {\r\n\t\t\t\t\t\tFramer.removeHiddenBreakpointLayersV2(breakpoints)\r\n\t\t\t\t\t\twindow.__framer_onRewriteBreakpoints?.(breakpoints)\r\n\t\t\t\t\t})\r\n\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\tconst startTransition = isBot ? cb => cb() : React.startTransition\r\n\t\t\t\t\tstartTransition(() => {\r\n\t\t\t\t\t\tFramer.markHydrationStart()\r\n\t\t\t\t\t\tif (true) Framer.turnOffReactEventHandling()\r\n\t\t\t\t\t\tReactDOM.hydrateRoot(container, page, { onRecoverableError: handleError })\r\n\t\t\t\t\t})\r\n\t\t\t\t} else {\r\n\t\t\t\t\t\r\n\t\t\t\t\tReactDOM.createRoot(container, { onRecoverableError: handleError }).render(page)\r\n\t\t\t\t}\r\n\t\t\t} catch (error) {\r\n\t\t\t\thandleError(error, undefined, false)\r\n\t\t\t\tthrow error\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t\r\n\r\n\t\t\r\n\t"],"mappings":"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"}